📄 temperor.cpp
字号:
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
}
break;
case 26:
if (Player == 1)
{
GetLumberId(750,25,Player,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
}
else
{
GetLumberId(100,300,Player,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
}
break;
case 29:
if (Player == 1)
{
GetLumberId(550,35,Player,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
}
else
{
GetLumberId(100,300,Player,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
}
break;
case 31:
if (Player == 2)
{
GetLumberId(300,100,Player,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
}
else
{
GetLumberId(100,300,Player,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
}
break;
case 32:
if (Player == 1)
{
GetLumberId(300,60,Player,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
}
else
{
if (Player == 2)
{
GetLumberId(25,200,Player,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
}
else
{
GetLumberId(100,300,Player,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
}
}
break;
default:
GetLumberId(500,300,Player,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nX,
BuildPoint[Player][MAINBATTALION].BPoint->Draw.nY);
break;
}
if (Tsource[Player].Lumbersource.POS == CBFALSE)
{
//MessageBox(0,"No Lumber Source !","Error",MB_OK );
OutputDebugString( "No Lumber Source !\n" );
return;
}
}
Task.nParam1=0;
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);
Lumberworker[Player].Env=2;
}
//加入一个工人
void LumberAccedeToTeam(WORD Player)
{ UNIT_STRUCT * Pobject;
struct CTRL_TASK_STRUCT Task;
Assert(Lumberworker[Player].WorkerArrays[0] == CBFALSE);
Pobject=MAP_GetUnit(Lumberworker[Player].GeneralID);
//将领死了
if (EYE_IfUnitIsDead(Pobject) == TRUE)
{
Lumberworker[Player].GeneralID=CBNULL;
return;
}
if (BuildPoint[Player][MAINBATTALION].hPos != CBTRUE)
return;
//如果没钱生产
if (!RUN_CREATE_IfEnoughMoney(Player,MAINBATTALION_MAN))
{
//MessageBox( 0, "You Have No Money !", "Error", MB_OK );
OutputDebugString( "No Money To Sheng Chan A Lumber Worker !\n" );
Lumberworker[Player].Env=2;
return;
}
if (BuildPoint[Player][MAINBATTALION].BPoint->Status.nTaskID == QUXIAO
&&Pro[Player][0].ShengChanPos1 == CBTRUE)
{ //Pro.ShengChanPos1=0;
Assert (Lumberworker[Player].WorkerNum < WORKER_BASE);
CTRL_TASK_Clear( &Task );
Task.nID=BuildPoint[Player][MAINBATTALION].BPoint->nID;
Task.nTaskID=SHENGCHAN;
Task.nTaskIDEx=MAINBATTALION_MAN;
Task.bDone=1;
Task.nParam2=JRONELUMBER;
CTRL_TASK_DeployByComputer(Player,&Task);
}
else
{ Lumberworker[Player].WorkerArrays[0]=CBFALSE;
if (AccedeForLumber[Player].WorkerID != CBNULL
&&Lumberworker[Player].WorkerArrays[0] == CBFALSE
&&Lumberworker[Player].JRPos ==CBTRUE)
{ if (Lumberworker[Player].WorkerNum >= WORKER_BASE-13)
{ Lumberworker[Player].WorkerArrays[0]=CBTRUE;
}
Pro[Player][0].ShengChanPos1=CBTRUE;
Lumberworker[Player].JRPos=0;
CTRL_TASK_Clear( &Task );
Task.nID=AccedeForLumber[Player].WorkerID;
Task.nTaskID=JIARU;
Task.nParam1=AccedeForLumber[Player].ID;
Task.bDone=1;
AccedeForLumber[Player].WorkerID=CBNULL;
CTRL_TASK_DeployByComputer(Player,&Task);
Lumberworker[Player].Env=2;
}
}
}
//扫描当前地点的树是否被采光
WORD ScanLumberAlife(WORD X,WORD Y)
{
int ExCode;
if (X == CBNULL
||Y == CBNULL)
{
return 0;
}
ExCode=EYE_GetGResType(0,X,Y);
if (ExCode == QXZIYUAN)
{
return 1;
}
else
return 0;
}
void LumberTeamWork(WORD Player,WORD LevelPos)
{ WORD i;
UNIT_STRUCT * Pobject;
struct CTRL_TASK_STRUCT Task;
//Scan ironsource alife.
//? pause.
if (Tsource[Player].Lumbersource.X != CBNULL
&&Tsource[Player].Lumbersource.Y!= CBNULL)
{
//X=Tsource[Player].Lumbersource.X;
//Y=Tsource[Player].Lumbersource.Y;
X[Player]+=30;
Y[Player]+=30;
}
else
{
X[Player]+=60;
Y[Player]+=60;
}
if (ScanLumberAlife(Tsource[Player].Lumbersource.X,
Tsource[Player].Lumbersource.Y))
{
switch (LevelPos)
{
case 5:
if (Player == 3)
{
X[Player]+=30;
Y[Player]=20;
if (X[Player]>500)
X[Player]=5;
GetLumberId(X[Player],Y[Player],Player,Tsource[Player].Lumbersource.X,Tsource[Player].Lumbersource.Y);
}
else
{
X[Player]+=30;
Y[Player]+=30;
if (X[Player]>500)
X[Player]=5;
if (Y[Player]>500)
Y[Player]=5;
GetLumberId(X[Player],Y[Player],Player,Tsource[Player].Lumbersource.X,Tsource[Player].Lumbersource.Y);
}
break;
case 9:
if (Player == 3)
{
X[Player]+=30;
Y[Player]=10;
if (X[Player]>500)
X[Player]=5;
GetLumberId(X[Player],Y[Player],Player,Tsource[Player].Lumbersource.X,Tsource[Player].Lumbersource.Y);
}
else
{
X[Player]+=30;
Y[Player]+=30;
if (X[Player]>500)
X[Player]=5;
if (Y[Player]>500)
Y[Player]=5;
GetLumberId(X[Player],Y[Player],Player,Tsource[Player].Lumbersource.X,Tsource[Player].Lumbersource.Y);
}
break;
case 11:
if (Player == 3)
{
X[Player]+=30;
Y[Player]+=40;
if (X[Player]>500)
X[Player]=5;
GetLumberId(X[Player],Y[Player],Player,Tsource[Player].Lumbersource.X,Tsource[Player].Lumbersource.Y);
}
else
{
X[Player]+=30;
Y[Player]+=30;
if (X[Player]>500)
X[Player]=5;
if (Y[Player]>500)
Y[Player]=5;
GetLumberId(X[Player],Y[Player],Player,Tsource[Player].Lumbersource.X,Tsource[Player].Lumbersource.Y);
}
break;
case 16:
if (Player == 1)
{
X[Player]+=30;
Y[Player]=10;
if (X[Player]>500)
X[Player]=5;
GetLumberId(X[Player],Y[Player],Player,Tsource[Player].Lumbersource.X,Tsource[Player].Lumbersource.Y);
}
else
{
X[Player]+=30;
Y[Player]+=30;
if (X[Player]>500)
X[Player]=5;
if (Y[Player]>500)
Y[Player]=5;
GetLumberId(X[Player],Y[Player],Player,Tsource[Player].Lumbersource.X,Tsource[Player].Lumbersource.Y);
}
break;
case 22:
if (Player != GAME.nMe)
{
X[Player]+=30;
Y[Player]=30;
if (X[Player]>900)
X[Player]=5;
GetLumberId(X[Player],Y[Player],Player,Tsource[Player].Lumbersource.X,Tsource[Player].Lumbersource.Y);
}
else
{
X[Player]+=30;
Y[Player]+=30;
if (X[Player]>500)
X[Player]=5;
if (Y[Player]>500)
Y[Player]=5;
GetLumberId(X[Player],Y[Player],Player,Tsource[Player].Lumbersource.X,Tsource[Player].Lumbersource.Y);
}
break;
case 26:
if (Player == 1)
{
X[Player]+=30;
Y[Player]=10;
if (X[Player]>900)
X[Player]=5;
GetLumberId(X[Player],Y[Player],Player,Tsource[Player].Lumbersource.X,Tsource[Player].Lumbersource.Y);
}
else
{
X[Player]+=30;
Y[Player]+=30;
if (X[Player]>500)
X[Player]=5;
if (Y[Player]>500)
Y[Player]=5;
GetLumberId(X[Player],Y[Player],Player,Tsource[Player].Lumbersource.X,Tsource[Player].Lumbersource.Y);
}
break;
case 29:
if (Player == 1)
{
X[Player]+=30;
Y[Player]=22;
if (X[Player]>900)
X[Player]=5;
GetLumberId(X[Player],Y[Player],Player,Tsource[Player].Lumbersource.X,Tsource[Player].Lumbersource.Y);
}
else
{
X[Player]+=30;
Y[Player]+=30;
if (X[Player]>500)
X[Player]=5;
if (Y[Player]>500)
Y[Player]=5;
GetLumberId(X[Player],Y[Player],Player,Tsource[Player].Lumbersource.X,Tsource[Player].Lumbersource.Y);
}
break;
case 32:
if (Player == 1)
{
X[Player]+=30;
Y[Player]=32;
if (X[Player]>900)
X[Player]=5;
GetLumberId(X[Player],Y[Player],Player,Tsource[Player].Lumbersource.X,Tsource[Player].Lumbersource.Y);
}
else
{
if (Player == 2)
{
X[Player]=30;
Y[Player]+=30;
if (X[Player]>900)
X[Player]=5;
GetLumberId(X[Player],Y[Player],Player,Tsource[Player].Lumbersource.X,Tsource[Player].Lumbersource.Y);
}
else
{
X[Player]+=30;
Y[Player]+=30;
if (X[Player]>500)
X[Player]=5;
if (Y[Player]>500)
Y[Player]=5;
GetLumberId(X[Player],Y[Player],Player,Tsource[Player].Lumbersource.X,Tsource[Player].Lumbersource.Y);
}
}
break;
default:
X[Player]+=30;
Y[Player]+=30;
if (X[Player]>500)
X[Player]=5;
if (Y[Player]>500)
Y[Player]=5;
GetLumberId(X[Player],Y[Player],Player,Tsource[Player].Lumbersource.X,Tsource[Player].Lumbersource.Y);
break;
}
}
//scan general, alife if dead GeneralID=NULL.
if (Lumberworker[Player].GeneralID != CBNULL)
{ Pobject=MAP_GetUnit(Lumberworker[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 (EYE_IfUnitIsDead(Pobject) == TRUE)
{ Lumberworker[Player].GeneralID=CBNULL;
//将领死了
/*
for (i=1;i<Lumberworker[Player].WorkerNum;i++)
{
if (Lumberworker[Player].WorkerArrays[i] != CBNULL)
{
CTRL_TASK_Clear( &Task );
Task.bDone=1;
Task.nID=Lumberworker[Player].WorkerArrays[i];
Task.nTaskID=JIESHU;
CTRL_TASK_DeployByComputer(Player,&Task);
}
}
*/
//pause.
Lumberworker[Player].Env=0;
Lumberworker[Player].GeneralID=CBNULL;
EmAILumberPosClear(Player);
return;
}
//将领没死
else
{
for (i=1;i<WORKER_MAX;i++)
{ //assert(Ironworker.WorkerNum <= WORKER_MAX);
if (Lumberworker[Player].WorkerArrays[i] != CBNULL)
{ Pobject=MAP_GetUnit(Lumberworker[Player].WorkerArrays[i]);
if (EYE_IfUnitIsDead(Pobject) == TRUE)
{
Lumberworker[Player].WorkerNum--;
if (Lumberworker[Player].WorkerNum <= (WORKER_BASE-10))
{ Lumberworker[Player].WorkerArrays[0]=CBFALSE;
Lumberworker[Player].WorkerArrays[i]=CBNULL;
if (BuildPoint[Player][MAINBATTALION].hPos != CBTRUE)
continue;
AccedeForLumber[Player].ID=Lumberworker[Player].GeneralID;
Lumberworker[Player].Env=1;
continue;
}
}
}
}
Pobject=MAP_GetUnit(Lumberworker[Player].GeneralID);
Assert(Pobject->nType ==MAP_UNIT_TYPE_WGEN );
if (EYE_GetGResType(0,Pobject->Task.nParam2,Pobject->Task.nParam3) != 0)
{
if (Pobject->Task.nTaskID == YIDONG
||Pobject->Task.nTaskID == HUISONG)
goto LA;
ObeyP[Player][0].AttackPos1=CBNULL;
CTRL_TASK_Clear( &Task );
Task.nID=Lumberworker[Player].GeneralID;
Task.nTaskID=YUNSONG;
Task.nTaskIDEx=1;
Task.nTaskIDEx2=SHULIN;
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;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -