спс
а вот тут что не так
function SPELL_ACT takes nothing returns nothing
if ( IsUnitInGroup(GetTriggerUnit(), udg_OtratALL[94]) == false ) {
SpellLink.execute(GetSpellAbilityId(), 0)
set udg_TrigerUnit = GetTriggerUnit()
set udg_IndexPlayer = GetUnitUserData(udg_TrigerUnit)
call DisplayTextToForce( GetPlayersAll(), I2S(udg_IndexPlayer) )
}
endfunction
===========================================================================
function InitTrig_SPELL_ACT takes nothing returns nothing
local trigger t = CreateTrigger()
local unit u = GetTriggerUnit()
call TriggerRegisterUnitEvent(t,u,EVENT_UNIT_SPELL_FINISH)
call TriggerAddAction(t, function SPELL_ACT )
set t = null
set u = null
endfunction
function SPELL_ACT takes nothing returns nothing
if ( IsUnitInGroup(GetTriggerUnit(), udg_OtratALL[94]) == false ) {
SpellLink.execute(GetSpellAbilityId(), 0)
set udg_TrigerUnit = GetTriggerUnit()
set udg_IndexPlayer = GetUnitUserData(udg_TrigerUnit)
call DisplayTextToForce( GetPlayersAll(), I2S(udg_IndexPlayer) )
}
endfunction
===========================================================================
function InitTrig_SPELL_ACT takes nothing returns nothing
local trigger t = CreateTrigger()
local integer i = 0
loop
call TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null)
set i = i + 1
exitwhen GetPlayerId(GetOwningPlayer(GetTriggerUnit())) == i
endloop
call TriggerAddAction(t, function SPELL_ACT )
set t = null
endfunction
вот что ана делать эта все
function InitTrig_SPELL_END takes nothing returns nothing
local trigger t = CreateTrigger()
local integer i =GetPlayerId(GetOwningPlayer(GetTriggerUnit()))
call TriggerRegisterPlayerUnitEvent(t,Player(i), EVENT_PLAYER_UNIT_SPELL_FINISH, null)
call TriggerAddAction(t, function SPELL_END )
set t = null
endfunction
как если loop
call TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null)
set i = i + 1
exitwhen i == GetPlayerId(GetOwningPlayer(GetTriggerUnit()))
сначало тригер потом + 1
ну как он может быть бесконечным если 1 пребовляеца сначало проверка событие потом +1 и ваше почему нелизя вместо цыкла от 0 до 10 зделать нахождение юнита сразу
я ставил начало и с -1 нефига
жали а есить возможносить добавить в юнита дополнителиный элемент типа целочисленая и задать например ей номер 1 и при обрашение к этому юниту получить доступ к этой переменой как к здоровю или мане
я создавал массив который сортеровал по игрококу а сечас решыл расшырить арсортимент иза воскрешение и призывов всяких
перепачинений и копирование
скажыти есть возможностить указать какой будет хендол у создоного обекта
или както приписать к нему не знаю целочисленое к которому можно будет узнать при обрашение к юниту
мне надо чтобы один и тотжы игрок мог исполизовать одного и товожы юнита в каличестве до 7 юнитов примерно
и способности одного не перебевали способности другова
способности с таймерами
а пример можеш написать далише я додумаю
одна из проблем я не как не могу правелиные параметры вписать в фунцую по причини малого количества знаний
всё я додумался set udg_IndexPlayer = GetHandleId(udg_TrigerUnit)-1040000
RAW CODE что это
RAW CODE это код который отвечает за тип юнита
но мне нужно узнать не тип а юнит ID
тип юнита можно и в редактори обектов узнать а ID юнита для каждого юнита своё
Сохраняю так:
Spell.create('A00V', 0, "Trig_Senka_Bjakuja_Actions", "Byakua")
Зарегистрировал триггер на все спелы и в нем
Spell.execute(GetSpellAbilityId(), 0)
В отладочном сообщении вижу NULL
Идеи?
Нашёл в чем дело тестом
SaveInteger(udg_Hash, 100, 0, 1000)
local integer test = LoadInteger(udg_Hash, 100, 0)
в test содержиться 0!
Удобно. Увидел возможность создавать объекты
struct SpellEngine
integer Ability
integer Name
string Func
endstruct
можно SpellEngine закинуть в HashTable ?
» WarCraft 3 / почему не работает Изменение структуры событие
» WarCraft 3 / почему не работает Изменение структуры событие
» WarCraft 3 / почему не работает Изменение структуры событие
» WarCraft 3 / почему не работает Изменение структуры событие
а вот тут что не так
function SPELL_ACT takes nothing returns nothing
if ( IsUnitInGroup(GetTriggerUnit(), udg_OtratALL[94]) == false ) {
SpellLink.execute(GetSpellAbilityId(), 0)
set udg_TrigerUnit = GetTriggerUnit()
set udg_IndexPlayer = GetUnitUserData(udg_TrigerUnit)
call DisplayTextToForce( GetPlayersAll(), I2S(udg_IndexPlayer) )
}
endfunction
function InitTrig_SPELL_ACT takes nothing returns nothing
local trigger t = CreateTrigger()
local unit u = GetTriggerUnit()
call TriggerRegisterUnitEvent(t,u,EVENT_UNIT_SPELL_FINISH)
call TriggerAddAction(t, function SPELL_ACT )
set t = null
set u = null
endfunction
» WarCraft 3 / почему не работает Изменение структуры событие
if ( IsUnitInGroup(GetTriggerUnit(), udg_OtratALL[94]) == false ) {
SpellLink.execute(GetSpellAbilityId(), 0)
set udg_TrigerUnit = GetTriggerUnit()
set udg_IndexPlayer = GetUnitUserData(udg_TrigerUnit)
call DisplayTextToForce( GetPlayersAll(), I2S(udg_IndexPlayer) )
}
endfunction
function InitTrig_SPELL_ACT takes nothing returns nothing
local trigger t = CreateTrigger()
local integer i = 0
loop
call TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null)
set i = i + 1
exitwhen GetPlayerId(GetOwningPlayer(GetTriggerUnit())) == i
endloop
call TriggerAddAction(t, function SPELL_ACT )
set t = null
endfunction
вот что ана делать эта все
» WarCraft 3 / почему не работает Изменение структуры событие
local trigger t = CreateTrigger()
local integer i =GetPlayerId(GetOwningPlayer(GetTriggerUnit()))
call TriggerRegisterPlayerUnitEvent(t,Player(i), EVENT_PLAYER_UNIT_SPELL_FINISH, null)
call TriggerAddAction(t, function SPELL_END )
set t = null
endfunction
» WarCraft 3 / почему не работает Изменение структуры событие
ну или прекрашять как тока активатар событие нашолся
» WarCraft 3 / почему не работает Изменение структуры событие
TriggerRegisterPlayerUnitEvent(t, Player(0), EVENT_PLAYER_UNIT_SPELL_EFFECT, null)
и только потом i=i+1
так
» WarCraft 3 / почему не работает Изменение структуры событие
call TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null)
set i = i + 1
exitwhen i == GetPlayerId(GetOwningPlayer(GetTriggerUnit()))
сначало тригер потом + 1
» WarCraft 3 / почему не работает Изменение структуры событие
я ставил начало и с -1 нефига
» WarCraft 3 / почему не работает Изменение структуры событие
» WarCraft 3 / как найти айди юнита
Ред. MATRITSA
» WarCraft 3 / как найти айди юнита
перепачинений и копирование
скажыти есть возможностить указать какой будет хендол у создоного обекта
или както приписать к нему не знаю целочисленое к которому можно будет узнать при обрашение к юниту
» WarCraft 3 / как найти айди юнита
и способности одного не перебевали способности другова
способности с таймерами
Ред. MATRITSA
» WarCraft 3 / как найти айди юнита
или можете готовые врянты предложыть чтобы в приделах 100 создаваца максимум могло
или есить команда на изменение хендола юнита
» WarCraft 3 / как найти айди юнита
одна из проблем я не как не могу правелиные параметры вписать в фунцую по причини малого количества знаний
всё я додумался set udg_IndexPlayer = GetHandleId(udg_TrigerUnit)-1040000
» WarCraft 3 / как найти айди юнита
RAW CODE это код который отвечает за тип юнита
но мне нужно узнать не тип а юнит ID
тип юнита можно и в редактори обектов узнать а ID юнита для каждого юнита своё
» WarCraft 3 / Проверка координат в окружности
Ред. MATRITSA
» WarCraft 3 / Мне нужно Сохранить точку Кругом
» WarCraft 3 / У меня не может сохраница карта
Ред. nvc123
» WarCraft 3 / У меня не запускаеца варик ошыпку не выдаёть
Spell.create('A00V', 0, "Trig_Senka_Bjakuja_Actions", "Byakua")
Зарегистрировал триггер на все спелы и в нем
Spell.execute(GetSpellAbilityId(), 0)
В отладочном сообщении вижу NULL
Идеи?
Нашёл в чем дело тестом
SaveInteger(udg_Hash, 100, 0, 1000)
local integer test = LoadInteger(udg_Hash, 100, 0)
в test содержиться 0!
» WarCraft 3 / У меня не запускаеца варик ошыпку не выдаёть
struct SpellEngine
integer Ability
integer Name
string Func
endstruct
можно SpellEngine закинуть в HashTable ?
» WarCraft 3 / У меня не запускаеца варик ошыпку не выдаёть