📄 attack.h
字号:
void monster_blood(int i);
void map_1(int x,int y);
extern m1;
extern char a_1,a_2;
void enter(int i)
{
int j;
system("cls");
system("color f4");
gotoxy(29,13);
monster_blood(i);
printf("进入战斗,请等待...");
gotoxy(25,16);
printf("______________________________");
gotoxy(25,18);
printf("———————————————");
for(j=0;j<30;j++)
{
dalay(0.05);
gotoxy(25+j,17);
printf(">");
}
}
void monster_blood(int i) //怪物死后的血值还原
{
if(i==0)
{
monster[i].blood=20;
}
if(i==1)
{
monster[i].blood=35;
}
if(i==2)
{
monster[i].blood=50;
}
if(i==3)
{
monster[i].blood=80;
}
if(i==4)
{
monster[i].blood=120;
}
if(i==5)
{
monster[i].blood=250;
}
if(i==6)
{
monster[i].blood=450;
}
if(i==7)
{
monster[i].blood=400;
}
if(i==8)
{
monster[i].blood=500;
}
if(i==9)
{
monster[i].blood=800;
}
if(i==10)
{
monster[i].blood=500;
}
}
void image(int i) //定义刷屏
{
gotoxy(12,2);
printf("%s",man.name);
gotoxy(56,2);
printf("%s",monster[i].name);
gotoxy(11,4);
printf("HP: %d / %d ",man.d_blood,man.z_blood);
gotoxy(11,6);
printf("MP: %d / %d ",man.d_magic,man.z_magic);
gotoxy(55,5);
printf("HP: %d ",monster[i].blood);
gotoxy(13,8);printf("%c",1);
gotoxy(12,9);printf("|||%c",26);
gotoxy(12,10);printf("%c %c",25,25);
gotoxy(56,8);printf("%c",2);
gotoxy(54,9);printf("%c|||",15);
gotoxy(55,10);printf("%c %c",25,25);
}
void monster_attack(int i,int n) //怪物攻击我
{
int j;
if(monster[i].blood<100&&i>5&& 2==rand()%2)
{
for(j=36;j>-4;j--)
{
gotoxy(17+j,10);printf("%c%c%c",15,15,15);
gotoxy(17+j,8);printf("%c%c%c",15,15,15);
gotoxy(17+j,9);printf("%c%c%c",15,15,15);
dalay(0.05);
gotoxy(17+j,8);printf(" ");
gotoxy(17+j,9);printf(" ");
gotoxy(17+j,10);printf(" ");
}
man.d_blood-=n+20;
image(i);
gotoxy(5,9);printf("- %d",n);
}
else
{
for(j=36;j>-4;j--)
{
gotoxy(17+j,9);printf("%c",15);
dalay(0.05);
gotoxy(17+j,9);printf(" ");
}
man.d_blood-=n;
image(i);
gotoxy(5,9);printf("- %d",n);
}
dalay(1.5);
gotoxy(5,9);printf(" ");
}
void skill_use(int n1,char ch1,int i) //选择使用技能
{
int j,k1,k2;
k1=man.attack-monster[i].defense;
if(k1<0)k1=0;
k2=monster[i].attack-man.defense;
if(k2<0)k2=0;
gotoxy(10,15);printf(" ");
gotoxy(36,13);printf("%c",16);
gotoxy(38,13);printf("1.连环双击(消耗魔法值20点)");
gotoxy(38,15);printf("2.破空一击(消耗魔法值40点)");
gotoxy(38,17);printf("3.万箭之矢(消耗魔法值80点)");
ch1=getch();
while(ch1!=13)
{
if(ch1==a_2)
{
n1=n1+2;
if(n1>4)n1=n1-2;
gotoxy(36,n1+11);printf(" ");
gotoxy(36,13+n1);printf("%c",16);
}
if(ch1==a_1)
{
n1=n1-2;
if(n1<0)n1=n1+2;
gotoxy(36,15+n1);printf(" ");
gotoxy(36,13+n1);printf("%c",16);
}
ch1=getch();
}
if(n1==0) //用第一个技能
{
if(man.d_magic<20)
{
gotoxy(35,23);printf("魔法值不足!");
dalay(1);
gotoxy(35,23);printf(" ");
gotoxy(36,13);printf(" ");
gotoxy(38,15);printf(" ");
gotoxy(38,17);printf(" ");
}
else
{
gotoxy(36,13);printf(" ");
gotoxy(38,15);printf(" ");
gotoxy(38,17);printf(" ");
gotoxy(17,9);
printf("%c",26);
dalay(0.05);
for(j=0;j<37;j++)
{
gotoxy(17+j,9);printf("-->-->");
dalay(0.05);
gotoxy(17+j,9);printf(" ");
}
man.d_magic-=20;
monster[i].blood-=k1+10;
image(i);
gotoxy(65,9);printf("- %d",k1+10);
dalay(1);
gotoxy(65,9);printf(" ");
monster_attack(i,k2);
}
}
if(n1==2) //用第二个技能
{
if(man.d_magic<40)
{
gotoxy(35,23);printf("魔法值不足!");
dalay(1);
gotoxy(35,23);printf(" ");
gotoxy(36,13);printf(" ");
gotoxy(36,15);printf(" ");
gotoxy(36,17);printf(" ");
}
else
{
gotoxy(36,13);printf(" ");
gotoxy(36,15);printf(" ");
gotoxy(38,17);printf(" ");
gotoxy(17,9);
printf("%c",26);
dalay(0.05);
for(j=0;j<15;j++)
{
gotoxy(17+j,9);printf("-->");
dalay(0.05);
gotoxy(17+j,9);printf(" ");
}
for(j=0;j<22;j++)
{
gotoxy(32+j,9);printf("==>");
dalay(0.05);
gotoxy(32+j,9);printf(" ");
}
man.d_magic-=40;
monster[i].blood-=k1+25;
image(i);
gotoxy(65,9);printf("- %d",k1+25);
dalay(1);
gotoxy(65,9);printf(" ");
monster_attack(i,k2);
}
}
if(n1==4) //用第三个技能
{
if(man.d_magic<80)
{
gotoxy(35,23);printf("魔法值不足!");
dalay(1);
gotoxy(35,23);printf(" ");
gotoxy(36,13);printf(" ");
gotoxy(36,15);printf(" ");
gotoxy(36,17);printf(" ");
}
else
{
gotoxy(36,17);printf(" ");
gotoxy(36,13);printf(" ");
gotoxy(38,15);printf(" ");
dalay(0.05);
for(j=0;j<10;j++)
{
gotoxy(17+j,9);printf("-->");
dalay(0.05);
gotoxy(17+j,9);printf(" ");
}
for(j=0;j<10;j++)
{
gotoxy(27+j,9);printf("==>");
dalay(0.05);
gotoxy(27+j,9);printf(" ");
}
for(j=0;j<17;j++)
{
gotoxy(37+j,8);printf("->->");
gotoxy(37+j,9);printf("->->");
gotoxy(37+j,10);printf("->->");
dalay(0.05);
gotoxy(37+j,8);printf(" ");
gotoxy(37+j,9);printf(" ");
gotoxy(37+j,10);printf(" ");
}
man.d_magic-=80;
monster[i].blood-=k1+40;
image(i);
gotoxy(65,9);printf("- %d",k1+40);
dalay(1);
gotoxy(65,9);printf(" ");
monster_attack(i,k2);
}
}
}
void med_use(int i,char ch,int n2) //使用药的函数
{
int k1,k2;
k1=man.attack-monster[i].defense;
if(k1<0)k1=0;
k2=monster[i].attack-man.defense;
if(k2<0)k2=0;
gotoxy(10,17);printf(" ");
gotoxy(36,13);printf("%c",16);
med(38,13);
ch=getch();
while(ch!=13)
{
if(ch==a_2)
{
n2=n2+2;
if(n2>2)n2=n2-2;
gotoxy(36,11+n2);printf(" ");
gotoxy(36,13+n2);printf("%c",16);
}
if(ch==a_1)
{
n2=n2-2;
if(n2<0)n2=n2+2;
gotoxy(36,15+n2);printf(" ");
gotoxy(36,13+n2);printf("%c",16);
}
ch=getch();
}
if(n2==0)
{
if(man.h_med==0)
{
gotoxy(35,23);
printf("你没有金创药!");
dalay(2);
gotoxy(35,23);printf(" ");
gotoxy(36,13);printf(" ");
gotoxy(36,15);printf(" ");
}
else
{
if((man.d_blood+100)>man.z_blood) //当前是满红时
{
man.d_blood=man.z_blood;
man.h_med=man.h_med-1;
}
else //没红时加50
{
man.h_med=man.h_med-1;
man.d_blood=man.d_blood+100;
}
med(38,13);
image(i);
dalay(1);
gotoxy(36,13);printf(" ");
gotoxy(36,15);printf(" ");
monster_attack(i,k2);
image(i);
}
}
if(n2==2)
{
if(man.m_med==0)
{
gotoxy(35,23);
printf("你没有魔法药!");
dalay(2);
gotoxy(35,23);printf(" ");
gotoxy(36,13);printf(" ");
gotoxy(36,15);printf(" ");
}
else
{
if((man.d_magic+100)>man.z_magic) //当前是满蓝时
{
man.d_magic=man.z_magic;
man.m_med=man.m_med-1;
}
else //没满时加50
{
man.m_med=man.m_med-1;
man.d_magic=man.d_magic+100;
}
med(38,13);
dalay(1);
image(i);
gotoxy(36,13);printf(" ");
gotoxy(36,15);printf(" ");
monster_attack(i,k2);
image(i);
}
}
}
void attack(int i) //攻击怪物的函数
{
time_t t;
char ch,ch_1=0,ch_2=0; //ch为第一个选择 ch_1为技能选择 ch_2为药品选择
int n=0,j,k1,k2,n1=0,n2=0,level_1,level_2;//n为第一个选择 n1为技能选择 n2为药品选择
srand(time(&t));
level_1=man.level;
k1=man.attack-monster[i].defense;
if(k1<0)k1=0;
k2=monster[i].attack-man.defense;
if(k2<0)k2=0;
system("cls");
system("color fc");
while(man.d_blood>0&&monster[i].blood>0)
{
image(i);
gotoxy(10,13);printf("%c",16);
gotoxy(12,13);printf("1.攻击");
gotoxy(12,15);printf("2.技能");
gotoxy(12,17);printf("3.道具");
ch=getch();
while(ch!=13)
{
if(ch==a_2)
{
n=n+2;
if(n>4)n=n-2;
gotoxy(10,11+n);printf(" ");
gotoxy(10,13+n);printf("%c",16);
}
if(ch==a_1)
{
n=n-2;
if(n<0)n=n+2;
gotoxy(10,15+n);printf(" ");
gotoxy(10,13+n);printf("%c",16);
}
ch=getch();
}
if(n==0) //选择直接攻击
{
gotoxy(10,13);printf(" ");
gotoxy(17,9);
printf("%c",26);
dalay(0.05);
for(j=0;j<37;j++)
{
gotoxy(17+j,9);printf("-->");
dalay(0.05);
gotoxy(17+j,9);printf(" ");
}
monster[i].blood-=k1;
image(i);
gotoxy(65,9);printf("- %d",k1);
dalay(1);
gotoxy(65,9);printf(" ");
monster_attack(i,k2); //怪物攻击
}
if(n==2) //用技能攻击
{
skill_use(n1,ch_1,i);
}
if(n==4) //选择吃药
{
med_use(i,ch_2,n2);
}
n=0;
}
if(man.d_blood<=0)
{
system("cls");
system("color fc");
gotoxy(25,13);
printf("出师未捷生先死,长使英雄泪满襟!");
gotoxy(25,16);
printf("______________________________");
gotoxy(25,18);
printf("———————————————");
for(j=0;j<30;j++)
{
dalay(0.05);
gotoxy(25+j,17);
printf(">");
}
man.d_blood=20;
m1=1;
map_1(35,15);
}
if(monster[i].blood<=0)
{
gotoxy(35,18);
printf("你杀死了%s!",monster[i].name);
dalay(1);
gotoxy(35,18);
printf("你得到了%d经验值! ",monster[i].exp);
man.exp=man.exp+monster[i].exp;
level_2=level(man.exp);
if(level_1<level_2)
{
gotoxy(35,18);
printf("恭喜你,你升级了! ");
man.z_blood+=20;
man.d_blood=man.z_blood;
man.z_magic+=10;
man.attack+=1;
man.defense+=1;
man.level=level_2;
}
dalay(1);
gotoxy(35,18);
printf("你得到了%d金钱! ",monster[i].menoy);
man.menoy=man.menoy+monster[i].menoy;
if(8==rand()%20)
{
dalay(1.5);
gotoxy(35,18);
save(man.weapon,monster[i].weapon);
printf("你得到了武器! ");
}
if(8==rand()%20)
{
dalay(1);
gotoxy(35,18);
save(man.cloth,monster[i].cloth);
printf("你得到了衣服! ");
}
if(8==rand()%15)
{
dalay(1);
gotoxy(35,18);
man.h_med+=1;
printf("你得到了金创药! ");
}
if(8==rand()%15)
{
dalay(1);
gotoxy(35,18);
man.m_med+=1;
printf("你得到了魔法药! ");
}
}
dalay(1.5);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -