想要之前的版本可自行在我的博客中查看或去到我的个人博客:GARS 的个人博客
个人博客更新较快(因为不用审核)(其实也快不了多少)
更新内容:
首个治疗技能上线
首个加强技能上线
上述技能可在村庄修炼概率获得
BUG修复:
修复了技能名及效果与技能不匹配的情况
上代码:
#include "heads.h"
#include "io.h"
typedef long long ll;
string weapon[10] = {"木剑" , "石剑" , "铁剑" , "钻石剑" , "下界合金剑" , "寰宇支配之剑" , "乱码剑" , "五彩斑斓剑" , "深渊剑" , "氪金萝莉"};
string skillname[8] = {"无技能","狂暴旋风","雷霆万钧","冰封千里","阴晦之气","金锋之光","烈火涅槃","狂啸之怒"};
string skilleffect[8] = {"无","无","无","无","阴晦","耀光","涅槃","怒吼"};
string skille[8] = {"无","无","无","无","攻击减100000","攻击减200000","加血30000","下一次砍击加100000伤害"};
int s1=0,s2=0,s3=0,s4=0,s5=0,s6=0,s7=0;
int skillnum = 0;
int skillenergy[8] = {0,5,15,10,7,8,6,6};
int skillatk[8] = {0,500,1500,1000,0,0,0,0};
int skilln = 0;
void fightmainban () {
puts ("-----------------------------------------------");
puts (" 选择行动 ");
puts (" 1、砍击 2、刺击 3、回血 4、逃跑 5、技能");
puts ("-----------------------------------------------");
}
void skillmianban (int num){
if (num = 0){
puts ("-----------------------------------------------");
puts (" 你没有技能可选择 ");
puts ("-----------------------------------------------");
}
else{
puts ("-----------------------------------------------------------");
puts (" 选择技能 ");
puts ("1、狂暴旋风 2、雷霆万钧 3、冰封千里 4、阴晦之气 5、金锋之光");
puts ("6、烈火涅槃 7、狂啸之怒");
puts ("-----------------------------------------------------------");
}
}
void mianban (int page){
if (page==1){
print("<TCF >",0xF8,0,0,1);
print("<TCF > <TCF >",0xF8,0,1,0);
print("<TCF ><TF8 选择行动 ><TCF >",0xF8,0,2,0);
print("<TCF ><TF8 1、战斗:NPC 2、末日机械商店 3、财富积蓄 4、最终目标:末日新生 5、更多 ><TCF >",0xF8,0,3,1);
print("<TCF > ",0xF8,0,4,1);
print("<TCF ><TF8 选择: ><TCF >",0xF8,0,4,0);
print("<TCF > <TCF >",0xF8,0,5,0);
print("<TCF >",0xF8,0,6,1);
print("",0xF8,28,4,0);
}
else{
puts("6、抽奖 7、指令 8、进入村庄");
}
}
COORD gets_font_size()
{
COORD font_size;
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
/* 字体信息 */
struct CONSOLE_FONT
{
DWORD index;
COORD dim;
} cfi;
typedef COORD (WINAPI *PROCGETCONSOLEFONTSIZE)(HANDLE, DWORD);
typedef BOOL (WINAPI *PROCGETCURRENTCONSOLEFONT)(HANDLE, BOOL, struct CONSOLE_FONT*);
HMODULE hKernel32 = GetModuleHandle("kernel32");
PROCGETCONSOLEFONTSIZE GetConsoleFontSize = (PROCGETCONSOLEFONTSIZE)GetProcAddress(hKernel32,"GetConsoleFontSize");
PROCGETCURRENTCONSOLEFONT GetCurrentConsoleFont = (PROCGETCURRENTCONSOLEFONT)GetProcAddress(hKernel32,"GetCurrentConsoleFont");
GetCurrentConsoleFont(handle, FALSE, &cfi); /* 获取当前字体索引信息 */
font_size = GetConsoleFontSize(handle, cfi.index); /* 获取当前字体宽高信息[字符宽度及高度所占像素数] */
return font_size;
}
/*******************************************************************************
* 最大化展示控制台窗口
******************************************************************************/
void full_screen()
{
HWND hwnd = GetForegroundWindow();
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); /* 标准输出缓冲区句柄 */
int cx = GetSystemMetrics(SM_CXSCREEN); /* 屏幕宽度 */
int cy = GetSystemMetrics(SM_CYSCREEN); /* 屏幕高度 */
COORD size = gets_font_size();
char cmd[32] = { 0 };
sprintf(cmd, "MODE CON: COLS=%d LINES=%d", cx / size.X, cy / size.Y);
system(cmd);
SetWindowPos(hwnd, HWND_TOP, 0, 0, cx, cy, 0);
}
int main () {
system("color f0");
full_screen();
SetConsoleTitle("GAR 3:末日新生");
srand ((unsigned)time (NULL));
int chance = 2 , bloodchance = 2 , pricechange = 2 , hotal = 500 , tmpblood;
string s;
ll blood1 = 300000 , atk1 = 300000 , wep = 0;
ll atk , blood , equipment , money = 0 , experience = 0;
print("<TFC----------GAR 3:末日新生 <TF5末日机械工作室:GARS> 出品------------------>",0xF8,0,0,10);
print("<TFC请输入您的名字:>",0xF8,0,1,10);
print("<TFC--------------------------------------------------------------------->",0xF8,0,2,10);
print("",0xF8,15,1,0);
HANDLE handle = ::GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo(handle, &csbi);
SetConsoleTextAttribute(handle, 0xF9);
WORD colorOld = csbi.wAttributes;
s=getstr(16);
SetConsoleTextAttribute(handle, colorOld);
if (s == "GARS" || s == "机械贾瑞斯"|| s == "xxz") {
atk = 99999999;
blood = 99999999;
equipment = 99999999;
money = 99999999999;
experience = 999999999;
}
else if (s == "GARK" || s == "机械贾卡斯"||s=="zxy") {
atk = 9999999;
blood = 99999999;
equipment = 99999999;
money = 999999999;
experience = 999999999;
}
else {
atk = rand () % 10 + 99900;
blood = rand () % 9 + 50000;
equipment = rand ();
tmpblood = blood;
}
int bl = 2;
bool killed = false;
blood += equipment;
char buff[150];
sprintf(buff,"<TF9%s> <TFCatk:>%lld <TFCblood:>%lld <TFCequipment:>%d \n",s.c_str(),atk,blood,equipment,experience);
print(buff,0xF8,0,3,10);
char opt;
while (1) {
i: Sleep(2000);
system("cls");
if (killed) blood = tmpblood;
int i = 1,page = 1;
mianban (page);
HANDLE handle = ::GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo(handle, &csbi);
SetConsoleTextAttribute(handle, 0xF9);
WORD colorOld = csbi.wAttributes;
opt=getch();
putch(opt);
SetConsoleTextAttribute(handle, colorOld);
print("",0xF8,0,7,0);
if (opt == '1') {
int energy=0;
while (1) {
int blood1 = rand () % 10 + 50000;
int atk1 = rand () % 9 + 2000;
int jiacheng = 0;
cout << "NPC血量=" << blood1 << ". 攻击力=" << atk1 << endl;
cout << "第" << i << "回合" << endl;
cout << "请问" << s << "要干什么?" << endl;
fightmainban ();
int k;
cin >> k;
if (k == 1) {
int tmp = rand () % 10;
if(jiacheng = 0){
if (tmp < 4) {
blood1 -= (atk * 2);
cout << s << "使用附魔钻石剑砍击" << endl;
cout << "NPC" << "还剩" << blood1 << "血" << endl;
energy+=4;
}
else {
blood1 -= atk;
cout << s << "使用" << weapon[wep] << "砍击" << "NPC" << endl;
cout << "NPC" << "还剩" << blood1 << "血" << endl;
energy+=2;
}
}
else{
skillnum = 7;
blood1 -= atk+100000;
cout << s <&l