| 
		
			| [SSGM Plugin] SpaceOut [message #474075] | Fri, 07 September 2012 17:36  |  
			| 
				
				|  |  roszek Messages: 296
 Registered: June 2010
 
	Karma: 0
 | Recruit |  |  |  
	| After going through some source code of one of iran's plugins (that one called "join name regulator"), I threw together a simple plugin that changes spaces in nicks to underscores. 
 It seems to work and did not crash any servers I tested it on.
 
 For 4.0
 
 
 Toggle Spoiler#include "General.h"
#include "SpaceOut.h"
#include "engine_tt.h"
#include "engine_io.h"
#include "gmgame.h"
void Console(const char *Format, ...)
{
	char buffer[256];
	va_list va;
	_crt_va_start(va, Format);
	vsnprintf(buffer, 256, Format, va);
	va_end(va);
	Console_Input(buffer);
}
bool checkChars( WideStringClass incName ,int ID )
{
	char* name = StringClass(incName).Peek_Buffer();
	bool it=false;
	int size = Find_Player(ID)->PlayerName.Get_Length();
	int i = 0;
	for ( ; i<size ; i++ )
	{
		if( name[i] == ' ')
		{
			name[i] = '_';
			it = true;
		}
	
	}
	if(it)
		Find_Player(ID)->PlayerName = name;
	return(it);
	
}
void SpaceOut::OnPlayerJoin(int PlayerID, const char *PlayerName)
{	
	WideStringClass aNick = Find_Player(PlayerID)->PlayerName;
	
	if(checkChars(Find_Player(PlayerID)->PlayerName ,PlayerID))
		Console("PAMSG %d Your name has been changed from: '%S' to: '%S'", PlayerID, aNick ,Find_Player(PlayerID)->PlayerName);
}
SpaceOut::SpaceOut()
{
	RegisterEvent(EVENT_PLAYER_JOIN_HOOK,this);
}
SpaceOut::~SpaceOut()
{
	UnregisterEvent(EVENT_PLAYER_JOIN_HOOK,this);
}
				
	
SpaceOut spaceout;
extern "C" __declspec(dllexport) Plugin* Plugin_Init()
{
	return &spaceout;
}
  
 
 
 
	
	 Attachment: SpaceOut.rar (Size: 9.20KB, Downloaded 200 times)
	 Attachment: so.jpg (Size: 30.87KB, Downloaded 748 times)
 [Updated on: Sat, 08 September 2012 06:02] Report message to a moderator |  
	|  |  | 
	| 
		
			| Re: [SSGM Plugin] SpaceOut [message #474112 is a reply to message #474075] | Sat, 08 September 2012 14:29  |  
			| 
				
				
					|  iRANian Messages: 4313
 Registered: April 2011
 
	Karma: 1
 | General (4 Stars) |  |  |  
	| This should work too. 
 
 bool Replace_Spaces_Name(int id)
{
	StringClass name = StringClass(Find_Player(id)->PlayerName);
	bool foundSpace = false;
	for (int i = 0, e = name.Get_Length(); i < e; i++)
	{
		if( name[i] == ' ')
		{
			name[i] = '_';
			foundSpace = true;
		}
	
	}
	if( foundSpace )
	{	
            Find_Player(ID)->PlayerName = name;
            return true; 
        }
        return false;	
}
 Long time and well respected Renegade community member, programmer, modder and tester.
 
 Scripts 4.0 private beta tester since May 2011.
 
 My Renegade server plugins releases
 |  
	|  |  |