Minecraft.cpp 1.13 demo

· · 个人记录

Alright,this game is still updating!

祝你好运,玩的开心!

GoodLuck & HaveFun!

关于此版本的更新内容,详见更新日志

感谢仍然记得、关注、支持此游戏的所有人

 #include <bits/stdc++.h>
#include <windows.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
#define getch() _getch()//emmmm
using namespace std;
string name,Place="村庄";//玩家名字,玩家地点 
//村庄 平原 森林 洞穴 沙漠 从林 雪地 地狱 末地 
//边境之地 
int MaxHealth=20,Health=20; //血量 
int basicmagic=10,Magic=10,MaxMagic=basicmagic; //魔力 
int basicattack=2,Attack=basicattack,Attack2=basicattack;//基础攻击 实际攻击 远程攻击 
int Defense=0;//防御 
int Money=0,Experience=0,Level=1;//经验 等级 
int basicspeed=2,Speed=basicspeed;//玩家基础数据
int basic_critical_rate=2,critical_rate=2;//暴击率 
int xp_orb=0; //压缩经验球 
int weapon1=0,weapon2=0,tool1=0,tool2=0,attackdis1=2,attackdis2=8;//武器,工具 
int armor1=0,armor2=0,armor3=0,armor4=0; //头盔 胸甲 护腿 靴子 
int Enchant=0;
string weapon1name[50]={"空手",
"木剑","石剑","金剑","铁剑","钻石剑","下界合金剑","流浪者之利剑","远古之剑","源古剑","寒冰剑",
"寒霜剑","沙尘剑","沙暴剑","熔火剑","终末之剑"}; 
int weapon1attack[50]={0,
4,5,4,6,7,8,7,9,0,9,//10
0,9,0,9,10};
string weapon2name[50]=  {"无","护盾","弓","","狙击者·弓","","沙暴弓","","熔火弓"}; 
int weapon2attack[50]=   {0   ,0     ,4   ,0 ,6        ,0 ,8       ,0 ,6};
int weapon2attackdis[50]={0   ,0     ,8   ,0 ,10          ,0 ,9    ,0 ,8};
int arrow[50]={0,0};//箭矢 
string arrowname[50]={"","箭"};//箭矢名 
string tool1name[50]={"无",
"木斧","石斧","金斧","铁斧","钻石斧","下界合金斧","流浪者之重斧","远古之斧","源古斧","寒冰斧",
"寒霜斧","沙尘斧","沙暴斧","熔火斧","终末斧"}; 
int tool1speed[50]={12,
20,25,60,40,46,58,42,60,0,60,
0,60,0,80,90};
string tool2name[50]={"无",
"木稿","石稿","金稿","铁稿","钻石稿","下界合金稿","流浪者之钝稿","远古之稿","源古稿","寒冰稿",
"寒霜稿","沙尘稿","沙暴稿","熔火稿","终末稿"}; 
int tool2speed[50]={0,
30,36,70,48,56,65,36,68,0,68,
0,68,0,90,100};
string armor1name[50]={"无",
"皮革头盔","锁链头盔","金头盔","铁头盔","钻石头盔","下界合金头盔","流浪者之旅帽","远古头盔","源古头盔","寒冰头盔",
"寒霜头盔","沙尘头盔","沙暴头盔","熔火头盔","终末头盔"};
string armor2name[50]={"无",
"皮革胸甲","锁链胸甲","金胸甲","铁胸甲","钻石胸甲","下界合金胸甲","流浪者之外甲","远古胸甲","源古胸甲","寒冰胸甲",
"寒霜胸甲","沙尘胸甲","沙暴胸甲","熔火胸甲","终末胸甲"};
string armor3name[50]={"无",
"皮革护腿","锁链护腿","金护腿","铁护腿","钻石护腿","下界合金护腿","流浪者之护腿","远古护腿","源古护腿","寒冰护腿",
"寒霜护腿","沙尘护腿","沙暴护腿","熔火护腿","终末护腿"};
string armor4name[50]={"无",
"皮革靴子","锁链靴子","金靴子","铁靴子","钻石靴子","下界合金靴子","流浪者之护履","远古靴子","源古靴子","寒冰靴子",
"寒霜靴子","沙尘靴子","沙暴靴子","熔火靴子","终末靴子"};
int armor1defense[50]={0,
2,3,2,4,4,5,4,6,0,6,
0,6,0,7,7};
int armor2defense[50]={0,
3,4,4,5,7,8,6,8,0,8,
0,8,0,9,9};
int armor3defense[50]={0,
3,4,3,5,6,7,5,8,0,8,
0,8,0,8,8};
int armor4defense[50]={0,
1,2,2,3,3,4,3,5,0,5,
0,5,0,6,6}; 
//0空手 
int credit=50;//信誉值,玩家无法看见 为此我甚至把他从代码最上面挪了下来( 
//但是现在你看见了((( 即使你改了它,也掩盖不了你的罪恶=) 
bool nether=false,ender=false,farland=false;//地狱门&末地门 建造/发现 边境之地 
int eye_of_ender=0;//末影之眼数量
int ender_crystal[11];//末影水晶数量
int ender_dragon_health=200; 
bool enter_ender=0;//是否进入末地 
bool dragon_dead=0;//末影龙死亡 

bool jungle_temple=false,desert_temple=false,woodland_mansion=false,stronghold=false,nether_fortress=false,bastion_remnants=false,end_city=false; 
//丛林神庙  沙漠神殿  林地府邸  要塞  下界要塞  猪灵堡垒  末地城 
int time_last[10]={},time_now; //玩家上次进入副本时间 当前时间 
int hard,hard_max[10]={0,1,1,1,1,1,1,1};//难度
int hard_max_pass[10];//通过的最高难度 

//setting
bool wide=false;
bool hide_tips=false; 
int hide_level=0; 
int auto_save=0;
//
bool vis=false;//是否查看过《蔡JK传奇》
//??? 
double Death_Penalty=1;
//死亡惩罚 倍 率 

map<string,int> place_id;//fku cpp 98
//={{"村庄",1},{"平原",2},{"森林",3},{"洞穴",4},{"沙漠",5},{"丛林",6},{"雪地",7},{"地狱",8},{"末地",9},{"要塞",10},{"边境之地",11}};
int explore_time[100];//统计冒险次数 

bool dead=false,defend=false,blessing=false;//敌人死亡 防御状态 notch祝福 
bool infight=false;//在战斗中 
bool escape=false;//逃跑成功 
bool help=false; 
bool crafttable=false,furnace=false,smithtable=false,crafttable2=false;//工作台 熔炉 锻造台 中级工作台 
bool undeadattack=false;//亡灵入侵
int attacklevel=0; //入侵等级 
int diamondapple=0;//钻石苹果 
int magicup=1;//魔力提升上限 
int badguy=0,weaponcheck=0,blesscold=0,librarian=0;
int task1=0;//task1:旅行家 收集10橡木 
//就一个任务... 
string version="1.13.0",ver="1.13.0";//版本号! 

int choose;//工具
char c_choose;//字符输入 
string str_choose; //string

int saving=0,reading=0;
bool cheat=false; 
bool debug=false;

long long bag[10001]={};//背包 
//甚至给你贴心的开了long long 
string itemname[2000]={"",
"橡木","丛林木","针叶木","绯红菌柄","橡木木板","从林木木板","针叶木木板","绯红木板","工作台","木棍",//10
"木剑","木斧","木稿","圆石","石剑","石斧","石稿","熔炉","煤炭","铁矿石",//20
"铁锭","铁剑","铁斧","铁镐","铁头盔","铁胸甲","铁护腿","铁靴子","护盾","弓",//30
"金矿石","金锭","金剑","金斧","金稿","苹果","金苹果","线","金头盔","金胸甲",//40
"金护腿","金靴子","青金石","钻石","钻石剑","钻石斧","钻石镐","钻石头盔","钻石胸甲","钻石护腿",//50
"钻石靴子","钻石块","钻石苹果","锻造台","远古残骸","下界合金碎片","下界合金锭","下界合金剑","下界合金斧","下界合金稿",//60
"下界合金头盔","下界合金胸甲","下界合金护腿","下界合金靴子","黑曜石","重击技能书","三连击技能书","穿云箭技能书","反弹技能书","疯狂技能书",//70
"魔力护盾技能书","力量技能书","魔力精通技能书","闪避技能书","连击技能书","健康技能书", "空气斩技能书","冲刺技能书","治疗技能书","冥想技能书",//80
"脆弱化技能书","以攻为守技能书","伤害吸收技能书","防守姿态技能书","战斗姿态技能书","冲锋姿态技能书","透察技能书","铁皮技能书","节能技能书","吸血技能书",//90
"生死约技能书","最后一搏技能书","减速术技能书","疾跑技能书","愤怒技能书","魔力源泉技能书","冰冻技能书","嘲讽技能书","虚弱技能书","禁锢技能书",//100
"淬魔技能书","创造技能书","破坏技能书","创世技能书","流浪者之利剑","流浪者之重斧","流浪者之钝稿","流浪者之旅帽 ","流浪者之外甲","流浪者之护腿",//110
"流浪者之护履","狙击者·弓", "皮革头盔","皮革胸甲","皮革护腿","皮革靴子","锁链头盔","锁链胸甲","锁链护腿","锁链靴子",//120
"末影珍珠","烈焰棒","烈焰粉","末影之眼","金粒","下界石英","中级工作台","远古精华","远古锭","远古之剑",//130
"远古之斧","远古之稿","远古头盔","远古胸甲","远古护腿","远古靴子","源古锭","源古剑","源古斧","源古稿",//140
"源古头盔","源古胸甲","源古护腿","源古靴子","寒冰锭","寒冰剑","寒冰斧","寒冰稿","寒冰头盔","寒冰胸甲",//150
"寒冰护腿","寒冰靴子","寒霜锭","寒霜剑","寒霜斧","寒霜稿","寒霜头盔","寒霜胸甲","寒霜护腿","寒霜靴子",//160
"寒冰精华","沙尘精华","沙尘锭","沙尘剑","沙尘斧","沙尘稿","沙尘头盔","沙尘胸甲","沙尘护腿","沙尘靴子",//170
"沙暴锭","沙暴剑","沙暴弓","沙暴斧","沙暴稿","沙暴头盔","沙暴胸甲","沙暴护腿","沙暴靴子","熔火精华",//180
"熔火锭","熔火之剑","熔火弓","熔火斧","熔火稿","熔火头盔","熔火胸甲","熔火护腿","熔火靴子","凋零骷髅头",//190
"末影碎晶","龙蛋","末影锭","末影水晶","融合核心","终末之剑","终末稿","终末斧","终末头盔","终末胸甲",//200
"终末护腿","终末靴子","紫颂果","","","","","","","",//210
};//物品名 
map<string,int> item_id;
int itemtype[2000]={0,//物品种类  0,普通物品/材料  1,主手  2,副手  3,斧子  4,稿子  5,头  6,身  7,腿  8,脚  9,药水  10,箭矢  
0,0,0,0,0,      0,0,0,0,0,//10
1,3,4,0,1,      3,4,0,0,0,//20
0,1,3,4,5,      6,7,8,2,2,//30
0,0,1,3,4,      0,0,0,5,6,//40
7,8,0,0,1,      3,4,5,6,7,//50
8,0,0,0,0,      0,0,1,3,4,//60
5,6,7,8,0,      0,0,0,0,0,//70
0,0,0,0,0,      0,0,0,0,0,//80
0,0,0,0,0,      0,0,0,0,0,//90
0,0,0,0,0,      0,0,0,0,0,//100
0,0,0,0,1,      3,4,5,6,7,//110
8,2,5,6,7,      8,5,6,7,8,//120
0,0,0,0,0,      0,0,0,0,1,//130
3,4,5,6,7,      8,0,1,3,4,//140
5,6,7,8,0,      1,3,4,5,6,//150
7,8,0,1,3,      4,5,6,7,8,//160
0,0,0,1,3,      4,5,6,7,8,//170
0,1,2,3,4,      5,6,7,8,0,//180
0,1,2,3,4,      5,6,7,8,0,//190
0,0,0,0,0,      1,3,4,5,6,//200
7,8,0, 
};
int itemlevel[2000]={0,//物品等级 
0,0,0,0,0,      0,0,0,0,0,//10
1,1,1,0,2,      2,2,0,0,0,//20
0,4,4,4,4,      4,4,4,1,2,//30
0,0,3,3,3,      0,0,0,3,3,//40
3,3,0,0,5,      5,5,5,5,5,//50
5,0,0,0,0,      0,0,6,6,6,//60
6,6,6,6,0,      0,0,0,0,0,//70
0,0,0,0,0,      0,0,0,0,0,//80
0,0,0,0,0,      0,0,0,0,0,//90
0,0,0,0,0,      0,0,0,0,0,//100
0,0,0,0,7,      7,7,7,7,7,//110
7,4,1,1,1,      1,2,2,2,2,//120
0,0,0,0,0,      0,0,0,0,8,//130
8,8,8,8,8,      8,0,9,9,9,//140
9,9,9,9,0,      10,10,10,10,10,//150
10,10,0,11,11,  11,11,11,11,11,//160
0,0,0,12,12,    12,12,12,12,12,//170
0,13,7,13,13,   13,13,13,13,0,//180
0,14,8,14,14,   14,14,14,14,0,//190
0,0,0,0,0,      15,15,15,15,15,//200
15,15,0,
};
int item_sell_num[2000]={0, //出售数量 
32,32,32,32,128,    128,128,128,0,0,//10
0,0,0,64,0,         0,0,0,16,16,//20
12,2,2,2,1,         1,1,1,0,1,//30
16,12,2,2,2,        8,1,4,1,1,//40
1,1,16,2,1,         1,1,1,1,1,//50
1,1,1,0,1,          1,1,1,1,1,//60
1,1,1,1,2,          1,1,1,1,1,//70
1,1,1,1,1,          1,1,1,1,1,//80
1,1,1,1,1,          1,1,1,1,1,//90
1,1,1,1,1,          1,1,1,1,1,//100
1,1,1,1,1,          1,1,1,1,1,//110
1,1,2,2,2,          2,2,2,2,2,//120
4,2,4,2,32,         16,0,1,1,1,//130
1,1,1,1,1,          1,1,1,1,1,//140
1,1,1,1,1,          1,1,1,1,1,//150
1,1,1,1,1,          1,1,1,1,1,//160
1,1,1,1,1,          1,1,1,1,1,//170
1,1,1,1,1,          1,1,1,1,1,//180
1,1,1,1,1,          1,1,1,1,1,//190
1,1,1,1,1,          1,1,1,1,1,//200
1,1,16,
};
int item_sell_price[2000]={0,//出售价格 
1,1,1,1,1,      1,1,1,0,0,//10
0,0,0,1,0,      0,0,0,1,3,//20
3,1,1,1,1,      2,2,1,0,1,//30
4,5,1,2,2,      2,3,1,2,3,//40
3,2,3,1,1,      1,1,2,4,3,//50
2,4,12,0,1,     1,5,6,6,6,//60
7,8,8,7,1,      5,5,5,5,5,//70
5,5,5,5,5,      5,5,5,5,5,//80
5,5,5,5,5,      5,5,5,5,5,//90
5,5,5,5,5,      5,5,5,5,5,//100
5,5,5,5,5,      3,4,3,4,4,//110
3,6,1,1,1,      1,1,1,1,1,//120
1,1,1,1,1,      2,0,1,4,8,//130
12,12,20,32,28, 16,0,0,0,0,//140
0,0,0,0,4,      8,12,12,20,32,//150
28,16,4,0,0,    0,0,0,0,0,//160
1,1,4,8,12,     12,20,32,28,16,//170 
0,0,0,0,0,      0,0,0,0,2,//180
8,16,24,24,24,  40,64,56,32,10,//190
4,100,15,17,10, 20,20,20,20,20,//200
20,20,1,
};
string potionname[2000]={"",//还是改一下罢( 
"治疗药水","魔力药水","治疗药水II","魔力药水II","治疗药水III","魔力药水III","治疗药水IV","魔力药水IV","速度药水","力量药水",
"速度药水II","力量药水II","速度药水III","力量药水III","","", "","","","",
"","","","",
};
struct item{
    string itemname;
    int type;
    int Level;
    int sell_num;
    int sell_price; 
}item[10000]; 
/*物品编号:

1橡木  2从林木  3针叶木  4绯红菌柄  5橡木木板  6从林木木板  7针叶木木板  8绯红木板  9工作台  10木棍  
11木剑  12木斧  13木稿  14圆石  15石剑  16石斧  17石稿  18熔炉  19煤炭  20铁矿石
21铁锭  22铁剑  23铁斧  24铁镐  25铁头盔  26铁胸甲  27铁护腿  28铁靴子  29护盾  30弓  
31金矿石  32金锭  33金剑  34金斧  35金稿  36苹果  37金苹果  38线  39金头盔  40金胸甲 
41金护腿  42金靴子  43青金石  44钻石  45钻石剑  46钻石斧  47钻石镐  48钻石头盔  49钻石胸甲  50钻石护腿  
51钻石靴子  52钻石块  53钻石苹果  54锻造台  55远古残骸  56下界合金碎片   57下界合金锭  58下界合金剑  59下界合金斧  60下界合金稿  
61下界合金头盔  62下界合金胸甲  63下界合金护腿  64下界合金靴子  65黑曜石  66重击技能书  67三连击技能书  68穿云箭技能书  69反弹技能书  70疯狂技能书  
71魔力护盾技能书  72力量技能书  73魔力精通技能书  74闪避技能书  75连击技能书  76健康技能书  77空气斩技能书  78冲刺技能书  79治疗技能书  80冥想技能书
81脆弱化技能书  82以攻为守技能书  83伤害吸收技能书  84防守姿态技能书  85战斗姿态技能书  86冲锋姿态技能书  87透察技能书  88铁皮技能书  89节能技能书  90吸血技能书  
91生死约技能书  92最后一搏技能书  93减速术技能书  94疾跑技能书  95愤怒技能书  96魔力源泉技能书  97冰冻技能书  98嘲讽技能书  99虚弱技能书  100禁锢技能书  
101淬魔技能书  102创造技能书  103破坏技能书  104创世技能书  105流浪者之利剑  106流浪者之重斧  107流浪者之钝稿  108流浪者之旅帽  109流浪者之外甲  110流浪者之护腿  
111流浪者之护履  112狙击者 ·弓  113皮革头盔  114皮革胸甲  115皮革护腿  116皮革靴子  117锁链头盔  118锁链胸甲  119锁链护腿  120锁链靴子 
121末影珍珠  122烈焰棒  123烈焰粉  124末影之眼  125金粒  126下界石英  127中级工作台  128远古精华  129远古锭  130远古之剑  
131远古之斧  132远古之稿  133远古头盔  134远古胸甲  135远古护腿  136远古靴子  137源古锭  138源古剑  139源古斧  140源古稿  
141源古头盔  142源古胸甲  143源古护腿  144源古靴子  145寒冰锭  146寒冰之剑  147寒冰之斧  148寒冰之稿  149寒冰头盔  150寒冰胸甲  
151寒冰护腿  152寒冰靴子  153寒霜锭  154寒霜剑  155寒霜斧  156寒霜稿  157寒霜头盔  158寒霜胸甲  159寒霜护腿  160寒霜靴子 
161寒冰精华  162沙尘精华  163沙尘锭  164沙尘剑  165沙尘斧  166沙尘稿  167沙尘头盔  168沙尘胸甲  169沙尘护腿  170沙尘靴子
171沙暴锭  172沙暴剑  173沙暴弓  174沙暴斧  175沙暴稿  176沙暴头盔  177沙暴胸甲  178沙暴护腿  179沙暴靴子  180熔火精华
181熔火锭  182熔火之剑  183熔火弓  184熔火斧  185熔火稿  186熔火头盔  187熔火胸甲  188熔火护腿  189熔火靴子  190凋零骷髅头
191末影碎晶 192龙蛋 193末影锭 194末影水晶 195融合核心 196终末之剑 197终末稿 198终末斧 199终末头盔 200终末胸甲 
201终末护腿 202终末靴子 203紫颂果 

Potion Name 药水编号 

1001治疗药水  1002魔力药水  1003治疗药水II  1004魔力药水II  1005治疗药水III  1006魔力药水III  1007治疗药水IV  1008魔力药水IV  1009速度药水  1010力量药水  
1011速度药水II  1012力量药水II  1013速度药水III  1014力量药水III  1015速度药水IV  1016力量药水IV 

*/
int enemyskill[100]={};
int enemyskillcold[100]={};
//这些数组在旧版本中使用,现在已被废弃.由于不清楚删除会有什么影响,酌情保留. 
int skill[100]={0,//技能等级 
1,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0};
int skillmax[100]={0,//技能最高级 
1,3,3,3,3,2,3,2,5,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,3,0,0,0,0,0,0,0};
int skillcold[100]={0,//技能冷却 
0,2,2,3,2,3,1,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,6,0,0,0,0,0,0,0,

4,6,0,1,0,0,0,5,6,10,
0,10};
//Enemyskill
int skillcoldnow[100]={};//战斗时,当前技能冷却 
int skillmagic[100]={0,//技能消耗魔力 
5,6,6,7,6,6,8,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,15,0,0,0,0,0,0,0};
string skillname[100]={"",//技能名 
/*C*/ "侦察","重击","三连击","穿云箭","反弹","疯狂","魔力护盾","力量","魔力精通","闪避",
"连击","健康", /*B*/ "空气斩","冲刺","治疗","冥想术","脆弱化","以攻为守","伤害吸收","防守姿态",
"战斗姿态","冲锋姿态","透察","铁皮","节能", /*A*/ "吸血","生死约","最后一搏","减速术","疾跑",
"愤怒","魔力源泉",/*S*/ "冰冻","嘲讽","虚弱","禁锢","淬魔","创造","破坏","创世",
/*敌人技能*/"减速箭","巨力重拳","狭小场地10","火球","凋零","黄沙","远程抗性","呼救","龙息","召唤末影人", 
"狭小场地8","沙塑"
}; 
bool skilltake[100]={0,1};
int skilltakemax=3,skilltakenow=1;
struct skill{//技能 
    string skillname;
    char rarity;
    bool skilltake;
    int level_now;
    int level_max;
    int cold[10];
    int cold_now;
    int Magic[10]; 
    int num[10],levelup[10][10][3],xp_orb[10],Level[10];
    bool direct;
    /*

    skillname:技能名
    rarity:稀有度
    skilltake:技能是否装备 
    level_max:等级上限
    Magic[i]:第i级消耗魔力
    cold[i]:第i级冷却 
    cold_now:(战斗时)当前技能冷却回合 
    num[i]:第i次升级所需的物品数量 
    levelup[i][j][1]:第i个升级所需第j个物品编号 
    levelup[i][j][2]:第i个升级所需第j个物品数量 
    xp_orb[i]:第i次升级所需的经验球数量
    Level[i]:第i次升级需要的等级

    direct:技能是否有指向性 

    写得很详细,有bug也好改() 也方便某些人看我的代码 
    自然也方便我如果忘记的时候修改(

    */ 
}sk[300];
struct task{//任务 
    int type;
    string target_name;
    int target_num;
    int now;
    int item_num;
    int item[10][3];
    int reward_num;
    int reward[10][3];
    int Money;
    int exp;
    int credit;
    bool done;
    bool ac; 
    /*

    type:任务类型 1为收集物品并上交 2为击杀目标生物
    target_name:目标生物名
    target_num:需要击杀的数量
    now:任务进度 
    item_num:需要收集的物品数量 
    item[i][1]:第i个需要收集的物品编号 
    item[i][2]:第i个需要收集的物品数量 
    Money:奖励绿宝石
    exp:奖励经验
    credit:增加信誉值 
    reward_num 奖励的物品数量
    reward[i][1]:第i个奖励的物品编号 
    reward[i][2]:第i个奖励的物品数量
    done:是否已完成 
    ac:是否已接受 
    */
};
task tasks[10];
task player_task[10];
int player_task_cnt;//当前接取的任务数量 
void color(string s,int front_color,int back_color){//Colorrrrr
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|back_color*16|FOREGROUND_INTENSITY|front_color);//csdn
    //SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|1|14);
    cout<<s;
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|7);
    return;
}
inline void sc(int x){
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|x);
    return;
}
/*color
0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 10 = 淡绿色
3 = 浅绿色 11 = 淡浅绿色
4 = 红色 12 = 淡红色
5 = 紫色 13 = 淡紫色
6 = 黄色 14 = 淡黄色
7 = 白色 15 = 亮白色
*/
string tips[300]={"",//SB
"要致富,先撸树!","Creeper? aww man",
"So we back in the mine","【数据删除】",
"附魔师还可以为你增加魔力","一刀999,打怪爆神装!",
"cout<<tips[7];","你知道吗?这是一款用C++写的游戏",
"你的近战攻击距离很短♂","tips功能是1.11.4版本加入的哦!",
//10
"在商店里可以购买技能书","附魔师可以压缩你的经验——但是收费。",
"有弓没有箭?去村庄商店看看吧。","做坏事是会有报应的...?",
"打字不要打一半,尤其是","作弊是一种可耻的行为!",
"在老版本,战斗时如果选择了不能使用的选项会浪费一回合","tips:tips:tips:tips:tip",
"你知道吗?tips很多都是废话","你知道游戏里有多少条tips吗?",
//20
"你知道攻击伤害浮动的比例是多少吗?","你在摸鱼吗?",
"挑战副本是快速升级的好办法","cxh是个蒟蒻",
"看tips干嘛","有一些矿石需要高级的稿子才能挖掘。",
"有没有一把稿子能挖各种矿洞里的矿呢?","绿宝石就是拿来花的!",
"【这条tips已被删除】", "不是所有的地方都能砍树",
//30
"在战斗使用技能,给敌人致命一击!","钻石苹果...钻石块...",
"既然懒得挖矿,干脆去洞穴探险吧!","今天你写作业了吗?",
"图书管理员是一位学识渊博的老者。","该给你写点什么tips好呢...(思考)",
"return 0;","如果你是新手,不妨看看新手教程。",
"有人能帮我写剩下的内容吗(","今夕是何年?",
//40
"Whatever you choose is your choise.","Trust yourself.",
"(smile).","WHAT DID YOU DO WHAT ARE YOU DOING WHAT WILL YOU DO",
"Create the world by yourself.","meit doog a evah.",
"Nothing serious","Just do it.",
"SUS","love or be loved",
//50
"治疗药水会根据你的生命上限回复血量。","治疗药水的回复量是有上限的", 
"流浪商人收购一些东西,如果你有,不妨卖掉它们。","你的攻击伤害并不是固定的。",
"你知道吗?其实面对难缠的敌人,你可以逃跑。","你移动的距离不能大于你的速度!",
"并非遇见所有敌人都可以逃跑。","逃跑有概率失败。",
"你可以在背包查看物品的信息。","挖矿可以获得经验。",
//60 
"附魔师对于技能有着独特的了解。","Welcome to 1.13(.0)!",
"新版本,新tips!","传说在遥远的丛林里,隐藏着一座远古的神庙...",
"技能可不是你一个人的特殊能力!","你知道本游戏第一个S级技能怎么获得吗?",
"为什么没有苦力怕呢?","对于大部分BOSS来说,一般都会拥有技能。",
"打怪除了绿宝石,还可能有装备和材料!","I love you!",
//70
"Never gonna give you up!","你知道tips功能加入来自哪里吗?",
"Never gonna let you down~","tips绝对不会骗人!give u up~",
"你说得对,但是MINECRAFT是由Mojang开发的一款沙盒游戏","石头有什么用?",
"流浪商人收购石头?真是不可理喻。","每个版本都会添加新的tips!",
"抽奖有风险。","如果你的运气好,不妨试试村庄里的抽奖机!",
//80
"记得保存哦!","长时间使用电子产品对眼睛不好!",
"6","完了,编不出tips了",
"Wow~ You can really dance~","现在是什么版本?",
"强大的敌人一般有更好的掉落物","你见过末影人吗?",
"会不会有地方需要探险才能发现呢?","废弃的地狱传送门可能遍布在世界的各处...",
//90
"绿宝石珍贵吗?不珍贵。","每个玩家都自带一个技能!",
"死亡并不可怕...","实际上,绝大多数情况下死亡不会掉落东西",
"流浪商人会出售一些独特的物品...","平原有一位旅行家,但似乎他被困在那了...",
"有时候,副手武器能帮你大忙。","弓不仅可以通过打怪获得,还能自己制造!",
"多去其他地方逛逛,总有惊喜。","哼,哼,啊啊啊啊啊啊",
//100
"bdsm","存档文件可以保存到别处使用",
"Bark","我对【】说话!",
"升级可以在商店里出售更多东西。","技能的获得方式有很多种!",
"在村庄里有一座旅馆,去休息可以恢复生命","RP++",
"不要修改你的存档文件!","猪灵有时候不会攻击你。why?",
//110
"你在期待什么?","新的版本,新的bug!(划",
"在此对所有支持本游戏的玩家表示感谢!","如有bug请反馈。",
"地狱的深处藏有坚固的矿石...","村庄里曾有一位恶霸肆意妄为...",
"真的有人会看这些吗?","如果有人能帮我写游戏——哪怕是tips也好!",
"树上有苹果,拿下来!","钻石苹果是一种神奇的物品,能增加你的生命。",
//120
"你知道吗,我不知道","zhi yin ni tai mei",
"商店会收购物品,但不收购垃圾(","战斗时你每回合都会回复魔力!",
"升级可以增加可出售的物品数量!","有时怪物会掉落技能书。",
"一般来说,越强的怪掉落物越好!...虽然也可能没有","A Super Tip has spawned somewhere!",
"商店里总会有一本技能书。","升级技能有时需要压缩经验球!",
//130
"别忘了保存!","转眼间一年就过去了...",
"研究表明这项研究没什么意义","上次更新是什么时候?", 
"升级可以...总之很有用!","商店可以出售东西!",
"雪地有一个冰封的洞窟...但你得找人带你去。","据说有一本强大的技能书,能将敌人冰封...",
"Orz","stO", 
//140
"Happy New Year!","bilibili 关注 弱小无助小萌新(大雾",
"查看小说可以白嫖一颗绿宝石,一般人我不告诉他","沙漠里有一个尘封的神殿......",
"正在播放 : Minecraft - C418","正在播放 : Sweden - C418",
"正在播放 : Aria Math - C418","正在播放 : Moog City - C418",
"正在播放 : Living Mice - C418","正在播放 : Axolotl - C418",
//150
"装备全套装备时,会有额外的加成!","地狱里有一个巨大的血红色要塞...",
"不需要的技能可以被降级。","新版本什么时候才更新?",
"升级可以让你在商店出售更多东西。","你的工作台或许该升级了。",
"/gamemode 1 @s","在设置打开自动保存以防丢失存档!",
"你在期待什么?","依照惯例,版本更新至少会多更新10条tips",
//160 
"村庄有一块任务版哦","设置里可以隐藏tips!",
"现在输入114514即可退出游戏","Also try Terraria!", 
"惊!trb诈尸了!","快去看《蔡JK传奇》",
"村庄里有一个古老的雕像...","抽奖机可以用 3 个绿宝石抽出 4 个绿宝石!",
"请开启auto_save","RP+=inf",
//170 
"完成任务是获取绿宝石的好办法","集齐一套套装可以获得套装奖励!", 
"交战,搜索,搞定就撤","在副本探索后需要等待一会",
"在战斗中使用药水可以让你获得增益","多多探索可以找到许多隐藏的东西",
"你可以保存多个存档并且回档...或许我不该告诉你","如果觉得显示太拥挤,可以在设置里调整",
"斗转星移","what can i say",
//180
"冷知识:tips都是作者无聊的时候写的","证明你的实力,才能挑战更高难度的敌人", 
"更好的工具有更高的效率","末影人的移动速度极快(其实是瞬移",
"你每回合都会回复魔力","你做的某些选择可能会影响他人对你的看法",
"设置里有一些奇怪的东西","这个人无聊到写了一百多条tips...",
"碰到多个敌人时,优先解决一个可以减轻压力","实际上,你可以穿过敌人,但是有什么用呢?",
//190
};
//看我干嘛? 
void HideCursor(){//隐藏光标 
    HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);
    CONSOLE_CURSOR_INFO CursorInfo;
    GetConsoleCursorInfo(handle, &CursorInfo);//获取控制台光标信息
    CursorInfo.bVisible=false; //隐藏控制台光标
    SetConsoleCursorInfo(handle, &CursorInfo);//设置控制台光标状态
}

void gotoxy(int x,int y){
    COORD pos;//这里的pos是一个结构体
    pos.X=x;//横坐标
    pos.Y=y;//纵坐标
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);//移动光标
}

void destroy(int time,int Speed){//进度条 
    time/=3;//巨大的改动......也许。 
    for(int i=0;i<100;i++){//为什么函数名叫destroy? 
        system("cls");
        cout<<"进度:已完成 "<<i<<" %"<<endl;
        Sleep(time/Speed/100); 
    }
    system("cls"); 
    cout<<"进度:已完成 "<<100<<" %"<<endl;
    Sleep(500);
    system("cls"); 
    return;
}

void say(string word,int time){//说话内容 停顿 
    for(int i=0;i<=word.length();i++){
        cout<<word[i];//输出字符 
        Sleep(time);//停顿time 单位ms 
    }
    return;
}

int rnd(int l,int r){//生成一个 [l-r]的随机数 *闭*区间 
    return rand()%(r-l+1)+l;
}

bool Rand(int x){//x/1000的随机flag
    int r=1+rand()%1000;
    if(r<=x) return true;
    else return false;
}

int RandNum(int n,int a[]){//权重随机,和为1000 
    int r=rand()%1000;
    int sum=0;
    for (int i=0;i<n;++i){
        sum+=a[i];
        if(r<sum){
            return i+1;
        }
    }
    return n;
}

int levelup(int xp){//升级 返回升的等级数 
    if(xp<Level*100){
        Experience=xp;
        return 0;
    }
    else{
        xp-=Level*100;
        Level++;
        return 1+levelup(xp);
    }
}

struct craft{
    int num1,amount1;
    int num2,amount2;
    int num3,amount3;
    int num4,amount4;
    int condition1,condition2;
    bool con(){//一个条件检测 
        switch(condition1){
            case 0:
                return true;    
            break;
            case 1:
                if(crafttable) return true;
                else return false; 
            break;
            case 2:
                if(furnace) return true;
                else return false; 
            break;
            case 3:
                if(smithtable) return true;
                else return false; 
            break;
            case 4:
                if(crafttable2) return true;
                else return false; 
            break;
        }
        return 0;
    }

    bool con2(){//还是一个条件检测 
        switch(condition2){
            case 0:
                return true;    
            break;
            case 1://工作台 
                if(crafttable) return true;
                else return false; 
            break;
            case 2://熔炉 
                if(furnace) return true;
                else return false; 
            break;
            case 3://锻造台 
                if(smithtable) return true;
                else return false; 
            break;
            case 4://中级工作台 
                if(crafttable2) return true;
                else return false; 
            break;
        }
        return 0;
    }
}craft[10000];

void add_craft(int c_num,int c_num1,int c_amount1,int c_num2,int c_amount2,int c_num3,int c_amount3,int c_num4,int c_amount4,int c_condition1,int c_condition2){//添加合成配方 
    craft[c_num].num1=c_num1;//物品1编号 
    craft[c_num].num2=c_num2;//same
    craft[c_num].num3=c_num3;
    craft[c_num].num4=c_num4;
    craft[c_num].amount1=c_amount1;//物品1数量 
    craft[c_num].amount2=c_amount2;
    craft[c_num].amount3=c_amount3;
    craft[c_num].amount4=c_amount4;
    craft[c_num].condition1=c_condition1;//条件1 
    craft[c_num].condition2=c_condition2;
    return;
}

void recipe_reset(){
    //合成配方 
    int asswecan=1;//抽象的名字 
    add_craft(asswecan++,item_id["橡木木板"],4,item_id["橡木"],1,0,0,0,0,0,0);//木板 
    add_craft(asswecan++,item_id["丛林木木板"],4,item_id["丛林木"],1,0,0,0,0,0,0);
    add_craft(asswecan++,item_id["针叶木木板"],4,item_id["针叶木"],1,0,0,0,0,0,0);
    add_craft(asswecan++,item_id["绯红木板"],4,item_id["绯红菌柄"],1,0,0,0,0,0,0);
    add_craft(asswecan++,item_id["工作台"],1,item_id["橡木木板"],4,0,0,0,0,0,0);//工作台 
    add_craft(asswecan++,item_id["工作台"],1,item_id["丛林木木板"],4,0,0,0,0,0,0);
    add_craft(asswecan++,item_id["工作台"],1,item_id["针叶木木板"],4,0,0,0,0,0,0);
    add_craft(asswecan++,item_id["工作台"],1,item_id["绯红木板"],4,0,0,0,0,0,0);
    add_craft(asswecan++,item_id["木棍"],4,item_id["橡木木板"],2,0,0,0,0,0,0);//木棍 
    add_craft(asswecan++,item_id["木棍"],4,item_id["丛林木木板"],2,0,0,0,0,0,0);
    add_craft(asswecan++,item_id["木棍"],4,item_id["针叶木木板"],2,0,0,0,0,0,0);
    add_craft(asswecan++,item_id["木棍"],4,item_id["绯红木板"],2,0,0,0,0,0,0);
    add_craft(asswecan++,item_id["木剑"],1,item_id["橡木木板"],2,item_id["木棍"],1,0,0,1,0);//木剑 
    add_craft(asswecan++,item_id["木剑"],1,item_id["丛林木木板"],2,item_id["木棍"],1,0,0,1,0);
    add_craft(asswecan++,item_id["木剑"],1,item_id["针叶木木板"],2,item_id["木棍"],1,0,0,1,0);
    add_craft(asswecan++,item_id["木剑"],1,item_id["绯红木板"],2,item_id["木棍"],1,0,0,1,0);
    add_craft(asswecan++,item_id["木斧"],1,item_id["橡木木板"],3,item_id["木棍"],2,0,0,1,0);//木斧 
    add_craft(asswecan++,item_id["木斧"],1,item_id["丛林木木板"],3,item_id["木棍"],2,0,0,1,0);
    add_craft(asswecan++,item_id["木斧"],1,item_id["针叶木木板"],3,item_id["木棍"],2,0,0,1,0);
    add_craft(asswecan++,item_id["木斧"],1,item_id["绯红木板"],3,item_id["木棍"],2,0,0,1,0);
    add_craft(asswecan++,item_id["木稿"],1,item_id["橡木木板"],3,item_id["木棍"],2,0,0,1,0);//木稿 
    add_craft(asswecan++,item_id["木稿"],1,item_id["丛林木木板"],3,item_id["木棍"],2,0,0,1,0);
    add_craft(asswecan++,item_id["木稿"],1,item_id["针叶木木板"],3,item_id["木棍"],2,0,0,1,0);
    add_craft(asswecan++,item_id["木稿"],1,item_id["绯红木板"],3,item_id["木棍"],2,0,0,1,0);
    add_craft(asswecan++,item_id["石剑"],1,item_id["圆石"],2,item_id["木棍"],1,0,0,1,0);//石剑
    add_craft(asswecan++,item_id["石斧"],1,item_id["圆石"],3,item_id["木棍"],2,0,0,1,0);//石斧 
    add_craft(asswecan++,item_id["石稿"],1,item_id["圆石"],3,item_id["木棍"],2,0,0,1,0);//石稿 
    add_craft(asswecan++,item_id["熔炉"],1,item_id["圆石"],8,0,0,0,0,1,0);//熔炉 
    add_craft(asswecan++,item_id["铁锭"],1,item_id["煤炭"],1,item_id["铁矿石"],1,0,0,2,0);//铁锭
    add_craft(asswecan++,item_id["铁剑"],1,item_id["铁锭"],2,item_id["木棍"],1,0,0,1,0);//铁剑
    add_craft(asswecan++,item_id["铁斧"],1,item_id["铁锭"],3,item_id["木棍"],2,0,0,1,0);//铁斧  
    add_craft(asswecan++,item_id["铁镐"],1,item_id["铁锭"],3,item_id["木棍"],2,0,0,1,0);//铁稿
    add_craft(asswecan++,item_id["铁头盔"],1,item_id["铁锭"],5,0,0,0,0,1,0);//铁头盔 
    add_craft(asswecan++,item_id["铁胸甲"],1,item_id["铁锭"],8,0,0,0,0,1,0);//铁胸甲 
    add_craft(asswecan++,item_id["铁护腿"],1,item_id["铁锭"],7,0,0,0,0,1,0);//铁护腿  
    add_craft(asswecan++,item_id["铁靴子"],1,item_id["铁锭"],4,0,0,0,0,1,0);//铁靴子
    add_craft(asswecan++,item_id["护盾"],1,item_id["铁锭"],1,item_id["橡木木板"],6,0,0,1,0);//盾牌 
    add_craft(asswecan++,item_id["护盾"],1,item_id["铁锭"],1,item_id["丛林木木板"],6,0,0,1,0);
    add_craft(asswecan++,item_id["护盾"],1,item_id["铁锭"],1,item_id["针叶木木板"],6,0,0,1,0);
    add_craft(asswecan++,item_id["护盾"],1,item_id["铁锭"],1,item_id["绯红木板"],6,0,0,1,0);
    add_craft(asswecan++,item_id["弓"],1,item_id["线"],3,item_id["木棍"],3,0,0,1,0);//弓 
    add_craft(asswecan++,item_id["金锭"],1,item_id["煤炭"],1,item_id["金矿石"],1,0,0,2,0);//金锭
    add_craft(asswecan++,item_id["金锭"],1,item_id["金粒"],9,0,0,0,0,1,0);//金锭 
    add_craft(asswecan++,item_id["金剑"],1,item_id["金锭"],2,item_id["木棍"],1,0,0,1,0);//金剑
    add_craft(asswecan++,item_id["金斧"],1,item_id["金锭"],3,item_id["木棍"],2,0,0,1,0);//金斧  
    add_craft(asswecan++,item_id["金稿"],1,item_id["金锭"],3,item_id["木棍"],2,0,0,1,0);//金稿
    add_craft(asswecan++,item_id["金苹果"],1,item_id["苹果"],1,item_id["金锭"],8,0,0,1,0);//金苹果 
    add_craft(asswecan++,item_id["金头盔"],1,item_id["金锭"],5,0,0,0,0,1,0);//金头盔 
    add_craft(asswecan++,item_id["金胸甲"],1,item_id["金锭"],8,0,0,0,0,1,0);//金胸甲 
    add_craft(asswecan++,item_id["金护腿"],1,item_id["金锭"],7,0,0,0,0,1,0);//金护腿  
    add_craft(asswecan++,item_id["金靴子"],1,item_id["金锭"],4,0,0,0,0,1,0);//金靴子
    add_craft(asswecan++,item_id["钻石"],9,item_id["钻石块"],1,0,0,0,0,0,0);//钻石块->钻石
    add_craft(asswecan++,item_id["钻石块"],1,item_id["钻石"],9,0,0,0,0,1,0);//钻石块
    add_craft(asswecan++,item_id["钻石剑"],1,item_id["钻石"],2,item_id["木棍"],1,0,0,1,0);//钻石剑
    add_craft(asswecan++,item_id["钻石斧"],1,item_id["钻石"],3,item_id["木棍"],2,0,0,1,0);//钻石斧  
    add_craft(asswecan++,item_id["钻石镐"],1,item_id["钻石"],3,item_id["木棍"],2,0,0,1,0);//钻石稿
    add_craft(asswecan++,item_id["钻石头盔"],1,item_id["钻石"],5,0,0,0,0,1,0);//钻石头盔 
    add_craft(asswecan++,item_id["钻石胸甲"],1,item_id["钻石"],8,0,0,0,0,1,0);//钻石胸甲 
    add_craft(asswecan++,item_id["钻石护腿"],1,item_id["钻石"],7,0,0,0,0,1,0);//钻石护腿  
    add_craft(asswecan++,item_id["钻石靴子"],1,item_id["钻石"],4,0,0,0,0,1,0);//钻石靴子 
    add_craft(asswecan++,item_id["钻石苹果"],1,item_id["钻石块"],2,item_id["金苹果"],1,0,0,1,0);//钻石苹果 
    add_craft(asswecan++,item_id["锻造台"],1,item_id["橡木木板"],4,item_id["铁锭"],2,0,0,1,0);//锻造台 
    add_craft(asswecan++,item_id["锻造台"],1,item_id["丛林木木板"],4,item_id["铁锭"],2,0,0,1,0);
    add_craft(asswecan++,item_id["锻造台"],1,item_id["针叶木木板"],4,item_id["铁锭"],2,0,0,1,0);
    add_craft(asswecan++,item_id["锻造台"],1,item_id["绯红木板"],4,item_id["铁锭"],2,0,0,1,0);
    add_craft(asswecan++,item_id["下界合金碎片"],1,item_id["煤炭"],1,item_id["远古残骸"],1,0,0,2,0);//下界合金碎片 
    add_craft(asswecan++,item_id["下界合金锭"],1,item_id["下界合金碎片"],4,item_id["金锭"],4,0,0,1,0);//下界合金锭
    add_craft(asswecan++,item_id["下界合金剑"],1,item_id["钻石剑"],1,item_id["下界合金锭"],1,0,0,3,0);//下界合金剑
    add_craft(asswecan++,item_id["下界合金斧"],1,item_id["钻石斧"],1,item_id["下界合金锭"],1,0,0,3,0);//下界合金斧  
    add_craft(asswecan++,item_id["下界合金镐"],1,item_id["钻石镐"],1,item_id["下界合金锭"],1,0,0,3,0);//下界合金稿
    add_craft(asswecan++,item_id["下界合金头盔"],1,item_id["钻石头盔"],1,item_id["下界合金锭"],1,0,0,3,0);//下界合金头盔 
    add_craft(asswecan++,item_id["下界合金胸甲"],1,item_id["钻石胸甲"],1,item_id["下界合金锭"],1,0,0,3,0);//下界合金胸甲 
    add_craft(asswecan++,item_id["下界合金护腿"],1,item_id["钻石护腿"],1,item_id["下界合金锭"],1,0,0,3,0);//下界合金护腿  
    add_craft(asswecan++,item_id["下界合金靴子"],1,item_id["钻石靴子"],1,item_id["下界合金锭"],1,0,0,3,0);//下界合金靴子
    add_craft(asswecan++,item_id["中级工作台"],1,item_id["工作台"],1,item_id["铁锭"],4,item_id["钻石"],4,1,0);//中级工作台 

    add_craft(asswecan++,item_id["远古锭"],1,item_id["远古精华"],2,item_id["铁锭"],2,item_id["金锭"],2,4,0);//远古锭
    add_craft(asswecan++,item_id["远古之剑"],1,item_id["远古锭"],2,item_id["木棍"],1,0,0,4,0);//远古之剑
    add_craft(asswecan++,item_id["远古之斧"],1,item_id["远古锭"],3,item_id["木棍"],2,0,0,4,0);//远古之斧 
    add_craft(asswecan++,item_id["远古之稿"],1,item_id["远古锭"],3,item_id["木棍"],2,0,0,4,0);//远古之稿 
    add_craft(asswecan++,item_id["远古头盔"],1,item_id["远古锭"],5,0,0,0,0,4,0);//远古头盔 
    add_craft(asswecan++,item_id["远古胸甲"],1,item_id["远古锭"],8,0,0,0,0,4,0);//远古胸甲 
    add_craft(asswecan++,item_id["远古护腿"],1,item_id["远古锭"],7,0,0,0,0,4,0);//远古护腿 
    add_craft(asswecan++,item_id["远古靴子"],1,item_id["远古锭"],4,0,0,0,0,4,0);//远古靴子 

    add_craft(asswecan++,item_id["寒冰锭"],1,item_id["寒冰精华"],2,item_id["铁锭"],2,item_id["金锭"],2,4,0);//寒冰锭
    add_craft(asswecan++,item_id["寒冰之剑"],1,item_id["寒冰锭"],2,item_id["木棍"],1,0,0,4,0);//寒冰之剑
    add_craft(asswecan++,item_id["寒冰之斧"],1,item_id["寒冰锭"],3,item_id["木棍"],2,0,0,4,0);//寒冰之斧 
    add_craft(asswecan++,item_id["寒冰之稿"],1,item_id["寒冰锭"],3,item_id["木棍"],2,0,0,4,0);//寒冰之稿 
    add_craft(asswecan++,item_id["寒冰头盔"],1,item_id["寒冰锭"],5,0,0,0,0,4,0);//寒冰头盔 
    add_craft(asswecan++,item_id["寒冰胸甲"],1,item_id["寒冰锭"],8,0,0,0,0,4,0);//寒冰胸甲 
    add_craft(asswecan++,item_id["寒冰护腿"],1,item_id["寒冰锭"],7,0,0,0,0,4,0);//寒冰护腿 
    add_craft(asswecan++,item_id["寒冰靴子"],1,item_id["寒冰锭"],4,0,0,0,0,4,0);//寒冰靴子

    add_craft(asswecan++,item_id["沙尘锭"],1,item_id["沙尘精华"],2,item_id["铁锭"],2,item_id["金锭"],2,4,0);//沙尘锭
    add_craft(asswecan++,item_id["沙尘剑"],1,item_id["沙尘锭"],2,item_id["木棍"],1,0,0,4,0);//沙尘剑
    add_craft(asswecan++,item_id["沙尘斧"],1,item_id["沙尘锭"],3,item_id["木棍"],2,0,0,4,0);//沙尘斧 
    add_craft(asswecan++,item_id["沙尘稿"],1,item_id["沙尘锭"],3,item_id["木棍"],2,0,0,4,0);//沙尘稿 
    add_craft(asswecan++,item_id["沙尘头盔"],1,item_id["沙尘锭"],5,0,0,0,0,4,0);//沙尘头盔 
    add_craft(asswecan++,item_id["沙尘胸甲"],1,item_id["沙尘锭"],8,0,0,0,0,4,0);//沙尘胸甲 
    add_craft(asswecan++,item_id["沙尘护腿"],1,item_id["沙尘锭"],7,0,0,0,0,4,0);//沙尘护腿 
    add_craft(asswecan++,item_id["沙尘靴子"],1,item_id["沙尘锭"],4,0,0,0,0,4,0);//沙尘靴子

    add_craft(asswecan++,item_id["烈焰粉"],2,item_id["烈焰棒"],1,0,0,0,0,4,0);//烈焰粉 
    add_craft(asswecan++,item_id["熔火锭"],1,item_id["熔火精华"],2,item_id["金锭"],2,item_id["烈焰粉"],3,4,0);//熔火锭
    add_craft(asswecan++,item_id["熔火之剑"],1,item_id["熔火锭"],2,item_id["木棍"],1,0,0,4,0);//熔火剑
    add_craft(asswecan++,item_id["熔火弓"],1,item_id["熔火锭"],3,item_id["木棍"],3,0,0,1,0);//熔火弓 
    add_craft(asswecan++,item_id["熔火斧"],1,item_id["熔火锭"],3,item_id["木棍"],2,0,0,4,0);//熔火斧 
    add_craft(asswecan++,item_id["熔火之稿"],1,item_id["熔火锭"],3,item_id["木棍"],2,0,0,4,0);//熔火之稿 
    add_craft(asswecan++,item_id["熔火头盔"],1,item_id["熔火锭"],5,0,0,0,0,4,0);//熔火头盔 
    add_craft(asswecan++,item_id["熔火胸甲"],1,item_id["熔火锭"],8,0,0,0,0,4,0);//熔火胸甲 
    add_craft(asswecan++,item_id["熔火护腿"],1,item_id["熔火锭"],7,0,0,0,0,4,0);//熔火护腿 
    add_craft(asswecan++,item_id["熔火靴子"],1,item_id["熔火锭"],4,0,0,0,0,4,0);//熔火靴子 

    add_craft(asswecan++,item_id["末影水晶"],1,item_id["末影碎晶"],4,item_id["末影之眼"],1,0,0,4,0);//末影水晶
    add_craft(asswecan++,item_id["终末之剑"],1,item_id["下界合金剑"],1,item_id["末影水晶"],7,item_id["融合核心"],1,4,0);//终末之剑
    add_craft(asswecan++,item_id["终末斧"],1,item_id["下界合金斧"],1,item_id["末影水晶"],7,item_id["融合核心"],1,4,0);//终末斧 
    add_craft(asswecan++,item_id["终末稿"],1,item_id["下界合金稿"],1,item_id["末影水晶"],7,item_id["融合核心"],1,4,0);//终末斧
    add_craft(asswecan++,item_id["终末头盔"],1,item_id["下界合金头盔"],1,item_id["末影水晶"],7,item_id["融合核心"],1,4,0);//终末头盔 
    add_craft(asswecan++,item_id["终末胸甲"],1,item_id["下界合金胸甲"],1,item_id["末影水晶"],7,item_id["融合核心"],1,4,0);//终末胸甲 
    add_craft(asswecan++,item_id["终末护腿"],1,item_id["下界合金护腿"],1,item_id["末影水晶"],7,item_id["融合核心"],1,4,0);//终末护腿 
    add_craft(asswecan++,item_id["终末靴子"],1,item_id["下界合金靴子"],1,item_id["末影水晶"],7,item_id["融合核心"],1,4,0);//终末靴子 
    return;
}

void create(){//合成
//in my opinion it should be craft
    SetConsoleTitle("--合成--");
    while(1){
        system("cls");
        cout<<"以下是你可以合成的物品列表。"<<endl;
        cout<<"输入合成编号以合成。"<<endl<<endl;
        for(int i=1;i<=500;i++){
            if(craft[i].num1!=0&&craft[i].con()&&craft[i].con2()){
                if(bag[craft[i].num2]>=craft[i].amount2&&bag[craft[i].num3]>=craft[i].amount3&&bag[craft[i].num4]>=craft[i].amount4){//可合成 打印 
                    cout<<"编号"<<i<<": ";
                    switch(craft[i].condition1){//不同要求 真的太细了( 
                        case 2:cout<<"熔炼 ";break;
                        case 3:cout<<"锻造 ";break;
                        default:cout<<"合成 ";break;  
                    }
                    cout<<item[craft[i].num1].itemname<<"x"<<craft[i].amount1<<" 需要 "
                    <<item[craft[i].num2].itemname<<"x"<<craft[i].amount2<<" ";
                    if(craft[i].amount3>0) cout<<","<<item[craft[i].num3].itemname<<"x"<<craft[i].amount3<<" ";
                    if(craft[i].amount4>0) cout<<","<<item[craft[i].num4].itemname<<"x"<<craft[i].amount4<<" ";
                    cout<<endl;
                    if(wide) cout<<endl;
                }
            }
        }
        cout<<endl<<"输入 0 返回"<<endl;
        cin>>choose;
        int i=choose;
        if(choose==0) return;
        else{
            if(craft[i].num1!=0&&craft[i].con()&&craft[i].con2()){//不满足条件 
                if(bag[craft[i].num2]>=craft[i].amount2&&bag[craft[i].num3]>=craft[i].amount3&&bag[craft[i].num4]>=craft[i].amount4){//背包材料不足合成一次 byd都没显示乱输的吧 
                    if(bag[craft[i].num2]>=2*craft[i].amount2&&bag[craft[i].num3]>=2*craft[i].amount3&&bag[craft[i].num4]>=2*craft[i].amount4){//背包材料至少可以合成两次 
                        cout<<"你要";
                        switch(craft[i].condition1){
                            case 2:cout<<"熔炼";break;
                            case 3:cout<<"锻造";break;
                            default:cout<<"合成";break;   
                        }
                        cout<<"多少次?"<<endl;
                        int MAXN=bag[craft[i].num2]/craft[i].amount2;
                        if(craft[i].amount3) MAXN=min(MAXN,(int)bag[craft[i].num3]/craft[i].amount3);
                        if(craft[i].amount4) MAXN=min(MAXN,(int)bag[craft[i].num4]/craft[i].amount4);
                        cout<<"( 当前你最多可合成 "<<MAXN<<" 次 )"<<endl; 
                        cin>>choose;    
                        if(choose==0) continue;
                        if(bag[craft[i].num2]<choose*craft[i].amount2||bag[craft[i].num3]<choose*craft[i].amount3||bag[craft[i].num4]<choose*craft[i].amount4){//任意材料不足 
                            cout<<"你的材料不足!"<<endl;getch();
                        }else{//合成多次 
                            cout<<item[craft[i].num1].itemname<<" 合成成功!"<<"( 共计 "<<craft[i].amount1*choose<<" 个 )"<<endl;
                            bag[craft[i].num1]+=choose*craft[i].amount1;
                            bag[craft[i].num2]-=choose*craft[i].amount2;
                            bag[craft[i].num3]-=choose*craft[i].amount3;
                            bag[craft[i].num4]-=choose*craft[i].amount4;getch();
                        }
                    }else{//合成一次 
                        cout<<item[craft[i].num1].itemname<<" 合成成功!"<<endl;
                        bag[craft[i].num1]+=craft[i].amount1;
                        bag[craft[i].num2]-=craft[i].amount2;
                        bag[craft[i].num3]-=craft[i].amount3;
                        bag[craft[i].num4]-=craft[i].amount4;getch();
                    }
                }else{
                    cout<<"请勿乱输!"<<endl;getch();
                }
            }else{
                cout<<"请勿乱输!"<<endl;getch();
            }
        }
    }
    return;
}

struct Enemy{
    string MN;
    int MaxH;
    int MH,MA,Mrand,MD,MS,dis,Adis,xp,Mmoney;
    bool dead;//敌人死亡 
    int skilluse;//使用技能 
    int burntime,burn;//敌人灼烧时间 灼烧层数
    int frozen;//冰冻层数 
    int heavy_attack;//巨力重拳 
    int skill[111];//技能 
    int skillcold[111];//技能冷却 
    bool invisible;//隐形(? 
    bool flow;//漂浮
    int skip_round;//跳过x回合 
    int weak;//脆弱化层数 
}enemy[101];
int enemy_num;

void reset(){//战斗初始化 
    Attack=basicattack+weapon1attack[weapon1];
    Attack2=basicattack+weapon2attack[weapon2];
    attackdis2=weapon2attackdis[weapon2]; 
    Defense=armor1defense[armor1]+armor2defense[armor2]+armor3defense[armor3]+armor4defense[armor4];
    MaxMagic=basicmagic;

    Speed=basicspeed;
    critical_rate=basic_critical_rate;

    if(skill[8]>0&&sk[8].skilltake==1){//力量 
        Attack+=skill[8];
    }
    if(skill[9]>0&&sk[9].skilltake==1){//魔力精通 
        MaxMagic+=2+skill[9];
    }

    if(armor1==4&&armor2==4&&armor3==4&&armor4==4){//铁套套装奖励 
        Defense+=3;
    }
    if(armor1==5&&armor2==5&&armor3==5&&armor4==5){//钻石套套装奖励 
        Defense+=4;
    }
    if(armor1==6&&armor2==6&&armor3==6&&armor4==6){//下界合金套套装奖励 
        Defense+=5;
    }
    if(armor1==7&&armor2==7&&armor3==7&&armor4==7){//流浪者套套装奖励 
        Attack+=1;
    }
    if(armor1==8&&armor2==8&&armor3==8&&armor4==8){//远古套套装奖励 
        Defense+=6;
    }
    if(armor1==10&&armor2==10&&armor3==10&&armor4==10){//寒冰套套装奖励 
        MaxMagic+=5;
    }
    if(armor1==15&&armor2==15&&armor3==15&&armor4==15){//终末套套装奖励 
        Defense+=4;
        critical_rate+=10;
        MaxMagic+=4;
    }
    Magic=min(MaxMagic,Magic);//可以保留你的魔力
    if(armor1==12&&armor2==12&&armor3==12&&armor4==12){//沙尘套套装奖励 
        critical_rate+=15;
    }
    if(armor1==14&&armor2==14&&armor3==14&&armor4==14){//熔火套套装奖励 
        skill[44]=1;
        sk[44].skilltake=true;
    }else skill[44]=0,sk[44].skilltake=false;
    if(Enchant==1){//附魔 锋利I 
        Attack+=1;
    }
    if(Enchant==2){//附魔 力量I 
        Attack2+=1;
    }
    return;
}

struct drp{
    int drop_num;  
    int prob; //概率 prob/1000 
    int min_amount,max_amount;
    bool isdrop;
}d[114514];//it's a waste of memory 
//but idc
bool add_drop(int num,int drop_num,int prob,int min_amount,int max_amount){//编号 物品编号 概率(prob/1000) 数量(min_amount~max_amount) 
    d[num]=(drp){drop_num,prob,min_amount,max_amount,0};
    d[num].isdrop=Rand(d[num].prob);
    return d[num].isdrop;
}

void drop_clear(){
    for(int i=1;i<=114;i++){ 
        d[i]=(drp){0,0,0,0};
    }
    return;
}

void drop(string name){
    if(!dead) return;
    drop_clear();
    int choose=0;

    if(name=="铁傀儡"){
        add_drop(1,21,1000,2,4); // 100% 掉落2-4个 铁锭 
    }
    if(name=="僵尸"){
        if(!add_drop(1,22,100,1,1)) add_drop(1,15,200,1,1);// 20% 掉落1个 石剑// 10% 掉落1个 铁剑
        if(!add_drop(2,113,50,1,1)) add_drop(2,117,25,1,1);// 2.5% 掉落1个 锁链头盔// 5% 掉落1个 皮革头盔
        if(!add_drop(3,114,50,1,1)) add_drop(3,118,25,1,1);// 2.5% 掉落1个 锁链胸甲 // 5% 掉落1个 皮革胸甲
        if(!add_drop(4,115,50,1,1)) add_drop(4,119,25,1,1);// 2.5% 掉落1个 锁链护腿// 5% 掉落1个 皮革护腿
        if(!add_drop(5,116,50,1,1)) add_drop(5,120,25,1,1);// 2.5% 掉落1个 锁链靴子 // 5% 掉落1个 皮革靴子 
    }
    if(name=="骷髅"){
        choose=1+rand()%3;
        cout<<"获得 "<<choose<<" 个箭!"<<endl;
        arrow[1]+=choose;getch();
        add_drop(1,30,50,1,1);// 5% 掉落1个 弓 
        if(!add_drop(2,113,50,1,1)) add_drop(2,117,25,1,1);// 2.5% 掉落1个 锁链头盔// 5% 掉落1个 皮革头盔
        if(!add_drop(3,114,50,1,1)) add_drop(3,118,25,1,1);// 2.5% 掉落1个 锁链胸甲 // 5% 掉落1个 皮革胸甲
        if(!add_drop(4,115,50,1,1)) add_drop(4,119,25,1,1);// 2.5% 掉落1个 锁链护腿// 5% 掉落1个 皮革护腿
        if(!add_drop(5,116,50,1,1)) add_drop(5,120,25,1,1);// 2.5% 掉落1个 锁链靴子 // 5% 掉落1个 皮革靴子 
    }
    if(name=="流浪者"){
        choose=1+rand()%3;
        cout<<"获得 "<<choose<<" 个箭!"<<endl;
        arrow[1]+=choose;getch();
        add_drop(1,30,62,1,1);// 6.2% 掉落1个 弓 
        if(!add_drop(2,117,41,1,1)) add_drop(2,108,27,1,1);// 2.7% 掉落1个 流浪者之旅帽// 4.1% 掉落1个 锁链头盔 
        if(!add_drop(3,118,41,1,1)) add_drop(3,109,27,1,1);// 2.7% 掉落1个 流浪者之外甲 // 4.1% 掉落1个 锁链胸甲 
        if(!add_drop(4,119,41,1,1)) add_drop(4,110,27,1,1);// 2.7% 掉落1个 流浪者之护腿 // 4.1% 掉落1个 锁链护腿 
        if(!add_drop(5,120,41,1,1)) add_drop(5,111,27,1,1);// 2.7% 掉落1个 流浪者之护履// 4.1% 掉落1个 锁链靴子      
        add_drop(6,161,333,1,1);// 33.3% 掉落1个 寒冰精华 
        add_drop(7,68,5,1,1);// 5% 掉落1个 穿云箭技能书
    }
    if(name=="强壮僵尸"){
        if(!add_drop(1,22,125,1,1)) add_drop(1,15,250,1,1);// 25% 掉落1个 石剑// 12.5% 掉落1个 铁剑
        if(!add_drop(2,113,62,1,1)) add_drop(2,117,31,1,1); // 6.2% 掉落1个 皮革头盔// 3.1% 掉落1个 锁链头盔
        if(!add_drop(3,114,62,1,1)) add_drop(3,118,31,1,1);// 6.2% 掉落1个 皮革胸甲// 3.1% 掉落1个 锁链胸甲
        if(!add_drop(4,115,62,1,1)) add_drop(4,119,31,1,1);// 6.2% 掉落1个 皮革护腿// 3.1% 掉落1个 锁链护腿 
        if(!add_drop(5,116,62,1,1)) add_drop(5,120,31,1,1);// 6.2% 掉落1个 皮革靴子// 3.1% 掉落1个 锁链靴子
        add_drop(6,66,100,1,1);// 10% 掉落1个 重击技能书 
        add_drop(7,72,30,1,1);// 3% 掉落1个 力量技能书 
    }
    if(name=="狙击骷髅"){
        choose=2+rand()%3;
        cout<<"获得 "<<choose<<" 个箭!"<<endl;
        arrow[1]+=choose;getch();
        if(!add_drop(1,112,333,1,1)) add_drop(1,30,500,1,1);// 33.3% 掉落1个 狙击者·弓 // 50% 掉落1个 弓 
        add_drop(2,117,62,1,1);// 6.2% 掉落1个 锁链头盔 
        add_drop(3,118,62,1,1);// 6.2% 掉落1个 锁链胸甲 
        add_drop(4,119,62,1,1);// 6.2% 掉落1个 锁链护腿 
        add_drop(5,120,62,1,1);// 6.2% 掉落1个 锁链靴子 
        add_drop(6,68,200,1,1);// 20% 掉落1个 穿云箭技能书 
    }
    if(name=="尸壳"){
        if(!add_drop(1,22,111,1,1)) add_drop(1,15,250,1,1);// 25% 掉落1个 石剑// 11.1% 掉落1个 铁剑
        if(!add_drop(2,113,55,1,1)) add_drop(2,117,27,1,1); // 5.5% 掉落1个 皮革头盔// 2.7% 掉落1个 锁链头盔
        if(!add_drop(3,114,55,1,1)) add_drop(3,118,27,1,1);// 5.5% 掉落1个 皮革胸甲// 2.7% 掉落1个 锁链胸甲
        if(!add_drop(4,115,55,1,1)) add_drop(4,119,27,1,1);// 5.5% 掉落1个 皮革护腿// 2.7% 掉落1个 锁链护腿 
        if(!add_drop(5,116,55,1,1)) add_drop(5,120,27,1,1);// 5.5% 掉落1个 皮革靴子// 2.7% 掉落1个 锁链靴子
        add_drop(6,162,250,1,1); // 25% 掉落1个 沙尘精华 
    }
    if(name=="蜘蛛"){
        add_drop(1,38,1000,1,1);// 100% 掉落1个 线 
        add_drop(2,74,10,1,1);// 1% 掉落1个 闪避技能书 
    }
    if(name=="雪怪"){
        if(!add_drop(1,22,500,1,1)) add_drop(1,45,250,1,1);// 25% 掉落1个 钻石剑// 50% 掉落1个 铁剑 
        if(!add_drop(2,25,62,1,1)) add_drop(2,48,50,1,1);// 5% 掉落1个 钻石头盔// 6.2% 掉落1个 铁头盔 
        if(!add_drop(3,26,62,1,1)) add_drop(3,49,50,1,1);// 5% 掉落1个 钻石胸甲// 6.2% 掉落1个 铁胸甲 
        if(!add_drop(4,27,62,1,1)) add_drop(4,50,50,1,1);// 5% 掉落1个 钻石护腿;// 6.2% 掉落1个 铁护腿 
        if(!add_drop(5,28,62,1,1)) add_drop(5,51,50,1,1);// 5% 掉落1个 钻石靴子// 6.2% 掉落1个 铁靴子 
        add_drop(6,97,31,1,1);   // 3.1% 掉落1个 冰冻技能书 
        add_drop(7,161,1000,2,3); // 100% 掉落2-3个 寒冰精华 
    }
    if(name=="末影人"){
        add_drop(1,121,500,1,1);  // 50% 掉落1个 末影珍珠 
        add_drop(2,74,40,1,1);  // 4% 掉落1个 闪避技能书 
    }
    if(name=="僵尸猪人"){
        choose=1+rand()%4;
        cout<<"获得 "<<choose<<" 个金粒!"<<endl;
        bag[125]+=choose;getch();
        add_drop(1,33,125,1,1);// 12.5% 掉落1个 金剑 
        add_drop(2,39,50,1,1);// 5% 掉落1个 金头盔 
        add_drop(3,40,50,1,1);// 5% 掉落1个 金胸甲 
        add_drop(4,41,50,1,1);// 5% 掉落1个 金护腿 
        add_drop(5,42,50,1,1);// 5% 掉落1个 金靴子 
    }
    if(name=="猪灵"){
        choose=1+rand()%3;
        cout<<"获得 "<<choose<<" 个金粒!"<<endl;
        bag[125]+=choose;getch();
        add_drop(1,33,125,1,1);// 12.5% 掉落1个 金剑 
        add_drop(2,39,50,1,1);// 5% 掉落1个 金头盔 
        add_drop(3,40,50,1,1);// 5% 掉落1个 金胸甲 
        add_drop(4,41,50,1,1);// 5% 掉落1个 金护腿 
        add_drop(5,42,50,1,1);// 5% 掉落1个 金靴子
    }
    if(name=="远古僵尸1"||name=="远古僵尸2"||name=="远古僵尸3"){
        int level=1;
        if(name=="远古僵尸2") level=2;
        if(name=="远古僵尸3") level=3; 
        if(!add_drop(1,22,166,1,1)) add_drop(1,15,500,1,1);// 50% 掉落1个 石剑// 16.6% 掉落1个 铁剑
        if(!add_drop(2,113,100,1,1)) add_drop(2,117,50,1,1);// 5% 掉落1个 锁链头盔// 10% 掉落1个 皮革头盔
        if(!add_drop(3,114,100,1,1)) add_drop(3,118,50,1,1);// 5% 掉落1个 锁链胸甲 // 10% 掉落1个 皮革胸甲
        if(!add_drop(4,115,100,1,1)) add_drop(4,119,50,1,1);// 5% 掉落1个 锁链护腿// 10% 掉落1个 皮革护腿
        if(!add_drop(5,116,100,1,1)) add_drop(5,120,50,1,1);// 5% 掉落1个 锁链靴子 // 10% 掉落1个 皮革靴子 
        add_drop(6,128,333,1,level);// 33.3% 掉落1个 远古精华
        add_drop(7,66,50,1,1); // 5% 掉落1个 重击技能书
    }
    if(name=="远古骷髅1"||name=="远古骷髅2"||name=="远古骷髅3"){
        int level=1;
        if(name=="远古骷髅2") level=2;
        if(name=="远古骷髅3") level=3; 
        choose=rnd(1,2+level);
        cout<<"获得 "<<choose<<" 个箭!"<<endl;
        arrow[1]+=choose;getch();
        add_drop(1,30,62,1,1);// 6.2% 掉落1个 弓 
        if(!add_drop(2,113,100,1,1)) add_drop(2,117,50,1,1);// 5% 掉落1个 锁链头盔// 10% 掉落1个 皮革头盔
        if(!add_drop(3,114,100,1,1)) add_drop(3,118,50,1,1);// 5% 掉落1个 锁链胸甲 // 10% 掉落1个 皮革胸甲
        if(!add_drop(4,115,100,1,1)) add_drop(4,119,50,1,1);// 5% 掉落1个 锁链护腿// 10% 掉落1个 皮革护腿
        if(!add_drop(5,116,100,1,1)) add_drop(5,120,50,1,1);// 5% 掉落1个 锁链靴子 // 10% 掉落1个 皮革靴子
        add_drop(6,128,333,1,level);// 33.3% 掉落1个 远古精华 
        add_drop(7,68,5,1,1);// 5% 掉落1个 穿云箭技能书 
    }
    if(name=="远古蜘蛛1"||name=="远古蜘蛛2"||name=="远古蜘蛛3"){
        int level=1;
        if(name=="远古蜘蛛2") level=2;
        if(name=="远古蜘蛛3") level=3;
        add_drop(1,128,333,1,level);// 33.3% 掉落1个 远古精华 
        add_drop(2,38,1000,1,2);// 100% 掉落1-2个 线 
        add_drop(3,74,40,1,1);// 4% 掉落1个 闪避技能书 
    }
    if(name=="丛林守护者1"||name=="丛林守护者2"||name=="丛林守护者3"){
        int level=1;
        if(name=="丛林守护者2") level=2;
        if(name=="丛林守护者3") level=3; 
        add_drop(1,128,1000,4+level*4,8+level*4); // 100% 掉落8-12个远古精华 
        choose=1+rand()%7;
        cout<<"获得 "<<item[129+choose].itemname<<" x1!"<<endl;//必出一件随机远古装备 
        bag[129+choose]+=1;getch();
        add_drop(2,66,1000,1,2);// 100% 掉落1-2个 重击技能书 
        add_drop(3,72,400+level*100,1,1);// 50% 掉落1个 力量技能书
        if(level>=3) add_drop(4,item_id["融合核心"],20+level*10,1,1);// 5% 掉落1个 融合核心
    }
    if(name=="寒冰僵尸"){
        if(!add_drop(1,22,166,1,1)) add_drop(1,15,500,1,1);// 50% 掉落1个 石剑// 16.6% 掉落1个 铁剑
        if(!add_drop(2,113,100,1,1)) add_drop(2,117,50,1,1);// 5% 掉落1个 锁链头盔// 10% 掉落1个 皮革头盔
        if(!add_drop(3,114,100,1,1)) add_drop(3,118,50,1,1);// 5% 掉落1个 锁链胸甲 // 10% 掉落1个 皮革胸甲
        if(!add_drop(4,115,100,1,1)) add_drop(4,119,50,1,1);// 5% 掉落1个 锁链护腿// 10% 掉落1个 皮革护腿
        if(!add_drop(5,116,100,1,1)) add_drop(5,120,50,1,1);// 5% 掉落1个 锁链靴子 // 10% 掉落1个 皮革靴子
        add_drop(6,161,333,1,1);// 33.3% 掉落1个 寒冰精华 
        add_drop(7,66,50,1,1);// 5% 掉落1个 重击技能书 
    }
    if(name=="寒冰骷髅"){
        choose=1+rand()%3;
        cout<<"获得 "<<choose<<" 个箭!"<<endl;
        arrow[1]+=choose;getch();    
        add_drop(1,30,62,1,1);// 6.2% 掉落1个 弓 
        if(!add_drop(2,113,100,1,1)) add_drop(2,117,50,1,1);// 5% 掉落1个 锁链头盔// 10% 掉落1个 皮革头盔
        if(!add_drop(3,114,100,1,1)) add_drop(3,118,50,1,1);// 5% 掉落1个 锁链胸甲 // 10% 掉落1个 皮革胸甲
        if(!add_drop(4,115,100,1,1)) add_drop(4,119,50,1,1);// 5% 掉落1个 锁链护腿// 10% 掉落1个 皮革护腿
        if(!add_drop(5,116,100,1,1)) add_drop(5,120,50,1,1);// 5% 掉落1个 锁链靴子 // 10% 掉落1个 皮革靴子
        add_drop(6,161,333,1,1);// 33.3% 掉落1个 寒冰精华
        add_drop(7,68,50,1,1);// 5% 掉落1个 穿云箭技能书 
    }
    if(name=="寒冰蜘蛛"){
        add_drop(1,161,333,1,1);// 33.3% 掉落1个 寒冰精华 
        add_drop(2,38,1000,1,2);// 100% 掉落1-2个 线 
        add_drop(3,74,40,1,1);// 4% 掉落1个 闪避技能书 
    }
    if(name=="烈焰人") {
        add_drop(1,180,333,1,2);// 33.3% 掉落1-2个 熔火精华 
        add_drop(2,122,500,1,2);// 50% 掉落1-2个 烈焰棒 
    }
    if(name=="凋零骷髅") {
        add_drop(1,180,333,1,1);// 33.3% 掉落1个 熔火精华 
        add_drop(2,19,33,1,1);// 33.3% 掉落1个 煤炭 
        add_drop(3,190,25,1,1);// 2.5% 掉落1个 凋零骷髅头 
    }
    if(name=="尸壳1"||name=="尸壳2"||name=="尸壳3") {
        int level=1;
        if(name=="尸壳2") level=2; 
        if(name=="尸壳3") level=3; 
        if(!add_drop(1,22,166,1,1)) add_drop(1,15,500,1,1);// 50% 掉落1个 石剑// 16.6% 掉落1个 铁剑 
        if(!add_drop(2,113,100,1,1)) add_drop(2,117,50,1,1);// 5% 掉落1个 锁链头盔// 10% 掉落1个 皮革头盔
        if(!add_drop(3,114,100,1,1)) add_drop(3,118,50,1,1);// 5% 掉落1个 锁链胸甲 // 10% 掉落1个 皮革胸甲
        if(!add_drop(4,115,100,1,1)) add_drop(4,119,50,1,1);// 5% 掉落1个 锁链护腿// 10% 掉落1个 皮革护腿
        if(!add_drop(5,116,100,1,1)) add_drop(5,120,50,1,1);// 5% 掉落1个 锁链靴子 // 10% 掉落1个 皮革靴子
        add_drop(6,162,333,1,level);// 33.3% 掉落1个 沙尘精华 
        add_drop(7,66,50,1,1);// 5% 掉落1个 重击技能书 
    }
    if(name=="沙骷1"||name=="沙骷2"||name=="沙骷3") {
        int level=1;
        if(name=="沙骷2") level=2;
        if(name=="沙骷3") level=3;
        choose=rnd(1,2+level);
        cout<<"获得 "<<choose<<" 个箭!"<<endl;
        arrow[1]+=choose;getch();
        add_drop(1,30,62,1,1);// 6.2% 掉落1个 弓
        if(!add_drop(2,113,100,1,1)) add_drop(2,117,50,1,1);// 5% 掉落1个 锁链头盔// 10% 掉落1个 皮革头盔
        if(!add_drop(3,114,100,1,1)) add_drop(3,118,50,1,1);// 5% 掉落1个 锁链胸甲 // 10% 掉落1个 皮革胸甲
        if(!add_drop(4,115,100,1,1)) add_drop(4,119,50,1,1);// 5% 掉落1个 锁链护腿// 10% 掉落1个 皮革护腿
        if(!add_drop(5,116,100,1,1)) add_drop(5,120,50,1,1);// 5% 掉落1个 锁链靴子 // 10% 掉落1个 皮革靴子
        add_drop(6,162,333,1,level);// 33.3% 掉落1个 沙尘精华 
        add_drop(7,68,50,1,1);// 5% 掉落1个 穿云箭技能书
    }
    if(name=="沙尘蜘蛛1"||name=="沙尘蜘蛛2"||name=="沙尘蜘蛛3") {
        int level=1;
        if(name=="沙尘蜘蛛2") level=2;
        if(name=="沙尘蜘蛛3") level=3;
        add_drop(1,162,333,1,level);// 33.3% 掉落1个 沙尘精华 
        add_drop(2,38,1000,1,2);// 100% 掉落1-2个 线 
        add_drop(3,74,40,1,1);// 4% 掉落1个 闪避技能书
    }
    if(name=="沙暴之神1"||name=="沙暴之神2"||name=="沙暴之神3") {
        int level=1;
        if(name=="沙暴之神2") level=2;
        if(name=="沙暴之神3") level=3;
        add_drop(1,162,1000,4+level*4,8+level*4); // 100% 掉落8-12个 沙尘精华 
        choose=1+rand()%7;
        cout<<"获得 "<<item[163+choose].itemname<<" x1!"<<endl;//必出一件随机沙尘装备
        bag[163+choose]+=1;getch();
        add_drop(2,74,1000,1,2);// 100% 掉落1-2个 闪避技能书 
        add_drop(3,78,400+level*100,1,1);// 50% 掉落1个 冲刺技能书
        if(level>=3) add_drop(4,item_id["融合核心"],20+level*10,1,1);// 5% 掉落1个 融合核心
    }
    if(name=="末影龙") {
        add_drop(1,item_id["末影水晶"],1000,4,4);// 100% 掉落4个 末影水晶  
        add_drop(2,item_id["末影碎晶"],1000,16,24);// 100% 掉落16-24个 末影碎晶 
        add_drop(3,item_id["龙蛋"],1000,1,1);// 100% 掉落1个 龙蛋 
        add_drop(4,item_id["融合核心"],1000,1,1);// 100% 掉落1个 融合核心 
        add_drop(5,item_id["脆弱化技能书"],1000,1,1);//100% 掉落1个 脆弱化技能书
    }
    if(name=="巨型末影人"){
        add_drop(1,121,600,1,2);  // 60% 掉落1-2个 末影珍珠
        add_drop(2,item_id["末影碎晶"],333,16,24);// 33.3% 掉落1个 末影碎晶
        add_drop(3,item_id["脆弱化技能书"],40,1,1);   // 4% 掉落1个 脆弱化技能书 
    }
    for(int i=1;i<=114;i++){
        if(!d[i].drop_num) break;
        if(d[i].isdrop){
            int amount=rnd(d[i].min_amount,d[i].max_amount);
            cout<<"获得 "<<item[d[i].drop_num].itemname<<" x"<<amount<<" !"<<endl;
            bag[d[i].drop_num]+=amount;getch();
        }
    }
    return;
}

void skill_print(int x){//打印技能介绍 
    switch(x){
        case 1:
            cout<<"\n可以查看敌人的属性,对于比自己过于强大的敌人会侦察失败。"<<endl;
            cout<<"\n提升自己的等级可以使自己的侦察能力增强。"<<endl;   
            cout<<"\n不使用回合。"<<endl;
        break;
        case 2:
            cout<<"\n对敌人重重一击!"<<endl;
            cout<<"\n伤害比原来增加 "<<1+skill[2]<<" 点。"<<endl;
        break;
        case 3:
            cout<<"\n连续造成三次攻击!"<<endl;
            cout<<"\n但伤害仅为原来的 "<<45+skill[3]*5<<"% 。"<<endl;
        break;
        case 4:
            cout<<"\n向一名敌人射出一支穿透箭,可以无视敌人的防御,对在射程范围的所有敌人造成 "<<3+skill[4]*2<<" 点伤害。\n\n注:射程为 10。若与敌人方位重合,默认向前方射击。"<<endl;
        break;
        case 5:
            cout<<"\n下次受到攻击时反弹伤害。"<<endl;
            cout<<"\n伤害为敌人攻击的 "<<25+skill[5]*5<<"% 。"<<endl;
            cout<<"\n不使用回合。"<<endl;
        break;
        case 6:
            cout<<"\n使你进入疯狂模式!"<<endl;
            cout<<"\n防御减少 "<<6+skill[6]*3<<" 点,但增加攻击 "<<skill[6]<<" 点和 "<<skill[6]*5<<"% 暴击率。"<<endl;
            cout<<"\n不使用回合。"<<endl;
        break;
        case 7:
            cout<<"\n增加你的防御 "<<1+skill[7]<<" 点,最多叠加 5 次,不使用回合。"<<endl;
        break;  
        case 8:
            cout<<"\n战斗时,攻击力增加 "<<skill[8]<<" 点。"<<endl;
        break;  
        case 9:
            cout<<"\n战斗时,魔力上限增加 "<<2+skill[9]<<" 点。"<<endl;
        break;
        case 10:
            cout<<"\n战斗时,有 "<<2+skill[10]*2<<"% 的概率躲避敌人的攻击。\n\n关键时刻能救你一命。"<<endl;//hyw 
        break;
        case 11:
            cout<<"\n战斗时,主手攻击有 25% 的概率触发连击,\n\n对敌人额外造成 "<<2+skill[11]<<" 点伤害。"<<endl;
        break;
        case 12:
            cout<<"\n战斗中,当生命≥70%时,\n\n额外增加 "<<1+skill[12]*3<<" 点防御。"<<endl;
        break;
        case 13:
            cout<<"\n发出一道剑气,造成一次远距离的近战攻击。"<<endl;
            cout<<"\n攻击距离提升 "<<skill[13]+1<<" !"<<endl;
        break;
        case 14:
            cout<<"\n向一个方向冲刺移动 "<<3+skill[14]<<" 格!"<<endl;
            cout<<"\n注:必须恰好等于 "<<3+skill[14]<<" 格。可以穿过敌人。"<<endl;
        break;
        case 15:
            cout<<"\n恢复 "<<3+skill[15]<<" 点生命。不使用回合。"<<endl;
        break;
        case 16:
            cout<<"\n将一个主动技能的冷却回合减少 "<<2+(skill[16]==3)<<" !不使用回合。"<<endl;
        break;
        case 17:
            cout<<"\n运用末影之力,将一个敌人的防御减少 "<<2+skill[17]<<" !最多对同一敌人施展 5 次,不使用回合。"<<endl;
        break;
        case 33:
            cout<<"\n运用冰冻之力,将一个敌人冰冻 " <<floor(2+skill[33]*0.4)<<" 回合,期间敌人无法行动。"<<endl;
            cout<<"\n并且期间每回合对敌人造成冰冻伤害 "<<1+skill[33]*2<<" 点。"<<endl;
        break;  
        case 44:
            cout<<"\n发射一颗火球,造成 2 点伤害,射程为 8 。"<<endl;
            cout<<"\n被命中的敌人会获得 1 层燃烧效果,并延长 3 回合的燃烧时间。每有 1 层燃烧效果,敌人每回合便会受到 1 点伤害。\n\n仅装备熔火套装后可使用此技能。"<<endl;
        break;
    }
}

void add_enemy(int enemy_num,string MN,int MH,int MA,int Mrand,int MD,int MS,int dis,int Adis,int xp,int Mmoney){
    enemy[enemy_num].MN=MN;enemy[enemy_num].MaxH=MH;enemy[enemy_num].MH=MH;enemy[enemy_num].MA=MA;enemy[enemy_num].Mrand=Mrand;enemy[enemy_num].MD=MD;enemy[enemy_num].MS=MS;enemy[enemy_num].dis=dis;enemy[enemy_num].Adis=Adis;enemy[enemy_num].xp=xp;enemy[enemy_num].Mmoney=Mmoney;
}

int attackback=0;//反弹 
int player_withertime=0;//凋零时间 

//造成伤害(扣血) 
void Damage(Enemy &E,string MN,int &MH,int MD,int Attack,bool crit,bool rd,int targ,int typ,int special){//选择的敌人 敌人名 敌人血量 *目标*防御(不是敌人!) 攻击 是否可暴击 是否浮动 目标类型 0敌人/1玩家 攻击类型 0主手/1副手 特殊(如果有某些特殊效果的话 
    if(targ==0){//玩家 攻击敌人 
        if(typ==0){//主手攻击 
//          cout<<"你使用 "<<weapon1name[weapon1]<<" 对 "<<MN<<" 进行攻击!"<<endl;
//          Sleep(500);
            int damage;
            if(rd) damage=max((int)((double)Attack-(double)((double)MD/5))*(100+rnd(0,20)-rnd(0,20))/100,(int)(1+Attack/5)); //浮动伤害
            else damage=max((int)((double)Attack-(double)((double)MD/5)),(int)(1+Attack/5));//不浮动
            if(crit&&rand()%100<critical_rate){//暴击 
                sc(4);
                damage=damage*3/2;//伤害+50% 
                cout<<"暴击!"<<endl;
                sc(7);
            }
            cout<<MN<<" 受到了 ";sc(4);cout<<damage<<" 点伤害!"<<endl;sc(7);
            Sleep(500);
            MH-=damage;
            if(sk[11].skilltake&&Rand(250)){//被动 连击技能 
                cout<<"连击 技能触发!"<<endl;
                Sleep(500);
                cout<<"你对敌人使用 "<<weapon1name[weapon1]<<" 顺势打出二次攻击!"<<endl;getch();
                damage=max(2+skill[11]-MD/5,2);
                cout<<MN<<" 受到了 ";sc(4);cout<<damage<<" 点伤害!"<<endl;sc(7);
                MH-=damage;
                Sleep(500);
            }
            cout<<"当前 "<<MN<<" 还有 ";sc(4);cout<<MH<<" 点生命!"<<endl;sc(7);
            Sleep(500);getch();
        }else{//副手攻击 
//          cout<<"你使用 "<<weapon2name[weapon2]<<" 对 "<<MN<<" 进行攻击!"<<endl;
//        Sleep(500);
            int damage;
            if(rd) damage=max((int)((double)Attack-(double)((double)MD/5))*(100+rnd(0,20)-rnd(0,20))/100,(int)(1+Attack/5)); //浮动伤害
            else damage=max((int)((double)Attack-(double)((double)MD/5)),(int)(1+Attack/5));//不浮动
            if(E.skill[47]){
                damage-=E.skill[47];
                damage=max(1,damage);
            }
            if(crit&&rand()%100<critical_rate){//暴击 
                sc(4);
                damage=damage*3/2;//伤害+50% 
                cout<<"暴击!"<<endl;
                sc(7);
            }
            cout<<MN<<" 受到了 ";sc(4);cout<<damage<<" 点伤害!"<<endl;sc(7);
            Sleep(500);
            MH-=damage;
            cout<<"当前 "<<MN<<" 还有 ";sc(4);cout<<MH<<" 点生命!"<<endl;sc(7);getch();         
            if(weapon2==8&&!special){
                if(Rand(250+(armor1==14)*(armor2==14)*(armor3==14)*(armor4==14)*250)){//25% +25%
                    E.burn+=2;
                    E.burntime++;
                    cout<<"敌人着火了!"<<endl;getch();
                }
            }
        }//这个else应该还可以再合并,但我懒了。而且考虑到远程攻击以后可能会有不同的箭矢。
        //尽管目前只有一种... 
    }else{//敌人攻击 
        int damage;
        if(rd) damage=max((int)((double)Attack-(double)((double)MD/5))*(100+rnd(0,20)-rnd(0,20))/100,(int)(1+Attack/5)); //浮动伤害
        else damage=max((int)((double)Attack-(double)((double)MD/5)),(int)(1+Attack/5));//不浮动 
        if(sk[10].skilltake&&skill[10]>0&&rnd(1,100)<=skill[10]*2+2){//被动 闪避技能 
            cout<<"闪避 技能触发!"<<endl;
            Sleep(500);
            if(rand()%2==1) cout<<"你身形向旁一闪,避开了敌人的攻击!"<<endl;//提示语 
            else cout<<"你眼疾手快,闪避开了攻击!"<<endl;//甚至有随机的两种( getch();
        }else{
            if(defend){//副手 护盾 格挡 
                sc(2);
                cout<<"格挡触发!伤害减少 40% !"<<endl;
                sc(7);
                defend=false;
                damage=damage*4/10;//伤害-40% 
            }
            if(attackback==1){//反弹技能 
                attackback=0;
                cout<<"你将伤害反弹给敌人!"<<endl;getch();
                int backdamage=max(damage*(1+skill[5])/10,2);///反弹的伤害 
                damage-=backdamage;//玩家受到的伤害 减少 反弹给敌人的伤害 
                cout<<"敌人受到了 ";
                sc(4);cout<<backdamage<<" 点伤害!"<<endl;sc(7);
                MH-=backdamage; getch();
            }
            if(crit&&rand()%100<critical_rate){//暴击 
                sc(4);
                damage=damage*3/2;//伤害+50% 
                cout<<"暴击!"<<endl;
                sc(7);
            }
            Health-=damage;
            cout<<"你受到了 ";sc(4);cout<<damage<<" 点伤害!"<<endl;sc(7);
            Sleep(500);
            cout<<"你还剩 ";sc(4);cout<<Health<<" 点生命!"<<endl;sc(7);
            if(E.skill[45]){//敌人被动 凋零技能  
                cout<<"你被凋零了!"<<endl;
                player_withertime+=E.skill[45];
                Sleep(500);
            }getch();
        }
    }
    return;
    //所以你还看了更新的代码,你真的这么关注这破游戏的更新与变化吗?
    //让我猜猜,像你这样的人,我认识的,要么是0307,不然就是0310...
    //hmmm... 不然还会是谁?...除了我自己。 
}

int player_dis=0;

void print_distance(){//打印距离 
    for(int round=1;round<=enemy_num;round++){
        if(enemy[round].dead&&!enemy[round].invisible) continue;
        if(!enemy[round].flow){
            cout<<"当前你与 "<<"("<<round<<") "<<enemy[round].MN<<" 的距离为";
            if(enemy[1].skill[46]){
                 sc(6);cout<<"??????"<<endl;sc(7);
            }else{
                cout<<abs(player_dis-enemy[round].dis);
                if(player_dis<enemy[round].dis) cout<<"(前方)";
                if(player_dis>enemy[round].dis) cout<<"(后方)";
                cout<<endl;
            }   
        }else{
            cout<<enemy[round].MN<<" 现在漂浮在空中!"<<endl;
        }
    }
    return;
}

void check_enemy_dead(){//检查敌人死亡 
    int new_enemy_num=enemy_num;
    if(debug) cout<<enemy_num<<endl; 
    for(int round=1;round<=enemy_num;round++){
        if(debug) cout<<round<<" "<<enemy[round].MN<<endl; 
        if(enemy[round].MH<=0&&!enemy[round].dead){//敌人死亡 
            enemy[round].dead=1;
            if(enemy[round].MN!="末影水晶"){
                if(debug) cout<<round<<" "<<enemy[round].MH<<endl; 
                cout<<enemy[round].MN<<" 死亡!"<<endl;//我方胜利 
                Sleep(500);
                if(enemy[round].xp){sc(2);cout<<"获得经验 "<<enemy[round].xp<<" 点"<<endl; sc(7);}
                Experience+=enemy[round].xp;
                Sleep(500);
                int levelnow=Level;
                if(levelup(Experience)>0) cout<<"你升级了!"<<endl;
                Sleep(500);
                if(enemy[round].xp) cout<<"当前等级:"<<Level<<endl;
                Sleep(500);
                if(enemy[round].Mmoney>0) cout<<"你获得 "<<enemy[round].Mmoney<<" 颗绿宝石"<<endl;
                Money+=enemy[round].Mmoney;     
            }
            if(enemy[round].MN=="末影水晶"){
                cout<<"末影水晶爆炸了!"<<endl; 
                if(abs(player_dis-enemy[round].dis)<=2){getch(); 
                    cout<<"你受到了";sc(4);cout<<" 5 点爆炸伤害!"<<endl;sc(7);
                    Health-=5; 
                    Sleep(500);
                    cout<<"你还剩 ";sc(4);cout<<Health<<" 点生命!"<<endl;sc(7);
                }getch();
                cout<<"末影龙的力量被削弱了!"<<endl;
                cout<<"末影龙受到了";sc(4);cout<<" 25 点伤害!"<<endl;sc(7);
                enemy[1].MH-=25;
                int num;
                switch(enemy[round].dis){
                    case 0:num=1;break;
                    case 10:num=2;break;
                    case 30:num=3;break;
                    case 40:num=4;break;
                }
                ender_crystal[num]=0;
            }getch();
            for(int i=1;i<=3;i++){
                if(tasks[i].target_name==enemy[round].MN){
                    tasks[i].now++;
                }
            }
            Sleep(1000); 
        }
    }
    dead=true;
    for(int round=1;round<=enemy_num;round++){//判断所有敌人死亡 
        if(!enemy[round].dead){
            dead=false;
        }
    }
    if(enemy[1].dead&&enemy[1].MN=="末影龙") dead=true;//谁会在留水晶的情况下杀龙呢?...
    if(enemy[1].dead&&enemy[1].MN=="沙暴之神") dead=true; 
    if(dead) return;
    for(int round=1;round<=enemy_num;round++){//补空 
        while(enemy[round].dead&&!enemy[round].invisible&&round+1<=enemy_num){
            new_enemy_num--;
            for(int j=round;j<enemy_num;j++){
                enemy[j]=enemy[j+1];
            }
        }
    }
    enemy_num=new_enemy_num;
    return;
} 

void player_dead(){
    if(Health<=0){
        system("cls");
        if(blessing&&infight){//祝福,复活 保留1/4血 
            cout<<"Notch之祝福生效!"<<endl;
            Sleep(1500);
            Health=0;
            Health+=MaxHealth/4;
            blessing=false;
            cout<<"你回复 25% 生命值,继续战斗!"<<endl; 
            getch();
            system("cls");
        }else{
            reset();
            cout<<"你死了!"<<endl;
            if(Death_Penalty){
                getch();
                cout<<"你损失了 "<<25*Death_Penalty<<"% 的经验!"<<endl;
                Experience-=Experience*Death_Penalty/4; 
            }
            if(Enchant){
                if(rand()%3==0){
                    getch();
                    cout<<"你的附魔失效!"<<endl;
                    Enchant=0;
                }
            }
            Place="村庄"; 
            Sleep(3000);
            Health=2;
            getch(); 
            system("cls");
            if(enemy[1].MN=="末影龙") ender_dragon_health=enemy[1].MH;
            infight=false;
            return;
        }
    }
}

void fight(int MNUM,string MN,int MH,int MA,int Mrand,int MD,int MS,int dis,int Adis,int xp,int Mmoney){//战斗 敌人数量 (第一个):敌人名 敌人生命 敌人攻击 逃跑率(0为无法逃跑) 敌人防御 敌人速度 初始与敌人的距离 敌人攻击距离 胜利后获得的: 经验值 绿宝石 
    SetConsoleTitle("Fight!");

    enemy_num=MNUM;//敌人数量 
    int tot_enemy_num=MNUM;//本场战斗一共出现过几个敌人 

    add_enemy(1,MN,MH,MA,Mrand,MD,MS,dis,Adis,xp,Mmoney);

    infight=true;
    escape=false;
    dead=false;//战斗是否胜利的结果(为什么我要用这个名字? 
    bool back=true;
    bool healthy=false;//健康 被动技能 
    int posioncold=0;//药水冷却 
    player_dis=0;//初始为0 

    defend=0;//原来这个东西以前一直没重置,我才发现。 
    attackback=0;
    player_withertime=0;
    int dragon_breath_L=0,dragon_breath_R=0,dragon_breath_time=0;//龙息L~R time 

    int insane=0,frozen=0;
    int player_frozen=0,player_frozen_level=1,magicshield=0,recover;
    //玩家冰冻回合 魔力护盾层数  
    int powertime=0,powerlevel=0,speedtime=0,speedlevel=0;//药水 
    //力量时间 力量等级 速度时间 速度等级  
    int player_slowdown=99999,player_slowdown_level=1,enemy_slowdown=0; 
    //玩家减速 敌人减速 
    int player_burntime=0,player_burn=0;//玩家灼烧 
    system("cls");
    for(int i=1;i<100;i++) sk[i].cold_now=0;//初始化技能冷却 
    for(int round=1;round<=50;round++){//初始化一坨东西 
        enemy[round].frozen=0;
        enemy[round].heavy_attack=0;
        enemy[round].dead=0;
        enemy[round].skilluse=0;
        enemy[round].burn=0;
        enemy[round].burntime=0;
        enemy[round].flow=0;
        enemy[round].skip_round=0;
        enemy[round].weak=0;
        if(enemy[round].invisible) enemy[round].dead=1,tot_enemy_num--;
        for(int i=1;i<100;i++) enemy[round].skillcold[i]=0;//初始化敌人技能冷却
        enemy[round].skillcold[48]=4;
        enemy[round].skillcold[50]=5;
    }
    if(enemy[1].MN=="末影龙"&&ender_dragon_health>100&&(ender_crystal[1]||ender_crystal[2]||ender_crystal[3]||ender_crystal[4])) enemy[1].flow=1;
    if(skill[12]>0&&sk[12].skilltake==1&&Health>=MaxHealth*0.7){
        cout<<"被动技能 健康 触发:增加 "<<1+skill[12]*3<<" 防御!"<<endl;
        Defense+=1+skill[12]*3;
        healthy=true; 
        Sleep(1000);
    }
    int Min_dis=player_dis;//以右为正方向,将所有单位的距离取最小,并以相对最左的单位设为距离0 
    for(int round=1;round<=enemy_num;round++){
        Min_dis=min(Min_dis,enemy[round].dis);
    }
    player_dis-=Min_dis;
    for(int round=1;round<=enemy_num;round++){
        enemy[round].dis-=Min_dis;
    }
    while(!dead){
        cin.clear();
        cin.sync(); 
        system("cls");
        check_enemy_dead();//检查敌人死亡 
        if(dead){
            win:
            reset();
            cout<<"你胜利了!"<<endl;
            Sleep(1000);
            if(Enchant){
                if(rand()%3==0){getch();
                    cout<<"你的附魔失效!"<<endl;
                    Enchant=0;
                }
            }getch();
            system("cls");
            Sleep(500); 
            infight=false;
            return;
        }
        //一些每回合计算的东西... 

        for(int i=1;i<=100;i++) if(sk[i].cold_now>0) sk[i].cold_now--;//当前技能冷却减少
        for(int round=1;round<=enemy_num;round++){
            for(int i=1;i<=100;i++) if(enemy[round].skillcold[i]>0) enemy[round].skillcold[i]--;//敌人技能冷却减少
        }
        if(posioncold>0) posioncold--;//药水冷却 
        Magic+=min(MaxMagic/10,MaxMagic-Magic);//回复魔力 
        powertime-=min(powertime,1);//力量效果减少 
        if(powertime==0&&powerlevel!=0){
            Attack-=powerlevel;
            powerlevel=0;
        }
        speedtime-=min(speedtime,1);//Speed 
        if(speedtime==0&&speedlevel!=0){
            Speed-=speedlevel;
            speedlevel=0;
        }
        player_slowdown--;//减速 
        if(player_slowdown==0) Speed+=player_slowdown_level;
//      int Min_dis=player_dis;//以右为正方向,将所有单位的距离取最小,并以相对最左的单位设为距离0 
//      for(int round=1;round<=enemy_num;round++){
//          Min_dis=min(Min_dis,enemy[round].dis);
//      }
//      player_dis-=Min_dis;
//      for(int round=1;round<=enemy_num;round++){
//          enemy[round].dis-=Min_dis;
//      }
        //
        //color
        if(player_burntime==0) player_burn=0;
        if(player_burntime>0){//燃烧伤害 玩家 
            cout<<"你浑身着火,受到了 ";sc(4);cout<<player_burn<<" 点灼烧伤害!"<<endl;sc(7);
            Sleep(500);
            Health-=player_burn;
            player_burntime--;
            cout<<"当前你还有 ";sc(4);cout<<Health<<" 点生命!"<<endl;sc(7);getch();
            cout<<"你的灼烧效果剩余 "<<player_burntime<<" 回合"<<endl;getch();
        }
        if(player_withertime>0){//凋零伤害  
            cout<<"你受到凋零效果,受到了 ";sc(4);cout<<2<<" 点伤害!"<<endl;sc(7);
            Sleep(500);
            Health-=2;
            player_withertime--;
            cout<<"当前你还有 ";sc(4);cout<<Health<<" 点生命!"<<endl;sc(7);getch();
            cout<<"你的凋零效果剩余 "<<player_withertime<<" 回合"<<endl;getch();
        }
        if(player_dis>=dragon_breath_L&&player_dis<=dragon_breath_R&&dragon_breath_time){
            cout<<"你受到龙息效果,受到了 ";sc(4);cout<<3<<" 点伤害!"<<endl;sc(7);
            Sleep(500);
            Health-=3;
            cout<<"当前你还有 ";sc(4);cout<<Health<<" 点生命!"<<endl;sc(7);getch(); 
        }
        if(dragon_breath_time) dragon_breath_time--;
        int display_cnt=0,display_x=1;
        if(Health<=0){//失败 
            goto lose;
        }
        player://玩家回合 
        cin.clear();
        cin.sync(); 
        system("cls");
        sc(4);
        cout<<"你的血量 ("<<Health<<"/"<<MaxHealth<<")";
        display_cnt=0,display_x=0;
        for(int round=1;round<=enemy_num;round++){
            if(enemy[round].dead) continue;
            display_cnt++;
            cout<<"  "<<"("<<round<<") "<<enemy[round].MN<<" 当前血量:"<<enemy[round].MH<<"  ";
            if(display_cnt%2==0){
                gotoxy(18,++display_x);
            }
        }
        gotoxy(0,0);
        cout<<endl;
        sc(1);
        cout<<"魔力:"<<Magic<<"/"<<MaxMagic<<endl;
        sc(7);              
        cout<<"攻击:"<<Attack<<endl;
        cout<<"防御:"<<Defense<<endl;
        cout<<"速度:"<<Speed<<endl;
        print_distance();
        if(player_dis>=dragon_breath_L&&player_dis<=dragon_breath_R&&dragon_breath_time){
            sc(5),cout<<"你当前处于龙息中!向左右移动以规避伤害!"<<endl,sc(7);
            cout<<"龙息距离:(后)"<<abs(player_dis-dragon_breath_L)<<" ~ (前)"<<abs(player_dis-dragon_breath_R)<<endl;
        }else{
            if(dragon_breath_time&&dragon_breath_L>player_dis) cout<<"龙息距离:"<<abs(player_dis-dragon_breath_L)<<" ~ "<<abs(player_dis-dragon_breath_R)<<" (前方)"<<endl;
            if(dragon_breath_time&&dragon_breath_R<player_dis) cout<<"龙息距离:"<<abs(player_dis-dragon_breath_R)<<" ~ "<<abs(player_dis-dragon_breath_L)<<" (后方)"<<endl;
        } 

        if(debug) cout<<"player_dis: "<<player_dis<<endl;
        cout<<endl<<"现在是你的回合!"<<endl;
        cout<<"你要?"<<endl;
        cout<<"1,攻击(使用当前主手武器)  2,使用副手装备  3,使用药水  4,跳过本回合  5,技能  6,移动"<<endl;
        if(player_frozen>0){
            sc(3);
            player_frozen--;
            cout<<"你被敌人冰冻,无法行动!"<<endl;
            int damage=1+player_frozen_level;
            cout<<"你受到了 "<<damage<<" 点伤害!"<<endl;
            Health-=damage;
            cout<<"你还剩 "<<Health<<" 点血量!"<<endl;
            sc(7);getch();
            system("cls");
            choose=4;
        }else{
            cin>>choose;
            if(choose==4){
                cout<<"你跳过了本回合"<<endl;getch();
                system("cls"); 
            }
            if(debug&&choose==114514){
                int target_num=1; 
                if(enemy_num>1){//选择目标
                    cout<<"选择你要攻击的敌人:"<<endl;
                    for(int round=1;round<=enemy_num;round++){
                        if(enemy[round].dead) continue;
                        cout<<round<<","<<enemy[round].MN<<endl;
                    }
                    cin>>target_num;
                }else target_num=1; 
                cout<<"天谴!"<<endl;
                Damage(enemy[target_num],enemy[target_num].MN,enemy[target_num].MH,enemy[target_num].MD,114514,1,1,0,0,0);
                cout<<enemy[target_num].MN<<" 变成了一坨焦炭..."<<endl;getch();
            }else if(choose<1||choose>6){
                cout<<"请勿乱输!"<<endl;getch();
                goto player;
            }
        }
        switch(choose){
            case 1:{
                int target_num=1;   
                if(enemy_num>1){//选择目标
                    cout<<"选择你要攻击的敌人:"<<endl;
                    for(int round=1;round<=enemy_num;round++){
                        if(enemy[round].dead) continue;
                        cout<<round<<","<<enemy[round].MN<<endl;
                    }
                    cin>>target_num;
                }else target_num=1; 
                if(target_num==0) goto player;
                if(target_num<1||target_num>enemy_num||enemy[target_num].dead){//目标合法判断(只是防止按错出什么bug而已 
                    cout<<"请勿乱输!"<<endl;getch();
                    goto player;
                }
                Enemy &E=enemy[target_num];
                if(abs(player_dis-E.dis)<=attackdis1&&!E.flow){
                    cout<<"你使用 "<<weapon1name[weapon1]<<" 对 "<<E.MN<<" 进行攻击!"<<endl;
                    Sleep(500);
                    Damage(E,E.MN,E.MH,E.MD,Attack,1,1,0,0,0);
                    system("cls");
                }else{
                    if(enemy[1].skill[46]||E.flow){
                        cout<<"你向面前挥出一剑,却打了个空!"<<endl;getch();
                        system("cls");
                    }else{
                        cout<<"距离太远,无法攻击!"<<endl;   getch();
                        goto player;
                        system("cls");  
                    }
                }
                break;
            }
            case 2:{
                if(weapon2==0){
                    cout<<"副手未装备武器!" <<endl;getch();
                    goto player;
                    system("cls");
                }
                if(weapon2!=0&&weapon2%2==0){//弓 
                    cout<<"你要使用什么箭矢?"<<endl;
                    cout<<"(若未显示则无可用箭矢)"<<endl;
                    for(int i=1;i<=10;i++){
                        if(arrow[i]!=0){
                            cout<<i<<","<<arrowname[i]<<" (剩余 "<<arrow[i]<<" 支)"<<endl;
                        }
                    }
                    int arrow_num;
                    cin>>arrow_num;
                    if(arrow[arrow_num]<=0){//判断 
                        cout<<"请勿乱输!"<<endl;getch();
                        goto player;
                        system("cls");
                    }
                    int target_num=1;   
                    if(enemy_num>1){//选择目标
                        cout<<"选择你要攻击的敌人:"<<endl;
                        for(int round=1;round<=enemy_num;round++){
                            if(enemy[round].dead) continue;
                            cout<<round<<","<<enemy[round].MN<<endl;
                        }
                        cin>>target_num;
                    }else target_num=1; 
                    if(target_num==0) goto player;
                    if(target_num<1||target_num>enemy_num||enemy[target_num].dead){//目标合法判断(只是防止按错出什么bug而已 
                        cout<<"请勿乱输!"<<endl;getch();
                        goto player;
                    }
                    Enemy &E=enemy[target_num];
                    if(abs(player_dis-E.dis)>attackdis2&&!E.flow){
                        if(enemy[1].skill[46]){
                            cout<<"你向面前射出一箭,却并没有命中!"<<endl;
                            arrow[arrow_num]--;//减少箭矢getch();
                            system("cls");
                        }else{
                            cout<<"距离太远,无法攻击!"<<endl;   getch();
                            goto player;
                            system("cls");  
                        }
                    }else{
                        arrow[arrow_num]--;//减少箭矢
                        switch(arrow_num){
                            case 1:
                                cout<<"你使用 "<<weapon2name[weapon2]<<" 对 "<<E.MN<<" 进行攻击!"<<endl;
                                Sleep(500);
                                Damage(E,E.MN,E.MH,E.MD,Attack2,1,1,0,1,0); //方便多了!!!! 
                                system("cls");
                            break;
                        }   
                    }
                }
                if(weapon2%2==1){
                    cout<<"你举起盾牌!下次受到伤害时你的防御大幅增加!"<<endl;//盾牌 getch();
                    defend=true;//防御状态
                    system("cls"); 
                }
                break;  
            }
            case 3:{
                if(posioncold>0){
                    cout<<"药水冷却中!"<<endl;getch();
                    goto player;
                    system("cls");
                }else{
                    cout<<"输入编号以使用药水!"<<endl;
                    cout<<"显示顺序为 药水编号-药水名-数量"<<endl<<endl;
                    cout<<"若未显示则为无药水"<<endl<<endl;
                        for(int i=1001;i<=1020;i++){
                        if(bag[i]>=1) cout<<"药水编号 "<<i<<" "<<potionname[i-1000]<<" 数量:"<<bag[i]<<" 个"<<endl;
                        else continue;
                    }
                    cin>>choose;
                    if(bag[choose]<1||choose<1000){
                        cout<<"你没有此药水!"<<endl;getch();
                        system("cls"); 
                        goto player;
                        break;
                    }
                    switch(choose){
                        case 1001://治疗药水1 
                            posioncold=2;
                            bag[1001]--; 
                            cout<<"你使用了治疗药水!"<<endl;Sleep(500);
                            recover=min(5,MaxHealth/5);
                            cout<<"你回复了 ";sc(4);cout<<recover<<" 点生命!"<<endl;sc(7);Sleep(500);
                            Health+=min(recover,MaxHealth-Health);
                            cout<<"当前你有 ";sc(4);cout<<Health<<" 点生命!"<<endl;sc(7);
                        break;
                        case 1002://魔力药水1 
                            posioncold=2;
                            bag[1002]--;
                            cout<<"你使用了魔力药水!"<<endl;Sleep(500);
                            recover=min(4,MaxMagic/5);
                            cout<<"你回复了 ";sc(1);cout<<recover<<" 点魔力!"<<endl;sc(7);Sleep(500);
                            Magic+=min(recover,MaxMagic-Magic);
                            cout<<"当前你有 ";sc(1);cout<<Magic<<" 点魔力!"<<endl;sc(7);
                        break;
                        case 1003://治疗药水2
                            posioncold=2;
                            bag[1001]--; 
                            cout<<"你使用了治疗药水II!"<<endl;Sleep(500);
                            recover=min(6,MaxHealth/4);
                            cout<<"你回复了 ";sc(4);cout<<recover<<" 点生命!"<<endl;sc(7);Sleep(500);
                            Health+=min(recover,MaxHealth-Health);
                            cout<<"当前你有 ";sc(4);cout<<Health<<" 点生命!"<<endl;sc(7);
                        break;
                        case 1004://魔力药水2 
                            posioncold=2;
                            bag[1002]--;
                            cout<<"你使用了魔力药水!"<<endl;Sleep(500);
                            recover=min(5,MaxMagic/4);
                            cout<<"你回复了 ";sc(1);cout<<recover<<" 点魔力!"<<endl;sc(7);Sleep(500);
                            Magic+=min(recover,MaxMagic-Magic);
                            cout<<"当前你有 ";sc(1);cout<<Magic<<" 点魔力!"<<endl;sc(7);
                        break;
                        case 1009://速度药水1 
                            posioncold=2;
                            bag[1010]--; 
                            speedlevel=1;
                            speedtime=2+1; 
                            cout<<"你使用了速度药水!"<<endl;Sleep(500); 
                            Speed+=speedlevel;
                            cout<<"你增加了 ";sc(3);cout<<"1 点速度!"<<endl;sc(7);Sleep(500);
                            cout<<"持续 2 回合!";
                        break;
                        case 1010://力量药水1 
                            posioncold=2;
                            bag[1009]--; 
                            powerlevel=1;
                            powertime=2+1;
                            cout<<"你使用了力量药水!"<<endl;Sleep(500); 
                            Attack+=powerlevel;
                            cout<<"你增加了 ";sc(4);cout<<"1 点攻击!"<<endl;sc(7);Sleep(500);
                            cout<<"持续 2 回合!";
                        break;
                    }getch();
                    system("cls"); 
                    goto player;
                } 
                break;
            }
            case 4://跳过
               //actually there is nothing!
            break;
            case 5:{//技能 
                cout<<"输入编号以使用技能!"<<endl;
                cout<<"显示顺序为 技能编号-技能名-等级-冷却-魔力\n注:冷却非0的技能处于冷却状态,不可使用!"<<endl<<"\n---\n"<<endl;
                for(int i=1;i<100;i++){
                    if(skill[i]>=1&&sk[i].skilltake==true){
                        cout<<"技能编号 "<<i<<" ";
                        if(sk[i].rarity=='C') sc(7); //C级技能 白色 
                        if(sk[i].rarity=='B') sc(1);//B 蓝 
                        if(sk[i].rarity=='A') sc(5);//A 紫 
                        if(sk[i].rarity=='S') sc(6);//S 黄 
                        cout<<sk[i].skillname;
                        sc(4);//红 
                        cout<<" LV:";
                        if(skill[i]==sk[i].level_max) cout<<"MAX";
                        else cout<<skill[i];
                        if(sk[i].Magic[skill[i]]==0&&sk[i].cold[skill[i]]==0){//判断被动技能 
                            sc(3);//浅蓝 
                            cout<<" <被动技能>";
                            sc(4);//红 
                            cout<<" (不可使用!)";//非常良心的提示。不会真的有人... 
                            sc(7);//白 
                        }
                        if(sk[i].Magic[max(skill[i],1)]!=0){
                            sc(3);//浅蓝 
                            cout<<" 冷却:";
                            cout<<sk[i].cold[skill[i]];//使用后的 
                            cout<<" (现:";
                            cout<<sk[i].cold_now<<")";//当前的,非0即冷却中,每回合减1,不可使用。 
                            sc(1);//蓝 
                            cout<<" 消耗魔力:"<<sk[i].Magic[skill[i]];
                            sc(7);//白
                        }
                        cout<<endl;
                        skill_print(i);
                        cout<<"-------"<<endl; 
                    }
                    else continue;
                }
                sc(7);//白
                cin>>choose;
                if(choose==0) goto player;
                if(skill[choose]<1||sk[choose].skilltake==false){//判断是否可使用 
                    cout<<"你没有此技能!"<<endl;getch();
                    goto player;//返回 
                    system("cls"); 
                    break;
                }
                if(sk[choose].Magic[skill[choose]]==0&&sk[choose].cold[skill[choose]]==0){
                    cout<<"此技能为被动技能!"<<endl;    getch();
                    goto player;
                    system("cls");  
                }

                if(Magic<sk[choose].Magic[skill[choose]]){
                    cout<<"魔力不足!"<<endl;getch();
                    goto player;
                    system("cls");
                    break;
                }
                if(sk[choose].cold_now>0){
                    cout<<"技能冷却中!"<<endl;getch();
                    goto player;
                    system("cls");
                    break;
                }
                int target_num=1;   
                if(sk[choose].direct){//指向性技能 
                    if(enemy_num>1){//选择目标
                        cout<<"选择目标:"<<endl;
                        for(int round=1;round<=enemy_num;round++){
                            if(enemy[round].dead) continue;
                            cout<<round<<","<<enemy[round].MN<<endl;
                        }
                        cin>>target_num;
                    }else target_num=1; 
                    if(target_num<1||target_num>enemy_num||enemy[target_num].dead){//目标合法判断(只是防止按错出什么bug而已 
                        cout<<"请勿乱输!"<<endl;getch();
                        goto player;
                    }
                }
                Enemy &E=enemy[target_num];
                Magic-=sk[choose].Magic[skill[choose]];
                sk[choose].cold_now=sk[choose].cold[skill[choose]];
                if(sk[choose].Magic!=0) cout<<"你使用了 "<<sk[choose].skillname<<endl,Sleep(750);
                switch(choose){
                    case 1://侦察 
                                    cout<<"敌人名称:"<<E.MN<<endl; 
                                    cout<<"敌人攻击:";
                                    if(E.MA>5+Level*2) cout<<"?"<<endl;
                                    else cout<<E.MA<<endl;
                                    cout<<"敌人攻击距离:";
                                    if(E.Adis>3+Level*2) cout<<"?"<<endl;
                                    else cout<<E.Adis<<endl;  
                                    cout<<"敌人防御:";
                                    if(E.MD>10+Level*3) cout<<"?"<<endl;
                                    else cout<<E.MD<<endl;
                                    cout<<"敌人速度:";
                                    if(E.MS>3+Level/5) cout<<"?"<<endl;
                                    else cout<<E.MS<<endl;
                                    cout<<"当前敌人与你的距离:"<<abs(player_dis-E.dis);
                                    Sleep(1000);
getch();
                                    system("cls");
                                    goto player;
                    break;
                    case 2://重击 
                        if(abs(player_dis-E.dis)<=attackdis1&&!E.flow){
                            cout<<"你对敌人重重一击!"<<endl;
                            Damage(E,E.MN,E.MH,E.MD,Attack+1+skill[2],1,1,0,0,0); //good 
                            system("cls");
                        }else{
                            if(enemy[1].skill[46]||E.flow){
                                cout<<"你向面前挥出一剑,却打了个空!"<<endl;
getch();
                                system("cls");
                            }else{
                                cout<<"距离太远,无法攻击!"<<endl; 
                                Magic+=sk[2].Magic[skill[2]];   
                                sk[2].cold_now=0;  
getch();
                                goto player;
                                system("cls");  
                            }
                        }
                    break;
                    case 3://三连击 
                        if(abs(player_dis-E.dis)<=attackdis1&&!E.flow){
                            cout<<"你对敌人连续进行三次攻击!"<<endl;
                            for(int i=1;i<=3;i++){
                                Damage(E,E.MN,E.MH,E.MD,Attack*(skill[3]*5+45)/100,1,1,0,0,0);//可以触发多次被动连击,这是加强吗( 
                                Sleep(250);
                            }
                            Sleep(500);
                            system("cls");
                        }else{
                            if(enemy[1].skill[46]||E.flow){
                                cout<<"你向面前挥出一剑,却打了个空!"<<endl;
getch();
                                system("cls");
                            }else{
                                cout<<"距离太远,无法攻击!"<<endl; 
                                Magic+=sk[3].Magic[skill[3]];   
                                sk[3].cold_now=0;  
getch();
                                goto player;
                                system("cls");  
                            }
                        }
                    break;
                    case 4:{//穿云箭 
                            cout<<"你向 "<<E.MN<<" 射出迅猛一箭!"<<endl; 
                            //加上special 防止附加燃烧
                            bool hit=false;
                            if(player_dis<=E.dis){//向前方
                                for(int round=1;round<=enemy_num;round++){
                                    if(enemy[round].dis>=player_dis&&enemy[round].dis-player_dis<=10){
                                        Damage(enemy[round],enemy[round].MN,enemy[round].MH,0,3+skill[4]*2,0,0,0,1,4);//防御为0 不暴击不浮动
                                        hit=1;
                                    }
                                }
                            }
                            if(player_dis>E.dis){//向后方
                                for(int round=1;round<=enemy_num;round++){
                                    if(enemy[round].dis<=player_dis&&player_dis-enemy[round].dis<=10){
                                        Damage(enemy[round],enemy[round].MN,enemy[round].MH,0,3+skill[4]*2,0,0,0,1,4);//防御为0 不暴击不浮动
                                        hit=1;
                                    }
                                }
                            }   
                            if(!hit){
getch();
                                cout<<"然而并没有命中敌人!"<<endl;
getch();
                            }
                            system("cls");
                        break;
                    }
                    case 5://反弹 
                                    if(attackback==0){
                                        attackback=1; 
                                        cout<<"下次被攻击时将反弹伤害!"<<endl;
                                        Sleep(500);
getch();
                                        goto player;
                                        system("cls");
                                    }else{
                                        cout<<"你已激活反弹!"<<endl;
                                        Magic+=sk[5].Magic[skill[5]];   
                                        sk[5].cold_now=0;
getch();
                                        goto player;
                                        system("cls");
                                    }
                    break;
                    case 6://疯狂 
                                    if(insane==0){
                                        insane=1; 
                                        sc(4);cout<<"你减少了防御,但增加了攻击与暴击率!"<<endl;sc(7);
                                        Defense-=6+skill[6]*3;
                                        Attack+=skill[6];
                                        critical_rate+=skill[6]*5;
                                        Sleep(500);
getch();
                                        goto player;
                                        system("cls");
                                    }else{
                                        cout<<"你取消了疯狂"<<endl;
                                        Defense+=6+skill[6]*3;
                                        Attack-=skill[6];
                                        critical_rate-=skill[6]*5;
                                        insane=0;
getch();
                                        goto player;
                                        system("cls");
                                    }
                    break;
                    case 7://魔力护盾 
                        if(magicshield<5){
                            Defense+=1+skill[7];
                            sc(1);cout<<"你将魔力凝结成护盾!"<<endl;sc(7);
                            cout<<"你增加了 "<<1+skill[7]<<" 点防御!"<<endl;
                            cout<<"你已经使用了 "<<magicshield<<" 次,最多可使用 5 次"<<endl; 
                            magicshield++;
                            Sleep(500);
getch();
                            system("cls");
                            goto player;
                        }else{
                            cout<<"你已使用了 5 次技能了!"<<endl;
                            Magic+=sk[5].Magic[skill[5]];   
                            sk[5].cold_now=0;
getch();
                            system("cls"); 
                            goto player;
                        }          
                    break;
                    case 8://力量 

                    break;
                    case 9://魔力精通 

                    break;
                    case 10://闪避 

                    break;
                    case 11://连击 

                    break;
                    case 12://健康 

                    break;
                    case 13://空气斩 
                        if(abs(player_dis-E.dis)+skill[13]+1<=attackdis1||E.flow){
                            cout<<"你对敌人凌空一击!"<<endl;
                            Damage(E,E.MN,E.MH,E.MD,Attack,1,1,0,0,0);
                            system("cls");
                        }else{
                            if(enemy[1].skill[46]){
                                cout<<"你向面前挥出一剑,却打了个空!"<<endl;
getch();
                                system("cls");
                            }else{
                                cout<<"距离太远,无法攻击!"<<endl; 
                                Magic+=sk[13].Magic[skill[13]];   
                                sk[13].cold_now=0;  
getch();
                                goto player;
                                system("cls");  
                            }
                        }
                    break;
                    case 14://冲刺
                        cout<<"1,向前  2,向后"<<endl;
                        cin>>choose;
                        if(choose>2||choose<1){
                            cout<<"无效的操作!"<<endl;
                            Magic+=sk[14].Magic[skill[14]];   
                            sk[14].cold_now=0;
getch();
                            goto player;
                        }
                        cout<<name<<" 冲刺!"<<endl;
                        switch(choose){
                            case 1://前进 
                                player_dis+=(3+skill[14]); 
                            break;
                            case 2://后退 
                                player_dis-=(3+skill[14]);  
                            break; 
                        }
                        Sleep(500);
                        if(enemy[1].skill[43]==1&&player_dis<0){//狭小场地
                            cout<<"然而,在这狭小的场地里根本无法拉开距离..."<<endl;
getch();
                            player_dis=0;
getch();
                        }
                        if(enemy[1].skill[43]==1&&player_dis>20){//狭小场地
                            cout<<"然而,在这狭小的场地里根本无法拉开距离..."<<endl;
getch();
                            player_dis=20;
getch();
                        }
                        if(enemy[1].skill[51]==1&&player_dis<0){//狭小场地
                            cout<<"然而,在这狭小的场地里根本无法拉开距离..."<<endl;
getch();
                            player_dis=0;
                            print_distance();
getch();
                        }
                        if(enemy[1].skill[51]==1&&player_dis>16){//狭小场地
                            cout<<"然而,在这狭小的场地里根本无法拉开距离..."<<endl;
getch();
                            player_dis=16;
                            print_distance();
getch();
                        }
                        print_distance();
getch();
                        system("cls");
                    break; 
                    case 15://治疗 
                        recover=3+skill[15];
                        Sleep(500); 
                        cout<<"你回复了 ";sc(4);cout<<recover<<" 点生命!"<<endl;sc(7);
                        Sleep(500);
                        Health+=min(recover,MaxHealth-Health);
                        cout<<"当前你有 ";sc(4);cout<<Health<<" 点生命!"<<endl;sc(7);
getch();
                        system("cls");
                        goto player;
                    break;
                    case 16://冥想术 
                        cout<<"输入编号以减少指定技能冷却!"<<endl;
                        cin>>choose;
                        if(skill[choose]<1||sk[choose].skilltake==false){//判断是否可使用 
                            cout<<"你没有此技能!"<<endl;
getch();
                            Magic+=sk[16].Magic[skill[16]];   
                            sk[16].cold_now=0;
                            goto player;//返回 
                        }
                        if(sk[choose].Magic[skill[choose]]==0&&sk[choose].cold[skill[choose]]==0){//判断被动技能 
                            cout<<"此为被动技能!"<<endl;
getch();
                            Magic+=sk[16].Magic[skill[16]];   
                            sk[16].cold_now=0;
                            goto player;//返回 
                        }
                        sk[choose].cold_now=max(0,sk[choose].cold_now-(2+(skill[16]==3)));
                        Sleep(500);
                        cout<<"当前 技能 "<<sk[choose].skillname<<" 的冷却为 "<<sk[choose].cold_now<<" !"<<endl;
                        if(sk[choose].cold_now==0) cout<<sk[choose].skillname<<" 冷却完毕!"<<endl;
                        Sleep(500);
getch();
                        goto player;
                    break;
                    case 17:{//脆弱化
                        if(E.weak<5){
                            sc(5);cout<<"你施展末影之力将敌人的防御削弱!"<<endl;sc(7);
                            E.MD-=2+skill[17];
                            E.weak++;
                            Sleep(500);
getch();
                            goto player;    
                        }else{
                            cout<<"此敌人已经被脆弱化 5 次了!"<<endl;
                            Magic+=sk[17].Magic[skill[17]];   
                            sk[17].cold_now=0;  
getch();
                            goto player;
                        }

                        break;
                    }
                    case 33:{//冰冻
                        sc(3);cout<<"你使用极寒的力量裹挟着狂风将敌人冰冻!"<<endl;sc(7);
                        E.frozen=floor(2+skill[33]*0.4); 
                        Sleep(500);
getch();
                        system("cls");  
                        break;
                    }
                    case 44://火球 
                        if(abs(player_dis-E.dis)<=8||E.flow){
                            cout<<"你发射了一颗火球!"<<endl;
                            E.burn++;
                            E.burntime+=3;
                            cout<<"敌人着火了!"<<endl; 
                            Damage(E,E.MN,E.MH,0,1+skill[44],0,0,0,1,44);
                            //这个东西由于一开始设定为远程攻击,导致有可能被当成熔火弓箭加上额外一层燃烧,那么就加上一个special变量吧 
                            system("cls"); 
                        }else{
                            if(enemy[1].skill[46]){
                                cout<<"你发射了一颗火球,却没有命中!"<<endl;
getch();
                                system("cls");
                            }else{
                                cout<<"距离太远,无法攻击!"<<endl; 
                                Magic+=sk[44].Magic[skill[44]];   
                                sk[44].cold_now=0;  
getch();
                                goto player;
                                system("cls");  
                            }
                        }
                    break;
                }
                break;  
            }
            case 6:
                cout<<"1,向前移动  2,向后移动";//移动 
                if(enemy[1].Mrand>0&&enemy[1].Mrand<=100) cout<<"  3,逃跑"<<endl; //不可逃跑则不显示 
                else cout<<endl;
                cin>>choose;
                if(choose>3||choose<1){//某人的要求...? 
                    cout<<"无效的操作!"<<endl;
getch();
                    goto player;
                    system("cls"); 
                }
                int move=choose;
                if(move==3){
                    if(enemy[1].Mrand==0||enemy[1].Mrand>100){//不可逃跑 
                        cout<<"请勿乱输!"<<endl;
getch();
                        goto player;
                    }else{
                        if(rand()%100<enemy[1].Mrand){
                            cout<<"逃跑成功!"<<endl;
getch();
                            system("cls");
                            escape=true;
                            infight=false;
                            return;
                        }else{
                            cout<<"逃跑失败!"<<endl;
getch();
                            system("cls");
                            goto enemy_turn;
                        }
                    }
                }
                cout<<"移动多少格?"<<endl;
                cin>>choose;
                if(choose>Speed||choose<0){
                    cout<<"请勿乱输!移动距离必须小于等于速度且不为负!"<<endl;
getch();
                    goto player; 
                }          
                switch(move){
                    case 1://前进 
                        player_dis+=choose;
                        cout<<name<<" 前进了 "<<choose<<" 格!"<<endl;
                    break;
                    case 2://后退 
                        player_dis-=choose;
                        cout<<name<<" 后退了 "<<choose<<" 格!"<<endl;
                    break;
                }
                Sleep(500);
                print_distance();
getch();
                system("cls");
                if(enemy[1].skill[43]==1&&player_dis<0){//狭小场地
                    cout<<"然而,在这狭小的场地里根本无法拉开距离..."<<endl;
getch();
                    player_dis=0;
                    print_distance();
getch();
                }
                if(enemy[1].skill[43]==1&&player_dis>20){//狭小场地
                    cout<<"然而,在这狭小的场地里根本无法拉开距离..."<<endl;
getch();
                    player_dis=20;
                    print_distance();
getch();
                }
                if(enemy[1].skill[51]==1&&player_dis<0){//狭小场地
                    cout<<"然而,在这狭小的场地里根本无法拉开距离..."<<endl;
getch();
                    player_dis=0;
                    print_distance();
getch();
                }
                if(enemy[1].skill[51]==1&&player_dis>16){//狭小场地
                    cout<<"然而,在这狭小的场地里根本无法拉开距离..."<<endl;
getch();
                    player_dis=16;
                    print_distance();
getch();
                }
                system("cls");
            break;
        }
        if(help&&enemy[1].MH>8){//help 
            cout<<"一名士兵向敌人射了一箭!"<<endl;
            Damage(enemy[1],MN,MH,MD,6,0,1,0,1,0);//伤害固定为6,不暴击 浮动 
        }
        for(int round=1;round<=enemy_num;round++){
            if(enemy[round].burntime==0) enemy[round].burn=0;
            if(enemy[round].burntime>0){//燃烧伤害 - enemy 
                cout<<enemy[round].MN<<" 浑身着火,受到了 ";sc(4);cout<<enemy[round].burn<<" 点灼烧伤害!"<<endl;sc(7);
                enemy[round].MH-=enemy[round].burn;
                enemy[round].burntime--;
                Sleep(500);
                cout<<"当前 "<<enemy[round].MN<<" 还有 ";sc(4);cout<<enemy[round].MH<<" 点生命!"<<endl;sc(7);
getch();
                cout<<enemy[round].MN<<" 的灼烧效果剩余 "<<player_burntime<<" 回合"<<endl;
getch();
            }   
        }
        system("cls");
        check_enemy_dead();//检查敌人死亡
        if(dead){
           goto win;
        }
        if(!healthy&&Health>=MaxHealth*0.7&&skill[12]>0&&sk[12].skilltake==1){
            cout<<"被动技能 健康 触发:增加 "<<1+skill[12]*3<<" 防御!"<<endl;
            Defense+=1+skill[12]*3;
            healthy=true; 
            Sleep(1000);
        }
        if(healthy&&Health<MaxHealth*0.7&&skill[12]>0&&sk[12].skilltake==1){
            Defense-=1+skill[12]*3;
            healthy=false; 
        }

        enemy_turn: 
        system("cls");

        /******************敌人回合*****************/ 
    for(int round=1;round<=enemy_num;round++){
        system("cls");
        Enemy &E=enemy[round];
        if(E.dead) continue;
        if(E.skip_round){//跳过回合 
            E.skip_round--;
            continue;
        }
        if(E.MN=="末影水晶"&&enemy[1].MH>=enemy[1].MaxH){
            continue;
        } 
        sc(4);
        cout<<"你的血量 ("<<Health<<"/"<<MaxHealth<<")";
        display_cnt=0,display_x=0;
        for(int round2=1;round2<=enemy_num;round2++){
            if(enemy[round2].dead) continue;
            display_cnt++;
            cout<<"  "<<"("<<round2<<") "<<enemy[round2].MN<<" 当前血量:"<<enemy[round2].MH<<"  ";
            if(display_cnt%2==0){
                gotoxy(18,++display_x);
            }
        }
        gotoxy(0,0);
        cout<<endl;
        sc(1);
        cout<<"魔力:"<<Magic<<"/"<<MaxMagic<<endl;
        sc(7);              
        cout<<"攻击:"<<Attack<<endl;
        cout<<"防御:"<<Defense<<endl;
        cout<<"速度:"<<Speed<<endl;
        print_distance();
        cout<<endl<<endl<<"("<<round<<") "<<E.MN<<" 的回合!"<<endl; 
        if(E.frozen>0){
            E.heavy_attack=0;
            sc(3);
            E.frozen--;
            cout<<"敌人被冰冻,无法行动!"<<endl;
            int damage=1+skill[33]*2;
            cout<<"敌人受到了 "<<damage<<" 点伤害!"<<endl;
            E.MH-=damage;
            cout<<"敌人还剩 "<<E.MH<<" 点血量!"<<endl;
            sc(7);
getch();
            system("cls");
            continue;
        }
        if((E.MN=="末影龙"&&E.flow)&&(E.MH<=100||(!ender_crystal[1]&&!ender_crystal[2]&&!ender_crystal[3]&&!ender_crystal[4]))){
            E.flow=false;
            cout<<"末影龙在空中盘旋了数圈..."<<endl;
            Sleep(1000);
            cout<<"巨大的气流随之鼓动..."<<endl;
            Sleep(1000);
            cout<<"末影龙降落在了你的前方!"<<endl;
getch();
            E.skip_round=1;
            E.dis=player_dis+20;
            continue;
        }
        for(int i=100;i>1;i--){//技能 
            if(E.skilluse==1) break;
            if(E.skillcold[i]<=0&&E.skill[i]>=1){
                switch(i){
                    case 2://重击 
                        if(abs(player_dis-E.dis)<=E.Adis){
                            E.skillcold[2]=sk[2].cold[E.skill[2]]+1;
                            cout<<E.MN<<" 使用了 "<<skillname[2]<<endl;
                            Sleep(1000);
                            cout<<E.MN<<"对你重重一击!"<<endl;
                            Damage(E,E.MN,E.MH,Defense,E.MA+1+E.skill[2],0,1,1,0,0);
getch();
                            E.skilluse=1;
                        }
                    break;
                    case 4://穿云箭 
                        if(abs(player_dis-E.dis)<=10){
                            E.skillcold[4]=skillcold[4]+1;
                            cout<<MN<<" 使用了 "<<skillname[4]<<endl;
                            Sleep(1000);
                            cout<<E.MN<<" 射出迅猛一箭!"<<endl;
                            Damage(E,E.MN,E.MH,0,3+E.skill[4]*2,0,0,1,1,0);
getch();
                            E.skilluse=1;
                        }
                    break;
                    case 15:
                        for(int round2=1;round2<=enemy_num;round2++){
                            if(enemy[round2].MH<enemy[round2].MaxH){
                                cout<<E.MN<<" 使用了 "<<skillname[15]<<endl;
                                recover=2+E.skill[15];
                                E.skillcold[15]=skillcold[15]+1;
                                if(E.MN=="末影水晶") E.skillcold[15]=0,recover=1;
                                Sleep(500); 
                                cout<<enemy[round2].MN<<" 回复了 ";sc(4);cout<<recover<<" 点生命!"<<endl;sc(7);
                                Sleep(500);
                                enemy[round2].MH+=min(recover,enemy[round2].MaxH-enemy[round2].MH);
                                cout<<"当前 "<<enemy[round2].MN<<" 有 ";sc(4);cout<<enemy[round2].MH<<" 点生命!"<<endl;sc(7);
getch();
                                E.skilluse=1;
                                break;
                            }
                        }

                    break;
                    case 33://冰冻
                            E.skillcold[33]=skillcold[33]+1;
                            cout<<E.MN<<" 使用了 "<<skillname[33]<<endl;
                            Sleep(1000);
                            E.skillcold[33]++;//it's too op,so i nerf it
                            sc(3);
                            cout<<E.MN<<" 使用极寒之力将你冰冻!"<<endl;
                            sc(7);
                            player_frozen=max(player_frozen,(int)floor(2+E.skill[33]*0.6));
                            player_frozen_level=max(player_frozen_level,E.skill[33]); 
                            Sleep(1000);
getch();
                            E.skilluse=1;
                    break;
                    //怪物独有的技能 
                    case 41://减速箭 
                        if(abs(player_dis-E.dis)<=10){
                            E.skillcold[41]=skillcold[41]+1;
                            cout<<E.MN<<" 使用了 "<<skillname[41]<<endl;
                            Sleep(1000);
                            cout<<E.MN<<" 射出了一支减速箭!"<<endl;
                            int damage=3+E.skill[41]; 
                            player_slowdown=max(player_slowdown,3);
                            player_slowdown_level=max(player_slowdown_level,E.skill[41]);
                            Speed-=E.skill[41];
                            cout<<"你被减速了!"<<endl; //这玩意原来是真伤,没改代码我都不记得 
                            Damage(E,E.MN,E.MH,0,3+E.skill[41],0,0,1,1,0);
getch();
                            E.skilluse=1;
                        }
                    break;
                    case 42://巨力重拳 
                        if(E.heavy_attack==2){//准备就绪!
                            E.skillcold[42]=skillcold[42]+1;
                            cout<<E.MN<<" 使用了 "<<skillname[42]<<endl;
                            Sleep(1000);
                            if(abs(player_dis-E.dis)<=4){//处于攻击范围内 
                                cout<<E.MN<<"抬起巨大的双拳,用尽全力对着你重重一击!!!"<<endl; 
getch();
                                cout<<"巨大的蛮力垂直对你砸下!!!"<<endl;
                                Sleep(1000);
getch(); 
                                Damage(E,E.MN,E.MH,Defense,E.MA*2,0,0,1,0,0);//双倍伤害 不暴击 不浮动 
getch();
                                E.heavy_attack=0;
                                E.skilluse=1;
                            }else{//空拳 
                                E.skillcold[42]=skillcold[42]+1;
                                cout<<E.MN<<"抬起巨大的双拳,用尽全力对着面前重重一击!!!"<<endl;getch();
                                cout<<"巨大的蛮力垂直砸下!!!"<<endl;
                                Sleep(1000);getch();
                                cout<<"然而,"<<E.MN<<"并没有命中你。"<<endl;
                                Sleep(1000);getch();
                                E.heavy_attack=0;
                                E.skilluse=1;
                            }
                        }//蓄力2 
                        if(E.heavy_attack==1){
                            E.skillcold[42]=0;
                            E.heavy_attack=2;
                            cout<<E.MN<<" 似乎已经准备好了什么..."<<endl;
                            Sleep(1000);
                            cout<<E.MN<<" 周围充满了狂躁的力量..."<<endl;
                            Sleep(1000);getch();
                            E.skilluse=1;
                        }//蓄力1 
                        if(abs(player_dis-E.dis)<=E.Adis+1&&E.heavy_attack==0&&E.skillcold[42]==0){
                            E.skillcold[42]=0;
                            E.heavy_attack=1;
                            cout<<E.MN<<"  似乎在准备着什么..."<<endl;
                            Sleep(1000);
                            cout<<E.MN<<" 周围似乎充满了力量..."<<endl;
                            Sleep(1000);getch();
                            E.skilluse=1;
                        }
                    break;
                    case 44://火球 
                        if(abs(player_dis-E.dis)<=10){
                            E.skillcold[44]=skillcold[44]+1;
                            cout<<E.MN<<" 使用了 "<<skillname[44]<<endl;
                            Sleep(1000);
                            cout<<E.MN<<" 发射了火球!"<<endl;
                            int damage=1+E.skill[44]; 
                            player_burn++;
                            player_burntime=3;
                            cout<<"你着火了!"<<endl; 
                            Damage(E,E.MN,E.MH,0,1+enemy[1].skill[44],0,0,1,1,0);getch();
                            E.skilluse=1;
                        }
                    break;
                    case 48://呼救(蠹虫) 
                        if(enemy_num<9){
                            E.skillcold[48]=skillcold[48]+1;
                            cout<<E.MN<<" 大声呼救......"<<endl;
                            Sleep(1000);
                            cout<<"更多的蠹虫出现了!"<<endl;
                            enemy[++enemy_num].skill[48]=1;
                            enemy[enemy_num].skillcold[48]=skillcold[48]+1;
                            enemy[enemy_num].skip_round=1;//跳过一个回合 
                            add_enemy(enemy_num,"蠹虫",12,3,0,10,3,E.dis+rnd(-2,2),2,100,1);getch();
                            E.skilluse=1;
                        }
                    break;
                    case 49://龙息 
                        E.skillcold[49]=skillcold[49]+1;
                        cout<<E.MN<<" 深吸了一口气...... "<<endl;
                        Sleep(1000);
                        cout<<E.MN<<" 向你吐出了一口龙息!"<<endl;
                        dragon_breath_L=player_dis-2;
                        dragon_breath_R=player_dis+2;
                        dragon_breath_time=4;getch();
                        E.skilluse=1;
                    break;
                    case 50://召唤末影人(末影龙) 
                        if(enemy_num<9){
                            E.skillcold[50]=skillcold[50]+1;
                            cout<<E.MN<<" 发出一声响彻天际的龙吟!"<<endl;
                            Sleep(1000);
                            cout<<"一只末影人感应到并闪现到你的面前!"<<endl;
                            enemy[++enemy_num].skip_round=1;//跳过一个回合
                            add_enemy(enemy_num,"末影人",40,7,30,-10,9999,player_dis+rnd(-10,10),3,300,3);getch();
                            E.skilluse=1;
                        }
                    break;
                    case 52://沙塑(沙暴之神) 
                        if(enemy_num<9){
                            E.skillcold[52]=skillcold[52]+1;
                            cout<<E.MN<<" 使用了 "<<skillname[52]<<endl;
                            Sleep(1000);
                            cout<<"风暴之中出现了一个黄沙塑造而成的傀儡!"<<endl;
                            enemy[++enemy_num].skip_round=1;//跳过一个回合
                            add_enemy(enemy_num,"黄沙傀儡",15,7,30,0,1,E.dis+rnd(-2,2),6,0,0);getch();
                            E.skilluse=1;
                        }
                    break;
                }
            }
        } 
        if(Health<=0){
            goto lose;
        }
        if(E.skilluse==1){
            E.skilluse=0;
            continue;
        }
        if(E.MN=="末影龙"&&E.flow){
            cout<<"末影龙在空中盘旋着..."<<endl;
getch();
            continue;
        }

        if(E.Adis<5){//近战怪物AI 
            if(abs(player_dis-E.dis)<=E.Adis){
                if(E.Mrand==103&&Rand(150)){//15%不攻击,随机移动
                    if(Rand(500)) goto sand1;
                    else goto sand2;
                }
                switch(Mrand){
                    case 101:
                        cout<<E.MN<<"抬起巨大的拳头砸向你!"<<endl;//丛林守护者 特殊提示
                    break;  
                    case 102:
                        cout<<E.MN<<"伸出双手向你攻来!"<<endl;//巨型雪怪 特殊提示
                    break;
                    case 103:
                        cout<<"一片黄沙聚为一体,向你袭来!"<<endl;//沙暴之神 特殊提示 
                    break;  
                    case 104:
                        cout<<E.MN<<" 挥舞着龙爪抓向你!"<<endl;//末影龙 
                    break; 
                    default:
                        cout<<E.MN<<" 对 "<<name<<" 进行攻击!"<<endl; 
                    break;  
                }
                Sleep(500);
                Damage(E,E.MN,E.MH,Defense,E.MA,0,1,1,0,0);//怪物一般不暴击 
                //沙暴之神 
                if(E.Mrand==103&&Rand(400)){//40%在攻击后再次随机移动
                    cout<<"而后又是";
                    if(Rand(333)) goto sand1;
                    else goto sand2;
                }
                system("cls");  
            }else{
                sand1:
                int s=E.MS;
                if(E.Mrand==103) E.MS=1+rnd(0,E.MS-1);
                if(abs(player_dis-E.dis)<=E.MS) E.dis=player_dis; 
                if(player_dis>E.dis) E.dis+=E.MS;
                if(player_dis<E.dis) E.dis-=E.MS;
                E.MS=s;
                switch(Mrand){
                    case 101:
                        cout<<E.MN<<" 拖着沉重的身体,向你袭来..."<<endl; //丛林守护者 特殊提示 
                    break;  
                    case 102:
                        cout<<E.MN<<"来势汹汹的冲来!"<<endl;//巨型雪怪 特殊提示
                    break;
                    case 103:
                        cout<<"一阵风沙吹过..."<<endl;//沙暴之神 特殊提示 
getch();
                        cout<<"沙暴之神的位置改变了!"<<endl; 
                    break;  
                    case 104:
                        cout<<E.MN<<" 向你扑闪着翅膀向你飞来!"<<endl;//末影龙 
                    break; 
                    default:
                        cout<<E.MN<<" 向 "<<name<<" 逼近了!"<<endl;
                    break;  
                }
                Sleep(500);
                print_distance();
                if(enemy[1].skill[46]){
                    if(rand()%2){
                        sc(6);
                        cout<<"你的直觉告诉你,敌人似乎接近了你..."<<endl;//提示 
                        sc(2); 
                    }
                }
getch();
                system("cls");
            } 
        }else{//远程怪物AI 
            if(abs(player_dis-E.dis)<=E.Adis/3&&back==true){//与玩家距离小于1/3攻击距离,后退 
                sand2: 
                int s=E.MS;
                if(E.Mrand==103) E.MS=1+rand()%(E.MS-1);    //随机移动 
                if(player_dis>E.dis) E.dis-=E.MS;
                if(player_dis<E.dis) E.dis+=E.MS;
                E.MS=s;
                if(E.Mrand==103){
                    cout<<"一阵风沙吹过..."<<endl;//沙暴之神 特殊提示 
getch();
                    cout<<"沙暴之神的位置改变了!"<<endl; 
                }else cout<<E.MN<<" 后退了!"<<endl;
                Sleep(500);
                print_distance();
getch();
                system("cls");
                back=false; 
            }else{
                back=true;
                if(abs(player_dis-E.dis)>E.Adis){//距离过远,前进 
                    if(abs(player_dis-E.dis)<=E.MS) E.dis=player_dis; 
                    if(player_dis>E.dis) E.dis+=E.MS;
                    if(player_dis<E.dis) E.dis-=E.MS;
                    cout<<E.MN<<" 向 "<<name<<" 逼近了!"<<endl;
                    Sleep(500);
                    print_distance();
getch();
                    system("cls");
                }else{//与玩家距离适合,攻击 
                    cout<<E.MN<<" 对 "<<name<<" 进行攻击!"<<endl;
                    Sleep(500);
                    Damage(E,E.MN,E.MH,Defense,E.MA,0,1,1,1,0);//怪物一般不暴击 
                    //u1s1这个typ改不改没啥区别... 
                    system("cls");
                } 
            }
        }
        if(Health<=0){
            goto lose;
        }

        if(!healthy&&Health>=MaxHealth*0.7&&skill[12]>0&&sk[12].skilltake==1){
            cout<<"被动技能 健康 触发:增加 "<<1+skill[12]*3<<" 防御!"<<endl;
            Defense+=1+skill[12]*3;
            healthy=true; 
            Sleep(200);
        }
        if(healthy&&Health<MaxHealth*0.7&&skill[12]>0&&sk[12].skilltake==1){
            Defense-=1+skill[12]*3;
            healthy=false; 
        }
    }
        if(Health<=0){
            lose:
            player_dead();
            system("cls");
            if(!infight) return;
        }
    }
    infight=false;
    return; 
}

void SetFight(string name){//预设战斗 
    if(name=="僵尸"){
        if(!dragon_dead){
            fight(1,"僵尸",20,4,25,0,3,5,2,100,1);
            drop("僵尸");     
        }else{
            fight(1,"僵尸",25,7,25,10,3,5,2,200,2);
            drop("僵尸");
        }
    }
    if(name=="骷髅"){
        if(!dragon_dead){
            fight(1,"骷髅",20,4,20,0,1,6+rand()%4,8,200,2);
            drop("骷髅");
        }else{
            fight(1,"骷髅",25,6,20,10,2,6+rand()%4,8,350,3);
            drop("骷髅");
        }
    }
    if(name=="强壮僵尸"){
        if(!dragon_dead){
            enemy[1].skill[2]=1;
            fight(1,"强壮僵尸",25,5,30,5,3,5,2,250,3);
            drop("强壮僵尸");
        }else{  
            enemy[1].skill[2]=2;
            fight(1,"强壮僵尸",32,8,30,15,3,5,2,450,4);
            drop("强壮僵尸");
        }
    }
    if(name=="末影人"){
        if(!dragon_dead){
            fight(1,"末影人",40,7,30,-10,9999,5,3,300,3);
            drop("末影人");    
        }else{
            fight(1,"末影人",50,9,30,5,9999,5,3,450,4);
            drop("末影人"); 
        }

    }
    if(name=="巨型末影人"){
        fight(1,"巨型末影人",70,10,30,15,9999,5,3,600,6);
        drop("巨型末影人"); 
    }
}

void Event(string name,int type=0){//预设事件 type为类型 默认为0 
    if(name=="僵尸"){
        cout<<"你遇见了一只僵尸!"<<endl;
        cout<<"0,离开  1,击杀"<<endl;
        cin>>choose;
        if(choose==1){
            SetFight("僵尸");
        }else{
            choose=Rand(500);
            if(choose==1){
                cout<<"你正欲离开时,僵尸发现了你并向你冲来!"<<endl;getch();
                SetFight("僵尸");
            }else{
                cout<<"你悄悄走开了。"<<endl;getch();
            }
        }
    }
    if(name=="骷髅"){
        cout<<"你遇见了一只骷髅!"<<endl;
        cout<<"0,离开  1,击杀"<<endl;
        cin>>choose;
        if(choose==1){
            SetFight("骷髅");
        }else{
            choose=Rand(500);
            if(choose==1){
                cout<<"你正欲离开时,骷髅发现了你并向你冲来!"<<endl;getch();
                SetFight("骷髅");
            }else{
                cout<<"你悄悄走开了。"<<endl;getch();
            }
        }
    }
    if(name=="强壮僵尸"){
        cout<<"你遇见了一只强壮的僵尸!"<<endl;
        cout<<"0,离开  1,击杀"<<endl;
        cin>>choose;
        if(choose==1){
            SetFight("强壮僵尸");
        }else{
            choose=Rand(500);
            if(choose==1){
                cout<<"你正欲离开时,僵尸发现了你并向你冲来!"<<endl;getch();
                SetFight("强壮僵尸");
            }else{
                cout<<"你悄悄走开了。"<<endl;getch();
            }
        }
    }
    if(name=="末影人"){
        cout<<"你遇见了一只末影人!"<<endl;
        cout<<"0,离开  1,注视"<<endl;
        cin>>choose;
        if(choose==1){
            SetFight("末影人"); 
        }else{
            cout<<"你悄悄走开了。"<<endl;getch();
        }
    }
    if(name=="巨型末影人"){
        cout<<"你遇见了一只体型格外巨大的末影人!"<<endl;
        if(type==1){//直接战斗 
            cout<<"末影人一见到你,便瞬移到了你的面前向你攻击!"<<endl;getch();
            SetFight("巨型末影人");
            return;
        }
        cout<<"0,离开  1,注视"<<endl;
        cin>>choose;
        if(choose==1){
            SetFight("巨型末影人");
        }else{
            if(Rand(500)){
                cout<<"你正想离开时,末影人瞬移到了你的面前向你攻击!"<<endl;getch();
            }else{
                cout<<"你悄悄走开了。"<<endl;getch();
            }
        }
    }
    return;
}

void enemyattack(){//入侵 
    if(undeadattack){
        cout<<"你看见又有一些亡灵生物在攻击村庄。不过有铁傀儡的保护,这些小批的亡灵只是送死。"<<endl;
getch();
        cout<<"然而这次似乎亡灵来的数量比较多...等等!"<<endl;
getch();
        cout<<"你定睛一看,城墙外,是黑压压的亡灵大军..."<<endl;
getch();
        system("cls");
        Sleep(1000);
        cout<<"潮水般的亡灵疯狂地冲撞着城墙,很快城墙便倒塌了..."<<endl;
getch();
        cout<<"村庄里的为数不多的铁傀儡也被包围,自身难保。"<<endl;
getch();
        cout<<"远处,一只通体黝黑的凋零骷髅手握血色长刃,剑指村庄!!"<<endl;
getch();
        cout<<"亡灵大军入侵!!!"<<endl; 
getch();
        if(attacklevel>0){
            cout<<"(入侵等级:"<<attacklevel<<")"<<endl;
       getch();
        }
        cout<<"而就在你的附近,一只僵尸向你扑来!"<<endl;
getch();
        fight(1,"僵尸",20+4*attacklevel,4,0,0+5*attacklevel,2,5,2,100+50*attacklevel,1);
        drop("僵尸"); 
        system("cls"); 
        if(dead){
            dead=false;
            credit+=2;
            cout<<"就在你击败了僵尸后,又有一只精英僵尸向你冲来!"<<endl;
getch();
            fight(1,"僵尸",25+5+attacklevel,5+attacklevel,0,8+5*attacklevel,3,5,2,200+75*attacklevel,2+attacklevel);
            drop("强壮僵尸");
            system("cls"); 
            if(dead){
                dead=false;
                credit+=2;
                cout<<"你好不容易击杀了僵尸后,远处突然射来一根暗箭!"<<endl;
getch();
                cout<<"你扭头一看,一只骷髅正盯着你,手上长弓已蓄势待发!"<<endl;
getch(); 
                fight(1,"骷髅",20+4*attacklevel,4+1*attacklevel,0,3*attacklevel,1,12,8,250+100*attacklevel,3+attacklevel);
                drop("骷髅");
                system("cls"); 
                if(dead){
                    credit+=5;
                    Sleep(2000);
                    cout<<"几根骨头落下,骷髅落败。"<<endl;
getch();
                    cout<<"你喘了口气,原地休息了一会,恢复了 10 点生命值!"<<endl;
                    Health+=min(10,MaxHealth-Health);
getch();
                    cout<<"但正当你休息时,一把锐利的刀刺向了你的喉咙----"<<endl;
getch();
                    system("cls");
                    Sleep(1000);
                    cout<<"——Blackbone."<<endl;
                    Sleep(1000);
                    cout<<"凋零骷髅紧握血刃,缓缓向你走来。"<<endl;
getch(); 
                    say("“想不到这村庄里竟还有人能与吾抗衡...”\n",60);
getch(); 
                    say("“杀了我众多亡灵同胞,吾必将血债血偿!”\n",60);
getch(); 
                    say("“死吧!!”\n",30);
getch(); 
                    Sleep(1000);
                    cout<<"不过顷刻间,猩红的血骨之刃便来到了你的面前!"<<endl;
getch();
                    Sleep(1000);
                    fight(1,"Blackbone之影",30+10*attacklevel,8+2*attacklevel,0,12+6*attacklevel,4,10,3,1000+300*attacklevel,10+3*attacklevel);
                    if(dead){
                        credit+=10;
                        cout<<"你将剑插入Blackbone的心脏中,Blackbone消失了..."<<endl;
getch();
                        cout<<"刚刚你击杀的,只不过是Blackbone的分身!"<<endl;
                        Sleep(1000); 
                        cout<<"但亡灵大军停止了进攻,他们已经处于劣势。"<<endl;
getch();
                        cout<<"你守护了村庄!"<<endl;
getch(); 
                        cout<<"你获得奖励: 经验 500 点! 绿宝石 15 颗!"<<endl;
                        Experience+=500;
                        int levelnow=Level;
                        if(levelup(Experience)>0) cout<<"你升了 "<<Level-levelnow<<" 级!";
                        Money+=15;
                        Sleep(1000); 
                        cout<<"你回复了所有生命值。"<<endl;
getch();
                        Health=MaxHealth;
                        undeadattack=false;
                        Sleep(2000);
                        system("cls");
                    }else{
                        cout<<"你倒在地上,渐渐失去了知觉..."<<endl;
                        Sleep(2000);
                        system("cls");
                        Sleep(2000);
                        cout<<"当你醒来时,你正躺在村庄旅馆里..."<<endl;
                        Sleep(1000);
                        cout<<"你与亡灵英勇作战,店主为你恢复了生命。"<<endl;
                        Health=MaxHealth;
                        Sleep(2000);
                        undeadattack=false;
                        return;
                    }
                }else{
                    cout<<"你倒在地上,渐渐失去了知觉..."<<endl;
                    Sleep(2000);
                    system("cls");
                    Sleep(2000);
                    cout<<"当你醒来时,你正躺在村庄旅馆里..."<<endl;
                    Sleep(1000);
                    cout<<"你与亡灵英勇作战,店主为你恢复了生命。"<<endl;
                    Health=MaxHealth;
                    Sleep(2000);
                    undeadattack=false;
                    return;
                }
            }else{
                cout<<"你倒在地上,渐渐失去了知觉..."<<endl;
                Sleep(2000);
                system("cls");
                Sleep(2000);
                cout<<"当你醒来时,你的绿宝石已散落不见..."<<endl;
                if(Money<5){
                    cout<<"你失去了所有绿宝石!"<<endl;
                    Money=0;
                }else{
                    cout<<"你失去了 5 颗绿宝石!"<<endl;
                    Money-=5;
                }
                cout<<"你还有 "<<Money<<" 颗绿宝石..."<<endl;
                Sleep(2000);
                undeadattack=false;
                return;
            }
        }else{
            cout<<"你倒在地上,渐渐失去了知觉..."<<endl;
            Sleep(2000);
            system("cls");
            Sleep(2000);
            cout<<"当你醒来时,你的绿宝石已散落不见..."<<endl;
            if(Money<10){
                cout<<"你失去了所有绿宝石!"<<endl;
                Money=0;
            }else{
                cout<<"你失去了 10 颗绿宝石!"<<endl;
                Money-=10;
            }
            cout<<"你还有 "<<Money<<" 颗绿宝石..."<<endl;
            Sleep(2000);
            undeadattack=false;
            return; 
        }
    }
    return;
}

struct sell{
    string type;
    int num,amount,Money;
}s[1000];

void shop_sell(int number,string type,int num,int amount,int Money){
    if(type=="sell") s[number].type="sell";
    else{
        if(type=="arrow_sell") s[number].type="arrow_sell";
        else{
            s[number].type="sb";//? 
            s[number].num=num;
            s[number].amount=item[num].sell_num;
            s[number].Money=item[num].sell_price;
            return; 
        }
    }
    s[number].amount=amount;
    s[number].num=num;
    s[number].Money=Money;
    return;
}

void shop_clear(){//清空商店物品 
    for(int i=1;i<=114;i++){
        s[i].type="";
        s[i].amount=0;
        s[i].Money=0;
        s[i].num=0;
    }
    return;
}

void shop(string Place){//商店 
    if(Place=="洞穴"||Place=="沙漠"||Place=="地狱"||Place=="下界要塞"||Place=="要塞"||Place=="末地"){
        cout<<"然鹅此处没有商店!"<<endl;
getch(); 
        return;
    }
    int a1=1+rand()%4;
    int a2=1+rand()%2; 
    int b2=1+rand()%2;
    int a3=1+rand()%2; 
    int b3=1+rand()%2;
    int a4=1+rand()%2;
    while(1){
        shop_clear();
        system("cls");
        if(Place=="流浪商人"){
            cout<<"我是流浪商人...我这里有你在别的地方见不到的好东西。你可以在我这买些东西。"<<endl;
            cout<<"——不定时更换商品。"<<endl;
        }else{
            cout<<"欢迎来到"<<Place<<"商店!"<<endl;
            cout<<"请问您要买什么?"<<endl; 
        }
        cout<<"(当前你有"<<Money<<"个绿宝石)"<<endl;
        cout<<"0,离开  1,武器  2,工具  3,药水  4,其他  5,出售"<<endl; 
        cin>>choose;
        switch(choose){
            case 0:
                return;
            break;
            case 1:
                shop_sell(1,"sell",11,1,2);
                shop_sell(2,"sell",15,1,6);
                if(Place=="流浪商人"){
                    shop_sell(1,"sell",105,1,16);    
                    if(a1==1) shop_sell(2,"sell",108,1,10);
                    if(a1==2) shop_sell(2,"sell",109,1,12);
                    if(a1==3) shop_sell(2,"sell",110,1,12);
                    if(a1==4) shop_sell(2,"sell",111,1,10);
                }
                for(int i=1;i<=100;i++){
                    if(s[i].num!=0){
                        cout<<"编号"<<i<<" "<<item[s[i].num].itemname<<"x"<<s[i].amount<<" -价格 "<<s[i].Money<<" 绿宝石 \n";
                        if(wide) cout<<endl;
                    }else break;
                }
                cout<<"输入商品编号购买物品!"<<endl; 
                cin>>choose;
                if(choose==0){
                    continue;
                }
                if(s[choose].num==0){
                    cout<<"请勿乱输!"<<endl;
getch();
                }else{
                    if(Money<s[choose].Money){
                        cout<<"你的绿宝石不够!"<<endl;
          getch();
                        system("cls");
                    }else{
                        cout<<"购买成功!"<<endl;
                        Money-=s[choose].Money;
                        cout<<"你还剩 "<<Money<<" 个绿宝石"<<endl;
                        bag[s[choose].num]+=s[choose].amount;
getch();
                        system("cls");
                    }
                }
            break;
            case 2:
                shop_sell(1,"sell",12,1,2);
                shop_sell(2,"sell",13,1,6);
                if(Place=="流浪商人"){
                    if(a2==1) shop_sell(1,"sell",23,1,4);
                    if(a2==2) shop_sell(1,"sell",106,1,8);
                    if(b2==1) shop_sell(2,"sell",24,1,6);
                    if(b2==2) shop_sell(2,"sell",107,1,12);
                }
                for(int i=1;i<=100;i++){
                    if(s[i].num!=0){
                        cout<<"编号"<<i<<" "<<item[s[i].num].itemname<<"x"<<s[i].amount<<" -价格 "<<s[i].Money<<" 绿宝石 \n";
                        if(wide) cout<<endl;
                    }else break;
                }
                cout<<"输入商品编号购买物品!"<<endl; 
                cin>>choose;
                if(choose==0){
                    continue;
                }
                if(s[choose].num==0){
                    cout<<"请勿乱输!"<<endl;
getch();
                }else{
                    if(Money<s[choose].Money){
                        cout<<"你的绿宝石不够!"<<endl;
getch();
                        system("cls");
                    }else{
                        cout<<"购买成功!"<<endl;
                        Money-=s[choose].Money;
                        cout<<"你还剩 "<<Money<<" 个绿宝石"<<endl;
                        bag[s[choose].num]+=s[choose].amount;
getch();
                        system("cls");
                    }
                }
            break;  
            case 3:
                shop_sell(1,"sell",1001,1,5);
                shop_sell(2,"sell",1002,1,5);
                if(Place=="流浪商人"){
                    if(a3==1) shop_sell(1,"sell",1001,1,4);
                    if(a3==2) shop_sell(1,"sell",1002,1,4);
                    if(b3==1) shop_sell(2,"sell",1009,1,6);
                    if(b3==2) shop_sell(2,"sell",1010,1,6);
                }
                for(int i=1;i<=100;i++){
                    if(s[i].num!=0){
                        cout<<"编号"<<i<<" "<<potionname[s[i].num-1000]<<"x"<<s[i].amount<<" -价格 "<<s[i].Money<<" 绿宝石 \n";
                        if(wide) cout<<endl;
                    }else break;
                }
                cout<<"输入商品编号购买物品!"<<endl; 
                cin>>choose;
                if(choose==0){
                    continue;
                }
                if(s[choose].num==0){
                    cout<<"请勿乱输!"<<endl;
getch();
                }else{
                    if(Money<s[choose].Money){
                        cout<<"你的绿宝石不够!"<<endl;
getch();
                        system("cls");
                    }else{
                        cout<<"购买成功!"<<endl;
                        Money-=s[choose].Money;
                        cout<<"你还剩 "<<Money<<" 个绿宝石"<<endl;
                        bag[s[choose].num]+=s[choose].amount;
getch();
                        system("cls");
                    }
                }
            break;
            case 4:
                if(Place=="流浪商人"){
                    if(a4==1) shop_sell(1,"sell",67,1,30);
                    if(a4==2) shop_sell(1,"sell",68,1,30);
                }
                if(Place=="村庄"){        
                    shop_sell(1,"sell",66,1,25);
                    shop_sell(2,"sell",75,1,25);
                    shop_sell(3,"sell",19,4,1);
                    shop_sell(4,"arrow_sell",1,4,2);
                }
                if(Place=="平原"){
                    shop_sell(1,"sell",69,1,30);
                    shop_sell(2,"sell",70,1,25);
                }
                if(Place=="森林"){
                    shop_sell(1,"sell",71,1,25);
                }
                if(Place=="丛林"){
                    shop_sell(1,"sell",73,1,20);
                    shop_sell(2,"sell",76,1,25);
                }
                if(Place=="雪地"){
                    shop_sell(1,"sell",77,1,40);
                }
                for(int i=1;i<=100;i++){
                    if(s[i].num!=0){
                        if(s[i].type=="arrow_sell") cout<<"编号"<<i<<" "<<arrowname[s[i].num]<<"x"<<s[i].amount<<" -价格 "<<s[i].Money<<" 绿宝石 \n";
                        else cout<<"编号"<<i<<" "<<item[s[i].num].itemname<<" -价格 "<<s[i].Money<<" 绿宝石 \n";
                        if(wide) cout<<endl;
                    }else break;
                }
                cout<<"输入商品编号购买物品!"<<endl; 
                cin>>choose;
                if(choose==0){
                    continue;
                }
                if(s[choose].num==0){
                    cout<<"请勿乱输!"<<endl;
getch();
                }else{
                    if(Money<s[choose].Money){
                        cout<<"你的绿宝石不够!"<<endl;
getch();
                        system("cls");
                    }else{
                        cout<<"购买成功!"<<endl;
                        Money-=s[choose].Money;
                        cout<<"你还剩 "<<Money<<" 个绿宝石"<<endl;
                        if(s[choose].type=="arrow_sell") arrow[s[choose].num]+=s[choose].amount;
                        else bag[s[choose].num]+=s[choose].amount;
getch();
                        system("cls");
                    }
                }
            break;   
            case 5:
                for(int i=1;i<=190;i++){
                    if(i>=16&&Level<3){
                        sc(2);cout<<"\n达到 3 级以解锁新的物品!\n"<<endl;
                        break;
                    }
                    if(i>=32&&Level<5){
                        sc(2);cout<<"\n达到 5 级以解锁新的物品!\n"<<endl;
                        break;
                    }
                    if(i>=48&&Level<8){
                        sc(2);cout<<"\n达到 8 级以解锁新的物品!\n"<<endl;
                        break;
                    }
                    if(i>=64&&Level<10){
                        sc(2);cout<<"\n达到 10 级以解锁新的物品\n"<<endl;
                        break;
                    }
                    if(i>=104&&Level<15){
                        sc(2);cout<<"\n达到 15 级以解锁新的物品\n"<<endl;
                        break;
                    }
                    if(item[i].sell_num>0) shop_sell(i,"1",i,0,0);
                }
                sc(7);
                cout<<"输入商品编号出售物品!\n\n提升你的等级以解锁更多可出售物品。\n"<<endl; 
                for(int i=1;i<=190;i++){
                    if(s[i].num!=0&&s[i].Money!=0){
                        cout<<"编号 "<<i<<" "<<item[s[i].num].itemname<<" -出售 "<<s[i].amount<<" 个 价格 "<<s[i].Money<<" 绿宝石 \n";
                        if(wide) cout<<endl;
                    }
                }
                cin>>choose;
                int buy=choose;
                if(choose==0){
                    continue;
                }
                if(s[choose].num==0||s[choose].Money==0){
                    cout<<"请勿乱输!"<<endl;
getch();
                }else{
                    if(bag[s[choose].num]<s[choose].amount){
                        cout<<"你的"<<item[s[choose].num].itemname<<"不够!"<<endl;
getch();
                        system("cls");
                    }else{
                        if(bag[s[choose].num]>=s[choose].amount*2){
                            cout<<"你要出售几";
                            sc(4);cout<<"份?";sc(7);
                            cout<<"(当前你有"<<bag[s[choose].num]<<" 个 "<<item[s[choose].num].itemname<<",最多可出售 "<<bag[s[choose].num]/s[buy].amount<<" 份)"<<endl;
                            cin>>choose;
                            if(bag[s[buy].num]<s[buy].amount*choose){
                                cout<<"你的"<<item[s[buy].num].itemname<<"不够!"<<endl;
                             getch();
                                system("cls");
                            }else{
                                cout<<"出售成功!"<<endl;
                                Money+=s[buy].Money*choose;
                                cout<<"你现在有 "<<Money<<" 个绿宝石"<<endl;
                                bag[s[buy].num]-=s[buy].amount*choose;
getch();
                                system("cls");
                            }
                        }else{
                            cout<<"出售成功!"<<endl;
                            Money+=s[choose].Money;
                            cout<<"你现在有 "<<Money<<" 个绿宝石"<<endl;
                            bag[s[choose].num]-=s[choose].amount;
getch();
                            system("cls");
                        }
                    }
                }
            break; 
        }       
    }
    return;
}

void dungeon(string Place){//副本 
    string map[100];
    int x,y; 
    system("cls"); 
    if(Place=="丛林神庙"){
        time_now=time(0);
        if(time_now-time_last[1]<1800){//又改了!我好良心!
        //应hjq要求。 
            cout<<"副本冷却中!"<<endl;
            //cout<<time_now<<" "<<time_last[1]<<endl;
            if(1800-(time_now-time_last[1])>=60) cout<<"请等待 "<<30-(time_now-time_last[1])/60<<" 分钟后再进入!"<<endl;
            else cout<<"请等待 "<<1800-(time_now-time_last[1])<<" 秒后再进入!"<<endl;
getch();
            return;
        }else{
            if(hard_max_pass[1]>=1&&hard_max[1]<2){
                cout<<"已解锁 丛林神庙 普通难度!"<<endl;
getch();
            }
            if(hard_max_pass[1]>=2&&dragon_dead&&hard_max[1]<3){
                cout<<"已解锁 丛林神庙 困难难度!"<<endl;
getch();
            }
            system("cls");
            cout<<"你确定要进入丛林神庙吗?!"<<endl;
            cout<<"\n0,返回  1,确定"<<endl;
            cin>>choose;
            if(choose==0) return;
            else{
                cout<<"选择难度:"<<endl;
                cout<<"1,简单  ";
                if(hard_max[1]>=2)cout<<"2,普通  ";
                if(hard_max[1]>=3)cout<<"3,困难  ";
                if(hard_max[1]>=4)cout<<"4,地狱  ";
                if(hard_max[1]>=5)cout<<"5,炼狱";
                cout<<endl;
                cin>>hard; 
                if(hard_max[1]<hard){
                    cout<<"请勿乱输!"<<endl;
getch();
                    return; 
                }
                switch(hard){
                    case 1:
                        map[0]="#####"; 
                        map[1]="##2##";
                        map[2]="#31##";
                        map[3]="##1##";
                        map[4]="##11#";
                        map[5]="##0##";
                        cout<<"祝你好运..."<<endl; 
                        x=4,y=2;
                        if(Rand(500)) swap(map[2][1],map[4][3]);
                    break;  
                    case 2:
                        map[0]="#####"; 
                        map[1]="##2##";
                        map[2]="#11##";
                        map[3]="##1##";
                        map[4]="##13#";
                        map[5]="##0##";
                        cout<<"祝你好运..."<<endl; 
                        x=4,y=2;
                        if(Rand(500)) swap(map[2][1],map[4][3]);
                    break;
                    case 3:
                        map[0]="#####"; 
                        map[1]="#####"; 
                        map[2]="##2##";
                        map[3]="311##";
                        map[4]="##1##";
                        map[5]="##113";
                        map[6]="##1##";
                        map[7]="##0##"; 
                        cout<<"当心危险..."<<endl; 
                        x=5,y=2;
                    break;
                    case 4:
                        map[0]="#####"; 
                        map[1]="##2##";
                        map[2]="311##";
                        map[3]="##1##";
                        map[4]="##113";
                        map[5]="#11##";
                        map[6]="##1##";
                        map[7]="##0##"; 
                        cout<<"感受地狱吧..."<<endl; 
                        x=6,y=2;
                    break;
                    case 5:
                        map[0]="#####"; 
                        map[1]="##2##";
                        map[2]="311##";
                        map[3]="##1##";
                        map[4]="##113";
                        map[5]="#11##";
                        map[6]="##3##";
                        map[7]="##1##";
                        map[8]="##1##";
                        map[9]="##0##";
                        cout<<"你会后悔的..."<<endl;  
                        x=8,y=2;
                    break;
                    default:
                        return;
                    break;  
                }
getch();
                say("你缓缓走进丛林神庙,等待你的会是什么呢...",50);
                Sleep(1000);
                time_last[1]=time(0);
                while(1){
                    cin.clear();
                    cin.sync(); 
                    reset();//重置 
                    system("cls");
                    levelup(Experience);
                    if(map[x][y]=='1'){
                        cout<<"你走进内部,发现了一些怪物!"<<endl;
getch();
                        switch(1+rand()%3){
                            case 1:
                                cout<<"你遇见了远古僵尸!"<<endl;
getch();
                                switch(hard){
                                    case 1:
                                        fight(1,"远古僵尸",20,5,0,10,3,rnd(4,7),2,200,1);
                                        drop("远古僵尸1");
                                    break;
                                    case 2:
                                        fight(1,"远古僵尸",25,7,0,15,3,rnd(4,7),2,300,2);
                                        drop("远古僵尸2");
                                    break;
                                    case 3:
                                        fight(1,"远古僵尸",40,10,0,25,4,rnd(5,8),2,750,5);
                                        drop("远古僵尸3");
                                    break;
                                    case 4:
                                        fight(1,"远古僵尸",34+rand()%7,8+rand()%4,0,24+rand()%6,4,5+rand()%2,2,700,5);
                                        drop("远古僵尸4");
                                    break;
                                    case 5:
                                        fight(1,"远古僵尸",48+rand()%9,10+rand()%3,0,30+rand()%10,5,6+rand()%3,3,1000,8);
                                        drop("远古僵尸5");
                                    break;  
                                }
                                if(!dead){
                                    say("你的意识渐渐模糊...",100);
getch();
                                    return; 
                                }else{
                                    map[x][y]='0';
                                    if(MaxHealth-Health>0){
                                        cout<<"你原地休息片刻,恢复了10%的生命!"<<endl;
                                        Health+=min(MaxHealth/10,MaxHealth-Health);
getch();
                                    } 
                                }
                            break;
                            case 2:
                                cout<<"你遇见了远古骷髅!"<<endl;
getch();
                                switch(hard){
                                    case 1:
                                        fight(1,"远古骷髅",20,4,0,5,2,rnd(7,12),8,300,2);
                                        drop("远古骷髅1");
                                    break;
                                    case 2:
                                        fight(1,"远古骷髅",25,6,0,10,2,rnd(8,13),8,450,3);
                                        drop("远古骷髅2");
                                    break;
                                    case 3:
                                        fight(1,"远古骷髅",35,9,0,20,3,rnd(8,13),10,750,5);
                                        drop("远古骷髅3");
                                    break;
                                    case 4:
                                        fight(1,"远古骷髅",30+rand()%8,8+rand()%2,0,18+rand()%6,3,12+rand()%3,10,900,7);
                                        drop("远古骷髅4");
                                    break;
                                    case 5:
                                        fight(1,"远古骷髅",42+rand()%9,10+rand()%2,0,22+rand()%10,4,14+rand()%5,12,1200,10);
                                        drop("远古骷髅5");
                                    break;  
                                }
                                if(!dead){
                                    say("你的意识渐渐模糊...",100);
getch();
                                    return; 
                                }else{
                                    map[x][y]='0';
                                    if(MaxHealth-Health>0){
                                        cout<<"你原地休息片刻,恢复了10%的生命!"<<endl;
                                        Health+=min(MaxHealth/10,MaxHealth-Health);
getch();
                                    } 
                                }
                            break; 
                            case 3:
                                cout<<"你遇见了远古蜘蛛!"<<endl;
getch();
                                switch(hard){
                                    case 1:
                                        fight(1,"远古蜘蛛",20,7,0,-10,4,rnd(4,7),2,300,2);
                                        drop("远古蜘蛛1");
                                    break;
                                    case 2:
                                        fight(1,"远古蜘蛛",25,9,0,0,4,rnd(4,7),2,450,3);
                                        drop("远古蜘蛛2");
                                    break;
                                    case 3:
                                        fight(1,"远古蜘蛛",40,11,0,15,5,rnd(5,8),2,750,5);
                                        drop("远古蜘蛛3");
                                    break;
                                    case 4:
                                        fight(1,"远古蜘蛛",28+rand()%7,11+rand()%2,0,10+rand()%6,5,8+rand()%3,2,1000,8);
                                        drop("远古蜘蛛4");
                                    break;
                                    case 5:
                                        fight(1,"远古蜘蛛",36+rand()%9,14+rand()%3,0,20+rand()%4,6,8+rand()%3,3,1400,11);
                                        drop("远古蜘蛛5");
                                    break;  
                                }
                                if(!dead){
                                    say("你的意识渐渐模糊...",100);
getch();
                                    return; 
                                }else{
                                    map[x][y]='0';
                                    if(MaxHealth-Health>0){
                                        cout<<"你原地休息片刻,恢复了10%的生命!"<<endl;
                                        Health+=min(MaxHealth/10,MaxHealth-Health);
getch();
                                    } 
                                }
                            break;  
                        }
                    }
                    if(map[x][y]=='2'){
                        cout<<"你在原地休息了一会儿,恢复了50%生命值!"<<endl;
                        Health+=min(MaxHealth/2,MaxHealth-Health);
getch();
                        system("cls");
                        Sleep(1000);
                        say("你走进神庙的中心,发现了一个巨大的雕像。\n",60);
getch(); 
                        say("你走上前查看时,雕像突然震动起来!",60);
getch();
                        system("cls");
                        Sleep(1000);
                        say("“是谁,唤醒了我...?!”\n",50);
getch();
                        say("巨大的雕像从一片废墟中爬起,雕像的双眼赫然发出诡异的绿光!\n",50);
getch();
                        say("“人类...擅闯丛林神庙,丛林守护者将会把你粉碎!!!”\n",50);
                        Sleep(1000); 
                        say("“你,将为此付出代价!!!”",50);
getch();
                        system("cls");
getch();
                        cout<<"身后大门突然关上,";
                        say("你已无路可退。\n",50);
                        Sleep(1000);
                        say("咆哮着的远古雕像向你袭来,势必要将你粉碎!",80);
getch();
                        system("cls");
                        cout<<"战斗!"<<endl;
                        Sleep(1000);
                        switch(hard){
                            case 1:
                                enemy[1].skill[2]=1;//重击 
                                enemy[1].skill[42]=1;//巨力重拳 
                                enemy[1].skill[43]=1;//狭小场地 
                                add_enemy(2,"墙壁",9999,0,0,9999,0,-10,0,0,0);
                                enemy[2].invisible=1;
                                add_enemy(3,"墙壁",9999,0,0,9999,0,10,0,0,0);
                                enemy[3].invisible=1;
                                fight(3,"丛林守护者",75,9,101,20,3,8,2,1500,10);
                                enemy[2].invisible=0;
                                enemy[3].invisible=0;
                                drop("丛林守护者1");
                                if(dead){
                                    hard_max_pass[1]=max(hard_max_pass[1],1);
getch();
                                    system("cls");
                                    cout<<"你从废墟中爬起,看向战斗后破败的丛林神庙..."<<endl;
getch();
                                    cout<<"丛林守护者已被你杀死...快离开吧。"<<endl;
getch();
                                }else{
                                    say("你的意识渐渐模糊...",100);
getch();
                                    return; 
                                }
                            break;
                            case 2:
                                enemy[1].skill[2]=2;//重击 
                                enemy[1].skill[42]=1;//巨力重拳 
                                enemy[1].skill[43]=1;//狭小场地 
                                add_enemy(2,"墙壁",9999,0,0,9999,0,-10,0,0,0);
                                enemy[2].invisible=1;
                                add_enemy(3,"墙壁",9999,0,0,9999,0,10,0,0,0);
                                enemy[3].invisible=1;
                                fight(3,"丛林守护者",90,10,101,25,3,8,2,2250,15);
                                enemy[2].invisible=0;
                                enemy[3].invisible=0;
                                drop("丛林守护者2");
                                if(dead){
                                    hard_max_pass[1]=max(hard_max_pass[1],2);
getch();
                                    system("cls");
                                    cout<<"你从废墟中爬起,看向战斗后破败的丛林神庙..."<<endl;
getch();
                                    cout<<"丛林守护者已被你杀死...快离开吧。"<<endl;
getch();
                                }else{
                                    say("你的意识渐渐模糊...",100);
getch();
                                    return; 
                                }
                            break;
                            case 3:
                                enemy[1].skill[2]=3;//重击 
                                enemy[1].skill[42]=1;//巨力重拳 
                                enemy[1].skill[51]=1;//狭小场地 8
                                add_enemy(2,"墙壁",9999,0,0,9999,0,-10,0,0,0);
                                enemy[2].invisible=1;
                                add_enemy(3,"墙壁",9999,0,0,9999,0,10,0,0,0);
                                enemy[3].invisible=1;
                                fight(3,"丛林守护者",120,11,101,30,3,7,3,3500,25);
                                enemy[2].invisible=0;
                                enemy[3].invisible=0;
                                drop("丛林守护者3");
                                if(dead){
                                    hard_max_pass[1]=max(hard_max_pass[1],3);
getch();
                                    system("cls");
                                    cout<<"你从废墟中爬起,看向战斗后破败的丛林神庙..."<<endl;
getch();
                                    cout<<"丛林守护者已被你杀死...快离开吧。"<<endl;
getch();
                                }else{
                                    say("你的意识渐渐模糊...",100);
getch();
                                    return; 
                                }
                            break;
                            case 4:
                                enemy[1].skill[2]=3;
                                enemy[1].skill[42]=1;
                                enemy[1].skill[43]=1;
                                fight(1,"丛林守护者",140,14,101,40,3,8,2,5500,30);
                                drop("丛林守护者4");
                                if(dead){
getch();
                                    system("cls");
                                    cout<<"你从废墟中爬起,看向战斗后破败的丛林神庙..."<<endl;
getch();
                                    cout<<"丛林守护者已被你杀死...快离开吧。"<<endl;
getch();
                                }else{
                                    say("你的意识渐渐模糊...",100);
getch();
                                    return; 
                                }
                            break;
                            case 5:
                                enemy[1].skill[2]=5;
                                enemy[1].skill[42]=1;
                                enemy[1].skill[43]=1;
                                fight(1,"丛林守护者",200,20,101,56,4,8,2,10000,60);
                                drop("丛林守护者5"); 
                                if(dead){
getch();
                                    system("cls");
                                    cout<<"你从废墟中爬起,看向战斗后破败的丛林神庙..."<<endl;
getch();
                                    cout<<"丛林守护者已被你杀死...快离开吧。"<<endl;
getch();
                                }else{
                                    say("你的意识渐渐模糊...",100);
getch();
                                    return; 
                                }
                            break;  
                        }
                        map[x][y]='0';
                    }
                    if(map[x][y]=='3'){
                        cout<<"你发现了宝藏!"<<endl;
getch();
                        cout<<"你原地休息了一会,恢复了25%的生命!"<<endl;
                        Health+=min(MaxHealth/4,MaxHealth-Health);
getch();
                        system("cls");
                        cout<<"你走进内部,发现了一些财宝!"<<endl;
getch();
                        switch(hard){
                            case 1:
                                choose=3+rand()%4;
                                cout<<"你获得了 "<<choose<<" 个绿宝石!"<<endl;
                                Money+=choose;
                                choose=1001+rand()%2;
getch();
                                cout<<"你获得了 "<<itemname[choose]<<" x1!"<<endl;
getch();
                                bag[choose]++;
                                drop("远古僵尸1"); 
                                drop("远古僵尸1"); 
                                drop("远古骷髅1"); 
                                drop("远古骷髅1"); 
getch(); 
                            break;
                            case 2:
                                choose=5+rand()%4;
                                cout<<"你获得了 "<<choose<<" 个绿宝石!"<<endl;
                                Money+=choose;
                                choose=1001+rand()%2;
getch();
                                cout<<"你获得了 "<<itemname[choose]<<" x1!"<<endl;
getch();
                                bag[choose]++;
                                drop("远古僵尸2"); 
                                drop("远古僵尸2"); 
                                drop("远古骷髅2"); 
                                drop("远古骷髅2"); 
getch(); 
                            break;
                            case 3:
                                choose=8+rand()%5;
                                cout<<"你获得了 "<<choose<<" 个绿宝石!"<<endl;
                                Money+=choose;
                                choose=1003+rand()%2;
getch();
                                cout<<"你获得了 "<<itemname[choose]<<" x1!"<<endl;
getch();
                                bag[choose]++;
                                drop("远古僵尸3"); 
                                drop("远古僵尸3"); 
                                drop("远古骷髅3"); 
                                drop("远古骷髅3");
getch(); 
                            break;  
                            case 4:
                                choose=12+rand()%5;
                                cout<<"你获得了 "<<choose<<" 个绿宝石!"<<endl;
                                Money=choose;
                                choose+1005+rand()%2;
getch();
                                cout<<"你获得了 "<<itemname[choose]<<" x2!"<<endl;
getch();
                                bag[choose]++;
                                drop("远古僵尸4"); 
                                drop("远古僵尸4"); 
                                drop("远古骷髅4"); 
                                drop("远古骷髅4"); 
getch(); 
                            break;  
                            case 5:
                                choose=18+rand()%4;
                                cout<<"你获得了 "<<choose<<" 个绿宝石!"<<endl;
                                Money+=choose;
                                choose=1005+rand()%2;
getch();
                                cout<<"你获得了 "<<itemname[choose]<<" x3!"<<endl;
getch();
                                bag[choose]++;
                                drop("远古僵尸5");
                                drop("远古僵尸5");  
                                drop("远古骷髅5"); 
                                drop("远古骷髅5"); 
getch(); 
                            break;
                        }
                        map[x][y]='0';
                    }
                    system("cls");
                    if(x==1) cout<<"你现在位于神庙尽头。"<<endl;
                    if(map[x][y]=='0') cout<<"你现在位于丛林神庙内部。";
                    if(map[x][y-1]!='#') cout<<"你的左侧有一条岔道。"; 
                    if(map[x][y+1]!='#') cout<<"你的右侧有一条岔道。";
                    cout<<endl;
                    //cout<<x<<" "<<y<<endl; 
                    sc(4);
                    cout<<"血量:"<<Health<<"/"<<MaxHealth<<endl;
                    sc(1);
                    cout<<"魔力:"<<Magic<<"/"<<MaxMagic<<endl;
                    sc(7);
                    cout<<"攻击:"<<Attack<<endl;
                    cout<<"防御:"<<Defense<<endl;
                    cout<<"速度:"<<Speed<<endl;
                    cout<<"绿宝石:"<<Money<<endl;
                    cout<<"等级:"<<Level;
                    sc(2);
                    cout<<" 经验:"<<Experience<<"/"<<Level*100<<endl; 
                    sc(7);
                    cout<<"-----------------------------------" <<endl; 
                    cout<<"你要做什么?"<<endl;
                    cout<<"0,离开副本  "; 
                    if(map[x-1][y]!='#') cout<<"1,前进  ";
                    if(map[x][y-1]!='#') cout<<"2,向左走  ";
                    if(map[x][y+1]!='#') cout<<"3,向右走  ";
                    cout<<endl;
                    cin>>choose;
                    switch(choose){
                        case 0:
                            cout<<"你确定要退出副本吗?"<<endl;
                            cout<<"0,不  1,确定"<<endl;
                            cin>>choose;
                            if(choose==0) continue;
                            else{
                                cout<<"你扭回头,缓缓离开了神庙..."<<endl;
getch();
                                return;
                            }
                        break;
                        case 1:
                            if(map[x-1][y]=='#'){
                                cout<<"请勿乱输!"<<endl;
getch();
                                continue;
                            }else{
                                cout<<"你向着前方走去..."<<endl;
                                x--;
getch();
                                continue;
                            }
                        break;
                        case 2:
                            if(map[x][y-1]=='#'){
                                cout<<"请勿乱输!"<<endl;
getch();
                                continue;
                            }else{
                                cout<<"你向着左边走去..."<<endl;
                                y--;
getch();
                                continue;
                            }
                        break;
                        case 3:
                            if(map[x][y+1]=='#'){
                                cout<<"请勿乱输!"<<endl;
getch();
                                continue;
                            }else{
                                cout<<"你向着右边走去..."<<endl;
                                y++;
getch();
                                continue;
                            }
                        break;  
                    }
                } 
            }
        }
    }
    if(Place=="沙漠神殿"){
        time_now=time(0);
        if(time_now-time_last[2]<1800){
            cout<<"副本冷却中!"<<endl;
            if(1800-(time_now-time_last[2])>=60) cout<<"请等待 "<<30-(time_now-time_last[2])/60<<" 分钟后再进入!"<<endl;
            else cout<<"请等待 "<<1800-(time_now-time_last[2])<<" 秒后再进入!"<<endl;
getch();
            return;
        }else{
            if(hard_max_pass[2]>=1&&hard_max[2]<2){
                cout<<"已解锁 沙漠神殿 普通难度!"<<endl;
getch();
            }
            if(hard_max_pass[2]>=2&&dragon_dead&&hard_max[2]<3){
                cout<<"已解锁 沙漠神殿 困难难度!"<<endl;
getch();
            }
            system("cls");
            cout<<"你确定要进入沙漠神殿?!"<<endl;
            cout<<"\n0,返回  1,确定"<<endl;
            cin>>choose;
            if(choose==0) return;
            else{
                cout<<"选择难度:"<<endl;
                cout<<"1,简单  ";
                if(hard_max[2]>=2)cout<<"2,普通  ";
                if(hard_max[2]>=3)cout<<"3,困难  ";
                if(hard_max[2]>=4)cout<<"4,地狱  ";
                if(hard_max[2]>=5)cout<<"5,炼狱";
                cout<<endl;
                cin>>hard;
                if(hard_max[2]<hard){
                    cout<<"请勿乱输!"<<endl;
getch();
                    return; 
                }
                switch(hard){
                    case 1:
                        map[0]="#####"; 
                        map[1]="##2##";
                        map[2]="#311#";
                        map[3]="##1##";
                        map[4]="##11#";
                        map[5]="##0##";
                        cout<<"祝你好运..."<<endl; 
                        x=4,y=2;
                        if(Rand(500)) swap(map[2][1],map[4][3]);
                    break;  
                    case 2:
                        map[0]="#####"; 
                        map[1]="##2##";
                        map[2]="#11##";
                        map[3]="##1##";
                        map[4]="##13#";
                        map[5]="##0##";
                        cout<<"祝你好运..."<<endl; 
                        x=4,y=2;
                        if(Rand(500)) swap(map[2][1],map[4][3]);
                    break;
                    case 3:
                        map[0]="#####"; 
                        map[1]="#####"; 
                        map[2]="##2##";
                        map[3]="311##";
                        map[4]="##1##";
                        map[5]="##113";
                        map[6]="##1##";
                        map[7]="##0##"; 
                        cout<<"当心危险..."<<endl; 
                        x=5,y=2;
                    break;
                    case 4:
                        map[0]="#####"; 
                        map[1]="##2##";
                        map[2]="311##";
                        map[3]="##1##";
                        map[4]="##113";
                        map[5]="#11##";
                        map[6]="##1##";
                        map[7]="##0##"; 
                        cout<<"感受地狱吧..."<<endl; 
                        x=6,y=2;
                    break;
                    case 5:
                        map[0]="#####"; 
                        map[1]="##2##";
                        map[2]="311##";
                        map[3]="##1##";
                        map[4]="##113";
                        map[5]="#11##";
                        map[6]="##3##";
                        map[7]="##1##";
                        map[8]="##1##";
                        map[9]="##0##";
                        cout<<"你会后悔的..."<<endl;  
                        x=8,y=2;
                    break;
                    default:
                        return;
                    break;  
                }
getch();
                say("你缓缓走进沙漠神殿,等待你的会是什么呢...",50);
                Sleep(1000);
                time_last[2]=time(0);
                while(1){
                    reset();//重置 
                    system("cls");
                    levelup(Experience);
                    if(map[x][y]=='1'){
                        cout<<"你走进内部,发现了一些怪物!"<<endl;
getch();
                        switch(1+rand()%3){
                            case 1:
                                cout<<"你遇见了一只尸壳!"<<endl;
getch();
                                switch(hard){
                                    case 1:
                                        fight(1,"尸壳",20,5,0,10,3,rnd(4,7),2,200,1);
                                        drop("尸壳1");
                                    break;
                                    case 2:
                                        fight(1,"尸壳",25,7,0,15,3,rnd(4,7),2,300,2);
                                        drop("尸壳2");
                                    break;
                                    case 3:
                                        fight(1,"尸壳",40,10,0,25,4,rnd(5,8),2,750,5);
                                        drop("尸壳3");
                                    break;
                                    case 4:
                                        fight(1,"尸壳",34+rand()%7,8+rand()%4,0,24+rand()%6,4,5+rand()%2,2,700,5);
                                        drop("尸壳4");
                                    break;
                                    case 5:
                                        fight(1,"尸壳",48+rand()%9,10+rand()%3,0,30+rand()%10,5,6+rand()%3,3,1000,8);
                                        drop("尸壳5");
                                    break;  
                                }
                                if(!dead){
                                    say("你的意识渐渐模糊...",100);
getch();
                                    return; 
                                }else{
                                    map[x][y]='0';
                                    if(MaxHealth-Health>0){
                                        cout<<"你原地休息片刻,恢复了10%的生命!"<<endl;
                                        Health+=min(MaxHealth/10,MaxHealth-Health);
getch();
                                    } 
                                }
                            break;
                            case 2:
                                cout<<"你遇见了一只被沙裹住的骷髅!"<<endl;
getch();
                                switch(hard){
                                    case 1:
                                        fight(1,"沙骷",20,4,0,5,2,rnd(7,12),8,300,2);
                                        drop("沙骷1");
                                    break;
                                    case 2:
                                        fight(1,"沙骷",25,6,0,10,2,rnd(8,13),8,450,3);
                                        drop("沙骷2");
                                    break;
                                    case 3:
                                        fight(1,"沙骷",35,9,0,20,3,rnd(8,13),10,750,5);
                                        drop("沙骷3");
                                    break;
                                    case 4:
                                        fight(1,"沙骷",30+rand()%8,8+rand()%2,0,18+rand()%6,3,12+rand()%3,10,900,7);
                                        drop("沙骷4");
                                    break;
                                    case 5:
                                        fight(1,"沙骷",42+rand()%9,10+rand()%2,0,22+rand()%10,4,14+rand()%5,12,1200,10);
                                        drop("沙骷5");
                                    break;  
                                }
                                if(!dead){
                                    say("你的意识渐渐模糊...",100);
getch();
                                    return; 
                                }else{
                                    map[x][y]='0';
                                    if(MaxHealth-Health>0){
                                        cout<<"你原地休息片刻,恢复了10%的生命!"<<endl;
                                        Health+=min(MaxHealth/10,MaxHealth-Health);
getch();
                                    } 
                                }
                            break; 
                            case 3:
                                cout<<"你遇见了一只身上满是沙尘的蜘蛛!"<<endl;
getch();
                                switch(hard){
                                    case 1:
                                        fight(1,"沙尘蜘蛛",20,7,0,-10,4,rnd(4,7),2,300,2);
                                        drop("沙尘蜘蛛1");
                                    break;
                                    case 2:
                                        fight(1,"沙尘蜘蛛",25,9,0,0,4,rnd(4,7),2,450,3);
                                        drop("沙尘蜘蛛2");
                                    break;
                                    case 3:
                                        fight(1,"沙尘蜘蛛",40,11,0,15,5,rnd(5,8),2,750,5);
                                        drop("沙尘蜘蛛3");
                                    break;
                                    case 4:
                                        fight(1,"沙尘蜘蛛",28+rand()%7,11+rand()%2,0,10+rand()%6,5,8+rand()%3,2,1000,8);
                                        drop("沙尘蜘蛛4");
                                    break;
                                    case 5:
                                        fight(1,"沙尘蜘蛛",36+rand()%9,14+rand()%3,0,20+rand()%4,6,8+rand()%3,3,1400,11);
                                        drop("沙尘蜘蛛5");
                                    break;  
                                }
                                if(!dead){
                                    say("你的意识渐渐模糊...",100);
getch();
                                    return; 
                                }else{
                                    map[x][y]='0';
                                    if(MaxHealth-Health>0){
                                        cout<<"你原地休息片刻,恢复了10%的生命!"<<endl;
                                        Health+=min(MaxHealth/10,MaxHealth-Health);
getch();
                                    } 
                                }
                            break;  
                        }
                    }
                    if(map[x][y]=='2'){
                        cout<<"你在原地休息了一会儿,恢复了50%生命值!"<<endl;
                        Health+=min(MaxHealth/2,MaxHealth-Health);
getch();
                        system("cls");
                        Sleep(1000);
                        say("你走进神殿的中心,忽然一阵猛烈的狂风向你卷来!\n",60);
getch(); 
                        say("你连忙用手挡住风沙......",60);
getch();
                        system("cls");
                        Sleep(1000);
                        say("沙尘中,一个若隐若现的身影闪烁着......\n",50);
getch();
                        say("在那身影的周围,黄沙席卷,将其围绕在中央,宛若暴风!\n",50);
getch();
                        say("“沙暴之神...再次苏醒了...”\n",50);
                        Sleep(1000); 
                        say("“不知死活的人类...”",50);
getch();
                        system("cls");
getch();
                        say("沙似利剑,随怒风划过你的全身。\n",50);
getch(); 
                        say("在漫天黄沙之中,",50);
                        sc(6);
                        say("你已难以辨别方向与位置...\n",80);
                        sc(7);
getch();
                        say("而此刻,沙尘暴中央的身影向你袭来!\n",80);
                        Sleep(1000);
                        system("cls");
                        cout<<"战斗!"<<endl;
                        Sleep(1000);
                        switch(hard){
                            case 1:
                                enemy[1].skill[46]=1;//黄沙 - 无法看见位置 
                                enemy[1].skill[47]=1;//远程抗性1 
                                fight(1,"沙暴之神",70,11,103,10,4,rnd(9,11),4,1800,12);
                                drop("沙暴之神1");
                                if(dead){
                                    hard_max_pass[2]=max(hard_max_pass[2],1);
getch();
                                    system("cls");
                                    cout<<"你从废墟中爬起,看向战斗后破败的沙漠神殿..."<<endl;
getch();
                                    cout<<"狂风渐渐平息..."<<endl;
getch(); 
                                    cout<<"沙暴之神已被你杀死...快离开吧。"<<endl;
getch();
                                }else{
                                    say("你的意识渐渐模糊...",100);
getch();
                                    return; 
                                }
                            break;
                            case 2:
                                enemy[1].skill[46]=1;//黄沙 - 无法看见位置 
                                enemy[1].skill[47]=1;//远程抗性1 
                                fight(1,"沙暴之神",85,12,103,15,4,rnd(9,12),4,2700,18);
                                drop("沙暴之神2");
                                if(dead){
                                    hard_max_pass[2]=max(hard_max_pass[2],2);
getch();
                                    system("cls");
                                    cout<<"你从废墟中爬起,看向战斗后破败的沙漠神殿..."<<endl;
getch();
                                    cout<<"狂风渐渐平息..."<<endl;
getch(); 
                                    cout<<"沙暴之神已被你杀死...快离开吧。"<<endl;
getch();
                                }else{
                                    say("你的意识渐渐模糊...",100);
getch();
                                    return; 
                                }
                            break;
                            case 3:
                                enemy[1].skill[46]=1;//黄沙 - 无法看见位置 
                                enemy[1].skill[47]=2;//远程抗性2
                                enemy[1].skill[52]=1;//沙塑 
                                fight(1,"沙暴之神",110,13,103,20,4,rnd(9,13),5,4500,30);
                                drop("沙暴之神3");
                                if(dead){
                                    hard_max_pass[2]=max(hard_max_pass[2],3);
getch();
                                    system("cls");
                                    cout<<"你从废墟中爬起,看向战斗后破败的沙漠神殿..."<<endl;
getch();
                                    cout<<"狂风渐渐平息..."<<endl;
getch(); 
                                    cout<<"沙暴之神已被你杀死...快离开吧。"<<endl;
getch();
                                }else{
                                    say("你的意识渐渐模糊...",100);
getch();
                                    return; 
                                }
                            break;
                            case 4:
                                enemy[1].skill[2]=3;
                                enemy[1].skill[42]=1;
                                enemy[1].skill[43]=1;
                                fight(1,"丛林守护者",140,14,101,40,3,8,2,5500,30);
                                drop("丛林守护者4");
                                if(dead){
getch();
                                    system("cls");
                                    cout<<"你从废墟中爬起,看向战斗后破败的丛林神庙..."<<endl;
getch();
                                    cout<<"丛林守护者已被你杀死...快离开吧。"<<endl;
getch();
                                }else{
                                    say("你的意识渐渐模糊...",100);
getch();
                                    return; 
                                }
                            break;
                            case 5:
                                enemy[1].skill[2]=5;
                                enemy[1].skill[42]=1;
                                enemy[1].skill[43]=1;
                                fight(1,"丛林守护者",200,20,101,56,4,8,2,10000,60);
                                drop("丛林守护者5"); 
                                if(dead){
getch();
                                    system("cls");
                                    cout<<"你从废墟中爬起,看向战斗后破败的丛林神庙..."<<endl;
getch();
                                    cout<<"丛林守护者已被你杀死...快离开吧。"<<endl;
getch();
                                }else{
                                    say("你的意识渐渐模糊...",100);
getch();
                                    return; 
                                }
                            break;  
                        }
                        map[x][y]='0';
                    }
                    if(map[x][y]=='3'){
                        cout<<"你发现了宝藏!"<<endl;
getch();
                        cout<<"你原地休息了一会,恢复了25%的生命!"<<endl;
                        Health+=min(MaxHealth/4,MaxHealth-Health);
getch();
                        system("cls");
                        cout<<"你走进内部,发现了一些财宝!"<<endl;
getch();
                        switch(hard){
                            case 1:
                                choose=3+rand()%4;
                                cout<<"你获得了 "<<choose<<" 个绿宝石!"<<endl;
                                Money+=choose;
                                choose=1001+rand()%2;
getch();
                                cout<<"你获得了 "<<itemname[choose]<<" x1!"<<endl;
getch();
                                bag[choose]++;
                                drop("尸壳1"); 
                                drop("尸壳1"); 
                                drop("沙骷1"); 
                                drop("沙骷1");
getch(); 
                            break;
                            case 2:
                                choose=5+rand()%4;
                                cout<<"你获得了 "<<choose<<" 个绿宝石!"<<endl;
                                Money+=choose;
                                choose=1001+rand()%2;
getch();
                                cout<<"你获得了 "<<itemname[choose]<<" x1!"<<endl;
getch();
                                bag[choose]++;
                                drop("尸壳2"); 
                                drop("尸壳2"); 
                                drop("沙骷2"); 
                                drop("沙骷2");
getch(); 
                            break;
                            case 3:
                                choose=8+rand()%5;
                                cout<<"你获得了 "<<choose<<" 个绿宝石!"<<endl;
                                Money+=choose;
                                choose=1003+rand()%2;
getch();
                                cout<<"你获得了 "<<itemname[choose]<<" x1!"<<endl;
getch();
                                bag[choose]++;
                                drop("尸壳3"); 
                                drop("尸壳3"); 
                                drop("沙骷3"); 
                                drop("沙骷3");
getch(); 
                            break;  
                            case 4:
                                choose=12+rand()%5;
                                cout<<"你获得了 "<<choose<<" 个绿宝石!"<<endl;
                                Money=choose;
                                choose+1005+rand()%2;
getch();
                                cout<<"你获得了 "<<itemname[choose]<<" x2!"<<endl;
getch();
                                bag[choose]++;
                                drop("远古僵尸4"); 
                                drop("远古僵尸4"); 
                                drop("远古骷髅4"); 
                                drop("远古骷髅4"); 
getch(); 
                            break;  
                            case 5:
                                choose=18+rand()%4;
                                cout<<"你获得了 "<<choose<<" 个绿宝石!"<<endl;
                                Money+=choose;
                                choose=1005+rand()%2;
getch();
                                cout<<"你获得了 "<<itemname[choose]<<" x3!"<<endl;
getch();
                                bag[choose]++;
                                drop("远古僵尸5");
                                drop("远古僵尸5");  
                                drop("远古骷髅5"); 
                                drop("远古骷髅5"); 
getch(); 
                            break;
                        }
                        map[x][y]='0';
                    }
                    system("cls");
                    if(x==1) cout<<"你现在位于神殿尽头。"<<endl;
                    if(map[x][y]=='0') cout<<"你现在位于沙漠神殿内部。";
                    if(map[x][y-1]!='#') cout<<"你的左侧有一条岔道。"; 
                    if(map[x][y+1]!='#') cout<<"你的右侧有一条岔道。";
                    cout<<endl;
                    //cout<<x<<" "<<y<<endl; 
                    sc(4);
                    cout<<"血量:"<<Health<<"/"<<MaxHealth<<endl;
                    sc(1);
                    cout<<"魔力:"<<Magic<<"/"<<MaxMagic<<endl;
                    sc(7);
                    cout<<"攻击:"<<Attack<<endl;
                    cout<<"防御:"<<Defense<<endl;
                    cout<<"速度:"<<Speed<<endl;
                    cout<<"绿宝石:"<<Money<<endl;
                    cout<<"等级:"<<Level;
                    sc(2);
                    cout<<" 经验:"<<Experience<<"/"<<Level*100<<endl; 
                    sc(7);  
                    cout<<"-----------------------------------" <<endl; 
                    cout<<"你要做什么?"<<endl;
                    cout<<"0,离开副本  "; 
                    if(map[x-1][y]!='#') cout<<"1,前进  ";
                    if(map[x][y-1]!='#') cout<<"2,向左走  ";
                    if(map[x][y+1]!='#') cout<<"3,向右走  ";
                    cout<<endl;
                    cin>>choose;
                    switch(choose){
                        case 0:
                            cout<<"你确定要退出副本吗?"<<endl;
                            cout<<"0,不  1,确定"<<endl;
                            cin>>choose;
                            if(choose==0) continue;
                            else{
                                cout<<"你扭回头,缓缓离开了神殿..."<<endl;
getch();
                                return;
                            }
                        break;
                        case 1:
                            if(map[x-1][y]=='#'){
                                cout<<"请勿乱输!"<<endl;
getch();
                                continue;
                            }else{
                                cout<<"你向着前方走去..."<<endl;
                                x--;
getch();
                                continue;
                            }
                        break;
                        case 2:
                            if(map[x][y-1]=='#'){
                                cout<<"请勿乱输!"<<endl;
getch();
                                continue;
                            }else{
                                cout<<"你向着左边走去..."<<endl;
                                y--;
getch();
                                continue;
                            }
                        break;
                        case 3:
                            if(map[x][y+1]=='#'){
                                cout<<"请勿乱输!"<<endl;
getch();
                                continue;
                            }else{
                                cout<<"你向着右边走去..."<<endl;
                                y++;
getch();
                                continue;
                            }
                        break;  
                    }
                } 
            }
        }
    }
    if(Place=="寒冰洞窟"){
                map[0]="#####"; 
                map[1]="##2##";
                map[2]="##1##";
                map[3]="##1##";
                map[4]="##1##";
                map[5]="##0##";
                if(help){//通过任务进入 
                    cout<<"男人带着你,跟着一些全副武装的士兵,在雪地中行走着。"<<endl;
                    Sleep(1000);
getch();
                    cout<<"很快,你们到了一个洞窟前,入口是一块巨大的寒冰,洞窟的上方布满冰刺。"<<endl;
getch();
                    say("“到了...”\n",40);
getch();
                    cout<<"祝你好运..."<<endl;
                }
                x=4,y=2; 
getch();
                say("你缓缓走进洞窟,等待你的会是什么呢...",50);
                Sleep(1000);
                while(1){
                    cin.clear();
                    cin.sync(); 
                    reset();//重置 
                    system("cls");
                    levelup(Experience);
                    if(map[x][y]=='1'){
                        cout<<"你走进内部,发现了一些怪物!"<<endl;
getch();
                        switch(1+rand()%3){
                            case 1:
                                cout<<"你遇见了寒冰僵尸!"<<endl;
getch();
                                        fight(1,"寒冰僵尸",20,5+rand()%2,0,6+rand()%5,3,4+rand()%3,2,200,1);
                                        drop("寒冰僵尸");
                                if(!dead){
                                    say("你的意识渐渐模糊...",100);
getch();
                                    return; 
                                }else{
                                    map[x][y]='0';
                                    if(MaxHealth-Health>0){
                                        cout<<"你原地休息片刻,恢复了10%的生命!"<<endl;
                                        Health+=min(MaxHealth/10,MaxHealth-Health);
getch();
                                    } 
                                }
                            break;
                            case 2:
                                cout<<"你遇见了寒冰骷髅!"<<endl;
getch();
                                        enemy[1].skill[41]=1; 
                                        fight(1,"寒冰骷髅",20,4+rand()%2,0,0+rand()%5,2,7+rand()%5,8,300,2);
                                        drop("寒冰骷髅");
                                        enemy[1].skill[41]=0;
                                if(!dead){
                                    say("你的意识渐渐模糊...",100);
getch();
                                    return; 
                                }else{
                                    map[x][y]='0';
                                    if(MaxHealth-Health>0){
                                        cout<<"你原地休息片刻,恢复了10%的生命!"<<endl;
                                        Health+=min(MaxHealth/10,MaxHealth-Health);
getch();
                                    } 
                                }
                            break; 
                            case 3:
                                cout<<"你遇见了寒冰蜘蛛!"<<endl;
getch();
                                        fight(1,"寒冰蜘蛛",20,6+rand()%3,0,-8+rand()%4,4,8+rand()%4,2,300,2);
                                        drop("寒冰蜘蛛");
                                if(!dead){
                                    say("你的意识渐渐模糊...",100);
getch();
                                    return; 
                                }else{
                                    map[x][y]='0';
                                    if(MaxHealth-Health>0){
                                        cout<<"你原地休息片刻,恢复了10%的生命!"<<endl;
                                        Health+=min(MaxHealth/10,MaxHealth-Health);
getch();
                                    } 
                                }
                            break;  
                        }
                    }
                    if(map[x][y]=='2'){
                        cout<<"你在原地休息了一会儿,恢复了50%生命值!"<<endl;
                        Health+=min(MaxHealth/2,MaxHealth-Health);
getch();
                        system("cls");
                        Sleep(1000);
                        say("你走进洞穴的中心,四处都是巨大的坚冰。\n",60);
getch(); 
                        say("你走上前时,发现了一块",60);
                        say("毛茸茸的地毯...?",120);
getch();
                        system("cls");
                        Sleep(1000);
                        say("“唔哇啊啊啊啊!!!”\n",50);
getch();
                        say("“地毯”忽然动了起来!\n",50);
getch();
                        say("原来那不是地毯,是一只巨型雪怪!!\n",50);
                        Sleep(1000); 
                        say("雪怪看到你。咆哮着向你袭来!!!",50);
getch();
                        system("cls");
                        cout<<"战斗!"<<endl;
                        Sleep(1000);
                                enemy[1].skill[2]=1;
                                enemy[1].skill[33]=1;
                                enemy[1].skill[43]=1;
                                fight(1,"巨型雪怪",80,9,102,12,3,11,2,2000,10);
                                drop("巨型雪怪");
                                if(dead){
                                    say("雪怪被你击杀了!...\n",50);
getch();
                                    if(help){
                                        cout<<"男人带着你上前查看,发现了一个冰封的箱子!"<<endl;
getch();
                                        say("“宝箱!!!”",30);
getch(); 
                                        say("男人打开宝箱,在里面挑了些东西。\n",60);
getch();
                                        say("“剩下的给你。”",50);
                                        say("说完,男人就带着人离开了。\n",80);
getch();
                                        cout<<"你获得了 15 个绿宝石!"<<endl;
                                        Money+=15;
                                    }else{
                                        cout<<"你上前查看,发现了一个冰封的箱子!"<<endl;
getch();
                                        cout<<"你获得了 20 个绿宝石!"<<endl;
                                        Money+=20;
getch();    
                                    }
                                    int x=10+rand()%5;
                                    cout<<"获得"<<item[161].itemname<<" x"<<x<<" !"<<endl;
                                    bag[161]+=x;
getch();
                                    cout<<"你获得了 "<<itemname[97]<<" x1!"<<endl;
                                    bag[97]++;
                               getch();
                                }else{
                                    say("你的意识渐渐模糊...",100);
getch();
                                    return; 
                                }
                    }
                    system("cls");
                    if(x==1) cout<<"你现在位于洞穴尽头,已经没有路了。"<<endl;
                    if(map[x][y]=='0') cout<<"你现在位于洞穴内部。";
                    cout<<endl;
                    //cout<<x<<" "<<y<<endl; 
                    sc(4);
                    cout<<"血量:"<<Health<<"/"<<MaxHealth<<endl;
                    sc(1);
                    cout<<"魔力:"<<Magic<<"/"<<MaxMagic<<endl;
                    sc(7);
                    cout<<"攻击:"<<Attack<<endl;
                    cout<<"防御:"<<Defense<<endl;
                    cout<<"速度:"<<Speed<<endl;
                    cout<<"绿宝石:"<<Money<<endl;
                    cout<<"等级:"<<Level;
                    sc(2);
                    cout<<" 经验:"<<Experience<<"/"<<Level*100<<endl; 
                    sc(7);  
                    cout<<"-----------------------------------" <<endl; 
                    cout<<"你要做什么?"<<endl;
                    if(map[x-1][y]!='#') cout<<"1,前进  ";
                    else cout<<"1,离开"<<endl;
                    cout<<endl;
                    cin>>choose; 
                    if(choose!=1){
                        cout<<"请勿乱输!"<<endl;
getch();
                        continue;
                    }else{
                        if(map[x-1][y]=='#'){
                            cout<<"你离开了洞穴..."<<endl;
getch();
                            if(help) badguy=6;//以后没士兵帮助了嘿嘿 
                            return;
                        }else{
                            cout<<"你向着前方走去..."<<endl;
                            x--;
getch();
                            continue;   
                        }
                    } 
            }
        }
    if(Place=="末地"){
        if(!enter_ender){
getch(); 
            Sleep(1000);
            cout<<"你穿过传送门,面前是一片烛白色的末地石堆积起的岛屿。"<<endl;
getch();Sleep(1000);
            cout<<"一眼望去,周遭的一片虚空都似乎发散着紫色的光芒。"<<endl;
getch();Sleep(1000);
            cout<<"几根高耸的黑曜石柱,像钉子一样笔直矗立在末地主岛上。"<<endl;
getch();Sleep(1000);
            cout<<"在那柱子上,闪烁着的水晶不断向空中的巨龙射出如同一条条锁链般的能量。"<<endl;
getch();
            Sleep(2000);
            system("cls");
            Sleep(2000);
            cout<<"巨龙扑打着翅膀,飞舞在空中,遮蔽了末地的天空。"<<endl;
getch();Sleep(1000);
            cout<<"在这样的庞然巨物面前,你能有几分胜算";
            Sleep(500);
            say("...?\n",50); 
getch();Sleep(1000);
            cout<<"末影龙调转龙头,从空中俯视着你。"<<endl;
getch();Sleep(1000);
            cout<<"渺小的人类,无须多言。"<<endl;
getch();Sleep(1000);
            cout<<"战斗便是答案。"<<endl;
getch();Sleep(1000);
            say("“你终将取得胜利...一次又一次...没有任何事物能阻挡你.”",60);
            Sleep(2000);
        }else{
getch();
            Sleep(1000);
            cout<<"穿过传送门,空中的末影龙一个盘旋转身面向着你,吐出一口龙息。"<<endl;
getch();Sleep(1000);
            cout<<"你缓缓上前,避开龙焰。"<<endl;
getch();Sleep(1000);
            cout<<"战斗便是答案。"<<endl;
            Sleep(1000);
        }
        system("cls");
        cout<<"战斗!"<<endl;
        Sleep(3000);
        enemy_num=1;
        if(ender_crystal[1]){
            enemy[++enemy_num].skill[15]=1;
            add_enemy(enemy_num,"末影水晶",1,0,0,0,0,-20,0,0,0);    
        }
        if(ender_crystal[2]){
            enemy[++enemy_num].skill[15]=1;
            add_enemy(enemy_num,"末影水晶",1,0,0,0,0,-10,0,0,0);    
        }
        if(ender_crystal[3]){
            enemy[++enemy_num].skill[15]=1;
            add_enemy(enemy_num,"末影水晶",1,0,0,0,0,10,0,0,0); 
        }
        if(ender_crystal[4]){
            enemy[++enemy_num].skill[15]=1;
            add_enemy(enemy_num,"末影水晶",1,0,0,0,0,20,0,0,0); 
        }
        enemy[1].skill[49]=1;
        enemy[1].skill[50]=1;
        fight(enemy_num,"末影龙",min(ender_dragon_health+20,200),11,104,20,5,20,3,12000,50);
        drop("末影龙"); 
        if(dead){
            dragon_dead=true;
            credit+=10;
getch();
            cout<<"末地的紫色巨龙,身躯在空中渐渐融为碎片,发出耀眼的光芒......"<<endl;
getch();Sleep(1000);
            cout<<"直至变为灰烬。"<<endl;
            Sleep(3000);
            system("cls");
            Sleep(500);
            say("结束了?\n",200);Sleep(2000);
            system("cls");
            Sleep(1000);
            say("结束了...",150);Sleep(2000);
            system("cls");
            Sleep(1000);
            say("真的结束了...",300);
            Sleep(4500);
            cout<<"么?"<<endl;
            Sleep(500);
            system("cls");
getch();
            sc(5);cout<<"似乎有什么东西松动了..."<<endl;sc(7);
getch();
            cout<<"不过或许无关紧要..."<<endl;getch();Sleep(2000);
            system("cls");
            Sleep(1500);
            return;
        }
    }
    return; 
}
/*

Don’t want to let you down

But I am hell bound

Though this is all for you

Don’t want to hide the truth

No matter what we breed

We still are made of greed

This is my kingdom come

This is my kingdom come

*/

void explore(string Place){//探索
    explore_time[place_id[Place]]++;
    if(Place=="村庄"){        
        if(undeadattack){
            system("cls");
            enemyattack();
            return;
        }
        int RD[20]={60,170,60,170,80,    60,70,60,30,120,120};
        choose=RandNum(11,RD);
        //铁傀儡 恶霸/无 绿宝石 旅馆 图书管理员  农民 notch雕像 无 流浪商人 附魔师 抽奖 
        switch(choose){
            case 1:
                cout<<"你遇到了铁傀儡!"<<endl;
                cout<<"0,离开  1,激怒"<<endl;
                cin>>choose;
                if(choose==1){
                    fight(1,"铁傀儡",100,9,30,20,2,10,3,500,5);
                    credit-=20;
                    drop("铁傀儡");
                }else{
                    cout<<"你远离了铁傀儡"<<endl; 
getch();
                    break;
                }
            break;
            case 2:
            if(badguy==0){
                cout<<"你看见了一名恶霸正在欺负一名村民..."<<endl;
                cout<<"1,阻止  2,离开  3,一起欺负"<<endl;
                cin>>choose;
                if(choose==1){
                    cout<<"战斗!"<<endl;
                    Sleep(2000);
                    fight(1,"恶霸村民",20,1,0,-30,2,5,2,150,2);
                    if(dead){
                        credit+=5;
                        dead=false;
getch();
                        cout<<"你走到那名恶霸面前,说:"<<endl;
getch();
                        cout<<"以后不要再欺负别人了!"<<endl;
                        Sleep(1500);
                        cout<<"恶霸看了你一眼,灰溜溜的跑了"<<endl;
                        badguy=2;
                        Sleep(1000);
                        cout<<"被欺负的村民十分感激,给了你 3 颗绿宝石"<<endl;
                        Money+=3;     
getch();
                        Sleep(1000);
                    }else{//fvv
                        cout<<"恶霸走到你面前,嘲讽道:不过如此!还想见义勇为?"<<endl;
getch();
                        cout<<"那我就成全你,他的钱我不要了,把你的钱给我!!!"<<endl;
getch();
                        Money=0;
                        cout<<"你的钱被恶霸全部拿走了..."<<endl; 
getch();
                        Sleep(1000);
                    }
                }else{
                    if(choose==2){
                        cout<<"你默默走开了。"<<endl;
                        Sleep(2000);
                        credit-=10;
                    }else{
                        cout<<"你冲过去,推开了恶霸,自己抢走村民身上所有的绿宝石。"<<endl;
                        Money+=6;
getch();
                        cout<<"你获得了 6 颗绿宝石!"<<endl;
                        credit-=25;//夺笋呐! 
                        badguy=1;
getch();
                        Sleep(1000);
                    }
                }
            }else if(badguy==2){
                cout<<"你又遇到了之前欺负人的村民"<<endl;
getch(); 
                cout<<"恶霸村民告诉你,雪地有一个村民发布了任务,完成了就有丰厚的奖品!"<<endl;
getch();
                cout<<"临走前,他给了你 2 颗绿宝石"<<endl;
                Money+=2;
                badguy=3;
getch();
                Sleep(1000);
            }else{
                cout<<"你什么都没遇见..."<<endl;
getch(); 
            }
            break;  
            case 3:
                cout<<"你在地上发现了 1 颗绿宝石!"<<endl;
                Money+=1;
getch();    
            break;
            case 4:
                cout<<"你来到了村庄旅馆"<<endl;
                Sleep(1000);
                cout<<"0,离开  1,进入"<<endl;
                cin>>choose;
                if(choose==1){
                    system("cls"); 
                    if(credit<=30){
                        cout<<"你刚走进旅馆里,就听到有个人喊道:那是个坏蛋!"<<endl;
                        Sleep(1000);
                        cout<<"里面的村民看到你,连忙将你赶了出去"<<endl;
                        Sleep(1000);
                        cout<<"店主看到你,嫌弃道:“你不配住我的旅馆!”"<<endl;
getch();     
                    }else{
                        cout<<"你走进村庄旅馆,里面的装饰朴素而整洁,令人感到温馨。"<<endl;
                        Sleep(1000);
                        int cost=min(max((MaxHealth-Health)/8,1),5); 
                        cout<<"要休息吗?需要花费 "<<cost<<" 颗绿宝石(休息可以恢复生命值)"<<endl;
                        cout<<"(当前你有 "<<Money<<" 颗绿宝石)"<<endl; 
                        cout<<"0,离开  1,休息"<<endl;
                        cin>>choose;
                        if(choose==1){
                            if(Money<cost){
                                cout<<"你突然发现自己的钱不够,只好尴尬的走了"<<endl;
                                Sleep(2000);
                            }else{
                                system("cls");
                                cout<<"店主给你开了一间房,你在里面美美的睡了一觉..."<<endl;
                                Money-=cost;
                                cout<<"你还剩 "<<Money<<" 颗绿宝石!"<<endl;
                                Sleep(1000);
                                Health=MaxHealth;
                                say("zzzZZZ...\n",500);
                                Sleep(1500);
                                system("pause"); 
                                cout<<"真是神清气爽..."<<endl;
getch();
                                cout<<"你恢复了所有生命值!"<<endl; 
getch();
                            }
                        }
                    }
                }
            break;  
            case 5:
                cout<<"你遇见了村庄中德高望重的老者-图书管理员"<<endl; 
getch();
                cout<<"这位老者知晓这个世界上的种种事情..."<<endl<<endl;
getch();
                if(badguy==1&&credit<=40){
                    cout<<"图书管理员只是轻轻扫视过你身上,你就感觉内心仿佛被审视了一般"<<endl;getch();
                    cout<<"你感觉罪恶爬上了你的脊梁..."<<endl;getch();
                    cout<<"“你都做了什么,没有人比你更清楚,即使是遇见弱小者也不愿伸手援助,甚至助纣为虐...”"<<endl;getch();
                    cout<<"顷刻间,图书管理员便消失在你的视线中..."<<endl;getch(); 
                }else{
                    if(librarian==0&&dragon_dead){
                        say("“屠龙者......”\n",70);getch();
                        cout<<"图书管理员意味深长的看着你。"<<endl;getch();
                        say("“事已至此,已经没有回头路了。”\n",70);getch();
                        say("“虽然现在我已经帮不上你什么了,但希望这个能对你有用...”\n",70);getch();
                        cout<<"获得 冥想术技能书 x1!"<<endl;getch();
                        bag[item_id["冥想术技能书"]]++;
                        cout<<"图书管理员望着远处的群山。"<<endl;getch();
                        say("“我能感受到,一种加于世间万物上的封印被解除了......”\n",70);getch();
                        say("“这究竟是好是坏?我不知道。”\n",70);getch();
                        say("“前路只会更加危险。”\n",70);getch();
                        say("“......”",100);getch();
                        Sleep(1000);cout<<"无言。"<<endl;
getch();Sleep(2000);
                        system("cls");
                    }
                    cout<<"你要与图书管理员交谈吗?(0,离开  1,交谈)"<<endl;
                    cin>>choose;
                    if(choose==1){
                        cout<<"你要询问什么?"<<endl;
                        cout<<"1,关于远古时期的战争"<<endl;
                        cout<<"2,关于Herobrine"<<endl;
                        cout<<"3,Herobrine归来的传言"<<endl;
                        cout<<"4,关于创世之力"<<endl;
                        cout<<"5,关于亡灵势力"<<endl; 
                        cout<<"6,关于地狱"<<endl;
                        if(stronghold)cout<<"7,关于末地"<<endl;
                        if(dragon_dead) cout<<"8,边境之地"<<endl;
                        cin>>choose;
                        if((!stronghold&&choose==7)||(!dragon_dead&&choose==8)) choose=114514;
                        switch(choose){
                            case 1:
                                system("cls");
                                Sleep(2000); 
                                cout<<"据说在远古时期,也就是这个世界刚被创造出的时候,世界上有两位神,也就是Notch和Herobrine,而这两位神是兄弟。"<<endl; 
                                cout<<"因Herobrine创造了亡灵生物,两人意见逐渐不和,最终他们的关系分崩离析。"<<endl;
                                cout<<"Notch本与Herobrine互不干涉,但Herobrine创造出的亡灵生物组成了一支亡灵大军----"<<endl;
                                cout<<"亡灵大军四处游荡,所过之处血流成河,尸骨遍地..."<<endl;
                                cout<<"Notch眼看着世界生灵涂炭,决心要阻止Herobrine,而这就是战争的导火索。"<<endl;
                                cout<<"亡灵生物可以将死去的生灵转变为亡灵,当时的人类只得四处逃亡。"<<endl;
                                cout<<"Notch使用了大量的「创世之力」才成功解决了一大部分的亡灵,但仍有部分亡灵侥幸活了下来。"<<endl;
                                cout<<"而后,Notch已经没有足够的力量对付Herobrine了,他只好用出剩余的「创世之力」,将Herobrine封印在了地狱..."<<endl;
                                cout<<"但是,似乎Herobrine正积蓄着力量,破开封印..."<<endl;
                                cout<<"图书管理员叹了口气。"<<endl;
                                cout<<"0,离开  1,继续询问"<<endl;
                                cin>>choose;
                                if(choose==1){
                                    cout<<"管理员:以后再来吧,现在我累了..."<<endl;
getch(); 
                                }    
                            break;
                            case 2:
                                system("cls");
                                Sleep(2000); 
                                cout<<"古籍记载,Herobrine是与Notch一同诞生与虚空中的神。"<<endl;
                                cout<<"Herobrine是混沌的存在,身上充斥着混沌与毁灭的力量。"<<endl;
                                cout<<"他和Notch携手,耗费大量神力创造出了我们的世界。"<<endl;
                                cout<<"早在创世初期,Herobrine就展示出了与他的哥哥截然不同的性格。"<<endl; 
                                cout<<"他放荡不羁,将自己当作众生的主宰,将世界当作自己的游戏。"<<endl;
                                cout<<"开始,Herobrine还不至于做些太出格的事情。"<<endl;
                                cout<<"但随着时间推移,他越来越狂妄,开始在世界各地建立自己的势力。"<<endl;
                                cout<<"他用自己的「混沌之力」和「亡灵之力」创造出了一个又一个他的忠实手下,亡灵生物也都受他控制,"<<endl;
                                cout<<"凭借着自己强大的力量,他收服了世界各地的一个个强者,并用自己的力量使他们变得更强,同时臣服于自己。"<<endl;
                                cout<<"直到他被封印,他的一些信徒和手下隐藏了起来,而Notch已经无暇顾及。"<<endl; 
                                cout<<"图书管理员叹了口气。"<<endl;
                                cout<<"0,离开  1,继续询问"<<endl;
                                cin>>choose;
                                if(choose==1){
                                    cout<<"管理员:以后再来吧,现在我累了..."<<endl;
getch(); 
                                }
                            break;
                            case 3: 
                                system("cls");
                                Sleep(2000); 
                                cout<<"Herobrine的归来..."<<endl; 
                                cout<<"Herobrine有一些虚影,类似于分身,代表着他的意志,但实力远不及本体。"<<endl;
                                cout<<"虚影都有着一些自己的意识,但都由Herobrine控制。似乎,虚影之间可以互相联系。"<<endl;
                                cout<<"尽管Notch已经将Herobrine封印,似乎仍有一些虚影侥幸留存了下来。"<<endl; 
                                cout<<"现在,创世神Notch不知所踪。"<<endl; 
                                cout<<"Herobrine曾经的势力,必将会不惜所有代价,强行打破Herobrine的封印..."<<endl;
                                cout<<"像 NULL,恐惧魔王等都是Herobrine忠实的手下,据说他们实力极强,每个都能独当一面,横扫千军。"<<endl;
                                cout<<"若他们联合起来,集结所有的力量,Herobrine很有可能将会破开封印,重回世界..."<<endl<<endl;
                                cout<<"图书管理员深吸了一口气。"<<endl;
                                cout<<"0,离开  1,继续询问"<<endl;
                                cin>>choose;
                                if(choose==1){
                                    cout<<"管理员:以后再来吧,现在我累了..."<<endl;
getch(); 
                                }
                            break;
                            case 4:
                                system("cls");
                                Sleep(2000); 
                                cout<<"据说「 创世之力」,也就是Notch所拥有的神力。"<<endl; 
                                cout<<"这种神力是最纯粹,最强大的力量,也是创造世界本源的力量,是「毁灭之力」与「创造之力」的融合。"<<endl;
                                cout<<"Herobrine所拥有的,便是「 毁灭之力」。与Notch的「 创造之力」相反,充满着破坏,不稳定性。"<<endl;
                                cout<<"正是当初Notch和Herobrine联手,消耗了大量「 创造之力」,才创造出了这个世界。"<<endl;
                                cout<<"而也只有「 创世之力」,才能抗衡Herobrine的「 毁灭之力」。"<<endl;
                                cout<<"但Notch在那场大战后便消失了踪迹...事实究竟是怎样,已经无人知晓。"<<endl;
                                cout<<"「 创世之力」,也许只是一个传说也说不定..."<<endl;
                                cout<<"图书管理员怅然的眺望向远方。"<<endl;
                                cout<<"0,离开  1,继续询问"<<endl;
                                cin>>choose;
                                if(choose==1){
                                    cout<<"管理员:以后再来吧,现在我累了..."<<endl;
getch(); 
                                }
                            break;
                            case 5:
                                system("cls");
                                Sleep(2000); 
                                cout<<"亡灵生物,是Herobrine用「亡灵之力」与「混沌之力」创造出的。"<<endl; 
                                cout<<"这种生物可以将死去的生灵转变成亡灵。"<<endl;
                                cout<<"也就是说,通过亡灵的四处吞噬,感染,可以轻易组成一支亡灵大军。"<<endl;
                                cout<<"而Herobrine正是凭借着数量庞大的亡灵军队,才得以与Notch抗衡。"<<endl;
                                cout<<"Herobrine曾经忠心耿耿的下属,亡灵的领导者,Blackbone组织着亡灵生物们..."<<endl;
                                cout<<"尽管Notch拥有创世之力,但也无法彻底除掉亡灵。"<<endl;
                                cout<<"这将是一个致命的威胁。即使现在我们有很多铁傀儡,村庄周边的亡灵也不可忽视。"<<endl;
                                cout<<"Blackbone现在似乎在谋划着什么,必须保持警惕。"<<endl; 
                                cout<<"图书管理员的面色变得凝重。"<<endl;
                                cout<<"0,离开  1,继续询问"<<endl;
                                cin>>choose;
                                if(choose==1){
                                    cout<<"管理员:以后再来吧,现在我累了..."<<endl;
getch(); 
                                } 
                            break;  
                            case 6:
                                system("cls");
                                Sleep(2000);
                                cout<<"地狱,一个充斥着岩浆与狱岩的地方。传说也是封印Herobrine的地方..."<<endl; 
                                cout<<"地狱危机重重,要时刻小心跌入岩浆,还要提防可怕的恶魂,岩浆怪。"<<endl;
                                cout<<"而在地狱中,有一种特殊的种族--猪灵。"<<endl;
                                cout<<"猪灵是一种贪财的生物,喜好黄金,给他们金锭便能与他们“交易”。"<<endl;
                                cout<<"原始的猪灵用以物易物的方式交易,但你却不能知道自己能得到什么,他们只凭自己的喜好给你东西。"<<endl;
                                cout<<"地狱的深处还隐藏着一种重金属——下界合金。这些合金需要在地狱的深处挖掘坚硬的远古生物的残骸提炼而成。"<<endl;
                                cout<<"另外,地狱中还暗藏着一些猪灵的堡垒,以及下界要塞,这些地方都隐藏着珍贵的宝藏,以及——无穷的危机。"<<endl;
                                cout<<"要想进入地狱,得用黑曜石搭建链接两个维度的传送门才行。"<<endl; 
                                cout<<"黑曜石是水与熔岩混合而成的坚硬石头,必须使用钻石工具才能挖掘。"<<endl; 
                                cout<<"图书管理员意味深长的看了你一眼。"<<endl;
                                cout<<"0,离开  1,继续询问"<<endl;
                                cin>>choose;
                                if(choose==1){
                                    cout<<"管理员:以后再来吧,现在我累了..."<<endl;
getch();
                                }
                            break;
                            case 7:
                                system("cls");
                                Sleep(2000); 
                                cout<<"末地,位于虚空的另一维度。"<<endl; 
                                cout<<"那里矗立着数根黑曜石柱,在末地的主岛上还有一条巨龙。"<<endl;
                                cout<<"在末地里,四处充斥着末影人。我们主世界里的末影人都是在时空缝隙中不小心穿越过来的。"<<endl;
                                cout<<"在打败末影龙后,就可以前往末地的外岛了。外岛中散布着一些末地城,这些城市里面藏着许多宝藏。"<<endl;
                                cout<<"但要打败末影龙可不容易,黑曜石柱上的末影水晶会为末影龙持续恢复力量。"<<endl;
                                cout<<"话虽如此,这些水晶也像锁链一样捆绑着它,使它无法离开末地主岛。"<<endl;
                                cout<<"似乎这是因为末影龙身上承载着一些类似于封印之类的东西..."<<endl; 
                                cout<<"不过,要前往末地,必须要找到世界与末地的折跃链接口,我听说在地下曾经有一个废弃的要塞,里面供奉着末地之门..."<<endl;
                                cout<<"图书管理员叹了口气。"<<endl;
                                cout<<"0,离开  1,继续询问"<<endl;
                                cin>>choose;
                                if(choose==1){
                                    cout<<"管理员:以后再来吧,现在我累了..."<<endl;
getch();
                                }
                            break; 
                            case 8:
                                system("cls");          
                                Sleep(2000);                                
                                cout<<"在遥远的边境之地,那里混合着「创世之力」与「毁灭之力」,地面被拉伸成一堵高墙,一切事物都变得混乱。"<<endl;
                                cout<<"随着距离的增加,以及两位创世神的决裂,边境之地的两股力量不能融合,而是互相抵抗,碰撞。"<<endl;
                                cout<<"「混沌之力」就是由此而来,互斥的两股力量形成了不稳定的「混沌之力」。"<<endl;
                                cout<<"受此影响,边境之地的群系与正常地带并无区别,地貌却如同被撕裂拉伸一样,那里的生物也发生进化以适应环境。"<<endl; 
                                cout<<"而据说Null,就在边境之地..."<<endl;
                                cout<<"作为Herobrine最忠心最强大的手下之一,Null的实力无人知晓,但绝不是等闲之辈。"<<endl;
                                cout<<"他在Herobrine的炼化之下,已经洞悉了「虚空之力」,还掌握了一丝「混沌之力」。"<<endl;
                                cout<<"Null可能就在边境之地附近游荡,还没有人从那活着回来过......"<<endl; 
                                cout<<"图书管理员叹了口气。"<<endl;
                                cout<<"0,离开  1,继续询问"<<endl;
                                cin>>choose;
                                if(choose==1){
                                    cout<<"管理员:以后再来吧,现在我累了..."<<endl;
getch();
                                }   
                            break; 
                            default:
                                cout<<"请勿乱输!"<<endl;
getch();
                            break;
                        }
                    }
                }
            break;
            case 6:
                cout<<"你发现了一个睡着的农民"<<endl;
                Sleep(1000);
                cout<<"0,叫醒  1,偷东西"<<endl;
                cin>>choose;
                if(choose==1){
                    credit-=19;
                    int add=rand()%4;
                    if(add==0){
                        cout<<"你偷偷摸了摸农民的口袋,发现空空如也!"<<endl;
                        Sleep(1000);
                        cout<<"农民惊醒了,大喊:小偷!!!"<<endl;
                        Sleep(1000);
                        cout<<"一旁的铁傀儡冲来!"<<endl;
getch();
                        fight(1,"铁傀儡",100,9,40,20,2,10,3,200,5);
                        if(dead) drop("铁傀儡");
                        else{
                            cout<<"你的钱被铁傀儡全部夺走了!"<<endl;
                            Money=0; 
getch();
                            return;
                        }
                    }else{
                        cout<<"你偷偷摸了摸农民的口袋,发现有 "<<add<<" 颗绿宝石!"<<endl;
                        Money+=add;
                        Sleep(1000);
                        cout<<"你又悄悄地走了"<<endl;
getch();
                    }
                }else{
                    cout<<"你叫醒了农民"<<endl;
                    Sleep(1000);
                    cout<<"农民对你不停感谢"<<endl;
                    credit+=3;//used to be +=1 
                    //say terrablade is so kind
getch();
                }
            break;
            case 7:
                cout<<"你走到村庄中心,发现了一个雕像..."<<endl;
                Sleep(1000);
                cout<<"你仔细一看,是创世神Notch的雕像!"<<endl;
getch();
                cout<<"但你环顾四周,发现竟没有一个村民祭拜雕像。"<<endl;
getch();
                cout<<"而雕像也无人清理,十分破旧。"<<endl<<endl;
getch();
                if(credit<=15){//used to be <=20
                    cout<<"你对着雕像,冷笑一声,吐了一口口水便离去了"<<endl;
getch();
                    credit-=1;
                    // used to be -5
                    //what did u do???
                    return;
                }
                cout<<"0,离开  1,祭拜雕像"<<endl;
                cin>>choose;
                if(choose==1){
                    system("cls");
                    cout<<"你正欲祭拜时,一个村民对你喊道:不要祭拜!"<<endl;
                    Sleep(1000);
                    cout<<"你很奇怪,问为什么不能祭拜。"<<endl;
getch();
                    cout<<"村民说:一旦我们祭拜了创世神的雕像,周围的亡灵生物便会感到威胁,前来攻打我们的村庄!"<<endl<<endl;
getch();
                    cout<<"0,离开  1,继续祭拜"<<endl;
                    cin>>choose;
                    if(choose==1){
                        credit+=5;
                        cout<<"你没有犹豫,对着雕像拜了下去..."<<endl; 
                        Sleep(2000);
                        if(blesscold==0){
                            cout<<"获得Notch之祝福!下次战斗时生效"<<endl;
                            blessing=true;
getch();
                            blesscold=2;
                        }else blesscold--;  
                        if(1+rand()%2==1){
                            undeadattack=true;
                            cout<<"然而,你突然有了一种不祥的预感..."<<endl;
getch(); 
                        }
                    }
                }
            break;
            case 8:
                cout<<"你什么都没遇见..."<<endl;
getch(); 
            break;
            case 9:
                cout<<"你遇见了流浪商人!"<<endl;
getch();
                cout<<"0,离开  1,交易"<<endl; 
                cin>>choose;
                if(choose==1) shop("流浪商人");
                else return;
            break;
            case 10:
                cout<<"你遇见了附魔师!"<<endl;
getch();
                cout<<"这位老者精通魔力与经验的神秘力量。"<<endl;
                cout<<"0,离开  1,交谈"<<endl;
                cin>>choose;
                if(choose==1){
                    if(credit<=20){
                        cout<<"附魔师看到了你,不屑的冷哼一声,走开了。"<<endl;
getch();
                        return;
                    }
                    while(1){
                        cin.clear();
                        cin.sync(); 
                        system("cls");
                        cout<<"你要干什么?"<<endl;
                        cout<<"当前等级:"<<Level<<endl;
                        sc(2);cout<<"经验:"<<Experience<<"/"<<Level*100<<endl;
                        sc(1);cout<<"魔力:"<<Magic<<"/"<<basicmagic<<endl;sc(7);
                        cout<<"绿宝石:"<<Money<<endl; 
                        cout<<"当前你有 ";
                        sc(2);cout<<xp_orb<<" 个压缩经验球"<<endl;sc(7);
                        cout<<"0,离开  1,附魔武器  2,压缩经验  3,提升魔力"<<endl;
                        cin>>choose;
                        switch(choose){
                            case 0:
                                cout<<"你向老者一拜,走开了。"<<endl;
getch();
                                return;
                            break;
                            case 1:
                                cout<<"\n你要附魔什么?"<<endl;
                                cout<<"1,锋利I\n";
                                cout<<"2,力量I\n";
                                cout<<"注:附魔只在战斗中生效,在战斗结束后有33%的概率,或离开游戏后失效。"<<endl;
                                cout<<"附魔不可叠加,新的附魔会使原本的附魔失效。"<<endl;
                                cout<<"当前你的附魔为:";
                                if(Enchant==0) cout<<"无" ;
                                if(Enchant==1) cout<<"锋利I";  
                                if(Enchant==2) cout<<"力量I";  
                                cout<<endl;
                                cin>>choose;
                                if(choose==1){
                                    cout<<"附魔 锋利I 可以使你的近战伤害增加 1 点!"<<endl;
                                    cout<<"\n需要 "<<9<<" 个青金石和 3 个绿宝石。"<<endl;                       
                                    cout<<"0,返回  1,确定"<<endl;
                                    cin>>choose;
                                    if(choose==1){
                                        if(bag[43]<9){
                                            cout<<"你的青金石不足!"<<endl;
getch();
                                            continue;
                                        }else{
                                            if(Money<3){
                                                cout<<"你的绿宝石不足!"<<endl;
getch();
                                                continue;
                                            }
                                            cout<<"附魔成功!"<<endl;
getch(); 
                                            Enchant=1;
                                            Money-=3;
                                            bag[43]-=9;
                                        }
                                    }else continue;
                                }
                                if(choose==2){
                                    cout<<"附魔 力量I 可以使你的远程伤害增加 1 点!"<<endl;
                                    cout<<"\n需要 "<<9<<" 个青金石和 3 个绿宝石。"<<endl;
                                    cout<<"0,返回  1,确定"<<endl;
                                    cin>>choose;
                                    if(choose==1){
                                        if(bag[43]<9){
                                            cout<<"你的青金石不足!"<<endl;
getch();
                                            continue;
                                        }else{
                                            if(Money<3){
                                                cout<<"你的绿宝石不足!"<<endl;
getch();
                                                continue;
                                            }
                                            cout<<"附魔成功!"<<endl;
getch();
                                            Enchant=2;
                                            Money-=3;
                                            bag[43]-=9;
                                        }
                                    }else continue;
                                }
                            break; 
                            case 2:
                                cout<<"\n压缩一次需要 100 经验和 1 绿宝石。"<<endl;
                                cout<<"当前你有 ";
                                sc(2);cout<<xp_orb<<" 个压缩经验球"<<endl<<endl;  sc(7);
                                cout<<"0,返回  1,压缩"<<endl;
                                cin>>choose;
                                if(choose==1){
                                    if(Money<1){
                                        cout<<"你的绿宝石不足!"<<endl;
getch();
                                        continue;
                                    }else{
                                        if(Experience<100){
                                            if(Level<=1){
                                                cout<<"你的经验不足!"<<endl;
getch();
                                                continue;
                                            }
                                            cout<<"你的经验不足,要";
                                            sc(4);cout<<"降级";sc(7);
                                            cout<<"吗?"<<endl;
                                            cout<<"0,不  1,是"<<endl;
                                            cin>>choose;
                                            if(choose==0){
                                                continue; 
                                            }else{
                                                Level--;
                                                Experience+=Level*100;
                                            }
                                        }
                                        cout<<"你将体内的经验进行压缩..."<<endl;
                                        Sleep(1000);
                                        cout<<"获得";
                                        sc(2);cout<<"1 个压缩经验球!"<<endl;sc(7);
                                        Experience-=100;
                                        Money--; 
                                        xp_orb++;
                                        cout<<"当前你有 ";
                                        sc(2);cout<<xp_orb<<" 个压缩经验球"<<endl;sc(7);
getch();
                                    }
                                }else continue;      
                            break;  
                            case 3:
                                if(magicup>=12){
                                    cout<<"你已达到提升上限!"<<endl;
getch();
                                    continue; 
                                }
                                if(magicup==11){
                                    cout<<"附魔师看着你,轻叹一声。"<<endl;getch();
                                    say("“我的实力有限,现在已经难以单纯以青金石提升你的魔力了。”\n",50); Sleep(500);
                                    say("“魔力与经验,相辅相成。”\n",50);Sleep(500);
                                    say("“魔力,是技能之能量来源。”\n",50);Sleep(500);
                                    say("“经验,是魔力之根本。”\n",50);getch();
                                    say("“虽然我已经提升不了你的魔力,",50);Sleep(1000);
                                    say("但我有一个秘法,可以提升你施展技能的能力。”\n",50);getch();
                                    say("“我需要 99 个青金石和 30 个压缩经验球,且等级大于等于 25 级。”\n",50);
                                    cout<<"0,返回  1,提升"<<endl;  
                                    cin>>choose;
                                    if(choose==1){
                                        if(bag[43]<99||xp_orb<30||Level<25){
                                            cout<<"你不满足提升条件!"<<endl;
getch();
                                            continue; 
                                        }else{
                                            bag[43]-=99;
                                            xp_orb-=30;
                                            cout<<"提升成功!可携带技能上限 + 1 !"<<endl;
                                            skilltakemax++; 
                                            magicup++;
getch();
                                            continue;
                                        }
                                    }else continue;
                                 }else{
                                    cout<<"\n提升一次魔力可以增加 ";
                                    sc(1);cout<<"1 点魔力上限。";sc(7);
                                    cout<<"最多可提升 10 次。"<<endl;
                                    cout<<"已提升 "<<magicup-1<<" 次。"<<endl;
                                    cout<<"提升需要青金石 "<<magicup*9<<" 个,";sc(2);
                                    cout<<"压缩经验球 "<<magicup*2<<" 个";sc(7);
                                    cout<<",且等级大于等于 "<<magicup*2<<" 。"<<endl;
                                    cout<<"当前你有青金石 "<<bag[43]<<" 个。"<<endl<<endl;
                                    cout<<"0,返回  1,提升"<<endl;  
                                    cin>>choose;
                                    if(choose==1){
                                        if(bag[43]<magicup*9||xp_orb<magicup*2||Level<magicup*2){
                                            cout<<"你不满足提升条件!"<<endl;
getch();
                                            continue; 
                                        }else{
                                            bag[43]-=magicup*9;
                                            xp_orb-=magicup*2;
                                            cout<<"提升成功!"<<endl;
                                            basicmagic++;
                                            magicup++;
                                            Magic++;
getch();
                                            continue;
                                        }
                                    }else continue;
                                 }
                            break;  
                        } 
                    }          
                }else{
                    cout<<"你缓缓走远了"<<endl;
getch();
                }
            break; 
            case 11:
                cout<<"你遇见了一个抽奖机!"<<endl;
                cout<<"来一发?(只需 3 绿宝石一次!)\n"<<endl;
                cout<<"0,走开  1,抽奖"<<endl;
                cin>>choose;
                if(choose==1){
                    cout<<"你确定?"<<endl;
                    Sleep(1000);
                    cout<<"当然!为什么不呢?!"<<endl;
                    cout<<"你忐忑的按下了按钮..."<<endl;
getch();
                    if(Money<3){
                        cout<<"机器里传来声清脆的脏话:";
                        say("没钱给老子滚!\n",80);getch();
                        cout<<"你看到机器的屏幕上闪出一句话:RP--!"<<endl;
                        credit--;
getch();
                    }else{
                        Money-=3; 
                        system("cls");
                        cout<<"您的奖品 > ";
getch();
                        int sleeptime=10,prize; 
                        int pRD[20]={75,75,75,75,75,70,55,50,40,
                        50,25,25,40,50,50,40,70,60};
                        prize=RandNum(18,pRD);
                        string prizename[20]={"","再接再厉","下次一定","谢谢惠顾","空气 x114514","木棍 x114","煤炭 x4","铁锭 x4","金锭 x4","钻石 x3",
                        "治疗药水","重击技能书","三连击技能书","下界合金碎片","青金石 x10","黑曜石 x2","绿宝石 x5","绿宝石 x1","橡木木板 x1"};
                        for(int i=1;i<=35;i++){
                            cout<<"您的奖品 > "<<prizename[1+rand()%18]<<endl; 
                            Sleep(sleeptime);
                            sleeptime+=i+2;//用脚做出的变慢效果( 
                            system("cls");
                        }
                        cout<<"您的奖品 > "<<prizename[prize]<<endl; 
                        Sleep(1500); 
                        system("cls"); 
                        cout<<"恭喜你获得奖品:"<<prizename[prize]<<"!"<<endl;
getch();
                        switch(prize){
                            case 4:cout<<"空气 x114514 已邮寄于您的肺中!请注意查收!"<<endl;getch();break;  
                            case 5:cout<<"木棍 x114 已储存于您的背包中!请注意查收!"<<endl;bag[10]+=114;getch();break;
                            case 6:cout<<"煤炭 x4 已储存于您的背包中!请注意查收!"<<endl;bag[19]+=4;getch();break;
                            case 7:cout<<"铁锭 x4 已储存于您的背包中!请注意查收!"<<endl;bag[21]+=4;getch();break;
                            case 8:cout<<"金锭 x4 已储存于您的背包中!请注意查收!"<<endl;bag[32]+=4;getch();break;
                            case 9:cout<<"钻石 x3 已储存于您的背包中!请注意查收!"<<endl;bag[44]+=2;getch();break;
                            case 10:cout<<"治疗药水 x1 已储存于您的背包中!请注意查收!"<<endl;bag[1001]+=1;getch();break;
                            case 11:cout<<"重击技能书 x1 已储存于您的背包中!请注意查收!"<<endl;bag[66]+=1;getch();break;
                            case 12:cout<<"三连击技能书 x1 已储存于您的背包中!请注意查收!"<<endl;bag[67]+=1;getch();break;
                            case 13:cout<<"下界合金碎片 x1 已储存于您的背包中!请注意查收!"<<endl;bag[56]+=1;getch();break;
                            case 14:cout<<"青金石 x10 已储存于您的背包中!请注意查收!"<<endl;bag[43]+=10;getch();break;
                            case 15:cout<<"黑曜石 x2 已储存于您的背包中!请注意查收!"<<endl;bag[65]+=2;getch();break;
                            case 16:cout<<"绿宝石 x5 已储存于您的背包中!请注意查收!"<<endl;Money+=5;getch();break;
                            case 17:cout<<"绿宝石 x1 已储存于您的背包中!请注意查收!"<<endl;Money+=1;getch();break;
                            case 18:cout<<"橡木木板 x1 已储存于您的背包中!请注意查收!"<<endl;bag[5]+=1;getch();break;
                        }
                    }
                }else{
                    cout<<"你看着那台小小的抽奖机,心中冷笑一声,走开了。\n“这么小的抽奖机,肯定没好东西...”"<<endl;
                    if(Money<3) cout<<"毕竟就算有好东西,你也没钱..."<<endl;//乐 
getch();
                }
            break;  
        }
    }
    //平原冒险内容 
    if(Place=="平原"){    
        int find=rand()%100;
        if(find==0){
            cout<<"你发现了一个废弃的地狱传送门!"<<endl;
getch();
            int obsidian=2+rand()%2,gold=2+rand()%3; 
            cout<<"你打开箱子,获得了 "<<obsidian<<" 个黑曜石和 "<<gold<<" 个金锭!"<<endl;
            bag[65]+=obsidian;
            bag[32]+=gold;
getch();
            return;
        }
        int RD[20]={100,80,80,50,150,50,140,100,70,80,100};
        //旅行家 牛 羊 无 僵尸 流浪商人   骷髅 强壮僵尸 狙击骷髅 僵尸村民 末影人 
        choose=RandNum(11,RD); 
        //choose=10;
        switch(choose){
            case 1:
                if(task1==0){//待重做 
                    cout<<"你遇见了一个旅行家!"<<endl;
                    Sleep(1500);
                    choose=1+rand()%2;
                    if(choose==1){
                        cout<<"旅行家对你说,他身上没有木头了,你能不能给他带来 10 个橡木?"<<endl;
                        cout<<endl<<"0,拒绝  1,接受"<<endl;
                        cin>>choose;
                        if(choose==1){
                            cout<<"获得任务:收集橡木!"<<endl;
                            task1=1;getch();
                            cout<<"注:完成任务后,需找到旅行家结算任务方可领取奖励。"<<endl;getch();
                        }else{
                            cout<<"你拒绝了旅行家"<<endl;getch();
                        }
                    }
                    if(choose==2){
                        cout<<"旅行家对你说,他身上没有原石了,你能不能给他带来 30 个圆石?"<<endl;
                        cout<<endl<<"0,拒绝  1,接受"<<endl;
                        cin>>choose;
                        if(choose==1){
                            cout<<"获得任务:采集圆石!"<<endl;
                            task1=2;getch();
                            cout<<"注:完成任务后,需找到旅行家结算任务方可领取奖励。"<<endl;getch();
                        }else{
                            cout<<"你拒绝了旅行家"<<endl;getch();
                        }
                    }
                }else{
                    if(task1==1){
                        if(bag[1]<10){
                            cout<<"你找到了旅行家"<<endl;
                            Sleep(1500);
                            cout<<"你现在只有 "<<bag[1]<<" 个橡木,你没有完成任务!"<<endl;
                            Sleep(1500);
                            cout<<"旅行者看着你,生气的走了"<<endl;getch();
                            cout<<"任务作废!"<<endl;
                            task1=0;
                            credit-=15;getch(); 
                            return;
                        }else{
                            int add=1+rand()%4; 
                            cout<<"你找到了旅行家"<<endl;
                            Sleep(1500);
                            cout<<"你交给了旅行家 10 个橡木!"<<endl;
                            bag[1]-=10; 
                            Sleep(1500);
                            cout<<"旅行家十分高兴,给了你 "<<add<<" 颗绿宝石作为奖励!"<<endl;
                            Money+=add;getch();
                            cout<<"任务已完成!"<<endl;
                            task1=0;
                            credit+=8;//used to be 5getch();
                            return;
                        }
                    }
                    if(task1==2){
                        if(bag[14]<30){
                            cout<<"你找到了旅行家"<<endl;
                            Sleep(1500);
                            cout<<"你现在只有 "<<bag[14]<<" 个圆石,你没有完成任务!"<<endl;
                            Sleep(1500);
                            cout<<"旅行家看着你,生气的走了"<<endl;getch();
                            cout<<"任务作废!"<<endl;
                            task1=0;
                            credit-=15;getch(); 
                            return;
                        }else{
                            int add=1+rand()%4; 
                            cout<<"你找到了旅行家"<<endl;
                            Sleep(1500);
                            cout<<"你交给了旅行家 30 个圆石!"<<endl;
                            bag[14]-=30; 
                            Sleep(1500);
                            cout<<"旅行家十分高兴,给了你 "<<add<<" 颗绿宝石作为奖励!"<<endl;
                            Money+=add;getch();
                            cout<<"任务已完成!"<<endl;
                            task1=0;
                            credit+=8;getch();
                            return;
                        }
                    }
                }
            break;
            case 2:
                cout<<"你遇见了一头牛!"<<endl;
                cout<<"0,离开  1,击杀"<<endl;
                cin>>choose;
                if(choose==1){
                    fight(1,"牛",20,2,100,-10,3,10,1,50,0);
                }else return;
            break;
            case 3:
                cout<<"你遇见了一只羊!"<<endl;
                cout<<"0,离开  1,击杀"<<endl;
                cin>>choose;
                if(choose==1){
                    fight(1,"羊",20,2,100,-10,3,10,1,50,0);
                }else return;
            break;
            case 4:
                cout<<"你什么也没遇见..."<<endl;
getch();
            break;
            case 5:  
                Event("僵尸"); 
            case 6:
                cout<<"你遇见了流浪商人!"<<endl;getch();
                cout<<"0,离开  1,交易"<<endl; 
                cin>>choose;
                if(choose==1) shop("流浪商人");
                else return;
            break;
            case 7: 
                Event("骷髅");
            break;
            case 8: 
                Event("强壮僵尸"); 
            break;
            case 9: 
                cout<<"你遇见了一只特殊的骷髅..."<<endl;
                cout<<"直觉告诉你,面前的这具骨架比你想象的还要危险。"<<endl;
                cout<<"0,离开  1,击杀"<<endl;
                cin>>choose;
                if(choose==1){
                    fight(1,"狙击骷髅",20,8,25,0,2,10,10+rand()%5,500,5);
                    drop("狙击骷髅");
                }else{
                    choose=rand()%2;
                    if(choose==1){
                        cout<<"你悄悄走开了。"<<endl;
getch();
                    }else{
                        cout<<"如同子弹般迅猛的箭射在了你的身前...看来你是跑不掉了!"<<endl;
getch();
                        fight(1,"狙击骷髅",20,8,25,0,2,10,10+rand()%5,500,5);
                        drop("狙击骷髅");
                    }
                }
            break;
            case 10:
                cout<<"你遇见了一名正被僵尸追逐的村民!"<<endl;
                cout<<"0,漠视  1,拯救"<<endl;
                cin>>choose;
                if(choose==0){
                    credit-=20;
                    cout<<"你毫无怜悯的看着被僵尸啃食的村民..."<<endl;
                    Sleep(1000);
                    cout<<"村民被转化成了僵尸村民..."<<endl;
getch();
                    cout<<"两只僵尸形成包围之势,同时向你冲来!"<<endl; 
getch();
                    add_enemy(2,"僵尸村民",20,3,0,0,3,-5,2,100,1);
                    fight(2,"僵尸",20,4,0,0,3,5,2,100,1);
                }else{
                    cout<<"你冲上前去,挡在了村民前面!"<<endl;
getch();
                    fight(1,"僵尸",20,4,0,0,3,5,2,100,1);
                    drop("僵尸"); 
                    if(dead){
                        credit+=5;
                        cout<<"你击败了僵尸,村民对你无比感激!"<<endl;
getch();
                        cout<<"村民给了你 2 颗绿宝石!"<<endl;
                        Money+=2;
getch();
                    }else{
                        cout<<"在你被僵尸激战时,村民已经去村庄找到了铁傀儡助战!"<<endl;
getch();
                        cout<<"铁傀儡打败了僵尸并将你救出。"<<endl;
getch();
                    }
                }
            break;
            case 11:    
                Event("末影人");
            break;
        }
    }
    if(Place=="森林"){
        int find=rand()%100;
        if(find==0){
            cout<<"你发现了一个废弃的地狱传送门!"<<endl;
getch();
            int obsidian=2+rand()%2,gold=2+rand()%3; 
            cout<<"你打开箱子,获得了 "<<obsidian<<" 个黑曜石和 "<<gold<<" 个金锭!"<<endl;
            bag[65]+=obsidian;
            bag[32]+=gold;
getch();
            return;
        }
        int RD[20]={90,90,80,170,50, 150,130,120,120};
        //牛 羊 无 僵尸 流浪商人   骷髅 强壮僵尸 苹果 末影人 
        choose=RandNum(9,RD); 
        switch(choose){
            case 1:
                cout<<"你遇见了一头牛!"<<endl;
                cout<<"0,离开  1,击杀"<<endl;
                cin>>choose;
                if(choose==1){
                    fight(1,"牛",20,2,100,0,3,10,1,50,0);
                }else return;
            break;
            case 2:
                cout<<"你遇见了一只羊!"<<endl;
                cout<<"0,离开  1,击杀"<<endl;
                cin>>choose;
                if(choose==1){
                    fight(1,"羊",20,2,100,0,3,10,1,50,0);
                }else return;
            break;
            case 3:
                cout<<"你什么也没遇见..."<<endl;
getch();
            break;  
            case 4: 
                Event("僵尸");
            break;
            case 5:
                cout<<"你遇见了流浪商人!"<<endl;
getch();
                cout<<"0,离开  1,交易"<<endl; 
                cin>>choose;
                if(choose==1) shop("流浪商人");
                else return;
            break;
            case 6: 
                Event("骷髅");
            break;
            case 7: 
                Event("强壮僵尸");
            break;
            case 8:
                cout<<"你发现了一颗苹果!"<<endl;
                bag[36]++;
getch();
            break;  
            case 9: 
                Event("末影人");
            break;
        }
    }
    if(Place=="洞穴"){
        if(!stronghold&&(Rand(50)||explore_time[place_id[Place]]>=40)){//5%
            cout<<"你正在洞穴里探索时,忽然被面前的岩壁吸引了注意力..."<<endl;
            Sleep(1000);
getch();
            cout<<"你定睛一看,面前不是普通的石块,而是已经布满青苔了的开裂的石砖!"<<endl;
getch();
            cout<<"你敲开石砖,露出了漆黑难测的内部。"<<endl;
getch();
            cout<<"点亮火把,里面是结构复杂,深不可测的地下要塞!"<<endl;
            Sleep(1000);
getch();
            cout<<"解锁新区域:要塞!"<<endl;
getch();
            Sleep(1000);
            stronghold=true;
            return;
        }
        int add;
        int RD[20]={50,150,150,  170,140,130,120,  90};
        //无 僵尸 骷髅   铁 金 青金 钻 末影人 
        choose=RandNum(8,RD); 
        switch(choose){
            case 1:
                cout<<"你什么也没遇见..."<<endl;
getch();
            break;  
            case 2: 
                Event("僵尸");
            break;
            case 3: 
                Event("骷髅");
            break;
            case 4://发现铁矿 
                add=rnd(3,7);
                cout<<"你发现了 "<<add<<" 块铁矿石!"<<endl;
                Sleep(1000);
                cout<<"0,离开  1,挖掘"<<endl;
                cin>>choose;
                if(choose==1){
                    system("cls");
                    if(tool2<2||tool2==3){
                        cout<<"当前稿子无法挖掘此矿石!"<<endl;
                        Sleep(2000);
                        return;
                    }
                    destroy(80000*add,tool2speed[tool2]);
                    cout<<"挖掘完毕!获得 "<<itemname[20]<<" "<<add<<" 个!"<<endl;
                    bag[20]+=add;
                    cout<<"当前有 "<<itemname[20]<<" "<<bag[20]<<" 个!"<<endl;
getch();
                }else return;
            break;
            case 5://发现金矿 
                add=rnd(2,5);
                cout<<"你发现了 "<<add<<" 块金矿石!"<<endl;
                Sleep(1000);
                cout<<"0,离开  1,挖掘"<<endl;
                cin>>choose;
                if(choose==1){
                    system("cls");
                    if(tool2<4){
                        cout<<"当前稿子无法挖掘此矿石!"<<endl;
                        Sleep(2000);
                        return;
                    }
                    destroy(80000*add,tool2speed[tool2]);
                    cout<<"挖掘完毕!获得 "<<itemname[31]<<" "<<add<<" 个!"<<endl;
                    bag[31]+=add;
                    cout<<"当前有 "<<itemname[31]<<" "<<bag[31]<<" 个!"<<endl;
getch();
                }else return;
            break;
            case 6://发现青金石矿 
                add=rnd(3,8);
                cout<<"你发现了 "<<add<<" 块青金石!"<<endl;
                Sleep(1000);
                cout<<"0,离开  1,挖掘"<<endl;
                cin>>choose;
                if(choose==1){
                    system("cls");
                    if(tool2<2||tool2==3){
                        cout<<"当前稿子无法挖掘此矿石!"<<endl;
                        Sleep(2000);
                        return;
                    }
                    destroy(80000*add,tool2speed[tool2]);
                    cout<<"挖掘完毕!获得 "<<itemname[43]<<" "<<add<<" 个!"<<endl;
                    bag[43]+=add;
                    Experience+=add*15;
                    cout<<"当前有 "<<itemname[43]<<" "<<bag[43]<<" 个!"<<endl;
getch();
                }else return;
            break;
            case 7://发现钻石矿 
                add=rnd(2,7);
                cout<<"你发现了 "<<add<<" 块钻石!"<<endl;
                Sleep(1000);
                cout<<"0,离开  1,挖掘"<<endl;
                cin>>choose;
                if(choose==1){
                    system("cls");
                    if(tool2<4){
                        cout<<"当前稿子无法挖掘此矿石!"<<endl;
                        Sleep(2000);
                        return;
                    }
                    destroy(80000*add,tool2speed[tool2]);
                    cout<<"挖掘完毕!获得 "<<itemname[44]<<" "<<add<<" 个!"<<endl;
                    bag[44]+=add;
                    Experience+=add*30;
                    cout<<"当前有 "<<itemname[44]<<" "<<bag[44]<<" 个!"<<endl;
getch();
                }else return;
            break;
            case 8: 
                Event("末影人");
            break;
        }
    }
    if(Place=="沙漠"){
        int find=rand()%100;
        if(find==0){
            cout<<"你发现了一个废弃的地狱传送门!"<<endl;
getch();
            int obsidian=2+rand()%2,gold=2+rand()%3; 
            cout<<"你打开箱子,获得了 "<<obsidian<<" 个黑曜石和 "<<gold<<" 个金锭!"<<endl;
            bag[65]+=obsidian;
            bag[32]+=gold;
getch();
            return;
        }
        find=rand()%100; 
        if(desert_temple==false&&(find<=10||explore_time[place_id[Place]]>=25)){//10%
            cout<<"你正冒险时,突然发现了什么..."<<endl;
            Sleep(1000);
getch();
            cout<<"你仔细一看,自己的前方是一座神殿!"<<endl;
getch();
            cout<<"尘封的沙漠神殿,已被黄沙覆盖,埋藏的宝藏等待着冒险者的发现..."<<endl;
            Sleep(1000);
getch();
            cout<<"解锁副本:沙漠神殿!"<<endl;
getch();
            Sleep(1000);
            desert_temple=true;
            return;
        }
        int RD[20]={150,200,50,200,200,200};
        //无 僵尸 流浪商人 骷髅 尸壳 沙骷 
        choose=RandNum(6,RD); 
        switch(choose){
            case 1:
                cout<<"你什么也没遇见..."<<endl;
getch();
            break;  
            case 2: 
                Event("僵尸");
            break;
            case 3:
                cout<<"你遇见了流浪商人!"<<endl;
getch();
                cout<<"0,离开  1,交易"<<endl; 
                cin>>choose;
                if(choose==1) shop("流浪商人");
                else return;
            break;
            case 4: 
                cout<<"你遇见了一只骷髅!"<<endl;
                cout<<"0,离开  1,击杀"<<endl;
                cin>>choose;
                if(choose==1){
                    fight(1,"骷髅",20,4,20,0,1,6+rand()%4,8,200,2);
                    drop("骷髅");
                }else{
                    choose=rand()%2;
                    if(choose==1){
                        cout<<"你正欲离开时,骷髅发现了你!"<<endl;
getch();
                        fight(1,"骷髅",20,4,20,0,1,6+rand()%4,8,200,2);
                        drop("骷髅");
                    }else{
                        cout<<"你悄悄走开了。"<<endl;
getch();
                    }
                }
            break;
            case 5: 
                cout<<"你遇见了一只尸壳!"<<endl;
                cout<<"0,离开  1,击杀"<<endl;
                cin>>choose;
                if(choose==1){
                    fight(1,"尸壳",24,5,30,5,3,5,2,150,2);
                    drop("尸壳");
                }else{
                    choose=rand()%2;
                    if(choose==1){
                        cout<<"你正欲离开时,尸壳发现了你并向你冲来!"<<endl;
getch();
                        fight(1,"尸壳",24,5,30,5,3,5,2,150,2);
                        drop("尸壳");
                    }else{
                        cout<<"你悄悄走开了。"<<endl;
getch();
                    }
                }
            break;  
            case 6: 
                cout<<"你遇见了一只浑身是沙的骷髅!"<<endl;
                cout<<"0,离开  1,击杀"<<endl;
                cin>>choose;
                if(choose==1){
                    fight(1,"沙骷",20,4,20,0,3,6+rand()%4,8,250,2);
                    drop("骷髅");
                }else{
                    choose=rand()%2;
                    if(choose==1){
                        cout<<"你正欲离开时,骷髅发现了你!"<<endl;
getch();
                        fight(1,"沙骷",20,4,20,0,3,6+rand()%4,8,250,2);
                        drop("骷髅");
                    }else{
                        cout<<"你悄悄走开了。"<<endl;
getch();
                    }
                }
            break;
        }
    }
    if(Place=="丛林"){
        int find=rand()%100;
        if(find==0){
            cout<<"你发现了一个废弃的地狱传送门!"<<endl;
getch();
            int obsidian=2+rand()%2,gold=2+rand()%3; 
            cout<<"你打开箱子,获得了 "<<obsidian<<" 个黑曜石和 "<<gold<<" 个金锭!"<<endl;
            bag[65]+=obsidian;
            bag[32]+=gold;
getch();
            return;
        }
        find=rand()%100;
        if(jungle_temple==false&&(find<=10||explore_time[place_id[Place]]>=25)){//10%
            cout<<"你正冒险时,突然发现了什么..."<<endl;
            Sleep(1000);
getch();
            cout<<"你仔细一看,自己的前方是一座神庙!"<<endl;
getch();
            cout<<"远古的丛林神庙,四周遍布青苔,沉睡的怪物是否将会苏醒..."<<endl;
            Sleep(1000);
getch();
            cout<<"解锁副本:丛林神庙!"<<endl;
getch();
            Sleep(1000); 
            jungle_temple=true;
            return;
        }
        int RD[20]={90,90,80,170,50, 150,130,120,120};
        //牛 羊 无 僵尸 流浪商人   骷髅 强壮僵尸 苹果 蜘蛛 
        choose=RandNum(9,RD); 
        switch(choose){
            case 1:
                cout<<"你遇见了一头牛!"<<endl;
                cout<<"0,离开  1,击杀"<<endl;
                cin>>choose;
                if(choose==1){
                    fight(1,"牛",20,2,100,-10,3,10,1,50,0);
                }else return;
            break;
            case 2:
                cout<<"你遇见了一只羊!"<<endl;
                cout<<"0,离开  1,击杀"<<endl;
                cin>>choose;
                if(choose==1){
                    fight(1,"羊",20,2,100,-10,3,10,1,50,0);
                }else return;
            break;
            case 3:
                cout<<"你什么也没遇见..."<<endl;
getch();
            break;  
            case 4: 
                Event("僵尸");
            break;
            case 5:
                cout<<"你遇见了流浪商人!"<<endl;
getch();
                cout<<"0,离开  1,交易"<<endl; 
                cin>>choose;
                if(choose==1) shop("流浪商人");
                else return;
            break;
            case 6: 
                Event("骷髅");
            break;
            case 7: 
                Event("强壮僵尸");
            break;
            case 8:
                cout<<"你发现了一颗苹果!"<<endl;
                bag[36]++;
getch();
            break;  
            case 9:
                cout<<"你遇见了一只蜘蛛!"<<endl;
                cout<<"0,离开  1,击杀"<<endl;
                cin>>choose;
                if(choose==1){
                    fight(1,"蜘蛛",20,8,25,-10,4,8+rand()%4,2,300,3);
                    drop("蜘蛛"); 
                }else return; 
            break;
        }
    }
    if(Place=="雪地"){
        if(Rand(20)){
            cout<<"你正在行走时,忽然发现了一个洞穴..."<<endl;
            Sleep(1000);
getch();
            cout<<"你仔细一看,洞穴四处被厚厚的积雪覆盖,上方还有几根尖锐的冰刺。"<<endl;
            Sleep(1000);
getch();
            cout<<"直觉告诉你,这里面可能会有宝藏..."<<endl;
getch();
            cout<<"要进去吗?"<<endl;
            cin>>choose;
            cout<<"0,不进  1,进入"<<endl;
            if(choose==0){
                cout<<"你无视了洞穴..."<<endl;
getch(); 
                return;
            }else{
                cout<<endl<<"你走进了洞窟之中..."<<endl;
getch();
                dungeon("寒冰洞窟");
            }
            return;
        }
        if(badguy>=3){
            if(badguy>=4){
                if(badguy==5){
                    cout<<"“你准备好了吗?”"<<endl;
                    cout<<"0,还没有  1,好了"<<endl;
                    cin>>choose;
                    if(choose==0){
                        cout<<"“好吧。那你可以在雪地冒险...”"<<endl;getch(); 
                        system("cls");
                    }else{
                        system("cls");
                        cout<<"“准备好了?”"<<endl;getch();
                        help=true;
                        dungeon("寒冰洞窟");
                        help=false; 
                        return;
                    }
                }else{
                    cout<<"你要参加选拔吗?"<<endl;
                    cout<<"0,算了  1,好"<<endl;
                    cin>>choose;
                    if(choose==0){
                        cout<<"你继续在雪地冒险..."<<endl;
                        Sleep(1000);
                        system("cls");
                    }else{
                        system("cls");
                        cout<<"准备好了吗?!"<<endl;getch();
                        cout<<"开始吧!"<<endl;getch();
                        system("cls");
                        cout<<"一名挑战者用鄙视的眼光看向你,向你冲了过来!"<<endl;getch();
                        fight(1,"挑战者",20,4,0,3,3,5,2,200,3);
                        if(!dead){
                            cout<<"你被赶下台去,狼狈逃走了"<<endl;getch();
                            cout<<"你决定重整旗鼓,以后再继续来挑战!"<<endl;
                            return;
                        }
                        cout<<"另一名身穿重甲的挑战者向你走来,对你发起挑战!"<<endl;getch();
                        fight(1,"重甲挑战者",20,4,0,16,3,5,2,300,4);
                        if(!dead){
                            cout<<"你被赶下台去,狼狈逃走了"<<endl;getch();
                            cout<<"你决定重整旗鼓,以后再继续来挑战!"<<endl;
                            return;
                        }
                        cout<<"场上仅剩你与最后一名挑战者。"<<endl;getch();
                        cout<<"对方冷笑一声,便拔出一把长弓向你射出一箭!"<<endl;getch();
                        cout<<"你受到了 ";sc(4);cout<<"5 点伤害!"<<endl;sc(7);
                        Sleep(1000);
                        Health-=5;
                        cout<<"你还剩 ";sc(4);cout<<Health<<" 点生命!"<<endl;sc(7);
                        if(Health<=0){
                            player_dead();
                            cout<<"你毫无防备,倒在了地上..."<<endl;getch();
                            cout<<"你愤愤不平,发誓之后定要一雪前耻!"<<endl;
                            Health=2;getch();
                            Place="村庄";
                            return;
                        }getch();
                        cout<<"你恼羞成怒,向那人冲去!"<<endl;getch();
                        enemy[1].skill[4]=1;
                        fight(1,"长弓挑战者",20,5,0,-5,2,8,6,500,8);
                        enemy[1].skill[4]=0;
                        if(!dead){
                            cout<<"你被赶下台去,狼狈逃走了"<<endl;getch();
                            cout<<"你决定重整旗鼓,以后再继续来挑战!"<<endl;
                            return;
                        }
                        system("cls");
                        credit+=5;
                        cout<<"那名偷袭的挑战者自知不敌,连忙逃走了。"<<endl;getch();
                        cout<<"你通过了选拔!你将会获得寻找宝藏的资格!"<<endl;getch();
                        cout<<"此时,一名男人向你缓缓走来。"<<endl;
                        Sleep(1000);
                        cout<<"“不愧是恶霸村民推荐过的勇者...能在这么多挑战者中胜利,确实有些本事。”"<<endl;
                        Sleep(1000);
                        badguy=5;//探险 开始! 
                        say("现在你可以去为这次探险做准备了...我们会在这等着你。\n",20);getch();
                        cout<<"“对了,这是一些绿宝石,收下吧,好好准备,这次探险很危险...”"<<endl;
                        Sleep(500);
                        Money+=10;
                        cout<<"获得了 10 颗绿宝石!"<<endl;getch();
                        system("cls");
                        return; 
                    }

                }
            }else{
                cout<<"你来到雪地,看到了一个公告牌和几个村民。"<<endl;
getch();
                cout<<"“我要选出一个足够勇敢的勇士,前往雪地深处找到宝藏!”"<<endl; 
getch();
                cout<<"你毫不犹豫报了名..."<<endl; 
                badguy=4;
getch();
                system("cls");
                Sleep(1000);
                cout<<"你将要面对其他的挑战者,与他们战斗后才能得到资格去寻找宝藏!"<<endl;
                Sleep(500);
                cout<<"现在,你可以去为这次选拔进行准备!"<<endl;
                Sleep(500);
                cout<<"准备完后,只需回到雪地便可参加选拔..."<<endl;
getch(); 
                return;
            }
        }
        int RD[20]={200,100,60,175,175  ,50,150,90};
        //僵尸 流浪者 雪怪 骷髅 寒冰僵尸 流浪商人 无 末影人 
        choose=RandNum(8,RD); 
        switch(choose){
            case 1:
                Event("僵尸");
            break;  
            case 2: 
                cout<<"你遇见了一只流浪者!"<<endl;
                cout<<"0,离开  1,击杀"<<endl;
                cin>>choose;
                if(choose==1){
                    enemy[1].skill[41]=1; 
                    fight(1,"流浪者",20,4,20,0,1,6+rand()%4,8,300,3);
                    enemy[1].skill[41]=0;
                    drop("流浪者");
                }else{
                    choose=rand()%2;
                    if(choose==1){
                        cout<<"你正欲离开时,流浪者已经对你瞄准了!"<<endl;
getch();
                        enemy[1].skill[41]=1;
                        fight(1,"流浪者",20,4,20,0,1,6+rand()%4,8,300,3);
                        enemy[1].skill[41]=0;
                        drop("流浪者");
                    }else{
                        cout<<"你悄悄走开了。"<<endl;
getch();
                    }
                }
            break;
            case 3:
                cout<<"你遇见了一只巨型雪怪!"<<endl;
                cout<<"0,离开  1,击杀"<<endl;
                cin>>choose;
                if(choose==1){
                    enemy[1].skill[2]=2; 
                    fight(1,"雪怪",36,8,25,20,3,9,3,500,5);
                    enemy[1].skill[2]=0;
                    drop("雪怪"); 
                }else return; 
            break;
            case 4: 
                Event("骷髅");
            break;
            case 5:
                cout<<"你遇见了一只浑身是雪的僵尸!"<<endl;
                cout<<"0,离开  1,击杀"<<endl;
                cin>>choose;
                if(choose==1){
                    fight(1,"雪人",24,5,25,8,3,5,2,250,3);
                    drop("寒冰僵尸");
                }else{
                    choose=rand()%2;
                    if(choose==1){
                        cout<<"你正欲离开时,僵尸发现了你并向你冲来!"<<endl;
getch();
                        fight(1,"雪人",24,5,25,8,3,5,2,250,3);
                        drop("寒冰僵尸");
                    }else{
                        cout<<"你悄悄走开了。"<<endl;
getch();
                    }
                } 
            break;
            case 6:
                cout<<"你遇见了流浪商人!"<<endl;
getch();
                cout<<"0,离开  1,交易"<<endl; 
                cin>>choose;
                if(choose==1) shop("流浪商人");
                else return;
            break;  
            case 7:
                cout<<"你什么都没遇见..."<<endl;
getch();
            break;
            case 8: 
                Event("末影人");
            break;  
        }
    }
    if(Place=="地狱"){
        int find=rand()%100;
        if(find==0){
            cout<<"你发现了一个废弃的地狱传送门!"<<endl;
getch();
            int obsidian=2+rand()%2,gold=2+rand()%3; 
            cout<<"你打开箱子,获得了 "<<obsidian<<" 个黑曜石和 "<<gold<<" 个金锭!"<<endl;
            bag[65]+=obsidian;
            bag[32]+=gold;
getch();
            return;
        }
        if(nether_fortress==false&&(Rand(100)||explore_time[place_id[Place]]>=25)){//10%
            cout<<"你正冒险时,突然发现了什么..."<<endl;
            Sleep(1000);
getch();
            cout<<"你仔细一看,自己的前方是一座由下界岩砖铸成的巨大要塞!"<<endl;
getch();
            cout<<"暗红的下界砖桥,飞跨过一望无际的沸腾的熔岩......"<<endl; 
getch();
            cout<<"解锁新区域:下界要塞!"<<endl;
getch();
            Sleep(1000);
            nether_fortress=true;
            return;
        }
        int RD[20]={200,100,100,100,200,300};
        //僵尸猪人 末影人 疣猪兽 无 骷髅 猪灵 
        choose=RandNum(6,RD); 
        switch(choose){
            case 1:
                cout<<"你遇见了一只僵尸猪人!"<<endl;
                cout<<"0,离开  1,击杀"<<endl;
                cin>>choose;
                if(choose==1){
                    fight(1,"僵尸猪人",20,6,0,0,3,6+rand()%3,2,200,2);
                    drop("僵尸猪人");
                    system("cls");
                    if(dead){
                        cout<<"你正想离开时,引来了一群僵尸猪人!"<<endl;
getch(); 
                        add_enemy(2,"僵尸猪人",20,6,0,0,3,6+rand()%3,2,200,2);
                        fight(2,"僵尸猪人",20,6,0,0,3,5,2,200,2);
                        drop("僵尸猪人");
                        if(dead){
                            cout<<"你杀死了两只僵尸猪人后,连忙逃走了..."<<endl;
getch();
                        }
                    }
                }else{
                    cout<<"你悄悄走开了。"<<endl;
getch(); 
                } 
            break;
            case 2: 
                Event("末影人");
            break;  
            case 3:
                cout<<"你遇见了一头疣猪兽!"<<endl;
                cout<<"0,离开  1,击杀"<<endl;
                cin>>choose;
                if(choose==1){
                    fight(1,"疣猪兽",40,8,50,-5,3,10,4,300,3);
                }else{
                    cout<<"你趁着它扭头的瞬间,悄悄走开了。"<<endl; 
getch();
                }
            break;
            case 4:
                cout<<"你什么都没遇见..."<<endl;
getch();
            break; 
            case 5: 
                Event("骷髅");
            break;
            case 6: 
                cout<<"你遇见了一只猪灵!"<<endl;
                cout<<"0,离开  1,靠近"<<endl;
                cin>>choose;
                if(choose==1){
                    if(armor1!=3&&armor2!=3&&armor3!=3&&armor4!=3){
                        cout<<"猪灵愤怒的看向你,手持金剑向你攻击!"<<endl;getch();
                        fight(1,"猪灵",16,8,20,5,3,4+rand()%4,2,200,2);
                        drop("猪灵");
                     }else{
                        cout<<"你要?"<<endl;
                        cout<<"0,交易  1,攻击"<<endl;
                        cin>>choose;
                        if(choose==1){
                            fight(1,"猪灵",16,8,20,5,3,4+rand()%4,2,200,2);
                            drop("猪灵");
                        }else{
                            while(1){
                                cin.clear();
                                cin.sync(); 
                                system("cls");
                                cout<<"当前你有 "<<bag[32]<<" 个金锭。"<<endl;
                                cout<<"0,离开  1,交易"<<endl;
                                cin>>choose;
                                if(choose!=1) break;
                                else{
                                    if(bag[32]<1){
                                        cout<<"猪灵呆呆的看着你,突然好像明白了什么,愤怒的走开了。"<<endl;getch();
                                        break; 
                                    }else{
                                        cout<<"你把一块金锭交给猪灵。"<<endl;
                                        bag[32]--;getch();
                                        cout<<"猪灵捡起金锭,仔细的端详着..."<<endl;
                                        Sleep(5000+rand()%3000);getch();
                                        int i,add;
                                        int pRD[20]={80,140,140,80,140,140,100,80,100};
                                        int prize=RandNum(18,pRD);
                                        switch(prize){
                                            case 1:i=item_id["末影珍珠"],add=rnd(1,3);break;
                                            case 2:i=item_id["圆石"],add=rnd(4,8);break;
                                            case 3:i=item_id["下界石英"],add=rnd(3,5);break;
                                            case 4:i=1001+rand()%2,add=1;break;
                                            case 5:i=item_id["绯红菌柄"],add=rnd(5,7);break;    
                                            case 6:i=117+rand()%4,add=1;break;//一件锁链装备 
                                            case 7:i=item_id["金粒"],add=rnd(6,10);break;
                                            case 8:i=item_id["烈焰棒"],add=rnd(1,2);break;
                                            case 9:i=item_id["黑曜石"],add=rnd(1,3);break;  
                                        }
                                        cout<<"获得 "<<item[i].itemname<<" "<<add<<" 个!"<<endl;
                                        bag[i]+=add;getch();
                                    }
                                }
                            }
                        }
                    }
                }else{
                    choose=rand()%2;
                    if(choose==1){
                        cout<<"你正欲离开时,猪灵发现了你!"<<endl;getch();
                        if(armor1!=3&&armor2!=3&&armor3!=3&&armor4!=3){
                            cout<<"猪灵愤怒的看向你,手持金剑向你攻击!"<<endl;getch();
                            fight(1,"猪灵",16,8,20,5,3,4+rand()%4,2,200,2);
                            drop("猪灵");
                        }else{
                            cout<<"猪灵从你面前经过,没有理会你。"<<endl;getch();
                        } 
                    }else{
                        cout<<"你悄悄走开了。"<<endl;getch();
                    }
                }
            break;
        }
    }
    if(Place=="下界要塞"){
        int RD[20]={270,200,270,180,80};
        choose=RandNum(5,RD); 
        switch(choose){
            case 1:
                cout<<"你遇见了一只烈焰人!"<<endl;
                cout<<"0,离开  1,击杀"<<endl;
                cin>>choose;
                if(choose==1){
                    enemy[1].skill[44]=1; 
                    fight(1,"烈焰人",20,5,0,0,2,6+rand()%3,6,350,3);
                    drop("烈焰人");
                }else{
                    cout<<"你悄悄走开了。"<<endl;getch(); 
                }
            break;
            case 2: 
                Event("末影人");
            break;  
            case 3:
                cout<<"你遇见了一只凋零骷髅!"<<endl;
                cout<<"0,离开  1,击杀"<<endl;
                cin>>choose;
                if(choose==1){
                    enemy[1].skill[45]=1; 
                    fight(1,"凋零骷髅",30,7,0,5,3,5+rand()%3,2,350,3);
                    drop("凋零骷髅");
                }else{
                    if(Rand(600)){
                        cout<<"你正欲离开时,凋零骷髅发现了你并向你冲来!"<<endl;getch();
                        enemy[1].skill[45]=1; 
                        fight(1,"凋零骷髅",30,7,0,5,3,5+rand()%3,2,350,3);
                        drop("凋零骷髅");
                    }else{
                        cout<<"你悄悄走开了。"<<endl;getch();
                    }
                } 
            break;
            case 4:
                cout<<"你什么都没遇见..."<<endl;getch();
            break;
            case 5:
                cout<<"你发现了一个宝箱!"<<endl;getch();
                cout<<"然而,宝箱旁盘旋着两只烈焰人..."<<endl;getch(); 
                cout<<"0,离开  1,靠近"<<endl;
                cin>>choose;
                if(choose==1){
                    choose=Rand(900);
                    if(choose){
                        cout<<"你一走近,两只烈焰人便发现了你!"<<endl;getch();
                        enemy[1].skill[44]=1;
                        enemy[2].skill[44]=1; 
                        add_enemy(2,"烈焰人",20,5,0,0,2,6+rand()%3,6,350,3);
                        fight(1,"烈焰人",20,5,0,0,2,6+rand()%3,6,350,3);
                        drop("烈焰人");
                        drop("烈焰人");
                        if(dead){
                            cout<<"你打开宝箱..."<<endl;
                        }
                    }else cout<<"你悄悄靠近,趁烈焰人扭头的空隙,打开宝箱后便迅速离开了!"<<endl;
                    if(!choose||dead){getch();
                        int add=rnd(0,4),add2=rnd(5,18),add3=rnd(2,6),add4=rnd(1,3),add_money=rnd(2,4);
                        if(add) cout<<"获得钻石 x"<<add<<"!"<<endl,bag[item_id["钻石"]]+=add,getch();
                        cout<<"获得金粒 x"<<add2<<"!"<<endl,bag[item_id["金粒"]]+=add2,getch();
                        cout<<"获得铁锭 x"<<add3<<"!"<<endl,bag[item_id["铁锭"]]+=add3,getch();
                        cout<<"获得烈焰精华 x"<<add4<<"!"<<endl,bag[item_id["烈焰精华"]]+=add4,getch();
                        cout<<"获得绿宝石 x"<<add_money<<"!"<<endl,Money+=add_money,getch();
                    }
                }else{
                    cout<<"你悄悄走开了。"<<endl;
getch(); 
                }
            break; 
        }
    }
    if(Place=="末地"){
        int RD[20]={200,400,350,50}; 
        choose=RandNum(4,RD); 
        switch(choose){
            case 1:
                cout<<"你什么都没遇见..."<<endl;getch();
            break;
            case 2:
                Event("末影人");   
            break;
            case 3:
                Event("巨型末影人");
            break;
            case 4:
                cout<<"你在地上发现了一块末影碎晶!"<<endl;
                bag[item_id["末影碎晶"]]++;
                getch();
            break;
        }
    }
    if(Place=="要塞"){
        if(debug||(ender==false&&Rand(50))||(ender==false&&explore_time[place_id[Place]]>=40)){//5%
            cout<<"你正在要塞冒险时,突然发现了一间特别的房间!"<<endl;
            Sleep(1000);
getch();
            cout<<"你走进内部,便发现了一个在岩浆池上的祭坛!"<<endl;
getch();
            cout<<"正当你准备一探究竟时,一群蠹虫围住了你!"<<endl;
getch();
            cout<<"看样子你必须得清理一下这里了...";
            Sleep(500);
getch();
            say("...注意效率。\n",50);
getch();
            Sleep(1000);
            enemy[1].skill[48]=enemy[2].skill[48]=enemy[3].skill[48]=enemy[4].skill[48]=1; 
            add_enemy(2,"蠹虫",12,3,0,10,3,-6,2,100,1);
            add_enemy(3,"蠹虫",12,3,0,10,3,-8,2,100,1);
            add_enemy(4,"蠹虫",12,3,0,10,3,7,2,100,1);
            fight(4,"蠹虫",12,3,0,10,3,5,2,100,1);
            if(dead){
getch();
                cout<<"将烦人的蠹虫清理完后,你走上面前的石阶,面前是一个悬浮在空中的传送门框架!"<<endl;
getch(); 
                cout<<"发现末地传送门!"<<endl;
getch();
                Sleep(1000);
                system("cls");
                eye_of_ender=rnd(2,11);
getch();
                cout<<"祭坛上面有 12 块框架,其中有 "<<eye_of_ender<<" 块都被一颗紫绿色的眼球填充。"<<endl;
getch();
                cout<<"如果将所有框架填充完,想必就能打开主世界前往末地的通道!"<<endl;
getch();
                cout<<"你注意到末影之眼似乎与传送门的框架十分契合......"<<endl;
getch();
                Sleep(1000);
                ender=true;
                return; 
            }
        }
        if(ender&&eye_of_ender<12&&bag[item_id["末影之眼"]]>=1){
            cout<<"当前你有 "<<bag[item_id["末影之眼"]]<<" 个末影之眼。\n\n要将末影之眼放入传送门框架中吗?"<<endl;
            cout<<"0,暂不(继续冒险)  1,放入"<<endl;
            cin>>choose;
            if(choose==1){
                if(bag[item_id["末影之眼"]]+eye_of_ender>=12){
                    bag[item_id["末影之眼"]]-=12-eye_of_ender;
                    eye_of_ender=12;
                }else{
                    eye_of_ender+=bag[item_id["末影之眼"]];
                    bag[item_id["末影之眼"]]=0;
                }
                cout<<"你将末影之眼填充进传送门的框架里..."<<endl;
                Sleep(1000);
getch();
                cout<<"现在共有 "<<eye_of_ender<<" 块框架被填充了!"<<endl;
                if(eye_of_ender==12){
getch();
                    cout<<"所有的框架都被填充了!"<<endl;
getch();
                    system("cls");
                    string prtstr="末地传送门,开启了!!!";
                    for(int i=0;i<prtstr.length();i++){
                        sc(7);
                        cout<<prtstr[i];
                        Sleep(100);
                        system("color 5");
                    }
                    for(int i=1;i<=4;i++){
                        ender_crystal[i]=1;
                    }   
getch();
                    system("cls");
                } 
                return;
            }else{
                cout<<"你继续在要塞冒险..."<<endl;
                Sleep(1000);
                system("cls");
            }
        }
        int RD[20]={500,300,200};
        //无 僵尸 骷髅
        choose=RandNum(3,RD); 
        switch(choose){
            case 1:
                cout<<"你什么也没遇见..."<<endl;
getch();
            break;  
            case 2: 
                cout<<"你遇见了一只身穿盔甲的僵尸!"<<endl;
                cout<<"0,离开  1,击杀"<<endl;
                cin>>choose;
                if(choose==1){
                    fight(1,"要塞僵尸",25,6,25,10,3,5,2,350,3);
                    drop("僵尸"); 
                }else{
                    choose=rand()%2;
                    if(choose==1){
                        cout<<"你正欲离开时,僵尸发现了你并向你冲来!"<<endl;
getch();
                        fight(1,"要塞僵尸",25,6,25,10,3,5,2,350,3);
                        drop("僵尸"); 
                    }else{
                        cout<<"你悄悄走开了。"<<endl;
getch();
                    }
                }
            break;
            case 3: 
                cout<<"你遇见了一只身穿盔甲的骷髅!"<<endl;
                cout<<"0,离开  1,击杀"<<endl;
                cin>>choose;
                if(choose==1){
                    fight(1,"要塞骷髅",25,6,20,10,1,6+rand()%4,8,450,4);
                    drop("骷髅");
                }else{
                    choose=rand()%2;
                    if(choose==1){
                        cout<<"你正欲离开时,骷髅发现了你!"<<endl;
getch();
                        fight(1,"要塞骷髅",25,6,20,10,1,6+rand()%4,8,450,4);
                        drop("骷髅");
                    }else{
                        cout<<"你悄悄走开了。"<<endl;
getch();
                    }
                }
            break;
        }
    }
    if(Place=="边境之地"){
        switch(1+rand()%2){
            case 1:
                cout<<"你遇见了一只僵尸!"<<endl;
                cout<<"0,离开  1,击杀"<<endl;
                cin>>choose;
                if(choose==1){
                    fight(1,"_僵尸",50,12,50,20,4,8+rand()%4,2,1000,10);
                    drop("僵尸"); 
                }else{
                    choose=rand()%2;
                    if(choose==1){
                        cout<<"你正欲离开时,僵尸冷冷的扫视了你一眼...并向你冲来!"<<endl;
getch();
                        fight(1,"_僵尸",50,12,50,20,4,8+rand()%4,2,1000,10);
                        drop("僵尸"); 
                    }else{
                        cout<<"你悄悄走开了。"<<endl;
getch();
                    }
                }
            break;
            case 2: 
                cout<<"你遇见了一只骷髅!"<<endl;
                cout<<"0,离开  1,击杀"<<endl;
                cin>>choose;
                if(choose==1){
                    fight(1,"骷髅_",40,10,40,15,3,8+rand()%6,10,1500,12);
                    drop("骷髅");
                }else{
                    choose=rand()%2;
                    if(choose==1){
                        cout<<"你正欲离开时,一支箭射在了你的身前..."<<endl;
getch();
                        fight(1,"骷髅_",40,10,40,15,3,8+rand()%6,10,1500,12);
                        drop("骷髅");
                    }else{
                        cout<<"你悄悄走开了。"<<endl;
getch();
                    }
                }
            break;
        }
    }
    system("cls");
    return;
}

void go(){//前进 更改地点 
    system("cls");
    SetConsoleTitle("--前进--");
    cout<<"你要去哪里?"<<endl;
    cout<<"0,返回  1,村庄  2,平原  3,森林  4,洞穴  5,沙漠  6,丛林  7,雪地  8,地狱  9,末地";
    cout<<endl;
    if(stronghold) cout<<"10,要塞  "; 
    if(farland) cout<<"11,边境之地  ";
    if(jungle_temple) cout<<"12,丛林神庙  ";
    if(nether_fortress) cout<<"13,下界要塞  ";
    if(desert_temple) cout<<"14,沙漠神殿  ";
    cout<<endl;
    cin>>choose;

    string ps[20]={"0","村庄","平原","森林","洞穴","沙漠","丛林","雪地","地狱","末地","要塞","边境之地","丛林神庙","下界要塞","沙漠神殿"};
    if(choose==0) return;
    if(choose>14) return;
    if(Place==ps[choose]){
        cout<<"你已经在"<<Place<<"了!"<<endl;
        Sleep(1000);
        go();
        return;     
    }
    int cg=0; 
    switch(choose){
        case 0:return;break; 
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
        case 6:
        case 7:
            cg=1;
        break;
        case 8:
            if(nether){
                cg=1;
            }else{
                cg=false;
                cout<<"无法前进,你没有建造/发现地狱传送门"<<endl;
                Sleep(1000);
                go(); 
            }
        break;
        case 9:
            if(ender&&eye_of_ender==12){
                cg=1;
            }else{
                cout<<"无法前进,你没有发现/激活末地传送门"<<endl;
                Sleep(1000);
                go(); 
            }
        break;
        case 10:
            if(stronghold){
                cg=1; 
            }
        break;
        case 11:
            if(farland){
                cg=1; 
            }
        break;
        case 12:
            if(jungle_temple){
                dungeon("丛林神庙");
                return; 
            }
        break;
        case 13:
            if(nether_fortress){
                if(Place!="地狱"){
                    cout<<"当前无法前进至此处!"<<endl;
                    Sleep(1000);
                    go();
                    return; 
                }else cg=1;
            }
        break; 
        case 14:
            if(desert_temple){
                dungeon("沙漠神殿");
                return;
            }
        break;
    }
    if(cg){
        cout<<"前进中..."<<endl;
        if(!debug) Sleep(3000);
        system("cls");
        Place=ps[choose];
        cout<<"已到达 "<<Place<<"!"<<endl;
        if(!debug) Sleep(1000);
    }else{
        cout<<"请勿乱输!"<<endl;
getch();
        go();
        return; 
    }
    return;
}

void chop(string Place){//砍树 
    cout<<"发现树木!"<<endl;
    Sleep(1000);
    cout<<"开始砍树..."<<endl;
    Sleep(1000);
    system("cls");
    destroy(360000,tool1speed[tool1]);
    if(Place=="平原"||Place=="森林"){
        int add=rnd(5,8);
        cout<<"获得橡木 "<<add<<" 个!"<<endl; 
        bag[1]+=add;
        cout<<"当前拥有橡木 "<<bag[1]<<" 个"<<endl;  
    }
    if(Place=="丛林"){
        int add=rnd(6,9);
        cout<<"获得丛林木 "<<add<<" 个!"<<endl; 
        bag[2]+=add;
        cout<<"当前拥有丛林木 "<<bag[2]<<" 个"<<endl; 
    }
    if(Place=="雪地"){
        int add=rnd(7,10);
        cout<<"获得针叶木 "<<add<<" 个!"<<endl; 
        bag[3]+=add;
        cout<<"当前拥有针叶木 "<<bag[3]<<" 个"<<endl; 
    }
    if(Place=="地狱"){
        int add=rnd(6,9);
        cout<<"获得绯红木 "<<add<<" 个!"<<endl; 
        bag[4]+=add;
        cout<<"当前拥有绯红木 "<<bag[4]<<" 个"<<endl; 
    }
    if(Place=="末地"){
        int add=rnd(6,9);
        cout<<"获得紫颂果 "<<add<<" 个!"<<endl; 
        bag[item_id["紫颂果"]]+=add;
        cout<<"当前拥有紫颂果 "<<bag[item_id["紫颂果"]]<<" 个"<<endl; 
    }
    getch();
    int appleadd=rnd(1,3);
    if(rand()%3==0&&Place!="地狱"&&Place!="末地"){
        cout<<"你在树上发现了 "<<appleadd<<" 个苹果!"<<endl;
        bag[36]+=appleadd;
    getch();
    }   
    return;
}

void tree(string Place){//砍树
    if(Place=="村庄"){
        cout<<"似乎这里没有树...难道你想拆了村民的房子?"<<endl<<endl;
        cout<<"系统提示:请去别的地方砍树!"<<endl;
        Sleep(1500);
        return; 
    }
    if(Place=="洞穴"){
        cout<<"洞穴里只有坚硬的石头,没有树..."<<endl<<endl;
        cout<<"系统提示:请去别的地方砍树!"<<endl;
        Sleep(1500);
        return; 
    }
    if(Place=="沙漠"){
        cout<<"似乎这里没有树,有的只是长满了尖刺的仙人掌..."<<endl<<endl;
        cout<<"系统提示:请去别的地方砍树!"<<endl;
        Sleep(1500);
        return; 
    }
    system("cls");
    if(tool1==0){
        cout<<"看起来你没有斧子,但凭你坚硬的双手,也许可以拿下这些木头..."<<endl<<endl; 
        cout<<"如果你有一把斧子,会大大加快砍树的速度。"<<endl;
        Sleep(1000);
        cout<<endl;
    }
    cout<<"当前你装备:";
    cout<<tool1name[tool1]<<endl<<endl; 
    cout<<"提示:你所处的位置会影响你发现树木的速度。"<<endl;
    cout<<"   同时,你装备的斧头会决定你砍伐树木的速度。"<<endl<<endl;
    Sleep(2000);
    cout<<"0,返回  1,砍树"<<endl;
    cin>>choose;
    system("cls");
    if(choose==1){
        if(Place=="平原"){
            cout<<"大约需要 20 秒..."<<endl; 
            cout<<"寻找树木中..."<<endl; 
            Sleep(16000+rand()%8000); 
            chop("平原");
        }
        if(Place=="森林"){
            cout<<"大约需要 5 秒..."<<endl; 
            cout<<"寻找树木中..."<<endl; 
            Sleep(3000+rand()%4000); 
            chop("森林");
        }
        if(Place=="丛林"){
            cout<<"大约需要 10 秒..."<<endl; 
            cout<<"寻找树木中..."<<endl; 
            Sleep(6000+rand()%8000); 
            chop("丛林");
        }
        if(Place=="雪地"){
            cout<<"大约需要 30 秒..."<<endl; 
            cout<<"寻找树木中..."<<endl; 
            Sleep(25000+rand()%10000); 
            chop("雪地");
        }
        if(Place=="地狱"){
            cout<<"大约需要 10 秒..."<<endl; 
            cout<<"寻找树木中..."<<endl; 
            Sleep(6000+rand()%8000); 
            chop("地狱");
        }
        if(Place=="末地"){
            cout<<"大约需要 5 秒..."<<endl; 
            cout<<"寻找树木中..."<<endl; 
            Sleep(3000+rand()%4000); 
            chop("末地");
        }
    }else return;
}

void dig(string Place){//挖矿 
    while(1){
        if(Place!="洞穴"&&Place!="地狱"&&Place!="末地"){
            cout<<"此处无法挖矿!请去其他地方挖矿!"<<endl;
            Sleep(1500);
            return;
        }
        if(tool2==0){
            cout<<"空手无法挖矿!请装备稿子后再来挖矿!"<<endl;
            Sleep(1500);                
            return; 
        }
        system("cls");
        cout<<"现在你在:"<<Place<<endl;
        cout<<"你现在装备:"<<tool2name[tool2]<<endl<<endl;
        cout<<"提示:一些矿石只有特定的或足够好的稿子才能挖掘。"<<endl;
        cout<<"   同时,你装备的稿子会决定你挖掘矿石的速度。"<<endl<<endl;   
        if(Place=="洞穴"){    
            cout<<"0,返回  1,挖矿"<<endl;
            cin>>choose;
            if(choose==1){
                cout<<"0,挖圆石  1,挖矿物"<<endl;
                cin>>choose;
                if(choose==0){//挖石头 
                    cout<<"你要挖多少块圆石?"<<endl;
                    cin>>choose;
                    if(choose>64){
                        cout<<"数量太多,无法执行操作!"<<endl;
getch();
                        return;
                    }
                    cout<<"开始挖掘..."<<endl;
                    Sleep(2000); 
                    system("cls");
                    destroy(40000*choose,tool2speed[tool2]);
                    cout<<"获得圆石 "<<choose<<" 个!"<<endl; 
                    bag[14]+=choose;
                    cout<<"当前拥有圆石 "<<bag[14]<<" 个"<<endl;
                    Sleep(2000);    
                    return;
                }else{//挖矿石 
                    system("cls");
                    cout<<"探索矿洞中..."<<endl;
                    int figh=rand()%8;//1/4的概率还是高了?我觉得应该强迫带武器下矿。 
                    if(figh==0){
                        Sleep(3000+rand()%1000);
                        if(rand()%2==1){
                            cout<<"你遇到了僵尸!"<<endl;getch();
                            fight(1,"僵尸",20,4,40,0,3,5+rand()%5,2,90+rand()%60,1);
                            drop("僵尸");
                            return;
                        }else{
                            cout<<"你遇到了骷髅!"<<endl;getch();
                            fight(1,"骷髅",20,3,30,0,1,8+rand()%4,10,150+rand()%100,2);
                            drop("骷髅");
                            return; 
                        }
                    } 
                    Sleep(rnd(4000,10000));
                    if(!stronghold&&Rand(30)){//3%
                        cout<<"你正在洞穴里探索时,忽然被面前的岩壁吸引了注意力..."<<endl;
                        Sleep(1000);
getch();
                        cout<<"你定睛一看,面前不是普通的石块,而是已经布满青苔了的开裂的石砖!"<<endl;
getch();
                        cout<<"你敲开石砖,露出了漆黑难测的内部。"<<endl;
getch();
                        cout<<"点亮火把,里面是结构复杂,深不可测的地下要塞!"<<endl;
                        Sleep(1000);
getch();
                        cout<<"解锁新区域:要塞!"<<endl;
getch();
                        Sleep(1000);
                        stronghold=true;
                        return;
                    }
                    int add;
                    if(tool2<4){
                        int RD[20]={300,250,200,250};
                        choose=RandNum(4,RD);   
                    }else{
                        int RD[20]={200,200,150,200,100,150};
                        choose=RandNum(6,RD);
                    } 
                    switch(choose){
                        case 1://发现煤炭 
                            add=rnd(4,16);
                            cout<<"你发现了 "<<add<<" 块煤炭!"<<endl;
                            Sleep(1000);
                            cout<<"0,离开  1,挖掘"<<endl;
                            cin>>choose;
                            if(choose==1){
                                system("cls");
                                destroy(80000*add,tool2speed[tool2]);
                                cout<<"挖掘完毕!获得 "<<itemname[19]<<" "<<add<<" 个!"<<endl;
                                bag[19]+=add;
                                Experience+=add*5;
                                cout<<"当前有 "<<itemname[19]<<" "<<bag[19]<<" 个!"<<endl;
                                Sleep(2000);
                                continue; 
                            }else continue;
                        break;
                        case 2://发现铁矿 
                            add=rnd(4,9); 
                            cout<<"你发现了 "<<add<<" 块铁矿石!"<<endl;
                            Sleep(1000);
                            cout<<"0,离开  1,挖掘"<<endl;
                            cin>>choose;
                            if(choose==1){
                                system("cls");
                                if(tool2<2||tool2==3){
                                    cout<<"当前稿子无法挖掘此矿石!"<<endl;
                                    Sleep(2000);
                                    continue;
                                }
                                destroy(80000*add,tool2speed[tool2]);
                                cout<<"挖掘完毕!获得 "<<itemname[20]<<" "<<add<<" 个!"<<endl;
                                bag[20]+=add;
                                cout<<"当前有 "<<itemname[20]<<" "<<bag[20]<<" 个!"<<endl;
                                Sleep(2000);
                                continue;
                            }else continue;;
                        break;
                        case 3://发现金矿 
                            add=rnd(2,6);
                            cout<<"你发现了 "<<add<<" 块金矿石!"<<endl;
                            Sleep(1000);
                            cout<<"0,离开  1,挖掘"<<endl;
                            cin>>choose;
                            if(choose==1){
                                system("cls");
                                if(tool2<4){
                                    cout<<"当前稿子无法挖掘此矿石!"<<endl;
                                    Sleep(2000);
                                    continue;
                                }
                                destroy(80000*add,tool2speed[tool2]);
                                cout<<"挖掘完毕!获得 "<<itemname[31]<<" "<<add<<" 个!"<<endl;
                                bag[31]+=add;
                                cout<<"当前有 "<<itemname[31]<<" "<<bag[31]<<" 个!"<<endl;
                                Sleep(2000);
                                continue;
                            }else continue;
                        break;
                        case 4://发现青金石矿 
                            add=rnd(4,8);
                            cout<<"你发现了 "<<add<<" 块青金石!"<<endl;
                            Sleep(1000);
                            cout<<"0,离开  1,挖掘"<<endl;
                            cin>>choose;
                            if(choose==1){
                                system("cls");
                                if(tool2<2||tool2==3){
                                    cout<<"当前稿子无法挖掘此矿石!"<<endl;
                                    Sleep(2000);
                                    continue;
                                }
                                destroy(80000*add,tool2speed[tool2]);
                                cout<<"挖掘完毕!获得 "<<itemname[43]<<" "<<add<<" 个!"<<endl;
                                bag[43]+=add;
                                Experience+=add*15;
                                cout<<"当前有 "<<itemname[43]<<" "<<bag[43]<<" 个!"<<endl;
                                Sleep(2000);
                                continue; 
                            }else continue;
                        break;
                        case 5://发现钻石 
                            add=rnd(2,8);
                            cout<<"你发现了 "<<add<<" 块钻石!"<<endl;
                            Sleep(1000);
                            cout<<"0,离开  1,挖掘"<<endl;
                            cin>>choose;
                            if(choose==1){
                                system("cls");
                                if(tool2<4){
                                    cout<<"当前稿子无法挖掘此矿石!"<<endl;
                                    Sleep(2000);
                                    continue;
                                }
                                destroy(80000*add,tool2speed[tool2]);
                                cout<<"挖掘完毕!获得 "<<itemname[44]<<" "<<add<<" 个!"<<endl;
                                bag[44]+=add;
                                Experience+=add*30;
                                cout<<"当前有 "<<itemname[44]<<" "<<bag[44]<<" 个!"<<endl;
                                Sleep(2000);
                                continue;
                        }else continue;
                        break;
                        case 6://发现黑曜石 
                            add=rnd(3,5);
                            cout<<"你发现了 "<<add<<" 块黑曜石!"<<endl;
                            Sleep(1000);
                            cout<<"0,离开  1,挖掘"<<endl;
                            cin>>choose;
                            if(choose==1){
                                system("cls");
                                if(tool2<5){
                                    cout<<"当前稿子无法挖掘黑曜石!"<<endl;
                                    Sleep(2000);
                                    continue;
                                }
                                destroy(1200000*add,tool2speed[tool2]);
                                cout<<"挖掘完毕!获得 "<<itemname[65]<<" "<<add<<" 个!"<<endl;
                                bag[65]+=add;
                                cout<<"当前有 "<<itemname[65]<<" "<<bag[65]<<" 个!"<<endl;
getch();
                                continue;
                            }else continue;
                        break;  
                    }
                }
        }else return;
    }
    if(Place=="地狱"){
        cout<<"0,返回  1,挖矿"<<endl;
        cin>>choose;
        if(choose==1){
            cout<<"1,挖矿"<<endl;
            cin>>choose;
            if(choose==1){
                system("cls");
                cout<<"探索地狱中..."<<endl;
                cout<<"这个过程可能会有些漫长,耐心等待..."<<endl;
                choose=1+rand()%5;
                if(choose==5) Sleep(20000+rand()%12000);
                else Sleep(6000+rand()%6000);
                system("cls");
                int add;
                if(choose==5) add=rnd(1,2),cout<<"你发现了 "<<add<<" 块远古残骸!"<<endl;//1/5? 
                if(choose==1||choose==2) add=rnd(4,7),cout<<"你发现了 "<<add<<" 块下界金矿!"<<endl;
                if(choose==3||choose==4) add=rnd(4,11),cout<<"你发现了 "<<add<<" 块下界石英!"<<endl;
                Sleep(1000);
                int a;
                cout<<"0,离开  1,挖掘"<<endl;
                cin>>a;
                if(a==0) continue;
                if(choose==5){
                    if(tool2<5){
                        cout<<"当前稿子无法挖掘远古残骸!"<<endl;
                        Sleep(2000);
                        continue;
                    }else{          
                        destroy(750000*add,tool2speed[tool2]);
                        cout<<"挖掘完毕!获得 "<<itemname[55]<<" "<<add<<" 个!"<<endl;
                        bag[55]+=add;
                        cout<<"当前有 "<<itemname[55]<<" "<<bag[55]<<" 个!"<<endl;
                    }
                }
                if(choose==1||choose==2){//金矿           
                    destroy(80000*add,tool2speed[tool2]);
                    add=add*(3+rand()%3)+rand()%add;
                    cout<<"挖掘完毕!获得 "<<itemname[125]<<" "<<add<<" 个!"<<endl;
                    bag[125]+=add;
                    Experience+=add*10;
                    cout<<"当前有 "<<itemname[125]<<" "<<bag[125]<<" 个!"<<endl;
                }
                if(choose==3||choose==4){
                    destroy(80000*add,tool2speed[tool2]);//石英 
                    cout<<"挖掘完毕!获得 "<<itemname[126]<<" "<<add<<" 个!"<<endl;
                    bag[126]+=add;
                    Experience+=add*20;
                    cout<<"当前有 "<<itemname[126]<<" "<<bag[126]<<" 个!"<<endl;
                }
                getch();
                continue;
            }else continue; 
        }else return; 
    }
    if(Place=="末地"){
        cout<<"0,返回  1,挖矿"<<endl;
        cin>>choose;
        if(choose==1){
            cout<<"1,挖矿"<<endl;
            cin>>choose;
            if(choose==1){
                system("cls");
                cout<<"你开始在末地的浮空岛上挖掘..."<<endl;
                if(Rand(200)){
                    Sleep(rnd(5000,8000));
                    Event("巨型末影人",1);
                    return;
                } 
                else Sleep(rnd(7000,12000));
                system("cls");
                int add=rnd(1,3);
                cout<<"你发现了 "<<add<<" 块末影碎晶!"<<endl;
                Sleep(1000);
                cout<<"0,离开  1,挖掘"<<endl;
                cin>>choose;
                if(choose==0) continue;
                else{
                    if(tool2<6){
                        cout<<"当前稿子无法挖掘末影碎晶!"<<endl;
                        Sleep(2000);
                        continue;
                    }else{          
                        destroy(160000*add,tool2speed[tool2]);
                        cout<<"挖掘完毕!获得 末影碎晶 "<<add<<" 个!"<<endl;
                        bag[item_id["末影碎晶"]]+=add;
                        cout<<"当前你有 末影碎晶 "<<bag[item_id["末影碎晶"]]<<" 个!"<<endl;
                    }
                }
                getch();
                continue;
            }else continue; 
        }else return; 
    }
}
}

void jvqing(){//剧情输出 
    system("cls");
    cout<<"加载剧情中..."<<endl;
    Sleep(2000);
    cout<<"加载完毕!"<<endl;
    Sleep(1000);
getch();
    system("cls"); 
    Sleep(500);
    say("很久很久之前......虚空中有两位神,分别是Notch和Herobrine。\n\n",50);
    Sleep(1000);
    say("他们是一对兄弟,两人本来平安无事。Notch与Herobrine共同联手,消耗了大量的神力,创造了一个方块世界。\n\n",50);
    Sleep(1000);
    say("之后,Notch又创造出了人类,动物,使整个世界充满了生机。\n\n",50);
    Sleep(1000);
    say("但他的弟弟Herobrine与他相反,他痴迷于毁灭,还创造出了亡灵大军。\n\n",50);
    Sleep(1000);
    say("两人意见很快便不合,最终Notch与Herobrine彻底决裂,势不两立。\n\n",50);
    Sleep(1000);
    say("Herobrine率领着众多亡灵,血洗了方块大陆上的几乎一切生灵......\n\n",50);
    Sleep(1000);
    say("Notch耗尽了近乎所有的神力,才在地狱将Herobrine封印了。\n\n",50);
    Sleep(1000);
    say("但尽管如此,Herobrine创造出的亡灵也早已遍布世界,无法根除。\n\n",50);
    Sleep(1000);
    say("而Herobrine也积蓄着力量,集结着黑暗的势力准备反扑。\n\n",50);
    Sleep(1000);
getch();
    system("cls");
    say("......",350);
    say("数百年过去了,和平安宁的景象即将被打破......\n\n",50);
    Sleep(1500);
    say("能够拯救这个世界的,",40);
    say("就只有--",100);
    Sleep(300); 
    say("你,才能拯救世界,打败Herobrine,保护世界的和平!\n\n",45);
    Sleep(2500);
    say("属于你的传奇,现在开始......\n\n",70);
    //真是太中二了!((( 
getch();
    return; 
}

void show_recipe(int x){//打印合成配方 
    cout<<endl;
    cout<<"以下为所有与 "<<item[x].itemname<<" 关联的合成配方!"<<endl;
    cout<<"若未显示则为无配方\n"<<endl;
    for(int i=1;i<=500;i++){
        if(craft[i].num1==x||craft[i].num2==x||craft[i].num3==x||craft[i].num4==x){
            cout<<"编号"<<i<<": ";
            switch(craft[i].condition1){//不同要求 真的太细了( 
                case 2:cout<<"熔炼 ";break;
                case 3:cout<<"锻造 ";break;
                default:cout<<"合成 ";    break;  
            }
            cout<<item[craft[i].num1].itemname<<"x"<<craft[i].amount1<<" 需要 ";
            cout<<item[craft[i].num2].itemname<<"x"<<craft[i].amount2<<" ";
            if(craft[i].amount3>0) cout<<","<<item[craft[i].num3].itemname<<"x"<<craft[i].amount3<<" ";
            if(craft[i].amount4>0) cout<<","<<item[craft[i].num4].itemname<<"x"<<craft[i].amount4<<" ";
            cout<<endl;
        }
    }
getch();
    return;
}

void checkbag(){//检查背包 
    SetConsoleTitle("--背包--");
    cout<<"显示顺序为 编号-物品名-数量"<<endl<<endl;
    cout<<"若未显示则为无物品"<<endl<<endl;
    cout<<"输入物品编号可查看物品信息/交互"<<endl<<endl;
    for(int i=1;i<=1000;i++){
        if(bag[i]!=0){
            if(item[i].Level==0||item[i].Level>hide_level){
                cout<<"编号 "<<i<<"  "<<itemname[i]<<" 数量:"<<bag[i]<<" 个";
                if(item[i].type!=0) cout<<" <可装备>";
            }else cout<<"<Hidden>";
            cout<<endl;
            if(wide) cout<<endl;
        }
        else continue;
    }
    for(int i=1001;i<1020;i++){
        if(bag[i]!=0){
            cout<<"编号 "<<i<<"  "<<itemname[i]<<" 数量:"<<bag[i]<<" 个"<<endl;
            if(wide) cout<<endl;
        }
        else continue;
    }
    for(int i=1;i<10;i++){
        if(arrow[i]!=0){
            cout<<"箭矢 "<<i<<"  "<<arrowname[i]<<" 数量:"<<arrow[i]<<" 个"<<endl;
            if(wide) cout<<endl;
        }
        else continue;
    }
    cout<<endl<<"输入 0 返回"<<endl;
    cin>>choose;
    if(choose==0) return;
    if(bag[choose]<=0){
        cout<<"请勿乱输!"<<endl;
getch(); 
        return; 
    }
    system("cls");
    cout<<"编号:"<<choose<<endl;
    cout<<"物品:"<<item[choose].itemname<<endl;
    cout<<"出售:";
    if(item[choose].sell_num) cout<<"每 "<<item[choose].sell_num<<" 个 价值 "<<item[choose].sell_price<<" 绿宝石"<<endl;
    else cout<<"无价"<<endl;
    switch(item[choose].type){
        case 0:cout<<"类型:材料/物品"<<endl;break;
        case 1:cout<<"类型:主手武器"<<endl;break;
        case 2:cout<<"类型:副手武器"<<endl;break;
        case 3:cout<<"类型:斧"<<endl;break;        
        case 4:cout<<"类型:稿"<<endl;break;
        case 5:cout<<"类型:头盔"<<endl;break;
        case 6:cout<<"类型:胸甲"<<endl;break;
        case 7:cout<<"类型:护腿"<<endl;break;
        case 8:cout<<"类型:靴子"<<endl;break;
    }
    if(item[choose].type){
        cout<<"<可装备>"<<endl;
    }
    sc(2);
    cout<<"输入‘r’以查看所有与此物品有关的合成配方!\n"<<endl;//自带向导说是 
    sc(7);
    //cout<<item[choose].Level;
    cout<<"描述:";
    switch(choose){
        case 0:return;break;
        case 1:cout<<"基础的木头,可在平原,森林砍树获得。可以制作橡木木板。"<<endl;break;
        case 2:cout<<"基础的木头,可在丛林砍树获得。可以制作丛林木板。"<<endl;break;
        case 3:cout<<"基础的木头,可在雪地砍树获得。可以制作针叶木木板。"<<endl;break;
        case 4:cout<<"来自地狱的木头,能防火,可在地狱砍树获得。可以制作绯红木板。"<<endl;break;
        case 5:cout<<"基础的木板,可以制作各种木制品。"<<endl;break;
        case 6:cout<<"基础的木板,可以制作各种木制品。"<<endl;break;
        case 7:cout<<"基础的木板,可以制作各种木制品。"<<endl;break;
        case 8:cout<<"来自地狱的木板,能防火,可以制作各种木制品。"<<endl;break;
        case 9:cout<<"一个制作站,在<建造>中将其放置便可合成更多新物品,是你必不可少的工具。"<<endl<<"“这是?工作台!”。"<<endl;break;
        case 10:cout<<"木制的棍子,是组装各种武器和工具必备的材料。"<<endl;break;
        case 11:cout<<"木制的剑,简单好用。"<<endl;break;
        case 12:cout<<"木制的斧,可略微提升砍树的速度。"<<endl;break;
        case 13:cout<<"木制的稿,可以挖掘石头和煤炭。"<<endl<<"“挖矿时间到”!"<<endl; break;
        case 14:cout<<"地下遍地可采集的石头,是制作石制工具的必要材料。"<<endl;break;
        case 15:cout<<"石质的剑,朴实无华,简单耐用。"<<endl;break;
        case 16:cout<<"石质的斧,可小幅提升砍树的速度。"<<endl;break;
        case 17:cout<<"石质的稿,比木稿的挖掘速度更快,还可挖掘铁矿。\n“获得升级”!"<<endl;break;
        case 18:cout<<"可以将矿石熔炼成矿锭合成装备。在<建造>中将其放置便可熔炼矿物。\n“热门话题”!"<<endl;break;
        case 19:cout<<"基础的燃料,可用于熔炼矿物。"<<endl;break;
        case 20:cout<<"中级的矿石,可使用熔炉熔炼得到铁锭。"<<endl;break;
        case 21:cout<<"中级的矿锭,可以制作精良的铁质装备。"<<endl<<"“来硬的”!"<<endl;break;
        case 22:cout<<"铁质的剑,锋利耐用,是优秀的武器。"<<endl; break;
        case 23:cout<<"铁质的斧,可较快提升砍树速度。"<<endl;break;
        case 24:cout<<"铁质的稿,可以挖掘钻石,金矿石等中级矿物,且可较快提升挖掘速度。\n“这不是铁镐么”!"<<endl;break;
        case 25:cout<<"铁质的头盔,可抵挡受到的伤害。"<<endl;cout<<"“整装上阵”!"<<endl; break;
        case 26:cout<<"铁质的胸甲,可抵挡受到的伤害。"<<endl;cout<<"“整装上阵”!"<<endl; break;
        case 27:cout<<"铁质的护腿,可抵挡受到的伤害。"<<endl;cout<<"“整装上阵”!"<<endl; break;
        case 28:cout<<"铁质的靴子,可抵挡受到的伤害。"<<endl;cout<<"“整装上阵”!"<<endl; break;
        case 29:cout<<"防御的盾牌,在战斗中使用后可以大幅抵挡自己下次受到的伤害。"<<endl; cout<<"“抱歉,今天不行”"<<endl; break;
        case 30:cout<<"优秀的远程武器,使用箭作为弹药。"<<endl; break;
        case 31:cout<<"中高级的矿石,将其用熔炉熔炼可获得金锭,蕴含着独特的魔力。"<<endl; break;
        case 32:cout<<"中高级的矿锭,可以制作速度极快的金质装备,还可以合成金苹果。\n似乎地狱的某些生物对此十分感兴趣......"<<endl; break;
        case 33:cout<<"金质的剑,但效果不尽人意。"<<endl; break;
        case 34:cout<<"金质的斧,速度极快。"<<endl; break;
        case 35:cout<<"金质的稿,速度极快。"<<endl; break;
        case 36:cout<<"美味多汁的水果,在野外的树上偶有出现。可以用于合成金苹果。"<<endl; break;
        case 37:
            cout<<"镀了金的魔法苹果,拥有神奇的恢复能力,食用可恢复 5 点生命。可以合成钻石苹果。"<<endl;
            cout<<"0,返回  1,使用"<<endl;
            cin>>c_choose;
            if(c_choose=='r'){
                show_recipe(choose);
            }
            if(c_choose=='1'){
                bag[37]--; 
                cout<<"你使用了金苹果!"<<endl;
                int recover=5;
                Sleep(500); 
                cout<<"你回复了 ";sc(4);cout<<recover<<" 点生命!"<<endl;sc(7);
                Sleep(500);
                Health+=min(recover,MaxHealth-Health);
                cout<<"当前你有 ";sc(4);cout<<Health<<" 点生命!"<<endl;sc(7);
            }
        break;
        case 38:cout<<"韧性极佳的细丝,能在蜘蛛身上找到。可用于制作弓。"<<endl; cout<<"“丝绸之路”。"<<endl; break;
        case 39:cout<<"金质的头盔,可抵挡受到的伤害。似乎猪灵相当喜欢这些闪闪发光的东西。"<<endl; break;
        case 40:cout<<"金质的胸甲,可抵挡受到的伤害。似乎猪灵相当喜欢这些闪闪发光的东西。"<<endl; break;
        case 41:cout<<"金质的护腿,可抵挡受到的伤害。似乎猪灵相当喜欢这些闪闪发光的东西。"<<endl; break;
        case 42:cout<<"金质的靴子,可抵挡受到的伤害。似乎猪灵相当喜欢这些闪闪发光的东西。"<<endl; break;
        case 43:cout<<"蕴含着强大魔法经验力量的矿石,可以提升魔力......"<<endl; break;
        case 44:cout<<"中高级的矿石,晶莹剔透,坚硬无比,可以制作钻石装备。\n“钻石”!"<<endl; break;
        case 45:cout<<"钻石的剑,可以使用下界合金锭升级。"<<endl; break;
        case 46:cout<<"钻石的斧,可大幅提升砍树速度。"<<endl; break;
        case 47:cout<<"钻石的稿,速度较快,可以挖掘黑曜石。"<<endl; break;
        case 48:cout<<"钻石的头盔,可大幅抵挡受到的伤害。"<<endl;cout<<"“钻石护体”!"<<endl; break;
        case 49:cout<<"钻石的胸甲,可大幅抵挡受到的伤害。"<<endl;cout<<"“钻石护体”!"<<endl; break;
        case 50:cout<<"钻石的护腿,可大幅抵挡受到的伤害。"<<endl;cout<<"“钻石护体”!"<<endl; break;
        case 51:cout<<"钻石的靴子,可大幅抵挡受到的伤害。"<<endl;cout<<"“钻石护体”!"<<endl; break;
        case 52:cout<<"钻石制成的块,可以合成钻石苹果。"<<endl; break;  
        case 53:
            cout<<"钻石与金苹果结合的造物,可以增加";sc(4);cout<<"血量上限。"<<endl;sc(7);
            cout<<"注:你已使用了 "<<diamondapple<<" 次钻石苹果。最多使用 2 次。"<<endl;
            cout<<"0,返回  1,使用"<<endl;
            cin>>c_choose;
            if(c_choose=='r'){
                show_recipe(choose);
            }
            if(c_choose=='1'){
                if(diamondapple<2){
                    cout<<"你使用了钻石苹果!"<<endl;getch();
                    cout<<"你增加了";sc(4);cout<<" 5 点生命上限!"<<endl;sc(7);
                    MaxHealth+=5;getch();
                    diamondapple++;
                    bag[53]--;
                    cout<<"你还可使用 "<<2-diamondapple<<" 个钻石苹果。"<<endl;
                }else{
                    cout<<"你已达使用上限!"<<endl;
                }
            }
        break; 
        case 54:cout<<"一个坚固的锻造台,可以将钻石装备锻造成更加强大的下界合金装备。"<<endl; break; 
        case 55:cout<<"远古生物的遗骸经地狱烈焰数千年磨炼出的坚固强大的矿石,硬度极高。\n可以通过熔炼提纯出合金碎片。"<<endl; break; 
        case 56:cout<<"无比坚硬的合金碎片,由地狱生物的远古残骸再次烧制而成。可以合成下界合金锭。"<<endl; break; 
        case 57:cout<<"坚硬的合金锭,通体乌黑,散发着古朴的气息,几乎无坚不摧。可用于将钻石装备锻造成强大的下界合金装备。"<<endl; break;
        case 58:cout<<"由钻石剑和下界合金锭升级而成的宝剑,威力惊人。"<<endl; break; 
        case 59:cout<<"由钻石稿和下界合金锭升级而成的稿子,速度极快。"<<endl; break; 
        case 60:cout<<"由钻石斧和下界合金锭升级而成的斧子,速度极快。"<<endl; break;  
        case 61:cout<<"由钻石头盔和下界合金锭升级而成的坚硬头盔。"<<endl;sc(5);cout<<"“残骸裹身”!"<<endl;sc(7); break; 
        case 62:cout<<"由钻石胸甲和下界合金锭升级而成的坚硬护甲。"<<endl;sc(5);cout<<"“残骸裹身”!"<<endl;sc(7); break;
        case 63:cout<<"由钻石护腿和下界合金锭升级而成的坚硬护腿。"<<endl;sc(5);cout<<"“残骸裹身”!"<<endl;sc(7); break;
        case 64:cout<<"由钻石靴子和下界合金锭升级而成的坚硬靴子。"<<endl;sc(5);cout<<"“残骸裹身”!"<<endl;sc(7); break;
        case 65:cout<<"滚烫的熔岩与水融合冷却后形成的黑色石头,蕴含着神秘而未知的力量..."<<endl; break;
        case 105:cout<<"流浪商人出售的宝剑。"<<endl; break;
        case 106:cout<<"流浪商人出售的斧子,可较快提升砍树速度。"<<endl; break;
        case 107:cout<<"流浪商人出售的稿子,尽管有些钝了,却仍然能挖掘大部分矿石。"<<endl; break;
        case 108:cout<<"流浪商人出售的头盔,可抵挡受到的伤害,但似乎也能在流浪者身上找到。"<<endl; break;
        case 109:cout<<"流浪商人出售的胸甲,可抵挡受到的伤害,但似乎也能在流浪者身上找到。"<<endl; break;
        case 110:cout<<"流浪商人出售的护腿,可抵挡受到的伤害,但似乎也能在流浪者身上找到。"<<endl; break;
        case 111:cout<<"流浪商人出售的靴子,可抵挡受到的伤害,但似乎也能在流浪者身上找到。"<<endl; break;
        case 112:cout<<"狙击骷髅使用的强力复合弓,比普通的弓更强,更远,更准,威力巨大,一击致命。"<<endl; break;
        case 113:cout<<"破烂的皮革制成的头盔,常见于某些不死生物身上,可轻微抵挡受到的伤害。"<<endl; break;
        case 114:cout<<"破烂的皮革制成的胸甲,常见于某些不死生物身上,可轻微抵挡受到的伤害。"<<endl; break;
        case 115:cout<<"破烂的皮革制成的护腿,常见于某些不死生物身上,可轻微抵挡受到的伤害。"<<endl; break;
        case 116:cout<<"破烂的皮革制成的靴子,常见于某些不死生物身上,可轻微抵挡受到的伤害。"<<endl; break;
        case 117:cout<<"锁链制成的头盔,常见于某些不死生物身上,可小幅抵挡受到的伤害。"<<endl; break;
        case 118:cout<<"锁链制成的胸甲,常见于某些不死生物身上,可小幅抵挡受到的伤害。"<<endl; break;
        case 119:cout<<"锁链制成的护腿,常见于某些不死生物身上,可小幅抵挡受到的伤害。"<<endl; break;
        case 120:cout<<"锁链制成的靴子,常见于某些不死生物身上,可小幅抵挡受到的伤害。"<<endl; break;
        case 121:cout<<"来自末影人身上的球体,通体碧绿,像一颗圆润的珍珠。蕴含着末影之力,与另一个维度似乎有着神秘的联系...\n可用于合成末影之眼。"<<endl; break;
        case 122:cout<<"烈焰人身上周围环绕的棍棒,摸上去还有些烫手,不时会冒出烈焰。\n可分解成烈焰粉。"<<endl; break;
        case 123:cout<<"由烈焰棒分解得到的炽热粉尘,蕴含着纯粹的火焰力量。\n可用于合成末影之眼。"<<endl; break;
        case 124:cout<<"一颗栩栩如生的眼睛,似乎正在渐渐消散。瞳孔目不转睛地盯着你,看着令人有些发毛...\n它似乎随时都会从你的手中飞离..."<<endl; break;
        case 125:cout<<"一些小块的金锭碎片,可以将多个碎片合成金锭。"<<endl; break;
        case 126:cout<<"一种在地狱常见而美丽的白色岩石,是顶级的建筑装饰品。能卖个好价钱。"<<endl; break;
        case 127:cout<<"一个更高级的制作台,拥有5x5的合成格子,<建造>后允许你制作蕴含强大力量的各种装备。"<<endl; break;
        case 128:cout<<"远古丛林自然之力的精华,蕴含着远古的力量。\n可在中极工作台处制作远古锭。"<<endl; break;
        case 129:cout<<"附着了远古精华力量的矿锭,蕴含着远古的力量。\n可在中级工作台处制作远古装备。"<<endl; break;
        case 130:cout<<"使用远古锭制作的宝剑。蕴含着远古之力,威力强大。"<<endl; break;
        case 131:cout<<"使用远古锭制作的斧子。蕴含着远古之力,可大幅提升砍树速度。"<<endl; break;
        case 132:cout<<"使用远古锭制作的稿子。蕴含着远古之力,可大幅提升挖掘速度。"<<endl; break;
        case 133:cout<<"使用远古锭制作的头盔。蕴含着远古之力,能很好的抵挡受到的伤害。"<<endl; break;
        case 134:cout<<"使用远古锭制作的胸甲。蕴含着远古之力,能很好的抵挡受到的伤害。"<<endl; break;
        case 135:cout<<"使用远古锭制作的护腿。蕴含着远古之力,能很好的抵挡受到的伤害。"<<endl; break;
        case 136:cout<<"使用远古锭制作的靴子。蕴含着远古之力,能很好的抵挡受到的伤害。"<<endl; break;
        case 145:cout<<"附着了寒冰精华力量的矿锭,蕴含着寒冰的力量。\n可制作寒冰装备。"<<endl; break;
        case 146:cout<<"使用寒冰锭制作的宝剑。蕴含着寒冰之力,威力强大。"<<endl; break;
        case 147:cout<<"使用寒冰锭制作的斧子。蕴含着寒冰之力,可大幅提升砍树速度。"<<endl; break;
        case 148:cout<<"使用寒冰锭制作的稿子。蕴含着寒冰之力,可大幅提升挖掘速度。"<<endl; break;
        case 149:cout<<"使用寒冰锭制作的头盔。蕴含着寒冰之力,能很好的抵挡受到的伤害。"<<endl; break;
        case 150:cout<<"使用寒冰锭制作的胸甲。蕴含着寒冰之力,能很好的抵挡受到的伤害。"<<endl; break;
        case 151:cout<<"使用寒冰锭制作的护腿。蕴含着寒冰之力,能很好的抵挡受到的伤害。"<<endl; break;
        case 152:cout<<"使用寒冰锭制作的靴子。蕴含着寒冰之力,能很好的抵挡受到的伤害。"<<endl; break;
        case 161:cout<<"远古雪地寒冰之力的精华,蕴含着寒冰的力量。\n可在中级工作台处制作寒冰锭。"<<endl; break;
        case 162:cout<<"远古沙漠沙尘之力的精华,蕴含着沙尘的力量。\n可在中级工作台处制作沙尘锭。"<<endl; break;
        case 163:cout<<"附着了沙尘精华力量的矿锭,蕴含着沙尘的力量。\n可在中级工作台处制作沙尘装备。"<<endl; break;
        case 164:cout<<"使用沙尘锭制作的宝剑。蕴含着沙尘之力,威力强大。"<<endl; break;
        case 165:cout<<"使用沙尘锭制作的斧子。蕴含着沙尘之力,可大幅提升砍树速度。"<<endl; break;
        case 166:cout<<"使用沙尘锭制作的稿子。蕴含着沙尘之力,可大幅提升挖掘速度。"<<endl; break;
        case 167:cout<<"使用沙尘锭制作的头盔。蕴含着沙尘之力,能很好的抵挡受到的伤害。"<<endl; break;
        case 168:cout<<"使用沙尘锭制作的胸甲。蕴含着沙尘之力,能很好的抵挡受到的伤害。"<<endl; break;
        case 169:cout<<"使用沙尘锭制作的护腿。蕴含着沙尘之力,能很好的抵挡受到的伤害。"<<endl; break;
        case 170:cout<<"使用沙尘锭制作的靴子。蕴含着沙尘之力,能很好的抵挡受到的伤害。"<<endl; break;
        case 180:cout<<"远古下界熔火之力的精华,蕴含着火焰之力。\n可在中级工作台处制作熔火锭。"<<endl; break;
        case 181:cout<<"附着了熔火精华力量的矿锭,蕴含着火焰之力。\n可在中级工作台处制作熔火装备。"<<endl; break;
        case 182:cout<<"使用熔火锭制作的宝剑。蕴含着火焰之力,威力强大。"<<endl; break;
        case 183:cout<<"使用熔火锭制作的弓。蕴含着火焰之力,命中敌人时有 25% 的概率使敌人着火,附加 2 层灼烧效果 1 回合。"<<endl; break;
        case 184:cout<<"使用熔火锭制作的斧子。蕴含着火焰之力,可大幅提升砍树速度。"<<endl; break;
        case 185:cout<<"使用熔火锭制作的稿子。蕴含着火焰之力,可大幅提升挖掘速度。"<<endl; break;
        case 186:cout<<"使用熔火锭制作的头盔。蕴含着火焰之力,能很好的抵挡受到的伤害。"<<endl; break;
        case 187:cout<<"使用熔火锭制作的胸甲。蕴含着火焰之力,能很好的抵挡受到的伤害。"<<endl; break;
        case 188:cout<<"使用熔火锭制作的护腿。蕴含着火焰之力,能很好的抵挡受到的伤害。"<<endl; break;
        case 189:cout<<"使用熔火锭制作的靴子。蕴含着火焰之力,能很好的抵挡受到的伤害。"<<endl; break;
        case 190:cout<<"凋零骷髅的头颅,上下都透露着不祥的气息..."<<endl; break;
        case 203:
            cout<<"含有末影之力的果子,广泛分布在末地外岛。"<<endl;
            cout<<"使用后有 50 % 可能恢复 1 点生命,25 % 可能失去 1 点生命。"<<endl;
            cout<<"0,返回  1,使用"<<endl;
            cin>>c_choose;
            if(c_choose=='r'){
                show_recipe(choose);
            }
            if(c_choose=='1'){
                bag[1001]--; 
                cout<<"你使用了紫颂果"<<endl;
                int RD[5]={250,250,500};
                int recover=RandNum(3,RD)-2;
                Sleep(500); 
                if(recover==-1){cout<<"你失去了 ";sc(4);cout<<1<<" 点生命!"<<endl;sc(7);}
                if(recover==1){cout<<"你回复了 ";sc(4);cout<<1<<" 点生命!"<<endl;sc(7);}
                if(recover==0) cout<<"无事发生..."<<endl;
                Sleep(500);
                Health+=min(recover,MaxHealth-Health);
                cout<<"当前你有 ";sc(4);cout<<Health<<" 点生命!"<<endl;sc(7);
                player_dead();
            }
        break;
        case 1001:
            cout<<"I 级治疗系药水,可以恢复 20 % 的生命。最多恢复 5 点生命值。"<<endl;
            cout<<"使用后,会冷却 1 回合。"<<endl;
            cout<<"0,返回  1,使用"<<endl;
            cin>>c_choose;
            if(c_choose=='r'){
                show_recipe(choose);
            }
            if(c_choose=='1'){
                bag[1001]--; 
                cout<<"你使用了治疗药水!"<<endl;
                int recover=min(5,MaxHealth/5);Sleep(500); 
                cout<<"你回复了 ";sc(4);cout<<recover<<" 点生命!"<<endl;sc(7);Sleep(500);
                Health+=min(recover,MaxHealth-Health);
                cout<<"当前你有 ";sc(4);cout<<Health<<" 点生命!"<<endl;sc(7);
            }     
        break;
        case 1002:
            cout<<"I 级魔力系药水,可以恢复 20 % 的魔力。最多恢复 4 点魔力值。"<<endl;
            cout<<"使用后,会冷却 1 回合。"<<endl;
            cout<<"0,返回  1,使用"<<endl;
            cin>>c_choose;
            if(c_choose=='r'){
                show_recipe(choose);
            }
            if(c_choose=='1'){
                bag[1001]--; 
                cout<<"你使用了魔力药水!"<<endl;
                int recover=min(4,MaxMagic/5);Sleep(500); 
                cout<<"你回复了 ";sc(1);cout<<recover<<" 点魔力!"<<endl;sc(7);Sleep(500);
                Magic+=min(recover,MaxMagic-Magic);
                cout<<"当前你有 ";sc(1);cout<<Magic<<" 点魔力!"<<endl;sc(7);
            }
        break;
        case 1003:
            cout<<"II 级治疗系药水,可以恢复 25 % 的生命。最多恢复 6 点生命值。"<<endl;
            cout<<"使用后,会冷却 1 回合。"<<endl;
            cout<<"0,返回  1,使用"<<endl;
            cin>>c_choose;
            if(c_choose=='r'){
                show_recipe(choose);
            }
            if(c_choose=='1'){
                bag[1001]--; 
                cout<<"你使用了治疗药水II!"<<endl;
                int recover=min(6,MaxHealth/4);Sleep(500); 
                cout<<"你回复了 ";sc(4);cout<<recover<<" 点生命!"<<endl;sc(7);Sleep(500);
                Health+=min(recover,MaxHealth-Health);
                cout<<"当前你有 ";sc(4);cout<<Health<<" 点生命!"<<endl;sc(7);
            }     
        break;
        case 1004:
            cout<<"II 级魔力系药水,可以恢复 25 % 的魔力。最多恢复 5 点魔力值。"<<endl;
            cout<<"使用后,会冷却 1 回合。"<<endl;
            cout<<"0,返回  1,使用"<<endl;
            cin>>c_choose;
            if(c_choose=='r'){
                show_recipe(choose);
            }
            if(c_choose=='1'){
                bag[1001]--; 
                cout<<"你使用了魔力药水II!"<<endl;
                int recover=min(5,MaxMagic/4);Sleep(500); 
                cout<<"你回复了 ";sc(1);cout<<recover<<" 点魔力!"<<endl;sc(7);Sleep(500);
                Magic+=min(recover,MaxMagic-Magic);
                cout<<"当前你有 ";sc(1);cout<<Magic<<" 点魔力!"<<endl;sc(7);
            }
        break;
    }
    c_choose=getch();
    if(c_choose=='r'){
        show_recipe(choose);
    }
    system("cls"); 
    checkbag();
    return;
}

void weapon(){//装备 
/*
    i spent much much much much time to make this.
    though it was a long time ago.
*/
    system("cls");
    cout<<"以下为你背包中可装备的物品。\n"<<endl; 
     for(int i=1;i<=1000;i++){
        if(bag[i]!=0&&item[i].type!=0){
            cout<<"编号 "<<i<<"  "<<itemname[i]<<" 数量:"<<bag[i]<<" 个"<<endl;
        }
        else continue;
    }
    cout<<endl; 
    cout<<"当前你装备头盔:"<<armor1name[armor1]<<"(+"<<armor1defense[armor1]<<")"<<endl; 
    cout<<"当前你装备胸甲:"<<armor2name[armor2]<<"(+"<<armor2defense[armor2]<<")"<<endl; 
    cout<<"当前你装备护腿:"<<armor3name[armor3]<<"(+"<<armor3defense[armor3]<<")"<<endl; 
    cout<<"当前你装备靴子:"<<armor4name[armor4]<<"(+"<<armor4defense[armor4]<<")"<<endl; 
    cout<<"当前你主手装备:"<<weapon1name[weapon1]<<"(+"<<weapon1attack[weapon1]<<")"<<endl; 
    cout<<"当前你副手装备:"<<weapon2name[weapon2]<<"(+"<<weapon2attack[weapon2]<<")"<<endl;
    cout<<"当前你使用斧子:"<<tool1name[tool1]<<endl;
    cout<<"当前你使用稿子:"<<tool2name[tool2]<<endl;
    sc(6); 
    if(armor1==4&&armor2==4&&armor3==4&&armor4==4){//铁套套装奖励
        cout<<"套装奖励:防御 + 3"<<endl; 
    }
    if(armor1==5&&armor2==5&&armor3==5&&armor4==5){//钻石套套装奖励 
        cout<<"套装奖励:防御 + 4"<<endl; 
    }
    if(armor1==6&&armor2==6&&armor3==6&&armor4==6){//下界合金套套装奖励 
        cout<<"套装奖励:防御 + 5"<<endl; 
    }
    if(armor1==7&&armor2==7&&armor3==7&&armor4==7){//流浪者套套装奖励 
        cout<<"套装奖励:攻击 + 1"<<endl; 
    }
    if(armor1==8&&armor2==8&&armor3==8&&armor4==8){//远古套套装奖励 
        cout<<"套装奖励:防御 + 6"<<endl; 
    }
    if(armor1==10&&armor2==10&&armor3==10&&armor4==10){//寒冰套套装奖励 
        cout<<"套装奖励:魔力上限 + 5"<<endl; 
    }
    if(armor1==12&&armor2==12&&armor3==12&&armor4==12){//沙尘套套装奖励 
        cout<<"套装奖励:暴击率 + 15%"<<endl; 
    }
    if(armor1==14&&armor2==14&&armor3==14&&armor4==14){//熔火套套装奖励 
        cout<<"套装奖励:获得发射火球的能力"<<endl; 
        cout<<"熔火弓使敌人着火的概率 + 25%"<<endl;
    }
    if(armor1==15&&armor2==15&&armor3==15&&armor4==15){//终末套套装奖励
        cout<<"套装奖励:防御 + 4"<<endl; 
        cout<<"暴击率 + 10%"<<endl; 
        cout<<"魔力上限 + 4"<<endl;
    }
    sc(7);
    SetConsoleTitle("--装备--");
    cout<<endl<<"0,退出  1,卸下武器  2,装备武器"<<endl;
    cin>>choose;
    fflush(stdin);
    int *type;
    switch(choose){
        case 0:
            return;
        break;
        case 1://卸下装备 
            cout<<"你要卸下?"<<endl;
            cout<<"0,返回  1,主手  2,副手  3,斧子  4,稿子  5,头盔  6,胸甲  7,护腿  8,靴子"<<endl;
            cin>>choose;
            if(choose==0){
                weapon();
                return;
            }
            switch(choose){
                case 1:{type=&weapon1;break;}
                case 2:{type=&weapon2;break;}
                case 3:{type=&tool1;break;}
                case 4:{type=&tool2;break;}
                case 5:{type=&armor1;break;}
                case 6:{type=&armor2;break;}
                case 7:{type=&armor3;break;}
                case 8:{type=&armor4;break;}
                default:{
                    weapon();
                    return;
                }
            }
            if(*type==0){
                cout<<"你当前没有装备此类型的武器!"<<endl;
getch();
                weapon();
                return;
            }
            for(int i=1;i<=1000;i++){
                if(item[i].type==choose&&item[i].Level==*type){
                    bag[i]++;
                    cout<<"已卸下 "<<item[i].itemname<<" !"<<endl;
                    break;
                }
            }
            *type=0;
getch();
            weapon();
        break;
        case 2: //装备武器 
            cout<<"输入你背包中的武器/工具/装备编号以更换装备,不要乱输其他物品的编号!"<<endl<<endl;
            cin>>choose;
            if(bag[choose]<1){
                cout<<"请勿乱输!"<<endl;
getch();
                weapon();
                return;
            }
            if(item[choose].type==0){
                cout<<"请勿乱输!"<<endl;
getch();
                weapon();
                return;
            }
            bag[choose]--;
            cout<<"已装备 "<<item[choose].itemname<<" !"<<endl;
            switch(item[choose].type){
                case 1:{type=&weapon1;break;}
                case 2:{type=&weapon2;break;}
                case 3:{type=&tool1;break;}
                case 4:{type=&tool2;break;}
                case 5:{type=&armor1;break;}
                case 6:{type=&armor2;break;}
                case 7:{type=&armor3;break;}
                case 8:{type=&armor4;break;}
            }
            for(int i=1;i<=1000;i++){
                if(item[i].type==item[choose].type&&item[i].Level==*type){
                    cout<<"已卸下 "<<item[i].itemname<<endl; 
                    bag[i]++;
                    break;
                }
            }
            *type=item[choose].Level;
getch();
            weapon();
            return;
        default:
            cin.clear();
        break;
    }
}

void build(){//建造 
    SetConsoleTitle("--建造--");
    system("cls");
    cout<<"输入编号以建造/放置建筑。"<<endl<<endl; 
    cout<<"若未显示则为无建筑可建造/已建造过"<<endl<<endl;
    if(bag[9]>=1&&!crafttable) cout<<"编号 1 建造 工作台 需要 工作台 x1"<<endl;
    if(bag[18]>=1&&!furnace) cout<<"编号 2 建造 熔炉 需要 熔炉 x1"<<endl; 
    if(bag[54]>=1&&!smithtable) cout<<"编号 3 建造 锻造台 需要 锻造台 x1"<<endl;
    if(bag[65]>=10&&!nether) cout<<"编号 4 建造 地狱传送门 需要 黑曜石 x10"<<endl;
    if(bag[127]>=1&&!crafttable2) cout<<"编号 5 建造 中级工作台 需要 中级工作台 x1"<<endl;
    cout<<"\n输入 0 退出"<<endl;
    cin>>choose;
    switch(choose){
        case 0:
            return;
        break; 
        case 1:
            if(bag[9]<1||crafttable){
                cout<<"请勿乱输!"<<endl;
            }else{
                bag[9]-=1;
                cout<<"建造成功!现在可合成更多物品!"<<endl;
                crafttable=true;    
            }
        break;
        case 2:
            if(bag[18]<1||furnace){
                cout<<"请勿乱输!"<<endl;
            }else{
                bag[18]-=1;
                cout<<"建造成功!现在可熔炼矿石!(在<合成>处熔炼,作者懒得多写一个函数)"<<endl;
                furnace=true;
            }
        break;
        case 3:
            if(bag[54]<1||smithtable){
                cout<<"请勿乱输!"<<endl;
            }else{
                bag[54]-=1;
                cout<<"建造成功!现在可升级装备!(在<合成>处升级,作者懒得多写一个函数)"<<endl;
                smithtable=true;
            }
        break;
        case 4:
            if(bag[65]<10){
                cout<<"请勿乱输!"<<endl;
            }else{
                bag[65]-=10;
                cout<<"建造成功!现在可进入地狱!......"<<endl;
                nether=true;
            }
        break;
        case 5:
            if(bag[127]<1||crafttable2){
                cout<<"请勿乱输!"<<endl;
            }else{
                bag[127]-=1;
                cout<<"建造成功!现在可合成更多高级物品!"<<endl;
                crafttable2=true;
            }
        break;  
    }
getch(); 
    build();
    return; 
}

void changelog(){//更新日志 
    system("cls");
    cout<<"由于更新日志内容较多,现在不再在游戏内置更新日志,请自行于游戏发布页面查看!"<<endl;
    system("pause");
}

void save(){//存档
    string save_name="你的MINECRAFT存档.txt";
    switch(saving){
        case 0:
            return;
        break; 
        case 1:break;
        case 2:save_name="你的MINECRAFT存档2.txt";break;
        case 3:save_name="你的MINECRAFT存档3.txt";break;
        default:
            cout<<"请勿乱输!"<<endl;
            return;
        break;        
    }
    //
    ofstream outfile(save_name.c_str(),std::ios::trunc|ios::binary|ios::in|ios::out);
    outfile<<ver<<" "<<name<<" "<<Place<<" "<<MaxHealth<<" "<<Health<<" "<<basicmagic<<" "<<Magic<<" "<<magicup<<" "<<Attack<<" "<<Defense<<" "<<Money<<" "<<Experience<<" "<<Level<<" "<<Speed<<" "<<xp_orb<<" "<<endl;
    outfile<<credit<<" "<<weapon1<<" "<<weapon2<<" "<<tool1<<" "<<tool2<<" "<<attackdis1<<" "<<attackdis2<<" "<<armor1<<" "<<armor2<<" "<<armor3<<" "<<armor4<<" ";
    outfile<<nether<<" "<<ender<<" "<<dead<<" "<<defend<<" "<<blessing<<" "<<crafttable<<" "<<furnace<<" "<<smithtable<<" "<<crafttable2<<" ";
    outfile<<undeadattack<<" "<<attacklevel<<" "<<diamondapple<<" "<<badguy<<" "<<weaponcheck<<" "<<blesscold<<" ";
    outfile<<task1<<" "<<farland<<" "<<jungle_temple<<" "<<desert_temple<<" "<<woodland_mansion<<" "<<stronghold<<" "<<nether_fortress<<" "<<bastion_remnants<<" "<<end_city<<endl;
    for(int i=0;i<200;i++) outfile<<bag[i]<<" ";
    for(int i=1001;i<1020;i++) outfile<<bag[i]<<" ";
    for(int i=1;i<=7;i++) outfile<<hard_max[i]<<" ";
    for(int i=1;i<=7;i++) outfile<<time_last[i]<<" ";
    for(int i=1;i<10;i++) outfile<<arrow[i]<<" ";
    outfile<<endl;
    for(int i=1;i<=100;i++) outfile<<skill[i]<<" "<<skillcold[i]<<" "<<skillmagic[i]<<" "<<sk[i].skilltake<<endl;
    outfile<<skilltakemax<<" "<<skilltakenow<<endl;
    for(int k=1;k<=3;k++){
        outfile<<tasks[k].type<<" "<<tasks[k].ac<<" "<<tasks[k].done<<" "<<tasks[k].credit<<" "<<tasks[k].Money<<" "<<tasks[k].exp<<" ";
        outfile<<tasks[k].target_name<<" "<<tasks[k].target_num<<" "<<tasks[k].now<<" "<<tasks[k].item_num<<" "<<tasks[k].reward_num<<endl;
        for(int i=1;i<=3;i++) outfile<<tasks[k].item[i][1]<<" "<<tasks[k].item[i][2]<<endl;
        for(int i=1;i<=3;i++) outfile<<tasks[k].reward[i][1]<<" "<<tasks[k].reward[i][2]<<endl;
    }
    for(int i=1;i<=20;i++) outfile<<explore_time[i]<<" ";
    outfile<<endl<<eye_of_ender<<" ";
    for(int i=1;i<=4;i++){
        outfile<<ender_crystal[i]<<" ";
    }
    outfile<<ender_dragon_health<<" "<<enter_ender<<" "<<dragon_dead<<" "<<librarian<<endl;
    for(int i=1;i<=7;i++) outfile<<hard_max_pass[i]<<" ";
    outfile.close();
    cout<<"保存成功!"<<endl;
    return;
}

void read(){//读档
    string name114=name;
    cout<<"你要读取于那个存档?"<<endl;
    cout<<"1,1号存档  2,2号存档  3,3号存档"<<endl;
    cin>>reading;
    SetConsoleTitle("--读取中--"); 
    cout<<"读取存档中..."<<endl;
    if(!debug) Sleep(2000); 
    string save_name="你的MINECRAFT存档.txt";
    switch(reading){
        case 0:
            return;
        break; 
        case 1:break;
        case 2:save_name="你的MINECRAFT存档2.txt";break;
        case 3:save_name="你的MINECRAFT存档3.txt";break;
        default:
            cout<<"请勿乱输!"<<endl;
            return;
        break;        
    }
    //
    ifstream fin(save_name.c_str());   
    fin>>version>>name;
    system("cls");
    cout<<"读取到"<<name<<"的存档!"<<endl;
    if(ver!=version){
        cout<<"警告:你正在读取"<<version<<"的存档!\n当前版本为"<<ver<<",可能会出现漏洞,后果自负!"<<endl;
        cout<<"0,返回  1,爷知道爷在做什么"<<endl;
        cin>>choose;
        if(choose==1){
            cout<<"祝你好运..."<<endl;
            Sleep(1000);
        }else return;
    }else{
        cout<<"0,返回  1,读取"<<endl;
        cin>>choose;
        if(choose==0){
            name=name114;
            return;
        }
        cout<<"读取存档成功!"<<endl;
    }
    fin>>Place>>MaxHealth>>Health>>basicmagic>>Magic>>magicup>>Attack>>Defense>>Money>>Experience>>Level>>Speed>>xp_orb;
    fin>>credit>>weapon1>>weapon2>>tool1>>tool2>>attackdis1>>attackdis2>>armor1>>armor2>>armor3>>armor4;
    fin>>nether>>ender>>dead>>defend>>blessing>>crafttable>>furnace>>smithtable>>crafttable2;
    fin>>undeadattack>>attacklevel>>diamondapple>>badguy>>weaponcheck>>blesscold;
    fin>>task1>>farland>>jungle_temple>>desert_temple>>woodland_mansion>>stronghold>>nether_fortress>>bastion_remnants>>end_city;
    for(int i=0;i<200;i++) fin>>bag[i];
    for(int i=1001;i<1020;i++) fin>>bag[i];
    for(int i=1;i<=7;i++) fin>>hard_max[i];
    for(int i=1;i<=7;i++) fin>>time_last[i];
    for(int i=1;i<10;i++) fin>>arrow[i];
    for(int i=1;i<=100;i++) fin>>skill[i]>>skillcold[i]>>skillmagic[i]>>sk[i].skilltake;
    fin>>skilltakemax>>skilltakenow;
    for(int k=1;k<=3;k++){
        fin>>tasks[k].type>>tasks[k].ac>>tasks[k].done>>tasks[k].credit>>tasks[k].Money>>tasks[k].exp;
        fin>>tasks[k].target_name>>tasks[k].target_num>>tasks[k].now>>tasks[k].item_num>>tasks[k].reward_num;
        for(int i=1;i<=3;i++) fin>>tasks[k].item[i][1]>>tasks[k].item[i][2];
        for(int i=1;i<=3;i++) fin>>tasks[k].reward[i][1]>>tasks[k].reward[i][2];
    }
    for(int i=1;i<=20;i++) fin>>explore_time[i];
    fin>>eye_of_ender;
    for(int i=1;i<=4;i++){
        fin>>ender_crystal[i];
    }
    fin>>ender_dragon_health>>enter_ender>>dragon_dead>>librarian;
    for(int i=1;i<=7;i++) fin>>hard_max_pass[i];
    cout<<"已读取 "<<name<<" 的存档!"<<endl;
getch();
    return;
}

void add_skill(int num,string skillname,char rarity,int level_max,int Magic,int cold,bool direct){
    sk[num].skillname=skillname;
    sk[num].rarity=rarity;
    sk[num].level_max=level_max;
    sk[num].Magic[1]=Magic;
    sk[num].cold[1]=cold;
    sk[num].direct=direct;
    return;
}

void skilluse(){//技能 
while(1){
    SetConsoleTitle("--技能--");
    system("cls");
    cout<<"输入编号以查看/升级技能!\n"<<endl;
    cout<<"显示顺序为 技能编号-技能名-等级-冷却-魔力"<<endl<<endl;
    for(int i=1;i<=40;i++){
        if(skill[i]>=1){
            cout<<"技能编号 "<<i<<" ";
            if(sk[i].rarity=='C') sc(7); //C级技能 白色 
            if(sk[i].rarity=='B') sc(1);//B 蓝
            if(sk[i].rarity=='A') sc(5);//A 紫 
            if(sk[i].rarity=='S') sc(6);//S 黄 
            cout<<sk[i].skillname;
            sc(7);//白 
            sc(4);//红
            cout<<" Lv.";
            if(skill[i]==sk[i].level_max) cout<<"MAX ";//判断满级 
            else cout<<skill[i]<<" ";
            if(sk[i].Magic[skill[i]]==0&&sk[i].cold[skill[i]]==0){//判断被动技能 
                sc(3);//浅蓝 
                cout<<" <被动技能>"<<endl;
            }
            if(sk[i].Magic[max(skill[i],1)]!=0){
                sc(3);//浅蓝 
                cout<<"冷却:";
                cout<<sk[i].cold[max(1,skill[i])];
                sc(1);//蓝 
                cout<<" 消耗魔力:"<<sk[i].Magic[max(1,skill[i])]<<endl;
            }
            if(wide) cout<<endl;
        }else{
            if(bag[i+64]>=1&&skill[i]!=sk[i].level_max){
                cout<<"技能编号 "<<i<<" ";
                if(sk[i].rarity=='C') sc(7);//C级技能 白色 
                if(sk[i].rarity=='B') sc(1);//B 蓝 
                if(sk[i].rarity=='A') sc(5);//A 紫 
                if(sk[i].rarity=='S') sc(6);//S 黄 
                cout<<sk[i].skillname;
                sc(2);//可升级 绿色 
                cout<<" 可学习"<<endl;
                if(wide) cout<<endl;
            }
        }
        sc(7);//白 
    }
    cout<<endl<<"0,返回  1,查看技能  2,装备技能"<<endl;
    cin>>choose;
    int n=0;//用于记录以前的选择 
    switch(choose){
        case 0:
            return;
        break;  
        case 1:
            cout<<"输入你要查看的技能的编号  0,返回"<<endl;
            cin>>choose;
            if(choose==0){
                break;
            }
            n=choose;
            if(bag[choose+64]>=1||skill[choose]>=1){
                system("cls");
                cout<<"技能名:";
                if(sk[choose].rarity=='C') sc(7); //C级技能 白色 
                if(sk[choose].rarity=='B') sc(1);//B 蓝 
                if(sk[choose].rarity=='A') sc(5);//A 紫 
                if(sk[choose].rarity=='S') sc(6);//S 黄
                cout<<sk[choose].skillname<<"\n";
                cout<<sk[choose].rarity<<" ";
                sc(7);//白 
                if(skill[choose]<sk[choose].level_max){
                    sc(2);//绿 
                    cout<<"可升级";
                    sc(7);//白 
                }
                sc(4);//红 
                cout<<" Lv.";
                if(skill[choose]==sk[choose].level_max) cout<<"MAX"<<endl;//判断满级 
                else cout<<skill[choose]<<endl;
                sc(7);
                if(sk[choose].Magic[max(1,skill[choose])]==0&&sk[choose].cold[max(1,skill[choose])]==0){//判断被动技能 
                    sc(3);//浅蓝 
                    cout<<" <被动技能>";
                    sc(7);//白 
                }
                if(sk[choose].Magic[max(skill[choose],1)]!=0){
                    sc(3);//浅蓝
                    cout<<"冷却:";
                    cout<<sk[choose].cold[max(1,skill[choose])];
                    sc(1);//蓝
                    cout<<" 消耗魔力:"<<sk[choose].Magic[max(1,skill[choose])];
                    sc(7);//白 
                }
                bool a=false;//是否0级 
                if(skill[choose]==0) skill[choose]=1,a=true;//显示1级数据
                cout<<endl;
                skill_print(choose);
                if(a) skill[choose]=0;//改回等级 
                cout<<"\n0,返回  1,";
                if(skill[choose]>=1) cout<<"升级";
                else cout<<"学习";//小细节(第一次是学习 
                if(skill[choose]>=1&&choose!=1){//可降级,显示 
                    sc(4);cout<<"  2,降级";sc(7);
                }
                cout<<endl; 
                cin>>choose;
                system("cls");
                if(choose==1){
                    choose=n;
                    //cout<<choose>>sk[choose].num[skill[choose]+1]<<endl;
                    if(skill[choose]==sk[choose].level_max){
                        cout<<"此技能已是最高等级!"<<endl;
                 getch();
                    }else{
                        if(skill[choose]>=1){
                            cout<<"升级后效果:";
                            skill[choose]++;    //预览
                            cout<<endl; 
                            skill_print(choose);
                            if(sk[choose].Magic[skill[choose]-1]!=sk[choose].Magic[skill[choose]]){
                                sc(1);//蓝 
                                cout<<"消耗魔力:"<<sk[choose].Magic[skill[choose]-1]<<" -> "<<sk[choose].Magic[skill[choose]]<<endl;//魔力变化 
                                sc(7);//白 
                            }
                            if(sk[choose].cold[skill[choose]-1]!=sk[choose].cold[skill[choose]]){
                                sc(3);//浅蓝 
                                cout<<"冷却:"<<sk[choose].cold[skill[choose]-1]<<" -> "<<sk[choose].cold[skill[choose]]<<endl;//冷却变化 
                                sc(7);//白 
                            }
                            skill[choose]--;
                            cout<<"\n---\n\n升级";
                        }else cout<<"学习";
                        cout<<"此技能需要:\n"<<endl;
                        for(int i=1;i<=sk[choose].num[skill[choose]+1];i++){//打印升级物品列表 
                            cout<<i<<". "<<item[sk[choose].levelup[skill[choose]+1][i][1]].itemname<<" x"<<sk[choose].levelup[skill[choose]+1][i][2]<<endl; 
                        }
                        if(sk[choose].Level[skill[choose]+1]>1) cout<<"等级大于等于 "<<sk[choose].Level[skill[choose]+1]<<" 级"<<endl;
                        if(sk[choose].xp_orb[skill[choose]+1]>=1){
                            sc(2);//改绿色
                            cout<<sk[choose].xp_orb[skill[choose]+1]<<" 个压缩经验球"<<endl; 
                            sc(7);//白 
                        }
                        cout<<"\n---\n\n当前你有:\n"<<endl;
                        for(int i=1;i<=sk[choose].num[skill[choose]+1];i++){//打印拥有的物品列表 
                            if(bag[sk[choose].levelup[skill[choose]+1][i][1]]<sk[choose].levelup[skill[choose]+1][i][2]) sc(4);//红 
                            cout<<i<<". "<<item[sk[choose].levelup[skill[choose]+1][i][1]].itemname<<" x"<<bag[sk[choose].levelup[skill[choose]+1][i][1]]<<endl; 
                            sc(7);
                        }
                        if(Level<sk[choose].Level[skill[choose]+1])  sc(4);//红 
                        cout<<"当前你的等级为 "<<Level<<" 级"<<endl;
                        if(xp_orb>=sk[choose].xp_orb[skill[choose]+1])  sc(2);//改绿色 
                        else sc(4);//红 
                        cout<<"当前你有 "<<xp_orb<<" 个压缩经验球"<<endl;
                        sc(7);
                        cout<<"\n0,返回  1,";
                        if(skill[choose]>=1) cout<<"升级"<<endl;
                        else cout<<"学习"<<endl;
                        cin>>choose;
                        bool flag=true;//判断是否满足升级条件 
                        if(choose==1){//检查条件
                            choose=n; 
                            if(Level<sk[choose].Level[skill[choose]+1]) flag=false;//等级 
                            if(xp_orb<sk[choose].xp_orb[skill[choose]+1]) flag=false;//经验球 
                            for(int i=1;i<=sk[choose].num[skill[choose]+1];i++){//物品 
                                if(bag[sk[choose].levelup[skill[choose]+1][i][1]]<sk[choose].levelup[skill[choose]+1][i][2]) flag=false;
                            }
                            if(!flag){
                                cout<<"你不满足";
                                if(skill[choose]>=1) cout<<"升级条件!"<<endl;
                                else cout<<"学习条件"<<endl;
                             getch();   
                            }else{
                                skill[choose]++;
                                xp_orb-=sk[choose].xp_orb[skill[choose]];//经验球 
                                for(int i=1;i<=sk[choose].num[skill[choose]];i++){//物品减少
                                    bag[sk[choose].levelup[skill[choose]][i][1]]-=sk[choose].levelup[skill[choose]][i][2];
                                }
                                if(skill[choose]>1) cout<<"升级成功!"<<endl;
                                else cout<<"学习成功!"<<endl;
getch(); 
                            }
                        }
                    }
                    /*
                    这么长这么臭的代码才写这么点注释?! 
                    还好是没bug的,反正也不用改,写不写都一样 (
                    */ 
                }
                if(choose==2){//技能降级 
                    choose=n;
                    if(skill[choose]<1||choose==1){
                        cout<<"请勿乱输!"<<endl;
getch();
                    }else{
                        cout<<"你确定要将此技能降级吗?";sc(4);cout<<"降级只会返还升级所消耗的 50% 的经验球,且不会返还技能书。"<<endl<<endl;sc(7);
                        if(sk[choose].xp_orb[skill[choose]]!=0){
                            cout<<"将 "<<sk[choose].skillname<<" 技能降级可获得 ";sc(2);cout<<sk[choose].xp_orb[skill[choose]]/2<<" 个压缩经验球";sc(7);cout<<"。"<<endl;
                        }
                        else{
                            cout<<"将 "<<sk[choose].skillname<<" 技能降级";sc(4);cout<<"不会获得压缩经验球"<<endl;sc(7);
                        }
                        if(skill[choose]==1){
                            sc(4);cout<<endl<<"降级后,你将失去此技能"<<endl;sc(7);
                        }
                        cout<<endl<<"0,返回  1,确定"<<endl;
                        cin>>choose;
                        if(choose==1){ 
                            xp_orb+=sk[n].xp_orb[skill[n]]/2;//返回一半经验球 
                            skill[n]--;
                            cout<<"降级成功!"<<endl;
                            sc(2);
                            cout<<"当前你有 "<<xp_orb<<" 个压缩经验球"<<endl;
                            sc(7);
getch();
                            sc(4);
                            if(skill[n]) cout<<sk[n].skillname<<" 技能当前的等级为 "<<skill[n]<<" 级"<<endl;
                            else cout<<sk[n].skillname<<" 技能已被遗忘"<<endl;//细节! 
                            sc(7);
getch();
                        }
                    }
                }
            }else{
                cout<<"你没有此技能!"<<endl;        
getch();
                system("cls"); 
                break;
            }
        break;  
        case 2:
            cout<<"当前可装备技能上限:"<<skilltakemax<<" 个 (当前已装备 "<<skilltakenow<<" 个)"<<endl<<endl;
            for(int i=1;i<=40;i++){
                if(sk[i].skilltake==true){
                    cout<<"已装备:编号 "<<i<<" ";
                    if(sk[i].rarity=='C') sc(7); //C级技能 白色 
                    if(sk[i].rarity=='B') sc(1);//B 蓝
                    if(sk[i].rarity=='A') sc(5);//A 紫 
                    if(sk[i].rarity=='S') sc(6);//S 黄
                    cout<<sk[i].skillname;
                    sc(4);//红 
                    cout<<" Lv.";
                    if(skill[i]==sk[i].level_max) cout<<"MAX ";//判断满级 
                    else cout<<skill[i]<<" ";
                    sc(7);
                    if(sk[choose].Magic[max(1,skill[i])]==0&&sk[i].cold[max(1,skill[i])]==0){//判断被动技能 
                        sc(3);//浅蓝 
                        cout<<" <被动技能>";
                        sc(7);//白 
                    }
                    if(sk[i].Magic[max(skill[i],1)]!=0){
                        sc(3);//浅蓝
                        cout<<"冷却:";
                        cout<<sk[i].cold[max(1,skill[i])];
                        sc(1);//蓝
                        cout<<" 消耗魔力:"<<sk[i].Magic[max(1,skill[i])];
                        sc(7);//白 
                    }
                    cout<<endl;
                }
                else continue; 
            }
            cout<<endl<<"0,返回  1,卸下技能  2,装备技能"<<endl;
            cin>>choose;
            switch(choose){
                case 0:
                    continue;
                break;
                case 1:
                    cout<<"输入要卸下的技能编号!"<<endl;
                    cin>>choose;
                    if(sk[choose].skilltake==true){
                        skilltakenow--;
                        sk[choose].skilltake=false;
                        cout<<"已卸下 ";
                        if(sk[choose].rarity=='C') sc(7); //C级技能 白色 
                        if(sk[choose].rarity=='B') sc(1);//B 蓝
                        if(sk[choose].rarity=='A') sc(5);//A 紫 
                        if(sk[choose].rarity=='S') sc(6);//S 黄
                        cout<<sk[choose].skillname<<" !"<<endl;
                        sc(7);getch();
                        continue;
                    }else{
                        cout<<"你没有装备此技能!"<<endl;getch();
                        continue;
                    }
                break;
                case 2:
                    if(skilltakenow>=skilltakemax){
                        cout<<"技能数已满!请先卸下技能!"<<endl;getch();
                        continue;
                    }
                    cout<<"输入要装备的技能编号!"<<endl;
                    cin>>choose;
                    if(sk[choose].skilltake==false&&skill[choose]>0){
                        skilltakenow++;
                        sk[choose].skilltake=1;
                        cout<<"已装备 ";
                        if(sk[choose].rarity=='C') sc(7); //C级技能 白色 
                        if(sk[choose].rarity=='B') sc(1);//B 蓝
                        if(sk[choose].rarity=='A') sc(5);//A 紫 
                        if(sk[choose].rarity=='S') sc(6);//S 黄
                        cout<<sk[choose].skillname<<" !"<<endl;
                        sc(7);getch();
                        continue;
                    }else{
                        cout<<"你已装备此技能或没有此技能!"<<endl;getch();
                        continue;
                    }
                break;  
            }
        break;            
    }
}
}

void itemreset(){//物品初始化 
    for(int i=1001;i<=1020;i++){
        itemname[i]=potionname[i-1000];
        item_id[itemname[i]]=i;
    }
    for(int i=1;i<=1020;i++){
        //bag[i]=100;//每次都忘删... 
        item[i].itemname=itemname[i];
        item[i].type=itemtype[i];
        item[i].Level=itemlevel[i];
        item[i].sell_num=item_sell_num[i];
        item[i].sell_price=item_sell_price[i];
        item_id[itemname[i]]=i;
        //skill[i]=1;
    }
    return;
}

void skillreset(){//qwq补数据补了好久!!!少说半小时
    //分布很清晰:设置升级物品数 魔力 冷却 升级物品编号,数量,等级,经验
    //注释不是写给我自己的awa 所以是写给在看的你的吖  
    add_skill(1,"侦察",'C',1,5,0,true);

    add_skill(2,"重击",'C',3,6,2,true);
    sk[2].num[1]=1;//重击 0-1 
    sk[2].levelup[1][1][1]=66 , sk[2].levelup[1][1][2]=1 , sk[2].Level[1]=1 , sk[2].xp_orb[1]=0;

    sk[2].num[2]=1;//重击 1-2 
    sk[2].Magic[2]=8 , sk[2].cold[2]=2;
    sk[2].levelup[2][1][1]=66 , sk[2].levelup[2][1][2]=2 , sk[2].Level[2]=5 , sk[2].xp_orb[2]=5;

    sk[2].num[3]=1;//重击 2-3 
    sk[2].Magic[3]=10 , sk[2].cold[3]=2;
    sk[2].levelup[3][1][1]=66 , sk[2].levelup[3][1][2]=4 , sk[2].Level[3]=15 , sk[2].xp_orb[3]=20;

    add_skill(3,"三连击",'C',3,6,2,true);

    sk[3].num[1]=1;//三连击 0-1 
    sk[3].levelup[1][1][1]=67 , sk[3].levelup[1][1][2]=1 , sk[3].Level[1]=1 , sk[3].xp_orb[1]=0;

    sk[3].num[2]=1;//三连击 1-2 
    sk[3].Magic[2]=8 , sk[3].cold[2]=2;
    sk[3].levelup[2][1][1]=67 , sk[3].levelup[2][1][2]=2 , sk[3].Level[2]=5 , sk[3].xp_orb[2]=5;

    sk[3].num[3]=1;//三连击 2-3 
    sk[3].Magic[3]=10 , sk[3].cold[3]=2;
    sk[3].levelup[3][1][1]=67 , sk[3].levelup[3][1][2]=4 , sk[3].Level[3]=15 , sk[3].xp_orb[3]=20;

    add_skill(4,"穿云箭",'C',3,7,3,true);
    sk[4].num[1]=1;//穿云箭 0-1 
    sk[4].levelup[1][1][1]=68 , sk[4].levelup[1][1][2]=1 , sk[4].Level[1]=1 , sk[4].xp_orb[1]=0;

    sk[4].num[2]=1;//穿云箭 1-2 
    sk[4].Magic[2]=9 , sk[4].cold[2]=3;
    sk[4].levelup[2][1][1]=68 , sk[4].levelup[2][1][2]=2 , sk[4].Level[2]=5 , sk[4].xp_orb[2]=5;

    sk[4].num[3]=1;//穿云箭 2-3 
    sk[4].Magic[3]=11 , sk[4].cold[3]=3;
    sk[4].levelup[3][1][1]=68 , sk[4].levelup[3][1][2]=5 , sk[4].Level[3]=20 , sk[4].xp_orb[3]=25;

    add_skill(5,"反弹",'C',3,6,2,false);
    sk[5].num[1]=1;//反弹 0-1 
    sk[5].levelup[1][1][1]=69 , sk[5].levelup[1][1][2]=1 , sk[5].Level[1]=1 , sk[5].xp_orb[1]=0;

    sk[5].num[2]=1;//反弹 1-2 
    sk[5].Magic[2]=8 , sk[5].cold[2]=2;
    sk[5].levelup[2][1][1]=69 , sk[5].levelup[2][1][2]=2 , sk[5].Level[2]=5 , sk[5].xp_orb[2]=5;

    sk[5].num[3]=1;//反弹 2-3 
    sk[5].Magic[3]=10 , sk[5].cold[3]=2;
    sk[5].levelup[3][1][1]=69 , sk[5].levelup[3][1][2]=4 , sk[5].Level[3]=15 , sk[5].xp_orb[3]=20;

    add_skill(6,"疯狂",'C',2,8,0,true);
    sk[6].num[1]=1;//疯狂 0-1 
    sk[6].levelup[1][1][1]=70 , sk[6].levelup[1][1][2]=1 , sk[6].Level[1]=5 , sk[6].xp_orb[1]=5;

    sk[6].num[2]=1;//疯狂 1-2 
    sk[6].Magic[2]=9 , sk[6].cold[2]=0;
    sk[6].levelup[2][1][1]=70 , sk[6].levelup[2][1][2]=3 , sk[6].Level[2]=15 , sk[6].xp_orb[2]=20;

    add_skill(7,"魔力护盾",'C',3,6,1,false);
    sk[7].num[1]=1;//魔力护盾 0-1 
    sk[7].levelup[1][1][1]=71 , sk[7].levelup[1][1][2]=1 , sk[7].Level[1]=1 , sk[7].xp_orb[1]=0;

    sk[7].num[2]=1;//魔力护盾 1-2 
    sk[7].Magic[2]=8 , sk[7].cold[2]=1;
    sk[7].levelup[2][1][1]=71 , sk[7].levelup[2][1][2]=2 , sk[7].Level[2]=5 , sk[7].xp_orb[2]=5;

    sk[7].num[3]=1;//魔力护盾 2-3 
    sk[7].Magic[3]=10 , sk[7].cold[3]=0;
    sk[7].levelup[3][1][1]=71 , sk[7].levelup[3][1][2]=5 , sk[7].Level[3]=20 , sk[7].xp_orb[3]=25;

    add_skill(8,"力量",'C',2,0,0,false);
    //sk[8].Magic[0]=0 , sk[8].cold[0]=0;
    sk[8].num[1]=1;//力量 0-1 
    sk[8].levelup[1][1][1]=72 , sk[8].levelup[1][1][2]=1 , sk[8].Level[1]=5 , sk[8].xp_orb[1]=5;

    sk[8].num[2]=1;//力量 1-2 
    sk[8].levelup[2][1][1]=72 , sk[8].levelup[2][1][2]=3 , sk[8].Level[2]=15 , sk[8].xp_orb[2]=20;

    add_skill(9,"魔力精通",'C',5,0,0,false);
    sk[9].num[1]=1;//魔力精通 0-1 
    sk[9].levelup[1][1][1]=73 , sk[9].levelup[1][1][2]=1 , sk[9].Level[1]=1 , sk[9].xp_orb[1]=0;

    sk[9].num[2]=1;//魔力精通 1-2 
    sk[9].levelup[2][1][1]=73 , sk[9].levelup[2][1][2]=1 , sk[9].Level[2]=5 , sk[9].xp_orb[2]=5;

    sk[9].num[3]=1;//魔力精通 2-3 
    sk[9].levelup[3][1][1]=73 , sk[9].levelup[3][1][2]=2 , sk[9].Level[3]=10 , sk[9].xp_orb[3]=15;

    sk[9].num[4]=1;//魔力精通 3-4 
    sk[9].levelup[4][1][1]=73 , sk[9].levelup[4][1][2]=4 , sk[9].Level[4]=15 , sk[9].xp_orb[4]=20;

    sk[9].num[5]=1;//魔力精通 4-5 
    sk[9].levelup[5][1][1]=73 , sk[9].levelup[5][1][2]=6 , sk[9].Level[5]=20 , sk[9].xp_orb[5]=25;

    add_skill(10,"闪避",'C',3,0,0,false); 
    sk[10].num[1]=1;//闪避 0-1 
    sk[10].levelup[1][1][1]=74 , sk[10].levelup[1][1][2]=1 , sk[10].Level[1]=1 , sk[10].xp_orb[1]=0;

    sk[10].num[2]=1;//闪避 1-2 
    sk[10].levelup[2][1][1]=74 , sk[10].levelup[2][1][2]=2 , sk[10].Level[2]=5 , sk[10].xp_orb[2]=5;

    sk[10].num[3]=1;//闪避 2-3 
    sk[10].levelup[3][1][1]=74 , sk[10].levelup[3][1][2]=4 , sk[10].Level[3]=15 , sk[10].xp_orb[3]=20;

    add_skill(11,"连击",'C',3,0,0,false); 
    sk[11].num[1]=1;//连击 0-1 
    sk[11].levelup[1][1][1]=75 , sk[11].levelup[1][1][2]=1 , sk[11].Level[1]=1 , sk[11].xp_orb[1]=0;

    sk[11].num[2]=1;//连击 1-2 
    sk[11].levelup[2][1][1]=75 , sk[11].levelup[2][1][2]=2 , sk[11].Level[2]=5 , sk[11].xp_orb[2]=5;

    sk[11].num[3]=1;//连击 2-3 
    sk[11].levelup[3][1][1]=75 , sk[11].levelup[3][1][2]=4 , sk[11].Level[3]=15 , sk[11].xp_orb[3]=20;

    add_skill(12,"健康",'C',3,0,0,false); 
    sk[12].num[1]=1;//健康 0-1 
    sk[12].levelup[1][1][1]=76 , sk[12].levelup[1][1][2]=1 , sk[12].Level[1]=1 , sk[12].xp_orb[1]=0;

    sk[12].num[2]=1;//健康 1-2 
    sk[12].levelup[2][1][1]=76 , sk[12].levelup[2][1][2]=2 , sk[12].Level[2]=5 , sk[12].xp_orb[2]=5;

    sk[12].num[3]=1;//健康 2-3 
    sk[12].levelup[3][1][1]=76 , sk[12].levelup[3][1][2]=4 , sk[12].Level[3]=15 , sk[13].xp_orb[3]=20;

    add_skill(13,"空气斩",'B',5,7,2,true);
    sk[13].num[1]=1;//空气斩 0-1 
    sk[13].levelup[1][1][1]=77 , sk[13].levelup[1][1][2]=1 , sk[13].Level[1]=5 , sk[13].xp_orb[1]=5;

    sk[13].num[2]=1;//空气斩 1-2 
    sk[13].Magic[2]=9 , sk[13].cold[2]=2;
    sk[13].levelup[2][1][1]=77 , sk[13].levelup[2][1][2]=2 , sk[13].Level[2]=15 , sk[13].xp_orb[2]=20;

    sk[13].num[3]=1;//空气斩 2-3 
    sk[13].Magic[3]=11 , sk[13].cold[3]=2;
    sk[13].levelup[3][1][1]=77 , sk[13].levelup[3][1][2]=3 , sk[13].Level[3]=20 , sk[13].xp_orb[3]=25;

    sk[13].num[4]=1;//空气斩 3-4 
    sk[13].Magic[4]=13 , sk[13].cold[4]=2;
    sk[13].levelup[4][1][1]=77 , sk[13].levelup[4][1][2]=4 , sk[13].Level[4]=25 , sk[13].xp_orb[4]=30;

    sk[13].num[5]=1;//空气斩 4-5 
    sk[13].Magic[5]=13 , sk[13].cold[5]=2;
    sk[13].levelup[5][1][1]=77 , sk[13].levelup[5][1][2]=5 , sk[13].Level[5]=30 , sk[13].xp_orb[5]=40;

    add_skill(14,"冲刺",'B',3,6,4,false); 
    sk[14].num[1]=1;//冲刺 0-1 
    sk[14].levelup[1][1][1]=78 , sk[14].levelup[1][1][2]=1 , sk[14].Level[1]=5 , sk[14].xp_orb[1]=5;

    sk[14].num[2]=1;//冲刺 1-2 
    sk[14].Magic[2]=9 , sk[14].cold[2]=4;
    sk[14].levelup[2][1][1]=78 , sk[14].levelup[2][1][2]=2 , sk[14].Level[2]=15 , sk[14].xp_orb[2]=20;

    sk[14].num[3]=1;//冲刺 2-3 
    sk[14].Magic[3]=12 , sk[14].cold[3]=4;
    sk[14].levelup[3][1][1]=78 , sk[14].levelup[3][1][2]=5 , sk[14].Level[3]=30 , sk[14].xp_orb[3]=40;

    add_skill(15,"治疗",'B',3,8,3,false); 
    sk[15].num[1]=1;//治疗 0-1 
    sk[15].levelup[1][1][1]=79 , sk[15].levelup[1][1][2]=1 , sk[15].Level[1]=5 , sk[15].xp_orb[1]=10;

    sk[15].num[2]=1;//治疗 1-2 
    sk[15].Magic[2]=10 , sk[15].cold[2]=3;
    sk[15].levelup[2][1][1]=79 , sk[15].levelup[2][1][2]=2 , sk[15].Level[2]=15 , sk[15].xp_orb[2]=20;

    sk[15].num[3]=1;//治疗 2-3 
    sk[15].Magic[3]=12 , sk[15].cold[3]=3;
    sk[15].levelup[3][1][1]=79 , sk[15].levelup[3][1][2]=5 , sk[15].Level[3]=30 , sk[15].xp_orb[3]=40;

    add_skill(16,"冥想术",'B',3,12,4,false); 
    sk[16].num[1]=1;//冥想术 0-1 
    sk[16].levelup[1][1][1]=80 , sk[16].levelup[1][1][2]=1 , sk[16].Level[1]=5 , sk[16].xp_orb[1]=10;

    sk[16].num[2]=1;//冥想术 1-2 
    sk[16].Magic[2]=10 , sk[16].cold[2]=4;
    sk[16].levelup[2][1][1]=80 , sk[16].levelup[2][1][2]=2 , sk[16].Level[2]=15 , sk[16].xp_orb[2]=20;

    sk[16].num[3]=1;//冥想术 2-3 
    sk[16].Magic[3]=15 , sk[16].cold[3]=4;
    sk[16].levelup[3][1][1]=80 , sk[16].levelup[3][1][2]=5 , sk[16].Level[3]=30 , sk[16].xp_orb[3]=40;

    add_skill(17,"脆弱化",'B',3,7,1,true); 
    sk[17].num[1]=1;//脆弱化 0-1 
    sk[17].levelup[1][1][1]=81 , sk[17].levelup[1][1][2]=1 , sk[17].Level[1]=5 , sk[17].xp_orb[1]=10;

    sk[17].num[2]=1;//脆弱化 1-2 
    sk[17].Magic[2]=9 , sk[16].cold[2]=1;
    sk[17].levelup[2][1][1]=81 , sk[17].levelup[2][1][2]=2 , sk[17].Level[2]=15 , sk[17].xp_orb[2]=20;

    sk[17].num[3]=1;//脆弱化 2-3 
    sk[17].Magic[3]=11 , sk[16].cold[3]=1;
    sk[17].levelup[3][1][1]=81 , sk[17].levelup[3][1][2]=5 , sk[17].Level[3]=30 , sk[17].xp_orb[3]=40;

    add_skill(33,"冰冻",'S',3,15,6,true);
    sk[33].num[1]=2;//冰冻 0-1 
    sk[33].levelup[1][1][1]=97 , sk[33].levelup[1][1][2]=1 , sk[33].Level[1]=15 , sk[33].xp_orb[1]=20;
    sk[33].levelup[1][2][1]=161 , sk[33].levelup[1][2][2]=5;

    sk[33].num[2]=2;//冰冻 1-2 
    sk[33].Magic[2]=20 , sk[33].cold[2]=6;
    sk[33].levelup[2][1][1]=97 , sk[33].levelup[2][1][2]=2 , sk[33].Level[2]=30 , sk[33].xp_orb[2]=40;
    sk[33].levelup[2][2][1]=161 , sk[33].levelup[2][2][2]=10;

    sk[33].num[3]=2;//冰冻 2-3 
    sk[33].Magic[3]=35 , sk[33].cold[3]=6;
    sk[33].levelup[3][1][1]=97 , sk[33].levelup[3][1][2]=5 , sk[33].Level[3]=45 , sk[33].xp_orb[3]=75;
    sk[33].levelup[3][2][1]=161 , sk[33].levelup[3][2][2]=20;

    add_skill(44,"火球",'-',1,5,4,true);
    return;
}

void setting(){//设置 
    system("cls");

    cout<<"1,显示  当前:";
    if(wide) cout<<"宽松"<<endl;
    else cout<<"紧凑" <<endl;

    cout<<"2,隐藏  当前:";
    if(hide_level==0) cout<<"无"<<endl;
    if(hide_level==1) cout<<"木 皮革"<<endl;//似乎会隐藏副手。 
    if(hide_level==2) cout<<"石 锁链"<<endl; 
    if(hide_level==3) cout<<"金"<<endl;
    if(hide_level==4) cout<<"铁"<<endl;
    if(hide_level==5) cout<<"钻石"<<endl;
    if(hide_level==6) cout<<"下界合金"<<endl;

    cout<<"3,自动保存  当前:";
    if(auto_save==0) cout<<"不开启"<<endl;
    if(auto_save==1) cout<<"1号存档"<<endl;
    if(auto_save==2) cout<<"2号存档"<<endl;
    if(auto_save==3) cout<<"3号存档"<<endl;

    cout<<"4,读取存档"<<endl;

    cout<<"5,保存进度"<<endl;

    cout<<"6,杀死极域(?"<<endl;

    cout<<"7,隐藏tips:";
    if(hide_tips) cout<<" 是"<<endl;
    else cout<<" 否"<<endl; 

    cout<<"8,运行控制台命令"<<endl;

    cout<<endl<<"0,退出"<<endl;

    c_choose=getch();
    if(c_choose=='0'){
        return;
    }
    if(c_choose=='1'){
        wide=!wide;
        setting();
        return;
    }
    if(c_choose=='2'){
        hide_level++;
        if(hide_level>6) hide_level=0;
        setting();
        return;
    }
    if(c_choose=='3'){
        auto_save++;
        if(auto_save>3) auto_save=0;
        setting();
        return;
    }
    if(c_choose=='4'){
        SetConsoleTitle("--读取--"); 
        system("cls");
        cout<<"你确定要读取存档吗?若你没有保存过就最好不要读取(这可能会触发反作弊机制,后果自负)。\n读取会覆盖你当前的游戏进度。"<<endl;
        //你说得对,但是反作弊被我删了( 
        cout<<"0,返回  1,确定"<<endl;
        cin>>choose;
        if(choose==0) return;
        read();
    }
    if(c_choose=='5'){
        system("cls");
        cout<<"你确定要保存进度吗?这将覆盖你先前的存档。我们将会创造一个文件以保存数据。"<<endl;
        cout<<"但我们建议保存存档以确保你的游玩进度不会丢失。"<<endl;
        cout<<"0,返回  1,确定"<<endl;
        cin>>choose;
        if(choose==0) setting();
        cout<<"你要保存于那个存档?"<<endl;
        cout<<"1,1号存档  2,2号存档  3,3号存档"<<endl;
        cin>>saving; 
        if(saving!=1&&saving!=2&&saving!=3){
            cout<<"请勿乱输!"<<endl;
            setting();
        }
        cout<<"保存存档中..."<<endl; 
        SetConsoleTitle("--保存中--");
        if(!debug) Sleep(2000);
        save();getch();
    }
    if(c_choose=='6'){//6
        sc(4);
        cout<<"\n你 确 定 ?本人不为此产生的任何后果负责。"<<endl;
        cout<<"请输入:";
        sc(7);
        cout<<"我确定"<<endl;
        cin>>str_choose;
        if(str_choose=="我确定") system("taskkill -f -im studentmain.exe");
        else cout<<"别干这些糟糕的事情..."<<endl; getch();
    }
    if(c_choose=='7'){ 
        hide_tips=!hide_tips;
    }
    if(c_choose=='8'){
        cout<<"输入控制台命令:"<<endl;
        getline(cin,str_choose); 
        system(str_choose.c_str());
    }
    if(c_choose=='/'){
        if(!cheat){
            return;
        }
        cin>>str_choose;
        if(str_choose=="Ilovetrb"){//don't do this unless u r me
            debug=true;
            Level=114514;
            xp_orb=1919810;
            Money=1769; 
            for(int i=1;i<=220;i++){
                bag[i]=666;//背包 
                if(i<50) skill[i]=sk[i].level_max;//满级技能 
            }
            for(int i=1001;i<=1020;i++){
                bag[i]=666;
            }
        }
        if(str_choose=="set_credit"){
            cin>>choose;
            credit=choose;
        }
        if(str_choose=="dungeon"){
            ender=true; 
            eye_of_ender=12; 
            nether=true; 
            stronghold=true;
            jungle_temple=true;
            desert_temple=true;
            nether_fortress=true;
            hard_max[1]=5;
            hard_max[2]=5;
            time_last[1]=0;
            time_last[2]=0;
        }
    }
    setting();
    return;
}

void task_reset(int x){//任务刷新 
    tasks[x].ac=false;
    tasks[x].item_num=0;
    tasks[x].reward_num=0;
    tasks[x].now=0;
    memset(tasks[x].item,0,sizeof(tasks[x].item));
    memset(tasks[x].reward,0,sizeof(tasks[x].reward));
    int point=0;
    tasks[x].type=1+rand()%2;
    tasks[x].target_name="-";
    if(tasks[x].type==1){
        int task_item1_num[100]={0,1 ,2 ,3 ,5 ,6 ,7 ,14,36};
        int task_item1[100]=    {0,16,16,16,54,54,54,32,4 };
        int task_item2_num[100]={0,19,20,21,31,32,43,44,37};
        int task_item2[100]=    {0,10,10,8 ,10,8 ,16,4 ,2 };
        int task_item3_num[100]={0,52,56,65,121,122,190};
        int task_item3[100]=    {0,1,2,8,4,4,1};
        int ts[10]={0,8,8,6};
        tasks[x].item_num=1+rand()%2;
        int k=1+rand()%ts[1];
        tasks[x].item[1][1]=task_item1_num[k];
        tasks[x].item[1][2]=task_item1[k]*(100+rand()%20-rand()%20)/100;
        tasks[x].exp=(2+rand()%2)*50;
        tasks[x].Money=1+rand()%3;
        point=10;
        if(tasks[x].item_num==2){
            if(rand()%2){
                k=rand()%ts[2]+1;
                tasks[x].item[2][1]=task_item2_num[k];
                tasks[x].item[2][2]=task_item2[k]*(100+rand()%20-rand()%20)/100;
                tasks[x].item[2][2]=max(1,tasks[x].item[2][2]); 
                tasks[x].exp+=(3+rand()%2)*50;
                tasks[x].Money+=2+rand()%2;
                point+=10;
            }else{
                k=rand()%ts[3]+1;
                tasks[x].item[2][1]=task_item3_num[k];
                tasks[x].item[2][2]=task_item3[k]*(100+rand()%20-rand()%20)/100;
                tasks[x].item[2][2]=max(1,tasks[x].item[2][2]);
                tasks[x].exp+=(4+rand()%3)*50;
                tasks[x].Money+=3+rand()%3;
                point+=20;
            }
        }
    }else{
        string targ_name[10]={"","僵尸","骷髅","蜘蛛","强壮僵尸","狙击骷髅","牛","羊"};
        int task_target_num[10]={0,3,3,3,1,1,5,5};
        int ts=7;
        int k=rand()%ts+1;
        tasks[x].target_name=targ_name[k];
        tasks[x].target_num=task_target_num[k];
        tasks[x].exp=(2+rand()%3)*50;
        tasks[x].Money=1+rand()%2;
        point=10;
        if(k<=5){
            tasks[x].exp+=(3+rand()%3)*50;
            tasks[x].Money+=2+rand()%2;
            point+=10;
        }
        if(k==5){
            tasks[x].exp+=(1+rand()%2)*50;
            tasks[x].Money+=1;
            point+=10;
        }
    }
    tasks[x].credit=1;
    if(point==20){//奇怪的结算方式 
        tasks[x].reward_num=1;
        int k=18+rand()%26;
        tasks[x].reward[1][1]=k;
        if(!item[k].type) tasks[x].reward[1][2]=2+rand()%3;
        else tasks[x].reward[1][2]=1;
        tasks[x].credit++;
    }
    if(point==30){
        tasks[x].reward_num=1;
        tasks[x].credit++;
        if(rand()%2){
            int k=31+rand()%21;
            tasks[x].reward[1][1]=k;
            if(!item[k].type&&k!=37) tasks[x].reward[1][2]=2+rand()%3;
            else tasks[x].reward[1][2]=1;
        }else{
            int k=66+rand()%11;
            tasks[x].reward[1][1]=k;
            tasks[x].reward[1][2]=1;
        }
        if(rand()%2){
            tasks[x].reward_num++;
            tasks[x].reward[2][1]=55+rand()%3;
            tasks[x].reward[2][2]=1;
        }
    }
    return;
}

void task(string Place){//查看任务 
    system("cls");
    for(int i=1;i<=3;i++){
//      cout<<tasks[i].type;
        cout<<"任务 "<<i<<":";
        if(tasks[i].ac){
            sc(4);
            cout<<"(已接受)"; 
            sc(7);
        }
        cout<<endl;
        if(tasks[i].type==1){//收集类 
            for(int j=1;j<=tasks[i].item_num;j++){
                cout<<"收集 "<<tasks[i].item[j][2]<<" 个"<<item[tasks[i].item[j][1]].itemname<<endl;
            }   
        }
        if(tasks[i].type==2){//刷怪 
            cout<<"杀死 "<<tasks[i].target_num<<" 个 "<<tasks[i].target_name;
            if(tasks[i].ac) cout<<"  (已击杀 "<<tasks[i].now<<" 个)";
            cout<<endl; 
        }
        cout<<"奖励:"<<endl;
        sc(2);
        cout<<tasks[i].exp<<" 点经验"<<endl; 
        sc(7);
        cout<<tasks[i].Money<<" 个绿宝石"<<endl; 
        for(int j=1;j<=tasks[i].reward_num;j++){
            cout<<item[tasks[i].reward[j][1]].itemname<<" x"<<tasks[i].reward[j][2]<<endl;
        }
        sc(5); 
        cout<<i<<",";
        if(tasks[i].ac) cout<<"提交";
        else cout<<"接受";
        cout<<"此任务"<<endl;
        sc(7);
        cout<<endl;
    }
    cout<<"0,离开  4,重置任务(需消耗 5 个绿宝石)\n\n注:";
    sc(4);cout<<"已接受";sc(7);cout<<"的任务不会被重置!"<<endl; 
    cin>>choose;
    if(choose<0||choose>4){
        cout<<"请勿乱输!"<<endl;getch();
        task(Place);
        return;
    }
    if(choose==0) return;
    if(choose==4){//重置任务 
        if(Money<5){
            cout<<"你的绿宝石不够!"<<endl;getch();
            task(Place);
            return;
        }
        Money-=5;
        if(!tasks[1].ac) task_reset(1);
        if(!tasks[2].ac) task_reset(2);
        if(!tasks[3].ac) task_reset(3);
        system("cls");
        cout<<"已重置所有任务!"<<endl;getch();
        task(Place);
        return;
    }else{
        if(!tasks[choose].ac){
            tasks[choose].ac=true;
            cout<<"你接受了任务 "<<choose<<"!"<<endl;getch(); 
        }else{
            int i=choose;
            bool flag=true;
            if(tasks[i].type==1){//检测 
                for(int j=1;j<=tasks[i].item_num;j++){
                    if(bag[tasks[i].item[j][1]]<tasks[i].item[j][2]){
                        cout<<"你只有 "<<bag[tasks[i].item[j][1]]<<" 个 "<<item[tasks[i].item[j][1]].itemname<<"!"<<endl;
                        flag=false;
                    }
                }
            }else{
                if(tasks[i].now<tasks[i].target_num){
                    cout<<"你只击杀了 "<<tasks[i].now<<" 个 "<<tasks[i].target_name<<"!"<<endl;
                    flag=false;
                }
            }
            if(flag){
                if(tasks[i].type==1){
                    for(int j=1;j<=tasks[i].item_num;j++){
                        bag[tasks[i].item[j][1]]-=tasks[i].item[j][2];
                    }   
                }
                cout<<"提交成功!"<<endl;
                cout<<"获得 "<<tasks[i].Money<<" 个绿宝石!"<<endl;
                Money+=tasks[i].Money;
                cout<<"获得 "<<tasks[i].exp<<" 点经验!"<<endl;
                Experience+=tasks[i].exp;
                for(int j=1;j<=tasks[i].reward_num;j++){
                    cout<<"获得 "<<item[tasks[i].reward[j][1]].itemname<<" x"<<tasks[i].reward[j][2]<<"!"<<endl;
                    bag[tasks[i].reward[j][1]]+=tasks[i].reward[j][2];
                }   getch();
                task_reset(i);
                //重置任务 
            }else{
                cout<<"提交失败!"<<endl;getch(); 
            }
        }
    }
    task(Place);    
    return;
}

string RandomNameGenerator(){//WangYiNameGenerator((((( 
    string no_name[100]={"CJK","帅哥","美女","张哥","小丑","小明","史蒂夫","艾利克斯","蛇将",
    "先辈","田所","斐济","内格","小胡子","小鸡","肥猪","厨师","熊大","乐子",
    "吕小妹","李四","专家","棍木","学生","个人练习生","李白","秦始皇","曹操","史莱姆"};
    string no[100]={"足球","石头","木头","斧子","作业","钻石","末影之眼","凋零骷髅头","梦想",
    "石榴","柚子","骷髅马","糖果","煎饼","仙人掌","绿宝石","香蕉","小船","烤鱼",
    "飞机","木瓜","骨头","钻石剑","皮鼓","水桶","黑曜石","沙子","指南针","绿宝石"};
    string ve[100]={"写散文","踢足球","写作业","上厕所","睡觉","吃饭","跳舞","唱歌","看书",
    "画漫画","吃芒果","打篮球","讲故事","怒吼","玩游戏","打电动","发呆","喝可乐","射箭",
    "道观","考试","坐飞机","坠机","散步","吹口哨","买瓜","玩手机","喝奶茶","跪下"};
    string name_adj[100]={"狂笑的","聪明的","智慧的","史诗","无畏的","慵懒的","暴躁的","冷静的","中二",
    "橘子味","坚强的","不屈的","天才的","干脆的","美味的","淘气的","率直","谨慎","游泳的",
    "疯狂的","难绷的","发愁的","陈皮味","憨直","宽宏的","练习时长两年半的","招笑的","伤心的","得意的"};
    int num_name=30,num_no=30,num_ve=30,num_adj=30;
    int opt=rand()%4;
    if(opt==0){//name_adj name 's no 
        return name_adj[rand()%num_adj]+no_name[rand()%num_name]+"的"+no[rand()%num_no];
    }
    if(opt==1){//name_adj name v 
        return name_adj[rand()%num_adj]+no_name[rand()%num_name]+ve[rand()%num_ve];
    }
    if(opt==2){//name_adj name  
        return name_adj[rand()%num_adj]+no_name[rand()%num_name];
    }
    if(opt==3){//name_adj name zhi no 
        return name_adj[rand()%num_adj]+no_name[rand()%num_name]+"之"+no[rand()%num_no];
    }
    return name;
}

void game_init(){//初始化 
    //任务初始化 
    task_reset(1);
    task_reset(2);
    task_reset(3);          
    sk[1].skilltake=true;//侦察 
    itemreset();//物品初始化 
    skillreset();//技能初始化 
    recipe_reset();//配方初始化 
    place_id["村庄"]=1;place_id["平原"]=2;place_id["森林"]=3;place_id["洞穴"]=4;place_id["沙漠"]=5;place_id["丛林"]=6;place_id["雪地"]=7;place_id["地狱"]=8;place_id["末地"]=9;place_id["要塞"]=10;place_id["边境之地"]=11;place_id["丛林神殿"]=12;place_id["下界要塞"]=13;place_id["沙漠神殿"]=14;
    return; 
}

int main(){
    system("chcp 936");
    system("cls");
    //HideCursor();
    SetConsoleTitle("MINECRAFT_Made_by_Chenxuanhan");
    srand(time(0));
    game_init();//放在srand后面! 
    //dungeon("丛林神庙");
    cout<<"  Welcome to ";
    color("M",4,0);color("I",12,0);color("N",14,0);color("E",6,0);color("C",2,0);color("R",3,0);color("A",11,0);color("F",9,0);color("T !\n",13,0);
    cout<<"   欢迎来到我的世界! "<<endl<<endl;
    cout<<"   Made By Chenxuanhan   "<<endl<<endl;
    cout<<"Version:"<<version<<endl; 
    Sleep(500);
    int fun=rand()%50;
    if(fun==0){
        sc(18|5);
        cout<<endl<<endl<<"按 2 开始..."<<endl;
        sc(7);
    }
    else cout<<endl<<endl<<"按 1 开始..."<<endl; 
    //dungeon("丛林神庙"); 
    cin>>choose;
    if(choose==114514) system("shutdown -s -t 1");//还有人踩这个?hb:L 
    if(choose!=Health+basicattack){
        if(choose!=1&&fun!=0){
            say("看来你挺无聊的啊...输入个1都不愿意么?",50);
            cout<<endl;
            Sleep(1500);
            say("那就让你更无聊点吧...",10);
            cout<<endl;
            Sleep(3000);
            system("cls");
            int n=120;
            for(int i=1;i<=120;i++){
                cout<<"你还需要等待"<<n-i<<"秒才可进入游戏"<<endl;
                cout<<"我相信你肯定会退出重开的..."<<endl;
                Sleep(1000);
                system("cls");
            }  
            say("这只是个游戏,不是吗?",50);
            cout<<endl;
            Sleep(2000);
            say("如果你能等两分钟,那你也确实够无聊的。",50);
            cout<<endl;
            Sleep(2000);
            say("算了,我不整你了,反正我也不想再写那么多的代码还没几个人看了。",50);
            cout<<endl;
            Sleep(2000);
        }
        if(fun==0&&choose==2){
            cout<<"怎么是 2 !我记得我写的是输入 1 开始啊!"<<endl;getch();
            cout<<"好吧,游戏出错了!这不是彩蛋!"<<endl;
            Sleep(3000);
            cout<<"...就怪了!"<<endl;
            Sleep(500); 
        }
        system("cls");getch();
        cout<<"一些可能不太重要的话\n"<<endl;getch();
        say("说实话,我不太想让进入游戏显得太快,好像很没有仪式感。\n\n",20);Sleep(500); 
        say("但又不想写太多,显得我好像很啰嗦...好像的确如此\n\n",20);Sleep(500); 
        say("游玩过程中遇到的bug、或者建议、想法,甚至游玩时的感想,都可以告诉作者!这对这个游戏非常重要!\n\n",20);Sleep(500);
        say("另外,在完整体验过此游戏的所有内容之前,(最好)不要查看/修改游戏代码,这会极大的破坏游戏的沉浸性和惊喜!\n\n",20);Sleep(500);
        say("如果碰到了卡进度之类的问题可以咨询作者,但大部分隐藏内容在游戏内都有提示。\n\n",20);Sleep(500);
        say("那么,大概就说这么多吧...\n\n",20);Sleep(1000);getch(); 
        system("cls");
        cout<<"是否读取存档?若没有存档请勿读取。\n"<<endl;
        cout<<"0,取消  1,确定"<<endl;
        cin>>choose;
        if(choose==1) read();
    else{
        cout<<"开始创建新角色..."<<endl;
        Sleep(1000);
        SetConsoleTitle("你是谁?");
        while(1){
            cin.clear();
            cin.sync(); 
            system("cls"); 
            say("输入你的名字...(不支持空格)",50);//加了空格的名字可能会保存失败,所以别加...... 
            cout<<endl; 
            cout<<"输入“random”以随机名字!(这似乎意味着你不能以random作为名字...?)"<<endl;//666666669
            cin>>name;
            say("唔...",100);
            cout<<endl;
            if(name=="random"){
                name=RandomNameGenerator();
                Sleep(500);
                say("你要使用这个名字吗,",50);
                say(name,20);
            }else{
                Sleep(1000);
                say("这就是你的名字了吗,",50);
                say(name,300);
            }
            cout<<"\n\n确定吗?(1,确定)"<<endl;
            cin>>choose;
            if(choose!=1) continue;
            if(name.length()<=3){
                SetConsoleTitle("草率的名字...");
                say("...有些草率的名字。",100);
            }
            else{
                if(name=="114514"||name=="1919810"){
                    SetConsoleTitle("臭死了!"); 
                    say("哼,哼,",200);
                    say("啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊,啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊,啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊阿啊啊啊",20); 
                    /*
                    什么意思?
                    臭死了! 
                    */
                }else{
                    SetConsoleTitle("不错的名字!");  
                    say("...不错的名字。",100);
                }
            }
            break;
        }
        cout<<endl;
        Sleep(2000);
        system("cls");
        SetConsoleTitle("查看剧情?");
        cout<<"输入 1 观看剧情,按其余键跳过。"<<endl;
        cin>>choose;
        if(choose==1){
            jvqing();
        }
        system("cls");
        SetConsoleTitle("你是新手吗?");
        cout<<"查看新手教程?建议新玩家查看(输入 1 查看)"<<endl;
        cin>>choose;
        if(choose==1){
            system("start http://hfoj.net/blog/85/63a2785dac95767ac35f4240");
            system("start http://10.80.74.11/blog/85/63a2785dac95767ac35f4240");
        }
        if(choose==1) getch();
        else{
            cout<<"注:主界面也可以查看新手教程。"<<endl;getch();
        }
        SetConsoleTitle("MINECRAFT Loading...");
        system("cls");
        cout<<"现在,开始你的传奇吧!"<<endl;
        say("Create World...",80); 
        Sleep(3000);
}
    }else{
        system("cls");
        cout<<"你使用了 快速进入游戏(测试专用)通道"<<endl;//快速进入游戏 
        cout<<"输入名字"<<endl;
        cheat=true;
        cin>>name;
        debug=1;
    }
    while(1){//游戏界面 
        cin.clear();
        cin.sync(); 
        SetConsoleTitle("MINECRAFT_Made_by_Chenxuanhan");
        reset();//重置 
        system("cls");
        levelup(Experience);
        if(Place=="末地"&&ender_dragon_health>0&&!dragon_dead){//末影龙 
            dungeon("末地");
            continue;
        }
        cout<<"玩家名:"<<name<<endl;
        cout<<"你现在位于"<<Place<<".";
        if(Place=="边境之地"){//...?
            sc(71);
            cout<<"危险!";
            sc(7); 
        }
        cout<<endl;
        sc(4);cout<<"血量:"<<Health<<"/"<<MaxHealth<<endl;
        sc(1);cout<<"魔力:"<<Magic<<"/"<<MaxMagic<<endl;
        sc(7);
        cout<<"攻击:"<<Attack<<endl;
        cout<<"防御:"<<Defense<<endl;
        cout<<"速度:"<<Speed<<endl;
        cout<<"绿宝石:"<<Money<<endl;
        cout<<"等级:"<<Level;
        sc(2);cout<<" 经验:"<<Experience<<"/"<<Level*100;
        if(xp_orb>0) cout<<"  ( "<<xp_orb<<" 个压缩经验球)";
        cout<<endl; 
        sc(7);
        if(undeadattack) cout<<"你有一种不祥的预感...也许你该去村庄冒险看看。"<<endl;
        cout<<"-----------------------------------" <<endl; 
        cout<<"你要做什么?"<<endl;
        cout<<"1,冒险  2,商店  3,背包  4,挖矿  5,砍树  6,前进  7,合成  8,建造  9,装备  10,技能  ";
        if(Place=="村庄") cout<<"11,任务";
        cout<<endl;
        cout<<"1001,查看更新日志  1002,新手教程  1003,设置  1004,查看《蔡JK传奇》\n"<<endl;
        choose=rnd(1,190);
        if(!hide_tips) cout<<"tips:"<<tips[choose]<<endl; 
        if(auto_save){
            saving=auto_save;
            cout<<endl<<"自动";
            save();
        }
        cin>>choose;
        fflush(stdin);
        if(!cin.fail()){
            switch(choose){//选择 
                case 1://冒险 
                    system("cls");
                    cout<<"你开始在"<<Place<<"冒险..."<<endl;
                    if(!debug) Sleep(1000);
                    explore(Place);
                break;
                case 2://商店 
                    system("cls");
                    cout<<"你进入商店"<<endl;
                    Sleep(1000);
                    shop(Place);
                break;
                case 3://检查背包 
                    system("cls"); 
                    cout<<"输入物品编号可查看详细信息"<<endl<<endl;
                    checkbag();
                break;
                case 4://挖矿 
                    dig(Place); 
                break;
                case 5://砍树 
                    tree(Place);    
                break;
                case 6://前进
                    go();
                break;
                case 7://合成 
                    create();
                break;
                case 8://建造 
                    build();
                break;
                case 9://装备
                    weapon();
                break;
                case 10://技能 
                    skilluse();
                break;  
                case 11:
                    if(!(Place=="村庄")) break; 
                    system("cls");
                    cout<<"你来到 "<<Place<<" 的任务栏前查看......"<<endl;getch();
                    task(Place);
                break;  
                case 1001://更新日志 
                    changelog();
                break;
                case 1002://教程 
                    system("start http://hfoj.net/blog/85/63a2785dac95767ac35f4240");
                    system("start http://10.80.74.11/blog/85/63a2785dac95767ac35f4240");
                break;  
                case 1003:
                    setting();
                break;      
                case 1004://... 
                    if(!vis){
                        Money++;
                        cout<<"获得 1 颗绿宝石!"<<endl;
                        vis=true;
                    }
                   system("start http://hfoj.net/blog/85/6337b943fe62769368d8631b#1664596291286");
                   system("start http://10.80.74.11/blog/85/6337b943fe62769368d8631b#1664596291286");
                   getch(); 
                break;
                default:
                    break;
                break; 
                case 114514:
                    return 0;
                break;
            }
        }else{
            cin.clear();
            continue;
        }
    }
    return 0; 
}