Плагин не сохраняет спавны.
SourceMod Version: 1.10.0.6392
А вот спавны, которые тут выкладывали, он подгружает, но и то, чудеса на виражах:
public void RoundFreezeEnd(Event event, const char[] name, bool dbc)
{
if(!g_bActive) return;
else if(GetEngineVersion() == Engine_CSGO) if(GameRules_GetProp("m_bWarmupPeriod")) return;
if(g_bUsePlayers)
{
int iTt = 0, iCt = 0;
for(int i = 1; i <= MaxClients; i++)
{
if(IsClientInGame(i) && IsPlayerAlive(i))
{
switch(GetClientTeam(i))
{
case 2: iTt++;
case 3: iCt++;
}
}
}
g_iNowPlayers = iTt + iCt;
SpawnItems();
if(g_hArray.Length > 0)
{
switch(g_iMessage)
{
case 1:
{
FormatEx(g_sTranslite, sizeof(g_sTranslite), "%t", "Notification in hud");
SetHudTextParams(0.005, 0.45, 5.0, 255, 255, 255, 255, 0, 1.0, 1.0, 1.0);
for(int i = 1; i <= MaxClients; i++)
{
if(IsClientInGame(i) && !IsFakeClient(i)) ShowHudText(i, -1, g_sTranslite);
}
}
case 2: PrintToChatAll("%t", "Notification in chat");
}
}
}
else SpawnItems();
}
То есть проверяем что плагин включен, проверяем, что включена проверка игроков, далее считаем игроков ииии...... за каким-то художником выполняем код:
void SpawnItems()
{
g_hArray.Clear();
if(g_hKv.GotoFirstSubKey())
{
char sModel[128]; float fPos[3], fAng[3]; int iColor, iQuota;
do
{
g_hKv.GetVector("Pos", fPos);
g_hKv.GetVector("Ang", fAng);
iColor = g_hKv.GetNum("Invisibility");
g_hKv.GetString("Model", sModel, sizeof(sModel));
iQuota = g_hKv.GetNum("Quota");
CreateItem(sModel, fPos, fAng, iColor, iQuota, _);
}
while(g_hKv.GotoNextKey());
}
g_hKv.Rewind();
}
Из которого на каждый созданные проп вызываем функцию
void CreateItem(const char[] sModel, float fPos[3], float fAng[3], int iColor, int iQuota, int iClient = -1)
{
if(g_bUsePlayers && iQuota <= g_iNowPlayers) return;
if(!IsModelPrecached(sModel)) PrecacheModel(sModel, true);
int iEntity = CreateEntityByName("prop_dynamic_override");
if(iEntity > 0)
{
char sBuffer[32];
FormatEx(sBuffer, sizeof(sBuffer), "BZMODELID%i_%i", iEntity, iQuota);
DispatchKeyValue(iEntity, "targetname", sBuffer);
DispatchKeyValue(iEntity, "model", sModel);
DispatchKeyValue(iEntity, "solid", "6");
DispatchSpawn(iEntity);
TeleportEntity(iEntity, fPos, fAng, NULL_VECTOR);
SetEntityRenderMode(iEntity, RENDER_TRANSCOLOR);
SetEntityRenderColor(iEntity, 255, 255, 255, iColor);
g_hArray.Push(iEntity);
if(iClient != -1) PrintToChat(iClient, "%t", "Item successfully created");
}
}
В которой проверяем на количество игроков столько раз, сколько создано пропов....
А то, что не сохраняет, я даже разбираться не стал, спасибо тому человеку, который выложил готовые конфиги. Я просто поправил логику проверки на количество игроков и всё.
Возможно, когда найдётся время, я сделаю рандом между плантами А и Б при недостаточном количестве игроков.