发表于 2007-10-18 11:141#
楼主真武林第6关-[师兄授剑术见大侠]源码
/*
Attribute for SN_1 by ZMJ 2005/10/10
*/
//#include "MeterorAI.h"
#include "npctypes.pst"
#include "snopt.pst"
int Level = 6;
int Rule = GetSNRule(Level);
int RoundTime = GetSNTime(Level);
int PlayerSpawn = GetSNSpawn(Level);
int PlayerSpawnDir = 90;
int PlayerWeapon = GetSNWeapon(Level);
int PlayerWeapon2 = GetSNWeapon2(Level);
int PlayerHP = GetSNHP(Level);
int PlayerSpeed = GetSNSpeed(Level);
int PlayerExps = GetPlayerExps();
int trg = 0;
int trg2 = 0;
int scens = 0;
int gameover = 0;
int nallyhps = 0;
int nallykills = 0;
int allykills = 0;
int now0;
int now1;
int now2;
int now3;
int now4;
int now5;
int now6;
int now7;
int now9;
int now10;
int gb_MaxSeedCount = 20;
int swordId = -1;
TeachSword(int who, int id)
{
if(id == 0){Say(who, "练剑中, 我传你剑法口诀, 你可牢记");}
if(id == 1)
{
Say(who, "【似攻非攻,似防非防】");
Say(who, "无招胜有招,不要固守成规,没有规律可寻才是上策");
}
if(id == 2)
{
Say(who, "【进而非战,退而非和】");
Say(who, "虚张声势,声东击西, 随机应变改变招式打个措手不及");
}
if(id == 3)
{
Say(who, "【欲击风落,先意风起】");
Say(who, "敌不动我不动,料敌于先手,击其破绽,以静之动陷敌之既动");
}
if(id == 4){Say(who, "练剑中, 我传你剑法招术, 你可牢记");}
if(id == 5)
{
Say(who, "【快】");
Say(who, "乱草和巧篆的配合");
}
if(id == 6)
{
Say(who, "【乱】");
Say(who, "乱草和轻行的配合");
}
if(id == 7)
{
Say(who, "【灵】");
Say(who, "乱草和解锁的配合");
}
if(id == 8)
{
Say(who, "【准】");
Say(who, "轻行和扫地的配合");
}
if(id == 9)
{
Say(who, "【狠】");
Say(who, "残阳第九式");
}
if(id == 10){Say(who, "练剑中, 我传你躲闪方法, 你可牢记");}
if(id == 11)
{
Say(who, "【跑动中左右忽闪】");
}
if(id == 12)
{
Say(who, "【绕对方跑大圈】");
}
if(id == 13)
{
Say(who, "【绕对方绕小圈,锁定对方】");
}
if(id == 14)
{
Say(who, "【攻击中滚动躲闪】");
}
}
OnStart()
{
InitSNData();
AddEachNPC("师兄", BENPAI_SHIXIONG, TEAM_ANY);
}
OnUpdate()
{
int player = GetAnyChar("player");
if (player < 0)
{
return 0;
}
if (gameover == 2)
{
return 0;
}
trg = LockChk(player, trg);
int c1;
int tmp;
int alives;
now1 = GetGameTime();
now4 = now1;
now7 = now1;
if(trg == 0)
{
now0 = now1;
Say(player, "找师兄练剑去吧");
trg = 1;
LockBegin(player);
}
if(trg == 1)
{
c1 = GetAnyChar("师兄");
if(now1-now0 > 5)
{
if(c1>0 && GetHP(c1)>0)
{
CheckSnapAdd(2, 16);
ChangeNAllyAttack(player, 2, 16);
trg = 2;
LockEnd(player);
}
if(c1>0 && GetHP(c1)<=0)
{
RemoveNPC(c1);
AddEachNPC("师兄", BENPAI_SHIXIONG, TEAM_ANY);
now0 = now1;
return 0;
}
}
}
if(trg >= 2)
{
if(now1-now0>=PlayerSpeed)
{
UpdatePlayerOpt(player, PlayerSpeed);
now0 = now1;
}
}
if(trg == 2)
{
c1 = GetAnyChar("师兄");
if(trg2==0 && GetManManDistance(player, c1)<150)
{
LockScence(player, c1, 15, 99, 3);
Say(player, "师兄?");
Say(c1, "你来练剑啦");
Say(player, "嗯,除了师父外, 师兄乃我派第一高手");
Say(c1, "...");
Say(player, "所以我来向师兄指教如何提高剑术!");
Say(c1, "好的,我们边打边说!");
trg2 = 1;
now2 = GetGameTime();
return 0;
}
now3=now4;
}
if(trg == 3)
{
now3 = GetGameTime();
c1 = GetAnyChar("师兄");
if(now3-now2 >= 20)
{
if(GetHP(player) > 0)
{
if(GetManManDistance(player, c1) > 150)
{
Say(c1, "别跑,跑远了我怎么教你剑法啊");
}
else
{
swordId ++;
if(swordId >= 15)
{
LockScence(player, c1, 15, 99, 61);
return 0;
}
TeachSword(c1, swordId);
LockBegin(player);
now2 = GetGameTime();
trg = 4;
return 0;
}
}
}
}
if(trg == 4)
{
now3 = GetGameTime();
if(now3-now2 >= 6)
{
LockEnd(player);
now2 = GetGameTime();
trg = 3;
}
return 0;
}
if(trg == 61)
{
c1 = GetAnyChar("师兄");
Say(c1, "师弟,你进步真快");
Say(c1, "我带你去见一位前辈大侠");
Say(player, "???");
RemoveNPC(c1);
trg = 62;
return 0;
}
if(trg == 62)
{
AddEachNPC("大侠ZMJ", DAXIA_ZMJ, TEAM_ENEMY);
LockBegin(player);
now2 = GetGameTime();
trg = 63;
}
if(trg == 63)
{
now3 = GetGameTime();
if(now3-now2 >= 5)
{
if(CheckSnapAdd(2, 16) < 1)
{
RemoveSnapNAlly2(2, 16);
trg = 62;
return 0;
}
else
{
LockEnd(player);
ChangeNAllyAttack(player, 2, 16);
trg = 50;
trg2 = 0;
return 0;
}
}
}
if(trg == 50)
{
c1 = GetAnyChar("大侠ZMJ");
if(trg2==0 && GetManManDistance(player, c1)<150)
{
LockScence(player, c1, 15, 99, 51);
Say(player, "???");
Say(c1, "你师兄说你资质不错");
Say(c1, "来,对我攻击,让我看看你的剑法");
trg2 = 1;
now2 = GetGameTime();
return 0;
}
now3=now4;
}
if(trg == 51)
{
now3 = GetGameTime();
if(now3-now2 >60)
{
c1 = GetAnyChar("大侠ZMJ");
Say(c1, "呵呵,你知道你为什么攻击不到我吗?");
Say(c1, "因为你不够快,所以我可以轻易避开");
Say(c1, "去吧,真剑侠应该到江湖上历练一下");
Say(c1, "临别,我送你一本秘籍--###剑法对决之二### 你好好研习一下");
trg = 88;
return 0;
}
}
if(trg != 99)
{
if (gameover!=-1 && GetHP(player)<=0)
{
c1 = GetAnyChar("师兄");
Say(c1, "唉!");
Say(c1, "本来我今天要带你去见一位前辈大侠的!");
Say(c1, "但你现在的剑法,前辈见了肯定不喜!");
Say(player, "汗...");
Say(c1, "师弟,你剑法还没练到家,再多和本派弟子对练一下");
Say(player, "是,师兄");
now6 = now7;
gameover = -1;
trg = 99;
}
}
if(trg == 88)
{
Say(player, "得到--###剑法对决之二###, 可以在系统设定中观看该录像");
Say(player, "我一定要练得很师兄一样棒回来");
now6 = now7;
gameover = 1;
trg = 99;
}
if ((gameover==1 || gameover==-1))
{
if(now7-now6 >= 15)
{
if(gameover==1) {Save(PlayerExps);}
GameOver(gameover);
gameover = 2;
}
}
}
大家猜猜这一关又是什么剧情玩法
/*
Attribute for SN_1 by ZMJ 2005/10/10
*/
//#include "MeterorAI.h"
#include "npctypes.pst"
#include "snopt.pst"
int Level = 6;
int Rule = GetSNRule(Level);
int RoundTime = GetSNTime(Level);
int PlayerSpawn = GetSNSpawn(Level);
int PlayerSpawnDir = 90;
int PlayerWeapon = GetSNWeapon(Level);
int PlayerWeapon2 = GetSNWeapon2(Level);
int PlayerHP = GetSNHP(Level);
int PlayerSpeed = GetSNSpeed(Level);
int PlayerExps = GetPlayerExps();
int trg = 0;
int trg2 = 0;
int scens = 0;
int gameover = 0;
int nallyhps = 0;
int nallykills = 0;
int allykills = 0;
int now0;
int now1;
int now2;
int now3;
int now4;
int now5;
int now6;
int now7;
int now9;
int now10;
int gb_MaxSeedCount = 20;
int swordId = -1;
TeachSword(int who, int id)
{
if(id == 0){Say(who, "练剑中, 我传你剑法口诀, 你可牢记");}
if(id == 1)
{
Say(who, "【似攻非攻,似防非防】");
Say(who, "无招胜有招,不要固守成规,没有规律可寻才是上策");
}
if(id == 2)
{
Say(who, "【进而非战,退而非和】");
Say(who, "虚张声势,声东击西, 随机应变改变招式打个措手不及");
}
if(id == 3)
{
Say(who, "【欲击风落,先意风起】");
Say(who, "敌不动我不动,料敌于先手,击其破绽,以静之动陷敌之既动");
}
if(id == 4){Say(who, "练剑中, 我传你剑法招术, 你可牢记");}
if(id == 5)
{
Say(who, "【快】");
Say(who, "乱草和巧篆的配合");
}
if(id == 6)
{
Say(who, "【乱】");
Say(who, "乱草和轻行的配合");
}
if(id == 7)
{
Say(who, "【灵】");
Say(who, "乱草和解锁的配合");
}
if(id == 8)
{
Say(who, "【准】");
Say(who, "轻行和扫地的配合");
}
if(id == 9)
{
Say(who, "【狠】");
Say(who, "残阳第九式");
}
if(id == 10){Say(who, "练剑中, 我传你躲闪方法, 你可牢记");}
if(id == 11)
{
Say(who, "【跑动中左右忽闪】");
}
if(id == 12)
{
Say(who, "【绕对方跑大圈】");
}
if(id == 13)
{
Say(who, "【绕对方绕小圈,锁定对方】");
}
if(id == 14)
{
Say(who, "【攻击中滚动躲闪】");
}
}
OnStart()
{
InitSNData();
AddEachNPC("师兄", BENPAI_SHIXIONG, TEAM_ANY);
}
OnUpdate()
{
int player = GetAnyChar("player");
if (player < 0)
{
return 0;
}
if (gameover == 2)
{
return 0;
}
trg = LockChk(player, trg);
int c1;
int tmp;
int alives;
now1 = GetGameTime();
now4 = now1;
now7 = now1;
if(trg == 0)
{
now0 = now1;
Say(player, "找师兄练剑去吧");
trg = 1;
LockBegin(player);
}
if(trg == 1)
{
c1 = GetAnyChar("师兄");
if(now1-now0 > 5)
{
if(c1>0 && GetHP(c1)>0)
{
CheckSnapAdd(2, 16);
ChangeNAllyAttack(player, 2, 16);
trg = 2;
LockEnd(player);
}
if(c1>0 && GetHP(c1)<=0)
{
RemoveNPC(c1);
AddEachNPC("师兄", BENPAI_SHIXIONG, TEAM_ANY);
now0 = now1;
return 0;
}
}
}
if(trg >= 2)
{
if(now1-now0>=PlayerSpeed)
{
UpdatePlayerOpt(player, PlayerSpeed);
now0 = now1;
}
}
if(trg == 2)
{
c1 = GetAnyChar("师兄");
if(trg2==0 && GetManManDistance(player, c1)<150)
{
LockScence(player, c1, 15, 99, 3);
Say(player, "师兄?");
Say(c1, "你来练剑啦");
Say(player, "嗯,除了师父外, 师兄乃我派第一高手");
Say(c1, "...");
Say(player, "所以我来向师兄指教如何提高剑术!");
Say(c1, "好的,我们边打边说!");
trg2 = 1;
now2 = GetGameTime();
return 0;
}
now3=now4;
}
if(trg == 3)
{
now3 = GetGameTime();
c1 = GetAnyChar("师兄");
if(now3-now2 >= 20)
{
if(GetHP(player) > 0)
{
if(GetManManDistance(player, c1) > 150)
{
Say(c1, "别跑,跑远了我怎么教你剑法啊");
}
else
{
swordId ++;
if(swordId >= 15)
{
LockScence(player, c1, 15, 99, 61);
return 0;
}
TeachSword(c1, swordId);
LockBegin(player);
now2 = GetGameTime();
trg = 4;
return 0;
}
}
}
}
if(trg == 4)
{
now3 = GetGameTime();
if(now3-now2 >= 6)
{
LockEnd(player);
now2 = GetGameTime();
trg = 3;
}
return 0;
}
if(trg == 61)
{
c1 = GetAnyChar("师兄");
Say(c1, "师弟,你进步真快");
Say(c1, "我带你去见一位前辈大侠");
Say(player, "???");
RemoveNPC(c1);
trg = 62;
return 0;
}
if(trg == 62)
{
AddEachNPC("大侠ZMJ", DAXIA_ZMJ, TEAM_ENEMY);
LockBegin(player);
now2 = GetGameTime();
trg = 63;
}
if(trg == 63)
{
now3 = GetGameTime();
if(now3-now2 >= 5)
{
if(CheckSnapAdd(2, 16) < 1)
{
RemoveSnapNAlly2(2, 16);
trg = 62;
return 0;
}
else
{
LockEnd(player);
ChangeNAllyAttack(player, 2, 16);
trg = 50;
trg2 = 0;
return 0;
}
}
}
if(trg == 50)
{
c1 = GetAnyChar("大侠ZMJ");
if(trg2==0 && GetManManDistance(player, c1)<150)
{
LockScence(player, c1, 15, 99, 51);
Say(player, "???");
Say(c1, "你师兄说你资质不错");
Say(c1, "来,对我攻击,让我看看你的剑法");
trg2 = 1;
now2 = GetGameTime();
return 0;
}
now3=now4;
}
if(trg == 51)
{
now3 = GetGameTime();
if(now3-now2 >60)
{
c1 = GetAnyChar("大侠ZMJ");
Say(c1, "呵呵,你知道你为什么攻击不到我吗?");
Say(c1, "因为你不够快,所以我可以轻易避开");
Say(c1, "去吧,真剑侠应该到江湖上历练一下");
Say(c1, "临别,我送你一本秘籍--###剑法对决之二### 你好好研习一下");
trg = 88;
return 0;
}
}
if(trg != 99)
{
if (gameover!=-1 && GetHP(player)<=0)
{
c1 = GetAnyChar("师兄");
Say(c1, "唉!");
Say(c1, "本来我今天要带你去见一位前辈大侠的!");
Say(c1, "但你现在的剑法,前辈见了肯定不喜!");
Say(player, "汗...");
Say(c1, "师弟,你剑法还没练到家,再多和本派弟子对练一下");
Say(player, "是,师兄");
now6 = now7;
gameover = -1;
trg = 99;
}
}
if(trg == 88)
{
Say(player, "得到--###剑法对决之二###, 可以在系统设定中观看该录像");
Say(player, "我一定要练得很师兄一样棒回来");
now6 = now7;
gameover = 1;
trg = 99;
}
if ((gameover==1 || gameover==-1))
{
if(now7-now6 >= 15)
{
if(gameover==1) {Save(PlayerExps);}
GameOver(gameover);
gameover = 2;
}
}
}
大家猜猜这一关又是什么剧情玩法UID 12792
