• 578阅读
  • 1回复

千年脚本基本说明 [复制链接]

上一主题 下一主题
离线xibeifeng5
 
发帖
89
祝福宝石
0
威望
1224
玛雅之石
0
创造宝石
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2005-05-12
千年用的脚本是基于 Pascal语言,演化而来的,其中变量定义和函数的应用也十分的象,但不用为了写脚本而专门的去学 Pascal语言。 @3>u@  
千年有三个常用的数据类型,String 字符串型,Integer 整型,Boolean 布尔型。 @3>u@  
一个函数的基本结构是这样的: @3>u@  
procedure OnCreate (aStr : String); @3>u@  
var @3>u@  
定义变量 @3>u@  
begin @3>u@  
语句 @3>u@  
end; @3>u@  
在每个脚本的前面都会看到一堆函数,这些是千年的库函数,可以直接拿来使用的。例如:callfunc (aText: string) ,可以返回一些信息,具体返回什么由括号里面的 aText参数决定,这些参数在下面会给出。Random (aScope: integer),可以产生 aScope范围内的随机整数。 @3>u@  
千年中有两个非常重要的函数,一个是 print,另外一个是 callfunc,用法和参数比较复杂。 @3>u@  
@3>u@  
/***********事件触发的函数**********/ @3>u@  
//当有人靠近时 @3>u@  
procedure OnApproach (aStr : String); @3>u@  
//当有人离开时 @3>u@  
procedure OnAway (aStr : String); @3>u@  
//当受到掌风攻击时 @3>u@  
procedure OnBow (aStr : String); @3>u@  
//当状态改变时 @3>u@  
procedure OnChangeState (aStr : String); @3>u@  
//当初始创建时 @3>u@  
procedure OnCreate (aStr : String); @3>u@  
//当被双击时 @3>u@  
procedure OnDblClick(aStr : String); @3>u@  
//当死亡前 @3>u@  
procedure OnDieBefore (aStr : String); @3>u@  
//当死亡后 @3>u@  
procedure OnDie (aStr : String); @3>u@  
//当被拖放物品时 @3>u@  
procedure OnDropItem (aStr : String); @3>u@  
//当得到命令消息时 @3>u@  
procedure OnGetResult (aStr : String); @3>u@  
//当得到改变步长时 @3>u@  
procedure OnGetChangeStep (aStr : String); @3>u@  
//当受到攻击时 @3>u@  
procedure OnHit (aStr : String); @3>u@  
//当被左鼠标键单击时 @3>u@  
procedure OnLeftClick (aStr : String); @3>u@  
// @3>u@  
procedure OnRegen (aStr : String); @3>u@  
// @3>u@  
procedure OnTimer (aStr : String); @3>u@  
//当物件发生翻转打开时,一般是用于门 @3>u@  
procedure OnTurnOn (aStr : String); @3>u@  
//当物件发生翻转关闭时,一般是用于门 @3>u@  
procedure OnTurnOff (aStr : String); @3>u@  
//当用户开始游戏时 @3>u@  
procedure OnUserStart (aStr : String); @3>u@  
//当用户结束游戏时 @3>u@  
procedure OnUserEnd (aStr : String); @3>u@  
//当移动时 @3>u@  
function OnMove (aStr : String) : String; @3>u@  
// @3>u@  
function OnDanger (aStr : String) : String; @3>u@  
//产生一个随机数(系统函数) @3>u@  
function Random (aScope: integer): integer; @3>u@  
//返回指定参数的消息(系统函数) @3>u@  
function callfunc (aText: string): string; @3>u@  
//执行一条命令,可以是说话、传送、获得玩家的物品等(系统函数) @3>u@  
procedure print (aText: string); @3>u@  
具体参数(略),整理中........... @3>u@  
//转换字符串为整数(系统函数) @3>u@  
function StrToInt (astr: string): integer; @3>u@  
//转换整数为字符串(系统函数) @3>u@  
function IntToStr (aInt: integer): string; @3>u@  
/***********事件触发的函数**********/ @3>u@  
@3>u@  
@3>u@  
@3>u@  
@3>u@  
@3>u@  
@3>u@  
@3>u@  
function callfunc (aText: string): string; //以下为 aText参数的值 @3>u@  
getsysteminfo 获得系统信息 @3>u@  
getname 获得名字 @3>u@  
getsendername 获得消息发送者名字 @3>u@  
getage 获得年龄 @3>u@  
getsenderage 获得消息发送者年龄 @3>u@  
getsex 获得性别 @3>u@  
getsendersex 获得消息发送者性别 @3>u@  
getid 获得ID @3>u@  
getsenderid 获得消息发送者ID @3>u@  
getserverid 获得服务器ID @3>u@  
getsenderserverid 获得消息发送者服务器ID @3>u@  
findobjectbyname 用名字查找物件 @3>u@  
getposition 获得位置 @3>u@  
getsenderposition 获得消息发送者位置 @3>u@  
getnearxy 获得亲近的XY @3>u@  
getmapname 获得地图名字 @3>u@  
getsendermapname 获得消息发送者地图名字 @3>u@  
getmoveablexy 获得移动能的XY @3>u@  
getrace 获得种族 @3>u@  
getsenderrace 获得消息发送者种族 @3>u@  
getmaxlife 获得最大的生命值 @3>u@  
getsendermaxlife 获得消息发送者最大的生命值 @3>u@  
getmaxinpower 获得最大的内功值 @3>u@  
getsendermaxinpower 获得消息发送者最大的内功值 @3>u@  
getmaxoutpower 获得最大的外功值 @3>u@  
getsendermaxoutpower 获得消息发送者最大的外功值 @3>u@  
getmaxmagic 获得最大的武功值 @3>u@  
getsendermaxmagic 获得消息发送者最大的武功值 Y%GIKtP  
getlife 获得生命值 Y%GIKtP  
getsenderlife 获得消息发送者生命值 Y%GIKtP  
getinpower 获得内功值 Y%GIKtP  
getsenderinpower 获得消息发送者内功值 Y%GIKtP  
getoutpower 获得外功值 Y%GIKtP  
getsenderoutpower 获得消息发送者外功值 Y%GIKtP  
getmagic 获得武功值 Y%GIKtP  
getsendermagic 获得消息发送者武功值 Y%GIKtP  
Y%GIKtP  
getheadlife 获得头防 Y%GIKtP  
getsenderheadlife 获得消息发送者头防 Y%GIKtP  
getarmlife 获得手防 Y%GIKtP  
getsenderarmlife 获得消息发送者手防 Y%GIKtP  
getleglife 获得腿防 Y%GIKtP  
getsenderleglife 获得消息发送者腿防 Y%GIKtP  
getvirtue 获得浩然值 Y%GIKtP  
getsendervirtue 获得消息发送者浩然值 Y%GIKtP  
getsendertalent 获得消息发送者技能 Y%GIKtP  
getmovespeed 获得移动速度 Y%GIKtP  
getsendermovespeed 获得消息发送者移动速度 Y%GIKtP  
getuseattackmagic 获得使用攻击性武功 Y%GIKtP  
getsenderuseattackmagic 获得消息发送者使用攻击性武功 Y%GIKtP  
getuseattackskilllevel 获得使用攻击性技能水平 Y%GIKtP  
getsenderuseattackskilllevel 获得消息发送者使用攻击性技能等级 Y%GIKtP  
getsendermagicskilllevel 获得消息发送者的武功技能等级 Y%GIKtP  
getuseprotectmagic 获得使用的护体 Y%GIKtP  
getsenderuseprotectmagic 获得消息发送者使用的护体 Y%GIKtP  
procedure print (aText: string); //以下为 aText参数的值 Y%GIKtP  
//让NPC在一个地方摆造型,参数2是说明是怪物,参数3是名字,参数4是X坐标,参数5是Y坐标,参数6不详,参数7显示的图片的序列号,参数8不详,参数9是时间。 Y%GIKtP  
print ('mapaddobjbytick monster 上古雨中客2 178 176 1 97 false 800'); Y%GIKtP  
//弹出一个对话框,参数2为文本文件地址,参数3为对话框类型 Y%GIKtP  
print ('showwindow .\help\上古雨中客.txt 0'); Y%GIKtP  
//让NPC说一句化,参数2是要说的话 Y%GIKtP  
print ('say 看来._准备还是有些不足哇'); Y%GIKtP  
Y%GIKtP  
print ('putsendermagicitem 雨中客锦囊:1 @上古雨中客 3'); Y%GIKtP  
print ('sendsenderchatmessage 拿20个_疾风灵符来 2'); Y%GIKtP  
//拿走玩家身上的物品,参数2是物品名,参数3是个数 Y%GIKtP  
print ('getsenderitem 雨中客锦囊:1'); Y%GIKtP  
//服务器所有玩家屏幕显示一句话,参数2是要显示的字符串,参数3是显示的类型。 Y%GIKtP  
print ('sendsenderchatmessage 雨中客任务顺利完成 2');
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线5556751
发帖
1
祝福宝石
0
威望
0
玛雅之石
0
创造宝石
0
只看该作者 沙发  发表于: 2005-05-14

[em01][em01]不明白

有没有可以用的人物数据库,给发个

快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个

      管理员联系信箱 [email protected] 所有内容均来之互联网,如侵犯您的隐私和权益,请和我们及时联系!