Adding altitude to this script.
#1

Ok, yes, I am a noob for posting so many help threads. But, eh, it's learning, I'm sure I will get better. But, I'm using this script, which displays the health and speed. but now I want the altitude.

pawn Код:
#include <a_samp>
#include <JunkBuster>

#define FILTERSCRIPT

#include <a_samp>

new Text:SPEEDOS[MAX_PLAYERS];
new Text:HEALTH[MAX_PLAYERS];

forward Speedometer(playerid);

public OnFilterScriptInit()
{
    SetTimer("Speedometer", 100, true);
    return 1;
}

public OnPlayerConnect(playerid)
{
    SPEEDOS[playerid] = TextDrawCreate(10.0,200.0," ");
    TextDrawShowForPlayer(playerid,SPEEDOS[playerid]);
    HEALTH[playerid] = TextDrawCreate(10.0,180.0," ");
    TextDrawShowForPlayer(playerid,HEALTH[playerid]);
    return 1;
}

public Speedometer(playerid)
{
    new vehicleid,Float:speed_x,Float:speed_y,Float:speed_z,Float:final_speed,speed_string[256],final_speed_int;
    vehicleid = GetPlayerVehicleID(playerid);
    new Float:vehicle_health,final_vehicle_health,health_string[256];
    if(vehicleid != 0)
    {
        GetVehicleVelocity(vehicleid,speed_x,speed_y,speed_z);
        final_speed = floatsqroot(((speed_x*speed_x)+(speed_y*speed_y))+(speed_z*speed_z))*199.4166672; // 250.666667 = kmph  // 199,4166672= mph
        final_speed_int = floatround(final_speed,floatround_round);
        format(speed_string,256,"Speed: %i MPH",final_speed_int);
        TextDrawSetString(SPEEDOS[playerid], speed_string);
        GetVehicleHealth(vehicleid,vehicle_health);
        final_vehicle_health = floatround(floatround(vehicle_health - 250)/ 7.5); //This will make the health show at 100 when the vehicle is not damaged and at 0 when it is in fire.
        format(health_string,256,"Health: %i", final_vehicle_health);
        TextDrawSetString(HEALTH[playerid], health_string);
    }
    else
    {
        TextDrawSetString(SPEEDOS[playerid], " ");
        TextDrawSetString(HEALTH[playerid], " ");
    }
    return 1;
}
As its a flying server what I am creating, I will need something to display the altitude in GTA Meters.

Any help is much aperciated. Thanks.
Reply
#2

pawn Код:
new Float:X,Float:Y,Float:Z;
GetPlayerPos(playerid,X,Y,Z);
// or
GetVehiclePos(vehicleid,X,Y,Z);

// Z is the altitude
Reply
#3

So where dose that code go into this?

pawn Код:
#include <a_samp>
#include <JunkBuster>

#define FILTERSCRIPT

#include <a_samp>

new Text:SPEEDOS[MAX_PLAYERS];
new Text:HEALTH[MAX_PLAYERS];
new Text:ALT[MAX_PLAYERS]; //Added this

forward Speedometer(playerid);

public OnFilterScriptInit()
{
    SetTimer("Speedometer", 100, true);
    return 1;
}

public OnPlayerConnect(playerid)
{
    SPEEDOS[playerid] = TextDrawCreate(10.0,200.0," ");
    TextDrawShowForPlayer(playerid,SPEEDOS[playerid]);
    HEALTH[playerid] = TextDrawCreate(10.0,180.0," ");
    TextDrawShowForPlayer(playerid,HEALTH[playerid]);
    ALT[playerid] = TextDrawCreate(10.0,160.0," "); //Added this
    TextDrawShowForPlayer(playerid,ALT[playerid]); //Added this
    return 1;
}

