Problem mit STRING?

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
  • Ja, ich verstehe, das ist bei mir auch so.


    In dem Moment, wo Du die Daten des Spielers
    aus der Datenbank ließt und bestimmt in die Funktion
    PlayerInfo deklarierst, also in die Variablen davon, genau
    dort müsstest Du ansetzen und das gesamte System überarbeiten.


    Für jede Variable von PlayerInfo, müsstest Du dann eine Spielervariable
    setzen und diese aber keines Falls beim Verlassen des Spielers, vergessen
    wieder zu löschen.



    Und das ist das aufwendige, wenn man nicht gleich von Anfang
    an mit dem System arbeitet.


    Ich empfehle nicht, ein Script danach umzubauen.
    Nur bei Neuanfängen von Scripts empfehle ich es sofort einzusetzen.

  • Ja also, ich werde jetzt nicht noch 3200 Zeilen umschreiben. - Keine Möglich die Variable einzeln zu deklaren beim PlayerConnect?


    //Edit: MySQL SpielerLaden ->



    stock SpielerLaden(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    GetPlayerName(playerid,SpielerInfo[playerid][pName],MAX_PLAYER_NAME);
    if(r_LoadSQLEntrance("accounts","Name",SpielerInfo[playerid][pName]))
    {


    SpielerInfo[playerid][Level] = r_mysql_GetInt("Level");
    SpielerInfo[playerid][Health] = r_mysql_GetFloat("Health");
    SpielerInfo[playerid][Adminlevel] = r_mysql_GetInt("Adminlevel");
    SpielerInfo[playerid][Fraktion] = r_mysql_GetInt("Fraktion");
    GivePlayerMoney(playerid,r_mysql_GetInt("Geld"));
    SpielerInfo[playerid][Banned] = r_mysql_GetInt("Banned");
    SpielerInfo[playerid][Paytime] = r_mysql_GetInt("Paytime");
    SpielerInfo[playerid][Rang] = r_mysql_GetInt("Rang");
    SpielerInfo[playerid][Morde] = r_mysql_GetInt("Morde");
    SpielerInfo[playerid][SkinID] = r_mysql_GetInt("SkinID");
    SpielerInfo[playerid][Spielzeit] = r_mysql_GetInt("Spielzeit");
    SpielerInfo[playerid][RespektPunkte] = r_mysql_GetInt("RespektPunkte");
    SpielerInfo[playerid][Fuehrerschein] = r_mysql_GetInt("Fuehrerschein");
    SpielerInfo[playerid][Konto] = r_mysql_GetInt("Konto");
    SpielerInfo[playerid][Job] = r_mysql_GetInt("Job");
    SpielerInfo[playerid][Contracted] = r_mysql_GetInt("Contracted");
    SpielerInfo[playerid][Wanteds] = r_mysql_GetInt("Wanteds");

    printf("Spielerdaten vom Spieler %s erfolgreich aus der Datenbank geladen",SpielerName(playerid));
    if(SpielerInfo[playerid][Banned] == 1)
    {
    Kick(playerid);
    }
    r_UnloadSQLEntrance();
    }


    }
    return 1;
    }


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • Ehrlich gesagt, würde ich mir die Mühe auch nicht machen.


    Aber wenn Du sie am Nachhinein nochmal deklarieren willst,
    ist es letzten Endes eigentlich Quatsch.


    Verwende einfach Dein System, wie Du es jetzt hast oder
    schreibs einfach um. Beides zu machen wäre Quark, weil
    Du dann die Speicherung der Variablen des Spielers wieder
    von den eigentlichen Variablen auf Deine PlayerInfo durchführen musst.


    Somit würdest Du Dir sogar nochmehr Ressourcen rauben. ;)

  • Das heisst ich soll jetzt, in der SpielerInfo -> Kopfgeld eintragen, MySQL Feld -> Kopfgeld anlegen. -> MySQL Feld Kopfgeld auslesen.


    Denn kann ich die PVars ja wieder löschen :D


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • Ja, in dem Fall ist es natürlich unsinnig die neuen
    Spielervariablen zu verwenden. Aber das konnten
    wir vohrer ja nicht ahnen.


    Ich bin generell dafür, dass es jeder so machen würde.


    Aber das liegt ja wohl nicht ein meiner Entscheidungsgewalt. ^^




    NACHTRAG


    Um Dein Problem zu klären, definierst Du einfach eine neue Variable.
    Beispielsweise diese hier:


    new PlayerContractPrice[MAX_PLAYERS];
    Dann kannst Du diese in Deiner Funktion einfach mit targetid
    setzen und gleich noch festlegen, wie hoch das Kopfgeld sein soll.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Okey. - Ich werde mal schauen, da ich jetzt eigentlich schon alles aus der Datenbank ausgelesen habe, mit dem Enum..


    Danke, kann erst mal geschlossen werden, geht nu alles.


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • Naja, aufm lokalem Server läufts noch.


    Aufm Root später, wirds ja denn wieder was ganz anderes.


    Ansonsten muss ich da mal debugen später wenns laagt.


    So //Closed. :D Danke


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!