AlexTao |
2006-04-26 11:54 |
函式教学文件
GetChar()函式
语法
GetChar(string name)
功用
得到目标ID
用法
GetChar("player"); 得到第一位玩家的ID(这是没用的指令,因为第一位玩家一定是1号)
GetChar("vip");得到己方首 编号,这个指令在SN档中使用会容易得到-1(不存在)的值,仅能用在NPC档中才能正确启用。
GetChar("enemyvip");得到敌方VIP编号,这个指令在SN档中会不易指定,用在NPC档中就能正确启用。
GetChar("flag ");得到持镖者编号,没有持镖者值一定是-1.
GetChar("XXX ");得到指定人物的编号,游戏中没有这个人物值一定是-1.
范例:
int a;
a = GetChar("重楼");
如果重楼不存在
a的值为-1
如果重楼存在
a就等於重楼的当前ID
GetAnyChar()函式
语法
GetAnyChar (string name)
功用
得到任一目标ID
用法
GetAnyChar("player"); 得到第一位玩家的ID(这是没用的指令,因为第一位玩家一定是1号)
GetAnyChar("vip");得到己方首 编号,这个指令在SN档中使用会容易得到-1(不存在)的值,仅能用在NPC档中才能正确启用。
GetAnyChar("enemyvip");得到敌方VIP编号,这个指令在SN档中会不易指定,用在NPC档中就能正确启用。
GetAnyChar("flag ");得到持镖者编号,没有持镖者值一定是-1.
GetAnyChar("XXX ");得到指定人物的编号,游戏中没有这个人物值一定是-1.
范例:
int a;
a = GetAnyChar("重楼");
如果重楼不存在
a的值为-1
如果重楼存在
a就等於重楼的当前ID
这个指令基本上跟GetChar()一样,但不一样的是它可以在NPC档中侦测HP<=0的人物,NPC档中只要NPC的HP=0, GetChar()将不再运作.如果你用NPC集合档则 用上这个指令.SN档只要用GetChar()即可
GetHP()函式
语法
GetHP (int ID)
功用
得到任一ID目标的目前生命值
范例:
int a;
int b;
a = GetChar("重楼");
b = GetHP (a);
如果重楼不存在
b的值为-1
如果重楼存在
b就等於重楼的当前生命值
GetMaxHP()函式
语法
GetMaxHP (int ID)
功用
得到任一ID目标的最大生命值,(经我测试应该说是初始值才对,这个值不会因吃华陀而改变…所以我的结论是得到初始值)
范例:
int a;
int b;
a = GetChar("重楼");
b = GetMaxHP(a);
如果重楼不存在
b的值为-1
如果重楼存在
b就等於重楼的初始生命值
GetTeam()函式
语法
GetTeam (int ID)
功用
得到任一ID目标的所在队伍.
范例:
int a;
int b;
a = GetChar("重楼");
b = GetTeam(a);
如果重楼不存在或重楼并没有分队b的值为0
如果重楼在流星,b的值为1
如果重楼在蝴蝶,b的值为2
GetEnemy()函式
语法
GetEnemy(int ID)
功用
得到任一ID目标他当前的目标敌手ID.
范例:
int a;
int b;
a = GetChar("重楼");
b = GetEnemy(a);
如果重楼不存在或重楼目前并没有锁定对手b的值为-1
如果重楼没有分队已锁定预设对手,b的值为1(就是玩家)
如果重楼已锁定对手,b的值为对手的ID
如果b值等於-1但不是重楼不存在照成的,那堋NPC可能会站著发呆.
GetGameTime()函数
语法
GetGameTime()
功用
得到入游戏後所过的秒数.
范例:
int a;
a = GetGameTime() + 30;
Say(2, "已经过了",a,"秒")
由ID 编号2号的NPC计算目前时间并说出来.
ChangeBehavior()函式
语法
ChangeBehavior(int id, string behavior, ...)
功用
得到目标ID
用法
ChangeBehavior(int id, "wait");NPC在原地做警戒.
ChangeBehavior(int id, "idle");NPC在原地不动.
ChangeBehavior(int id, "run");NPC在出生点附近乱跑(大多是绕圈圈)。
ChangeBehavior(int id, "follow", string name/ int id);
NPC跟随到指定人物[人物参照GetChar()函式]或是指定ID人物.
ChangeBehavior(int id, "patrol", int waypoint1, int waypoint2..);
NPC在所规定的巡逻点实施巡逻.
ChangeBehavior(int id, "attacktarget", int idx, int a);
NPC不顾一切的跑到IDX的目标位置,若a为不存在则为跑到目标位置,a值大於0则到目标位置实施攻击.
ChangeBehavior(int id, "Kill", string name/ int id);
NPC追杀指定人物[人物参照GetChar()函式]或是指定ID人物,若为同队则同於"follow"副指令.
范例:
int a;
SetTarget(1, "char","景天");
a = GetChar("重楼");
ChangeBehavior(a, "wait");//重楼在原地做警戒,看到敌人就跑去攻击.
ChangeBehavior(a, "idle");//重楼啥事情都不做.
ChangeBehavior(a, "run");//重楼在出生点附近乱跑.
ChangeBehavior(a, "follow", "player");//重楼跟著玩家行动
ChangeBehavior(a, "patrol", 1, 3, 5, 7, 9);//重楼在1,3,5,7,9的巡逻点巡逻
ChangeBehavior(a, "attacktarget", 1, 1);
//重楼不顾一切的跑到景天旁边不管他是不是同队先海扁一下再说
ChangeBehavior(int id, "Kill", "景天");
//重楼追杀景天如果是同队则死命跟著景天.
Perform()函式
语法
Perform(int id, string pose, ...)
功用
叫NPC做指定动作
用法
Perform (int id1, "faceto", int id2);id1的NPC面朝著id2
Perform (int id, "say",string say);NPC送出交谈内容.
Perform (int id, "pause",int min);
NPC做出上个动作後过了几秒再做下个指定动作,但程序仍然在执行中。
Perform (int id, "aggress");NPC做出挑衅的动作.
Perform (int id, "jump");NPC做出跳跃的动作.
Perform (int id, "attack");NPC做出攻击的动作.
Perform (int id, "guard", int min);NPC做出防御动作几秒钟.
Perform (int id, "crouch", int min); NPC做出蹲下动作几秒钟.
Perform (int id, "use", int itemID);NPC使用编号道具.
范例:
int a = GetChar("重楼");
int b = GetChar("景天");
Perform (a, "faceto", b);//重楼面对景天
Perform (a, "say", "你上次砍我文章,觉悟吧!");//重楼送出了交谈内容
Perform (b, "say", "放弃吧!你是打不赢我的");
Perform (a, "pause",1);//重楼等待了1秒钟
Perform (a, "aggress");//重楼做出了挑衅动作
Perform (b, "attack");//景天做攻击了一下.
Perform (a, "jump");//重楼跳了一下
Perform (a, "guard", 1);//重楼做出防御动作1秒钟.
Perform (a, "crouch", 1);//重楼怕被跳杀蹲下1秒钟.
Perform (a, "say", "看我的厉害!哈哈");
Perform (a, "use", 2);//重楼使用了华陀最大生命+50.
Perform (a, "use", 1);//重楼使用了肉包生命回复30.
Perform (a, "use", 3);//重楼使用了 皮防御上升
Perform (a, "use", 4);//重楼使用了嗜战最大生命+50.
Perform (a, "use", 7);//重楼使用了风水隐身
Perform (a, "use", 8);//重楼使用了气元气力全满
Perform (a, "say", "哇哈哈!去死吧");
...重楼使出了大绝...被躲掉了==!!..被修理了!
Perform (a, "say", "该死!怎么会这样?");
Perform (a, "use", 20);//重楼使用了神骨最大生命到达999.
Perform (a, "use", 15);//重楼使用了神灵生命回复1/2.
Perform (a, "use", 19);//重楼使用了爆怒攻击力大幅提升
Perform (a, "use", 34);//重楼使用了嗜血攻击力再提升.
Perform (a, "use", 23);//重楼使用了火属练化武器
Perform (a, "use", 40);//重楼使用了金钟罩防御上升
Perform (a, "use", 8);//重楼使用了气元气力全满
...重楼再度使出了大绝...又被躲掉了==!!..又被修理了!
Perform (a, "use", 27);//重楼使用了蛋糕变身雪人
Perform (a, "use", 29);//重楼使用了围巾防御上升
Perform (a, "use", 30);//重楼使用了手套攻击提升
Perform (a, "use", 31);//重楼使用了长靴速度提升.
Perform (a, "use", 32);//重楼使用了头套自动回血
Perform (a, "use", 5);//重楼使用了猫足速度提升
Perform (a, "use", 41);//重楼使用了豹灵速度大幅提升
Perform (a, "say", " !放你一马...");
...重楼以超快的速度绕跑了....
Perform (b, "say", "= =!!");
PlayerPerform()函式
语法
PlayerPerform(int id, string pose, ...)
功用
叫玩家做指定动作,这个指令区网没有作用.
用法
PlayerPerform ( "say",string say);
送出孟星魂交谈内容(这是电脑会设定玩家名称为孟星魂)
PlayerPerform ("pause",int min);
孟星魂做出上个动作後过了几秒再做下个指定动作,但程序仍然在执行中。
PlayerPerform ("aggress");孟星魂做出挑衅的动作.
PlayerPerform ("jump");孟星魂做出跳跃的动作.
PlayerPerform ("crouch", int min); 孟星魂做出蹲下动作几秒钟.
PlayerPerform (int id, "use", int itemID);孟星魂使用编号道具.
PlayerPerform (int id, "block", 0&1);
孟星魂暂时不能操控开关1为不能控制0为可以
范例:
可参考Perform ()函数
StopPerform()函数
语法
StopPerform(int id);
功用
停止AI的指定动作.
范例:
int a;
a = GetChar("重楼");
Perform (a, "guard", 1);//重楼做出防御动作1秒钟.
StopPerform(a);//取消刚才指定的动作.
SetTarget()函式
语法
SetTarget(int idx, string type, ...)
功用
设定IDX编号所代表物
用法
SetTarget(int idx, "char", string name);设定IDX编号物件为某一玩家或NPC
SetTarget(int idx, "waypoint", int waypoint);设定IDX编号物件为某一路径点
范例:
可参考ChangeBehavior()函式的范例
Distance()函式
语法
Distance(int idx1, int idx2);
功用
计算IDX1及IDX2之间的距离
范例:
SetTarget(0, "char", "重楼");
SetTarget(1, "char", "景天");
int a = Distance(0, 1);
a的值为座标值,倘若重楼的座标在1202,111,0景天的座标为-101,111,0,那堋a值即为1202+101的数值,300以内的数值几乎就算是面对面了.
Rand()函式
语法
Rand(int n);
功用
得到乱数值
范例:
int a = Rand(10);
a的值即为0-9的其中一值
AddNPC()函式
语法
AddNPC(string npc);
功用
加入NPC
范例:
AddNPC("npc13_01");
加入冷燕到流星队
RemoveNPC()函式
语法
RemoveNPC(int id)
功用
指定NPC离开
范例:
int a = GetChar("重楼");
AddNPC(a);
指定重楼离开游戏中
Say()函式
语法
Say(id, a, b, c, ...);
功用
送出组合式谈话内容
范例:
int a = GetChar("重楼");
int h = GetHP(a);
Say(a, "我现在有", h,"滴的血");
通报自己尚有多少血. |
|