Frage zu Buylevel

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
  • Abend


    Ich habe mal eine Frage, und zwar hab ich ein /buylevel Befehl gemacht
    mit dem man sich bei einer bestimmten anzahl von EXP ein Level kaufen kann, nur das Problem ist es funktioniert nur bis Level 2..


    aber nun ja ist ja auch egal ich wollte mal Fragen, wie ich es am besten kürzer machen könnte weil wenn man sagen tut ich möchte das man bis Level 100 machen kann muss ich ja extrem viele Zeilenverbrauchen..



    Daher ist meine Frage wie mache ich den Befehl kürzer, so das er immer /buylevel machen kann wenn er die angeforderte EXP anzahl hat
    am besten immer in 600 schritten also:


    Level 1 ist er direkt schon am anfang:


    Level 2:


    600EXP benötigt



    Level 3:


    1200EXP benötigt



    usw.. also das /buylevel soll endlos sein aber wie stelle ich das genau an ?^^



    Mein Derzeitiger Code:



    ocmd:buylevel(playerid, params[])
    {
    if(GetPVarInt(playerid,"Tutorial") == 1)return SendClientMessage(playerid,GRAU,"Du kannst keine Befehle nutzen, da du im Tutorial bist.");
    if(GetPVarInt(playerid,"loggedin") == 0)return SendClientMessage(playerid,GRAU,"Du bist nicht eingeloggt!");
    if(PlayerRespektPunkte(playerid, 600) && SpielerLevel(playerid,1))
    {
    new string[128],string2[128],string3[128];


    // Format
    format(string,sizeof(string),"=> Level 2 Gekauft <=");
    format(string2,sizeof(string2),"Herzlichen Glückwunsch zum Level Up, %s",SpielerName(playerid));
    format(string3,sizeof(string3),"==================");


    // Nachricht
    SendClientMessage(playerid, ORANGE, string);
    SendClientMessage(playerid, WEIS, string2);
    SendClientMessage(playerid, ORANGE, string3);


    // Sonstiges
    SetPlayerScore(playerid,2);
    SetPVarInt(playerid,"Level", GetPVarInt(playerid,"Level")+1);
    SetPVarInt(playerid,"Respektpunkte", 0);
    SetPVarInt(playerid,"RRespektpunkte", 1200);
    }
    else if(PlayerRespektPunkte(playerid, 1200) && SpielerLevel(playerid,2))
    {
    new string[128],string2[128],string3[128];


    // Format
    format(string,sizeof(string),"=> Level 3 Gekauft <=");
    format(string2,sizeof(string2),"Herzlichen Glückwunsch zum Level Up, %s",SpielerName(playerid));
    format(string3,sizeof(string3),"==================");


    // Nachricht
    SendClientMessage(playerid, ORANGE, string);
    SendClientMessage(playerid, WEIS, string2);
    SendClientMessage(playerid, ORANGE, string3);


    // Sonstiges
    SetPlayerScore(playerid,3);
    SetPVarInt(playerid,"Level", GetPVarInt(playerid,"Level")+1);
    SetPVarInt(playerid,"Respektpunkte", 0);
    SetPVarInt(playerid,"RRespektpunkte", 1800);
    }
    else if(PlayerRespektPunkte(playerid, 1800) && SpielerLevel(playerid,3))
    {
    new string[128],string2[128],string3[128];


    // Format
    format(string,sizeof(string),"=> Level 4 Gekauft <=");
    format(string2,sizeof(string2),"Herzlichen Glückwunsch zum Level Up, %s",SpielerName(playerid));
    format(string3,sizeof(string3),"==================");


    // Nachricht
    SendClientMessage(playerid, ORANGE, string);
    SendClientMessage(playerid, WEIS, string2);
    SendClientMessage(playerid, ORANGE, string3);


    // Sonstiges
    SetPlayerScore(playerid,4);
    SetPVarInt(playerid,"Level", GetPVarInt(playerid,"Level")+1);
    SetPVarInt(playerid,"Respektpunkte", 0);
    SetPVarInt(playerid,"RRespektpunkte", 2000);
    }
    else if(PlayerRespektPunkte(playerid, 2000) && SpielerLevel(playerid,4))
    {
    new string[128],string2[128],string3[128];


    // Format
    format(string,sizeof(string),"=> Level 5 Gekauft <=");
    format(string2,sizeof(string2),"Herzlichen Glückwunsch zum Level Up, %s",SpielerName(playerid));
    format(string3,sizeof(string3),"==================");


    // Nachricht
    SendClientMessage(playerid, ORANGE, string);
    SendClientMessage(playerid, WEIS, string2);
    SendClientMessage(playerid, ORANGE, string3);


    // Sonstiges
    SetPlayerScore(playerid,5);
    SetPVarInt(playerid,"Level", GetPVarInt(playerid,"Level")+1);
    SetPVarInt(playerid,"Respektpunkte", 0);
    SetPVarInt(playerid,"RRespektpunkte", 2100);
    }
    else if(PlayerRespektPunkte(playerid, 2100) && SpielerLevel(playerid,5))
    {
    new string[128],string2[128],string3[128];


    // Format
    format(string,sizeof(string),"=> Level 6 Gekauft <=");
    format(string2,sizeof(string2),"Herzlichen Glückwunsch zum Level Up, %s",SpielerName(playerid));
    format(string3,sizeof(string3),"==================");


    // Nachricht
    SendClientMessage(playerid, ORANGE, string);
    SendClientMessage(playerid, WEIS, string2);
    SendClientMessage(playerid, ORANGE, string3);


    // Sonstiges
    SetPlayerScore(playerid,6);
    SetPVarInt(playerid,"Level", GetPVarInt(playerid,"Level")+1);
    SetPVarInt(playerid,"Respektpunkte", 0);
    SetPVarInt(playerid,"RRespektpunkte", 2200);
    }
    else if(PlayerRespektPunkte(playerid, 2200) && SpielerLevel(playerid,6))
    {
    new string[128],string2[128],string3[128];


    // Format
    format(string,sizeof(string),"=> Level 7 Gekauft <=");
    format(string2,sizeof(string2),"Herzlichen Glückwunsch zum Level Up, %s",SpielerName(playerid));
    format(string3,sizeof(string3),"==================");


    // Nachricht
    SendClientMessage(playerid, ORANGE, string);
    SendClientMessage(playerid, WEIS, string2);
    SendClientMessage(playerid, ORANGE, string3);


    // Sonstiges
    SetPlayerScore(playerid,7);
    SetPVarInt(playerid,"Level", GetPVarInt(playerid,"Level")+1);
    SetPVarInt(playerid,"Respektpunkte", 0);
    SetPVarInt(playerid,"RRespektpunkte", 2500);
    }
    else if(PlayerRespektPunkte(playerid, 2500) && SpielerLevel(playerid,6))
    {
    new string[128],string2[128],string3[128];


    // Format
    format(string,sizeof(string),"=> Level 8 Gekauft <=");
    format(string2,sizeof(string2),"Herzlichen Glückwunsch zum Level Up, %s",SpielerName(playerid));
    format(string3,sizeof(string3),"==================");


    // Nachricht
    SendClientMessage(playerid, ORANGE, string);
    SendClientMessage(playerid, WEIS, string2);
    SendClientMessage(playerid, ORANGE, string3);


    // Sonstiges
    SetPlayerScore(playerid,8);
    SetPVarInt(playerid,"Level", GetPVarInt(playerid,"Level")+1);
    SetPVarInt(playerid,"Respektpunkte", 0);
    SetPVarInt(playerid,"RRespektpunkte", 3000);
    }
    else if(PlayerRespektPunkte(playerid, 3000) && SpielerLevel(playerid,7))
    {
    new string[128],string2[128],string3[128];


    // Format
    format(string,sizeof(string),"=> Level 9 Gekauft <=");
    format(string2,sizeof(string2),"Herzlichen Glückwunsch zum Level Up, %s",SpielerName(playerid));
    format(string3,sizeof(string3),"==================");


    // Nachricht
    SendClientMessage(playerid, ORANGE, string);
    SendClientMessage(playerid, WEIS, string2);
    SendClientMessage(playerid, ORANGE, string3);


    // Sonstiges
    SetPlayerScore(playerid,9);
    SetPVarInt(playerid,"Level", GetPVarInt(playerid,"Level")+1);
    SetPVarInt(playerid,"Respektpunkte", 0);
    SetPVarInt(playerid,"RRespektpunkte", 3200);
    }
    else if(PlayerRespektPunkte(playerid, 3200) && SpielerLevel(playerid,8))
    {
    new string[128],string2[128],string3[128];


    // Format
    format(string,sizeof(string),"=> Level 10 Gekauft <=");
    format(string2,sizeof(string2),"Herzlichen Glückwunsch zum Level Up, %s",SpielerName(playerid));
    format(string3,sizeof(string3),"==================");


    // Nachricht
    SendClientMessage(playerid, ORANGE, string);
    SendClientMessage(playerid, WEIS, string2);
    SendClientMessage(playerid, ORANGE, string3);


    // Sonstiges
    SetPlayerScore(playerid,10);
    SetPVarInt(playerid,"Level", GetPVarInt(playerid,"Level")+1);
    SetPVarInt(playerid,"Respektpunkte", 0);
    SetPVarInt(playerid,"RRespektpunkte", 3600);
    }
    else if(PlayerRespektPunkte(playerid, 3600) && SpielerLevel(playerid,9))
    {
    new string[128],string2[128],string3[128];


    // Format
    format(string,sizeof(string),"=> Level 11 Gekauft <=");
    format(string2,sizeof(string2),"Herzlichen Glückwunsch zum Level Up, %s",SpielerName(playerid));
    format(string3,sizeof(string3),"==================");


    // Nachricht
    SendClientMessage(playerid, ORANGE, string);
    SendClientMessage(playerid, WEIS, string2);
    SendClientMessage(playerid, ORANGE, string3);


    // Sonstiges
    SetPlayerScore(playerid,11);
    SetPVarInt(playerid,"Level", GetPVarInt(playerid,"Level")+1);
    SetPVarInt(playerid,"Respektpunkte", 3600);
    SetPVarInt(playerid,"RRespektpunkte", 3600);
    }
    return 1;
    }




    Ich hoffe ihr versteht mich ^^




    Liebe Grüße


  • ocmd:buylevel(playerid, params[])
    {
    if(GetPVarInt(playerid,"Tutorial") == 1)return SendClientMessage(playerid,GRAU,"Du kannst keine Befehle nutzen, da du im Tutorial bist.");
    if(GetPVarInt(playerid,"loggedin") == 0)return SendClientMessage(playerid,GRAU,"Du bist nicht eingeloggt!");
    if(GetPVarInt(playerid, "Respektpunkte") >= GetPVarInt(playerid, "Level")*600)
    {
    new string[128],string2[128],string3[128];


    // Format
    format(string,sizeof(string),"=> Level %s Gekauft <=", pLevel[playerid]+1);
    format(string2,sizeof(string2),"Herzlichen Glückwunsch zum Level Up, %s",SpielerName(playerid));
    format(string3,sizeof(string3),"==================");


    // Nachricht
    SendClientMessage(playerid, ORANGE, string);
    SendClientMessage(playerid, WEIS, string2);
    SendClientMessage(playerid, ORANGE, string3);


    // Sonstiges
    SetPlayerScore(playerid,pLevel);
    SetPVarInt(playerid,"Level", GetPVarInt(playerid,"Level")+1);
    SetPVarInt(playerid,"Respektpunkte", 0);
    }
    return 1;
    }


    nicht getestet, sollte aber gehen.


    //edit: Rechtschreibung

  • Ich möchte das gerne so machen:




    man hat 0/600 EXP am Anfang.
    hat man dann die 600EXP zusammen kann man /buylevel machen und sich das Level 2 kaufen dann sollen +600 drauf Gezahlt werden, also - 0/1200 werden dann für Level 3 benötigt usw..




    Grüße

  • Gut habe es nun so und es funktioniert Fast perfekt


    Aber es wird irgendwie nichts bei seinem Score geändert, warum?



    Code:




    ocmd:buylevel(playerid, params[])
    {
    if(GetPVarInt(playerid,"Tutorial") == 1)return SendClientMessage(playerid,GRAU,"Du kannst keine Befehle nutzen, da du im Tutorial bist.");
    if(GetPVarInt(playerid,"loggedin") == 0)return SendClientMessage(playerid,GRAU,"Du bist nicht eingeloggt!");
    if(GetPVarInt(playerid, "Respektpunkte") >= GetPVarInt(playerid, "Level")*600)
    {
    new string[128],string2[128],string3[128];


    // Format
    format(string,sizeof(string),"=> Level %d Gekauft <=", GetPVarInt(playerid,"Level")+1);
    format(string2,sizeof(string2),"Herzlichen Glückwunsch zum Level Up, %s",SpielerName(playerid));
    format(string3,sizeof(string3),"==================");


    // Nachricht
    SendClientMessage(playerid, ORANGE, string);
    SendClientMessage(playerid, WEIS, string2);
    SendClientMessage(playerid, ORANGE, string3);


    // Sonstiges
    new Level = GetPVarInt(playerid,"Level");
    SetPlayerScore(playerid,Level);
    SetPVarInt(playerid,"Level", GetPVarInt(playerid,"Level")+1);
    SetPVarInt(playerid,"Respektpunkte", 0);
    SetPVarInt(playerid,"RRespektpunkte",GetPVarInt(playerid,"RRespektpunkte")+600);
    }
    return 1;
    }



    Grüße