[Include] AddPlayerRcon
#1

Muitas pessoas jб passaram pelo problema de querer colocar alguйm em RCON, mas nгo querer passar a senha. Ou pela chatice de ter que estar digitando /rcon login a cada vez que conecta.

Pois bem. Criei esta biblioteca baseada em SendRconCommand:

Com este cуdigo vocк pode logar um jogador na RCON via Pawn. Sem precisar passar a senha para o jogador ou necessitar de rcon login


Cуdigo
pawn Код:
#define NOVA_RCON   "/adm"

#define AddPlayerRcon(%0)           (SetPVarInt(%0, "rcon_ademir", 1), printf("RCON (In-Game): Player %s (%d) has logged in.",%0, g@str_getname(%0)))
#define RemovePlayerRcon(%0)        (SetPVarInt(%0, "rcon_ademir", 0), printf("RCON (In-Game): Player %s (%d) has logged off.",%0, g@str_getname(%0)))

public OnPlayerCommandText(playerid, cmdtext[]) {
    if(!strcmp(cmdtext, #NOVA_RCON " ", false, 5) && strlen(cmdtext) > 6 && (GetPVarInt(playerid, "rcon_ademir") || IsPlayerAdmin(playerid))) {
        return SendRconCommand(cmdtext[5]), printf("RCON (In-Game): Player [%s] sent command: %s", g@str_getname(playerid), cmdtext[5]);
    }

    return
        (
            (!cmdtext[0] || (cmdtext[0] == 1 && !cmdtext[1])) ?
                CallLocalFunction("c_@_OnPlayerCommandText", "ds", playerid, "\1")
            :   CallLocalFunction("c_@_OnPlayerCommandText", "is", playerid, cmdtext)
        )
        ;
}

stock IsPlayerRcon(p) {
    return IsPlayerAdmin(p) && GetPVarInt(p, "rcon_ademir");
}

g@str_getname(pid) {
    static sname[MAX_PLAYER_NAME];
    return GetPlayerName(pid, sname, MAX_PLAYER_NAME), sname;
}

#if defined _ALS_OnPlayerCommandText
    #undef OnPlayerCommandText
#else
    #define _ALS_OnPlayerCommandText
#endif

#define OnPlayerCommandText     c_@_OnPlayerCommandText
#define IsPlayerAdmin           IsPlayerRcon

forward OnPlayerCommandText(playerid, cmdtext[]);






Modo de uso:

Basta salva-la o cуdigo acima como "rcon.inc" e colocar no seu gamemode
PHP код:
#include rcon 
Agora para adicionar um jogador a rcon basta:
AddPlayerRcon(jogador id)

Para deletar ele da RCON:
pawn Код:
RemovePlayerRcon(id)
O comando novo para rcon estб prй-definido como:
Quote:

/adm COMANDO RCON SEM "/rcon "

Mas vocк pode mudar de "/ADM" para outro mexendo na include ..





Exemplo:

Em OnPlayerConnect:
PHP код:
static name[MAX_PLAYER_NAME]; GetPlayerName(playeridnameMAX_PLAYER_NAME);
if(!
strcmp(name"ADMINISTRADOR"true))  AddPlayerRcon(playerid); 
Com este cуdigo. O jogador que entrar no servidor com nick "ADMINSTRADOR" serб logado automaticamente na rcon.



Se apresentar eventuais erros, estarei aqui para corrigir. Boa sorte com o uso do projeto

Espero que gostem.
Reply
#2

Bom trabalho

Acho q pode ser util para servidores q n tem sistema de PLayerInfo....
Reply
#3

Muito bom !
Reply
#4

Parabйns, irei usar!
Reply
#5

Otimo trabalho
Reply
#6

O que eu entendi: Tem um player chamado ademir.... (rcon_ademir) <brinks>

Brincadeiras a parte, sempre quis saber se isso era possнvel

Bom trabalho Bruno xD
Reply
#7

Como sempre otimo!
Reply
#8

Уtimo pensamento! Muito bom!

Isso nгo vai Print como deve neh!
pawn Код:
#define AddPlayerRcon(%0)           (SetPVarInt(%0, "rcon_ademir", 1), printf("RCON (In-Game): Player %d (%d) has logged in.",%0, g@str_getname(%0)))
#define RemovePlayerRcon(%0)        (SetPVarInt(%0, "rcon_ademir", 0), printf("RCON (In-Game): Player %d (%d) has logged off.",%0, g@str_getname(%0)))

//Correto.
#define AddPlayerRcon(%0)           (SetPVarInt(%0, "rcon_ademir", 1), printf("RCON (In-Game): Player %d (%s) has logged in.",%0, g@str_getname(%0)))
#define RemovePlayerRcon(%0)        (SetPVarInt(%0, "rcon_ademir", 0), printf("RCON (In-Game): Player %d (%s) has logged off.",%0, g@str_getname(%0)))
Reply
#9

Quote:
Originally Posted by paulor
Посмотреть сообщение
Уtimo pensamento! Muito bom!

Isso nгo vai Print como deve neh!
pawn Код:
#define AddPlayerRcon(%0)           (SetPVarInt(%0, "rcon_ademir", 1), printf("RCON (In-Game): Player %d (%d) has logged in.",%0, g@str_getname(%0)))
#define RemovePlayerRcon(%0)        (SetPVarInt(%0, "rcon_ademir", 0), printf("RCON (In-Game): Player %d (%d) has logged off.",%0, g@str_getname(%0)))

//Correto.
#define AddPlayerRcon(%0)           (SetPVarInt(%0, "rcon_ademir", 1), printf("RCON (In-Game): Player %d (%s) has logged in.",%0, g@str_getname(%0)))
#define RemovePlayerRcon(%0)        (SetPVarInt(%0, "rcon_ademir", 0), printf("RCON (In-Game): Player %d (%s) has logged off.",%0, g@str_getname(%0)))
Nem vi o erro Obrigado paulinho .. Arrumado !!

Quote:
Originally Posted by Mr.Hardy
Посмотреть сообщение
Boa Lуgica!
Mбs podia melhorar nй mano!

Ai estб mais externo e nгo uso interno se й q me entende..

Nгo ira funcionar /adm varlist
/adm cmdlist

Sу irб printar cmdlist, varlist no console.
Funcionarб com SendRconCommand, й praticamente uma nova rcon .. cmdlist nгo irб funcionar porque nгo tem o jogador pra mandar, mas pra isto basta colocar uns SendClientMessages !! Obrigado pela dica.
Reply
#10

Quote:
Originally Posted by [FeK]DraKiNs
Посмотреть сообщение
Nem vi o erro Obrigado paulinho .. Arrumado !!
Sem problemas, Tamo junto! kkkkk
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)