[Ajuda] Como arrumar isso?
#1

pawn Код:
if(IsPlayerInRangeOfPoint(killerid, 100, 1970.0239,-1198.5100,17.4500))// << Cordenadas exatamente no meio da favela.
        {
            new string[128], killer[MAX_PLAYER_NAME];
            GetPlayerName(killerid, killer, sizeof(killer));
            format(string, sizeof(string), "| ANTI - DM | %s matou %s no ParkGlen e nгo foi para lista de procurados!(Area de DM liberado).", killer, nome(playerid));
            SendClientMessageToAll(0xCAFF70AA, string);
        }
        else
        {
            if(GetPlayerWantedLevel(killerid) == 0){SetPlayerWantedLevel(killerid, 1);}
            else if(GetPlayerWantedLevel(killerid) == 1){SetPlayerWantedLevel(killerid, 2);}
            else if(GetPlayerWantedLevel(killerid) == 2){SetPlayerWantedLevel(killerid, 3);}
            else if(GetPlayerWantedLevel(killerid) == 3){SetPlayerWantedLevel(killerid, 4);}
            else if(GetPlayerWantedLevel(killerid) == 4){SetPlayerWantedLevel(killerid, 5);}
            else if(GetPlayerWantedLevel(killerid) == 5){SetPlayerWantedLevel(killerid, 6);}
            else if(GetPlayerWantedLevel(killerid) == 6){SetPlayerWantedLevel(killerid, 6);}
            new string[128], killer[MAX_PLAYER_NAME];
            GetPlayerName(killerid, killer, sizeof(killer));
            format(string, sizeof(string), "| ANTI - DM | %s matou %s e estб sendo procurado.", killer, nome(playerid));
            SendClientMessageToAll(0xCAFF70AA, string);
        }
Meu Server avisa pra todos quanto um player mata o outro dentro da aerea de DM, e quando fora tambйm, sу que: quando algum player realmente mata o outro, a mensagem aparece da forma correta mas, quando um player morre por contra propria aparece como alguem tivesse matado ele fora da area de DM, e aparece da seguinte forma:"| ANTI - DM | (aqui aparece um espaco sem nada, sу um espaco mesmo) matou %s e estб sendo procurado."
ou quando um adm da o comando /kill [id] tambйm aparece dessa forma citada acima, como-se o adm tivesse matado ele fora da favela, mas nao aparece o nome do adm, no lugar aparece um espaco, e o adm tambйm nao leva estrelas... o que realmente nao deve acontecer caso de suicidio e caso comando de adm, mas com a mensagem nao й assim que acontece, se alguem podesse me ajudar num code que: quando o player se suicida, nгo aparecer mensagem nenhuma, e assim com comandos de adm...
Reply
#2

pawn Код:
// Se for na onplayerdeath..
       
        if(reason >= 47 || reason <= 54)
        {
           
            SendClientMessageToAll(-1,"+1 foi pa cova '-'");
        }
        else if(IsPlayerInRangeOfPoint(killerid, 100, 1970.0239,-1198.5100,17.4500))// << Cordenadas exatamente no meio da favela.
        {
            new string[128], killer[MAX_PLAYER_NAME];
            GetPlayerName(killerid, killer, sizeof(killer));
            format(string, sizeof(string), "| ANTI - DM | %s matou %s no ParkGlen e nгo foi para lista de procurados!(Area de DM liberado).", killer, nome(playerid));
            SendClientMessageToAll(0xCAFF70AA, string);
        }
        else
        {
            if(GetPlayerWantedLevel(killerid) == 0){SetPlayerWantedLevel(killerid, 1);}
            else if(GetPlayerWantedLevel(killerid) == 1){SetPlayerWantedLevel(killerid, 2);}
            else if(GetPlayerWantedLevel(killerid) == 2){SetPlayerWantedLevel(killerid, 3);}
            else if(GetPlayerWantedLevel(killerid) == 3){SetPlayerWantedLevel(killerid, 4);}
            else if(GetPlayerWantedLevel(killerid) == 4){SetPlayerWantedLevel(killerid, 5);}
            else if(GetPlayerWantedLevel(killerid) == 5){SetPlayerWantedLevel(killerid, 6);}
            else if(GetPlayerWantedLevel(killerid) == 6){SetPlayerWantedLevel(killerid, 6);}
            new string[128], killer[MAX_PLAYER_NAME];
            GetPlayerName(killerid, killer, sizeof(killer));
            format(string, sizeof(string), "| ANTI - DM | %s matou %s e estб sendo procurado.", killer, nome(playerid));
            SendClientMessageToAll(0xCAFF70AA, string);
        }
