发表于 2004-8-14 17:351#
楼主《流星蝴蝶剑》场景NPC编辑方法:
1)游戏中20个场景代号 01 钟乳洞 02 秦皇陵 03 一线天 04 织雪城 05 皇天城 06 四方阵 07 死之阵 08 毒牙阵 09 决死阵 10 炼铁狱
11 五爪峰 12 烽火雷 13 金华城 14 炎硫岛 15 飞鹏堡 16 五雷塔 17 伏虎山 18 圆满楼 19 洛阳城 20 卧龙窟 21 圣诞夜 22 威震八方
2)对于单个NPC的编辑在游戏目录下打开Level文件夹,用记事本打开NPC*.pst就可以编辑了,当然也可以创建,
*的地方一般来说是数字,也就是游戏设计者设定的文件名,前面一个数字代表出场场景,后面一个数字代表第几个加入的NPC。
当然我们自己用记事本制作的文件可以随便命名。打开以后需要写入以下几点。//为注释 // 姓名 string Name= ""
// 模型编号
//0孟星魂 1冷燕 2铁胡子 3夜猫子 4和尚
5冯浩 6孙剑 7萧安 8子舆 9王强 10无名 1
1叶翔 12小何 13凤凰 14石群 15屠城 16范旋
17高寄萍 18孙玉伯 19律香川 int Model =1;
// 武器编号
中庸
飞镖=1 飞轮=2 火枪=3 双刺=4 匕首=5 轻剑=6
长枪=7 大刀=8 大锤=9 乾坤刀=47 指虎=51 忍刀=55
高攻
飞镖=10 飞轮=11 火枪=12 双刺=13 匕首=14 轻剑=15
长枪=16 大刀=17 大锤=18 乾坤刀=48 指虎=52 忍刀=
56
高防
飞镖=19 飞轮=20 火枪=21 双刺=22 匕首=23 轻剑=24
长枪=25 大刀=26 大锤=27 乾坤刀=49 指虎=53 忍刀=
57
高敏
飞镖=28 飞轮=29 火枪=30 双刺=31 匕首=32 轻剑=33
长枪=34 大刀=35 大锤=36 乾坤刀=50 指虎=54 忍刀=
58
圣诞
雪球(飞镖)=37 飞碟(飞轮)=38 拉炮(火枪)=39
星星(双刺)=40 拐杖糖(匕首)=41仙女棒(轻剑)=42
雪地铲子(长枪)=43 特大抓痒器(大刀)=44
大棒棒糖(大锤)=45 铃铛(飞镖)=46
//int Weapon = 6
//int Weapon2 = 7
=======================================================
//姓名
string Name = "任何名称";这是用来设定NPC叫什么名字的
// 模型编号
int Model = 1;这是用来设定NPC的图型
// 主要武器编号
int Weapon = 6;这是设定所持有武器的编号
// 次要武器编号,没有次要武器就不要写或写0
int Weapon2 = 7;这是设定所持有第二把武器的编号,武器编号请查阅下方
// 队伍 0:不分队 1:流星 2:蝴蝶
int Team = 1;
// 视线距离 100~2000
int View = 500;
// 反应速度 0~100, 100最快(基本上可超过,但破100后,下面的常数设定大都失效了)
int Think = 100;
// 攻击机率(轻、中、重), 攻击+防御 机率 <= 100
int Attack1 = 30;
int Attack2 = 20;
int Attack3 = 30;
// 防御机率 0~100
int Guard = 10;
// 逃跑机率 0~100
int Dodge = 20;虽然说是逃跑,应该说是暂时离开战斗范围
// 跳跃机率 0~100
int Jump = 20;
// 四处看机率 0~100
int Look = 40;
// 快速移动机率 0~100
int Burst = 10;就是电脑会用上上,下下,左左,右右的行动的机率
// 瞄准准确度 0~100
int Aim = 80;如果有拿暗器的话,这个数值就能生效
// 拿宝物机率 0~100
int GetItem = 30;看到道具会去拿的机率
// 出生点编号
int Spawn = 1;这个随便写就好(区网用不到)
// 初始生命值
int HP = 1000; 生命值的1/10才是真实生命值,所以目前这个设定是100的血
函数及程序
// init function
int g_selfAddr; int 是用来宣告该变数为整数
int g_self;
OnInit(int this) 这个常式是代表启动这NPC的初始变数运算
{
g_selfAddr = this;
}
OnStart() 这个常式是代表启动这NPC的预设行为
{
g_self = GetSelf(g_selfAddr);
/*
// 站在原地四处看
ChangeBehavior(g_self, "wait");
// 站在原地不动
ChangeBehavior(g_self, "idle");
// 到处乱跑
ChangeBehavior(g_self, "run");
// 在1、3、5...巡逻点移动
ChangeBehavior(g_self, "patrol", 1, 3, 5);
// 跟在玩家身边
ChangeBehavior(g_self, "follow", "player");
// 跟在同队VIP身边
ChangeBehavior(g_self, "follow", "vip");
// 跟在敌队VIP身边
ChangeBehavior(g_self, "follow", "enemyvip");
// 跟在拿标物的人身边
ChangeBehavior(g_self, "follow", "flag");
// 跟在xxx身边
ChangeBehavior(g_self, "follow", "xxx");
//以杀了xxx为目的
ChangeBehavior(g_self, "kill", "xxx");
*/
}
// run function 程序开始的地方(一般可以不用写)
OnUpdate()
{
int a = 0;
}
写到这里存档后(档名不限,副档名一定要PST),把该NPC档放在LEVEL目录中,就可以用\AI NPC档名呼叫的方式叫出自己做的NPC了.
1)游戏中20个场景代号 01 钟乳洞 02 秦皇陵 03 一线天 04 织雪城 05 皇天城 06 四方阵 07 死之阵 08 毒牙阵 09 决死阵 10 炼铁狱
11 五爪峰 12 烽火雷 13 金华城 14 炎硫岛 15 飞鹏堡 16 五雷塔 17 伏虎山 18 圆满楼 19 洛阳城 20 卧龙窟 21 圣诞夜 22 威震八方
2)对于单个NPC的编辑在游戏目录下打开Level文件夹,用记事本打开NPC*.pst就可以编辑了,当然也可以创建,
*的地方一般来说是数字,也就是游戏设计者设定的文件名,前面一个数字代表出场场景,后面一个数字代表第几个加入的NPC。
当然我们自己用记事本制作的文件可以随便命名。打开以后需要写入以下几点。//为注释 // 姓名 string Name= ""
// 模型编号
//0孟星魂 1冷燕 2铁胡子 3夜猫子 4和尚
5冯浩 6孙剑 7萧安 8子舆 9王强 10无名 1
1叶翔 12小何 13凤凰 14石群 15屠城 16范旋
17高寄萍 18孙玉伯 19律香川 int Model =1;
// 武器编号
中庸
飞镖=1 飞轮=2 火枪=3 双刺=4 匕首=5 轻剑=6
长枪=7 大刀=8 大锤=9 乾坤刀=47 指虎=51 忍刀=55
高攻
飞镖=10 飞轮=11 火枪=12 双刺=13 匕首=14 轻剑=15
长枪=16 大刀=17 大锤=18 乾坤刀=48 指虎=52 忍刀=
56
高防
飞镖=19 飞轮=20 火枪=21 双刺=22 匕首=23 轻剑=24
长枪=25 大刀=26 大锤=27 乾坤刀=49 指虎=53 忍刀=
57
高敏
飞镖=28 飞轮=29 火枪=30 双刺=31 匕首=32 轻剑=33
长枪=34 大刀=35 大锤=36 乾坤刀=50 指虎=54 忍刀=
58
圣诞
雪球(飞镖)=37 飞碟(飞轮)=38 拉炮(火枪)=39
星星(双刺)=40 拐杖糖(匕首)=41仙女棒(轻剑)=42
雪地铲子(长枪)=43 特大抓痒器(大刀)=44
大棒棒糖(大锤)=45 铃铛(飞镖)=46
//int Weapon = 6
//int Weapon2 = 7
=======================================================
//姓名
string Name = "任何名称";这是用来设定NPC叫什么名字的
// 模型编号
int Model = 1;这是用来设定NPC的图型
// 主要武器编号
int Weapon = 6;这是设定所持有武器的编号
// 次要武器编号,没有次要武器就不要写或写0
int Weapon2 = 7;这是设定所持有第二把武器的编号,武器编号请查阅下方
// 队伍 0:不分队 1:流星 2:蝴蝶
int Team = 1;
// 视线距离 100~2000
int View = 500;
// 反应速度 0~100, 100最快(基本上可超过,但破100后,下面的常数设定大都失效了)
int Think = 100;
// 攻击机率(轻、中、重), 攻击+防御 机率 <= 100
int Attack1 = 30;
int Attack2 = 20;
int Attack3 = 30;
// 防御机率 0~100
int Guard = 10;
// 逃跑机率 0~100
int Dodge = 20;虽然说是逃跑,应该说是暂时离开战斗范围
// 跳跃机率 0~100
int Jump = 20;
// 四处看机率 0~100
int Look = 40;
// 快速移动机率 0~100
int Burst = 10;就是电脑会用上上,下下,左左,右右的行动的机率
// 瞄准准确度 0~100
int Aim = 80;如果有拿暗器的话,这个数值就能生效
// 拿宝物机率 0~100
int GetItem = 30;看到道具会去拿的机率
// 出生点编号
int Spawn = 1;这个随便写就好(区网用不到)
// 初始生命值
int HP = 1000; 生命值的1/10才是真实生命值,所以目前这个设定是100的血
函数及程序
// init function
int g_selfAddr; int 是用来宣告该变数为整数
int g_self;
OnInit(int this) 这个常式是代表启动这NPC的初始变数运算
{
g_selfAddr = this;
}
OnStart() 这个常式是代表启动这NPC的预设行为
{
g_self = GetSelf(g_selfAddr);
/*
// 站在原地四处看
ChangeBehavior(g_self, "wait");
// 站在原地不动
ChangeBehavior(g_self, "idle");
// 到处乱跑
ChangeBehavior(g_self, "run");
// 在1、3、5...巡逻点移动
ChangeBehavior(g_self, "patrol", 1, 3, 5);
// 跟在玩家身边
ChangeBehavior(g_self, "follow", "player");
// 跟在同队VIP身边
ChangeBehavior(g_self, "follow", "vip");
// 跟在敌队VIP身边
ChangeBehavior(g_self, "follow", "enemyvip");
// 跟在拿标物的人身边
ChangeBehavior(g_self, "follow", "flag");
// 跟在xxx身边
ChangeBehavior(g_self, "follow", "xxx");
//以杀了xxx为目的
ChangeBehavior(g_self, "kill", "xxx");
*/
}
// run function 程序开始的地方(一般可以不用写)
OnUpdate()
{
int a = 0;
}
写到这里存档后(档名不限,副档名一定要PST),把该NPC档放在LEVEL目录中,就可以用\AI NPC档名呼叫的方式叫出自己做的NPC了.

签名:~~~~~~~~~~~
UID 8



