Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Sistema Multilang para servidores Squirrel de VCMP, By Necrose.
- -- Script usado no Evolution DMS.
- Obs: Esse script usa funções de um plugin chamado GeoIP que pode ser baixado aqui: https://bitbucket.org/crys/0.4-geoip
- */
- MyLang <- {}; // Table de configuração de idioma...
- P_Lang <- []; // Variável para listar os players...
- Portuguese <- [ "Brazil", "Portugal", "Angola" ]; // Países que usam o Português (Há outros que não estão listados aqui)...
- function onScriptLoad()
- {
- SetJoinMessages( false ); // Desativar mensagem de quando um player se conecta ao servidor...
- print( "Multilang System By Lavador" );
- }
- function onPlayerJoin( player ) // Evento de entrada no servidor...
- {
- local p_country = geoip_country_name_by_addr( player.IP );
- if ( Portuguese.find( p_country ) != null ) MyLang.rawset( player.ID, 1 ); // Configurar idioma 1 (Português)...
- else MyLang.rawset( player.ID, 2 );
- P_Lang.push( { Player = player } );
- _Message( "[#FFF68F]* [#FFFFFF]" + player.Name + " [#FFF68F]entrou no servidor.", "[#FFF68F]* [#FFFFFF]" + player.Name + " [#FFF68F]joined the server." );
- }
- function onPlayerCommand( player, cmd, text )
- {
- if ( cmd == "cmds" ) _PrivMessage( "Use o comando /test para ver uma mensagem de teste.", "Use command /test to see a test message.", player );
- else if ( cmd == "test" )
- {
- _Message( "Este script e um test.", "This script is a test." ); // Mensagem global...
- _PrivMessage( player, "Este script e um test.", "This script is a test." ); // Mensagem privada...
- }
- else if ( cmd == "lang" || cmd == "idioma" )
- {
- if ( !text ) _PrivMessage( player, "Sintaxe: /" + cmd + " <pt/en>", "Syntax: /" + cmd + " <en/pt>" );
- else
- {
- if ( text == "pt" )
- {
- if ( MyLang.rawget( player.ID ) == 1 ) PrivMessage( player, "Erro, esse idioma ja esta sendo usado." );
- else
- {
- MyLang.rawset( player.ID, 1 );
- PrivMessage( player, "Portugues selecionado." );
- }
- }
- else if ( text == "en" )
- {
- if ( MyLang.rawget( player.ID ) == 2 ) PrivMessage( player, "Error, that language is already being used." );
- else
- {
- MyLang.rawset( player.ID, 2 );
- PrivMessage( player, "English selected." );
- }
- }
- else _PrivMessage( player, "Erro, use \"pt\" ou \"en\".", "Error, use \"en\" or \"pt\"." );
- }
- }
- }
- function onPlayerPart( player, reason ) // Evento de saída do servidor...
- {
- _Message( "[#FFF68F]* [#FFFFFF]" + player.Name + " [#FFF68F]saiu do servidor.", "[#FFF68F]* [#FFFFFF]" + player.Name + " [#FFF68F]left the server." );
- for ( local i = P_Lang.len() - 1; i >= 0; i -- )
- {
- if ( P_Lang[ i ].Player.ID == player.ID )
- {
- MyLang.rawdelete( player.ID ); // Remover o ID do player de dentro do table MyLang...
- P_Lang.remove( i ); // Eliminar o nome do player de dentro do array P_Lang...
- break;
- }
- }
- }
- function _PrivMessage( player, lang_1, lang_2 ) // Criar outras funções se necessário, por exemplo, MessagePlayer, ClientMessage, Announce, etc.
- {
- !( MyLang.rawget( player.ID ) == 2 ) ? PrivMessage( player, lang_1 ) : PrivMessage( player, lang_2 ); // Enviar umas mensagem privada para o usuário de acordo com o idoma...
- }
- function _Message( lang_1, lang_2 ) // Criar outras funções se necessário, por exemplo, ClientMessageToAll, AnnounceAll, etc.
- {
- foreach ( iLang in P_Lang ) // Enviar mensagens privadas para todos imitando uma mensagem global, porém cada um com seu respectivo idioma...
- {
- local player = iLang.Player;
- !( MyLang.rawget( player.ID ) == 2 ) ? MessagePlayer( lang_1, player ) : MessagePlayer( lang_2, player );
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement