All pastes #1084732 Raw Edit

Leopard

public cpp v1 · immutable
#1084732 ·published 2008-07-28 00:30 UTC
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;}