NIKZ
Изучаю Jass
offline
Опыт:
6,036Активность: |
Помогите с кодом
Помогите с этим кодом?
((код jass
scope Respawn initializer Init
private function Revive takes nothing returns nothing
local timer t=GetExpiredTimer() local unit u=GetDyingUnit() local location p=GetRectCenter(GetPlayableMapRect()) call ReviveHeroLoc(u, p, false) call RemoveLocation(p) set p = null set u = null endfunction private function Conditions takes nothing returns boolean
return IsUnitType(GetTriggerUnit(), UNIT_TYPE_HERO) == true endfunction private function Actions takes nothing returns nothing
local timer t=CreateTimer() call TimerStart(t, 2.0, false, function Revive) endfunction private function Init takes nothing returns nothing
local trigger t = CreateTrigger() call TriggerRegisterAnyUnitEventBJ( t, EVENT_PLAYER_UNIT_DEATH ) call TriggerAddCondition( t, Condition( function Conditions ) ) call TriggerAddAction( t, function Actions ) endfunction endscope
)) |
10.05.2012, 11:19 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sidhe
Unity3D engine
offline
Опыт:
7,721Активность: |
NIKZ, ты запустил функцию таймером, к которой не привязано действие, соответственно local unit u - вернет значение null, т.к. действие умершего в Action. Cоответственно нужно переносить в другую функцию юнита, привязав к переменной в Actions.
хешем, глобалкой, структурой и т.д. |
10.05.2012, 11:25 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NIKZ
Изучаю Jass
offline
Опыт:
6,036Активность: |
((код jass
scope Respawn initializer Init
globals
unit u endglobals private function Revive takes nothing returns nothing
local timer t=GetExpiredTimer() local location p=GetRectCenter(GetPlayableMapRect()) call ReviveHeroLoc(u, p, false) call RemoveLocation(p) set p = null set u = null endfunction private function Conditions takes nothing returns boolean
return IsUnitType(GetTriggerUnit(), UNIT_TYPE_HERO) == true endfunction private function Actions takes nothing returns nothing
local timer t=CreateTimer() set u=GetDyingUnit() call TimerStart(t, 2.0, false, function Revive) endfunction private function Init takes nothing returns nothing
local trigger t = CreateTrigger() call TriggerRegisterAnyUnitEventBJ( t, EVENT_PLAYER_UNIT_DEATH ) call TriggerAddCondition( t, Condition( function Conditions ) ) call TriggerAddAction( t, function Actions ) endfunction endscope
)) воть, но проблема - воозрождается один игрок |
10.05.2012, 11:31 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sidhe
Unity3D engine
offline
Опыт:
7,721Активность: |
потомучто глобалка одна, после повторного обращения к ней - она перезапишется последним заданным в нее юнитом =)))) вот это - один из примеров не МУИ скила.
вот пример с хешем: Код:
чтобы юзать хеш, нужно создать глобалку хеша+его инициализировать при старте карты 1 раз. Код:
ЗЫ возможно не прально написал в целом, потомучто "на коленке" пишу. проверишь сам в редакторе Отредактировано Sidhe, 10.05.2012 в 13:09. |
10.05.2012, 11:39 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
online
Опыт: отключен
|
для надёжности надо заменить на
» ?
"== true" ВООБЩЕ не должно быть. |
10.05.2012, 12:45 | #5
+3/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sidhe
Unity3D engine
offline
Опыт:
7,721Активность: |
ScorpioT1000, походит на параною =))
|
10.05.2012, 13:09 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
надо проверять на героя и на иллюзию, учите матчасть.
первый же код позорище и школоло, где отладочные сообщения? |
10.05.2012, 15:10 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sidhe
Unity3D engine
offline
Опыт:
7,721Активность: |
DioD, помоему досточно проверить тип юнита, герой в данном случае. Иллюзия насколько я знаю, от любого юнита - считается иллюзией и не более. Могу ошибаться конечно, но такие проверки занудные не делал
|
10.05.2012, 15:20 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
используй калькулятор люк...
лучше бы взял и проверил, считает он. |
10.05.2012, 15:21 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hanabishi
COOL STATUS
offline
Опыт: отключен
|
Даже если закрыть глаза на использование точек, всё равно кэп как бы намекает, что центр карты находится в координатах (0;0). Не прощё ли написать ReviveHero(u, 0, 0, false), чем делать кучу ненужных действий? Hanabishi добавил:
Короче, вот как надо:
|
10.05.2012, 15:48 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
online
Опыт: отключен
|
а хер, ты забыл, что границы карты можно сдвигать? более того, я видел карты с коордсами, заканчивающимися (!) на -16150, т.е. 0,0 - вообще не валидные координаты и приводят к вылету с фаталом. что бы вы без скорпи делали <3 |
10.05.2012, 17:10 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NIKZ
Изучаю Jass
offline
Опыт:
6,036Активность: |
Hanabishi, А зачем Хеш инициализировать миллион раз при сметри героя? Можно же в другм триггере создать ее. Или я не понял? |
10.05.2012, 18:36 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
online
Опыт: отключен
|
Нет, это инициализация переменной. |
10.05.2012, 18:45 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NIKZ
Изучаю Jass
offline
Опыт:
6,036Активность: |
Вобщем я понял так. Хеши используются для того чтобы сохранить переменную как глобальную перменную? |
10.05.2012, 19:02 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
online
Опыт: отключен
|
Хеш-таблица используется как мини-база данных. |
10.05.2012, 19:05 | #15
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hanabishi
COOL STATUS
offline
Опыт: отключен
|
NIKZ, лень статьи почитать чтоли? xgm.ru/p/wc3/hashtable |
10.05.2012, 19:16 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NIKZ
Изучаю Jass
offline
Опыт:
6,036Активность: |
Hanabishi, Не лень, они не понятливы, хоть там и раписано чуть чуть, но все равно когда читаешь нифига не понимаешь |
10.05.2012, 19:21 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
online
Опыт: отключен
|
|
10.05.2012, 21:08 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NIKZ
Изучаю Jass
offline
Опыт:
6,036Активность: |
Да лан закрывайте) |
10.05.2012, 21:17 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
Если непонятно - учи русский язык, в статьях все доступно. |
10.05.2012, 22:36 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|