SkiL
offline
Опыт:
9,321Активность: |
Хэш и таймер
» код
При клике правой кнопкой по врагу варкрафт зависает, приходиться перезагружать комп. не знаю что я такого наизменял, до этого кстати я смог добиться проигрывания анимации, но почему-то не наносился дамаг. Отредактировано SkiL, 23.03.2011 в 17:11. |
19.03.2011, 20:16 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
чозабред, где GetHandleId? И вообще куча бж. |
19.03.2011, 21:03 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
SkiL
offline
Опыт:
9,321Активность: |
Doc, ну это как бы после 0.01 секунды после начала игры, все юниты пикаются и им забиваются эти значения, где первый ключ - любая цифра, главное чтоб не повторялось, а второй ключ - его кастом валю, который задаётся ему до этого, переменной i, которая плюсуется после каждого пикнутого. куда здесь пристроить GetHandleId? |
19.03.2011, 21:09 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
SkiL, вместо GetUnitUserData(что у тебя является типа уникальным ключом юнита) нужно GetHandleId(что является ун. ключом юнита по умолчанию, зачем изобретать велосипед?) |
19.03.2011, 21:49 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
SkiL
offline
Опыт:
9,321Активность: |
Doc, спасибо, сейчас попробую, но ведь проблема не в этом была, покрайней мере эти записанные данные спокойно выводились на экран, там именно проблема в чём то другом. |
19.03.2011, 21:51 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
SkiL, хз, щас должен прийти ханабиши/ктото добрый и поправить тебе код. Я ошибки не вижу, правда и серьезно разбирать лень. Ах да, больше юзай отладочные сообщенияю. |
19.03.2011, 21:54 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
SkiL
offline
Опыт:
9,321Активность: |
Изменил первый пост, таки дело пошло, но теперь зависает комп. Дико прошу помощи. |
20.03.2011, 18:05 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hanabishi
COOL STATUS
offline
Опыт: отключен
|
SkiL, код фиговый, лень даже разбирать для чего он скажи что он должен делать |
20.03.2011, 18:28 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
SkiL
offline
Опыт:
9,321Активность: |
Hanabishi, если юнит отдаёт смарт на враждебного юнита, если булеан(записан в хэш на каждого юнита, точнее - первый ключ - 6, второй = хэндл юнита)равен нет - булеан становится "да"цели наносится дамаг, опять же записанный в хэш (3, хэндл) приказывающего юнита в хэш, затем запускается таймер, на него вешается приказывающий юнит. на колбеке таймера - функция reatack, где булеан становится "нет", можно кликать правой кнопкой снова, то есть я тут же отдаю триггерно смарт на цель приказа, которая записывается в хэш . что то типа системы боя. Отредактировано SkiL, 20.03.2011 в 18:41. |
20.03.2011, 18:35 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
хеш проинициализировал? |
22.03.2011, 17:13 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
код выкладывай, качать карту ради такого фуфла - бред.
по тому коду что написано - еретик, хеш работает как 2х мерный массив hash(1-250)[MASTER][SLAVE][VALUE] запись в одни и теже мастер-слейв ВНЕЗАПНО перезаписывают значения что были там раньше. |
22.03.2011, 17:15 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
SkiL
offline
Опыт:
9,321Активность: |
так, я нуб и опозорился, понял почему не записывались значения в хэш, я тупо забывал присваивать udg_hash последнюю созданную хэш-таблицу, но в коде который выложен в первом посту - вроде бы всё правльно, но если выводить эти записанные значения на экран - выводит нули, почему? DioD, и мастер и слэйв должны быть разными? я что не могу взять хэндл айди юнита, в качестве первого ключа, а в качестве второго - числа от 1 до 6, как у меня в коде? |
22.03.2011, 17:32 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
SkiL, необязательно разными, можешь. |
22.03.2011, 17:35 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
SkiL
offline
Опыт:
9,321Активность: |
Doc, так в первом же посте в коде они разные ну вот -
|
22.03.2011, 17:38 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Nekit1234007
offline
Опыт:
11,916Активность: |
SkiL, xgm.ru/p/wc3/debugging смотри что куда и как пишется в таблицу. |
22.03.2011, 18:18 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
SkiL
offline
Опыт:
9,321Активность: |
я так понял таймер запускается с периодом 0.00(я пытался выводить записанные эти значения, получались нули), поэтому падает комп, то есть в хэш таблице одни нули, но ёпт я же записываю. |
22.03.2011, 18:24 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
JimALIEN
вдупляет sc2 editor
offline
Опыт:
7,176Активность: |
ты каждые 0.01 сек создаеш новую хеш таблицу и забиваеш в нее всех юнитов на карте оО Вар должно быть корчица в агонии и просит пощады... Если уж причина и не в этом, то возможно в том, что когда у тебя заканчивается таймер, хеш-таблица под переменной udg_hash уже не будет той таблицей, которая была при запуске таймера, следовательно под адресом хендла таймера будет все пусто. |
23.03.2011, 01:46 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
JassMan
свободен
offline
Опыт:
4,193Активность: |
хеш таблицу можно инициализировать максимум 255 раз (или 256, поправьте если ошибаюсь) |
23.03.2011, 06:40 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
SkiL
offline
Опыт:
9,321Активность: |
JimALIEN, там же не каждые 0.01 секунд, а по истечению с начала игры
call TriggerRegisterTimerEventSingle( gg_trg_ini, 0.01 ) SkiL добавил: а на колбеке таймера висит функция reatack, она в самом верху кода. |
23.03.2011, 08:15 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
JimALIEN
вдупляет sc2 editor
offline
Опыт:
7,176Активность: |
а, точн, пардон. Ну тогда особых багов не вижу, разве что InitTrig_reatack_jass необязательно инициализировать тригер, это просто отдельная функция, вызываемая по истечению таймера. Хотя врядли проблема в этом |
23.03.2011, 16:42 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|