Postado Dom Abr 12, 2015 1:14 pm
Hoje visitando o fórum SA:MP, ví tal tópico ( Códigos úteis ) e parei para ver os post's de alguns antigos companheiros de trabalho ( Dolby [ Antigo iPsGuh ), iPsBruno [ Antigo DraKoN ] e, outros )...
Então, eu vi uns códigos que me interessaram a compartilhar com vocês, como a exemplo desse;
Mas, se tiver a mesma função, que tal algo um pouco mais moderno como isso?
Funcionalidade :
E que tal algo como reconectar o jogador? Sei que as vezes um jogador buga e acaba não perdendo vida e, para evitar 'bans' indevidos por falta de conhecimento, que tal um reconecte?
E que tal uma GZ diferenciada dos outros servidores?
-Como assim?- Uma GZ Redonda em vez da tradicional ( quadrada )
Não sei se o Scripter do servidor vai querer mas, que tal um Anti Sobeit de vez?
Parei para rever os códigos na net de tais autorias sobre esse Anti Sobeit e parei para fazer um próprio para o servidor:
Então, eu vi uns códigos que me interessaram a compartilhar com vocês, como a exemplo desse;
- Código:
#include <a_http>
forward PlayAudioStreamByName(playerid, name[]);
forward PlayAudioStreamByNameEx(index, response_code, data[]);
public PlayAudioStreamByName(playerid, name[])
{
for(new i; i < strlen(name); i++) {
if(name[i] == ' ') name[i] = '+';
}
new str[160];
format(str, 160, "127.0.0.1:8080/SAMP.php?q=%s", name);
HTTP(playerid, HTTP_GET, str, "", "PlayAudioStreamByNameEx");
return 1;
}
public PlayAudioStreamByNameEx(index, response_code, data[])
{
if(response_code == 200) return PlayAudioStreamForPlayer(index, data);
return 1;
}
CMD:tocar(playerid, params[])
{
new M[20];
if(sscanf(params, "s[50]", M)) return SendClientMessage(playerid, -1, "Use /tocar [Nome da Música");
PlayAudioStreamByName(playerid, M);
return 1;
}
Dolby - Fórum SA:MP
Mas, se tiver a mesma função, que tal algo um pouco mais moderno como isso?
Funcionalidade :
E que tal algo como reconectar o jogador? Sei que as vezes um jogador buga e acaba não perdendo vida e, para evitar 'bans' indevidos por falta de conhecimento, que tal um reconecte?
- Código:
MD:reconectar(playerid, params[]) {
if(IsPlayerAdmin(playerid)) {
static Str[22], Player;
if(sscanf(params, "u", Player)) return SendClientMessage(playerid, -16776961, "ErrOr: E o ID do Player ? Esqueceu TiO ?");
GetPlayerIp(Player, Str, 16); SetPVarString(Player, "Reconnect", Str);
format(Str, 22, "banip %s", Str); SendRconCommand(Str);
} else SendClientMessage(playerid, -16776961, "ErrOr: Vc não é Adm espertão...");
return 1;
}
public OnPlayerDisconnect(playerid) {
static Str[24];
if(GetPVarString(playerid, "Reconnect", Str, 24)) {
format(Str, 24, "unbanip %s", Str);
SendRconCommand(Str);
}
return 1;
}
E que tal uma GZ diferenciada dos outros servidores?
-Como assim?- Uma GZ Redonda em vez da tradicional ( quadrada )
- Código:
stock GangZoneRedonda(Float:raio, Float:x , Float:y, color, gzs = 20) {
static
Float:gz_X,
Float:gz_Y,
gzIndenti;
for(new i; i < gzs; i++){
gz_X = floatcos(i/(float(gzs))*6.28, radian) * raio + x ;
gz_Y = floatsin(i/(float(gzs))*6.28, radian) * raio + y ;
gzIndenti = GangZoneCreate(gz_X-(10.0), gz_Y-10.0, gz_X+10.0, gz_Y+10.0);
GangZoneShowForAll(gzIndenti, color);
}
return gzIndenti;
}
GangZoneRedonda(100.0, 0.1,0.1, 0xFF0000FF,200);
Não sei se o Scripter do servidor vai querer mas, que tal um Anti Sobeit de vez?
Parei para rever os códigos na net de tais autorias sobre esse Anti Sobeit e parei para fazer um próprio para o servidor:
- Código:
#define DIALOG_ChecarHack 3000
public
OnPlayerSpawn ( playerid )
{
SetCameraBehindPlayer ( playerid ) ;
SetTimerEx ( "ChecandoHack", 4 * 1000, 0, "i", playerid ) ;
GameTextForPlayer ( playerid, "~w~Checando...", 3000, 3 ) ;
TogglePlayerControllable ( playerid, 0 ) ;
return true;
}
forward ChecandoHack ( playerid ) ;
public
ChecandoHack ( playerid )
{
new Float:x, Float:y, Float:z;
GetPlayerCameraFrontVector ( playerid, x, y, z ) ;
#pragma unused x
#pragma unused y
if ( z < -0.8 )
{
TogglePlayerControllable ( playerid, 1 ) ;
new
string[128] ,
DNSME[MAX_PLAYER_NAME] ,
String [ 1000 ] ;
GetPlayerName ( playerid, DNSME, sizeof DNSME ) ;
format ( string, sizeof string, "%s se conectou com S0B31T e foi kickado.", DNSME ) ;
SendClientMessageToAll ( 0xFF0000FF, string ) ;
format ( String, sizeof ( String ) , "{FF0000}Você entrou com Sobeit.\nAnti-S0B31T {FF0000}Feito por [FeK]Knife" ) ;
ShowPlayerDialog ( playerid, DIALOG_ChecarHack, DIALOG_STYLE_MSGBOX, "{FF0000}Brasil Game Show", String, "Sair" ) ;
Kick ( playerid ) ;
}
else
{
TogglePlayerControllable ( playerid, 1 ) , SendClientMessage ( playerid, -1, "Processado... Você está limpo agora pode jogar." ) ;
}
return true;
}