IgrexolonO
Wiek: 34 Na forum: 6809 dni Posty: 1386
Piwa : 1062
Kod: #define VEH_TYPE_NORMAL_CAR 1
#define VEH_TYPE_BIG_CAR 2
#define VEH_TYPE_MOTORBIKE 3
#define VEH_TYPE_BIKE 4
#define VEH_TYPE_PLANE 5
#define VEH_TYPE_HELI 6
#define VEH_TYPE_BOAT 7
#define VEH_TYPE_TRAILER 8
#define VEH_TYPE_RC 9
#define VEH_TYPE_SPECIAL 10
public OnPlayerUpdate(playerid)
{
if(IsPlayerInAnyVehicle(playerid))
{
new _vehid = GetPlayerVehicleID(playerid);
new _speed = GetVehicleSpeed(_vehid);
new _bitz[4];
GetVehicleTiresDamageStatus(_vehid, _bitz[0], _bitz[1], _bitz[2], _bitz[3]);
if(_speed > 15.0 && _bitz[0] && _bitz[1] && _bitz[2] && _bitz[3])
{
SetVehicleSpeed(_vehid, _speed-1);
}
}
return true;
}
GetVehicleSpeed(vehicleid)
{
new Float:x_speed, Float:y_speed, Float:z_speed, Float:speedf;
GetVehicleVelocity(vehicleid,x_speed,y_speed,z_speed);
speedf = floatsqroot(((x_speed*x_speed)+(y_speed*y_speed))+(z_speed*z_speed)) * 187.666667;
return floatround(speedf,floatround_round);
}
SetVehicleSpeed(vehicleid, Float:speed )
{
if(speed != -1)
{
new Float:px, Float:py, Float:pz, Float:pvx, Float:pvy, Float:pvz, Float:fl;
GetVehiclePos(vehicleid, px,py, pz);
GetVehicleVelocity(vehicleid, pvx, pvy, pvz);
fl = floatsqroot((pvx * pvx) + (pvy * pvy) + (pvz * pvz));
pvx = (pvx / fl) * (speed * 0.00475);
pvy = (pvy / fl) * (speed * 0.00475);
pvz = (pvz / fl) * (speed * 0.00475);
SetVehicleVelocity(vehicleid, pvx, pvy, pvz);
}
return 1;
}
stock GetVehicleTiresDamageStatus(vehicleid, &FrontLeft, &FrontRight, &RearLeft, &RearRight)
{
new Panels, Doors, Lights, Tires;
GetVehicleDamageStatus(vehicleid, Panels, Doors, Lights, Tires);
if(GetVehicleType(vehicleid) == VEH_TYPE_MOTORBIKE || GetVehicleType(vehicleid) == VEH_TYPE_BIKE) FrontLeft = Tires >> 1 & 1, FrontRight = Tires & 1;
else
{
RearRight = Tires & 1;
FrontRight = Tires >> 1 & 1;
RearLeft = Tires >> 2 & 1;
FrontLeft = Tires >> 3 & 1;
}
return true;
}
stock GetVehicleType(vehicleid) //by Minokon
{
new model = GetVehicleModel(vehicleid);
switch(model)
{
case 400..402, 404, 405, 409..416, 418..424, 426, 429, 434, 436, 438..440, 442, 451, 457..459, 466, 467, 470, 474, 475, 477..480, 482, 483, 485, 489..492, 494..496, 498..500, 502..508, 516..518, 526..536, 540..547, 549..552, 554, 555, 558..562, 565..568, 571, 572, 574..576, 579, 580, 582, 583, 585, 587..589, 596..600, 602, 603, 609:
return VEH_TYPE_NORMAL_CAR;
case 403, 407, 408, 427, 428, 431, 433, 437, 443, 444, 455, 456, 486, 514, 515, 524, 525, 556, 557, 573, 578, 601:
return VEH_TYPE_BIG_CAR;
case 448, 461..463, 468, 471, 521..523, 581, 586:
return VEH_TYPE_MOTORBIKE;
case 481, 509, 510:
return VEH_TYPE_BIKE;
case 460, 476, 511..513, 519, 520, 553, 577, 592, 593:
return VEH_TYPE_PLANE;
case 417, 425, 447, 469, 487, 488, 497, 548, 563:
return VEH_TYPE_HELI;
case 430, 446, 452..454, 472, 473, 484, 493, 539, 595:
return VEH_TYPE_BOAT;
case 435, 450, 584, 590, 591, 606..608, 610, 611:
return VEH_TYPE_TRAILER;
case 441, 464, 465, 501, 564, 594:
return VEH_TYPE_RC;
case 449, 537, 538, 569, 570, 604, 605:
return VEH_TYPE_SPECIAL;
}
return 0;
}
Powinno dzia?a? ale w pe?ni za to nie r?cze, napisa?em ale nie sprawdzi?em.