• 印度Zensar科技公司卓越实验室正式落户盐城师范学院
  • 如何编辑新NPC脚本

    [ 来源:不详 | 作者:佚名 | 时间:2007-8-18 13:18:53 | 浏览: 人次 ]

    下面我就拿捕盗大将实验做脚本

    先打开 捕盗大将.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

    >> 相关文章

    共有 0 位网友发表了评论 ... 查看完整内容