[AJUDA] Problemas com o velocimetro
#1

Olб comunidade SA:MP,


Estou com problemas no meu velocimetro, ele funciona perfeitamente porйm, depois de algum tempo ele simplesmente some sem mais nem menos, entгo eu recarrego o o filterscript, ele volta sу que nгo aparece para algumas pessoas.

Codigo: http://pastebin.com/YqcJ0K8v

Como posso resolver isso?


Humildemente.
Reply
#2

Ninguem? malz o double post
Reply
#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
#4

Por que colocou a include gvar em comentario?

Por que limpou o OnFilterScriptInit? й para quando eu der reload no FS, setar o velocimetro para quem estiver em carro.
Reply
#5

coloquei em comentбrio para compilar aqui.
limpei o FilterScriptInit porque й desnecessбrio.
Reply
#6

O que mais vocк fez?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)