今天整个游戏!
#include <bits/stdc++.h>
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <time.h>
using namespace std;
bool Black;
void Color(int a) {
if (Black == 1) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0);
return;
}
if (a == 0)
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
if (a == 1)
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_BLUE);
if (a == 2)
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN);
if (a == 3)
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_BLUE);
if (a == 4)
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);
if (a == 5)
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN);
if (a == 6)
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
if (a == 7)
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_BLUE);
if (a == 8)
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN);
if (a == 9)
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_BLUE);
if (a == 10)
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED);
if (a == 11)
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN);
if (a == 12)
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
}
void SetPos(int x, int y) {
COORD pos;
pos.X = y * 2, pos.Y = x;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}
void Slow(int a, char *p) {
while (1) {
if (*p != 0)
printf("%c", *p++);
else
break;
Sleep(a);
}
}
struct node {
char Name[201];
int Blood, Bloodmax, Bloodjia;
int Skilnum, Skilmax, Money, EXP, Shan;
int Skil[1001], Skilstr[1001]; //触发率
int Blp, Blpt, Duk, Dut, Ice, Yun, Wudi, Wudit, Qipt;
float Qi, Qip, Qijia;
} You[1001], Guai[1001];
struct node2 {
char Name[201];
float Qi;
int Kill, What, color; //物法
int Any, Anykill[1001], Anywhat[1001], Time[1001]; //额外种类
float Anyqi[1001];
} Skill[1001];
int Skkk[1001], Skll, skk, Tong, Tongmax, Ju, Juk, Jiao, Shen, Ji, Yuan, Shan, Fu;
int dy, dd, Dy, Dd, sa, sb, sc, ss, k1 = -1, k2, k3, k4;
bool Y[10001], D[10001];
void CheckMe() {
int aa = 0;
system("cls");
Color(0);
SetPos(1, 1), printf("--------查看本体技能--------");
SetPos(3, 1), printf("技能数量上限:%d", You[0].Skilmax);
for (int i = 1; i <= You[0].Skilmax; i++) {
if (You[0].Skilnum < i) {
SetPos(5, i * 11 - 10), cout << "技能" << i << ":空技能槽";
continue;
}
SetPos(5, i * 11 - 10), cout << "技能" << i << ":";
Color(Skill[You[0].Skil[i]].color);
printf("%s", Skill[You[0].Skil[i]].Name);
Color(0);
SetPos(7, i * 11 - 10), cout << "耗气量:";
printf("%0.1f", Skill[You[0].Skil[i]].Qi);
SetPos(9, i * 11 - 10), cout << "技能类型:";
if (Skill[You[0].Skil[i]].What == 1)
cout << "单体伤害";
if (Skill[You[0].Skil[i]].What == 2)
cout << "群体伤害";
if (Skill[You[0].Skil[i]].What == 3)
cout << "防御与辅助";
if (Skill[You[0].Skil[i]].What <= 2)
SetPos(11, i * 11 - 10), cout << "攻击力:" << Skill[You[0].Skil[i]].Kill;
else
SetPos(11, i * 11 - 10), cout << "无攻击力......";
SetPos(13, i * 11 - 10);
if (Skill[You[0].Skil[i]].What % 10 != 4)
cout << "额外";
cout << "效果:";
if (Skill[You[0].Skil[i]].Any == 0)
cout << "无";
else {
for (int j = 1; j <= Skill[You[0].Skil[i]].Any; j++) {
aa = max(aa, j);
int Sk = Skill[You[0].Skil[i]].Anywhat[j];
SetPos(14 + j * 3 - 2, i * 11 - 10);
printf("%d. ", j);
if (Skill[You[0].Skil[i]].What <= 2) {
if (Sk == 1)
printf("冰冻"), SetPos(14 + j * 3 - 1, i * 11 - 9), printf(" 持续时间:%d", Skill[You[0].Skil[i]].Time[j]);
if (Sk == 2)
printf("毒伤"), SetPos(14 + j * 3 - 1, i * 11 - 9), printf(" 攻击力:%d", Skill[You[0].Skil[i]].Anykill[j]),
SetPos(14 + j * 3, i * 11 - 9), printf(" 持续时间:%d", Skill[You[0].Skil[i]].Time[j]);
if (Sk == 3)
printf("暴击率"), SetPos(14 + j * 3 - 1, i * 11 - 9), printf(" 触发百分比:%d", Skill[You[0].Skil[i]].Anykill[j]),
cout << '%';
if (Sk == 4)
printf("连击率"), SetPos(14 + j * 3 - 1, i * 11 - 9), printf(" 触发百分比:%d", Skill[You[0].Skil[i]].Anykill[j]),
cout << '%';
if (Sk == 5)
printf("眩晕率"), SetPos(14 + j * 3 - 1, i * 11 - 9), printf(" 触发百分比:%d", Skill[You[0].Skil[i]].Anykill[j]),
cout << '%';
if (Sk == 6)
printf("百分比伤害"), SetPos(14 + j * 3 - 1, i * 11 - 9), printf(" 伤害百分比:%d", Skill[You[0].Skil[i]].Anykill[j]),
cout << '%';
if (Sk == 7)
printf("吸血"), SetPos(14 + j * 3 - 1, i * 11 - 9), printf(" 加血量:%d", Skill[You[0].Skil[i]].Kill);
} else {
if (Sk == 1)
printf("加血"), SetPos(14 + j * 3 - 1, i * 11 - 9), printf(" 增幅量:%d", Skill[You[0].Skil[i]].Anykill[j]);
if (Sk == 2)
printf("无敌"), SetPos(14 + j * 3 - 1, i * 11 - 9), printf(" 持续时间:%d", Skill[You[0].Skil[i]].Time[j]);
if (Sk == 3)
printf("持续加血"), SetPos(14 + j * 3 - 1, i * 11 - 9), printf(" 增幅量:%d", Skill[You[0].Skil[i]].Anykill[j]),
SetPos(14 + j * 3, i * 11 - 9), printf(" 持续时间:%d", Skill[You[0].Skil[i]].Time[j]);
if (Sk == 4)
printf("持续加气"), SetPos(14 + j * 3 - 1, i * 11 - 9), printf(" 增幅量:%0.1f", Skill[You[0].Skil[i]].Anyqi[j]),
SetPos(14 + j * 3, i * 11 - 9), printf(" 持续时间:%d", Skill[You[0].Skil[i]].Time[j]);
}
}
}
}
SetPos(16 + aa * 3, 1), cout << "按任意键退出。";
char a;
a = _getch();
}
void ChangeSkill() {
system("cls");
Color(0);
if (Jiao == 4) {
SetPos(22, 1), Color(5),
printf("教程提示 4 :你现在最多可以装备2个技能,\n 技能均需要“气”来使用,你可以“蓄气”来增加你的气数。\n 按 2 1 装备,否则退出教程。"),
Color(0);
SetPos(0, 0);
}
if (Jiao == 8) {
SetPos(22, 1), Color(5),
printf("教程提示 8 :群攻技能无需瞄准,\n 其会在发出时攻击所有人。\n 按 1 1 装备,否则退出教程。"),
Color(0);
SetPos(0, 0);
}
SetPos(1, 1), printf("--------修改本体技能--------");
SetPos(3, 1), printf("本体技能:\n");
int i;
for (i = 1; i <= You[0].Skilnum; i++)
Color(0), printf("\n %d: ", i), Color(Skill[You[0].Skil[i]].color), printf("%s", Skill[You[0].Skil[i]].Name);
if (You[0].Skilnum < You[0].Skilmax)
Color(0), printf("\n %d: 放入空技能槽", You[0].Skilnum + 1), i++;
Color(0), printf("\n\n 闲置技能:\n");
if (skk == 0)
printf("\n 无");
else
for (int i = 1; i <= skk; i++)
Color(0), SetPos(9 + i, 1), printf("\n %d: ", i), Color(Skill[Skkk[i]].color), printf("%s", Skill[Skkk[i]].Name);
Color(0), printf("\n\n 请输入你想交换的两个技能的编号(回车确定,输 0 0 退出)----- ");
int a, b;
cin >> a >> b;
if (a == 2 && b == 1 && Jiao == 4)
Jiao++;
if ((a != 2 || b != 1) && Jiao == 4)
Jiao = -1;
if (a == 1 && b == 1 && Jiao == 8)
Jiao++;
if ((a != 1 || b != 1) && Jiao == 8)
Jiao = -1;
if (a == You[0].Skilnum + 1) {
You[0].Skilnum++, You[0].Skil[You[0].Skilnum] = Skkk[b];
for (int i = b; i < skk; i++)
swap(Skkk[i], Skkk[i + 1]);
Skkk[skk] = 0;
skk--;
ChangeSkill();
} else if (a != 0)
swap(You[0].Skil[a], Skkk[b]), ChangeSkill();
}
void CheckUs() {
system("cls");
Color(0);
SetPos(1, 1), printf("--------查看同伴技能--------");
SetPos(3, 1), printf("同伴数量:%d 同伴上限:%d", Tong, Tongmax);
for (int i = 1; i <= Tong; i++) {
SetPos(5, i * 11 - 10), cout << "同伴" << i << ":";
SetPos(7, i * 11 - 10), cout << "技能数量上限:" << You[i].Skilmax;
SetPos(9, i * 11 - 10), cout << "技能数量:" << You[i].Skilnum;
for (int j = 1; j <= You[i].Skilnum; j++)
SetPos(9 + 2 * j, i * 11 - 10), printf("第%d技能:", j), Color(Skill[You[i].Skil[j]].color),
cout << Skill[You[i].Skil[j]].Name, Color(0);
}
SetPos(22, 1), cout << "按任意键退出。";
char a;
a = _getch();
}
void StartSkill() {
system("cls");
Color(0);
SetPos(1, 1), printf("Hi,请输入你的新技能的名字......");
int x = 100 + Skll;
Skll++;
float X = 1, Sha = 0;
skk++, Skkk[skk] = x;
scanf("%s", &Skill[x].Name);
printf("\n 请输入技能种类......\n\n");
printf(" 1.单体伤害 2.群体伤害 3.防御与辅助 ..... ");
cin >> Skill[x].What;
if (Skill[x].What == 2)
X *= 3;
if (Skill[x].What <= 2) {
printf("\n 请输入技能攻击力(建议<100,不然耗气量会巨多)......");
cin >> Skill[x].Kill;
Sha += Skill[x].Kill;
printf("\n 请输入技能额外效果数(建议<3,不然耗气量会巨多)......");
cin >> Skill[x].Any;
for (int i = 1; i <= Skill[x].Any; i++) {
printf("\n 请输入技能 额外效果 %d:", i);
printf("\n\n 1.冰冻 2.毒伤 3.暴击率 4.连击率");
printf("\n 5.眩晕率 6.百分比伤害 7.吸血 ..... ");//10为 偷钱
cin >> Skill[x].Anywhat[i];
int a = Skill[x].Anywhat[i];
if (a >= 3 && a <= 6)
printf("\n 请输入其的百分比(必须<80!建议<30,不然耗气量会巨多)......"), cin >> Skill[x].Anykill[i];
if (a == 2)
printf("\n 请输入其的攻击力(建议<30,不然耗气量会巨多)......"), cin >> Skill[x].Anykill[i];
if (a <= 2)
printf("\n 请输入其的持续时间(建议<4,不然耗气量会巨多)......"), cin >> Skill[x].Time[i];
int w = Skill[x].Kill, z = Skill[x].Anykill[i], t = Skill[x].Time[i];
if (a == 1)
Sha += 50 * t;
if (a == 2)
Sha += 0.5 * z * t;
if (a == 3) {
if (z < 20)
X *= 1 + z / 100;
else if (z < 50)
X *= 1 + z / 50;
else
X *= z / 20;
}
if (a == 4) {
if (z < 30)
X *= 1 + z / 80;
else if (z < 60)
X *= 0.8 + z / 30;
else
X *= z / 5 - 3;
}
if (a == 5) {
if (z < 30)
X *= 1 + z / 100;
else if (z < 50)
X *= 0.8 + z / 40;
else
X *= z / 10 - 3;
}
if (a == 6)
Sha += 3 * z;
if (a == 7)
Sha += 1.3 * w;
}
} else {
printf("\n 请输入技能效果数(建议<3,不然耗气量会巨多)......");
cin >> Skill[x].Any;
for (int i = 1; i <= Skill[x].Any; i++) {
printf("\n 请输入技能 额外效果 %d ......", i);
printf("\n\n 1.加血 2.无敌 3.持续加血 4.持续加气"); //5为 召唤
cin >> Skill[x].Anywhat[i];
int a = Skill[x].Anywhat[i];
if (a == 1 || a == 3)
printf("\n 请输入其的增幅量(建议<30,不然耗气量会巨多)......"), cin >> Skill[x].Anykill[i];
if (a == 4)
printf("\n 请输入其的增幅量(可输入一位小数,建议<3,不然耗气量会巨多)......"), cin >> Skill[x].Anyqi[i];
if (a >= 2)
printf("\n 请输入其的持续时间(建议<4,不然耗气量会巨多)......"), cin >> Skill[x].Time[i];
int w = Skill[x].Kill, z = Skill[x].Anykill[i], t = Skill[x].Time[i];
float v = Skill[x].Anyqi[i];
if (a == 1)
Sha += z;
if (a == 2)
Sha += 20 * t;
if (a == 3)
Sha += t * z;
if (a == 4)
Sha += 20 * t * v;
if (a == 4 && t == 1)
Sha *= 500;
if (a == 4 && t == 2)
Sha *= 100;
}
}
printf("\n 请输入其的颜色......");
Color(1), cout << "\n 1.蓝 ";
Color(2), cout << "2.绿 ";
Color(3), cout << "3.紫 ";
Color(4), cout << "4.红 ";
Color(5), cout << "5.黄 ";
Color(6), cout << "6.深蓝 ";
Color(7), cout << "\n 7.青 ";
Color(8), cout << "8.深绿 ";
Color(9), cout << "9.深紫 ";
Color(10), cout << "10.深红 ";
Color(11), cout << "11.木色 ";
Color(12), cout << "12.灰 ";
Color(0), cin >> Skill[x].color;
if (Sha < 20)
Sha = Sha / 30;
else if (Sha < 50)
Sha = Sha / 40 + 0.5;
else if (Sha < 200)
Sha = Sha / 150 + 1.5;
else
Sha = Sha / 70;
Skill[x].Qi = Sha * X * 10 / (0.8 + 0.1 * Ju);
int skillqi = Skill[x].Qi;
Skill[x].Qi = (float)skillqi / 10;
printf("\n 计算已完成,这个技能的耗气量为------- %0.1f\n", Skill[x].Qi);
cout << "\n 按 y 更改技能,按 0 退出。";
char a;
cin >> a;
if (a == 'y')
ChangeSkill();
}
void Main();
void Killk(int c, int a, int b) { //单体
int RR = 0, bxb = 0;
if (Guai[b].Blood <= 0)
return;
int RRR = rand() % 100;
if (Skill[a].Kill > 5)
RR = rand() % (Skill[a].Kill / 5) - Skill[a].Kill / 10;
printf("\n %s攻击了%s!\n", You[c].Name, Guai[b].Name);
Sleep(200);
if (Guai[b].Wudi > 0) {
printf("\n 但是!%s是无敌的!\n", Guai[b].Name);
Sleep(200);
return;
}
if (Guai[b].Shan > RRR) {
printf("\n 但是!%s闪避开了!\n", Guai[b].Name);
Sleep(200);
return;
}
int ki = Skill[a].Kill + RR;
Guai[b].Blood -= ki;
if (Skill[a].Kill > 0) {
printf("\n %s受到%d点伤害,血量还剩%d。\n", Guai[b].Name, ki, Guai[b].Blood);
Sleep(200);
}
for (int i = 1; i <= Skill[a].Any; i++) {
int j = Skill[a].Anywhat[i], k = Skill[a].Time[i], l = Skill[a].Anykill[i], m = Skill[a].Kill, mmm;
int r1 = rand() % 100 + 1, r2 = rand() % 50 + 51, r3 = rand() % 100 + 1;
if (j == 1)
Guai[b].Ice += k, printf("\n %s被冰冻!冰冻时间还剩%d。\n", Guai[b].Name, Guai[b].Ice);
if (j == 2)
Guai[b].Dut += k, Guai[sb].Duk = l, printf("\n %s中毒!中毒时间还剩%d。\n", Guai[b].Name, Guai[b].Dut);
if (j == 3 && r1 <= l)
mmm = m * r2 / 100, Guai[b].Blood -= mmm, printf("\n %s被暴击!多受到%d点伤害,血量还剩%d。\n", Guai[b].Name, mmm,
Guai[b].Blood);
if (j == 4 && r1 <= l && Guai[b].Blood > 0)
Guai[b].Blood -= m, printf("\n %s被连击!再次受到%d点伤害,血量还剩%d。\n", Guai[b].Name, m, Guai[b].Blood), i--;
if (j == 5 && r1 <= l)
Guai[b].Yun++, printf("\n %s被击晕!击晕时间还剩%d。\n", Guai[b].Name, Guai[b].Yun);
if (j == 6)
mmm = Guai[b].Blood * l / 100, Guai[b].Blood -= mmm, printf("\n %s遭受百分比伤害!受到%d点伤害,血量还剩%d。\n",
Guai[b].Name, mmm, Guai[b].Blood);
if (j == 7)
You[c].Blood = min(You[c].Bloodmax, You[c].Blood + Skill[a].Kill + RR),
printf("\n %s被吸血! %s的血量增加%d,还剩%d。\n", Guai[b].Name, You[c].Name, Skill[a].Kill + RR, You[c].Blood);
Sleep(200);
}
if (Guai[b].Blood <= 0)
Color(4), printf("\n %s阵亡!", Guai[b].Name), dy--, Color(0), printf("你的金币+%d!\n", Guai[b].Money),
You[0].Money += Guai[b].Money;
}
void Killkk(int c, int a) { //辅助
for (int i = 1; i <= Skill[a].Any; i++) {
int j = Skill[a].Anywhat[i], k = Skill[a].Time[i], l = Skill[a].Anykill[i];
float m = Skill[a].Anyqi[i];
int r1 = rand() % 100 + 1, r2 = rand() % 100 + 1, r3 = rand() % 100 + 1;
if (j == 1)
You[c].Blood += l, You[c].Blood = min(You[c].Bloodmax, You[c].Blood), printf("\n %s加血%d!血量还剩%d。\n",
You[c].Name, l, You[c].Blood);
if (j == 2)
You[c].Wudi += k, printf("\n %s开启无敌!无敌时间还剩%d。\n", You[c].Name, You[c].Wudi);
if (j == 3)
You[c].Blpt += k, You[c].Blp = l, printf("\n %s开启持续加血!持续时间还剩%d。\n", You[c].Name, You[c].Blpt);
if (j == 4)
You[c].Qipt += k, You[c].Qip = m, printf("\n %s开启持续加气!持续时间还剩%d。\n", You[c].Name, You[c].Qipt);
Sleep(200);
}
}
void Killkkk(int c, int a) { //群攻
bool k[1001];
memset(k, 0, sizeof(k));
int R = min(rand() % 3 + 4, dy), ll = 0;
for (int i = 1; i <= R; i++) {
int j = rand() % Dy + 1;
if (Guai[j].Blood > 0 && k[j] == 0)
Killk(c, a, j), k[j] = 1, ll = 0;
else
i--, ll++;
if (ll >= 5)
break;
}
}
void Killk2(int b, int a, int c) { //怪单体
int RR = 0;
if (Skill[a].Kill > 5)
RR = rand() % (Skill[a].Kill / 5) - Skill[a].Kill / 10;
int RRR = rand() % 100;
printf("\n %s攻击了%s!\n", Guai[b].Name, You[c].Name);
Sleep(200);
if (You[c].Wudi > 0) {
printf("\n 但是!%s是无敌的!\n", You[c].Name);
Sleep(200);
return;
}
if (You[c].Shan > RRR) {
printf("\n 但是!%s闪避开了!\n", You[c].Name);
Sleep(200);
return;
}
int ki = Skill[a].Kill + RR;
You[c].Blood -= ki;
if (Skill[a].Kill > 0) {
printf("\n %s受到%d点伤害,血量还剩%d。\n", You[c].Name, ki, You[c].Blood);
Sleep(200);
}
for (int i = 1; i <= Skill[a].Any; i++) {
int j = Skill[a].Anywhat[i], k = Skill[a].Time[i], l = Skill[a].Anykill[i], m = Skill[a].Kill, mmm;
int r1 = rand() % 100 + 1, r2 = rand() % 50 + 51, r3 = rand() % 100 + 1;
if (j == 1)
You[c].Ice += k, printf("\n %s被冰冻!冰冻时间还剩%d。\n", You[c].Name, You[c].Ice);
if (j == 2)
You[c].Dut += k, You[c].Duk = l, printf("\n %s中毒!中毒时间还剩%d。\n", You[c].Name, You[c].Dut);
if (j == 3 && r1 <= l)
mmm = m * r2 / 100, You[c].Blood -= mmm, printf("\n %s被暴击!多受到%d点伤害,血量还剩%d。\n", You[c].Name, mmm,
You[c].Blood);
if (j == 4 && r1 <= l && You[c].Blood > 0)
You[c].Blood -= m, printf("\n %s被连击!再次受到%d点伤害,血量还剩%d。\n", You[c].Name, m, You[c].Blood), i--;
if (j == 5 && r1 <= l)
You[c].Yun++, printf("\n %s被击晕!击晕时间还剩%d。\n", You[c].Name, You[c].Yun);
if (j == 6)
mmm = You[c].Blood * l / 100, You[c].Blood -= mmm, printf("\n %s遭受百分比伤害!受到%d点伤害,血量还剩%d。\n",
You[c].Name, mmm, You[c].Blood);
if (j == 7)
Guai[b].Blood = min(Guai[b].Bloodmax, Guai[b].Blood + Skill[a].Kill + RR),
printf("\n %s被吸血! %s的血量增加%d,还剩%d。\n", You[c].Name, Guai[b].Name, Skill[a].Kill + RR, Guai[b].Blood);
if (j == 10)
l = min(You[0].Money, l), You[0].Money -= l, Guai[b].Money += l,
printf("\n 你队被偷钱!金币数量减少%d,还剩%d,%s金币加为%d。\n", l, You[0].Money, Guai[b].Name, Guai[b].Money);
Sleep(200);
}
int as = rand() % 5;
if (You[c].Skilnum == 0)
as = 0;
if (Skill[a].What == 1 && Skill[a].Anywhat[1] == 10)
as = 1; //偷钱
if (c != 0 && You[c].Skilmax != You[c].Skilnum && as == 0)
Color(5), printf("\n 但是!%s学会了此技能!\n", You[c].Name), You[c].Skilnum++, You[c].Skil[You[c].Skilnum] = a,
Color(0), Sleep(200);
if (You[c].Blood <= 0) {
Color(4), printf("\n %s阵亡!\n", You[c].Name), dd--;
int rrR = rand() % 30;
if (rrR == 0 && c != 0) {
Tong = max(0, Tong - 1);
Slow(70, "\n 你的同伴对你们黑暗的前途叹了口气...\n 毅然决然地拖着已失去知觉的身体,走出了战场...\n 消失在地平线上!\n");
for (int i = c; i <= Tong; i++)
swap(You[i], You[i + 1]);
}
Color(0);
}
if (You[0].Blood <= 0 && Fu != 0)
Color(5), printf("\n 但是!%s复活!\n", You[c].Name), You[0].Blood = 20, dd++, Fu--, Color(0);
}
void Startguai(int a);
void Killkk2(int a, int b) { //怪辅助
for (int i = 1; i <= Skill[a].Any; i++) {
int j = Skill[a].Anywhat[i], k = Skill[a].Time[i], l = Skill[a].Anykill[i];
int r1 = rand() % 100 + 1, r2 = rand() % 100 + 1, r3 = rand() % 100 + 1;
if (j == 1)
Guai[b].Blood += l, Guai[b].Blood = min(Guai[b].Bloodmax, Guai[b].Blood), printf("\n %s加血%d!血量还剩%d。\n",
Guai[b].Name, l, Guai[b].Blood);
if (j == 2)
Guai[b].Wudi += k, printf("\n %s开启无敌!无敌时间还剩%d。\n", Guai[b].Name, Guai[b].Wudi);
if (j == 3)
Guai[b].Blpt += k, Guai[b].Blp = l, printf("\n %s开启持续加血!持续时间还剩%d。\n", Guai[b].Name, Guai[b].Blpt);
if (j == 5)
Startguai(Skill[a].Anykill[i]), printf("\n %s召唤了%s!%s加入战场。\n", Guai[b].Name, Guai[Dy].Name, Guai[Dy].Name);
Sleep(200);
}
}
void Killkkk2(int a, int b) { //怪群攻
bool k[1001];
memset(k, 0, sizeof(k));
int R = min(rand() % 3 + 3 + Ju, dd), ll = 0;
for (int i = 1; i <= R; i++) {
int j = rand() % Dd;
if (You[j].Blood > 0 && k[j] == 0)
Killk2(b, a, j), k[j] = 1, ll = 0;
else
i--, ll++;
if (ll >= 5)
break;
}
}
void Killguai(int aa) { //你队
int kk = 0;
Color(5);
printf("\n %s的回合!\n\n", You[aa].Name), Sleep(500);
Color(0);
if (You[aa].Wudi > 0)
You[aa].Wudi--, printf(" %s还在无敌!持续时间还剩%d。\n\n", You[aa].Name, You[aa].Wudi), Sleep(200);
if (You[aa].Qipt > 0)
You[aa].Qipt--, You[aa].Qi += You[aa].Qip, printf(" %s的气增加%0.1f,还剩%0.1f,持续时间还剩%d。\n\n", You[aa].Name,
You[aa].Qip, You[aa].Qi, You[aa].Qipt), Sleep(200);
if (You[aa].Blpt > 0)
You[aa].Blpt--, You[aa].Blood += You[aa].Blp, You[aa].Blood = min(You[aa].Bloodmax, You[aa].Blood),
printf(" %s的血量增加%d,还剩%d,持续时间还剩%d。\n\n", You[aa].Name, You[aa].Blp, You[aa].Blood, You[aa].Blpt),
Sleep(200);
if (You[aa].Dut > 0)
You[aa].Dut--, You[aa].Blood -= You[aa].Duk, printf(" %s毒发!其的血量减少%d,还剩%d,持续时间还剩%d。\n\n",
You[aa].Name, You[aa].Duk, You[aa].Blood, You[aa].Dut), Sleep(200);
if (You[aa].Ice > 0)
kk = 1, You[aa].Ice--, printf(" %s被冰冻了......,冰冻时间还剩%d。\n\n", You[aa].Name, You[aa].Ice), Sleep(200);
if (You[aa].Yun > 0) {
You[aa].Yun--;
if (kk == 1)
cout << endl << " 同时,";
else
cout << endl << " ";
printf("%s被击晕了......,击晕时间还剩%d\n\n", You[aa].Name, You[aa].Yun), Sleep(200);
return;
}
if (You[aa].Blood <= 0)
Color(4), printf("\n %s阵亡!\n", You[aa].Name), dd--, kk = 1, Color(0);
if (kk == 1)
return;
if (aa == 0) {
You[aa].Qi += You[aa].Qijia;
You[aa].Blood += You[aa].Bloodjia;
You[aa].Blood = min(You[aa].Blood, You[aa].Bloodmax);
Color(0), printf(" 你的气数+%0.1f: %0.1f\n", You[aa].Qijia, You[aa].Qi);
Color(0), printf("\n 你的血量+%d: %d\n", You[aa].Bloodjia, You[aa].Blood);
printf("\n 你的技能:\n");
Sleep(200);
Color(0), printf("\n 0: 蓄气");
for (int i = 1; i <= You[aa].Skilnum; i++) {
Color(0), printf("\n %d: ", i), Color(Skill[You[aa].Skil[i]].color), printf("%s", Skill[You[aa].Skil[i]].Name);
Color(0);
if (Skill[You[aa].Skil[i]].Qi > You[aa].Qi)
cout << "(不可用)";
}
printf("\n\n 请输入你想使用技能的编号----- ");
int a, b;
cin >> a;
if (a == 0)
You[aa].Qi += 1, printf("\n %s蓄气!你的气数 +1,还剩%0.1f。\n", You[aa].Name, You[aa].Qi);
else {
int c = You[aa].Skil[a];
if (You[aa].Qi - Skill[c].Qi < 0)
return;
You[aa].Qi -= Skill[c].Qi;
if (Skill[c].What == 1) {
Color(0), printf("\n 当前敌人:\n");
for (int i = 1; i <= Dy; i++)
if (Guai[i].Blood > 0) {
printf("\n %d: %s (血量:%d)", i, Guai[i].Name, Guai[i].Blood);
}
printf("\n\n 请输入你想攻击敌人的编号----- ");
cin >> b;
}
printf("\n\n 你使用技能:");
Color(Skill[c].color);
printf("%s", Skill[c].Name);
Color(0), cout << " !" << endl;
if (Skill[c].What == 1)
Killk(0, c, b);
if (Skill[c].What == 2)
Killkkk(0, c);
if (Skill[c].What == 3)
Killkk(0, c);
}
} else {
int R = rand() % 100 + 1, l = 0, kk = 0, o = rand() % 5;
if (You[aa].Skilnum != 0)
l = rand() % You[aa].Skilnum + 1;
if (o == 0)
l = 0;
printf(" %s使用技能:", You[aa].Name);
Color(Skill[You[aa].Skil[l]].color);
Sleep(200);
if (l == 0) {
cout << "蓄气 !" << endl;
return;
}
printf("%s", Skill[You[aa].Skil[l]].Name);
Color(0), cout << " !" << endl;
KR:
int sc = rand() % Dy + 1;
Sleep(200);
if (Skill[You[aa].Skil[l]].What == 1)
if (Guai[sc].Blood > 0)
Killk(aa, You[aa].Skil[l], sc);
else
goto KR;
if (Skill[You[aa].Skil[l]].What == 2)
Killkkk(aa, You[aa].Skil[l]);
if (Skill[You[aa].Skil[l]].What == 3)
Killkk(aa, You[aa].Skil[l]);
}
}
void Killyou(int sb) { //怪
sa = rand() % dd;
int R = rand() % (100 - min(10, Ju * 3)) + 1, l = 0, kk = 0;
Color(5);
printf("\n %s的回合!\n", Guai[sb].Name), Sleep(500);
Color(0);
if (Guai[sb].Wudi > 0)
Guai[sb].Wudi--, printf(" %s还在无敌!持续时间还剩%d。\n\n", Guai[sb].Name, Guai[sb].Wudi), Sleep(200);
if (Guai[sb].Blpt > 0)
Guai[sb].Blpt--, Guai[sb].Blood += Guai[sb].Blp, Guai[sb].Blood = min(Guai[sb].Bloodmax, Guai[sb].Blood),
printf(" %s的血量增加%d,还剩%d,持续时间还剩%d。\n\n", Guai[sb].Name, Guai[sb].Blp, Guai[sb].Blood, Guai[sb].Blpt),
Sleep(200);
if (Guai[sb].Dut > 0)
Guai[sb].Dut--, Guai[sb].Blood -= Guai[sb].Duk, printf(" %s毒发!它的血量减少%d,还剩%d,持续时间还剩%d。\n\n",
Guai[sb].Name, Guai[sb].Duk, Guai[sb].Blood, Guai[sb].Dut), Sleep(200);
if (Guai[sb].Ice > 0)
kk = 1, Guai[sb].Ice--, printf(" %s被冰冻了......,冰冻时间还剩%d。\n\n", Guai[sb].Name, Guai[sb].Ice), Sleep(200);
if (Guai[sb].Yun > 0) {
Guai[sb].Yun--;
if (kk == 1)
cout << endl << " 同时,";
else
cout << endl << " ";
printf("%s被击晕了......,击晕时间还剩%d\n\n", Guai[sb].Name, Guai[sb].Yun), Sleep(200);
return;
}
if (Guai[sb].Blood <= 0)
Color(4), printf("\n %s阵亡!\n", Guai[sb].Name), dy--, kk = 1, Color(0);
if (kk == 1)
return;
for (int i = 1; i <= Guai[sb].Skilnum; i++) {
if (R > Guai[sb].Skilstr[i])
continue;
else {
l = Guai[sb].Skil[i];
break;
}
}
printf("\n %s使用技能:", Guai[sb].Name);
Color(Skill[l].color);
Sleep(200);
if (l == 0) {
cout << "蓄气 !" << endl;
return;
}
printf("%s", Skill[l].Name);
Color(0), cout << " !" << endl;
KR:
int sc = rand() % Dd;
Sleep(200);
if (Skill[l].What == 1)
if (You[sc].Blood > 0)
Killk2(sb, l, sc);
else
goto KR;
if (Skill[l].What == 3)
Killkk2(l, sb);
if (Skill[l].What == 2)
Killkkk2(l, sb);
}
void Juing() {
system("cls");
Color(5);
if (Ju == 1)
Slow(50, "\n -----------第一章-----------\n\n 这个世界是由SLFDC政府掌管的。\n\n 近几年,由于太上皇的暴政,有10%的诸侯国脱离了此政府。\n\n 为此,SLFDC创立了强大的军事力量,\n\n 由三大教,七武科代表统管。\n\n 而你方则立下了四皇来与之抗衡。\n\n 现在,世界混乱,而你,必定是可以称霸世界,重拾和平的人!\n\n 于是,你走上了与天下人抗争的道路,\n\n 辉煌的前途正向你驶来!");
if (Ju == 2)
Slow(50, "\n -----------第二章-----------\n\n 在这一年中,四皇小P,老狗,梢公与小梁终于在思想上达成了一致\n\n 一个名为信奥班的群体终于崛起!\n\n 与此同时,因为救下了一位小P的手下,\n\n 你也光荣地入队!\n\n 现在,你开始承受SLFDC更为激烈的打击,\n\n 你一定要创造计策与机会,存活下去!");
if (Ju == 3)
Slow(50, "\n -----------第三章-----------\n\n 前线传来坏消息,\n\n 太上皇用自己无敌的能力击溃了大部分军队,\n\n 而继续反扑向信奥班本部!\n\n 于是,四皇们决定进军SLFDC本部!\n\n 政府在这时风雨飘摇,欲摧不倒!\n\n 江山即将易主,已经可以看到黎明的曙光!");
if (Ju == 4)
Slow(50, "\n -----------第四章-----------\n\n 震撼人心的“SLFDC顶上战争”终于爆发了!\n\n 前线军队战斗的轰轰烈烈,尸横遍地!\n\n 在弹尽粮绝之时,你忽然发现,自己已变得超乎想象的强大!\n\n 你从尸山血海中站起,\n\n 经历的所有战争均是超乎想象的宏大!\n\n 你始终相信,终有一天,希望将照在这辽阔的大地上!");
if (Ju == 5)
Slow(50, "\n -----------第五章-----------\n\n 战争结束了!\n\n 你的目标终于达成了!\n\n 接下来,你就可以肆无忌惮的在你的国度除恶扬善了!\n .\n .\n .\n .\n .\n .\n\n 剧情走完,游戏继续!");
Sleep(3000), system("cls");
if (Ju <= 1)
return;
printf("\n 升级了!\n\n");
Sleep(1000);
printf(" 闪避率+2%\n\n");
Sleep(500);
printf(" 同伴现有技能攻击力+20%\n\n");
Sleep(500);
printf(" 新创自定义技能气量*90%\n\n");
Sleep(500);
printf(" 战斗金币量+10%\n\n");
Sleep(500);
printf(" 胜利EXP量+10%\n\n");
Sleep(500);
printf(" 游戏难度加大!\n\n");
Sleep(500);
You[0].Shan += 2;
for (int i = 1; i < 100; i++) {
Skill[i].Kill * 1.2;
for (int j = 1; j <= Skill[i].Any; j++)
Skill[i].Anykill[j] * 1.2;
}
Sleep(3000), system("cls");
Color(0);
}
void LaoHu() {
system("cls");
Color(0);
printf("\n -----------老虎机-----------\n");
for (int i = 1; i <= 50; i++) {
SetPos(5, 5);
cout << " ";
Color(rand() % 13);
SetPos(5, 5);
cout << "出奖中。。。";
Sleep(30);
}
Color(5);
SetPos(5, 2);
cout << "恭喜获得";
Re:
int ssa = rand() % 6, sr;
if (ssa == 0) {
sr = rand() % 400 + 100;
cout << "金币" << sr << "个!";
You[0].Money += sr;
}
if (ssa == 1) {
sr = rand() % 50 + 30;
cout << "经验" << sr << "点!";
You[0].EXP += sr;
}
if (ssa == 2) {
KKP:
sr = rand() % 24 + 4;
for (int i = 1; i <= You[0].Skilnum; i++)
if (You[0].Skil[i] == sr)
goto KKP;
for (int i = 1; i <= skk; i++)
if (Skkk[i] == sr)
goto KKP;
if (Skill[sr].What == 3 && Skill[sr].Anywhat[1] == 5)
goto KKP; //召唤
if (Skill[sr].What == 1 && Skill[sr].Anywhat[1] == 10)
goto KKP; //偷钱
skk++, Skkk[skk] = sr;
cout << "系统特惠技能:";
Color(Skill[Skkk[skk]].color);
cout << Skill[Skkk[skk]].Name;
Color(5), cout << "!";
}
if (ssa == 3) {
if (Tong == Tongmax)
goto Re;
Tong++;
int i = Tong;
You[i].Skilnum = 0;
You[i].Bloodmax = You[0].Bloodmax - 10 + rand() % 21;
You[i].Skilmax = 3 + rand() % 3;
printf("新同伴(血量%d,技能上限%d,会学习)!", You[i].Bloodmax, You[i].Skilmax);
}
if (ssa == 4) {
cout << "新技能槽!";
You[0].Skilmax++;
}
if (ssa == 5) {
cout << "血量上限+20%!";
You[0].Bloodmax *= 1.2;
}
Sleep(1000);
}
void Store() {
St:
system("cls");
Color(0);
if (Jiao == 12) {
SetPos(22, 1), Color(5),
printf("教程提示 12 :但是,此游戏的成功方式只有一个:\n 将游戏的剧情完结!\n 按 0 退出,否则退出教程。"),
Color(0);
SetPos(0, 0);
}
printf("\n ------------商店------------\n");
printf("\n Money:%d\n", You[0].Money);
printf("\n 1.同伴招募 --- $300\n");
printf("\n 2.药水商店\n");
printf("\n 3.经验升级区\n");
printf("\n 4.老虎机 (会抽出什么呢?...) --- $300\n");
printf("\n 输入 0 退出。----- ");
int a;
cin >> a;
if (a == 0 && Jiao == 12)
Jiao++, You[0].EXP = 100;
else if (Jiao != 14)
Jiao = -1;
if (a == 1 && You[0].Money >= 300 && Tong < Tongmax) {
Tong++;
int i = Tong;
You[i].Skilnum = 0;
You[0].Money -= 300;
You[i].Bloodmax = You[0].Bloodmax - 10 + rand() % 21;
You[i].Skilmax = 3 + rand() % 3;
Color(5), printf("\n 恭喜获得新同伴(血量%d,技能上限%d,会学习)!", You[i].Bloodmax, You[i].Skilmax);
Color(0), Sleep(3000);
}
if (a == 2) {
Sto:
system("cls");
Color(0);
printf("\n ----------药水商店----------\n");
printf("\n 注意:所有药水均为自动使用一次性。\n");
printf("\n Money:%d\n", You[0].Money);
printf("\n 1.生命药水 (初始血量+10%) [已有%d个] --- $30\n", Shen);
printf("\n 2.复活药水 (且回血20) [已有%d个] --- $50\n", Fu);
printf("\n 3.敏捷药水 (闪避率+20%) [已有%d个] --- $50\n", Shan);
printf("\n 4.狂暴药水 (回合率+20%) [已有%d个] --- $50\n", Ji);
printf("\n 5.元气药水 (开局1口气) [已有%d个] --- $30\n", Yuan);
printf("\n 6.经验药水 (+10 EXP) --- $100\n");
printf("\n 输入 0 退出。----- ");
int aa;
cin >> aa;
if (aa == 1 && You[0].Money >= 30)
Shen++, You[0].Money -= 30;
if (aa == 2 && You[0].Money >= 50)
Fu++, You[0].Money -= 50;
if (aa == 3 && You[0].Money >= 50)
Shan++, You[0].Money -= 50;
if (aa == 4 && You[0].Money >= 50)
Ji++, You[0].Money -= 50;
if (aa == 5 && You[0].Money >= 30)
Yuan++, You[0].Money -= 30;
if (aa == 6 && You[0].Money >= 100)
You[0].EXP += 20, You[0].Money -= 100;
if (aa != 0)
goto Sto;
}
if (a == 3) {
Stoo:
system("cls");
Color(0);
printf("\n ---------经验升级区---------\n");
printf("\n EXP:%d\n", You[0].EXP);
printf("\n 1.血量上限+10% [已为%d点] --- 50 EXP\n", You[0].Bloodmax);
printf("\n 2.回合加气+0.2 [已为%0.1f口] --- 50 EXP\n", You[0].Qijia);
printf("\n 3.回合加血+5 [已为%d点] --- 70 EXP\n", You[0].Bloodjia);
printf("\n 4.闪避率+5% [已为%d%] --- 70 EXP\n", You[0].Shan);
printf("\n 5.技能槽+1 [已为%d个] --- 100 EXP\n", You[0].Skilmax);
printf("\n 6.同伴上限+1 [已为%d个] --- 100 EXP\n", Tongmax);
printf("\n 7.同伴升级区\n");
printf("\n 输入 0 退出。----- ");
int aaa;
cin >> aaa;
if (aaa == 7 && Jiao == 13)
Jiao++;
else if (Jiao != 14)
Jiao = -1;
if (aaa == 1 && You[0].EXP >= 50)
You[0].Bloodmax *= 1.1, You[0].EXP -= 50;
if (aaa == 2 && You[0].EXP >= 50)
You[0].Qijia += 0.2, You[0].EXP -= 50;
if (aaa == 3 && You[0].EXP >= 70)
You[0].Bloodjia += 5, You[0].EXP -= 70;
if (aaa == 4 && You[0].EXP >= 70)
You[0].Shan += 5, You[0].EXP -= 70;
if (aaa == 5 && You[0].EXP >= 100)
You[0].Skilmax++, You[0].EXP -= 100;
if (aaa == 6 && You[0].EXP >= 100)
Tongmax++, You[0].EXP -= 100;
if (aaa == 7) {
So:
system("cls");
Color(0);
printf("\n ---------同伴升级区---------\n");
printf("\n EXP:%d 同伴数量:%d\n", You[0].EXP, Tong);
printf("\n 你要升级同伴几?(输入 0 退出)----- ");
int i;
cin >> i;
if (i == 0)
goto Stoo;
Soo:
SetPos(5, 1);
printf("同伴%d: \n", i);
printf("\n 血量上限:%d (+10%按1 --- 50EXP)\n", You[i].Bloodmax);
printf("\n 回合加血:%d (+5按2 --- 70EXP)\n", You[i].Bloodjia);
printf("\n 闪避率:%d% (+5%按3 --- 70EXP)\n", You[i].Shan);
printf("\n 技能数量上限:%d (+1按4 --- 100EXP)\n", You[i].Skilmax, You[i].Skilnum);
for (int j = 1; j <= You[i].Skilnum; j++)
printf("\n ----第%d技能:", j), Color(Skill[You[i].Skil[j]].color), cout << Skill[You[i].Skil[j]].Name, Color(0),
printf(" (删除按%d)\n", 4 + j);
printf("\n 输入 0 重选。----- ");
int ab;
cin >> ab;
if (ab == 1 && You[0].EXP >= 50)
You[i].Bloodmax *= 1.1, You[0].EXP -= 50;
if (ab == 2 && You[0].EXP >= 70)
You[i].Bloodjia += 5, You[0].EXP -= 70;
if (ab == 3 && You[0].EXP >= 70)
You[i].Shan += 5, You[0].EXP -= 70;
if (ab == 4 && You[0].EXP >= 100)
You[i].Skilmax++, You[0].EXP -= 100;
if (ab > 4) {
ab -= 4;
You[i].Skilnum--;
for (int j = ab; j < You[i].Skilnum; j++)
swap(You[i].Skil[j], You[i].Skil[j + 1]);
You[i].Skil[You[i].Skilnum + 1] = 0;
}
if (ab != 0) {
system("cls");
Color(0);
printf("\n ---------同伴升级区---------\n");
printf("\n EXP:%d 同伴数量:%d\n", You[0].EXP, Tong);
goto Soo;
}
if (ab == 0)
goto So;
}
if (aaa != 0)
goto Stoo;
}
if (a == 4 && You[0].Money >= 300)
LaoHu(), You[0].Money -= 300;
if (a != 0)
goto St;
}
void Startguai(int a) {
char *str;
dy++;
Dy++;
if (a == 1) {
str = "剑客";
for (int i = 0; i < strlen(str); i++)
Guai[dy].Name[i] = str[i];
Guai[dy].Blood = 80;
Guai[dy].Money = 10;
Guai[dy].Skilnum = 2, Guai[dy].Skil[1] = 1, Guai[dy].Skilstr[1] = 40, Guai[dy].Skil[2] = 4, Guai[dy].Skilstr[2] = 90;
}
if (a == 2) {
str = "守卫兵";
for (int i = 0; i < strlen(str); i++)
Guai[dy].Name[i] = str[i];
Guai[dy].Blood = 100;
Guai[dy].Money = 20;
Guai[dy].Skilnum = 2, Guai[dy].Skil[1] = 5, Guai[dy].Skilstr[1] = 30, Guai[dy].Skil[2] = 6, Guai[dy].Skilstr[2] = 90;
}
if (a == 3) {
str = "史莱姆";
for (int i = 0; i < strlen(str); i++)
Guai[dy].Name[i] = str[i];
Guai[dy].Blood = 50;
Guai[dy].Money = 10;
Guai[dy].Skilnum = 2, Guai[dy].Skil[1] = 7, Guai[dy].Skilstr[1] = 50, Guai[dy].Skil[2] = 8, Guai[dy].Skilstr[2] = 90;
}
if (a == 4) {
str = "模仿者";
for (int i = 0; i < strlen(str); i++)
Guai[dy].Name[i] = str[i];
Guai[dy].Blood = You[0].Blood;
Guai[dy].Money = 20;
Guai[dy].Skilnum = 3, Guai[dy].Skil[1] = You[0].Skil[1], Guai[dy].Skilstr[1] = 30, Guai[dy].Skil[2] = You[0].Skil[2],
Guai[dy].Skilstr[2] = 60, Guai[dy].Skil[3] = You[0].Skil[3], Guai[dy].Skilstr[3] = 90;
}
if (a == 5) {
str = "魔术师";
for (int i = 0; i < strlen(str); i++)
Guai[dy].Name[i] = str[i];
Guai[dy].Blood = 80;
Guai[dy].Money = 25;
Guai[dy].Skilnum = 3, Guai[dy].Skil[1] = 9, Guai[dy].Skilstr[1] = 20, Guai[dy].Skil[2] = 5, Guai[dy].Skilstr[2] = 40,
Guai[dy].Skil[3] = 6, Guai[dy].Skilstr[3] = 90;
}
if (a == 6) {
str = "巫医";
for (int i = 0; i < strlen(str); i++)
Guai[dy].Name[i] = str[i];
Guai[dy].Blood = 70;
Guai[dy].Money = 20;
Guai[dy].Skilnum = 3;
Guai[dy].Skil[1] = 15, Guai[dy].Skilstr[1] = 40;
Guai[dy].Skil[2] = 16, Guai[dy].Skilstr[2] = 60;
Guai[dy].Skil[3] = 17, Guai[dy].Skilstr[3] = 90;
}
if (a == 7) {
str = "法师";
for (int i = 0; i < strlen(str); i++)
Guai[dy].Name[i] = str[i];
Guai[dy].Blood = 80;
Guai[dy].Money = 30;
Guai[dy].Skilnum = 3, Guai[dy].Skil[1] = 2, Guai[dy].Skilstr[1] = 20, Guai[dy].Skil[2] = 10, Guai[dy].Skilstr[2] = 50,
Guai[dy].Skil[3] = 11, Guai[dy].Skilstr[3] = 90;
}
if (a == 8) {
str = "雪怪";
for (int i = 0; i < strlen(str); i++)
Guai[dy].Name[i] = str[i];
Guai[dy].Blood = 150;
Guai[dy].Money = 50;
Guai[dy].Skilnum = 3;
Guai[dy].Skil[1] = 12, Guai[dy].Skilstr[1] = 50;
Guai[dy].Skil[2] = 13, Guai[dy].Skilstr[2] = 60;
Guai[dy].Skil[3] = 14, Guai[dy].Skilstr[3] = 90;
}
if (a == 9) {
str = "巨人";
for (int i = 0; i < strlen(str); i++)
Guai[dy].Name[i] = str[i];
Guai[dy].Blood = 200;
Guai[dy].Money = 50;
Guai[dy].Skilnum = 2;
Guai[dy].Skil[1] = 18, Guai[dy].Skilstr[1] = 40;
Guai[dy].Skil[2] = 19, Guai[dy].Skilstr[2] = 90;
}
if (a == 10) {
str = "蝙蝠";
for (int i = 0; i < strlen(str); i++)
Guai[dy].Name[i] = str[i];
Guai[dy].Blood = 20;
Guai[dy].Money = 3;
Guai[dy].Skilnum = 2, Guai[dy].Skil[1] = 20, Guai[dy].Skilstr[1] = 60, Guai[dy].Skil[2] = 21, Guai[dy].Skilstr[2] = 90;
}
if (a == 11) {
str = "乞丐";
for (int i = 0; i < strlen(str); i++)
Guai[dy].Name[i] = str[i];
Guai[dy].Blood = 100;
Guai[dy].Money = 30;
Guai[dy].Skilnum = 3, Guai[dy].Skil[1] = 22, Guai[dy].Skilstr[1] = 40, Guai[dy].Skil[2] = 23, Guai[dy].Skilstr[2] = 80,
Guai[dy].Skil[3] = 24, Guai[dy].Skilstr[3] = 90;
}
if (a == 12) {
str = "弓箭手";
for (int i = 0; i < strlen(str); i++)
Guai[dy].Name[i] = str[i];
Guai[dy].Blood = 80;
Guai[dy].Money = 10;
Guai[dy].Skilnum = 2, Guai[dy].Skil[1] = 26, Guai[dy].Skilstr[1] = 40, Guai[dy].Skil[2] = 25, Guai[dy].Skilstr[2] = 90;
}
if (a == 13) {
str = "哥布林";
for (int i = 0; i < strlen(str); i++)
Guai[dy].Name[i] = str[i];
Guai[dy].Blood = 50;
Guai[dy].Money = 15;
Guai[dy].Skilnum = 2, Guai[dy].Skil[1] = 5, Guai[dy].Skilstr[1] = 20, Guai[dy].Skil[2] = 27, Guai[dy].Skilstr[2] = 90,
Guai[dy].Skil[2] = 27, Guai[dy].Skilstr[3] = 90;
}
if (a == 14) {
str = "酒鬼";
for (int i = 0; i < strlen(str); i++)
Guai[dy].Name[i] = str[i];
Guai[dy].Blood = 100;
Guai[dy].Money = 30;
Guai[dy].Skilnum = 3, Guai[dy].Skil[1] = 28, Guai[dy].Skilstr[1] = 30, Guai[dy].Skil[2] = 29, Guai[dy].Skilstr[2] = 60,
Guai[dy].Skil[3] = 22, Guai[dy].Skilstr[3] = 90;
}
if (a == 15) {
str = "战争机器";
for (int i = 0; i < strlen(str); i++)
Guai[dy].Name[i] = str[i];
Guai[dy].Blood = 200;
Guai[dy].Money = 70;
Guai[dy].Skilnum = 3;
Guai[dy].Skil[1] = 30, Guai[dy].Skilstr[1] = 40;
Guai[dy].Skil[2] = 31, Guai[dy].Skilstr[2] = 70;
Guai[dy].Skil[3] = 32, Guai[dy].Skilstr[3] = 90;
}
Guai[dy].Blood *= (0.5 * Ju);
Guai[dy].Blood += rand() % 11 - 5;
Guai[dy].Bloodmax = Guai[dy].Blood;
Guai[dy].Money *= (0.8 + 0.1 * Ju);
Guai[dy].Shan = (Ju - 2) * 5;
}
void Startwar() {
char *str;
dy = Dy = 0;
dd = Dd = Tong + 1;
memset(Guai, 0, sizeof(Guai)); // dd=你方
You[0].Blp = You[0].Blpt = You[0].Duk = You[0].Dut = You[0].Ice = You[0].Yun = You[0].Wudi = You[0].Wudit = You[0].Qipt
= You[0].Qi = You[0].Qip = 0;
for (int i = 1; i <= Tong; i++) {
str = "同伴";
You[i].Name[4] = i + '0';
for (int j = 0; j < strlen(str); j++)
You[i].Name[j] = str[j];
You[i].Blood = You[i].Bloodmax;
You[i].Blp = You[i].Blpt = You[i].Duk = You[i].Dut = You[i].Ice = You[i].Yun = You[i].Wudi = You[i].Wudit = You[i].Qipt
= You[i].Qi = You[i].Qip = 0;
}
int r = max(Dd + rand() % 3 - 1, 1);
int t = rand() % 6;
if (t < Ju)
r++;
for (int i = 1; i <= r; i++)
Startguai(rand() % 15 + 1);
}
void War() {
As:
system("cls");
Color(0);
if (Jiao == 2) {
SetPos(22, 1), Color(5),
printf("教程提示 2 :杀死所有敌人即可获胜。\n 反之,你队全亡就会失败。\n 按 y 开始,否则退出教程。"),
Color(0);
SetPos(0, 0);
}
if (Jiao == 6) {
SetPos(22, 1), Color(5),
printf("教程提示 6 :你的气数会每回合增长。\n 但敌人与同伴使用技能没有气数限制。\n 按 y 开始,否则退出教程。"),
Color(0);
SetPos(0, 0);
}
if (Jiao == 10) {
SetPos(22, 1), Color(5),
printf("教程提示 10 :同伴是没有初始技能的。\n 他会在战斗中自我学习,你们的血量在对战后均会回满。\n 按 y 开始,否则退出教程。"),
Color(0);
SetPos(0, 0);
}
SetPos(1, 1), printf("----------战斗界面----------\n\n");
memset(Y, 0, sizeof(Y));
memset(D, 0, sizeof(D));
Startwar();
if (Juk == 10) {
Juk = 0, Juing(), Ju++;
goto As;
}
printf(" 你将面临的敌人是:\n");
for (int i = 1; i <= dy; i++) {
printf("\n %d: %s 血量: %d 掉落金币: %d", i, Guai[i].Name, Guai[i].Blood, Guai[i].Money);
}
cout << "\n\n 按 y 开始战斗,按其余键退出 (损失 30" << '%' << " EXP)。----- ";
char q;
cin >> q;
if (q != 'y' && (Jiao == 2 || Jiao == 6 || Jiao == 10))
Jiao = -1;
if (q == 'y' && (Jiao == 2 || Jiao == 6 || Jiao == 10))
Jiao++;
if (q != 'y') {
You[0].EXP *= 0.7;
return;
}
system("cls");
SetPos(1, 1), printf("\n---------开始战斗!---------\n\n");
if (Yuan >= 1)
You[0].Qi = 1;
if (Shen >= 1)
You[0].Blood *= 1.1;
int sh, pan;
if (Shan >= 1)
You[0].Shan += 20, sh = 1;
while (dy != 0 && dd != 0) {
pan = 0;
KK:
pan++;
if (pan >= 10)
break;
sa = rand() % (dd + dy);
sc = 0;
if (Ji > 0 && You[0].Blood > 0)
sc = rand() % 5;
if (sa < dd)
sa = 0;
else
sa = 1;
if (k3 >= 2)
sa = 1;
if (k4 >= 2)
sa = 0;
if (sa == 0)
sb = rand() % Dd; //你攻
if (sa == 1)
sb = rand() % Dy + 1; //怪攻
if (sc == 4)
sa = 0, sb = 0;
if (sa == 0 && You[sb].Blood <= 0)
goto KK;
if (sa == 1 && Guai[sb].Blood <= 0)
goto KK;
if ((sa == 0 && sb == k1) || (sa == 1 && sb == k2))
goto KK;
if (sa == 0) {
k1 = sb, k2 = 0, k3++, k4 = 0;
if (dy <= 0 || dd <= 0)
break;
Killguai(sb);
}
if (sa == 1) {
k1 = -1, k2 = sb, k3 = 0, k4++;
if (dy <= 0 || dd <= 0)
break;
Killyou(sb);
}
if (dy <= 0 || dd <= 0)
break;
Sleep(500);
}
Shen = max(Shen - 1, 0);
Ji = max(Ji - 1, 0);
Shan = max(Shan - 1, 0);
Yuan = max(Yuan - 1, 0);
if (sh == 1)
You[0].Shan -= 20;
int ai = (10 + Dy * 2) * (0.8 + 0.1 * Ju);
int bi = (10 + Dd * 5) * (0.8 + 0.1 * Ju);
if (dy == 0)
Color(5), printf("\n 你胜利了!!获得%dEXP!\n", ai), You[0].EXP += ai, Juk += rand() % 2;
else
Color(4), printf("\n 你失败了!!减少%d金币!\n", bi), You[0].Money = max(0, You[0].Money - bi);
Sleep(3000);
}
bool Read() {
ifstream in("这是你的存档.in");
unsigned long long ioi = 0, ioix;
long long Moo = 1e9 + 7;
in >> You[0].Name;
for (int i = 0; i < strlen(You[0].Name); i++)
ioi = (ioi + (int)You[0].Name[i]) * 101 % Moo;
in >> Skll >> skk >> Tong >> Tongmax >> Ju >> Juk >> Jiao >> Shen >> Ji >> Yuan >> Shan >> Fu;
ioi = (ioi + Skll * 103 + skk * 107 + Tong * 109 + Tongmax * 113 + Ju * 127 + Juk * 131 + Jiao * 137 + Shen * 139 + Ji *
149 + Yuan * 151 + Shan * 157 + Fu * 163) % Moo;
for (int i = 0; i <= Tong; i++) {
in >> You[i].Blood >> You[i].Bloodmax >> You[i].Bloodjia >> You[i].Skilnum >> You[i].Skilmax >> You[i].Money >>
You[i].EXP >> You[i].Shan;
in >> You[i].Qijia;
ioi += (2 * ioi + You[i].Blood * 167 + You[i].Bloodmax * 173 + You[i].Bloodjia * 179 + You[i].Skilnum * 181 +
You[i].Skilmax * 191 + You[i].Money * 193 + You[i].EXP * 197 + You[i].Shan * 211 + (int)You[i].Qijia * 223) % Moo;
for (int j = 1; j <= You[i].Skilnum; j++)
in >> You[i].Skil[j], ioi += i * j * (ioi + You[i].Skil[j]) * 227 % Moo;
}
for (int i = 100; i <= 99 + Skll; i++) {
in >> Skill[i].Name;
for (int j = 0; j < strlen(Skill[i].Name); j++)
ioi += i * j * (ioi + (int)Skill[i].Name[j]) * 229 % Moo;
in >> Skill[i].Qi >> Skill[i].Kill >> Skill[i].What >> Skill[i].color >> Skill[i].Any;
ioi = ioi + Skill[i].Qi * 233 + Skill[i].Kill * 239 + Skill[i].What * 241 + Skill[i].color * 251 + Skill[i].Any * 257;
ioi %= Moo;
for (int j = 1; j <= Skill[i].Any; j++) {
in >> Skill[i].Anykill[j] >> Skill[i].Anywhat[j] >> Skill[i].Time[j], in >> Skill[i].Anyqi[j];
ioi += i * j * (ioi + Skill[i].Anykill[j] * 263 + Skill[i].Anywhat[j] * 269 + Skill[i].Time[j] * 271 +
(int)Skill[i].Anyqi[j] * 277) % Moo;
}
}
for (int i = 1; i <= skk; i++)
in >> Skkk[i], ioi += (ioi + Skkk[i]) * 281 % Moo;
in >> ioix;
if (ioix != ioi) {
in.close();
return 0;
}
in.close();
return 1;
}
void Save() {
unsigned long long ioi = 0;
long long Moo = 1e9 + 7;
ofstream out("这是你的存档.in");
out << You[0].Name << '\n';
for (int i = 0; i < strlen(You[0].Name); i++)
ioi = (ioi + (int)You[0].Name[i]) * 101 % Moo;
out << Skll << ' ' << skk << ' ' << Tong << ' ' << Tongmax << ' ' << Ju << ' ' << Juk << ' ' << Jiao << ' ' << Shen <<
' ' << Ji << ' ' << Yuan << ' ' << Shan << ' ' << Fu << '\n';
ioi = (ioi + Skll * 103 + skk * 107 + Tong * 109 + Tongmax * 113 + Ju * 127 + Juk * 131 + Jiao * 137 + Shen * 139 + Ji *
149 + Yuan * 151 + Shan * 157 + Fu * 163) % Moo;
for (int i = 0; i <= Tong; i++) {
out << You[i].Blood << ' ' << You[i].Bloodmax << ' ' << You[i].Bloodjia << ' ' << You[i].Skilnum << ' ' <<
You[i].Skilmax << ' ' << You[i].Money << ' ' << You[i].EXP << ' ' << You[i].Shan << ' ';
out << You[i].Qijia << '\n';
ioi += (2 * ioi + You[i].Blood * 167 + You[i].Bloodmax * 173 + You[i].Bloodjia * 179 + You[i].Skilnum * 181 +
You[i].Skilmax * 191 + You[i].Money * 193 + You[i].EXP * 197 + You[i].Shan * 211 + (int)You[i].Qijia * 223) % Moo;
for (int j = 1; j <= You[i].Skilnum; j++)
out << You[i].Skil[j] << ' ', ioi += i * j * (ioi + You[i].Skil[j]) * 227 % Moo;
out << '\n';
}
for (int i = 100; i <= 99 + Skll; i++) {
out << Skill[i].Name << '\n';
for (int j = 0; j < strlen(Skill[i].Name); j++)
ioi += i * j * (ioi + (int)Skill[i].Name[j]) * 229 % Moo;
out << Skill[i].Qi << ' ' << Skill[i].Kill << ' ' << Skill[i].What << ' ' << Skill[i].color << ' ' << Skill[i].Any <<
'\n';
ioi = ioi + Skill[i].Qi * 233 + Skill[i].Kill * 239 + Skill[i].What * 241 + Skill[i].color * 251 + Skill[i].Any * 257;
ioi %= Moo;
for (int j = 1; j <= Skill[i].Any; j++) {
out << Skill[i].Anykill[j] << ' ' << Skill[i].Anywhat[j] << ' ' << Skill[i].Time[j] << ' ',
out << Skill[i].Anyqi[j] << '\n';
ioi += i * j * (ioi + Skill[i].Anykill[j] * 263 + Skill[i].Anywhat[j] * 269 + Skill[i].Time[j] * 271 +
(int)Skill[i].Anyqi[j] * 277) % Moo;
}
}
for (int i = 1; i <= skk; i++)
out << Skkk[i] << ' ', ioi += (ioi + Skkk[i]) * 281 % Moo;
out << '\n';
out << '\n' << ioi;
out.close();
}
void Cun() {
yy:
system("cls");
Color(0);
SetPos(1, 1), printf("---------存读档界面---------");
SetPos(3, 1), printf("读档按1 存档按2 -----");
int a;
cin >> a;
if (a == 1) {
printf("\n 你需要将你之前的存档与此程序放入一个文件夹中。\n");
printf("\n 不要更改名字与内容!\n");
printf("\n 准备好了吗?按任意键开始!\n");
char b;
b = _getch();
Slow(50, "\n 读档中......\n");
if (Read())
Color(5), printf("\n 读档成功!\n");
else {
Color(4), printf("\n 读档失败!这个档一定被修改过!\n\n");
Slow(200, " 啊......愚昧无知的人类啊......\n\n 接受来自胎神的惩罚吧!......\n\n");
Color(5), printf("\n 全新!黑色字体特效,开启!!\n\n");
Color(0);
Black = 1;
Sleep(1000);
}
Color(0), Sleep(1000);
}
if (a == 2) {
printf("\n 你需要将此程序放入一个文件夹中。\n");
printf("\n 注意此操作会覆盖之前的存档。\n");
printf("\n 准备好了吗?按任意键开始!\n");
char b;
b = _getch();
Save();
Slow(50, "\n 存档中......\n");
Color(5), printf("\n 存档成功!\n");
Color(0), Sleep(1000);
}
}
void Main() {
system("cls");
Color(0);
You[0].Blood = You[0].Bloodmax;
int a = -2019;
SetPos(1, 1), printf("-----------主界面-----------");
SetPos(3, 1), printf("金币:%d 经验值:%d 血量:%d", You[0].Money, You[0].EXP, You[0].Blood);
SetPos(5, 1), printf("Hi,%s,What do you want to do now?", You[0].Name);
SetPos(7, 1), printf("1.开始战斗!");
SetPos(9, 1), printf("2.存档与读档。");
SetPos(11, 1), printf("3.查看本体技能。");
SetPos(13, 1), printf("4.修改本体技能。");
SetPos(15, 1), printf("5.创造自定义技能。");
SetPos(17, 1), printf("6.前往商店。");
SetPos(19, 1), printf("7.查看小兵数据。");
SetPos(21, 1), printf("--------- ");
if (Jiao == 15) {
SetPos(22, 1), Color(5), printf("教程提示 15 :剩下的需要自己去摸索了,教程结束。"), Color(0);
Jiao = -1;
}
if (Jiao == 14) {
SetPos(22, 1), Color(5),
printf("教程提示 14 :当你想保存游戏进度时,可以选择存档。\n 在下一次游戏中,你可以读档来继续游戏。\n 按 2 存档,否则退出教程。"),
Color(0);
SetPos(21, 6), cin >> a;
if (a == 2)
Jiao++;
else
Jiao = -1;
}
if (Jiao == 13) {
SetPos(22, 1), Color(5),
printf("教程提示 13 :剧情会在对战前随机刷出\n 我们来看看剧情的第一章吧!\n 按 1 开始,否则退出教程。"),
Color(0);
SetPos(21, 6), cin >> a;
if (a == 6)
Jiao++, Ju = 1, Juk = 10;
else
Jiao = -1;
}
if (Jiao == 11) {
SetPos(22, 1), Color(5),
printf("教程提示 11 :你可以购买药水增幅自己。\n 而在老虎机中,你可以抽出一些更实用的物品!\n 按 6 购买,否则退出教程。"),
Color(0);
SetPos(21, 6), cin >> a;
if (a == 6)
Jiao++, You[0].Money = 200;
else
Jiao = -1;
}
if (Jiao == 9) {
SetPos(22, 1), Color(5),
printf("教程提示 9 :一人对战比较困难,\n 我们来试试和同伴一起战斗吧。\n 按 1 对战,否则退出教程。"),
Color(0);
SetPos(21, 6), cin >> a;
if (a == 1)
Jiao++, Tong++, You[1].Bloodmax = 100, You[1].Skilmax = 3;
else
Jiao = -1;
}
if (Jiao == 7) {
SetPos(22, 1), Color(5),
printf("教程提示 7 :除了一个一个攻击敌人,你还可以使用群攻技能。\n 我们提供了一个群攻技能给你。\n 按 4 装备,否则退出教程。"),
Color(0);
SetPos(21, 6), cin >> a;
if (a == 4)
Jiao++, skk = 1, Skkk[1] = 3;
else
Jiao = -1;
}
if (Jiao == 5) {
SetPos(22, 1), Color(5),
printf("教程提示 5 :在对战中,会轮到你的回合\n 你只能你的回合中才能使用技能。\n 按 1 对战,否则退出教程。"),
Color(0);
SetPos(21, 6), cin >> a;
if (a == 1)
Jiao++;
else
Jiao = -1;
}
if (Jiao == 3) {
SetPos(22, 1), Color(5),
printf("教程提示 3 :只用刀对战比较困难,\n 你可以使用技能来对战,来装备你的第一个技能吧。\n 按 4 装备,否则退出教程。"),
Color(0);
SetPos(21, 6), cin >> a;
if (a == 4)
Jiao++, skk = 1, Skkk[1] = 2;
else
Jiao = -1;
}
if (Jiao == 1) {
SetPos(22, 1), Color(5),
printf("教程提示 1 :本游戏是一个团队对战游戏,\n 一切基础是建立在“开始战斗!”模式下的。\n 按 1 对战,否则退出教程。"),
Color(0);
SetPos(21, 6), cin >> a;
if (a == 1)
Jiao++;
else
Jiao = -1;
}
SetPos(21, 6);
if (a == -2019)
cin >> a;
if (a == 1)
War();
if (a == 2)
Cun();
if (a == 3)
CheckMe();
if (a == 4)
ChangeSkill();
if (a == 5)
StartSkill();
if (a == 6)
Store();
if (a == 7)
CheckUs();
}
void Start() {
char *str, aa;
Color(0);
printf("\n Hi,请输入你的名字......");
scanf("%s", You[0].Name);
printf("\n 要开始教程吗?(按 y / n 选择)..... ");
cin >> aa;
if (aa == 'y') {
printf("\n\n 如果你是在本机第一次玩此游戏......");
printf("\n\n 请将鼠标移至程序框上方按鼠标右键......");
printf("\n\n 点击“默认值”......");
printf("\n\n 点击“布局”......");
printf("\n\n 将“屏幕缓冲区大小”调为1000 1000......");
printf("\n\n 然后关闭此程序,重启一次......");
printf("\n\n 按任意键开始!");
char a;
a = _getch();
Jiao = 1;
} else
skk = 2, Skkk[1] = 2, Skkk[2] = 3, You[0].Money = 200, You[0].EXP = 100, Tong = 1, You[1].Bloodmax = 100,
You[1].Skilmax = 3, Ju = 1, Juk = 10;
You[0].Qi = 0, You[0].Blood = You[0].Bloodmax = 100, You[0].Skilnum = 1, You[0].Skilmax = 2, You[0].Skil[1] = 1,
Tongmax = 2, You[0].Qijia = 0.5;
str = "刀斩";
for (int i = 0; i < strlen(str); i++)
Skill[1].Name[i] = str[i];
Skill[1].Kill = 10, Skill[1].What = 1, Skill[1].Any = 0, Skill[1].color = 7, Skill[1].Qi = 0;
str = "火球";
for (int i = 0; i < strlen(str); i++)
Skill[2].Name[i] = str[i];
Skill[2].Kill = 30, Skill[2].What = 1, Skill[2].Any = 0, Skill[2].color = 4, Skill[2].Qi = 1;
str = "流星雨";
for (int i = 0; i < strlen(str); i++)
Skill[3].Name[i] = str[i];
Skill[3].Kill = 30, Skill[3].What = 2, Skill[3].Any = 0, Skill[3].color = 5, Skill[3].Qi = 2;
str = "劈剑";
for (int i = 0; i < strlen(str); i++)
Skill[4].Name[i] = str[i];
Skill[4].Kill = 20, Skill[4].What = 1, Skill[4].Any = 0, Skill[4].color = 12, Skill[4].Qi = 0.2;
str = "背刺";
for (int i = 0; i < strlen(str); i++)
Skill[5].Name[i] = str[i];
Skill[5].Kill = 50, Skill[5].What = 1, Skill[5].Any = 1, Skill[5].Anywhat[1] = 5, Skill[5].Anykill[1] = 30,
Skill[5].color = 3, Skill[5].Qi = 1.5;
str = "飞刀";
for (int i = 0; i < strlen(str); i++)
Skill[6].Name[i] = str[i];
Skill[6].Kill = 10, Skill[6].What = 1, Skill[6].Any = 1, Skill[6].Anywhat[1] = 4, Skill[6].Anykill[1] = 30,
Skill[6].color = 1, Skill[6].Qi = 1.5;
str = "粘液弹";
for (int i = 0; i < strlen(str); i++)
Skill[7].Name[i] = str[i];
Skill[7].Kill = 10, Skill[7].What = 2, Skill[7].Any = 1, Skill[7].Anywhat[1] = 5, Skill[7].Anykill[1] = 70,
Skill[7].color = 2, Skill[7].Qi = 2;
str = "碾压";
for (int i = 0; i < strlen(str); i++)
Skill[8].Name[i] = str[i];
Skill[8].Kill = 30, Skill[8].What = 1, Skill[8].color = 3, Skill[8].Qi = 0.8;
str = "腾空";
for (int i = 0; i < strlen(str); i++)
Skill[9].Name[i] = str[i];
Skill[9].What = 3, Skill[9].Any = 1, Skill[9].Anywhat[1] = 2, Skill[9].Time[1] = 1, Skill[9].color = 1,
Skill[9].Qi = 1.5;
str = "地裂";
for (int i = 0; i < strlen(str); i++)
Skill[10].Name[i] = str[i];
Skill[10].Kill = 10, Skill[10].What = 2, Skill[10].Any = 2, Skill[10].Anywhat[1] = 4, Skill[10].Anykill[1] = 60,
Skill[10].Anywhat[2] = 5, Skill[10].Anykill[2] = 20, Skill[10].color = 11, Skill[10].Qi = 2.5;
str = "雷击术";
for (int i = 0; i < strlen(str); i++)
Skill[11].Name[i] = str[i];
Skill[11].Kill = 30, Skill[11].What = 2, Skill[11].Any = 2, Skill[11].Anywhat[1] = 3, Skill[11].Anykill[1] = 30,
Skill[11].Anywhat[2] = 5, Skill[11].Anykill[2] = 30, Skill[11].color = 6, Skill[11].Qi = 2.5;
str = "雪球";
for (int i = 0; i < strlen(str); i++)
Skill[12].Name[i] = str[i];
Skill[12].Kill = 20, Skill[12].What = 1, Skill[12].Any = 1;
Skill[12].Anywhat[1] = 1, Skill[12].Time[1] = 1;
Skill[12].color = 1, Skill[12].Qi = 2;
str = "永冻之域";
for (int i = 0; i < strlen(str); i++)
Skill[13].Name[i] = str[i];
Skill[13].Kill = 20, Skill[13].What = 2, Skill[13].Any = 1;
Skill[13].Anywhat[1] = 1, Skill[13].Time[1] = 1;
Skill[13].color = 1, Skill[13].Qi = 4;
str = "暴风雪";
for (int i = 0; i < strlen(str); i++)
Skill[14].Name[i] = str[i];
Skill[14].Kill = 50, Skill[14].What = 2, Skill[14].Any = 2;
Skill[14].Anywhat[1] = 3, Skill[14].Anykill[1] = 30;
Skill[14].Anywhat[2] = 5, Skill[14].Anykill[2] = 30;
Skill[14].color = 1, Skill[14].Qi = 2;
str = "急救";
for (int i = 0; i < strlen(str); i++)
Skill[15].Name[i] = str[i];
Skill[15].What = 3, Skill[15].Any = 1;
Skill[15].Anywhat[1] = 1, Skill[15].Anykill[1] = 30;
Skill[15].color = 2, Skill[15].Qi = 1;
str = "瘟疫";
for (int i = 0; i < strlen(str); i++)
Skill[16].Name[i] = str[i];
Skill[16].What = 2, Skill[16].Any = 1;
Skill[16].Anywhat[1] = 6, Skill[16].Anykill[1] = 40;
Skill[16].color = 3, Skill[16].Qi = 2;
str = "下毒";
for (int i = 0; i < strlen(str); i++)
Skill[17].Name[i] = str[i];
Skill[17].Kill = 10, Skill[17].What = 1, Skill[17].Any = 1;
Skill[17].Anywhat[1] = 2, Skill[17].Anykill[1] = 10, Skill[17].Time[1] = 10;
Skill[17].color = 8, Skill[17].Qi = 0.8;
str = "重击";
for (int i = 0; i < strlen(str); i++)
Skill[18].Name[i] = str[i];
Skill[18].Kill = 50, Skill[18].What = 1, Skill[18].Any = 0;
Skill[18].color = 4, Skill[18].Qi = 1.5;
str = "泰山压顶";
for (int i = 0; i < strlen(str); i++)
Skill[19].Name[i] = str[i];
Skill[19].Kill = 50, Skill[19].What = 2, Skill[19].Any = 1;
Skill[19].Anywhat[1] = 3, Skill[19].Anykill[1] = 50, Skill[19].color = 4, Skill[19].Qi = 2.5;
str = "吸血";
for (int i = 0; i < strlen(str); i++)
Skill[20].Name[i] = str[i];
Skill[20].Kill = 5, Skill[20].What = 1, Skill[20].Any = 1;
Skill[20].Anywhat[1] = 7, Skill[20].color = 10, Skill[20].Qi = 1;
str = "狩猎号角";
for (int i = 0; i < strlen(str); i++)
Skill[21].Name[i] = str[i];
Skill[21].What = 3, Skill[21].Any = 1;
Skill[21].Anywhat[1] = 5, Skill[21].Anykill[1] = 10, Skill[21].color = 9, Skill[21].Qi = 0.3;
str = "打狗棒法";
for (int i = 0; i < strlen(str); i++)
Skill[22].Name[i] = str[i];
Skill[22].Kill = 30, Skill[22].What = 1, Skill[22].Any = 1, Skill[22].Anywhat[1] = 4, Skill[22].Anykill[1] = 40,
Skill[22].color = 11, Skill[22].Qi = 1.5;
str = "乞讨";
for (int i = 0; i < strlen(str); i++)
Skill[23].Name[i] = str[i];
Skill[23].What = 3, Skill[23].Any = 1;
Skill[23].Anywhat[1] = 3, Skill[23].Time[1] = 5, Skill[23].Anykill[1] = 20;
Skill[23].color = 12, Skill[23].Qi = 2;
str = "江湖义";
for (int i = 0; i < strlen(str); i++)
Skill[24].Name[i] = str[i];
Skill[24].What = 3, Skill[24].Any = 1;
Skill[24].Anywhat[1] = 5, Skill[24].Anykill[1] = 11, Skill[24].color = 1, Skill[24].Qi = 3;
str = "万箭齐发";
for (int i = 0; i < strlen(str); i++)
Skill[25].Name[i] = str[i];
Skill[25].Kill = 20, Skill[25].What = 2, Skill[25].Any = 0, Skill[25].color = 11, Skill[25].Qi = 1.5;
str = "毒箭";
for (int i = 0; i < strlen(str); i++)
Skill[26].Name[i] = str[i];
Skill[26].Kill = 20, Skill[26].What = 1, Skill[26].Any = 1;
Skill[26].Anywhat[1] = 2, Skill[26].Anykill[1] = 10, Skill[26].Time[1] = 2;
Skill[26].color = 8, Skill[26].Qi = 0.8;
str = "神偷手";
for (int i = 0; i < strlen(str); i++)
Skill[27].Name[i] = str[i];
Skill[27].What = 1, Skill[27].Any = 1;
Skill[27].Anywhat[1] = 10, Skill[27].Anykill[1] = 30, Skill[27].color = 5, Skill[27].Qi = 0;
str = "乱拳";
for (int i = 0; i < strlen(str); i++)
Skill[28].Name[i] = str[i];
Skill[28].Kill = 10, Skill[28].What = 1, Skill[28].Any = 1, Skill[28].Anywhat[1] = 4, Skill[28].Anykill[1] = 60,
Skill[28].color = 1, Skill[28].Qi = 1.3;
str = "喝酒";
for (int i = 0; i < strlen(str); i++)
Skill[29].Name[i] = str[i];
Skill[29].What = 3, Skill[29].Any = 1;
Skill[29].Anywhat[1] = 1, Skill[29].Anykill[1] = 20;
Skill[29].color = 2, Skill[29].Qi = 0.8;
str = "火箭炮";
for (int i = 0; i < strlen(str); i++)
Skill[30].Name[i] = str[i];
Skill[30].Kill = 50, Skill[30].What = 1, Skill[30].Any = 1, Skill[30].Anywhat[1] = 3, Skill[30].Anykill[1] = 30;
Skill[30].color = 4, Skill[30].Qi = 2;
str = "榴弹炮";
for (int i = 0; i < strlen(str); i++)
Skill[31].Name[i] = str[i];
Skill[31].Kill = 40, Skill[31].What = 2, Skill[31].Any = 1, Skill[31].Anywhat[1] = 3, Skill[31].Anykill[1] = 30;
Skill[31].color = 7, Skill[31].Qi = 3;
str = "激光炮";
for (int i = 0; i < strlen(str); i++)
Skill[32].Name[i] = str[i];
Skill[32].Kill = 70, Skill[32].What = 1, Skill[32].Any = 0, Skill[32].color = 5, Skill[32].Qi = 3;
}
int main() {
srand((unsigned)time(NULL));
Start();
while (1)
Main();
return 0;
}