Armario
#1

Bueno, en mi gamemode (no el de ZC, otro) hay un sistema de armario de casas muy buenos, pero.. estб incompleto, o sea, lo ъnico que falta es un comando para abrir y cerrar armario. Mientras tal comando no estй, no se podrб acceder a tales funciones. Me parece mejor crear un /llavesarmario que al estar cerrado y pongas el comando lo abra, y al estar abierto y pongas el comando lo cierre, para no hacer dos comandos a la vez y simplificar trabajo.

A continuaciуn, algunas funciones del armario:

pawn Код:
if(strcmp(cmd, "/armario", true) == 0)
    {
        if(IsACaravana(playerid)) { SendClientMessage(playerid, ROJO_OSCURO, "* La caravana no tiene armario."); return 1;}
        if (JugadorEnArea(100.0, playerid,CasaInfo[Restaurante[playerid]][cSx],CasaInfo[Restaurante[playerid]][cSy],CasaInfo[Restaurante[playerid]][cSz]))
        {
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, BLANCO, "Uso: /armario [opciуn]");
                SendClientMessage(playerid, GRIS, "Opciones Disponibles: informacion, guardar, sacar");
                return 1;
            }
            if(strcmp(tmp, "sacar", true) == 0)
            {
                tmp = strtok(cmdtext, idx);
                if(!strlen(tmp))
                {
                    SendClientMessage(playerid, BLANCO, "Uso: /armario guardar [opciуn]");
                    SendClientMessage(playerid, GRIS, "Opciones Disponibles: Arma - Materiales - Dinero - Marihuana - Crack - Alambres - Bombas - Gasolina");
                    return 1;
                }
                if(strcmp(tmp, "arma", true) == 0)
                {
                    ReduceTime[playerid] = 1;
                    SetTimerEx("ReduceTimer", 3000, false, "i", playerid);
                    for(new slot = 0; slot != 10; slot++)
                    {
                        if(CasaInfo[Restaurante[playerid]][cGun][slot] >= 1 && 46 >= CasaInfo[Restaurante[playerid]][cGun][slot])
                        {
                            new gunname[24];
                            GetWeaponName(CasaInfo[Restaurante[playerid]][cGun][slot], gunname, sizeof(gunname));
                            EntregarArma(playerid, CasaInfo[Restaurante[playerid]][cGun][slot], CasaInfo[Restaurante[playerid]][cAmmo][slot]);
                            format(string, sizeof(string), "* Has sacado una %s (Municiуn: %i) del armario.", gunname, CasaInfo[Restaurante[playerid]][cAmmo][slot]);
                            SendClientMessage(playerid, CELESTE, string);
                            format(string, sizeof(string), "* %s abre el armario y saca un arma.", NombreJugador(playerid));
                            MandarMensajeCercano(30.0, playerid, string, ROSA,ROSA,ROSA,ROSA,ROSA);
                            CasaInfo[Restaurante[playerid]][cGun][slot] = NOEXISTE;
                            CasaInfo[Restaurante[playerid]][cAmmo][slot] = NOEXISTE;
                            GuardarCasa(Restaurante[playerid]);
                            return 1;
                        }
                    }
                    SendClientMessage(playerid, ROJO_OSCURO, "* No hay armas en el armario.");
                    return 1;
                }
                if(strcmp(tmp, "dinero", true) == 0)
                {
                    tmp = strtok(cmdtext, idx);
                    if(!strlen(tmp))
                    {
                        SendClientMessage(playerid, GRIS, "Usa: /armario sacar dinero [Cantidad]");
                        return 1;
                    }
                    moneys = strval(tmp);
                    if(CasaInfo[Restaurante[playerid]][cDinero] >= moneys)
                    {
                        CasaInfo[Restaurante[playerid]][cDinero] -= moneys;
                        JugadorInfo[playerid][jDinero] += moneys;
                        format(string, sizeof(string), "* Has sacado $%d dуlares del armario.", moneys);
                        SendClientMessage(playerid, CELESTE, string);
                        format(string, sizeof(string), "* %s abre armario y saca algo de dinero.", NombreJugador(playerid));
                        MandarMensajeCercano(20.0, playerid, string, ROSA,ROSA,ROSA,ROSA,ROSA);
                        GuardarCasa(Restaurante[playerid]);
                    }
                    else
                    {
                        SendClientMessage(playerid, ROJO_OSCURO, "* No hay esa cantidad.");
                        return 1;
                    }
                }
                if(strcmp(tmp, "marihuana", true) == 0)
                {
                    tmp = strtok(cmdtext, idx);
                    if(!strlen(tmp))
                    {
                        SendClientMessage(playerid, GRIS, "Usa: /armario sacar marihuana [Cantidad]");
                        return 1;
                    }
                    moneys = strval(tmp);
                    if(CasaInfo[Restaurante[playerid]][cMarihuana] >= moneys)
                    {
                        CasaInfo[Restaurante[playerid]][cMarihuana] -= moneys;
                        JugadorInfo[playerid][jMarihuana] += moneys;
                        format(string, sizeof(string), "* Has sacado %d gramos de marihuana del armario.", moneys);
                        SendClientMessage(playerid, CELESTE, string);
                        format(string, sizeof(string), "* %s abre armario y saca algo de marihuana.", NombreJugador(playerid));
                        MandarMensajeCercano(20.0, playerid, string, ROSA,ROSA,ROSA,ROSA,ROSA);
                        GuardarCasa(Restaurante[playerid]);
                    }
                    else
                    {
                        SendClientMessage(playerid, ROJO_OSCURO, "* No hay esa cantidad.");
                        return 1;
                    }
                }
                if(strcmp(tmp, "crack", true) == 0)
                {
                    tmp = strtok(cmdtext, idx);
                    if(!strlen(tmp))
                    {
                        SendClientMessage(playerid, GRIS, "Usa: /armario sacar crack [Cantidad]");
                        return 1;
                    }
                    moneys = strval(tmp);
                    if(CasaInfo[Restaurante[playerid]][cCrack] >= moneys)
                    {
                        CasaInfo[Restaurante[playerid]][cCrack] -= moneys;
                        JugadorInfo[playerid][jCrack] += moneys;
                        format(string, sizeof(string), "* Has sacado %d gramos de crack del armario.", moneys);
                        SendClientMessage(playerid, CELESTE, string);
                        format(string, sizeof(string), "* %s abre armario y saca algo de crack.", NombreJugador(playerid));
                        MandarMensajeCercano(20.0, playerid, string, ROSA,ROSA,ROSA,ROSA,ROSA);
                        GuardarCasa(Restaurante[playerid]);
                    }
                    else
                    {
                        SendClientMessage(playerid, ROJO_OSCURO, "* No hay esa cantidad.");
                        return 1;
                    }
                }
                if(strcmp(tmp, "alambres", true) == 0)
                {
                    tmp = strtok(cmdtext, idx);
                    if(!strlen(tmp))
                    {
                        SendClientMessage(playerid, GRIS, "Usa: /armario sacar alambres [Cantidad]");
                        return 1;
                    }
                    moneys = strval(tmp);
                    if(CasaInfo[Restaurante[playerid]][cAlambres] >= moneys)
                    {
                        CasaInfo[Restaurante[playerid]][cAlambres] -= moneys;
                        JugadorInfo[playerid][jChatarra] += moneys;
                        format(string, sizeof(string), "* Has sacado %d alambres del armario.", moneys);
                        SendClientMessage(playerid, CELESTE, string);
                        format(string, sizeof(string), "* %s abre armario y saca algunos alambres.", NombreJugador(playerid));
                        MandarMensajeCercano(20.0, playerid, string, ROSA,ROSA,ROSA,ROSA,ROSA);
                        GuardarCasa(Restaurante[playerid]);
                    }
                    else
                    {
                        SendClientMessage(playerid, ROJO_OSCURO, "* No hay esa cantidad.");
                        return 1;
                    }
                }
                if(strcmp(tmp, "gasolina", true) == 0)
                {
                    tmp = strtok(cmdtext, idx);
                    if(!strlen(tmp))
                    {
                        SendClientMessage(playerid, GRIS, "Usa: /armario sacar gasolina [Cantidad]");
                        return 1;
                    }
                    moneys = strval(tmp);
                    if(CasaInfo[Restaurante[playerid]][cGasolina] >= moneys)
                    {
                        CasaInfo[Restaurante[playerid]][cGasolina] -= moneys;
                        JugadorInfo[playerid][jLataGas] += moneys;
                        format(string, sizeof(string), "* Has sacado %d latas de gasolina del armario.", moneys);
                        SendClientMessage(playerid, CELESTE, string);
                        format(string, sizeof(string), "* %s abre armario y saca algunos materiales.", NombreJugador(playerid));
                        MandarMensajeCercano(20.0, playerid, string, ROSA,ROSA,ROSA,ROSA,ROSA);
                        GuardarCasa(Restaurante[playerid]);
                    }
                    else
                    {
                        SendClientMessage(playerid, ROJO_OSCURO, "* No hay esa cantidad.");
                        return 1;
                    }
                }
                if(strcmp(tmp, "materiales", true) == 0)
                {
                    tmp = strtok(cmdtext, idx);
                    if(!strlen(tmp))
                    {
                        SendClientMessage(playerid, GRIS, "Usa: /armario sacar materiales [Cantidad]");
                        return 1;
                    }
                    moneys = strval(tmp);
                    if(CasaInfo[Restaurante[playerid]][cMateriales] >= moneys)
                    {
                        CasaInfo[Restaurante[playerid]][cMateriales] -= moneys;
                        JugadorInfo[playerid][jMateriales] += moneys;
                        format(string, sizeof(string), "* Has sacado %d materiales del armario.", moneys);
                        SendClientMessage(playerid, CELESTE, string);
                        format(string, sizeof(string), "* %s abre armario y saca algunos materiales.", NombreJugador(playerid));
                        MandarMensajeCercano(20.0, playerid, string, ROSA,ROSA,ROSA,ROSA,ROSA);
                        GuardarCasa(Restaurante[playerid]);
                    }
                    else
                    {
                        SendClientMessage(playerid, ROJO_OSCURO, "* No hay esa cantidad.");
                        return 1;
                    }
                }
            }
            if(strcmp(tmp, "guardar", true) == 0)
            {
                tmp = strtok(cmdtext, idx);
                if(!strlen(tmp))
                {
                    SendClientMessage(playerid, BLANCO, "Uso: /armario guardar [opciуn]");
                    SendClientMessage(playerid, GRIS, "Opciones Disponibles: Arma - Materiales - Dinero - Marihuana - Crack - Alambres - Bombas - Gasolina");
                    return 1;
                }
                if(strcmp(tmp, "materiales", true) == 0)
                {
                    tmp = strtok(cmdtext, idx);
                    if(!strlen(tmp))
                    {
                        SendClientMessage(playerid, GRIS, "Usa: /armario guardar materiales [Cantidad]");
                        return 1;
                    }
                    moneys = strval(tmp);
                    if(JugadorInfo[playerid][jMateriales] >= moneys)
                    {
                        CasaInfo[Restaurante[playerid]][cMateriales] += moneys;
                        JugadorInfo[playerid][jMateriales] -= moneys;
                        format(string, sizeof(string), "* Has dejado %d materiales en el armario.", moneys);
                        SendClientMessage(playerid, CELESTE, string);
                        format(string, sizeof(string), "* %s abre armario y deja algunos materiales.", NombreJugador(playerid));
                        MandarMensajeCercano(20.0, playerid, string, ROSA,ROSA,ROSA,ROSA,ROSA);
                        GuardarCasa(Restaurante[playerid]);
                    }
                    else
                    {
                        SendClientMessage(playerid, ROJO_OSCURO, "* No tienes esa cantidad.");
                        return 1;
                    }
                }
                if(strcmp(tmp, "gasolina", true) == 0)
                {
                    tmp = strtok(cmdtext, idx);
                    if(!strlen(tmp))
                    {
                        SendClientMessage(playerid, GRIS, "Usa: /armario guardar gasolina [Cantidad]");
                        return 1;
                    }
                    moneys = strval(tmp);
                    if(JugadorInfo[playerid][jLataGas] >= moneys)
                    {
                        CasaInfo[Restaurante[playerid]][cGasolina] += moneys;
                        JugadorInfo[playerid][jLataGas] -= moneys;
                        format(string, sizeof(string), "* Has dejado %d latas de gasolina en el armario.", moneys);
                        SendClientMessage(playerid, CELESTE, string);
                        format(string, sizeof(string), "* %s abre armario y deja algunas latas de gasolina.", NombreJugador(playerid));
                        MandarMensajeCercano(20.0, playerid, string, ROSA,ROSA,ROSA,ROSA,ROSA);
                        GuardarCasa(Restaurante[playerid]);
                    }
                    else
                    {
                        SendClientMessage(playerid, ROJO_OSCURO, "* No tienes esa cantidad.");
                        return 1;
                    }
                }
                if(strcmp(tmp, "bombas", true) == 0)
                {
                    tmp = strtok(cmdtext, idx);
                    if(!strlen(tmp))
                    {
                        SendClientMessage(playerid, GRIS, "Usa: /armario guardar bombas [Cantidad]");
                        return 1;
                    }
                    moneys = strval(tmp);
                    if(JugadorInfo[playerid][jBomba] >= moneys)
                    {
                        CasaInfo[Restaurante[playerid]][cBombas] += moneys;
                        JugadorInfo[playerid][jBomba] -= moneys;
                        format(string, sizeof(string), "* Has dejado %d bombas en el armario.", moneys);
                        SendClientMessage(playerid, CELESTE, string);
                        format(string, sizeof(string), "* %s abre armario y deja algunas bombas.", NombreJugador(playerid));
                        MandarMensajeCercano(20.0, playerid, string, ROSA,ROSA,ROSA,ROSA,ROSA);
                        GuardarCasa(Restaurante[playerid]);
                    }
                    else
                    {
                        SendClientMessage(playerid, ROJO_OSCURO, "* No tienes esa cantidad.");
                        return 1;
                    }
                }
                if(strcmp(tmp, "alambres", true) == 0)
                {
                    tmp = strtok(cmdtext, idx);
                    if(!strlen(tmp))
                    {
                        SendClientMessage(playerid, GRIS, "Usa: /armario guardar alambres [Cantidad]");
                        return 1;
                    }
                    moneys = strval(tmp);
                    if(JugadorInfo[playerid][jChatarra] >= moneys)
                    {
                        CasaInfo[Restaurante[playerid]][cAlambres] += moneys;
                        JugadorInfo[playerid][jChatarra] -= moneys;
                        format(string, sizeof(string), "* Has dejado %d alambres en el armario.", moneys);
                        SendClientMessage(playerid, CELESTE, string);
                        format(string, sizeof(string), "* %s abre armario y deja algunos alambres.", NombreJugador(playerid));
                        MandarMensajeCercano(20.0, playerid, string, ROSA,ROSA,ROSA,ROSA,ROSA);
                        GuardarCasa(Restaurante[playerid]);
                    }
                    else
                    {
                        SendClientMessage(playerid, ROJO_OSCURO, "* No tienes esa cantidad.");
                        return 1;
                    }
                }
                if(strcmp(tmp, "crack", true) == 0)
                {
                    tmp = strtok(cmdtext, idx);
                    if(!strlen(tmp))
                    {
                        SendClientMessage(playerid, GRIS, "Usa: /armario guardar crack [Cantidad]");
                        return 1;
                    }
                    moneys = strval(tmp);
                    if(JugadorInfo[playerid][jCrack] >= moneys)
                    {
                        CasaInfo[Restaurante[playerid]][cCrack] += moneys;
                        JugadorInfo[playerid][jCrack] -= moneys;
                        format(string, sizeof(string), "* Has dejado %d gramos de crack en el armario.", moneys);
                        SendClientMessage(playerid, CELESTE, string);
                        format(string, sizeof(string), "* %s abre armario y deja algo de crack.", NombreJugador(playerid));
                        MandarMensajeCercano(20.0, playerid, string, ROSA,ROSA,ROSA,ROSA,ROSA);
                        GuardarCasa(Restaurante[playerid]);
                    }
                    else
                    {
                        SendClientMessage(playerid, ROJO_OSCURO, "* No tienes esa cantidad.");
                        return 1;
                    }
                }
                if(strcmp(tmp, "dinero", true) == 0)
                {
                    tmp = strtok(cmdtext, idx);
                    if(!strlen(tmp))
                    {
                        SendClientMessage(playerid, GRIS, "Usa: /armario guardar dinero [Cantidad]");
                        return 1;
                    }
                    moneys = strval(tmp);
                    if(JugadorInfo[playerid][jDinero] >= moneys)
                    {
                        CasaInfo[Restaurante[playerid]][cDinero] += moneys;
                        JugadorInfo[playerid][jDinero] -= moneys;
                        format(string, sizeof(string), "* Has dejado %d dуlares en el armario.", moneys);
                        SendClientMessage(playerid, CELESTE, string);
                        format(string, sizeof(string), "* %s abre armario y deja algo de dinero.", NombreJugador(playerid));
                        MandarMensajeCercano(20.0, playerid, string, ROSA,ROSA,ROSA,ROSA,ROSA);
                        GuardarCasa(Restaurante[playerid]);
                    }
                    else
                    {
                        SendClientMessage(playerid, ROJO_OSCURO, "* No tienes esa cantidad.");
                        return 1;
                    }
                }
                if(strcmp(tmp, "marihuana", true) == 0)
                {
                    tmp = strtok(cmdtext, idx);
                    if(!strlen(tmp))
                    {
                        SendClientMessage(playerid, GRIS, "Usa: /armario guardar marihuana [Cantidad]");
                        return 1;
                    }
                    moneys = strval(tmp);
                    if(JugadorInfo[playerid][jMarihuana] >= moneys)
                    {
                        CasaInfo[Restaurante[playerid]][cMarihuana] += moneys;
                        JugadorInfo[playerid][jMarihuana] -= moneys;
                        format(string, sizeof(string), "* Has dejado %d gramos de marihuana en el armario.", moneys);
                        SendClientMessage(playerid, CELESTE, string);
                        format(string, sizeof(string), "* %s abre armario y deja algo de marihuana.", NombreJugador(playerid));
                        MandarMensajeCercano(20.0, playerid, string, ROSA,ROSA,ROSA,ROSA,ROSA);
                        GuardarCasa(Restaurante[playerid]);
                    }
                    else
                    {
                        SendClientMessage(playerid, ROJO_OSCURO, "* No tienes esa cantidad.");
                        return 1;
                    }
                }
                if(strcmp(tmp, "arma", true) == 0)
                {
                    new gun = GetPlayerWeapon(playerid);
                    new ammo = GetPlayerAmmo(playerid);
                    if(gun == 0 || ammo == 0)
                    {
                        SendClientMessage(playerid, ROJO_OSCURO, "* No tienes ningъn arma en la mano.");
                        return 1;
                    }
                    ReduceTime[playerid] = 1;
                    SetTimerEx("ReduceTimer", 3000, false, "i", playerid);
                    for(new slot = 0; slot != 10; slot++)
                    {
                        if(CasaInfo[Restaurante[playerid]][cGun][slot] == NOEXISTE)
                        {
                            new gunname[24];
                            CasaInfo[Restaurante[playerid]][cGun][slot] = gun;
                            CasaInfo[Restaurante[playerid]][cAmmo][slot] = ammo;
                            GetWeaponName(gun, gunname, sizeof(gunname));
                            format(string, sizeof(string), "* Has dejado tu %s (Municiуn: %i) en el armario.", gunname, CasaInfo[Restaurante[playerid]][cAmmo][slot]);
                            SendClientMessage(playerid, CELESTE, string);
                            Tiene_Armas[playerid][GetWeaponSlot(gun)] = 0;
                            Municion[playerid][GetWeaponSlot(gun)] = 0;
                            JugadorInfo[playerid][jArmas][GetWeaponSlot(gun)] = 0;
                            JugadorInfo[playerid][jArmas][GetWeaponSlot(gun)] = 0;
                            RemovePlayerWeapon(playerid, gun);
                            format(string, sizeof(string), "* %s abre armario y deja un arma.", NombreJugador(playerid));
                            MandarMensajeCercano(20.0, playerid, string, ROSA,ROSA,ROSA,ROSA,ROSA);
                            GuardarCasa(Restaurante[playerid]);
                            return 1;
                        }
                    }
                    SendClientMessage(playerid, ROJO_OSCURO, "* El armario estб lleno.");
                }
            }
            if(strcmp(tmp, "informacion", true) == 0)
            {
                SendClientMessage(playerid, AMARILLO, " - Informaciуn del armario:");
                new count = 1;
                for(new slot = 0; slot != 10; slot++)
                {
                    if(CasaInfo[Restaurante[playerid]][cGun][slot]!= NOEXISTE)
                    {
                        if(CasaInfo[Restaurante[playerid]][cGun][slot] >= 1 && 46 >= CasaInfo[Restaurante[playerid]][cGun][slot])
                        {
                            new gunname[24];
                            GetWeaponName(CasaInfo[Restaurante[playerid]][cGun][slot], gunname, sizeof(gunname));
                            format(string, sizeof(string), " - Arma %d: %s (Municiуn: %d)", count, gunname, CasaInfo[Restaurante[playerid]][cAmmo][slot]);
                            SendClientMessage(playerid, BLANCO, string);
                            count++;
                        }
                        if(CasaInfo[Restaurante[playerid]][cGun][slot] == 47)
                        {
                            format(string, sizeof(string), " - %d: Chaleco (Calidad: %d %%)", count, CasaInfo[Restaurante[playerid]][cAmmo][slot]);
                            SendClientMessage(playerid, BLANCO, string);
                            count++;
                        }
                    }
                }
                format(string, sizeof(string), " - Dinero (Cantidad: $%d)", CasaInfo[Restaurante[playerid]][cDinero]);
                SendClientMessage(playerid, BLANCO, string);
                format(string, sizeof(string), " - Crack (Cantidad: %d gramos)", CasaInfo[Restaurante[playerid]][cCrack]);
                SendClientMessage(playerid, BLANCO, string);
                format(string, sizeof(string), " - Marihuana (Cantidad: %d gramos)", CasaInfo[Restaurante[playerid]][cMarihuana]);
                SendClientMessage(playerid, BLANCO, string);
                format(string, sizeof(string), " - Alambres (Cantidad: %d)", CasaInfo[Restaurante[playerid]][cAlambres]);
                SendClientMessage(playerid, BLANCO, string);
                format(string, sizeof(string), " - Bombas (Cantidad: %d)", CasaInfo[Restaurante[playerid]][cBombas]);
                SendClientMessage(playerid, BLANCO, string);
                format(string, sizeof(string), " - Materiales (Cantidad: %d)", CasaInfo[Restaurante[playerid]][cMateriales]);
                SendClientMessage(playerid, BLANCO, string);
                format(string, sizeof(string), " - Latas de gasolina (Cantidad: %d)", CasaInfo[Restaurante[playerid]][cGasolina]);
                SendClientMessage(playerid, BLANCO, string);
                return 1;
            }
            return 1;
        }
        else
        {
            SendClientMessage(playerid, ROJO_OSCURO, "* Aquн no hay ningъn armario.");
            return 1;
        }
    }
