啖红滴第一个函数=. =有删节,合成物品用的说
调用的时候就是Exchange ( '触发单位','返回金钱','换取物品类型','合成物1的类型(若没就写0)','合成物2的类型(若没就写0)','合成物3的类型(若没就写0)','合成物4的类型(若没就写0)','合成物5的类型(若没就写0)','合成物6的类型(若没就写0)')
第一次用J:tk_38 笨拙之处请见谅
[jass]//===========================================================================
//检查是否满足交换条件
function Change_Check takes unit who , integer item1 , integer item2 , integer item3 , integer item4 , integer item5 , integer item6 returns boolean
//================================初始化开始
local boolean array bool//记录数组
local integer array allItem//记录条件物品
local item array rightItem //记录拿来交换的物品
local integer max_num //记录交换物品数
local integer i = 1 //循环变量
local integer j = 1 //循环变量
local integer k = 1 //循环变量
set allItem[1] = item1
set allItem[2] = item2
set allItem[3] = item3
set allItem[4] = item4
set allItem[5] = item5
set allItem[6] = item6
set max_num = 0
loop
exitwhen i > 6
if ( 0 == allItem[i] ) then
set bool[i] = true
else
set bool[i] = false
set max_num = max_num + 1
endif
set i = i + 1
endloop
//================================判断初始化完成
set i = 1
set k = 1
loop
exitwhen i > 6
set j = 1
loop
exitwhen j > 6
if ( bool[j] ) then
else
if ( allItem[j] == GetItemTypeId(UnitItemInSlotBJ(who, i)) ) then
set bool[j] = true
set rightItem[k] = UnitItemInSlotBJ(who, i)
set k = k + 1
set j = 6
endif
endif
set j = j + 1
endloop
set i = i + 1
endloop
//输出结果
set i = 1
loop
exitwhen i > 6
if ( bool[i] ) then
else
return false
endif
set i = i + 1
endloop
//删除交换用物
set i = 1
loop
exitwhen i > max_num
call RemoveItem ( rightItem[i] )
set i = i + 1
endloop
return true
endfunction
//===========================================================================
//===========================================================================
//运行合成函数
function Exchange takes unit who , integer back_money , integer get_item , integer item1 , integer item2 , integer item3 , integer item4 , integer item5 , integer item6 returns nothing
local player whos_owner = GetOwningPlayer ( who )//触发玩家
local effect show//临时特效
if ( Change_Check ( who , item1, item2, item3, item4, item5, item6) ) then
call UnitAddItemByIdSwapped ( get_item , who )
set show = AddSpecialEffectTarget("Abilities\\Spells\\Human\\HolyBolt\\HolyBoltSpecialArt.mdl", who, "overhead")
call DestroyEffect( show )
else
call DisplayTextToPlayer ( whos_owner , 0 , 0 , "|cFFFF0000交换条件不满足!|r" )
call AdjustPlayerStateBJ ( back_money , whos_owner, PLAYER_STATE_RESOURCE_GOLD ) //返回金钱
endif
endfunction
//===========================================================================[/jass]
这样看要醒目得多吧-by thody 怎么不用JASS高亮 怎么用............. 看这里 [url=http://bbs.tbswe.com/redirect.php?tid=31288&goto=lastpost#lastpost]http://bbs.tbswe.com/redirect.php?tid=31288&goto=lastpost#lastpost[/url] 支持一下师弟。:tk_00 最近刚刚在接触这方面的东西
看的我眼花花
看看大大写的研究一下
谢谢
页:
[1]