#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
string label[13]={
"职业"
,"力量"
,"敏捷"
,"智力"
,"生命成长"
,"攻击成长"
,"防御成长"
,"速度成长"
,"法术成长"
,"等级"
,"经验"
,"钱"
,"属性点"
};
//角色
class role{
public:
//生成函数
role(){
//空构造函数
}
role(string name,int STR,int DEX,int INT,int _hp,int _atk,int _def,int _spd,int _mp,int lv=1,int exp=0,int money=0){
this->name=name;
this->STR=STR;
this->DEX=DEX;
this->INT=INT;
this->_hp=_hp;
this->_atk=_atk;
this->_def=_def;
this->_spd=_spd;
this->_mp=_mp;
this->lv=lv;
this->exp=exp;
this->money=money;
this->pnt=0;
update();
}
//数据获取接口
string getname(){
return name;
}
int gethp(){
return hp;
}
int getatk(){
return atk;
}
int getdef(){
return def;
}
int getspd(){
return spd;
}
int getmp(){
return mp;
}
int getlv(){
return lv;
}
int getexp(){
return exp;
}
int getmoney(){
return money;
}
int getpnt(){
return pnt;
}
//数据修改接口
void modifyhp(int delta){
hp=max(0,hp+delta);
cout<<name<<"的生命值变为了"<<hp<<"。"<<endl;
}
void modifymp(int delta){
mp=max(0,mp+delta);
cout<<name<<"的魔法值变为了"<<mp<<"。"<<endl;
}
void modifydef(int delta){
def=max(0,def+delta);
cout<<name<<"的防御值变为了"<<def<<"。"<<endl;
}
void modifyspd(int delta){
spd=max(0,spd+delta);
cout<<name<<"的速度变为了"<<spd<<"。"<<endl;
}
void modifyatk(int delta){
atk=max(0,atk+delta);
cout<<name<<"的攻击力变为了"<<atk<<"。"<<endl;
}
//获得经验与升级
void levelup(){
++pnt;
++lv;
cout<<"你的等级提升到了"<<lv<<"级。"<<endl;
}
bool modifyexp(int x){
if(x<0)return 0;//获取经验不能为负,否则操作失败, 返回0
cout<<"你获得了"<<x<<"点经验值。"<<endl;
exp+=x;
while(exp>=100){
exp-=100;
levelup();
}
return 1;//操作成功,返回1
}
//金钱修改
bool modifymoney(int delta){
if(money+delta<0)return 0;//若金钱不足,则操作失败,返回0
money+=delta;
if(delta>0)cout<<"你获得了"<<delta<<"金币。"<<endl;
if(delta<0)cout<<"你失去了"<<delta<<"金币。"<<endl;
return 1;//操作成功,返回0
}
//属性点修改
bool modifySTR(int delta){
if(delta<0||delta>pnt)return 0;//不合法的操作,返回0
STR+=delta;
pnt-=delta;
update();
cout<<"你的力量提高了"<<delta<<"。"<<endl;
return 1;
}
bool modifyDEX(int delta){
if(delta<0||delta>pnt)return 0;//不合法的操作,返回0
DEX+=delta;
pnt-=delta;
update();
cout<<"你的敏捷提高了"<<delta<<"。"<<endl;
return 1;
}
bool modifyINT(int delta){
if(delta<0||delta>pnt)return 0;//不合法的操作,返回0
INT+=delta;
pnt-=delta;
update();
cout<<"你的智力提高了"<<delta<<"。"<<endl;
return 1;
}
virtual bool skill1(role &rhs){
cout<<name<<"没有这个技能"<<endl;
return 0;
}
virtual bool skill2(role &rhs){
cout<<name<<"没有这个技能"<<endl;
return 0;
}
virtual bool attack(role &rhs){
int tmp=min(rhs.gethp(),max(atk-rhs.getdef(),0));
cout<<name+"攻击了"+rhs.getname()+","+(tmp>0?("并造成了"+to_string(tmp)+"点伤害。"):"但是没有破防。")<<endl;
if(tmp)rhs.modifyhp(-tmp);
return 1;//返回造成伤害的数值
}
//调试函数,输出全部数据
void DEBUG_SHOW(){
cout<<"----------STATUS START----------"<<endl;
cout<<"name:"<<name<<endl;
cout<<"STR:"<<STR<<endl;
cout<<"DEX:"<<DEX<<endl;
cout<<"INT:"<<INT<<endl;
cout<<"hp:"<<hp<<"("<<_hp<<")"<<endl;
cout<<"atk:"<<atk<<"("<<_atk<<")"<<endl;
cout<<"def:"<<def<<"("<<_def<<")"<<endl;
cout<<"spd:"<<spd<<"("<<_spd<<")"<<endl;
cout<<"mp:"<<mp<<"("<<_mp<<")"<<endl;
cout<<"level:"<<lv<<endl;
cout<<"exp:"<<exp<<endl;
cout<<"pnt:"<<pnt<<endl;
cout<<"money:"<<money<<endl;
cout<<"----------STATUS OVER----------"<<endl;
}
protected:
/**//*函数部分*//**/
//更新战斗数据
virtual void update(){
atk=_atk*STR;
hp=_hp*STR;
spd=_spd*DEX;
def=_def*DEX;
mp=_mp*INT;
}
/**//*数据部分*//**/
//识别性数据
string name;
//基本属性
int STR,DEX,INT;//力量,敏捷,智力
//属性比例
int _hp,_atk;
int _def,_spd;
int _mp;
//战斗属性
int hp,atk;//生命值,攻击力
int def,spd;//防御值,速度
int mp; //魔法值
//等级
int lv,exp,pnt;
//财富
int money;
};
class warrior:public role{
public:
//生成函数
warrior(string name,int STR,int DEX,int INT,int _hp,int _atk,int _def,int _spd,int _mp,int lv=1,int exp=0,int money=0):
role(name,STR,DEX,INT,_hp,_atk,_def,_spd,_mp,lv,exp,money){
update();
}
string getjob(){
return job;
}
bool skill1(role &rhs){
if(mp<10){
cout<<"mp不足无法使用。"<<endl;
return 0;
}
cout<<name<<"对"<<rhs.getname()<<"使用了碎盾打击。"<<endl;
modifymp(-10);
int delta=min(atk/2,rhs.getdef());
rhs.modifydef(-delta);
return 1;
}
bool skill2(role &rhs){
if(mp<10){
cout<<"mp不足无法使用。"<<endl;
return 0;
}
cout<<name<<"使用了固守。"<<endl;
modifymp(-10);
modifydef(5);
return 1;
}
bool attack(role &rhs){
int tmp=min(rhs.gethp(),max(atk-rhs.getdef(),0));
cout<<name+"攻击了"+rhs.getname()+","+(tmp>0?("并造成了"+to_string(tmp)+"点伤害。"):"但是没有破防。")<<endl;
if(tmp)rhs.modifyhp(-tmp);
return 1;//返回造成伤害的数值
}
private:
string job="战士擅长硬刚,有着生命值+20和防御力+5的加成。但是因为肉体强韧,对魔力的亲和度极差,mp的成长性-5(不会低于0)。掌握技能:碎盾打击,固守。";
void update(){
atk=_atk*STR;
hp=_hp*STR+20;
spd=_spd*DEX;
def=_def*DEX+5;
mp=max(0,_mp-5)*INT;
}
};
class hunter:public role{
public:
//生成函数
hunter(string name,int STR,int DEX,int INT,int _hp,int _atk,int _def,int _spd,int _mp,int lv=1,int exp=0,int money=0):
role(name,STR,DEX,INT,_hp,_atk,_def,_spd,_mp,lv,exp,money){
update();
}
string getjob(){
return job;
}
bool attack(role &rhs){
int tmp=min(rhs.gethp(),max(atk-rhs.getdef(),0));
cout<<name+"攻击了"+rhs.getname()+","+(tmp>0?("并造成了"+to_string(tmp)+"点伤害。"):"但是没有破防。")<<endl;
if(tmp)rhs.modifyhp(-tmp);
return 1;//返回造成伤害的数值
}
bool skill1(role &rhs){
if(mp<10){
cout<<"mp不足无法使用。"<<endl;
return 0;
}
cout<<name<<"对"<<rhs.getname()<<"使用了强风射击,造成附加速度的伤害。"<<endl;
modifymp(-10);
int delta=min(atk+spd-rhs.getdef(),rhs.gethp());
rhs.modifyhp(-delta);
return 1;
}
bool skill2(role &rhs){
if(mp<10){
cout<<"mp不足无法使用。"<<endl;
return 0;
}
cout<<name<<"使用了冰冻陷阱。"<<endl;
modifymp(-10);
int delta=min(5,rhs.getspd());
rhs.modifyspd(-delta);
return 1;
}
private:
string job="猎人有着高超的狩猎技巧,有着在快速运动中打击敌人的能力,速度的成长性+1,且获得额外的5点速度加成。掌握技能:强风射击,冰冻陷阱。";
void update(){
atk=_atk*STR;
hp=_hp*STR;
spd=(_spd+1)*DEX+5;
def=_def*DEX;
mp=max(0,_mp-5)*INT;
}
};
class wizard:public role{
public:
//生成函数
wizard(string name,int STR,int DEX,int INT,int _hp,int _atk,int _def,int _spd,int _mp,int lv=1,int exp=0,int money=0):
role(name,STR,DEX,INT,_hp,_atk,_def,_spd,_mp,lv,exp,money){
update();
}
string getjob(){
return job;
}
bool attack(role &rhs){
int tmp=min(rhs.gethp(),max(atk-rhs.getdef(),0));
cout<<name+"攻击了"+rhs.getname()+","+(tmp>0?("并造成了"+to_string(tmp)+"点伤害。"):"但是没有破防。")<<endl;
if(tmp)rhs.modifyhp(-tmp);
return 1;//返回造成伤害的数值
}
bool skill1(role &rhs){
if(mp<10){
cout<<"mp不足无法使用。"<<endl;
return 0;
}
cout<<name<<"使用了火球术。"<<endl;
modifymp(-10);
int delta=min(INT,rhs.gethp());
rhs.modifyhp(-delta);
return 1;
}
bool skill2(role &rhs){
if(mp<50){
cout<<"mp不足无法使用。"<<endl;
return 0;
}
cout<<name<<"使用了大火球术。"<<endl;
modifymp(-50);
int delta=min(INT*5,rhs.gethp());
rhs.modifyhp(-delta);
return 1;
}
private:
string job="巫师以孱弱的身体为代价换来了对知识的掌握,mp成长性+1,但是防御力始终为0。掌握技能:火球术,大火球术。";
void update(){
atk=_atk*STR;
hp=_hp*STR;
spd=_spd*DEX;
def=0;
mp=(_mp+1)*INT;
}
};
class poison:public role{
public:
//生成函数
poison(string name,int STR,int DEX,int INT,int _hp,int _atk,int _def,int _spd,int _mp,int lv=1,int exp=0,int money=0):
role(name,STR,DEX,INT,_hp,_atk,_def,_spd,_mp,lv,exp,money){
update();
}
string getjob(){
return job;
}
bool skill1(role &rhs){
if(mp<10){
cout<<"mp不足无法使用。"<<endl;
return 0;
}
cout<<name<<"对"<<rhs.getname()<<"使用了毒药挥洒。"<<endl;
modifymp(-10);
int delta=min(atk/2,rhs.getdef());
rhs.modifydef(-delta);
return 1;
}
bool skill2(role &rhs){
if(mp<10){
cout<<"mp不足无法使用。"<<endl;
return 0;
}
cout<<name<<"使用了漫天繁星,敌人各项属性-1。"<<endl;
modifymp(-10);
modifydef(5);
return 1;
}
bool attack(role &rhs){
int tmp=min(rhs.gethp(),max(atk-rhs.getdef(),0));
cout<<name+"攻击了"+rhs.getname()+","+(tmp>0?("并造成了"+to_string(tmp)+"点伤害。"):"但是没有破防。")<<endl;
if(tmp)rhs.modifyhp(-tmp);
return 1;//返回造成伤害的数值
}
private:
string job="毒师有着丰富的毒药储备,可使敌人属性大大减少。战斗中,防御-5,敏捷+2,mp的成长性+5。掌握技能:毒药挥洒,漫天繁星。";
void update(){
atk=_atk*STR;
hp=_hp*STR+20;
spd=_spd*DEX;
def=_def*DEX+5;
mp=max(0,_mp-5)*INT;
}
};
class assassin:public role{
public:
//生成函数
assassin(string name,int STR,int DEX,int INT,int _hp,int _atk,int _def,int _spd,int _mp,int lv=1,int exp=0,int money=0):
role(name,STR,DEX,INT,_hp,_atk,_def,_spd,_mp,lv,exp,money){
update();
}
string getjob(){
return job;
}
bool skill1(role &rhs){
if(mp<10){
cout<<"mp不足无法使用。"<<endl;
return 0;
}
cout<<name<<"对"<<rhs.getname()<<"使用了刺杀,一招致命。"<<endl;
modifymp(-10);
int delta=min(atk/2,rhs.getdef());
rhs.modifydef(-delta);
return 1;
}
bool skill2(role &rhs){
if(mp<10){
cout<<"mp不足无法使用。"<<endl;
return 0;
}
cout<<name<<"使用了瞬移。"<<endl;
modifymp(-10);
modifydef(5);
return 1;
}
bool attack(role &rhs){
int tmp=min(rhs.gethp(),max(atk-rhs.getdef(),0));
cout<<name+"攻击了"+rhs.getname()+","+(tmp>0?("并造成了"+to_string(tmp)+"点伤害。"):"但是没有破防。")<<endl;
if(tmp)rhs.modifyhp(-tmp);
return 1;//返回造成伤害的数值
}
private:
string job="刺客擅于夜间行动,隐匿功能强大,身姿敏捷。近战时防御-5,敏捷+5。掌握技能:毒瞬移,刺杀。";
void update(){
atk=_atk*STR;
hp=_hp*STR+20;
spd=_spd*DEX;
def=_def*DEX+5;
mp=max(0,_mp-5)*INT;
}
};
class civilian:public role{
public:
//生成函数
civilian(string name,int STR,int DEX,int INT,int _hp,int _atk,int _def,int _spd,int _mp,int lv=1,int exp=0,int money=0):
role(name,STR,DEX,INT,_hp,_atk,_def,_spd,_mp,lv,exp,money){
update();
}
string getjob(){
return job;
}
bool skill1(role &rhs){
if(mp<10){
cout<<"mp不足无法使用。"<<endl;
return 0;
}
cout<<name<<"对"<<rhs.getname()<<"使用了学习,一回合中可习得敌人的一种技能。"<<endl;
modifymp(-10);
int delta=min(atk/2,rhs.getdef());
rhs.modifydef(-delta);
return 1;
}
bool skill2(role &rhs){
if(mp<10){
cout<<"mp不足无法使用。"<<endl;
return 0;
}
cout<<name<<"使用了暴动。"<<endl;
modifymp(-10);
modifydef(5);
return 1;
}
bool attack(role &rhs){
int tmp=min(rhs.gethp(),max(atk-rhs.getdef(),0));
cout<<name+"攻击了"+rhs.getname()+","+(tmp>0?("并造成了"+to_string(tmp)+"点伤害。"):"但是没有破防。")<<endl;
if(tmp)rhs.modifyhp(-tmp);
return 1;//返回造成伤害的数值
}
private:
string job="平民学习能力高强,先天技能较薄弱。各项属性均为起始值。掌握技能:学习,暴动。";
void update(){
atk=_atk*STR;
hp=_hp*STR+20;
spd=_spd*DEX;
def=_def*DEX+5;
mp=max(0,_mp-5)*INT;
}
};
class pharmacist:public role{
public:
//生成函数
pharmacist(string name,int STR,int DEX,int INT,int _hp,int _atk,int _def,int _spd,int _mp,int lv=1,int exp=0,int money=0):
role(name,STR,DEX,INT,_hp,_atk,_def,_spd,_mp,lv,exp,money){
update();
}
string getjob(){
return job;
}
bool skill1(role &rhs){
if(mp<10){
cout<<"mp不足无法使用。"<<endl;
return 0;
}
cout<<name<<"对"<<rhs.getname()<<"使用了治愈,当生命值较低时可恢复。"<<endl;
modifymp(-10);
int delta=min(atk/2,rhs.getdef());
rhs.modifydef(-delta);
return 1;
}
bool skill2(role &rhs){
if(mp<10){
cout<<"mp不足无法使用。"<<endl;
return 0;
}
cout<<name<<"使用了采药。"<<endl;
modifymp(-10);
modifydef(5);
return 1;
}
bool attack(role &rhs){
int tmp=min(rhs.gethp(),max(atk-rhs.getdef(),0));
cout<<name+"攻击了"+rhs.getname()+","+(tmp>0?("并造成了"+to_string(tmp)+"点伤害。"):"但是没有破防。")<<endl;
if(tmp)rhs.modifyhp(-tmp);
return 1;//返回造成伤害的数值
}
private:
string job="药师通过高超的制药用药技能,可迅速恢复自身生命值。由于常年在外采药,敏捷+5。掌握技能:治愈,采药。";
void update(){
atk=_atk*STR;
hp=_hp*STR+20;
spd=_spd*DEX;
def=_def*DEX+5;
mp=max(0,_mp-5)*INT;
}
};
class sword:public role{
public:
//生成函数
sword(string name,int STR,int DEX,int INT,int _hp,int _atk,int _def,int _spd,int _mp,int lv=1,int exp=0,int money=0):
role(name,STR,DEX,INT,_hp,_atk,_def,_spd,_mp,lv,exp,money){
update();
}
string getjob(){
return job;
}
bool skill1(role &rhs){
if(mp<10){
cout<<"mp不足无法使用。"<<endl;
return 0;
}
cout<<name<<"对"<<rhs.getname()<<"使用了屠戮。"<<endl;
modifymp(-10);
int delta=min(atk/2,rhs.getdef());
rhs.modifydef(-delta);
return 1;
}
bool skill2(role &rhs){
if(mp<10){
cout<<"mp不足无法使用。"<<endl;
return 0;
}
cout<<name<<"使用了见血封喉。"<<endl;
modifymp(-10);
modifydef(5);
return 1;
}
bool attack(role &rhs){
int tmp=min(rhs.gethp(),max(atk-rhs.getdef(),0));
cout<<name+"攻击了"+rhs.getname()+","+(tmp>0?("并造成了"+to_string(tmp)+"点伤害。"):"但是没有破防。")<<endl;
if(tmp)rhs.modifyhp(-tmp);
return 1;//返回造成伤害的数值
}
private:
string job="剑客长年累月磨练自己的剑术,攻击力达到宗师级别。日日练功,力量+5。掌握技能:屠戮,见血封喉。";
void update(){
atk=_atk*STR;
hp=_hp*STR+20;
spd=_spd*DEX;
def=_def*DEX+5;
mp=max(0,_mp-5)*INT;
}
};
class trainer:public role{
public:
//生成函数
trainer(string name,int STR,int DEX,int INT,int _hp,int _atk,int _def,int _spd,int _mp,int lv=1,int exp=0,int money=0):
role(name,STR,DEX,INT,_hp,_atk,_def,_spd,_mp,lv,exp,money){
update();
}
string getjob(){
return job;
}
bool skill1(role &rhs){
if(mp<10){
cout<<"mp不足无法使用。"<<endl;
return 0;
}
cout<<name<<"对"<<rhs.getname()<<"使用了兽潮,可击退大规模敌人。"<<endl;
modifymp(-10);
int delta=min(atk/2,rhs.getdef());
rhs.modifydef(-delta);
return 1;
}
bool skill2(role &rhs){
if(mp<10){
cout<<"mp不足无法使用。"<<endl;
return 0;
}
cout<<name<<"使用了御兽千里。"<<endl;
modifymp(-10);
modifydef(5);
return 1;
}
bool attack(role &rhs){
int tmp=min(rhs.gethp(),max(atk-rhs.getdef(),0));
cout<<name+"攻击了"+rhs.getname()+","+(tmp>0?("并造成了"+to_string(tmp)+"点伤害。"):"但是没有破防。")<<endl;
if(tmp)rhs.modifyhp(-tmp);
return 1;//返回造成伤害的数值
}
private:
string job="御兽师对兽类有着超高的亲和力。智力+5。掌握技能:兽潮,御兽千里。";
void update(){
atk=_atk*STR;
hp=_hp*STR+20;
spd=_spd*DEX;
def=_def*DEX+5;
mp=max(0,_mp-5)*INT;
}
};
class monster:public role{
public:
//生成函数
monster(string name,int STR,int DEX,int INT,int _hp,int _atk,int _def,int _spd,int _mp,int lv=1,int exp=0,int money=0):
role(name,STR,DEX,INT,_hp,_atk,_def,_spd,_mp,lv,exp,money){
update();
}
string getjob(){
return job;
}
bool attack(role &rhs){
int tmp=min(rhs.gethp(),max(atk-rhs.getdef(),0));
cout<<name+"攻击了"+rhs.getname()+","+(tmp>0?("并造成了"+to_string(tmp)+"点伤害。"):"但是没有破防。")<<endl;
if(tmp)rhs.modifyhp(-tmp);
return 1;//返回造成伤害的数值
}
private:
string job="野怪,顾名思义,就是用来刷钱刷经验的。";
void update(){
atk=_atk*STR;
hp=_hp*STR;
spd=_spd*DEX;
def=_def*DEX;
mp=_mp*INT;
}
};
int main(){
string username,keyword;
Sleep(1000);
cout<<"异世界调查团火热招新中。"<<endl;
Sleep(1000);
cout<<"首先,请您登陆您的账户。"<<endl;
Sleep(1000);
cout<<"您的用户名是?"<<endl;
cin>>username;
cout<<username<<",您的密码是?"<<endl;
cin>>keyword;
string key;
string nm;
int a[13];
ifstream f(username);
f>>key;
if(key==keyword){
f>>nm;
for(int i=0;i<13;++i)f>>a[i];
cout<<"登陆成功,"<<nm<<",欢迎回来。"<<endl;
}else if(key==""){
cout<<"用户不存在,已为您创建账户。"<<endl;
Sleep(1000);
cout<<"您角色的名字是?"<<endl;
cin>>nm;
cout<<nm<<",正在为您随机roll属性:"<<endl;
Sleep(1000);
srand(time(NULL));
for(int i=1;i<=3;++i){
a[i]=rand()%10+5;
cout<<"您的"<<label[i]<<"为"<<a[i]<<endl;
Sleep(500);
}
for(int i=4;i<=8;++i){
a[i]=rand()%5+2;
cout<<"您的"<<label[i]<<"为"<<a[i]<<endl;
Sleep(500);
}
cout<<endl;
Sleep(2000);
cout<<"请选择职业:"<<endl;
cout<<"输入1:成为战士。"<<endl;
cout<<"输入2:成为猎人。"<<endl;
cout<<"输入3:成为巫师。"<<endl;
cout<<"输入4:成为毒师。"<<endl;
cout<<"输入5:成为刺客。"<<endl;
cout<<"输入6:成为平民。"<<endl;
cout<<"输入7:成为药师。"<<endl;
cout<<"输入8:成为剑客。"<<endl;
cout<<"输入9:成为御兽师。"<<endl;
cin>>a[0];
if(a[0]==1){
cout<<nm<<",你成为了一名战士,马上就要开始异世界的探险。"<<endl;
}
if(a[0]==2){
cout<<nm<<",你成为了一名猎人,马上就要开始异世界的探险。"<<endl;
}
if(a[0]==3){
cout<<nm<<",你成为了一名巫师,马上就要开始异世界的探险。"<<endl;
}
if(a[0]==4){
cout<<nm<<",你成为了一名毒师,马上就要开始异世界的探险。"<<endl;
}
if(a[0]==5){
cout<<nm<<",你成为了一名刺客,马上就要开始异世界的探险。"<<endl;
}
if(a[0]==6){
cout<<nm<<",你成为了一名平民,马上就要开始异世界的探险。"<<endl;
}
if(a[0]==7){
cout<<nm<<",你成为了一名药师,马上就要开始异世界的探险。"<<endl;
}
if(a[0]==8){
cout<<nm<<",你成为了一名剑客,马上就要开始异世界的探险。"<<endl;
}
if(a[0]==9){
cout<<nm<<",你成为了一名御兽师,马上就要开始异世界的探险。"<<endl;
}
a[9]=1;
a[10]=0;
a[11]=0;
a[12]=0;
}else{
cout<<"密码错误,启动防火墙,断开连接。"<<endl;
Sleep(1000);
exit(0);
}
f.close();
role player;
if(a[0]==1){
player=warrior(nm,a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11]);
}else if(a[0]==2){
player=hunter(nm,a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11]);
}else{
player=wizard(nm,a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11]);
}
Sleep(1000);
cout<<"正在打开新世界的大门..."<<endl;
Sleep(1000);
cout<<"正在启动传送阵..."<<endl;
Sleep(1000);
cout<<"开始传送..."<<endl;
Sleep(1000);
system("cls");
cout<<"欢迎来到新世界!"<<endl;
ofstream sv(username);
while(1){
Sleep(1000);
system("cls");
cout<<"欢迎来到我们在异世界的据点:百科园,在这里你可以:"<<endl;
cout<<"输入1:自动刷怪"<<endl;
cout<<"输入2:手动刷怪"<<endl;
cout<<"输入3:进入商店"<<endl;
cout<<"输入4:分配能力"<<endl;
cout<<"输入0:保存回归"<<endl;
cout<<"注意:如果没有回归旧世界的话,一旦死亡,记录全部会丢失哦~~"<<endl;
Sleep(1000);
cout<<"所以你选择:"<<endl;
int op,num;
cin>>op;
system("cls");
switch(op){
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
player.DEBUG_SHOW();
cout<<"您要提升哪个属性呢?" <<endl;
cout<<"输入1选择力量。" <<endl;
cout<<"输入2选择敏捷。" <<endl;
cout<<"输入3选择智力。" <<endl;
cout<<"输入其他数字返回。"<<endl;
cin>>num;
if(num==1){
cout<<"要增加多少力量?目前有"<<player.getpnt()<<"个可用的自由属性点。"<<endl;
while(cin>>num){
if(num<0||num>player.getpnt()){
cout<<"这个数字不行哦~~"<<endl;
}else{
player.modifySTR(num);
break;
}
}
} else if(num==2){
cout<<"要增加多少敏捷?目前有"<<player.getpnt()<<"个可用的自由属性点。"<<endl;
while(cin>>num){
if(num<0||num>player.getpnt()){
cout<<"这个数字不行哦~~"<<endl;
}else{
player.modifySTR(num);
break;
}
}
}else if(num==3){
cout<<"要增加多少智力?目前有"<<player.getpnt()<<"个可用的自由属性点。"<<endl;
while(cin>>num){
if(num<0||num>player.getpnt()){
cout<<"这个数字不行哦~~"<<endl;
}else{
player.modifySTR(num);
break;
}
}
}
Sleep(1000);
break;
case 0:
cout<<"保存中~~"<<endl;
sv<<keyword<<endl;
sv<<nm<<endl;
for(int i=0;i<13;++i)sv<<a[i]<<endl;
cout<<"保存完毕。"<<endl;
Sleep(1000);
cout<<"启动传送阵。"<<endl;
Sleep(1000);
cout<<"3~~"<<endl;
Sleep(1000);
cout<<"2~~"<<endl;
Sleep(1000);
cout<<"1~~"<<endl;
Sleep(1000);
system("cls");
cout<<"---------------Over--------------"<<endl;
Sleep(500);
sv.close();
exit(0);
break;
default:
cout<<"404,你似乎来到了没有知识的荒原~~"<<endl;
Sleep(500);
cout<<"返回调查据点吧~~"<<endl;
break;
}
}