Adminsystem funkioniert nicht richtig

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!

  • Adminsystem funkioniert nicht richtig

    Ich habe das Login/Register system von Jeffry benutzt


    und wollte ein Adminsystem rein machen mit 4 Rängen
    aber ich habe es versucht und jedes mal wenn ich mich einlogge speichert es nicht d.h.(Login-> /makeadmin 0 4 -> Befehl mit Adminrechte) und das wiederholt sich also es speichert sich nicht in der Datenbank ab



    Quellcode

    1. enum pData
    2. {
    3. p_id,
    4. bool:pLoggedIn,
    5. pName[MAX_PLAYER_NAME],
    6. pLevel,
    7. pMoney,
    8. pKills,
    9. pDeaths,
    10. pAdmin
    11. }
    12. PlayerInfo[playerid][p_id] = 0;
    13. PlayerInfo[playerid][pLoggedIn] = false;
    14. PlayerInfo[playerid][pLevel] = 0;
    15. PlayerInfo[playerid][pMoney] = 0;
    16. PlayerInfo[playerid][pKills] = 0;
    17. PlayerInfo[playerid][pDeaths] = 0;
    18. PlayerInfo[playerid][pAdmin] = 0;
    19. GetPlayerName(playerid,PlayerInfo[playerid][pName],MAX_PLAYER_NAME);
    20. cache_get_value_name_int(0,"id",PlayerInfo[playerid][p_id]);
    21. cache_get_value_name_int(0,"level",PlayerInfo[playerid][pLevel]);
    22. cache_get_value_name_int(0,"money",PlayerInfo[playerid][pMoney]);
    23. cache_get_value_name_int(0,"kills",PlayerInfo[playerid][pKills]);
    24. cache_get_value_name_int(0,"deaths",PlayerInfo[playerid][pDeaths]);
    25. cache_get_value_name_int(0,"arang",PlayerInfo[playerid][pAdmin]);
    26. SendClientMessage(playerid,Green,"[Konto] Erfolgreich Eingeloggt.");
    27. GivePlayerMoney(playerid,PlayerInfo[playerid][pMoney]);
    28. mysql_format(dbhandle,query,sizeof(query),"UPDATE user SET level = '%d', money = '%d',kills = '%d', deaths ='%d', arang = '%d', WHERE id = '%d'",PlayerInfo[playerid][pLevel],PlayerInfo[playerid][pMoney],PlayerInfo[playerid][pKills],PlayerInfo[playerid][pDeaths],PlayerInfo[playerid][pAdmin],PlayerInfo[playerid][p_id]);
    29. isAdmin(playerid,arang)
    30. {
    31. if(PlayerInfo[playerid][pAdmin]>=arang)return 1;
    32. return 0;
    33. }
    34. ocmd:restart(playerid,params[])
    35. {
    36. if(!isAdmin(playerid,3))return SendClientMessage(playerid,Rot,"Du hast nicht die benötigten rechte dazu");
    37. SendRconCommand("gmx");
    38. return 1;
    39. }
    Alles anzeigen
    Villeicht kann mir jemand von euch ein Aktuelles Adminsystem schicken
  • Ich bin mir nicht ganz sicher aber schau mal wenn du das Komma vor dem WHERE weg nimmst ob es dann geht?

    Also das,

    PAWN-Quellcode

    1. UPDATE user SET level = '%d', money = '%d',kills = '%d', deaths ='%d', arang = '%d', WHERE id = '%d

    zu dem

    PAWN-Quellcode

    1. UPDATE user SET level = '%d', money = '%d',kills = '%d', deaths ='%d', arang = '%d' WHERE id = '%d
    MFG. Mogly1

    Du willst scripten Lernen hier...

    (Grundwissen)TuTorial
    (RP-Server)TuTorial

    (vom Register und Login bis zum eigenen Multichar-system)
  • so ist mein /makeadmin befehl

    Quellcode

    1. ocmd:makeadmin(playerid,params[])
    2. {
    3. //Befehl
    4. new pID,arang;
    5. if(sscanf(params,"ui",pID,arang))return SendClientMessage(playerid,Rot,"Benutze: /makeadmin [playerid] [Rank 0-4]");
    6. PlayerInfo[pID][pAdmin]=arang;
    7. SaveUserStats(pID);
    8. //Nachrichten
    9. new nachricht[128],info[128],name[MAX_PLAYER_NAME];
    10. GetPlayerName(playerid,name,sizeof(name));
    11. format(nachricht,sizeof(nachricht),"Dein Adminrank wurde von %s auf %d gändert",name,arang);
    12. format(info,sizeof(info),"Du hast %s den Adminrank %d gegeben",name,arang);
    13. SendClientMessage(pID,Rot,nachricht);
    14. SendClientMessage(playerid,Rot,info);
    15. return 1;
    16. }
    Alles anzeigen
  • ich habe das problem immer noch mit /restart es speichert sich nicht wenn ich /restart mache steht da du hast keine Rechte und ich muss mir den Adminrang erneut setzen


    Quellcode

    1. ocmd:restart(playerid,params[])
    2. {
    3. if(!isAdmin(playerid,3))return SendClientMessage(playerid,Rot,"Du hast nicht die benötigten rechte dazu");
    4. SendRconCommand("gmx");
    5. return 1;
    6. }
  • Jeffry schrieb:

    Poste bitte was der MySQL Log ausgibt, wenn du den makeadmin Befehl eingibst.
    Das Problem ist ich bekomme keine MySQL log

    iTsRooT schrieb:

    zeig mal deine makeadmin funktion und deine speicher + laden funktion
    hier

    Quellcode

    1. stock SaveUserStats(playerid)
    2. {
    3. //Speichert nicht
    4. if(!PlayerInfo[playerid][pLoggedIn])return 1;
    5. //Speicherung
    6. new query[128];
    7. mysql_format(dbhandle,query,sizeof(query),"UPDATE user SET level = '%d', money = '%d',kills = '%d', deaths ='%d', arang = '%d' WHERE id = '%d'",PlayerInfo[playerid][pLevel],PlayerInfo[playerid][pMoney],PlayerInfo[playerid][pKills],PlayerInfo[playerid][pDeaths],PlayerInfo[playerid][pAdmin],PlayerInfo[playerid][p_id]);
    8. return 1;
    9. }
    10. isAdmin(playerid,arang)
    11. {
    12. if(PlayerInfo[playerid][pAdmin]>=arang)return 1;
    13. return 0;
    14. }
    15. //makeadmin
    16. ocmd:makeadmin(playerid,params[])
    17. {
    18. //Befehl
    19. new pID,arang;
    20. if(sscanf(params,"ui",pID,arang))return SendClientMessage(playerid,Rot,"Benutze: /makeadmin [playerid] [Rank 0-4]");
    21. PlayerInfo[pID][pAdmin]=arang;
    22. SaveUserStats(pID);
    23. //Nachrichten
    24. new nachricht[128],info[128],name[MAX_PLAYER_NAME];
    25. GetPlayerName(playerid,name,sizeof(name));
    26. format(nachricht,sizeof(nachricht),"Dein Adminrank wurde von %s auf %d gändert",name,arang);
    27. format(info,sizeof(info),"Du hast %s den Adminrank %d gegeben",name,arang);
    28. SendClientMessage(pID,Rot,nachricht);
    29. SendClientMessage(playerid,Rot,info);
    30. return 1;
    31. }
    32. //Restart
    33. ocmd:restart(playerid,params[])
    34. {
    35. if(!isAdmin(playerid,3))return SendClientMessage(playerid,Rot,"Du hast nicht die benötigten rechte dazu");
    36. SendRconCommand("gmx");
    37. return 1;
    38. }
    Alles anzeigen

  • Coolnasio schrieb:

    Es wäre schön wenn ihr mir ein Beispiel geben könnt
    nach

    PAWN-Quellcode

    1. mysql_format(dbhandle,query,sizeof(query),"UPDATE user SET level = '%d', money = '%d',kills = '%d', deaths ='%d', arang = '%d' WHERE id = '%d'",PlayerInfo[playerid][pLevel],PlayerInfo[playerid][pMoney],PlayerInfo[playerid][pKills],PlayerInfo[playerid][pDeaths],PlayerInfo[playerid][pAdmin],PlayerInfo[playerid][p_id]);

    das hier

    PAWN-Quellcode

    1. mysql_pquery(dbhandle, query);
  • Jeffry schrieb:

    Du findest beides übrigens auch im Tutorial:
    [jTuT] MySQL R41-4 (Installation, XAMPP, Verwendung, Bedienung & Registrations-System)

    Ich habe dich mehrfach darauf aufmerksam gemacht, dass du es sauber durcharbeiten sollst.
    ich habe es mir durch gelesen beim Ersten also bei mysql_pquery habe ich übersehen




    mysql_log(LOG_ERROR | LOG_WARNING); da komm ein Error
    dann mache ich
    new LOG_ERROR,LOG_WARNING;
    und es kommt ein Warning

    Quellcode

    1. new LOG_ERROR,LOG_WARNING;
    2. MySQL_SetupConnection();
    3. mysql_log(LOG_ERROR | LOG_WARNING);