• 452阅读
  • 1回复

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

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

精彩

感动

搞笑

开心

愤怒

无聊

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

[em01][em01]不明白

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

快速回复
限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个

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