[AJUDA] Problemas com o velocimetro
#3

tentas:
pawn Код:
#include a_samp

//////////////
#include <a_samp>
//#include <gvar>

#undef MAX_PLAYERS
#define MAX_PLAYERS 100
#define COLOR_WHITE 0xFFFFFFA

new
    Text:Speedom[MAX_PLAYERS],
    ShowSpeed[MAX_PLAYERS],
    speedotimer,
    VehicleNames[212][] =
{
   "Landstalker",  "Bravura",  "Buffalo", "Linerunner", "Perennial", "Sentinel",
   "Dumper",  "Firetruck" ,  "Trashmaster" ,  "Stretch",  "Manana",  "Infernus",
   "Voodoo", "Pony",  "Mule", "Cheetah", "Ambulance",  "Leviathan",  "Moonbeam",
   "Esperanto", "Taxi",  "Washington",  "Bobcat",  "Mr Whoopee", "BF Injection",
   "Hunter", "Premier",  "Enforcer",  "Securicar", "Banshee", "Predator", "Bus",
   "Rhino",  "Barracks",  "Hotknife",  "Trailer",  "Previon", "Coach", "Cabbie",
   "Stallion", "Rumpo", "RC Bandit",  "Romero", "Packer", "Monster",  "Admiral",
   "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer",  "Turismo", "Speeder",
   "Reefer", "Tropic", "Flatbed","Yankee", "Caddy", "Solair","Berkley's RC Van",
   "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron","RC Raider","Glendale",
   "Oceanic", "Sanchez", "Sparrow",  "Patriot", "Quad",  "Coastguard", "Dinghy",
   "Hermes", "Sabre", "Rustler", "ZR-350", "Walton",  "Regina",  "Comet", "BMX",
   "Burrito", "Camper", "Marquis", "Baggage", "Dozer","Maverick","News Chopper",
   "Rancher", "FBI Rancher", "Virgo", "Greenwood","Jetmax","Hotring","Sandking",
   "Blista Compact", "Police Maverick", "Boxville", "Benson","Mesa","RC Goblin",
   "Hotring Racer", "Hotring Racer", "Bloodring Banger", "Rancher",  "Super GT",
   "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropdust", "Stunt",
   "Tanker", "RoadTrain", "Nebula", "Majestic", "Buccaneer", "Shamal",  "Hydra",
   "FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona",
   "FBI Truck", "Willard", "Forklift","Tractor","Combine","Feltzer","Remington",
   "Slamvan", "Blade", "Freight", "Streak","Vortex","Vincent","Bullet","Clover",
   "Sadler",  "Firetruck", "Hustler", "Intruder", "Primo", "Cargobob",  "Tampa",
   "Sunrise","Merit","Utility Truck", "Nevada","Yosemite", "Windsor", "Monster",
   "Monster","Uranus","Jester","Sultan","Stratum","Elegy","Raindance","RCTiger",
   "Flash","Tahoma","Savanna", "Bandito", "Freight", "Trailer", "Kart", "Mower",
   "Dune",  "Sweeper",  "Broadway",  "Tornado",  "AT-400",  "DFT-30", "Huntley",
   "Stafford", "BF-400", "Newsvan","Tug","Trailer","Emperor","Wayfarer","Euros",
   "Hotdog", "Club", "Trailer", "Trailer","Andromada","Dodo","RC Cam", "Launch",
   "Police Car (LSPD)", "Police Car (SFPD)","Police Car (LVPD)","Police Ranger",
   "Picador",   "S.W.A.T. Van",  "Alpha",   "Phoenix",   "Glendale",   "Sadler",
   "Luggage Trailer","Luggage Trailer","Stair Trailer", "Boxville", "Farm Plow",
   "Utility Trailer"
}
;


public OnFilterScriptInit()
{
    speedotimer = SetTimer("velocimetro",1000,true);
    //////////////////////////////////
    print("\n----------------------------------------------");
    print(" Filterscript Velocimetro New Life carregado.");
    print("----------------------------------------------\n");
    return 1;
}

public OnFilterScriptExit()
{
    KillTimer(speedotimer);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            TextDrawHideForPlayer(i, Text:Speedom[i]); TextDrawDestroy(Text:Speedom[i]);
        }
    }
    print("\n-----------------------------------------------");
    print(" Filterscript Velocimetro New Life descarregado.");
    print("-----------------------------------------------\n");
    return 1;
}

public OnPlayerConnect(playerid)
{
    ShowSpeed[playerid] = 0;
//
    new string4[128];
    //////////////////////////////////////////////////
    format(string4,sizeof(string4),"                                                                   ");
    Speedom[playerid] = TextDrawCreate(495.000000,380.000000,string4);
    TextDrawTextSize(Speedom[playerid],600.000000,0.000000);
    TextDrawAlignment(Speedom[playerid],0); TextDrawFont(Speedom[playerid],2);
    TextDrawLetterSize(Speedom[playerid],0.299999,1.000000);
    TextDrawSetOutline(Speedom[playerid],1);
    TextDrawSetProportional(Speedom[playerid],1);
    ////////////////////////////////////////////
    return 1;
}

public OnPlayerStateChange(playerid,newstate,oldstate)
{
    new newcar = GetPlayerVehicleID(playerid);
    if(IsPlayerNPC(playerid)) { ShowSpeed[playerid] = 0; TextDrawHideForPlayer(playerid,Speedom[playerid]); return 1; }
    if(newstate == PLAYER_STATE_DRIVER)
    {
        if(Aeronave(newcar)) ShowSpeed[playerid] = 2;
        else ShowSpeed[playerid] = 1;
    }
    if(oldstate == PLAYER_STATE_DRIVER) { ShowSpeed[playerid] = 0; TextDrawHideForPlayer(playerid,Speedom[playerid]); }
    return 1;
}

