更新版本
更新内容
新机制:护盾,回合外反击,限定技能;
战士:新增限定技能无尽之血;
法师:相位转移调整;嗜法重做;风暴盾、暴风雪、心灵震爆、法力燃烧调整;删除技能附魔武器;冰枪术重做;新增技能法力塑盾、限定技能洞悉未来;
刺客:潜行调整,潜行后不触发伺机待发;淬毒匕首、虚弱药剂调整;新增限定技能绝命时刻;
咒术师:咒刃契约,恶毒,宁静结界调整;增幅咒重做;新增技能凝滞咒;万咒覆灭引改为限定技能;
神枪手:精准射击、死亡标记调整;新增限定技能灰烬四部曲;
影武士:影缚调整;影剑阵重做;新增限定技能万剑暴风式;
系统:提高装备爆率;降低战败损失;新增敌人奥法虚灵、噬心魔;调整敌人出现顺序;平衡敌人强度;
其他:修复些BUG,更新了些音效,新增特殊技能BGM;
新技能演示
C++自制控制台RPG游戏——MINERPG
附件
备注:win10的新版控制台只显示一半的制表符,会导致画面显示出问题,可以右键控制台标题→属性→勾选使用旧版控制台并重启控制台解决。此外开启输入法也会导致画面显示出现问题。
链接:https://pan.baidu.com/s/1oXk9NWw96te7b9_mVTGZcw
提取码:ut38
游戏附件(旧版本)
(附带几个测试存档)(更新了无BGM版本,运行不了BGM版本的可以试试)
链接: https://pan.baidu.com/s/1VeddYdi81F7811BxKRyleg
提取码: zkw6
源代码: https://github.com/Eyizoha/MINERPG
视频: https://www.bilibili.com/video/av75651754/
游戏画面
1.界面
2.战斗
3.对战
4.新职业
5.其他截图
备注:
进度条:如何在控制台中绘制进度条
声音
背景音乐:
《英雄联盟》:登录界面背景音乐
《家庭教师》:ツナ覚醒
《云和山的彼端》:欧洲战斗曲、阿拉伯战斗曲、中国战斗曲
《天之痕》:少年行
音效:
《魔兽争霸3》:导出音效
备注:
如何使用playsound()同时播放背景音乐和音效:如何使用PlaySound()同时播放两个声音
基本信息
各职业基础属性:
switch(classes)
{
case 0://战士
strength=vitality=8;
wit=spirit=5;
agility=insight=5;
break;
case 1://法师
strength=vitality=5;
wit=spirit=8;
agility=insight=5;
break;
case 2://刺客
strength=vitality=5;
wit=spirit=5;
agility=insight=8;
break;
case 3://咒术师
strength=vitality=6;
wit=spirit=6;
agility=insight=6;
break;
case 4://神枪手
strength=vitality=5;
wit=spirit=5;
agility=6;
insight=10;
break;
case 5://影武士
vitality=wit=5;
strength=spirit=8;
agility=insight=5;
break;
}
装备类型以及稀有度:
string classesname[6]= {"战士","法师","刺客","咒术师","神枪手","影武士"};
//
const int rarecolor[6]= {WHITE,GREEN,CYAN,PURPLE,YELLOW,RED};
const string rarelist[6]= {"普通","精良","稀有","史诗","传说","神器"};
const string metal[5]= {"铁制","钢制","秘银","星陨","战争之影"};
const string nonmetal[5]= {"木制","骨制","石英","钢玉","远古之心"};
const string cloth[5]= {"布制","皮制","凤羽","逆鳞","风暴之息"};
const string gem[5]= {"青金","水晶","钻石","黑耀","恒星之眼"};
//
const string positionlist[6]= {"武器","头部","颈部","躯干","手部","足部"};
const string weapon[6]= {"长剑","法杖","匕首","咒刃","左轮","太刀"};
const string head[3]= {"头盔","兜帽","目镜"};
const string neck[3]= {"护符","项链","吊坠"};
const string trunk[3]= {"铠甲","斗篷","法袍"};
const string hand[3]= {"手套","手镯","戒指"};
const string foot[3]= {"长靴","战靴","短靴"};
各职业技能组(新版本):
void initialize()
{
sl[0][0].name="攻击";
sl[0][0].explain="无消耗,无冷却,命中80%,暴击20%:对敌方进行普通攻击,造成100%攻击力的物理伤害。";
sl[0][0].spend=0;
sl[0][0].cd=0;
sl[0][0].sp=w_0attack;
sl[0][1].name="冲锋预备";
sl[0][1].explain="消耗30MP,冷却2回合:准备进行冲锋,提升200%的攻击2回合、清除减速效果并增加80%行动条。";
sl[0][1].spend=30;
sl[0][1].cd=2;
sl[0][1].sp=w_1charge;
sl[0][2].name="缴械";
sl[0][2].explain="消耗40MP,冷却3回合,命中100%:破坏敌方的武器与护甲,降低敌方60%的攻击与护甲4回合。";
sl[0][2].spend=40;
sl[0][2].cd=3;
sl[0][2].sp=w_2disarm;
sl[0][3].name="磐石之力";
sl[0][3].explain="消耗20MP,冷却6回合:以坚如磐石的意志强化自身,提升200%护甲与魔抗6回合并清除所有减益状态。";
sl[0][3].spend=20;
sl[0][3].cd=6;
sl[0][3].sp=w_3stone;
sl[0][4].name="致残打击";
sl[0][4].explain="消耗50MP,冷却3回合,命中80%,暴击20%:攻击敌方弱点来重创敌方的行动能力,造成160%攻击力的物理伤害,施加4(暴击:6)回合减速40%和4(暴击:6)回合伤害为25%攻击力的流血。";
sl[0][4].spend=50;
sl[0][4].cd=3;
sl[0][4].sp=w_4cripple;
sl[0][5].name="盾牌猛击";
sl[0][5].explain="消耗40MP,冷却5回合,命中100%,暴击50%:使用盾牌猛击敌方,对敌方造成400%护甲的物理伤害并击退50%(暴击:75%)的行动条,若敌方行动条触底则眩晕其1回合。";
sl[0][5].spend=40;
sl[0][5].cd=5;
sl[0][5].sp=w_5shieldhit;
sl[0][6].name="血气唤醒";
sl[0][6].explain="无消耗,冷却5回合:通过古老的法术唤醒血气强化并治愈自身,每损失1%的生命值便提高2%的攻击4回合,随后每有1点法强便恢复2%的已损失生命值。";
sl[0][6].spend=0;
sl[0][6].cd=5;
sl[0][6].sp=w_6bloodwake;
sl[0][7].name="雷霆毁灭";
sl[0][7].explain="消耗20%HP,冷却1回合,命中80%,暴击40%:消耗自身生命值来释放雷霆毁灭之力重创敌方,对敌方造成200%消耗生命值的真实伤害,未命中时返还消耗生命值。";
sl[0][7].spend=0;
sl[0][7].cd=1;
sl[0][7].sp=w_7rage;
sl[0][8].name="无尽之血";
sl[0][8].explain="消耗100%MP(至少100MP),限定技能:获得无尽的生命之力,本次战斗中翻倍当前的生命值,生命值上限,生命恢复。";
sl[0][8].spend=100;
sl[0][8].cd=0;
sl[0][8].sp=w_8infiniteblood;
//
sl[1][0].name="攻击";
sl[1][0].explain="无消耗,无冷却,命中80%,暴击20%:对敌方进行普通攻击,造成100%攻击力的物理伤害。";
sl[1][0].spend=0;
sl[1][0].cd=0;
sl[1][0].sp=m_0attack;
sl[1][1].name="冰枪术";
sl[1][1].explain="消耗20%MP,冷却1回合,命中80%,暴击20%:向敌方发射一支法力凝结的冰枪,造成100%消耗法力值的魔法伤害,每点法强都会提升该技能1%的伤害,若目标被减速则伤害翻倍。";
sl[1][1].spend=0;
sl[1][1].cd=1;
sl[1][1].sp=m_1icelance;
sl[1][2].name="风暴盾";
sl[1][2].explain="消耗40MP,冷却4回合:用风暴笼罩自身形成护盾,提高50%的速度同时每有1点法强便提高1%的护甲,持续5回合。";
sl[1][2].spend=40;
sl[1][2].cd=4;
sl[1][2].sp=m_2stormshield;
sl[1][3].name="暴风雪";
sl[1][3].explain="消耗80MP,冷却4回合,命中50%,暴击20%:召唤暴风雪攻击敌方,造成6次40%法强的魔法伤害,每次伤害独立计算命中与暴击,每次命中还会施加1回合的冰冻效果(降低50%速度和50%闪避)。";
sl[1][3].spend=80;
sl[1][3].cd=4;
sl[1][3].sp=m_3snowstorm;
sl[1][4].name="法力塑盾";
sl[1][4].explain="消耗50%MP,冷却6回合:消耗法力凝成护盾,获得200%消耗法力值的护盾值,护盾不计算护甲和魔抗直接抵挡即将受到的非真实伤害。";
sl[1][4].spend=0;
sl[1][4].cd=6;
sl[1][4].sp=m_4manashield;
sl[1][5].name="心灵震爆";
sl[1][5].explain="消耗40MP,冷却5回合,命中200%,暴击50%:用魔法直击敌方心灵,造成120%法强的真实伤害,并降低敌方40%的法强与魔抗4回合,该技能暴击时将眩晕敌方1回合。";
sl[1][5].spend=40;
sl[1][5].cd=5;
sl[1][5].sp=m_5mindblast;
sl[1][6].name="冥想";
sl[1][6].explain="消耗100MP,冷却4回合:进行一次冥想,每有2点法强便恢复1%的最大生命值同时减少所有技能1回合的冷却时间。";
sl[1][6].spend=100;
sl[1][6].cd=4;
sl[1][6].sp=m_6muse;
sl[1][7].name="法力燃烧";
sl[1][7].explain="消耗25%MP,冷却4回合,命中100%:消耗自身法力值引燃敌方法力,燃烧敌方200%消耗法力值的法力并造成100%消耗法力值的魔法伤害,同时施加4回合伤害为25%消耗法力值燃烧。";
sl[1][7].spend=0;
sl[1][7].cd=4;
sl[1][7].sp=m_7manaburn;
sl[1][8].name="洞悉未来";
sl[1][8].explain="消耗500MP,限定技能:窥探未来之法,本次战斗中翻倍法力值上限、恢复所有法力值并额外进行一个回合。";
sl[1][8].spend=500;
sl[1][8].cd=0;
sl[1][8].sp=m_8discernfuture;
//
sl[2][0].name="攻击";
sl[2][0].explain="无消耗,无冷却,命中80%,暴击20%:对敌方进行普通攻击,造成100%攻击力的物理伤害。";
sl[2][0].spend=0;
sl[2][0].cd=0;
sl[2][0].sp=a_0attack;
sl[2][1].name="刺杀";
sl[2][1].explain="消耗30MP,冷却3回合,命中100%,暴击40%:对敌方进行一次致命攻击,造成160%攻击力的物理伤害,敌方每损失1%生命值都会提升该技能3%的伤害。";
sl[2][1].spend=30;
sl[2][1].cd=3;
sl[2][1].sp=a_1assassinate;
sl[2][2].name="致盲粉";
sl[2][2].explain="消耗40MP,冷却6回合,命中200%:向敌方投掷致盲粉雾弹使敌方致盲,降低敌方50%的命中和暴击4回合。";
sl[2][2].spend=40;
sl[2][2].cd=6;
sl[2][2].sp=a_2blindingpowder;
sl[2][3].name="潜行";
sl[2][3].explain="无消耗,冷却5回合:进入潜行状态,提升300%的闪避1回合、提高100%暴击2回合并清除所有症状。";
sl[2][3].spend=0;
sl[2][3].cd=5;
sl[2][3].sp=a_3sneak;
sl[2][4].name="淬毒匕首";
sl[2][4].explain="消耗50MP,冷却4回合,命中80%,暴击30%:向敌方投掷一把淬毒匕首,造成相当于敌方当前生命值20%的物理伤害并施加4回合伤害为其最大生命值10%(每点法强额外提升0.2%)的中毒。";
sl[2][4].spend=50;
sl[2][4].cd=4;
sl[2][4].sp=a_4poisondagger;
sl[2][5].name="闷棍";
sl[2][5].explain="消耗20MP,冷却8回合,命中100%,暴击25%:出其不意地重击敌方弱点,降低敌方30%的护甲3回合并使其眩晕1(暴击:2)回合。";
sl[2][5].spend=20;
sl[2][5].cd=8;
sl[2][5].sp=a_5stickstrike;
sl[2][6].name="虚弱药剂";
sl[2][6].explain="消耗40MP,冷却6回合,命中100%:向敌方投掷一瓶虚弱药剂使得敌方虚弱5回合,虚弱状态时降低50%的攻击与法强。";
sl[2][6].spend=40;
sl[2][6].cd=6;
sl[2][6].sp=a_6weakagent;
sl[2][7].name="致命节奏";
sl[2][7].explain="消耗40MP,冷却2回合:对敌方进行一次攻击,本回合内所有的攻击结束后都进行一次50%概率的连击判定,判定成功时追加一次攻击,判定失败时重新进行判定直到累计判定失败3次。";
sl[2][7].spend=40;
sl[2][7].cd=2;
sl[2][7].sp=a_7fatalrhythm;
sl[2][8].name="绝命时刻";
sl[2][8].explain="消耗99%HP,限定技能:放弃恢复能力背水一战,本次战斗中生命恢复和法力恢复变为0,恢复所有法力值并提高300%速度4回合。";
sl[2][8].spend=0;
sl[2][8].cd=0;
sl[2][8].sp=a_8winordie;
//
sl[3][0].name="攻击";
sl[3][0].explain="无消耗,无冷却,命中80%,暴击20%:对敌方进行普通攻击,造成100%攻击力的物理伤害。";
sl[3][0].spend=0;
sl[3][0].cd=0;
sl[3][0].sp=c_0attack;
sl[3][1].name="神锋咒";
sl[3][1].explain="消耗50MP,冷却3回合,命中150%,暴击25%:咒语召唤无形的利刃瞬间切割敌方,施加4(暴击:6)回合伤害为100%攻击的流血。";
sl[3][1].spend=50;
sl[3][1].cd=3;
sl[3][1].sp=c_1sectumsempra;
sl[3][2].name="烈火咒";
sl[3][2].explain="消耗50MP,冷却3回合,命中150%,暴击25%:咒语召唤炽热的火焰猛烈席卷敌方,施加4(暴击:6)回合伤害为100%法强的燃烧。";
sl[3][2].spend=50;
sl[3][2].cd=3;
sl[3][2].sp=c_2blaze;
sl[3][3].name="五毒咒";
sl[3][3].explain="消耗50MP,冷却3回合,命中150%,暴击25%:咒语召唤恐怖的剧毒缓慢侵蚀敌方,施加4(暴击:6)回合伤害为50%攻击+50%法强的中毒。";
sl[3][3].spend=50;
sl[3][3].cd=3;
sl[3][3].sp=c_3fivepoisons;
sl[3][4].name="守护咒";
sl[3][4].explain="消耗30MP,冷却4回合:咒语守护自身,提升200%速度1回合,同时根据敌方攻击与法强的比例,每有1点法强便自适应地提升5%的护甲或魔抗,持续6回合。";
sl[3][4].spend=30;
sl[3][4].cd=4;
sl[3][4].sp=c_4daemon;
sl[3][5].name="增幅双生咒";
sl[3][5].explain="消耗120MP,冷却8回合:咒语强化自身,提升100%命中与暴击1回合,并从神锋咒、烈火咒和五毒咒中随机选择两个释放。";
sl[3][5].spend=20;
sl[3][5].cd=8;
sl[3][5].sp=c_5increase;
sl[3][6].name="夺魂咒";
sl[3][6].explain="无消耗,冷却6回合,命中150%:咒语侵夺敌方灵魂,造成其最大生命值20%的真实伤害并为自身恢复等于该值的生命值,同时消耗其最大法力值20%的法力并为自身恢复等于该值的法力值。";
sl[3][6].spend=0;
sl[3][6].cd=6;
sl[3][6].sp=c_6imperio;
sl[3][7].name="凝滞咒";
sl[3][7].explain="消耗20MP,冷却8回合:咒语凝滞双方行动,眩晕敌方4回合并眩晕自身3回合,同时调整自身速度等于敌方速度4回合。";
sl[3][7].spend=20;
sl[3][7].cd=8;
sl[3][7].sp=c_7stagnant;
sl[3][8].name="万咒覆灭引";
sl[3][8].explain="消耗100MP,限定技能:引导施加在敌方身上的所有咒语效果,清除敌方所有症状并将所有症状将产生伤害瞬间施加于敌方。";
sl[3][8].spend=100;
sl[3][8].cd=0;
sl[3][8].sp=c_8summarycurse;
//
sl[4][0].name="攻击/填装";
sl[4][0].explain="无消耗,无冷却,命中80%,暴击20%:向敌方发射一发子弹,造成100%攻击力的物理伤害。弹轮中无子弹时将进行填装,将弹轮填满。";
sl[4][0].spend=0;
sl[4][0].cd=0;
sl[4][0].sp=s_0attack;
bulletspend[0]=0;
sl[4][1].name="快速拔枪";
sl[4][1].explain="消耗30MP,冷却3回合:快速拔枪对敌方进行一次攻击,随后进行一个额外回合。";
sl[4][1].spend=30;
sl[4][1].cd=3;
sl[4][1].sp=s_1quickfire;
bulletspend[1]=1;
sl[4][2].name="精准射击";
sl[4][2].explain="消耗40MP,冷却4回合,命中100%,暴击20%:向敌方要害进行一次精准射击,造成160%攻击力的物理伤害,每点命中都会提升该技能1%的伤害。";
sl[4][2].spend=40;
sl[4][2].cd=4;
sl[4][2].sp=s_2deadeyeshoot;
bulletspend[2]=1;
sl[4][3].name="战术反制";
sl[4][3].explain="无消耗,冷却6回合,命中80%:对敌方进行一次战术反制,清空敌方的行动条并为己方增加清空值相等数值的行动条。";
sl[4][3].spend=0;
sl[4][3].cd=6;
sl[4][3].sp=s_3tacticalcounter;
bulletspend[3]=0;
sl[4][4].name="拦截射击";
sl[4][4].explain="消耗60MP,冷却6回合,命中80%,暴击20%:向敌方连续发射三发子弹,造成3次100%攻击力的物理伤害,每发子弹独立计算命中与暴击,若三发子弹全部命中则眩晕敌方1回合。";
sl[4][4].spend=60;
sl[4][4].cd=6;
sl[4][4].sp=s_4interceptingshoot;
bulletspend[4]=3;
sl[4][5].name="快速填装";
sl[4][5].explain="消耗20MP,冷却6回合:进行一次快速填装,将弹轮填满,随后进行一个额外回合。";
sl[4][5].spend=20;
sl[4][5].cd=6;
sl[4][5].sp=s_5quickreload;
bulletspend[5]=0;
sl[4][6].name="死亡标记";
sl[4][6].explain="消耗40MP,冷却10回合,命中100%:对敌方施加一个死亡标记,降低其80%的护甲与魔抗1回合,随后进行一个额外回合。";
sl[4][6].spend=40;
sl[4][6].cd=10;
sl[4][6].sp=s_6deathmarker;
bulletspend[6]=0;
sl[4][7].name="暴雨疾射";
sl[4][7].explain="消耗60MP,冷却6回合,命中60%,暴击10%:快速向敌方发射出弹轮中所有的子弹,每发子弹造成150%攻击力的物理伤害,每发子弹独立计算命中与暴击。";
sl[4][7].spend=60;
sl[4][7].cd=6;
sl[4][7].sp=s_7stormshoot;
bulletspend[7]=1;
sl[4][8].name="灰烬四部曲";
sl[4][8].explain="消耗200MP,限定技能:架起威力巨大的狙击枪\"灰烬\",\"灰烬\"拥有4发特殊子弹,\"灰烬\"的子弹不触发被动效果,\"灰烬\"的子弹用尽之前无法使用其他技能。";
sl[4][8].spend=200;
sl[4][8].cd=0;
sl[4][8].sp=s_8snipeashes;
bulletspend[8]=0;
//
sl[5][0].name="攻击";
sl[5][0].explain="无消耗,无冷却,命中80%,暴击10%:对敌方进行普通攻击,造成100%攻击力的物理伤害。";
sl[5][0].spend=0;
sl[5][0].cd=0;
sl[5][0].sp=d_0attack;
sl[5][1].name="影刃";
sl[5][1].explain="消耗50MP,冷却4回合:以暗影缠绕太刀,提高150%的攻击和命中5回合。";
sl[5][1].spend=50;
sl[5][1].cd=4;
sl[5][1].sp=d_1shadowblade;
sl[5][2].name="诅咒之影";
sl[5][2].explain="消耗20MP,冷却4回合,命中80%:随机转移自身两个减益状态到暗影中并以暗影捕捉敌方影子,命中时将翻倍持续回合的相同减益状态转移给敌方。";
sl[5][2].spend=20;
sl[5][2].cd=4;
sl[5][2].sp=d_2curseshadow;
sl[5][3].name="三段斩";
sl[5][3].explain="消耗30MP,冷却3回合:快速对敌方进行连续三次攻击。";
sl[5][3].spend=30;
sl[5][3].cd=3;
sl[5][3].sp=d_3triplechop;
sl[5][4].name="遁入暗影";
sl[5][4].explain="消耗50%MP,冷却4回合:消耗大量法力值形成暗影笼罩自身,提高400%闪避1回合并恢复200%消耗法力值的生命值。";
sl[5][4].spend=0;
sl[5][4].cd=4;
sl[5][4].sp=d_4intoshadow;
sl[5][5].name="影缚";
sl[5][5].explain="消耗40MP,冷却4回合,命中100%:以影子缠绕敌方阻碍敌方施法,使其攻击以外的所有技能冷却计时+2。";
sl[5][5].spend=40;
sl[5][5].cd=4;
sl[5][5].sp=d_5shadowdurance;
sl[5][6].name="暗影血祭";
sl[5][6].explain="消耗50%HP,冷却7回合:消耗大量生命值献祭暗影强化自身,提高40%消耗生命值的护甲和魔抗以及60%消耗生命值的法强,持续7回合。";
sl[5][6].spend=0;
sl[5][6].cd=7;
sl[5][6].sp=d_6bloodsacrifice;
sl[5][7].name="影剑阵";
sl[5][7].explain="消耗120MP,冷却4回合:召唤8把暗影之剑环绕自身,每次受到敌方攻击和技能伤害时消耗一把暗影之剑回击(命中100%、造成其最大生命值10%的魔法伤害)。";
sl[5][7].spend=120;
sl[5][7].cd=4;
sl[5][7].sp=d_7shadowswordcircle;
sl[5][8].name="万剑暴风式";
sl[5][8].explain="无消耗,限定技能:召唤8把暗影之剑,随后激活并消耗所有暗影之剑攻击敌方(命中100%、造成其最大生命值10%的魔法伤害),每把暗影之剑独立计算命中。";
sl[5][8].spend=0;
sl[5][8].cd=0;
sl[5][8].sp=d_8swordstorm;
}