function ResetAbilityCooldown takes unit u, integer id returns nothing local integer lvl = GetUnitAbilityLevel(u,id) call UnitRemoveAbility(u,id) call UnitAddAbility(u,id) call SetUnitAbilityLevel(u,id,lvl) endfunction
Сообщение отредактировал [DS] - Пятница, 15 Июля 2011, 16:14:21
function ResetAbilityCooldown takes unit u, integer id returns nothing local integer lvl = GetUnitAbilityLevel(u,id) call UnitRemoveAbility(u,id) call UnitAddAbility(u,id) call SetUnitAbilityLevel(u,id,lvl) endfunction
А еще у тебя абсолютно лишнее объявление локалки. Делай лучше вот так:
Другое дело когда ты используешь параметр больше 1 раза, то вероятно будет работать алгоритм быстрее, если таки вынести результат который возвращает функция в локалку.
О нас думают плохо лишь те, кто хуже нас, а те кто лучше нас... Им просто не до нас. My Project: Nindogatari MAL
Другое дело когда ты используешь параметр больше 1 раза, то вероятно будет работать алгоритм быстрее, если таки вынести результат который возвращает функция в локалку.
У тебя руки растут из 1 места
Добавлено (22-07-2011, 01:36) --------------------------------------------- Мне интересно куда делать старая тема с функциями ? была библиотека с молниями....
база паролей: https://yadi.sk/d/mdDhWuvPcTSKw бекап сайта от 26.12.2010 https://yadi.sk/d/L3xNpibbiHpYE
Ты удаляешь способность с юнита (допустим 3-лвл способности был) Ты добавляешь способность юниту (ту же самую) Ты приказываешь триггеру установить уровень только что выданной способности на уровень только что выданной способности.
Вот функция, которая всё-таки поднимает камеру над землёй (без лишнего)
Code
local location loc local real HeroZ set loc = (GetUnitLoc(udg_Hero)) set HeroZ = GetLocationZ(loc) call SetCameraFieldForPlayer( Player(0), CAMERA_FIELD_ZOFFSET, HeroZ, 0 )
NerZul121, Здесь выкладываются функции которые не зависят от игроквых перменных типа udg_Hero. так как я понятия не имею что делает эта функция, но как тебе ее надо было оформить.
function FUNCTION takes real HeroZ, player p return nothing call SetCameraFieldForPlayer( p, CAMERA_FIELD_ZOFFSET, HeroZ, 0 ) endfunction
Добавлено (24 Сентябрь 2011, 17:18:21) --------------------------------------------- Так как не нашел на форуме такую же функцию, вот элементарнийшая функция на сборку двух одинаковых предметов.
function GetDoubleItem takes unit u, item t, integer i returns nothing local integer l = 0 local integer id = GetItemTypeId(t) loop exitwhen l > 5 if (id == GetItemTypeId(UnitItemInSlot(u, l))) and (t != UnitItemInSlot(u, l)) then call RemoveItem(t) call RemoveItem(UnitItemInSlot(u, l)) call UnitAddItemById(u, i) endif set l = l + 1 endloop
set u = null set t = null endfunction
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Четверг, 08 Сентября 2011, 16:39:42
lawson, не отвечает описанию, а именно выполняет только часть работы, на входе должны быть юнит и два ИД предметов. И не указано, что предметов не должно быть больше 2.
Не шаришь. Функа берет юнита, тип предмет, нужное количество предметов и возвращает предмет. Количество предметов может быть от двух (а не онли более двух)
Тебе и говорю. Функа берет юнита, тип предмета и количество предметов этого типа. Циклом (вроде как им) чекает количество предметов этого типа. После того, как их количество равно аргументу, предметы удаляются и дается скрещенный предмет. Все правильно
Функция берет юнита, последний полученный этим юнитом предмет и ИД скрещенного предмета. Если у юнита есть хотя еще 1 такой же предмет, как указанный в аргументах, то все такие предметы удаляются, взамен дается 1 скрещенный предмет. То есть и за 2, и за 6 нескрещенных предмета дается только 1 скрещенный. 1
function GetDoubleItem takes unit u, item t, integer i returns nothing
Объяснияю по пальцам. unit u - Юнит с который производятся действия item t - Предмет над которым производятся действия и по которому я буду искать второй схожий предмет integer i - рав код предмета который будет даваться после того как найдется еще один предмет схожий с item t. Все ОК?
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Четверг, 24 Ноября 2011, 17:57:14