8个玩家的3背包 需要变量 : 单位 数组 BagNum 布尔值 数组 Bag 需要身上有6个格的单位物品栏的无模型的背包马甲单位 自定义脚本: //模拟2维数组 function A takes integer X , integer Y , integer Xmax returns integer return (Y-1)*Xmax+X endfunction //切换背包 function bags takes unit u , integer playerid returns nothing local integer n = 0 local integer i = 2 call IssueImmediateOrder( u, "stop" ) if udg_Bag[playerid] then set i = 1 endif loop exitwhen n > 5 call UnitAddItem( udg_BagNum[A(playerid,3,8)], UnitItemInSlot(u, n) ) set n = n + 1 endloop set n = 0 loop exitwhen n > 5 call UnitAddItem( u, UnitItemInSlot(udg_BagNum[A(playerid,i,8)], n) ) set n = n + 1 endloop set n = 0 loop exitwhen n > 5 call UnitAddItem( udg_BagNum[A(playerid,i,8)], UnitItemInSlot(udg_BagNum[A(playerid,3,8)], n) ) set n = n + 1 endloop set udg_Bag[playerid] = (udg_Bag[playerid] == false) endfunction 触发器: 背包初始化 事件 —地图初始化 条件 动作 —For循环整数A从1到24, 做动作 Loop - 动作 设置 BagNum[(循环整数A)] = (新建 中立被动 的 背包马甲单位 在(0.00,0.00),面向角度:0.00 度) 设置 (最后创建的单位) 无敌的 切换背包 事件 —单位 - 任意单位 发动技能效果 条件 —(施放技能) 等于 切换背包 动作 —自定义代码: call bags(GetTriggerUnit(),GetPlayerId(GetOwningPlayer(GetTriggerUnit()))+1)
|