[AYUDA]Problema de bloqueo de comandos
#1

Hola tengo problemas con el bloqueo de comandos

Vi este tutorial https://sampforum.blast.hk/showthread.php?tid=311254

hago todo lo que es y cuando entro al gm y pongo un tdm no bloquea los demбs comandos

asн lo tengo un comando

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    new VariableDeBloqueo[MAX_PLAYERS];
    if( VariableDeBloqueo[playerid] == 1) return SendClientMessage(playerid, -1, "Lo siento, estбs en un A/D, para que puedas usar los comandos de nuevo, debes de morir primero");

    if (strcmp("/TDM1", cmdtext, true, 10) == 0)
    {
        ShowPlayerDialog(playerid,04042,DIALOG_STYLE_LIST,"{FF0000}Elige tu equipo","Defensores \n Atacantes","Accept","Cancel");
        VariableDeBloqueo[playerid] = 1;
    return 0;
}
Y no sirve

asн tengo todo acomodado

pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    new VariableDeBloqueo[MAX_PLAYERS];
    VariableDeBloqueo[playerid] = 0; // esto desbloqueara los comandos al morir
    // demas funciones
    return 1;
}
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid==04042) {
        if(response) {
            if(listitem==0) {                     // Dedfensa
                SendClientMessage(playerid, 0xFFFFFF, "Defiende asta morir!");
                GivePlayerWeapon(playerid,24,200);
                SetPlayerSkin(playerid,199);
                SetPlayerPos(playerid,
                Float:1541.4026,
                Float:-1364.1187,
                Float:329.7969);
            }
            if(listitem==1) {                     // Atacantes
                SendClientMessage(playerid, 0xFFFFFF, "Eres atacante es hora de matar !");
                GivePlayerWeapon(playerid,22,600);
                SetPlayerSkin(playerid,162);
                SetPlayerPos(playerid,
                Float:1541.4026,
                Float:-1364.1187,
                Float:329.7969);
            }


        }
    }
    return 0;
}
Reply
#2

La variable debe estar fuera del callback OnPlayerCommandText, ya que asн como lo tenes siempre se crea de nuevo y con el valor 0.
Reply
#3

si la quito sale todo esto

Quote:

C:\Users\Adrian\Downloads\server 2 0.3e\filterscripts\ADXD.pwn(84) : error 017: undefined symbol "VariableDeBloqueo"
C:\Users\Adrian\Downloads\server 2 0.3e\filterscripts\ADXD.pwn(84) : warning 215: expression has no effect
C:\Users\Adrian\Downloads\server 2 0.3e\filterscripts\ADXD.pwn(84) : error 001: expected token: ";", but found "]"
C:\Users\Adrian\Downloads\server 2 0.3e\filterscripts\ADXD.pwn(84) : error 029: invalid expression, assumed zero
C:\Users\Adrian\Downloads\server 2 0.3e\filterscripts\ADXD.pwn(84) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


4 Errors.

Reply
#4

pone al principio del gm
pawn Код:
new VariableDeBloqueo[MAX_PLAYERS];
VariableDeBloqueo[playerid] = 1; // pone esto en el dialogo de ataque y defensa
Reply
#5

ya ise eso ^^ desde el principio y sigue igual
Reply
#6

Mentira es impsible que no funcione ¬¬ aparte nunca pusiste VariableDeBloqueo[playerid] = 1; en el dialogo que hace entrar al juego. y Difiniste cada rato new VariableDeBloqueo[MAX_PLAYERS]; en ves de ponerlo arriba de todo el gm.
Reply
#7

Me referнa que cuando leн antes el tutorial dije quizбs es eso pero no sigue igual man -.-
Reply
#8

Quote:
Originally Posted by adrianxd
Посмотреть сообщение
si la quito sale todo esto
Yo no dije que la quites, dije que tiene que estar afuera del callback. Si no cada vez que un usuario use un comando se le crearia de nuevo a todos los jugadores y estarнa en 0 de nuevo.
Reply
#9

new VariableDeBloqueo[MAX_PLAYERS]; la tienes que poner una sola vez y afuera de todo, ya que cada vez que alguien usa un comando se crea la variable y cuando creas una variable su valor inicial es de 0
Reply
#10

Lo que quieren decir es esto
pawn Код:
#include <a_samp>
//Acб pones la variable
new VariableDeBloqueo[MAX_PLAYERS];

public OnPlayerCommandText(playerid, cmdtext[])
{
    if( VariableDeBloqueo[playerid] == 1) return SendClientMessage(playerid, -1, "Lo siento, estбs en un A/D, para que puedas usar los comandos de nuevo, debes de morir primero");

    if (strcmp("/TDM1", cmdtext, true, 10) == 0)
    {
        ShowPlayerDialog(playerid,04042,DIALOG_STYLE_LIST,"{FF0000}Elige tu equipo","Defensores \n Atacantes","Accept","Cancel");
        VariableDeBloqueo[playerid] = 1;
    return 0;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    VariableDeBloqueo[playerid] = 0; // esto desbloqueara los comandos al morir
    // demas funciones
    return 1;
}
Reply
#11

que crees asн lo tengo y no me sirve

Me tira los errores que marque ariba
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)