GadenbIsh, пишет что у вас уже есть блог),вот я и говорю раз открыть может только менеджер то может закрыть тоже сделать через мененджера,а то люди народ любопытный)
я вот вчера подумал закрою он удалится и можно будет новый открыть и переименовать,а тут на тебе,у вас есть но закрытый)
Hellfim, да но в данной функции увеличивается только хп,что следует что нужно было для такой функции передавать integer содержащий тип способности которой хочеш повысить какую нужно характеристику,чего в даннной функции нету,вообщем у каждого своя фантазия и каждый подстраивает все функции так как ему удобно,мне лично было бы не удобно использовать такую функцию,а сделать как можно больше настроек в одной функции и передавать больше необходимых мне параметров
всё я щас выпивший язык развязан леплю пластилин пошёл я спать
почему?,потому что она считает кол-во одинаковых ID предметов и проверяет их наличие у героя и возвращает правду или ложь?,если одинаковых АЙДИ нету это функция пропускается
Mr_KLOP добавил:
Вместо того что б сказать нубам пригодиться,обсираете с ног до головы
Выслушаю всё что думаете об моём ужасном подходе написанию данного кода
Код скопировать в нестандартный код карты
function DeleteItem takes unit u,integer id returns nothing
local integer i = 0
local item Item
loop
exitwhen i >= 6
set Item = UnitItemInSlot(u,i)
if GetItemTypeId(Item) == id then
call RemoveItem(Item)
set i = 6
else
set i = i + 1
endif
endloop
set Item = null
set u = null
endfunction
function CheckItem takes unit u,integer id,integer q returns boolean
local integer s = 0
local integer i = 0
local item Item
loop
exitwhen i == 6
set Item = UnitItemInSlot(u,i)
if GetItemTypeId(Item) == id then
set s = s + 1
endif
set i = i + 1
endloop
set Item = null
set u = null
if s == q then
return true
else
return false
endif
endfunction
function Items takes unit u,integer q,integer id1,integer id2,integer id3,integer id4,integer id5,integer id6,integer c returns nothing
local integer i = 0
local integer a = 0
local integer ide = 0
local integer array id
local item Item = null
local boolean array b
local boolean b2 = true
set id[0] = id1
set id[1] = id2
set id[2] = id3
set id[3] = id4
set id[4] = id5
set id[5] = id6
loop
exitwhen i == q - 1
if id[i] == id[i+1] then
set a = a + 1
set ide = id[i]
endif
set i = i + 1
endloop
if a != 0 then
set b2 = CheckItem(u,ide,a+1)
endif
set i = 0
loop
exitwhen i == 6
set Item = UnitItemInSlot(u,i)
set a = 0
loop
exitwhen a==q
if Item != null and GetItemTypeId(Item) == id[a] then
set b[a] = true
endif
set a = a + 1
endloop
set i = i + 1
endloop
set a = 0
set i = 0
loop
exitwhen i == q
if b[i] == true then
set a = a + 1
endif
set i = i + 1
endloop
if a == q and b2==true then
set i = 0
loop
exitwhen i == q
call DeleteItem(u,id[i])
set i = i + 1
endloop
set Item = CreateItem(c, GetUnitX(u), GetUnitY(u))
call UnitAddItem(u,Item)
endif
set u = null
set Item = null
endfunction
Пример использования
Событие - A unit получает предмет
Дейсвие - CS: call Items(GetManipulatingUnit(),4,'rde4','ratf','ratf','ratf',0,0,'desc')
Где
GetManipulatingUnit() - Юнит получивший предмет
4 - Кол-во скрещеваемых предметов
'rde4','ratf','ratf','ratf',0,0, - Айди предметов указывать 6 штук если нужно 4 то указываем 4 и ставим 2 нуля(если 3 то 'rde4','ratf','ratf',0,0,0)
Думаю понятно
Примечание:
-Одинаковые айди указывать можно только 1 раз тоесть нельзя указать 2 таких и 2 таких,только какойто 1 хоть 5 раз
-Айди предметов обязательно должны быть впереди нулей
'desc' - Последний параметр Айди предмета который будет создан
» Администрация XGM / Оформление текстов - txt2
» XGM Помощь / Помощь по проектам
» XGM Помощь / Помощь по проектам
т.е я закрыл его,открыть немогу, и создать новый тоже)
» WarCraft 3 / Передача и хранение данных в варкрафте
» WarCraft 3 / Библиотека функций
» WarCraft 3 / Библиотека функций
» WarCraft 3 / Библиотека функций
» WarCraft 3 / Библиотека функций
Mr_KLOP:
Вместо того что б сказать нубам пригодиться,обсираете с ног до головы
» WarCraft 3 / Библиотека функций
Что делает код
Событие - A unit получает предмет
Дейсвие - CS: call Items(GetManipulatingUnit(),4,'rde4','ratf','ratf','ratf',0,0,'desc')
GetManipulatingUnit() - Юнит получивший предмет
4 - Кол-во скрещеваемых предметов
'rde4','ratf','ratf','ratf',0,0, - Айди предметов указывать 6 штук если нужно 4 то указываем 4 и ставим 2 нуля(если 3 то 'rde4','ratf','ratf',0,0,0)
Думаю понятно
-Одинаковые айди указывать можно только 1 раз тоесть нельзя указать 2 таких и 2 таких,только какойто 1 хоть 5 раз
-Айди предметов обязательно должны быть впереди нулей