отличие в размере комента
если хочеш могу скинуть полную систему(добавление и удаление) на vjass а ты её переведёш на гуи
инвентарь который не будет занимать место на карте?
это что мультибоард чтоли
вопервых ты в 1 и ту же ячейку пытаешся записать 2 значения (location и integer)
во вторых ты создаёш область по кординатам а следующей строчкой находиш эти же кординаты с помощью функций
в 3 ты сохранял точку в хэш и сразу же удалял её
и в 4 ты не инициализировал хэш
function Trig_SlayerUlt_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A00V'
endfunction
function Ultaction takes nothing returns nothing
local timer st = GetExpiredTimer()
local integer sid = GetHandleId(st)
local unit su = LoadUnitHandle (udg_Hash, sid, 0)
if IsUnitType(GetEnumUnit(), UNIT_TYPE_STRUCTURE) == false and IsUnitEnemy( GetEnumUnit(), GetOwningPlayer(su)) == true then
call UnitDamageTargetBJ( su, GetEnumUnit(), 210.00, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
endif
set su = null
endfunction
function UltimateRun takes nothing returns nothing
local timer st = GetExpiredTimer()
local integer sid = GetHandleId(st)
local unit su = LoadUnitHandle (udg_Hash, sid, 0)
local integer suid = GetHandleId(su)
local location suloc = LoadLocationHandle(udg_Hash, sid, 1)
local effect sueff = LoadEffectHandle (udg_Hash, sid, 2)
local real x = GetLocationX( suloc )
local real y = GetLocationY( suloc )
local rect surect = Rect( x - 600.00*0.5, y - 600.00*0.5, x + 600.00*0.5, y + 600.00*0.5 )
local location random = Location (GetRandomReal(x-600*.5,x+600*.5), GetRandomReal (y-600*.5, y+600*.5))
local integer sc = LoadInteger (udg_Hash, sid, 10)
call SetUnitPositionLoc( su, random )
call SetUnitAnimation( su, "attack" )
call AddSpecialEffectLocBJ( random, "Abilities\\Spells\\Human\\Thunderclap \\ThunderClapCaster.mdl" )
call DestroyEffectBJ ( GetLastCreatedEffectBJ() )
call AddSpecialEffectLocBJ( random, "Abilities\\Spells\\Items\\AIil\\AIilTarget.mdl" )
call DestroyEffectBJ ( GetLastCreatedEffectBJ() )
call ForGroupBJ ( GetUnitsInRangeOfLocAll(250.00, suloc), function Ultaction )
set bj_wantDestroyGroup=true
call SaveInteger(udg_Hash,sid,10,sc + 1)
if sc >= 10 then
call SetUnitPositionLoc( su, suloc )
call DestroyEffectBJ( sueff )
call SetUnitPathing( su, true )
call SetUnitInvulnerable( su, false )
call PauseUnitBJ( false, su )
call SetUnitVertexColorBJ( su, 100, 100, 100, 0.00 )
call PauseTimer(st)
call DestroyTimer(st)
call FlushChildHashtable(udg_Hash, sid)
endif
set suloc = null
set random = null
set st = null
set su = null
set sueff = null
endfunction
function Trig_SlayerUlt_Actions takes nothing returns nothing
local timer st = CreateTimer()
local integer sid = GetHandleId(st)
local unit su = GetTriggerUnit()
local integer suid = GetHandleId(su)
local location suloc = GetUnitLoc(su)
local effect sueff
local real x=GetUnitX(su)
local real y=GetUnitY(su)
call AddSpecialEffectTargetUnitBJ ( "hand right", su, "Abilities\\Weapons \\PhoenixMissile\\Phoenix_Missile.mdl" )
set sueff = GetLastCreatedEffectBJ()
call SetUnitPathing( su, false )
call SetUnitInvulnerable( su, true )
call PauseUnitBJ( true, su )
call SetUnitVertexColorBJ( su, 100, 100, 100, 50.00 )
call SaveUnitHandle(udg_Hash, sid, 0, su)
call SaveAgentHandle(udg_Hash, sid, 1, suloc)
call SaveAgentHandle(udg_Hash, sid, 2, sueff)
call SaveAgentHandle(udg_Hash, suid, 0, st)
call SaveInteger (udg_Hash, sid, 10, 1)
call TimerStart( st, .3, true, function UltimateRun )
set suloc = null
set st = null
set su = null
set sueff = null
endfunction
===========================================================================
function InitTrig_SlayerUlt takes nothing returns nothing
set gg_trg_SlayerUlt = CreateTrigger ( )
set udg_Hash=InitHashtable()
call TriggerRegisterAnyUnitEventBJ ( gg_trg_SlayerUlt, EVENT_PLAYER_UNIT_SPELL_CAST )
call TriggerAddCondition ( gg_trg_SlayerUlt, Condition( function Trig_SlayerUlt_Conditions ) )
call TriggerAddAction ( gg_trg_SlayerUlt, function Trig_SlayerUlt_Actions )
endfunction
добавление через 2 потока удаление через ремове абилити и бд
вот пример по которому обычные предметы добавляются без текстуры
писать бд на гуи лень(кому надо могу объяснить принцип)
бд надо только для удаления
для переноса на свою карту нужны эти тригеры и дами юнит с способностью предметы герой а так же поставить дами юнита в условие 1 тригера и событие 2 тригера
ок тогда просто AddSpecialEffect
вроде так в гуи называется
а вобще названия нативок в гуи и джаз почти одинаковые а так как в гуи есть поиск текста а в джаз function list то искать гуи функции по названию этой функции на джазе или наоборот несложно
тоесть чтобы эфект был у юнита у котрого пасивка?
native AddSpecialEffectTarget takes string modelName, widget targetWidget, string attachPointName returns effect
добавление эфекта к любому обьекту типа widget
ну способности на основе предметов как результат при частом использование утечки
да ещё и на гуи без обнуления
кроме того зачем масивы если везде индекс 1?
только ты одно не учёл
изменить макс хп/мп можно только предметами а если не удалять эти предметы то могут быть утечки
спел бук с уровнями не подходит так как хп и мп могут очень сильно отличатся
кроме того если на карте 600 предметов то делать всем копии на основе рун неочень интересно
какая моделька
ты вобще читал тригер?
название статьи хотябы
ты не в теме короче
call IssueImmediateOrder(твой некромант, "instant" )
вот нашол на гуи
нет боевой единицы на некроманта поменяй
call IssueImmediateOrder( твой некромант, "raisedeadon" )
call TriggerSleepAction( 4.5 )
call IssueImmediateOrder( твой некромант, "raisedeadoff" )
это автокаст(если просто неработает)
» WarCraft 3 / Как сделать Инвентарь ?
если незанимает место на карте то либо мультибоард либо спелбук со стрелками
» WarCraft 3 / Как сделать Инвентарь ?
если хочеш могу скинуть полную систему(добавление и удаление) на vjass а ты её переведёш на гуи
инвентарь который не будет занимать место на карте?
это что мультибоард чтоли
» WarCraft 3 / Случайная точка в регионе
во вторых ты создаёш область по кординатам а следующей строчкой находиш эти же кординаты с помощью функций
в 3 ты сохранял точку в хэш и сразу же удалял её
и в 4 ты не инициализировал хэш
function Trig_SlayerUlt_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A00V'
endfunction
local timer st = GetExpiredTimer()
local integer sid = GetHandleId(st)
local unit su = LoadUnitHandle (udg_Hash, sid, 0)
if IsUnitType(GetEnumUnit(), UNIT_TYPE_STRUCTURE) == false and IsUnitEnemy( GetEnumUnit(), GetOwningPlayer(su)) == true then
call UnitDamageTargetBJ( su, GetEnumUnit(), 210.00, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
endif
set su = null
endfunction
local timer st = GetExpiredTimer()
local integer sid = GetHandleId(st)
local unit su = LoadUnitHandle (udg_Hash, sid, 0)
local integer suid = GetHandleId(su)
local location suloc = LoadLocationHandle(udg_Hash, sid, 1)
local effect sueff = LoadEffectHandle (udg_Hash, sid, 2)
local real x = GetLocationX( suloc )
local real y = GetLocationY( suloc )
local rect surect = Rect( x - 600.00*0.5, y - 600.00*0.5, x + 600.00*0.5, y + 600.00*0.5 )
local location random = Location (GetRandomReal(x-600*.5,x+600*.5), GetRandomReal (y-600*.5, y+600*.5))
local integer sc = LoadInteger (udg_Hash, sid, 10)
call SetUnitPositionLoc( su, random )
call SetUnitAnimation( su, "attack" )
call AddSpecialEffectLocBJ( random, "Abilities\\Spells\\Human\\Thunderclap \\ThunderClapCaster.mdl" )
call DestroyEffectBJ ( GetLastCreatedEffectBJ() )
call AddSpecialEffectLocBJ( random, "Abilities\\Spells\\Items\\AIil\\AIilTarget.mdl" )
call DestroyEffectBJ ( GetLastCreatedEffectBJ() )
call ForGroupBJ ( GetUnitsInRangeOfLocAll(250.00, suloc), function Ultaction )
set bj_wantDestroyGroup=true
call SaveInteger(udg_Hash,sid,10,sc + 1)
if sc >= 10 then
call SetUnitPositionLoc( su, suloc )
call DestroyEffectBJ( sueff )
call SetUnitPathing( su, true )
call SetUnitInvulnerable( su, false )
call PauseUnitBJ( false, su )
call SetUnitVertexColorBJ( su, 100, 100, 100, 0.00 )
call PauseTimer(st)
call DestroyTimer(st)
call FlushChildHashtable(udg_Hash, sid)
endif
set suloc = null
set random = null
set st = null
set su = null
set sueff = null
endfunction
local timer st = CreateTimer()
local integer sid = GetHandleId(st)
local unit su = GetTriggerUnit()
local integer suid = GetHandleId(su)
local location suloc = GetUnitLoc(su)
local effect sueff
local real x=GetUnitX(su)
local real y=GetUnitY(su)
call AddSpecialEffectTargetUnitBJ ( "hand right", su, "Abilities\\Weapons \\PhoenixMissile\\Phoenix_Missile.mdl" )
set sueff = GetLastCreatedEffectBJ()
call SetUnitPathing( su, false )
call SetUnitInvulnerable( su, true )
call PauseUnitBJ( true, su )
call SetUnitVertexColorBJ( su, 100, 100, 100, 50.00 )
call SaveUnitHandle(udg_Hash, sid, 0, su)
call SaveAgentHandle(udg_Hash, sid, 1, suloc)
call SaveAgentHandle(udg_Hash, sid, 2, sueff)
call SaveAgentHandle(udg_Hash, suid, 0, st)
call SaveInteger (udg_Hash, sid, 10, 1)
call TimerStart( st, .3, true, function UltimateRun )
set suloc = null
set st = null
set su = null
set sueff = null
endfunction
function InitTrig_SlayerUlt takes nothing returns nothing
set gg_trg_SlayerUlt = CreateTrigger ( )
set udg_Hash=InitHashtable()
call TriggerRegisterAnyUnitEventBJ ( gg_trg_SlayerUlt, EVENT_PLAYER_UNIT_SPELL_CAST )
call TriggerAddCondition ( gg_trg_SlayerUlt, Condition( function Trig_SlayerUlt_Conditions ) )
call TriggerAddAction ( gg_trg_SlayerUlt, function Trig_SlayerUlt_Actions )
endfunction
» WarCraft 3 / Как сделать тригерное заклинание?
лан ловите
сюда пишите и он вам показывает что нашол
Ред. nvc123
» WarCraft 3 / Как сделать Инвентарь ?
вот пример по которому обычные предметы добавляются без текстуры
писать бд на гуи лень(кому надо могу объяснить принцип)
бд надо только для удаления
для переноса на свою карту нужны эти тригеры и дами юнит с способностью предметы герой а так же поставить дами юнита в условие 1 тригера и событие 2 тригера
» Война в Школе РПГ / Война в Школе РПГ
и рпг это ролевая игра то есть игра в которой присутствуют квесты и сюжет
Ред. nvc123
» WarCraft 3 / Как сделать тригерное заклинание?
вроде так в гуи называется
а вобще названия нативок в гуи и джаз почти одинаковые а так как в гуи есть поиск текста а в джаз function list то искать гуи функции по названию этой функции на джазе или наоборот несложно
» WarCraft 3 / Как сделать тригерное заклинание?
native AddSpecialEffectTarget takes string modelName, widget targetWidget, string attachPointName returns effect
добавление эфекта к любому обьекту типа widget
» WarCraft 3 / Менять местами HP и MP
да ещё и на гуи без обнуления
кроме того зачем масивы если везде индекс 1?
» WarCraft 3 / Менять местами HP и MP
изменить макс хп/мп можно только предметами а если не удалять эти предметы то могут быть утечки
спел бук с уровнями не подходит так как хп и мп могут очень сильно отличатся
» WarCraft 3 / Как сделать тригерное заклинание?
» WarCraft 3 / Как сделать Инвентарь ?
» WarCraft 3 / Как сделать Инвентарь ?
какая моделька
ты вобще читал тригер?
название статьи хотябы
ты не в теме короче
» WarCraft 3 / Как сделать Инвентарь ?
добавление и удаление в ро есть?
» WarCraft 3 / Как сделать Инвентарь ?
» WarCraft 3 / Как сделать Инвентарь ?
*гуи
правдо на структурах лучше делать
» WarCraft 3 / Как сделать Инвентарь ?
эта функция
» WarCraft 3 / Как сделать Инвентарь ?
» WarCraft 3 / Оживление мертвых
вот нашол на гуи
нет боевой единицы на некроманта поменяй
call IssueImmediateOrder( твой некромант, "raisedeadon" )
call TriggerSleepAction( 4.5 )
call IssueImmediateOrder( твой некромант, "raisedeadoff" )
это автокаст(если просто неработает)
» WarCraft 3 / Эфект заклинаний
» WarCraft 3 / Отряды и массивы.
» WarCraft 3 / Отряды и массивы.
перебираешь всех юнитов группы и заносиш их в массив
хотя бы весь список гуи команд выучите
и вопрос закрыть незабуть
» Project Revival / Project Revival
» WarCraft 3 / Покупка героев
» WarCraft 3 / Покупка героев
call RemoveUnitFromAllStock
в скобочках тип юнита