19.07.2014, 20:09
Код:
//what you asked for, only "counts a shot on an empty vehicle as a miss, but counts a shot on an occupied vehicle as a hit" public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ) { shots[playerid] ++; if(hittype == BULLET_HIT_TYPE_VEHICLE) { if(VehicleOccupied(hitid)) vhits[playerid] ++; else misses[playerid] ++; } return 1; } //what i find more logic: counts a shot on a player or occupied vehicle as a hit and counts a shot anywhere else as a miss public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ) { shots[playerid] ++; if ( (hittype == BULLET_HIT_TYPE_PLAYER && hitid != playerid) || (hittype == BULLET_HIT_TYPE_VEHICLE && VehicleOccupied(hitid)) ) vhits[playerid]++; else misses[playerid] ++; return 1; } //this function is called about 10 times as frequently as a fire rate, depending on the number of players shooting together. with the bool tag u use 4 times less space (from 4 bytes/return to 1 byte/return) bool:VehicleOccupied(vehicleid) { foreach (new i : Player) if(IsPlayerInVehicle(i,vehicleid)) return true; return false; }