Tacho funktioniert nicht

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hi Leute ich will ja nicht alles direkt hier fragen aber bin noch ein Anfänger und weiß gar nicht wo ich anfangen muss nach Fehlern zu suchen, deshalb frage ich doch nochmal hier warum mein Tacho nicht funktioniert, um genau zu sein sieht man nämlich im Spiel nichts davon.
    forward sekunde(playerid);
    public sekunde(playerid)
    {
    new string[128];
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(!IsPlayerInAnyVehicle(i))continue;
    format(string,sizeof(string),"%iKm/h",GetPlayerSpeed(i));
    GameTextForPlayer(i,string,100,1);
    }
    return 1;
    }
    GetPlayerSpeed(playerid)
    {
    new Float:x;
    new Float:y;
    new Float:z;
    new Float:rtn;
    if (IsPlayerInAnyVehicle(playerid))
    {
    GetVehicleVelocity(GetPlayerVehicleID(playerid), x, y, z);
    }
    else
    {
    GetPlayerVelocity(playerid,x,y,z);
    }
    rtn = floatsqroot(x*x + y*y + z*z);
    return floatround(rtn * 100 * 1.61);
    }

  • also es ist von mistermonat aber so wie ich das verstanden habe wird der timer gestartet wenn der spieler im fahrzeug ist

  • was ist ein callback? und wenn ich nach "sekunde" suche kommt nix

  • Dann liegt es wohl daran. Ein Callback ist ein public.


    Füge das hier bei OnGameModeInit ein (das ist ein Callback zum Beispiel):
    SetTimer("sekunde", 1000, 1);


    Und ändere
    sekunde(playerid)
    Zu
    sekunde()


    Und
    GameTextForPlayer(i,string,100,1);
    Zu
    GameTextForPlayer(i,string,2000,1);

  • dauert leider ewig bis das aktualisiert wird.. könnte das damit zu tun haben das das ein gametext vom typus 1 ist? der ja 8 sekunden lang ausblendet?

  • danke aber 1. wie verhindert man dass es immer so flackert? bei vielen servern flackert es nicht.
    2. wie verschiebt man es?

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • leider bekomme ich noch diesen fehler



    C:\Users\SunRiZez\Desktop\samp037_svr_R1_win32\gamemodes\UltimateReallife.pwn(360) : error 035: argument type mismatch (argument 2)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.





    format(string,sizeof(string),"%iKm/h",GetPlayerSpeed(i));
    GameTextForPlayer(i,string,100,4);
    CreatePlayerTextDraw(i, 320.0, 240.0,string);
    PlayerTextDrawShow(i,string);

  • Du musst das Textdraw bei OnPlayerConnect erstellen, schau dir den Link den ich dir gegeben habe mal genau an. Du musst auch die Einstellungen zwecks Größe, Position und Farbe vornehmen.


    Im Timer setzt du nur den string und zeigst dem Spieler das Textdraw an.

  • public OnPlayerConnect(playerid)
    {
    new query[128];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(query,sizeof(query),"SELECT ID FROM user WHERE username='%s'",name);
    mysql_function_query(DB_HANDLE,query,true,"OnUserCheck","i",playerid);
    SetPlayerColor(playerid,COLOR_WHITE);
    PlayerTextDrawShow(playerid,tacho_td);
    return 1;
    }


    public sekunde()
    {
    new string[128];
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(!IsPlayerInAnyVehicle(i))continue;
    format(string,sizeof(string),"%iKm/h",GetPlayerSpeed(i));
    CreatePlayerTextDraw(i,900,900,tacho_td);
    }
    return 1;
    }


    C:\Users\SunRiZez\Desktop\samp037_svr_R1_win32\gamemodes\UltimateReallife.pwn(346) : error 017: undefined symbol "tacho_td"
    C:\Users\SunRiZez\Desktop\samp037_svr_R1_win32\gamemodes\UltimateReallife.pwn(358) : error 017: undefined symbol "tacho_td"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.

    Einmal editiert, zuletzt von SunRiZez ()

  • Schau mal:


    Unter den Includes:
    new PlayerText:tachoText[MAX_PLAYERS];


    OnPlayerConnect:
    tachoText[playerid] = CreatePlayerTextDraw(playerid, 320.0, 240.0, "Tacho");
    //Hier noch Farbe etc...


    Und im Timer:
    PlayerTextDrawSetString(i, tachoText[i], string);
    PlayerTextDrawShow(i, tachoText[i]);


    Bei OnPlayerDisconnect löschst du das Textdraw wieder:
    PlayerTextDrawDestroy(i, tachoText[i]);