XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
Линкольн
Barg Ent.
offline
Опыт: 4,812
Активность:
Оптимизация кода.
Вопрос не стоит того, чтобы ради него создавать новую тему, а звучит он так:
Есть ли альтернатива UnitHasItemOfTypeBJ?
Старый 15.04.2009, 13:27
Артте
Open up your eyes
offline
Опыт: 23,423
Активность:
Код:
function HasItem takes unit whichUnit, integer itemId returns boolean
local integer index=0
    loop
        if ( UnitItemInSlot(whichUnit, index)!= null) and (GetItemTypeId( UnitItemInSlot(whichUnit, index)) == itemId) then
            return true
        endif
        set index = index + 1
        exitwhen index >= 5
    endloop
    return false

Отредактировано Артте, 15.04.2009 в 14:02.
Старый 15.04.2009, 13:42
Линкольн
Barg Ent.
offline
Опыт: 4,812
Активность:
Артте. Жестоко..., но все ровно благодарю.
Тему пожалуйста не закрывайте, могу быть еще вопросы.
Старый 15.04.2009, 13:45
MF
Что-то вокруг не так
offline
Опыт: 26,594
Активность:
Код:
function IsItemInInventory takes unit u, integer it returns boolean
  local integer i = 0
  loop
    exitwhen i > 5 or GetItemTypeId(UnitItemInSlot(u, i)) == it
    set i = i + 1
  endloop
  return i < 6
endfunction

Вроде бы короче и правильнее, ибо сравнивать итем и интеджер явно не тру.
Старый 15.04.2009, 13:48
Артте
Open up your eyes
offline
Опыт: 23,423
Активность:
MF_Andreich
О да, с итемом чет ошибся
Старый 15.04.2009, 14:03
Линкольн
Barg Ent.
offline
Опыт: 4,812
Активность:
Помогите пожалуйста еще вот с этой функцией: ReplaceUnitBJ.
А на закуску вопрос такого плана. Есть способ сопоставить, скажем предмет класса «Артефакты», предмету класса «Подлежащие продаже»?
Например. Есть n-ое количество предметов определенного класса. Каждый из них должен быть как-то связан с одним, либо несколькими предметами другого класса. Нужно чтобы функция определяла, какой предмет, какому(им) соответствует.
Старый 15.04.2009, 20:11
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
Линкольн
1) Не советую юзать реплейс...
2) ставишь уровень предмета одинаковый у нужных тебе предметов, профит
Старый 15.04.2009, 20:39
Линкольн
Barg Ent.
offline
Опыт: 4,812
Активность:
Hellfim. К сожалению уровень и GetItemUserData уже используются.
Цитата:
Не советую юзать реплейс...

Есть альтернатива?

Линкольн добавил:
Полагаю, можно создать таблицу, в которую каким-то образом занести парные предметы.
Старый 16.04.2009, 07:00
PlayerDark
Coraline
offline
Опыт: 10,569
Активность:
  1. У большинства БЖ функций есть альтернатива без префикса.
  2. Бессмыслено писать свою функцию делающую тоже что и БЖ, лучше использовать стандартную.
  3. Хотя некоторые БЖ функции можно оптимизировать
Старый 16.04.2009, 13:42
Линкольн
Barg Ent.
offline
Опыт: 4,812
Активность:
PlayerDark. Для функции ReplaceUnitBJ альтернативы без префикса нет.
А на сколько серьезными могут быть учетки из-за этой функции? Стоит ли вообще заморачиваться?

Линкольн добавил:
Забыл сказать. Парные предметы имеют схожие ID, т.е. предмет класса «Артефакты» ‘A000’ сопоставляется предмету класса «Подлежащие продаже» ‘H000’ и т.п.
Старый 16.04.2009, 16:57
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
Линкольн
1) Стоит заморачиваться
2) Я не сказал использовать GetItemUserData, я сказал использовать GetItemLevel
Старый 16.04.2009, 20:57
Линкольн
Barg Ent.
offline
Опыт: 4,812
Активность:
Цитата:
К сожалению уровень (GetItemLevel) и GetItemUserData уже используются.
Старый 17.04.2009, 04:17
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
Линкольн, хм ну тогда только таблицу составлять.
Старый 17.04.2009, 14:50
MF
Что-то вокруг не так
offline
Опыт: 26,594
Активность:
Можно еще прочность выставлять. И с помощью GetWidgetLife узнавать. Тоже число.
Старый 17.04.2009, 15:05
Линкольн
Barg Ent.
offline
Опыт: 4,812
Активность:
MF_Andreich. Hellfim. Спасибо. Про прочность я и забыл. Пока что таблицу составил, если не понравится сделаю с помощью GetWidgetLife.
Последний вопрос. Как посоветуйте таблицу делать: с помощью глобальных переменных или структур. В таблице около 100 предметов.

Отредактировано Линкольн, 17.04.2009 в 19:32.
Старый 17.04.2009, 19:23
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
Линкольн, массивы наше все, а вообще делай как удобнее =)
Старый 18.04.2009, 00:20
Ranger21
I love beatiul days XD
offline
Опыт: 13,274
Активность:
Ну сделай глобалками в отдельном триггере... имхо так проще всего
Старый 29.04.2009, 16:46
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 21:24.