if(name=="远古僵尸1"){
add_drop(1,22,6,1,1,0);
add_drop(2,15,2,1,1,0);
add_drop(3,113,10,1,1,0);
add_drop(4,114,10,1,1,0);
add_drop(5,115,10,1,1,0);
add_drop(6,116,10,1,1,0);
add_drop(7,117,20,1,1,0);
add_drop(8,118,20,1,1,0);
add_drop(9,119,20,1,1,0);
add_drop(10,128,3,1,1,0);
add_drop(11,66,10,1,1,0);
}
if(name=="远古骷髅1"){
choose=1+rand()%3;
cout<<"获得 "<<choose<<" 个箭!"<<endl;
arrow[1]+=choose;
getch();
add_drop(1,128,3,1,1,0);
add_drop(2,30,16,1,1,0);
add_drop(3,113,10,1,1,0);
add_drop(4,114,10,1,1,0);
add_drop(5,115,10,1,1,0);
add_drop(6,116,10,1,1,0);
add_drop(7,117,20,1,1,0);
add_drop(8,118,20,1,1,0);
add_drop(9,119,20,1,1,0);
add_drop(10,68,10,1,1,0);
}
if(name=="远古蜘蛛1"){
add_drop(1,128,3,1,1,0);
add_drop(2,38,1,1,1,0);
add_drop(3,74,25,1,1,0);
}
if(name=="丛林守护者1"){
add_drop(1,128,1,1,8,4);
choose=1+rand()%7;
cout<<"获得 "<<item[129+choose].itemname<<" x1!"<<endl;
bag[129+choose]+=choose;
getch();
add_drop(2,66,1,1,1,1);
add_drop(3,72,2,1,1,0);
}
if(name=="寒冰僵尸"){
add_drop(1,22,6,1,1,0);
add_drop(2,15,2,1,1,0);
add_drop(3,113,10,1,1,0);
add_drop(4,114,10,1,1,0);
add_drop(5,115,10,1,1,0);
add_drop(6,116,10,1,1,0);
add_drop(7,117,20,1,1,0);
add_drop(8,118,20,1,1,0);
add_drop(9,119,20,1,1,0);
add_drop(10,161,3,1,1,0);
add_drop(11,66,100,1,1,0);
}
if(name=="寒冰骷髅"){
choose=1+rand()%3;
cout<<"获得 "<<choose<<" 个箭!"<<endl;
arrow[1]+=choose;
getch();
add_drop(1,161,3,1,1,0);
add_drop(2,30,16,1,1,0);
add_drop(3,113,10,1,1,0);
add_drop(4,114,10,1,1,0);
add_drop(5,115,10,1,1,0);
add_drop(6,116,10,1,1,0);
add_drop(7,117,20,1,1,0);
add_drop(8,118,20,1,1,0);
add_drop(9,119,20,1,1,0);
add_drop(10,68,100,1,1,0);
}
if(name=="寒冰蜘蛛"){
add_drop(1,161,3,1,1,0);
add_drop(2,38,1,1,1,0);
add_drop(3,74,25,1,1,0);
}
if(name=="烈焰人"){
add_drop(1,180,4,1,1,0);
add_drop(2,122,3,1,1,0);
}
if(name=="凋零骷髅"){
add_drop(1,180,4,1,1,0);
add_drop(2,19,2,1,1,0);
add_drop(2,190,50,1,1,0);
}
if(name=="尸壳1"){
add_drop(1,22,6,1,1,0);
add_drop(2,15,2,1,1,0);
add_drop(3,113,10,1,1,0);
add_drop(4,114,10,1,1,0);
add_drop(5,115,10,1,1,0);
add_drop(6,116,10,1,1,0);
add_drop(7,117,20,1,1,0);
add_drop(8,118,20,1,1,0);
add_drop(9,119,20,1,1,0);
add_drop(10,162,3,1,1,0);
add_drop(11,66,10,1,1,0);
}
if(name=="沙骷1"){
choose=1+rand()%3;
cout<<"获得 "<<choose<<" 个箭!"<<endl;
arrow[1]+=choose;
getch();
add_drop(1,162,3,1,1,0);
add_drop(2,30,16,1,1,0);
add_drop(3,113,10,1,1,0);
add_drop(4,114,10,1,1,0);
add_drop(5,115,10,1,1,0);
add_drop(6,116,10,1,1,0);
add_drop(7,117,20,1,1,0);
add_drop(8,118,20,1,1,0);
add_drop(9,119,20,1,1,0);
add_drop(10,68,10,1,1,0);
}
if(name=="沙尘蜘蛛1"){
add_drop(1,162,3,1,1,0);
add_drop(2,38,1,1,1,0);
add_drop(3,74,25,1,1,0);
}
if(name=="沙暴之神1"){
add_drop(1,162,1,1,8,4);
choose=1+rand()%7;
cout<<"获得 "<<item[163+choose].itemname<<" x1!"<<endl;
bag[163+choose]+=choose;
getch();
add_drop(2,74,1,1,1,1);
add_drop(3,78,2,1,1,0);
}
for(int i=1;i<=100;i++){
if(d[i].drop_num==0) break;
if(1+rand()%d[i].rand1<=d[i].rand2){
choose=d[i].drop_amount1+rand()%(d[i].drop_amount2+1);
cout<<"获得 "<<item[d[i].drop_num].itemname<<" x"<<choose<<" !"<<endl;
bag[d[i].drop_num]+=choose;
getch();
}
}
return;
}
//给我拎出来变成全局变量('v')=b
int attackback=0;//反弹
int player_withertime=0;//凋零时间
int burntime=0,burn=0;//敌人灼烧时间 灼烧层数
//造成伤害(扣血)
void Damage(string MN,int &MH,int MD,int attack,bool crit,bool rd,int targ,int typ,int special){//敌人名 敌人血量 *目标*防御(不是敌人!) 攻击 是否可暴击 是否浮动 目标类型 0敌人/1玩家 攻击类型 0主手/1副手 特殊(如果有某些特殊效果的话
if(targ==0){//玩家 攻击敌人
if(typ==0){//主手攻击
// cout<<"你使用 "<<weapon1name[weapon1]<<" 对 "<<MN<<" 进行攻击!"<<endl;
// Sleep(500);
int damage;
if(rd) damage=max((attack-MD/5)*(100+rand()%20-rand()%20)/100,1+attack/5); //浮动伤害
else damage=max((attack-MD/5),1+attack/5);//不浮动
if(crit&&rand()%100<critical_rate){//暴击
sc(4);
damage=damage*3/2;//伤害+50%
cout<<"暴击!"<<endl;
sc(7);
}
cout<<MN<<" 受到了 ";sc(4);cout<<damage<<" 点伤害!"<<endl;sc(7);
Sleep(500);
MH-=damage;
if(sk[11].skilltake&&rand()%4==0){//被动 连击技能
cout<<"连击 技能触发!"<<endl;
Sleep(500);
cout<<"你对敌人再次使用 "<<weapon1name[weapon1]<<" 打出攻击!"<<endl;
getch();
damage=max(2+skill[11]-MD/5,2);
cout<<MN<<" 受到了 ";sc(4);cout<<damage<<" 点伤害!"<<endl;sc(7);
MH-=damage;
Sleep(500);
}
cout<<"当前 "<<MN<<" 还有 ";sc(4);cout<<MH<<" 点生命!"<<endl;sc(7);
Sleep(500);
getch();
}else{//副手攻击
// cout<<"你使用 "<<weapon2name[weapon2]<<" 对 "<<MN<<" 进行攻击!"<<endl;
// Sleep(500);
int damage;
if(rd) damage=max((attack-MD/5)*(100+rand()%20-rand()%20)/100,1+attack/5); //浮动伤害
else damage=max((attack-MD/5),1+attack/5);//不浮动
if(enemyskill[47]){
damage-=enemyskill[47];
damage=max(1,damage);
}
if(crit&&rand()%100<critical_rate){//暴击
sc(4);
damage=damage*3/2;//伤害+50%
cout<<"暴击!"<<endl;
sc(7);
}
cout<<MN<<" 受到了 ";sc(4);cout<<damage<<" 点伤害!"<<endl;sc(7);
Sleep(500);
MH-=damage;
cout<<"当前 "<<MN<<" 还有 ";sc(4);cout<<MH<<" 点生命!"<<endl;sc(7);
getch();
if(weapon2==8){
if(rand()%5==0){//20%
b:
burn++;
burntime++;
cout<<"敌人着火了!"<<endl;
getch();
}else{
if(armor1==14&&armor2==14&&armor3==14&&armor4==14&&rand()%4==0) goto b;//+20%
}
}
system("cls");
}//这个else应该还可以再合并,但我懒了。而且考虑到远程攻击以后可能会有不同的箭矢。
//尽管目前只有一种...
}else{//敌人攻击
int damage;
if(rd) damage=max((attack-MD/5)*(100+rand()%20-rand()%20)/100,1+attack/7);//浮动伤害
else damage=max((attack-MD/5),1+attack/7);//不浮动
if(sk[10].skilltake&&skill[10]>0&&1+rand()&100<=skill[10]+2){//被动 闪避技能
cout<<"闪避 技能触发!"<<endl;
Sleep(500);
if(rand()%2==1) cout<<"你身形向旁一闪,避开了敌人的攻击!"<<endl;//提示语
else cout<<"你眼疾手快,闪避开了攻击!"<<endl;//甚至有随机的两种(
getch();
}else{
if(defend){//副手 护盾 格挡
sc(2);
cout<<"格挡触发!伤害减少 40% !"<<endl;
sc(7);
defend=false;
damage=damage*4/10;//伤害-40%
}
if(attackback==1){//反弹技能
attackback=0;
cout<<"你将伤害反弹给敌人!"<<endl;
getch();
int backdamage=max(damage*(1+skill[5])/10,2);///反弹的伤害
damage-=backdamage;//玩家受到的伤害 减少 反弹给敌人的伤害
cout<<"敌人受到了 ";
sc(4);cout<<backdamage<<" 点伤害!"<<endl;sc(7);
MH-=backdamage;
getch();
}
if(crit&&rand()%100<critical_rate){//暴击
sc(4);
damage=damage*3/2;//伤害+50%
cout<<"暴击!"<<endl;
sc(7);
}
health-=damage;
cout<<"你受到了 ";sc(4);cout<<damage<<" 点伤害!"<<endl;sc(7);
Sleep(500);
cout<<"你还剩 ";sc(4);cout<<health<<" 点生命!"<<endl;sc(7);
if(enemyskill[45]){//敌人被动 凋零技能
cout<<"你被凋零了!"<<endl;
player_withertime+=enemyskill[45];
Sleep(500);
}
getch();
}
}
return;
//所以你还看了更新的代码,你真的这么关注这破游戏的更新与变化吗?
//让我猜猜,像你这样的人,我认识的,要么是0307,不然就是0310...
//hmmm... 不然还会是谁?...除了我自己。
}
void fight(string MN,int MH,int MA,int Mrand,int MD,int MS,int dis,int Adis,int xp,int Mmoney){//战斗 敌人名 敌人生命 敌人攻击 逃跑率(0为无法逃跑) 敌人防御 敌人速度 初始与敌人的距离 敌人攻击距离 胜利后获得的: 经验值 绿宝石
SetConsoleTitle("Fight!");
dead=false;
bool back=true;
int enemyskilluse=0;//敌人使用技能
int heavy_attack=0;//巨力重拳
bool healthy=false;//健康 被动技能
int posioncold=0;//药水冷却
defend=0;//原来这个东西以前一直没重置,我才发现。
attackback=0;
player_withertime=0;
int insane=0,frozen=0;
int player_frozen=0,magicshield=0,recover;
//玩家冰冻回合 魔力护盾层数
int powertime=0,powerlevel=0,speedtime=0,speedlevel=0;//药水
//力量时间 力量等级 速度时间 速度等级
int player_slowdown=99999,enemy_slowdown=0;
//玩家减速 敌人减速
int player_burntime=0,player_burn=0;//玩家灼烧
system("cls");
for(int i=1;i<=100;i++) sk[i].cold_now=0;//初始化技能冷却
for(int i=1;i<=100;i++) enemyskillcold[i]=0;//初始化敌人技能冷却
if(skill[12]>0&&sk[12].skilltake==1&&health>=maxhealth*0.7){
cout<<"被动技能 健康 触发:增加 "<<1+skill[12]*3<<" 防御!"<<endl;
defense+=1+skill[12]*3;
healthy=true;
Sleep(1000);
}
while(!dead){
system("cls");
if(MH<=0){
reset();
cout<<MN<<" 战败!"<<endl;//我方胜利
Sleep(1500);
cout<<"你胜利了!"<<endl;
Sleep(1000);
sc(2);
cout<<"获得经验 "<<xp<<" 点"<<endl;
sc(7);
experience+=xp;
Sleep(500);
int levelnow=level;
if(levelup(experience)>0) cout<<"你升级了!"<<endl;
Sleep(500);
cout<<"当前等级:"<<level<<endl;
dead=true;
Sleep(500);
if(Mmoney>0) cout<<"你获得 "<<Mmoney<<" 颗绿宝石"<<endl;
money+=Mmoney;
getch();
system("cls");
return;
}
//一些每回合计算的东西...
for(int i=1;i<=100;i++) if(sk[i].cold_now>0) sk[i].cold_now--;//当前技能冷却减少
for(int i=1;i<=100;i++) if(enemyskillcold[i]>0) enemyskillcold[i]--;//敌人技能冷却减少
if(posioncold>0) posioncold--;//药水冷却
magic+=min(maxmagic/10,maxmagic-magic);//回复魔力
powertime-=min(powertime,1);//力量效果减少
if(powertime==0&&powerlevel!=0){
attack-=powerlevel;
powerlevel=0;
}
speedtime-=min(speedtime,1);//speed
if(speedtime==0&&speedlevel!=0){
speed-=speedlevel;
speedlevel=0;
}
player_slowdown--;//减速
if(player_slowdown==0) speed+=enemyskill[41];
//
//color
if(player_burntime>0){//燃烧伤害 玩家
cout<<"你浑身着火,受到了 ";sc(4);cout<<player_burn<<" 点灼烧伤害!"<<endl;sc(7);
Sleep(500);
health-=player_burn;
player_burntime--;
cout<<"当前你还有 ";sc(4);cout<<health<<" 点生命!"<<endl;sc(7);
getch();
if(player_burntime==0) player_burn=0;
}
if(player_withertime>0){//凋零伤害
cout<<"你受到凋零效果,受到了 ";sc(4);cout<<2<<" 点伤害!"<<endl;sc(7);
Sleep(500);
health-=2;
player_withertime--;
cout<<"当前你还有 ";sc(4);cout<<health<<" 点生命!"<<endl;sc(7);
getch();
}
if(health<=0){
if(blessing){//祝福,复活 保留1/4血
cout<<"Notch之祝福生效!"<<endl;
Sleep(1500);
health=0;
health+=maxhealth/4;
blessing=false;
cout<<"你回复25%生命值,继续战斗!"<<endl;
getch();
system("cls");
}else{
reset();
cout<<"你死了!"<<endl;
place="村庄";
Sleep(3000);
health=2;
system("cls");
return;
}
}
player:
system("cls");
sc(4);
cout<<"你的血量 ("<<health<<"/"<<maxhealth<<") 敌人血量:"<<MH<<endl;
sc(1);
cout<<"魔力:"<<magic<<"/"<<maxmagic<<endl;
sc(7);
cout<<"攻击:"<<attack<<endl;
cout<<"防御:"<<defense<<endl;
cout<<"速度:"<<speed<<endl;
cout<<"当前你和敌人的距离为";
if(enemyskill[46]){
sc(6);cout<<"??????";sc(7);
}else cout<<dis;
cout<<endl<<endl<<"现在是你的回合!"<<endl;
cout<<"你要?"<<endl;
cout<<"1,攻击(使用当前主手武器) 2,使用副手装备 3,使用药水 4,跳过本回合 5,技能 6,移动"<<endl;
if(player_frozen>0){
sc(3);
player_frozen--;
cout<<"你被敌人冰冻,无法行动!"<<endl;
int damage=1+enemyskill[33];
cout<<"你受到了 "<<damage<<" 点伤害!"<<endl;
health-=damage;
cout<<"你还剩 "<<health<<" 点血量!"<<endl;
sc(7);
getch();
system("cls");
choose=4;
}else{
cin>>choose;
if(choose==4){
cout<<"你跳过了本回合"<<endl;
getch();
system("cls");
}
if(choose<1||choose>6){
cout<<"请勿乱输!"<<endl;
getch();
goto player;
}
}
switch(choose){
case 1:
if(dis<=attackdis1){
cout<<"你使用 "<<weapon1name[weapon1]<<" 对 "<<MN<<" 进行攻击!"<<endl;
Sleep(500);
Damage(MN,MH,MD,attack,1,1,0,0,0); //方便多了!!!!
system("cls");
}else{
cout<<"距离太远,无法攻击!"<<endl;
getch();
goto player;
system("cls");
}
break;
case 2:
if(weapon2==0){
cout<<"副手未装备武器!" <<endl;
getch();
goto player;
system("cls");
}
if(weapon2!=0&&weapon2%2==0){//弓
cout<<"你要使用什么箭矢?"<<endl;
cout<<"(若未显示则无可用箭矢)"<<endl;
for(int i=1;i<=10;i++){
if(arrow[i]!=0){
cout<<i<<","<<arrowname[i]<<" (剩余 "<<arrow[i]<<" 支)"<<endl;
}
}
cin>>choose;
if(arrow[choose]<=0){//判断
cout<<"请勿乱输!"<<endl;
getch();
goto player;
system("cls");
}else arrow[choose]--;//减少箭矢
switch(choose){
case 1:
if(dis<=attackdis2){
cout<<"你使用 "<<weapon2name[weapon2]<<" 对 "<<MN<<" 进行攻击!"<<endl;
Sleep(500);
Damage(MN,MH,MD,attack2,1,1,0,1,0); //方便多了!!!!
system("cls");
}else{
cout<<"距离太远,无法攻击!"<<endl;
getch();
goto player;
system("cls");
}
break;
}
}
if(weapon2%2==1){
cout<<"你举起盾牌!下次受到伤害时你的防御大幅增加!"<<endl;//盾牌
getch();
defend=true;//防御状态
system("cls");
}
break;
case 3:
if(posioncold>0){
cout<<"药水冷却中!"<<endl;
getch();
goto player;
system("cls");
}else{
cout<<"输入编号以使用药水!"<<endl;
cout<<"显示顺序为 药水编号-药水名-数量"<<endl<<endl;
cout<<"若未显示则为无药水"<<endl<<endl;
for(int i=1001;i<=1020;i++){
if(bag[i]>=1) cout<<"药水编号 "<<i<<" "<<posionname[i-1000]<<" 数量:"<<bag[i]<<" 个"<<endl;
else continue;
}
cin>>choose;
if(bag[choose]<1||choose<1000){
cout<<"你没有此药水!"<<endl;
getch();
system("cls");
goto player;
break;
}
switch(choose){
case 1001://治疗药水1
posioncold=2;
bag[1001]--;
cout<<"你使用了治疗药水!"<<endl;
recover=min(5,maxhealth/5);
Sleep(500);
cout<<"你回复了 ";
sc(4);
cout<<recover<<" 点生命!"<<endl;
sc(7);
Sleep(500);
health+=min(recover,maxhealth-health);
cout<<"当前你有 ";
sc(4);
cout<<health<<" 点生命!"<<endl;
sc(7);
getch();
system("cls");
break;
case 1002://魔力药水1
posioncold=2;
bag[1002]--;
cout<<"你使用了魔力药水!"<<endl;
recover=min(4,maxmagic*10/3);
Sleep(1000);
cout<<"你回复了 ";
sc(1);
cout<<recover<<" 点魔力!"<<endl;
sc(7);
Sleep(500);
magic+=min(recover,maxmagic-magic);
cout<<"你现在有 ";
sc(1);
cout<<magic<<" 点魔力!"<<endl;
sc(7);
getch();
system("cls");
break;
case 1009://速度药水1
posioncold=2;
bag[1010]--;
speedlevel=1;
speedtime=2+1;
cout<<"你使用了速度药水!"<<endl;
speed+=speedlevel;
Sleep(500);
cout<<"你增加了 ";
sc(3);
cout<<"1 点速度!"<<endl;
sc(7);
Sleep(500);
cout<<"持续 2 回合!";
getch();
system("cls");
break;
case 1010://力量药水1
posioncold=2;
bag[1009]--;
powerlevel=1;
powertime=2+1;
cout<<"你使用了力量药水!"<<endl;
attack+=powerlevel;
Sleep(1000);
cout<<"你增加了 ";
sc(4);
cout<<"1 点攻击!"<<endl;
sc(7);
Sleep(1000);
cout<<"持续 2 回合!";
getch();
system("cls");
break;
}
goto player;
}
break;
case 4://跳过
//actually there is nothing!
break;
case 5://技能
cout<<"输入编号以使用技能!"<<endl;
cout<<"显示顺序为 技能编号-技能名-等级-冷却-魔力\n注:冷却非0的技能处于冷却状态,不可使用!"<<endl<<endl;
for(int i=1;i<100;i++){
if(skill[i]>=1&&sk[i].skilltake==true){
cout<<"技能编号 "<<i<<" ";
if(sk[i].rarity=='C') sc(7); //C级技能 白色
if(sk[i].rarity=='B') sc(1);//B 蓝
if(sk[i].rarity=='A') sc(5);//A 紫
if(sk[i].rarity=='S') sc(6);//S 黄
cout<<sk[i].skillname;
sc(4);//红
cout<<" LV:";
if(skill[i]==sk[i].level_max) cout<<"MAX";
else cout<<skill[i];
if(sk[i].magic[skill[i]]==0&&sk[i].cold[skill[i]]==0){//判断被动技能
sc(3);//浅蓝
cout<<" <被动技能>";
sc(4);//红
cout<<" (不可使用!)"<<endl;//非常良心的提示。不会真的有人...
sc(7);//白
}
if(sk[i].magic[max(skill[i],1)]!=0){
sc(3);//浅蓝
cout<<" 冷却:";
cout<<sk[i].cold[skill[i]];//使用后的
cout<<" (现:";
cout<<sk[i].cold_now<<")";//当前的,非0即冷却中,每回合减1,不可使用。
sc(1);//蓝
cout<<" 消耗魔力:";
cout<<sk[i].magic[skill[i]]<<endl;
sc(7);//白
}
}
else continue;
}
sc(7);//白
cin>>choose;
if(skill[choose]<1||sk[choose].skilltake==false){//判断是否可使用
cout<<"你没有此技能!"<<endl;
getch();
goto player;//返回
system("cls");
break;
}
if(magic<sk[choose].magic[skill[choose]]){
cout<<"魔力不足!"<<endl;
getch();
goto player;
system("cls");
break;
}
if(sk[choose].cold_now>0){
cout<<"技能冷却中!"<<endl;
getch();
goto player;
system("cls");
break;
}
magic-=sk[choose].magic[skill[choose]];
sk[choose].cold_now=sk[choose].cold[skill[choose]];
if(sk[choose].magic!=0) cout<<"你使用了 "<<sk[choose].skillname<<endl,Sleep(750);
switch(choose){
case 1://侦察
cout<<"敌人名称:"<<MN<<endl;
cout<<"敌人攻击:";
if(MA>5+level*2) cout<<"?"<<endl;
else cout<<MA<<endl;
cout<<"敌人攻击距离:";
if(Adis>3+level*2) cout<<"?"<<endl;
else cout<<Adis<<endl;
cout<<"敌人防御:";
if(MD>10+level*3) cout<<"?"<<endl;
else cout<<MD<<endl;
cout<<"敌人速度:";
if(MS>3+level/5) cout<<"?"<<endl;
else cout<<MS<<endl;
Sleep(1000);
getch();
system("cls");
break;
case 2://重击
if(dis<=attackdis1){
cout<<"你对敌人重重一击!"<<endl;
Damage(MN,MH,MD,attack+1+skill[2],1,1,0,0,0); //good
system("cls");
}else{
cout<<"距离太远,无法攻击!"<<endl;
magic+=sk[2].magic[skill[2]];
sk[2].cold_now=0;
getch();
goto player;
system("cls");
}
break;
case 3://三连击
if(dis<=attackdis1){
cout<<"你对敌人连续三次攻击!"<<endl;
for(int i=1;i<=3;i++){
Damage(MN,MH,MD,attack*(skill[3]*5+45)/100,1,1,0,0,0);//可以触发多次被动连击,这是加强吗(
Sleep(250);
}
Sleep(500);
system("cls");
}else{
cout<<"距离太远,无法攻击!"<<endl;
magic+=sk[3].magic[skill[3]];
sk[3].cold_now=0;
getch();
goto player;
system("cls");
}
break;
case 4://穿云箭
if(dis<=10){
cout<<"你对敌人射出迅猛一箭!"<<endl;
Damage(MN,MH,0,3+skill[4]*2,0,0,0,1,0);//防御为0 不暴击不浮动
system("cls");
}else{
cout<<"距离太远,无法攻击!"<<endl;
magic+=sk[4].magic[skill[4]];
sk[4].cold_now=0;
getch();
goto player;
system("cls");
}
break;
case 5://反弹
if(attackback==0){
attackback=1;
cout<<"下次被攻击时将反弹伤害!"<<endl;
Sleep(500);
getch();
goto player;
system("cls");
}else{
cout<<"你已激活反弹!"<<endl;
magic+=sk[5].magic[skill[5]];
sk[5].cold_now=0;
getch();
goto player;
system("cls");
}
break;
case 6://疯狂
if(insane==0){
insane=1;
sc(4);
cout<<"你减少了防御,但增加了攻击!"<<endl;
sc(7);
defense-=6+skill[6]*3;
attack+=skill[6];
Sleep(500);
getch();
goto player;
system("cls");
}else{
cout<<"你取消了疯狂"<<endl;
defense+=6+skill[6]*3;
attack-=skill[6];
insane=0;
getch();
goto player;
system("cls");
}
break;
case 7://魔力护盾
if(magicshield<5){
defense+=1+skill[7];
sc(1);
cout<<"你将魔力凝结成护盾!"<<endl;
sc(7);
cout<<"你增加了 "<<1+skill[7]<<" 点防御!"<<endl;
cout<<"你已经使用了 "<<magicshield<<" 次,最多可使用 5 次"<<endl;
magicshield++;
Sleep(500);
getch();
system("cls");
goto player;
}else{
cout<<"你已使用了 5 次技能了!"<<endl;
magic+=sk[5].magic[skill[5]];
sk[5].cold_now=0;
getch();
system("cls");
goto player;
}
break;
case 8://力量
cout<<"此技能为被动技能!"<<endl;
getch();
goto player;
system("cls");
break;
case 9://魔力精通
cout<<"此技能为被动技能!"<<endl;
getch();
goto player;
system("cls");
break;
case 10://闪避
cout<<"此技能为被动技能!"<<endl;
getch();
goto player;
system("cls");
break;
case 11://连击
cout<<"此技能为被动技能!"<<endl;
getch();
goto player;
system("cls");
break;
case 12://健康
cout<<"此技能为被动技能!"<<endl;
getch();
goto player;
break;
case 13://空气斩
if(dis+skill[13]+1<=attackdis1){
cout<<"你对敌人凌空一击!"<<endl;
Damage(MN,MH,MD,attack,1,1,0,0,0);
system("cls");
}else{
cout<<"距离太远,无法攻击!"<<endl;
magic+=sk[13].magic[skill[13]];
sk[13].cold_now=0;
getch();
goto player;
}
break;
case 14://冲刺
cout<<"1,向前 2,向后"<<endl;
cin>>choose;
if(choose>2||choose<1){
cout<<"无效的操作!"<<endl;
magic+=sk[14].magic[skill[14]];
sk[14].cold_now=0;
getch();
goto player;
}
cout<<name<<" 冲刺!"<<endl;
switch(choose){
case 1://前进
if(dis>=3+skill[14]) dis-=(3+skill[14]);
else dis=0;
break;
case 2://后退
dis+=(3+skill[14]);
break;
}
Sleep(500);
cout<<"当前你和敌人的距离为";
if(enemyskill[46]){
sc(6);cout<<"??????"<<endl;sc(7);
}else cout<<dis<<endl;
getch();
system("cls");
if(enemyskill[43]==1&&dis>10){//狭小场地
cout<<"然而,在这狭小的场地里根本无法拉开距离..."<<endl;
getch();
dis=10;
cout<<"当前你和敌人的距离为"<<dis<<endl;
getch();
}
break;
case 15://治疗
recover=2+skill[15];
Sleep(500);
cout<<"你回复了 ";
sc(4);
cout<<recover<<" 点生命!"<<endl;
sc(7);
Sleep(500);
health+=min(recover,maxhealth-health);
cout<<"当前你有 ";
sc(4);
cout<<health<<" 点生命!"<<endl;
sc(7);
getch();
system("cls");
break;
case 16://冥想术
cout<<"输入编号以减少指定技能冷却!"<<endl;
cin>>choose;
if(skill[choose]<1||sk[choose].skilltake==false){//判断是否可使用
cout<<"你没有此技能!"<<endl;
getch();
magic+=sk[16].magic[skill[16]];
sk[16].cold_now=0;
goto player;//返回
}
if(sk[choose].magic[skill[choose]]==0&&sk[choose].cold[skill[choose]]==0){//判断被动技能
cout<<"此为被动技能!"<<endl;
getch();
magic+=sk[16].magic[skill[16]];
sk[16].cold_now=0;
goto player;//返回
}
sk[choose].cold_now=max(0,sk[choose].cold_now-(2+(skill[16]==3)));
Sleep(500);
cout<<"当前 技能 "<<sk[choose].skillname<<" 的冷却为 "<<sk[choose].cold_now<<" !"<<endl;
if(sk[choose].cold_now==0) cout<<sk[choose].skillname<<" 冷却完毕!"<<endl;
Sleep(500);
getch();
goto player;
break;
case 33://冰冻
sc(3);
cout<<"你使用极寒的力量裹挟着狂风将敌人冰冻!"<<endl;
sc(7);
frozen=floor(2+skill[33]*0.6);
Sleep(500);
getch();
system("cls");
break;
case 44://火球
if(dis<=6){
cout<<"你发射了一颗火球!"<<endl;
burn++;
burntime+=3;
cout<<"敌人着火了!"<<endl;
Damage(MN,MH,0,1+skill[44],0,0,0,1,0);//这玩意居然和穿云箭一样...
system("cls");
}else{
cout<<"距离太远,无法攻击!"<<endl;
magic+=sk[44].magic[skill[44]];
sk[44].cold_now=0;
getch();
goto player;
}
break;
}
break;
case 6:
cout<<"1,向前移动 2,向后移动";//移动
if(Mrand>0&&Mrand<=100) cout<<" 3,逃跑"<<endl; //不可逃跑则不显示
else cout<<endl;
cin>>choose;
if(choose>3||choose<1){//某人的要求...?
cout<<"无效的操作!"<<endl;
getch();
goto player;
system("cls");
}
int move=choose;
if(move==3){
if(Mrand==0||Mrand>100){//不可逃跑
cout<<"请勿乱输!"<<endl;
getch();
goto player;
}else{
if(rand()%100<Mrand){
cout<<"逃跑成功!"<<endl;
getch();
system("cls");
return;
}else{
cout<<"逃跑失败!"<<endl;
getch();
system("cls");
goto enemy_turn;
}
}
}
cout<<"移动多少格?"<<endl;
cin>>choose;
if(choose>speed||choose<0){
cout<<"请勿乱输!移动距离必须小于等于速度且不为负!"<<endl;
getch();
goto player;
}
switch(move){
case 1://前进
if(dis>=choose) dis-=choose;
else dis=0;
cout<<name<<" 向 "<<MN<<" 逼近了!"<<endl;
break;
case 2://后退
dis+=choose;
cout<<name<<" 后退了!"<<endl;
break;
}
Sleep(500);
cout<<"当前你和敌人的距离为";
if(enemyskill[46]){
sc(6);cout<<"??????"<<endl;sc(7);
}else cout<<dis<<endl;
getch();
system("cls");
if(enemyskill[43]==1&&dis>10){//狭小场地
cout<<"然而,在这狭小的场地里根本无法拉开距离..."<<endl;
getch();
dis=10;
cout<<"当前你和敌人的距离为"<<dis<<endl;
getch();
}
break;
}
enemy_turn:
if(help&&MH>8){//help
cout<<"一名士兵向敌人射了一箭!"<<endl;
Damage(MN,MH,MD,6,0,1,0,1,0);//伤害固定为6,不暴击 浮动
}
if(burntime>0){//燃烧伤害 - enemy
cout<<MN<<" 浑身着火,受到了 ";sc(4);cout<<burn<<" 点灼烧伤害!"<<endl;sc(7);
MH-=burn;
burntime--;
Sleep(500);
cout<<"当前 "<<MN<<" 还有 ";sc(4);cout<<MH<<" 点生命!"<<endl;sc(7);
if(burntime==0) burn=0;
getch();
}
system("cls");