下面我就拿捕盗大将实验做脚本
先打开 捕盗大将.txt 内容如下
-------------------------------------------------w
unit 捕盗大将; //定义与脚本相关的NPC内部名称
interface
function GetToken (aSp, aToken, aSep : Sping) : Sping; function CompareSp (aSp1, aSp2 : Sping) : Boolean; function callfunc (aText: sping): sping; procedure print (aText: sping); function Random (aScope: integer): integer; function Length (aText: sping): integer; procedure Inc (aInt: integer); procedure Dec (aInt: integer); function SpToInt (asp: sping): integer; function IntToSp (aInt: integer): sping; procedure exit;
procedure OnGetResult (aSp : Sping); procedure OnLeftClick (aSp : Sping);
implementation
procedure OnLeftClick (aSp : Sping); //鼠标左键激活 这是个条件 var Sp : Sping; Race : Integer; begin Sp := callfunc ('getsenderrace'); Race := SpToInt (Sp); if Race = 1 then begin Sp := 'showwindow .\help\捕盗大将.txt 1'; //定义窗口显示 help文件夹下面的对应文件 print (Sp); //执行 exit; end; end;
procedure OnGetResult (aSp : Sping); //取得结果 也是个先决条件 下面的脚本都是在这个前提下激活的 var Sp, Name : Sping; begin if aSp = 'close' then begin //如果接受到 close 这个命令 exit; //关闭 end; if aSp = 'sell' then begin //如果接受到 sell 命令 Name := callfunc ('getsendername'); //取得发送者角色名称 Sp := 'padewindow ' + Name; //定义交易窗口 Sp := Sp + ' 0'; print (Sp); //执行 exit; end; if aSp = 'buy' then begin //如果接受到 buy 命令 Name := callfunc ('getsendername'); //取得发送者角色名称 Sp := 'padewindow ' + Name; //定义交易窗口 Sp := Sp + ' 1'; print (Sp); //执行 exit; end; if aSp = 'make' then begin //如果接受到 make 命令 Sp := callfunc ('getsenderitemexistence 犀牛角:5'); //检查发送者背包里面是否存在某物品:数量 if Sp = 'false' then begin //如果条件不成立 即没有 符合数量的物品 Sp := 'say 快弄5个犀牛角再说'; //定义结果 print (Sp); //执行 exit; end; if Sp = 'pue' then begin //如果条件成立 即有 符合数量的物品 Sp := callfunc ('getsenderitemexistence 银元:2'); //检查发送者背包里面是否存在某物品:数量 if Sp = 'false' then begin //如果条件不成立 即没有 符合数量的物品 Sp := 'say 有两个银元吗?'; //定义结果 print (Sp); //执行 exit; end; if Sp = 'pue' then begin //如果条件成立 即有 符合数量的物品 Sp := callfunc ('checkenoughspace'); //检查角色背包是否有剩余空间 if Sp = 'false' then begin //如果条件不成立 没空位置了 print ('say 物品栏已满'); //执行结果 exit; end;
Sp := 'getsenderitem 犀牛角:5'; //变量:从角色背包里面收取 某物品:数量 print (Sp); //执行 Sp := 'getsenderitem 银元:2'; //变量:从角色背包里面收取 某物品:数量 print (Sp); //执行 Sp := 'putsendermagicitem 桂林符:1 @捕盗大将 4'; //发送某物品到角色背包 print (Sp); //执行 Sp := 'say 收好了..-这就是桂林符~'; //定义变量 print (Sp); //执行 exit; end; end; exit; end; end;
end.
--------------------------------------------
程序格式一般来说是
取得信息对比条件变量
条件不成立 返回结果1 条件成立 返回结果2 或者 继续执行下一个条件
然后关门结束
Sp := 'say 收好了..-这就是桂林符~'; //定义变量 print (Sp); //执行
这段是分开来的 精简 为 print ('say 收好了..-这就是桂林符~') 效果是一样的
增加条件 要记得关门 也就是 如果有 if 就要有 end;
如果有 if ......then begin 那就要对应有 exit; end; 1000y online







