помогите столкнулся с непонятной проблемой
|
|
| Дата: Воскресенье, 11.12.2016, 14:24 | Сообщение # 1 |
Рядовой
Сообщений: 14
|
Я в данный момент создаю собственную карту на GUI делал бы на JASS на я его не знаю знаю тока пару функций чтобы удалять утечки а в триггерах розбираюсь очень даже хорошо короче у меня такая проблема я делаю карту такую в центре база от нее 4 дороги по ним идут волны мобов есть боссы ивенты дуэли всякие и д.т. в начале перед тем как пойти на арену герои берут покупают магии а в дальнейшем прокачивают их за уровни и так проблема такая я давно делал триггер с волнами и с покупкой магий все работало нормально а сейчас вдруг пошли какие то не понятные лаги в триггере с магиями есть вот такое действие (см. 1-ый скрин) там когда должно происходить действие из желтой рамки также происходит и действие из синей в красной действия аналогичные синей токо с другими предметам хотя когда я пытался проверять с помощью действия показать текст он не появлялся как такое возможно типа в желтой рамке есть невидимое действие из синей и красной рамки я сперва подумал это какие то утечки полазил у себя в триггерах покопался что можно исправил все равно хотя я может и не все исправил у меня аж 65 триггеров я еще планировал триггерные магии создавать но уж точно у меня утечек мало должно быть пытался новый такой же триггер в ручную не копируя создать старый удалил все равно переменные заново создавал все равно также еще в триггере который отвечает за спавн мобов (см. 2-ой скрин) проблема там тупо перестали создаваться юниты. Если кто нибудь сталкивался с такой проблемой помогите как ее решить.
|
|
|
|
| Дата: Понедельник, 12.12.2016, 00:28 | Сообщение # 2 |
Генералиссимус
Сообщений: 12997
|
Я честно пытался понять что тут написано и как это работает, но блин... Пожалуйста, опиши это с запятыми и переносами.. читать НЕРЕАЛЬНО. Это просто стена текста. Возможно я понимаю проблему, но нормально это прочитать и понять не могу....
НА счёт волны - у тебя стоит событие по истечению таймера, если этот таймер ты нигде больше не запустишь, то естественно и триггеру твоему срабатывать будет не на что.
это Ксопик!
|
|
|
|
| Дата: Пятница, 16.12.2016, 20:37 | Сообщение # 3 |
Рядовой
Сообщений: 14
|
Я кажется понял в чом у меня проблема в кеше. Прочел вот эту тему "http://xgm.guru/p/wc3/jass_cache_bugs". Там есть вот эта вставка:
Код Create a game cache from SCV.w3v Clear (Last created game cache) Create a game cache from SCV.w3v Set cache = (Last created game cache)
Я так понял что это решение моей проблемы. Тока я не понял что это jass код или какие то триггеры. Если это jass то как его вписать тут даже нету не каких jass операторов типа call или set. А если это триггеры то я их не нашел. Кто понимает что это за вставка и как ею пользоваться прошу помогите пожалуйста.
P.S. Я не настолько нуб в WE чтобы не включить таймер у меня есть триггер который запускает его. У меня в 1-м триггер запускает все 25 волн в зависимости от целочисленной. Тока если целочисленная = 1 то по окончании таймера волна не идет, а если к примеру в WE установит целочисленную = 17 то волна 17-ть пойдет. К справке во всех волнах юниты создаются в одном и том же триггере и к 1-ой и к 17-ой волне.
Добавлено (16.12.2016, 20:37) --------------------------------------------- Исправил первое сообщение!!!
[cut=Сообщение]Я в данный момент создаю собственную карту на GUI. Делал бы на JASS на я его не знаю, знаю тока пару функций чтобы удалять утечки, а в триггерах разбираюсь очень даже хорошо. Короче я делаю такую карту: в центре база от нее 4 дороги по ним идут волны мобов, есть боссы, ивенты, дуэли и д.т. В начале перед тем как пойти на арену герои покупают магии, а в дальнейшем прокачивают их за уровни. И так проблема такая я давно делал триггер с волнами и с покупкой магий все работало нормально. А сейчас вдруг пошли какие то не понятные лаги, в триггере с магиями есть вот такое действие (см. 1-ый скрин) там когда должно происходить действие из желтой рамки также происходит и действие из синей (в красной действия аналогичные синей токо с другими предметам). Когда я пытался проверять с помощью действия (Игра - Текстовое сообщение(время автоматически)) он не появлялся. Как такое возможно типа в желтой рамке есть невидимое действие из синей и красной рамки. Я сперва подумал это какие то утечки полазил у себя в триггерах что можно исправил все равно, хотя я может и не все исправил у меня аж 65 триггеров, а я еще планировал триггерные магии создавать. Но уж точно у меня утечек должно быть мало. Пытался новый такой же триггер в ручную не копируя создать старый удалил все равно. Переменные заново создавал не помогло. Так же еще проблема в триггере который отвечает за спавн мобов (см. 2-ой скрин) там тупо перестали создаваться юниты. Если кто нибудь сталкивался с такой проблемой помогите как ее решить.
[cut=Скрин 1]http://imglink.ru/show-image.php?id=ef8429aa1c576092b9149683f6e665d1[/cut] [cut=Скрин 2]http://imglink.ru/show-image.php?id=60e23aaab283f83bc17d4490e2314145[/cut]
P.S. Расскожите как добавлять скрины, а то пишет "запрещенны BBкоды([URL] и [IMG]) [/cut]
Сообщение отредактировал kpb_oxra - Пятница, 16.12.2016, 21:05 |
|
|
|
| Дата: Суббота, 17.12.2016, 00:17 | Сообщение # 4 |
Генералиссимус
Сообщений: 12997
|
По поводу первого скрина могу только сказать, что где-то у тебя проблема с логикой, так очень сложно понять... По скрину мало что понятно... хоть бы объяснил в чём суть...
НА счёт второго скрина. Без триггеров, которые или от которых зависит этот тоже ничего сказать особо нельзя. Телепатов нет.
Ты объясняй хоть принцип работы, как проверял проблемы. максимально подробно. Ты когда к врачу приходишь говоришь ему, что заболел и просишь полечить?
ты в первом посте добавил скрин, когда картинка добавляется, то рядом появляется что-то вроде $IMAGE1$, вот это нужно добавить в пост. А такие ББкоды доступны вроде только проверенным пользователям...
это Ксопик!
|
|
|
|
| Дата: Воскресенье, 18.12.2016, 12:34 | Сообщение # 5 |
Рядовой
Сообщений: 14
|
Я же уже говорил выше что я нашел свою проблему. Проблема заключается в кеше прочтите вот эту статью "http://xgm.guru/p/wc3/jass_cache_bugs" 1-ю ее часть.
[cut=Там написано:] При запуске сценария мы создаем в памяти Кеш и делаем в него записи. Когда мы выходим из сценария, записи должны удаляться. Должны то должны, но иногда этого не происходит. И тогда при следующем запуске игры могут остаться записи, относящиеся к несуществующим объектам. Это чревато ужасными глюками.[/cut]
Вот это у меня и происходит! Тама же есть и решение:
Код Create a game cache from SCV.w3v Clear (Last created game cache) Create a game cache from SCV.w3v Set cache = (Last created game cache)
Но я не знаю как его использовать. Это не похоже на jass, а похожих триггеров я не нашол. Прошу объяснить как использовать это решение.
[cut=Если интересно вот подробное, прям доскональное объяснение моих глюков:] Проблема 1 Волны начинаются с вот этого триггера:
Он срабатывает 1-н раз и запускается другим триггером, который проверяет когда все герои выбрали магии и перешли на базу. Это длинный триггер он много чего еще устанавливает в переменные, а заканчивается он так:
Он запускает триггер отвечающий за таймер. Вот он:
В нем вожно все до первого Иначе. Дальше уже идут всякие ивенты, дуэли и т.д. Короче этот триггер запускает таймер. Дальше запускается волны. Вот их триггер:
Этот триггер запускается когда истекает таймер. Он спавнит мобов записаных ранее из переменной с массивом. Массив это номер волны. Также этот триггер включает триггер отвечающий за конец волны. Вот он:
Тут проверяется умерли ли все юниты данной волны, потом очищаются переменные, в низу увеличивается номер волны и запускается триггер с таймером. И все вот так по кругу. В красной рамке устанавливаются логические переменные отвечающие за дуэли, боссов и т.д. Пример в синей. Эти логические проверяются в триггере с таймером и запускаются соответствующие триггеры, а вобще это не важно. И так проблема.: Начал игру, переместился на базу, и начался таймер 1-ой волны. Когда таймер закончился окно таймера уничтожается, но мобы не поевляются, а как вы помните уничтожение окна и спавн мобов в одном и том же триггере. И проблема не в переменной на которой установлен моб 1-ой волны, там все правельно. Как я уже говорил проблема в кеше.
Проблема 2 Немного истории следующего триггера.<br / Еще до того как герои попадут на базу они в магазинах покупают магии, которые добавляются в красный плюсик и качаются за лвл, но одну магию может купить тока один игрок и след.триггер отвечает за то что бы магии удалялись из магазинов. Есть еще 2 триггера которые с этим связаны. Один при инициализации запихивает все предметы в магазы, а другой отвечает за то что бы когда герой продавал предмет он возвращялся в магаз. [Для этого и нужна логическая. И еще ниже приведенный триггер отвечает за спелы Q и он один из 5 подобных отвечающих за разные спелы(Q W E R T) и в каждом из них есть данная проблема.] Так же логическая чтобы чтобы на одну букву один спел.) Триггер:
Короче краткое описание.: Если логика = ДА то предмет не дается и пишется типо "У вас уже имеется спел на Q", а если логика = НЕТ то установить логику на да(в черной рамке) и удалить предмет из магаза(в желтой рамке, а в синей аналогично тока с другими предметами). Проблема заключается в том что.: Когда я покупаю предмет в 1-ый раз идут все действия из рыжей рамки, а когда во 2-ой раз то по сути должно работать то что в зеленой рамке, но почему то срабатывает рандомное действие из желтой или синей рамки. Тем самым если я к примеру решил купить предмет "Благодать" (он не покупается потому что действие из зеленой рамки все еще действует получается я тупо на него кликнул и не что кроме надписи "У вас уже имеется спел на Q" не произошло) то из магазина удалился предмет "Молот бурь"(ну или любой другой). Я думал что то происходит с логической переменной написал 2-а текста, 1-н в зелен.рамке, 2-ой в рыжей рамке(см. в красных рамках). Так вот опять тыкаю на предмет он не покупается выскакивают надписи "У вас уже имеется спел на Q" и "если да" и все равно какой нибудь рандомный предмет удаляется из магаза.[/cut]
Заключение!!! Не ищите у меня другие баги, глюки или ошибки я сам их уже давно пытался найти и пытался АнтиБаг Триггер создавать и в конце концов я понял что это ошибка в Кеше так что чем писать что то другое лучше помогите разобраться с этой статьей "http://xgm.guru/p/wc3/jass_cache_bugs". Хотя может у меня и не кеш, а что то другое, я в таких вещах не очень то хорошо понимаю. Если тута есть какой нибудь гений WE может он хотя бы знает в чем у меня проблема и поможит.
Сообщение отредактировал kpb_oxra - Воскресенье, 18.12.2016, 12:52 |
|
|
|
| Дата: Воскресенье, 18.12.2016, 13:13 | Сообщение # 6 |
Генералиссимус
Сообщений: 5123
|
kpb_oxra, классно
Телеграм @Tshkn Мой YouTube-канал Se Squared
|
|
|
|
| Дата: Воскресенье, 18.12.2016, 15:31 | Сообщение # 7 |
Генералиссимус
Сообщений: 12997
|
В тиггере конец волны, ты сначала выключаешь триггер, а потом запускаешь другой... На всякий попробуй переставить их местами.
Что у тебя делает триггер prodaet magiy Q? Зачем ты его выключаешь, а потом включаешь?
Цитата kpb_oxra ( ) Я же уже говорил выше что я нашел свою проблему. Почем ты решил, что проблема именно в этом? Я глянул статью(на xgm), это не твоя проблема, кэш тут совершенно не при чём и быть не может. Но если хочется это использовать, то да, это jass. Чтобы его вставить в триггеры, нужно выбрать... кажется скрипт или что-то вроде того, сейчас не могу посмотреть. По сути там написано: Create a game cache from SCV.w3v - создать игровой кэш для "название файла твоей карты" Clear (Last created game cache) - Очистить (последний созданный кэш) Create a game cache from SCV.w3v - создать игровой кэш для "название файла твоей карты" Set cache = (Last created game cache) - установить кэш = (последний созданный кэш)
это Ксопик!
Сообщение отредактировал XOPYC - Воскресенье, 18.12.2016, 15:33 |
|
|
|
| Дата: Понедельник, 19.12.2016, 03:56 | Сообщение # 8 |
Рядовой
Сообщений: 14
|
Короче я щя попробовал добавить вот эти действия в начальный триггер:
Не помогло!!! Также сделал такое:
В черной рамке добавил текст, он показывается. Потом в красных рамках поставил без переменных(к сравнению в красных рамках должно быть примерно как в желтых). все равно юниты не создаются. Это само действие "Создать юнита" не работает.
Вот моя карта(3-им файлом) рвите ее на части может кто нибудь когда нибудь и разберется.
P.S.Первый баг идет после выбора героя, просто в любом магазине тыкайте на любой предмет где то 15-20 раз поймете. Потом купите 5-ть предметов, по 1-му в каждом магазе и идите в круг. Второй баг после окончания таймера.
|
|
|
|
| Дата: Понедельник, 19.12.2016, 15:02 | Сообщение # 9 |
Генералиссимус
Сообщений: 12997
|
Значит так. По поводу крипов - если ты добавляешь в переменную, то нельзя удалять их с карты, иначе ему(WE) нечего считывать будет. Либо создавай триггер по другому, либо меняй систему. Я удалил действие, которое ремувит юнитов в области КиллИх, сделал так, что при создании волны он удалял только конкретных, чтобы запустилась следующая волна, т.к. ты неправильно систему сделал. Грамотнее было бы создавать юнитов, добавлять их в целочисленную переменную и когда юнит умирает, переменную уменьшать на 1, когда она будет = 0, запускать таймер следующей волны. Кстати подобная система есть у нас на сайте.
на счёт магии... там вообще тихий ужас =) Во первых я могу создавать сколько угодно героев =) потом покупать им магии =) Так-что после выбора героя просто закрой туманом войны таверны. Короче говоря эту систему тебе нужно переделывать =) Более того, ты её слишком усложнил. Лучше давать магию сразу, а не предметами, а потом всё это устанавливать при попадании на основное поле. Лишний гемор. Больше сказать пока не могу.
Замеченные косяки: 1. после дуэли не появляется таймер волны. 2. если убить старых, то появляется куча таймеров отдыха (проблема возникла из-за того, что я изменил систему, но на всякий случай) 3. не запустилась [Истреблялка], возможно так-же из-за изменения системы волн
З.Ы. карты с изменениями прикрепил, можешь глянуть, править придётся, так как я не ставил целью исправить работу.
это Ксопик!
Сообщение отредактировал XOPYC - Понедельник, 19.12.2016, 15:07 |
|
|
|
| Дата: Вторник, 20.12.2016, 10:32 | Сообщение # 10 |
Рядовой
Сообщений: 16
|
Цитата kpb_oxra ( ) Если тута есть какой нибудь гений WE Хах, так и быть, ты меня вызвал)))
Кто я такой ? опыт создания карт на WE 15 лет, из более менее известных проектов Forest: Dead Match знаю: WE, GUI, jass, vjass
Цитата kpb_oxra ( ) у меня аж 65 триггеров В моей карте их 6 тысяч. Одновременно для каждого героя из 12! крутится ежесекундно,а некоторые и чаще - десятки триггеров.
Это я не для того, чтобы "понтануться", а для того, чтобы ты понял, кто тебе пишет следующее и надеюсь ты к этому реально прислушаешься и станешь действительно хорошим мапмейкером:
Я осмотрел твою карту. Признаться честно, мы с Хорусом давно так не ржали. Вспомнили свои начинания и решили тебе помочь. Хорус выше привел некоторые исправления в карте.
Я мельком почитал тут твои сообщения, и хочу до тебя донести: "ЗАБЕЙ НА УТЕЧКИ И КЭШ" - просто прям жирным текстом напиши себе это на бумагу и приклей на монитор. Видно, что ты лазил по сайтам где сидят якобы крутые jass'еры, которые готовы во всем винить утечки, пропагандировать учение jass, свои либы по устранению утечек и втирают, что все, кто не следит за утечками - делают гавно.
Если ты до сих пор читаешь, уже не плохо, у тебя есть шанс)) Так вот, гавно оно, что с утечками, что без - всё равно гавно. Поэтому первая твоя задача - это сделать хороший рабочий проект. Чтобы сделать хороший и рабочий проект - тебе не надо изучать Jass, кэш и утечки. Для примера моя карта перешла на jass и удаление утечек когда триггеры уже далеко перевалили за тысячу. И за 15 лет ни разу проблемы в кэше не было.
В чем могут быть виноваты утечки? В том, что игра начинает подтормаживать, в том, что через минут 30 играть из-за висяков невозможно, а после выхода из игры приходится ещё и компьютер перезагружать. НО ВСЁ ЭТО В ОНЛАЙН КАРТЕ И ПРИ ТРИГГЕРАХ БОЛЕЕ НЕСКОЛЬКИХ СОТЕН, А ТО И ТЫСЯЧИ.
Может и при меньшем количестве, если триггер сделан через жопу.
Все ошибки, которые я видел в твоей карте связаны с незнанием работы триггеров и не умением их использовать правильно. Поэтому лучше не выворачивай тут свои понты и амбиции, а реально прислушайся к тому, что советуют, и запомни, что ЛЮБОЙ КОСЯК - возникает только из-за не не знания триггеров или личного тупняка.
И никогда не делай триггеры "Антибаг" - этим ты зарываешь сам себя всё глубже в ошибки. Если что-то работает не правильно, то надо разобраться почему, а не закидывать проблему очередным шлаком, который потом тоже сломается или будет невозможно разобраться что здесь к чему. Не стесняйся спрашивать, если зашёл в тупик.
Помни, что человек ошибиться может, а машина нет.
|
|
|
|