《千年神州》大型武侠游戏 千年公益服 手游电脑三端互通

 找回密码
 立即注册
查看: 836|回复: 0

千年脚本编写帮助

[复制链接]

139

主题

149

帖子

886

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
886
发表于 2021-3-13 02:37:01 | 显示全部楼层 |阅读模式
千年用的脚本是基于 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                    获得消息发送者年龄
get***                          获得性别
getsender***                    获得消息发送者性别
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

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|千年神州

GMT+8, 2022-10-7 14:27 , Processed in 0.065963 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表