xuzhouhudajz 发表于 2014-5-27 22:36:16

请介绍一下SN命令后面参数的含义

!!SN:E4453920/2/y70/y80;          [执行一次射击事件(精华语句)] 如果实现多次执行后续能否改成!!SN:E4453920/2/y70/y80/y70/y80/y70/y80...........;

E #1 / #2 / ... 到 62 参数;执行外部函数
#1 = 函数地址
#2 = 转化调用

0 - 帕斯卡 (适用于所有Angel.dll函数)
1 - Cdecl or Stdcall (适用于WinAPI和其他主要的函数)
2 - ThisCall (只能在你知道具体情况的时候使用)
3 - FastCall (同上,避免使用)



贤知有您 发表于 2014-5-28 08:53:55

执行多次请重复再写就行了.或者重写一个FU函数,调用这个SN:E,以次数作为参数循环执行.

SN:E 第一个参数是一个内存地址,该地址是一个内存函数.也就是说,将调用该内存函数.
第二个参数是该函数的调用方式(调用约定), 跟C语言类似, 调用约定主要分成帮助中提到的几种.
之所以有分类,主要是汇编中 约定谁来恢复ebp. 没学过C之类语言或者汇编的可以略过.
上面提到 4453920 内部函数是 thiscall 调用形式的函数,所以用2作为第二参数.
后面紧接的参数就是该内存函数的参数了.(具体得看该内存函数了)

贤知有您 发表于 2014-5-28 08:57:50

顺带发一个之前写的通用函数.
!?FU9999993;[[通用型代码三:可用于箭手类A堆栈射击B堆栈]
**A堆栈射击B堆栈且产生伤害(箭塔射击除外)(请自行确保可以射击)
**x1=堆栈号
**x2=目标堆栈号
**x3=射击次数(需>0)
!!FU|x1<0/x1>41/x2<0/x2>41/x1=x2/x3<1:E;[#0]
!!BMx1:T?y1 N?y2;   [#1]
!!BMx2:T?y11 N?y12;
!!FU|y1<0/y11<0/y2<1/y12<1/y1=149/y11=149:E;
!!BMx1:F?i U3/?j;   [标志与弹药]
!!VRi:&4;
!!FU|i<>4/j<1:E;      [非箭手或无弹药(若无射击动作会崩溃)]
*!FU&y1>144/y1<150:E; [排除战争机器]
!!UN:C6919200/4/?y20; [内存]
!!VRy31:Sx1 *1352 +21708 +y20;
!!VRy41:Sx2 *1352 +21708 +y20;
!!SN:E4453920/2/y31/y41;      [射击且伤害]
*!BMx1:U3/d-1;                [减少弹药]自行消耗
!!VRx3:-1;
!!SN&x3>0:G0;               [循环代码]

xuzhouhudajz 发表于 2014-5-28 18:38:17

收藏,学习!学习!
页: [1]
查看完整版本: 请介绍一下SN命令后面参数的含义

捐赠