public OnPlayerEnterVehicle(playerid, vehicleid)
{
    if(GetPlayerState(playerid) == 2)
    {
        if(Aeronave(GetPlayerVehicleID(playerid))) ShowSpeed[playerid] = 2;
        else ShowSpeed[playerid] = 1;
    }
    return 1;
}

forward velocimetro();
public velocimetro()
{
    for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
    {
        if(IsPlayerConnected(playerid))
        {
            if(ShowSpeed[playerid] == 1)
            {
                new string[128]; new carid = GetPlayerVehicleID(playerid);
                new Float:health; GetVehicleHealth(carid, health);
                new speed = GetPlayerSpeed(playerid,true); new Sspeed[15];
                if( speed >= 0 && speed <= 60 ){ format(Sspeed,sizeof(Sspeed),"~G~%dKm/h",speed); }
                else { format(Sspeed,sizeof(Sspeed),"~R~%dKm/h",speed); }
                TextDrawHideForPlayer(playerid, Speedom[playerid]);
                format(string,sizeof(string),"~Y~Veiculo:~n~~g~%s~n~~Y~Marcha: ~b~AUTO~n~~Y~KM/H: %s~n~~Y~Lataria: ~g~%.1f~n~~Y~Gasolina: ~g~%d%~n~" ,VehicleNames[GetVehicleModel(carid)-400],Sspeed,health/10,GetGVarInt("Gasolina", carid));
                TextDrawSetString(Speedom[playerid], string);
                TextDrawShowForPlayer(playerid, Speedom[playerid]);
            }
            else if(ShowSpeed[playerid] == 2)
            {
                new string[128]; new carid = GetPlayerVehicleID(playerid);
                new Float:health; GetVehicleHealth(carid, health);
                new speed = GetPlayerSpeed(playerid,true);
                new Float:Pos[3]; GetVehiclePos(carid, Pos[0], Pos[1], Pos[2]);
                TextDrawHideForPlayer(playerid, Speedom[playerid]);
                format(string,sizeof(string),"~Y~Veiculo:~n~~g~%s~n~~Y~Altura: ~b~%.2f~n~~Y~KM/H: ~r~%dKm/h~n~~Y~Lataria: ~g~%.1f~n~~Y~Gasolina: ~g~%d%~n~"
                ,VehicleNames[GetVehicleModel(carid)-400],Pos[2],speed,health/10,GetGVarInt("Gasolina", carid));
                TextDrawSetString(Speedom[playerid], string);
                TextDrawShowForPlayer(playerid, Speedom[playerid]);
            }

        }
    }
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    new cmd[20], tmp[20], idx, string[128];
    cmd = strtok(cmdtext, idx);
    if(IsPlayerConnected(playerid))
    {
        if(strcmp(cmd,"/TempoVelocimetro",true) == 0)
        {
            if(GetPVarInt(playerid, "AdminLevel") == 3000)
            {
                tmp = strtok(cmdtext, idx); new valor = strval(tmp);
                if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "USE: /TempoVelocimetro [tempo]");
                new Time = valor; KillTimer(speedotimer); speedotimer = SetTimer("Speedometer",Time,true);
                format(string,sizeof(string),"* Vocк mudou o tempo de verificaзгo do Velocimetro para %d.",Time);
                SendClientMessage(playerid, COLOR_WHITE,string);
            }
            return 1;
        }
    }
    return 0;
}

stock Aeronave(carid)
{
    new M = GetVehicleModel(carid);
    if(M==592||M==577||M==511||M==511||M==512||M==593||M==520||M==553||M==464||M==476||M==519||M==460||M==513||M==539) return 1;
    else if(M==548||M==425||M==417||M==487||M==497||M==563||M==501||M==465||M==447||M==469||M==488) return 1;
    return 0;
}

strtok(const string[], &index)
{
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' ')) { index++; }
    new offset = index; new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1))) {
        result[index - offset] = string[index]; index++; }
    result[index - offset] = EOS;
    return result;
}

stock GetPlayerSpeed(playerid, mode = 1)
{
    static Float:poskm[3];
    GetVehicleVelocity(GetPlayerVehicleID(playerid), poskm[0], poskm[1], poskm[2]);
    return IsPlayerInAnyVehicle(playerid) ? floatround(((floatsqroot(((poskm[0] * poskm [0]) + (poskm[1] * poskm[1]) + (poskm[2] * poskm[2]))) * (!mode ? 105.0 : 170.0))) * 1) : 0;
}
Ps: A public OnFilterScriptInit, й chamada quando inicia-se o FS.
Reply


Messages In This Thread
[AJUDA] Problemas com o velocimetro - by Colgate - 21.10.2011, 14:12
Re: [AJUDA] Problemas com o velocimetro - by Colgate - 21.10.2011, 19:41
Re: [AJUDA] Problemas com o velocimetro - by [O.z]Caroline - 21.10.2011, 19:54
Re: [AJUDA] Problemas com o velocimetro - by Colgate - 21.10.2011, 20:15
Re: [AJUDA] Problemas com o velocimetro - by [O.z]Caroline - 21.10.2011, 20:20
Re: [AJUDA] Problemas com o velocimetro - by Colgate - 21.10.2011, 23:38

Forum Jump:


Users browsing this thread: 1 Guest(s)