基本??构成
 
常数栏 
//姓名
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了.
 
