12.09.2014, 18:46
Buenas, resulta que he creado un comando parar reparar vehiculos por partes, tiene para reparar motor, puertas, luces y llantas, el problema es que al reparar las puertas, si tiene las luces daсadas, no repara las puertas hasta que se reparen las luces.
No se si me entendieron pero se lo explicare de otra manera:
/reparar puertas (Si el vehiculo solo tiene daсadas las puertas, las repara)
/reparar puertas (Si el vehiculo tiene daсadas las luces, no repara las puertas)
/reparar luces (Si el vehiculo solo tiene daсadas las luces, las repara)
/reparar luces (Si el vehiculo tiene daсadas las luces y las puertas, me repara las puertas si ya he colocado el comando de reparar las puertas anteriormente, y tambien me repara las luces, si no he colocado el comando de reparar puertas anteriormente, solamente me repara las luces).
El comando es el siguiente:
No se que es eso de panels, lo teste y no vi que hubiera cambio alguno en el vehiculo al reparar, de manera que lo agregue en cada opcion, por las dudas.
Bueno, ese es el comando, si no me entendieron en lo que dije anteriormente, el problema es que pareciera que le diera valor a una variable al usar "puertas", y al usar "luces" verifica el valor de la variable y arregla ambas, puertas y luces.
No se si es un bug de samp o es un error mio en el cmd(que no creo por que es bastante sencillo y ya lo observe una y otra vez).
PD: Tambien lo teste por comandos independientes, sin usar sscanf, y ocurre lo mismo.
No se si me entendieron pero se lo explicare de otra manera:
/reparar puertas (Si el vehiculo solo tiene daсadas las puertas, las repara)
/reparar puertas (Si el vehiculo tiene daсadas las luces, no repara las puertas)
/reparar luces (Si el vehiculo solo tiene daсadas las luces, las repara)
/reparar luces (Si el vehiculo tiene daсadas las luces y las puertas, me repara las puertas si ya he colocado el comando de reparar las puertas anteriormente, y tambien me repara las luces, si no he colocado el comando de reparar puertas anteriormente, solamente me repara las luces).
El comando es el siguiente:
PHP код:
CMD:reparar(playerid,params[])
{
new paneles,puertas,luces,ruedas;
new vehid = GetPlayerVehicleID(playerid);
new choice[32];
if(sscanf(params,"s[32]",choice)) return ParamsINC(playerid,"/reparar [Motor/Puertas/Luces/Ruedas]");
if(strcmp(choice,"motor",true) == 0)
{
SetVehicleHealth(vehid,1000.0);
Mensaje(playerid,C_VERDE,"ЎHas reparado el motor del vehiculo!");
return 1;
}
else if(strcmp(choice,"puertas",true) == 0)
{
GetVehicleDamageStatus(vehid, paneles, puertas, luces, ruedas);
puertas = encode_doors(0, 0, 0, 0, 0, 0);
paneles = encode_panels(0, 0, 0, 0, 0, 0, 0);
UpdateVehicleDamageStatus(vehid, paneles, puertas, luces, ruedas);
Mensaje(playerid,C_VERDE,"ЎHas reparado las puertas del vehiculo!");
return 1;
}
else if(strcmp(choice,"luces",true) == 0)
{
GetVehicleDamageStatus(vehid, paneles, puertas, luces, ruedas);
luces = encode_lights(0, 0, 0, 0);
paneles = encode_panels(0, 0, 0, 0, 0, 0, 0);
UpdateVehicleDamageStatus(vehid, paneles, puertas, luces, ruedas);
Mensaje(playerid,C_VERDE,"ЎHas reparado las luces del vehiculo!");
return 1;
}
else if(strcmp(choice,"ruedas",true) == 0)
{
GetVehicleDamageStatus(vehid, paneles, puertas, luces, ruedas);
ruedas = encode_tires(0, 0, 0, 0);
paneles = encode_panels(0, 0, 0, 0, 0, 0, 0);
UpdateVehicleDamageStatus(vehid, paneles, puertas, luces, ruedas);
Mensaje(playerid,C_VERDE,"ЎHas reparado las ruedas del vehiculo!");
return 1;
}
return 1;
}
Bueno, ese es el comando, si no me entendieron en lo que dije anteriormente, el problema es que pareciera que le diera valor a una variable al usar "puertas", y al usar "luces" verifica el valor de la variable y arregla ambas, puertas y luces.
No se si es un bug de samp o es un error mio en el cmd(que no creo por que es bastante sencillo y ya lo observe una y otra vez).
PD: Tambien lo teste por comandos independientes, sin usar sscanf, y ocurre lo mismo.