2014-02-23 07:56| 查看: 7503 |作者: 小雪+陈雨
使用装备的道具 有些装备是能够使用的,例如:圣士腰坠,东海珠坠等,那么在一键爆发的时候可以将这些加入其中增强爆发能力。语句如下: /script OnUseItem(CharacterPanel.m_nObjectType,9,CharacterPanel_GetItemBox(INVENTORY_INDEX.EQUIP,9,true)) 如果要跟其他语句一起使用的话,最好加入一个判断物品冷却的句子: /script bCool, nLeft, nTotal, bBroken=GetClientPlayer.GetItemCDProgress(INVENTORY_INDEX.EQUIP,9) 宣告4个变量,第一个是冷却,第二个是剩余,第三个是总量,第四个是是否损坏 进行判断: /script if not bCool then OnUseItem(CharacterPanel.m_nObjectType,9,CharacterPanel_GetItemBox(INVENTORY_INDEX.EQUIP,9,true)) end 这是一个使用腰坠部位装备的宏命令,至于这个语句为什么是这样,我也不很明白,解释不清楚。列表如下 0=武器 1=藏剑重剑 2=暗器 3=衣服 4=帽子 5=项链 6=左戒指 7=右戒指 8=腰带 9=腰坠 10=裤子 11=鞋子 12=袖子 22=飞镖 至于是如何得知的,其实是人工整理的 /script N=GetClientPlayer() /script EquipPoslist={0,2,3,4,5,6,7,8,9,10,11,12,13,23,24} /script for _,i in pairs(EquipPoslist) do item=GetPlayerItem(N,INVENTORY_INDEX.EQUIP,i) OutputMessage("MSG_SYS",GetItemNameByItem(item)) end 通过这个命令,返回名字来对比,这个判断的在某些情况下会用到,后面会介绍。 更换装备: /script OnExchangeItem(i, j, INVENTORY_INDEX.EQUIP, nEquipPos) 这个原理跟上面使用物品的是一样的,就不再解释 通过装备名字来更换装备: /script function Equip(szName) N=GetClientPlayer() for i=1,5 do if N.GetBoxSize(i)>0 then for j=0,N.GetBoxSize(i)-1 do item=N.GetItem(i,j) if GetItemNameByItem(item)==szName then eRetCode, nEquipPos = N.GetEquipPos(i, j) if eRetCode == ITEM_RESULT_CODE.SUCCESS then OnExchangeItem(i, j, INVENTORY_INDEX.EQUIP, nEquipPos) end end end end end end 基本上是差不多的,就是多了一个eRetCode, nEquipPos = N.GetEquipPos(i, j)的判断,eRetCode个人感觉应该是能否更换装备(战斗中无法更换武器外的装备),nEquipPos是装备位置。 判断当前装备: /script N=GetClientPlayer() /script item=GetPlayerItem(N,INVENTORY_INDEX.EQUIP,0) /script if GetItemNameByItem(item)=="九霄双剑" then OutputMessage("MSG_SYS","有") else OutputMessage("MSG_SYS","没有") end 红色部分为执行语句,可以修改。 延伸思路: 使用回春妙手时换武器,然后使用其他技能时换回来 /script N=GetClientPlayer() /script wq=GetPlayerItem(N,INVENTORY_INDEX.EQUIP,0) /script a,b,c=N.GetSkillCDProgress(52,2) /script function Equip(szName) for i=1,5 do if N.GetBoxSize(i)>0 then for j=0,N.GetBoxSize(i)-1 do item=N.GetItem(i,j) if GetItemNameByItem(item)==szName then eRetCode, nEquipPos = N.GetEquipPos(i, j) if eRetCode == ITEM_RESULT_CODE.SUCCESS then OnExchangeItem(i, j, INVENTORY_INDEX.EQUIP, nEquipPos) end end end end end end /script if c==0 then if GetItemNameByItem(wq)=="长恨" then OnUseSkill(52,2) else Equip("长恨") end else Equip("九霄双剑") end 如果回春妙手可用,然后如果武器不是长恨的话则切换武器为长恨,如果武器是长恨的话则使用回春妙手 如果回春妙手处于冷却,则切换武器为九霄双剑 |