gameuser425
Участник
- Сообщения
- 30
- Реакции
- 3
Мод CSS DM.
Тема такая. По истечении 5-ти раундов. В конце 5-го раунда происходит смена команд. Счёт команды переносится вместе с командой, всё ровно - как надо, но в конце нового первого раунда когда одна из команд побеждает счёт становится на старое место. То есть, мы от играли за "CT" со счётом 10/5, команды сменились счёт стал 5/10, но в конце первого раунда за новую сторону (если допустим выиграли "CT") Счёт меняется и получается не 6/10, а 11/5... То есть счёт возвращается на свою сторону...
Вот сегодня запилил плагин. Не знаю как мне исправить это. Можно было бы объявить две переменные и в конце каждого раунда проверять кто победил и плюсовать очки, потом заново объявлять для команды счёт через SetTeamScore, но не хотелось бы пилить лишние переменные.
Вот сам код.
Тема такая. По истечении 5-ти раундов. В конце 5-го раунда происходит смена команд. Счёт команды переносится вместе с командой, всё ровно - как надо, но в конце нового первого раунда когда одна из команд побеждает счёт становится на старое место. То есть, мы от играли за "CT" со счётом 10/5, команды сменились счёт стал 5/10, но в конце первого раунда за новую сторону (если допустим выиграли "CT") Счёт меняется и получается не 6/10, а 11/5... То есть счёт возвращается на свою сторону...
Вот сегодня запилил плагин. Не знаю как мне исправить это. Можно было бы объявить две переменные и в конце каждого раунда проверять кто победил и плюсовать очки, потом заново объявлять для команды счёт через SetTeamScore, но не хотелось бы пилить лишние переменные.
Вот сам код.
C-подобный:
#pragma semicolon 1
#include <sourcemod>
#include <sdktools>
#include <cstrike>
#define MAX_ROUNDS (5)
new CountRounds = -1;
public Plugin:myinfo = {
name = "bla-bla-bla",
author = "bla-bla-bla",
description = "bla-bla-bla",
version = "bla-bla-bla",
url = "bla-bla-bla"
};
public void OnPluginStart()
{
HookEvent("round_start", Event_RoundStart);
HookEvent("round_end", Event_RoundEnd);
}
public OnMapStart()
{
CountRounds = -1;
}
public void Event_RoundStart(Handle:event, const String:name[], bool:dontBroadcast)
{
CountRounds += 1;
if((MAX_ROUNDS - CountRounds) > 1)PrintToChatAll("C4 ©: Смена команд произойдёт через %i раунд(а,ов).", (MAX_ROUNDS - CountRounds)); //(5 - 0 = 5), (5 - 1 = 4), (5 - 2 = 3), (5 - 3 = 2)
else if(CountRounds == (MAX_ROUNDS-1))PrintToChatAll("C4 ©: Смена команд произойдёт в конце раунда."); //5
}
public void Event_RoundEnd(Handle:event, const String:name[], bool:dontBroadcast)
{
if(CountRounds == (MAX_ROUNDS-1))
{
CountRounds = -1;
int scoreCT = GetTeamScore(CS_TEAM_T);
int scoreT = GetTeamScore(CS_TEAM_CT);
SetTeamScore(CS_TEAM_CT, scoreCT);
SetTeamScore(CS_TEAM_T, scoreT);
new team;
for(new i = 1; i < MaxClients; i++)
{
if(IsClientConnected(i))
{
team = GetClientTeam(i);
if(team == CS_TEAM_CT)
{
CS_SwitchTeam(i, CS_TEAM_T);
CS_UpdateClientModel(i);
}
else if(team == CS_TEAM_T)
{
CS_SwitchTeam(i, CS_TEAM_CT);
CS_UpdateClientModel(i);
}
}
}
PrintToChatAll("C4 ©: Смена команд!");
}
}
Последнее редактирование модератором: