📄 mymessage.h
字号:
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 + -