Сейчас 04:45:42 Понедельник, 25 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Перемещение предметов в рюкзаке
ТорвальдДата: Суббота, 11 Сентября 2010, 22:43:10 | Сообщение # 1
3 уровень
Группа: Проверенные
Сообщений: 51
Награды: 0
Репутация: 11
Блокировки:
Вообщем, дошел я до создания системы инвентаря и понял, что нихрена не умею работать с предметами в рюкзаке, даже перемещать. Вот например:
Code
function Trig_item_Actions takes nothing returns nothing
if GetIssuedOrderId()==852003 then
     call UnitDropItemSlotBJ(GetTriggerUnit(), GetOrderTargetItem(), 6)
endif
endfunction

//===========================================================================
function InitTrig_item takes nothing returns nothing
     set gg_trg_item = CreateTrigger(  )
     call TriggerRegisterAnyUnitEventBJ( gg_trg_item, EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER )
     call TriggerAddAction( gg_trg_item, function Trig_item_Actions )
endfunction

По идее этот триггер должен перемещать итем в слот 1 если его переместили в слот 2, но он не перемещается. В чем может быть дело?
зы если вместо перемещения написать:
Code
call RemoveItem( GetOrderTargetItem() )

то он удалится) Т.е. проблема именно в строке "call UnitDropItemSlotBJ(GetTriggerUnit(), GetOrderTargetItem(), 6)" которая не хочет работать.
 

[san9]Дата: Суббота, 11 Сентября 2010, 22:49:32 | Сообщение # 2
10 уровень
Группа: Проверенные
Сообщений: 1500
Награды: 1
Репутация: 286
Блокировки:
Code
  call UnitDropItemSlotBJ( твой юнит, UnitItemInSlotBJ(твой юнит, 1), 2 )

Добавлено (11-09-2010, 22:49)
---------------------------------------------
ой не так вопрос понил)


 

ТорвальдДата: Суббота, 11 Сентября 2010, 23:06:04 | Сообщение # 3
3 уровень
Группа: Проверенные
Сообщений: 51
Награды: 0
Репутация: 11
Блокировки:
[san9], попробовал то что ты написал, результат - вылет вара :)
Пойду спать, надеюсь за ночь кто-нибудь ответит.
 

[san9]Дата: Воскресенье, 12 Сентября 2010, 00:27:34 | Сообщение # 4
10 уровень
Группа: Проверенные
Сообщений: 1500
Награды: 1
Репутация: 286
Блокировки:
Создай тригер Item,конвертируй,удали всё и вставь это.

Code
function Trig_Item_Func002Func001C takes nothing returns boolean
     if ( not ( GetOrderTargetItem() == UnitItemInSlotBJ(GetOrderedUnit(), 2) ) ) then
         return false
     endif
     if ( not ( UnitItemInSlotBJ(GetOrderedUnit(), 1) == null ) ) then
         return false
     endif
     return true
endfunction

function Trig_Item_Func002C takes nothing returns boolean
     if ( not Trig_Item_Func002Func001C() ) then
         return false
     endif
     return true
endfunction

function Trig_Item_Actions takes nothing returns nothing
     call TriggerSleepAction( 0.30 )
     if ( Trig_Item_Func002C() ) then
         call UnitDropItemSlotBJ( GetOrderedUnit(), UnitItemInSlotBJ(GetOrderedUnit(), 2), 1 )
     else
     endif
endfunction

//===========================================================================
function InitTrig_Item takes nothing returns nothing
     set gg_trg_Item = CreateTrigger(  )
     call TriggerRegisterUnitEvent( gg_trg_Item, gg_unit_Hmkg_0000, EVENT_UNIT_ISSUED_TARGET_ORDER )
     call TriggerAddAction( gg_trg_Item, function Trig_Item_Actions )
endfunction

Это делает то,что тебе надо(как я понил)
Любой предмет,каторый полажили в слот 2,перелаживался в слот 1. Но я ещё зделал проверку,на ноличие 1 слота.Тоесть пуст он или нет.Если пуст то перетащит,если нет то не перетащит. Если что сам настроиш.


 

ТорвальдДата: Воскресенье, 12 Сентября 2010, 09:55:52 | Сообщение # 5
3 уровень
Группа: Проверенные
Сообщений: 51
Награды: 0
Репутация: 11
Блокировки:
[san9], спасибо. Твой способ не использовал, но он натолкнул меня на правильную мысль. Теперь все работает. Лови плюсег.
 

kurockДата: Воскресенье, 12 Сентября 2010, 10:48:19 | Сообщение # 6
7 уровень
Группа: Заблокированные
Сообщений: 286
Награды: 0
Репутация: 9
Блокировки:
Теперь скажи намэтот кодж ПРАВЕЛЬНЫЙ

Хочешь раздел для мапы? Хочешь знать джасс? пиши мне... я подскажу что и как..
 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz