发表于 2008-2-21 21:441#
楼主开头:
// 炼铁狱 任务名称
int Rule = 4; 阵营?
int RoundTime = 99; 游戏时间
int PlayerSpawn = 3; 出生点
int PlayerSpawnDir = 100; 面对的角度
int PlayerWeapon = 16; 主要武器
int PlayerWeapon2 = 55; 副武器
int PlayerHP = 5000; 生命值
下面讲解一下int.
int可以看做是产生或者设定一个代码的数值,一般设定为0,当然除了上面的那些之外.
int设定的代码很多,下面一一进行讲解.
int trg* = 0;*为数字,
这个是一个任务过程的总条件.什么意思那?就是讲一个任务过程,包括对话,使用道具,设定NPC任务的一段任务的条件,当符合这个条件的时候任务才会启动.当然这是一个总条件,一个任务过程还有副条件.下面再讲解副条件.
int timer* = 0;*为数字
这个是时间代码,也就是一个计时器,当一段任务过程结束后,可让timer*加上一定的数值,数值按秒计算.然后在下一个任务过程的总条件内设定timer*时间结束now>timer*,于是当时间过完后,下一个任务则自动启动(当然如果副条件不符合也是不会启动的.)
int reborn = -1;
string rebornName;
这两个必须同时出现,是设定NPC复活的总条件,其实并没有太多需要讲解的,只要记住如果想让NPC自动复活,就要讲这段代码放到int timer*=0后面(为什么要放在这个后面那?因为NPC自动复活和timer*是密不可分的).
其他暂未研究.
这是最上面的一段int,在OnUpdate()下面还有一段int.
int c*;*为数字
这个是设定NPC的名称代码,后面要详细讲到,总之一个任务过程里同时需要几个NPC,就要设定几个int c*.
int now = GetGameTime();
这个是在有timer*的时候需要设定的,总之也是在有timer*的时候记着设定上就行了..
下面分析讲解一下一个任务过程.
if (trg* == 0)
这个就是总条件,其实不一定是这个,还有可能包括其他的,比如timer*(now>timer*),或者同时两个总条件,不过记住,如果条件是2个或者2个以上,就要用&&分开.
c = GetChar("XX");或者c = GetAnyChar("XX");
这个是设定某个名称为XX的NPC为一个代码,然后才能进行下一步的设定.这两个代码作用不同.
GetChar只能读取生命值>=0的,如果NPC死亡就不能读取.GetAnyChar可以读取生命值<=0的.
if (c >= 0)
此处的可不同于最前面的,这是副条件,包括NPC是否存活或者是否在,还有其他附属条件.包括条件有:
c* >= 0,某个NPC是否加入.如果加入数值为1,未加入为-1
GetEnemy(c)==player,得到c这个电脑锁定的人为玩家player(或者设定为NPC也行,同样也是c*)
GetHP(c)=0 && GetHP(c)<=0)
{
reborn = c;
rebornName = "NPC的文档名称";
trg* = 1;
timer* = now + *; 此处的数值随意写,按秒算.
}
然后下面再设定
if (trg* = 1 && now>timer*)
{
RemoveNPC(reborn);
timer* = now + *;
trg* = 2;
}
if (trg*==2 && now>timer*)
{
AddNPC(rebornName);
trg* = 0; 等于0后就可以反复
}
以上就是本人了解的单机任务的设定,还有部分没有了解到,如果有什么错误的地方希望大家提供一下.
高手就表砸偶了
注:实际上那些Int 后面的代码名称可以随意,个人爱好不同,修改时可以随意,不过千万别混了……
可能不太清楚,见谅
// 炼铁狱 任务名称
int Rule = 4; 阵营?
int RoundTime = 99; 游戏时间
int PlayerSpawn = 3; 出生点
int PlayerSpawnDir = 100; 面对的角度
int PlayerWeapon = 16; 主要武器
int PlayerWeapon2 = 55; 副武器
int PlayerHP = 5000; 生命值
下面讲解一下int.
int可以看做是产生或者设定一个代码的数值,一般设定为0,当然除了上面的那些之外.
int设定的代码很多,下面一一进行讲解.
int trg* = 0;*为数字,
这个是一个任务过程的总条件.什么意思那?就是讲一个任务过程,包括对话,使用道具,设定NPC任务的一段任务的条件,当符合这个条件的时候任务才会启动.当然这是一个总条件,一个任务过程还有副条件.下面再讲解副条件.
int timer* = 0;*为数字
这个是时间代码,也就是一个计时器,当一段任务过程结束后,可让timer*加上一定的数值,数值按秒计算.然后在下一个任务过程的总条件内设定timer*时间结束now>timer*,于是当时间过完后,下一个任务则自动启动(当然如果副条件不符合也是不会启动的.)
int reborn = -1;
string rebornName;
这两个必须同时出现,是设定NPC复活的总条件,其实并没有太多需要讲解的,只要记住如果想让NPC自动复活,就要讲这段代码放到int timer*=0后面(为什么要放在这个后面那?因为NPC自动复活和timer*是密不可分的).
其他暂未研究.
这是最上面的一段int,在OnUpdate()下面还有一段int.
int c*;*为数字
这个是设定NPC的名称代码,后面要详细讲到,总之一个任务过程里同时需要几个NPC,就要设定几个int c*.
int now = GetGameTime();
这个是在有timer*的时候需要设定的,总之也是在有timer*的时候记着设定上就行了..
下面分析讲解一下一个任务过程.
if (trg* == 0)
这个就是总条件,其实不一定是这个,还有可能包括其他的,比如timer*(now>timer*),或者同时两个总条件,不过记住,如果条件是2个或者2个以上,就要用&&分开.
c = GetChar("XX");或者c = GetAnyChar("XX");
这个是设定某个名称为XX的NPC为一个代码,然后才能进行下一步的设定.这两个代码作用不同.
GetChar只能读取生命值>=0的,如果NPC死亡就不能读取.GetAnyChar可以读取生命值<=0的.
if (c >= 0)
此处的可不同于最前面的,这是副条件,包括NPC是否存活或者是否在,还有其他附属条件.包括条件有:
c* >= 0,某个NPC是否加入.如果加入数值为1,未加入为-1
GetEnemy(c)==player,得到c这个电脑锁定的人为玩家player(或者设定为NPC也行,同样也是c*)
GetHP(c)=0 && GetHP(c)<=0)
{
reborn = c;
rebornName = "NPC的文档名称";
trg* = 1;
timer* = now + *; 此处的数值随意写,按秒算.
}
然后下面再设定
if (trg* = 1 && now>timer*)
{
RemoveNPC(reborn);
timer* = now + *;
trg* = 2;
}
if (trg*==2 && now>timer*)
{
AddNPC(rebornName);
trg* = 0; 等于0后就可以反复
}
以上就是本人了解的单机任务的设定,还有部分没有了解到,如果有什么错误的地方希望大家提供一下.
高手就表砸偶了
注:实际上那些Int 后面的代码名称可以随意,个人爱好不同,修改时可以随意,不过千万别混了……
可能不太清楚,见谅

UID 42128









