getPlayerSpeed

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
  • Hey ich weiß einfach nicht was ich falsch gemacht habe:


    C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(2245) : error 017: undefined symbol "GetVehicleVeloCity"
    C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(2245) : warning 202: number of arguments does not match definition
    C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(2245) : error 001: expected token: ",", but found ";"
    C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(2249) : error 017: undefined symbol "GetPlayerVeloCity"
    C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(2252) : error 017: undefined symbol "rtn"
    C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(2253) : error 017: undefined symbol "rtn"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    5 Errors.



    getPlayerSpeed(playerid)
    {
    new Float: x, Float: y, Float: z;
    if(IsPlayerInAnyVehicle(playerid))
    {
    GetVehicleVeloCity(GetPlayerVehicleID(playerid, x, y, z); //2245
    }
    else
    {
    GetPlayerVeloCity(playerid, x, y, z); //2249
    }
    //rtn =wurzel(x*x + y*y + z*z
    rtn = floatsqroot( x*x + y*y + z*z); //2252
    return floatround(rtn * 100 * 1.61); //2253
    }

  • Deine Fehler waren, dass du die Funktionen falsch geschrieben hattest & du rtn nicht deklariert hattest.


    Dennoch empfehle ich es dir, das so zu machen:


    C
    stock getPlayerSpeed(playerid)
    {
        new Float:x,Float:y,Float:z,v=GetPlayerVehicleID(playerid);
        if(!v) GetVehicleVelocity(v,x,y,z);
        else GetPlayerVelocity(playerid,x,y,z);
        return floatround(VectorSize(x,y,z) * 161.0);
    }

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Ich hätte noch eine Frage also... ich habe mir ein Textdraw erstellt: das so aussieht ich weiß ist nicht das schönste:


    new PlayerText:TDEditor_PTD[MAX_PLAYERS][7];


    TDEditor_PTD[playerid][0] = CreatePlayerTextDraw(playerid, 505.999389, 334.667022, "box");
    PlayerTextDrawLetterSize(playerid, TDEditor_PTD[playerid][0], 0.000000, 12.400006);
    PlayerTextDrawTextSize(playerid, TDEditor_PTD[playerid][0], 649.000000, 0.000000);
    PlayerTextDrawAlignment(playerid, TDEditor_PTD[playerid][0], 1);
    PlayerTextDrawColor(playerid, TDEditor_PTD[playerid][0], -1);
    PlayerTextDrawUseBox(playerid, TDEditor_PTD[playerid][0], 1);
    PlayerTextDrawBoxColor(playerid, TDEditor_PTD[playerid][0], 75);
    PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][0], 0);
    PlayerTextDrawSetOutline(playerid, TDEditor_PTD[playerid][0], 0);
    PlayerTextDrawBackgroundColor(playerid, TDEditor_PTD[playerid][0], 255);
    PlayerTextDrawFont(playerid, TDEditor_PTD[playerid][0], 1);
    PlayerTextDrawSetProportional(playerid, TDEditor_PTD[playerid][0], 1);
    PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][0], 0);


    TDEditor_PTD[playerid][1] = CreatePlayerTextDraw(playerid, 514.470825, 344.583374, "box");
    PlayerTextDrawLetterSize(playerid, TDEditor_PTD[playerid][1], 0.000000, 11.976483);
    PlayerTextDrawTextSize(playerid, TDEditor_PTD[playerid][1], 638.000000, 0.000000);
    PlayerTextDrawAlignment(playerid, TDEditor_PTD[playerid][1], 1);
    PlayerTextDrawColor(playerid, TDEditor_PTD[playerid][1], -1);
    PlayerTextDrawUseBox(playerid, TDEditor_PTD[playerid][1], 1);
    PlayerTextDrawBoxColor(playerid, TDEditor_PTD[playerid][1], 255);
    PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][1], 0);
    PlayerTextDrawSetOutline(playerid, TDEditor_PTD[playerid][1], 0);
    PlayerTextDrawBackgroundColor(playerid, TDEditor_PTD[playerid][1], 255);
    PlayerTextDrawFont(playerid, TDEditor_PTD[playerid][1], 1);
    PlayerTextDrawSetProportional(playerid, TDEditor_PTD[playerid][1], 1);
    PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][1], 0);


    TDEditor_PTD[playerid][2] = CreatePlayerTextDraw(playerid, 512.529357, 372.000152, "LD_SPAC:white");
    PlayerTextDrawLetterSize(playerid, TDEditor_PTD[playerid][2], 0.000000, 0.000000);
    PlayerTextDrawTextSize(playerid, TDEditor_PTD[playerid][2], 150.000000, 6.000000);
    PlayerTextDrawAlignment(playerid, TDEditor_PTD[playerid][2], 1);
    PlayerTextDrawColor(playerid, TDEditor_PTD[playerid][2], -1);
    PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][2], 0);
    PlayerTextDrawSetOutline(playerid, TDEditor_PTD[playerid][2], 0);
    PlayerTextDrawBackgroundColor(playerid, TDEditor_PTD[playerid][2], 255);
    PlayerTextDrawFont(playerid, TDEditor_PTD[playerid][2], 4);
    PlayerTextDrawSetProportional(playerid, TDEditor_PTD[playerid][2], 0);
    PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][2], 0);


    TDEditor_PTD[playerid][3] = CreatePlayerTextDraw(playerid, 512.529357, 408.166809, "LD_SPAC:white");
    PlayerTextDrawLetterSize(playerid, TDEditor_PTD[playerid][3], 0.000000, 0.000000);
    PlayerTextDrawTextSize(playerid, TDEditor_PTD[playerid][3], 154.000000, 6.000000);
    PlayerTextDrawAlignment(playerid, TDEditor_PTD[playerid][3], 1);
    PlayerTextDrawColor(playerid, TDEditor_PTD[playerid][3], -1);
    PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][3], 0);
    PlayerTextDrawSetOutline(playerid, TDEditor_PTD[playerid][3], 0);
    PlayerTextDrawBackgroundColor(playerid, TDEditor_PTD[playerid][3], 255);
    PlayerTextDrawFont(playerid, TDEditor_PTD[playerid][3], 4);
    PlayerTextDrawSetProportional(playerid, TDEditor_PTD[playerid][3], 0);
    PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][3], 0);


    TDEditor_PTD[playerid][4] = CreatePlayerTextDraw(playerid, 512.588134, 344.583435, "Km/h:");
    PlayerTextDrawLetterSize(playerid, TDEditor_PTD[playerid][4], 0.341176, 2.667503);
    PlayerTextDrawAlignment(playerid, TDEditor_PTD[playerid][4], 1);
    PlayerTextDrawColor(playerid, TDEditor_PTD[playerid][4], -1);
    PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][4], 0);
    PlayerTextDrawSetOutline(playerid, TDEditor_PTD[playerid][4], 0);
    PlayerTextDrawBackgroundColor(playerid, TDEditor_PTD[playerid][4], 255);
    PlayerTextDrawFont(playerid, TDEditor_PTD[playerid][4], 1);
    PlayerTextDrawSetProportional(playerid, TDEditor_PTD[playerid][4], 1);
    PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][4], 0);


    TDEditor_PTD[playerid][5] = CreatePlayerTextDraw(playerid, 512.588256, 384.250122, "Tank:");
    PlayerTextDrawLetterSize(playerid, TDEditor_PTD[playerid][5], 0.400000, 1.600000);
    PlayerTextDrawAlignment(playerid, TDEditor_PTD[playerid][5], 1);
    PlayerTextDrawColor(playerid, TDEditor_PTD[playerid][5], -1);
    PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][5], 0);
    PlayerTextDrawSetOutline(playerid, TDEditor_PTD[playerid][5], 0);
    PlayerTextDrawBackgroundColor(playerid, TDEditor_PTD[playerid][5], 255);
    PlayerTextDrawFont(playerid, TDEditor_PTD[playerid][5], 1);
    PlayerTextDrawSetProportional(playerid, TDEditor_PTD[playerid][5], 1);
    PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][5], 0);


    TDEditor_PTD[playerid][6] = CreatePlayerTextDraw(playerid, 511.646972, 422.750152, "Fahrzeug:");
    PlayerTextDrawLetterSize(playerid, TDEditor_PTD[playerid][6], 0.339294, 1.588333);
    PlayerTextDrawAlignment(playerid, TDEditor_PTD[playerid][6], 1);
    PlayerTextDrawColor(playerid, TDEditor_PTD[playerid][6], -1);
    PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][6], 1);
    PlayerTextDrawSetOutline(playerid, TDEditor_PTD[playerid][6], 0);
    PlayerTextDrawBackgroundColor(playerid, TDEditor_PTD[playerid][6], 255);
    PlayerTextDrawFont(playerid, TDEditor_PTD[playerid][6], 1);
    PlayerTextDrawSetProportional(playerid, TDEditor_PTD[playerid][6], 1);
    PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][6], 1);


    Auf jedenfall muss man da irgendwas "viel" anders machen? oder ist das nicht viel/schwer? @Kaliber

  • Ich verstehe deine Frage...nicht...


    Wofür soll denn was anders gemacht werden? Was willst du tun..was ist deine Frage ^^


    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Also will die Km/h Anzeige etc. in einem Textdraw :D aber mir ist grade aufgefallen das mein GameTextForPlayer Tacho nicht funktioniert aber ist ja egal wenn ich es jetzt eh in einem Textdraw machen will aber wie? xD


    /edit GameText wird angezeigt aber egal wie schnell ich fahre bleibt bei 0 Km/h

  • aber wie

    ...da gibt es bestimmt tausende von Tutorials etc zu.


    Grobe Richtung...du brauchst einen Timer...der sich ca alle 250ms aktualisiert, je nachdem wie flüssig du es haben willst.


    Anschließend prüfst du ob der Spieler sich in einem Fahrzeug befindet.


    Wenn ja, verwendest du format & getPlayerSpeed und zeigst es dem Spieler mit: [wiki]PlayerTextDrawSetString[/wiki] an.


    und fertig :)


    //Edit auf dein Edit:
    Dann aktualisierst du den String nicht :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Da sollte wohl noch jemand gründlicher ins Wiki schauen und sich das in Ruhe durchlesen.


    wie soll ich bitte einen Timer erstellen der sich alle 250ms aktualisiert

    Ich würde fast sagen mit [wiki]SetTimer[/wiki] oder [wiki]SetTimerEx[/wiki], je nachdem wie du es nutzen willst.


    Willst du von mir, dass ich dir den ganzen Code auf einem Silber-Tablett serviere oder wie? :D


    Dann hier ein Beispiel:


    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • @Kaliber Nein Nein das wollte ich jetzt nicht von dir :D

    Zitat von Kaliber

    Willst du von mir, dass ich dir den ganzen Code auf einem Silber-Tablett serviere oder wie?

    Benuzte meistens SetTimer aber werde es einfach mal jetzt versuchen bin einfach grad nur ziemlich müde etc. danke dir trotzdem :) wenn was ist meld ich mich :)

  • Also Ingame wird mein Textdraw jetzt angezeigt aber wie gesagt egal wie schnell ich fahre es bleibt bei 0 Km/h


    http://prntscr.com/gkpf5g


    das was ich jetzt alles habe mein Textdraw unter OnGameModeInit:


    TDEditor_PTD[playerid][4] = CreatePlayerTextDraw(playerid, 512.588134, 344.583435, "Km/h: %d");
    PlayerTextDrawLetterSize(playerid, TDEditor_PTD[playerid][4], 0.341176, 2.667503);
    PlayerTextDrawAlignment(playerid, TDEditor_PTD[playerid][4], 1);
    PlayerTextDrawColor(playerid, TDEditor_PTD[playerid][4], -1);
    PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][4], 0);
    PlayerTextDrawSetOutline(playerid, TDEditor_PTD[playerid][4], 0);
    PlayerTextDrawBackgroundColor(playerid, TDEditor_PTD[playerid][4], 255);
    PlayerTextDrawFont(playerid, TDEditor_PTD[playerid][4], 1);
    PlayerTextDrawSetProportional(playerid, TDEditor_PTD[playerid][4], 1);
    PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][4], 0);
    PlayerTextDrawHide(playerid, TDEditor_PTD[playerid][4]);



    Timer unter OnGameModeInit:


    SetTimer("Tacho", 250, 1);



    und das public Tacho forward ist auch vorhanden aber woanders:


    public Tacho()
    {
    for(new i=GetPlayerPoolSize(),string[32]; i!=-1; i--)
    {
    if(!IsPlayerConnected(i) || IsPlayerNPC(i) || !IsPlayerInAnyVehicle(i)) continue;
    format(string,sizeof(string),"Km/h: %d",getPlayerSpeed(i));
    PlayerTextDrawSetString(i,TDEditor_PTD[i][4],string);
    }
    return 1;
    }


    und das ist unter OnPlayerStateChange:


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate==PLAYER_STATE_DRIVER)
    {
    new vID=GetPlayerVehicleID(playerid);
    PlayerTextDrawShow(playerid, TDEditor_PTD[playerid][0]);
    PlayerTextDrawShow(playerid, TDEditor_PTD[playerid][1]);
    PlayerTextDrawShow(playerid, TDEditor_PTD[playerid][2]);
    PlayerTextDrawShow(playerid, TDEditor_PTD[playerid][3]);
    PlayerTextDrawShow(playerid, TDEditor_PTD[playerid][4]);
    PlayerTextDrawShow(playerid, TDEditor_PTD[playerid][5]);
    PlayerTextDrawShow(playerid, TDEditor_PTD[playerid][6]);
    if(!hasEngine(vID))
    {
    new a,b,c,d,e,f;
    //Motor an/ausschalten
    GetVehicleParamsEx(vID, a,a,b,c,d,e,f);
    SetVehicleParamsEx(vID, 1, a,b,c,d,e,f);
    }
    for(new i=0; i<sizeof(ahCars); i++)
    {
    if(ahCars[i][id_x]!=vID)continue;
    //Verkaufsprozess
    SetPVarInt(playerid,"buyCarID",i);
    new string[256];
    format(string,sizeof(string),"Möchten sie das Fahrzeug für %i$ kaufen?",ahCars[i][c_preis]);
    ShowPlayerDialog(playerid,DIALOG_AUTOHAUS,DIALOG_STYLE_MSGBOX,"Autoverkauf",string,"Ja","Nein");
    break;
    }
    return 1;
    }
    return 1;
    }


    das meiste hat halt nichts mit dem Tacho bei OnPlayerStateChange zu tun aber hab einfach das gesamte public reingemacht ^^


    Mfg.

  • Huch, hatte einen Fehler in der Funktion getPlayerSpeed, schreib sie so:


    C
    stock getPlayerSpeed(playerid)
    {
        new Float:x,Float:y,Float:z,v=GetPlayerVehicleID(playerid);
        if(!v) GetPlayerVelocity(playerid,x,y,z);
        else GetVehicleVelocity(v,x,y,z);
        return floatround(VectorSize(x,y,z) * 161.0);
    }

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S