[AYUDA]Evadir bloqueo de comando en una zona
#1

Lo qe pasa es qe cree un comando /salir
para una zona!


si esta en una zona de DM,y quiere usar algun comando qe le salga:

Код:
NO PUEDE USAR COMANDOS AQUI, USA /SALIR blabla!
todo bien perfectoo mi problema como evito ese mensaje

o esa funcion para otro comando qe se se pueda usar en esa zona

ejemplo miren lo quiero para esteee

pawn Код:
/******************************************************************************/
    if (strcmp("/TeamDM", cmdtext, true, 10) == 0)
    {
    //#define azulA 078BF8
    //#define rojoA F00000
    ShowPlayerDialog(playerid,TeamDMD,DIALOG_STYLE_LIST,"{8A0808}-= Elije tu Equipo =-","{078BF8}1.- Equipo Azul\n{F00000}2.- Equipo Rojo","Entrar", "Cancelar");
    return 1;
}
ese es mi comando TDM en dialog, y este es la funcion en el dialog response!

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
 //Aqui tengo los dialogs
//de reglas y funciones--

    if(dialogid == TeamDMD)
    {
            if(listitem == 0) //Equipo Azul
            {
    Equipos[playerid] = Equipo_Azul;
    GameTextForPlayer(playerid, "~b~Equipo Azul", 1000, 6);
    /* ===================== */
    ResetPlayerWeapons(playerid);
    GivePlayerWeapon(playerid, 24, 2000);
    GivePlayerWeapon(playerid, 25, 8000);
    GivePlayerWeapon(playerid, 29, 2000);
    TeamDM[playerid] = 1; //Aqui Ve sii el jugador esta en la zona DM(bloquea los comandos)
    new Eazul = random(7);
    switch(Eazul)
    {
        case 0: Posicion(playerid, -2453.5691,1558.3506,28.9531);
         case 1: Posicion(playerid, -2452.1697,1535.9408,28.9464);
          case 2: Posicion(playerid, -2456.1978,1544.7244,23.1406);
           case 3: Posicion(playerid, -2466.8088,1551.5033,23.6641);
          case 4: Posicion(playerid, -2466.5334,1539.0526,23.6641);
         case 5: Posicion(playerid, -2465.9783,1536.3939,17.3281);
        case 6: Posicion(playerid, -2464.4641,1556.7767,20.2344);
    }
            }

            if(listitem == 1) //Equipo Rojo
            {
    Equipos[playerid] = Equipo_Rojo;
    GameTextForPlayer(playerid, "~r~equipo Rojo", 1000, 6);
    /* ===================== */
    ResetPlayerWeapons(playerid);
    GivePlayerWeapon(playerid, 24, 2000);
    GivePlayerWeapon(playerid, 25, 8000);
    GivePlayerWeapon(playerid, 29, 2000);
    TeamDM[playerid] = 1; //aquii igual xD!
    new Erojo = random(9);
    switch(Erojo)
    {
        case 0: Posicion(playerid, -2302.2261,1544.8066,18.7734);
         case 1: Posicion(playerid, -2313.2451,1536.4447,18.7734);
          case 2: Posicion(playerid, -2314.4263,1554.9194,18.7658);
           case 3: Posicion(playerid, -2337.2141,1560.1768,17.3281);
            case 4: Posicion(playerid, -2335.3127,1542.8317,17.3281);
           case 5: Posicion(playerid, -2334.5513,1536.8254,17.3281);
          case 6: Posicion(playerid, -2337.7195,1529.7211,17.3281);
         case 7: Posicion(playerid, -2342.6753,1536.0854,24.9845);
        case 8: Posicion(playerid, -2350.1746,1557.4725,23.1481);
    }
    /* ===================== */
            }
            return 1;
    }

    return 1;
}
y quiero crear un comando qe sea

Код:
/CambiarDeEquipo
pero al ahora dee ponerlo me sale el mensaje

Код:
NO PUEDE USAR COMANDOS AQUI, USA /SALIR blabla!
Ahora este es el comando

