Вылет карты с ИИ
|
|
SirNikolas | Дата: Вторник, 24 Января 2012, 16:43:02 | Сообщение # 1 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
|
|
|
|
|
Laonda | Дата: Вторник, 24 Января 2012, 16:43:12 | Сообщение # 2 |
4 уровень
Группа: Пользователи
Сообщений: 81
Награды: 0
Репутация: 15
Блокировки:
| Таакс.. сделал я свой ИИ тоже.
Но столкнулся с одной проблемой.
В процессе игры против 9ти ботов вылетает ошибка" фатальная ошибка, ...процесс обратился к памяти по адресу.. память не может быть прочитана"
Лавсон, ты сталкивался с такой ерундой?
На сколько я понимаю мои тригги тупо засрали всю озу отведенную под варик)) Есть какие-то стандартные причины возникновения этой ошибки?
ИИ состоит из 4 jass функций + 20 триггеров на гуи (парочка CS)
выкладывать и тд не собираюсь, хочу услышать лишь возможные причины.
Надеюсь кто-нибудь ответит адекватнее чем: "фу гуи, переведи ВСЁ на jass" - не проблема кЭп. вопрос в другом.Добавлено (22 Январь 2012, 12:34:47) --------------------------------------------- Ещё ума не прилажу:
если отдать приказ 9 домам строить рабов, то это вызывает лаги О_о по сути там только loop И это действие - приказ на тренировку.
Основатель команды "Компьютерные Акулы" Г. Разработчик проекта: Forest: Dead Match Признанный сансей картостроения в wc3 Ищу Дизайнеров/Художников на бесплатную основу. Скайп: Don.Laonda В зависимости от качества и объема работ, можно говорить и о платной основе.
|
|
|
|
Ty3uK | Дата: Вторник, 24 Января 2012, 16:43:22 | Сообщение # 3 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Варик тащит столько оперативки, сколько ему нужно. Чтобы засрать всю твою фактическую оперативку нужны страшные действия. Банальные операции выполнял? Обнуление, удаление? И мы не экстрасенсы, все же показать надо
|
|
|
|
SirNikolas | Дата: Вторник, 24 Января 2012, 16:43:32 | Сообщение # 4 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Quote (Laonda) Насколько я понимаю, мои тригги тупо засрали всю озу, отведенную под варик)) Это называется "утчеки памяти". Решение смотри у меня в подписи.Quote (Ty3uK) Чтобы засрать всю твою фактическую оперативку, нужны страшные действия. Смотря сколько оперативки.
|
|
|
|
Laonda | Дата: Вторник, 24 Января 2012, 16:43:42 | Сообщение # 5 |
4 уровень
Группа: Пользователи
Сообщений: 81
Награды: 0
Репутация: 15
Блокировки:
| Quote (Laonda) хочу услышать лишь возможные причины.
Quote (Ty3uK) мы не экстрасенсы, все же показать надо Quote (Laonda) " фатальная ошибка, ...процесс обратился к памяти по адресу.. память не может быть прочитана" Quote (Laonda) хочу услышать лишь возможные причины. Добавлено (22 Январь 2012, 20:55:00) --------------------------------------------- а решения я и сам прекрасно найду. Quote (Ty3uK) нужны страшные действия По жизни не встречал действия более ужасного чем бесконечный цикл.
Надеюсь, кто-нибудь кроме меня предположит ещё хотя-бы 1-2 причины такой ошибки =\ Мне почему-то казалось что все элементарно и ошибка очевидна, ан нет =\
Основатель команды "Компьютерные Акулы" Г. Разработчик проекта: Forest: Dead Match Признанный сансей картостроения в wc3 Ищу Дизайнеров/Художников на бесплатную основу. Скайп: Don.Laonda В зависимости от качества и объема работ, можно говорить и о платной основе.
|
|
|
|
Ty3uK | Дата: Вторник, 24 Января 2012, 16:43:52 | Сообщение # 6 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Более ужасное, чем бесконечный цикл является конечный цикл с созданием юнитов и не обнулением переменных. А причин такой ошибки может быть море, так что опять же- мы не экстрасенсы
|
|
|
|
Laonda | Дата: Вторник, 24 Января 2012, 16:44:02 | Сообщение # 7 |
4 уровень
Группа: Пользователи
Сообщений: 81
Награды: 0
Репутация: 15
Блокировки:
| Quote (Ty3uK) Более ужасное, чем бесконечный цикл является конечный цикл с созданием юнитов и не обнулением переменных Очень спорное и странное изречение, мой вариант повесит систему, ваш не сразу и может вообще не повесить.
Я вас не спрашиваю как код переделать, неужели не понятно? Я спрашиваю о возможных причинах по которым выдается эта ошибка.
Если моё предположение на счет озу верно, то я тут попросту теряю своё время рассуждая о какой-то ерунде и читая прописные истины(
Основатель команды "Компьютерные Акулы" Г. Разработчик проекта: Forest: Dead Match Признанный сансей картостроения в wc3 Ищу Дизайнеров/Художников на бесплатную основу. Скайп: Don.Laonda В зависимости от качества и объема работ, можно говорить и о платной основе.
|
|
|
|
_Nerevar_ | Дата: Вторник, 24 Января 2012, 16:44:12 | Сообщение # 8 |
2 уровень
Группа: Пользователи
Сообщений: 23
Награды: 0
Репутация: 0
Блокировки:
| Причиной этого могут служить утечки,причём в промышленных масштабах.Либо создание бесконечного цикла.Либо попытка что-либо совершить с несуществующим объектом,либо хз - скажите какими действиями чаще всего пользуетесь.
|
|
|
|
Ty3uK | Дата: Вторник, 24 Января 2012, 16:44:22 | Сообщение # 9 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Как бэ бесконечный цикл не всегда может повесить игру- прибавляем в нем к числу число и игра не зависнет. Факт. Ваши доводы прах, уважаемый
|
|
|
|
_Nerevar_ | Дата: Вторник, 24 Января 2012, 16:44:32 | Сообщение # 10 |
2 уровень
Группа: Пользователи
Сообщений: 23
Награды: 0
Репутация: 0
Блокировки:
| Я ведь не указывал какие действия будут в нём выполняться,так что " Ваши доводы прах, уважаемый"
|
|
|
|
Laonda | Дата: Вторник, 24 Января 2012, 16:44:42 | Сообщение # 11 |
4 уровень
Группа: Пользователи
Сообщений: 81
Награды: 0
Репутация: 15
Блокировки:
| О) Невера или Лавсона я и ждал)
Чаще всего используются в ГУИ - Picked unit остальное условия и кустом скрипт. 90% экшенов таймеры.
Понравился вариант с несуществующим объектом) Как это например? если обратиться к массиву по индексу который не задан ещё?
И ещё есть 1 триг который заставляет игру виснуть. Понятия не имею как у него это получается: http://c-sharks.ru/img/wtf.jpg
экшен там 1.2 сек
при срабатывании вызывает подвисание, заметно особенно когда компов 9.
Основатель команды "Компьютерные Акулы" Г. Разработчик проекта: Forest: Dead Match Признанный сансей картостроения в wc3 Ищу Дизайнеров/Художников на бесплатную основу. Скайп: Don.Laonda В зависимости от качества и объема работ, можно говорить и о платной основе.
|
|
|
|
Ty3uK | Дата: Вторник, 24 Января 2012, 16:44:52 | Сообщение # 12 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Забавно видеть, как человек юзает кучу бж на проверку расы и количества юнитов, а потом через кс пишет нативку на ордер. По сабжу- из-за множества иф в цикле может быть трабла. На жассе есть отличный оператор elseif, который может здорово упростить жизнь Добавлено (23 Январь 2012, 08:58:05) --------------------------------------------- А вообще, циклы на игроков часто тормозят. Особенно циклы с созданием одного юнита для каждого (например, рандом)
|
|
|
|
Laonda | Дата: Вторник, 24 Января 2012, 16:45:02 | Сообщение # 13 |
4 уровень
Группа: Пользователи
Сообщений: 81
Награды: 0
Репутация: 15
Блокировки:
| Ty3uK, вас хлебом не корми, дай ток поумничать. Quote (Ty3uK) По сабжу- из-за множества иф в цикле может быть трабла. Quote (Ty3uK) А вообще, циклы на игроков часто тормозят. Особенно циклы с созданием одного юнита для каждого (например, рандом) Но вот так вот если б вы отвечали, было б гораздо лучше) спс.
Основатель команды "Компьютерные Акулы" Г. Разработчик проекта: Forest: Dead Match Признанный сансей картостроения в wc3 Ищу Дизайнеров/Художников на бесплатную основу. Скайп: Don.Laonda В зависимости от качества и объема работ, можно говорить и о платной основе.
|
|
|
|
Ty3uK | Дата: Вторник, 24 Января 2012, 16:45:12 | Сообщение # 14 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Я не умничаю, просто чтобы показать на практике нужно объяснить теорию. В любом случае извините, если вас это задело
|
|
|
|
_Nerevar_ | Дата: Вторник, 24 Января 2012, 16:45:22 | Сообщение # 15 |
2 уровень
Группа: Пользователи
Сообщений: 23
Награды: 0
Репутация: 0
Блокировки:
| На самом деле лучше бы подобные действия с проверками сразу писать на джассе,ибо на гуи все условия - это вызовы дополнительных функций,которые вызывают ещё другие в ходе проверки(а если это бж то может вызываться куча других) == в момент такой "проверки" будет вызываться куча функций,что в данном случае нагружает систему. Добавлено (23 Январь 2012, 11:38:23) --------------------------------------------- ............................................................................................................................................ ..................................Да и конверт подобных условий из гуи в джасс с последующей оптимизацией должно доставлять море незабываемых очучений
|
|
|
|
Ty3uK | Дата: Вторник, 24 Января 2012, 16:45:32 | Сообщение # 16 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Угу, я их все испробовал, когда переводил свою карту с гуи на жасс
|
|
|
|
SirNikolas | Дата: Вторник, 24 Января 2012, 16:45:42 | Сообщение # 17 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Quote (Laonda) мой вариант повесит систему Нет. Бесконечный цикл в самой простой форме (loop/endloop) не может повесить игру, т. к. в JASS существует лимит операций внутри потока. Как только он превышается, war3 пересоздает поток. Хотя если взять периодический таймер на .0 секунд или зацикливание ExecuteFunc, тогда игра просто зависнет. Если же зациклить триггеры (call TriggerExecute(GetTriggeringTrigger())), игра вылетит без ошибки.
Так что это не может быть из-за бесконечного цикла ни в одной его форме. Скорее всего, дело именно в утечках. Решение я уже предлагал.
|
|
|
|
Laonda | Дата: Вторник, 24 Января 2012, 16:45:52 | Сообщение # 18 |
4 уровень
Группа: Пользователи
Сообщений: 81
Награды: 0
Репутация: 15
Блокировки:
| Разве утечки не сопровождаются лагами?)) Имхо если крайне тупых действий через графический интерфейс не делать то игра вполне себе нормально работает...
Вариант с бесконечным циклом я отбросил сразу же т.к. у меня нет такого уж точно.
Утечки они канеш волнуют душу фанатов jass и фанатов затирания хендлов на юнитов, а так же всех, кто верит в то что ссылка типа на точки сможет повесить комп.
Имхо дело не в утечках и не в циклах и не в (убранноц ензурой)ГУИ
Скорее всего конфликт случается из-за скиллов героев. Помнится в 1.18 варика я воевал с "Похищение жизни" я пытался сделать из него вампирик и выставил ему длитеьность 1-2 сек. В итоге герой применив заклинание стоял и дальше после 2ух сек в состоянии каста и далее игра себя вела непредсказуемо, выдавала кстати ту же ошибку. Возможно в чем то другом косяк. Но не в том каким гемором код написан.
Игра не лагает вообще, через 5 минут после начала. и потом БАЦ. Былиб утечки она б начинала подвисать..сильнее сильнее сильнее и ток тогда может быть БАЦ.
Quote (_Nerevar_) На самом деле лучше бы подобные действия с проверками сразу писать на джассе,ибо на гуи все условия... Поверьте, прекрасно знаю из чего они состоят. Вот только, какие и сколько условий не ставь, виснет именно из-за той натив функции.
Но вот борясь с лагами в первые 5 минут игры, начал переписывать триг на жасс. Кстати не понимаю о каких вы очучениях тут пишите... я лично разницы в этом не вижу. что с нуля сразу писать что переделывать.
Так вот.. переписал всю подсистему строительства и на последнем триггере сталкнулся с "отсутствует код оператора"
Code function Trig_Start_Build_tower_new_Actions takes nothing returns nothing local integer I = 1 local integer n = 1 local real R local location L local unit U If ((CountUnitsInGroup(GetUnitsOfPlayerAndTypeId(Player(I), 'h00F')) == 3)) then set n = 93 endif endfunction
//=========================================================================== function InitTrig_Start_Build_tower_new takes nothing returns nothing set gg_trg_Start_Build_tower_new = CreateTrigger( ) call DisableTrigger( gg_trg_Start_Build_tower_new ) call TriggerRegisterTimerEventPeriodic( gg_trg_Start_Build_tower_new, 5.48 ) call TriggerAddAction( gg_trg_Start_Build_tower_new, function Trig_Start_Build_tower_new_Actions ) endfunction
Основатель команды "Компьютерные Акулы" Г. Разработчик проекта: Forest: Dead Match Признанный сансей картостроения в wc3 Ищу Дизайнеров/Художников на бесплатную основу. Скайп: Don.Laonda В зависимости от качества и объема работ, можно говорить и о платной основе.
|
|
|
|
SirNikolas | Дата: Вторник, 24 Января 2012, 16:46:02 | Сообщение # 19 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| "if" с маленькой буквы. Как и все ключевые слова в JASS. Добавлено (23 Январь 2012, 14:35:34) ---------------------------------------------
Quote (Laonda) Разве утечки не сопровождаются лагами?)) Может быть, на сильных компах и нет.
|
|
|
|
Laonda | Дата: Вторник, 24 Января 2012, 16:46:12 | Сообщение # 20 |
4 уровень
Группа: Пользователи
Сообщений: 81
Награды: 0
Репутация: 15
Блокировки:
| )) спс выручил. А я блин забыл про это, сижу голову ломаю) в одном триггере работает, в другом нет, даже не заметил, что if с заглавной уже начал было на WE грешить.
Тыкнул по твоей наработке)) Вот ею бы проверил карту. уверен что вылетит даже если твой код подчистит все утечки, но нет желания в 287ми триггерах вставлять cs с отменой удаления точки (
Основатель команды "Компьютерные Акулы" Г. Разработчик проекта: Forest: Dead Match Признанный сансей картостроения в wc3 Ищу Дизайнеров/Художников на бесплатную основу. Скайп: Don.Laonda В зависимости от качества и объема работ, можно говорить и о платной основе.
|
|
|
|
_Nerevar_ | Дата: Вторник, 24 Января 2012, 16:46:22 | Сообщение # 21 |
2 уровень
Группа: Пользователи
Сообщений: 23
Награды: 0
Репутация: 0
Блокировки:
| If => if Условие "if" начиналось с большой буквыДобавлено (23 Январь 2012, 14:55:32) --------------------------------------------- Опоздал
|
|
|
|
Ty3uK | Дата: Вторник, 24 Января 2012, 16:46:32 | Сообщение # 22 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Видимо статью Ажаццио ты не читал. Про утечки он там многое рассказывает. Равно как и про точки, хэндлы и агенты. Причем, не только варик лагает при избытке неудаленных и необнуленных хэндлов. Я пишу скрипты на js, если создать кучу объектов и не удалить их, то минимум- повесится браузер, а как максимум- и весь комп Добавлено (23 Январь 2012, 14:56:49) --------------------------------------------- Это я Лаонде
|
|
|
|
SirNikolas | Дата: Вторник, 24 Января 2012, 16:46:42 | Сообщение # 23 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Если ты имеешь в виду, что ты в 287 триггерах сам используешь RemoveLocation, то оно не будет конфликтовать. А насчет таких ошибок - советую скачать одну из этих двух прог (или обе). JassCraft JASS NewGen Pack
|
|
|
|
Laonda | Дата: Вторник, 24 Января 2012, 16:46:52 | Сообщение # 24 |
4 уровень
Группа: Пользователи
Сообщений: 81
Награды: 0
Репутация: 15
Блокировки:
| Ty3uK, не пойму с чего ты взял, что я не знаю этого. Я о том, что у 99% тех кто знает jass, при виде триггеров сделанных через графический интерфейс сразу же - язык на плечо и надо вдалбливать что GUI корень зла. И в данном случае, по моему мнению - дело не в утечках, а различные посты с какими-то доказательствами или демонстрацией того как вы хорошо знаете jass это всего лишь фарс.. даже "понт" и не более.
Почему я так это воспринимаю: 1) Я читаю элементарные и ясные мне вещи 2) мне они бесполезны 3) если б я не знал этих вещей, то ваши посты вызвали бы только ещё большее кол-во вопросов.
Да и кто такой этот Ажаццио, чтоб я его знал? Уверен он меня не знает например и вы не знаете кто я такой Очередной форумчанин благодаря которому усидчивые новички способны осознать суть утечек? =\
Начинаю задумываться.. быть может это у меня на уровне подсознания неприязнь к Тузику?)) А то я смотрю со стороны и всегда мои более менее негативные посты в его адрес))
Основатель команды "Компьютерные Акулы" Г. Разработчик проекта: Forest: Dead Match Признанный сансей картостроения в wc3 Ищу Дизайнеров/Художников на бесплатную основу. Скайп: Don.Laonda В зависимости от качества и объема работ, можно говорить и о платной основе.
|
|
|
|
Ty3uK | Дата: Вторник, 24 Января 2012, 16:47:02 | Сообщение # 25 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Ну мб, я весь такой негативный. В целом, гуи и есть корень зла- близзы в нем много где сделали бяку. Да и логику у новичков он не в ту сторону поворачивает. Ну а насчет Ажаццио... Отличный кодер и человек, у него статья хорошая есть, могу дать ссылку Добавлено (23 Январь 2012, 15:41:22) --------------------------------------------- Да и жасс я знаю не так хорошо, как тот же Ажаццио или Ник. Или Дуос. Мне до них, как на велосипеде до луны
|
|
|
|