Befehl Frage

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Es gibt Neuigkeiten! Ab sofort könnt ihr dem Donators Club auf Lebenszeit beitreten.
Weitere Infos im Thema Donator's Club ab heute wieder verfügbar!

  • Der Befehl sieht folgendermaßen aus.

    PAWN-Quellcode

    1. ocmd:makeverwalter(playerid, params[])
    2. {
    3. //if(SD[playerid][pEingeloggt] == 0)return SCM(playerid, GRAU, "Du bist nicht eingeloggt!");
    4. new pID, verwid, spalte, string[128];
    5. if(!iPAA(playerid,5))
    6. {
    7. if(sscanf(params, "uii", pID, spalte, verwid))return makeadmin;
    8. //if(adminid < 2)return SCM(playerid, GRAU, "Du kannst nur ab Rang 2 vergeben.");
    9. if(IPN(pID))return 1;
    10. //if(IsPlayerNPC(pID))return 1;
    11. //if(!Eingeloggt[pID])return SCM(playerid, GRAU, "Dieser Spieler ist nicht eingeloggt!");
    12. //if(SD[pID][pIntro] < 1)return SCM(playerid, GRAU, "Der Spieler ist noch im Tutorial.");
    13. if(verwid == 0)
    14. {
    15. for(new verwalter; verwalter < 4; verwalter ++)
    16. format(string,sizeof(string), GVRN(playerid));
    17. SD[pID][pVerwalter] = verwid;
    18. format(string, sizeof(string), "Du hast %s %s aus dem Teamposten %s entlassen", string,SD[pID][pName], string);
    19. SCM(playerid, BLAU, string);
    20. format(string,sizeof(string), GVRN(playerid));
    21. SD[pID][pVerwalter] = verwid;
    22. format(string, sizeof(string), "%s %s hat dir den Rang %s entzogenn!", string,SD[playerid][pName],GVRN(pID));
    23. SCM(pID, BLAU, string);
    24. format(string,sizeof(string), GVRN(playerid));
    25. SD[pID][pVerwalter] = verwid;
    26. format(string, sizeof(string), "AdmCMD: %s %s hat %s %s den Rang %s entzogen!", string,SD[playerid][pName],string, SD[pID][pName],GVRN(pID));
    27. SAM(BLAU, string);
    28. SD[pID][pVerwalter] = 0;
    29. SUS(pID);
    30. return 1;
    31. }
    32. if(verwid < 1 || verwid > 7)return adminrangnichtexistent;
    33. format(string,sizeof(string), GVRN(pID));
    34. SD[pID][pVerwalter][1] = verwid;
    35. format(string, sizeof(string), "Du hast %s %s den Teamrang %s gegeben", string,SD[pID][pName], GVRN(pID));
    36. SCM(playerid, BLAU, string);
    37. format(string, sizeof(string), "%s %s hat dir den Teamrang %s gegeben",GVRN(playerid),SD[playerid][pName],GVRN(pID));
    38. SCM(pID, BLAU, string);
    39. format(string,sizeof(string), GVRN(pID));
    40. SD[pID][pVerwalter] = verwid;
    41. format(string, sizeof(string), "AdmCMD: %s %s hat %s %s zum %s ernannt.",string, SD[playerid][pName],string, SD[pID][pName], GVRN(pID));
    42. SAM(BLAU,string);
    43. SUS(pID);
    44. return 1;
    45. }
    46. else {SCM(playerid, GRAU, "Du hast nicht genügend Rechte für diesen Befehl.");}
    47. return 1;
    48. }
    Alles anzeigen


    Aktuell geht zwar der Befehl aber er schreibt in 2 Spalten
  • Was soll den diese Schleife, so wie sie da steht, bewirken? Das macht doch gar keinen Sinn und entspricht auch nicht dem, was ich dir gesagt habe.

    Außerdem sind alle diese Zeilen nicht korrekt:

    PAWN-Quellcode

    1. SD[pID][pVerwalter] = verwid;

    Wenn du keine Spalte angibst, was soll der Code da machen? Gebe die Spalte entsprechend an.

    GVRN hast du auch nicht angepasst.
    Wenn du die Dinge, die man dir sagt, ignorierst, wird es schwer dir nachhaltig zu helfen.


    Bitte arbeite etwas gewissenhafter, was du aktuell machst ist einfach nur ohne Nachdenken mit völligem Desinteresse hingeklatscht.
  • Du sollst es nicht so machen, wie du denkst, sondern wie es dir gesagt wird, wenn du danach fragst.
    Sonst brauchst du nicht danach fragen.

    Also gehe bitte die Punkte aus obigem Post von mir an. Das sind 4 "auf die Sprünge Helfer".

    Arbeite dich in den Code und die Punkte die man dir sagt ein. Wenn du alle 10 Minuten sagst, du kommst nicht weiter, nachdem du nicht einmal die Hälfte dessen gemacht hast, was dir gesagt wurde, dann ist das für mich einfach nur Desinteresse, dann sehe ich es auch nicht ein, dir zu helfen. Es soll ja am Ende dein Code sein, wenn du nichts dafür tust, dann wird das nichts.
  • Ich komm irgendwie net weiter.

    format(string,sizeof(string), GVRN(playerid)[4];
    So hab ichs versucht aber compiler wirft erros

    Edit:

    Hab GVRN malfolgendermaßen gemacht. Meintest du das so @Jeffry?

    PAWN-Quellcode

    1. stock GetVerwalterRangName(playerid)
    2. {
    3. new string[50];
    4. switch(SpielerDaten[playerid][pVerwalter][3])
    5. {
    6. case 0: string = "Spieler";
    7. case 1: string = "Helferverwalter";
    8. case 2: string = "Firmenverwalter";
    9. case 3: string = "Bizverwalter";
    10. case 4: string = "Fraktionsverwalter";
    11. case 5: string = "Parteiverwalt";
    12. case 6: string = "Hausverwalter";
    13. case 7: string = "Charakterbeauftragter";
    14. case 8: string = "Eventmanager";
    15. }
    16. return string;
    17. }
    Alles anzeigen


    Ich glaub das format wie ich oben schrieb war falsch.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Allrounder18 ()

  • Jeffry schrieb:

    Du musst die Spalte genau gleich im Funktionskopf mitgeben, wie die playerid auch, das hast du doch auch hinbekommen, warum verkomplizierst du es jetzt so?
    Wenn ich schreibe "wie die playerid auch", warum schreibst du dann GVRN(playerid)[4]? playerid = innerhalb der runden Klammern --> Folge: slot ebenfalls innerhalb der Runden Klammern und nicht außerhalb der runden Klammern in eckigen Klammern.
    Außerdem ist 4 zu groß, es geht nur 0 bis 3. Und warum schreibst du das fest rein? Der Spieler gibt das doch ein.

    PAWN-Quellcode

    1. GVRN(playerid, spalte)




    Allrounder18 schrieb:

    switch(SpielerDaten[playerid][pVerwalter][3])
    Warum schreibst du dort die 3 hart rein? Willst du immer nur die 4. Spalte (pVerwalter4) zurückgegeben bekommen? Nein, also:

    PAWN-Quellcode

    1. stock GetVerwalterRangName(playerid, spalte)
    2. {
    3. new string[50];
    4. switch(SpielerDaten[playerid][pVerwalter][spalte])
    5. {
    6. case 0: string = "Spieler";
    7. case 1: string = "Helferverwalter";
    8. case 2: string = "Firmenverwalter";
    9. case 3: string = "Bizverwalter";
    10. case 4: string = "Fraktionsverwalter";
    11. case 5: string = "Parteiverwalt";
    12. case 6: string = "Hausverwalter";
    13. case 7: string = "Charakterbeauftragter";
    14. case 8: string = "Eventmanager";
    15. }
    16. return string;
    17. }
    Alles anzeigen
  • Wegen der 3 war nur so n Gedanke aber es würd kein Sinn ergeben.

    PAWN-Quellcode

    1. ocmd:makeverwalter(playerid, params[])
    2. {
    3. //if(SD[playerid][pEingeloggt] == 0)return SCM(playerid, GRAU, "Du bist nicht eingeloggt!");
    4. new pID, verwid, spalte, string[128];
    5. if(!iPAA(playerid,5))
    6. {
    7. if(sscanf(params, "uii", pID, verwid, spalte))return makeadmin;
    8. //if(adminid < 2)return SCM(playerid, GRAU, "Du kannst nur ab Rang 2 vergeben.");
    9. if(IPN(pID))return 1;
    10. //if(IsPlayerNPC(pID))return 1;
    11. //if(!Eingeloggt[pID])return SCM(playerid, GRAU, "Dieser Spieler ist nicht eingeloggt!");
    12. //if(SD[pID][pIntro] < 1)return SCM(playerid, GRAU, "Der Spieler ist noch im Tutorial.");
    13. if(verwid == 0)
    14. {
    15. for(new verwalter=1; verwalter < 4; verwalter ++)
    16. format(string,sizeof(string), GVRN(playerid,spalte));
    17. SD[pID][pVerwalter][spalte] = verwid;
    18. format(string, sizeof(string), "Du hast %s %s aus dem Teamposten %s entlassen", string,SD[pID][pName], string);
    19. SCM(playerid, BLAU, string);
    20. format(string,sizeof(string), GVRN(playerid,spalte));
    21. SD[pID][pVerwalter][spalte] = verwid;
    22. format(string, sizeof(string), "%s %s hat dir den Rang %s entzogenn!", string,SD[playerid][pName],GVRN(pID,spalte));
    23. SCM(pID, BLAU, string);
    24. format(string,sizeof(string), GVRN(playerid,spalte));
    25. SD[pID][pVerwalter][spalte] = verwid;
    26. format(string, sizeof(string), "AdmCMD: %s %s hat %s %s den Rang %s entzogen!", string,SD[playerid][pName],string, SD[pID][pName],GVRN(pID,spalte));
    27. SAM(BLAU, string);
    28. SD[pID][pVerwalter][spalte] = 0;
    29. SUS(pID);
    30. return 1;
    31. }
    32. if(verwid < 1 || verwid > 7)return adminrangnichtexistent;
    33. format(string,sizeof(string), GVRN(pID,spalte));
    34. SD[pID][pVerwalter][spalte] = verwid;
    35. format(string, sizeof(string), "Du hast %s %s den Teamrang %s gegeben", string,SD[pID][pName], GVRN(pID,spalte));
    36. SCM(playerid, BLAU, string);
    37. format(string, sizeof(string), "%s %s hat dir den Teamrang %s gegeben",GVRN(playerid,spalte),SD[playerid][pName],GVRN(pID,spalte));
    38. SCM(pID, BLAU, string);
    39. format(string,sizeof(string), GVRN(pID,spalte));
    40. SD[pID][pVerwalter][spalte] = verwid;
    41. format(string, sizeof(string), "AdmCMD: %s %s hat %s %s zum %s ernannt.",string, SD[playerid][pName],string, SD[pID][pName], GVRN(pID,spalte));
    42. SAM(BLAU,string);
    43. SUS(pID);
    44. return 1;
    45. }
    46. else {SCM(playerid, GRAU, "Du hast nicht genügend Rechte für diesen Befehl.");}
    47. return 1;
    48. }
    Alles anzeigen


    So sieht der Befehl aktuell aus. Jedoch ist Verwalter1 0 anstatt1 und Verwalter4 3 anstatt 4. Ist das normal?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Allrounder18 ()

  • Allrounder18 schrieb:

    Jedoch ist Verwalter1 0 anstatt1 und Verwalter4 3 anstatt 4. Ist das normal?
    Ja, weil das Script ab 0 zu zählen beginnt. Wenn dich das stört kannst du das in deinem Befehl kosmetisch überarbeiten.
    Mit freundlichen Grüßen
    FineTime

    JacLos schrieb:

    INFO: Bei mysql_format steht %d immer für dämlich. Deshalb nehmen wir %s für schlau oder %e für elegant.
    [...]
    Wichtig: Diese abfrage muss IMMER bei stocks stehen, ansonsten kann es sein, dass dein computer gelöscht wird.

    Weitere, mehr oder weniger lustige, Zitate findet ihr auf meinem Profil.

  • Wenn ich das richtig sehe, musst du unter die sscanf Abfrage einfach nur spalte--; einfügen.
    Mit freundlichen Grüßen
    FineTime

    JacLos schrieb:

    INFO: Bei mysql_format steht %d immer für dämlich. Deshalb nehmen wir %s für schlau oder %e für elegant.
    [...]
    Wichtig: Diese abfrage muss IMMER bei stocks stehen, ansonsten kann es sein, dass dein computer gelöscht wird.

    Weitere, mehr oder weniger lustige, Zitate findet ihr auf meinem Profil.
  • Gehört ja auch in die Zeile drunter ^^
    Mit freundlichen Grüßen
    FineTime

    JacLos schrieb:

    INFO: Bei mysql_format steht %d immer für dämlich. Deshalb nehmen wir %s für schlau oder %e für elegant.
    [...]
    Wichtig: Diese abfrage muss IMMER bei stocks stehen, ansonsten kann es sein, dass dein computer gelöscht wird.

    Weitere, mehr oder weniger lustige, Zitate findet ihr auf meinem Profil.
  • Oh danke.

    Wie mache ich es jetzt, dass ich jeden Rang nur 1 mal vergeben kann?
    Also, dass wenn ich in Spalte 1 den Rang 4 hab, dass dieser in Spalte 2 den Rang nicht nochmal vergeben kan, bzw. dass es i eienr Spalte den Rang net doppelt geben kann?

    Das ist meine aktuelle For Schleife

    PAWN-Quellcode

    1. for(new verwalter=1; verwalter < 4; verwalter ++)
  • Müsste so klappen:

    PAWN-Quellcode

    1. new bool:exists;
    2. for(new verwalter = 0; verwalter < 4; verwalter ++)
    3. {
    4. if(SD[pID][pVerwalter][verwalter] == verwid) exists = true;
    5. }
    6. if(exists) return SendClientMessage(playerid, GRAU, "Der Spieler hat diesen Rang bereits.");
    Mit freundlichen Grüßen
    FineTime

    JacLos schrieb:

    INFO: Bei mysql_format steht %d immer für dämlich. Deshalb nehmen wir %s für schlau oder %e für elegant.
    [...]
    Wichtig: Diese abfrage muss IMMER bei stocks stehen, ansonsten kann es sein, dass dein computer gelöscht wird.

    Weitere, mehr oder weniger lustige, Zitate findet ihr auf meinem Profil.
  • Nein, das gehört entweder über oder unter folgende Zeile:

    PAWN-Quellcode

    1. if(verwid < 1 || verwid > 7)return adminrangnichtexistent;
    Mit freundlichen Grüßen
    FineTime

    JacLos schrieb:

    INFO: Bei mysql_format steht %d immer für dämlich. Deshalb nehmen wir %s für schlau oder %e für elegant.
    [...]
    Wichtig: Diese abfrage muss IMMER bei stocks stehen, ansonsten kann es sein, dass dein computer gelöscht wird.

    Weitere, mehr oder weniger lustige, Zitate findet ihr auf meinem Profil.
  • du fragst ab ob der Spieler vorher einen höheren Rang hatte und sendest ihm dann die Nachricht du wurdest "degradiert"
    Wenn der Rang höher ist als der Rang den er vorher hatte wurde er befördert

    PAWN-Quellcode

    1. if(SpielerVerwalterRang > GegebenenRang)
    2. {
    3. //Der Spieler wurde degradiert
    4. }


    PAWN-Quellcode

    1. if(SpielerVerwalterRang < GegebenenRang)
    2. {
    3. //Der Spieler wurde befördert
    4. }

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von PermanenT ()