千年技术吧+ 关注 关注:3 帖子:256

  

千年脚本编写帮助

  • 枫之精英

    千年用的脚本是基于 Pascal语言,演化而来的,其中变量定义和函数的应用也十分的象,但不用为了写脚本而专门的去学 Pascal语言。


    千年有三个常用的数据类型,String 字符串型,Integer 整型,Boolean 布尔型。


    一个函数的基本结构是这样的:


    procedure OnCreate (aStr : String);

    var

       定义变量

    begin

       语句

    end;


    在每个脚本的前面都会看到一堆函数,这些是千年的库函数,可以直接拿来使用的。例如:callfunc (aText: string) ,可以返回一些信息,具体返回什么由括号里面的 aText参数决定,这些参数在下面会给出。Random (aScope: integer),可以产生 aScope范围内的随机整数。


    千年中有两个非常重要的函数,一个是 print,另外一个是 callfunc,用法和参数比较复杂。


    /***********事件触发的函数**********/


    //当有人靠近时

    procedure OnApproach (aStr : String);


    //当有人离开时

    procedure OnAway (aStr : String);


    //当受到掌风攻击时

    procedure OnBow (aStr : String);


    //当状态改变时

    procedure OnChangeState (aStr : String);


    //当初始创建时

    procedure OnCreate (aStr : String);


    //当被双击时

    procedure OnDblClick(aStr : String);


    //当死亡前

    procedure OnDieBefore (aStr : String);


    //当死亡后

    procedure OnDie (aStr : String);


    //当被拖放物品时

    procedure OnDropItem (aStr : String);


    //当得到命令消息时

    procedure OnGetResult (aStr : String);


    //当得到改变步长时

    procedure OnGetChangeStep (aStr : String);


    //当受到攻击时

    procedure OnHit (aStr : String);


    //当被左鼠标键单击时

    procedure OnLeftClick (aStr : String);


    //

    procedure OnRegen (aStr : String);


    //

    procedure OnTimer (aStr : String);


    //当物件发生翻转打开时,一般是用于门

    procedure OnTurnOn (aStr : String);


    //当物件发生翻转关闭时,一般是用于门

    procedure OnTurnOff (aStr : String);


    //当用户开始游戏时

    procedure OnUserStart (aStr : String);


    //当用户结束游戏时

    procedure OnUserEnd (aStr : String);


    //当移动时

    function OnMove (aStr : String) : String;


    //

    function OnDanger (aStr : String) : String;


    //产生一个随机数(系统函数)

    function  Random (aScope: integer): integer;


    //返回指定参数的消息(系统函数)

    function  callfunc (aText: string): string;


    //执行一条命令,可以是说话、传送、获得玩家的物品等(系统函数)

    procedure print (aText: string);


    具体参数(略),整理中...........


    //转换字符串为整数(系统函数)

    function  StrToInt (astr: string): integer;


    //转换整数为字符串(系统函数)

    function  IntToStr (aInt: integer): string;


    /***********事件触发的函数**********/










    function  callfunc (aText: string): string;   //以下为 aText参数的值


    getsysteminfo                    获得系统信息

    getname                          获得名字

    getsendername                    获得消息发送者名字

    getage                           获得年龄

    getsenderage                     获得消息发送者年龄

    getsex                           获得性别

    getsendersex                     获得消息发送者性别

    getid                            获得ID

    getsenderid                      获得消息发送者ID

    getserverid                      获得服务器ID

    getsenderserverid                获得消息发送者服务器ID

    findobjectbyname                 用名字查找物件

    getposition                      获得位置

    getsenderposition                获得消息发送者位置

    getnearxy                        获得亲近的XY

    getmapname                       获得地图名字

    getsendermapname                 获得消息发送者地图名字

    getmoveablexy                    获得移动能的XY

    getrace                          获得种族

    getsenderrace                    获得消息发送者种族


    getmaxlife                       获得最大的生命值

    getsendermaxlife                 获得消息发送者最大的生命值

    getmaxinpower                    获得最大的内功值

    getsendermaxinpower              获得消息发送者最大的内功值

    getmaxoutpower                   获得最大的外功值

    getsendermaxoutpower             获得消息发送者最大的外功值

    getmaxmagic                      获得最大的武功值

    getsendermaxmagic                获得消息发送者最大的武功值

    getlife                          获得生命值

    getsenderlife                    获得消息发送者生命值


    getinpower                       获得内功值

    getsenderinpower                 获得消息发送者内功值

    getoutpower                      获得外功值

    getsenderoutpower                获得消息发送者外功值

    getmagic                         获得武功值

    getsendermagic                   获得消息发送者武功值



    getheadlife                      获得头防

    getsenderheadlife                获得消息发送者头防

    getarmlife                       获得手防

    getsenderarmlife                 获得消息发送者手防

    getleglife                       获得腿防

    getsenderleglife                 获得消息发送者腿防


    getvirtue                        获得浩然值

    getsendervirtue                  获得消息发送者浩然值

    getsendertalent                  获得消息发送者技能

    getmovespeed                     获得移动速度

    getsendermovespeed               获得消息发送者移动速度

    getuseattackmagic                获得使用攻击性武功

    getsenderuseattackmagic          获得消息发送者使用攻击性武功

    getuseattackskilllevel           获得使用攻击性技能水平

    getsenderuseattackskilllevel     获得消息发送者使用攻击性技能等级

    getsendermagicskilllevel         获得消息发送者的武功技能等级

    getuseprotectmagic               获得使用的护体

    getsenderuseprotectmagic         获得消息发送者使用的护体


    procedure print (aText: string);   //以下为 aText参数的值


    //让NPC在一个地方摆造型,参数2是说明是怪物,参数3是名字,参数4是X坐标,参数5是Y坐标,参数6不详,参数7显示的图片的序列号,参数8不详,参数9是时间。

    print ('mapaddobjbytick monster 上古雨中客2 178 176 1 97 false 800');


    //弹出一个对话框,参数2为文本文件地址,参数3为对话框类型

    print ('showwindow .\help\上古雨中客.txt 0');


    //让NPC说一句化,参数2是要说的话

    print ('say 看来._准备还是有些不足哇');



    print ('putsendermagicitem 雨中客锦囊:1 @上古雨中客 3');

    print ('sendsenderchatmessage 拿20个_疾风灵符来 2');


    //拿走玩家身上的物品,参数2是物品名,参数3是个数

    print ('getsenderitem 雨中客锦囊:1');


    //服务器所有玩家屏幕显示一句话,参数2是要显示的字符串,参数3是显示的类型。

    print ('sendsenderchatmessage 雨中客任务顺利完成 2');



    1楼  2022/1/28 12:50:44  回复

  发表回复

    发帖