Ну, почему самые элементарные вещи они не хотят добавлять? Т.е. сделать Ауру вампиризма настраиваемой как Ауру меткости они не могут, а заставить Смертельный удар не учитывать урон от предметов - пожалуйста. Может написать на хайв?
Потому что всем рулят эффективные менежеры, и хайп о патче важнее его работоспособности. ИМХО к концу года Бдиззы даже близко к функционалу мемхака не продвинутся.
Clamp, это я понимаю, но в таком случае уже нельзя сослаться на техническую сложность реализации. Нативки вводят, на этом спасибо, но куда проще некоторые вещи позволить реализовать через РО.
Хоть он и деликатен в написании, суммарное количество времени на компиляцию и возню с ошибками затрачивается при 500+ запусках для отладки значительно больше.
Events
Player - Player 1 (Red) types a chat message containing test as An exact match
Conditions
Actions
Set Player = (Triggering player)
Quest - Create a Required quest titled Quest 1 - Killing q... with the description long long descripti..., using icon path ReplaceableTextures\CommandButtons\BTNAmbush.blp
Quest - Disable (Last created quest)
Custom script: if GetLocalPlayer() == udg_Player then
Quest - Enable (Last created quest)
Quest - Flash the quest dialog button
Custom script: endif
А зачем через группу проверять расстояние? Есть же функция IsUnitInRange( ).
Это наследие GUI, всё через глобалки сделано же.
JASS
function SpeakSystem_Actions takes nothing returns nothing
local force f = GetPlayersByMapControl(GetPlayerController(GetOwningPlayer(GetOrderedUnit())))
local location loc1 = GetUnitLoc(GetOrderTargetUnit())
local location loc2 = GetUnitLoc(GetOrderedUnit())
/* 851971 это id приказа smart, ненужно лишний раз конвертить из строки */
if GetOwningPlayer(GetOrderTargetUnit()) == Player(PLAYER_NEUTRAL_PASSIVE) and GetIssuedOrderId() == 851971 and IsUnitInRange(GetOrderTargetUnit(),GetOrderedUnit(),500.) then
// Если расстояние от юнита до цели меньше 500 то цель поворачивается и говорит в чат с подсветкой кружка
call SetUnitFacingTimed( GetOrderTargetUnit(), AngleBetweenPoints(loc1, loc2), 0.30 )
call TransmissionFromUnitWithNameBJ( f, GetOrderTargetUnit(), "", null, "", bj_TIMETYPE_SET, 1.00, true )
call UnitAddIndicatorBJ( GetOrderTargetUnit(), 100, 100, 100, 0 )
call DisplayTextToForce( f, udg_strings[GetRandomInt(0, udg_count)] )
endif
call ForceClear(f)
call DestroyForce(f)
set f = null
call RemoveLocation(loc1)
call RemoveLocation(loc2)
endfunction
function SpeakSystem takes nothing returns nothing
local trigger t = CreateTrigger()
local integer i = 0
//вешаем только играющим
loop
exitwhen i > 12
if GetPlayerController(Player(i)) == MAP_CONTROL_USER and GetPlayerSlotState(Player(i)) == PLAYER_SLOT_STATE_PLAYING then
call TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER, null)
endif
set i = i + 1
endloop
call TriggerAddAction(t, function SpeakSystem_Actions)
set t = null
endfunction
GetLocalPlayer, это сработает, если у игрока только один герой с этой способностью. Тогда можно упростить задачу выдавая ему даммика с временем жизни. Ну а каст по приказу можно отследить и прерывать станом на .1сек.
Msey, эту локальную переменную можно не обнулять, она ссылается на статичный триггер, который будет висеть в памяти до конца игры. Другое дело, если бы это был динамичный триггер...
И зачем вам лишний handle, который вы не сможете дальше использовать?
» WarCraft 3 / На счёт утечек памяти
» WarCraft 3 / Новые нативные функции в 1.29
Ред. nazarpunk
» WarCraft 3 / На счёт утечек памяти
» WarCraft 3 / Новые нативные функции в 1.29
» WarCraft 3 / Карта FPS Mod
Warcraft 1.26a
Передвижение W,S,A,D. Режим курсора Q.
» WarCraft 3 / Когда-то уже просил найти утечки тут, и через годы... Снова...
» WarCraft 3 / Меню заданий
» Моддинг / Какой файл отвечает за таблицу урона?
» WarCraft 3 / Когда-то уже просил найти утечки тут, и через годы... Снова...
» WarCraft 3 / Триггерные порталы
» WarCraft 3 / Когда-то уже просил найти утечки тут, и через годы... Снова...
» WarCraft 3 / Система пассивного чарджа/рывка
» WarCraft 3 / Система пассивного чарджа/рывка
» WarCraft 3 / Система пассивного чарджа/рывка
» WarCraft 3 / Как сделать спелл - Рыкок
» WarCraft 3 / Иногда не создаётся плавающий текст
» WarCraft 3 / Система пассивного чарджа/рывка
» WarCraft 3 / Как сделать спелл - Рыкок
» WarCraft 3 / Создание спелла - Удар Героя
» WarCraft 3 / Помогите с созданием этого спелла
» WarCraft 3 / Когда-то уже просил найти утечки тут, и через годы... Снова...
» WarCraft 3 / Помогите с созданием этого спелла
» WarCraft 3 / Когда-то уже просил найти утечки тут, и через годы... Снова...
» WarCraft 3 / Когда-то уже просил найти утечки тут, и через годы... Снова...