[Pedido] Como criar comando para ligar/desligar Chat Kill?
#1

E ai galera.
Bom й o seguinte, queria saber como cria um comando /chatkill que teria a funзгo de ligar/desligar o Chat Kill para o player. Eu atй tenho uma ideia para criar o comando, mas creio que nгo vб funcionar.
Reply
#2

pra que criar isso se й sу a pessoa apertar F9 que o chat kill desativa/ativa?
Reply
#3

Crie uma variбvel global que determine se um player ligou o /chatkill ou nгo.

Este tуpico explica isso: https://sampforum.blast.hk/showthread.php?tid=235924

Entгo vocк pode usar a funзгo SendDeathMessageToPlayer para mandar a mensagem no chatkill de quem possui ele ligado

Vale lembrar que nгo tem como "apagar" a lista do cliente pelo servidor. Se o jogador quiser esconder o que jб foi mostrado, ele precisa apertar F9.

Usando um loop simples, vocк pode criar uma funзгo SendDeathMessageToAll (pois assim vocк pode enviar para quem tem a funзгo chatkill ativada.

Exemplo:

PHP код:
new bool:ChatKill[MAX_PLAYERS]; // Determina se o player ligou ou nao 
PHP код:
stock SendDeathMessageToAll(killerid,deadid,reason)
{
    for(new 
0MAX_PLAYERS; ++i)
    {
        if(
IsPlayerConnected(i) && ChatKill[i])
            
SendDeathMessageForPlayer(i,killerid,deadid,reason);
    }

Recomendo que leia tutoriais tambйm de laзos de repetiзгo e estruturas de controle.
Recomendo tambйm que sempre ajuste o valor de MAX_PLAYERS para o nъmero de slots do seu servidor.

Caso nгo queira mudar o valor nas includes nativas do sa-mp, vocк pode redefinir pelo gamemode:

PHP код:
#undef MAX_PLAYERS
#define MAX_PLAYERS 100 
Boa sorte na criaзгo do comando, nгo tenha medo de tentar e errar.
Reply
#4

arakuta, obrigado pela ajuda, mas o comando nгo estб funcionando, ele estб aparecendo o Chat Kill quando morre, mesmo quando eu digito /chatkill.

Coloquei isso em:

OnPlayerConnect
ChatKill[playerid] = false;

Olhe meu comando:

if (strcmp(cmd,"/chatkill", true) == 0)
{
if(ChatKill[playerid])
{
ChatKill[playerid] = false;
SendClientMessage(playerid, COLOR_GREY, "Vocк desligou o chat kill!");
}
else{
ChatKill[playerid] = true;
SendClientMessage(playerid, COLOR_GREY, "Vocк ligou o chat kill!");
}
return 1;
}
Reply
#5

Vocк possui a funзгo SendDeathMessage na sua callback OnPlayerDeath?

Nгo deveria, pois ela manda para todos os jogadores do servidor.
Reply
#6

@edit
Nгo vi que jб tinham postado, sorry.
Reply
#7

arakuta, tirei o SendDeathMessage da public OnPlayerDeath porйm, nгo estб ativando o Chat Kill, nгo mostra quando morre.
Reply
#8

Passe a usar a funзгo que postei no cуdigo acima:

PHP код:
stock SendDeathMessageToAll(killerid,deadid,reason

    for(new 
0MAX_PLAYERS; ++i
    { 
        if(
IsPlayerConnected(i) && ChatKill[i]) 
            
SendDeathMessageForPlayer(i,killerid,deadid,reason); 
    } 

E entгo, em OnPlayerDeath utilize-a.
Reply
#9

PHP код:

if (strcmp(cmd,"/chatkill"true) == 0)
{
ChatKill[playerid] = !ChatKill[playerid];
SendClientMessage(playeridCOLOR_GREYChatKill[playerid] ? ("Vocк ligou o chat kill!") : ("Vocк desligou o chat kill!"));
return 
1;

Jб que estб a aprender, porque nгo aprender operaзгo ternбria
https://sampforum.blast.hk/showthread.php?tid=335491
Reply
#10

@arakuta nгo estou entendo e nгo estб dando certo. aqui estб o cуdigo que tenho http://pastebin.com/nDEJgBUP agora me diz o que eu tenho que fazer, minha lуgica ta tenso.

@Day_ obrigado pela sugestгo, quem sabe uma dia eu estudo isso rsrs.
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)