getPlayerSpeed

  • getPlayerSpeed

    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.


    PAWN-Quellcode

    1. getPlayerSpeed(playerid)
    2. {
    3. new Float: x, Float: y, Float: z;
    4. if(IsPlayerInAnyVehicle(playerid))
    5. {
    6. GetVehicleVeloCity(GetPlayerVehicleID(playerid, x, y, z); //2245
    7. }
    8. else
    9. {
    10. GetPlayerVeloCity(playerid, x, y, z); //2249
    11. }
    12. //rtn =wurzel(x*x + y*y + z*z
    13. rtn = floatsqroot( x*x + y*y + z*z); //2252
    14. return floatround(rtn * 100 * 1.61); //2253
    15. }
    Alles anzeigen
  • 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-Quellcode

    1. stock getPlayerSpeed(playerid)
    2. {
    3. new Float:x,Float:y,Float:z,v=GetPlayerVehicleID(playerid);
    4. if(!v) GetVehicleVelocity(v,x,y,z);
    5. else GetPlayerVelocity(playerid,x,y,z);
    6. return floatround(VectorSize(x,y,z) * 161.0);
    7. }



    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :pinch:
  • 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 ^^

    Spoiler anzeigen

    KinGRaPTiiC schrieb:

    das so aussieht ich weiß ist nicht das schönste
    Kann es mir voll bildlich vorstellen, der Code visualisiert sich direkt als Textdraw in meinem Kopf :S





    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :pinch:
  • ...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: PlayerTextDrawSetString an.

    und fertig :)

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



    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :pinch:
  • Da sollte wohl noch jemand gründlicher ins Wiki schauen und sich das in Ruhe durchlesen.

    KinGRaPTiiC schrieb:

    wie soll ich bitte einen Timer erstellen der sich alle 250ms aktualisiert
    Ich würde fast sagen mit SetTimer oder SetTimerEx, 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:

    C-Quellcode

    1. //Unter OnGameModeInit
    2. SetTimer("Tacho", 250, 1); //Ruft alle 250ms die Funktion Tacho auf...
    3. //Dann iwo im Skript
    4. forward Tacho();
    5. public Tacho()
    6. {
    7. for(new i=GetPlayerPoolSize(),string[32]; i!=-1; i--)
    8. {
    9. if(!IsPlayerConnected(i) || IsPlayerNPC(i) || !IsPlayerInAnyVehicle(i)) continue;
    10. format(string,sizeof(string),"Km/h: %d",getPlayerSpeed(i));
    11. PlayerTextDrawSetString(i,TDEditor_PTD[i][4],string);
    12. }
    13. return 1;
    14. }
    Alles anzeigen



    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :pinch:
  • Ich würde das so machen erst wenn Er ins Fahrzeug einsteigt das der Timer dann gestartet wird sonst läuft Er ja durchgehend durch auch wenn Er nicht im Fahrzeug sitzt und wenn Er aussteigt wird der gekillt.
    Mit freundlichen Grüßen
    Szertockz aka. zSkiLL.exe



    Noch nichts veröffentlicht :3


  • Es gibst hier auch einige Kandidaten wie mich die auf Ressourcen sehr streng achten.
    Mit freundlichen Grüßen
    Szertockz aka. zSkiLL.exe



    Noch nichts veröffentlicht :3

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

    prntscr.com/gkpf5g

    das was ich jetzt alles habe mein Textdraw unter OnGameModeInit:

    PAWN-Quellcode

    1. TDEditor_PTD[playerid][4] = CreatePlayerTextDraw(playerid, 512.588134, 344.583435, "Km/h: %d");
    2. PlayerTextDrawLetterSize(playerid, TDEditor_PTD[playerid][4], 0.341176, 2.667503);
    3. PlayerTextDrawAlignment(playerid, TDEditor_PTD[playerid][4], 1);
    4. PlayerTextDrawColor(playerid, TDEditor_PTD[playerid][4], -1);
    5. PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][4], 0);
    6. PlayerTextDrawSetOutline(playerid, TDEditor_PTD[playerid][4], 0);
    7. PlayerTextDrawBackgroundColor(playerid, TDEditor_PTD[playerid][4], 255);
    8. PlayerTextDrawFont(playerid, TDEditor_PTD[playerid][4], 1);
    9. PlayerTextDrawSetProportional(playerid, TDEditor_PTD[playerid][4], 1);
    10. PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][4], 0);
    11. PlayerTextDrawHide(playerid, TDEditor_PTD[playerid][4]);
    Alles anzeigen



    Timer unter OnGameModeInit:

    PAWN-Quellcode

    1. SetTimer("Tacho", 250, 1);



    und das public Tacho forward ist auch vorhanden aber woanders:

    PAWN-Quellcode

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


    und das ist unter OnPlayerStateChange:

    PAWN-Quellcode

    1. public OnPlayerStateChange(playerid, newstate, oldstate)
    2. {
    3. if(newstate==PLAYER_STATE_DRIVER)
    4. {
    5. new vID=GetPlayerVehicleID(playerid);
    6. PlayerTextDrawShow(playerid, TDEditor_PTD[playerid][0]);
    7. PlayerTextDrawShow(playerid, TDEditor_PTD[playerid][1]);
    8. PlayerTextDrawShow(playerid, TDEditor_PTD[playerid][2]);
    9. PlayerTextDrawShow(playerid, TDEditor_PTD[playerid][3]);
    10. PlayerTextDrawShow(playerid, TDEditor_PTD[playerid][4]);
    11. PlayerTextDrawShow(playerid, TDEditor_PTD[playerid][5]);
    12. PlayerTextDrawShow(playerid, TDEditor_PTD[playerid][6]);
    13. if(!hasEngine(vID))
    14. {
    15. new a,b,c,d,e,f;
    16. //Motor an/ausschalten
    17. GetVehicleParamsEx(vID, a,a,b,c,d,e,f);
    18. SetVehicleParamsEx(vID, 1, a,b,c,d,e,f);
    19. }
    20. for(new i=0; i<sizeof(ahCars); i++)
    21. {
    22. if(ahCars[i][id_x]!=vID)continue;
    23. //Verkaufsprozess
    24. SetPVarInt(playerid,"buyCarID",i);
    25. new string[256];
    26. format(string,sizeof(string),"Möchten sie das Fahrzeug für %i$ kaufen?",ahCars[i][c_preis]);
    27. ShowPlayerDialog(playerid,DIALOG_AUTOHAUS,DIALOG_STYLE_MSGBOX,"Autoverkauf",string,"Ja","Nein");
    28. break;
    29. }
    30. return 1;
    31. }
    32. return 1;
    33. }
    Alles anzeigen


    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-Quellcode

    1. stock getPlayerSpeed(playerid)
    2. {
    3. new Float:x,Float:y,Float:z,v=GetPlayerVehicleID(playerid);
    4. if(!v) GetPlayerVelocity(playerid,x,y,z);
    5. else GetVehicleVelocity(v,x,y,z);
    6. return floatround(VectorSize(x,y,z) * 161.0);
    7. }



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