[Pedido]/kick
#1

estou aqui denovo para pedir um cmd /kick eu ja criei 2 um nгo funciono, e o outro ficava falando que o player nгo era valido, resumindo: os 2 bugados '-'
Se alguem poder me ajudar eu agradeзo
Variavel de adm= pAdmin

Sу falta isso para meu server de drift ficar on :/
Reply
#2

PHP код:
public OnPlayerCommandText(playeridcmdtext[])
{
    new 
cmd[256], idx;
    
cmd strtok(cmdtextidx);
    if(
strcmp(cmd"/kick"true) == 0)
    {
        if(!
IsPlayerAdmin(playerid)) return SendClientMessage(playeridADMIN_RED"[ERRO] Vocк nгo estб autorizado a usar este comando.");
        
tmp strtok(cmdtextidx);
        if(!
strlen(tmp)) return SendClientMessage(playerid, -1"USO: /kick [ID] [MOTIVO]");
        new 
id;
        
id strval(tmp);
        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)) return SendClientMessage(playerid, -1"USO: /kick [ID] [MOTIVO]");
        if(!
IsPlayerConnected(id)) return SendClientMessage(playerid, -1"JOGADOR OFFLINE.");
        new 
string[256], n[24], n2[24];
        
GetPlayerName(idn24);
        
GetPlayerName(playeridn224);
        
format(string128"Vocк kickou o jogador %s [ID: %d] | Motivo: %s."nidresult);
        
SendClientMessage(playerid, -1string);
        
format(string128"Vocк foi kickado pelo administrador %s [ID %d] | Motivo: %s."n2playeridresult);
        
SendClientMessage(id, -1string);
        
Kick(id);
        
format(string128"O ADMIN %s kickou o jogador %s | Motivo: %s."n2nresult);
        
SendClientMessageToAll(-1string);
        return 
1;
    }
    return 
0;

Reply
#3

LoL, aqui dб esses erros:

PHP код:
C:\Users\Casa\Desktop\SAMP\gamemodes\[PSA].pwn(542) : error017undefined symbol "tmp"
C:\Users\Casa\Desktop\SAMP\gamemodes\[PSA].pwn(542) : error017undefined symbol "idx"
C:\Users\Casa\Desktop\SAMP\gamemodes\[PSA].pwn(542) : error017undefined symbol "tmp"
C:\Users\Casa\Desktop\SAMP\gamemodes\[PSA].pwn(542) : error017undefined symbol "tmp"
C:\Users\Casa\Desktop\SAMP\gamemodes\[PSA].pwn(542) : error017undefined symbol "idx"
C:\Users\Casa\Desktop\SAMP\gamemodes\[PSA].pwn(542) : error017undefined symbol "idx"
C:\Users\Casa\Desktop\SAMP\gamemodes\[PSA].pwn(542) : error029invalid expressionassumed zero
C
:\Users\Casa\Desktop\SAMP\gamemodes\[PSA].pwn(542) : error017undefined symbol "idx"
C:\Users\Casa\Desktop\SAMP\gamemodes\[PSA].pwn(542) : error076syntax error in the expression, or invalid function call
C
:\Users\Casa\Desktop\SAMP\gamemodes\[PSA].pwn(542) : error017undefined symbol "idx"
C:\Users\Casa\Desktop\SAMP\gamemodes\[PSA].pwn(542) : error017undefined symbol "idx"
C:\Users\Casa\Desktop\SAMP\gamemodes\[PSA].pwn(542) : error017undefined symbol "idx"
C:\Users\Casa\Desktop\SAMP\gamemodes\[PSA].pwn(542) : error029invalid expressionassumed zero
C
:\Users\Casa\Desktop\SAMP\gamemodes\[PSA].pwn(542) : error017undefined symbol "idx" 
pawn Код:
528    if(strcmp(cmdtext, "/kick", true) == 0)
529    {
530        if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, GOLD, "[ERRO] Vocк nгo й Administrador!");
531        tmp = strtok(cmdtext, idx);
532        if(!strlen(tmp)) return SendClientMessage(playerid, -1, "USO: /kick [ID] [MOTIVO]");
533        new id;
534        id = strval(tmp);
535        new length = strlen(cmdtext);
536        while ((idx < length) && (cmdtext[idx] <= ' '))
537        {
538            idx++;
539        }
540        new offset = idx;
541        new result[64];
542        while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
543        {
544            result[idx - offset] = cmdtext[idx];
545            idx++;
546        }
547        result[idx - offset] = EOS;
548        if(!strlen(result)) return SendClientMessage(playerid, -1, "USO: /kick [ID] [MOTIVO]");
549        if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "JOGADOR OFFLINE.");
550        new string[256], n[24], n2[24];
551        GetPlayerName(id, n, 24);
552        GetPlayerName(playerid, n2, 24);
553        format(string, 128, "Vocк kickou o jogador %s [ID: %d] | Motivo: %s.", n, id, result);
554        SendClientMessage(playerid, -1, string);
555        format(string, 128, "Vocк foi kickado pelo administrador %s [ID %d] | Motivo: %s.", n2, playerid, result);
556        SendClientMessage(id, -1, string);
557        Kick(id);
558        format(string, 128, "O ADMIN %s kickou o jogador %s | Motivo: %s.", n2, n, result);
559        SendClientMessageToAll(-1, string);
560        return 1;
561    }
Reply
#4

