魔兽世界

· · 个人记录

//转自:https://www.luogu.com.cn/team/32221#main
//收藏者的提示:本游戏用了thread导致c++5.11无法运行
#include <iostream>
#include <utility>
#include <thread>
#include <chrono>
#include <functional>
#include <atomic>
#include <string>
#include <windows.h>
#include <conio.h>
#include <fstream>
#include <ctime>
#include <map>
#include <climits>
#include <algorithm>
#include <stdio.h>
#include <vector>
#include <iomanip>
#include <cstring>
#include <queue>

using namespace std;
int experience, money, chapter = 0, level = 11, f = 1, slcoin = 0;
void color(short x) {
    if (x >= 0 && x <= 15)
    {
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), x);
    }
    else
    {
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
    }
}
struct CONSUMANLE
{
    string name;//使用品名
    string tell;//描述
    int plusHP;//装备增加生命
    bool plusMHP;//是否增加最大生命
    int plusMDG;//装备增加魔法攻击
    int plusPDG;//装备增加物理攻击
    int plusMDF;//装备增加魔法防御
    int plusPDF;//装备增加物理防御
    int plusCRI;//增加暴击概率
    int plusEXP;//增加经验
    int plusmoney;//增加金币
    int num;//数量
};
struct ADDTION
{
    int time;//加成时间
    string name;//加成名字
    int plusHP_A;//增加生命
    int PlusHealthPerRound;//回复生命(回合)
    bool plusMHP_A;//是否增加最大生命(回合)
    int plusMDG_A;//增加魔法攻击(回合)
    int plusPDG_A;//增加物理攻击(回合)
    int plusMDF_A;//增加魔法防御(回合)
    int plusPDF_A;//增加物理防御(回合)
};
struct WEAPON
{
    string name;//武器名
    string tell;//描述
    string type;//武器类型 剑 刀 鞭 杖 棍 盾 胸甲 裤腿 头盔 暗器 项链 靴子
    int plusHP;//装备增加生命
    bool plusMHP;//是否增加最大生命
    int plusMDG;//装备增加魔法攻击
    int plusPDG;//装备增加物理攻击
    int plusMDF;//装备增加魔法防御
    int plusPDF;//装备增加物理防御
    int plusCRI;//增加暴击概率

    ADDTION addtion[5];
    int color;
    string lv;
    int money;
    int level;
};
struct SKILL
{
    string name;//技能名
    string tell;//描述
    string attack;//攻击描述
    string useweapon;
    bool active;//是否主动
    int plusHP;//增加生命
    bool plusMHP;//是否增加最大生命
    int plusMDG;//增加魔法攻击
    int plusPDG;//增加物理攻击
    int plusMDF;//增加魔法防御
    int plusPDF;//增加物理防御
    int plusCRI;//增加暴击概率

