23.08.2012, 22:52
(
Последний раз редактировалось Glimma; 23.08.2012 в 23:22.
)
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:
+rep al que me ayude
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;
}
}