diff options
| author | navewindre <nw@moneybot.cc> | 2023-11-15 02:20:31 +0100 |
|---|---|---|
| committer | navewindre <nw@moneybot.cc> | 2023-11-15 02:20:31 +0100 |
| commit | d4d5482b5f66209d17b9d786ffe0a13cf352fb15 (patch) | |
| tree | b379882c13bdeb64d1009ce64733a8f0b7d1054c /sourcemod/scripting/gem_halftime_teamswap.sp | |
| parent | 405737846f73753ade746b0506020f6720269a51 (diff) | |
cleanup halftime plugin, remove money string from bot plugin, push website
Diffstat (limited to 'sourcemod/scripting/gem_halftime_teamswap.sp')
| -rw-r--r-- | sourcemod/scripting/gem_halftime_teamswap.sp | 234 |
1 files changed, 0 insertions, 234 deletions
diff --git a/sourcemod/scripting/gem_halftime_teamswap.sp b/sourcemod/scripting/gem_halftime_teamswap.sp deleted file mode 100644 index 9333d58..0000000 --- a/sourcemod/scripting/gem_halftime_teamswap.sp +++ /dev/null @@ -1,234 +0,0 @@ -#pragma semicolon 1 -#include <sourcemod> -#include <sdktools> -#include <cstrike> - -#define PLUGIN_VERSION "1.0.11" -#define MAX_FILE_LEN 80 - -public Plugin:myinfo = -{ - name = "Halftime teamswitch", - author = "[30+]Gemeni", - description = "Moves all players to the opposite team at halftime", - version = PLUGIN_VERSION, - url = "http://30plus.ownit.se/" -}; - -// Global variables -new mapTime; -new g_maxrounds; -new g_roundCount; -new bool:halftime; -new Handle:g_h_moneyReset = INVALID_HANDLE; -new Handle:g_h_mp_startmoney = INVALID_HANDLE; -new Handle:g_h_mp_maxrounds = INVALID_HANDLE; -new g_mp_startmoney; -new bool:g_resetMoney; -new bool:g_halftime_do_resetMoney = false; -new Handle:g_CvarHalfTimeType = INVALID_HANDLE; -new String:g_HalfTimeType[MAX_FILE_LEN]; -new g_CtScore, g_TScore; - -/* forwards */ -new Handle:g_f_on_ht = INVALID_HANDLE; - -// Offsets -new g_iAccount = -1; - - -// Setting halftime to false -public OnMapStart(){ - //LogToGame(">>>>>Setting halftime to false, OnMapStart<<<<<"); - halftime = false; - g_roundCount = 0; - - GetConVarString(g_CvarHalfTimeType, g_HalfTimeType, MAX_FILE_LEN); - - new tmp; - tmp = GetConVarInt(g_h_moneyReset); - if (tmp == 1) { - g_resetMoney = true; - } - else { - g_resetMoney = false; - } - - g_mp_startmoney = GetConVarInt(g_h_mp_startmoney); - g_maxrounds = GetConVarInt(g_h_mp_maxrounds); -} - -public OnConfigsExecuted(){ - //LogToGame(">>>>>Setting halftime to false, OnConfigsExecuted<<<<<"); - halftime = false; -} - -// Hooking events at plugin start -public OnPluginStart(){ - CreateConVar("sm_halftime_teamswitch_version", PLUGIN_VERSION, "Halftime teamswitch version", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY); - HookEvent("round_start", Event_RoundStart); - HookEvent("round_end", Event_RoundEnd); - - g_h_moneyReset = CreateConVar("sm_halftime_money_reset", "1", "If weapons should be removed and money reset to mp_startmoney"); - g_h_mp_startmoney = FindConVar("mp_startmoney"); - g_h_mp_maxrounds = FindConVar("mp_maxrounds"); - - g_CvarHalfTimeType = CreateConVar("sm_halftime_teamswitch_type", "timelimit", "timelimit|maxrounds to determin what critera halftime should be based on"); - - g_f_on_ht = CreateGlobalForward("gemHalftime", ET_Ignore); - - // Finding offset for CS cash - g_iAccount = FindSendPropOffs("CCSPlayer", "m_iAccount"); - if (g_iAccount == -1) - SetFailState("m_iAccount offset not found"); - -} - -// RoundStart gets the maptime -// Checks to see if halftime has passed, if not then make sure halftime is 0 -// Setting halftime false here as well since in some occasions when extending map -// team switch can occur again. -public Event_RoundStart (Handle:event, const String:name[], bool:dontBroadcast) -{ - new wepIdx; - new playerTeam; - - GetMapTimeLimit(mapTime); - mapTime=mapTime*60; - - g_CtScore = GetTeamScore(CS_TEAM_CT); - g_TScore = GetTeamScore(CS_TEAM_T); - - g_roundCount = g_CtScore + g_TScore + 1; - - if (g_halftime_do_resetMoney) { - for (new client=1; client<=GetMaxClients(); client++) - { - if (IsClientInGame (client) && IsClientConnected(client)) { - for (new w = 0; w < 6; w++) - { - if (w != 2 && w != 4 ) - while((wepIdx = GetPlayerWeaponSlot(client, w)) != -1) - RemovePlayerItem(client, wepIdx); - } - playerTeam = GetClientTeam(client); - if (playerTeam == CS_TEAM_T) { - GivePlayerItem(client, "weapon_glock"); - } - else if (playerTeam == CS_TEAM_CT) { - GivePlayerItem(client, "weapon_usp"); - if ((wepIdx = GetPlayerWeaponSlot(client, 6)) != -1) - RemovePlayerItem(client, wepIdx); - } - SetEntProp(client, Prop_Send, "m_ArmorValue", 0, 1); - SetEntProp(client, Prop_Send, "m_bHasHelmet", 0, 1); - - SetEntData(client, g_iAccount, g_mp_startmoney, 4, true); - } - } - } - g_halftime_do_resetMoney = false; -} - -public Event_RoundEnd (Handle:event, const String:name[], bool:dontBroadcast) -{ - new mapTimeLeft; - new bool:doSwap = false; - - new reason = GetEventInt(event, "reason"); - new winner = GetEventInt(event, "winner"); - - g_mp_startmoney = GetConVarInt(g_h_mp_startmoney); - g_maxrounds = GetConVarInt(g_h_mp_maxrounds); - - // Make sure that we have a normal round end - // reason 16 is game commencing - // other reasons are real round ends - if(reason == 15) { - g_CtScore = 0; - g_TScore = 0; - g_roundCount = 0; - return; - } - - if (winner==CS_TEAM_T) - g_TScore++; - if (winner==CS_TEAM_CT) - g_CtScore++; - - GetMapTimeLeft(mapTimeLeft); - LogMessage( "roundEnd: ct: %d t: %d rounds: %d max: %d", g_CtScore, g_TScore, g_roundCount, g_maxrounds/2 ); - if ((g_roundCount>=g_maxrounds/2)) { - //LogMessage(">>> Halftime, Swap maxrounds %d %d<<<", g_roundCount, g_maxrounds); - doSwap = true; - } - else { - doSwap = false; - } - - if( g_TScore > g_maxrounds/2 || g_CtScore > g_maxrounds/2 ) { - SetConVarInt( g_h_mp_maxrounds, 1, true, false ); - PrintToChatAll("\x04============[ game end ]============"); - - if( g_TScore > g_CtScore ) { - PrintToChatAll("\x04Winner: T"); - } - else { - PrintToChatAll("\x04Winner: CT"); - } - } - - if(doSwap && (halftime == false)) { - new playerTeam; - - Call_StartForward(g_f_on_ht); - Call_Finish(); - - halftime = true; - for (new i=1; i<=GetMaxClients(); i++) - { - if (IsClientInGame (i) && IsClientConnected(i)) { - - if (IsClientInGame (i) && IsClientConnected(i) && IsFakeClient(i)) { - ForcePlayerSuicide(i); - } - - g_halftime_do_resetMoney = true; - - //LogMessage("Player %d is InGame", i); - playerTeam = GetClientTeam(i); - if (playerTeam == CS_TEAM_T) { - //LogMessage("Before switch of %d to CT", i); - CS_SwitchTeam(i, CS_TEAM_CT); - //LogMessage("After switch of %d to CT", i); - } - else if (playerTeam == CS_TEAM_CT) { - //LogMessage("Before switch of %d to T", i); - CS_SwitchTeam(i, CS_TEAM_T); - //LogMessage("After switch of %d to T", i); - } - else { - //LogMessage("No switch, not CT not T"); - } - } - else { - //LogMessage("Player %d is *NOT* InGame", i); - } - } - - new tmp; - tmp = g_CtScore; - g_CtScore = g_TScore; - g_TScore = tmp; - - //LogMessage(">>>>>halftime switch completed<<<<<"); - - PrintToChatAll("\x04==========[ halftime switch ]=========="); - } - // Else just advertise that teamswitch will occur at half time - else if ((mapTimeLeft>mapTime/2) && (halftime == false)) { - //PrintToChatAll(">>> Players will switch teams at halftime <<<"); - } - SetTeamScore(CS_TEAM_CT, g_CtScore); - SetTeamScore(CS_TEAM_T, g_TScore); -} |
