找回密码
 点一下
查看: 1729|回复: 0

【自解决】简单的物品系统

[复制链接]
发表于 2010-5-20 23:52:18 | 显示全部楼层 |阅读模式
好吧,自己解决了,附上演示


  1. function ArmourLevelUp takes unit u,integer a,integer b,integer n returns nothing
  2.       local integer i=1
  3.       if  (( UnitHasItemOfTypeBJ(u, a) == true ) and ( IsUnitType(u, UNIT_TYPE_HERO) == true ))  then
  4.     else
  5.         call DisplayTextToPlayer( GetOwningPlayer(u), 0, 0, "你的材料不足" )
  6.         call AdjustPlayerStateBJ( n, GetOwningPlayer(u), PLAYER_STATE_RESOURCE_GOLD )
  7.         return
  8.     endif
  9.     loop
  10.         exitwhen i>6
  11.         if ( GetItemTypeId(UnitItemInSlotBJ(u, i)) == a  ) then
  12.             call RemoveItem( UnitItemInSlotBJ(u, i) )
  13.             call UnitAddItemToSlotById( u, b, ( i - 1 ) )
  14.             return
  15.         else
  16.         endif
  17.         set i= i + 1
  18.     endloop
  19.     set u=null
  20.     return
  21.     endfunction
  22.    
  23.    
  24. function Trig_ArmourLevelUp_Actions takes nothing returns nothing
  25.     local integer a
  26.     local integer b
  27.     local integer c
  28.     local integer n1
  29.     local integer n2
  30.     local integer i = 1
  31.     local unit u = GetTriggerUnit()
  32.     set a = 'I001'         //合成材料类型
  33.     set b = 'I007'        //二级物品类型
  34.     set c = 'I008'        //三级物品类型/
  35.     set n1 = 10           //  金钱补偿
  36.     set n2 = 15             // 金钱补偿
  37. if ( GetItemTypeId(GetManipulatedItem()) == 'I00E' ) then
  38.     call ArmourLevelUp(u,a,b,n1)
  39. elseif  ( GetItemTypeId(GetManipulatedItem()) == 'I00D' )  then
  40.     call ArmourLevelUp(u,b,c,n2)
  41. else
  42. endif
  43. set u=null   
  44. endfunction
  45. //===========================================================================
  46. function InitTrig_ArmourLevelUp takes nothing returns nothing
  47.     set gg_trg_ArmourLevelUp = CreateTrigger(  )
  48.     call TriggerRegisterAnyUnitEventBJ( gg_trg_ArmourLevelUp, EVENT_PLAYER_UNIT_PICKUP_ITEM )
  49.     call TriggerAddAction( gg_trg_ArmourLevelUp, function Trig_ArmourLevelUp_Actions )
  50. endfunction
复制代码
您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-12-4 16:31 , Processed in 0.053885 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表