PHP код:
new tmp[128], idx
Reply
#5

Beleza, eu logo ADM e tal, aн digito o comando, e aparece Comando Invбlido.

WTF ?
Reply
#6

Peguem o codigo novamente.

Atualizei-o.
Reply
#7

PHP код:
530   C:\Users\Casa\Desktop\SAMP\gamemodes\[PSA].pwn(530) : warning219local variable "idx" shadows a variable at a preceding level
1642  C
:\Users\Casa\Desktop\SAMP\gamemodes\[PSA].pwn(530) : warning203symbol is never used"idx" 
Sу que nгo existe a linha 1642.

pawn Код:
530    new cmd[256], idx;
Meu GM acaba na 1641, ._.
Reply
#8

Quote:
Originally Posted by [FTC]Scorpion
Посмотреть сообщение
PHP код:
530   C:\Users\Casa\Desktop\SAMP\gamemodes\[PSA].pwn(530) : warning219local variable "idx" shadows a variable at a preceding level
1642  C
:\Users\Casa\Desktop\SAMP\gamemodes\[PSA].pwn(530) : warning203symbol is never used"idx" 
Sу que nгo existe a linha 1642.

pawn Код:
530    new cmd[256], idx;
Meu GM acaba na 1641, ._.

Fiz um pra vocк, isto deve resolver o seu problema :



Coloque :



pawn Код:
//No OnPlayerCommandText:

if(!strcmp("/kick", cmdtext, true, 5))
    {
        #if defined pAdmin
        if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid,0xFFFFFFAA,"Vocк nгo й um Administrador do servidor !");
        #else
        if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xFFFFFFAA,"Vocк nгo й um Administrador do servidor !");
        #endif
        new foco[128], foco2[128], text[128], AdminNick[MAX_PLAYER_NAME], KickadoNick[MAX_PLAYER_NAME];
        foco = KcmD(1,cmdtext),
        foco2 = KcmD(2,cmdtext);
        if(!strlen(foco)) return SendClientMessage(playerid,0xFFFFFFAA,"Digite: /kick [id] [motivo]");
        if(!strlen(foco2)) return SendClientMessage(playerid,0xFFFFFFAA,"Digite: /kick [id] [motivo]");
        GetPlayerName(playerid,AdminNick,MAX_PLAYER_NAME),
        GetPlayerName(strval(foco),KickadoNick,MAX_PLAYER_NAME),
        format(text,sizeof(text),"[Server] O Administrador %s kickou o jogador %s. Motivo: %s",AdminNick,KickadoNick,foco2),
        SendClientMessageToAll(0x33CCFFAA, text),
        Kick(strval(foco));
        return true;
    }



//No Final do seu GM:


stock KcmD(param, cmdtext[])
{
    new string[128], pos, var;
    format(string, sizeof(string), "%s ", cmdtext);

    while((pos = strfind(string, " ", true)) != -1)
    {
        if(var == param) return string;
        var++;

        strdel(string, 0, pos + 1);
        if(strcmp(string, " ", true, pos) == 0) goto end;
    }

end:
    string[0] = '\0';
    return string;
}


Espero ter ajudado .
Reply
#9

Aqui estб.

PHP код:
if(strcmp(cmd"/kick"true) == 0)
{
    if(!
IsPlayerAdmin(playerid)) return SendClientMessage(playeridADMIN_RED"[ERRO] Vocк nгo estб autorizado a usar este comando.");
    
tmp strtok(cmdtextidx); if(!strlen(tmp)) return SendClientMessage(playerid, -1"USO: /kick [ID] [MOTIVO]");
    new 
ID strval(tmp); //ID
    
new length strlen(cmdtext); while ((idx length) && (cmdtext[idx] <= ' ')) { idx++; }
    new 
offset idxresult[64]; while ((idx length) && ((idx offset) < (sizeof(result) - 1))) { result[idx offset] = cmdtext[idx]; idx++; }
    
result[idx offset] = EOS//MOTIVO
    
if(!strlen(result)) return SendClientMessage(playerid, -1"USO: /kick [ID] [MOTIVO]");
    if(!
IsPlayerConnected(ID) || ID == IVALID_PLAYER_ID) return SendClientMessage(playerid, -1"JOGADOR OFFLINE.");
    new 
string[0x80], nome[MAX_PLAYER_NAME], nome2[MAX_PLAYER_NAME]; GetPlayerName(playeridnomesizeof nome); GetPlayerName(IDnome2sizeof nome2);

    
format(stringsizeof string"Vocк kickou o jogador %s[%i], motivo: %s."nome2IDresult);
    
SendClientMessage(playerid, -1string);
    
format(stringsizeof string"Vocк foi kickado pelo administrador %s motivo: %s."nomeresult);
    
SendClientMessage(ID, -1string);
    
Kick(ID);
    
format(stringsizeof string"[ADM] %s kickou o jogador %s motivo: %s."nomenome2result);
    
SendClientMessageToAll(-1string);
    return 
0x01;



_______
<~ Reputaзгo
Reply
#10

Rjj, valeuzгo, deu certo! s2
_
Obrigado, tambйm, Ricop, Felipe e Shadow!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)