Level-System

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
  • Hi,
    ich will gerne ein Admin Level System für meinen Script erstellen.
    Es soll 10 Level geben.
    z.b der CMD /flip ist erst ab Level 1 oder /gmx erst ab Level 4 usw...


    Wie kann ich sowas mache?


    Ich habe sowas mal in einem Adminscript gesehen irgendwie mit p-admin oder p-level oder wie das heißt, aber ich weiß nicht so genau wie ich das in meine gamemode einfügen muss ?(


    Bitte um Hilfe!


    MfG ~Luka~ :D

  • strek, strok und sscanf sind verschiedene cmd arten. sscanf ist jetzt leichter, künzer und einfacher zu verstehen als strok für mich zumindest


    PS: Du brauchst net immer n betreff schreiben ;)


    MY SELFMADE GAMEMODE "NoName"

    Spoiler anzeigen


    - AccountSystem: 100%
    - LizenzenSystem: 5%
    - TelefonSystem: 5%
    - JobSystem: 3%
    - GeldSystem: 80%
    - AutoSystem: 75%
    - FahndungsSystem: [color=#ff6600]10%
    [color=#000000]- HausSystem: [color=#ff0000]0%

    [color=#000000]- GeschäftsSystem: [color=#ff0000]0%

    [color=#000000]- ZahlTag System: [color=#ff0000]0%

    [color=#000000]- WetterSystem: [color=#ff0000]0%

    [color=#000000]- AntiCheatSystem: [color=#ff0000]0%

    Spoiler anzeigen
    GameModeName: [GM]MyGamemode
    Filterscripts: None
    Benutze Includes: [Inc]MyInclude
    Voraussichtliche Fertigstellung: Unbekannt
    Voraussichtliche Servereröffnung: Unbekannt
    Voraussichtliche Veröffentlichung des Scripts: Wahrscheinlich NIE
    Voraussichtliche Veröffentlichung des Scripts: Wahrscheinlich NIE
    Sonstige Anmerkungen: Selfmade

  • Ok, dann darfst du diesen cmd auch nicht umbenennen, esseidern, dass du die cmd zahl auch änderst
    if(strcmp(cmdtext,"/level",true,6)==0) {
    if(strlen(cmdtext[7])) {
    new typ=strval(cmdtext[7]);
    if(IsPlayerConnected(typ)) {
    new ding=0;
    if(typ>=100) { ding=4; }
    else if(typ>=10) { ding=3; }
    else if(typ>=0) { ding=2; }
    if(strlen(cmdtext[7+ding])) {
    new level=strval(cmdtext[7+ding]);
    if(level>=0 && level<=10) {
    admlevel[typ]=level; }}}}
    return 1;
    }
    Mir ist auch schon aufgefallen, dass das mit dem cmdtext[...] jetzt ne doofe Idee war, desshalb nochmal mit strget :)
    Hier kannst du auch bedenkenlos den cmdnamen ändern^^
    if(!strcmp(strget(cmdtext,0),"/level")) {
    if(strlen(strget(cmdtext,1))) {
    new typ=strval(strget(cmdtext,1));
    if(IsPlayerConnected(typ)) {
    if(strlen(strget(cmdtext,2))) {
    new level=strval(strget(cmdtext,2));
    if(level>=0 && level<=10) {
    admlevel[typ]=level; }}}}
    return 1;
    }
    strget: (die strtok Alternative) http://wiki.sa-mp.de/Strtok

  • Hi,
    ich verstehe jetzt nichts mehr^^
    Also, ich will einfach für Rcon-Admins diesen Command machen: /setlevel [playerid] [Level 1-10]
    Wenn ich mir als Rcon Level 1 gebe soll ich alle Level 1 Commands können, aber ich weiß net wie ich ds amchen kann irgendwie mit pLevel oder pAdmin?
    Kann mir bitte jemand ein Beispiel amchen ich wäre euch sehr dankbar!


    MfG ~Luka~ :thumbup:

  • if(!strcmp(strget(cmdtext,0),"/level")) {
    if(IsPlayerAdmin(playerid) || admlevel[playerid]>=10) {
    if(strlen(strget(cmdtext,1))) {
    new typ=strval(strget(cmdtext,1));
    if(IsPlayerConnected(typ)) {
    if(strlen(strget(cmdtext,2))) {
    new level=strval(strget(cmdtext,2));
    if(level>=0 && level<=10) {
    admlevel[typ]=level; }}}}}
    return 1;
    }
    if(!strcmp(strget(cmdtext,0),"/kick")) {
    if(admlevel[playerid]>=2) {//wenn sein admlevel höher gleich 2 ist
    if(strlen(strget(cmdtext,1))) {
    new typ=strval(strget(cmdtxt,1));
    if(IsPlayerConnected(typ)) {
    new s[100];
    format(s,sizeof(s),"bla wurde von bla gekickt, Grund: bla",bla);
    SendClientMessageToAll(FARBE,s);
    Kick(typ); }}}
    return 1;
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • und bei jedem cmd muss dann
    if(admlevel[playerid]>=2) {//wenn sein admlevel höher gleich 2 ist
    if(strlen(strget(cmdtext,1))) {
    new typ=strval(strget(cmdtxt,1));
    if(IsPlayerConnected(typ)) {
    new s[100];


    das stehen?

  • Hi,
    und wie kann ich machen das wenn man reconncetet das Level behält?


    MfG ~Luka~


    edit: und wie kann ich noch amchen wenn ich einem ein Level gebe z.b Level 1 das ne meldung komtm du hast von Admin [hier sol lder admin stehe] level [hier soll das level stehen was er bekommt] erhalten.
    :thumbup:

    Einmal editiert, zuletzt von Markus ()

  • OnPlayerDisconnect:
    new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,sizeof(name));
    dini_IntSet("admlvlz.ini",name,admlevel[playerid]);
    OnPlayerConnect:
    new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,sizeof(name));
    admlevel[playerid]=dini_Int("admlvlz.ini",name);
    ganz nach oben:
    #include <dini>
    OnGameModeInit:
    if(!dini_Exists("admlvlz.ini")) { dini_Create("admlvlz.ini"); }

  • OnPlayerConnect:


    new name[128],datei[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(datei,sizeof(datei),"%s.score",name);
    if(dini_Exists(datei))
    {
    SetPlayerScore(playerid,dini_Int(datei,"score"));
    }


    OnPlayerDisconnect


    new name[128],datei[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(datei,sizeof(datei),"%s.score",name);
    if(!dini_Exists(datei)){dini_Create(datei);}
    dini_IntSet(datei,"score",GetPlayerScore(playerid));


    // Edit


    Die Methode von Keks is besser aber vllt lernste ja was dazu ^^

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Hi ich habe 4 Errors:



    pwn(2737) : error 047: array sizes do not match, or destination array is too small
    pwn(3046) : error 021: symbol already defined: "strtok"
    pwn(3061) : error 047: array sizes do not match, or destination array is too small
    pwn(3427) : error 047: array sizes do not match, or destination array is too small


    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.



    MfG

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen