XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
NIKZ
Изучаю Jass
offline
Опыт: 6,036
Активность:
Поправьте код?
^^^^^^^^^^^^^
((код jass
function Respawn_NPC takes nothing returns nothing
local timer NPC_TIMER=GetExpiredTimer()
local integer h=GetHandleId(NPC_TIMER)
local unit NPC_UNIT=LoadUnitHandle(udg_Hash,h,1)
local real x = LoadReal(udg_Hash, h, 0)
local real y = LoadReal(udg_Hash, h, 1)
local string NameEffect
local string PointNameEffect
set udg_NameEffect=NameEffect
set udg_PointNameEffect=PointNameEffect
local unit NPC_NEWUNIT=CreateUnit(GetOwningPlayer(NPC_UNIT),GetUnitTypeId(NPC_UNIT),x,y,GetRandomReal(0,360))
if udg_DeleteBody == true then
call RemoveUnit(NPC_UNIT)
endif
if udg_SpecEffect == true then
call DestroyEffect(AddSpecialEffectTarget(NameEffect,NPC_NEWUNIT, PointNameEffect))
endif
call FlushChildHashtable(udg_Hash,h)
call DestroyTimer(NPC_TIMER)
set NPC_TIMER=null
set NPC_UNIT=null
set NPC_NEWUNIT=null
if udg_DisplayText == true then
call DisplayTimedTextToForce(GetPlayersAll(),1.0,udg_TextName)
endif
endfunction
function Trig_Respawn_loop_Conditions takes nothing returns boolean
return GetOwningPlayer(GetDyingUnit()) == Player(PLAYER_NEUTRAL_AGGRESSIVE)
endfunction
function Trig_Respawn_loop_Actions takes nothing returns nothing
local unit NPC_UNIT=GetDyingUnit()
local timer NPC_TIMER=CreateTimer()
local integer h=GetHandleId(NPC_TIMER)
local real x = GetUnitX(NPC_UNIT)
local real y = GetUnitY(NPC_UNIT)
call TimerStart(NPC_TIMER,udg_RespawnSeconds,false,function Respawn_NPC)
call SaveUnitHandle(udg_Hash,h,1,NPC_UNIT)
call SaveReal(udg_Hash, h, 0, x)
call SaveReal(udg_Hash, h, 1, y)
endfunction
function InitTrig_Respawn_loop takes nothing returns nothing
local trigger Respawn_loop=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(Respawn_loop, EVENT_PLAYER_UNIT_DEATH )
call TriggerAddCondition(Respawn_loop, Condition( function Trig_Respawn_loop_Conditions ))
call TriggerAddAction(Respawn_loop, function Trig_Respawn_loop_Actions )
endfunction
))
Старый 14.05.2012, 17:19
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
 function Trig_Respawn_loop_Actions takes nothing returns nothing
     local unit NPC_UNIT=GetDyingUnit()
    local timer NPC_TIMER=CreateTimer()
     local integer h=GetHandleId(NPC_TIMER)
     local real x = GetUnitX(NPC_UNIT)
     local real y = GetUnitY(NPC_UNIT)
 call TimerStart(NPC_TIMER,udg_RespawnSeconds,false,function Respawn_NPC)
call SaveUnitHandle(udg_Hash,h,1,NPC_UNIT)
call SaveReal(udg_Hash, h, 0, x)
call SaveReal(udg_Hash, h, 1, y)
 endfunction