Reply
#3

Quote:
Originally Posted by Coe1
Посмотреть сообщение
pawn Код:
// Se for na onplayerdeath..
       
        if(reason >= 47 || reason <= 54)
        {
           
            SendClientMessageToAll(-1,"+1 foi pa cova '-'");
        }
        else if(IsPlayerInRangeOfPoint(killerid, 100, 1970.0239,-1198.5100,17.4500))// << Cordenadas exatamente no meio da favela.
        {
            new string[128], killer[MAX_PLAYER_NAME];
            GetPlayerName(killerid, killer, sizeof(killer));
            format(string, sizeof(string), "| ANTI - DM | %s matou %s no ParkGlen e nгo foi para lista de procurados!(Area de DM liberado).", killer, nome(playerid));
            SendClientMessageToAll(0xCAFF70AA, string);
        }
        else
        {
            if(GetPlayerWantedLevel(killerid) == 0){SetPlayerWantedLevel(killerid, 1);}
            else if(GetPlayerWantedLevel(killerid) == 1){SetPlayerWantedLevel(killerid, 2);}
            else if(GetPlayerWantedLevel(killerid) == 2){SetPlayerWantedLevel(killerid, 3);}
            else if(GetPlayerWantedLevel(killerid) == 3){SetPlayerWantedLevel(killerid, 4);}
            else if(GetPlayerWantedLevel(killerid) == 4){SetPlayerWantedLevel(killerid, 5);}
            else if(GetPlayerWantedLevel(killerid) == 5){SetPlayerWantedLevel(killerid, 6);}
            else if(GetPlayerWantedLevel(killerid) == 6){SetPlayerWantedLevel(killerid, 6);}
            new string[128], killer[MAX_PLAYER_NAME];
            GetPlayerName(killerid, killer, sizeof(killer));
            format(string, sizeof(string), "| ANTI - DM | %s matou %s e estб sendo procurado.", killer, nome(playerid));
            SendClientMessageToAll(0xCAFF70AA, string);
        }
Mano vou compilar e testar no desktop depois. Pode me explicar o bang do "reason" ae?

Obrigado.
Reply
#4

Й o motivo da morte do player...

https://sampwiki.blast.hk/wiki/Weapons < No final tem os ID's de 47 atй 54 do motivo da morte dele. ;p

Edit:

Se nгo funcionar, tente desta forma:
pawn Код:
if( killerid == INVALID_PLAYER_ID )
    {
             SendClientMessageToAll(-1," Ele se suicidou.. HUEHUEHUE ");
             return 1;
        }
Reply
#5

Cara, acho que o code nгo vai dar certo... veja bem, meu problema й com essa parte:
pawn Код:
else
        {
            if(GetPlayerWantedLevel(killerid) == 0){SetPlayerWantedLevel(killerid, 1);}
            else if(GetPlayerWantedLevel(killerid) == 1){SetPlayerWantedLevel(killerid, 2);}
            else if(GetPlayerWantedLevel(killerid) == 2){SetPlayerWantedLevel(killerid, 3);}
            else if(GetPlayerWantedLevel(killerid) == 3){SetPlayerWantedLevel(killerid, 4);}
            else if(GetPlayerWantedLevel(killerid) == 4){SetPlayerWantedLevel(killerid, 5);}
            else if(GetPlayerWantedLevel(killerid) == 5){SetPlayerWantedLevel(killerid, 6);}
            else if(GetPlayerWantedLevel(killerid) == 6){SetPlayerWantedLevel(killerid, 6);}
            new string[128], killer[MAX_PLAYER_NAME];
            GetPlayerName(killerid, killer, sizeof(killer));
            format(string, sizeof(string), "| ANTI - DM | %s matou %s e estб sendo procurado.", killer, nome(playerid));
            SendClientMessageToAll(0xCAFF70AA, string);
        }
Quando um adm da: /kill [id] aparece da seguinte forma: | ANTI - DM | matou %s e estб sendo procurado.

Sу que, nгo й para aparecer isso no caso de comando de adm entende?, quero criar 1 exceзгo entende? Na verdade 2 exceзхes: uma quando a morte for causada por comando de adm, e outra quando a morte for causada pelo prуprio morto...
Reply
#6

