发表于 2007-10-18 11:091#
楼主真武林第33关-[论剑资格赛之二]源码
/*
Attribute for SN_1 by ZMJ 2005/10/10
*/
//#include "MeterorAI.h"
#include "npctypes.pst"
#include "snopt.pst"
int Level = 33;
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 now6;
int now7;
OnStart()
{
InitSNData();
AddEachNPC("接引使者", RELAY_JIEYIN, 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);
now3=now4;
trg = 2;
LockEnd(player);
}
if(c1>0 && GetHP(c1)<=0)
{
RemoveNPC(c1);
AddEachNPC("接引使者", RELAY_JIEYIN, TEAM_ANY);
now0 = now1;
return 0;
}
}
}
if(trg >= 2)
{
if(now1-now0>=PlayerSpeed)
{
UpdatePlayerOpt(player, PlayerSpeed);
now0 = now1;
}
}
if(trg == 2)
{
c1 = GetAnyChar("接引使者");
if(c1>0 && GetHP(c1)<=0)
{
RemoveNPC(c1);
FullPlayerHP(player);
Say(player, "###### 武林大会资格赛第二轮 #####");
Say(player, "###### 挑战者: 小虾米 #####");
//#@$
SetScenceSeedNPC("苗疆杀手", Level, MIAOJIANG_SHASHOU, TEAM_ENEMY, 0);
SetScenceSeedNPC("苗疆杀手", Level, MIAOJIANG_SHASHOU, TEAM_ENEMY, 0);
SetScenceSeedNPC("鬼武者", Level, GUI_WUZHE, TEAM_ENEMY, 1);
SetScenceSeedNPC("鬼武者", Level, GUI_WUZHE, TEAM_ENEMY, 1);
SetScenceSeedNPC("勾魂夺魄", Level, GOUHUN_DUOPO, TEAM_ENEMY, 2);
SetScenceSeedNPC("勾魂夺魄", Level, GOUHUN_DUOPO, TEAM_ENEMY, 2);
SetScenceSeedNPC("勾魂夺魄", Level, GOUHUN_DUOPO, TEAM_ENEMY, 2);
SetScenceSeedNPC("死神护法", Level, HUFA_SISHEN, TEAM_ENEMY, 3);
SetScenceSeedNPC("死神护法", Level, HUFA_SISHEN, TEAM_ENEMY, 3);
SetScenceSeedNPC("女飞贼", Level, FEIZE_NV, TEAM_ENEMY, 4);
SetScenceSeedNPC("女飞贼", Level, FEIZE_NV, TEAM_ENEMY, 4);
//#@$
trg = 3;
return 0;
}
now3=now4;
}
if(trg == 3)
{
now2 = GetGameTime();
now3 = now2;
LockBegin(player);
AddScenceSeedNPC(scens);
trg = 4;
return 0;
}
if(trg == 4)
{
now3 = GetGameTime();
if(now3-now2 >= 5)
{
if(CheckSnapAdd(2, 16) 0 && GetManManDistance(player, c1)<150)
{
LockScence(player, c1, 8, 99, 5);
Say(player, "请指教!");
Say(c1, "请指教!");
trg2 = 1;
return 0;
}
tmp = CheckSnapOver(2, 16);
if(tmp == 1)
{
int speed = 0;
alives = GetSnapAlives(1, 16);
PlayerExps = PlayerExps+GetNewExps(2, 16);
RemoveSnapNAlly(2, 16);
RemoveSnapAlly(2, 16);
Say(player, "经验值 : ", PlayerExps);
Say(player, "##### 第", scens+1, "场 : 小虾米胜 !");
trg = 3;
trg2 = 0;
scens ++;
FullPlayerHP(player);
speed = GetSnapSpeeder(PlayerSpeed, PlayerExps);
Say(player, "升级: ", PlayerSpeed-speed, " 内力: ", 120-speed);
Say(player, "****************",120-speed,"****************");
PlayerSpeed = speed;
UpdateSnapReward(Level, player, PlayerSpeed);
if(JudgePassOver(Level, scens, PlayerSpeed)==1)
{
OutputPassReward(PlayerExps, player);
trg = 88;
}
}
}
if(trg == 123)
{
PlayerPerform("use", 35);
trg = 124;
return 0;
}
if(trg != 99)
{
if (gameover!=-1 && GetHP(player)<=0)
{
Say(player, "##### 第", scens+1, "场 : 小虾米败 !");
Say(player, "看来我还是学艺不精,还要努力修炼,明年再来 !");
now6 = now7;
gameover = -1;
trg = 99;
}
}
if(trg == 88)
{
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 = 33;
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 now6;
int now7;
OnStart()
{
InitSNData();
AddEachNPC("接引使者", RELAY_JIEYIN, 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);
now3=now4;
trg = 2;
LockEnd(player);
}
if(c1>0 && GetHP(c1)<=0)
{
RemoveNPC(c1);
AddEachNPC("接引使者", RELAY_JIEYIN, TEAM_ANY);
now0 = now1;
return 0;
}
}
}
if(trg >= 2)
{
if(now1-now0>=PlayerSpeed)
{
UpdatePlayerOpt(player, PlayerSpeed);
now0 = now1;
}
}
if(trg == 2)
{
c1 = GetAnyChar("接引使者");
if(c1>0 && GetHP(c1)<=0)
{
RemoveNPC(c1);
FullPlayerHP(player);
Say(player, "###### 武林大会资格赛第二轮 #####");
Say(player, "###### 挑战者: 小虾米 #####");
//#@$
SetScenceSeedNPC("苗疆杀手", Level, MIAOJIANG_SHASHOU, TEAM_ENEMY, 0);
SetScenceSeedNPC("苗疆杀手", Level, MIAOJIANG_SHASHOU, TEAM_ENEMY, 0);
SetScenceSeedNPC("鬼武者", Level, GUI_WUZHE, TEAM_ENEMY, 1);
SetScenceSeedNPC("鬼武者", Level, GUI_WUZHE, TEAM_ENEMY, 1);
SetScenceSeedNPC("勾魂夺魄", Level, GOUHUN_DUOPO, TEAM_ENEMY, 2);
SetScenceSeedNPC("勾魂夺魄", Level, GOUHUN_DUOPO, TEAM_ENEMY, 2);
SetScenceSeedNPC("勾魂夺魄", Level, GOUHUN_DUOPO, TEAM_ENEMY, 2);
SetScenceSeedNPC("死神护法", Level, HUFA_SISHEN, TEAM_ENEMY, 3);
SetScenceSeedNPC("死神护法", Level, HUFA_SISHEN, TEAM_ENEMY, 3);
SetScenceSeedNPC("女飞贼", Level, FEIZE_NV, TEAM_ENEMY, 4);
SetScenceSeedNPC("女飞贼", Level, FEIZE_NV, TEAM_ENEMY, 4);
//#@$
trg = 3;
return 0;
}
now3=now4;
}
if(trg == 3)
{
now2 = GetGameTime();
now3 = now2;
LockBegin(player);
AddScenceSeedNPC(scens);
trg = 4;
return 0;
}
if(trg == 4)
{
now3 = GetGameTime();
if(now3-now2 >= 5)
{
if(CheckSnapAdd(2, 16) 0 && GetManManDistance(player, c1)<150)
{
LockScence(player, c1, 8, 99, 5);
Say(player, "请指教!");
Say(c1, "请指教!");
trg2 = 1;
return 0;
}
tmp = CheckSnapOver(2, 16);
if(tmp == 1)
{
int speed = 0;
alives = GetSnapAlives(1, 16);
PlayerExps = PlayerExps+GetNewExps(2, 16);
RemoveSnapNAlly(2, 16);
RemoveSnapAlly(2, 16);
Say(player, "经验值 : ", PlayerExps);
Say(player, "##### 第", scens+1, "场 : 小虾米胜 !");
trg = 3;
trg2 = 0;
scens ++;
FullPlayerHP(player);
speed = GetSnapSpeeder(PlayerSpeed, PlayerExps);
Say(player, "升级: ", PlayerSpeed-speed, " 内力: ", 120-speed);
Say(player, "****************",120-speed,"****************");
PlayerSpeed = speed;
UpdateSnapReward(Level, player, PlayerSpeed);
if(JudgePassOver(Level, scens, PlayerSpeed)==1)
{
OutputPassReward(PlayerExps, player);
trg = 88;
}
}
}
if(trg == 123)
{
PlayerPerform("use", 35);
trg = 124;
return 0;
}
if(trg != 99)
{
if (gameover!=-1 && GetHP(player)<=0)
{
Say(player, "##### 第", scens+1, "场 : 小虾米败 !");
Say(player, "看来我还是学艺不精,还要努力修炼,明年再来 !");
now6 = now7;
gameover = -1;
trg = 99;
}
}
if(trg == 88)
{
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
