[Ajuda] Ajuda comeзar comando
#1

quero fazer um comando.. /prenderadm [ id ] [minutos] nгo sei qual funзгo usar, tenho o comeзo mais nгo sei qual uso pra saber os minutos.. no maximo 15.

Код:
if(strcmp(cmd, "/prenderadm", true) == 0)
		{
		if(IsPlayerAdmin( playerid ) || pAdmin[ playerid ] >= 3)
		{
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp)) return SendClientMessage(playerid, ERRO, "| ERRO | /prenderadm [ id ] [minutos]");
atй ai fiz, agora pra saber os minutos nгo sei qual uso se й strrest.. queria q mostrasse sу um new [funcao] e o if nao fez, se й q me entendem... Obrigado
Reply
#2

Meu amigo, nгo querendo atrapalhar, mas recomendo que remova o IsPlayerAdmin(playerid)

e deixe apenas o pAdmin.
Pois, hoje em dia, os ataques em servidores pela rcon sу vem crescendo.
O IsPlayerAdmin, й um tipo de administrador RCON.

PHP код:
    static
        
userid,
        
minutes,
        
reason[128];
    if (
pAdmin[playerid] < 1)
        return 
SendClientMessage(playerid, -1,"Vocк nгo possui autorizaзгo para utilizar este comando.");
    if (
sscanf(params"uds[128]"useridminutesreason))
        return 
SendClientMessage(playerid, -1,"/admprender [playerid/nome] [minutos] [rasгo]");
    if (
userid == INVALID_PLAYER_ID)
        return 
SendErrorMessage(playerid"Vocк especificou um jogador invбlido.");
    if (
minutes 1)
        return 
SendErrorMessage(playerid"Vocк nгo pode prender um jogador por menos de 0 minutos.");
    
SetPlayerVirtualWorld(userid, (playerid 100));
     
SetPlayerFacingAngle(userid0.0);
    
SetCameraBehindPlayer(userid);
    
ResetWeapons(userid);
    
PlayerData[userid][pJailTime] = minutes 60
Use isso como base. pJailTime й o tempo que ele vai ficar preso.
minutes й os minutos.
Reply
#3

no strcmp nгo da de usar sscanf, n tem outra maneira?
Reply
#4

na verdade vocк pode usar sscanf com strcmp...

PHP код:
new
    
PresoTimer[MAX_PLAYERS],
    
PresoTempo[MAX_PLAYERS],
    
bool:Preso[MAX_PLAYERS],
    
CountTempo[MAX_PLAYERS]
;

if(
strcmp(cmd"/prenderdm"true) ==0) {
    if(
IsPlayerAdmin(playerid) || pAdmin[playerid] >=3)
    {
        new
            
target,
            
minutos,
            
cmdString[128],
            
aName[MAX_PLAYER_NAME],
            
pName[MAX_PLAYER_NAME]
        ;
        
        
tmp strtok(cmdtextidx);
        
        if(!
strlen(tmp))
        return 
SendClientMessage(playerid, -1"Use: prenderdm [playerid] [minutos].");
        
        
target strval(tmp);
        
        if(!
IsPlayerConnected(target))
        return 
SendClientMessage(playerid, -1"playerid nгo conectado verifique o id.");
        
        
tmp strtok(cmdtextidx);
        
        if(!
strlen(tmp))
        return 
SendClientMessage(playerid, -1"Use: prenderdm [playerid] [minutos].");
        
        
minutos strval(tmp);
        
        if(
minutos || minutos 30)
        return 
SendClientMessage(playerid, -1"Minutos de 1 a 30.");
        
        
GetPlayerName(playeridaNameMAX_PLAYER_NAME);
        
GetPlayerName(targetpNameMAX_PLAYER_NAME);
        
        
format(cmdStringsizeof(cmdString), "O Administrador(a) %s prendeu o jogador(a) %s por ( %d minutos )"aNamepNameminutos);
        
SendClientMessageToAll(-1cmdString);
        
        
SetPlayerPos(target0.00.00.0);
        
SetPlayerHealth(target9999);
        
        
Preso[target] = true;
        
PresoTempo[target] = gettime() + (60 minutos);
        
        
PresoTimer[target] = SetTimerEx("PresoCallback"60000true"i"target);
        
    }
    return 
1;
}

forward PresoCallback(playerid);
public 
PresoCallback(playerid) {

    if(
Preso[playerid] && gettime() < PresoTempo[playerid])
    {
        new
            
cmdString[128]
        ;
        
        
CountTempo[playerid] ++;
        
format(cmdStringsizeof(cmdString), "Vocк esta preso a %s minuto."CountTempo[playerid]);
        
SendClientMessage(playerid, -1cmdString);
    }
    else
    {
        
Preso[playerid] = false;
        
PresoTempo[playerid] = CountTempo[playerid] = 0;
        
KillTimer(PresoTimer[playerid);
        
        
SetPlayerPos(playerid0.00.00.0);
        
SetPlayerHealth(playerid100.0);
        
        
SendClientMessage(playerid, -1"Vocк foi solto, nгo cometa mais crimes.");
    }
    return 
1;

Reply
#5

Vlw Whoo, o timer nem precisava pq ja tinha a base pronta, mais blz
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)