rendered paste body#include <a_samp>/* VERSION 1.1 *//************************************* -CHANGELOG* -------------------------------------* -V 1.0 [??/July/2008]** -Release* -Function: Flip the player if he is up-side-down.* -------------------------------------* -V 1.1 [27/July/2008]** -Removed /aflip, which enables auto-flip.* -Added command /watertest, which returns player's Z.* -Removed a warning.* -Added no aircraft support.** -MORE WAYS TO KNOW IF PLAYER* IS UP-SIDE-DOWN? PM ME* -------------------------------------* -V 1.1B* -Fixed warnings, "Tag mismatch", also a damaged part of script** -------------------------------------** Topic: http://forum.sa-mp.com/index.php?topic=66848.0* Author: [K4L]Leopard* Thanks to: rksss, kc and another one :D*************************************/#define COLOR_YELLOW 0xFFFF00AAenum SavePlayerPosEnum{ Float:LastX, Float:LastY, Float:LastZ}new SavePlayerPos[MAX_PLAYERS][SavePlayerPosEnum];GetPlayerCurrentSpeedInKPH(playerid){ if(IsPlayerInAnyVehicle(playerid)) { new Float:x,Float:y,Float:z; new Float:distance,value; GetPlayerPos(playerid, x, y, z); distance = floatsqroot(floatpower(floatabs(floatsub(x,SavePlayerPos[playerid][LastX])),2)+floatpower(floatabs(floatsub(y,SavePlayerPos[playerid][LastY])),2)+floatpower(floatabs(floatsub(z,SavePlayerPos[playerid][LastZ])),2)); SavePlayerPos[playerid][LastX] = x; SavePlayerPos[playerid][LastY] = y; SavePlayerPos[playerid][LastZ] = z; value = floatround(distance * 11000); value = floatround(value/1400); return value; } return 1;}new IsFlipped[MAX_PLAYERS];new timer1;forward KeyCheck();forward Float:ReturnPlayerZ(playerid);public OnFilterScriptInit(){ timer1 = SetTimer("KeyCheck", 1000, 1); return 1;}public OnFilterScriptExit(){ KillTimer(timer1); return 1;}public OnPlayerCommandText(playerid, cmdtext[]){ if(strcmp(cmdtext, "/watertest", true) == 0) { new tmp[50]; format(tmp, sizeof(tmp), "Your Current Z: [%.2f].", ReturnPlayerZ(playerid)); SendClientMessage(playerid, COLOR_YELLOW, tmp); } return 0;}Float:ReturnPlayerZ(playerid){ new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); return z;}public KeyCheck(){ for(new i = 0; i < GetMaxPlayers(); i++) { new keys, updown, leftright; GetPlayerKeys(i, keys, updown, leftright); new speed = GetPlayerCurrentSpeedInKPH(i); if(speed <= 5 && speed >= 0) { if(keys & KEY_SPRINT && IsPlayerInAnyVehicle(i)) { if(!IsVehicleFlyable(GetPlayerVehicleID(i))) //not aircraft { new Float:Z = ReturnPlayerZ(i); if(Z >= 0) //if player over 0... { IsFlipped[i] = 1; new Float:angle; new vehid = GetPlayerVehicleID(i); GetVehicleZAngle(vehid, angle); SetVehicleZAngle(vehid, angle); IsFlipped[i] = 0; //flipped! } } } } }}stock IsVehicleFlyable(vehicleid){ #define MAX_FLYABLE_VEHICLES 18 new airplanes[MAX_FLYABLE_VEHICLES] = { 592, //andromada 577, //at-400 548, //cargobob (heli) 425, //hunter 417, //leviathan (very slow) 487, //maverick 553, //nevada 488, //news chopper 497, //police heli 563, //raindance (heli) 447, //seasparrow// 519, //shamal - think its accelerating fast enough... 460, //skimmer 469, //sparrow 513, //stuntplane 520, //the legendary hydra (kc :D) 501, //rc raider 465, //rc raider 2 }; for(new i = 0; i < MAX_FLYABLE_VEHICLES; i++) { new model = GetVehicleModel(vehicleid); if(model == airplanes[i]) { return true; } } return false;}