论坛首页›有间客栈[综合]›[原创]函式教学!

[原创]函式教学!

楼主:小猫发表于 2004-8-14 17:11回复 3查看 2,436最后回复 2006-5-1
共 4 楼
发表于 2004-8-14 17:111#
楼主
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,"滴的血");

通报自己尚有多少血.
签名:~~~~~~~~~~~
UID 8
发表于 2006-4-30 23:182#
哈哈 来看啊
我把最古老的帖子顶上来了~~~~
UID 2986
发表于 2006-5-1 18:583#
这是不是外挂上的吗。表情
签名:多多关照
谢谢
UID 4098
发表于 2006-5-1 20:464#
下面引用由meteor7100发表的内容:

哈哈 来看啊
我把最古老的帖子顶上来了~~~~

表情表情表情学习学习.......
签名:又做了件蠢事

UID 1743
共 4 楼

关于这个存档

本页内容为历史存档,已关闭一切写操作。附件仅展示文件信息,不提供下载。内容如涉侵权或不当,请联系 server@yfzz.net 下架。

可以做的事:浏览版块、阅读主题与楼层、查看图片附件、按标题或作者搜索、打开用户资料页。
不能做的事:注册、登录、发帖、回复、引用、评分、私信、收藏;压缩包等附件不提供下载——存档版只展示文件信息。

数据截至 2021-02-05;附件约有 30–40% 的原文件未能保存,页面上以「已丢失」标注。2009 年前的不少图片是外链图床,原图床已关闭,页面会显示失效占位。
隐龙轩QQ群:点此查看

26,823 主题 / 280,734 帖 / 17,145 位发过言的会员 · 数据最后更新 2021-02-05

粤ICP备2024318274号-1