![]()
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
)) |
![]() |
#1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Sidhe
Unity3D engine
![]() ![]() offline
Опыт:
7,721Активность: |
NIKZ, ты запустил функцию таймером, к которой не привязано действие, соответственно local unit u - вернет значение null, т.к. действие умершего в Action. Cоответственно нужно переносить в другую функцию юнита, привязав к переменной в Actions.
хешем, глобалкой, структурой и т.д. |
![]() |
#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
)) воть, но проблема - воозрождается один игрок |
![]() |
#3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Sidhe
Unity3D engine
![]() ![]() offline
Опыт:
7,721Активность: |
потомучто глобалка одна, после повторного обращения к ней - она перезапишется последним заданным в нее юнитом =)))) вот это - один из примеров не МУИ скила.
вот пример с хешем: Код:
чтобы юзать хеш, нужно создать глобалку хеша+его инициализировать при старте карты 1 раз. Код:
ЗЫ возможно не прально написал в целом, потомучто "на коленке" пишу. проверишь сам в редакторе Отредактировано Sidhe, 10.05.2012 в 13:09. |
![]() |
#4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ScorpioT1000
Работаем
![]() ![]() offline
Опыт: отключен
|
для надёжности надо заменить на
» ?
"== true" ВООБЩЕ не должно быть. |
![]() |
#5
+3/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Sidhe
Unity3D engine
![]() ![]() offline
Опыт:
7,721Активность: |
ScorpioT1000, походит на параною =))
|
![]() |
#6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
DioD
![]() ![]() offline
Опыт:
45,134Активность: |
надо проверять на героя и на иллюзию, учите матчасть.
первый же код позорище и школоло, где отладочные сообщения? |
![]() |
#7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Sidhe
Unity3D engine
![]() ![]() offline
Опыт:
7,721Активность: |
DioD, помоему досточно проверить тип юнита, герой в данном случае. Иллюзия насколько я знаю, от любого юнита - считается иллюзией и не более. Могу ошибаться конечно, но такие проверки занудные не делал
|
![]() |
#8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
DioD
![]() ![]() offline
Опыт:
45,134Активность: |
используй калькулятор люк...
лучше бы взял и проверил, считает он. |
![]() |
#9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Hanabishi
COOL STATUS
![]() ![]() offline
Опыт: отключен
|
Даже если закрыть глаза на использование точек, всё равно кэп как бы намекает, что центр карты находится в координатах (0;0). Не прощё ли написать ReviveHero(u, 0, 0, false), чем делать кучу ненужных действий? Hanabishi добавил:
Короче, вот как надо:
|
![]() |
#10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ScorpioT1000
Работаем
![]() ![]() offline
Опыт: отключен
|
а хер, ты забыл, что границы карты можно сдвигать? более того, я видел карты с коордсами, заканчивающимися (!) на -16150, т.е. 0,0 - вообще не валидные координаты и приводят к вылету с фаталом. что бы вы без скорпи делали <3 |
![]() |
#11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
NIKZ
Изучаю Jass
![]() ![]() offline
Опыт:
6,036Активность: |
Hanabishi, А зачем Хеш инициализировать миллион раз при сметри героя? Можно же в другм триггере создать ее. Или я не понял? |
![]() |
#12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ScorpioT1000
Работаем
![]() ![]() offline
Опыт: отключен
|
Нет, это инициализация переменной. |
![]() |
#13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
NIKZ
Изучаю Jass
![]() ![]() offline
Опыт:
6,036Активность: |
Вобщем я понял так. Хеши используются для того чтобы сохранить переменную как глобальную перменную? |
![]() |
#14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ScorpioT1000
Работаем
![]() ![]() offline
Опыт: отключен
|
Хеш-таблица используется как мини-база данных. |
![]() |
#15
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Hanabishi
COOL STATUS
![]() ![]() offline
Опыт: отключен
|
NIKZ, лень статьи почитать чтоли? xgm.ru/p/wc3/hashtable |
![]() |
#16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
NIKZ
Изучаю Jass
![]() ![]() offline
Опыт:
6,036Активность: |
Hanabishi, Не лень, они не понятливы, хоть там и раписано чуть чуть, но все равно когда читаешь нифига не понимаешь |
![]() |
#17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ScorpioT1000
Работаем
![]() ![]() offline
Опыт: отключен
|
|
![]() |
#18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
NIKZ
Изучаю Jass
![]() ![]() offline
Опыт:
6,036Активность: |
Да лан закрывайте) |
![]() |
#19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Doc
![]() offline
Опыт:
63,163Активность: |
Если непонятно - учи русский язык, в статьях все доступно. |
![]() |
#20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|