Я нашел код, на который ссылался некоторое время назад (пришлось искать его). Это код, прекрасно работающий в однопользовательском режиме и позволяющий сделать одиночные миссии, с некоторыми очень интересными деталями и задачами. Но в мультиплеере этот код не работает должным образом:
Code:
public override void OnBuildingKilled(string title, Point3d pos, AiDamageInitiator initiator, int eventArgInt)
{
base.OnBuildingKilled(title, pos, initiator, eventArgInt);
string BuildingName = title;
string BuildingArmy = "";
string PlayerArmy = "";
string sectorTitle = "";
string sectorName = GamePlay.gpSectorName(pos.x, pos.y);
if (GamePlay.gpFrontArmy(pos.x, pos.y) == 1)
{
BuildingArmy = "England";
}
else if (GamePlay.gpFrontArmy(pos.x, pos.y) == 2)
{
BuildingArmy = "France";
}
else
{
BuildingArmy = "Neutral";
}
if (initiator.Player.Army() == 1)
{
PlayerArmy = "RAF";
}
else if (initiator.Player.Army() == 2)
{
PlayerArmy = "Luftwaffe";
}
else
{
PlayerArmy = "Unknown";
}
GamePlay.gpLogServer(null, "BUILDING:" + BuildingName + " in " + BuildingArmy + " was destroyed in sector " + sectorName + " by " + initiator.Player.Name() + " from the " + PlayerArmy + ".", new object[] { });
}
Этот кусок кода, если бы он был исправлен для работы в мультиплеере, смог бы отображать каждое здание (объект) на карте (или объекты, перечисленные как тип - здание, включая даже телефонные будки, часы и т. д.) как цель, которую можно было отслеживать и за которую можно начислять очки, какими бы не были Ваши намерения, без необходимости помещать статические объекты или загружать субмиссии, или что-либо из этого. Промышленным целям не будут нужны триггеры по площади с требованиями к тоннажу или скрытые объекты, которые будут действовать в качестве целей. Аэродромными целями будут просто ангары и башни, которые уже присутствуют (если Вы желаете добавить больше деталей - Вы это можете, если Вам это нужно).
Вместо того, чтобы провести брифинг, который гласит: «Вам нужно атаковать фабрику в квадрате X, Y и уничтожить этот объект», Вы могли бы просто сказать: «Командующий хочет, чтобы Вы атаковали промышленные объекты». Или: «После атакуйте топливные хранилища, где их сможете найти». Или даже что-то глупое: «Мы должны нарушить банковскую сеть во Франции!»
(Да, есть здания банков, которые будут идентифицированы этим скриптом). Тогда это ложится на пилотов бомберов, чтобы согласно разведке целей, запланировать миссии и выполнить их.
И это все, не помещая на карту ни одного объекта.
Если этот код будет исправлен или изменен для работы в мультиплеере, я бы вернулся к программированию миссий в БоБе в одно мгновение. Черт, если это просто ошибка с моей стороны в кодировании, я вернусь сегодня, если кто-нибудь ее исправит. Никто не исправил вовремя...
No.401_Wolverine
Bookmarks