📄 temperor.cpp
字号:
Task.bDone=1;
CTRL_TASK_DeployByComputer(Player,&Task);
}
LA:
Assert(Pobject->nType ==MAP_UNIT_TYPE_WGEN );
if (Pobject->Status.nTaskID == QUXIAO)
{
ObeyP[Player][0].AttackPos1=CBNULL;
CTRL_TASK_Clear( &Task );
Task.nID=Lumberworker[Player].GeneralID;
Task.nTaskID=YUNSONG;
Task.nTaskIDEx=1;
Task.nTaskIDEx2=SHULIN;
if (BuildPoint[Player][MAINBATTALION].hPos != CBTRUE)
return;
switch (LevelPos)
{
case 5:
if (Player != GAME.nMe)
{
GetLumberId(90,20,Player,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
}
break;
case 7:
if (Player != GAME.nMe)
{
GetLumberId(20,90,Player,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
}
break;
case 11:
if (Player != GAME.nMe)
{
GetLumberId(50,60,Player,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
}
break;
case 16:
if (Player == 1)
{
GetLumberId(150,10,Player,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
}
break;
case 22:
if (Player != GAME.nMe)
{
GetLumberId(150,30,Player,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
}
break;
case 26:
if (Player == 1)
{
GetLumberId(250,10,Player,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
}
break;
case 29:
if (Player == 1)
{
GetLumberId(250,30,Player,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
}
break;
case 32:
if (Player == 1)
{
GetLumberId(250,50,Player,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
}
else
{
if (Player == 2)
{
GetLumberId(50,250,Player,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
}
}
break;
default:
GetLumberId(10,60,Player,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
break;
}
Task.nParam1=0;
if (Tsource[Player].Lumbersource.POS == CBFALSE)
return;
Task.nParam2=Tsource[Player].Lumbersource.X;
Task.nParam3=Tsource[Player].Lumbersource.Y;
//Task.nParam4=BuildPoint[Player][MAINBATTALION].BPoint->nID;;
Task.nParam4=TY_FindNearHome(Player,Tsource[Player].Lumbersource.X,Tsource[Player].Lumbersource.Y,0);
if (Task.nParam4 == MAP_DATA_NONE)
return;
Task.bDone=1;
CTRL_TASK_DeployByComputer(Player,&Task);
}
}
Pobject=MAP_GetUnit(Lumberworker[Player].GeneralID);
if (Pobject->Task.nTaskID == QUXIAO)
{
CTRL_TASK_Clear( &Task );
Task.nID=Lumberworker[Player].GeneralID;
Task.nTaskID=YUNSONG;
Task.nTaskIDEx=1;
Task.nTaskIDEx2=SHULIN;
if (BuildPoint[Player][MAINBATTALION].hPos != CBTRUE)
return;
switch (LevelPos)
{
case 5:
if (Player == 3)
{
GetLumberId(60,30,Player,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
}
break;
case 11:
if (Player == 3)
{
GetLumberId(60,60,Player,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
}
break;
case 16:
if (Player == 1)
{
GetLumberId(260,10,Player,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
}
break;
case 22:
if (Player != GAME.nMe)
{
GetLumberId(150,30,Player,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
}
break;
case 26:
if (Player == 1)
{
GetLumberId(360,10,Player,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
}
break;
case 29:
if (Player == 1)
{
GetLumberId(360,30,Player,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
}
break;
case 32:
if (Player == 1)
{
GetLumberId(360,30,Player,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
}
else
{
if (Player == 2)
{
GetLumberId(30,250,Player,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
}
}
break;
default:
GetLumberId(16,60,Player,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
break;
}
if (Tsource[Player].Lumbersource.POS == CBFALSE)
return;
Task.nParam1=0;
Task.nParam2=Tsource[Player].Lumbersource.X;
Task.nParam3=Tsource[Player].Lumbersource.Y;
Task.nParam4=TY_FindNearHome(Player,Tsource[Player].Lumbersource.X,Tsource[Player].Lumbersource.Y,0);
/*
if (BuildPoint[Player][MAINBATTALION].hPos == CBTRUE)
Task.nParam4=BuildPoint[Player][MAINBATTALION].BPoint->nID;
else
return;
*/
if (Task.nParam4 == MAP_DATA_NONE)
return;
Task.bDone=1;
CTRL_TASK_DeployByComputer(Player,&Task);
}
}
}
void LumberworkerProcess(WORD Player,WORD LevelPos)
{
switch(Lumberworker[Player].Env)
{ case 0:
//
LumberTeamInit(Player);
break;
//加入
case 1:
LumberAccedeToTeam(Player);
break;
//处理
case 2:
LumberTeamWork(Player,LevelPos);
break;
//组建
case 3:
LumberComponentTeam(Player,LevelPos);
break;
default:
break;
}
}
//--- Lumber worker process end.
//--- food worker process start.
//扫描当前地点的树是否被采光
WORD ScanFoodAlife(WORD X,WORD Y)
{
int ExCode;
ExCode=EYE_GetGResType(0,X,Y);
if (ExCode == QXZIYUAN)
{
return 1;
}
else
return 0;
}
void GetFoodId(WORD NL,WORD NR,WORD Player)
{ WORD i,j;
signed short MainLX,MainRX;
signed short MainLY,MainRY;
int ExCode;
WORD POS=0;
if (BuildPoint[Player][MAINBATTALION].hPos != CBTRUE)
return;
MainLX=BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX-NL;
MainRX=BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX+NL;
MainLY=BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY-NR;
MainRY=BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY+NR;
if (MainLX<0)
MainLX=15;
if (MainRX>MAP_Lib.szNum.cx)
MainRX=(WORD)MAP_Lib.szNum.cx;
if (MainLY<0)
MainLY=15;
if (MainRY>MAP_Lib.szNum.cy)
MainRY=(WORD)MAP_Lib.szNum.cy;
//for (j=MainLX;j<MainRX;j+=5)
for (i=MainLY;i<MainRY;i+=5)
{
if (POS == 1)
return;
//for (i=MainLY;i<MainRY;i+=5)
for (j=MainLX;j<MainRX;j+=5)
{
ExCode=EYE_GetGResType(0,j,i);
if (ExCode == 1)
{
Tsource[Player].Foodsource.X=j;
Tsource[Player].Foodsource.Y=i;
Tsource[Player].Foodsource.POS=CBTRUE;
POS=1;
break;
}
}
}
}
void FoodTeamInit(WORD Player)
{ //WORD i;
//WORD num;
//UNIT_STRUCT * Pobject;
struct CTRL_TASK_STRUCT Task;
CTRL_TASK_Clear( &Task );
//如果没钱生产
if (!RUN_CREATE_IfEnoughMoney(Player,MAINBATTALION_MAN))
{
//MessageBox( 0, "You Have No Money !", "Error", MB_OK );
OutputDebugString( "No Money To Sheng Chan A Food Worker !\n" );
return;
}
if (BuildPoint[Player][MAINBATTALION].hPos != CBTRUE)
return;
Task.nParam1=HaveGeneral(Player);
if (Task.nParam1 == CBNULL)
return;
//Scan is join or build ?
if (Foodworker[Player].WorkerNum <= WORKER_BASE-14)
{
//if (Pro.ShengChanFinish == CBTRUE)
if (Foodworker[Player].ShengChanFinish == CBTRUE
&&Pro[Player][0].Busy == 0)
{ Pro[Player][0].Busy=1;
Task.nID=BuildPoint[Player][MAINBATTALION].BPoint->nID;
Task.nTaskID=SHENGCHAN;
Task.nTaskIDEx=MAINBATTALION_MAN;
Task.bDone=1;
Task.nParam2=SCFOOD;
CTRL_TASK_DeployByComputer(Player,&Task);
Foodworker[Player].ShengChanFinish=0;
Foodworker[Player].WorkerArrays[0]=CBFALSE;
}
else
return ;
}
if (Foodworker[Player].WorkerNum >= WORKER_BASE-13)
{ Foodworker[Player].WorkerArrays[0]=CBTRUE;
CTRL_TASK_Clear( &Task );
Task.nID=Foodworker[Player].WorkerArrays[1];
Task.nTaskID=ZUJIAN;
Task.nTaskIDEx=MAP_UNIT_TYPE_WGEN;
Task.nParam1=GetGeneral(Player,FOOD);
if (Task.nParam1 == CBNULL)
return;
Task.nParam2=ZJONEFOOD;
Task.bDone=1;
Foodworker[Player].GeneralFile=Task.nParam1;
CTRL_TASK_DeployByComputer(Player,&Task);
Foodworker[Player].Env=3;
}
}
//组建部队
void FoodComponentTeam(WORD Player,WORD LevelPos)
{ //WORD i;
struct CTRL_TASK_STRUCT Task;
if (BuildPoint[Player][MAINBATTALION].hPos != CBTRUE)
return;
//if (Ironworker.ZJFinish == CBTRUE)
if (Pro[Player][0].FoodFinish == 0)
{ CTRL_TASK_Clear( &Task );
//if (Ironworker.ZJFinish == CBTRUE)
{ Foodworker[Player].ZJFinish=0;
Task.nID=Foodworker[Player].WorkerArrays[Pro[Player][0].Foodworkernum];
Task.nTaskID=ZUJIAN;
Task.nTaskIDEx=MAP_UNIT_TYPE_WGEN;
Task.nParam1=Foodworker[Player].GeneralFile;
Task.nParam2=ZJOTHERFOOD;
Task.bDone=1;
CTRL_TASK_DeployByComputer(Player,&Task);
}
return;
}
if (Foodworker[Player].GeneralID == CBNULL)
return;
CTRL_TASK_Clear( &Task );
Task.nID=Foodworker[Player].GeneralID;
Task.nTaskID=YUNSONG;
Task.nTaskIDEx=1;
Task.nTaskIDEx2=MAITIAN;
switch (LevelPos)
{
case 5:
GetFoodId(30,130,Player);
if (Tsource[Player].Foodsource.POS == CBFALSE)
{
GetFoodId(30,180,Player);
if (Tsource[Player].Foodsource.POS == CBFALSE)
{
GetFoodId(30,280,Player);
//MessageBox(0,"No Food Source !","Error",MB_OK );
OutputDebugString( "No Food Source !\n" );
return;
}
}
break;
case 7:
GetFoodId(50,130,Player);
if (Tsource[Player].Foodsource.POS == CBFALSE)
{
GetFoodId(30,180,Player);
if (Tsource[Player].Foodsource.POS == CBFALSE)
{
GetFoodId(130,80,Player);
//MessageBox(0,"No Food Source !","Error",MB_OK );
OutputDebugString( "No Food Source !\n" );
return;
}
}
break;
case 9:
GetFoodId(150,30,Player);
if (Tsource[Player].Foodsource.POS == CBFALSE)
{
GetFoodId(180,10,Player);
if (Tsource[Player].Foodsource.POS == CBFALSE)
{
GetFoodId(380,380,Player);
//MessageBox(0,"No Food Source !","Error",MB_OK );
OutputDebugString( "No Food Source !\n" );
return;
}
}
break;
case 16:
GetFoodId(150,20,Player);
if (Tsource[Player].Foodsource.POS == CBFALSE)
{
GetFoodId(230,20,Player);
if (Tsource[Player].Foodsource.POS == CBFALSE)
{
GetFoodId(330,23,Player);
//MessageBox(0,"No Food Source !","Error",MB_OK );
OutputDebugString( "No Food Source !\n" );
return;
}
}
break;
case 32:
if (Player == 1)
{
GetFoodId(150,40,Player);
if (Tsource[Player].Foodsource.POS == CBFALSE)
{
GetFoodId(230,40,Player);
if (Tsource[Player].Foodsource.POS == CBFALSE)
{
GetFoodId(330,53,Player);
//MessageBox(0,"No Food Source !","
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -