|
(被自己忍无可忍的和谐掉了)
药品无限叠加其实很好做,大家慢慢看就行了。
[codes=jass]
function LeechdomCharges_Condition takes unit u ,integer i,item it returns boolean
return GetItemTypeId(UnitItemInSlot(u,i-1))==GetItemTypeId(it)
//判断【对应的物品栏中的物品】的类型 是否与 【得到的物品】的类型 相同
endfunction
//GetItemTypeId————获得物品的类型ID(就是在物体编辑器中摁ctrl+D看到的内容)
//UnitItemInSlot————获得单位对应的物品栏中的物品(物品栏编号0-5)
function LeechdomChargesAdd takes unit u ,item it returns nothing
local integer i=0 //声明局部变量: 名为 i 的 整数类型
set i=1 //设置 i 的初始值
loop //开始循环 loop就是循环的意思
exitwhen i > 6 //当i>6时,也就是i=7时退出循环,不执行下面的语句
if LeechdomCharges_Condition(u,i,it)==true then
//判断【对应的物品栏中的物品】的类型 是否与 【得到的物品】的类型 相同
//相同则执行下面的语句
//不相同则什么也不干,直接继续循环。
if it!=UnitItemInSlot(u,i-1) then
//判断【对应的物品栏中的物品】 是否与 【得到的物品】 相同(因为【得到的物品】时【已得到的】,
//所以会把【得到的物品】和它自己比对一次,如果不加这句话………………你可以试试)
call SetItemCharges(it,(GetItemCharges(it)+GetItemCharges(UnitItemInSlot(u,i-1))))
//将【得到的物品】和【原先的物品】的【使用次数】相加
//再把【得到的物品】的【使用次数】变为这个值
call RemoveItem(UnitItemInSlot(u,i-1)) //删除原先的在【物品栏内的同样的物品】
call IssueTargetOrderById( u, 852001+i, it ) //将【得到的物品】移动到对应的物品栏
//对单位发布对象目标指令:
//852002到852007移动物品到栏位:
//这些是对象目标命令,将目标物品移动到英雄的对应物品栏格。
//比方说852002是移动到第一格,852003是第二格,以此类推。
endif
endif
set i = i + 1 //递增变量 i
endloop //结束循环
set i=0
endfunction
//SetItemCharges————设置物品的使用次数
//GetItemCharges————获得物品的使用次数
//RemoveItem————删除物品
//IssueTargetOrderById————命令单位发布对指定物体目标(目标的类型为单位or可破坏物or物品)
[/codes]
(*^__^*) 嘻嘻……
大家慢慢看哦~~~ |
评分
-
查看全部评分
|