+rep al que me ayude
Reply
#2

Revivo.
Reply
#3

Aja Pero Que Es Lo Que Quieres Crear Un CMD o desabilitarlo
Reply
#4

Asн es, un comando que tenga como funciуn abrir el armario.

Vuelvo a explicar, el gamemode es uno estadounidense, 70.000 lнneas tiene, hace meses lo terminй de traducir al completo, pero tiene sistemas recopilados de varios gamemodes, y algunos de ellos estбn sin terminar.

En йste caso, viene un buen sistema de armarios en las casas para almacenar objetos y demбs, pero necesitarнa un comando que tenga como funciуn abrir el mismo. Sin poder abrir el armario, me es imposible que las funciones ya implementadas funcionen correctamente.
Reply
#5

PasteBin

Espero Que Sea Esto Lo Que Quieres Necesitas Modificarle Algunas Cosas Ya Que Noce ue Tipo De GM Es

PD: Espero Que Te Sirva O Si No No Entendi Bien Tu Duda
Reply
#6

pawn Код:
Tendras que definir hArmario en HouseInfo o el que uses.

if(strcmp(cmd, "/armario", true) == 0)
{
if(HouseInfo[playerid][hArmario] == 0)//
{
SendClientMessage(playerid,-1,"Armario cerrado");
HouseInfo[playerid][hArmario] = 1;
return 1;
}
else if(HouseInfo[playerid][hArmario] == 1)//
{
SendClientMessage(playerid,-1,"Armario Abierto");
HouseInfo[playerid][hArmario] = 0;
return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)