Wie kann ich Zeilen Sparen?

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
  • Hey Leute ich arbeite gerade an einem Exp System, jedoch braucht man viele Zeilen
    und ich wollte fragen ob ich das nicht irgendwie anders machen könnte, weil ich glaube
    so zieht es viele Ressoursen. (Info: der Exp Anstieg ist 200)

    stock CheckExp(playerid)
    {
    new Exp=GetPVarInt(playerid,"Exp");
    new lvl=GetPlayerScore(playerid);
    if(lvl==1)
    {
    if(Exp>=100)
    {
    SetPVarPlus(playerid,"Exp",-100);
    GivePlayerScore(playerid,1);
    new string[124];
    format(string,sizeof(string),"Du hast das Level %i erreicht.",GetPlayerScore(playerid));
    SendClientMessage(playerid,Rot2,string);
    }
    }

    else if(lvl==2)
    {
    if(Exp>=300)
    {
    SetPVarPlus(playerid,"Exp",-300);
    GivePlayerScore(playerid,1);
    new string[124];
    format(string,sizeof(string),"Du hast das Level %i erreicht.",GetPlayerScore(playerid));
    SendClientMessage(playerid,Rot2,string);
    }
    }

    else if(lvl==3)
    {
    if(Exp>=500)
    {
    SetPVarPlus(playerid,"Exp",-500);
    GivePlayerScore(playerid,1);
    new string[124];
    format(string,sizeof(string),"Du hast das Level %i erreicht.",GetPlayerScore(playerid));
    SendClientMessage(playerid,Rot2,string);
    }
    }

    else if(lvl==4)
    {
    if(Exp>=700)
    {
    SetPVarPlus(playerid,"Exp",-700);
    GivePlayerScore(playerid,1);
    new string[124];
    format(string,sizeof(string),"Du hast das Level %i erreicht.",GetPlayerScore(playerid));
    SendClientMessage(playerid,Rot2,string);
    }
    }

    else if(lvl==5)
    {
    if(Exp>=900)
    {
    SetPVarPlus(playerid,"Exp",-900);
    GivePlayerScore(playerid,1);
    new string[124];
    format(string,sizeof(string),"Du hast das Level %i erreicht.",GetPlayerScore(playerid));
    SendClientMessage(playerid,Rot2,string);
    }
    }

    else if(lvl==6)
    {
    if(Exp>=1200)
    {
    SetPVarPlus(playerid,"Exp",-1200);
    GivePlayerScore(playerid,1);
    new string[124];
    format(string,sizeof(string),"Du hast das Level %i erreicht.",GetPlayerScore(playerid));
    SendClientMessage(playerid,Rot2,string);
    }
    }

    else if(lvl==7)
    {
    if(Exp>=1400)
    {
    SetPVarPlus(playerid,"Exp",-1400);
    GivePlayerScore(playerid,1);
    new string[124];
    format(string,sizeof(string),"Du hast das Level %i erreicht.",GetPlayerScore(playerid));
    SendClientMessage(playerid,Rot2,string);
    }
    }

    else if(lvl==8)
    {
    if(Exp>=1600)
    {
    SetPVarPlus(playerid,"Exp",-1600);
    GivePlayerScore(playerid,1);
    new string[124];
    format(string,sizeof(string),"Du hast das Level %i erreicht.",GetPlayerScore(playerid));
    SendClientMessage(playerid,Rot2,string);
    }
    }

    else if(lvl==9)
    {
    if(Exp>=1800)
    {
    SetPVarPlus(playerid,"Exp",-1800);
    GivePlayerScore(playerid,1);
    new string[124];
    format(string,sizeof(string),"Du hast das Level %i erreicht.",GetPlayerScore(playerid));
    SendClientMessage(playerid,Rot2,string);
    }
    }

    else if(lvl==10)
    {
    if(Exp>=2000)
    {
    SetPVarPlus(playerid,"Exp",-2000);
    GivePlayerScore(playerid,1);
    new string[124];
    format(string,sizeof(string),"Du hast das Level %i erreicht.",GetPlayerScore(playerid));
    SendClientMessage(playerid,Rot2,string);
    }
    }

    else if(lvl==11)
    {
    if(Exp>=2200)
    {
    SetPVarPlus(playerid,"Exp",-2200);
    GivePlayerScore(playerid,1);
    new string[124];
    format(string,sizeof(string),"Du hast das Level %i erreicht.",GetPlayerScore(playerid));
    SendClientMessage(playerid,Rot2,string);}
    }

    else if(lvl==12)
    {
    if(Exp>=2400)
    {
    SetPVarPlus(playerid,"Exp",-2400);
    GivePlayerScore(playerid,1);
    new string[124];
    format(string,sizeof(string),"Du hast das Level %i erreicht.",GetPlayerScore(playerid));
    SendClientMessage(playerid,Rot2,string);
    }
    }

    else if(lvl==13)
    {
    if(Exp>=2600)
    {
    SetPVarPlus(playerid,"Exp",-2600);
    GivePlayerScore(playerid,1);
    new string[124];
    format(string,sizeof(string),"Du hast das Level %i erreicht.",GetPlayerScore(playerid));
    SendClientMessage(playerid,Rot2,string);
    }
    }

    else if(lvl==14)
    {
    if(Exp>=2800)
    {
    SetPVarPlus(playerid,"Exp",-2800);
    GivePlayerScore(playerid,1);
    new string[124];
    format(string,sizeof(string),"Du hast das Level %i erreicht.",GetPlayerScore(playerid));
    SendClientMessage(playerid,Rot2,string);
    }
    }

    else if(lvl==15)
    {
    if(Exp>=3000)
    {
    SetPVarPlus(playerid,"Exp",-3000);
    GivePlayerScore(playerid,1);
    new string[124];
    format(string,sizeof(string),"Du hast das Level %i erreicht.",GetPlayerScore(playerid));
    SendClientMessage(playerid,Rot2,"Du hast somit das höchste Level erreicht.");
    SendClientMessage(playerid,Rot2,string);
    }
    }
    return 1;
    }



    Wäre toll wenn mir jemand helfen könnte.

  • if(Exp>=100){
    CODE
    }
    new Exp=GetPVarInt(playerid,"Exp"), lvl=GetPlayerScore(playerid);


    stock Ueberweisen(playerid,pID,menge)
    {
    if(menge<0) return SendClientMessage(playerid,Rot2,"Du kannst keinen Negativen Betrag überweisen.");
    if(menge==0) return SendClientMessage(playerid,Rot2,"Der Betrag muss größer als 0 sein.");
    if(GetPVarInt(playerid,"Bank")<menge) return SendClientMessage(playerid,Rot2,"Du besitzt nicht so viel Geld auf dem Konto.");
    if(playerid==pID) return SendClientMessage(playerid,Rot2,"Du kannst dir selbst kein Geld überweisen.");
    new string[164], string2[164];
    format(string,sizeof(string),"Du hast dem Spieler %s erfolgreich %i $ überwiesen.",SpielerName(pID),menge);
    SendClientMessage(playerid,Rot2,string);
    format(string2,sizeof(string),"Du hast von dem Spieler %s, %i auf dein Konto überwiesen bekommen.",SpielerName(playerid),menge);
    SetPVarPlus(playerid,"Bank",-menge);
    SetPVarPlus(pID,"Bank",menge);
    return 1;
    }


    sowas halt

  • stock CheckExp(playerid)
    {
    new Exp=GetPVarInt(playerid,"Exp"),lvl=GetPlayerScore(playerid), string[124];
    GivePlayerScore(playerid,1);
    if(lvl==1) {
    if(Exp>=100)SetPVarPlus(playerid,"Exp",-100);
    }
    else if(lvl==2) {
    if(Exp>=300)SetPVarPlus(playerid,"Exp",-300);
    }
    else if(lvl==3) {
    if(Exp>=500)SetPVarPlus(playerid,"Exp",-500);
    }
    else if(lvl==4) {
    if(Exp>=700)SetPVarPlus(playerid,"Exp",-700);
    }
    else if(lvl==5) {
    if(Exp>=900)SetPVarPlus(playerid,"Exp",-900);
    }
    else if(lvl==6) {
    if(Exp>=1200)SetPVarPlus(playerid,"Exp",-1200);
    }
    else if(lvl==7) {
    if(Exp>=1400)SetPVarPlus(playerid,"Exp",-1400);
    }
    else if(lvl==8) {
    if(Exp>=1600)SetPVarPlus(playerid,"Exp",-1600);
    }
    else if(lvl==9) {
    if(Exp>=1800)SetPVarPlus(playerid,"Exp",-1800);
    }
    else if(lvl==10){
    if(Exp>=2000)SetPVarPlus(playerid,"Exp",-2000);
    }
    else if(lvl==11){
    if(Exp>=2200)SetPVarPlus(playerid,"Exp",-2200);
    }
    else if(lvl==12){
    if(Exp>=2400)SetPVarPlus(playerid,"Exp",-2400);
    }
    else if(lvl==13){
    if(Exp>=2600)SetPVarPlus(playerid,"Exp",-2600);
    }
    else if(lvl==14){
    if(Exp>=2800)SetPVarPlus(playerid,"Exp",-2800);
    }
    else if(lvl==15){
    if(Exp>=3000){
    SetPVarPlus(playerid,"Exp",-3000);
    SendClientMessage(playerid,Rot2,"Du hast das höchste Level erreicht.");
    }
    }
    format(string,sizeof(string),"Du hast das Level %i erreicht.",GetPlayerScore(playerid));
    SendClientMessage(playerid,Rot2,string);
    return 1;
    }
    da bitte ;)

  • H4rd_B4se .. das würde aber noch kürzer gehen, oder :D?

    stock CheckExp(playerid){
    new Exp=GetPVarInt(playerid,"Exp"),lvl=GetPlayerScore(playerid), string[124];
    GivePlayerScore(playerid,1);
    if(lvl==1 && Exp>=100)return SetPVarPlus(playerid,"Exp",-100);
    else if(lvl==2 && Exp>=300)return SetPVarPlus(playerid,"Exp",-300);
    else if(lvl==3 && Exp>=500)return SetPVarPlus(playerid,"Exp",-500);
    else if(lvl==4 && Exp>=700)return SetPVarPlus(playerid,"Exp",-700);
    else if(lvl==5 && Exp>=900)return SetPVarPlus(playerid,"Exp",-900);
    else if(lvl==6 && Exp>=1200)return SetPVarPlus(playerid,"Exp",-1200);
    else if(lvl==7 && Exp>=1400)return SetPVarPlus(playerid,"Exp",-1400);
    else if(lvl==8 && Exp>=1600)return SetPVarPlus(playerid,"Exp",-1600);
    else if(lvl==9 && Exp>=1800)return SetPVarPlus(playerid,"Exp",-1800);
    else if(lvl==10 && Exp>=2000)return SetPVarPlus(playerid,"Exp",-2000);
    else if(lvl==11 && Exp>=2200)return SetPVarPlus(playerid,"Exp",-2200);
    else if(lvl==12 && Exp>=2400)return SetPVarPlus(playerid,"Exp",-2400);
    else if(lvl==13 && Exp>=2600)return SetPVarPlus(playerid,"Exp",-2600);
    else if(lvl==14 && Exp>=2800)return SetPVarPlus(playerid,"Exp",-2800);
    else if(lvl==15 && Exp>=3000){
    SetPVarPlus(playerid,"Exp",-3000);
    SendClientMessage(playerid,Rot2,"Du hast das höchste Level erreicht.");
    }
    format(string,sizeof(string),"Du hast das Level %i erreicht.",GetPlayerScore(playerid));
    SendClientMessage(playerid,Rot2,string);
    return 1;
    }


  • new levelArray[MAX_PLAYERS];
    new expArray[MAX_PLAYERS];
    stock level (playerid) {
    if (levelArray[playerid] >= expArray[playerid]) {
    expArray[playerid] += 200;
    levelArray[playerid] = 0;
    GivePlayerScore(playerid, 1);
    SendClientMessage(playerid, Rot2, "Du hast ein neues Levle erreicht");
    }
    }


    so in etwa sollte es gehen, musst halt expArray und levelArray beim connecten richtig zuweisen ;)


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • In dem Forum übertreiben hier viele mit den Ressourcen du wirst den unterschied von der Ressourcen verschwendung durch den gesparten Code garnicht merken ;).


    Doch ;)


    Wenn man Zeilen spart merkt man das an der Größe der .pwn Datei und wenn man Zellen sparend scriptet etc merkt man es in der .amx Datei ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • new levelArray[MAX_PLAYERS];
    new expArray[MAX_PLAYERS];


    stock level (playerid) {
    if (levelArray[playerid] >= expArray[playerid]) { // wenn der Spieler ausreichend Erfahrung fürs momentane Level hat
    expArray[playerid] += 200; // neues Level wird 200 mehr Exp benötigen
    levelArray[playerid] = 0; // Exp des Spielers wieder auf 0 setzen
    GivePlayerScore(playerid, 1); // Spieler ein Level/Score geben
    SendClientMessage(playerid, Rot2, "Du hast ein neues Levle erreicht");
    }
    }


    onPlayerConnect (playerid) {
    levelArray[playerid] = 0; // Exp des Spielers wird auf 0 gesetzt
    expArray[playerid] = 300; // Fürs erste Level werden 300 Exp benötigt
    }


    So vielleicht verständlicher mit Kommentaren?


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'