[Pedido] Anti DM
#1

Alguйm tem um Anti DM, eu procuro um tipo assim: Quando a pessoa mata ela recebe um aviso e por exemplo esse aviso sera prorrogado atй numero X de avisos, ai quando chegar no limite de avisos a pessoa й kikada do servidor.
Jб tentei ver por ai na internet e nada.
Reply
#2

Use uma variбvel:
pawn Код:
//Exemplo

new Exemplo[MAX_PLAYERS];

Exemplo[playerid] = 1;

if(Exemplo[playerid] == 1)
{
    print("Exemplo executado");
}
Veja estes tutoriais:

Variбveis
Operadores. Teуrico & Prбtico
Reply
#3

Olб, й isto que deseja ?
PHP код:
new Matou[MAX_PLAYERS];  //Topo do GM
public OnPlayerDeath(playeridkilleridreason)
{
    if(
Matou[killerid] == 0)
    {
        
SendClientMessage(playerid0xFF0000AA"» Aqui nгo й permitido assassinar outros Players ! [AVISO: 1/3]");
        
Matou[killerid] = 1;
        return 
1;
    }
    if(
Matou[killerid] == 1)
    {
        
SendClientMessage(playerid0xFF0000AA"» Aqui nгo й permitido assassinar outros Players ! [AVISO: 2/3]");
        
Matou[killerid] = 2;
        return 
1;
    }
    if(
Matou[killerid] == 2)
    {
        
SendClientMessage(playerid0xFF0000AA"» Vocк foi kickado por fazer DM ! [AVISO: 3/3]");
        
Matou[killerid] = 0;
        
Kick(playerid);
        return 
1;
    }
    return 
1;
}
public 
OnPlayerConnect(playerid)
{
    
Matou[playerid] = 0;
    return 
1;

Reply
#4

Nгo testei, mas creio que esteja certo:
pawn Код:
//Topo
new Avisos[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
    Avisos[playerid]=0;
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    if(IsPlayerConnected(killerid) && killerid != INVALID_PLAYER_ID)
    {
        Avisos[killerid]++;
        new Msg[128];
        format(Msg,sizeof(Msg), "Aviso: vocк estб praticando DM %d/3", Avisos[killerid]);
        SendClientMessage(killerid,-1, Msg);
       
        if(Avisos[killerid] >= 3)
        {
            SendClientMessage(killerid,-1,"Kickado por fazer DM!");
            Kick(killerid);
        }
    }
    return 1;
}
Enfim, qualquer erro poste aqui. Personalize ao seu gosto =)
Reply
#5

Quote:
Originally Posted by .Skool_.
Посмотреть сообщение
Olб, й isto que deseja ?
PHP код:
new Matou[MAX_PLAYERS];  //Topo do GM
public OnPlayerDeath(playeridkilleridreason)
{
    if(
Matou[killerid] == 0)
    {
        
SendClientMessage(playerid0xFF0000AA"» Aqui nгo й permitido assassinar outros Players ! [AVISO: 1/3]");
        
Matou[killerid] = 1;
        return 
1;
    }
    if(
Matou[killerid] == 1)
    {
        
SendClientMessage(playerid0xFF0000AA"» Aqui nгo й permitido assassinar outros Players ! [AVISO: 2/3]");
        
Matou[killerid] = 2;
        return 
1;
    }
    if(
Matou[killerid] == 2)
    {
        
SendClientMessage(playerid0xFF0000AA"» Vocк foi kickado por fazer DM ! [AVISO: 3/3]");
        
Matou[killerid] = 0;
        
Kick(playerid);
        return 
1;
    }
    return 
1;
}
public 
OnPlayerConnect(playerid)
{
    
Matou[playerid] = 0;
    return 
1;

Aн no seu cуdigo vocк setou a varнavel pra um jogador e envia a mensagem pro outro.
Reply
#6

Cria uma variбvel, a cada player que ele matar vc adiciona +1 а essa variavel, exp:
pawn Код:
new Matou[MAX_PLAYERS];

Matou[playerid]++; // Vocк adiciona quando ele matar

if(Matou[playerid] == 3){ // quando chegar а 3 avisos
Kick(playerid); // Kika
}
Reply
#7

pawn Код:
new Matou[MAX_PLAYERS]; // Topo do GM
public OnPlayerConnect(playerid)
{
    Matou[playerid] = 0;
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    Matou[killerid]++;
    format(string, sizeof(string), "~> Vocк nгo pode matar outros players [%d/3]",Matou[killerid]);
    SendClientMessage(killerid, -1, string);
    if(Matou[killerid] == 3){
    SendClientMessage(killerid, -1, "Vocк foi kickado por fazer DM");
    Kick(killerid);
    }
    return 1;
}
Reply
#8

Deste modo tambйm funciona, ele avisa o jogador ao dar o dano em outro jogador.
pawn Код:
new AntiDM[MAX_PLAYERS] = 0;

public OnPlayerDeath(playerid, killerid, reason)
{
    if(AntiDM[playerid] > 15) Kick(playerid), AntiDM[playerid] = 0;
    return 1;
}

public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid, bodypart)
{
    AntiDM[playerid]++;
    SendClientMessage(playerid, -1, "* Nгo й permtido DM aqui!");
    if(AntiDM[playerid] > 15) Kick(playerid), AntiDM[playerid] = 0;
    return 1;
}
Reply
#9

Quote:
Originally Posted by .Skool_.
Посмотреть сообщение
Olб, й isto que deseja ?
PHP код:
new Matou[MAX_PLAYERS];  //Topo do GM
public OnPlayerDeath(playeridkilleridreason)
{
    if(
Matou[killerid] == 0)
    {
        
SendClientMessage(playerid0xFF0000AA"» Aqui nгo й permitido assassinar outros Players ! [AVISO: 1/3]");
        
Matou[killerid] = 1;
        return 
1;
    }
    if(
Matou[killerid] == 1)
    {
        
SendClientMessage(playerid0xFF0000AA"» Aqui nгo й permitido assassinar outros Players ! [AVISO: 2/3]");
        
Matou[killerid] = 2;
        return 
1;
    }
    if(
Matou[killerid] == 2)
    {
        
SendClientMessage(playerid0xFF0000AA"» Vocк foi kickado por fazer DM ! [AVISO: 3/3]");
        
Matou[killerid] = 0;
        
Kick(playerid);
        return 
1;
    }
    return 
1;
}
public 
OnPlayerConnect(playerid)
{
    
Matou[playerid] = 0;
    return 
1;

Da pra simplificar bastante desse cуdigo ai, nгo precisa fazer uma if por vez, basta aumentar a variбvel do killer.


PHP код:

Matou
[killerid]++; 
E no fim apenas fazer a verificaзгo.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)