Tanksystem [Textdraw]

  • Tanksystem [Textdraw]

    Hey ich weiß nicht richtig wie ich es beschreiben soll ich zeig einfach mal das was ich habe auf jedenfall wird im Textdraw nur %i angezeigt....

    PAWN-Quellcode

    1. new tanktimer =0;
    2. public Sekunde(playerid)
    3. {
    4. new sekunden,minuten,stunden,string[128];
    5. gettime(stunden,minuten,sekunden);
    6. format(string,sizeof(string),"%02d:%02d:%02d",stunden,minuten,sekunden);
    7. TextDrawSetString(TDEditor_TD[0],string);
    8. TextDrawShowForPlayer(playerid,TDEditor_TD[0]);
    9. new string1[128];
    10. for(new i=0; i<MAX_PLAYERS; i++)
    11. {
    12. if(IsPlayerConnected(i))continue;
    13. if(IsPlayerInAnyVehicle(i))continue;
    14. new vID = GetPlayerVehicleID(i);
    15. format(string1, sizeof(string), "Tank: %i%%", tank[vID]);
    16. PlayerTextDrawSetString(i,TDEditor_PTD[i][5],string1);
    17. }
    18. tanktimer++;
    19. if(tanktimer == 26)
    20. {
    21. tanktimer = 0;
    22. //Tanks red.
    23. for(new i=1; i<sizeof(tank); i++)
    24. {
    25. if(isMotorOn(i))continue;
    26. tank[i]--;
    27. }
    28. }
    29. return 1;
    30. }
    Alles anzeigen


    Unter OnGameModeInit:

    PAWN-Quellcode

    1. for(new i=0; i<sizeof(tank); i++)
    2. {
    3. tank[i]=100;
    4. }


    PAWN-Quellcode

    1. TDEditor_PTD[playerid][5] = CreatePlayerTextDraw(playerid, 512.588256, 384.250122, "Tank: %i");
    2. PlayerTextDrawLetterSize(playerid, TDEditor_PTD[playerid][5], 0.400000, 1.600000);
    3. PlayerTextDrawAlignment(playerid, TDEditor_PTD[playerid][5], 1);
    4. PlayerTextDrawColor(playerid, TDEditor_PTD[playerid][5], -1);
    5. PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][5], 0);
    6. PlayerTextDrawSetOutline(playerid, TDEditor_PTD[playerid][5], 0);
    7. PlayerTextDrawBackgroundColor(playerid, TDEditor_PTD[playerid][5], 255);
    8. PlayerTextDrawFont(playerid, TDEditor_PTD[playerid][5], 1);
    9. PlayerTextDrawSetProportional(playerid, TDEditor_PTD[playerid][5], 1);
    10. PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][5], 0);
    11. PlayerTextDrawHide(playerid, TDEditor_PTD[playerid][5]);
    Alles anzeigen


    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. if(newstate==PLAYER_STATE_ONFOOT)
    33. {
    34. PlayerTextDrawHide(playerid, TDEditor_PTD[playerid][0]);
    35. PlayerTextDrawHide(playerid, TDEditor_PTD[playerid][1]);
    36. PlayerTextDrawHide(playerid, TDEditor_PTD[playerid][2]);
    37. PlayerTextDrawHide(playerid, TDEditor_PTD[playerid][3]);
    38. PlayerTextDrawHide(playerid, TDEditor_PTD[playerid][4]);
    39. PlayerTextDrawHide(playerid, TDEditor_PTD[playerid][5]);
    40. PlayerTextDrawHide(playerid, TDEditor_PTD[playerid][6]);
    41. }
    42. return 1;
    43. }
    Alles anzeigen



    sollte etwas fehlen bescheid sagen und schaue dann ob ich es im script habe :) //habe zudem keine Errors/Warnings

    Beitrag von Dr.4nd3rs0n ()

    Dieser Beitrag wurde von Trooper[Y] gelöscht ().
  • @KinGRaPTiiC
    Hier falls es dir hilft.


    aber ansonsten, wennes um das hier geht?

    PAWN-Quellcode

    1. format(string1, sizeof(string), "Tank: %i%%", tank[vID]);
    2. PlayerTextDrawSetString(i,TDEditor_PTD[i][5],string1);

    versuch es mal so

    PAWN-Quellcode

    1. format(string1, sizeof(string1), "Tank: %i %", tank[vID]);
    2. PlayerTextDrawSetString(i,TDEditor_PTD[i][5],string1);
    MFG. Mogly1


    Du willst scripten Lernen hier...
    TuTorial

    (vom Register und Login bis zum eigenen Multichar-system)
  • @KinGRaPTiiC
    Yo hasb gefunden ^^
    versuche s mal so

    PAWN-Quellcode

    1. for(new i=0; i<MAX_PLAYERS; i++)
    2. {
    3. if(!IsPlayerConnected(i))continue;
    4. if(!IsPlayerInAnyVehicle(i))continue;
    5. new vID = GetPlayerVehicleID(i);
    6. format(string1, sizeof(string), "Tank: %i%%", tank[vID]);
    7. PlayerTextDrawSetString(i,TDEditor_PTD[i][5],string1);
    8. }
    MFG. Mogly1


    Du willst scripten Lernen hier...
    TuTorial

    (vom Register und Login bis zum eigenen Multichar-system)
  • Hast du überhaupt einen Timer dafür deklariert der alle 25 Sekunden ein bisschen Tank abzieht.
    Also ich hatte es so gemacht, das alle paar Sekunden ein Timer durchläuft, der abfragt ob man in Fahrzeug is, ob es ein administratives oder normales Fahrzeug is, ob der Motor an ist und ob es sich überhaupt vom Speed her bewegt.
    Die Welt besteht aus deinen Gedanken :!:
  • Kasakow schrieb:

    Hast du überhaupt einen Timer dafür deklariert der alle 25 Sekunden ein bisschen Tank abzieht.
    Also ich hatte es so gemacht, das alle paar Sekunden ein Timer durchläuft, der abfragt ob man in Fahrzeug is, ob es ein administratives oder normales Fahrzeug is, ob der Motor an ist und ob es sich überhaupt vom Speed her bewegt.
    Das mitn Speed ist schwachsinnig. Also wenn der Motor von mein Auto an wäre und nur rumstehen würde würde der Tank auch leer gehen oder gibt es schon Autos die erst gefahren werden müssen damit der Tank leer geht? Wenn ja verkauf Ich mein derzeitiges und hole mir so ein Super Auto.

  • funktioniert immer noch nicht... aktueller code:

    PAWN-Quellcode

    1. new tanktimer =0;
    2. public Sekunde(playerid)
    3. {
    4. new sekunden,minuten,stunden,string[128];
    5. gettime(stunden,minuten,sekunden);
    6. format(string,sizeof(string),"%02d:%02d:%02d",stunden,minuten,sekunden);
    7. TextDrawSetString(TDEditor_TD[0],string);
    8. TextDrawShowForPlayer(playerid,TDEditor_TD[0]);
    9. new string1[128];
    10. for(new i=0; i<MAX_PLAYERS; i++)
    11. {
    12. if(!IsPlayerConnected(i))continue;
    13. if(!IsPlayerInAnyVehicle(i))continue;
    14. new vID = GetPlayerVehicleID(i);
    15. format(string1, sizeof(string), "Tank: %i%%", tank[vID]);
    16. PlayerTextDrawSetString(i,TDEditor_PTD[i][5],string1);
    17. }
    18. tanktimer++;
    19. if(tanktimer == 25)
    20. {
    21. tanktimer = 0;
    22. //Tanks red.
    23. for(new i=0; i<MAX_VEHICLES; i++)
    24. {
    25. if(isMotorOn(i))continue;
    26. tank[i]--;
    27. }
    28. }
    29. return 1;
    30. }
    Alles anzeigen
  • KinGRaPTiiC schrieb:

    @Kaliber habe es halt einfach wie im Tutorial gemacht :D


    /edit Verliere den Tank nur wenn der Motor aus ist ?(
    Dann hast du die Abfrage vertauscht, anstatt abzufragen ob der Motor an ist hast du wahrscheinlich abgefragt ob der Motor aus ist wenn der Tankverlust eintreten soll.




    World of Revolution - German Reallife: www.world-of-revolution.de
    Registriert euch jetzt und seit auf die BETA-Phase gespannt!

    https://www.youtube.com/watch?v=48SILnmuS
  • @Braun_Strowman

    mein Tank kram:

    PAWN-Quellcode

    1. public Sekunde(playerid)
    2. {
    3. new sekunden,minuten,stunden,string[128];
    4. gettime(stunden,minuten,sekunden);
    5. format(string,sizeof(string),"%02d:%02d:%02d",stunden,minuten,sekunden);
    6. TextDrawSetString(TDEditor_TD[0],string);
    7. TextDrawShowForPlayer(playerid,TDEditor_TD[0]);
    8. new string1[128];
    9. for(new i=0; i<MAX_PLAYERS; i++)
    10. {
    11. if(!IsPlayerConnected(i))continue;
    12. if(!IsPlayerInAnyVehicle(i))continue;
    13. new vID = GetPlayerVehicleID(i);
    14. format(string1, sizeof(string), "Tank: %i%%", tank[vID]);
    15. PlayerTextDrawSetString(i,TDEditor_PTD[i][5],string1);
    16. }
    17. tanktimer++;
    18. if(tanktimer == 5)
    19. {
    20. tanktimer = 0;
    21. //Tanks red.
    22. for(new i=0; i<MAX_VEHICLES; i++)
    23. {
    24. if(isMotorOn(i))continue;
    25. tank[i]--;
    26. }
    27. }
    28. return 1;
    29. }
    Alles anzeigen


    und meine isMotorOnFunktion:

    PAWN-Quellcode

    1. isMotorOn(vID)
    2. {
    3. new tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective;
    4. GetVehicleParamsEx(vID, tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
    5. if(tmp_engine == 1)return 1;
    6. return 0;
    7. }