本文目录一览:
源代码下载:
/d/file/gt/2023-09/vvddxa5p0cw \"control.h\"#include \"image.h\"#include \"function.h\"int main(){ gamestart(); return 0;}//////////image.h//////////#ifndef IMAGE_H_INCLUDED#define IMAGE_H_INCLUDEDvoid startimage();//开始画面string newname();//玩家姓名void selectmap(string name);//选择地图void map1(string name);//土门客栈地图void drugmap();//药店void weaponmap();//武器店void hunback();//浑天教背景void wuback();//武林盟背景void bossback(string na);//秦义绝背景介绍void fightselect();//战斗选择void showskill();//展示技能void gameover();//游戏结束 战败void exitimage();//退出游戏#endif // IMAGE_H_INCLUDED//////////image.cpp//////////#include \"control.h\"#include \"image.h\"//开始界面void startimage(){ moveCursor (32,5); cout<<\"屌 丝 剑 灵 大 作 战\"; moveCursor (35,7); cout<<\"[1] 新的开始\"; moveCursor (35,9); cout<<\"[2] 旧的回忆\"; moveCursor (35,11); cout<<\"[3] 离开游戏\";}string newname(){ string name; system(\"cls\"); moveCursor (32,3); cout<<\"屌 丝 剑 灵 大 作 战\"; moveCursor (28,9); cout<<\"大侠请输入姓名:\"; cin>>name; return name;}void selectmap(string name){// string name=\"test\"; system(\"cls\"); moveCursor (32,3); cout<<\"屌 丝 剑 灵 大 作 战\"; moveCursor (35,4); cout<<\"洪门弟子:\"<<name; moveCursor (15,7); cout<<\"[1] 土门客栈 [2] 修炼谷 [3] 挑战BOSS [4] 储存进度\";}void map1(string name){ system(\"cls\"); moveCursor (32,3); cout<<\"屌 丝 剑 灵 大 作 战\"; moveCursor (35,4); cout<<\"洪门弟子:\"<<name; moveCursor (30,7); cout<<\"[1]查看状态 [2]百草堂\"; moveCursor (30,9); cout<<\"[3]铁匠铺 [0]返回上一页\";}//注意要-1void drugmap(){ system(\"cls\"); moveCursor (32,3); cout<<\"欢迎来到百草堂\"; moveCursor (32,5); cout<<\"请问大侠有什么需要的?\"; moveCursor (30,7); cout<<\"[1] 炸鸡 恢复300HP 300元\"; moveCursor (30,8); cout<<\"[2] 烤鸭 恢复500HP 500元\"; moveCursor (30,9); cout<<\"[3] 鼠儿果 恢复50MP 100元\"; moveCursor (30,10); cout<<\"[4] 灵芝 恢复100MP 200元\"; moveCursor (30,12); cout<<\"[0] 返回上一级\";}//注意不用-1void weaponmap(){ system(\"cls\"); moveCursor (32,3); cout<<\"欢迎来到铁匠铺\"; moveCursor (32,5); cout<<\"请问大侠有什么需要的?\"; moveCursor (30,7); cout<<\"[1] 卓越洪门剑 100攻击力 1000元\"; moveCursor (30,8); cout<<\"[2] 卓越千魂剑 200攻击力 2000元\"; moveCursor (30,9); cout<<\"[3] 卓越妖魔剑 300攻击力 3000元\"; moveCursor (30,10); cout<<\"[4] 极限万魂剑 400攻击力 4000元\"; moveCursor (30,12); cout<<\"[0] 返回上一级\";}void hunback(){ system(\"cls\"); moveCursor (10,5); cout<<\"大侠,大侠快救我,浑天教来了!!!\"; moveCursor (10,7); cout<<\"小姐莫慌张,请慢慢道来.话说,这浑天教是??\"; moveCursor (10,9); cout<<\"大侠是外地人吧,您有所不知,浑天教那些2b小青年是最近一段时间出现在\"; moveCursor (10,10); cout<<\"土门客栈附近的小混混,经常抢路人的银鳞胸甲,调戏小姑娘.\"; moveCursor (10,11); cout<<\"大侠可要帮我们做主啊!!\"; moveCursor (10,13); cout<<\"岂有此理,光天化日,朗朗乾坤,竟有此种2b青年在土门客栈附近撒野.\"; moveCursor (10,14); cout<<\"姑娘莫怕,待我收拾了那帮混混就去你家找你!!\"; moveCursor (10,16); cout<<\"大侠请当心!\"; moveCursor (45,18); system(\"pause\");}void wuback(){ system(\"cls\"); moveCursor (10,3); cout<<\"前面那个!!给我站住!!\"; moveCursor (10,5); cout<<\"嗯?你们是.....??\"; moveCursor (10,7); cout<<\"我们是行侠仗义专门捕杀浑天教徒小混混的武林盟\"; moveCursor (10,8); cout<<\"听说你最近在打附近的浑天教徒?都已经砍到10级了啊!\"; moveCursor (10,10); cout<<\"哦,你们好.是呀,浑天教烧杀掳掠无恶不作,我实在看不下去.\"; moveCursor (10,12); cout<<\"哎呦喂,说的和真的似的.小子,实话告诉你,你抢了我们的生意.\"; moveCursor (10,13); cout<<\"我们武林盟自古以捕杀浑天教,收取村民供养为生\"; moveCursor (10,14); cout<<\"最近因为你的出现村民都不来交贡品了,我劝你少管闲事,否则...\"; moveCursor (10,16); cout<<\"否则怎样?我今天还就把这闲事管到底了!你们和那些败类有什么区别?!\"; moveCursor (10,17); cout<<\"多说无益,拔剑吧!....呀啊,看招!!\"; moveCursor (10,19); cout<<\"哼,敬酒不吃,兄弟们上!!\"; moveCursor (47,21); system(\"pause\");}void bossback(string na){ system(\"cls\"); moveCursor (10,5); cout<<na<<\",你来了啊,没想到你能活到现在啊!\"; moveCursor (10,7); cout<<\"哼,秦义绝,我今天就是来找你报仇的,我会让你后悔当年没杀死我!!\"; moveCursor (10,9); cout<<\"呵呵,当年洪玄公那个傻老头为了能让你这个乖徒儿活下去\"; moveCursor (10,10); cout<<\"竟然跪下来求我.哈哈哈,大名鼎鼎的力王,竟然为了一个废物来求我\"; moveCursor (10,11); cout<<\"简直是笑话!我本想放你一条生路,你竟然自己过来送死.\"; moveCursor (10,13); cout<<\"秦义绝,少说废话,今天我就要为师傅们报仇雪恨!!!\"; moveCursor (10,14); cout<<\"拿命来!!!!\"; moveCursor (45,17); system(\"pause\");}void fightselect(){ moveCursor (0,18); cout<<\"[1]攻击 [2]技能 [3]防御 [4]包裹\"<<endl;}void showskill(){ moveCursor (0,18); cout<<\"等等啊先别打,让我想想扔哪个技能! \"<<endl; cout<<\"[1]天罡战气 攻击力增加20点,持续两回合 消耗40MP\"<<endl; cout<<\"[2]绝对防御 抵挡下一次攻击,持续两回合 消耗60MP\"<<endl; cout<<\"[0]返回\"<<endl;}void gameover(){ system(\"cls\"); moveCursor (32,7); cout<<\"胜败乃兵家常事,大侠请重新来过!!!!!\"; moveCursor (40,9); system(\"pause\"); exit(0);}//退出界面void exitimage(){ system(\"cls\"); cout<<\" ▅▅▅▅▅▅▅ ▅▅▅▅▅ ▅ \"<<endl; cout<<\" ▅▅█▅▅ █ ▅ █ █ \"<<endl; cout<<\" █▅█▅█ █ █ █ █ \"<<endl; cout<<\" ▅█▅█▅█▅ ◢◤▋ ▅ ▼\"<<endl; cout<<\" █ ▅█ ██◤ ███ ●\"<<endl;}//////////function.h//////////#ifndef FUNCTION_H_INCLUDED#define FUNCTION_H_INCLUDEDvoid gamestart();//游戏总控制整合#endif // FUNCTION_H_INCLUDED//////////funtion.cpp//////////#include \"control.h\"#include \"image.h\"#include \"function.h\"void gamestart(){ //PlaySound(\"my soul.wav\", NULL,SND_FILENAME | SND_PURGE | SND_NODEFAULT | SND_ASYNC | SND_LOOP); //初始化 char selectnum;//一级控制 char selectnum2;//二级控制 char selectnum3;//三级控制 int skillresult=3; int drugresult=3; int flaghuntian=0; int flagwulin=0; int flagboss=0; int deathflag1=0; int deathflag2=0; int level=0; int money=0; int exp=0; string name; character* cha=0; setCursorVisible (0);// setWindowTitle (\"屌 丝 剑 灵 大 作 战-XiaoT\");//游戏开始 while(1) { startimage(); selectnum=getch(); if(selectnum=='1'||selectnum=='2'||selectnum=='3') break; }//读档 if(selectnum=='2') { cha=new character; cha->readdata(); name=cha->getname(); goto A; }//退出 if(selectnum=='3') exitimage();//游戏开始 if(selectnum=='1') { name=newname(); cha=new character(name); A: while(1) { selectmap(name); selectnum=getch(); switch(selectnum) { //土门客栈场景 case '1': { while(1) { map1(name); selectnum2=getch(); //[1]查看状态 if(selectnum2=='1') { system(\"cls\"); while(1) { cha->showall(); cha->showdrug(); selectnum3=getch(); if(selectnum3=='0') break; if(selectnum3>='1'&&selectnum3<='4') { cha->usedrug(selectnum3-49); system(\"cls\"); } } continue; } //[2]百草堂 买药 if(selectnum2=='2') { while(1) { drugmap(); cha->showmoney(); selectnum3=getch(); if(selectnum3>='1'&&selectnum3<='4') cha->buydrug(selectnum3-49); if(selectnum3=='0') break; } } //[3]铁匠铺 买武器 if(selectnum2=='3') { while(1) { weaponmap(); cha->showmoney(); selectnum3=getch(); if(selectnum3>='1'&&selectnum3<='4') cha->buyweapon(selectnum3-48); if(selectnum3=='0') break; } } if(selectnum2=='0') break; } selectnum2=0; selectnum3=0; continue; } //小怪 case '2': { level=cha->getrank(); if(level<10) { if(flaghuntian==0) { flaghuntian++; hunback(); } system(\"cls\"); huntian* hun=new huntian(); exp=hun->getexp(); money=hun->getmoney(); while(1) { //战斗界面 hun->showall(); cha->showall(); cout<<endl; fightselect(); selectnum2=getch(); //[1]普通攻击 if(selectnum2=='1') { cha->kill(*hun); deathflag1=cha->ifdeath(); deathflag2=hun->ifdeath(); //玩家死亡 if(deathflag1==1) gameover(); //怪物死亡 if(deathflag2==1) { deathflag2=0; cha->rankup(exp,money); cha->reskill(); break; } } //[2]技能 if(selectnum2=='2') { showskill(); while(1) { selectnum3=getch(); if(selectnum3=='1'||selectnum3=='2') { skillresult=cha->useskill(selectnum3-49); if(skillresult==1) cha->skillkill(*hun,selectnum3-49); break; } if(selectnum3=='0') break; } } //[3]防御 if(selectnum2=='3') { cha->defence(); } //[4]包裹 if(selectnum2=='4') { cha->showpack(); while(1) { selectnum3=getch(); if(selectnum3>='1'||selectnum3<='4') { drugresult=cha->usedrug(selectnum3-49); if(drugresult==1) cha->drugkill(*hun); break; } if(selectnum3=='0') break; } } } } if(level>=10) { if(flagwulin==0) { flagwulin++; wuback(); } system(\"cls\"); wulin* wu=new wulin(); exp=wu->getexp(); money=wu->getmoney(); while(1) { //战斗界面 wu->showall(); cha->showall(); cout<<endl; fightselect(); selectnum2=getch(); //[1]普通攻击 if(selectnum2=='1') { cha->kill(*wu); deathflag1=cha->ifdeath(); deathflag2=wu->ifdeath(); //玩家死亡 if(deathflag1==1) gameover(); //怪物死亡 if(deathflag2==1) { deathflag2=0; cha->rankup(exp,money); cha->reskill(); break; } } //[2]技能 if(selectnum2=='2') { showskill(); while(1) { selectnum3=getch(); if(selectnum3=='1'||selectnum3=='2') { skillresult=cha->useskill(selectnum3-49); if(skillresult==1) cha->skillkill(*wu,selectnum3-49); break; } if(selectnum3=='0') break; } } //[3]防御 if(selectnum2=='3') { cha->defence(); } //[4]包裹 if(selectnum2=='4') { cha->showpack(); while(1) { selectnum3=getch(); if(selectnum3>='1'||selectnum3<='4') { drugresult=cha->usedrug(selectnum3-49); if(drugresult==1) cha->drugkill(*wu); break; } if(selectnum3=='0') break; } } } } continue; } //boss case '3': { if(flagboss==0) { flagboss++; bossback(name); } system(\"cls\"); boss* qin=new boss(); exp=qin->getexp(); money=qin->getmoney(); while(1) { //战斗界面 qin->showall(); cha->showall(); cout<<endl; fightselect(); selectnum2=getch(); //[1]普通攻击 if(selectnum2=='1') { cha->kill(*qin); deathflag1=cha->ifdeath(); deathflag2=qin->ifdeath(); //玩家死亡 if(deathflag1==1) gameover(); //怪物死亡 if(deathflag2==1) { deathflag2=0; cha->rankup(exp,money); cha->reskill(); break; } } //[2]技能 if(selectnum2=='2') { showskill(); while(1) { selectnum3=getch(); if(selectnum3=='1'||selectnum3=='2') { skillresult=cha->useskill(selectnum3-49); if(skillresult==1) cha->skillkill(*qin,selectnum3-49); break; } if(selectnum3=='0') break; } } //[3]防御 if(selectnum2=='3') { cha->defence(); } //[4]包裹 if(selectnum2=='4') { cha->showpack(); while(1) { selectnum3=getch(); if(selectnum3>='1'||selectnum3<='4') { drugresult=cha->usedrug(selectnum3-49); if(drugresult==1) cha->drugkill(*qin); break; } if(selectnum3=='0') break; } } } continue; } //存档 case '4': { cha->savedata(); system(\"pause\"); continue; } } } }}//////////control.h//////////#include<iostream>#include <windows.h>#include <mmsystem.h>//#pragma comment(lib, \"winmm.lib\")#include <conio.h>#include <iomanip>#include <fstream>#include <ctime>#ifndef CONTROL_H_INCLUDED#define CONTROL_H_INCLUDEDusing namespace std;//功能函数int getMaxSize ();void moveCursor (int, int);//移动光标void setWindowTitle (char*);//设置标题void setCursorVisible (int );//光标隐藏class huntian;//人物类class character{ //人物属性 protected: string name; int rank; int hpmax; int hpnow; int mpmax; int mpnow; int expmax; int expnow; int money; int atk; string weaponname[5]; int weapon[5]; int weaponhold;//持有哪个武器 int weaponprice[5]; int drugnum[4]; int drugprice[4]; string drugname[4]; string drugint[4];//药品介绍 int drugaffect[4]; string skillname[2]; int skillspend[2]; int skillstate[2]; int skilllast;//技能持续两回合 string skillint[2];//技能介绍 public: character (); character(string na);//构造函数初始化//展示一些值 void showall(); void showmoney(); void showpack(); void showdrug();//获取一些值 int getrank(); int getexp(); int getmoney(); string getname();//功能函数 void buydrug(int num); void buyweapon(int num); void savedata(); int readdata(); void atkup();//提升攻击力 int ifdeath();//判断死亡 void rankup(int exp,int mon);//升级 int useskill(int sel);//使用技能 void reskill();//重置技能 int usedrug(int sel);//吃药 void defence();//防御//友元 void kill(huntian &t);//攻击函数 void skillkill(huntian &t,int key);//使用技能回合设定 void drugkill(huntian &t);//吃药回合设定};//怪物//浑天教徒class huntian : public character{ public: huntian(); void showall(); friend void character::kill(huntian &t); friend void character::skillkill(huntian &t,int key); friend void character::drugkill(huntian &t);};//武林盟class wulin :public huntian{ public: wulin();};//bossclass boss :public huntian{ public: boss(); void showall();};#endif // CONTROL_H_INCLUDED//////////control.cpp//////////#include \"control.h\"//新建人物及其初始化character::character(){}character::character(string na){ name=na; rank=1; hpnow=hpmax=500; mpmax=mpnow=100; expmax=100; expnow=0; money=450; weaponname[0]=\"洪门断剑\"; weaponname[1]=\"卓越洪门剑\"; weaponname[2]=\"卓越千魂剑\"; weaponname[3]=\"卓越妖魔剑\"; weaponname[4]=\"极限万魂剑\"; weaponprice[1]=1000; weaponprice[2]=2000; weaponprice[3]=3000; weaponprice[4]=4000; weapon[0]=50; for(int i=1;i<5;i++) { weapon[i]=i*100; } weaponhold=0; atk=10+weapon[weaponhold]+(rank-1)*2; //初始化药品数量 for(int i=0;i<4;i++) { drugnum[i]=0; } drugname[0]=\"炸鸡\"; drugname[1]=\"烤鸭\"; drugname[2]=\"鼠儿果\"; drugname[3]=\"灵芝\"; drugint[0]=\"恢复300HP\"; drugint[1]=\"恢复500HP\"; drugint[2]=\"恢复50MP\"; drugint[3]=\"恢复100MP\"; drugprice[0]=300; drugprice[1]=500; drugprice[2]=100; drugprice[3]=200; drugaffect[0]=300; drugaffect[1]=500; drugaffect[2]=50; drugaffect[3]=100; skillname[0]=\"天罡战气\"; skillname[1]=\"绝对防御\"; skillspend[0]=40; skillspend[1]=60; skillstate[0]=0; skillstate[1]=0; skilllast=2; skillint[0]=\"攻击力增加20点,持续两回合\"; skillint[1]=\"抵挡下一次攻击,持续两回合\";}//显示人物状态void character::showall(){ cout<<\"-----------------------------------------------------------------------\"<<endl; cout<<\"名称:\"<<setw(10)<<name<<\" \"<<\"等级:\"<<setw(5)<<rank<<endl; cout<<\"-----------------------------------------------------------------------\"<<endl; cout<<\"HP:\"<<setw(6)<<hpnow<<\"/\"<<setw(6)<<hpmax<<\" \" <<\" MP:\"<<setw(6)<<mpnow<<\"/\"<<setw(6)<<mpmax<<endl; cout<<\"-----------------------------------------------------------------------\"<<endl; cout<<\"攻击:\"<<setw(6)<<atk<<\" \" <<\"武器:\"<<setw(10)<<weaponname[weaponhold]<<endl; cout<<\"-----------------------------------------------------------------------\"<<endl; cout<<\"金币: \"<<setw(6)<<money<<\" \" <<\"经验:\"<<setw(10)<<expnow<<\"/\"<<setw(10)<<expmax<<endl; cout<<\"-----------------------------------------------------------------------\"<<endl;}void character::showdrug(){ for(int i=0;i<4;i++) { if(drugnum[i]!=0) cout<<\"[\"<<i+1<<\"]\"<<\" \"<<drugname[i]<<\" \"<<drugnum[i]<<\"个 \"<<endl; } cout<<\"[0] 返回\"<<endl; cout<<\"-----------------------------------------------------------------------\"<<endl;}void character::buydrug(int num){ if(drugprice[num]<=money) { money-=drugprice[num]; drugnum[num]++; moveCursor (26,14); cout<<\"你买到了1个\"<<drugname[num]<<\",花掉了\"<<drugprice[num]<<\"元\"; Sleep(600); } else { moveCursor (26,14); cout<<\"您的金币不够\"; Sleep(600); }}void character::buyweapon(int num){ if (weaponprice[num]<=money&&num!=weaponhold) { money-=weaponprice[num]; weaponhold=num; moveCursor (26,14); cout<<\"你已经装备了\"<<weaponname[num]<<\",花掉了\"<<drugprice[num]<<\"元\"; atk=10+weapon[weaponhold]+(rank-1)*2; moveCursor (26,15); cout<<\"当前攻击力为\"<<atk; Sleep(850); } else if(weaponprice[num]<=money) { moveCursor (26,14); cout<<\"你已经拥有该装备了,无需再次购买!\"; Sleep(600); } else { moveCursor (26,14); cout<<\"您的金币不够\"; Sleep(600); }}//小值的取得void character::showmoney(){ moveCursor (0,0); cout<<\"您有\"<<money<<\"元\";}int character::getrank(){ return rank;}int character::getexp(){ return expnow;}int character::getmoney(){ return money;}string character::getname(){ return name;}//技能与功能void character::atkup(){ atk+=20;}//死了返回1; 活着返回0;int character::ifdeath(){ if(hpnow==0) return 1; else return 0;}//重置技能void character::reskill(){ for(int i=0;i<2;i++) skillstate[i]=0;}//升级void character::rankup(int exp,int mon){ srand(time(0)); //打怪得奖励 if(exp!=0) { //10%得红药或者蓝药 if(rand()%10==0) { drugnum[0]++; cout<<\"获得一个\"<<drugname[0]<<endl; Sleep(800); } if(rand()%10==1) { drugnum[2]++; cout<<\"获得一个\"<<drugname[2]<<endl; Sleep(800); } //加属性 expnow+=exp; money+=mon; if(expnow>=expmax) { rank++; expnow-=expmax; expmax+=50; atk=10+weapon[weaponhold]+(rank-1)*3; hpmax+=rank*100*0.75; hpnow=hpmax; mpmax+=rank*20*0.55; mpnow=mpmax; cout<<\"恭喜!你升级到了 \"<<rank<<\"级\"<<endl; Sleep(1200); } }}void character::kill(huntian &t){ int tmpatk=0; int playerdamage; int def=0; int monsterdamage; //技能效果 if(skillstate[0]>0) { tmpatk=20; skillstate[0]--; } if(skillstate[1]>0) { def=t.atk; skillstate[1]--; } hpnow=hpnow-t.atk+def; if(hpnow<=0) hpnow=0; t.hpnow=t.hpnow-atk-tmpatk; if(t.hpnow<=0) t.hpnow=0; moveCursor (0,19); playerdamage=atk+tmpatk; tmpatk=0; cout<<\"我凶残得一刀砍掉了 \"<<playerdamage<<\" 点血量\"; moveCursor (0,20); monsterdamage=t.atk-def; def=0; cout<<\"对手重重得咬了我一口 \"<<monsterdamage<<\" 点血量\"<<endl; Sleep(1000);}void character::skillkill(huntian &t,int key){ int def=0; int monsterdamage; //技能效果 if(skillstate[0]>0&&key!=0) { skillstate[0]--; } if(skillstate[1]>0&&key!=1) { def=t.atk; skillstate[1]--; } hpnow=hpnow-t.atk+def; if(hpnow<=0) hpnow=0; moveCursor (0,23); monsterdamage=t.atk-def; def=0; cout<<\"对手重重得咬了我一口 \"<<monsterdamage<<\" 点血量\"; Sleep(1100);}//1使用成功 0使用失败int character::useskill(int sel){ if(sel==0||sel==1) { if(skillspend[sel]<=mpnow) { if(skillstate[sel]==0) { skillstate[sel]=skilllast; mpnow-=skillspend[sel]; cout<<\"技能使用成功!\"<<endl; Sleep(600); return 1; } else { cout<<\"你这个技能的状态还在持续!\"<<endl; Sleep(600); return 0; } } else { cout<<\"你的魔力值不足!\"<<endl; Sleep(600); return 0; } } return 2;}void character::defence(){ //技能消耗一回合 if(skillstate[0]>0) { skillstate[0]--; } if(skillstate[1]>0) { skillstate[1]--; } cout<<\"我对他放电,竟然抵挡住了一次攻击!!!!!\"<<endl; Sleep(900);}void character::showpack(){ moveCursor (0,18); for(int i=0;i<4;i++) { cout<<\"[\"<<i+1<<\"]\"<<drugname[i]<<\" \"<<drugnum[i]<<\"个 \"<<drugint[i]<<\" \"<<endl; } cout<<\"[0]返回\"<<endl;}//1 成功 0失败int character::usedrug(int sel){ //hp if(sel>=0&&sel<=2) { if(drugnum[sel]>0) { drugnum[sel]--; hpnow+=drugaffect[sel]; if(hpnow>hpmax) hpnow=hpmax; cout<<drugname[sel]<<\"使用成功!\"<<endl; Sleep(600); return 1; } else { cout<<\"你没有这个物品!\"<<endl; Sleep(600); return 0; } } //mp if(sel>=3&&sel<=4) { if(drugnum[sel]>0) { drugnum[sel]--; mpnow+=drugaffect[sel]; if(mpnow>mpmax) mpnow=mpmax; cout<<drugname[sel]<<\"使用成功!\"<<endl; Sleep(600); return 1; } else { cout<<\"你没有这个物品!\"<<endl; Sleep(600); return 0; } } return 2;}void character::drugkill(huntian &t){ int def=0; int monsterdamage; //技能消耗一回合 if(skillstate[0]>0) { skillstate[0]--; } if(skillstate[1]>0) { def=t.atk; skillstate[1]--; } hpnow=hpnow-t.atk+def; if(hpnow<=0) hpnow=0; monsterdamage=t.atk-def; def=0; cout<<\"对手重重得咬了我一口 \"<<monsterdamage<<\" 点血量\"; Sleep(1100);}//怪物设定huntian::huntian(){ name=\"浑天教混混\"; srand(time(0)); hpnow=rand()%260+245; mpnow=10; expnow=100; atk=rand()%30+30; money=450;}void huntian::showall(){ system(\"cls\"); cout<<\"-----------------------------------------------------------------------\"<<endl; cout<<\"名称:\"<<setw(10)<<name<<\" \"<<endl; cout<<\"-----------------------------------------------------------------------\"<<endl; cout<<\"HP:\"<<setw(6)<<hpnow<<\" \"<<\" MP:\"<<setw(6)<<mpnow<<endl; cout<<\"-----------------------------------------------------------------------\"<<endl; cout<<\"攻击:\"<<setw(6)<<atk<<\" \"<<endl; cout<<\"-----------------------------------------------------------------------\"<<endl;}wulin::wulin(){ name=\"武林盟败类\"; srand(time(0)); hpnow=rand()%100+695; mpnow=100; expnow=250; atk=rand()%140+70; money=750;}boss::boss(){ name=\"秦 义 绝\"; srand(time(0)); hpnow=rand()%2100+1950; mpnow=1000; expnow=1000; atk=rand()%315+300; money=1750;}void boss::showall(){ system(\"cls\"); cout<<\"-----------------------------------------------------------------------\"<<endl; cout<<\"名称:\"<<setw(10)<<name<<\" \" <<\"小样,就你还敢挑战我秦义绝?? 赶紧乖乖受死吧~~~\"<<endl; cout<<\"-----------------------------------------------------------------------\"<<endl; cout<<\"HP:\"<<setw(6)<<hpnow<<\" \"<<\" MP:\"<<setw(6)<<mpnow<<endl; cout<<\"-----------------------------------------------------------------------\"<<endl; cout<<\"攻击:\"<<setw(6)<<atk<<\" \"<<endl; cout<<\"-----------------------------------------------------------------------\"<<endl;}//存档void character::savedata(){ fstream saveout; saveout.open(\"save.sav\",ios::out); saveout<<name<<\" \"<<rank<<\" \"<<hpnow<<\" \"<<hpmax<<\" \"<<mpnow<<\" \"<<mpmax<<endl; saveout<<atk<<endl; saveout<<expnow<<\" \"<<expmax<<\" \"<<money<<\" \"<<weaponhold<<endl; for(int i=0;i<4;i++) { saveout<<drugnum[i]<<\" \"<<drugname[i]<<\" \"<<drugprice[i] <<\" \"<<drugint[i]<<\" \"<<drugaffect[i]<<endl; } for(int i=0;i<5;i++) { saveout<<weapon[i]<<\" \"<<weaponname[i]<<\" \"<<weaponprice[i]<<endl; } for(int i=0;i<2;i++) { saveout<<skillname[i]<<\" \"<<skillspend[i]<<\" \" <<skillstate[i]<<\" \"<<skillint[i]<<endl; } saveout<<skilllast<<endl; saveout.close(); system(\"cls\"); moveCursor (28,7); cout<<\"数据保存成功!\"<<endl;}//读档int character::readdata(){ fstream savein; savein.open(\"save.sav\",ios::in); if(!savein) { system(\"cls\"); moveCursor (28,7); cout<<\"文件不存在,或打开失败!\"<<endl; return 0; } savein>>name>>rank>>hpnow>>hpmax>>mpnow>>mpmax; savein>>atk; savein>>expnow>>expmax>>money>>weaponhold; for(int i=0;i<4;i++) { savein>>drugnum[i]>>drugname[i]>>drugprice[i] >>drugint[i]>>drugaffect[i]; } for(int i=0;i<5;i++) { savein>>weapon[i]>>weaponname[i]>>weaponprice[i]; } for(int i=0;i<2;i++) { savein>>skillname[i]>>skillspend[i]>>skillstate[i]>>skillint[i]; } savein>>skilllast; savein.close(); cout<<\"数据读取成功!\"<<endl; return 1;}//返回一行最大可以容纳的字符数int getMaxSize () {HANDLE t_handle = GetStdHandle (STD_OUTPUT_HANDLE); CONSOLE_SCREEN_BUFFER_INFO t_info; GetConsoleScreenBufferInfo (t_handle, &t_info);return t_info.dwSize.X;}//将输出符号定位到第[p_y]行第[p_x]个字符上。void moveCursor (int p_x, int p_y) {int t_max = getMaxSize ();p_x = p_x < 1 ? 1 : (p_x >= t_max ? t_max - 1: p_x);p_y = p_y < 1 ? 1 : p_y;COORD t_pos;t_pos.X = p_x - 1;t_pos.Y = p_y - 1;HANDLE t_handle = GetStdHandle (STD_OUTPUT_HANDLE);SetConsoleCursorPosition (t_handle, t_pos);}//设置光标是否可见,0为不可见,其它数字为可见void setCursorVisible (int p_visitble) {HANDLE t_handle = GetStdHandle (STD_OUTPUT_HANDLE);CONSOLE_CURSOR_INFO t_info;GetConsoleCursorInfo (t_handle, &t_info);t_info.bVisible = p_visitble == FALSE ? FALSE : TRUE;SetConsoleCursorInfo (t_handle, &t_info);}//设置窗口标题,可以如下调用: setWindowTitle (\"窗口标题\");void setWindowTitle (char* p_title) {SetConsoleTitle (p_title);}
大家好,这里是正惊游戏,我是正惊小弟。
前面向大家介绍了剑灵中的两大人气妹子,很多人反映了,作为大众女神,我们的“兰兰”(火炮兰)怎么能够缺席呢?毕竟曾经被火炮兰给虐得那么惨,同时又被她萝莉萌趣的一面的给深深吸引。
既然如此,今天我们就展开讲讲我们玩家心中的人气女星“火炮兰”吧,不知道大家对火炮兰的身世知道多少呢?
登场就是人气天花板
相较于像秦义绝这样一开始就贯穿主线的NPC而言,我们的兰兰戏份并不多。火炮兰首次登场是在45版本水月英雄副本“海蛇补给基地”中,作为最终的反派萝莉BOSS亮相,与玩家对立。
一身水手服,搭配上黑白相间的双马尾,相许不少玩家都为了在副本中刷出火炮兰同款双马尾,没少挨揍。
此时的火炮兰的立场是在冲角团平东舰队,而这支舰队是海岛集团冲角团的一支,由东天霸带领。火炮兰的身份就是东天霸的孙女,也是平东舰队的基地管理员。
估计策划也没想到,只是支线的一个妹子的登场,作为辅菜的火炮兰竟有如此杀伤力,直接让这个副本BOSS变成了大众老婆。甚至成为代表剑灵的一个符号,和大众记忆。
许多玩家在回忆起剑灵时,都会发出:兰兰,我想你的感慨……
或许真是火炮兰的影响太过深远,策划在后面的剧情中,直接把火炮兰的权重提高,提到主线剧情来。
从配角成为主线
在主线的第六幕中,火炮兰第一次进入了洪门大侠的故事线之中。
在主角击败秦义绝并将其收为弟子后,冲角团平东舰队进攻竹林村,寻求主角的帮助。看这一幕小弟挺想吐槽的,用这种方式寻求帮助,也是够新奇的。
火炮兰找到主角后表示,平东舰队基地被黑龙教入侵,爷爷东天霸殿后被困,希望能与浊气相抗衡的主角出手相助。
“老婆”有难,怎能袖手旁观,主角和火炮兰返回平东舰队后,携手打败了被魔化的东天霸,迎来了温馨的爷孙相聚的画面。这段剧情也被记录在“沉默的海盗船”中。
当然,故事到这里并没有结束,作为大众老婆的火炮兰的身世,在此刻才被补足。不得不说,我们的兰兰真的很有牌面。
东天霸之所以被黑龙教所掌控的浊气入侵,牵扯到了过往的诸多恩怨,其中也包括火炮兰的身世与童年……
从废墟中被捡到的婴儿
事实上,火炮兰与东天霸并无血缘关系,她只是东天霸在废墟中捡到的女婴。
在剑灵官方外传漫画,火炮兰姐姐篇的第三章,就将火炮兰的的身世做了说明。
当年的东天霸因为孙女病重(这个孩子在漫画中并没有体现具体,也不知道是儿子、女儿,还是孙子或者孙女,姑且就当孙女吧),生命垂危,寻医无果后,东天霸也不知道从哪里听到黑龙教能够拯救孩子的性命的消息,于是就上门求救了。
而要救孩子的代价,是要将灵魂献给魔皇,东天霸对这份未知力量的恐惧,不敢献出自己的灵魂,直接导致孙女病死,这件事成了东天霸的一个解不开的心结。
在某天,东天霸路过一个因浊气袭击而横尸遍野的村庄时,突然听到了婴儿的啼哭声,而后在一处废墟中找到了正在啼哭的“女婴”。
这个女婴正是火炮兰。仿佛命运安排,东天霸失去自己的亲孙女,冥冥中上天又给他送来了一个。
对于刚刚失去亲人的东天霸来说,火炮兰的出现就是他的救赎,同样也是一种恩赐,于是他将女婴带回来冲角团。
火炮兰之所以会出现在废墟中,并不是被遗弃,而是被她的姐姐藏在这里,而姐姐为了保护火炮兰,独自引开了灾民,当返回时,已经发现火炮兰不见了。
当然,这是后话了。
爱玩炮的兰兰
在东天霸捡到火炮兰的时候,包裹着女婴的红布上写着“火兰”二字,所以火炮兰最初的名字是叫火兰。
那后面怎么会多出一个炮字呢?
火兰被东天霸带回去后,从小备受舰队船员宠爱,在火兰逐渐长大后,展示出了对枪炮的超强天赋,因此获得了一个响亮的外号——火炮兰。
爷孙情谊感人肺腑
火炮兰的成长并不是一帆风,或许是受到浊气的影响,火炮兰从小体弱多病。
在一次重病时,东天霸带着火炮兰寻找黑龙教求救,这一次东天霸毅然将灵魂卖给了黑龙教,以此换区火炮兰的健康。
在仪式完成后,火炮兰在黑暗力量的影响下,以一只眼睛作为代价,保住了性命,另外半边的头发也从黑变白,这就是火炮兰出场时的形象。
彼此的救赎
东天霸与火炮兰虽然没有血缘关系,但他们也算是互相救赎了,火炮兰的出现,抚平东天霸的内心的创伤;而东天霸以灵魂的代价,换回了火炮兰的生命。
命运将他们拴在了一起,成就了一份感人的爷孙情。为了救火炮兰,东天霸体内则埋下了随时可能引爆的黑暗之种(主要是看策划想让它什么时候爆)。
当然,官方补足了火炮兰的剧情后,其实也埋下了另外一个伏笔,那就是火炮兰的姐姐“烟花玲”,在后面的剧情中,烟花玲也闪亮登场,来寻找失散多年的妹妹了……
小弟有话说: 受限于篇幅,小弟就不展开多说了,后续大家如果有感兴趣,小弟在额外做一篇烟花玲的介绍。
一个正惊问题:你还记得你被“兰兰老婆”虐过几遍吗?
大家好,这里是正惊游戏,我是正惊小弟。
前面向大家介绍了剑灵中的两大人气妹子,很多人反映了,作为大众女神,我们的“兰兰”(火炮兰)怎么能够缺席呢?毕竟曾经被火炮兰给虐得那么惨,同时又被她萝莉萌趣的一面的给深深吸引。
既然如此,今天我们就展开讲讲我们玩家心中的人气女星“火炮兰”吧,不知道大家对火炮兰的身世知道多少呢?
登场就是人气天花板
相较于像秦义绝这样一开始就贯穿主线的NPC而言,我们的兰兰戏份并不多。火炮兰首次登场是在45版本水月英雄副本“海蛇补给基地”中,作为最终的反派萝莉BOSS亮相,与玩家对立。
一身水手服,搭配上黑白相间的双马尾,相许不少玩家都为了在副本中刷出火炮兰同款双马尾,没少挨揍。
此时的火炮兰的立场是在冲角团平东舰队,而这支舰队是海岛集团冲角团的一支,由东天霸带领。火炮兰的身份就是东天霸的孙女,也是平东舰队的基地管理员。
估计策划也没想到,只是支线的一个妹子的登场,作为辅菜的火炮兰竟有如此杀伤力,直接让这个副本BOSS变成了大众老婆。甚至成为代表剑灵的一个符号,和大众记忆。
许多玩家在回忆起剑灵时,都会发出:兰兰,我想你的感慨……
或许真是火炮兰的影响太过深远,策划在后面的剧情中,直接把火炮兰的权重提高,提到主线剧情来。
从配角成为主线
在主线的第六幕中,火炮兰第一次进入了洪门大侠的故事线之中。
在主角击败秦义绝并将其收为弟子后,冲角团平东舰队进攻竹林村,寻求主角的帮助。看这一幕小弟挺想吐槽的,用这种方式寻求帮助,也是够新奇的。
火炮兰找到主角后表示,平东舰队基地被黑龙教入侵,爷爷东天霸殿后被困,希望能与浊气相抗衡的主角出手相助。
“老婆”有难,怎能袖手旁观,主角和火炮兰返回平东舰队后,携手打败了被魔化的东天霸,迎来了温馨的爷孙相聚的画面。这段剧情也被记录在“沉默的海盗船”中。
当然,故事到这里并没有结束,作为大众老婆的火炮兰的身世,在此刻才被补足。不得不说,我们的兰兰真的很有牌面。
东天霸之所以被黑龙教所掌控的浊气入侵,牵扯到了过往的诸多恩怨,其中也包括火炮兰的身世与童年……
从废墟中被捡到的婴儿
事实上,火炮兰与东天霸并无血缘关系,她只是东天霸在废墟中捡到的女婴。
在剑灵官方外传漫画,火炮兰姐姐篇的第三章,就将火炮兰的的身世做了说明。
当年的东天霸因为孙女病重(这个孩子在漫画中并没有体现具体,也不知道是儿子、女儿,还是孙子或者孙女,姑且就当孙女吧),生命垂危,寻医无果后,东天霸也不知道从哪里听到黑龙教能够拯救孩子的性命的消息,于是就上门求救了。
而要救孩子的代价,是要将灵魂献给魔皇,东天霸对这份未知力量的恐惧,不敢献出自己的灵魂,直接导致孙女病死,这件事成了东天霸的一个解不开的心结。
在某天,东天霸路过一个因浊气袭击而横尸遍野的村庄时,突然听到了婴儿的啼哭声,而后在一处废墟中找到了正在啼哭的“女婴”。
这个女婴正是火炮兰。仿佛命运安排,东天霸失去自己的亲孙女,冥冥中上天又给他送来了一个。
对于刚刚失去亲人的东天霸来说,火炮兰的出现就是他的救赎,同样也是一种恩赐,于是他将女婴带回来冲角团。
火炮兰之所以会出现在废墟中,并不是被遗弃,而是被她的姐姐藏在这里,而姐姐为了保护火炮兰,独自引开了灾民,当返回时,已经发现火炮兰不见了。
当然,这是后话了。
爱玩炮的兰兰
在东天霸捡到火炮兰的时候,包裹着女婴的红布上写着“火兰”二字,所以火炮兰最初的名字是叫火兰。
那后面怎么会多出一个炮字呢?
火兰被东天霸带回去后,从小备受舰队船员宠爱,在火兰逐渐长大后,展示出了对枪炮的超强天赋,因此获得了一个响亮的外号——火炮兰。
爷孙情谊感人肺腑
火炮兰的成长并不是一帆风,或许是受到浊气的影响,火炮兰从小体弱多病。
在一次重病时,东天霸带着火炮兰寻找黑龙教求救,这一次东天霸毅然将灵魂卖给了黑龙教,以此换区火炮兰的健康。
在仪式完成后,火炮兰在黑暗力量的影响下,以一只眼睛作为代价,保住了性命,另外半边的头发也从黑变白,这就是火炮兰出场时的形象。
彼此的救赎
东天霸与火炮兰虽然没有血缘关系,但他们也算是互相救赎了,火炮兰的出现,抚平东天霸的内心的创伤;而东天霸以灵魂的代价,换回了火炮兰的生命。
命运将他们拴在了一起,成就了一份感人的爷孙情。为了救火炮兰,东天霸体内则埋下了随时可能引爆的黑暗之种(主要是看策划想让它什么时候爆)。
当然,官方补足了火炮兰的剧情后,其实也埋下了另外一个伏笔,那就是火炮兰的姐姐“烟花玲”,在后面的剧情中,烟花玲也闪亮登场,来寻找失散多年的妹妹了……
小弟有话说: 受限于篇幅,小弟就不展开多说了,后续大家如果有感兴趣,小弟在额外做一篇烟花玲的介绍。
一个正惊问题:你还记得你被“兰兰老婆”虐过几遍吗?
大家好,这里是正惊游戏,我是正惊小弟。
前面向大家介绍了剑灵中的两大人气妹子,很多人反映了,作为大众女神,我们的“兰兰”(火炮兰)怎么能够缺席呢?毕竟曾经被火炮兰给虐得那么惨,同时又被她萝莉萌趣的一面的给深深吸引。
既然如此,今天我们就展开讲讲我们玩家心中的人气女星“火炮兰”吧,不知道大家对火炮兰的身世知道多少呢?
登场就是人气天花板
相较于像秦义绝这样一开始就贯穿主线的NPC而言,我们的兰兰戏份并不多。火炮兰首次登场是在45版本水月英雄副本“海蛇补给基地”中,作为最终的反派萝莉BOSS亮相,与玩家对立。
一身水手服,搭配上黑白相间的双马尾,相许不少玩家都为了在副本中刷出火炮兰同款双马尾,没少挨揍。
此时的火炮兰的立场是在冲角团平东舰队,而这支舰队是海岛集团冲角团的一支,由东天霸带领。火炮兰的身份就是东天霸的孙女,也是平东舰队的基地管理员。
估计策划也没想到,只是支线的一个妹子的登场,作为辅菜的火炮兰竟有如此杀伤力,直接让这个副本BOSS变成了大众老婆。甚至成为代表剑灵的一个符号,和大众记忆。
许多玩家在回忆起剑灵时,都会发出:兰兰,我想你的感慨……
或许真是火炮兰的影响太过深远,策划在后面的剧情中,直接把火炮兰的权重提高,提到主线剧情来。
从配角成为主线
在主线的第六幕中,火炮兰第一次进入了洪门大侠的故事线之中。
在主角击败秦义绝并将其收为弟子后,冲角团平东舰队进攻竹林村,寻求主角的帮助。看这一幕小弟挺想吐槽的,用这种方式寻求帮助,也是够新奇的。
火炮兰找到主角后表示,平东舰队基地被黑龙教入侵,爷爷东天霸殿后被困,希望能与浊气相抗衡的主角出手相助。
“老婆”有难,怎能袖手旁观,主角和火炮兰返回平东舰队后,携手打败了被魔化的东天霸,迎来了温馨的爷孙相聚的画面。这段剧情也被记录在“沉默的海盗船”中。
当然,故事到这里并没有结束,作为大众老婆的火炮兰的身世,在此刻才被补足。不得不说,我们的兰兰真的很有牌面。
东天霸之所以被黑龙教所掌控的浊气入侵,牵扯到了过往的诸多恩怨,其中也包括火炮兰的身世与童年……
从废墟中被捡到的婴儿
事实上,火炮兰与东天霸并无血缘关系,她只是东天霸在废墟中捡到的女婴。
在剑灵官方外传漫画,火炮兰姐姐篇的第三章,就将火炮兰的的身世做了说明。
当年的东天霸因为孙女病重(这个孩子在漫画中并没有体现具体,也不知道是儿子、女儿,还是孙子或者孙女,姑且就当孙女吧),生命垂危,寻医无果后,东天霸也不知道从哪里听到黑龙教能够拯救孩子的性命的消息,于是就上门求救了。
而要救孩子的代价,是要将灵魂献给魔皇,东天霸对这份未知力量的恐惧,不敢献出自己的灵魂,直接导致孙女病死,这件事成了东天霸的一个解不开的心结。
在某天,东天霸路过一个因浊气袭击而横尸遍野的村庄时,突然听到了婴儿的啼哭声,而后在一处废墟中找到了正在啼哭的“女婴”。
这个女婴正是火炮兰。仿佛命运安排,东天霸失去自己的亲孙女,冥冥中上天又给他送来了一个。
对于刚刚失去亲人的东天霸来说,火炮兰的出现就是他的救赎,同样也是一种恩赐,于是他将女婴带回来冲角团。
火炮兰之所以会出现在废墟中,并不是被遗弃,而是被她的姐姐藏在这里,而姐姐为了保护火炮兰,独自引开了灾民,当返回时,已经发现火炮兰不见了。
当然,这是后话了。
爱玩炮的兰兰
在东天霸捡到火炮兰的时候,包裹着女婴的红布上写着“火兰”二字,所以火炮兰最初的名字是叫火兰。
那后面怎么会多出一个炮字呢?
火兰被东天霸带回去后,从小备受舰队船员宠爱,在火兰逐渐长大后,展示出了对枪炮的超强天赋,因此获得了一个响亮的外号——火炮兰。
爷孙情谊感人肺腑
火炮兰的成长并不是一帆风,或许是受到浊气的影响,火炮兰从小体弱多病。
在一次重病时,东天霸带着火炮兰寻找黑龙教求救,这一次东天霸毅然将灵魂卖给了黑龙教,以此换区火炮兰的健康。
在仪式完成后,火炮兰在黑暗力量的影响下,以一只眼睛作为代价,保住了性命,另外半边的头发也从黑变白,这就是火炮兰出场时的形象。
彼此的救赎
东天霸与火炮兰虽然没有血缘关系,但他们也算是互相救赎了,火炮兰的出现,抚平东天霸的内心的创伤;而东天霸以灵魂的代价,换回了火炮兰的生命。
命运将他们拴在了一起,成就了一份感人的爷孙情。为了救火炮兰,东天霸体内则埋下了随时可能引爆的黑暗之种(主要是看策划想让它什么时候爆)。
当然,官方补足了火炮兰的剧情后,其实也埋下了另外一个伏笔,那就是火炮兰的姐姐“烟花玲”,在后面的剧情中,烟花玲也闪亮登场,来寻找失散多年的妹妹了……
小弟有话说: 受限于篇幅,小弟就不展开多说了,后续大家如果有感兴趣,小弟在额外做一篇烟花玲的介绍。
一个正惊问题:你还记得你被“兰兰老婆”虐过几遍吗?