SA-MP Forums Archive
Проблема UdpateVehicleDamageStatus - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Проблема UdpateVehicleDamageStatus (/showthread.php?tid=490683)



Проблема UdpateVehicleDamageStatus - Ins1d3 - 27.01.2014

Всем привет, я решал сделать систему механников на сервер, и столкнулся с такой проблемой...
Я хочу чтобы делалались отдельные детали машины отдельно (бампера, капот/багажник, двигатель, фары, колёса)
с двигателем, фарами и колёсами проблем не возникло, а вот с оставшимися бамперами и капотом с багажником я не могу разобраться. Проблема вот в чём: если у тебя сломаны бампера и фары, то без починки фар бампера не починятся, та же ситуация с дверьми и капотом/багажником
Код:
PHP код:
case 270:
{
if(
response){
switch(
listitem){
case 
0:{
//new panels, doors, lights, tires;
new vid GetPlayerVehicleID(playerid);
GetVehicleDamageStatus(vidpanelsdoorslightstires);
//tires = encode_tires(0, 0, 0, 0); // fix all tires
panels encode_panels(0000000);
//doors = encode_doors(0, 0, 0, 0, 0, 0); // fix all doors //fell off - (4, 4, 4, 4, 0, 0)
//lights = encode_lights(0, 0, 0, 0); // fix all lights
UpdateVehicleDamageStatus(vidpanelsdoorslightstires);}
case 
1:{
new 
vid GetPlayerVehicleID(playerid);
GetVehicleDamageStatus(vidpanelsdoorslightstires);
tires encode_tires(0000); // fix all tires
//panels = encode_panels(0, 0, 0, 0, 0, 0, 0);
//doors = encode_doors(4, 4, 4, 4, 4, 4); // fix all doors //fell off - (4, 4, 4, 4, 0, 0)
//lights = encode_lights(0, 0, 0, 0); // fix all lights
UpdateVehicleDamageStatus(vidpanelsdoorslightstires);}
case 
2:{
new 
vid GetPlayerVehicleID(playerid);
GetVehicleDamageStatus(vidpanelsdoorslightstires);
UpdateVehicleDamageStatus(vidpanelsdoors0000tires);}
case 
3:{
new 
vid GetPlayerVehicleID(playerid);
GetVehicleDamageStatus(vidpanelsdoorslightstires);
doors encode_doors(000000);
UpdateVehicleDamageStatus(vidpanelsdoorslightstires);}
case 
4:{
VHealth[GetPlayerVehicleID(playerid)] = 1000.0;
SetVehicleHealth(GetPlayerVehicleID(playerid),1000.0);
return 
1
что не так?


Re: Проблема UdpateVehicleDamageStatus - long76 - 28.01.2014

encode_tires(tire1, tire2, tire3, tire4) return tire1 | (tire2 << 1) | (tire3 << 2) | (tire4 << 3);
encode_panels(flp, frp, rlp, rrp, windshield, front_bumper, rear_bumper)
{
return flp | (frp << 4) | (rlp << 8) | (rrp << 12) | (windshield << 16) | (front_bumper << 20) | (rear_bumper << 24);
}
encode_doors(bonnet, boot, driver_door, passenger_door, behind_driver_door, behind_passenger_door)
{
#pragma unused behind_driver_door
#pragma unused behind_passenger_door
return bonnet | (boot << 8) | (driver_door << 16) | (passenger_door << 24);
}
encode_lights(light1, light2, light3, light4)
{
return light1 | (light2 << 1) | (light3 << 2) | (light4 << 3);
}
у тебя также?