? ? ? ? TROL1.20传送门
????????目前这个版本(1.20.01)的帮派一旦被灭完,就再也不会有新的成立,因此MCYH为此游戏增添一个新功能,自动生成新帮派,这样就有灭不完的帮派了!
? ? ? ? 其实很简单,只要在特判(tepan)函数中增添这个模块就好了。
? ? ? ? 新版本tepan()函数代码如下:(还修改了其它东西,就整个函数一起发了)
void tepan()//特殊判断,比如减饥饿值、生病什么的 (此函数格式较乱,强迫症者可以免看)
{
things[8]-=random(2,4)*(things[21]);
things[3]-=random(2,5)*(things[21]-1);
things[4]-=random(2,5)*(things[21]-1);
things[1]+=random(1,5)*(5-things[21]);
bool finished=1;
for(int i=1;i<=gang[me.gang].pnum;i++)
if (gang[me.gang].peo[i].name==name)
{
gang[me.gang].peo[i].hp=things[2];
gang[me.gang].peo[i].attack=things[5];
gang[me.gang].peo[i].defence=things[6];
}
for(int i=1;i<=50;i++)
if (gang[i].pnum>0&&me.gang!=i)
{
finished=0;
break;
}
if (finished)
hdcj(38);
if (rand()%200/things[21]==6||random(1,350)>things[2]&&rand()%16==2)
{
int rdg=random(7,45),rdf=random(230,1598);
Sout("你生病了");
if (rdg>35)
Sout(",十分严重,挺住!\n");
printf("(hp-%d money-%d)",rdg,rdf);
things[2]-=rdg,things[7]-=rdf;
if (things[2]<0)
Die();
}
if (rand()%(1000/things[21])==9)
{
int deadway=random(1,10);
switch(deadway)
{
case 1:Sout("你出了车祸,你挂了...\n");break;
case 2:Sout("你重重地摔了一跤,脑部严重损伤,你挂了...\n");break;
case 3:Sout("你得了不治之症,你挂了...\n");break;
case 4:Sout("你掉进水里淹死了...\n");break;
case 5:Sout("你开车时连人带车翻进了水里,你挂了...\n");break;
case 6:Sout("你得了抑郁症,你挂了...\n");break;
case 7:Sout("你被几个帮派的人谋害了,你挂了...\n");break;
case 8:Sout("你家着火了,你挂了...\n");break;
case 9:Sout("你死了...\n");break;//敷衍
case 10:Sout("参观动物园时掉进老虎笼子,你挂了...\n");break; //离天下之大谱
}
Sleep(1000);
Die();
}
if (happened.length()>=20000)
hdcj(54);
if (__(gotmoney-things[93]-things[7])>=__(500000000000*1))
hdcj(57);
if (gotmoney>=__(500000000000))
hdcj(58);
if (things[16]>=96*30)
hdcj(4);
int i,m=0,j,k;
if (rand()%50==6&&gang[me.gang].peo[gang[me.gang].leader].name==name)
things[200]++;
while (rand()%250==7&&me.gang!=0)//中途要Break
{
do j=random(1,49); while(j!=me.gang);
Sout(gang[j].name+"向你发起了帮派战役,是否接受(Y/N)\n");
char l=_getch();
if (l=='N'||l=='n')
{
gangth+=gang[me.gang].name+"拒绝了"+gang[j].name+"发起的战斗,损失惨重/";
Sout("你没有接受,因此损失了");
int lost=random(2335,50000);
printf("%d",lost);
Sout("元钱\n");
things[7]-=lost;
gs();
break;
}
while(1)
{
cls();
printf("Num\t\tName\t\tatk\t\thp\t\tdfc\n");
for(i=1;i<=gang[me.gang].pnum;i++)
printf("%3d\t\t%s\t\t%d\t\t%d\t\t%d\t\t%d\n",i,gang[me.gang].peo[i].name.c_str(), gang[me.gang].peo[i].attack, gang[me.gang].peo[i].hp, gang[me.gang].peo[i].defence);
printf("Please choose one to fight with your enemy:(enter -1 to quit)");
int us,enemy;
cin>>us;
if (us==-1)
break;
enemy=random(1,gang[j].pnum);
cls();
printf("%s VS %s\n",gang[me.gang].peo[us].name.c_str(),gang[j].peo[enemy].name.c_str());
people a=gang[me.gang].peo[us];
people b=gang[j].peo[enemy];
int round=0;
while(a.hp>0&&b.hp>0)
{
Sout("Round ");
printf("%d\n",++round);
int sh;
sh=max(int(a.attack*random(8,12)/10.0-b.defence*random(8,12)/10.0),1);//打出负数就回血了,所以至少造成1点伤害,
Sout(a.name); //攻击和防御随机取0.8~1.2倍好玩一些
Sout("发起了攻击,对");
Sout(b.name);
Sout("造成了");
cout<<sh;
Sout("点伤害。\n");//以上这些可以合并
b.hp-=sh;
sh=max(int(b.attack*random(8,12)/10.0-a.defence*random(8,12)/10.0),1);
Sout(b.name);
Sout("发起了攻击,对");
Sout(a.name);
Sout("造成了");
cout<<sh;
Sout("点伤害。\n");
a.hp-=sh;
}
Sout("战斗结束。");
gang[me.gang].peo[us]=a;
gang[j].peo[enemy]=b;
if (a.hp<=0)
{
gangth+=gang[me.gang].peo[us].name+"在帮派战役中被"+gang[j].name+"的"+gang[j].peo[enemy].name+"杀死了/";
printf("失败!%s死亡",a.name.c_str());
dead(me.gang,us);//死后需清除其数据
if (a.name==name)
Die();
int lost=random(359932,5083921);
printf("损失%d元",lost);
things[7]-=lost;
}
if (b.hp<=0)
{
gangth+=gang[me.gang].peo[us].name+"在帮派战役中杀死了"+gang[j].name+"的"+gang[j].peo[enemy].name+"/";
int got=random(187903,3829183);
printf("胜利!获得%d元",got);
things[7]+=got,gotmoney+=got;
dead(j,enemy);
}
gs();
if (gang[me.gang].pnum==0)
{
gangth+=gang[me.gang].name+"在帮派战役中被"+gang[j].name+"灭了/";
Sout("你的帮派被灭掉了!\n");
Sleep(1000);
Sout("你损失了所有钱财!");
things[7]=0;
me.gang=0;
}
if (gang[j].pnum==0)
{
gangth+=gang[me.gang].name+"在帮派战役中被灭掉了"+gang[j].name+"/";
Sout(gang[j].name);
Sout("从此覆灭...");
Sleep(1000);
Sout("你获得大量金钱!\n");
int got=random(509835,8898372);
things[7]+=got,gotmoney+=got;
break;
}
}
break;
}
for(i=1;i<=50;i++)//帮派变化
if (i!=me.gang||gang[me.gang].peo[gang[me.gang].leader].name!=name)
{
if (!rand()%4)
{
k=1;
j=random(1,3);
if (!rand()%4)
k=0;
int a[3];
if (k)
{
j=min(50-gang[i].pnum,j);
for(int ij=1;ij<=j;ij++)
{
people newjoy=born(i);
join(i,gang[i].pnum,newjoy);
gangth+=newjoy.name+"加入了"+gang[i].name+"/";
}
break;
}
for(int ij=0;ij<j;ij++)
do
a[ij]=random(1,gang[i].pnum);
while(a[ij]==gang[i].leader);
if (i==me.gang)
for(int ij=0;ij<j;ij++)
if (gang[me.gang].peo[a[ij]].name==name)
{
Sout("你被帮主驱逐出了帮派...");
gs();
}
for(int ij=0;ij<j;ij++)
{
gangth+=gang[i].name+"的"+gang[i].peo[a[ij]].name+"被驱逐了/";
dead(i,a[ij]);
}
}
}
if (rand()%15==4)//newgang
for(int i=1;i<30;i++)
if (gang[i].pnum==0)
{
printf("New Gang %d has been built!",i);
gang[i].pnum=random(15,45);
gang[i].name=randstr(5,21);
printf("Named %s",gang[i].name.c_str());
for(int j=1;j<=gang[i].pnum;j++)
{
gang[i].peo[j]=born(i);
}
gang[i].leader=random(1,gang[i].pnum);
cls();
happened+=(gang[i].name+"has been built/");
gangth+=(gang[i].name+"has been built/");
break;
}
for(i=100;i<129;i++)
m+=(fost[i]==1);
things[189]=m;
if (things[189]>=27)
hdcj(5);
if (rand()%56==9)
switch(things[187])
{
case 1:Sout("一道闪电从天上劈了下来,");
if (rand()%2)
{
Sout("正好劈到你的脑袋上,你不明不白地去世了。");happened+=(name+"被闪电劈死了");hdcj(51);Die();//惨遭五雷轰顶
}
else
Sout("正好劈在你的面前,差点就命中你了。");
break;
}
color(things[186]);
hidden();
if (things[7]>=100000)
hdcj(7);
if (things[84]>=70)
hdcj(49);
bool wancheng=true;
if (things[9]<50)
wancheng=false;
if (wancheng)
for(int i=1;i<=49;i++)
if (things[i+99]==false)
wancheng=false;
if (wancheng)
hdcj(50);
sheng();
Write_File();
mwf();
if (things[2]>=1000)
hdcj(18);
if (baohu())
{
gs();
Write_File();
me.play+=clock(),exit(0);
}
cls();
if (things[8]<5)//强制睡觉
{
Sout("你没有精力了,按1强制睡觉");
char n;
do
{
n=_getch();
}
while(n!='1');
Sout("一个临时的坏觉,你的精力回了一半(水分-10 饱食度-10)");
things[8]=50;
things[3]-=10,things[4]-=10;
things[16]++;
things[97]=rand()%400+100;
things[93]+=things[93]*float(things[97]/100000.0);
gs();
things[187]=random(1,10);
switch(things[187])
{
case 1:Sout("天气预报:今日雷暴天气,不宜出行");break;//详见上方被雷劈
case 2:Sout("新闻:小森林传来不明怪叫声,专家称可能是一种叫树妖的生物发出的。树妖是一种由枯死的树木变成的怪物,异常凶猛");break;//确有其事
case 3:Sout("娱乐新闻:今日有一算命先生称我市市民"+name+"会事事不顺,该算命先生已被逮捕");break;//没准就成真了
case 4:Sout("你的眼前好像出现了一个黑影,你正想仔细看,他却不见了,你发现你还是在睡觉的位置");break;//这个...
case 5:Sout("特大新闻,特大新闻:我市银行遭犯罪分子抢劫,损失惨重。据银行人员说他们会尽力减少广大市民们的损失");break;//银行的钱会减少
default:Sout("天亮了,又是美好的一天");break;//理想状态
}
Sleep(3000);
gs();
}
if (things[3]<=0)
{
cout<<"你在挨饿!!!";
things[2]-=20;
}
if (things[4]<=0)
{
cout<<"你口干舌燥!!!";
things[2]-=20;
}
if (things[2]<=0)
Die();
if (things[16]>=30)
Birthday(),things[16]-=30;
}
。
|