    int damage;//每次攻击伤害
    int ignoreDF;//忽视防御(x%)
    int damagetime;//攻击次数
    ADDTION addtion[5];
    int cooldown;//冷却时间
    string EveryAttack[100];//每次攻击描述
    int color;
    int lv;
};
struct NPC
{
    string name;
    int HP;//生命
    int MHP;//最大生命
    int MDG;//魔法攻击
    int PDG;//物理攻击
    int MDF;//魔法防御
    int PDF;//物理防御
    int dodge;//躲避率
    int hit;//命中率
    int crit;//暴击率
    SKILL skills[10];//技能
    WEAPON weapon[10];//装备武器
    int DropMoney;//掉落金钱
    int DropExp;//掉落经验
    int lv;//等级
};
struct BOOK
{
    string name;//技能名
    string tell;//描述
    int color;
    int whichskill;
    int useexp;
};
SKILL allskills[100] = {
    {"烈焰拳","攻击300,附带灼烧,可以连续攻击三次","m一式9烈焰拳*,s拳头燃起火苗,s向e攻去。s","拳",true,0,false,0,0,0,0,0,300,0,3,{1,"烈焰之意",0,0,false,50,50,10,10,0},3,{"只见m左手一拳带着炎气飞快的向e飞去。s","m右手一拳由上至下挥动,s一股炎热之气直袭e。s","m左右手一拍,s四围霎时空气沸腾。s一把由炙热的气刃向e扫去。s"},9,1 },
    {"破碎虚空","攻击10000,可以连续攻击十次","4m*一招4破碎虚空*,s只听“嚓”的一声,se身边的空气接连被撕裂!s","拳",true,0,false,0,0,0,0,0,10000,0,3,{1,"破碎之神",0,0,false,100,100,100,100,100},10,{"“4破碎虚空!*”s","“4破碎虚空!*”s","“4破碎虚空!*”s","“4破碎虚空!*”s","“4破碎虚空!*”s","“4破碎虚空!*”s","“4破碎虚空!*”s","“4破碎虚空!*”s","“4破碎虚空!*”s","“4破碎虚空!*”s"},9,1 },
    {"山崩地裂","攻击5000,攻击一次","4m*双手一轮打在地面,s地瞬间就“砰”的一声裂了开来!s","拳",true,0,false,0,0,0,0,0,10000,0,3,{},1,{""},9,1 },
};
NPC allnpc[100];
//武器类型 剑 刀 鞭 杖 棍 头盔 胸甲 护腿 靴子 盾 护腕 手镯 项链 暗器
WEAPON allweapon[1000] = {
    {"长剑","这是一把破旧的长剑,似乎被用过很久,已经出现了磨损的痕迹","剑",0,false,0,10,0,0,5,{},16,"普通",10},
    {"精铁剑","精铁剑,这是一般剑客携带的剑,你拿着觉得很趁手","剑",0,false,0,30,0,0,10,{},3,"精制",10},
    {"破铁剑","你仔细观察,发现这把剑已经用了很久了,剑锋有点钝,还有几处缺口","剑",0,false,0,5,0,0,5,{},16,"破旧",10},
    {"试炼大剑","一把宽大的铁剑,剑身宽而厚,可以打出成吨的伤害。","剑",0,false,0,2500,0,0,10,{1000,"斗志昂然",0,10,false,10,10,10,10},6,"神级",1000,1},
    {"试炼法杖","这柄法杖是由圣木打造而成,无比坚硬,法杖顶端是一块蓝色菱形水晶。","杖",100,false,1000,0,0,0,15,{1000,"希望之光",0,100,false,0,0,0,0},6,"神级",1000,1},
    {"试炼头盔","由玄铁制,镶有龙鳞,防御力极高。","头盔",1000,true,0,0,0,200,0,{},6,"神级",1000,1},
    {"试炼战甲","由玄铁制,镶有龙鳞,防御力极高。","胸甲",10000,true,0,0,0,500,0,{},6,"神级",1000,1},
    {"试炼护腿","由玄铁制,镶有龙鳞,防御力极高。","护腿",3000,true,0,0,0,300,0,{},6,"神级",1000,1},
    {"试炼长靴","由玄铁制,镶有龙鳞,防御力极高。","靴子",1000,true,0,0,0,100,0,{},6,"神级",1000,1},
    {"试炼之盾","这是一副盾牌,椭圆形,由金刚石镶边,铁制","盾",0,false,0,0,0,100,0,{},6,"神级",1000,1},
    {"试炼护腕","这副护腕由龙皮制成,镶由龙麟,可以抗火,防御极高","护腕",1000,true,0,0,0,100,10,{1000,"不死神龙",0,10,false,0,0,10,10},6,"神级",1000,1},
    {"试炼手镯","一副精致的手镯,由钻石做的。","手镯",50,true,50,10,30,10,5,{},6,"神级",1000,1},
    {"试炼项链","项链是一个通红的龙眼和一条龙鳞制成的。好像有什么神秘的力量","项链",50,true,50,10,30,10,10,{10,"神龙啸天",0,10,false,20,10,20,10},6,"神级",1000,1},
};
CONSUMANLE allconsumanle[1000] = {
    {"小血瓶","使用后回复100滴血",100,0,0,0,0,0,0,0,0,1},
    {"中血瓶","使用后回复500滴血",500,0,0,0,0,0,0,0,0,1},
    {"大血瓶","使用后回复2500滴血",2500,0,0,0,0,0,0,0,0,1},
    {"小经验药水","使用后增加250点经验",0,0,0,0,0,0,0,250,0,1},
    {"中经验药水","使用后增加500点经验",0,0,0,0,0,0,0,500,0,1},
    {"大经验药水","使用后增加1000点经验",0,0,0,0,0,0,0,1000,0,1},
    {"试炼之石[一阶]","?",0,0,0,0,0,0,0,0,100,1},
    {"试炼之石[二阶]","??",0,0,0,0,0,0,0,0,500,1},
    {"试炼之石[三阶]","???",0,0,0,0,0,0,0,0,2500,1},
    {"试炼之石[四阶]","????",0,0,0,0,0,0,0,0,12500,1},
    {"试炼之石[五阶]","?????",0,0,0,0,0,0,0,0,62500,1},
    {"试炼之石[圣阶]","??????????",0,0,0,0,0,0,0,0,312500,1},
};
BOOK allbook[1000];
WEAPON valley[20] = {
    {"村里最好的剑","一把精致的铁剑,村长专门叫铁匠帮你打造的,剑身由玄铁造成,剑柄是恒木做的。","剑",0,false,0,20,0,0,5,{},2,"高级",50,1},
    {"村里最好的头盔","这是一副头盔,村长专门叫铁匠帮你打造的,纯铁制,有点重,但可以更好的防御伤害。","头盔",200,true,0,0,0,20,0,{},2,"高级",50,1},
    {"村里最好的胸甲","这是一副胸甲,村长专门叫铁匠帮你打造的,纯铁制,有点重,但可以更好的防御伤害。","胸甲",500,true,0,0,0,50,0,{},2,"高级",50,1},
    {"布衣","这是一件布衣","胸甲",10,true,0,0,0,1,0,{},16,"普通",25,1},
    {"村里最好的护腿","这是一副护腿,村长专门叫铁匠帮你打造的,纯铁制,有点重,但可以更好的防御伤害。","护腿",300,true,0,0,0,30,0,{},2,"高级",50,1},
    {"裤子","这是一件裤子","护腿",10,true,0,0,0,1,0,{},16,"普通",25,1},
    {"村里最好的靴子","这是一副靴子,村长专门叫铁匠帮你打造的,纯铁制,有点重,但可以更好的防御伤害。","靴子",100,true,0,0,0,10,0,{},2,"高级",50,1},
    {"村里最好的盾","这是一副盾牌,村长专门叫铁匠帮你打造的,主要木制,由玄铁镶边。","盾",0,false,0,0,0,100,0,{},2,"高级",50,1},
    {"村里最好的护腕","这是一副护腕,村长专门叫铁匠帮你打造的,纯铁制,有点重,但可以更好的防御伤害。","护腕",100,true,0,0,0,10,5,{},2,"高级",50,1},
    {"村长的白手镯","一副精致的手镯,村长亲自送给你的,由白玉做的。","手镯",50,true,50,10,30,10,5,{1000,"生命恢复",0,10,0,0,0,0,0},2,"高级",50,1},
    {"村长的项链","一副精致的项链,村长亲自送给你的,由蓝宝石做的。","项链",50,true,50,10,30,10,10,{},2,"高级",50,1},
    {"小石子","从地上捡到的小石子,能当暗器用","暗器",0,false,0,20,0,0,5,{},2,"高级",50,1},
};
WEAPON wbag[200] = {
    {"村里最好的剑","一把精致的铁剑,村长专门叫铁匠帮你打造的,剑身由玄铁造成,剑柄是恒木做的。","剑",0,false,0,20,0,0,5,{},2,"高级",50,1},
    {"村里最好的头盔","这是一副头盔,村长专门叫铁匠帮你打造的,纯铁制,有点重,但可以更好的防御伤害。","头盔",200,true,0,0,0,20,0,{},2,"高级",50,1},
    {"村里最好的胸甲","这是一副胸甲,村长专门叫铁匠帮你打造的,纯铁制,有点重,但可以更好的防御伤害。","胸甲",500,true,0,0,0,50,0,{},2,"高级",50,1},
    {"村里最好的护腿","这是一副护腿,村长专门叫铁匠帮你打造的,纯铁制,有点重,但可以更好的防御伤害。","护腿",300,true,0,0,0,30,0,{},2,"高级",50,1},
    {"村里最好的靴子","这是一副靴子,村长专门叫铁匠帮你打造的,纯铁制,有点重,但可以更好的防御伤害。","靴子",100,true,0,0,0,10,0,{},2,"高级",50,1},
    {"村里最好的盾","这是一副盾牌,村长专门叫铁匠帮你打造的,主要木制,由玄铁镶边。","盾",0,false,0,0,0,100,0,{},2,"高级",50,1},
    {"村里最好的护腕","这是一副护腕,村长专门叫铁匠帮你打造的,纯铁制,有点重,但可以更好的防御伤害。","护腕",100,true,0,0,0,10,5,{},2,"高级",50,1},
    {"村长的白手镯","一副精致的手镯,村长亲自送给你的,由白玉做的。","手镯",50,true,50,10,30,10,5,{1000,"生命恢复",0,10,0,0,0,0,0},2,"高级",50,1},
    {"村长的项链","一副精致的项链,村长亲自送给你的,由蓝宝石做的。","项链",50,true,50,10,30,10,10,{},2,"高级",50,1},
    {"小石子","从地上捡到的小石子,能当暗器用","暗器",0,false,0,20,0,0,5,{},2,"高级",50,1},
};
CONSUMANLE cbag[100] = {
    {"金币袋","这是临走前村长给你的,里面有100个金币",0,false,0,0,0,0,0,0,100,1},
};
BOOK bbag[100] = {
    {"烈焰拳秘籍","这是一本烈焰拳秘籍,是英雄村村长送给你的。里面记载了烈焰拳练习方法。",3,0,10}
};
NPC me = { "",1020,1020,10,50,5,27,1,100,1,{},{{},{},valley[3],valley[5]},0,0,1 };
string TYPE[10] = { "武器","头盔","胸甲","护腿","靴子","盾","护腕","手镯","项链","暗器" };
bool ok[1000];
NPC en[10];
NPC fr[10];
int ct(string str, NPC m, NPC e)
{
    for (int i = 0; i < str.size(); i++)
    {
        if (str[i] == 'e')
        {
            cout << e.name;
        }
        else if (str[i] >= '0' && str[i] <= '9')
        {
            color(str[i] - '0');
        }
        else if (str[i] == '*')
        {
            color(16);
        }
        else if (str[i] == 'm')
        {
            cout << m.name;
        }
        else if (str[i] == 'W')
        {
            cout << m.weapon[0].name;
        }
        else if (str[i] == 'w')
        {
            cout << e.weapon[0].name;
        }
        else if (str[i] == 's')
        {
            Sleep(500);
        }
        else
        {
            cout << str[i];
        }
    }
    cout << endl;
    return 0;
}
int fight(NPC F[10], NPC E[10], int enemynum)
{
    bool fdie[10] = { false,false,false,false,false,false,false,false,false,false };
    bool edie[10] = { false,false,false,false,false,false,false,false,false,false };
    ADDTION fadd[10][15] = {};
    ADDTION eadd[10][15] = {};
    ADDTION addt[15] = {};
    int addti = 0;
    int mcooldown[100] = { 0,0,0,0,0,0,0,0,0,0,0,0 };
    int ecooldown[10][100] = {};
    int fcooldown[10][100] = {};
    memset(mcooldown, 0, sizeof(mcooldown));
    memset(fcooldown, 0, sizeof(fcooldown));
    memset(ecooldown, 0, sizeof(ecooldown));
    for (int i = 0; i < 10; i++)
    {
        for (int j = 0; j < 5; j++)
        {
            if (me.weapon[i].addtion[j].name == "")
            {
                break;
            }
            addt[addti++] = me.weapon[i].addtion[j];
        }
    }
    while (1)
    {
        system("cls");
        cout << "生命:" << me.HP << "/" << me.MHP << endl;
        for (int i = 0; i < 10; i++)
        {
            if (F[i].name == "")
            {
                break;
            }
            cout << F[i].name << ":" << F[i].HP << "/" << F[i].MHP << endl;
        }
        //输出队友生命
        for (int i = 0; i < 10; i++)
        {
            if (addt[i].name != "")
            {
                if (addt[i].time <= 0)
                {
                    addt[i].name = "";
                }
                color(11);
                cout << addt[i].name;
                color(16);
                cout << "[" << addt[i].time << "]" << endl;
            }
        }
        //输出加成
        for (int i = 0; i < 10; i++)
        {
            if (addt[i].name != "")
            {
                color(4);
                cout << "效果" << addt[i].name << "加成成功!";
                color(16);
                me.HP += addt[i].PlusHealthPerRound;
                me.PDG += addt[i].plusPDG_A;
                me.PDF += addt[i].plusPDF_A;
                me.MDG += addt[i].plusMDG_A;
                me.MDF += addt[i].plusMDF_A;
                addt[i].time--;
                if (addt[i].time <= 0)
                {
                    addt[i].name = "";
                }
            }
        }
        color(4);
        cout << "请不要输错数字,如果输错,会无法继续玩,或者这轮没有攻击。" << endl;
        color(16);
        cout << "-1 物理攻击 " << me.PDG << "点伤害" << endl;
        cout << "-2 魔法攻击 " << me.MDG << "点伤害" << endl;
        for (int i = 0; i < 100; i++)
        {
            if (me.skills[i].name != "")
            {
                cout << i << ",";
                color(me.skills[i].color);
                cout << me.skills[i].name;
                color(16);
                cout << "[";
                if (mcooldown[i] > 0)
                {
                    color(4);
                }
                else
                {
                    color(10);
                }
                cout << mcooldown[i];
                color(16);
                cout << "] " << me.skills[i].tell << endl;
            }
            else
            {
                break;
            }
        }
        //输出技能
        for (int i = 0; i < 100; i++)
        {
            if (mcooldown[i] > 0)
            {
                mcooldown[i]--;
            }
        }
        for (int i = 0; i < 10; i++)
        {
            for (int j = 0; j < 100; j++)
            {
                if (ecooldown[i][j] > 0)
                {
                    ecooldown[i][j]--;
                }
            }
        }
        for (int i = 0; i < 10; i++)
        {
            for (int j = 0; j < 100; j++)
            {
                if (fcooldown[i][j] > 0)
                {
                    fcooldown[i][j]--;
                }
            }
        }
        //技能冷却
        int which;
        cin >> which;
        cout << "请选择攻击目标:" << endl;
        for (int i = 0; i < 10; i++)
        {
            if (E[i].name == "")
            {
                break;
            }
            else
            {
                cout << i << ",";
                if (edie[i])
                {
                    color(4);
                    cout << E[i].name << "[已阵亡]" << endl;
                }
                else
                {
                    color(10);
                    cout << E[i].name << "[未阵亡]" << endl;
                }
                color(16);
            }
        }
        //输出攻击目标
        int enemy;
        cin >> enemy;
        if (which == -1 || which == -2)
        {
            cout << me.name << "发起进攻,";
            int hurt;
            if (which == -1)
            {
                hurt = rand() % 41 - 20 + me.PDG - E[enemy].MDF;
            }
            else
            {
                hurt = rand() % 41 - 20 + me.MDG - E[enemy].MDF;
            }
            bool iscrit = rand() % 100 < me.crit;
            hurt += iscrit * hurt * 0.5;
            if (hurt < 0)
            {
                hurt = 0;
            }
            Sleep(500);
            cout << E[enemy].name << "受到";
            if (iscrit)
            {
                color(4);
                cout << hurt;
                color(16);
                cout << "点暴击伤害!" << endl;
            }
            else
            {
                cout << hurt << "点伤害!" << endl;
            }
            E[enemy].HP -= hurt;
            Sleep(500);
            if (E[enemy].HP <= 0)
            {
                cout << E[enemy].name << "阵亡!" << endl;
                edie[enemy] = true;
                Sleep(500);
            }
        }
        else if (which >= 0)
        {
            ct(me.skills[which].attack, me, E[enemy]);
            mcooldown[which] = me.skills[which].cooldown;
            for (int i = 0; i < 10; i++)
            {
                if (me.skills[which].addtion[i].name != "")
                {
                    for (int j = 0; j < 15; j++)
                    {
                        if (addt[j].name == "" || addt[j].name == me.skills[which].addtion[i].name)
                        {
                            addt[j] = me.skills[which].addtion[i];
                            break;
                        }
                    }
                }
                else
                {
                    break;
                }
            }
            //添加加成
            for (int i = 0; i < me.skills[which].damagetime; i++)
            {
                ct(me.skills[which].EveryAttack[i], me, E[enemy]);
                int hurt = rand() % 41 - 20 + me.skills[which].damage - E[enemy].MDF;
                bool iscrit = rand() % 100 < me.crit;
                hurt += iscrit * hurt * 0.5;
                if (hurt < 0)
                {
                    hurt = 0;
                }
                Sleep(500);
                cout << E[enemy].name << "受到";
                if (iscrit)
                {
                    color(4);
                    cout << hurt;
                    color(16);
                    cout << "点魔法暴击伤害!" << endl;
                }
                else
                {
                    cout << hurt << "点魔法伤害!" << endl;
                }
                E[enemy].HP -= hurt;
                Sleep(500);
                if (E[enemy].HP <= 0)
                {
                    cout << E[enemy].name << "阵亡!" << endl;
                    edie[enemy] = true;
                    Sleep(500);
                    break;
                }
            }
        }
        _getch();
        for (int i = 0; i < 10; i++)
        {
            if (F[i].name == "")
            {
                break;
            }
            if (!fdie[i])
            {
                for (enemy = 0; enemy < 10; enemy++)
                {
                    if (!edie[enemy] && E[i].name != "")
                    {
                        break;
                    }
                }
                //寻找敌人
                bool haveskill = false;
                for (int skill = 0; skill < 100; skill++)
                {
                    if (F[i].skills[skill].name != "" && fcooldown[i][skill] == 0)
                    {
                        haveskill = true;
                        ct(F[i].skills[skill].attack, F[i], E[enemy]);
                        fcooldown[i][which] = F[i].skills[which].cooldown;
                        for (int j = 0; j < 10; j++)
                        {
                            if (F[i].skills[skill].addtion[j].name != "")
                            {
                                for (int k = 0; k < 15; k++)
                                {
                                    if (fadd[i][k].name == "" || fadd[i][k].name == F[i].skills[skill].addtion[j].name)
                                    {
                                        fadd[i][k] = F[i].skills[skill].addtion[j];
                                        break;
                                    }
                                }
                            }
                            else
                            {
                                break;
                            }
                        }
                        //添加加成
                        for (int j = 0; j < F[i].skills[skill].damagetime; j++)
                        {
                            ct(F[i].skills[skill].EveryAttack[j], F[i], E[enemy]);
                            int hurt = rand() % 41 - 20 + F[i].skills[skill].damage - E[enemy].MDF;
                            bool iscrit = rand() % 100 < F[i].crit;
                            hurt += iscrit * hurt * 0.5;
                            if (hurt < 0)
                            {
                                hurt = 0;
                            }
                            Sleep(500);
                            cout << E[enemy].name << "受到";
                            if (iscrit)
                            {
                                color(4);
                                cout << hurt;
                                color(16);
                                cout << "点魔法暴击伤害!" << endl;
                            }
                            else
                            {
                                cout << hurt << "点魔法伤害!" << endl;
                            }
                            E[enemy].HP -= hurt;
                            Sleep(500);
                            if (E[enemy].HP <= 0)
                            {
                                cout << E[enemy].name << "阵亡!" << endl;
                                edie[enemy] = true;
                                Sleep(500);
                                break;
                            }
                        }
                        break;
                    }
                    else if (F[i].skills[skill].name == "")
                    {
                        break;
                    }
                }
                //是否有技能
                if (!haveskill)
                {
                    cout << F[i].name << "发起进攻,";
                    int hurt;
                    if (which == -1)
                    {
                        hurt = rand() % 41 - 20 + F[i].PDG - E[enemy].MDF;
                    }
                    else
                    {
                        hurt = rand() % 41 - 20 + F[i].MDG - E[enemy].MDF;
                    }
                    bool iscrit = rand() % 100 < F[i].crit;
                    hurt += iscrit * hurt * 0.5;
                    if (hurt < 0)
                    {
                        hurt = 0;
                    }
                    Sleep(500);
                    cout << E[enemy].name << "受到";
                    if (iscrit)
                    {
                        color(4);
                        cout << hurt;
                        color(16);
                        cout << "点暴击伤害!" << endl;
                    }
                    else
                    {
                        cout << hurt << "点伤害!" << endl;
                    }
                    E[enemy].HP -= hurt;
                    Sleep(500);
                    if (E[enemy].HP <= 0)
                    {
                        cout << E[enemy].name << "阵亡!" << endl;
                        edie[enemy] = true;
                        Sleep(500);
                        break;
                    }
                }
            }
        }
        //队友回合
        _getch();
        for (int i = 0; i < enemynum; i++)
        {
            if (!edie[i])
            {
                bool havefriend = false;
                for (enemy = 0; enemy < 10; enemy++)
                {
                    if (!fdie[enemy] && F[enemy].name != "")
                    {
                        havefriend = true;
                        break;
                    }
                }
                //寻找我方队友
                if (havefriend)
                {
                    bool haveskill = false;
                    for (int skill = 0; skill < 100; skill++)
                    {
                        if (E[i].skills[skill].name != "" && ecooldown[i][skill] == 0)
                        {
                            haveskill = true;
                            ct(E[i].skills[skill].attack, E[i], F[enemy]);
                            ecooldown[i][which] = E[i].skills[which].cooldown;
                            for (int j = 0; j < 10; j++)
                            {
                                if (E[i].skills[skill].addtion[j].name != "")
                                {
                                    for (int k = 0; k < 15; k++)
                                    {
                                        if (eadd[i][k].name == "" || eadd[i][k].name == E[i].skills[skill].addtion[j].name)
                                        {
                                            eadd[i][k] = E[i].skills[skill].addtion[j];
                                            break;
                                        }
                                    }
                                }
                                else
                                {
                                    break;
                                }
                            }
                            //添加加成
                            for (int j = 0; j < E[i].skills[skill].damagetime; j++)
                            {
                                ct(E[i].skills[skill].EveryAttack[j], E[i], F[enemy]);
                                int hurt = rand() % 41 - 20 + E[i].skills[skill].damage - F[enemy].MDF;
                                bool iscrit = rand() % 100 < E[i].crit;
                                hurt += iscrit * hurt * 0.5;
                                if (hurt < 0)
                                {
                                    hurt = 0;
                                }
                                Sleep(500);
                                cout << F[enemy].name << "受到";
                                if (iscrit)
                                {
                                    color(4);
                                    cout << hurt;
                                    color(16);
                                    cout << "点魔法暴击伤害!" << endl;
                                }
                                else
                                {
                                    cout << hurt << "点魔法伤害!" << endl;
                                }
                                F[enemy].HP -= hurt;
                                Sleep(500);
                                if (F[enemy].HP <= 0)
                                {
                                    cout << F[enemy].name << "阵亡!" << endl;
                                    fdie[enemy] = true;
                                    Sleep(500);
                                    break;
                                }
                            }
                            break;
                        }
                        else if (E[i].skills[skill].name == "")
                        {
                            break;
                        }
                    }
                    //是否有技能
                    if (!haveskill)
                    {
                        cout << E[i].name << "发起进攻,";
                        int hurt;
                        if (which == -1)
                        {
                            hurt = rand() % 41 - 20 + E[i].PDG - F[enemy].MDF;
                        }
                        else
                        {
                            hurt = rand() % 41 - 20 + E[i].MDG - F[enemy].MDF;
                        }
                        bool iscrit = rand() % 100 < E[i].crit;
                        hurt += iscrit * hurt * 0.5;
                        if (hurt < 0)
                        {
                            hurt = 0;
                        }
                        Sleep(500);
                        cout << F[enemy].name << "受到";
                        if (iscrit)
                        {
                            color(4);
                            cout << hurt;
                            color(16);
                            cout << "点暴击伤害!" << endl;
                        }
                        else
                        {
                            cout << hurt << "点伤害!" << endl;
                        }
                        F[enemy].HP -= hurt;
                        Sleep(500);
                        if (F[enemy].HP <= 0)
                        {
                            cout << F[enemy].name << "阵亡!" << endl;
                            fdie[enemy] = true;
                            Sleep(500);
                            break;
                        }
                    }
                }
                else
                {
                    bool haveskill = false;
                    for (int skill = 0; skill < 100; skill++)
                    {
                        if (E[i].skills[skill].name != "" && ecooldown[i][skill] == 0)
                        {
                            haveskill = true;
                            ct(E[i].skills[skill].attack, E[i], me);
                            ecooldown[i][which] = E[i].skills[which].cooldown;
                            for (int j = 0; j < 10; j++)
                            {
                                if (E[i].skills[skill].addtion[j].name != "")
                                {
                                    for (int k = 0; k < 15; k++)
                                    {
                                        if (eadd[i][k].name == "" || eadd[i][k].name == E[i].skills[skill].addtion[j].name)
                                        {
                                            eadd[i][k] = E[i].skills[skill].addtion[j];
                                            break;
                                        }
                                    }
                                }
                                else
                                {
                                    break;
                                }
                            }
                            //添加加成
                            for (int j = 0; j < E[i].skills[skill].damagetime; j++)
                            {
                                ct(E[i].skills[skill].EveryAttack[j], E[i], me);
                                int hurt = rand() % 41 - 20 + E[i].skills[skill].damage - me.MDF;
                                bool iscrit = rand() % 100 < E[i].crit;
                                hurt += iscrit * hurt * 0.5;
                                Sleep(500);
                                if (hurt < 0)
                                {
                                    hurt = 0;
                                }
                                cout << me.name << "受到";
                                if (iscrit)
                                {
                                    color(4);
                                    cout << hurt;
                                    color(16);
                                    cout << "点魔法暴击伤害!" << endl;
                                }
                                else
                                {
                                    cout << hurt << "点魔法伤害!" << endl;
                                }
                                me.HP -= hurt;
                                Sleep(500);
                                if (me.HP <= 0)
                                {
                                    cout << me.name << "阵亡!" << endl;
                                    cout << "幸好援军及时赶来,你在援军的帮助下终于逃离了" << E[i].name << "的魔爪" << endl;
                                    _getch();
                                    return 0;
                                }
                            }
                            break;
                        }
                        else if (E[i].skills[skill].name == "")
                        {
                            break;
                        }
                    }
                    //是否有技能
                    if (!haveskill)
                    {
                        cout << E[i].name << "发起进攻,";
                        int hurt;
                        if (which == -1)
                        {
                            hurt = rand() % 41 - 20 + E[i].PDG - me.MDF;
                        }
                        else
                        {
                            hurt = rand() % 41 - 20 + E[i].MDG - me.MDF;
                        }
                        bool iscrit = rand() % 100 < E[i].crit;
                        hurt += iscrit * hurt * 0.5;
                        if (hurt < 0)
                        {
                            hurt = 0;
                        }
                        Sleep(500);
                        cout << me.name << "受到";
                        if (iscrit)
                        {
                            color(4);
                            cout << hurt;
                            color(16);
                            cout << "点暴击伤害!" << endl;
                        }
                        else
                        {
                            cout << hurt << "点伤害!" << endl;
                        }
                        me.HP -= hurt;
                        Sleep(500);
                        if (me.HP <= 0)
                        {
                            cout << me.name << "阵亡!" << endl;
                            cout << "幸好援军及时赶来,你在援军的帮助下终于逃离了" << E[i].name << "的魔爪" << endl;
                            _getch();
                            return 0;
                        }
                    }
                }
            }
        }
        //敌人回合
        _getch();
        bool nodie = false;
        for (int i = 0; i < enemynum; i++)
        {
            if (!edie[i])
            {
                nodie = true;
                break;
            }
        }
        if (!nodie)
        {
            return 1;
        }
    }
    return 0;
};
int chapterstory()
{
    if (chapter == 0)
    {
        cout << "--------------第一章:幽冥之林--------------" << endl;
        Sleep(1000);
        cout << "(悬崖上)" << endl;
        Sleep(1000);
        cout << "你:魔王!你今天跑不掉了(拔剑)" << endl;
        Sleep(2000);
        cout << "那位黑衣人并不慌张,黑袍在空中飘舞" << endl;
        Sleep(3000);
        cout << "“熔岩弹!”" << endl;
        cout << "三颗火球从黑衣人的衣袖里射了出来,他竟然使暗器!" << endl;
        Sleep(3000);
        cout << "你往旁一跳,险险地躲了过去,三个火球打在石壁上,炸了开来。" << endl;
        Sleep(3000);
        cout << "“活闪步!”“狂风拳!”" << endl;
        cout << "你刚回过神,黑衣人就闪了过来,一拳带着狂风横扫过来!" << endl;
        Sleep(3000);
        cout << "你躲闪不急,正好被打在胸脯。像一捆稻草一样飞了出去。" << endl;
        Sleep(2000);
        cout << "黑衣人看你中了这招,见大部队赶了过来,便纵身一跃,逃跑了。" << endl;
        Sleep(3000);
        cout << "大部队把你送了回了村落,经过半个月的医疗和养伤,你恢复了体质。" << endl;
        Sleep(3000);
        cout << "但是,你的脑袋撞到了石壁,失去了一些记忆。" << endl;
        cout << "名字:";
        cin >> me.name;
        cout << "村长:你的武器和盔甲都丢了,哎,战争... 这里,是英雄村,你就是在这出身的。" << endl;
        Sleep(3000);
        cout << "村长:你可能不记得了,算了,拿去,这是我让铁匠精心为你打造的一副铠甲。好好利用。还有一本武功秘籍:烈焰拳" << endl;
        Sleep(3000);
        cout << "村长:对了,你是被魔王的狂风拳打中的。撞到了墙,丧失了记忆..." << endl;
        Sleep(3000);
        cout << "村长:还有,这是100金币,给你当路费,你去暗影村吧,那里的十神王之一——暗夜影王" << endl;
        Sleep(3000);
        cout << "村长:他会引导你成为武功高手。记住,这里通往暗影村需要通过幽冥之林,里面有许多机关和魔兽,要小心!" << endl;
        Sleep(3000);
        cout << "你:谢谢村长,我一定照办。" << endl;
        system("pause");
        system("cls");
        chapter = 1;
    }
    else
    {

    }
    return 0;
}
int chapterfight()
{
    system("cls");
    if (chapter == 1 && level == 1)
    {
        Sleep(1000);
        cout << "你:既然这样,那我先走了啊。" << endl;
        Sleep(1000);
        cout << "村长:我送你一段距离吧。" << endl;
        Sleep(1000);
        cout << "你:感谢村长。" << endl;
        Sleep(2000);
        cout << "你和村长刚进入森林不久,就发现两只粉色的东西一蹦一跳的向你跳来。" << endl;
        Sleep(2000);
        cout << "你想这些东西好可爱,便伸手去摸" << endl;
        Sleep(500);
        cout << "结果一股电流传遍你全身,这怪物会攻击人!" << endl;
        _getch();
        fr[0] = { "村长",10000,10000,1000,1000,100,100,10,10,100,{allskills[1]},{},0,0,1 };
        en[0] = en[1] = en[2] = { "粉红史莱姆",1000,1000,0,100,5,10,10,10,10,{},{},0,0,1 };
        if (fight(fr, en, 3))
        {
            level++;
            experience += 200;
        }
    }
    else if (chapter == 1 && level == 2)
    {
        Sleep(1000);
        cout << "你:这森林里真的是危机重重啊" << endl;
        Sleep(1000);
        cout << "村长一把拦住你:小心脚下!" << endl;
        Sleep(1000);
        cout << "你赶快把脚收回。发现脚下竟然有一个头颅" << endl;
        Sleep(1000);
        cout << "那头颅突然跳了起来,和旁边的白骨组合成一个骷髅!" << endl;
        Sleep(1000);
        cout << "往旁边一看,几个骷髅已经爬了过来。" << endl;
        Sleep(1000);
        cout << "村长:杀!冲出包围圈!" << endl;
        _getch();
        en[0] = { "骷髅",2000,2000,0,150,5,10,10,10,10,{},{allweapon[2]},0,0,1 };
        en[1] = { "骷髅",2000,2000,0,150,5,10,10,10,10,{},{allweapon[2]},0,0,1 };
        en[2] = { "骷髅", 2000, 2000, 0, 150, 5, 10, 10, 10, 10, {}, { allweapon[2] }, 0, 0, 1 };
        en[3] = { "骷髅", 2000, 2000, 0, 150, 5, 10, 10, 10, 10, {}, { allweapon[2] }, 0, 0, 1 };
        en[4] = { "骷髅", 2000, 2000, 0, 150, 5, 10, 10, 10, 10, {}, { allweapon[2] }, 0, 0, 1 };
        en[5] = { "骷髅", 2000, 2000, 0, 150, 5, 10, 10, 10, 10, {}, { allweapon[2] }, 0, 0, 1 };
        en[6] = { "骷髅", 2000, 2000, 0, 150, 5, 10, 10, 10, 10, {}, { allweapon[2] }, 0, 0, 1 };
        en[7] = { "骷髅", 2000, 2000, 0, 150, 5, 10, 10, 10, 10, {}, { allweapon[2] }, 0, 0, 1 };
        en[8] = { "骷髅", 2000, 2000, 0, 150, 5, 10, 10, 10, 10, {}, { allweapon[2] }, 0, 0, 1 };
        en[9] = { "骷髅", 2000, 2000, 0, 150, 5, 10, 10, 10, 10, {}, { allweapon[2] }, 0, 0, 1 };
        fr[0] = { "村长",10000,10000,1000,1000,100,100,10,10,100,{allskills[1]},{},0,0,1 };
        if (fight(fr, en, 10))
        {
            level++;
            experience += 300;
        }
    }
    else if (chapter == 1 && level == 3)
    {
        Sleep(1000);
        cout << "你和村长走着走着,突然发现前面有个洞穴。" << endl;
        Sleep(1000);
        cout << "村长:这...我竟然没有见过!" << endl;
        Sleep(1000);
        cout << "你:进去看看呗,应该有些宝藏。" << endl;
        Sleep(1000);
        cout << "村长:额...好吧。" << endl;
        Sleep(1000);
        cout << "你们走进了洞穴去。" << endl;
        Sleep(1000);
        cout << "村长:这竟然有个巨型僵尸!" << endl;
        Sleep(1000);
        cout << "巨型僵尸:竟敢打扰本王休息!" << endl;
        Sleep(1000);
        cout << "村长:这僵尸强大了不少!" << endl;
        Sleep(1000);
        cout << "村长动用内力,“虚空之力!”一声,村长眼睛瞬间变得通红!" << endl;
        _getch();
        en[0] = { "巨型僵尸",100000,100000,500,500,0,10,20,10,10,{allskills[2]},{allweapon[2]},0,0,1 };
        en[1] = {};
        en[2] = {};
        en[3] = {};
        en[4] = {};
        en[5] = {};
        en[6] = {};
        en[7] = {};
        en[8] = {};
        en[9] = {};
        fr[0] = { "村长",20000,20000,2000,2000,200,200,10,10,100,{allskills[1]},{},0,0,1 };
        if (fight(fr, en, 1))
        {
            level++;
            experience += 500;
        }
    }
    return 0;
}
int cweapon(WEAPON weapon)
{
    color(weapon.color);
    cout << weapon.name;
    color(16);
    cout << "[lv." << weapon.level << "]" << endl;
    cout << "  物理伤害:" << weapon.plusPDG << endl;
    cout << "  魔法伤害:" << weapon.plusMDG << endl;
    cout << "  附加生命:" << weapon.plusHP << endl;
    cout << "  物理防御:" << weapon.plusPDF << endl;
    cout << "  魔法防御:" << weapon.plusMDF << endl;
    cout << "  加成:" << endl;
    if (weapon.addtion[0].name == "")
    {
        cout << "    无" << endl;
        return 0;
    }
    for (int i = 0; i < 100; i++)
    {
        if (weapon.addtion[i].name == "")
        {
            break;
        }
        else
        {
            cout << "    " << weapon.addtion[i].name << endl;
        }
    }
    return 0;
}
int lvup()
{
    bool upgrade = false;
    while (experience > me.lv * 100)
    {
        if (experience > me.lv * 100)
        {
            upgrade = true;
            experience -= me.lv * 100;
            me.lv++;
            cout << "升至" << me.lv << "级!" << endl;
        }
    }
    if (upgrade)
    {
        _getch();
    }
    return 0;
}
int buy(int money, string type, int num)
{
    if (slcoin < money)
    {
        cout << "试炼币不足..." << endl;
        return 0;
    }
    else
    {
        slcoin -= money;
        if (type == "WEAPON")
        {
            for (int i = 0; i <= 1000; i++)
            {
                if (wbag[i].name == "")
                {
                    wbag[i] = allweapon[num];
                    break;
                }
            }
            cout << "成功购买";
            color(allweapon[num].color);
            cout << allweapon[num].name << endl;
            color(16);
            cout << "剩余" << slcoin << "试炼币" << endl;
        }
        else if (type == "BOOK")
        {
            for (int i = 0; i <= 1000; i++)
            {
                if (bbag[i].name == "")
                {
                    bbag[i] = allbook[num];
                    break;
                }
            }
            cout << "成功购买";
            color(allbook[num].color);
            cout << allbook[num].name << endl;
            color(16);
            cout << "剩余" << slcoin << "试炼币" << endl;
        }
        else if (type == "CONSUMANLE")
        {
            for (int i = 0; i <= 1000; i++)
            {
                if (cbag[i].name == "")
                {
                    cbag[i] = allconsumanle[num];
                    break;
                }
            }
            cout << "成功购买" << allconsumanle[num].name << endl;
            cout << "剩余" << slcoin << "试炼币" << endl;
        }
    }
    return 0;
}
int main()
{
    srand((unsigned)time(NULL));
    while (1)
    {
        lvup();
        system("cls");
        if (level > 10)
        {
            chapterstory();
            level = 1;
        }
        cout << "1.挑战Boss(" << chapter << "-" << level << ") 2.装备 3.背包 4.技能 5.试炼场(" << f << "层)" << endl;
        string which;
        cin >> which;
        if (which == "1")
        {
            chapterfight();
        }
        else if (which == "2")
        {
            cout << "0装备武器:";
            if (me.weapon[0].name == "")
            {
                cout << "未装备" << endl;
            }
            else
            {
                cweapon(me.weapon[0]);
            }
            cout << "1装备头盔:";
            if (me.weapon[1].name == "")
            {
                cout << "未装备" << endl;
            }
            else
            {
                cweapon(me.weapon[1]);
            }
            cout << "2装备胸甲:";
            if (me.weapon[2].name == "")
            {
                cout << "未装备" << endl;
            }
            else
            {
                cweapon(me.weapon[2]);
            }
            cout << "3装备护腿:";
            if (me.weapon[3].name == "")
            {
                cout << "未装备" << endl;
            }
            else
            {
                cweapon(me.weapon[3]);
            }
            cout << "4装备靴子:";
            if (me.weapon[4].name == "")
            {
                cout << "未装备" << endl;
            }
            else
            {
                cweapon(me.weapon[4]);
            }
            cout << "5装备盾:";
            if (me.weapon[5].name == "")
            {
                cout << "未装备" << endl;
            }
            else
            {
                cweapon(me.weapon[5]);
            }
            cout << "6装备护腕:";
            if (me.weapon[6].name == "")
            {
                cout << "未装备" << endl;
            }
            else
            {
                cweapon(me.weapon[6]);
            }
            cout << "7装备手镯:";
            if (me.weapon[7].name == "")
            {
                cout << "未装备" << endl;
            }
            else
            {
                cweapon(me.weapon[7]);
            }
            cout << "8装备项链:";
            if (me.weapon[8].name == "")
            {
                cout << "未装备" << endl;
            }
            else
            {
                cweapon(me.weapon[8]);
            }
            cout << "9装备暗器:";
            if (me.weapon[9].name == "")
            {
                cout << "未装备" << endl;
            }
            else
            {
                cweapon(me.weapon[9]);
            }
            cout << "请输入要更换的装备,没有输入-1" << endl;
            int which2;
            cin >> which2;
            if (which2 != -1)
            {
                cout << "现有装备:" << endl;
                for (int i = 0; i < 200; i++)
                {
                    if (wbag[i].name == "")
                    {
                        break;
                    }
                    else if (wbag[i].type == TYPE[which2])
                    {
                        cout << i << ", ";
                        color(wbag[i].color);
                        cout << wbag[i].name << endl;
                        color(16);
                    }
                    else if (TYPE[which2] == "武器" && (wbag[i].type == "剑" || wbag[i].type == "刀" || wbag[i].type == "鞭" || wbag[i].type == "杖" || wbag[i].type == "棍"))
                    {
                        cout << i << ", ";
                        color(wbag[i].color);
                        cout << wbag[i].name << endl;
                        color(16);
                    }
                }
                cout << "输入编号" << endl;
                int which3;
                cin >> which3;
                me.HP -= me.weapon[which2].plusHP;
                if (me.weapon[which2].plusMHP)
                {
                    me.MHP -= me.weapon[which2].plusHP;
                }
                me.MDF -= me.weapon[which2].plusMDF;
                me.MDG -= me.weapon[which2].plusMDG;
                me.PDF -= me.weapon[which2].plusPDF;
                me.PDG -= me.weapon[which2].plusPDG;
                me.crit -= me.weapon[which2].plusCRI;
                me.HP += wbag[which3].plusHP;
                if (wbag[which3].plusMHP)
                {
                    me.MHP += wbag[which3].plusHP;
                }
                me.MDF += wbag[which3].plusMDF;
                me.MDG += wbag[which3].plusMDG;
                me.PDF += wbag[which3].plusPDF;
                me.PDG += wbag[which3].plusPDG;
                me.crit += wbag[which3].plusCRI;
                me.weapon[which2] = wbag[which3];
            }
        }
        else if (which == "3")
        {
            cout << me.name << "[" << me.lv << "]";
            cout << "生命:" << me.HP << "/" << me.MHP << endl;
            cout << "物理攻击:" << me.PDG << endl;
            cout << "魔法攻击:" << me.MDG << endl;
            cout << "物理防御:" << me.PDF << endl;
            cout << "魔法防御:" << me.MDF << endl;
            cout << "暴击率:" << me.crit << "%" << endl;
            cout << "命中率:" << me.hit << "%" << endl;
            cout << "躲避率:" << me.dodge << "%" << endl;
            cout << "金币:" << money << endl;
            cout << "经验:" << experience << "/" << me.lv * 100 << endl << endl;
            for (int i = 0; i < 100; i++)
            {
                if (cbag[i].name == "")
                {
                    break;
                }
                cout << i << "," << cbag[i].name << cbag[i].num << ": " << cbag[i].tell << endl;
                cout << "  回血:" << cbag[i].plusHP;
                cout << "  金币:" << cbag[i].plusmoney;
                cout << "  经验:" << cbag[i].plusEXP << endl;
                cout << "  暴击率:" << cbag[i].plusCRI;
                cout << "  魔法攻击:" << cbag[i].plusMDG;
                cout << "  魔法防御:" << cbag[i].plusMDF << endl;
                cout << "  物理攻击:" << cbag[i].plusPDG;
                cout << "  物理防御:" << cbag[i].plusPDF << endl;
            }
            cout << "输入要使用的东西(退出-1)" << endl;
            int which2;
            cin >> which2;
            if (which2 != -1)
            {
                cout << "请输入要使用的量(";
                color(2);
                cout << cbag[which2].num;
                color(16);
                cout << "):" << endl;
                int which3;
                cin >> which3;
                if (which3 > cbag[which2].num || which3 < 0)
                {
                    color(4);
                    cout << "自动帮你调整至最大值。" << endl;
                    color(16);
                    which3 = cbag[which2].num;
                }
                cbag[which2].num -= which3;
                me.HP += cbag[which2].plusHP;
                if (cbag[which2].plusMHP)
                {
                    me.MHP += cbag[which2].plusHP;
                }
                money += cbag[which2].plusmoney;
                experience += cbag[which2].plusEXP;
                me.MDF += cbag[which2].plusMDF * which3;
                me.MDG += cbag[which2].plusMDG * which3;
                me.PDG += cbag[which2].plusPDG * which3;
                me.PDF += cbag[which2].plusPDF * which3;
                me.crit += cbag[which2].plusCRI * which3;
                cout << "使用成功" << endl;
                _getch();
            }
        }
        else if (which == "4")
        {
            cout << "已学技能:" << endl;
            for (int i = 0; i < 100; i++)
            {
                if (me.skills[i].name == "")
                {
                    break;
                }
                else
                {
                    color(me.skills[i].color);
                    cout << me.skills[i].name;
                    color(16);
                    cout << "[lv." << me.skills[i].lv << "]" << endl;
                    cout << "  " << me.skills[i].tell << endl;
                }
            }
            _getch();
            system("cls");
            for (int i = 0; i < 100; i++)
            {
                if (bbag[i].name == "")
                {
                    break;
                }
                cout << i << ",";
                color(bbag[i].color);
                cout << bbag[i].name;
                color(16);
                cout << "[" << bbag[i].useexp << "] " << bbag[i].tell << endl;
            }
            cout << "请输入学习书本编号:" << endl;
            int which2;
            cin >> which2;
            if (experience >= bbag[which2].useexp)
            {
                experience -= bbag[which2].useexp;
                color(4);
                cout << "学习成功!" << endl;
                color(16);
                cout << "消耗" << bbag[which2].useexp << "点经验!" << endl;
                cout << "剩余" << experience << "点经验!" << endl;
                _getch();
                for (int i = 0; i < 100; i++)
                {
                    if (me.skills[i].name == allskills[bbag[which2].whichskill].name)
                    {
                        me.skills[i].lv++;
                        break;
                    }
                    if (me.skills[i].name == "")
                    {
                        me.skills[i] = allskills[bbag[which2].whichskill];
                        break;
                    }
                }
            }
            else
            {
                color(4);
                cout << "你不够经验..." << endl;
                color(16);
            }
        }
        else if (which == "5")
        {
            cout << "欢迎来到试炼场。" << endl;
            cout << "剩余试炼币:" << slcoin << endl;
            cout << "1,试炼之谷 2,试炼商店";
            if (ok[0])
            {
                cout << " 3,神龙秘境";
            }
            cout << endl;
            int which2;
            cin >> which2;
            if (which2 == 1)
            {
                cout << "暂未开放..." << endl;
            }
            else if (which2 == 2)
            {
                cout << "//0---------------------------------0\\\\" << endl;
                cout << "|01.小血瓶(100)-------------------100$|" << endl;
                cout << "|02.中血瓶(500)-------------------450$|" << endl;
                cout << "|03.大血瓶(2500)-----------------2030$|" << endl;
                cout << "|04.小经验药水(250)---------------500$|" << endl;
                cout << "|05.中经验药水(500)---------------900$|" << endl;
                cout << "|06.大经验药水(1000)-------------1700$|" << endl;
                cout << "|07.试炼大剑--------------------10000$|" << endl;
                cout << "|08.试炼法杖--------------------12000$|" << endl;
                cout << "|09.试炼圣盾---------------------9000$|" << endl;
                cout << "|10.试炼之盔---------------------8000$|" << endl;
                cout << "|11.试炼战甲--------------------20000$|" << endl;
                cout << "|12.试炼护腿--------------------13500$|" << endl;
                cout << "|13.试炼长靴---------------------9500$|" << endl;
                cout << "|14.试炼项链--------------------10000$|" << endl;
                cout << "|15.试炼手镯--------------------10000$|" << endl;
                cout << "|16.试炼护腕--------------------10000$|" << endl;
                cout << "|17.试炼之石[一阶]----------------100$|" << endl;
                cout << "|18.试炼之石[二阶]----------------500$|" << endl;
                cout << "|19.试炼之石[三阶]---------------2500$|" << endl;
                cout << "|20.试炼之石[四阶]--------------12500$|" << endl;
                cout << "|21.试炼之石[五阶]--------------62500$|" << endl;
                cout << "|22.试炼之石[圣阶]-------------312500$|" << endl;
                cout << "|23.圣羽剑----------------------12000$|" << endl;
                cout << "|24.黑魔剑----------------------15000$|" << endl;
                cout << "|25.横天棍----------------------11000$|" << endl;
                cout << "|26.打狗棍----------------------20000$|" << endl;
                cout << "|27.夺魂刀----------------------15000$|" << endl;
                cout << "|28.斩妖刀----------------------20000$|" << endl;
                cout << "|29.烈焰之杖--------------------15000$|" << endl;
                cout << "|30.冰冻之杖--------------------15000$|" << endl;
                cout << "\\\\0---------------------------------0//" << endl;
                cout << "请输入要购买的编号" << endl;
                int which3;
                cin >> which3;
                switch (which3)
                {
                case 1:
                    buy(100, "CONSUMANLE", 0);
                    break;
                case 2:
                    buy(450, "CONSUMANLE", 1);
                    break;
                case 3:
                    buy(2030, "CONSUMANLE", 2);
                    break;
                case 4:
                    buy(500, "CONSUMANLE", 3);
                    break;
                case 5:
                    buy(900, "CONSUMANLE", 4);
                    break;
                case 6:
                    buy(1700, "CONSUMANLE", 5);
                    break;
                case 7:
                    buy(10000, "WEAPON", 3);
                    break;
                case 8:
                    buy(12000, "WEAPON", 3);
                    break;
                case 9:
                    buy(9000, "WEAPON", 3);
                    break;
                case 10:
                    buy(8000, "WEAPON", 3);
                    break;
                case 11:
                    buy(20000, "WEAPON", 3);
                    break;
                case 12:
                    buy(12000, "WEAPON", 3);
                    break;
                default:
                    break;
                }
            }
            else if (which2 == 3)
            {

            }
        }
        else
        {
            cout << "请勿乱输!" << endl;
            Sleep(1000);
        }
    }
    return 0;
};
/*
0 黑色    8 灰色
1 蓝色    9 淡蓝色
2 绿色    10 淡绿色
3 湖蓝色  11 淡浅绿色
4 红色    12 淡红色
5 紫色    13 淡紫色
6 黄色    14 淡黄色
7 白色    15 亮白色
*/