Portal SAMP
[Tutorial] Criando comandos símples - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Guias e Tutoriais (https://portalsamp.com/forumdisplay.php?fid=7)
+--- Tópico: [Tutorial] Criando comandos símples (/showthread.php?tid=1237)



Criando comandos símples - [email protected] - 30/05/2021

Irei ensinar para vocês um comando útil e fácil, eu sou iniciante então se tiver erros espero que entendam.

Iremos usar strcmp. O lugar para usar comandos strcmp é em OnPlayerCommandText, então iremos até ele.

Iremos criar um comando símples (/vida).

Primeiro iremos apertar ENTER para ir para a linha debaixo, e escrever  if (!strcmp(cmdtext), "/vida", true)) e deixam do jeito que está: 



Código:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (!strcmp(cmdtext, "/vida", true))
    {
       

}

Embaixo da { iremos colocar: if(GetPlayerMoney(playerid) >= 3000) ai no caso irá ficar assim:  


Código:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (!strcmp(cmdtext, "/vida", true))
    {
        if(GetPlayerMoney(playerid) >= 3000)

}
Essa função if(GetPlayerMoney(playerid) irá chegar se o jogador terá 3000.



Código:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (!strcmp(cmdtext, "/vida", true))
    {
        if(GetPlayerMoney(playerid) >= 3000)
        {
            GivePlayerMoney(playerid, -3000);
            new var0[265];
            new var1[256];
            GetPlayerName(playerid, var1, 30);

}
GivePlayerMoney(playerid, -3000); O Jogador irá perder 3000, no caso ele está pagando 3000 para pegar vida.

new var0[265]; String0
new var1[256]; String1

Como no site fala Uma string é um tipo especial de matriz, que é utilizado para armazenar vários caracteres para criar uma palavra ou frase ou texto de outro ser humano legível. No caso é o número de caracteres que vai ter.

GetPlayerName(playerid, var1, 30); Isso será para pegar o nome do jogador que está usando o comando e colocar na mensagem.

Agorá iremos adicionar os "principais" 

Código:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (!strcmp(cmdtext, "/vida", true))
    {
        if(GetPlayerMoney(playerid) >= 3000)
        {
            GivePlayerMoney(playerid, -3000);
            new var0[265];
            new var1[256];
            GetPlayerName(playerid, var1, 30);
            format(var0, 265, "%s {A9A9A9}Recuperou 100% de vida. {00FF00}(/Vida).",var1);
Código:
            SendClientMessageToAll(0xFFFFFFF, var0);
Código:
            SetPlayerHealth(playerid, 100.0);
Código:
        }

}


format(var0, 265, "%s {A9A9A9}Recuperou 100% de vida. {00FF00}(/Vida).",var1);
format é os valores do espaços reservados seguem exatamente a mesma ordem dos parâmetros na chamada. Por Exemplo, "Eu tenho anos de idade": o % vai ser substituido por uma variável do tipo inteiro, que é a idade da pessoa. - Samp Wiki //No caso será a mensagem que será enviada para os jogadores.

SendClientMessageToAll(0xFFFFFFF, var0); //SendClientMessageToAll é a função de enviar a mensagem da string para todos os jogadores, 0xFFFFFFF é a cor (pode mudar pra qualquer usa) e var0 é a função de enviar a mensagem que no caso vai ser a string.  

Agora pra parte final: 

Código:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (!strcmp(cmdtext, "/vida", true))
    {
        if(GetPlayerMoney(playerid) >= 3000)
        {
            GivePlayerMoney(playerid, -3000);
            new var0[265];
            new var1[256];
            GetPlayerName(playerid, var1, 30);
            format(var0, 265, "%s {A9A9A9}Recuperou 100% de vida. {00FF00}(/Vida).",var1);
            SendClientMessageToAll(0xFFFFFFF, var0);
            SetPlayerHealth(playerid, 100.0);
        }
        else
Código:
       {
Código:
           SendClientMessage(playerid, 0xFFFFFFF, "{FF0000}[Erro]: {FFFFFF} Você não tem dinheiro suficiente!");
Código:
       }
       return 1;
}



O "else" irá ser usado caso o jogador não tenha dinheiro suficiente. else tradução: se não.
Depois iremos adicionar um { e dar outro ENTER

SendClientMessage é para enviar a mensagem para um jogador específico.
playerid no caso é o para o jogador que a mensagem será enviada.
0xFFFFFFF é a cor, da pra mudar pra qualquer uma.
"{FF0000}[Erro]: {FFFFFF} Você não tem dinheiro suficiente!"); é a mensagem que irá ser enviada, vejam que há um {FF0000} e {FFFFFF} na mensagem, isso é uma cor HTML que assim vai ficar: [ERRO]: Você não tem dinheiro suficiente!"); fechando a mensagem.

Fim! Eu tive que colocar como preto ali porque ia ficar invisivel mas é branco.