📄 stall 2.cpp.svn-base
字号:
#include "StdAfx.h"
#define BASERESOURCESGAIN 10
#define RESOURCESWARNINGTHRESHOLD 1800
#define RESOURCESWINVAL 2000
#define RESOURCESTOGAINBH 200
#define BASEBHGAIN 14
uint32 buffentrys[3] = {180380,180362,180146};
// AB define's
#define ABCAPTUREDSTABLES_EUROPEANS 0x6E7 //1767
#define ABCAPTUREDSTABLES_CHINESE 0x6E8 //1768
#define ABCAPTURINGSTABLES_EUROPEANS 0x6E9 //1769
#define ABCAPTURINGSTABLES_CHINESE 0x6EA //1770
// 0x6EB is unknown
#define ABCAPTUREDFARM_EUROPEANS 0x6EC //1772 // 1 is captured by the _EUROPEANS
#define ABCAPTUREDFARM_CHINESE 0x6ED // 1773 / 1 is captured by the _CHINESE
#define ABCAPTURINGFARM_EUROPEANS 0x6EE // 1774 1 is capturing by the _EUROPEANS
#define ABCAPTURINGFARM_CHINESE 0x6EF // 1775 1 is capturing by the _CHINESE
#define ABCAPTUREDBLACKSMITH_EUROPEANS 0x6F6 // 1782
#define ABCAPTUREDBLACKSMITH_CHINESE 0x6F7 //1783
#define ABCAPTURINGBLACKSMITH_EUROPEANS 0x6F8 //1784
#define ABCAPTURINGBLACKSMITH_CHINESE 0x6F9 //1785
// 0x6FA is unknown
#define ABCAPTUREDGOLDMINE_EUROPEANS 0x6FB //1787
#define ABCAPTUREDGOLDMINE_CHINESE 0x6FC//1788
#define ABCAPTURINGGOLDMINE_EUROPEANS 0x6FD//1789
#define ABCAPTURINGGOLDMINE_CHINESE 0x6FE//1790
// 0x6FF is unknown
#define ABCAPTUREDLUMBERMILL_EUROPEANS 0x700//1792
#define ABCAPTUREDLUMBERMILL_CHINESE 0x701//1793
#define ABCAPTURINGLUMBERMILL_EUROPEANS 0x702//1794
#define ABCAPTURINGLUMBERMILL_CHINESE 0x703//1795
#define ABSHOWSTABLEICON 0x732//1842
#define ABSHOWGOLDMINEICON 0x733//1843
#define ABSHOWLUMBERMILLICON 0x734//1844
#define ABSHOWFARMICON 0x735//1845
#define ABSHOWBACKSMITHICON 0x736//1846
/* AB Battleground Data */
static float GraveyardLocations[ABNUMCONTROLPOINTS][3] = {
{ 1201.869507f, 1163.130615f, 56.285969f }, // STABLES
{ 834.726379f, 784.978699f, 57.081944f }, // FARM
{ 1016.588318f, 955.184692f, 42.828693f }, // BLACKSMITH
{ 1211.523682f, 781.556946f, 82.709511f }, // MINE
{ 772.755676f, 1213.113770f, 15.797392f }, // LUMBERMILL
};
static float NoBaseGYLocations[2][3] = {
{ 1354.699951f, 1270.270020f, 11.129100f }, // _EUROPEANS
{ 713.710022f, 638.364014f, 10.599900f }, // _CHINESE
};
static const char * ControlPointNames[ABNUMCONTROLPOINTS] = {
"Stable", // STABLE
"Farm", // FARM
"Blacksmith", // BLACKSMITH
"Mine", // MINE
"Lumber Mill", // LUMBERMILL
};
static uint32 ControlPointGoIds[ABNUMCONTROLPOINTS][ABNUMSPAWNTYPES] = {
// NEUTRAL _EUROPEANSATTACK _CHINESEATTACK _EUROPEANSCONTROLLED _CHINESECONTROLLED
{ 180087, 180085, 180086, 180076, 180078 }, // STABLE
{ 180089, 180085, 180086, 180076, 180078 }, // FARM
{ 180088, 180085, 180086, 180076, 180078 }, // BLACKSMITH
{ 180091, 180085, 180086, 180076, 180078 }, // MINE
{ 180090, 180085, 180086, 180076, 180078 }, // LUMBERMILL
};
static float ControlPointCoordinates[ABNUMCONTROLPOINTS][4] = {
{ 1166.779541f, 1200.147583f, 56.701763f, 2.251474f }, // STABLE
{ 806.2484741f, 874.2167358f, 55.9936981f, 0.8377580f }, // FARM
{ 977.0503540f, 1046.5208740f, 44.8276138f, 0.5410520f }, // BLACKSMITH
{ 1146.9224854f, 848.1899414f, 110.9200210f, 2.4260077f }, // MINE
{ 856.141907f, 1148.902100f, 11.184692f, 2.303835f }, // LUMBERMILL
};
static float ControlPointRotations[ABNUMCONTROLPOINTS][2] = {
{ 0.9025853f, 0.4305111f }, // STABLE
{ 0.4067366f, 0.9135454f }, // FARM
{ 0.2672384f, 0.9636304f }, // BLACKSMITH
{ 0.9366722f, 0.3502073f }, // MINE
{ 0.9135455f, 0.4067366f }, // LUMBERMILL
};
static float BuffCoordinates[ABNUMCONTROLPOINTS][4] = {
{ 1185.56616210938f, 1184.62854003906f, 56.3632850646973f, 2.30383467674255f }, // STABLE
{ 990.113098144531f, 1008.73028564453f, 42.6032752990723f, 0.820304811000824f }, // FARM
{ 816.906799f, 842.339844f, 56.538746f, 3.272740f }, // BLACKSMITH
{ 808.846252441406f, 1185.41748046875f, 11.9216051101685f, 0.663225054740906f }, // MINE
{ 1147.09057617188f, 816.836242675781f, 98.3989562988281f, 0.226892784237862f }, // LUMBERMILL
};
static float BuffRotations[ABNUMCONTROLPOINTS][2] = {
{ 0.913545489311218f, 0.406736612319946f }, // STABLE
{ 0.39874908328056f, 0.917060077190399f }, // FARM
{ 0.913545489311218f, 0.406736612319946f }, // BLACKSMITH
{ 0.325568109750748f, 0.945518612861633f }, // MINE
{ 0.113203197717667f, 0.993571877479553f }, // LUMBERMILL
};
static uint32 AssaultFields[ABNUMCONTROLPOINTS][2] = {
{ ABCAPTURINGSTABLES_EUROPEANS, ABCAPTURINGSTABLES_CHINESE }, // STABLE
{ ABCAPTURINGFARM_EUROPEANS, ABCAPTURINGFARM_CHINESE }, // FARM
{ ABCAPTURINGBLACKSMITH_EUROPEANS, ABCAPTURINGBLACKSMITH_CHINESE }, // BLACKSMITH
{ ABCAPTURINGGOLDMINE_EUROPEANS, ABCAPTURINGGOLDMINE_CHINESE }, // MINE
{ ABCAPTURINGLUMBERMILL_EUROPEANS, ABCAPTURINGLUMBERMILL_CHINESE }, // LUMBERMILL
};
static uint32 OwnedFields[ABNUMCONTROLPOINTS][2] = {
{ ABCAPTUREDSTABLES_EUROPEANS, ABCAPTUREDSTABLES_CHINESE }, // STABLE
{ ABCAPTUREDFARM_EUROPEANS, ABCAPTUREDFARM_CHINESE }, // FARM
{ ABCAPTUREDBLACKSMITH_EUROPEANS, ABCAPTUREDBLACKSMITH_CHINESE }, // BLACKSMITH
{ ABCAPTUREDGOLDMINE_EUROPEANS, ABCAPTUREDGOLDMINE_CHINESE }, // MINE
{ ABCAPTUREDLUMBERMILL_EUROPEANS, ABCAPTUREDLUMBERMILL_CHINESE }, // LUMBERMILL
};
static uint32 NeutralFields[ABNUMCONTROLPOINTS] = {
ABSHOWSTABLEICON,
ABSHOWFARMICON,
ABSHOWBACKSMITHICON,
ABSHOWGOLDMINEICON,
ABSHOWLUMBERMILLICON,
};
static uint32 ResourceUpdateIntervals[6] = {
0,
12000,
9000,
6000,
3000,
1000,
};
static uint32 PointBonusPerUpdate[6] = {
0,
10,
10,
10,
10,
30,
};
/* End BG Data */
void ArathiBasin::SpawnBuff(uint32 x)
{
uint32 chosenbuffid = buffentrys[RandomUInt(2)];
GameObjectInfo * goi = GameObjectNameStorage.LookupEntry(chosenbuffid);
if(goi == NULL)
return;
if(mbuffs[x] == NULL)
{
mbuffs[x] = SpawnGameObject(chosenbuffid, mmapMgr>GetMapId(), BuffCoordinates[x][0], BuffCoordinates[x][1], BuffCoordinates[x][2],
BuffCoordinates[x][3], 0, 114, 1);
mbuffs[x]>SetFloatValue(GAMEOBJECTROTATION02, BuffRotations[x][0]);
mbuffs[x]>SetFloatValue(GAMEOBJECTROTATION03, BuffRotations[x][1]);
mbuffs[x]>SetUInt32Value(GAMEOBJECTSTATE, 1);
mbuffs[x]>SetUInt32Value(GAMEOBJECTTYPEID, 6);
mbuffs[x]>SetUInt32Value(GAMEOBJECTANIMPROGRESS, 100);
mbuffs[x]>PushToWorld(mmapMgr);
}
else
{
// only need to reassign guid if the entry changes.
if(mbuffs[x]>IsInWorld())
mbuffs[x]>RemoveFromWorld(false);
if(chosenbuffid != mbuffs[x]>GetEntry())
{
mbuffs[x]>SetNewGuid(mmapMgr>GenerateGameobjectGuid());
mbuffs[x]>SetUInt32Value(OBJECTFIELDENTRY, chosenbuffid);
mbuffs[x]>SetInfo(goi);
}
mbuffs[x]>PushToWorld(mmapMgr);
}
}
void ArathiBasin::SpawnControlPoint(uint32 Id, uint32 Type)
{
GameObjectInfo * gi, * giaura;
gi = GameObjectNameStorage.LookupEntry(ControlPointGoIds[Id][Type]);
if(gi == NULL)
return;
giaura = gi>sound3 ? GameObjectNameStorage.LookupEntry(gi>sound3) : NULL;
if(mcontrolPoints[Id] == NULL)
{
mcontrolPoints[Id] = SpawnGameObject(gi>ID, mmapMgr>GetMapId(), ControlPointCoordinates[Id][0], ControlPointCoordinates[Id][1],
ControlPointCoordinates[Id][2], ControlPointCoordinates[Id][3], 0, 35, 1.0f);
mcontrolPoints[Id]>SetFloatValue(GAMEOBJECTROTATION02, ControlPointRotations[Id][0]);
mcontrolPoints[Id]>SetFloatValue(GAMEOBJECTROTATION03, ControlPointRotations[Id][1]);
mcontrolPoints[Id]>SetUInt32Value(GAMEOBJECTSTATE, 1);
mcontrolPoints[Id]>SetUInt32Value(GAMEOBJECTTYPEID, gi>Type);
mcontrolPoints[Id]>SetUInt32Value(GAMEOBJECTANIMPROGRESS, 100);
mcontrolPoints[Id]>SetUInt32Value(GAMEOBJECTDYNFLAGS, 1);
mcontrolPoints[Id]>SetUInt32Value(GAMEOBJECTDISPLAYID, gi>DisplayID);
switch(Type)
{
case ABSPAWNTYPE_EUROPEANSASSAULT:
case ABSPAWNTYPE_EUROPEANSCONTROLLED:
mcontrolPoints[Id]>SetUInt32Value(GAMEOBJECTFACTION, 2);
break;
case ABSPAWNTYPE_CHINESEASSAULT:
case ABSPAWNTYPE_CHINESECONTROLLED:
mcontrolPoints[Id]>SetUInt32Value(GAMEOBJECTFACTION, 1);
break;
default:
mcontrolPoints[Id]>SetUInt32Value(GAMEOBJECTFACTION, 35); // neutral
break;
}
mcontrolPoints[Id]>bannerslot = Id;
mcontrolPoints[Id]>PushToWorld(mmapMgr);
}
else
{
if(mcontrolPoints[Id]>IsInWorld())
mcontrolPoints[Id]>RemoveFromWorld(false);
// assign it a new guid (client needs this to see the entry change?)
mcontrolPoints[Id]>SetNewGuid(mmapMgr>GenerateGameobjectGuid());
mcontrolPoints[Id]>SetUInt32Value(OBJECTFIELDENTRY, gi>ID);
mcontrolPoints[Id]>SetUInt32Value(GAMEOBJECTDISPLAYID, gi>DisplayID);
mcontrolPoints[Id]>SetUInt32Value(GAMEOBJECTTYPEID, gi>Type);
switch(Type)
{
case ABSPAWNTYPE_EUROPEANSASSAULT:
case ABSPAWNTYPE_EUROPEANSCONTROLLED:
mcontrolPoints[Id]>SetUInt32Value(GAMEOBJECTFACTION, 2);
break;
case ABSPAWNTYPE_CHINESEASSAULT:
case ABSPAWNTYPE_CHINESECONTROLLED:
mcontrolPoints[Id]>SetUInt32Value(GAMEOBJECTFACTION, 1);
break;
default:
mcontrolPoints[Id]>SetUInt32Value(GAMEOBJECTFACTION, 35); // neutral
break;
}
mcontrolPoints[Id]>SetInfo(gi);
mcontrolPoints[Id]>PushToWorld(mmapMgr);
}
if(giaura==NULL)
{
// remove it if it exists
if(mcontrolPointAuras[Id]!=NULL && mcontrolPointAuras[Id]>IsInWorld())
mcontrolPointAuras[Id]>RemoveFromWorld(false);
return;
}
if(mcontrolPointAuras[Id] == NULL)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -