• 576阅读
  • 1回复

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

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

精彩

感动

搞笑

开心

愤怒

无聊

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

[em01][em01]不明白

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

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

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