操作符
先上操作符的作用(这里看不懂不要紧,和面会 一 一 介绍)
/*
*Operator
* 200 : 申请内存空间
* 100 : 注册物品
* 101 : 注册物品栏
* 102 : 将物品栏绑定到英雄身上
* 103 : 注册按钮
* 104 : 注册标识数据
* 150 : 检测物品使用和物品拾取
* 151 : 检测丢弃物品并将位置移动到当前单位身上
* 152 : 设置物品单位ID和数量,需配合151使用
* 153 : 显示选择物品的信息
* 0 : 添加物品到物品栏
* 1 : 移除物品
* 2 : 设置单位的物品ID和数量
* 3 : 检测物品栏是否拥有某物品
*/
插件
Comment("EH_\Pn`d3kM165=F_\P0002jn=mB05N9CNB9EMaV>lIeM@nf@A@?_dT@Jl0T@8d<c@@00029AMR9CN1PSD@1@8U5e8]5e6Y0J00@001@JP3o5BcACP1CRegL?XT3Ff6;AMb;08e888T80dgHRa29B0@3CN29B0R3`@R9B0b;CNB:FAB86X]016J;BA1VR@Pc`41OGU_9`h\jPoQTMC@?]e48RUTD3kMa40ng@@B;C`AV>a5mfX_i3ko:SDc?16J94FJ9@@9VRG44R5T6I_m70^^mPoQU3hF70000Rd4D?Ooo001l2X1i406;<7DLjb<?]T4@RcB544YT08]6L8G0M0:;l81i505d2HY128R6U00008\oRQn:@A2:B@S6AOl0Q=\?Q6Ooool?]UGoJm8TSE@j0H=j101d4CP:M0gnAOlhGOmehnU5oooo3kIEof_B98eD>P682XQ20HUb1>T]ooooPoQVMF6;@AB5`7@4Rc3[50nf@A2;=8D@BV@0RdI`QL1d0X_`Rcn:1hY923;BQ<0?Q?Snool?]]Y[fbB:G3\1Q=]d3c[IM0_n`S[@MNSYfokoo`nf`V_098eD>0682XUb2>W7o_ooPoQWMD4?]T48RU4DRdl8R1@83kK:<l1Z26J914fXLf\0IXT4CNRFJ`2=PJB8D01JaP011N@0001:MOF8TOQOJ`3YPOkooh?hJ7DH3kI140nfB@Q[`32;E``5S3UA0>WH2P00^YH0001V>l8?QMd6002;1hX@RDGX<oHc`<M5g0P0002;G`b;6hTd68]O38]K18Td68]O38]K28Td68]O38]K38Td68]O38]K48Td68?01?m=g7G<3kKBREGD>mH?Q>D2000QMNB;MNR3aPF9EMb;1XG03hBl0P00ReH4QM8?Q;420020N4d03hBW0P00P7Y=00n4W@8008Z@U00003YFo0n5SP800<J0YP0001N;5X2jV0000>Ae=`nfA_f;E`QY`>@0000?]U86aX@@Y8Q@004?]TKmReL8JL3T00003kIB1lJ44:B8D001jDD20036PZH0000GRdL8aTGholI5m?o6AOl0RYZH0000>1Qe1XYMohQMn?i5od20OOl8MNJ:AOP?]]R3nome6\J2V0000>C6PYX0003TaX:T00000>W`0@00?0Id2C`7M0F8AOC[H`nfA_f;G`QY`>@0000?]U\6aX@HY8Q@000?]TKmRel8JL3T00003kIK1lJ46:B8D000RX:J0000?>@?Q:<1002;G`S6AOl0REgPRegP>0=e1XYMohQMm?i5oom5h81mo`Qei`nfAOC6PYP0003TaX:J0000i<J2Y0000023n?l?Q5h1002:E_d3ANB0OOP6R5GcReGXSEb23HUMh0ng6he4PPn:48QEm0nodh]O1<I5o`29ENaeE_I4d`X4M0K6AOl1j`Z;GN0cdVJ94hP@ReL<Ra8?]TGca`B20P0008]O38]K10nfEOn958>;E`b;DPR;GNb9788?]UGdRel<Re\<RAB33kIFo>W=0000P7gh1gERmTCC2PQd1\I5o`7[2X]Mh3?BIXTCR12:A_`?]UGcR4GhRdL<R`3719030000Rel<Re\43kI5ohT4Th]738]028]Mk8TLT8]O30nfAOB;F`b919>;G``?]TGhRe\@R@BCjfj:E=<:m\82M0K6AOl1jaKf`P5e4HYEm?k:R11e28]Eh3?0IXT2RTKlReL<Ra:8AO@?]TGca`B20@0008]O30nfEOn;F`B958>;E`b;DPR;GNb978:;E`b;DPc7188100003kIEm8]O38]K48TDPh=5i0V3aRCoCM`?QB[moon;EMB:@@R8AOR5dPn4]@4008]5j8=Uk023`0V9EMR;L?b5mPn4S@4008\8QLT?Q8<10020OTd03hAi0@00RU5=Q=8?Q6h10020nS5d2H3j1Pn5H04008ZFU00003Y@n0n5D@4008]AG8GB3hA60@00RTgh>4YT3hDj0@00Rc0?_dh]3kmJ;@noMS4[b`noFS4?[lT[l`n_mP?aPOh090003hl@0@00RdSlaT5=0h]`o3?9PdgLohU>G0ng\XP0002:VXl00029MN2;MNR8GO>9CNB3OMcoMA6;GN`3fH1lWPl0M@F9CMc[B8]Mk0?IIX]<WPeV>dgPMCR;CN`3CNB:C8h?R4gdQ<Ud9`noCN2;G`CfA<\:0GDIP7gdog@C3kI=m;_o0000:mT?]Tgc>l]n4H]=i469CNB3n@IeUH]=g>\3RdgTaTGd08?iog@K0dg\IX]Mh6J9G8h=SGB>3hY=l`0>aT9=0>\4aTGd0@nfD?V;M`b;=XY8n<7R0\L4<P@0002;G`b;F`@?]WGdRC@JRel<Re\83kmeh8Td6X]O30nfMO>;F`b9=1Z;M`b;MQ0?]\V933:3AN`9Pl0TodgH3hEHo_ooR`L?]PR5b@n4COWoohe@3HUEk8U=e0nf@_B=R2j[1P1[b@b3>@1e13?0j`U[`0b;P2`6D023N_P03hB>0@00QL0?Q8H10023`0B;bXUEh8U5i<M5j0H00020N@80MA0cmVJ9<LL0H5a80>U90@00IX]@2VJ9D0S7071hBP0?_`V;E`@?_g0<SDc:16J;D@AVRE3nRaD<NVT03kLdLX\M36ET08U=c0noB@:=M1H23kLDB`?C<lV0O_lPREGHOAmVa`H6FlI60P>:C_j0hMn8CP=Z1fK7AP@6GLI61P9ISA`aREg@SEX1REgLRQY2Q=]enB]Eg8UEg7@MReG@RegH:mZ9GM2;GM2:71[oCMb86T:3OM`0MNj;EMR=FP69GM2:6T:4fgGi:eG@Rel40lZ;EL`?_a;fA=<:0GEcRdGPI\L4<@X7I\M4<@9SKfK7A344MFiVad@a1W@jI\M4<@PP0`nf@09ZI8U5c5^Imo^3`@YZ2U^4`7@E1328136;`YWgn`@`R4@a0H?10^\?Rl:Imo^4`7@613281351RdG<VFX:FoOkRdGTP<8`R1@a@H]Ek<H4<@2;CN23`@B3`1CoCNR9CN29AN@?QHcnoon3`RCoCMB9EN`?QC[noooYNOOookZG0000IS_23hDX0@00RT48RgL<R4GcaTGo00nfEOn;1\7R0X<l409e?X]618<l0P1e=H\7RQQ03kKKRDGD<l25fg@ERdh@RQ@:RdgD>15d9D23`B@k`gGd<l2;B0R5bG@6P7U=07DFoTGoP7go27FZjI`4001[`2@3AMC[g@nfCO>;@0Q[bAAVRi6@LU40IR^AR79A00ngL2d?]d0a3kOJIX^AU79A06H[THabD@29AM0?]m8?_l>9ELbI:l8?_mKAn3_@OQJ;eR_@0lIVRI68LU40IXV1T79A0>\@<l1VRH68LU40IXVIT79A08]ec0noaYT[`X]Ed0nof]7h>mQn5X_b:o03`VJ9\HabD@1VRH6DLU40ja0c`6J9PHabD@1VRK6DLU40RdL<RTgoR4PDjD?foonjV00006Hk`WE2RdL<RU0D3kI128\<QA1:I02;@G25`7@2RlP?]\:;E`b;DPQVRaB2IXVAR00008]G38]B38X4PXR1S`000>WgmOoo^YT0001V>l8?QF81000?]eT8RTT@3kKaJoH<aTGo08Uef0nfEOn=139[dS2398F<>E4008^B^>iX08GBM0DhBVAd3_i5oh1mo`Qee^VVmOoo3kN2R00008Z:S`0000nod8]718Q=lhe<d0BQ36ET08U=e0noB@8?]`a83koc3kLdL0?80o2;`HeH0HUMc8XH@8CKMOT[ALb9AN1d6XU=g2Ueg8_6RegLRQ`HodgPR1Q0PggP07G^SD41RQU1Q=]enH]o12_8mTCG2P5eNh]5e0no0?I4a`X1MFh?]WgcJVB;ae^Imo_6134:I\M4<@47HfK7A343KgEVad@a1FidI\M4<@Lj8<I4<@T3Pl4:JPYKQ<1d5@@`R0@aRl:Imo\4<8Q4<@63`@;[3h_2VOOkQ<1d1P@`R0@a@H_7JPZIGoOoP<8`R1@a@@nfAOo61340RlQ[bC23XKS^J000RdgH0lPc`42918f<>E40jH[doomVQL0?QOX0000?]e4@RT48RTTDREGLRaN:6XQ=lc?fSDX13kKCQ=]d3X_I>0=d8dJ3`b@klWGd<oJ3bOn3IN`0SDH>PoWoMA60>01e38]=k>\kJoHT0o7[h8]Eg6HiD?ie:h0h07HVRel43koBmTCC2P5e6HX@P?[oM18?]]:ko`0002_J3kIElc_COPkoANb3`0B3ON`6MJ[[0h]=k8?iog@GIX]5g6J9A8h<RTGcSEB>3P02jLgcool?]UH1RdL<R`3719020000RdL<Rd04PbB@08]?38]920noAMb9194?]TGcRdl<RdT<R@BAReL<3kH63kI>0H]B48T4R^V4loooPoP13hF30000Rcn:5`ng@A2:F@R:BA@?]]97<oJ9ALb5dW@>RlLh67A<AX?093_bMO@colI5o`0?]UGoIX]5c8edU`aV>@Ie7heDU`j:6XCKM1D?]\63n?md1S[IMahZbc?0R09VR@KnAOn0OOl6MLOY3_?oof_f90?njkL?]TGoSDB73RP8jOSboon3n09e;@nf@@R;58D@BV@0Rd9`QL1d0X_@IX]146J9PXP0002:@AB8PXl0003Ya_;ooh?h0`n5_O;oo`ng@AB;?hYI20ngLA2:3`nfbDLcdXU5d8G9M0j;acPHM4Q2Pl0T>m5em3?BPfG<06X6SD8>IX]Ec5UV>G3nM@H?]SQV0mN3`0A9MNiV>eG@3heWl_ooGeiKbKP40000IX<493g3jEKboom[dR@3en^k", 0, 0, 44, 0, 1);
基本配置
Comment("设置物品种类数和物品栏个数", 0, 物品种类数, 物品栏个数, 200, 44);
详见演示图
三、物品配置 - 注册新物品
Comment("物品名称 + 描述", 物品ID, 图标 ID, 物品属性, 100, 44);
物品ID:随便写,重复的话会覆盖,有效范围(0<= id < 基本配置中的物品种类数)
图标ID:如图
物品属性:可叠加,例如填“3”则等价于(1+2),填0则代表没有限制
0x1 无数量限制(不显示数量,使用后数量不减少,且物品不叠加)
0x2 不可使用
0x4 不可丢弃
0x8 不可销毁(可自定义)
例子:
Comment("测试物品", 1, 367, 3, 100, 44);
注册了一个物品ID=1的物品,名称=测试物品,图标ID=367,物品属性=3(3=1+2,所以这个物品是不显示数量的,并且多个该物品也无法叠加,同时该物品还无法丢弃)
四、注册按钮
01.Comment("", 按钮ID, 0, 单位ID, 103, 44);
一共是8个,分别对应物品栏上的8个按钮,从左到右,从上到下
按钮ID:如图
单位ID:这个应该都知道,演示图中使用的是:64(Probe),65(Zealot),66(Dragoon),67(High templar),69(Shuttle),70(Scout),71(Arbiter),72(Carrier),
这个大家选些没用到的单位来做就好了
五、构造物品栏
这个说白了就是修改按钮表,拿一些用不到的按钮表来弄吧,演示图中使用的是202和203,这是按钮表的配置,用SMC读取按钮即可看到
如图,每个按钮的动作都必须是创建单位,按钮的顺序按第四步配置中的单位ID的顺序(单位ID的顺序是:64,65,66,67,69,70,71,72)
同时,按钮的“黄色注释”将用来显示物品的信息,所以“黄色注释”的ID间隔应相对的放宽一点,否则物品的信息显示可能会错乱,
如Probe的的“黄色注释ID=1343“,而下一个按钮”Zealot的黄色注释ID=1347“,中间隔了4个ID,
这边每个ID对应的字符串长度大概是30左右,所以每个按钮都可以有120个长度的字符串用于显示物品信息,而不会有覆盖的情况(如果你需要更长的长度,就多间隔几个ID)
就这样,202的按钮表配置好了,那么203的要怎么配置呢,看下图
至于需求,用哪个单位做物品栏,就把建造的需求单位改成这个单位好了~
例如演示图中用机枪做物品栏,那就将Probe等单位的建造需求单位改成机枪
提醒:接下来配置中说的物品栏ID,就是现在配置的按钮表ID啦,如202和203,就是物品栏的ID
六、注册标识位
01.Comment("", 标识位ID, 单位ID, 0, 104, 44);//绑定单位ID与标识位
标识ID:共有5个标识ID,现在看不懂没关系,继续往下看
01.0=handleType //操作类型,值含义:1=使用;2=丢弃;3=销毁(自定义);4=拾取;
02.1=handleStatus //操作状态,值含义:0=成功;1=失败
03.2=handleItem //操作的物品ID
04.3=handleItemCount //操作的物品数量
05.4=handleAlnv //操作的物品栏ID
单位ID:现在我们需要5个单位ID(地图中用不到的单位或不会死亡的单位),来与上面的标志位一一对应
演示图中用的单位是:64(Probe),65(Zealot),66(Dragoon),67(High templar),68(Archon);因为这些个单位演示图中用不到,且也不会死亡
01.Comment("", 0, 64, 0, 104, 44);//将单位ID:64与标识ID:0进行绑定,下同
02.Comment("", 1, 65, 0, 104, 44);
03.Comment("", 2, 66, 0, 104, 44);
04.Comment("", 3, 67, 0, 104, 44);
05.Comment("", 4, 68, 0, 104, 44);
接下来做一个优化设置(当然不做也没关系),打开SCMD,依次将上述单位的名称 改成 标识位的名称
如将Probe的名称改成 *handleType
绑定了这些标识位有什么作用呢?先卖个关子,具体的后面再提(步骤十一)
七、检测物品使用及物品拾取操作
01.Comment("", 物品单位ID, 0, 0, 150, 44);
02.PreserveTrigger();//循环触发是必须的哦~
物品单位ID:检测拾取的单位ID,即如果英雄右键点击的单位是当前设定的单位,则可以将其捡起来,演示图中使用的单位是"Psi Emitter(ID:217)"
记得这个单位ID哦,后面好几处地方都会用到
提醒:拾取的物品所属的玩家必须跟当前玩家是联盟关系,不然无效果(演示图中的物品单位都是玩家2的,当前玩家必须和玩家2结盟了,才能拾取物品,否则无效果)
八、检测物品丢弃并在英雄身旁创建丢弃的物品
01.Comment("", 位置区域ID, 0, 0, 151, 44);//将位置区域移动到丢弃物品的英雄身上
02.CreateUnit(1, 物品单位ID, Location 0, 玩家ID);//在该位置区域创建物品
03.Comment("", 物品所属玩家的ID, 0, 0, 152, 44);//将丢弃的物品ID和物品数量绑定当创建的单位身上
04.PreserveTrigger();//循环触发是必须的哦~
复制代码 使用SCMD工具画Location时,默认的数字就是ID,如下图,位置的ID=24(位置区域一旦画出来,那ID是不会改变的,不会说你把24改成25就能改变ID)
物品单位ID:不解释了,看第七步
玩家ID:第七步中有提到,当前物品是那个玩家的,这个就填多少(演示图中物品都是玩家2的,所以这里填的是: Player 2)
物品所属玩家的ID:同上,有点不同的这里的取值范围是0~11,分别代表Player 1 ~ Player 12(演示图中这里天的是1,代表player 2)
九、检测鼠标选择物品
01.Comment("", 字符串ID, 物品单位ID, 0, 153, 44);
02.PreserveTrigger();//循环触发是必须的哦~
字符串ID:用于显示物品的信息,所以需要需要一个比较长的字符串,这里提前说一下步骤十二
===============玩家配置=================
最好将触发放在相应的玩家里面,以免出错
十、绑定物品栏和绑定英雄
01.执行触发:创建一个单位用于做物品栏
02.Comment("", 物品栏ID, 玩家ID, 可选参数, 101, 44);//绑定物品栏
03.执行触发:创建一个单位用于做英雄
04.Comment("", 物品栏ID, 玩家ID, 可选参数, 102, 44);//绑定英雄
物品栏ID:见配置步骤五
玩家ID: 0~7
可选参数:默认为0,如果该参数值为1,则不改变物品栏原有的按钮表,如果实在看不懂,就填0好了
物品栏和英雄是可以分开的,所以需要创建2个单位,分别做物品栏和英雄,并不影响功能。
如果希望将物品栏也绑定在英雄身上,即物品栏在英雄身上,则只需要第1条创建触发,删掉第3条创建触发
注意:如果已经绑定的物品栏或英雄死亡后重新新建的话,需要重新绑定。
即如果演示图中的机枪死亡了,我再次创建而没有重新绑定,机枪就会变成普通的机枪,没有任何其他效果
再次注意:新44号插件与旧版的不同,新版的可以单玩家拥有多个物品栏,不再限制一个玩家只拥有一个,
同时还支持单英雄绑定多个物品栏,如1个机枪有2个物品栏也是可以的。
===============可选配置=================
这里的配置应该放到All Player或者”联盟X“下,当然你也可以勾选多个玩家
十一、提示信息
还记得之前步骤六中说到的标识位吧,这里派上用场了,各标志位的作用自己到步骤六中查看
用法很简单,前面不是把单位跟标志位绑定了吗,现在只需要判断一下相应单位的死亡数就可以了
例子:物品无法使用
01.条件:
02. 判断当前玩家的单位”*handleType“的死亡数是否等于1 //1=使用物品,更多见步骤六
03. 判断当前玩家的单位”*handleStatus“的死亡数是否等于1 //1=失败,更多见步骤六
04.动作:
05. 显示信息”该物品无法使用“
06. 循环触发
如图:
看了这个其它的应该都知道怎么用了吧,比如说物品无法丢弃,物品无法销毁,物品栏已满等。
失败的信息会弄了,那成功的应该也会了吧
比如说成功使用物品1,需要判断handleType等于1、handleStatus等于0,并且handleItem等于1(这里的1代表物品ID,如果使用的是物品199,那这里就判断是否等于199)
接着就可以执行动作了~
详细的可查看演示图
十二、显示鼠标选择的物品的信息
01.条件:
02. 判断当前玩家的单位”物品单位ID“的死亡数等于1
03.动作:
04. 显示信息”。。这条字符串尽量长点。。“;//找到这点信息的字符串ID,然后查看步骤九
05. 循环触发
至此,所有配置完成,接下来介绍下插件的功能
插件功能
一、往指定物品栏中添加物品
01.Comment("", 物品栏ID, 物品ID, 物品个数, 0, 44);
二、在指定物品栏中删除物品
01.Comment("", 物品栏ID, 物品ID, 物品个数, 1, 44);//如果物品个数为0,则将清空该物品栏中的制定物品
三、判断指定物品栏中是否拥有某物品
01.Comment("", 物品栏ID, 物品ID, 物品个数, 3, 44);//判断成功,则执行剩下的触发,否则不执行
就这么多了,没有了~~~~~
多说一句,物品栏数据的指针地址在
|