SA-MP Forums Archive
[Ayuda] їComo hago que una variable de bloqueo...? - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: [Ayuda] їComo hago que una variable de bloqueo...? (/showthread.php?tid=585190)



[Ayuda] їComo hago que una variable de bloqueo...? - MatrixenXD - 11.08.2015

Hola, les quiero preguntar como hago para que una variable de bloqueo no me bloquee un comando.
Explicaciуn:
Que una variable de bloqueo haga su trabajo con todos los comandos excepto uno.

~Saludos



Respuesta: [Ayuda] їComo hago que una variable de bloqueo...? - Dreyfuz - 11.08.2015

Si no pones el cуdigo no podremos ayudarte. Por lo menos pon el cуdigo del comando en cuestiуn.


Respuesta: [Ayuda] їComo hago que una variable de bloqueo...? - MatrixenXD - 11.08.2015

._. No hace falta poner ningъn cуdigo, lo que estoy queriendo decir es como hacer que un comando no sea bloqueado por una variable de bloqueo, o que una variable de bloqueo bloquee todos los comandos excepto uno.


Respuesta: [Ayuda] їComo hago que una variable de bloqueo...? - Johansitho - 11.08.2015

PHP код:
new bloquearcmd[MAX_PLAYERS];
CMD:bloquearcomando(playeridparams[])
{
     
bloquearcmd[playerid] = 1;
     
SendClientMessage(playerid, -1"Comando bloqueado");
     return 
1;
}
CMD:comando(playeridparams[])
{
    if(
bloquearcmd[playerid] == 0)
    {
        
SendClientMessage(playerid, -1"Comando desbloqueado");
    }
    else 
SendClientMessage(playerid, -1"Comando bloqueado");
    return 
1;




Respuesta: [Ayuda] їComo hago que una variable de bloqueo...? - MatrixenXD - 11.08.2015

Quote:
Originally Posted by Johansitho
Посмотреть сообщение
PHP код:
new bloquearcmd[MAX_PLAYERS];
CMD:bloquearcomando(playeridparams[])
{
     
bloquearcmd[playerid] = 1;
     
SendClientMessage(playerid, -1"Comando bloqueado");
     return 
1;
}
CMD:comando(playeridparams[])
{
    if(
bloquearcmd[playerid] == 0)
    {
        
SendClientMessage(playerid, -1"Comando desbloqueado");
    }
    else 
SendClientMessage(playerid, -1"Comando bloqueado");
    return 
1;

Primero ese cуdigo estб mal, segundo no estoy pidiendo como crear una variable de bloqueo


Respuesta: [Ayuda] їComo hago que una variable de bloqueo...? - Johansitho - 11.08.2015

Quote:
Originally Posted by MatrixenXD
Посмотреть сообщение
Primero ese cуdigo estб mal, segundo no estoy pidiendo como crear una variable de bloqueo
Disculpa, Pero:
1. el cуdigo no estб mal.
2. Creo que no entendн tu duda amigo.


Re: [Ayuda] їComo hago que una variable de bloqueo...? - SickAttack - 11.08.2015

Aqui te va un ejemplo.

Cuando comandos estan bloqueados, solamente puedes utilizar /test1.
pawn Код:
// [ DEVELOPMENT GAMEMODE ]

// INCLUDES:

#include <a_samp>
#include <zcmd>

// DEFINES:

// FUNCTIONS:

#define function%0(%1) forward%0(%1); public%0(%1)

// PER-PLAYER VARIABLES:

new bool:pCommandsBlocked[MAX_PLAYERS] = false;

// MAIN:

main()
{
    print("Development Mode: block_cmds_leave_one.amx");
}

// CALLBACKS:

public OnGameModeInit()
{
    return 1;
}

public OnGameModeExit()
{
    return 1;
}

public OnPlayerCommandReceived(playerid, cmdtext[])
{
    if(ArePlayerCommandsBlocked(playerid))
    {
        if(strcmp(cmdtext, "/test1", true) != 0)
        {
            SendClientMessage(playerid, -1, "Commands are currently blocked.");
            return 0;
        }
    }
    return 1;
}

// COMMANDS:

CMD:blockcmds(playerid, params[])
{
    pCommandsBlocked[playerid] = true;
    return 1;
}

CMD:unblockcmds(playerid, params[])
{
    pCommandsBlocked[playerid] = false;
    return 1;
}

CMD:test1(playerid, params[])
{
    SendClientMessage(playerid, -1, "You have used the commad /test1.");
    return 1;
}

CMD:test2(playerid, params[])
{
    SendClientMessage(playerid, -1, "You have used the commad /test2.");
    return 1;
}

// FUNCTIONS:

function bool:ArePlayerCommandsBlocked(playerid) return pCommandsBlocked[playerid];
P.S: No estamos ciegos!


Respuesta: [Ayuda] їComo hago que una variable de bloqueo...? - Dreyfuz - 11.08.2015

Mirб. Seguramente tendrбs una variable tipo: ComandoBloqueado

Y en algunos comandos tendrбs una sentencia semejante a este:

PHP код:
//...
if(ComandoBloqueado == true)
{
    
// ...
}
// ... 
Lo ъnico que debes de hacer es, al comando que no quieres que "estй bloqueado", le sacas esa sentencia, sуlo eso.

E insisto que si pusieras el cуdigo no perderбs nada, ni nadie te plagiarб por un simple cуdigo de un comando. Lo decнa, para asн poder ver quй variables usas y asн ayudarte con mбs precisiуn, pero si no quieres estб bien; eso sн, serб mбs complejo ayudarte.


Respuesta: Re: [Ayuda] їComo hago que una variable de bloqueo...? - MatrixenXD - 11.08.2015

Quote:
Originally Posted by SickAttack
Посмотреть сообщение
Aqui te va un ejemplo.

Cuando comandos estan bloqueados, solamente puedes utilizar /test1.
pawn Код:
// [ DEVELOPMENT GAMEMODE ]

// INCLUDES:

#include <a_samp>
#include <zcmd>

// DEFINES:

// FUNCTIONS:

#define function%0(%1) forward%0(%1); public%0(%1)

// PER-PLAYER VARIABLES:

new bool:pCommandsBlocked[MAX_PLAYERS] = false;

// MAIN:

main()
{
    print("Development Mode: block_cmds_leave_one.amx");
}

// CALLBACKS:

public OnGameModeInit()
{
    return 1;
}

public OnGameModeExit()
{
    return 1;
}

public OnPlayerCommandReceived(playerid, cmdtext[])
{
    if(ArePlayerCommandsBlocked(playerid))
    {
        if(strcmp(cmdtext, "/test1", true) != 0)
        {
            SendClientMessage(playerid, -1, "Commands are currently blocked.");
            return 0;
        }
    }
    return 1;
}

// COMMANDS:

CMD:blockcmds(playerid, params[])
{
    pCommandsBlocked[playerid] = true;
    return 1;
}

CMD:unblockcmds(playerid, params[])
{
    pCommandsBlocked[playerid] = false;
    return 1;
}

CMD:test1(playerid, params[])
{
    SendClientMessage(playerid, -1, "You have used the commad /test1.");
    return 1;
}

CMD:test2(playerid, params[])
{
    SendClientMessage(playerid, -1, "You have used the commad /test2.");
    return 1;
}

// FUNCTIONS:

function bool:ArePlayerCommandsBlocked(playerid) return pCommandsBlocked[playerid];
P.S: No estamos ciegos!
Muchas gracias, eso es lo que buscaba, e.e era mi manera de escribir xD


Respuesta: [Ayuda] їComo hago que una variable de bloqueo...? - MatrixenXD - 11.08.2015

Quote:
Originally Posted by Dreyfuz
Посмотреть сообщение
Mirб. Seguramente tendrбs una variable tipo: ComandoBloqueado

Y en algunos comandos tendrбs una sentencia semejante a este:

PHP код:
//...
if(ComandoBloqueado == true)
{
    
// ...
}
// ... 
Lo ъnico que debes de hacer es, al comando que no quieres que "estй bloqueado", le sacas esa sentencia, sуlo eso.

E insisto que si pusieras el cуdigo no perderбs nada, ni nadie te plagiarб por un simple cуdigo de un comando. Lo decнa, para asн poder ver quй variables usas y asн ayudarte con mбs precisiуn, pero si no quieres estб bien; eso sн, serб mбs complejo ayudarte.
Es que no tengo una sentencia asн en cada comando si no que tengo una en el OnPlayerCommandText