[FilterScript] [FS]ANTI-ESC
#1

Код:
#include <a_samp>

#define COLOR_RED 0xAA3333AA

#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 //CREDIT: DracoBlue

new Float:x[MAX_PLAYERS];
new Float:y[MAX_PLAYERS];
new Float:z[MAX_PLAYERS];


public OnFilterScriptInit()
{
    print("Anti-Esc by GhOsT[X] carregado");
    return 1;
}

public OnFilterScriptExit()
{
    print("Anti-Esc by GhOsT[X] descarregado");
    return 1;
}


public OnPlayerCommandText(playerid, cmdtext[])
{
    dcmd(esc,3,cmdtext);
    return 1;
}

dcmd_esc(playerid,params[])
{
  new tmp[256], idx;
  tmp = strtok(params,idx);
  if(!strlen(tmp))
  {
   SendClientMessage(playerid,COLOR_RED,"Use: /esc (playerid");
   return true;
  }
  new pid = strval(tmp);
  if(!IsPlayerConnected(pid) || GetPlayerInterior(pid) != 0 || GetPlayerInterior(playerid) != 0)
  {
   SendClientMessage(playerid,COLOR_RED,"ID Invalido ou Voce/Jogador esta em um interior.");
   return true;
  }
  new pname[MAX_PLAYER_NAME], pname2[MAX_PLAYER_NAME], string2[256], string[256];
  GetPlayerName(playerid, pname2, sizeof(pname2));
  GetPlayerName(pid, pname, sizeof(pname));
  format(string2, sizeof(string2), "Voce usou /esc no jogador: %s.", pname);
  SendClientMessage(playerid,COLOR_RED, string2);
  format(string, sizeof(string), "Jogador: %s usou /esc em voce.", pname2);
  SendClientMessage(pid,COLOR_RED, string);
  GetPlayerPos(pid,Float:x[pid],Float:y[pid],Float:z[pid]);
  SetTimerEx("CheckEsc", 10000, 0, "dd", playerid, pid);
  return 1;
}

forward CheckEsc(pid,playerid);
public CheckEsc(pid,playerid)
{
new pname3[MAX_PLAYER_NAME];
new pname4[MAX_PLAYER_NAME];
GetPlayerName(pid, pname3, sizeof(pname3));
GetPlayerName(playerid, pname4, sizeof(pname4));
new Float:fX,Float:fY,Float:fZ;
GetPlayerPos(pid,fX,fY,fZ);
if(x[pid] == fX)
{
new string4[256];
format(string4, sizeof(string4), "Jogador: %s foi kickado por esc por %s.", pname3,pname4);
SendClientMessageToAll(COLOR_RED, string4);
SendClientMessage(pid,COLOR_RED, "Voce foi kickado por esc");
Kick(pid);
}else{
new string3[256];
format(string3, sizeof(string3), "Jogador: %s nгo esta de esc.", pname3);
SendClientMessage(playerid,COLOR_RED, string3);
}
}


strtok(const string[], &index)
{
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))

    {
        index++;

    }

    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))

    {
        result[index - offset] = string[index];
        index++;

    }
    result[index - offset] = EOS;
    return result;
}
Pastebin:http://pastebin.com/2UwEjRUZ

Creditos: Yo, solamente a mi.

Pode roubar,pode tirar o creditos, pode usar e abusar (Nгo importa foi eu quem fiz e ninguem vai muda isso huh)

PS: Bugs fixados
Reply
#2

pawn Код:
SetTimerEx("CheckEsc", 3000,0,"d", pid,cmderid);
?
Reply
#3

sim duh to passando parametros pro timer pra pode pega o nome do cara q digito o cmd dentro do timer.

Ta errado? o.O
Reply
#4

dois parameteros??
pawn Код:
pid,cmderid
para so
pawn Код:
"d"
?? isso ta mal ... ao menos
pawn Код:
"dd"
...
Reply
#5

vlw =)
Reply
#6

tem bugs
Mesmo a Pessoa se Movendo ele Kick
Reply
#7

hmmmm =/ qnd tive com tempoo eu arrumo
Reply
#8

Realmente Ghost ta com uns Bugs mais com o tempo resolve.
Reply
#9

=) arrumei os bugs..

Pelo que testei ta tudo workando now
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)