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