Quote:
Originally Posted by darthelmo1
Sorry for abandoning this thread. Your timers are a bit messed up and you didn't actually include a section to add to the team's score. As of now this plugin is still a WIP -- basic functionality works but doesn't do what we need it to (yet). I'll reply with some help once we fix it.
|
Should work.
PHP Code:
#pragma semicolon 1
#pragma newdecls required
#include <sourcemod>
#include <sdktools>
#include <cstrike>
public void OnPluginStart()
{
HookEvent("round_end", Event_RoundEnd);
}
public void Event_RoundEnd(Event event, const char[] name, bool dontBroadcast)
{
static int iRoundsPlayed;
if(GameRules_GetProp("m_bWarmupPeriod") == 1)
return;
GameRules_SetProp("m_totalRoundsPlayed", ++iRoundsPlayed);
}
public Action CS_OnTerminateRound(float &delay, CSRoundEndReason &reason)
{
if(reason == CSRoundEnd_Draw)
{
int iTHealth, iCTHealth;
for(int i = 1; i <= MaxClients; i++)
{
if(!IsClientInGame(i) || !IsPlayerAlive(i))
continue;
int iTeam = GetClientTeam(i);
if(iTeam <= CS_TEAM_SPECTATOR)
continue;
if(iTeam == CS_TEAM_T)
iTHealth += GetClientHealth(i);
else if(iTeam == CS_TEAM_CT)
iCTHealth += GetClientHealth(i);
}
if(iTHealth == iCTHealth)
return Plugin_Continue;
if(iTHealth > iCTHealth)
{
reason = CSRoundEnd_TerroristWin;
int iScore = GetTeamScore(CS_TEAM_T);
SetTeamScore(CS_TEAM_T, (iScore + 1));
CS_SetTeamScore(CS_TEAM_T, (iScore + 1));
}
else
{
reason = CSRoundEnd_CTWin;
int iScore = GetTeamScore(CS_TEAM_CT);
SetTeamScore(CS_TEAM_CT, (iScore + 1));
CS_SetTeamScore(CS_TEAM_CT, (iScore + 1));
}
return Plugin_Changed;
}
return Plugin_Continue;
}