技能小游戏

#include<bits/stdc++.h>
#include<windows.h>
#include<stdio.h>
#include<conio.h>
#include<time.h>
using namespace std;
bool Black;
void Color(int a){
    if(Black==1) {SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),0);return;}
    if(a==0) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
    if(a==1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);
    if(a==2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
    if(a==3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
    if(a==4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
    if(a==5) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
    if(a==6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);
    if(a==7) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_BLUE);
    if(a==8) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN);
    if(a==9) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_BLUE);
    if(a==10) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);
    if(a==11) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN);
    if(a==12) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
}
void SetPos(int x,int y) {COORD pos;pos.X=y*2,pos.Y=x;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);}
void Slow(int a,char *p) {while(1){if(*p!=0)printf("%c",*p++);else break;Sleep(a);}}
struct node{
    char Name[201];
    int Blood,Bloodmax,Bloodjia;
    int Skilnum,Skilmax,Money,EXP,Shan;
    int Skil[1001],Skilstr[1001]; //触发率 
    int Blp,Blpt,Duk,Dut,Ice,Yun,Wudi,Wudit,Qipt;
    float Qi,Qip,Qijia;
}You[1001],Guai[1001];
struct node2{
    char Name[201];
    float Qi;
    int Kill,What,color; //物法
    int Any,Anykill[1001],Anywhat[1001],Time[1001];  //额外种类
    float Anyqi[1001];
}Skill[1001];
int Skkk[1001],Skll,skk,Tong,Tongmax,Ju,Juk,Jiao,Shen,Ji,Yuan,Shan,Fu;
int dy,dd,Dy,Dd,sa,sb,sc,ss,k1=-1,k2,k3,k4;
bool Y[10001],D[10001];
void CheckMe(){
    int aa=0;
    system("cls");Color(0);
    SetPos(1,1),printf("--------查看本体技能--------");
    SetPos(3,1),printf("技能数量上限:%d",You[0].Skilmax);
    for(int i=1;i<=You[0].Skilmax;i++)
    {
        if(You[0].Skilnum<i) {SetPos(5,i*11-10),cout<<"技能"<<i<<":空技能槽";continue;}
        SetPos(5,i*11-10),cout<<"技能"<<i<<":";
        Color(Skill[You[0].Skil[i]].color);printf("%s",Skill[You[0].Skil[i]].Name);Color(0);
        SetPos(7,i*11-10),cout<<"耗气量:";printf("%0.1f",Skill[You[0].Skil[i]].Qi);
        SetPos(9,i*11-10),cout<<"技能类型:";
        if(Skill[You[0].Skil[i]].What==1) cout<<"单体伤害";
        if(Skill[You[0].Skil[i]].What==2) cout<<"群体伤害";
        if(Skill[You[0].Skil[i]].What==3) cout<<"防御与辅助";
        if(Skill[You[0].Skil[i]].What<=2) SetPos(11,i*11-10),cout<<"攻击力:"<<Skill[You[0].Skil[i]].Kill;
        else SetPos(11,i*11-10),cout<<"无攻击力......";
        SetPos(13,i*11-10); if(Skill[You[0].Skil[i]].What%10!=4) cout<<"额外";cout<<"效果:";
        if(Skill[You[0].Skil[i]].Any==0) cout<<"无";
        else
        {
            for(int j=1;j<=Skill[You[0].Skil[i]].Any;j++)
            {
                aa=max(aa,j);
                int Sk=Skill[You[0].Skil[i]].Anywhat[j];
                SetPos(14+j*3-2,i*11-10);printf("%d. ",j);
                if(Skill[You[0].Skil[i]].What<=2)
                {
                if(Sk==1) printf("冰冻"),SetPos(14+j*3-1,i*11-9),printf(" 持续时间:%d",Skill[You[0].Skil[i]].Time[j]);
                if(Sk==2) printf("毒伤"),SetPos(14+j*3-1,i*11-9),printf(" 攻击力:%d",Skill[You[0].Skil[i]].Anykill[j]),SetPos(14+j*3,i*11-9),printf(" 持续时间:%d",Skill[You[0].Skil[i]].Time[j]);
                if(Sk==3) printf("暴击率"),SetPos(14+j*3-1,i*11-9),printf(" 触发百分比:%d",Skill[You[0].Skil[i]].Anykill[j]),cout<<'%';
                if(Sk==4) printf("连击率"),SetPos(14+j*3-1,i*11-9),printf(" 触发百分比:%d",Skill[You[0].Skil[i]].Anykill[j]),cout<<'%';
                if(Sk==5) printf("眩晕率"),SetPos(14+j*3-1,i*11-9),printf(" 触发百分比:%d",Skill[You[0].Skil[i]].Anykill[j]),cout<<'%';
                if(Sk==6) printf("百分比伤害"),SetPos(14+j*3-1,i*11-9),printf(" 伤害百分比:%d",Skill[You[0].Skil[i]].Anykill[j]),cout<<'%';
                if(Sk==7) printf("吸血"),SetPos(14+j*3-1,i*11-9),printf(" 加血量:%d",Skill[You[0].Skil[i]].Kill);
                }
                else
                {
                if(Sk==1) printf("加血"),SetPos(14+j*3-1,i*11-9),printf(" 增幅量:%d",Skill[You[0].Skil[i]].Anykill[j]);
                if(Sk==2) printf("无敌"),SetPos(14+j*3-1,i*11-9),printf(" 持续时间:%d",Skill[You[0].Skil[i]].Time[j]);
                if(Sk==3) printf("持续加血"),SetPos(14+j*3-1,i*11-9),printf(" 增幅量:%d",Skill[You[0].Skil[i]].Anykill[j]),SetPos(14+j*3,i*11-9),printf(" 持续时间:%d",Skill[You[0].Skil[i]].Time[j]);
                if(Sk==4) printf("持续加气"),SetPos(14+j*3-1,i*11-9),printf(" 增幅量:%0.1f",Skill[You[0].Skil[i]].Anyqi[j]),SetPos(14+j*3,i*11-9),printf(" 持续时间:%d",Skill[You[0].Skil[i]].Time[j]);
                }
            }
        }
    }
    SetPos(16+aa*3,1),cout<<"按任意键退出。";
    char a;a=_getch();
}
void ChangeSkill(){
    system("cls");Color(0);
    if(Jiao==4) {SetPos(22,1),Color(5),printf("教程提示 4 :你现在最多可以装备2个技能,\n             技能均需要“气”来使用,你可以“蓄气”来增加你的气数。\n             按 2 1 装备,否则退出教程。"),Color(0);SetPos(0,0);}
    if(Jiao==8) {SetPos(22,1),Color(5),printf("教程提示 8 :群攻技能无需瞄准,\n             其会在发出时攻击所有人。\n             按 1 1 装备,否则退出教程。"),Color(0);SetPos(0,0);}
    SetPos(1,1),printf("--------修改本体技能--------");
    SetPos(3,1),printf("本体技能:\n");int i;
    for(i=1;i<=You[0].Skilnum;i++) Color(0),printf("\n  %d: ",i),Color(Skill[You[0].Skil[i]].color),printf("%s",Skill[You[0].Skil[i]].Name);
    if(You[0].Skilnum<You[0].Skilmax) Color(0),printf("\n  %d: 放入空技能槽",You[0].Skilnum+1),i++;
    Color(0),printf("\n\n  闲置技能:\n");
    if(skk==0) printf("\n  无");
    else for(int i=1;i<=skk;i++) Color(0),SetPos(9+i,1),printf("\n  %d: ",i),Color(Skill[Skkk[i]].color),printf("%s",Skill[Skkk[i]].Name);
    Color(0),printf("\n\n  请输入你想交换的两个技能的编号(回车确定,输 0 0 退出)----- ");int a,b;cin>>a>>b;
    if(a==2&&b==1&&Jiao==4) Jiao++;if((a!=2||b!=1)&&Jiao==4) Jiao=-1;
    if(a==1&&b==1&&Jiao==8) Jiao++;if((a!=1||b!=1)&&Jiao==8) Jiao=-1;
    if(a==You[0].Skilnum+1)
    {
        You[0].Skilnum++,You[0].Skil[You[0].Skilnum]=Skkk[b];
        for(int i=b;i<skk;i++) swap(Skkk[i],Skkk[i+1]);Skkk[skk]=0;skk--;ChangeSkill();
    }
    else if(a!=0) swap(You[0].Skil[a],Skkk[b]),ChangeSkill();
}
void CheckUs(){
    system("cls");Color(0);
    SetPos(1,1),printf("--------查看同伴技能--------");
    SetPos(3,1),printf("同伴数量:%d    同伴上限:%d",Tong,Tongmax);
    for(int i=1;i<=Tong;i++)
    {
        SetPos(5,i*11-10),cout<<"同伴"<<i<<":";
        SetPos(7,i*11-10),cout<<"技能数量上限:"<<You[i].Skilmax;
        SetPos(9,i*11-10),cout<<"技能数量:"<<You[i].Skilnum;
        for(int j=1;j<=You[i].Skilnum;j++)
        SetPos(9+2*j,i*11-10),printf("第%d技能:",j),Color(Skill[You[i].Skil[j]].color),cout<<Skill[You[i].Skil[j]].Name,Color(0);
    }
    SetPos(22,1),cout<<"按任意键退出。";
    char a;a=_getch();
}
void StartSkill(){
    system("cls");Color(0);
    SetPos(1,1),printf("Hi,请输入你的新技能的名字......");
    int x=100+Skll;Skll++;float X=1,Sha=0;skk++,Skkk[skk]=x;
    scanf("%s",&Skill[x].Name);
    printf("\n  请输入技能种类......\n\n");
    printf("  1.单体伤害  2.群体伤害  3.防御与辅助 ..... ");
    cin>>Skill[x].What;if(Skill[x].What==2) X*=3;
    if(Skill[x].What<=2)
    {
        printf("\n  请输入技能攻击力(建议<100,不然耗气量会巨多)......");cin>>Skill[x].Kill;Sha+=Skill[x].Kill;
        printf("\n  请输入技能额外效果数(建议<3,不然耗气量会巨多)......");cin>>Skill[x].Any;
        for(int i=1;i<=Skill[x].Any;i++)
        {
            printf("\n  请输入技能 额外效果 %d:",i);
            printf("\n\n  1.冰冻  2.毒伤  3.暴击率  4.连击率");
            printf("\n  5.眩晕率  6.百分比伤害  7.吸血 ..... ");//10为 偷钱 
            cin>>Skill[x].Anywhat[i];int a=Skill[x].Anywhat[i];
            if(a>=3&&a<=6) printf("\n  请输入其的百分比(必须<80!建议<30,不然耗气量会巨多)......"),cin>>Skill[x].Anykill[i];
            if(a==2) printf("\n  请输入其的攻击力(建议<30,不然耗气量会巨多)......"),cin>>Skill[x].Anykill[i];
            if(a<=2) printf("\n  请输入其的持续时间(建议<4,不然耗气量会巨多)......"),cin>>Skill[x].Time[i];
            int w=Skill[x].Kill,z=Skill[x].Anykill[i],t=Skill[x].Time[i];
            if(a==1) Sha+=50*t;if(a==2) Sha+=0.5*z*t;
            if(a==3) {if(z<20) X*=1+z/100;else if(z<50) X*=1+z/50;else X*=z/20;}
            if(a==4) {if(z<30) X*=1+z/80;else if(z<60) X*=0.8+z/30;else X*=z/5-3;}
            if(a==5) {if(z<30) X*=1+z/100;else if(z<50) X*=0.8+z/40;else X*=z/10-3;}
            if(a==6) Sha+=3*z;if(a==7) Sha+=1.3*w;
        }
    }
    else
    {
        printf("\n  请输入技能效果数(建议<3,不然耗气量会巨多)......");cin>>Skill[x].Any;
        for(int i=1;i<=Skill[x].Any;i++)
        {
            printf("\n  请输入技能 额外效果 %d ......",i);
            printf("\n\n  1.加血  2.无敌  3.持续加血  4.持续加气"); //5为 召唤 
            cin>>Skill[x].Anywhat[i];int a=Skill[x].Anywhat[i];
            if(a==1||a==3) printf("\n  请输入其的增幅量(建议<30,不然耗气量会巨多)......"),cin>>Skill[x].Anykill[i];
            if(a==4) printf("\n  请输入其的增幅量(可输入一位小数,建议<3,不然耗气量会巨多)......"),cin>>Skill[x].Anyqi[i];
            if(a>=2) printf("\n  请输入其的持续时间(建议<4,不然耗气量会巨多)......"),cin>>Skill[x].Time[i];
            int w=Skill[x].Kill,z=Skill[x].Anykill[i],t=Skill[x].Time[i];float v=Skill[x].Anyqi[i];
            if(a==1) Sha+=z;if(a==2) Sha+=20*t;if(a==3) Sha+=t*z;if(a==4) Sha+=20*t*v;if(a==4&&t==1) Sha*=500;if(a==4&&t==2) Sha*=100;
        }
    }
    printf("\n  请输入其的颜色......");
    Color(1),cout<<"\n  1.蓝  ";Color(2),cout<<"2.绿  ";Color(3),cout<<"3.紫  ";Color(4),cout<<"4.红  ";Color(5),cout<<"5.黄  ";Color(6),cout<<"6.深蓝  ";
    Color(7),cout<<"\n  7.青  ";Color(8),cout<<"8.深绿  ";Color(9),cout<<"9.深紫  ";Color(10),cout<<"10.深红  ";Color(11),cout<<"11.木色  ";Color(12),cout<<"12.灰  ";
    Color(0),cin>>Skill[x].color;
    if(Sha<20) Sha=Sha/30;else if(Sha<50) Sha=Sha/40+0.5;else if(Sha<200) Sha=Sha/150+1.5;else Sha=Sha/70;
    Skill[x].Qi=Sha*X*10/(0.8+0.1*Ju);int skillqi=Skill[x].Qi;Skill[x].Qi=(float)skillqi/10;
    printf("\n  计算已完成,这个技能的耗气量为------- %0.1f\n",Skill[x].Qi);
    cout<<"\n  按 y 更改技能,按 0 退出。";
    char a;cin>>a;if(a=='y') ChangeSkill();
}
void Main();
void Killk(int c,int a,int b){//单体 
    int RR=0,bxb=0;if(Guai[b].Blood<=0) return;int RRR=rand()%100;
    if(Skill[a].Kill>5) RR=rand()%(Skill[a].Kill/5)-Skill[a].Kill/10;
    printf("\n  %s攻击了%s!\n",You[c].Name,Guai[b].Name);Sleep(200);
    if(Guai[b].Wudi>0) {printf("\n  但是!%s是无敌的!\n",Guai[b].Name);Sleep(200);return;}
    if(Guai[b].Shan>RRR) {printf("\n  但是!%s闪避开了!\n",Guai[b].Name);Sleep(200);return;}
    int ki=Skill[a].Kill+RR;Guai[b].Blood-=ki;
    if(Skill[a].Kill>0) {printf("\n  %s受到%d点伤害,血量还剩%d。\n",Guai[b].Name,ki,Guai[b].Blood);Sleep(200);}
    for(int i=1;i<=Skill[a].Any;i++)
    {
        int j=Skill[a].Anywhat[i],k=Skill[a].Time[i],l=Skill[a].Anykill[i],m=Skill[a].Kill,mmm;
        int r1=rand()%100+1,r2=rand()%50+51,r3=rand()%100+1;
        if(j==1) Guai[b].Ice+=k,printf("\n  %s被冰冻!冰冻时间还剩%d。\n",Guai[b].Name,Guai[b].Ice);
        if(j==2) Guai[b].Dut+=k,Guai[sb].Duk=l,printf("\n  %s中毒!中毒时间还剩%d。\n",Guai[b].Name,Guai[b].Dut);
        if(j==3&&r1<=l) mmm=m*r2/100,Guai[b].Blood-=mmm,printf("\n  %s被暴击!多受到%d点伤害,血量还剩%d。\n",Guai[b].Name,mmm,Guai[b].Blood);
        if(j==4&&r1<=l&&Guai[b].Blood>0) Guai[b].Blood-=m,printf("\n  %s被连击!再次受到%d点伤害,血量还剩%d。\n",Guai[b].Name,m,Guai[b].Blood),i--;
        if(j==5&&r1<=l) Guai[b].Yun++,printf("\n  %s被击晕!击晕时间还剩%d。\n",Guai[b].Name,Guai[b].Yun);
        if(j==6) mmm=Guai[b].Blood*l/100,Guai[b].Blood-=mmm,printf("\n  %s遭受百分比伤害!受到%d点伤害,血量还剩%d。\n",Guai[b].Name,mmm,Guai[b].Blood);
        if(j==7) You[c].Blood=min(You[c].Bloodmax,You[c].Blood+Skill[a].Kill+RR),printf("\n  %s被吸血! %s的血量增加%d,还剩%d。\n",Guai[b].Name,You[c].Name,Skill[a].Kill+RR,You[c].Blood);
        Sleep(200);
    }if(Guai[b].Blood<=0) Color(4),printf("\n  %s阵亡!",Guai[b].Name),dy--,Color(0),printf("你的金币+%d!\n",Guai[b].Money),You[0].Money+=Guai[b].Money;
}
void Killkk(int c,int a){//辅助 
    for(int i=1;i<=Skill[a].Any;i++)
    {
        int j=Skill[a].Anywhat[i],k=Skill[a].Time[i],l=Skill[a].Anykill[i];float m=Skill[a].Anyqi[i];
        int r1=rand()%100+1,r2=rand()%100+1,r3=rand()%100+1;
        if(j==1) You[c].Blood+=l,You[c].Blood=min(You[c].Bloodmax,You[c].Blood),printf("\n  %s加血%d!血量还剩%d。\n",You[c].Name,l,You[c].Blood);
        if(j==2) You[c].Wudi+=k,printf("\n  %s开启无敌!无敌时间还剩%d。\n",You[c].Name,You[c].Wudi);
        if(j==3) You[c].Blpt+=k,You[c].Blp=l,printf("\n  %s开启持续加血!持续时间还剩%d。\n",You[c].Name,You[c].Blpt);
        if(j==4) You[c].Qipt+=k,You[c].Qip=m,printf("\n  %s开启持续加气!持续时间还剩%d。\n",You[c].Name,You[c].Qipt);
        Sleep(200);
    }
}
void Killkkk(int c,int a){//群攻 
    bool k[1001];memset(k,0,sizeof(k));
    int R=min(rand()%3+4,dy),ll=0;
    for(int i=1;i<=R;i++)
    {
        int j=rand()%Dy+1;
        if(Guai[j].Blood>0&&k[j]==0) Killk(c,a,j),k[j]=1,ll=0;
        else i--,ll++;
        if(ll>=5) break;
    }
}
void Killk2(int b,int a,int c){//怪单体
    int RR=0;if(Skill[a].Kill>5) RR=rand()%(Skill[a].Kill/5)-Skill[a].Kill/10;
    int RRR=rand()%100;
    printf("\n  %s攻击了%s!\n",Guai[b].Name,You[c].Name);Sleep(200);
    if(You[c].Wudi>0) {printf("\n  但是!%s是无敌的!\n",You[c].Name);Sleep(200);return;}
    if(You[c].Shan>RRR) {printf("\n  但是!%s闪避开了!\n",You[c].Name);Sleep(200);return;}
    int ki=Skill[a].Kill+RR;You[c].Blood-=ki;
    if(Skill[a].Kill>0) {printf("\n  %s受到%d点伤害,血量还剩%d。\n",You[c].Name,ki,You[c].Blood);Sleep(200);}
    for(int i=1;i<=Skill[a].Any;i++)
    {
        int j=Skill[a].Anywhat[i],k=Skill[a].Time[i],l=Skill[a].Anykill[i],m=Skill[a].Kill,mmm;
        int r1=rand()%100+1,r2=rand()%50+51,r3=rand()%100+1;
        if(j==1) You[c].Ice+=k,printf("\n  %s被冰冻!冰冻时间还剩%d。\n",You[c].Name,You[c].Ice);
        if(j==2) You[c].Dut+=k,You[c].Duk=l,printf("\n  %s中毒!中毒时间还剩%d。\n",You[c].Name,You[c].Dut);
        if(j==3&&r1<=l) mmm=m*r2/100,You[c].Blood-=mmm,printf("\n  %s被暴击!多受到%d点伤害,血量还剩%d。\n",You[c].Name,mmm,You[c].Blood);
        if(j==4&&r1<=l&&You[c].Blood>0) You[c].Blood-=m,printf("\n  %s被连击!再次受到%d点伤害,血量还剩%d。\n",You[c].Name,m,You[c].Blood),i--;
        if(j==5&&r1<=l) You[c].Yun++,printf("\n  %s被击晕!击晕时间还剩%d。\n",You[c].Name,You[c].Yun);
        if(j==6) mmm=You[c].Blood*l/100,You[c].Blood-=mmm,printf("\n  %s遭受百分比伤害!受到%d点伤害,血量还剩%d。\n",You[c].Name,mmm,You[c].Blood);
        if(j==7) Guai[b].Blood=min(Guai[b].Bloodmax,Guai[b].Blood+Skill[a].Kill+RR),printf("\n  %s被吸血! %s的血量增加%d,还剩%d。\n",You[c].Name,Guai[b].Name,Skill[a].Kill+RR,Guai[b].Blood);
        if(j==10) l=min(You[0].Money,l),You[0].Money-=l,Guai[b].Money+=l,printf("\n  你队被偷钱!金币数量减少%d,还剩%d,%s金币加为%d。\n",l,You[0].Money,Guai[b].Name,Guai[b].Money);
        Sleep(200);                                  
    }int as=rand()%5;if(You[c].Skilnum==0) as=0;
    if(Skill[a].What==1&&Skill[a].Anywhat[1]==10) as=1; //偷钱 
    if(c!=0&&You[c].Skilmax!=You[c].Skilnum&&as==0) Color(5),printf("\n  但是!%s学会了此技能!\n",You[c].Name),You[c].Skilnum++,You[c].Skil[You[c].Skilnum]=a,Color(0),Sleep(200);
    if(You[c].Blood<=0)
    {
        Color(4),printf("\n  %s阵亡!\n",You[c].Name),dd--;int rrR=rand()%30;
        if(rrR==0&&c!=0)
        {
            Tong=max(0,Tong-1);Slow(70,"\n  你的同伴对你们黑暗的前途叹了口气...\n  毅然决然地拖着已失去知觉的身体,走出了战场...\n  消失在地平线上!\n");
            for(int i=c;i<=Tong;i++) swap(You[i],You[i+1]);
        }Color(0);
    }
    if(You[0].Blood<=0&&Fu!=0) Color(5),printf("\n  但是!%s复活!\n",You[c].Name),You[0].Blood=20,dd++,Fu--,Color(0);
}
void Startguai(int a);
void Killkk2(int a,int b){//怪辅助 
    for(int i=1;i<=Skill[a].Any;i++)
    {
        int j=Skill[a].Anywhat[i],k=Skill[a].Time[i],l=Skill[a].Anykill[i];
        int r1=rand()%100+1,r2=rand()%100+1,r3=rand()%100+1;
        if(j==1) Guai[b].Blood+=l,Guai[b].Blood=min(Guai[b].Bloodmax,Guai[b].Blood),printf("\n  %s加血%d!血量还剩%d。\n",Guai[b].Name,l,Guai[b].Blood);
        if(j==2) Guai[b].Wudi+=k,printf("\n  %s开启无敌!无敌时间还剩%d。\n",Guai[b].Name,Guai[b].Wudi);
        if(j==3) Guai[b].Blpt+=k,Guai[b].Blp=l,printf("\n  %s开启持续加血!持续时间还剩%d。\n",Guai[b].Name,Guai[b].Blpt);
        if(j==5) Startguai(Skill[a].Anykill[i]),printf("\n  %s召唤了%s!%s加入战场。\n",Guai[b].Name,Guai[Dy].Name,Guai[Dy].Name);
        Sleep(200);
    }
}
void Killkkk2(int a,int b){//怪群攻
    bool k[1001];memset(k,0,sizeof(k));
    int R=min(rand()%3+3+Ju,dd),ll=0;
    for(int i=1;i<=R;i++)
    {
        int j=rand()%Dd;
        if(You[j].Blood>0&&k[j]==0) Killk2(b,a,j),k[j]=1,ll=0;
        else i--,ll++;
        if(ll>=5) break;
    }
}
void Killguai(int aa){//你队 
    int kk=0;Color(5);
    printf("\n  %s的回合!\n\n",You[aa].Name),Sleep(500);Color(0);
    if(You[aa].Wudi>0) You[aa].Wudi--,printf("  %s还在无敌!持续时间还剩%d。\n\n",You[aa].Name,You[aa].Wudi),Sleep(200);
    if(You[aa].Qipt>0) You[aa].Qipt--,You[aa].Qi+=You[aa].Qip,printf("  %s的气增加%0.1f,还剩%0.1f,持续时间还剩%d。\n\n",You[aa].Name,You[aa].Qip,You[aa].Qi,You[aa].Qipt),Sleep(200);
    if(You[aa].Blpt>0) You[aa].Blpt--,You[aa].Blood+=You[aa].Blp,You[aa].Blood=min(You[aa].Bloodmax,You[aa].Blood),printf("  %s的血量增加%d,还剩%d,持续时间还剩%d。\n\n",You[aa].Name,You[aa].Blp,You[aa].Blood,You[aa].Blpt),Sleep(200);
    if(You[aa].Dut>0) You[aa].Dut--,You[aa].Blood-=You[aa].Duk,printf("  %s毒发!其的血量减少%d,还剩%d,持续时间还剩%d。\n\n",You[aa].Name,You[aa].Duk,You[aa].Blood,You[aa].Dut),Sleep(200);
    if(You[aa].Ice>0) kk=1,You[aa].Ice--,printf("  %s被冰冻了......,冰冻时间还剩%d。\n\n",You[aa].Name,You[aa].Ice),Sleep(200);
    if(You[aa].Yun>0) {You[aa].Yun--;if(kk==1) cout<<endl<<"  同时,";else cout<<endl<<"  ";printf("%s被击晕了......,击晕时间还剩%d\n\n",You[aa].Name,You[aa].Yun),Sleep(200);return;}
    if(You[aa].Blood<=0) Color(4),printf("\n  %s阵亡!\n",You[aa].Name),dd--,kk=1,Color(0);
    if(kk==1) return;
    if(aa==0)
    {
        You[aa].Qi+=You[aa].Qijia;You[aa].Blood+=You[aa].Bloodjia;You[aa].Blood=min(You[aa].Blood,You[aa].Bloodmax);
        Color(0),printf("  你的气数+%0.1f: %0.1f\n",You[aa].Qijia,You[aa].Qi);
        Color(0),printf("\n  你的血量+%d: %d\n",You[aa].Bloodjia,You[aa].Blood);printf("\n  你的技能:\n");Sleep(200);
        Color(0),printf("\n  0: 蓄气");
        for(int i=1;i<=You[aa].Skilnum;i++) {Color(0),printf("\n  %d: ",i),Color(Skill[You[aa].Skil[i]].color),printf("%s",Skill[You[aa].Skil[i]].Name);Color(0);if(Skill[You[aa].Skil[i]].Qi>You[aa].Qi) cout<<"(不可用)";}
        printf("\n\n  请输入你想使用技能的编号----- ");
        int a,b;cin>>a;
        if(a==0) You[aa].Qi+=1,printf("\n  %s蓄气!你的气数 +1,还剩%0.1f。\n",You[aa].Name,You[aa].Qi);
        else
        {
            int c=You[aa].Skil[a];
            if(You[aa].Qi-Skill[c].Qi<0) return;
            You[aa].Qi-=Skill[c].Qi;
            if(Skill[c].What==1)
            {
                Color(0),printf("\n  当前敌人:\n");
                for(int i=1;i<=Dy;i++) if(Guai[i].Blood>0) {printf("\n  %d: %s (血量:%d)",i,Guai[i].Name,Guai[i].Blood);}
                printf("\n\n  请输入你想攻击敌人的编号----- ");cin>>b;
            }printf("\n\n  你使用技能:");Color(Skill[c].color);printf("%s",Skill[c].Name);Color(0),cout<<" !"<<endl;
            if(Skill[c].What==1) Killk(0,c,b);
            if(Skill[c].What==2) Killkkk(0,c);
            if(Skill[c].What==3) Killkk(0,c);
        }
    }
    else
    {
        int R=rand()%100+1,l=0,kk=0,o=rand()%5;
        if(You[aa].Skilnum!=0) l=rand()%You[aa].Skilnum+1;if(o==0) l=0;
        printf("  %s使用技能:",You[aa].Name);Color(Skill[You[aa].Skil[l]].color);Sleep(200);
        if(l==0) {cout<<"蓄气 !"<<endl;return;}
        printf("%s",Skill[You[aa].Skil[l]].Name);Color(0),cout<<" !"<<endl;
        KR:
        int sc=rand()%Dy+1;Sleep(200);
        if(Skill[You[aa].Skil[l]].What==1) if(Guai[sc].Blood>0) Killk(aa,You[aa].Skil[l],sc); else goto KR;
        if(Skill[You[aa].Skil[l]].What==2) Killkkk(aa,You[aa].Skil[l]);
        if(Skill[You[aa].Skil[l]].What==3) Killkk(aa,You[aa].Skil[l]);
    }
}
void Killyou(int sb){//怪
    sa=rand()%dd;
    int R=rand()%(100-min(10,Ju*3))+1,l=0,kk=0;Color(5);
    printf("\n  %s的回合!\n",Guai[sb].Name),Sleep(500);Color(0);
    if(Guai[sb].Wudi>0) Guai[sb].Wudi--,printf("  %s还在无敌!持续时间还剩%d。\n\n",Guai[sb].Name,Guai[sb].Wudi),Sleep(200);
    if(Guai[sb].Blpt>0) Guai[sb].Blpt--,Guai[sb].Blood+=Guai[sb].Blp,Guai[sb].Blood=min(Guai[sb].Bloodmax,Guai[sb].Blood),printf("  %s的血量增加%d,还剩%d,持续时间还剩%d。\n\n",Guai[sb].Name,Guai[sb].Blp,Guai[sb].Blood,Guai[sb].Blpt),Sleep(200);
    if(Guai[sb].Dut>0) Guai[sb].Dut--,Guai[sb].Blood-=Guai[sb].Duk,printf("  %s毒发!它的血量减少%d,还剩%d,持续时间还剩%d。\n\n",Guai[sb].Name,Guai[sb].Duk,Guai[sb].Blood,Guai[sb].Dut),Sleep(200);
    if(Guai[sb].Ice>0) kk=1,Guai[sb].Ice--,printf("  %s被冰冻了......,冰冻时间还剩%d。\n\n",Guai[sb].Name,Guai[sb].Ice),Sleep(200);
    if(Guai[sb].Yun>0) {Guai[sb].Yun--;if(kk==1) cout<<endl<<"  同时,";else cout<<endl<<"  ";printf("%s被击晕了......,击晕时间还剩%d\n\n",Guai[sb].Name,Guai[sb].Yun),Sleep(200);return;}
    if(Guai[sb].Blood<=0) Color(4),printf("\n  %s阵亡!\n",Guai[sb].Name),dy--,kk=1,Color(0);
    if(kk==1) return;
    for(int i=1;i<=Guai[sb].Skilnum;i++) {if(R>Guai[sb].Skilstr[i]) continue;else {l=Guai[sb].Skil[i];break;}}
    printf("\n  %s使用技能:",Guai[sb].Name);Color(Skill[l].color);Sleep(200);
    if(l==0) {cout<<"蓄气 !"<<endl;return;}
    printf("%s",Skill[l].Name);Color(0),cout<<" !"<<endl;
    KR:
    int sc=rand()%Dd;Sleep(200);
    if(Skill[l].What==1) if(You[sc].Blood>0) Killk2(sb,l,sc); else goto KR;
    if(Skill[l].What==3) Killkk2(l,sb);
    if(Skill[l].What==2) Killkkk2(l,sb);
}
void Juing(){
    system("cls");Color(5);
    if(Ju==1) Slow(50,"\n  -----------第一章-----------\n\n  这个世界是由SLFDC政府掌管的。\n\n  近几年,由于太上皇的暴政,有10%的诸侯国脱离了此政府。\n\n  为此,SLFDC创立了强大的军事力量,\n\n  由三大教,七武科代表统管。\n\n  而你方则立下了四皇来与之抗衡。\n\n  现在,世界混乱,而你,必定是可以称霸世界,重拾和平的人!\n\n  于是,你走上了与天下人抗争的道路,\n\n  辉煌的前途正向你驶来!");
    if(Ju==2) Slow(50,"\n  -----------第二章-----------\n\n  在这一年中,四皇小P,老狗,梢公与小梁终于在思想上达成了一致\n\n  一个名为信奥班的群体终于崛起!\n\n  与此同时,因为救下了一位小P的手下,\n\n  你也光荣地入队!\n\n  现在,你开始承受SLFDC更为激烈的打击,\n\n  你一定要创造计策与机会,存活下去!");
    if(Ju==3) Slow(50,"\n  -----------第三章-----------\n\n  前线传来坏消息,\n\n  太上皇用自己无敌的能力击溃了大部分军队,\n\n  而继续反扑向信奥班本部!\n\n  于是,四皇们决定进军SLFDC本部!\n\n  政府在这时风雨飘摇,欲摧不倒!\n\n  江山即将易主,已经可以看到黎明的曙光!");
    if(Ju==4) Slow(50,"\n  -----------第四章-----------\n\n  震撼人心的“SLFDC顶上战争”终于爆发了!\n\n  前线军队战斗的轰轰烈烈,尸横遍地!\n\n  在弹尽粮绝之时,你忽然发现,自己已变得超乎想象的强大!\n\n  你从尸山血海中站起,\n\n  经历的所有战争均是超乎想象的宏大!\n\n  你始终相信,终有一天,希望将照在这辽阔的大地上!");
    if(Ju==5) Slow(50,"\n  -----------第五章-----------\n\n  战争结束了!\n\n  你的目标终于达成了!\n\n  接下来,你就可以肆无忌惮的在你的国度除恶扬善了!\n  .\n  .\n  .\n  .\n  .\n  .\n\n  剧情走完,游戏继续!");
    Sleep(3000),system("cls");if(Ju<=1) return;
    printf("\n  升级了!\n\n");Sleep(1000);
    printf("  闪避率+2%\n\n");Sleep(500);
    printf("  同伴现有技能攻击力+20%\n\n");Sleep(500);
    printf("  新创自定义技能气量*90%\n\n");Sleep(500);
    printf("  战斗金币量+10%\n\n");Sleep(500);
    printf("  胜利EXP量+10%\n\n");Sleep(500);
    printf("  游戏难度加大!\n\n");Sleep(500);You[0].Shan+=2;
    for(int i=1;i<100;i++) {Skill[i].Kill*1.2;for(int j=1;j<=Skill[i].Any;j++) Skill[i].Anykill[j]*1.2;}
    Sleep(3000),system("cls");Color(0);
}
void LaoHu(){
    system("cls");Color(0);
    printf("\n  -----------老虎机-----------\n");
    for(int i=1;i<=50;i++)
    {
        SetPos(5,5);cout<<"            ";
        Color(rand()%13);
        SetPos(5,5);cout<<"出奖中。。。"; Sleep(30);
    }Color(5);
    SetPos(5,2);cout<<"恭喜获得";Re:
    int ssa=rand()%6,sr;
    if(ssa==0) {sr=rand()%400+100;cout<<"金币"<<sr<<"个!";You[0].Money+=sr;} 
    if(ssa==1) {sr=rand()%50+30;cout<<"经验"<<sr<<"点!";You[0].EXP+=sr;} 
    if(ssa==2)
    {
        KKP:sr=rand()%24+4;
        for(int i=1;i<=You[0].Skilnum;i++) if(You[0].Skil[i]==sr) goto KKP;
        for(int i=1;i<=skk;i++) if(Skkk[i]==sr) goto KKP;
        if(Skill[sr].What==3&&Skill[sr].Anywhat[1]==5) goto KKP;   //召唤 
        if(Skill[sr].What==1&&Skill[sr].Anywhat[1]==10) goto KKP;  //偷钱 
        skk++,Skkk[skk]=sr;cout<<"系统特惠技能:";Color(Skill[Skkk[skk]].color);cout<<Skill[Skkk[skk]].Name;Color(5),cout<<"!";
    }
    if(ssa==3)
    {
        if(Tong==Tongmax) goto Re;Tong++;int i=Tong;You[i].Skilnum=0;
        You[i].Bloodmax=You[0].Bloodmax-10+rand()%21;You[i].Skilmax=3+rand()%3;
        printf("新同伴(血量%d,技能上限%d,会学习)!",You[i].Bloodmax,You[i].Skilmax);
    }
    if(ssa==4) {cout<<"新技能槽!";You[0].Skilmax++;}
    if(ssa==5) {cout<<"血量上限+20%!";You[0].Bloodmax*=1.2;}
    Sleep(1000);
}
void Store(){
    St:system("cls");Color(0);
    if(Jiao==12) {SetPos(22,1),Color(5),printf("教程提示 12 :但是,此游戏的成功方式只有一个:\n             将游戏的剧情完结!\n             按 0 退出,否则退出教程。"),Color(0);SetPos(0,0);}
    printf("\n  ------------商店------------\n");
    printf("\n  Money:%d\n",You[0].Money);
    printf("\n  1.同伴招募                    --- $300\n");
    printf("\n  2.药水商店\n");
    printf("\n  3.经验升级区\n");
    printf("\n  4.老虎机 (会抽出什么呢?...)  --- $300\n");
    printf("\n  输入 0 退出。----- ");int a;cin>>a;if(a==0&&Jiao==12) Jiao++,You[0].EXP=100;else if(Jiao!=14) Jiao=-1;
    if(a==1&&You[0].Money>=300&&Tong<Tongmax)
    {
        Tong++;int i=Tong;You[i].Skilnum=0;You[0].Money-=300;
        You[i].Bloodmax=You[0].Bloodmax-10+rand()%21;You[i].Skilmax=3+rand()%3;
        Color(5),printf("\n  恭喜获得新同伴(血量%d,技能上限%d,会学习)!",You[i].Bloodmax,You[i].Skilmax);Color(0),Sleep(3000);
    }
    if(a==2)
    {
        Sto:system("cls");Color(0);
        printf("\n  ----------药水商店----------\n");
        printf("\n  注意:所有药水均为自动使用一次性。\n");
        printf("\n  Money:%d\n",You[0].Money);
        printf("\n  1.生命药水 (初始血量+10%) [已有%d个]  --- $30\n",Shen);
        printf("\n  2.复活药水 (且回血20)     [已有%d个]  --- $50\n",Fu);
        printf("\n  3.敏捷药水 (闪避率+20%)   [已有%d个]  --- $50\n",Shan);
        printf("\n  4.狂暴药水 (回合率+20%)   [已有%d个]  --- $50\n",Ji);
        printf("\n  5.元气药水 (开局1口气)    [已有%d个]  --- $30\n",Yuan);
        printf("\n  6.经验药水 (+10 EXP)                  --- $100\n");
        printf("\n  输入 0 退出。----- ");int aa;cin>>aa;
        if(aa==1&&You[0].Money>=30) Shen++,You[0].Money-=30;if(aa==2&&You[0].Money>=50) Fu++,You[0].Money-=50;if(aa==3&&You[0].Money>=50) Shan++,You[0].Money-=50;
        if(aa==4&&You[0].Money>=50) Ji++,You[0].Money-=50;if(aa==5&&You[0].Money>=30) Yuan++,You[0].Money-=30;if(aa==6&&You[0].Money>=100) You[0].EXP+=20,You[0].Money-=100;
        if(aa!=0) goto Sto;
    }
    if(a==3)
    {
        Stoo:system("cls");Color(0);
        printf("\n  ---------经验升级区---------\n");
        printf("\n  EXP:%d\n",You[0].EXP);
        printf("\n  1.血量上限+10% [已为%d点]  --- 50 EXP\n",You[0].Bloodmax);
        printf("\n  2.回合加气+0.2 [已为%0.1f口]  --- 50 EXP\n",You[0].Qijia);
        printf("\n  3.回合加血+5  [已为%d点]  --- 70 EXP\n",You[0].Bloodjia);
        printf("\n  4.闪避率+5%   [已为%d%]  --- 70 EXP\n",You[0].Shan);
        printf("\n  5.技能槽+1     [已为%d个]  --- 100 EXP\n",You[0].Skilmax);
        printf("\n  6.同伴上限+1   [已为%d个]  --- 100 EXP\n",Tongmax);
        printf("\n  7.同伴升级区\n");
        printf("\n  输入 0 退出。----- ");int aaa;cin>>aaa;if(aaa==7&&Jiao==13) Jiao++;else if(Jiao!=14) Jiao=-1;
        if(aaa==1&&You[0].EXP>=50) You[0].Bloodmax*=1.1,You[0].EXP-=50;
        if(aaa==2&&You[0].EXP>=50) You[0].Qijia+=0.2,You[0].EXP-=50;
        if(aaa==3&&You[0].EXP>=70) You[0].Bloodjia+=5,You[0].EXP-=70;
        if(aaa==4&&You[0].EXP>=70) You[0].Shan+=5,You[0].EXP-=70;
        if(aaa==5&&You[0].EXP>=100) You[0].Skilmax++,You[0].EXP-=100;
        if(aaa==6&&You[0].EXP>=100) Tongmax++,You[0].EXP-=100;
        if(aaa==7)
        {
            So:system("cls");Color(0);
            printf("\n  ---------同伴升级区---------\n");
            printf("\n  EXP:%d     同伴数量:%d\n",You[0].EXP,Tong);
            printf("\n  你要升级同伴几?(输入 0 退出)----- ");
            int i;cin>>i;if(i==0) goto Stoo;Soo:SetPos(5,1);printf("同伴%d:                                \n",i);
            printf("\n  血量上限:%d     (+10%按1 --- 50EXP)\n",You[i].Bloodmax);
            printf("\n  回合加血:%d     (+5按2   --- 70EXP)\n",You[i].Bloodjia);
            printf("\n  闪避率:%d%      (+5%按3   --- 70EXP)\n",You[i].Shan);
            printf("\n  技能数量上限:%d (+1按4   --- 100EXP)\n",You[i].Skilmax,You[i].Skilnum);
            for(int j=1;j<=You[i].Skilnum;j++)printf("\n  ----第%d技能:",j),Color(Skill[You[i].Skil[j]].color),cout<<Skill[You[i].Skil[j]].Name,Color(0),printf("    (删除按%d)\n",4+j);
            printf("\n  输入 0 重选。----- ");int ab;cin>>ab;
            if(ab==1&&You[0].EXP>=50) You[i].Bloodmax*=1.1,You[0].EXP-=50;
            if(ab==2&&You[0].EXP>=70) You[i].Bloodjia+=5,You[0].EXP-=70;
            if(ab==3&&You[0].EXP>=70) You[i].Shan+=5,You[0].EXP-=70;
            if(ab==4&&You[0].EXP>=100) You[i].Skilmax++,You[0].EXP-=100;
            if(ab>4) {ab-=4;You[i].Skilnum--;for(int j=ab;j<You[i].Skilnum;j++) swap(You[i].Skil[j],You[i].Skil[j+1]);You[i].Skil[You[i].Skilnum+1]=0;}
            if(ab!=0) {system("cls");Color(0);printf("\n  ---------同伴升级区---------\n");printf("\n  EXP:%d     同伴数量:%d\n",You[0].EXP,Tong);goto Soo;}if(ab==0) goto So;
        }
        if(aaa!=0) goto Stoo;
    }
    if(a==4&&You[0].Money>=300) LaoHu(),You[0].Money-=300;
    if(a!=0) goto St;
}
void Startguai(int a){
    char *str;
    dy++;Dy++;
    if(a==1) {str="剑客";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=80;Guai[dy].Money=10;Guai[dy].Skilnum=2,Guai[dy].Skil[1]=1,Guai[dy].Skilstr[1]=40,Guai[dy].Skil[2]=4,Guai[dy].Skilstr[2]=90;}
    if(a==2) {str="守卫兵";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=100;Guai[dy].Money=20;Guai[dy].Skilnum=2,Guai[dy].Skil[1]=5,Guai[dy].Skilstr[1]=30,Guai[dy].Skil[2]=6,Guai[dy].Skilstr[2]=90;}
    if(a==3) {str="史莱姆";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=50;Guai[dy].Money=10;Guai[dy].Skilnum=2,Guai[dy].Skil[1]=7,Guai[dy].Skilstr[1]=50,Guai[dy].Skil[2]=8,Guai[dy].Skilstr[2]=90;}
    if(a==4) {str="模仿者";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=You[0].Blood;Guai[dy].Money=20;Guai[dy].Skilnum=3,Guai[dy].Skil[1]=You[0].Skil[1],Guai[dy].Skilstr[1]=30,Guai[dy].Skil[2]=You[0].Skil[2],Guai[dy].Skilstr[2]=60,Guai[dy].Skil[3]=You[0].Skil[3],Guai[dy].Skilstr[3]=90;}
    if(a==5) {str="魔术师";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=80;Guai[dy].Money=25;Guai[dy].Skilnum=3,Guai[dy].Skil[1]=9,Guai[dy].Skilstr[1]=20,Guai[dy].Skil[2]=5,Guai[dy].Skilstr[2]=40,Guai[dy].Skil[3]=6,Guai[dy].Skilstr[3]=90;}
    if(a==6) {str="巫医";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=70;Guai[dy].Money=20;Guai[dy].Skilnum=3;Guai[dy].Skil[1]=15,Guai[dy].Skilstr[1]=40;Guai[dy].Skil[2]=16,Guai[dy].Skilstr[2]=60;Guai[dy].Skil[3]=17,Guai[dy].Skilstr[3]=90;}
    if(a==7) {str="法师";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=80;Guai[dy].Money=30;Guai[dy].Skilnum=3,Guai[dy].Skil[1]=2,Guai[dy].Skilstr[1]=20,Guai[dy].Skil[2]=10,Guai[dy].Skilstr[2]=50,Guai[dy].Skil[3]=11,Guai[dy].Skilstr[3]=90;}
    if(a==8) {str="雪怪";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=150;Guai[dy].Money=50;Guai[dy].Skilnum=3;Guai[dy].Skil[1]=12,Guai[dy].Skilstr[1]=50;Guai[dy].Skil[2]=13,Guai[dy].Skilstr[2]=60;Guai[dy].Skil[3]=14,Guai[dy].Skilstr[3]=90;}
    if(a==9) {str="巨人";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=200;Guai[dy].Money=50;Guai[dy].Skilnum=2;Guai[dy].Skil[1]=18,Guai[dy].Skilstr[1]=40;Guai[dy].Skil[2]=19,Guai[dy].Skilstr[2]=90;}
    if(a==10) {str="蝙蝠";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=20;Guai[dy].Money=3;Guai[dy].Skilnum=2,Guai[dy].Skil[1]=20,Guai[dy].Skilstr[1]=60,Guai[dy].Skil[2]=21,Guai[dy].Skilstr[2]=90;}
    if(a==11) {str="乞丐";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=100;Guai[dy].Money=30;Guai[dy].Skilnum=3,Guai[dy].Skil[1]=22,Guai[dy].Skilstr[1]=40,Guai[dy].Skil[2]=23,Guai[dy].Skilstr[2]=80,Guai[dy].Skil[3]=24,Guai[dy].Skilstr[3]=90;}
    if(a==12) {str="弓箭手";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=80;Guai[dy].Money=10;Guai[dy].Skilnum=2,Guai[dy].Skil[1]=26,Guai[dy].Skilstr[1]=40,Guai[dy].Skil[2]=25,Guai[dy].Skilstr[2]=90;}
    if(a==13) {str="哥布林";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=50;Guai[dy].Money=15;Guai[dy].Skilnum=2,Guai[dy].Skil[1]=5,Guai[dy].Skilstr[1]=20,Guai[dy].Skil[2]=27,Guai[dy].Skilstr[2]=90,Guai[dy].Skil[2]=27,Guai[dy].Skilstr[3]=90;}
    if(a==14) {str="酒鬼";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=100;Guai[dy].Money=30;Guai[dy].Skilnum=3,Guai[dy].Skil[1]=28,Guai[dy].Skilstr[1]=30,Guai[dy].Skil[2]=29,Guai[dy].Skilstr[2]=60,Guai[dy].Skil[3]=22,Guai[dy].Skilstr[3]=90;}
    if(a==15) {str="战争机器";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=200;Guai[dy].Money=70;Guai[dy].Skilnum=3;Guai[dy].Skil[1]=30,Guai[dy].Skilstr[1]=40;Guai[dy].Skil[2]=31,Guai[dy].Skilstr[2]=70;Guai[dy].Skil[3]=32,Guai[dy].Skilstr[3]=90;}
    Guai[dy].Blood*=(0.5*Ju);Guai[dy].Blood+=rand()%11-5;Guai[dy].Bloodmax=Guai[dy].Blood;Guai[dy].Money*=(0.8+0.1*Ju);Guai[dy].Shan=(Ju-2)*5;
}
void Startwar(){
    char *str;
    dy=Dy=0;dd=Dd=Tong+1;memset(Guai,0,sizeof(Guai));// dd=你方
    You[0].Blp=You[0].Blpt=You[0].Duk=You[0].Dut=You[0].Ice=You[0].Yun=You[0].Wudi=You[0].Wudit=You[0].Qipt=You[0].Qi=You[0].Qip=0;
    for(int i=1;i<=Tong;i++)
    {
        str="同伴";You[i].Name[4]=i+'0';
        for(int j=0;j<strlen(str);j++)You[i].Name[j]=str[j];You[i].Blood=You[i].Bloodmax;
        You[i].Blp=You[i].Blpt=You[i].Duk=You[i].Dut=You[i].Ice=You[i].Yun=You[i].Wudi=You[i].Wudit=You[i].Qipt=You[i].Qi=You[i].Qip=0;
    }int r=max(Dd+rand()%3-1,1);int t=rand()%6;if(t<Ju) r++;
    for(int i=1;i<=r;i++) Startguai(rand()%15+1); 
}
void War(){
    As:system("cls");Color(0);
    if(Jiao==2) {SetPos(22,1),Color(5),printf("教程提示 2 :杀死所有敌人即可获胜。\n             反之,你队全亡就会失败。\n             按 y 开始,否则退出教程。"),Color(0);SetPos(0,0);}
    if(Jiao==6) {SetPos(22,1),Color(5),printf("教程提示 6 :你的气数会每回合增长。\n             但敌人与同伴使用技能没有气数限制。\n             按 y 开始,否则退出教程。"),Color(0);SetPos(0,0);}
    if(Jiao==10) {SetPos(22,1),Color(5),printf("教程提示 10 :同伴是没有初始技能的。\n             他会在战斗中自我学习,你们的血量在对战后均会回满。\n             按 y 开始,否则退出教程。"),Color(0);SetPos(0,0);}
    SetPos(1,1),printf("----------战斗界面----------\n\n");
    memset(Y,0,sizeof(Y));memset(D,0,sizeof(D));Startwar();if(Juk==10) {Juk=0,Juing(),Ju++;goto As;}
    printf("  你将面临的敌人是:\n");
    for(int i=1;i<=dy;i++) {printf("\n  %d: %s   血量: %d   掉落金币: %d",i,Guai[i].Name,Guai[i].Blood,Guai[i].Money);}
    cout<<"\n\n  按 y 开始战斗,按其余键退出 (损失 30"<<'%'<<" EXP)。----- ";
    char q;cin>>q;if(q!='y'&&(Jiao==2||Jiao==6||Jiao==10)) Jiao=-1;if(q=='y'&&(Jiao==2||Jiao==6||Jiao==10)) Jiao++;
    if(q!='y') {You[0].EXP*=0.7;return;}system("cls");
    SetPos(1,1),printf("\n---------开始战斗!---------\n\n");
    if(Yuan>=1) You[0].Qi=1;
    if(Shen>=1) You[0].Blood*=1.1;
    int sh,pan;if(Shan>=1) You[0].Shan+=20,sh=1;
    while(dy!=0&&dd!=0)
    {
        pan=0;KK:pan++;
        if(pan>=10) break;
        sa=rand()%(dd+dy);sc=0;
        if(Ji>0&&You[0].Blood>0) sc=rand()%5;
        if(sa<dd) sa=0;else sa=1;
        if(k3>=2) sa=1;if(k4>=2) sa=0;
        if(sa==0) sb=rand()%Dd;  //你攻
        if(sa==1) sb=rand()%Dy+1;//怪攻
        if(sc==4) sa=0,sb=0;
        if(sa==0&&You[sb].Blood<=0) goto KK;
        if(sa==1&&Guai[sb].Blood<=0) goto KK;
        if((sa==0&&sb==k1)||(sa==1&&sb==k2)) goto KK;
        if(sa==0) {k1=sb,k2=0,k3++,k4=0;if(dy<=0||dd<=0) break;Killguai(sb);}
        if(sa==1) {k1=-1,k2=sb,k3=0,k4++;if(dy<=0||dd<=0) break;Killyou(sb);}
        if(dy<=0||dd<=0) break;Sleep(500);
    }Shen=max(Shen-1,0);Ji=max(Ji-1,0);Shan=max(Shan-1,0);Yuan=max(Yuan-1,0);if(sh==1) You[0].Shan-=20;
    int ai=(10+Dy*2)*(0.8+0.1*Ju);int bi=(10+Dd*5)*(0.8+0.1*Ju);
    if(dy==0) Color(5),printf("\n  你胜利了!!获得%dEXP!\n",ai),You[0].EXP+=ai,Juk+=rand()%2;
    else Color(4),printf("\n  你失败了!!减少%d金币!\n",bi),You[0].Money=max(0,You[0].Money-bi);Sleep(3000);
}
bool Read(){
    ifstream in("这是你的存档.in");
    unsigned long long ioi=0,ioix;
    long long Moo=1e9+7;
    in>>You[0].Name;
    for(int i=0;i<strlen(You[0].Name);i++) ioi=(ioi+(int)You[0].Name[i])*101%Moo;
    in>>Skll>>skk>>Tong>>Tongmax>>Ju>>Juk>>Jiao>>Shen>>Ji>>Yuan>>Shan>>Fu;
    ioi=(ioi+Skll*103+skk*107+Tong*109+Tongmax*113+Ju*127+Juk*131+Jiao*137+Shen*139+Ji*149+Yuan*151+Shan*157+Fu*163)%Moo;
    for(int i=0;i<=Tong;i++)
    {
        in>>You[i].Blood>>You[i].Bloodmax>>You[i].Bloodjia>>You[i].Skilnum>>You[i].Skilmax>>You[i].Money>>You[i].EXP>>You[i].Shan;in>>You[i].Qijia;
        ioi+=(2*ioi+You[i].Blood*167+You[i].Bloodmax*173+You[i].Bloodjia*179+You[i].Skilnum*181+You[i].Skilmax*191+You[i].Money*193+You[i].EXP*197+You[i].Shan*211+(int)You[i].Qijia*223)%Moo;
        for(int j=1;j<=You[i].Skilnum;j++) in>>You[i].Skil[j],ioi+=i*j*(ioi+You[i].Skil[j])*227%Moo;
    }
    for(int i=100;i<=99+Skll;i++)
    {
        in>>Skill[i].Name;
        for(int j=0;j<strlen(Skill[i].Name);j++) ioi+=i*j*(ioi+(int)Skill[i].Name[j])*229%Moo;
        in>>Skill[i].Qi>>Skill[i].Kill>>Skill[i].What>>Skill[i].color>>Skill[i].Any;
        ioi=ioi+Skill[i].Qi*233+Skill[i].Kill*239+Skill[i].What*241+Skill[i].color*251+Skill[i].Any*257;
        ioi%=Moo;
        for(int j=1;j<=Skill[i].Any;j++)
        {
            in>>Skill[i].Anykill[j]>>Skill[i].Anywhat[j]>>Skill[i].Time[j],in>>Skill[i].Anyqi[j];
            ioi+=i*j*(ioi+Skill[i].Anykill[j]*263+Skill[i].Anywhat[j]*269+Skill[i].Time[j]*271+(int)Skill[i].Anyqi[j]*277)%Moo;
        }
    }for(int i=1;i<=skk;i++) in>>Skkk[i],ioi+=(ioi+Skkk[i])*281%Moo;
    in>>ioix;
    if(ioix!=ioi) {in.close();return 0;}
    in.close();return 1;
}
void Save(){
    unsigned long long ioi=0;
    long long Moo=1e9+7;
    ofstream out("这是你的存档.in");
    out<<You[0].Name<<'\n';
    for(int i=0;i<strlen(You[0].Name);i++) ioi=(ioi+(int)You[0].Name[i])*101%Moo;
    out<<Skll<<' '<<skk<<' '<<Tong<<' '<<Tongmax<<' '<<Ju<<' '<<Juk<<' '<<Jiao<<' '<<Shen<<' '<<Ji<<' '<<Yuan<<' '<<Shan<<' '<<Fu<<'\n';
    ioi=(ioi+Skll*103+skk*107+Tong*109+Tongmax*113+Ju*127+Juk*131+Jiao*137+Shen*139+Ji*149+Yuan*151+Shan*157+Fu*163)%Moo;
    for(int i=0;i<=Tong;i++)
    {
        out<<You[i].Blood<<' '<<You[i].Bloodmax<<' '<<You[i].Bloodjia<<' '<<You[i].Skilnum<<' '<<You[i].Skilmax<<' '<<You[i].Money<<' '<<You[i].EXP<<' '<<You[i].Shan<<' ';out<<You[i].Qijia<<'\n';
        ioi+=(2*ioi+You[i].Blood*167+You[i].Bloodmax*173+You[i].Bloodjia*179+You[i].Skilnum*181+You[i].Skilmax*191+You[i].Money*193+You[i].EXP*197+You[i].Shan*211+(int)You[i].Qijia*223)%Moo;
        for(int j=1;j<=You[i].Skilnum;j++) out<<You[i].Skil[j]<<' ',ioi+=i*j*(ioi+You[i].Skil[j])*227%Moo;out<<'\n';
    }for(int i=100;i<=99+Skll;i++)
    {
        out<<Skill[i].Name<<'\n';
        for(int j=0;j<strlen(Skill[i].Name);j++) ioi+=i*j*(ioi+(int)Skill[i].Name[j])*229%Moo;
        out<<Skill[i].Qi<<' '<<Skill[i].Kill<<' '<<Skill[i].What<<' '<<Skill[i].color<<' '<<Skill[i].Any<<'\n';
        ioi=ioi+Skill[i].Qi*233+Skill[i].Kill*239+Skill[i].What*241+Skill[i].color*251+Skill[i].Any*257;
        ioi%=Moo;
        for(int j=1;j<=Skill[i].Any;j++)
        {
            out<<Skill[i].Anykill[j]<<' '<<Skill[i].Anywhat[j]<<' '<<Skill[i].Time[j]<<' ',out<<Skill[i].Anyqi[j]<<'\n';
            ioi+=i*j*(ioi+Skill[i].Anykill[j]*263+Skill[i].Anywhat[j]*269+Skill[i].Time[j]*271+(int)Skill[i].Anyqi[j]*277)%Moo;
        }
    }for(int i=1;i<=skk;i++) out<<Skkk[i]<<' ',ioi+=(ioi+Skkk[i])*281%Moo;out<<'\n'; 
    out<<'\n'<<ioi;
    out.close();
}
void Cun(){
    yy:system("cls");Color(0);
    SetPos(1,1),printf("---------存读档界面---------");
    SetPos(3,1),printf("读档按1  存档按2 -----");int a;cin>>a;
    if(a==1)
    {
        printf("\n  你需要将你之前的存档与此程序放入一个文件夹中。\n");
        printf("\n  不要更改名字与内容!\n");
        printf("\n  准备好了吗?按任意键开始!\n");char b;b=_getch();
        Slow(50,"\n    读档中......\n");
        if(Read()) Color(5),printf("\n    读档成功!\n");
        else
        {
            Color(4),printf("\n  读档失败!这个档一定被修改过!\n\n");
            Slow(200,"  啊......愚昧无知的人类啊......\n\n  接受来自胎神的惩罚吧!......\n\n");
            Color(5),printf("\n  全新!黑色字体特效,开启!!\n\n");Color(0);Black=1;Sleep(1000);
        }
        Color(0),Sleep(1000);
    }
    if(a==2)
    {
        printf("\n  你需要将此程序放入一个文件夹中。\n");
        printf("\n  注意此操作会覆盖之前的存档。\n");
        printf("\n  准备好了吗?按任意键开始!\n");char b;b=_getch();
        Save();Slow(50,"\n    存档中......\n");
        Color(5),printf("\n    存档成功!\n");Color(0),Sleep(1000);
    }
}
void Main(){
    system("cls");Color(0);You[0].Blood=You[0].Bloodmax;int a=-2019;
    SetPos(1,1),printf("-----------主界面-----------");
    SetPos(3,1),printf("金币:%d   经验值:%d   血量:%d",You[0].Money,You[0].EXP,You[0].Blood);
    SetPos(5,1),printf("Hi,%s,What do you want to do now?",You[0].Name);
    SetPos(7,1),printf("1.开始战斗!");
    SetPos(9,1),printf("2.存档与读档。");
    SetPos(11,1),printf("3.查看本体技能。");
    SetPos(13,1),printf("4.修改本体技能。");
    SetPos(15,1),printf("5.创造自定义技能。");
    SetPos(17,1),printf("6.前往商店。");
    SetPos(19,1),printf("7.查看小兵数据。");
    SetPos(21,1),printf("--------- ");
    if(Jiao==15) {SetPos(22,1),Color(5),printf("教程提示 15 :剩下的需要自己去摸索了,教程结束。"),Color(0);Jiao=-1;}
    if(Jiao==14) {SetPos(22,1),Color(5),printf("教程提示 14 :当你想保存游戏进度时,可以选择存档。\n             在下一次游戏中,你可以读档来继续游戏。\n             按 2 存档,否则退出教程。"),Color(0);SetPos(21,6),cin>>a;if(a==2) Jiao++;else Jiao=-1;}
    if(Jiao==13) {SetPos(22,1),Color(5),printf("教程提示 13 :剧情会在对战前随机刷出\n             我们来看看剧情的第一章吧!\n             按 1 开始,否则退出教程。"),Color(0);SetPos(21,6),cin>>a;if(a==6) Jiao++,Ju=1,Juk=10;else Jiao=-1;}
    if(Jiao==11) {SetPos(22,1),Color(5),printf("教程提示 11 :你可以购买药水增幅自己。\n             而在老虎机中,你可以抽出一些更实用的物品!\n             按 6 购买,否则退出教程。"),Color(0);SetPos(21,6),cin>>a;if(a==6) Jiao++,You[0].Money=200;else Jiao=-1;}
    if(Jiao==9) {SetPos(22,1),Color(5),printf("教程提示 9 :一人对战比较困难,\n             我们来试试和同伴一起战斗吧。\n             按 1 对战,否则退出教程。"),Color(0);SetPos(21,6),cin>>a;if(a==1) Jiao++,Tong++,You[1].Bloodmax=100,You[1].Skilmax=3;else Jiao=-1;}
    if(Jiao==7) {SetPos(22,1),Color(5),printf("教程提示 7 :除了一个一个攻击敌人,你还可以使用群攻技能。\n             我们提供了一个群攻技能给你。\n             按 4 装备,否则退出教程。"),Color(0);SetPos(21,6),cin>>a;if(a==4) Jiao++,skk=1,Skkk[1]=3;else Jiao=-1;}
    if(Jiao==5) {SetPos(22,1),Color(5),printf("教程提示 5 :在对战中,会轮到你的回合\n             你只能你的回合中才能使用技能。\n             按 1 对战,否则退出教程。"),Color(0);SetPos(21,6),cin>>a;if(a==1) Jiao++;else Jiao=-1;}
    if(Jiao==3) {SetPos(22,1),Color(5),printf("教程提示 3 :只用刀对战比较困难,\n             你可以使用技能来对战,来装备你的第一个技能吧。\n             按 4 装备,否则退出教程。"),Color(0);SetPos(21,6),cin>>a;if(a==4) Jiao++,skk=1,Skkk[1]=2;else Jiao=-1;}
    if(Jiao==1) {SetPos(22,1),Color(5),printf("教程提示 1 :本游戏是一个团队对战游戏,\n             一切基础是建立在“开始战斗!”模式下的。\n             按 1 对战,否则退出教程。"),Color(0);SetPos(21,6),cin>>a;if(a==1) Jiao++;else Jiao=-1;}
    SetPos(21,6);if(a==-2019) cin>>a;if(a==1) War();if(a==2) Cun();if(a==3) CheckMe();if(a==4) ChangeSkill();if(a==5) StartSkill();if(a==6) Store();if(a==7) CheckUs();
}
void Start(){
    char *str,aa;Color(0);
    printf("\n  Hi,请输入你的名字......");scanf("%s",You[0].Name);
    printf("\n  要开始教程吗?(按 y / n 选择)..... ");cin>>aa;
    if(aa=='y')
    {
        printf("\n\n  如果你是在本机第一次玩此游戏......");
        printf("\n\n  请将鼠标移至程序框上方按鼠标右键......");
        printf("\n\n  点击“默认值”......");printf("\n\n  点击“布局”......");
        printf("\n\n  将“屏幕缓冲区大小”调为1000 1000......");
        printf("\n\n  然后关闭此程序,重启一次......");
        printf("\n\n  按任意键开始!");char a;a=_getch();Jiao=1;
    }
    else skk=2,Skkk[1]=2,Skkk[2]=3,You[0].Money=200,You[0].EXP=100,Tong=1,You[1].Bloodmax=100,You[1].Skilmax=3,Ju=1,Juk=10;
    You[0].Qi=0,You[0].Blood=You[0].Bloodmax=100,You[0].Skilnum=1,You[0].Skilmax=2,You[0].Skil[1]=1,Tongmax=2,You[0].Qijia=0.5;
    str="刀斩";for(int i=0;i<strlen(str);i++)Skill[1].Name[i]=str[i];Skill[1].Kill=10,Skill[1].What=1,Skill[1].Any=0,Skill[1].color=7,Skill[1].Qi=0;
    str="火球";for(int i=0;i<strlen(str);i++)Skill[2].Name[i]=str[i];Skill[2].Kill=30,Skill[2].What=1,Skill[2].Any=0,Skill[2].color=4,Skill[2].Qi=1;
    str="流星雨";for(int i=0;i<strlen(str);i++)Skill[3].Name[i]=str[i];Skill[3].Kill=30,Skill[3].What=2,Skill[3].Any=0,Skill[3].color=5,Skill[3].Qi=2;
    str="劈剑";for(int i=0;i<strlen(str);i++)Skill[4].Name[i]=str[i];Skill[4].Kill=20,Skill[4].What=1,Skill[4].Any=0,Skill[4].color=12,Skill[4].Qi=0.2;
    str="背刺";for(int i=0;i<strlen(str);i++)Skill[5].Name[i]=str[i];Skill[5].Kill=50,Skill[5].What=1,Skill[5].Any=1,Skill[5].Anywhat[1]=5,Skill[5].Anykill[1]=30,Skill[5].color=3,Skill[5].Qi=1.5;
    str="飞刀";for(int i=0;i<strlen(str);i++)Skill[6].Name[i]=str[i];Skill[6].Kill=10,Skill[6].What=1,Skill[6].Any=1,Skill[6].Anywhat[1]=4,Skill[6].Anykill[1]=30,Skill[6].color=1,Skill[6].Qi=1.5;
    str="粘液弹";for(int i=0;i<strlen(str);i++)Skill[7].Name[i]=str[i];Skill[7].Kill=10,Skill[7].What=2,Skill[7].Any=1,Skill[7].Anywhat[1]=5,Skill[7].Anykill[1]=70,Skill[7].color=2,Skill[7].Qi=2;
    str="碾压";for(int i=0;i<strlen(str);i++)Skill[8].Name[i]=str[i];Skill[8].Kill=30,Skill[8].What=1,Skill[8].color=3,Skill[8].Qi=0.8;
    str="腾空";for(int i=0;i<strlen(str);i++)Skill[9].Name[i]=str[i];Skill[9].What=3,Skill[9].Any=1,Skill[9].Anywhat[1]=2,Skill[9].Time[1]=1,Skill[9].color=1,Skill[9].Qi=1.5;
    str="地裂";for(int i=0;i<strlen(str);i++)Skill[10].Name[i]=str[i];Skill[10].Kill=10,Skill[10].What=2,Skill[10].Any=2,Skill[10].Anywhat[1]=4,Skill[10].Anykill[1]=60,Skill[10].Anywhat[2]=5,Skill[10].Anykill[2]=20,Skill[10].color=11,Skill[10].Qi=2.5;
    str="雷击术";for(int i=0;i<strlen(str);i++)Skill[11].Name[i]=str[i];Skill[11].Kill=30,Skill[11].What=2,Skill[11].Any=2,Skill[11].Anywhat[1]=3,Skill[11].Anykill[1]=30,Skill[11].Anywhat[2]=5,Skill[11].Anykill[2]=30,Skill[11].color=6,Skill[11].Qi=2.5;
    str="雪球";for(int i=0;i<strlen(str);i++)Skill[12].Name[i]=str[i];Skill[12].Kill=20,Skill[12].What=1,Skill[12].Any=1;Skill[12].Anywhat[1]=1,Skill[12].Time[1]=1;Skill[12].color=1,Skill[12].Qi=2;
    str="永冻之域";for(int i=0;i<strlen(str);i++)Skill[13].Name[i]=str[i];Skill[13].Kill=20,Skill[13].What=2,Skill[13].Any=1;Skill[13].Anywhat[1]=1,Skill[13].Time[1]=1;Skill[13].color=1,Skill[13].Qi=4;
    str="暴风雪";for(int i=0;i<strlen(str);i++)Skill[14].Name[i]=str[i];Skill[14].Kill=50,Skill[14].What=2,Skill[14].Any=2;Skill[14].Anywhat[1]=3,Skill[14].Anykill[1]=30;Skill[14].Anywhat[2]=5,Skill[14].Anykill[2]=30;Skill[14].color=1,Skill[14].Qi=2;
    str="急救";for(int i=0;i<strlen(str);i++)Skill[15].Name[i]=str[i];Skill[15].What=3,Skill[15].Any=1;Skill[15].Anywhat[1]=1,Skill[15].Anykill[1]=30;Skill[15].color=2,Skill[15].Qi=1;
    str="瘟疫";for(int i=0;i<strlen(str);i++)Skill[16].Name[i]=str[i];Skill[16].What=2,Skill[16].Any=1;Skill[16].Anywhat[1]=6,Skill[16].Anykill[1]=40;Skill[16].color=3,Skill[16].Qi=2;
    str="下毒";for(int i=0;i<strlen(str);i++)Skill[17].Name[i]=str[i];Skill[17].Kill=10,Skill[17].What=1,Skill[17].Any=1;Skill[17].Anywhat[1]=2,Skill[17].Anykill[1]=10,Skill[17].Time[1]=10;Skill[17].color=8,Skill[17].Qi=0.8;
    str="重击";for(int i=0;i<strlen(str);i++)Skill[18].Name[i]=str[i];Skill[18].Kill=50,Skill[18].What=1,Skill[18].Any=0;Skill[18].color=4,Skill[18].Qi=1.5;
    str="泰山压顶";for(int i=0;i<strlen(str);i++)Skill[19].Name[i]=str[i];Skill[19].Kill=50,Skill[19].What=2,Skill[19].Any=1;Skill[19].Anywhat[1]=3,Skill[19].Anykill[1]=50,Skill[19].color=4,Skill[19].Qi=2.5;
    str="吸血";for(int i=0;i<strlen(str);i++)Skill[20].Name[i]=str[i];Skill[20].Kill=5,Skill[20].What=1,Skill[20].Any=1;Skill[20].Anywhat[1]=7,Skill[20].color=10,Skill[20].Qi=1;
    str="狩猎号角";for(int i=0;i<strlen(str);i++)Skill[21].Name[i]=str[i];Skill[21].What=3,Skill[21].Any=1;Skill[21].Anywhat[1]=5,Skill[21].Anykill[1]=10,Skill[21].color=9,Skill[21].Qi=0.3;
    str="打狗棒法";for(int i=0;i<strlen(str);i++)Skill[22].Name[i]=str[i];Skill[22].Kill=30,Skill[22].What=1,Skill[22].Any=1,Skill[22].Anywhat[1]=4,Skill[22].Anykill[1]=40,Skill[22].color=11,Skill[22].Qi=1.5;
    str="乞讨";for(int i=0;i<strlen(str);i++)Skill[23].Name[i]=str[i];Skill[23].What=3,Skill[23].Any=1;Skill[23].Anywhat[1]=3,Skill[23].Time[1]=5,Skill[23].Anykill[1]=20;Skill[23].color=12,Skill[23].Qi=2;
    str="江湖义";for(int i=0;i<strlen(str);i++)Skill[24].Name[i]=str[i];Skill[24].What=3,Skill[24].Any=1;Skill[24].Anywhat[1]=5,Skill[24].Anykill[1]=11,Skill[24].color=1,Skill[24].Qi=3;
    str="万箭齐发";for(int i=0;i<strlen(str);i++)Skill[25].Name[i]=str[i];Skill[25].Kill=20,Skill[25].What=2,Skill[25].Any=0,Skill[25].color=11,Skill[25].Qi=1.5;
    str="毒箭";for(int i=0;i<strlen(str);i++)Skill[26].Name[i]=str[i];Skill[26].Kill=20,Skill[26].What=1,Skill[26].Any=1;Skill[26].Anywhat[1]=2,Skill[26].Anykill[1]=10,Skill[26].Time[1]=2;Skill[26].color=8,Skill[26].Qi=0.8;
    str="神偷手";for(int i=0;i<strlen(str);i++)Skill[27].Name[i]=str[i];Skill[27].What=1,Skill[27].Any=1;Skill[27].Anywhat[1]=10,Skill[27].Anykill[1]=30,Skill[27].color=5,Skill[27].Qi=0;
    str="乱拳";for(int i=0;i<strlen(str);i++)Skill[28].Name[i]=str[i];Skill[28].Kill=10,Skill[28].What=1,Skill[28].Any=1,Skill[28].Anywhat[1]=4,Skill[28].Anykill[1]=60,Skill[28].color=1,Skill[28].Qi=1.3;
    str="喝酒";for(int i=0;i<strlen(str);i++)Skill[29].Name[i]=str[i];Skill[29].What=3,Skill[29].Any=1;Skill[29].Anywhat[1]=1,Skill[29].Anykill[1]=20;Skill[29].color=2,Skill[29].Qi=0.8;
    str="火箭炮";for(int i=0;i<strlen(str);i++)Skill[30].Name[i]=str[i];Skill[30].Kill=50,Skill[30].What=1,Skill[30].Any=1,Skill[30].Anywhat[1]=3,Skill[30].Anykill[1]=30;Skill[30].color=4,Skill[30].Qi=2;
    str="榴弹炮";for(int i=0;i<strlen(str);i++)Skill[31].Name[i]=str[i];Skill[31].Kill=40,Skill[31].What=2,Skill[31].Any=1,Skill[31].Anywhat[1]=3,Skill[31].Anykill[1]=30;Skill[31].color=7,Skill[31].Qi=3;
    str="激光炮";for(int i=0;i<strlen(str);i++)Skill[32].Name[i]=str[i];Skill[32].Kill=70,Skill[32].What=1,Skill[32].Any=0,Skill[32].color=5,Skill[32].Qi=3;
}
int main() {srand((unsigned)time(NULL));Start();while(1) Main(); return 0;}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值