public Speedometer(playerid)
{
    new vehicleid,Float:speed_x,Float:speed_y,Float:speed_z,Float:final_speed,speed_string[256],final_speed_int;
    vehicleid = GetPlayerVehicleID(playerid);
    new Float:vehicle_health,final_vehicle_health,health_string[256];
    if(vehicleid != 0)
    {
        GetVehicleVelocity(vehicleid,speed_x,speed_y,speed_z);
        final_speed = floatsqroot(((speed_x*speed_x)+(speed_y*speed_y))+(speed_z*speed_z))*199.4166672; // 250.666667 = kmph  // 199,4166672= mph
        final_speed_int = floatround(final_speed,floatround_round);
        format(speed_string,256,"Speed: %i MPH",final_speed_int);
        TextDrawSetString(SPEEDOS[playerid], speed_string);
        GetVehicleHealth(vehicleid,vehicle_health);
        final_vehicle_health = floatround(floatround(vehicle_health - 250)/ 7.5); //This will make the health show at 100 when the vehicle is not damaged and at 0 when it is in fire.
        format(health_string,256,"Health: %i", final_vehicle_health);
        TextDrawSetString(HEALTH[playerid], health_string);
    }
    else
    {
        TextDrawSetString(SPEEDOS[playerid], " ");
        TextDrawSetString(HEALTH[playerid], " ");
        TextDrawSetString(ALT[playerid], " "); //Added this
    }
    return 1;
}
Reply
#4

You could make it a stock then use it in the text draw from there.
Reply
#5

I dont understand how to use thoose things.
Reply
#6

Heres a stock you can try. I don't know if it will work tho.

pawn Код:
stock Find(playerid)
{
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(playerid,X,Y,Z);
    return X,Y,Z;
}
Reply
#7

But how do I put that into my script?
Reply
#8

You just add it outside a callback.
Reply
#9

pawn Код:
#include <a_samp>
#include <JunkBuster>

#define FILTERSCRIPT

#include <a_samp>

new Text:SPEEDOS[MAX_PLAYERS];
new Text:HEALTH[MAX_PLAYERS];
new Text:ALT[MAX_PLAYERS];

forward Speedometer(playerid);

public OnFilterScriptInit()
{
    SetTimer("Speedometer", 100, true);
    return 1;
}

public OnPlayerConnect(playerid)
{
    SPEEDOS[playerid] = TextDrawCreate(10.0,200.0," ");
    TextDrawShowForPlayer(playerid,SPEEDOS[playerid]);
    HEALTH[playerid] = TextDrawCreate(10.0,180.0," ");
    TextDrawShowForPlayer(playerid,HEALTH[playerid]);
    ALT[playerid] = TextDrawCreate(10.0,160.0," "); //Added this
    TextDrawShowForPlayer(playerid,ALT[playerid]); //Added this
    return 1;
}

public Speedometer(playerid)
{
    new vehicleid,Float:speed_x,Float:speed_y,Float:speed_z,Float:final_speed,speed_string[256],final_speed_int;
    vehicleid = GetPlayerVehicleID(playerid);
    new Float:vehicle_health,final_vehicle_health,health_string[256];
    if(vehicleid != 0)
    {
        GetVehicleVelocity(vehicleid,speed_x,speed_y,speed_z);
        final_speed = floatsqroot(((speed_x*speed_x)+(speed_y*speed_y))+(speed_z*speed_z))*199.4166672; // 250.666667 = kmph  // 199,4166672= mph
        final_speed_int = floatround(final_speed,floatround_round);
        format(speed_string,256,"Speed: %i MPH",final_speed_int);
        TextDrawSetString(SPEEDOS[playerid], speed_string);
        GetVehicleHealth(vehicleid,vehicle_health);
        final_vehicle_health = floatround(floatround(vehicle_health - 250)/ 7.5); //This will make the health show at 100 when the vehicle is not damaged and at 0 when it is in fire.
        format(health_string,256,"Health: %i", final_vehicle_health);
        TextDrawSetString(HEALTH[playerid], health_string);
    }
    else
    {
        TextDrawSetString(SPEEDOS[playerid], " ");
        TextDrawSetString(HEALTH[playerid], " ");
        TextDrawSetString(ALT[playerid], " "); //Added this
    }
    return 1;
}

stock Find(playerid)
{
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(playerid,X,Y,Z);
    return X,Y,Z;
}
Full code. Now what?
Reply
#10

try this http://pastebin.com/TMxPEXDj
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)