Hilfe benötigt bei Health wiedergabe, ID Verschiebungs Problem.

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
  • Hallo leute ich habe 3 Probleme in meinem Script.
    Hoffe ihr könnt mir helfen.


    1.
    Ich will das Leben das der Spieler hat wiedergeben lassen in einem Dialog.
    Nur wird es mir halt so angezeigt:

    (PS: Ich bekomme keine Error's)
    Code:
    new Float:health,
    string[256];


    GetPlayerHealth(playerid,health);
    format(health,sizeof health,"Health: %i",health);
    ShowPlayerDialog(playerid,Player_Stats,DIALOG_STYLE_MSGBOX,Stats,string,"Schließen"," ");


    Wen ich jetzt "d" verwende passiert das gleiche.


    2.
    Ich habe einen Dialog gemacht das erscheint wen man "/service" eingibt.
    Folgendes steht zur auswahl im Dialog:
    Taxi , Bus, Supporter und ADAC.
    Sollte nun Taxi ausgewählt werden erscheint ein zweiter Dialog(weitere Informationen dazu unnötig)


    Das Problem hier ist das wen man Taxi auswählt InGame die Nachricht kommt es ist kein Supporter anwesend die man aber bekommen sollte wen man auf
    Supporter geht. Das gleiche bei ADAC und Bus es wird halt etwas anderes ausgegeben als das was ausgegeben werden soll.
    (PS: Ich bekomme keine Error's)
    Code:

    // public OnPlayerCommandText........
    {
    if(strcmp("/Service", cmdtext, true) == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_SERVICE,DIALOG_STYLE_LIST,"Wähle deinen Service","Taxi\nBus\nSupporter\nADAC","Abbrechen","Weiter");
    return 1;
    }
    return 0;
    }


    // public OnDialogRespone.......
    {
    if(response)
    {
    switch(dialogid) // dialogid auswählen
    {
    case DIALOG_SERVICE:
    {
    if(response)
    {
    switch(listitem)
    {
    case 1:
    {
    ShowPlayerDialog(playerid,DIALOG_FAHRZEUG,DIALOG_STYLE_LIST,"Wähle ein Fahrzeug aus!","Taxi Car\nLimosine\nHellikopter","Abbrechen","Weiter");
    return 1;
    }
    case 2:
    {
    SendClientMessage(playerid,0xFFFFFF,"Kein Busfahrer anwesend");
    return 1;
    }
    case 3:
    {
    SendClientMessage(playerid,0xFFFFFF,"Kein Supporter anwesend");
    return 1;
    }
    case 4:
    {
    SendClientMessage(playerid,0xFFFFFF,"Kein ADAC Mitarbeiter anwesend");
    return 1;
    }
    }
    } // case dialog ende
    else return SendClientMessage(playerid, Hellblau,"Service abgebrochen!");
    }// if response ende

  • Man sollte mit Case 0 anfangen ;) und ich würds beim Health mal mit %f wenn die Gesundheit schon als Float angegeben wird.

  • Werde das mit dem Case gleich probieren ^^. Thx


    Und wen ich %f bei health mache wird es auch falsch dargestellt.
    Es sollte erscheinen 100.0/100 aber bei %f kommt das gleiche wie bei %i nur mit mehreren zahlen nach dem komma.

  • Oh mann, Fehler gefunden, du musst schon den String formatieren und nicht die Healthanzeige -.-


    new Float:health, string[256]; // <------ DAS ist der String.
    GetPlayerHealth(playerid,health);
    format(string,sizeof string,"Health: %d",health); // Dann klappt das auch mit %d
    ShowPlayerDialog(playerid,Player_Stats,DIALOG_STYLE_MSGBOX,Stats,string,"Schließen","Schließen");

  • Im script hab ich es mit string nicht mit health gemacht hab es nicht kopiert sondern selbst hier geschrieben hab mich wohl vertan ^^.
    Ehm mit %d kommt jetzt eine 10stellige zahl raus.(Ohne komma)

  • Dann kopier doch mal den richtigen Code hier rein...

  • new Float:health, string[256];
    GetPlayerHealth(playerid,health);
    format(string,sizeof string,"Health: %d",health);


    Genau so hab ich es doch.
    Nur es wird mir halt 10stellig ausgegeben.

  • new Float:health[4], string[256];
    Probiers mal so


    Ansonsten formatier mal den String entsprechend
    format(string,sizeof string,"Health: %d",floatround(health));

    Einmal editiert, zuletzt von ]hp[ ()

  • Ok dann versuchs nochmal damit ansonsten musste mich mal bei ICQ adden. (Dafür das Float:health[4] wieder umändern in Float:health)


    format(string,sizeof string,"Health: %d",floatround(health));

  • format(string,sizeof string,"Health: %.2f",health);


    //Da war wer schneller