发表于 2010-12-28 11:361#
楼主我在里边多加了一个npc 文件名为“000.pst” 就是以下剧情里的GetChar(“008”),请在测试的时候随便把一个npc文件重命名为000。 测试失败,进入游戏后。player直接就死了,我不是很懂C语言,那一定是调用函数、语句、变量时出错了。希望大家喜欢修改 以及 喜欢编程的朋友加我QQ:914934959.
// 炽雪城
int Rule = 3;
int RoundTime = 20;
int PlayerSpawn = 15;
int PlayerSpawnDir = 250;
int PlayerWeapon = 16;
int PlayerWeapon2 = 14;
int PlayerHP = 3000;
int trg0 = 0;
int trg1 = 0;
int trg2 = 0;
int trg3 = 0;
int now = 0;
int survivor = -1;
int gameover = 0;
int timer0 = 0;
OnStart()
{
AddNPC("npc04_01");
AddNPC("npc04_06");
AddNPC("npc04_07");
}
OnUpdate()
{
int player = GetAnyChar("player");
if(player < 0)
{
return 0;
}
int c;
int c1;
int c2;
if(trg0 == 0)
{
c = GetChar("禁卫侍官长");
c1 = GetChar("禁卫士兵﹒甲");
c2 = GetChar("禁卫士兵﹒乙");
if(c>=0 && c1>=0 && c2>=0)
{
Perform(c, "say", "你们两个加强巡逻,发现那小子给我活捉过来!事成后大大有赏!");
Perform(c, "say", "要是让他跑了,你们也知道萧老大的脾气...好了去吧!!");
ChangeBehavior(c1, "follow", c);
Perform(c1, "say", "是!");
Perform(c1, "pause", 3);
Perform(c1, "faceto", c);
ChangeBehavior(c2, "follow", c);
Perform(c2, "say", "是!");
Perform(c2, "pause", 3);
Perform(c2, "faceto", c);
PlayerPerform("block", 0);
PlayerPerform("say", "(﹒不多想了,还是赶快..)");
PlayerPerform("pause", 1);
PlayerPerform("say", "(﹒这道关卡﹒戒备森严﹒要是硬闯....!!)");
PlayerPerform("pause", 1);
PlayerPerform("say", "(﹒﹒小蝶被姓萧的家伙抓去了﹒我这次任务正好顺便去搭救她...也好!!)");
PlayerPerform("pause", 2);
PlayerPerform("say", "(﹒﹒我和小蝶的事情绝不能让任何人知道﹒尤其是高老大..)");
PlayerPerform("pause", 2);
PlayerPerform("say", "(﹒信物终于拿到手了﹒)");
PlayerPerform("pause", 5);
PlayerPerform("block", 1);
trg0 = 1;
}
}
if (trg0 == 1)
{
c2 = GetChar("禁卫士兵﹒甲");
c3 = GetChar("禁卫士兵﹒乙");
if (c2>=0 && GetEnemy(c2)==player)
{
ChangeBehavior(c3, "follow", c2);
Perform(c2, "say", "发现了!这小子在这,快来帮忙!");
Perform(c2, "faceto", player);
trg0 = 2;
}
if (c3>=0 && GetEnemy(c3)==player)
{
ChangeBehavior(c2, "follow", c3);
Perform(c3, "say", "发现了!这小子在这,快来帮忙!");
Perform(c3, "faceto", player);
trg0 = 2;
}
}
if (trg0 == 2)
{
c1 = GetAnyChar("禁卫士兵﹒甲");
c2 = GetAnyChar("禁卫士兵﹒乙");
survivor = -1;
if (c1>=0 && GetHP(c1)<=0)
{
c2 = survivor;
}
if (c2>=0 && GetHP(c2)<=0)
{
c1 = survivor;
}
if (GetHP(survivor) > 0)
{
c = GetChar("禁卫侍官长");
if (c >= 0)
{
ChangeBehavior(survivor, "follow", c);
Perform(survivor, "say", "可恶!你给我等着!");
Perform(survivor, "faceto", player);
trg0 = 3;
}
}
}
if (trg0 == 3)
{
c = GetChar("禁卫侍官长");
if (c>=0 && GetHP(survivor)>0)
{
SetTarget(0, "char", c);
SetTarget(1, "char", survivor);
if (Distance(0, 1) < 200)
{
Perform(survivor, "say", "是!老大我这就去!");
Perform(survivor, "pause", 1);
Perform(survivor, "say", "我...!那小子他太厉害了,我们都不是他的对手!");
Perform(survivor, "pause", 2);
Perform(survivor, "say", "报告!发现那位闯关的小子了!");
Perform(survivor, "faceto", c);
Perform(c, "say", "抓住了吗!混账,我叫你们抓住他给我带来!");
Perform(c, "pause", 2);
Perform(c, "say", "饭桶!再去叫人!我倒要看看那小子有多大能耐!哼!");
Perform(c, "pause", 3);
AddNPC("npc04_02");
AddNPC("npc04_03");
AddNPC("npc04_04");
AddNPC("npc04_05");
AddNPC("001");
trg0 = 4;
now = Gametimes() + 5;
}
}
}
if (trg1 == 0 && now > timer0)
{
int p1 = GetChar("008");
int c = GetChar("火铳兵﹒甲");;
int c1 = GetChar("禁卫士兵﹒甲");
int c2 = GetChar("禁卫士兵﹒乙");
int c3 = GetChar("火铳兵﹒乙");
SetTarget(0, "char", p1);
SetTarget(1, "char", player);
if (GetHP(p1)>0 && Distance(0, 1) < 200)
{
c = survivor;
Say(p1,"星!不要多说了,我来帮你闯关!先对付他们!");
Say(player,"啊..你..怎么来了?");
ChangeBehavior(c1, "follow", c);
ChangeBehavior(c2, "follow", c);
ChangeBehavior(c3, "follow", c);
ChangeBehavior(c, "follow", player);
trg1 = 1;
}
}
if (trg1 ==1 && now > timer0)
{
int c = survivor;
if (GetHP(c) <= 0)
{
Say(c,"你..你们要活捉了这小子?");
RemoveNPC(c);
c = GetChar("禁卫侍官长");
Say(c1,"是!");
ChangeBehavior(c3, "follow", c);
}
c = GetChar("禁卫侍官长");
if(c >= 0)
{
SetTarget(0, "char", c3);
SetTarget(1, "char", c);
if (Distance(0, 1) < 150)
{
Perform(c3, "say", "报告!那小子竟然有个高手相助!我们快顶部住了!");
Perform(c3, "faceto", c);
ChangeBehavior(c, "follow", player);
Perform(c, "say", "这个臭小子!!所有人跟我来!看来今天我得亲自出马了!!");
Perform(c, "pause", 3);
Perform(c, "faceto", c3);
c2 = GetChar("金枪侍卫﹒甲");
if (c2 >= 0)
{
ChangeBehavior(c2, "follow", c);
Perform(c2, "faceto", c);
}
c2 = GetChar("金枪侍卫﹒乙");
if (c2 >= 0)
{
ChangeBehavior(c2, "follow", c);
Perform(c2, "faceto", c);
}
c3 = GetChar("金枪侍卫﹒乙");
if (c2 >= 0)
{
ChangeBehavior(c3, "follow", c);
Perform(c3, "faceto", c);
}
trg1 = 2;
}
}
}
if (trg1 == 2)
{
p1 = GetAnyChar("008");
if (p1>=0 && GetHP(p1)<=50)
{
ChangeBehavior(p1, "guard", 5);
Perform(p1, "use", 33);
Perform(p1, "use", 32);
Perform(p1, "say", "..操!...你们这些混蛋!");
Perform(p1, "say", "..我龙门剑客可不是好惹的,你们就等着看怎么死吧!!");
Perform(c, "say", "哼!我可没有听说过!管你是谁!给我戳死他!");
PlayerPerform("say", "(﹒龙门剑客..原来他就是龙门剑客....)");
trg1 = 3;
}
}
if (trg2 == 0)
{
c = GetAnyChar("禁卫侍官长");
if (c>=0 && GetHP(c)<=150)
{
ChangeBehavior(c, "guard", 5);
ChangeBehavior(c1, "guard", 5);
ChangeBehavior(c2, "guard", 5);
Perform(c, "say", "哼!好小子!真有两手,若不是多了龙门剑客,你肯定会死!");
Perform(c, "pause", 3);
Perform(c, "say", "只要我还活着,你小子就别想通过这里!");
Perform(c, "pause", 2);
Perform(c, "say", "佩服,阁下叫什么名字!今天要死也死个明白");
PlayerPerform("say", ".好吧,我叫孟星魂.....");
PlayerPerform("pause", 3);
PlayerPerform("say", ".哼哼.在下在江湖中不过是个无名小卒而已..");
PlayerPerform("pause", 5);
trg2 = 1;
}
}
now = GetGameTime();
if (gameover==0 && GetHP(player)<=0)
{
gameover = -1;
timer0 = now + 2;
}
if ((gameover==1 || gameover==-1) && now>timer0)
{
GameOver(gameover);
gameover = 2;
}
}
// 炽雪城
int Rule = 3;
int RoundTime = 20;
int PlayerSpawn = 15;
int PlayerSpawnDir = 250;
int PlayerWeapon = 16;
int PlayerWeapon2 = 14;
int PlayerHP = 3000;
int trg0 = 0;
int trg1 = 0;
int trg2 = 0;
int trg3 = 0;
int now = 0;
int survivor = -1;
int gameover = 0;
int timer0 = 0;
OnStart()
{
AddNPC("npc04_01");
AddNPC("npc04_06");
AddNPC("npc04_07");
}
OnUpdate()
{
int player = GetAnyChar("player");
if(player < 0)
{
return 0;
}
int c;
int c1;
int c2;
if(trg0 == 0)
{
c = GetChar("禁卫侍官长");
c1 = GetChar("禁卫士兵﹒甲");
c2 = GetChar("禁卫士兵﹒乙");
if(c>=0 && c1>=0 && c2>=0)
{
Perform(c, "say", "你们两个加强巡逻,发现那小子给我活捉过来!事成后大大有赏!");
Perform(c, "say", "要是让他跑了,你们也知道萧老大的脾气...好了去吧!!");
ChangeBehavior(c1, "follow", c);
Perform(c1, "say", "是!");
Perform(c1, "pause", 3);
Perform(c1, "faceto", c);
ChangeBehavior(c2, "follow", c);
Perform(c2, "say", "是!");
Perform(c2, "pause", 3);
Perform(c2, "faceto", c);
PlayerPerform("block", 0);
PlayerPerform("say", "(﹒不多想了,还是赶快..)");
PlayerPerform("pause", 1);
PlayerPerform("say", "(﹒这道关卡﹒戒备森严﹒要是硬闯....!!)");
PlayerPerform("pause", 1);
PlayerPerform("say", "(﹒﹒小蝶被姓萧的家伙抓去了﹒我这次任务正好顺便去搭救她...也好!!)");
PlayerPerform("pause", 2);
PlayerPerform("say", "(﹒﹒我和小蝶的事情绝不能让任何人知道﹒尤其是高老大..)");
PlayerPerform("pause", 2);
PlayerPerform("say", "(﹒信物终于拿到手了﹒)");
PlayerPerform("pause", 5);
PlayerPerform("block", 1);
trg0 = 1;
}
}
if (trg0 == 1)
{
c2 = GetChar("禁卫士兵﹒甲");
c3 = GetChar("禁卫士兵﹒乙");
if (c2>=0 && GetEnemy(c2)==player)
{
ChangeBehavior(c3, "follow", c2);
Perform(c2, "say", "发现了!这小子在这,快来帮忙!");
Perform(c2, "faceto", player);
trg0 = 2;
}
if (c3>=0 && GetEnemy(c3)==player)
{
ChangeBehavior(c2, "follow", c3);
Perform(c3, "say", "发现了!这小子在这,快来帮忙!");
Perform(c3, "faceto", player);
trg0 = 2;
}
}
if (trg0 == 2)
{
c1 = GetAnyChar("禁卫士兵﹒甲");
c2 = GetAnyChar("禁卫士兵﹒乙");
survivor = -1;
if (c1>=0 && GetHP(c1)<=0)
{
c2 = survivor;
}
if (c2>=0 && GetHP(c2)<=0)
{
c1 = survivor;
}
if (GetHP(survivor) > 0)
{
c = GetChar("禁卫侍官长");
if (c >= 0)
{
ChangeBehavior(survivor, "follow", c);
Perform(survivor, "say", "可恶!你给我等着!");
Perform(survivor, "faceto", player);
trg0 = 3;
}
}
}
if (trg0 == 3)
{
c = GetChar("禁卫侍官长");
if (c>=0 && GetHP(survivor)>0)
{
SetTarget(0, "char", c);
SetTarget(1, "char", survivor);
if (Distance(0, 1) < 200)
{
Perform(survivor, "say", "是!老大我这就去!");
Perform(survivor, "pause", 1);
Perform(survivor, "say", "我...!那小子他太厉害了,我们都不是他的对手!");
Perform(survivor, "pause", 2);
Perform(survivor, "say", "报告!发现那位闯关的小子了!");
Perform(survivor, "faceto", c);
Perform(c, "say", "抓住了吗!混账,我叫你们抓住他给我带来!");
Perform(c, "pause", 2);
Perform(c, "say", "饭桶!再去叫人!我倒要看看那小子有多大能耐!哼!");
Perform(c, "pause", 3);
AddNPC("npc04_02");
AddNPC("npc04_03");
AddNPC("npc04_04");
AddNPC("npc04_05");
AddNPC("001");
trg0 = 4;
now = Gametimes() + 5;
}
}
}
if (trg1 == 0 && now > timer0)
{
int p1 = GetChar("008");
int c = GetChar("火铳兵﹒甲");;
int c1 = GetChar("禁卫士兵﹒甲");
int c2 = GetChar("禁卫士兵﹒乙");
int c3 = GetChar("火铳兵﹒乙");
SetTarget(0, "char", p1);
SetTarget(1, "char", player);
if (GetHP(p1)>0 && Distance(0, 1) < 200)
{
c = survivor;
Say(p1,"星!不要多说了,我来帮你闯关!先对付他们!");
Say(player,"啊..你..怎么来了?");
ChangeBehavior(c1, "follow", c);
ChangeBehavior(c2, "follow", c);
ChangeBehavior(c3, "follow", c);
ChangeBehavior(c, "follow", player);
trg1 = 1;
}
}
if (trg1 ==1 && now > timer0)
{
int c = survivor;
if (GetHP(c) <= 0)
{
Say(c,"你..你们要活捉了这小子?");
RemoveNPC(c);
c = GetChar("禁卫侍官长");
Say(c1,"是!");
ChangeBehavior(c3, "follow", c);
}
c = GetChar("禁卫侍官长");
if(c >= 0)
{
SetTarget(0, "char", c3);
SetTarget(1, "char", c);
if (Distance(0, 1) < 150)
{
Perform(c3, "say", "报告!那小子竟然有个高手相助!我们快顶部住了!");
Perform(c3, "faceto", c);
ChangeBehavior(c, "follow", player);
Perform(c, "say", "这个臭小子!!所有人跟我来!看来今天我得亲自出马了!!");
Perform(c, "pause", 3);
Perform(c, "faceto", c3);
c2 = GetChar("金枪侍卫﹒甲");
if (c2 >= 0)
{
ChangeBehavior(c2, "follow", c);
Perform(c2, "faceto", c);
}
c2 = GetChar("金枪侍卫﹒乙");
if (c2 >= 0)
{
ChangeBehavior(c2, "follow", c);
Perform(c2, "faceto", c);
}
c3 = GetChar("金枪侍卫﹒乙");
if (c2 >= 0)
{
ChangeBehavior(c3, "follow", c);
Perform(c3, "faceto", c);
}
trg1 = 2;
}
}
}
if (trg1 == 2)
{
p1 = GetAnyChar("008");
if (p1>=0 && GetHP(p1)<=50)
{
ChangeBehavior(p1, "guard", 5);
Perform(p1, "use", 33);
Perform(p1, "use", 32);
Perform(p1, "say", "..操!...你们这些混蛋!");
Perform(p1, "say", "..我龙门剑客可不是好惹的,你们就等着看怎么死吧!!");
Perform(c, "say", "哼!我可没有听说过!管你是谁!给我戳死他!");
PlayerPerform("say", "(﹒龙门剑客..原来他就是龙门剑客....)");
trg1 = 3;
}
}
if (trg2 == 0)
{
c = GetAnyChar("禁卫侍官长");
if (c>=0 && GetHP(c)<=150)
{
ChangeBehavior(c, "guard", 5);
ChangeBehavior(c1, "guard", 5);
ChangeBehavior(c2, "guard", 5);
Perform(c, "say", "哼!好小子!真有两手,若不是多了龙门剑客,你肯定会死!");
Perform(c, "pause", 3);
Perform(c, "say", "只要我还活着,你小子就别想通过这里!");
Perform(c, "pause", 2);
Perform(c, "say", "佩服,阁下叫什么名字!今天要死也死个明白");
PlayerPerform("say", ".好吧,我叫孟星魂.....");
PlayerPerform("pause", 3);
PlayerPerform("say", ".哼哼.在下在江湖中不过是个无名小卒而已..");
PlayerPerform("pause", 5);
trg2 = 1;
}
}
now = GetGameTime();
if (gameover==0 && GetHP(player)<=0)
{
gameover = -1;
timer0 = now + 2;
}
if ((gameover==1 || gameover==-1) && now>timer0)
{
GameOver(gameover);
gameover = 2;
}
}
UID 92319