обнуления нет
Старый 14.05.2012, 17:31
Nerevar
I'll be back!
offline
Опыт: 18,352
Активность:
Ты сохраняешь в одну и ту же ячейку с индексом 1 - и юнита и реальную=/
Старый 14.05.2012, 17:33
Hanabishi
COOL STATUS
offline
Опыт: отключен
Создавать эффект из пустой строки очень круто.
Hanabishi добавил:
Nerevar, так можно.
Старый 14.05.2012, 17:34
Nerevar
I'll be back!
offline
Опыт: 18,352
Активность:
Так то можно,но будет в ней к моменту выгружения храниться реальное ведь
Старый 14.05.2012, 17:35
Hanabishi
COOL STATUS
offline
Опыт: отключен
Nerevar, как ни странно, будут обе переменные хранится, для каждого типа своя. Это мне самому доказал недавно один товарищ.
Старый 14.05.2012, 17:39
Vadik29
Choice Battle 1.6а
offline
Опыт: 15,845
Активность:
    call SaveUnitHandle(udg_Hash,h,1,NPC_UNIT)
    call SaveReal(udg_Hash, h, 0, x)
    call SaveReal(udg_Hash, h, 1, y)
в одну ячейку сохраняешь 2 разных значения
    local real x = GetUnitX(NPC_UNIT)
    local real y = GetUnitY(NPC_UNIT)
    call TimerStart(NPC_TIMER,udg_RespawnSeconds,false,function Respawn_NPC)
    call SaveUnitHandle(udg_Hash,h,1,NPC_UNIT)
    call SaveReal(udg_Hash, h, 0, x)
    call SaveReal(udg_Hash, h, 1, y)
зачем делать так, если можно так?
    call SaveUnitHandle(udg_Hash,h,2,NPC_UNIT)
    call SaveReal(udg_Hash, h, 0, GetUnitX(NPC_UNIT))
    call SaveReal(udg_Hash, h, 1, GetUnitY(NPC_UNIT))
    call TimerStart(NPC_TIMER,udg_RespawnSeconds,false,function Respawn_NPC) //по моему лучше сначала сохранить значения, а уже потом стартовать таймер
Старый 14.05.2012, 18:17
NIKZ
Изучаю Jass
offline
Опыт: 6,036
Активность:
Hanabishi, лол у меня в глобалке эффект записан
NIKZ добавил:
Вобщем поправьте код пожалуйста. Прошуу))
Старый 14.05.2012, 18:38
Klop
Папа римский
offline
Опыт: 13,006
Активность:
Hanabishi:
Nerevar, как ни странно, будут обе переменные хранится, для каждого типа своя. Это мне самому доказал недавно один товарищ.
проверил не пашет
Старый 14.05.2012, 19:00
Nerevar
I'll be back!
offline
Опыт: 18,352
Активность:
проверил - пашет
пруф
Прикрепленные файлы
Тип файла: w3m 123.w3m (15.5 Кбайт, 4 просмотров )
Старый 14.05.2012, 19:12
Hanabishi
COOL STATUS
offline
Опыт: отключен
лол у меня в глобалке эффект записан
set udg_NameEffect=NameEffect
set udg_PointNameEffect=PointNameEffect
Ты присваиваешь глобалки к пустому месту, ок. Может тогда надо наоборот?
Старый 14.05.2012, 19:38
Nerevar
I'll be back!
offline
Опыт: 18,352
Активность:
Ответы даны(пост 2,7,11) - попробуйте поднапрячься и сделать на их основе вывод,решив проблему в коде
За вас тут делать никто ничего не будет - совсем распоясались=/

Отредактировано Nerevar, 14.05.2012 в 22:48.
Старый 14.05.2012, 22:04
NIKZ
Изучаю Jass
offline
Опыт: 6,036
Активность:
Вобщем не понял я как создать эффект из строки, пробывал кучу функций, но ничего((
помогете?)
Именно через глобалку надо
Старый 15.05.2012, 00:08
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
	set udg_NameEffect=NameEffect
	set udg_PointNameEffect=PointNameEffect
	set NameEffect = udg_NameEffect
	set PointNameEffect = udg_PointNameEffect
йомайо.
Старый 15.05.2012, 03:30
NIKZ
Изучаю Jass
offline
Опыт: 6,036
Активность:
Hatsume_Hate, не работмает =/ Ладно, с эффектом не буду заморачиваться, дальше буду спрашивать...
Старый 15.05.2012, 08:02
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 10:35.