19.07.2016, 14:06
(
Последний раз редактировалось DeannN; 19.07.2016 в 14:43.
)
pawn Код:
COMMAND:vmaletero(playerid, params[])
{
new opcion[24], counter, result, string[126], slotid;
if(sscanf(params, "s[24]D(0)", opcion, slotid))
{
Mensaje(playerid, COLOR_GRIS2, "USO: /vmaletero [Opcion]");
Mensaje(playerid, COLOR_GRIS2, "Opcion: ver - abrir - cerrar - garma - sarma - gchaleco - schaleco - gdroga - sdroga");
return 1;
}
for(new i=0;i<MAX_VEHICLES;i++)
{
new dist = CheckPlayerDistanceToVehicle(4.0, playerid, i);
if(dist)
{
result = i;
counter++;
break;
}
}
if(!counter)return Mensaje(playerid, COLOR_BLANCO, "Ningъn vehнculo cerca de usted.");
if(NoPuedeTener(result))return Mensaje(playerid, COLOR_ROJO, "Este vehнculo no tiene maletero o no puede.");
new engine, lights, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(result, engine, lights, alarm, doors, bonnet, boot, objective);
if(!strcmp(opcion, "ver"))
{
if(!maletero[result][mbloqueo])return Mensaje(playerid, COLOR_GRIS2, "El maletero de este vehнculo estб cerrado.");
Mensaje(playerid, COLOR_BLANCO, "Maletero del Vehiculo:");
for(new i=0;i<8;i++)
{
format(string, sizeof(string), "Arma: {C0C0C0}%s con 50 municiones.", NombreArma(maletero[result][marma][i]));
Mensaje(playerid, COLOR_BLANCO, string);
}
format(string, sizeof(string), "Chaleco: {C0C0C0}%s", (!maletero[result][mchaleco]) ? ("No"):("Si"));
Mensaje(playerid, COLOR_BLANCO, string);
format(string, sizeof(string), "Droga: {C0C0C0}%d gramos de Speed", maletero[result][mdrogas][0]);
Mensaje(playerid, COLOR_BLANCO, string);
format(string, sizeof(string), "Droga: {C0C0C0}%d gramos de Extasis", maletero[result][mdrogas][1]);
Mensaje(playerid, COLOR_BLANCO, string);
format(string, sizeof(string), "Droga: {C0C0C0}%d gramos de Ritalin", maletero[result][mdrogas][2]);
Mensaje(playerid, COLOR_BLANCO, string);
format(string, sizeof(string), "Droga: {C0C0C0}%d gramos de Heroina", maletero[result][mdrogas][3]);
Mensaje(playerid, COLOR_BLANCO, string);
format(string, sizeof(string), "Droga: {C0C0C0}%d gramos de Marihuana", maletero[result][mdrogas][4]);
Mensaje(playerid, COLOR_BLANCO, string);
ActualizarMaletas(result);
}
else if(!strcmp(opcion, "abrir"))
{
if(!LlaveVehicular(playerid, result))return Mensaje(playerid, COLOR_GRIS2, "Usted no tiene las llaves de este vehнculo.");
if(!maletero[result][mbloqueo])
{
maletero[result][mbloqueo] = true;
SetVehicleParamsEx(result, engine, lights, alarm, doors, bonnet, 1, objective);
Mensaje(playerid, COLOR_BLANCO, "Maleta abierta.");
}
}
else if(!strcmp(opcion, "cerrar"))
{
if(!LlaveVehicular(playerid, result))return Mensaje(playerid, COLOR_ROJO, "Usted no tiene las llaves de este vehнculo.");
if(maletero[result][mbloqueo])
{
maletero[result][mbloqueo] = false;
SetVehicleParamsEx(result, engine, lights, alarm, doors, bonnet, 0, objective);
Mensaje(playerid, COLOR_BLANCO, "Maleta cerrada.");
}
}
else if(!strcmp(opcion, "garma"))
{
if(slotid < 1 || slotid > 8)return Mensaje(playerid, COLOR_GRIS2, "USO: /maletero garma [slot 1 - 8]");
if(!maletero[result][mbloqueo])return Mensaje(playerid, COLOR_GRIS2, "El maletero de este vehнculo estб actualmente cerrado.");
if(!GetPlayerWeapon(playerid))return Mensaje(playerid, COLOR_GRIS2, "Usted no tiene ninguna arma en mano.");
if(GetPlayerAmmo(playerid) < 50)return Mensaje(playerid, COLOR_GRIS2, "Usted no tiene suficiente municion, debe tener 50.");
if(maletero[result][marma][slotid - 1])return Mensaje(playerid, COLOR_GRIS2, "El slot seleccionado ya estб siendo ocupado por otra arma.");
maletero[result][marma][slotid - 1] = GetPlayerWeapon(playerid);
darArma(playerid, maletero[result][marma][slotid - 1], -50);
if(TieneMaleta(result))
{
DestroyDynamicObject(MaleteroObjetos[result][slotid - 1]);
MaleteroObjetos[result][slotid - 1] = CreateDynamicObject(GunObjects[maletero[result][marma][slotid - 1]][0], 0, 0, -1000, 0, 0, 0);
switch(slotid - 1)
{
case 0: AttachDynamicObjectToVehicle(MaleteroObjetos[result][0], result, 0.300000, -1.950000, 0.075000, 94.499977, 43.200004, -221.399856);
case 1: AttachDynamicObjectToVehicle(MaleteroObjetos[result][1], result, 0.449999, -2.100000, 0.075000, 94.499977, 43.200004, -221.399856);
case 2: AttachDynamicObjectToVehicle(MaleteroObjetos[result][2], result, 0.000000, -2.100000, 0.075000, 94.499977, 43.200004, -221.399856);
case 3: AttachDynamicObjectToVehicle(MaleteroObjetos[result][3], result, -0.075000, -2.325000, 0.075000, 94.499977, 43.200004, -221.399856);
case 4: AttachDynamicObjectToVehicle(MaleteroObjetos[result][4], result, 0.524999, -2.325000, 0.075000, 94.499977, 43.200004, -221.399856);
case 5: AttachDynamicObjectToVehicle(MaleteroObjetos[result][5], result, 0.375000, -2.325000, 0.150000, 94.499977, 43.200004, -221.399856);
case 6: AttachDynamicObjectToVehicle(MaleteroObjetos[result][6], result, -0.075000, -2.325000, 0.150000, 94.499977, 43.200004, -221.399856);
case 7: AttachDynamicObjectToVehicle(MaleteroObjetos[result][7], result, 0.150000, -2.100000, 0.150000, 94.499977, 43.200004, -221.399856);
}
}
format(string, sizeof(string), "Usted acaba de guardar una %s.", NombreArma(maletero[result][marma][slotid - 1]));
Mensaje(playerid, COLOR_BLANCO, string);
format(string,sizeof(string),"AdmWarn: %s(ID:%d) ha dado un arma Ilegal (Rocket/Minigun/Granadas) a un jugador.",Nombre(playerid),playerid);
MensajeAdmin(COLOR_RED,string,1);
ActualizarMaletas(result);
}
else if(!strcmp(opcion, "sarma"))
{
if(slotid < 1 || slotid > 8)return Mensaje(playerid, COLOR_ROJO, "USO: /maletero garma (slot 1 - 8)");
if(!maletero[result][mbloqueo])return Mensaje(playerid, COLOR_ROJO, "El maletero de este vehнculo estб actualmente cerrado.");
if(!maletero[result][marma][slotid - 1])return Mensaje(playerid, COLOR_ROJO, "El maletero de este vehнculo no tiene un arma.");
darArma(playerid, maletero[result][marma][slotid - 1], 50);
format(string, sizeof(string), "Usted acaba de retirar una %s.", NombreArma(maletero[result][marma][slotid - 1]));
Mensaje(playerid, COLOR_BLANCO, string);
if(TieneMaleta(result))
{
DestroyDynamicObject(MaleteroObjetos[result][slotid - 1]);
}
maletero[result][marma][slotid - 1] = 0;
ActualizarMaletas(result);
}
else if(!strcmp(opcion, "gchaleco"))
{
if(!maletero[result][mbloqueo])return Mensaje(playerid, COLOR_ROJO, "Este maletero esta cerrado.");
if(maletero[result][mchaleco])return Mensaje(playerid, COLOR_ROJO, "Este maletero tiene un chaleco.");
new Float:fChaleco;
GetPlayerArmour(playerid, fChaleco);
if(fChaleco != 100.0)return Mensaje(playerid, COLOR_BLANCO, "Usted no tiene un chaleco.");
maletero[result][mchaleco] = 1;
Mensaje(playerid, COLOR_BLANCO, "Usted acaba de guardar un chaleco.");
ActualizarMaletas(result);
}
else if(!strcmp(opcion, "schaleco"))
{
if(!maletero[result][mbloqueo])return Mensaje(playerid, COLOR_ROJO, "Este maletero esta cerrado.");
if(!maletero[result][mchaleco])return Mensaje(playerid, COLOR_ROJO, "Este maletero no tiene un chaleco.");
darArmadura(playerid, 100);
maletero[result][mchaleco] = 0;
Mensaje(playerid, COLOR_BLANCO, "Usted acaba de retirar un chaleco.");
ActualizarMaletas(result);
}
else if(!strcmp(opcion, "gdroga"))
{
if(slotid < 1 || slotid > 5)return Mensaje(playerid, COLOR_ROJO, "USO: /maletero gdroga [1(Speed) - 2(Extasis) - 3(Ritalin) - 4(Heroina) - 5(Marihuana)]");
if(!maletero[result][mbloqueo])return Mensaje(playerid, COLOR_ROJO, "Este maletero esta cerrado.");
switch(slotid)
{
case 1:
{
maletero[result][mdrogas][0] += cuenta[playerid][cSpeed];
cuenta[playerid][cSpeed] = 0;
format(string, sizeof(string), "Acabas de guardar %d gramos de Speed.", maletero[result][mdrogas][0]);
Mensaje(playerid, COLOR_BLANCO, string);
}
case 2:
{
maletero[result][mdrogas][1] += cuenta[playerid][cExtasis];
cuenta[playerid][cExtasis] = 0;
format(string, sizeof(string), "Acabas de guardar %d gramos de Extasis.", maletero[result][mdrogas][1]);
Mensaje(playerid, COLOR_BLANCO, string);
}
case 3:
{
maletero[result][mdrogas][2] += cuenta[playerid][cRitalin];
cuenta[playerid][cRitalin] = 0;
format(string, sizeof(string), "Acabas de guardar %d gramos de Ritalin.", maletero[result][mdrogas][2]);
Mensaje(playerid, COLOR_BLANCO, string);
}
case 4:
{
maletero[result][mdrogas][3] += cuenta[playerid][cHeroina];
cuenta[playerid][cHeroina] = 0;
format(string, sizeof(string), "Acabas de guardar %d gramos de Heroina.", maletero[result][mdrogas][3]);
Mensaje(playerid, COLOR_BLANCO, string);
}
case 5:
{
maletero[result][mdrogas][4] += cuenta[playerid][cMarihuana];
cuenta[playerid][cMarihuana] = 0;
format(string, sizeof(string), "Acabas de guardar %d gramos de Marihuana.", maletero[result][mdrogas][4]);
Mensaje(playerid, COLOR_BLANCO, string);
}
}
ActualizarMaletas(result);
}
else if(!strcmp(opcion, "sdroga"))
{
if(slotid < 1 || slotid > 5)return Mensaje(playerid, COLOR_ROJO, "USO: /maletero sdroga [1(Speed) - 2(Extasis) - 3(Ritalin) - 4(Heroina) - 5(Marihuana)]");
if(!maletero[result][mbloqueo])return Mensaje(playerid, COLOR_ROJO, "Este maletero esta cerrado.");
switch(slotid)
{
case 1:
{
cuenta[playerid][cSpeed] += maletero[result][mdrogas][0];
format(string, sizeof(string), "Acabas de retirar %d gramos de Speed.", maletero[result][mdrogas][0]);
Mensaje(playerid, COLOR_BLANCO, string);
maletero[result][mdrogas][0] = 0;
}
case 2:
{
cuenta[playerid][cExtasis] += maletero[result][mdrogas][1];
format(string, sizeof(string), "Acabas de retirar %d gramos de Extasis.", maletero[result][mdrogas][1]);
Mensaje(playerid, COLOR_BLANCO, string);
maletero[result][mdrogas][1] = 0;
}
case 3:
{
cuenta[playerid][cRitalin] += maletero[result][mdrogas][2];
format(string, sizeof(string), "Acabas de retirar %d gramos de Ritalin.", maletero[result][mdrogas][2]);
Mensaje(playerid, COLOR_BLANCO, string);
maletero[result][mdrogas][2] = 0;
}
case 4:
{
cuenta[playerid][cHeroina] += maletero[result][mdrogas][3];
format(string, sizeof(string), "Acabas de retirar %d gramos de Heroina.", maletero[result][mdrogas][3]);
Mensaje(playerid, COLOR_BLANCO, string);
maletero[result][mdrogas][3] = 0;
}
case 5:
{
cuenta[playerid][cMarihuana] += maletero[result][mdrogas][4];
format(string, sizeof(string), "Acabas de retirar %d gramos de Marihuana.", maletero[result][mdrogas][4]);
Mensaje(playerid, COLOR_BLANCO, string);
maletero[result][mdrogas][4] = 0;
}
}
ActualizarMaletas(result);
}
else return Mensaje(playerid, COLOR_GRIS2, "Opcion: ver - abrir - cerrar - garma - sarma - gchaleco - schaleco - gdroga - sdroga");
return 1;
}
Amigos una duda como puedo hacer para cuando guarde un arma en el maletero del vehiculo se guarde con toda la ammu que tiene, ya que el comando me permite solo guardar con 50 de ammu y el arma que tengo en mano la multiplica ejemplo tengo una eagle con 100 balas en mano la guardo en la maleta y se crea otra pero con 50 balas en el maletero, y despues cuando saque el arma me devuelva el arma con la ammu correspondiente, gracias.