Adminlevel-Befehl spinnt

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!

  • Adminlevel-Befehl spinnt

    Guten Abend zusammen :D
    Ich bin noch sehr am Anfang und wollte einen Befehl erstellen, mit dem man als Rcon-Admin oder Serverleiter (Adminlevel 4) das Aminlevel eines Spielers ändern kann. Compile-Errors hab ich keine.
    Sowie ich /setadminlevel 0 (Meine ID) 4 auf meinem Localhost eingebe, passiert das im Chat:





    Hier der Befehl im Script:

    PAWN-Quellcode

    1. dcmd_setadminlevel(playerid, params[])
    2. {
    3. new spieler[100];
    4. new spieler2[100];
    5. new name[MAX_PLAYER_NAME];
    6. new name2[MAX_PLAYER_NAME];
    7. GetPlayerName(playerid,name,sizeof(name));
    8. format(spieler,sizeof(spieler),"/Accounts/%s.txt",name);
    9. if(IsPlayerAdmin(playerid))
    10. {
    11. new id, alevel;
    12. new str[128];
    13. new str2[128];
    14. new str3[128];
    15. if(sscanf(params,"uu",id,alevel)) return SendClientMessage(playerid,WEISS,"/setadminlevel [ID] [0-4]");
    16. GetPlayerName(id,name2,sizeof(name2));
    17. format(str,sizeof(str),"A: %s ist nun ein level %d Admin!",name2,alevel);
    18. format(str2,sizeof(str2),"A: Du wurdest zu einem level %d Admin befördert!",alevel);
    19. format(str3,sizeof(str3),"A: Du wurdest zu einem level %d Admin degradiert!",alevel);
    20. format(spieler2,sizeof(spieler2),"/Accounts/%s.txt",name2);
    21. dini_IntSet(spieler2,"Adminlevel",alevel);
    22. if(dini_Int(spieler2,"Adminlevel") > alevel)
    23. SendClientMessage(playerid,HELLROT,str);
    24. {
    25. SendClientMessage(id,HELLROT,str3);
    26. }
    27. if(dini_Int(spieler2,"Adminlevel") < alevel)
    28. {
    29. SendClientMessage(id,HELLROT,str2);
    30. }
    31. if(dini_Int(spieler2,"Adminlevel") == alevel)
    32. {
    33. SendClientMessage(playerid,HELLROT,"A: Dieser Spieler hat bereits dieses Adminlevel!");
    34. return 1;
    35. }
    36. return 1;
    37. }
    38. if(dini_Int(spieler,"Adminlevel") == 4)
    39. {
    40. new id, alevel;
    41. new str[128];
    42. new str2[128];
    43. new str3[128];
    44. if(sscanf(params,"uu",id,alevel)) return SendClientMessage(playerid,WEISS,"/setadminlevel [ID] [0-4]");
    45. GetPlayerName(id,name2,sizeof(name2));
    46. format(str,sizeof(str),"A: %s ist nun ein level %d Admin!",name2,alevel);
    47. format(str2,sizeof(str2),"A: Du wurdest zu einem level %d Admin befördert!",alevel);
    48. format(str3,sizeof(str3),"A: Du wurdest zu einem level %d Admin degradiert!",alevel);
    49. format(spieler2,sizeof(spieler2),"/Accounts/%s.txt",name2);
    50. dini_IntSet(spieler2,"Adminlevel",alevel);
    51. if(dini_Int(spieler2,"Adminlevel") > alevel)
    52. SendClientMessage(playerid,HELLROT,str);
    53. {
    54. SendClientMessage(id,HELLROT,str3);
    55. }
    56. if(dini_Int(spieler2,"Adminlevel") < alevel)
    57. {
    58. SendClientMessage(id,HELLROT,str2);
    59. }
    60. if(dini_Int(spieler2,"Adminlevel") == alevel)
    61. {
    62. SendClientMessage(playerid,HELLROT,"A: Dieser Spieler hat bereits dieses Adminlevel!");
    63. return 1;
    64. }
    65. return 1;
    66. }
    67. else
    68. {
    69. SendClientMessage(playerid,HELLROT,"A: Du bist nicht befugt!");
    70. return 1;
    71. }
    72. }
    Alles anzeigen


    Danke schonmal im Voraus :thumbup:
  • Versuch es mal mit dem Code.

    C-Quellcode

    1. dcmd_setadminlevel(playerid, params[])
    2. {
    3. new Spieler[100], Spieler2[100], SName[MAX_PLAYER_NAME], Sname2[MAX_PLAYER_NAME],
    4. id, alevel, str[128];
    5. GetPlayerName(playerid, Sname, sizeof(Sname));
    6. format(Spieler, sizeof(Spieler), "/Accounts/%s.txt", Sname);
    7. if(!IsPlayerAdmin(playerid) || dini_Int(Spieler, "Adminlevel") >= 4) return SendClientMessage(playerid, WEISS, "Du kannst diesen Befehl nicht Benutzen.");
    8. if(sscanf(params, "ud", id, alevel)) return SendClientMessage(playerid, WEISS, "/setadminlevel [ID/NAME] [0-4]");
    9. GetPlayerName(id, Sname2, sizeof(Sname2));
    10. format(Spieler2, sizeof(Spieler2), "/Accounts/%s.txt", Sname2);
    11. if(dini_Int(Spieler2, "Adminlevel" > alevel))
    12. {
    13. dini_IntSet(Spieler2, "Adminlevel", alevel);
    14. format(str, sizeof(str), "A: Du wurdest zu einem Level %d Admin degradiert!", alevel);
    15. SendClientMessage(id, HELLROT, str);
    16. format(str, sizeof(str), "A: Du hast den Spieler %s zum Admin mit dem Level %d degradiert!", Sname2, alevel);
    17. SendClientMessage(playerid, HELLROT, str);
    18. }
    19. else if(dini_Int(Spieler2, "Adminlevel" < alevel))
    20. {
    21. dini_IntSet(Spieler2, "Adminlevel", alevel);
    22. format(str, sizeof(str), "A: Du wurdest zu einem Level %d Admin befördert!", alevel);
    23. SendClientMessage(id, HELLROT, str);
    24. format(str, sizeof(str), "A: Du hast den Spieler %s zum Admin mit dem Level %d befördert!", Sname2, alevel);
    25. SendClientMessage(playerid, HELLROT, str);
    26. }
    27. else if(dini_Int(Spieler2, "Adminlevel" == alevel))
    28. {
    29. SendClientMessage(playerid, HELLROT, "Der Spieler hat bereits dieses Adminlevel.");
    30. }
    31. return 1;
    32. }
    Alles anzeigen
  • Ok, habe noch in Zeile 3 "SName" zu "Sname" geändert, doch jetzt kommen die Fehlercodes:

    C:\Users\Simon\Desktop\GTA SA Server\gamemodes\NVRoleplay.pwn(1132) : error 001: expected token: "-string end-", but found "-identifier-" // if(dini_Int(Spieler2, "Adminlevel" > alevel))
    C:\Users\Simon\Desktop\GTA SA Server\gamemodes\NVRoleplay.pwn(1141) : error 001: expected token: "-string end-", but found "-identifier-" //else if(dini_Int(Spieler2, "Adminlevel" < alevel))
    C:\Users\Simon\Desktop\GTA SA Server\gamemodes\NVRoleplay.pwn(1150) : error 001: expected token: "-string end-", but found "-identifier-" //else if(dini_Int(Spieler2, "Adminlevel" == alevel))
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    3 Errors.
  • War mein Fehler sorry. Sollte nun gehen.

    C-Quellcode

    1. dcmd_setadminlevel(playerid, params[])
    2. {
    3. new Spieler[100], Spieler2[100], SName[MAX_PLAYER_NAME], Sname2[MAX_PLAYER_NAME],
    4. id, alevel, str[128];
    5. GetPlayerName(playerid, Sname, sizeof(Sname));
    6. format(Spieler, sizeof(Spieler), "/Accounts/%s.txt", Sname);
    7. if(!IsPlayerAdmin(playerid) || dini_Int(Spieler, "Adminlevel") >= 4) return SendClientMessage(playerid, WEISS, "Du kannst diesen Befehl nicht Benutzen.");
    8. if(sscanf(params, "ud", id, alevel)) return SendClientMessage(playerid, WEISS, "/setadminlevel [ID/NAME] [0-4]");
    9. GetPlayerName(id, Sname2, sizeof(Sname2));
    10. format(Spieler2, sizeof(Spieler2), "/Accounts/%s.txt", Sname2);
    11. if(dini_Int(Spieler2, "Adminlevel") > alevel)
    12. {
    13. dini_IntSet(Spieler2, "Adminlevel", alevel);
    14. format(str, sizeof(str), "A: Du wurdest zu einem Level %d Admin degradiert!", alevel);
    15. SendClientMessage(id, HELLROT, str);
    16. format(str, sizeof(str), "A: Du hast den Spieler %s zum Admin mit dem Level %d degradiert!", Sname2, alevel);
    17. SendClientMessage(playerid, HELLROT, str);
    18. }
    19. else if(dini_Int(Spieler2, "Adminlevel") < alevel)
    20. {
    21. dini_IntSet(Spieler2, "Adminlevel", alevel);
    22. format(str, sizeof(str), "A: Du wurdest zu einem Level %d Admin befördert!", alevel);
    23. SendClientMessage(id, HELLROT, str);
    24. format(str, sizeof(str), "A: Du hast den Spieler %s zum Admin mit dem Level %d befördert!", Sname2, alevel);
    25. SendClientMessage(playerid, HELLROT, str);
    26. }
    27. else if(dini_Int(Spieler2, "Adminlevel") == alevel)
    28. {
    29. SendClientMessage(playerid, HELLROT, "Der Spieler hat bereits dieses Adminlevel.");
    30. }
    31. return 1;
    32. }
    Alles anzeigen
  • PAWN-Quellcode

    1. dcmd_setadminlevel(playerid, params[])
    2. {
    3. new Spieler[100], Spieler2[100], SName[MAX_PLAYER_NAME], Sname2[MAX_PLAYER_NAME],
    4. id, alevel, str[128];
    5. GetPlayerName(playerid, Sname, sizeof(Sname));
    6. format(Spieler, sizeof(Spieler), "/Accounts/%s.txt", Sname);
    7. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, WEISS, "Du kannst diesen Befehl nicht Benutzen.");
    8. if(sscanf(params, "ud", id, alevel)) return SendClientMessage(playerid, WEISS, "/setadminlevel [ID/NAME] [0-4]");
    9. GetPlayerName(id, Sname2, sizeof(Sname2));
    10. format(Spieler2, sizeof(Spieler2), "/Accounts/%s.txt", Sname2);
    11. if(dini_Int(Spieler2, "Adminlevel") > alevel)
    12. {
    13. dini_IntSet(Spieler2, "Adminlevel", alevel);
    14. format(str, sizeof(str), "A: Du wurdest zu einem Level %d Admin degradiert!", alevel);
    15. SendClientMessage(id, HELLROT, str);
    16. format(str, sizeof(str), "A: Du hast den Spieler %s zum Admin mit dem Level %d degradiert!", Sname2, alevel);
    17. SendClientMessage(playerid, HELLROT, str);
    18. }
    19. else if(dini_Int(Spieler2, "Adminlevel") < alevel)
    20. {
    21. dini_IntSet(Spieler2, "Adminlevel", alevel);
    22. format(str, sizeof(str), "A: Du wurdest zu einem Level %d Admin befördert!", alevel);
    23. SendClientMessage(id, HELLROT, str);
    24. format(str, sizeof(str), "A: Du hast den Spieler %s zum Admin mit dem Level %d befördert!", Sname2, alevel);
    25. SendClientMessage(playerid, HELLROT, str);
    26. }
    27. else if(dini_Int(Spieler2, "Adminlevel") == alevel)
    28. {
    29. SendClientMessage(playerid, HELLROT, "Der Spieler hat bereits dieses Adminlevel.");
    30. }
    31. return 1;
    32. }
    Alles anzeigen

  • Ich hoffe ich hab das jetzt richtig verstanden... also du willst den Befehl als Rcon-Admin oder als Serverleiter (Level 4 Admin) verwenden können bzw. wenn du beides bist. Falls ja dann:

    PAWN-Quellcode

    1. dcmd_setadminlevel(playerid, params[])
    2. {
    3. new Spieler[100], Spieler2[100], SName[MAX_PLAYER_NAME], Sname2[MAX_PLAYER_NAME],
    4. id, alevel, str[128];
    5. GetPlayerName(playerid, Sname, sizeof(Sname));
    6. format(Spieler, sizeof(Spieler), "/Accounts/%s.txt", Sname);
    7. if(!IsPlayerAdmin(playerid) || dini_Int(Spieler, "Adminlevel") < 4) return SendClientMessage(playerid, WEISS, "Du kannst diesen Befehl nicht Benutzen.");
    8. if(sscanf(params, "ud", id, alevel)) return SendClientMessage(playerid, WEISS, "/setadminlevel [ID/NAME] [0-4]");
    9. GetPlayerName(id, Sname2, sizeof(Sname2));
    10. format(Spieler2, sizeof(Spieler2), "/Accounts/%s.txt", Sname2);
    11. if(dini_Int(Spieler2, "Adminlevel") > alevel)
    12. {
    13. dini_IntSet(Spieler2, "Adminlevel", alevel);
    14. format(str, sizeof(str), "A: Du wurdest zu einem Level %d Admin degradiert!", alevel);
    15. SendClientMessage(id, HELLROT, str);
    16. format(str, sizeof(str), "A: Du hast den Spieler %s zum Admin mit dem Level %d degradiert!", Sname2, alevel);
    17. SendClientMessage(playerid, HELLROT, str);
    18. }
    19. else if(dini_Int(Spieler2, "Adminlevel") < alevel)
    20. {
    21. dini_IntSet(Spieler2, "Adminlevel", alevel);
    22. format(str, sizeof(str), "A: Du wurdest zu einem Level %d Admin befördert!", alevel);
    23. SendClientMessage(id, HELLROT, str);
    24. format(str, sizeof(str), "A: Du hast den Spieler %s zum Admin mit dem Level %d befördert!", Sname2, alevel);
    25. SendClientMessage(playerid, HELLROT, str);
    26. }
    27. else if(dini_Int(Spieler2, "Adminlevel") == alevel)
    28. {
    29. SendClientMessage(playerid, HELLROT, "Der Spieler hat bereits dieses Adminlevel.");
    30. }
    31. return 1;
    32. }
    Alles anzeigen
  • Ja, richtig verstanden :D Doch wenn ich jetzt kein Rcon-Admin bin, jedoch Level 4 admin, kann ich den Befehl trz nicht verwenden.
    Und wenn ich kein Rcon-Admin bin, jedoch level 4 Admin, geht es auch nicht.. :/
    Ich schätze das liegt an daran, dass die Bedingung Rcon-Admin zu sein ( if(!IsPlayerAdmin(playerid)) ) mit der bedingung level 4 Admin zu sein ( dini_Int(Spieler,"Adminlevel") < 4) ) zusammenhängt..
    Ich würde sagen, es passt aber auch so, bevor ich noch mehr eurer Zeit raube ^^

    Auf jeden Fall bedanke ich mich recht herzlich bei euch! :)
  • xMidFingx schrieb:

    Ich schätze das liegt an daran, dass die Bedingung Rcon-Admin zu sein ( if(!IsPlayerAdmin(playerid)) ) mit der bedingung level 4 Admin zu sein ( dini_Int(Spieler,"Adminlevel") < 4) ) zusammenhängt..
    Ich würde sagen, es passt aber auch so, bevor ich noch mehr eurer Zeit raube
    Ups...

    Entweder:

    PAWN-Quellcode

    1. dcmd_setadminlevel(playerid, params[])
    2. {
    3. new Spieler[100], Spieler2[100], SName[MAX_PLAYER_NAME], Sname2[MAX_PLAYER_NAME],
    4. id, alevel, str[128];
    5. GetPlayerName(playerid, Sname, sizeof(Sname));
    6. format(Spieler, sizeof(Spieler), "/Accounts/%s.txt", Sname);
    7. if(IsPlayerAdmin(playerid) || dini_Int(Spieler, "Adminlevel") == 4)
    8. {
    9. if(sscanf(params, "ud", id, alevel)) return SendClientMessage(playerid, WEISS, "/setadminlevel [ID/NAME] [0-4]");
    10. GetPlayerName(id, Sname2, sizeof(Sname2));
    11. format(Spieler2, sizeof(Spieler2), "/Accounts/%s.txt", Sname2);
    12. if(dini_Int(Spieler2, "Adminlevel") > alevel)
    13. {
    14. dini_IntSet(Spieler2, "Adminlevel", alevel);
    15. format(str, sizeof(str), "A: Du wurdest zu einem Level %d Admin degradiert!", alevel);
    16. SendClientMessage(id, HELLROT, str);
    17. format(str, sizeof(str), "A: Du hast den Spieler %s zum Admin mit dem Level %d degradiert!", Sname2, alevel);
    18. SendClientMessage(playerid, HELLROT, str);
    19. }
    20. else if(dini_Int(Spieler2, "Adminlevel") < alevel)
    21. {
    22. dini_IntSet(Spieler2, "Adminlevel", alevel);
    23. format(str, sizeof(str), "A: Du wurdest zu einem Level %d Admin befördert!", alevel);
    24. SendClientMessage(id, HELLROT, str);
    25. format(str, sizeof(str), "A: Du hast den Spieler %s zum Admin mit dem Level %d befördert!", Sname2, alevel);
    26. SendClientMessage(playerid, HELLROT, str);
    27. }
    28. else if(dini_Int(Spieler2, "Adminlevel") == alevel)
    29. {
    30. SendClientMessage(playerid, HELLROT, "Der Spieler hat bereits dieses Adminlevel.");
    31. }
    32. } else {
    33. return SendClientMessage(playerid, WEISS, "Du kannst diesen Befehl nicht Benutzen.");
    34. }
    35. return 1;
    36. }
    Alles anzeigen
    Oder du ersetzt bei dem anderen Code die | | durch && .