(C#) Extern RCON -
WLSF - 05.10.2013
Inicio/Apresentaзгo: Quem implementaria ?
Ele tб simples, porйm estб bom para iniciar os estudos em C# e entender melhor a respeito de sockets usados no SA-MP.
Pawn source:
pawn Код:
#include <a_samp>
#include <sscanf2>
new params[256], _cmd[40];
public OnRconCommand(cmd[])
{
sscanf(cmd, "ss", _cmd, params);
if (!strcmp(_cmd, "kick"))
{
new sId;
sscanf(params, "i", sId);
if (!IsPlayerConnected(sId))
return true;
Kick(sId);
}
if (!strcmp(_cmd, "ban"))
{
new sId;
sscanf(params, "i", sId);
if (!IsPlayerConnected(sId))
return true;
Ban(sId);
}
if (!strcmp(_cmd, "veh"))
{
new sId, sCar;
sscanf(params, "ii", sId, sCar);
if (!IsPlayerConnected(sId))
return true;
new sMsg[50];
if (sCar == -1)
{
format(sMsg, sizeof(sMsg), "[RCON] Admin destruiu o seu veнculo.");
DestroyVehicle(GetPVarInt(sId, "veh"));
SendClientMessage(sId, 0x03FFFFFF, sMsg);
return true;
}
new Float:x, Float:y, Float:z, Float:a;
GetPlayerPos(sId, x, y, z);
GetPlayerFacingAngle(sId, a);
new veh = CreateVehicle(sCar, x, y, z, a, 0, 0, cellmax);
SetPVarInt(sId, "veh", veh);
format(sMsg, sizeof(sMsg), "[RCON] Admin criou o veнculo %d para vocк.", sCar);
PutPlayerInVehicle(sId, veh, 0);
SendClientMessage(sId, 0x03FFFFFF, sMsg);
}
if (!strcmp(_cmd, "vida"))
{
new sId, Float: sHealth;
sscanf(params, "if", sId, sHealth);
if (!IsPlayerConnected(sId))
return true;
new sMsg[50];
format(sMsg, sizeof(sMsg), "[RCON] Admin alterou sua vida para %f", sHealth);
SetPlayerHealth(sId, sHealth);
SendClientMessage(sId, 0x03FFFFFF, sMsg);
return true;
}
if (!strcmp(_cmd, "colete"))
{
new sId, Float: sArmour;
sscanf(params, "if", sId, sArmour);
if (!IsPlayerConnected(sId))
return true;
new sMsg[50];
format(sMsg, sizeof(sMsg), "[RCON] Admin alterou seu colete para %f", sArmour);
SetPlayerArmour(sId, sArmour);
SendClientMessage(sId, 0x03FFFFFF, sMsg);
return true;
}
if (!strcmp(_cmd, "msg"))
{
new sId, sMsg[128];
sscanf(params, "is", sId, sMsg);
if (!IsPlayerConnected(sId))
return true;
format(sMsg, sizeof(sMsg), "[RCON] Admin disse: %s", sMsg);
SendClientMessage(sId, 0x03FFFFFF, sMsg);
return true;
}
return 1;
}
O source pwn й utilizado para receber as mensagens que o programa envia atravйs de sockets,
quando ele recebe alguma mensagem, ela й tratada para se tornar um comando.
C# Source: (C#) Extern RCON Download
OBS: O download й um .rar, ele й seguro, nгo contйm nada de executбvel e nem arquivos estranhos, apenas os arquivos utilizados no VS.
Abraзos.
BETA-TESTERS:
Re: (C#) Extern RCON -
Juniiro3 - 05.10.2013
Willian por isso eu te amo cara -qqqq
Re: (C#) Extern RCON -
smiiir - 05.10.2013
Muito bom...
Parabйns
quando der dou
Reput
Re: (C#) Extern RCON -
shittt - 05.10.2013
Valeu irei estudar este codigo.
Respuesta: (C#) Extern RCON -
SeV_ - 05.10.2013
Very Nice. Otimo Man. иh Bom ter isto em mгos quando nгo pode se acessar o servidor..
Re: (C#) Extern RCON -
Juniiro3 - 05.10.2013
Willian me tira uma dъvida.
Estou estudando o cуdigo e dentro do arquivo PlayersFlags й onde fica os comandos certo? Para adicionar os comandos eu crio eles aqui e no .pwn, certo ?
Re: (C#) Extern RCON -
PT - 05.10.2013
eita muito bom mano, parabens
Re: (C#) Extern RCON -
WLSF - 05.10.2013
Quote:
Originally Posted by Juniiro3
Willian me tira uma dъvida.
Estou estudando o cуdigo e dentro do arquivo PlayersFlags й onde fica os comandos certo? Para adicionar os comandos eu crio eles aqui e no .pwn, certo ?
|
PlayersFlags foi a classe que eu criei separada pra organizar os comandos que vou enviar pro .pwn
Tem de criar eles dentro do .pwn, se nгo o SV nгo interpreta como comando...
Olhe o source do pawn que postei, fica mais fбcil de entender...
Lб no PlayersFlags tem por exemplo: "msg {0} {1}"
Onde
msg й o nome do comando,
{0} й o ID do jogador, e
{1} й a mensagem.
Por isso que no .pwn eu usei sscanf pra separar o comando, e os parвmetros {0}, {1}, {2} etc...
Re: (C#) Extern RCON -
Menor - 05.10.2013
Esse cara, eu quero ser como esse cara... Sem neuroseee
Re: (C#) Extern RCON -
Juniiro3 - 05.10.2013
Quote:
Originally Posted by Willian_Luigi
PlayersFlags foi a classe que eu criei separada pra organizar os comandos que vou enviar pro .pwn
Tem de criar eles dentro do .pwn, se nгo o SV nгo interpreta como comando...
Olhe o source do pawn que postei, fica mais fбcil de entender...
Lб no PlayersFlags tem por exemplo: "msg {0} {1}"
Onde msg й o nome do comando, {0} й o ID do jogador, e {1} й a mensagem.
Por isso que no .pwn eu usei sscanf pra separar o comando, e os parвmetros {0}, {1}, {2} etc...
|
Ah entendi, obrigado
Teria como adaptar para cmds usando essa mesma base da Rcon porйm na OnPlayerCommandText ou OnPlayerCommandReceived no zcmd ?
Re: (C#) Extern RCON -
AlieN_. - 05.10.2013
ta doido tem ke ser do time professional da codeme -q -q
Re: (C#) Extern RCON -
WLSF - 05.10.2013
Quote:
Originally Posted by Juniiro3
Ah entendi, obrigado
Teria como adaptar para cmds usando essa mesma base da Rcon porйm na OnPlayerCommandText ou OnPlayerCommandReceived no zcmd ?
|
Qual a finalidade disso ?
Re: (C#) Extern RCON -
Juniiro3 - 05.10.2013
Quote:
Originally Posted by Willian_Luigi
Qual a finalidade disso ?
|
Nгo precisar logar na Rcon...
Apesar de nгo ter muita finalidade, й apenas uma curiosidade.
#Edit
Tem uma finalidade sim, o jogador poderia manipular as informaзхes dele sem logar no servidor, porque o jogador nгo saberia a senha Rcon e iria digamos que fazer comandos por fora.
Re : (C#) Extern RCON -
ipsBruno - 13.10.2013
Sу pra lembrar, quem estuda conexхes em C# e SAMP, na Wiki tem um belo demonstrativo sobre isto.
https://sampwiki.blast.hk/wiki/Query_Mechanism/Csharp
Classe bem funcional!