18

» Администрация XGM / Оформление текстов - txt2

просьба добавить к списку хостинг изображений,бесконечный хостинг под названием vk.com )
18

» XGM Помощь / Помощь по проектам

GadenbIsh, пишет что у вас уже есть блог),вот я и говорю раз открыть может только менеджер то может закрыть тоже сделать через мененджера,а то люди народ любопытный)
я вот вчера подумал закрою он удалится и можно будет новый открыть и переименовать,а тут на тебе,у вас есть но закрытый)
18

» XGM Помощь / Помощь по проектам

я закрыл свой проэкт как его открыть или удалить и создать новый?
т.е я закрыл его,открыть немогу, и создать новый тоже)
18

» WarCraft 3 / Передача и хранение данных в варкрафте

Спасибо за обьяснённую работу типа string,незнаю насчёт полезности,вроде мало нового я узнал,но про СТринги в самый раз будем знать)
18

» WarCraft 3 / Библиотека функций

Hellfim, да но в данной функции увеличивается только хп,что следует что нужно было для такой функции передавать integer содержащий тип способности которой хочеш повысить какую нужно характеристику,чего в даннной функции нету,вообщем у каждого своя фантазия и каждый подстраивает все функции так как ему удобно,мне лично было бы не удобно использовать такую функцию,а сделать как можно больше настроек в одной функции и передавать больше необходимых мне параметров
всё я щас выпивший язык развязан леплю пластилин пошёл я спать
18

» WarCraft 3 / Библиотека функций

помойму проще сделать нестандартный скилл когда нужно добавить одноуровневый и добавить без всякого кода
18

» WarCraft 3 / Библиотека функций

Doc:
Mr_KLOP, нубы не умеют юзать жасс функции, вот в чем фича.
А для чего я написал способ применения?))
Doc:
Если в карте больше сотни скрещиваемых предметов, то при каждом подбирании предмета будет больше ста проверок? круто. это слишком ресурсозатратно.
Ну извините я не такой продвинутый что б уметь всё делать
18

» WarCraft 3 / Библиотека функций

Doc:
Третья делается не так. Создается база данных в которую заносятся все айди, в общем это отдельная система, а это тупо.
кто тебе сказал что делается не так???,а может я хочу так
Mr_KLOP добавил:
Mr_KLOP:
Вторая боян.
почему?,потому что она считает кол-во одинаковых ID предметов и проверяет их наличие у героя и возвращает правду или ложь?,если одинаковых АЙДИ нету это функция пропускается
Mr_KLOP добавил:
Вместо того что б сказать нубам пригодиться,обсираете с ног до головы
18

» WarCraft 3 / Библиотека функций

Всё таки решил сюда то выложить
Что делает код
  • Проверяет наличие предметов в инвентаре юнита
  • Производит скрещевание
  • Считает одинаковый айди
Сделано для это темы xgm.ru/forum/showthread.php?t=42087
Выслушаю всё что думаете об моём ужасном подходе написанию данного кода
Код скопировать в нестандартный код карты
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' - Последний параметр Айди предмета который будет создан