[AJUDA] cmd /aviso ID motivo
#1

boa noite, tou querendo fazer um cmd de avisos, digamos, um adm da um aviso no player, se o player tiver 2 avisos, ele leva um kick. gostaria de saber se o cmd estб correto.


PHP код:
new avisokick[256];
    if(
strcmp(cmd"/aviso"true) == 0)
    {
        if(
IsPlayerConnected(playerid))
        {
            
tmp strtok(cmdtextidx);
            if(!
strlen(tmp))
            {
                
SendClientMessage(playeridCOLOR_GRAD2"USE: /aviso [Id Do Jogador] [motivo]");
                return 
1;
            }
            
giveplayerid ReturnUser(tmp);
            if (
PlayerInfo[playerid][pThug] >= 1)
            {
                if(
admtrampando[playerid] < 1)
                {
                
SendClientMessage(playeridCOLOR_GRAD1"Vocк nгo estб trabalhando! (/trabalhar)");
                return 
1;
                }
                if(
IsPlayerConnected(giveplayerid))
                {
                    if(
giveplayerid != INVALID_PLAYER_ID)
                    {
                         
GetPlayerName(giveplayeridgiveplayersizeof(giveplayer));
                        
GetPlayerName(playeridsendernamesizeof(sendername));
                        new 
length strlen(cmdtext);
                        while ((
idx length) && (cmdtext[idx] <= ' '))
                        {
                            
idx++;
                        }
                        new 
offset idx;
                        new 
result[64];
                        while ((
idx length) && ((idx offset) < (sizeof(result) - 1)))
                        {
                            
result[idx offset] = cmdtext[idx];
                            
idx++;
                        }
                        
result[idx offset] = EOS;
                        if(!
strlen(result))
                        {
                            
SendClientMessage(playeridCOLOR_GRAD2"USE: /aviso [Id Do Jogador] [motivo]");
                            return 
1;
                        }
                                                if (
avisokick == 0avisokick 1
                                                
if (avisokick == 1){
                                                
format(stringsizeof(string), "ADMIN CMD: %s Foi Kickado by %s, Motivo: %s"giveplayersendername, (result));
                        
SendClientMessageToAll(COLOR_LIGHTREDstring);
                                                
Kick(giveplayerid);
                        return 
1;
                                                }
                    }
                }
            }
            else
            {
                
format(stringsizeof(string), "   %d Nгo estб on."giveplayerid);
                
SendClientMessage(playeridCOLOR_GRAD1string);
            }
        }
        return 
1;
    } 
eai pessoal falta alguma coisa ??
Reply
#2

Aparenta estar correto, apenas nгo muito organizado...

Vocк poderia comeзar a utilizar outra forma para fazer comandos com mais facilidade.

Exemplo:
pawn Код:
newCmd:aviso(playerid, params[])
{
    if(PlayerInfo[playerid][pThug] < 1 || admtrampando[playerid] < 1)
        return SendClientMessage(playerid, -1, "Vocк nгo й um admin, ou nгo estб em modo trabalho.");
       
    new otherId, avisoStr[128], avisado[MAX_PLAYERS];
    if(sscanf(params, "ds[128]", otherId, avisoStr))
        return SendClientMessage(playerid, -1, "/aviso [id][aviso]");
       
    if(otherId == INVALID_PLAYER_ID)
        return SendClientMessage(playerid, -1, "Id invбlido");
       
    if(avisado[otherId] == 0)
        return avisado[otherId] = 1;
       
    if(avisado[otherId] == 1)
        return kick(otherId);

    format(avisoStr, 128, "Aviso: %s", avisoStr);
    SendClientMessage(otherId, -1, avisoStr);
    return 1;
}
Olha como fica mais simples e menor...

Foi utilizado duas includes para fazer este comando,

JCMD, by Jeffrey_Hatrix
sscanf, by ******
Reply
#3

Willian_Luigi

C:\Users\Victor\Desktop\SAMP-SERVER\ThuG Life City\gamemodes\ThugLife.pwn(42782) : error 017: undefined symbol "aviso"
C:\Users\Victor\Desktop\SAMP-SERVER\ThuG Life City\gamemodes\ThugLife.pwn(4278 : error 017: undefined symbol "sscanf"
C:\Users\Victor\Desktop\SAMP-SERVER\ThuG Life City\gamemodes\ThugLife.pwn(4279 : error 017: undefined symbol "kick"
C:\Users\Victor\Desktop\SAMP-SERVER\ThuG Life City\gamemodes\ThugLife.pwn(42805) : warning 225: unreachable code
C:\Users\Victor\Desktop\SAMP-SERVER\ThuG Life City\gamemodes\ThugLife.pwn(42782) : warning 203: symbol is never used: "newCmd"
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


3 Errors.
Reply
#4

Quote:
Originally Posted by Willian_Luigi
Посмотреть сообщение
Foi utilizado duas includes para fazer este comando,

JCMD, by Jeffrey_Hatrix
sscanf, by ******
Tenta ver esses links ai, caso jб tenha as includes use fora de callbacks por ъltimo no GM...
Reply
#5

Valeu =D
Reply
#6

Ei vei, coloquei assim, mas nao ta dando o kick qndo alcanзa os 3 warns. porque isso?

PHP код:
if(strcmp(cmd"/aviso"true) == 0)
    {
        if(
IsPlayerConnected(playerid))
        {
            
tmp strtok(cmdtextidx);
            if(!
strlen(tmp))
            {
                
SendClientMessage(playeridCOLOR_GRAD2"USE: /aviso [id] [motivo]");
                return 
1;
            }
            
giveplayerid ReturnUser(tmp);
            if (
PlayerInfo[playerid][pThug] >= 1)
            {
                if(
admtrampando[playerid] < && PlayerInfo[playerid][pAdmin] != 1342)
                {
                    
SendClientMessage(playeridCOLOR_GRAD1"Vocк nгo estб trabalhando! (/trabalhar)");
                    return 
1;
                }
                if(
IsPlayerConnected(giveplayerid))
                {
                    if(
giveplayerid != INVALID_PLAYER_ID)
                    {
                        
GetPlayerName(giveplayeridgiveplayersizeof(giveplayer));
                        
GetPlayerName(playeridsendernamesizeof(sendername));
                        new 
length strlen(cmdtext);
                        while ((
idx length) && (cmdtext[idx] <= ' '))
                        {
                            
idx++;
                        }
                        new 
offset idx;
                        new 
result[64];
                        while ((
idx length) && ((idx offset) < (sizeof(result) - 1)))
                        {
                            
result[idx offset] = cmdtext[idx];
                            
idx++;
                        }
                        
result[idx offset] = EOS;
                        if(!
strlen(result))
                        {
                            
SendClientMessage(playeridCOLOR_GRAD2"USE: /aviso [id] [motivo]");
                            return 
1;
                        }
                        
PlayerInfo[giveplayerid][pWarns] += 1;
                        
format(stringsizeof(string), "AdmCmd: %s foi avisado por %s, Motivo: %s"giveplayersendername, (result));
                        
SendClientMessageToAll(COLOR_LIGHTREDstring);
                        if(
PlayerInfo[giveplayerid][pWarns] == 3)
                        {
                            
format(stringsizeof(string), "Sistema de Warns: %s foi kickado por levar 2 avisos!"giveplayer);
                            
SendClientMessageToAll(COLOR_LIGHTREDstring);
                            
Kick(giveplayerid);
                        }
                        return 
1;
                    }
                }
//not connected
            
}
            else
            {
                
SendClientMessage(playeridCOLOR_GRAD1"   Esse nгo й um jogador ativo.");
            }
        }
        return 
1;
    } 
Reply
#7

Ele nгo tб dando o kick, mas ele manda a mensagem?

"Sistema de Warns: %s foi kickado por levar 2 avisos!"
Reply
#8

So Modificar ali estб 3
pawn Код:
if(strcmp(cmd, "/aviso", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USE: /aviso [id] [motivo]");
                return 1;
            }
            giveplayerid = ReturnUser(tmp);
            if (PlayerInfo[playerid][pThug] >= 1)
            {
                if(admtrampando[playerid] < 1 && PlayerInfo[playerid][pAdmin] != 1342)
                {
                    SendClientMessage(playerid, COLOR_GRAD1, "Vocк nгo estб trabalhando! (/trabalhar)");
                    return 1;
                }
                if(IsPlayerConnected(giveplayerid))
                {
                    if(giveplayerid != INVALID_PLAYER_ID)
                    {
                        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                        GetPlayerName(playerid, sendername, sizeof(sendername));
                        new length = strlen(cmdtext);
                        while ((idx < length) && (cmdtext[idx] <= ' '))
                        {
                            idx++;
                        }
                        new offset = idx;
                        new result[64];
                        while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
                        {
                            result[idx - offset] = cmdtext[idx];
                            idx++;
                        }
                        result[idx - offset] = EOS;
                        if(!strlen(result))
                        {
                            SendClientMessage(playerid, COLOR_GRAD2, "USE: /aviso [id] [motivo]");
                            return 1;
                        }
                        PlayerInfo[giveplayerid][pWarns] += 1;
                        format(string, sizeof(string), "AdmCmd: %s foi avisado por %s, Motivo: %s", giveplayer, sendername, (result));
                        SendClientMessageToAll(COLOR_LIGHTRED, string);
                        if(PlayerInfo[giveplayerid][pWarns] == 2)
                        {
                            format(string, sizeof(string), "Sistema de Warns: %s foi kickado por levar 2 avisos!", giveplayer);
                            SendClientMessageToAll(COLOR_LIGHTRED, string);
                            Kick(giveplayerid);
                        }
                        return 1;
                    }
                }//not connected
            }
            else
            {
                SendClientMessage(playerid, COLOR_GRAD1, "   Esse nгo й um jogador ativo.");
            }
        }
        return 1;
    }
Reply
#9

Quote:
Originally Posted by @Riichard
Посмотреть сообщение
So Modificar ali estб 3
Quote:
Originally Posted by victor_thug
Посмотреть сообщение
Ei vei, coloquei assim, mas nao ta dando o kick qndo alcanзa os 3 warns. porque isso?
Legal й postar sem ler, vida loka mano --'

Tenta assim brother:
pawn Код:
if(strcmp(cmd, "/aviso", true) == 0)
{
    if(IsPlayerConnected(playerid))
    {
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, COLOR_GRAD2, "USE: /aviso [id] [motivo]");
            return 1;
        }
        giveplayerid = ReturnUser(tmp);
        if (PlayerInfo[playerid][pThug] >= 1)
        {
            if(admtrampando[playerid] < 1 && PlayerInfo[playerid][pAdmin] != 1342)
            {
                SendClientMessage(playerid, COLOR_GRAD1, "Vocк nгo estб trabalhando! (/trabalhar)");
                return 1;
            }
            if(IsPlayerConnected(giveplayerid))
            {
                if(PlayerInfo[giveplayerid][pWarns] == 3)
                {
                    format(string, sizeof(string), "Sistema de Warns: %s foi kickado por levar 2 avisos!", giveplayer);
                    SendClientMessageToAll(COLOR_LIGHTRED, string);
                    Kick(giveplayerid);
                    return 1;
                }
                GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                GetPlayerName(playerid, sendername, sizeof(sendername));
                new length = strlen(cmdtext);
                while ((idx < length) && (cmdtext[idx] <= ' '))
                {
                    idx++;
                }
                new offset = idx;
                new result[64];
                while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
                {
                    result[idx - offset] = cmdtext[idx];
                    idx++;
                }
                result[idx - offset] = EOS;
                if(!strlen(result))
                {
                    SendClientMessage(playerid, COLOR_GRAD2, "USE: /aviso [id] [motivo]");
                    return 1;
                }
                format(string, sizeof(string), "AdmCmd: %s foi avisado por %s, Motivo: %s", giveplayer, sendername, (result));
                SendClientMessageToAll(COLOR_LIGHTRED, string);
                PlayerInfo[giveplayerid][pWarns] += 1;
                return 1;
            }
        }
        else
        {
            SendClientMessage(playerid, COLOR_GRAD1, "   Esse nгo й um jogador ativo.");
        }
    }
    return 1;
}
Reply
#10

Muito obrigado Gente! =D
Vocкs sгo de mais!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)