⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mymessage.h

📁 gamecode 很不错的小游戏源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
				Flip();
				if(maps.CanBuild(tempx,tempy,bkind))
				{
					int owner=maps.SearchOwnerB(tempx,tempy);//取得主人ID
					if(owner!=MYERROR && owner!=PlayerID && owner!=BEGOVT)//走到了别人的地盘  :(
					{
						///////////////////////////////////////////
						//寻找通行证
						bool usepassp;
						MyTool *temp=new MyTool;
						for(int i=1;i<=players[PlayerID].tools.listlength();i++)
						{
							players[PlayerID].tools.getelem(i,temp);
							if(temp->kind==PASSPORT)
							{
								usepassp=players[PlayerID].UseTool(i);
								//PrintText(pBBuf,310,310,"有通行证!");
								//Flip();
								break;
							}
						}
						if(usepassp==true)
						{
							MyMenus menu(150,260,"pics/menu.fim",280,120,GetRect(0,0,280,120));
							char *howmany[]={"确定"};
							menu.ShowtMenu("成功使用通行证",howmany,1);
							mygame.ppnum++;
							PlayDirectSound(success);
							GL_GamePicShowSilence();
							Flip();
							break;
						}
						///////////////////////////////////////////
						else	//无通行证,给过路费
						{
							showlosemoney();
							PlayDirectSound(losemoney);
							players[PlayerID].ChangeMoney(-50);
							players[owner].ChangeMoney(50);
							PressKey(VK_RETURN,0);
							GL_GamePicShowSilence();
							Flip();
							break;
						}
					}//不在自己的地盘
					if(owner!=BEGOVT)
					{
						//在一个没有房子的地方上:
						int buy;
						MyMenus mymenu(360,260,"pics/menu.fim",280,120,GetRect(0,0,280,120));
						char* choice[]={"购买","不买"};				
						
						if( (buy=mymenu.ShowtMenu("好地方,修座房子吧!",choice,2) )==0)
						{	
							long costmoney=getfactorycost(bkind);
							if( players[PlayerID].GetMoney() > costmoney)
							{		
								if(maps.Build(tempx,tempy,PlayerID,bkind))
								{
									//对角色相应的属性进行改变,并作图。
									if(bkind==BUIGROUND)
									{
										players[PlayerID].buildingnum++;
										players[PlayerID].ChangeMoney(-costmoney);
										players[PlayerID].ChangeExp(5);
										players[PlayerID].contribute+=1;
									}
									
									else if(bkind==BUILDFACTORY0 || bkind==BUILDFACTORY1 || \
										bkind==BUILDFACTORY2 || bkind==BUILDFACTORY3 || \
										bkind==BUILDFACTORY4 || bkind==BUILDFACTORY5)
									{
										players[PlayerID].ChangeMoney(-costmoney);
										players[PlayerID].factorynum++;
										players[PlayerID].ChangeExp(10);
										players[PlayerID].contribute+=4;
									}
									//MakeGround();
									PlayDirectSound(build);				
									GL_GamePicShowSilence();//显示背景图片。
									Flip();									
								}
							}//如果有钱。
							else
							{
								shownomoney();
								GL_GamePicShowSilence();//显示背景图片。
								Flip();
							}//else 没有钱...
						}//if buy
					}
					else	//不买东西。
					{
						GL_GamePicShowSilence();//显示背景图片。
						Flip();
					}
					
				}//if CanBuild
				//else则没到别人地方也没有可新修的房子 
				//if CanLeveUp
				else if(maps.CanLevelup(tempx,tempy,bkind))
				{
					int owner=maps.SearchOwnerB(tempx,tempy);//取得主人ID
					if(owner!=MYERROR && owner!=PlayerID && owner!=BEGOVT)//走到了别人的地盘  :(
					{
						///////////////////////////////////////////
						//寻找通行证
						bool usepassp;
						MyTool *temp=new MyTool;
						for(int i=1;i<=players[PlayerID].tools.listlength();i++)
						{
							players[PlayerID].tools.getelem(i,temp);
							if(temp->kind==PASSPORT)
							{
								usepassp=players[PlayerID].UseTool(i);
								//PrintText(pBBuf,310,310,"有通行证!");
								//Flip();
								break;
							}
						}
						if(usepassp==true)
						{
							MyMenus menu(150,260,"pics/menu.fim",280,120,GetRect(0,0,280,120));
							char *howmany[]={"确定"};
							menu.ShowtMenu("成功使用通行证",howmany,1);
							mygame.ppnum++;
							PlayDirectSound(success);
							GL_GamePicShowSilence();
							Flip();
							break;
						}
						///////////////////////////////////////////
						else	//无通行证,给过路费
						{
							showlosemoney();
							PlayDirectSound(losemoney);
							players[PlayerID].ChangeMoney(-50);
							players[owner].ChangeMoney(50);
							PressKey(VK_RETURN,0);
							GL_GamePicShowSilence();
							Flip();
							break;
						}
					}//不在自己的地盘
					//可以升级:
					else if(owner!=BEGOVT)
					{
						int levelup;
						MyMenus mymenu(360,260,"pics/menu.fim",280,120,GetRect(0,0,280,120));
						char* choice[]={"升级","放弃"};				
						
						if( (levelup=mymenu.ShowtMenu("现在升级房子吗?",choice,2) )==0)
						{							
							if( players[PlayerID].GetMoney() >50)
							{		
								if(maps.Levelup(tempx,tempy,PlayerID))
								{
									//对角色相应的属性进行改变,并作图。
									players[PlayerID].ChangeMoney(-50);
									players[PlayerID].ChangeExp(2);
									
									PlayDirectSound(success);
									//加角色功勋
									++players[PlayerID].contribute;
									GL_GamePicShowSilence();//显示背景图片。
									Flip();									
								}
							}//如果有钱。
							else
							{
								shownomoney();
								GL_GamePicShowSilence();//显示背景图片。
								PlayDirectSound(fail);
								Flip();							
							}//else 没有钱...
						}//if 升级
					}
					else	//不升级
					{
						GL_GamePicShowSilence();//显示背景图片。
						Flip();
					}
					
				}//if CanLevelup
				//房屋已经升级,不是自己的地盘:
				int owner=maps.SearchOwnerB(tempx,tempy);//取得主人ID
				if(owner==BEGOVT)
				{
					int buy=false;
					MyMenus mymenu(360,260,"pics/menu.fim",280,120,GetRect(0,0,280,120));
					char* choice[]={"收购","不要"};
					buy=mymenu.ShowtMenu("是否收购此地?",choice,2);
					long costmoney=getfactorycost(bkind);
					if(buy==0 && players[PlayerID].GetMoney()>costmoney)
					{
						if(bkind==BUIGROUND)
						{
							if(maps.ChangeOwnerB(tempx,tempy,BEGOVT,PlayerID))
							{
								players[PlayerID].buildingnum++;
								//音效:成功
								PlayDirectSound(success);
								GL_GamePicShowSilence();
								Flip();
								break;
							}
						}
						//为工厂
						else if(bkind==BUILDFACTORY0 || bkind==BUILDFACTORY1 || \
										bkind==BUILDFACTORY2 || bkind==BUILDFACTORY3 || \
										bkind==BUILDFACTORY4 || bkind==BUILDFACTORY5)
						{
							if(maps.ChangeOwnerF(tempx,tempy,BEGOVT,PlayerID))
							{
								players[PlayerID].factorynum++;
								PlayDirectSound(success);
							}
						}
						
						else
						{
							//音效:失败
							//显示金钱不够
							shownomoney();
							PlayDirectSound(fail);
							GL_GamePicShowSilence();
							Flip();
							break;
						}
					}
					else
					{
						//音效:失败
						PlayDirectSound(fail);
						GL_GamePicShowSilence();
						Flip();
						break;
					}	
				}
				if(owner!=MYERROR && owner!=PlayerID && owner!=BEGOVT)//走到了别人的地盘  :(
				{
					///////////////////////////////////////////
					//寻找通行证
					bool usepassp;
					MyTool *temp=new MyTool;
					for(int i=1;i<=players[PlayerID].tools.listlength();i++)
					{
						players[PlayerID].tools.getelem(i,temp);
						if(temp->kind==PASSPORT)
						{
							usepassp=players[PlayerID].UseTool(i);
							//PrintText(pBBuf,310,310,"有通行证!");
							//Flip();
							break;
						}
					}
					if(usepassp==true)
					{
						MyMenus menu(150,260,"pics/menu.fim",280,120,GetRect(0,0,280,120));
						char *howmany[]={"确定"};
						menu.ShowtMenu("成功使用通行证",howmany,1);
						mygame.ppnum++;
						PlayDirectSound(success);
						GL_GamePicShowSilence();
						Flip();
						break;
					}
					///////////////////////////////////////////
					else	//无通行证,给过路费
					{
						showlosemoney();
						PlayDirectSound(losemoney);
						players[PlayerID].ChangeMoney(-50);
						players[owner].ChangeMoney(50);
						PressKey(VK_RETURN,0);
						GL_GamePicShowSilence();
						Flip();
						break;
					}
				}//不在自己的地盘

			}
			break;
		//使用高级汽车:
		case USUPERCAR:
			{
				players[PlayerID].doubspeed=true;
				mygame.scnum++;//回复总的数量
				PlayDirectSound(suresnd);
			}
			break;
		//使用停留卡
		case USTOPCARD:
			{
				players[PlayerID].stop=true;
				mygame.stcnum++;
				PlayDirectSound(suresnd);
			}
			break;
		//使用乌龟卡
		case UTORTCARD:
			{
				players[PlayerID].onestep=true;
				mygame.tcnum++;
				PlayDirectSound(suresnd);
			}
			break;
		//使用遥控色子
		case UREMODICE:
			{
				GL_GamePicShowSilence();
				MyMenus mymenu(150,260,"pics/menu1.fim",540,120,GetRect(0,0,540,120));
				char* choice[]={"1","2","3","4","5","6"};
				//返回值从0开始
				players[PlayerID].choosestep=(6-mymenu.ShowtMenu("选择:",choice,6));
				mygame.rdnum++;
				PlayDirectSound(suresnd);
				GL_GamePicShowSilence();
				Flip();
			}
			break;
		//使用经济管理人:
		case UCOMPMANAGER:
			{
				int si=0;
				int slf=maps.pfactory.listlength();
				MyFactory tempf;
				while(si++!=slf)
				{
					maps.pfactory.getelem(si,tempf);
					if(tempf.owner==PlayerID)
					{
						tempf.affe_money+=0;
						maps.pfactory.delelem(si);
						maps.pfactory.insert(tempf,si);
					}
				}
				PlayDirectSound(success);
				GL_GamePicShowSilence();
				Flip();
			}
			break;
		case GETLUCKY:
			{
				if(msgstruct.value.value==1)//加卡片
				{
					MyMenus usemenu(300,260,"pics/menu.fim",280,120,GetRect(0,0,280,120));
					char* choice[]={"确定"};					
					GL_GamePicShowSilence();
					int kind=rand()%10+1;
					switch (kind)//按价格和性能分布几率
					{
					case 1:
					case 2:
					case 3:
						{
							MyTool *tool;
							stopcard *sc=new stopcard;
							tool=(MyTool*)sc;
							players[PlayerID].ChangeMoney(sc->GetPrice());
							players[PlayerID].BuyTools(tool,PlayerID);
							mygame.stcnum--;
							usemenu.ShowtMenu("您得到了停留卡",choice,1);
						}
						break;
					case 4:
					case 5:
						{
							MyTool *tool;
							tortcard *tc=new tortcard;
							tool=(MyTool*)tc;
							players[PlayerID].ChangeMoney(tc->GetPrice());
							players[PlayerID].BuyTools(tool,PlayerID);
							mygame.tcnum--;
							usemenu.ShowtMenu("您得到乌龟卡",choice,1);
						}
						break;
					case 6:
					case 7:
						{
							MyTool *tool;
							passport *pp=new passport;
							tool=(MyTool*)pp;
							players[PlayerID].ChangeMoney(pp->GetPrice());
							players[PlayerID].BuyTools(tool,PlayerID);
							mygame.ppnum--;
							usemenu.ShowtMenu("您得到通行证",choice,1);
						}
						break;
					case 8:
					case 9:
						{
							MyTool *tool;
							supercar *sc=new supercar;
							tool=(MyTool*)sc;
							players[PlayerID].ChangeMoney(sc->GetPrice());
							players[PlayerID].BuyTools(tool,PlayerID);
							mygame.scnum--;
							usemenu.ShowtMenu("您得到汽车",choice,1);
						}
						break;
					case 10:
						{
							MyTool *tool;
							remodice *rd=new remodice;
							tool=(MyTool*)rd;
							players[PlayerID].ChangeMoney(rd->GetPrice());
							players[PlayerID].BuyTools(tool,PlayerID);
							mygame.rdnum--;
							usemenu.ShowtMenu("您得到遥控色子",choice,1);
						}
						break;
					}
					PlayDirectSound(success);
					GL_GamePicShowSilence();
					Flip();
				}
				else//加钱
				{
					MyMenus usemenu(300,260,"pics/menu.fim",280,120,GetRect(0,0,280,120));
					char* choice[]={"确定"};					
					GL_GamePicShowSilence();
					usemenu.ShowtMenu("您得到了一笔钱",choice,1);
					long luckym=rand()%500;
					if(luckym<=200)
						luckym+=200;
					players[PlayerID].ChangeMoney(luckym);
					PlayDirectSound(suresnd);
					GL_GamePicShowSilence();
					Flip();
				}
			}
			break;
		default:		//错误消息。
			return;
		}
	}
}

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -