Payday System & MySQL

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,


    habe mal eine Frage und zwar habe ich ein Payday System und wenn der Spieler 12 Levelpunkte hat geht er ein Level höher.
    Mein Problem ist, dass er immer bei 12 höher geht aber ich möchte das sich das mit dem Level um 4 Steigert.
    Das heißt Level 1 braucht 12 Levelpunkte für Level 2
    Level 2 braucht 16 Levelpunkte für Level 3
    ...
    Und so weiter, ich weiss das ich einfach tausen abfragen machen kann von wegen
    if(SpielerInfo[playerid][pLevelpunkte] == 12 && SpielerInfo[playerid][pLevel] == 1) {
    ....
    }
    else if(SpielerInfo[playerid][pLevelpunkte] == 14 && SpielerInfo[playerid][pLevel] == 2) {
    ...
    }
    aber ich möchte das etwas code sparender schreiben.

    Spoiler anzeigen
    public PayDay(playerid)
    {
    SendClientMessage(playerid,info,"|____________Zahltag___________|");
    GivePlayerMoney(playerid,2000);
    SendClientMessage(playerid,hinweis,"Du hast 30 Minuten gespielt, und somit Zahltag.");
    SpielerInfo[playerid][pLevelpunkte] += 1;
    if(SpielerInfo[playerid][pLevelpunkte] == 12)
    {
    GivePlayerScore(playerid,1);
    SpielerInfo[playerid][pLevelpunkte] = 0;
    SendClientMessage(playerid,erfolg,"***Herzlichen Glückwunsch: Du bist ein Jahr älter geworden!***");
    }
    return 1;
    }


    Frage 2


    Irgendwie wenn ich neue Sachen zum Speichern hinzufüge will es nie klappen?
    Ich orientiere mich immer an der oberen Zeile!

    Spoiler anzeigen

    stock SavePlayer(playerid)
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    new query[1024];
    new Float:xxKord,Float:yyKord,Float:zzKord;
    GetPlayerPos(playerid,xxKord,yyKord,zzKord);
    new typos = GetPlayerSkin(playerid);
    new interior = GetPlayerInterior(playerid);
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    format(SpielerInfo[playerid][pName], MAX_PLAYER_NAME, name);
    SpielerInfo[playerid][pGeld] = GetPlayerMoney(playerid);//1803
    format(query, sizeof(query), "UPDATE accounts SET Name = '%s', Level = '%d', Geld = '%d', Kills = '%d', Tode = '%d', Admin = '%d', Banned = '%d', Leader = '%d', Member = '%d', Team = '%d', Rank = '%d', Duty = '%d', ",
    SpielerInfo[playerid][pName], SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pGeld], SpielerInfo[playerid][pKills], SpielerInfo[playerid][pTode], SpielerInfo[playerid][pAdmin],
    SpielerInfo[playerid][pBanned], SpielerInfo[playerid][pLeader], SpielerInfo[playerid][pMember], SpielerInfo[playerid][pTeam], SpielerInfo[playerid][pRank], SpielerInfo[playerid][pDuty]);
    format(query, sizeof(query), "%sSkin = '%d', Health = '%f', xKord = '%f', yKord = '%f', zKord = '%f', Interior = '%d', Carlic = '%d', Bikelic = '%d', Flylic = '%d', Bootlic = '%d', LKWlic = '%d', ", query,
    typos, SpielerInfo[playerid][pHealth], xxKord, yyKord, zzKord, interior,SpielerInfo[playerid][pCarlic],SpielerInfo[playerid][pBikelic],SpielerInfo[playerid][pFlylic],SpielerInfo[playerid][pBootlic],SpielerInfo[playerid][pLKWlic]);//1807
    format(query, sizeof(query), "%sKonto = '%d', Kontostand = '%d', Beantragt = '%d', Pin = '%d', Kontonummer = '%d', Abholen = '%d' WHERE Name = '%s'", query,
    SpielerInfo[playerid][Konto], SpielerInfo[playerid][Kontostand], SpielerInfo[playerid][Beantragt], SpielerInfo[playerid][Pin], SpielerInfo[playerid][Kontonr],SpielerInfo[playerid][Abholen],SpielerInfo[playerid][pName]);//1807
    //format(query, sizeof(query), "%sAlter = '%d', Geschlecht = '%d', Levelpunkte = '%d', Payday = '%d', Herkunft = '%d', Verheiratetmit = '%d', Telefonnummer = '%d', Tutorial = '%d' WHERE Name = '%s'", query,
    //SpielerInfo[playerid][pAlter], SpielerInfo[playerid][pGeschlecht], SpielerInfo[playerid][pLevelpunkte], SpielerInfo[playerid][pPayday],SpielerInfo[playerid][pHerkunft], SpielerInfo[playerid][pVerheiratetmit],SpielerInfo[playerid][pTelenummer],SpielerInfo[playerid][pTut], SpielerInfo[playerid][pName]);//1807
    mysql_tquery(handle, query);
    printf("query: %s", query);
    }
    return 1;
    }


    Wenn ich die // weg mache Speichert er den Spieler nicht mehr, gestern hatte ich das gleiche Problem & Jeffry hat mir geholfen.
    Was mache ich falsch? Wie mache ich es richtig um nicht mehr fragen zu müssen?


    Jeffry:


    Mit freundlichen Grüßen
    TV :thumbup:



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Zu 1:

    stock RequiredPoints(playerid)
    {
    new value = SpielerInfo[playerid][pLevel] * 4; //Hier wird in die Variable "value" das Level des Spielers mal 4 geschrieben, z.B. bei Level 5 steht in der Variable 20
    new p = 12 + value; //Hier wird dann der "Grundwert" (12), plus value gerechnet (in dem Fall 20), ergibt in unserem Beispiel 32
    return p; //Die Funktion gibt den Wert aus (32)
    }


    Und dann:

    public PayDay(playerid)
    {
    SendClientMessage(playerid,info,"|____________Zahltag___________|");
    GivePlayerMoney(playerid,2000);
    SendClientMessage(playerid,hinweis,"Du hast 30 Minuten gespielt, und somit Zahltag.");
    SpielerInfo[playerid][pLevelpunkte] += 1;
    if(SpielerInfo[playerid][pLevelpunkte] == RequiredPoints(playerid))//Wenn die Levelpunkte = 32 sind, dann..
    {
    GivePlayerScore(playerid,1);
    SpielerInfo[playerid][pLevelpunkte] = 0;
    SendClientMessage(playerid,erfolg,"***Herzlichen Glückwunsch: Du bist ein Jahr älter geworden!***");
    }
    return 1;
    }

    20€ geschenkt - bei Fragen gerne PN an mich


    Mehr über reCyclix
    reCyclix - more than recycling
    reyCyclix ist ein polnisches Recyclingunternehmen, welches jedem die Möglichkeit bietet, sich an ihrem Geschäftsmodell gewinnbringend zu beteiligen. Normalerweise passiert das, in dem man eine beliebige Summe in Kunststoffmüll investiert, allerdings schenkt reCyclix zur Zeit noch jedem neuem Nutzer 20€, die zur Investition genutzt werden können.

  • Okey, und wird er dann immer 1 Level höher gemacht oder bleibt er auf 1?


    Und hast du auch eine Lösung für das Problem mit dem speichern`?



    Mit freundlichen Grüßen



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Ja, mit SetPlayerScore. Je nach dem wie dein Script aussiehst, solltest du evtl. noch SetPlayerInfo[playerid][pLevel]++; darunter einfügen.


    Zu dem zweiten Problem: Entfernst du nur die "//", wenn du es ausprobierst? Sonst nichts?



    stock SavePlayer(playerid)
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    new query[1024];
    new Float:xxKord,Float:yyKord,Float:zzKord;
    GetPlayerPos(playerid,xxKord,yyKord,zzKord);
    new typos = GetPlayerSkin(playerid);
    new interior = GetPlayerInterior(playerid);
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    format(SpielerInfo[playerid][pName], MAX_PLAYER_NAME, name);
    SpielerInfo[playerid][pGeld] = GetPlayerMoney(playerid);//1803
    format(query, sizeof(query), "UPDATE accounts SET Name = '%s', Level = '%d', Geld = '%d', Kills = '%d', Tode = '%d', Admin = '%d', Banned = '%d', Leader = '%d', Member = '%d', Team = '%d', Rank = '%d', Duty = '%d', ",
    SpielerInfo[playerid][pName], SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pGeld], SpielerInfo[playerid][pKills], SpielerInfo[playerid][pTode], SpielerInfo[playerid][pAdmin],
    SpielerInfo[playerid][pBanned], SpielerInfo[playerid][pLeader], SpielerInfo[playerid][pMember], SpielerInfo[playerid][pTeam], SpielerInfo[playerid][pRank], SpielerInfo[playerid][pDuty]);
    format(query, sizeof(query), "%sSkin = '%d', Health = '%f', xKord = '%f', yKord = '%f', zKord = '%f', Interior = '%d', Carlic = '%d', Bikelic = '%d', Flylic = '%d', Bootlic = '%d', LKWlic = '%d', ", query,
    typos, SpielerInfo[playerid][pHealth], xxKord, yyKord, zzKord, interior,SpielerInfo[playerid][pCarlic],SpielerInfo[playerid][pBikelic],SpielerInfo[playerid][pFlylic],SpielerInfo[playerid][pBootlic],SpielerInfo[playerid][pLKWlic]);//1807
    format(query, sizeof(query), "%sKonto = '%d', Kontostand = '%d', Beantragt = '%d', Pin = '%d', Kontonummer = '%d', Abholen = '%d', ", query,
    SpielerInfo[playerid][Konto], SpielerInfo[playerid][Kontostand], SpielerInfo[playerid][Beantragt], SpielerInfo[playerid][Pin], SpielerInfo[playerid][Kontonr],SpielerInfo[playerid][Abholen]);//1807
    format(query, sizeof(query), "%sAlter = '%d', Geschlecht = '%d', Levelpunkte = '%d', Payday = '%d', Herkunft = '%d', Verheiratetmit = '%d', Telefonnummer = '%d', Tutorial = '%d' WHERE Name = '%s'", query,
    SpielerInfo[playerid][pAlter], SpielerInfo[playerid][pGeschlecht], SpielerInfo[playerid][pLevelpunkte], SpielerInfo[playerid][pPayday],SpielerInfo[playerid][pHerkunft], SpielerInfo[playerid][pVerheiratetmit],SpielerInfo[playerid][pTelenummer],SpielerInfo[playerid][pTut], SpielerInfo[playerid][pName]);//1807
    mysql_tquery(handle, query);
    printf("query: %s", query);
    }
    return 1;
    }


    Probiers mal so, das WHERE war doppelt. (In beiden letzten format)

    20€ geschenkt - bei Fragen gerne PN an mich


    Mehr über reCyclix
    reCyclix - more than recycling
    reyCyclix ist ein polnisches Recyclingunternehmen, welches jedem die Möglichkeit bietet, sich an ihrem Geschäftsmodell gewinnbringend zu beteiligen. Normalerweise passiert das, in dem man eine beliebige Summe in Kunststoffmüll investiert, allerdings schenkt reCyclix zur Zeit noch jedem neuem Nutzer 20€, die zur Investition genutzt werden können.

  • Ja das Where war doppelt weil ich es ja solange auskommentiert habe um weiter zu Spielen, bzw zu testen so ging es auch nicht ^^


    Jeffry:


    Was habe ich falsch gemacht beim Speichern?
    Erklär mir mal wie ich es richtig mache bitte ^^


    Mit freundlichen Grüßen



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

    Einmal editiert, zuletzt von ENEF () aus folgendem Grund: Jeffry hinzugefügt

  • Also ohne die zwei Zeilen funktioniert alles.
    Deswegen wundert es mich ja so da ich alles genau so wie du gesagt hast gemacht habe :/


    Log:


    SQL
    [20:33:51] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called[20:33:56] [DEBUG] mysql_tquery - connection: 1, query: "UPDATE accounts SET Name = 'niddo_189', Level = '1', Geld = '180", callback: "(null)", format: "(null)"[20:33:56] [DEBUG] CMySQLQuery::Execute[] - starting query execution[20:33:56] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Alter = '0', Geschlecht = '0', Levelpunkte = '0', Payday = '0', Herkunft = '0', ' at line 1[20:33:57] [DEBUG] CMySQLQuery::Execute[] - error will be triggered in OnQueryError[20:33:57] [DEBUG] Calling callback "OnQueryError"..


    Saveplayer & Load:


    Spoiler anzeigen
    forward LoadPlayer(playerid);
    public LoadPlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    cache_get_field_content(0, "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pLevel] = cache_get_field_content_int(0, "Level");
    SpielerInfo[playerid][pGeld] = cache_get_field_content_int(0, "Geld");
    SpielerInfo[playerid][pKills] = cache_get_field_content_int(0, "Kills");
    SpielerInfo[playerid][pTode] = cache_get_field_content_int(0, "Tode");
    SpielerInfo[playerid][pAdmin] = cache_get_field_content_int(0, "Admin");
    SpielerInfo[playerid][pBanned] = cache_get_field_content_int(0, "Banned");
    SpielerInfo[playerid][pLeader] = cache_get_field_content_int(0, "Leader");
    SpielerInfo[playerid][pMember] = cache_get_field_content_int(0, "Member");
    SpielerInfo[playerid][pTeam] = cache_get_field_content_int(0, "Team");
    SpielerInfo[playerid][pRank] = cache_get_field_content_int(0, "Rank");
    SpielerInfo[playerid][pDuty] = cache_get_field_content_int(0, "Duty");
    SpielerInfo[playerid][pSkin] = cache_get_field_content_int(0, "Skin");
    SpielerInfo[playerid][pHealth] = cache_get_field_content_int(0, "Health");
    SpielerInfo[playerid][xKord] = cache_get_field_content_float(0, "xKord");
    SpielerInfo[playerid][yKord] = cache_get_field_content_float(0, "yKord");
    SpielerInfo[playerid][zKord] = cache_get_field_content_float(0, "zKord");
    SpielerInfo[playerid][pInterior] = cache_get_field_content_int(0, "Interior");
    SpielerInfo[playerid][pCarlic] = cache_get_field_content_int(0, "Carlic");
    SpielerInfo[playerid][pBikelic] = cache_get_field_content_int(0, "Bikelic");
    SpielerInfo[playerid][pFlylic] = cache_get_field_content_int(0, "Flylic");
    SpielerInfo[playerid][pBootlic] = cache_get_field_content_int(0, "Bootlic");
    SpielerInfo[playerid][pLKWlic] = cache_get_field_content_int(0, "LKWlic");
    SpielerInfo[playerid][Konto] = cache_get_field_content_int(0, "Konto");
    SpielerInfo[playerid][Kontostand] = cache_get_field_content_int(0, "Kontostand");
    SpielerInfo[playerid][Beantragt] = cache_get_field_content_int(0, "Beantragt");
    SpielerInfo[playerid][Pin] = cache_get_field_content_int(0, "Pin");
    SpielerInfo[playerid][Kontonr] = cache_get_field_content_int(0, "Kontonummer");
    SpielerInfo[playerid][Abholen] = cache_get_field_content_int(0, "Abholen");
    SpielerInfo[playerid][pAlter] = cache_get_field_content_int(0, "Alter");
    SpielerInfo[playerid][pGeschlecht] = cache_get_field_content_int(0, "Geschlecht");
    SpielerInfo[playerid][pLevelpunkte] = cache_get_field_content_int(0, "Levelpunkte");
    SpielerInfo[playerid][pPayday] = cache_get_field_content_int(0, "Payday");
    SpielerInfo[playerid][pHerkunft] = cache_get_field_content_int(0, "Herkunft");
    SpielerInfo[playerid][pVerheiratetmit] = cache_get_field_content_int(0, "Verheiratetmit");
    SpielerInfo[playerid][pTelenummer] = cache_get_field_content_int(0, "Telefonnummer");
    SpielerInfo[playerid][pTut] = cache_get_field_content_int(0, "Tutorial");
    SetPlayerPos(playerid,SpielerInfo[playerid][xKord], SpielerInfo[playerid][xKord], SpielerInfo[playerid][zKord]);
    SetPlayerInterior(playerid,SpielerInfo[playerid][pInterior]);
    SetPlayerSkin(playerid,SpielerInfo[playerid][pSkin]);
    GivePlayerMoney(playerid, SpielerInfo[playerid][pGeld]);
    }
    }

    return 1;
    }
    stock SavePlayer(playerid)
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    new query[1024];
    new Float:xxKord,Float:yyKord,Float:zzKord;
    GetPlayerPos(playerid,xxKord,yyKord,zzKord);
    new typos = GetPlayerSkin(playerid);
    new interior = GetPlayerInterior(playerid);
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    format(SpielerInfo[playerid][pName], MAX_PLAYER_NAME, name);
    SpielerInfo[playerid][pGeld] = GetPlayerMoney(playerid);//1803
    format(query, sizeof(query), "UPDATE accounts SET Name = '%s', Level = '%d', Geld = '%d', Kills = '%d', Tode = '%d', Admin = '%d', Banned = '%d', Leader = '%d', Member = '%d', Team = '%d', Rank = '%d', Duty = '%d', ",
    SpielerInfo[playerid][pName], SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pGeld], SpielerInfo[playerid][pKills], SpielerInfo[playerid][pTode], SpielerInfo[playerid][pAdmin],
    SpielerInfo[playerid][pBanned], SpielerInfo[playerid][pLeader], SpielerInfo[playerid][pMember], SpielerInfo[playerid][pTeam], SpielerInfo[playerid][pRank], SpielerInfo[playerid][pDuty]);
    format(query, sizeof(query), "%sSkin = '%d', Health = '%f', xKord = '%f', yKord = '%f', zKord = '%f', Interior = '%d', Carlic = '%d', Bikelic = '%d', Flylic = '%d', Bootlic = '%d', LKWlic = '%d', ", query,
    typos, SpielerInfo[playerid][pHealth], xxKord, yyKord, zzKord, interior,SpielerInfo[playerid][pCarlic],SpielerInfo[playerid][pBikelic],SpielerInfo[playerid][pFlylic],SpielerInfo[playerid][pBootlic],SpielerInfo[playerid][pLKWlic]);//1807
    format(query, sizeof(query), "%sKonto = '%d', Kontostand = '%d', Beantragt = '%d', Pin = '%d', Kontonummer = '%d', Abholen = '%d', ", query,
    SpielerInfo[playerid][Konto], SpielerInfo[playerid][Kontostand], SpielerInfo[playerid][Beantragt], SpielerInfo[playerid][Pin], SpielerInfo[playerid][Kontonr],SpielerInfo[playerid][Abholen]);//1807
    format(query, sizeof(query), "%sAlter = '%d', Geschlecht = '%d', Levelpunkte = '%d', Payday = '%d', Herkunft = '%d', Verheiratetmit = '%d', Telefonnummer = '%d', Tutorial = '%d' WHERE Name = '%s'", query,
    SpielerInfo[playerid][pAlter], SpielerInfo[playerid][pGeschlecht], SpielerInfo[playerid][pLevelpunkte], SpielerInfo[playerid][pPayday],SpielerInfo[playerid][pHerkunft], SpielerInfo[playerid][pVerheiratetmit],SpielerInfo[playerid][pTelenummer],SpielerInfo[playerid][pTut], SpielerInfo[playerid][pName]);//1807
    mysql_tquery(handle, query);
    printf("query: %s", query);
    }
    return 1;
    }


    Jeffry:


    Mit freundlichen Grüßen^^



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Ernsthaft? Oh ok, danke :D


    Und wenn ich einen String zb Verheiratetmit = %s dann oder?


    Mit freundlichen Grüßen ^^



    /edit
    Geht immer noch nicht..

    SQL
    [20:52:30] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called[20:52:42] [DEBUG] mysql_tquery - connection: 1, query: "UPDATE accounts SET Name = 'niddo_189', Level = '1', Geld = '180", callback: "(null)", format: "(null)"[20:52:42] [DEBUG] CMySQLQuery::Execute[] - starting query execution[20:52:42] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= '0', Geschlecht = '0', Levelpunkte = '0', Payday = '0', Herkunft = '0', Verhei' at line 1[20:52:42] [DEBUG] CMySQLQuery::Execute[] - error will be triggered in OnQueryError[20:52:42] [DEBUG] Calling callback "OnQueryError"..


    Jeffry:


    //ed:
    Fehler gefunden!



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Jeffry:


    Kleines Problem beim Payday und zwar pass auf so soll es sein:

    Zitat

    habe mal eine Frage und zwar habe ich ein Payday System und wenn der Spieler 12 Levelpunkte hat geht er ein Level höher.
    Mein Problem ist, dass er immer bei 12 höher geht aber ich möchte das sich das mit dem Level um 4 Steigert.
    Das heißt Level 1 braucht 12 Levelpunkte für Level 2
    Level 2 braucht 16 Levelpunkte für Level 3


    Dann hat mir Key das gemacht:

    Spoiler anzeigen
    stock RequiredPoints(playerid)
    {
    new value = SpielerInfo[playerid][pLevel] * 4;
    new p = 12 + value;
    return p;
    }
    stock GivePlayerScore(playerid,amount)
    {
    SetPlayerScore(playerid,GetPlayerScore(playerid)+amount);
    return 1;
    }


    Und bei meinem Payday:

    Spoiler anzeigen
    public PayDay(playerid)
    {
    SendClientMessage(playerid,info,"|____________Zahltag___________|");
    GivePlayerMoney(playerid,2000);
    SendClientMessage(playerid,hinweis,"Du hast 45 Minuten gespielt und bekommst nun dein Gehalt!");
    SpielerInfo[playerid][pLevelpunkte] += 1;
    SpielerInfo[playerid][pPayday] = 0;
    if(SpielerInfo[playerid][pLevelpunkte] == RequiredPoints(playerid))//Hier
    {
    GivePlayerScore(playerid,1);
    SpielerInfo[playerid][pLevelpunkte] = 0;
    SpielerInfo[playerid][pLevel] ++;
    SendClientMessage(playerid,erfolg,"Herzlichen Glückwunsch, du bist ein Level gestiegen!");
    }
    return 1;
    }


    Es funktioniert nicht, nach einem Payday bekomme ich weder ein Levelpunkt noch steige ich ein Level wo ich es eigentlich sollte.
    Kannst du mal drüber schauen?


    Mit freundlichen Grüßen ^^



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Debugge es dann bitte so:
    public PayDay(playerid)
    {
    SendClientMessage(playerid,info,"|____________Zahltag___________|");
    GivePlayerMoney(playerid,2000);
    SendClientMessage(playerid,hinweis,"Du hast 45 Minuten gespielt und bekommst nun dein Gehalt!");
    SpielerInfo[playerid][pLevelpunkte] += 1;
    SpielerInfo[playerid][pPayday] = 0;
    printf("playerid: %d | pLevelPunkte: %d | Required: %d", playerid, SpielerInfo[playerid][pLevelpunkte], RequiredPoints(playerid));
    if(SpielerInfo[playerid][pLevelpunkte] == RequiredPoints(playerid))//Hier
    {
    printf("Level hoch");
    GivePlayerScore(playerid,1);
    SpielerInfo[playerid][pLevelpunkte] = 0;
    SpielerInfo[playerid][pLevel] ++;
    SendClientMessage(playerid,erfolg,"Herzlichen Glückwunsch, du bist ein Level gestiegen!");
    }
    return 1;
    }


    Was wird geprintet, wenn du ein paar PayDays durchlaufen lässt?

  • SQL
    [22:21:06] playerid: 0 | pLevelPunkte: 1 | Required: 12[22:21:06] playerid: 0 | pLevelPunkte: 1 | Required: 12[22:21:07] playerid: 0 | pLevelPunkte: 1 | Required: 12[22:21:08] playerid: 0 | pLevelPunkte: 1 | Required: 12[22:21:08] playerid: 0 | pLevelPunkte: 1 | Required: 12[22:21:09] playerid: 0 | pLevelPunkte: 1 | Required: 12[22:21:10] playerid: 0 | pLevelPunkte: 1 | Required: 12[22:21:11] playerid: 0 | pLevelPunkte: 1 | Required: 12[22:21:11] playerid: 0 | pLevelPunkte: 1 | Required: 12[22:21:12] playerid: 0 | pLevelPunkte: 1 | Required: 12[22:21:14] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:15] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:16] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:17] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:17] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:18] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:19] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:19] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:20] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:21] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:21] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:22] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:23] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:23] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:24] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:25] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:25] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:26] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:27] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:27] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:28] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:29] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:29] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:30] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:31] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:31] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:32] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:33] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:33] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:34] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:35] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:35] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:36] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:37] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:37] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:38] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:39] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:39] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:40] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:41] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:41] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:42] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:43] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:43] playerid: 0 | pLevelPunkte: 1 | Required: 24[22:21:44] playerid: 0 | pLevelPunkte: 1 | Required: 24


    Jeffry:


    Das hier^^



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Nein es wird nirgendwo überschrieben.
    Ja ok ich werde es mal versuchen.
    Irgendwie wird zwar das required hoch geschaltet aber ich steige kein Level. Und habe ich mir per Datenbank Bsp 10 levelpunkte gegeben so wird er beim 11 wieder auf 0 gesetzt -.-


    Mit freundlichen Grüßen


    Tv^^



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Naja, das aus 0 machst du ja hier:
    SpielerInfo[playerid][pLevelpunkte] = 0;
    Beim Level hoch.


    Was mich wundert, warum das Level einfach hoch ging, der Print aber nicht kam.
    Schau da mal nach, ob du da nicht irgendwo anders das überschreibst, vielleicht dadurch, dass du einen string in ein Integer aus dem enum packst.

  • Ich hab den Code mal bei mir unter OnGameModeInit eingefügt, und es funktioniert anscheinend alles wunderbar.



    public OnGameModeInit()
    {
    SpielerInfo[0][pLevelpunkte] = 15;
    SpielerInfo[0][pLevel] = 1;
    SendClientMessage(0,-1,"|____________Zahltag___________|");
    GivePlayerMoney(0,2000);
    SendClientMessage(0,-1,"Du hast 45 Minuten gespielt und bekommst nun dein Gehalt!");
    SpielerInfo[0][pLevelpunkte] += 1;
    SpielerInfo[0][pPayday] = 0;
    printf("playerid: %d | pLevelPunkte: %d | Required: %d | Level: %d", 0, SpielerInfo[0][pLevelpunkte], RequiredPoints(0),SpielerInfo[0][pLevel]);
    if(SpielerInfo[0][pLevelpunkte] == RequiredPoints(0))//Hier
    {
    printf("Level hoch");
    GivePlayerScore(0,1);
    SpielerInfo[0][pLevelpunkte] = 0;
    SpielerInfo[0][pLevel] ++;
    printf("playerid: %d | pLevelPunkte: %d | Required: %d | Level: %d", 0, SpielerInfo[0][pLevelpunkte], RequiredPoints(0),SpielerInfo[0][pLevel]);
    SendClientMessage(0,-1,"Herzlichen Glückwunsch, du bist ein Level gestiegen!");
    }
    return 1;
    }


    Und geprintet wird:


    Code
    playerid: 0 | pLevelPunkte: 16 | Required: 16 | Level: 1
    Level hoch
    playerid: 0 | pLevelPunkte: 0 | Required: 20 | Level: 2


    Der Fehler muss also irgendwo anders liegen, schau mal an den Stellen, wo du SpielerInfo[playerid][pLevelpunkte] und SpielerInfo[playerid][pLevel] noch benutzt.

    20€ geschenkt - bei Fragen gerne PN an mich


    Mehr über reCyclix
    reCyclix - more than recycling
    reyCyclix ist ein polnisches Recyclingunternehmen, welches jedem die Möglichkeit bietet, sich an ihrem Geschäftsmodell gewinnbringend zu beteiligen. Normalerweise passiert das, in dem man eine beliebige Summe in Kunststoffmüll investiert, allerdings schenkt reCyclix zur Zeit noch jedem neuem Nutzer 20€, die zur Investition genutzt werden können.

  • Also Level benutze ich nur noch in meinem Textdraw genau so wie Levelpunkte:
    format(_string_table[0],512,"~g~~h~Privat:~w~~n~----------~n~~w~Name: ~g~~h~%s~n~~w~Alter: ~g~~h~%d~n~~w~Geschlecht: ~g~~h~%s~n~~w~Level: ~g~~h~%d~n~~w~Levelpunkte: ~g~~h~%d~n~~w~Spawnenergie: ~g~~h~%d~n~~w~Leben: ~g~~h~%d~n~~n~~n~~w~",
    SpielerName(playerid),SpielerInfo[playerid][pAlter],SpielerInfo[playerid][pGeschlecht], SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pLevelpunkte]);


    Sonst nirgendwo, mein Payday nur im Befehl:
    ocmd:payday(playerid,params[])
    {
    new string[34];
    format(string, sizeof(string), "Du hast %d Minuten gespielt.",SpielerInfo[playerid][pPayday]);
    SendClientMessage(playerid, info, string);
    return 1;
    }


    Also ich habe den Code ja nicht unter OnGameModeInit sondern im Script weit unten.


    Jeffry:
    Key:


    Mit freundlichen Grüßen


    TV^^



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

    Einmal editiert, zuletzt von ENEF () aus folgendem Grund: Jeffry und Key hinzugefügt.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen