亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tgeneral.cpp

?? 赤壁之戰的游戲源代碼
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
/*	      [ GENERAL.C ]
 *    GENERAL.C FOR INSTINCE MODULE .
 *    Chbi Fight emperor interface module.
 *    Programmed By Y.Tian. No#Eye. WayAhead. Co. 1997.
 *    Data 3/18/1997.
 */

#include "stdafx.h"
#include "temperor.h"
#include "tgeneral.h"
#include "Assert.h"
#include "CBRDelay.h"

#define TY_JIMOU 

OBEYP ObeyP[5][4];

WORD JiMouIfOk(UNIT_STRUCT * Pobject,CTRL_JIMOU Jimou)
{
	switch (Jimou)
	{
			//激勵
		case JILI:
			break;

			//加速
		case JIASU:
			break;

			//減速
		case JIANSU:
			break;

			//遠視
		case YUANSHI:
			break;

			//混亂
		case HUNLUAN:
			break;

			//滾木
		case GUNMU:
			break;

			//埋伏
		case MAIFU:
			break;

			//恢復
		case HUIFU:
			break;

			//火攻
		case HUOGONG:
			break;
	}
	return (1);
}

BOOL GeneralJiMou(UNIT_STRUCT * Pobject,CTRL_JIMOU Jimou)
{
	struct CTRL_TASK_STRUCT Task;

	Assert(Pobject->nType == MAP_UNIT_TYPE_GEN
		||Pobject->nType == MAP_UNIT_TYPE_WGEN
		||Pobject->nType == MAP_UNIT_TYPE_SGEN);

	//if (JiMouIfOk(Pobject,Jimou) == 0)
	if (EYE_IfJiMou(Pobject->Gen.nID, Jimou) == 0)
		return (FALSE);

	if (RUN_MOULUE_IfEnough(Pobject,Jimou))
	{
		CTRL_TASK_Clear( &Task );
		Task.bDone=1;
		Task.nID=Pobject->nID;
		Task.nTaskID=JIMOU;
		Task.nTaskIDEx2=Jimou;

		switch (Jimou)
		{
			//激勵
		case JILI:
			Task.nTaskIDEx=2;
			Task.nParam1=Pobject->nID; 
			break;

			//加速
		case JIASU:
			Task.nTaskIDEx=2;
			Task.nParam1=Pobject->nID; 
			break;

			//減速
		case JIANSU:
			Task.nTaskIDEx=2;
			Task.nParam1=Pobject->nIDAttackMe; 
			break;

			//遠視
		case YUANSHI:
			Task.nTaskIDEx=2;
			Task.nParam1=Pobject->nID; 
			break;

			//混亂
		case HUNLUAN:
			Task.nTaskIDEx=2;
			Task.nParam1=Pobject->nIDAttackMe; 
			break;

			//滾木
		case GUNMU:
			break;

			//埋伏
		case MAIFU:
			Task.nTaskIDEx=2;
			break;

			//恢復
		case HUIFU:
			Task.nTaskIDEx=2;
			Task.nParam1=Pobject->nID; 
			break;

			//火攻
		case HUOGONG:
			Task.nTaskIDEx=1;
			Task.nParam1=0;
			break;
		}
	
		//WriteLogFile("JIMOU.TY","JIMOU\n");
		CTRL_TASK_DeployByComputer(Pobject->Draw.nPlayer,&Task);
		return (TRUE);
	}
	return (FALSE);
}