Usa uma variбvel.

Exemplo:

pawn Код:
new var[MAX_PLAYERS];

CMD:matar(playerid)
{
    var[playerid] = 1;
    SetPlayerHealth(playerid, 0);
}

public OnPlayerDeath(playerid, killerid, reason)
{
    if(var[playerid] == 1)
    {
        new pname[MAX_PLAYER_NAME+1], string[128];
        GetPlayerName(playerid, pname, sizeof(pname));
        format(string, sizeof(string),"[ Admin ] O admin chico doido matou o player %s", pname);
        SendClientMessageToAll(-1, string);
        var[playerid] = 0;
    }
    return 1;
}
Eu nunca mexi com isso e nгo sei se vai da certo, mas, tente.
Reply
#7

Cara, vocк nгo entendeu de novo. NГO й pra aparecer se for comando de adm... voce fez um comando para aparecer se um adm matar alguem mas, NГO й pra aparecer...

Nesse code:
pawn Код:
else
        {
            if(GetPlayerWantedLevel(killerid) == 0){SetPlayerWantedLevel(killerid, 1);}
            else if(GetPlayerWantedLevel(killerid) == 1){SetPlayerWantedLevel(killerid, 2);}
            else if(GetPlayerWantedLevel(killerid) == 2){SetPlayerWantedLevel(killerid, 3);}
            else if(GetPlayerWantedLevel(killerid) == 3){SetPlayerWantedLevel(killerid, 4);}
            else if(GetPlayerWantedLevel(killerid) == 4){SetPlayerWantedLevel(killerid, 5);}
            else if(GetPlayerWantedLevel(killerid) == 5){SetPlayerWantedLevel(killerid, 6);}
            else if(GetPlayerWantedLevel(killerid) == 6){SetPlayerWantedLevel(killerid, 6);}
            new string[128], killer[MAX_PLAYER_NAME];
            GetPlayerName(killerid, killer, sizeof(killer));
            format(string, sizeof(string), "| ANTI - DM | %s matou %s e estб sendo procurado.", killer, nome(playerid));
            SendClientMessageToAll(0xCAFF70AA, string);
        }
Nesse code acima /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ o que ele faz? R: quando um player mata o outro, aparece "fulano de tal matou fulano" mas eu quero 1 excecao que: quando um adm mata alguem por comando, NГO й pra aparecer a tal mensagem, e nem se o cara se matar sozinho tambйm NГO й pra aparecer a mensagem entendeu
Reply
#8

O todo poderoso...

Utiliza uma variбvel para checar se um admin matou ele e utiliza o modo acima que passei para checar se o player se suicidou. ¬¬'

Ou utiliza isso...
pawn Код:
if( killerid == INVALID_PLAYER_ID )
    {
             
             return 1;
    }
¬¬'
Reply
#9

pawn Код:
else
            {
                if(GetPlayerWantedLevel(killerid) == 0){SetPlayerWantedLevel(killerid, 1);}
                else if(GetPlayerWantedLevel(killerid) == 1){SetPlayerWantedLevel(killerid, 2);}
                else if(GetPlayerWantedLevel(killerid) == 2){SetPlayerWantedLevel(killerid, 3);}
                else if(GetPlayerWantedLevel(killerid) == 3){SetPlayerWantedLevel(killerid, 4);}
                else if(GetPlayerWantedLevel(killerid) == 4){SetPlayerWantedLevel(killerid, 5);}
                else if(GetPlayerWantedLevel(killerid) == 5){SetPlayerWantedLevel(killerid, 6);}
                else if(GetPlayerWantedLevel(killerid) == 6){SetPlayerWantedLevel(killerid, 6);}
                new string[128], killer[MAX_PLAYER_NAME];
                GetPlayerName(killerid, killer, sizeof(killer));
                if(killerid == INVALID_PLAYER_ID)
                {
                    return 1;
                }
                else
                {
                    format(string, sizeof(string), "| ANTI - DM | %s matou %s e estб sendo procurado.", killer, nome(playerid));
                    SendClientMessageToAll(0xCAFF70AA, string);
                }
            }

Assim?
Reply
#10

Coloca no topo da public onplayerdeath e caso o matador for um player com ID invбlido ( ou seja, que nгo existe ) ele vai apestar retornar verdadeiro e nгo vai enviar uma mensagem aos players..
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)