人生之路1.20优化

        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;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值