Hab den endless turn gefunden und ausgemerzt. Dabei frag ich mich: Hab ich eine veraltete Version der cpp-Dateien?!!?
Ohne dll kann ich Einheiten Sachen zum Bauen geben, ohne dass sie Straßen bauen müssen dürfen.
Mit der dll gings nicht und ich hatte das Problem jetzt beim Jäger gesehen. Grund in der Funktion AI_improveBonus():
PHP-Code:
if ((pBestPlot->getWorkingCity() == NULL) || !pBestPlot->getWorkingCity()->isConnectedToCapital())
{
eBestMission = MISSION_ROUTE_TO;
}
else
{
int iDistance = stepDistance(getX_INLINE(), getY_INLINE(), pBestPlot->getX_INLINE(), pBestPlot->getY_INLINE());
int iPathTurns;
if (generatePath(pBestPlot, 0, false, &iPathTurns))
{
if (iPathTurns >= iDistance)
{
eBestMission = MISSION_ROUTE_TO;
}
}
}
Was ich nun so geändert habe und jetzt gibts keinen endless turn (logisch, weil der Hunter ja keine Straßen bauen soll, sondern lediglich Camps):
PHP-Code:
// PAE
if (bCanRoute) {
if ((pBestPlot->getWorkingCity() == NULL) || !pBestPlot->getWorkingCity()->isConnectedToCapital())
{
eBestMission = MISSION_ROUTE_TO;
}
else
{
int iDistance = stepDistance(getX_INLINE(), getY_INLINE(), pBestPlot->getX_INLINE(), pBestPlot->getY_INLINE());
int iPathTurns;
if (generatePath(pBestPlot, 0, false, &iPathTurns))
{
if (iPathTurns >= iDistance)
{
eBestMission = MISSION_ROUTE_TO;
}
}
}
}
Ich frag mich echt, wie macht das BTS? Warum hatte ich das Problem bei der reinen 52er dll nie..... Hab ich da andere cpp-Dateien? Von Warlords oder von Vanilla? Wie erkenn ich das?
Und das nächste was ich in dieser Funktion nicht verstehe: gleich darunter steht:
PHP-Code:
eBestBuild = AI_betterPlotBuild(pBestPlot, eBestBuild);
getGroup()->pushMission(eBestMission, pBestPlot->getX_INLINE(), pBestPlot->getY_INLINE(), 0, false, false, MISSIONAI_BUILD, pBestPlot);
getGroup()->pushMission(MISSION_BUILD, eBestBuild, -1, 0, (getGroup()->getLengthMissionQueue() > 0), false, MISSIONAI_BUILD, pBestPlot);
Da hebt sich doch das erste pushMission auf ?!
Oder bedeutet pushMission an die Liste der bisherigen Bauaufträge dranhängen?