String - Wert..

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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
  • Habe ein Problem mit diesen Strings hier:


    public Beduerfnisse()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && Eingeloggt[i] == 1)
    {
    JobInfo[i][Hunger] --;
    JobInfo[i][Durst] --;
    usw.


    Hab mir das ganze mal auslesen lassen, sobald der timer startet, obwohl der string "99" ist springt das sofort auf -1 :pinch:


    Habt ihr ne ahnung was das sein könnte?

  • schonmal was von SetTimerEx gehört? :P


    damit sollte es klappen ;)


    Sinnlose Antwort. Warum sollte er SetTimerEx verwenden, wenn er extra eine Schleife gemacht hat im Callback, um alle Spieler zu überprüfen.


    Zitat

    Hab mir das ganze mal auslesen lassen, sobald der timer startet, obwohl der string "99" ist springt das sofort auf -1


    Welche strings? In deinem gesammten Code, den du gepostet hast, findet sich keiner.


    Zitat

    Habt ihr ne ahnung was das sein könnte?


    Zeig einfach mehr von deinem Code, mehr von dem was alles dazugehört. Dein Code zählt "Hunger" und "Durst" von jedem Spieler um 1 runter, wenn der Callback "Bedürfnisse" aufgerufen wird. Man kann also nur erraten, wo genau der Fehler liegt, der Code sagt recht wenig darüber.
    Der Array "JobInfo" vewundert mich ein wenig, obwohl es auch einfach was anderes bedeuten kann, wie ich denke, wenn ich das Wort lese. Warum hat ein Job ein Bedürfniss?
    Zeig deinen Timer, möglichweise liegt da das Problem, dass der Code zu oft aufgerufen wird...

  • ok dann fang ich mal an :D


    - Also das JobInfo hat keine Bedeutung, den array hab ich zuerst für Jobs erstellt, danach eben noch mehr reingepackt


    - Zum Timer:
    Er startet in OnGameModeInit(), forward dazu lautet Beduerfnisse();


    SetTimer("Beduerfnisse", 10000, true);


    Dann hier der gesamte Timer:


    public Beduerfnisse()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && Eingeloggt[i] == 1)
    {
    JobInfo[i][Hunger] --;
    JobInfo[i][Durst] --;
    if(JobInfo[i][Hunger] <= 100)
    {
    if(AccountInfo[i][show] == 0)
    {
    TextDrawTextSize(Stats3_1[i], 90.0, 139.0);
    }
    if(AccountInfo[i][show] == 1)
    {
    TextDrawHideForPlayer(i, Stats3_1[i]);
    TextDrawTextSize(Stats3_1[i], 90.0, 139.0);
    TextDrawShowForPlayer(i, Stats3_1[i]);
    }
    }
    if(JobInfo[i][Hunger] <= 90)
    {
    if(AccountInfo[i][show] == 0)
    {
    TextDrawTextSize(Stats3_1[i], 85.0, 139.0);
    }
    if(AccountInfo[i][show] == 1)
    {
    TextDrawHideForPlayer(i, Stats3_1[i]);
    TextDrawTextSize(Stats3_1[i], 85.0, 139.0);
    TextDrawShowForPlayer(i, Stats3_1[i]);
    }
    }
    if(JobInfo[i][Hunger] <= 80)
    {
    if(AccountInfo[i][show] == 0)
    {
    TextDrawTextSize(Stats3_1[i], 80.0, 139.0);
    }
    if(AccountInfo[i][show] == 1)
    {
    TextDrawHideForPlayer(i, Stats3_1[i]);
    TextDrawTextSize(Stats3_1[i], 80.0, 139.0);
    TextDrawShowForPlayer(i, Stats3_1[i]);
    }
    }


    ... geht so weiter bis if(JobInfo[i][Hunger] <= 0)


    Zur sicherheit hab ich mal einen Cmd rein, mit dem ich JobInfo[i][Hunger] auslesen kann, sofort nach dem einloggen springt es auf 0, obwohl ich in die Datei, die sich der String blabla[Hunger] beim einloggen holt die zahl 100 steht 8|

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Also in dem von dir geposteten Code findet sich kein Anzeichen auf deinen Fehler...
    Bist du sicher, dass der Hungerwert beim Login korrekt gesetzt wird und dass kein anderer Timer diesen Wert noch manipuliert?

  • Ob man es nun mit einer simplen schleife oder einem simplen Timer macht ist im Endeffekt gleich...
    Je nach dem wie man es dann Optimiert und unnötige Dinge überspringt spart es dann auch die jeweiligen Ressourcen

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Also, es funktioniert jetzt alles


    ABER


    Sobald 2 Leute auf dem server sind, sinken die Strings, also die Textdraws nur bei ID 0, bei zB ID 1 bleiben sie, wie sie beim Connecten waren :evil:

    :rolleyes:

    2 Mal editiert, zuletzt von samu ()