FKoFF
Venomancer 89lvl. Europe
offline
Опыт:
5,975Активность: |
Respawn на джассе.
Итак, после длительного мучения с call polledwait(xx) и соответсвующими глюками решил сделать респавн героев через таймеры и функции. итого получилось следующее (внимание, я не джассер а лишь гуишник мееелкими шажками осваивающий джасс).
Итого, добавил функции (незнаю, рабочие или нет): function respally takes unit u returns nothing
call ReviveHeroLoc( u , GetRectCenter(gg_rct_Hero_allie_respawn), true ) call CameraSetupApplyForPlayer( true, gg_cam_Camera_001, GetOwningPlayer(u), 0.80 ) endfunction function respundead takes unit u returns nothing
call ReviveHeroLoc( u , GetRectCenter(gg_rct_HeroRespUndead), true ) call CameraSetupApplyForPlayer( true, gg_cam_Camera_011, GetOwningPlayer(u), 0.80 ) endfunction далее, для вызова данных функций использую следующие действия:
local unit u = GetTriggerUnit()
local timer = CreateTimer call CreateTimer(t) далее гуишный изен на проверку пренадлежности к одной из двух противоборствующих фракций и код запуска таймера:
call TimerStart(t, ( I2R(GetHeroLevel(GetTriggerUnit())) * 3.00 ) ), false, respundead(u)) call TimerStart(t, ( I2R(GetHeroLevel(GetTriggerUnit())) * 3.00 ) ), false, respally(u))
Вопрос, тут есть ошибки? если есть то укажите на них. |
13.04.2010, 21:01 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
XOR
offline
Опыт:
38,284Активность: |
смотри систему agentex'a тогда уж =) |
13.04.2010, 21:02 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FKoFF
Venomancer 89lvl. Europe
offline
Опыт:
5,975Активность: |
я слишком плохо знаю джасс что бы разобрать данную систему |
13.04.2010, 21:13 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
повышай уровень знаний тогда.
вы бы не допускали эти самые ошибки если бы прочитали хоть одну статью по джаз, так что всё в ваших руках. |
13.04.2010, 21:34 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FKoFF
Venomancer 89lvl. Europe
offline
Опыт:
5,975Активность: |
читал, слишком много там того что я не могу понять покачто, как например в статье от сергея уже огнемет я не могу разобрать. |
13.04.2010, 21:39 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
читайте до тех пор пока не поймёте. |
13.04.2010, 21:50 | #6
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
silumin
offline
Опыт:
11,153Активность: |
Ошибок до чёртиков, но в общем ход мысли правельный..
» Код Код:
Отредактировано silumin, 14.04.2010 в 00:33. |
13.04.2010, 22:42 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FKoFF
Venomancer 89lvl. Europe
offline
Опыт:
5,975Активность: |
спасибо за код, остался один минус, выдает ошибку следующего содержания:
Invalid numbers of arguments
c cылкой на строчку
call FlushChildHashtable(GetHandleId(t))
для хэштаблицы использовал
udg_hash
и собственно везде где была ссылка на хэш - её вписал. а что делать с этими строчками?
FKoFF добавил:
кошмар, то ли у меня совсем кривые руки, то ли еще в чем то дело. вообщем как итог, после получаса мучений с данным кодом у меня выдает 6к ошибок, если триггер на респавн включен, если же он выключен - ошибок не выдает. Что делать? |
13.04.2010, 23:47 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
bee
vjass.optimizer
offline
Опыт:
16,615Активность: |
про ошибку: call FlushChildHashtable(GetHandleId(t), udg_hash)
bee добавил: если выдаст ошибку поменяй аргументы местами. |
14.04.2010, 00:10 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
silumin
offline
Опыт:
11,153Активность: |
FKoFF, ну да точно, не указал аргумент, бывает...
bee, в хт-функциях 1й аргумент - всегда ссылка на хеш-таблицу. Я так запомнил. По ошибке:.. call FlushChildHashtable(udg_hash, GetHandleId(t)) |
14.04.2010, 00:30 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FKoFF
Venomancer 89lvl. Europe
offline
Опыт:
5,975Активность: |
что то тут не так.... вообщем импортировал код в карту, после этого при попытке сохранить компилятор объявил функцию на создание ГУИШНОГО таймера (для отображения в мультибоарде) - нерабочей.
Это ладно, сделал отдельный триггер на создание этого самого таймера при смерти юнита. После этого при попытке сохранить компилятор порадовал меня ошибкой с сылкой на строчку
set u = null в конце триггера. Ктонибудь может объяснить что это за барабашки такие? FKoFF добавил:
после set u = null компилятор объявил строчку set t = null так же нерабочей, и вообщем то послее её удаления начал объявлять нерабочими все функции без перебору которые относятся к триггеру (даже строчку =============) FKoFF добавил: так, все, вроде после часового мучения заставил это работать. всем спасибо. ) |
14.04.2010, 01:35 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
bee
vjass.optimizer
offline
Опыт:
16,615Активность: |
FKoFF, вероятно у тебя нет Jass New Gen Pack |
14.04.2010, 12:50 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|