14

» 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
14

» 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 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
вот что ана делать эта все
14

» WarCraft 3 / почему не работает Изменение структуры событие

а вот так почему фаталить
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
14

» WarCraft 3 / почему не работает Изменение структуры событие

нет ано может быть и для других но я хочю без цыкла определять владелица
ну или прекрашять как тока активатар событие нашолся
14

» WarCraft 3 / почему не работает Изменение структуры событие

хорошо а если
TriggerRegisterPlayerUnitEvent(t, Player(0), EVENT_PLAYER_UNIT_SPELL_EFFECT, null)
и только потом i=i+1
так
14

» WarCraft 3 / почему не работает Изменение структуры событие

как если loop
call TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null)
set i = i + 1
exitwhen i == GetPlayerId(GetOwningPlayer(GetTriggerUnit()))
сначало тригер потом + 1
14

» WarCraft 3 / почему не работает Изменение структуры событие

ну как он может быть бесконечным если 1 пребовляеца сначало проверка событие потом +1 и ваше почему нелизя вместо цыкла от 0 до 10 зделать нахождение юнита сразу
я ставил начало и с -1 нефига
14

» WarCraft 3 / как найти айди юнита

жали а есить возможносить добавить в юнита дополнителиный элемент типа целочисленая и задать например ей номер 1 и при обрашение к этому юниту получить доступ к этой переменой как к здоровю или мане
14

» WarCraft 3 / как найти айди юнита

я создавал массив который сортеровал по игрококу а сечас решыл расшырить арсортимент иза воскрешение и призывов всяких
перепачинений и копирование
скажыти есть возможностить указать какой будет хендол у создоного обекта
или както приписать к нему не знаю целочисленое к которому можно будет узнать при обрашение к юниту
Загруженные файлы
14

» WarCraft 3 / как найти айди юнита

мне надо чтобы один и тотжы игрок мог исполизовать одного и товожы юнита в каличестве до 7 юнитов примерно
и способности одного не перебевали способности другова
способности с таймерами
14

» WarCraft 3 / как найти айди юнита

а может предложыть еше
или можете готовые врянты предложыть чтобы в приделах 100 создаваца максимум могло
или есить команда на изменение хендола юнита
14

» WarCraft 3 / как найти айди юнита

а пример можеш написать далише я додумаю
одна из проблем я не как не могу правелиные параметры вписать в фунцую по причини малого количества знаний
всё я додумался set udg_IndexPlayer = GetHandleId(udg_TrigerUnit)-1040000
14

» WarCraft 3 / как найти айди юнита

RAW CODE что это
RAW CODE это код который отвечает за тип юнита
но мне нужно узнать не тип а юнит ID
тип юнита можно и в редактори обектов узнать а ID юнита для каждого юнита своё
14

» WarCraft 3 / Мне нужно Сохранить точку Кругом

Мне нужно записать в переменную точку куда нажал мышкой игрок Юнит в радиусе 1200 от дами юнита в радиосе круга квадрат не подходит
14

» WarCraft 3 / У меня не запускаеца варик ошыпку не выдаёть

Сделал такой класс
struct Spell
        integer Ability
        string Name
        string Func
        
        static method create takes integer pAbility, integer pAct, string pFunc, string pName returns thistype
            thistype this = thistype.allocate()
            set this.Ability = pAbility
            set this.Name = pName
            set this.Func = pFunc
            SaveInteger(udg_Hash, pAbility, pAct, this)
            call DisplayTimedTextToPlayer(Player(0), 0,0,60, pFunc)
            return this
        endmethod
        
        static method execute takes integer pAbility, integer pAct returns nothing
            thistype this = LoadInteger(udg_Hash, pAbility, pAct)
            call DisplayTimedTextToPlayer(Player(0), 0,0,60, this.Func)
            ExecuteFunc(this.Func)
        endmethod
endstruct
Сохраняю так:
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!
14

» WarCraft 3 / У меня не запускаеца варик ошыпку не выдаёть

Удобно. Увидел возможность создавать объекты
struct SpellEngine
integer Ability
integer Name
string Func
endstruct
можно SpellEngine закинуть в HashTable ?
14

» WarCraft 3 / У меня не запускаеца варик ошыпку не выдаёть

Тут можно создавать структуры? Тогда одно поле должно быть типы code? Что туда присвоить триггер.