Makeleader geht nicht

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,


    ich bin gerade dabei ein Fraktionssystem zu scripten.
    Ich hab den Befehl hier aber er wird nicht ausgeführt, sobald alles korrekt ist, wie Adminrang, Schreibweiße etc, wird nicht das ausgeführt was eigentlich ausgeführt werden sollte:



    Aber wieso? :S


    Schonmal danke im Vorraus.


    - Tomsen

  • if(frakid<0 || frakid>1)

    Ich würde empfehlen es so zu machen:
    if(frakid == 0 || frakid >=1)


    if(frakid gleich 0 oder frakid größer oder gleich 1)


    //edit: Quatsch, tut mir leid.
    Ich muss mich wohl hinlegen, das was du dort hast ist bereits richtig. :/


    Sag uns am besten, ab welcher Zeile ungefähr oder nachdem du was eingegeben hast nichts mehr kommt/erscheint/passiert.

  • Schreibe das mal so:


    ocmd:makeleader(playerid,params[])
    {
    new pID,frakid;
    if(!IsPlayerAnAdmin(playerid,2000)) return SendClientMessage(playerid,rot,"[Fehler]: Du hast nicht das nötige Adminlevel!");
    if(sscanf(params,"ui",pID,frakid)) return SendClientMessage(playerid,rot,"Benutze: /makeleader [ID/Name] [Fraktionsid] {FFFF00} /frakids");
    if(frakid<0 || frakid>1) return SendClientMessage(playerid,rot,"[Fehler]: Fraktionsid kann nicht niedriger als 0 und nicht höher als 1 sein!");
    if(frakid==0) //Zivilisten
    {
    SpielerInfo[pID][pFraktion] = 0;
    SpielerInfo[pID][pFRang] = 0;
    SpielerInfo[pID][pLeader] = 0;
    new playerst[128];
    format(playerst,sizeof(playerst),"[Server]: Du hast den Spieler %s [ID:%d] aus seiner Fraktion geschmissen!",SpielerName(pID),pID);
    SendClientMessage(playerid,rot,playerst);
    format(playerst,sizeof(playerst),"[Server]: Du wurdest von Admin %s aus deiner Fraktion geschmissen!",SpielerName(playerid));
    SendClientMessage(pID,rot,playerst);
    }
    else if(frakid==1) //Ordnungsamt
    {
    SpielerInfo[pID][pFraktion] = 1;
    SpielerInfo[pID][pFRang] = 6;
    SpielerInfo[pID][pFRang] = 1;
    new playerst[128];
    format(playerst,sizeof(playerst),"[Server]: Du hast den Spieler %s [ID:%d] zum Leader der Fraktion Ordnungsamt ernannt!",SpielerName(pID),pID);
    SendClientMessage(playerid,rot,playerst);
    format(playerst,sizeof(playerst),"[Server]: Du wurdest von Admin %s zum Leader des Ordnungsamtes ernannt!",SpielerName(playerid));
    SendClientMessage(pID,rot,playerst);
    }
    return 1;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • Bringt auch nichts.


    Wenn ich als Frakid 0 oder 1 eingebe passiert garnichts, obwohl es ja dann Zivilist oder Ordnungsamt setzen sollte.
    Wenn ich eine falsch Zahl eingebe oder den Command nicht vollständig abschicke kommen die Errors. Das muss irgentwo was mit Frakid zu tun haben, aber ich finde den Fehler nicht. :S


    - Tomsen


    //Edit:
    Kaliber: Danke ich versuche es


    //Edit 2: Ich hab nicht ernsthaft vergessen die Message abzuschicken oder? :sleeping:
    Meine Güte ich war wohl zu müde gestern xD
    Jetzt funktioniert es. Danke.


    //Edit3:


    Hab noch eine Frage. Hab eine Funktion gemacht die Abfragt ob man in der Frak ist. Hab diese dann auf eine Schranke angewendet, aber man kann sie immer öffnen. wieso?


    Code
    stock IsPlayerInFrak(playerid,frakid)
    {
    	if(mysql_GetInt("accounts","Fraktion","Name",SpielerInfo[playerid][pName])== frakid)return 1;
    	return 0;
    }



    Dann noch eine andere Sache, die Schranke fährt nicht langsam auf, sondern ich hab es nur so hinbekommen das es Ruckartig geht. Also man gibt den Command ein und die ist oben.
    Wie kann man das ändern?


    - Tomsen



    4 Mal editiert, zuletzt von Tomsen ()