[ FRAGE ] Warum funktionieren diese beiden Befehle 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
  • Hallo liebe Community und Scripter,


    meine Frage an die "Kenner / Profis" unter euch, warum funktioniert mein /makeleader sowie der /invite Befehl nicht? Ich gebe InGame "/makeleader [ID] [frakID]" ein. Das funktioniert allerdings nicht, er zeigt zwar bei makeleader dem Admin an das jemand zum Leader ernannt wurde, aber es passiert ebend nichts auser diese ClientMessage's. Wo kann der Fehler liegen, wäre klasse wenn mir einer von euch die Befehle netterweise korrigieren würde bzw. neu machen würde so das es wieder funktioniert. Aber bitte den Fehler und die Fehlerzeile nennen, damit ich fürs nächste mal schlauer bin, danke!!

    Nochmal in kurzen Worten:

    /makeleader und der /invite Befehl funkt. nicht bis auf das beim /makeleader die ClientMessages erscheinen und beim /invite der Dialog mit den ClientMessages, aber es passiert weiter nichts. Der Spieler wird nicht Leader oder Member einer Fraktion. Auch nicht nach einem /restart!


    Meine Bitte:
    Bitte behebt den Fehler und fügt Fehler und Fehlerzeile bei, damit ich sehe was falsch war!


    ||| /invite Befehl
    |||
    ocmd:invite(playerid,params[])
    {
    new text[128],pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pName,sizeof(pName));
    if(isPlayerInFrakt(playerid,0))
    {
    SendClientMessage(playerid,ROT,"Du gehörst keiner Fraktion an.");
    return 1;
    }
    if(sscanf(params, "s", text))return SendClientMessage(playerid, BLAU, "/invite [Spieler/ID]");
    if(GetPVarInt(playerid,"Leader") == 1 || GetPVarInt(playerid,"Leader") == 2 || GetPVarInt(playerid,"Leader") == 3)
    {
    new pID,string[280];
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,BLAU,"Benutze: /invite [Spieler/ID]");
    format(string,sizeof(string),"Du wurdest von Leader %s in die Fraktion eingeladen",SpielerName(playerid));
    SendClientMessage(pID,GELB,string);
    format(string,sizeof(string),"Du hast %s in deine Fraktion eingeladen",SpielerName(pID));
    SendClientMessage(playerid,BLAU,string);
    ShowPlayerDialog(pID,DIALOG_MAFIAINVITE,DIALOG_STYLE_MSGBOX,"Invite","Du wurdest in eine Fraktion eingeladen.\nUm beizutreten drücke *Beitreten* wenn nicht *Abbrechen*","Beitreten","Abbrechen");
    SpielerSpeichern(pID);
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du bist kein Leader!");
    }
    return 1;
    }


    ||| /invite Dialog |||
    if(dialogid==DIALOG_MAFIAINVITE)
    {
    if(response==0)
    {
    SendClientMessage(playerid,ROT,"Einladung abgelehnt!");
    return 1;
    }
    if(response==1)
    {
    new Fraktion;
    SendClientMessage(playerid, GRÜN,"Einladung eingenommen!");
    SetPVarInt(playerid,"Fraktion");
    SetPVarInt(playerid,"Rang",1);
    SetPVarInt(playerid,"invite",1);
    SetPlayerSkin(playerid, 124);
    SpielerSpeichern(playerid);
    return 1;
    }
    }


    ||| /makeleader Befehl |||
    ocmd:makeleader(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Deine Administrationsrechte sind zu niedrig!");
    new pID,fID;
    if(sscanf(params,"ui",pID,fID))return SendClientMessage(playerid,BLAU,"/makeleader [playerid] [fraktionsid]");
    SetPVarInt(pID,"Leader",fID);
    SendClientMessage(playerid,BLAU,"Spieler wurde erfolgreich zum Leader einer Fraktion gemacht.");
    SpielerSpeichern(pID);
    return 1;
    }


    Hinweis:
    Es treten keine Warnings oder Errors auf, der Compiler gibt sein "OK" aufs ganze Script. Also ist es eine falsch gestellte Funktion, oder eine garnicht vorhandene Funktion die den Fehler verursacht.


    Tipp:
    Benötigt ihr weitere Zeilen, Hinweise, Bemerkungen etc. ? KEIN Problem, fragt ich stehe euch vollkommen zur Verfügung!


    ..ich finde den Fehler seit Tagen nicht!


    Liebe Grüße

    Illuminatus

  • SetPVarInt(playerid,"Fraktion");


    Es wird nichts gesetzt bei der Annahme der Einladung.
    Du müsstest also eine Variable für den Spieler erstellen, die beim /invite auf die FraktionsID gesetzt wird und dem Spieler dementsprechend im Falle einer Annahme der Einladung zuweisen.


    Grüße,
    tonyalva