Merge pull request #313 from alliedmodders/set-client-name
Add SetClientName native.
This commit is contained in:
		
							parent
							
								
									491d24a028
								
							
						
					
					
						commit
						fc2addf11e
					
				| @ -50,6 +50,9 @@ | ||||
|  */ | ||||
| 
 | ||||
| SH_DECL_HOOK6(IServerGameDLL, LevelInit, SH_NOATTRIB, false, bool, const char *, const char *, const char *, const char *, bool, bool); | ||||
| #if SOURCE_ENGINE == SE_CSS | ||||
| SH_DECL_HOOK1_void_vafmt(IVEngineServer, ClientCommand, SH_NOATTRIB, 0, edict_t *); | ||||
| #endif | ||||
| 
 | ||||
| SDKTools g_SdkTools;		/**< Global singleton for extension's main interface */ | ||||
| IServerGameEnts *gameents = NULL; | ||||
| @ -261,6 +264,10 @@ bool SDKTools::SDK_OnMetamodLoad(ISmmAPI *ismm, char *error, size_t maxlen, bool | ||||
| #endif | ||||
| 	GET_V_IFACE_ANY(GetEngineFactory, soundemitterbase, ISoundEmitterSystemBase, SOUNDEMITTERSYSTEM_INTERFACE_VERSION); | ||||
| 
 | ||||
| #if SOURCE_ENGINE == SE_CSS | ||||
| 	SH_ADD_HOOK(IVEngineServer, ClientCommand, engine, SH_MEMBER(this, &SDKTools::OnSendClientCommand), false); | ||||
| #endif | ||||
| 
 | ||||
| 	gpGlobals = ismm->GetCGlobals(); | ||||
| 	enginePatch = SH_GET_CALLCLASS(engine); | ||||
| 	enginesoundPatch = SH_GET_CALLCLASS(engsound); | ||||
| @ -268,6 +275,14 @@ bool SDKTools::SDK_OnMetamodLoad(ISmmAPI *ismm, char *error, size_t maxlen, bool | ||||
| 	return true; | ||||
| } | ||||
| 
 | ||||
| bool SDKTools::SDK_OnMetamodUnload(char *error, size_t maxlen) | ||||
| { | ||||
| #if SOURCE_ENGINE == SE_CSS | ||||
| 	SH_REMOVE_HOOK(IVEngineServer, ClientCommand, engine, SH_MEMBER(this, &SDKTools::OnSendClientCommand), false); | ||||
| #endif | ||||
| 	return true; | ||||
| } | ||||
| 
 | ||||
| void SDKTools::SDK_OnAllLoaded() | ||||
| { | ||||
| 	SM_GET_LATE_IFACE(BINTOOLS, g_pBinTools); | ||||
| @ -456,6 +471,21 @@ void SDKTools::OnClientPutInServer(int client) | ||||
| 	g_Hooks.OnClientPutInServer(client); | ||||
| } | ||||
| 
 | ||||
| #if SOURCE_ENGINE == SE_CSS | ||||
| void SDKTools::OnSendClientCommand(edict_t *pPlayer, const char *szFormat) | ||||
| { | ||||
| 	// Due to legacy code, CS:S still sends "name \"newname\"" to the client after a
 | ||||
| 	// name change. The engine has a change hook on name causing it to reset to the 
 | ||||
| 	// player's Steam name. This quashes that to make SetClientName work properly.
 | ||||
| 	if (!strncmp(szFormat, "name ", 5)) | ||||
| 	{ | ||||
| 		RETURN_META(MRES_SUPERCEDE); | ||||
| 	} | ||||
| 
 | ||||
| 	RETURN_META(MRES_IGNORED); | ||||
| } | ||||
| #endif | ||||
| 
 | ||||
| class SDKTools_API : public ISDKTools | ||||
| { | ||||
| public: | ||||
|  | ||||
| @ -83,7 +83,7 @@ public: //public SDKExtension | ||||
| public: | ||||
| #if defined SMEXT_CONF_METAMOD | ||||
| 	virtual bool SDK_OnMetamodLoad(ISmmAPI *ismm, char *error, size_t maxlen, bool late); | ||||
| 	//virtual bool SDK_OnMetamodUnload(char *error, size_t maxlen);
 | ||||
| 	virtual bool SDK_OnMetamodUnload(char *error, size_t maxlen); | ||||
| 	//virtual bool SDK_OnMetamodPauseChange(bool paused, char *error, size_t maxlen);
 | ||||
| #endif | ||||
| public: //IConCommandBaseAccessor
 | ||||
| @ -101,6 +101,9 @@ public: // IVoiceServer | ||||
| #else | ||||
| 	void OnClientCommand(edict_t *pEntity); | ||||
| #endif | ||||
| #if SOURCE_ENGINE == SE_CSS | ||||
| 	void OnSendClientCommand(edict_t *pPlayer, const char *szFormat); | ||||
| #endif | ||||
| 
 | ||||
| public: //ICommandTargetProcessor
 | ||||
| 	bool ProcessCommandTarget(cmd_target_info_t *info); | ||||
|  | ||||
| @ -2,7 +2,7 @@ | ||||
|  * vim: set ts=4 : | ||||
|  * ============================================================================= | ||||
|  * SourceMod SDKTools Extension | ||||
| * Copyright (C) 2004-2010 AlliedModders LLC.  All rights reserved. | ||||
|  * Copyright (C) 2004-2010 AlliedModders LLC.  All rights reserved. | ||||
|  * ============================================================================= | ||||
|  * | ||||
|  * This program is free software; you can redistribute it and/or modify it under | ||||
| @ -1267,6 +1267,61 @@ static cell_t ActivateEntity(IPluginContext *pContext, const cell_t *params) | ||||
| 	return 1; | ||||
| } | ||||
| 
 | ||||
| static cell_t SetClientName(IPluginContext *pContext, const cell_t *params) | ||||
| { | ||||
| 	if (iserver == NULL) | ||||
| 	{ | ||||
| 		return pContext->ThrowNativeError("IServer interface not supported, file a bug report."); | ||||
| 	} | ||||
| 
 | ||||
| 	IGamePlayer *player = playerhelpers->GetGamePlayer(params[1]); | ||||
| 	IClient *pClient = iserver->GetClient(params[1] - 1); | ||||
| 
 | ||||
| 	if (player == NULL || pClient == NULL) | ||||
| 	{ | ||||
| 		return pContext->ThrowNativeError("Invalid client index %d", params[1]); | ||||
| 	} | ||||
| 	if (!player->IsConnected()) | ||||
| 	{ | ||||
| 		return pContext->ThrowNativeError("Client %d is not connected", params[1]); | ||||
| 	} | ||||
| 
 | ||||
| 	static ValveCall *pCall = NULL; | ||||
| 	if (!pCall) | ||||
| 	{ | ||||
| 		ValvePassInfo params[1]; | ||||
| 		InitPass(params[0], Valve_String, PassType_Basic, PASSFLAG_BYVAL); | ||||
| 
 | ||||
| 		if (!CreateBaseCall("SetClientName", ValveCall_Entity, NULL, params, 1, &pCall)) | ||||
| 		{ | ||||
| 			return pContext->ThrowNativeError("\"SetClientName\" not supported by this mod"); | ||||
| 		} | ||||
| 		else if (!pCall) | ||||
| 		{ | ||||
| 			return pContext->ThrowNativeError("\"SetClientName\" wrapper failed to initialize"); | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	// The IClient vtable is +4 from the CBaseClient vtable due to multiple inheritance.
 | ||||
| 	void *pGameClient = (void *)((intptr_t)pClient - 4); | ||||
| 
 | ||||
| 	// Change the name in the engine.
 | ||||
| 	START_CALL(); | ||||
| 	void **ebuf = (void **)vptr; | ||||
| 	*ebuf = pGameClient; | ||||
| 	DECODE_VALVE_PARAM(2, vparams, 0); | ||||
| 	FINISH_CALL_SIMPLE(NULL); | ||||
| 
 | ||||
| 	// Notify the server of the change.
 | ||||
| #if SOURCE_ENGINE == SE_DOTA | ||||
| 	serverClients->ClientSettingsChanged(player->GetIndex()); | ||||
| #else | ||||
| 	serverClients->ClientSettingsChanged(player->GetEdict()); | ||||
| #endif | ||||
| 
 | ||||
| 	return 1; | ||||
| } | ||||
| 
 | ||||
| static cell_t SetClientInfo(IPluginContext *pContext, const cell_t *params) | ||||
| { | ||||
| 	if (iserver == NULL) | ||||
| @ -1418,6 +1473,7 @@ sp_nativeinfo_t g_Natives[] = | ||||
| 	{"EquipPlayerWeapon",		WeaponEquip}, | ||||
| 	{"ActivateEntity",			ActivateEntity}, | ||||
| 	{"SetClientInfo",			SetClientInfo}, | ||||
| 	{"SetClientName",           SetClientName}, | ||||
| 	{"GetPlayerResourceEntity", GetPlayerResourceEntity}, | ||||
| 	{"GivePlayerAmmo",		GivePlayerAmmo}, | ||||
| 	{NULL,						NULL}, | ||||
|  | ||||
| @ -156,6 +156,15 @@ | ||||
| 				"windows"	"17" | ||||
| 			} | ||||
| 			 | ||||
| 			/** | ||||
| 			 * CBaseClient::SetName(char  const*); | ||||
| 			 * Has string "(%d)%-0.*s" | ||||
| 			 */ | ||||
| 			"SetClientName" | ||||
| 			{ | ||||
| 				"windows"	"16" | ||||
| 			} | ||||
| 			 | ||||
| 			/** | ||||
| 			 * Offset into CBaseClient - Used by CBaseServer::UpdateUserSettings to determine when changes have been made. | ||||
| 			 * Find CBaseClient::UpdateUserSettings (strings "net_maxroutable", "cl_updaterate" etc) and the offset is set to 0 near the end. | ||||
|  | ||||
| @ -210,6 +210,17 @@ | ||||
| 				"linux"		"64" | ||||
| 				"mac"		"64" | ||||
| 			} | ||||
| 			/** | ||||
| 			 * CBaseClient::SetName(char  const*); | ||||
| 			 * Linux offset straight from VTable dump. | ||||
| 			 * Has string "(%d)%-0.*s" | ||||
| 			 */ | ||||
| 			"SetClientName" | ||||
| 			{ | ||||
| 				"windows"	"16" | ||||
| 				"linux"		"63" | ||||
| 				"mac"		"63" | ||||
| 			} | ||||
| 			/** | ||||
| 			 * Offset into CBaseClient - Used by CBaseServer::UpdateUserSettings to determine when changes have been made. | ||||
| 			 * Find CBaseClient::UpdateUserSettings (strings "net_maxroutable", "cl_updaterate" etc) and the offset is set to 0 near the end. | ||||
|  | ||||
| @ -205,6 +205,17 @@ | ||||
| 				"linux"		"63" | ||||
| 				"mac"		"63" | ||||
| 			} | ||||
| 			/** | ||||
| 			 * CBaseClient::SetName(char  const*); | ||||
| 			 * Linux offset straight from VTable dump. | ||||
| 			 * Has string "(%d)%-0.*s" | ||||
| 			 */ | ||||
| 			"SetClientName" | ||||
| 			{ | ||||
| 				"windows"	"16" | ||||
| 				"linux"		"62" | ||||
| 				"mac"		"62" | ||||
| 			} | ||||
| 			/** | ||||
| 			 * Offset into CBaseClient - Used by CBaseServer::UpdateUserSettings to determine when changes have been made. | ||||
| 			 * Find CBaseClient::UpdateUserSettings (strings "net_maxroutable", "cl_updaterate" etc) and the offset is set to 0 near the end. | ||||
|  | ||||
| @ -220,6 +220,17 @@ | ||||
| 			"SetUserCvar" | ||||
| 			{ | ||||
| 				/* Not 100% sure on this, why would windows change and not linux - TEST ME */ | ||||
| 				"windows"	"28" | ||||
| 				"linux"		"65" | ||||
| 				"mac"		"65" | ||||
| 			} | ||||
| 			/** | ||||
| 			 * CBaseClient::SetName(char  const*); | ||||
| 			 * Linux offset straight from VTable dump. | ||||
| 			 * Has string "(%d)%-0.*s" | ||||
| 			 */ | ||||
| 			"SetClientName" | ||||
| 			{ | ||||
| 				"windows"	"27" | ||||
| 				"linux"		"64" | ||||
| 				"mac"		"64" | ||||
|  | ||||
| @ -193,6 +193,17 @@ | ||||
| 				"linux"		"58" | ||||
| 				"mac"		"58" | ||||
| 			} | ||||
| 			/** | ||||
| 			 * CBaseClient::SetName(char  const*); | ||||
| 			 * Linux offset straight from VTable dump. | ||||
| 			 * Has string "(%d)%-0.*s" | ||||
| 			 */ | ||||
| 			"SetClientName" | ||||
| 			{ | ||||
| 				"windows"	"17" | ||||
| 				"linux"		"57" | ||||
| 				"mac"		"57" | ||||
| 			} | ||||
| 			/** | ||||
| 			 * Offset into CBaseClient - Used by CBaseServer::UpdateUserSettings to determine when changes have been made. | ||||
| 			 * Find CBaseClient::UpdateUserSettings (strings "net_maxroutable", "cl_updaterate" etc) and the offset is set to 0 near the end. | ||||
|  | ||||
| @ -225,6 +225,15 @@ | ||||
| 				"windows"	"17" | ||||
| 			} | ||||
| 			 | ||||
| 			/** | ||||
| 			 * CBaseClient::SetName(char  const*); | ||||
| 			 * Has string "(%d)%-0.*s" | ||||
| 			 */ | ||||
| 			"SetClientName" | ||||
| 			{ | ||||
| 				"windows"	"16" | ||||
| 			} | ||||
| 
 | ||||
| 			"UpdateUserSettings" | ||||
| 			{ | ||||
| 				"windows"	"7" | ||||
|  | ||||
| @ -250,6 +250,17 @@ | ||||
| 			"SetUserCvar" | ||||
| 			{ | ||||
| 				"windows"	"26" | ||||
| 				"linux"		"63" | ||||
| 				"mac"		"63" | ||||
| 			} | ||||
| 			/** | ||||
| 			 * CBaseClient::SetName(char  const*); | ||||
| 			 * Linux offset straight from VTable dump. | ||||
| 			 * Has string "(%d)%-0.*s" | ||||
| 			 */ | ||||
| 			"SetClientName" | ||||
| 			{ | ||||
| 				"windows"	"25" | ||||
| 				"linux"		"62" | ||||
| 				"mac"		"62" | ||||
| 			} | ||||
|  | ||||
| @ -256,6 +256,16 @@ | ||||
| 				"windows"	"17" | ||||
| 				"linux"		"53" | ||||
| 			} | ||||
| 			/** | ||||
| 			 * CBaseClient::SetName(char  const*); | ||||
| 			 * Linux offset straight from VTable dump. | ||||
| 			 * Has string "(%d)%-0.*s" | ||||
| 			 */ | ||||
| 			"SetClientName" | ||||
| 			{ | ||||
| 				"windows"	"16" | ||||
| 				"linux"		"52" | ||||
| 			} | ||||
| 			/** | ||||
| 			 * Offset into CBaseClient - Used by CBaseServer::UpdateUserSettings to determine when changes have been made. | ||||
| 			 * Find CBaseClient::UpdateUserSettings (strings "net_maxroutable", "cl_updaterate" etc) and the offset is set to 0 near the end. | ||||
|  | ||||
| @ -219,6 +219,16 @@ | ||||
| 				"windows"	"17" | ||||
| 				"linux"		"55" | ||||
| 			} | ||||
| 			/** | ||||
| 			 * CBaseClient::SetName(char  const*); | ||||
| 			 * Linux offset straight from VTable dump. | ||||
| 			 * Has string "(%d)%-0.*s" | ||||
| 			 */ | ||||
| 			"SetClientName" | ||||
| 			{ | ||||
| 				"windows"	"16" | ||||
| 				"linux"		"54" | ||||
| 			} | ||||
| 			/** | ||||
| 			 * Offset into CBaseClient - Used by CBaseServer::UpdateUserSettings to determine when changes have been made. | ||||
| 			 * Find CBaseClient::UpdateUserSettings (strings "net_maxroutable", "cl_updaterate" etc) and the offset is set to 0 near the end. | ||||
|  | ||||
| @ -237,6 +237,17 @@ | ||||
| 				"linux"		"58" | ||||
| 				"mac"		"58" | ||||
| 			} | ||||
| 			/** | ||||
| 			 * CBaseClient::SetName(char  const*); | ||||
| 			 * Linux offset straight from VTable dump. | ||||
| 			 * Has string "(%d)%-0.*s" | ||||
| 			 */ | ||||
| 			"SetClientName" | ||||
| 			{ | ||||
| 				"windows"	"17" | ||||
| 				"linux"		"57" | ||||
| 				"mac"		"57" | ||||
| 			} | ||||
| 			/** | ||||
| 			 * Offset into CBaseClient - Used by CBaseServer::UpdateUserSettings to determine when changes have been made. | ||||
| 			 * Find CBaseClient::UpdateUserSettings (strings "net_maxroutable", "cl_updaterate" etc) and the offset is set to 0 near the end. | ||||
|  | ||||
| @ -183,6 +183,14 @@ | ||||
| 			{ | ||||
| 				"windows"	"17" | ||||
| 			} | ||||
| 			/** | ||||
| 			 * CBaseClient::SetName(char  const*); | ||||
| 			 * Has string "(%d)%-0.*s" | ||||
| 			 */ | ||||
| 			"SetClientName" | ||||
| 			{ | ||||
| 				"windows"	"16" | ||||
| 			} | ||||
| 			/** | ||||
| 			 * Offset into CBaseClient - Used by CBaseServer::UpdateUserSettings to determine when changes have been made. | ||||
| 			 * Find CBaseClient::UpdateUserSettings (strings "net_maxroutable", "cl_updaterate" etc) and the offset is set to 0 near the end. | ||||
|  | ||||
| @ -177,6 +177,17 @@ | ||||
| 				"linux"		"67" | ||||
| 				"mac"		"67" | ||||
| 			} | ||||
| 			/** | ||||
| 			 * CBaseClient::SetName(char  const*); | ||||
| 			 * Linux offset straight from VTable dump. | ||||
| 			 * Has string "(%d)%-0.*s" | ||||
| 			 */ | ||||
| 			"SetClientName" | ||||
| 			{ | ||||
| 				"windows"	"19" | ||||
| 				"linux"		"66" | ||||
| 				"mac"		"66" | ||||
| 			} | ||||
| 			/** | ||||
| 			 * Offset into CBaseClient - Used by CBaseServer::UpdateUserSettings to determine when changes have been made. | ||||
| 			 * Find CBaseClient::UpdateUserSettings (strings "net_maxroutable", "cl_updaterate" etc) and the offset is set to 0 near the end. | ||||
|  | ||||
| @ -225,6 +225,17 @@ | ||||
| 				"linux"		"63" | ||||
| 				"mac"		"63" | ||||
| 			} | ||||
| 			/** | ||||
| 			 * CBaseClient::SetName(char  const*); | ||||
| 			 * Linux offset straight from VTable dump. | ||||
| 			 * Has string "(%d)%-0.*s" | ||||
| 			 */ | ||||
| 			"SetClientName" | ||||
| 			{ | ||||
| 				"windows"	"16" | ||||
| 				"linux"		"62" | ||||
| 				"mac"		"62" | ||||
| 			} | ||||
| 			/** | ||||
| 			 * Offset into CBaseClient - Used by CBaseServer::UpdateUserSettings to determine when changes have been made. | ||||
| 			 * Find CBaseClient::UpdateUserSettings (strings "net_maxroutable", "cl_updaterate" etc) and the offset is set to 0 near the end. | ||||
|  | ||||
| @ -102,6 +102,17 @@ | ||||
| 				"linux"		"63" | ||||
| 				"mac"		"63" | ||||
| 			} | ||||
| 			/** | ||||
| 			 * CBaseClient::SetName(char  const*); | ||||
| 			 * Linux offset straight from VTable dump. | ||||
| 			 * Has string "(%d)%-0.*s" | ||||
| 			 */ | ||||
| 			"SetClientName" | ||||
| 			{ | ||||
| 				"windows"	"16" | ||||
| 				"linux"		"62" | ||||
| 				"mac"		"62" | ||||
| 			} | ||||
| 			/** | ||||
| 			 * Offset into CBaseClient - Used by CBaseServer::UpdateUserSettings to determine when changes have been made. | ||||
| 			 * Find CBaseClient::UpdateUserSettings (strings "net_maxroutable", "cl_updaterate" etc) and the offset is set to 0 near the end. | ||||
|  | ||||
| @ -91,6 +91,17 @@ | ||||
| 				"linux"		"58" | ||||
| 				"mac"		"58" | ||||
| 			} | ||||
| 			/** | ||||
| 			 * CBaseClient::SetName(char  const*); | ||||
| 			 * Linux offset straight from VTable dump. | ||||
| 			 * Has string "(%d)%-0.*s" | ||||
| 			 */ | ||||
| 			"SetClientName" | ||||
| 			{ | ||||
| 				"windows"	"17" | ||||
| 				"linux"		"57" | ||||
| 				"mac"		"57" | ||||
| 			} | ||||
| 			/** | ||||
| 			 * Offset into CBaseClient - Used by CBaseServer::UpdateUserSettings to determine when changes have been made. | ||||
| 			 * Find CBaseClient::UpdateUserSettings (strings "net_maxroutable", "cl_updaterate" etc) and the offset is set to 0 near the end. | ||||
|  | ||||
| @ -180,6 +180,14 @@ | ||||
| 				/* Not 100% sure on this, why would windows change and not linux - TEST ME */ | ||||
| 				"windows"	"17" | ||||
| 			} | ||||
| 			/** | ||||
| 			 * CBaseClient::SetName(char  const*); | ||||
| 			 * Has string "(%d)%-0.*s" | ||||
| 			 */ | ||||
| 			"SetClientName" | ||||
| 			{ | ||||
| 				"windows"	"16" | ||||
| 			} | ||||
| 			/** | ||||
| 			 * Offset into CBaseClient - Used by CBaseServer::UpdateUserSettings to determine when changes have been made. | ||||
| 			 * Find CBaseClient::UpdateUserSettings (strings "net_maxroutable", "cl_updaterate" etc) and the offset is set to 0 near the end. | ||||
|  | ||||
| @ -125,6 +125,17 @@ | ||||
| 				"linux"		"63" | ||||
| 				"mac"		"63" | ||||
| 			} | ||||
| 			/** | ||||
| 			 * CBaseClient::SetName(char  const*); | ||||
| 			 * Linux offset straight from VTable dump. | ||||
| 			 * Has string "(%d)%-0.*s" | ||||
| 			 */ | ||||
| 			"SetClientName" | ||||
| 			{ | ||||
| 				"windows"	"16" | ||||
| 				"linux"		"62" | ||||
| 				"mac"		"62" | ||||
| 			} | ||||
| 			/** | ||||
| 			 * Offset into CBaseClient - Used by CBaseServer::UpdateUserSettings to determine when changes have been made. | ||||
| 			 * Find CBaseClient::UpdateUserSettings (strings "net_maxroutable", "cl_updaterate" etc) and the offset is set to 0 near the end. | ||||
|  | ||||
| @ -332,6 +332,15 @@ native ActivateEntity(entity); | ||||
|  */ | ||||
| native SetClientInfo(client, const String:key[], const String:value[]); | ||||
| 
 | ||||
| /** | ||||
|  * Changes a client's name. | ||||
|  * | ||||
|  * @param client		Player's index. | ||||
|  * @param name			New name. | ||||
|  * @error               Invalid client index, or client not connected. | ||||
|  */ | ||||
| native void SetClientName(int client, const char[] name); | ||||
| 
 | ||||
| /** | ||||
|  * Gives ammo of a certain type to a player. | ||||
|  * This natives obeys the maximum amount of ammo a player can carry per ammo type. | ||||
|  | ||||
| @ -50,9 +50,6 @@ public Plugin:myinfo = | ||||
| TopMenu hTopMenu; | ||||
| 
 | ||||
| /* Used to get the SDK / Engine version. */ | ||||
| /* This is used in sm_rename and sm_changeteam */ | ||||
| new EngineVersion:g_ModVersion = Engine_Unknown; | ||||
| 
 | ||||
| #include "playercommands/slay.sp" | ||||
| #include "playercommands/slap.sp" | ||||
| #include "playercommands/rename.sp" | ||||
| @ -66,8 +63,6 @@ public OnPluginStart() | ||||
| 	RegAdminCmd("sm_slay", Command_Slay, ADMFLAG_SLAY, "sm_slay <#userid|name>"); | ||||
| 	RegAdminCmd("sm_rename", Command_Rename, ADMFLAG_SLAY, "sm_rename <#userid|name>"); | ||||
| 	 | ||||
| 	g_ModVersion = GetEngineVersion(); | ||||
| 	 | ||||
| 	/* Account for late loading */ | ||||
| 	TopMenu topmenu; | ||||
| 	if (LibraryExists("adminmenu") && ((topmenu = GetAdminTopMenu()) != null)) | ||||
|  | ||||
| @ -37,22 +37,8 @@ PerformRename(client, target) | ||||
| { | ||||
| 	LogAction(client, target, "\"%L\" renamed \"%L\" to \"%s\")", client, target, g_NewName[target]); | ||||
| 
 | ||||
| 	/* Used on OB / L4D engine */ | ||||
| 	if (g_ModVersion != Engine_SourceSDK2006) | ||||
| 	{ | ||||
| 		SetClientInfo(target, "name", g_NewName[target]); | ||||
| 	} | ||||
| 	else /* Used on CSS and EP1 / older engine */ | ||||
| 	{ | ||||
| 		if (!IsPlayerAlive(target)) /* Lets tell them about the player renamed on the next round since they're dead. */ | ||||
| 		{ | ||||
| 			decl String:m_TargetName[MAX_NAME_LENGTH]; | ||||
| 	SetClientName(target, g_NewName[target]); | ||||
| 
 | ||||
| 			GetClientName(target, m_TargetName, sizeof(m_TargetName)); | ||||
| 			ReplyToCommand(client, "[SM] %t", "Dead Player Rename", m_TargetName); | ||||
| 		} | ||||
| 		ClientCommand(target, "name %s", g_NewName[target]); | ||||
| 	} | ||||
| 	g_NewName[target][0] = '\0'; | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -16,12 +16,6 @@ | ||||
| 		"en"			"Rename player" | ||||
| 	} | ||||
| 	 | ||||
| 	"Dead Player Rename" | ||||
| 	{ | ||||
| 		"#format"		"{1:s}" | ||||
| 		"en"			"{1} will be renamed on the next round." | ||||
| 	} | ||||
| 	 | ||||
| 	"Slap player" | ||||
| 	{ | ||||
| 		"en"			"Slap player" | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user