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

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

Ответ
 
Terros

offline
Опыт: 2,502
Активность:
Джасс нужна помошь
Как добавить шмотку герою по ее itemtype?
Старый 11.09.2005, 15:45
Sergey
Старейший
offline
Опыт: 44,363
Активность:
В смысле item type тебе известен как параметр типа integer? Иначе зачем тут jass?
Если да, то все достаточно просто. Ну, во первых, можно создать команду добавления предмета из на обычных триггерах - для переменной типа item type. Затем перевести триггер в текст (есть такая команда) и посмотреть, как она будет выглядеть в jass. Скопировать команду и вставить в нужное место, подставив вместо переменной item type нужное число типа integer.
Можно и по другому. Например сделать команду
set udg_itype = <нужное число типа integer>
Где itype - переменная типа item type
А команду дать пгерою предмет типа itype дать на обычных триггеах. Этот способ предпочтительнее, если ты работаешь с custom script и не хочешь переводить весь триггер в jass.
Старый 11.09.2005, 16:10
zibada

offline
Опыт: отключен
Код:
set bj_lastCreatedItem = CreateItem(itemId, GetUnitX(whichHero), GetUnitY(whichHero))
    call UnitAddItem(whichHero, bj_lastCreatedItem)


видимо так =)
Старый 11.09.2005, 16:13
Terros

offline
Опыт: 2,502
Активность:
Добавить вешь по itemtype нельзя но я уже все переделал
function SetCharges takes integer Item, unit Unit, integer Charges returns boolean
local integer i = 0
local item CItem
loop
exitwhen i > 6
set CItem = UnitItemInSlot(Unit,i)
if GetItemTypeId(CItem) == Item then
if GetItemCharges(CItem) >= Charges then
if GetItemCharges(CItem) == Charges then
call RemoveItem(CItem)
return true
endif
call SetItemCharges(CItem,GetItemCharges(CItem)-Charges)
return true
endif
endif
set i = i + 1
endloop
return false
endfunction
function CreateEquip takes unit Unit,integer Item, integer Material, integer SecondMaterial, integer Skill, integer FCharges, integer SCharges returns nothing
if SetCharges(Material,Unit,FCharges) == true and SetCharges(SecondMaterial,Unit,SCharges) == true then
if GetRandomInt(0,100) <= Skill then
call UnitAddItemById(Unit,Item)
call DisplayTimedTextToPlayer(GetLocalPlayer(),0,0,5,"You succeseful create leather armor!")
else
call DisplayTimedTextToPlayer(GetLocalPlayer(),0,0,5,"Was not got")
endif
else
call DisplayTimedTextToPlayer(GetLocalPlayer(),0,0,5,"No material")
endif
endfunction
Может можно как нибуть оптимизировать но мне с моим уровнем знания джасса никак +)
Вот еслиб на пхп или си +)
Старый 12.09.2005, 17:52
Raz
Click here!
offline
Опыт: 5,714
Активность:
Terros
Посмотри все-таки пост DimonT. Там написан самый общий случай.
Старый 10.10.2005, 22:42
Ответ

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

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

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

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



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