void IronGeneralProcess(WORD player)
{  WORD i;
   UNIT_STRUCT * Pobject;
   UNIT_STRUCT * Pobject1;
   struct CTRL_TASK_STRUCT Task;

   if (Ironworker[player].GeneralID == CBNULL )
     return;
   if (ObeyP[player][0].AttackPos == CBNULL)
   {  Pobject=MAP_GetUnit(Ironworker[player].GeneralID);

      //以防萬一
	   if (Pobject->nType == MAP_UNIT_TYPE_BUILDING
		   ||Pobject->nType == MAP_UNIT_TYPE_NONE
		  ||Pobject->nType == MAP_UNIT_TYPE_RESOURCE
		  ||Pobject->nType == MAP_UNIT_TYPE_SPECIAL
		  ||Pobject->nType == MAP_UNIT_TYPE_FLAG
		  ||Pobject->nType == MAP_UNIT_TYPE_SHIPYARD
		  ||Pobject->nType == MAP_UNIT_TYPE_LADDER)
		   return;

      if (Pobject->nIDAttackMe != MAP_DATA_NONE)
      {  
         Pobject1=MAP_GetUnit(Pobject->nIDAttackMe);
		 //以防萬一
	   if (Pobject1->nType == MAP_UNIT_TYPE_BUILDING
		   ||Pobject1->nType == MAP_UNIT_TYPE_NONE
		  ||Pobject1->nType == MAP_UNIT_TYPE_RESOURCE
		  ||Pobject1->nType == MAP_UNIT_TYPE_SPECIAL
		  ||Pobject1->nType == MAP_UNIT_TYPE_FLAG
		  ||Pobject1->nType == MAP_UNIT_TYPE_SHIPYARD
		  ||Pobject1->nType == MAP_UNIT_TYPE_LADDER)
		   return;

		 if (EYE_IfUnitIsDead(Pobject1) != TRUE)
		 {
			 /*

#ifdef TY_JIMOU 

			 switch(getrandom( 0,1 ))
			 {
			 case 0:
				 GeneralJiMou(Pobject,HUNLUAN);
				 break;
			 case 1:
				 GeneralJiMou(Pobject,JIANSU);
				 break;
			 }
#endif

			*/

			 CTRL_TASK_Clear( &Task );
			 if (Defancesoldier[player][0].GeneralID == CBNULL)
			 {
				 if (Defancesoldier[player][0].WorkerNum != 0)
				 {
					 for (i=0;i<=Defancesoldier[player][0].WorkerNum;i++)
					 {
						 if (Defancesoldier[player][0].WorkerArrays[i] != CBNULL)
						 {
							 Pobject1=MAP_GetUnit(Defancesoldier[player][0].WorkerArrays[i]);
							 //以防萬一
						   if (Pobject1->nType == MAP_UNIT_TYPE_BUILDING
							   ||Pobject1->nType == MAP_UNIT_TYPE_NONE
							  ||Pobject1->nType == MAP_UNIT_TYPE_RESOURCE
							  ||Pobject1->nType == MAP_UNIT_TYPE_SPECIAL
							  ||Pobject1->nType == MAP_UNIT_TYPE_FLAG
							  ||Pobject1->nType == MAP_UNIT_TYPE_SHIPYARD
							  ||Pobject1->nType == MAP_UNIT_TYPE_LADDER)
							   return;
							 if (EYE_IfUnitIsDead(Pobject1) != TRUE)
							 {
								 Task.bDone=1;
							     Task.nID=Defancesoldier[player][0].WorkerArrays[i];
								 Task.nTaskID=GONGJI;
								 Task.nTaskIDEx=2;
								 Task.nParam1=Pobject->nIDAttackMe;
								 CTRL_TASK_DeployByComputer(player,&Task);
							 }
							 else
							 {
								 continue;
							 }
						 }
					 }

				 }
				 return ;
			 }
			 else
			 {    Task.bDone=1;
				  Task.nID=Defancesoldier[player][0].GeneralID;
				  Task.nTaskID=GONGJI;
				  Task.nTaskIDEx=2;
				  Task.nParam1=Pobject->nIDAttackMe;
				  CTRL_TASK_DeployByComputer(player,&Task);
			 }
		 }
      }
      else   //Send obey.
      {  for (i=1;i<Ironworker[player].WorkerNum+1;i++)
		 {  //CTRL_TASK_Clear( &Task );
			if (Ironworker[player].WorkerArrays[i] != CBNULL)
			{  Pobject=MAP_GetUnit(Ironworker[player].WorkerArrays[i]);

					//以防萬一
			   if (Pobject->nType == MAP_UNIT_TYPE_BUILDING
				   ||Pobject->nType == MAP_UNIT_TYPE_NONE
					  ||Pobject->nType == MAP_UNIT_TYPE_RESOURCE
					  ||Pobject->nType == MAP_UNIT_TYPE_SPECIAL
					  ||Pobject->nType == MAP_UNIT_TYPE_FLAG
					  ||Pobject->nType == MAP_UNIT_TYPE_SHIPYARD
					  ||Pobject->nType == MAP_UNIT_TYPE_LADDER)
				   return;

			   if (EYE_IfUnitIsDead(Pobject) == TRUE)
			   {  Ironworker[player].WorkerNum--;
				  if (Ironworker[player].WorkerNum <= WORKER_BASE)
				  {  Ironworker[player].WorkerArrays[0]=CBFALSE;
					 Ironworker[player].WorkerArrays[i]=CBNULL;
					 if (BuildPoint[player][MAINBATTALION].hPos != CBTRUE)
			             continue;
					 AccedeForIron[player].ID=Ironworker[player].GeneralID;
					 Ironworker[player].Env=1;
					 continue;
				  }
			   }

			   if (Pobject->Task.nTaskID == YUNSONG)
			      Assert(Pobject->Task.nTaskIDEx != 1); 
			   Assert (Pobject->nType == 10);
			   if (EYE_IfUnitIsDead(Pobject) == TRUE)
				   continue;
			   if (Pobject->Status.nTaskID == DUSE
				   &&Pobject->Task.nTaskID == YUNSONG)
			   {
				   CTRL_TASK_Clear( &Task );
				   Task.nID=Pobject->nID;
				   Task.nTaskID=YUNSONG;
				   Task.nTaskIDEx=2;
				   Task.nTaskIDEx2=TIEKUANG;

				   if (BuildPoint[player][MAINBATTALION].hPos != CBTRUE)
					   continue;
				   Task.nParam1=TY_FindNearObject(0,
												  22,
												  BuildPoint[player][MAINBATTALION].BPoint->Draw.nX,
												  BuildPoint[player][MAINBATTALION].BPoint->Draw.nY);
				   if (Task.nParam1 == MAP_DATA_NONE)
					   return;
				   //Tsource[Player].Ironsource=Task.nParam1;
				   Pobject=MAP_GetUnit(Tsource[player].Ironsource);

				   Task.nParam4=TY_FindNearHome(player,Pobject->Draw.nX,Pobject->Draw.nY,2);
				   if (Task.nParam4 == MAP_DATA_NONE)
					   return;
				   Pobject=MAP_GetUnit(Task.nParam1);

				   /*
				   if (Pobject->Draw.nPlayer == GAME.nMe
					   ||Pobject->Draw.nPlayer != player)
					   WriteErrorFile("player.err",Pobject->Draw.nPlayer);
				   */
				   Task.bDone=1;
				   Assert(Task.nTaskIDEx == 2 );
				   CTRL_TASK_DeployByComputer(player,&Task);
				   continue;

			   }
			   else
			   {
				   if (Pobject->Status.nTaskID == DUSE
				   &&Pobject->Task.nTaskID == HUISONG)
				   {
					   CTRL_TASK_Clear( &Task );
					   Task.nID=Pobject->nID;
					   Task.nTaskID=HUISONG;
					   Task.nTaskIDEx=2;
					   Task.nTaskIDEx2=TIEKUANG;

					   if (BuildPoint[player][MAINBATTALION].hPos != CBTRUE)
					     continue;
					   Task.nParam4=TY_FindNearObject(0,
													  22,
													  BuildPoint[player][MAINBATTALION].BPoint->Draw.nX,
													  BuildPoint[player][MAINBATTALION].BPoint->Draw.nY);
					   if (Task.nParam4 == MAP_DATA_NONE)
						   return;
					   //Tsource[Player].Ironsource=Task.nParam1;
					   Pobject=MAP_GetUnit(Tsource[player].Ironsource);
					   Task.nParam1=TY_FindNearHome(player,Pobject->Draw.nX,Pobject->Draw.nY,2);
					   Pobject=MAP_GetUnit(Task.nParam1);
					   /*
					   if (Pobject->Draw.nPlayer == GAME.nMe
						   ||Pobject->Draw.nPlayer != player)
						   WriteErrorFile("player.err",Pobject->Draw.nPlayer);
*/
					   if (Task.nParam1 == MAP_DATA_NONE)
						   return;
					   
					   Task.bDone=1;
					   CTRL_TASK_DeployByComputer(player,&Task);
					   continue;
				   }
			   }

			   Pobject1=MAP_GetUnit(Ironworker[player].GeneralID);

			   //以防萬一
			   if (Pobject1->nType == MAP_UNIT_TYPE_BUILDING
				   ||Pobject1->nType == MAP_UNIT_TYPE_NONE
					  ||Pobject1->nType == MAP_UNIT_TYPE_RESOURCE
					  ||Pobject1->nType == MAP_UNIT_TYPE_SPECIAL
					  ||Pobject1->nType == MAP_UNIT_TYPE_FLAG
					  ||Pobject1->nType == MAP_UNIT_TYPE_SHIPYARD
					  ||Pobject1->nType == MAP_UNIT_TYPE_LADDER)
				   return;
			   
			   if (Pobject->Task.nTaskID == YUNSONG)
			   {
				   if (Pobject1->Task.nTaskID == YUNSONG)
				   {
					   if (Pobject->Task.nParam4 != Pobject1->Task.nParam4)
					   {
						     Pobject->Task.nParam4=Pobject1->Task.nParam4;
					   }

				   }
				   if (Pobject1->Task.nTaskID == HUISONG)
				   {
					   if (Pobject->Task.nParam4 != Pobject1->Task.nParam1)
					   {
						     Pobject->Task.nParam4=Pobject1->Task.nParam1;
					   }

				   }
			   }

			   if (Pobject->Task.nTaskID != HUISONG
				 &&Pobject->Task.nTaskID != YUNSONG
				 &&Pobject->nIDAttackMe == MAP_DATA_NONE)
				   if  (Tsource[player].Ironsource != CBNULL)
				   {  if (Pobject->Soldier.nResource != 0)
					  {  CTRL_TASK_Clear( &Task );   
						 Task.bDone=1;
						 Task.nID=Ironworker[player].WorkerArrays[i];
						 Task.nTaskID=HUISONG;
						 Task.nTaskIDEx=2;
						 Task.nTaskIDEx2=TIEKUANG;
						 Task.nParam1=Pro[player][0].HomeID;

						 Pobject1=MAP_GetUnit(Task.nParam1);
						 /*
						 if (Pobject1->Draw.nPlayer == GAME.nMe)
							 WriteLogFile("Player.ty","error1\n");
*/
						 Task.nParam4=Tsource[player].Ironsource;
						 if (Pro[player][0].HomeID == CBNULL)
							 return;
						 Assert(Task.nTaskIDEx == 2 );
						 CTRL_TASK_DeployByComputer(player,&Task);	
					  }
					  else
					  {   CTRL_TASK_Clear( &Task );
						  Task.bDone=1;
						  Task.nID=Ironworker[player].WorkerArrays[i];
						  Task.nTaskID=YUNSONG;
						  Task.nTaskIDEx=2;
						  Task.nTaskIDEx2=TIEKUANG;
						  Task.nParam1=Tsource[player].Ironsource;
						  Task.nParam4=Pro[player][0].HomeID;

						  Pobject1=MAP_GetUnit(Task.nParam4);
						  /*
						 if (Pobject1->Draw.nPlayer == GAME.nMe)
							 WriteLogFile("Player.ty","error1\n");
							 */

						  if (Pro[player][0].HomeID == CBNULL)
							 return;
						  Assert(Task.nTaskIDEx == 2 );
						  CTRL_TASK_DeployByComputer(player,&Task);	
					  }
				   }
			}
		 }
      }
   }

//General avoid.

}
void LumberGeneralProcess(WORD  player,WORD Level)
{  WORD i,ExCode;
   UNIT_STRUCT * Pobject;
   UNIT_STRUCT * Pobject1;
   struct CTRL_TASK_STRUCT Task;

   if (Lumberworker[player].GeneralID == CBNULL )
     return;

   if (Tsource[player].Lumbersource.X != CBNULL
     &&Tsource[player].Lumbersource.Y != CBNULL)
   {
	   ExCode=EYE_GetGResType(0,Tsource[player].Lumbersource.X,Tsource[player].Lumbersource.Y);

	   if (ExCode == QXZIYUAN)
	   {
		   switch (Level)
		   {
		   case 7:
			   if (player != GAME.nMe)
			   {
				   GetLumberId(20,150,player,
					   Tsource[player].Lumbersource.X,
					   Tsource[player].Lumbersource.Y);
			   }
			   else
			   {
				   GetLumberId(50,50,player,
					   Tsource[player].Lumbersource.X,
					   Tsource[player].Lumbersource.Y);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人精精品一区二区频| 在线免费精品视频| 精品国产百合女同互慰| 日本一区中文字幕| 日韩精品综合一本久道在线视频| 看电视剧不卡顿的网站| 久久久久青草大香线综合精品| 国产不卡视频一区| 亚洲欧美区自拍先锋| 欧美日韩www| 国产伦精品一区二区三区免费| 国产精品麻豆欧美日韩ww| 一本色道久久综合狠狠躁的推荐| 午夜视频在线观看一区二区三区| 欧美一区二区三区免费大片 | 亚洲精品中文在线影院| 欧美日韩一区二区三区在线看| 久久精品国产成人一区二区三区 | 精品国产欧美一区二区| 国产经典欧美精品| 亚洲精品写真福利| 欧美成人精品二区三区99精品| 成人网在线播放| 亚洲v中文字幕| 久久久久国产精品厨房| 欧美性淫爽ww久久久久无| 极品少妇一区二区三区精品视频| 中文字幕一区二区三区精华液| 欧美日韩国产综合视频在线观看| 国产精品456| 亚洲电影激情视频网站| 日韩欧美国产三级电影视频| www..com久久爱| 奇米在线7777在线精品| 亚洲欧美日韩精品久久久久| 久久一夜天堂av一区二区三区| 在线免费观看日本一区| 国产一区999| 日本不卡123| 亚洲欧美经典视频| 国产三级三级三级精品8ⅰ区| 欧美老人xxxx18| av亚洲精华国产精华精| 国模大尺度一区二区三区| 亚洲精品成人少妇| 国产精品无遮挡| 日韩精品一区二区在线观看| 91麻豆国产福利在线观看| 尤物av一区二区| 国产在线不卡视频| 精品日产卡一卡二卡麻豆| 奇米精品一区二区三区在线观看一 | 激情图区综合网| 欧美一区二区三区四区五区| 日本麻豆一区二区三区视频| 91日韩精品一区| 国产在线精品一区二区不卡了 | 精品视频在线免费观看| 91丝袜国产在线播放| 国产精品一级片在线观看| 美女视频一区二区| 亚洲第一福利一区| 玉米视频成人免费看| 亚洲欧美日韩在线| 最新日韩av在线| 国产精品理伦片| 国产精品久久久久久妇女6080| 欧美激情中文不卡| 欧美v日韩v国产v| 欧美一级黄色片| 欧美大片日本大片免费观看| 日韩欧美一二三四区| 日韩一本二本av| 日韩免费视频一区二区| 日韩小视频在线观看专区| 日韩亚洲欧美中文三级| 欧美高清视频在线高清观看mv色露露十八| 91黄色免费网站| 欧美午夜一区二区| 欧美久久高跟鞋激| 日韩欧美中文字幕一区| 日韩欧美电影在线| 精品久久人人做人人爽| 久久久久久久久免费| 国产性做久久久久久| 国产精品亲子伦对白| 日韩美女久久久| 一区二区三区日韩| 日韩电影在线观看电影| 精品一区二区三区在线观看| 国产一区欧美日韩| 北岛玲一区二区三区四区| 色综合久久久久综合体| 欧美精品日韩一本| wwww国产精品欧美| 国产精品欧美久久久久无广告| 亚洲人成7777| 日本美女一区二区三区| 国产乱子伦视频一区二区三区 | 国产乱一区二区| 不卡的电影网站| 在线观看欧美日本| 91精品综合久久久久久| 久久久三级国产网站| 中文字幕一区二区三| 五月天国产精品| 国产一区二区在线影院| 色偷偷久久人人79超碰人人澡| 欧美三级三级三级爽爽爽| 亚洲精品在线观看网站| 中文字幕一区av| 亚欧色一区w666天堂| 国产麻豆欧美日韩一区| 色综合久久综合中文综合网| 91精品国产综合久久福利软件 | 欧美一级久久久久久久大片| 久久精品视频一区二区三区| 一区二区三区四区在线播放| 另类中文字幕网| 欧美亚洲图片小说| 国产三级欧美三级| 三级影片在线观看欧美日韩一区二区| 国产麻豆成人精品| 欧美美女视频在线观看| 国产女同互慰高潮91漫画| 日本女人一区二区三区| 91同城在线观看| 国产亚洲综合性久久久影院| 亚洲成av人片一区二区三区| 成人午夜激情在线| 日韩一区二区影院| 亚洲福中文字幕伊人影院| 成人激情免费电影网址| 精品国产乱码久久| 午夜精品福利一区二区三区av| av午夜精品一区二区三区| 日韩视频一区在线观看| 亚洲图片欧美一区| 94-欧美-setu| 国产日韩欧美电影| 精品亚洲免费视频| 欧美精品 国产精品| 亚洲精品视频一区| av成人动漫在线观看| 国产欧美一区在线| 五月天丁香久久| 欧洲视频一区二区| 中文字幕在线不卡国产视频| 国产福利一区二区三区视频| 制服丝袜亚洲网站| 亚洲成人av中文| 在线观看日韩电影| 中文字幕一区av| 成人不卡免费av| 国产三级久久久| 国产成人自拍在线| 久久精品亚洲一区二区三区浴池| 久久精品国产亚洲a| 日韩一区二区三区视频在线| 日韩福利电影在线观看| 欧美日韩和欧美的一区二区| 亚洲成人av中文| 欧美人妇做爰xxxⅹ性高电影| 亚洲午夜视频在线| 欧美日韩一区三区四区| 亚洲aaa精品| 69堂精品视频| 蜜桃精品视频在线观看| 欧美一级二级三级蜜桃| 蓝色福利精品导航| 精品久久一区二区| 国产成人在线视频播放| 亚洲国产精品ⅴa在线观看| 不卡区在线中文字幕| 亚洲欧洲性图库| 欧美在线三级电影| 日韩avvvv在线播放| xf在线a精品一区二区视频网站| 国产精品自拍三区| 亚洲人成伊人成综合网小说| 欧美性受xxxx| 蜜臀久久久99精品久久久久久| 欧美videossexotv100| 国内精品自线一区二区三区视频| 国产欧美日韩另类一区| 色综合天天狠狠| 日韩影院免费视频| 久久天天做天天爱综合色| 高清av一区二区| 亚洲国产一区视频| 日韩午夜电影在线观看| 丁香婷婷综合激情五月色| 亚洲三级在线看| 欧美一区二区三级| 国产精品99久久久久久久女警 | 久久精品在线观看| 99麻豆久久久国产精品免费 | 精品欧美久久久| 成人免费高清在线观看| 亚洲午夜精品久久久久久久久|