Код:
/CambiarDeEquipo
pawn Код:
if (strcmp("/CambiarDeEquipo", cmdtext, true, 10) == 0)
    {
    //#define azulA 078BF8
    //#define rojoA F00000
    if(TeamDM[playerid] == 1) // Si esta en 0 No puede usar el cmd
    {                                  // Si esta en 1 Revisa qe el jugador Si esta en la zona
        //Regresa al Menu
    ShowPlayerDialog(playerid,TeamDMD,DIALOG_STYLE_LIST,"{8A0808}-= Elije tu Equipo =-","{078BF8}1.- Equipo Azul\n{F00000}2.- Equipo Rojo","Entrar", "Cancelar");
    } else return Mensaje(playerid,rojo," -= NO ESTAS EN NI UN EQUIPO DEL /TEAMDM =-");
//Si el jugador no esta en la zona! saldra el mensaje
    return 1;
}
pero no me funciona el cmd!

me dicee

NO PUEDES USAR cmds blablabla!

como le puedo hacer para qe Evite que bloquie ese comando'? U_U!!

bueno es mi duda gracias
Reply
#2

El metodo de chequear comando por comando es valido pero no el mejor.

Mi recomendacion es que uses algo asi:
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    //aqui colocas todos los comandos que se pueden usar dentro y fuera del DM.
    if(TeamDM[playerid]){
        //aqui colocas todos los comandos que pueden usarse dentro del DM unicamente.
    }
    else{
        //aqui colocas todos los comandos que pueden usarse fuera del DM unicamente.
    }
}
y sobre tu cmd CambiarEquipo:

pawn Код:
if(!strcmp(cmdtext, "/cambiardeequipo", true)){
    if(TeamDM[playerid])return ShowPlayerDialog(playerid, TeamDMD, DIALOG_STYLE_LIST, "{8A0808}-= Elije tu Equipo =-","{078BF8}1.- Equipo Azul\n{F00000}2.- Equipo Rojo", "Entrar", "Cancelar");
    return Mensaje(playerid, rojo, " -= NO ESTAS EN NI UN EQUIPO DEL /TEAMDM =-");
}
Reply
#3

no man no me funca ni uno de lasdos formas XD!

cambie los cmds a lo qe merecomendaste y nada
el cmd menos u.u!

me sige saliendo el mensaje de ERROR

olvide mensionar qe tengo esteoo arriva de todos los cmds

pawn Код:
if(TeamDM[playerid] == 1 recDM[playerid] == 1) return SendClientMessage(playerid,-1,"||=====|| {04B4AE}No puedes usar comandos en un !DM! {FFFFFF}Para salir del DM usa: {04B4AE}/Salir {FFFFFF}||=====||");
    /* ==================== */
Reply
#4

esa linea debe ir ensima de todos los cmds que no pueden ser utilizados estando en el DM, pero por dejabo de los cmds que pueden ser usados en el DM
Reply
#5

The_Chaoz la Forma que diste esta buena pero que pasaria si alguien usa params de que forma se usaria?
lo que quiero decir q para params nose podra usar esa forma q diste ya q cada cmd tiene su callback o yoqse jeje...

Podrias decirme como se usaria en ZCMD porq yo quiero hacer lo mismo para unas zonas de DM por ej:
Uso X CMD y se bloquean todos los cmd excepto uno q sirve para salir de esa zona espero que me aya explicado gracias.
Reply
#6

para zcmd el metodo sigue siendo valido, solo debes usarlo dentro del callback "OnPlayerCommandReceived", aun asi en zcmd baja la performance x lo que no recomiendo este metodo.

PD: algo que no me nencione anteriormente que es importante y pido disculpas por mi descuido, es que si un jugador ejecuta un comando estando en la zona de DM (y dicho cmd solo puede ser utilizado fuera de la misma) le retornara el msj de que dicho comando no existe.

Ej: Dentro de la zona de DM tenemos un comando llamado /rocket el cual nos da rockets. Si un jugador fuera de la zona de DM tipea dicho comando, con el metodo que explique, dicho jugador recivira el mensaje "Unknown command." o bien el mensaje que hayamos configurado en su reemplazo.
Reply
#7

sii, ayer note eso del COMANDO NO EXISTE XD! AUN ANDO PROBANDO LA FUncion qe mandaste
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)