Frage an die Profi´s :D

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
  • Guten Tag liebe Community,


    ich habe mir ein /invite und /uninvite befehl erstellt, aber es funktuniert i-wie nicht ganz. also als ich noch nicht den befehl /uninvite erstelt hatte, hat der Befehl /invite fehlerlos geklappt, aber nachdem /uninvite Befehl ist es komischerweise durcheinander -.- verstehe auch nicht wie ... finde keine Fehler im Script ...


    Naja vielleicht findet ihr welche. Viel Glück :D


    ocmd:uninvite(playerid, params[])
    {
    if(GetPVarInt(playerid, "Rank") == 5 || GetPVarInt(playerid, "Rank") == 6)
    {
    new string[128], pID, grund;
    new frak = GetPVarInt(playerid, "Fraktion");
    if(sscanf(params,"us", pID, grund))return SendClientMessage(playerid, GRAU, "FEHLER: /uninvite [ID] [Grund]");
    if(GetPVarInt(pID, "Fraktion") == frak)
    {
    SetPVarInt(pID, "Fraktion", 0);
    SetPVarInt(pID, "Rank", 0);
    SetPVarInt(pID, "Skin", 26);
    SetPlayerSkin(pID, 26);
    format(string, sizeof(string), "Du wurdest von %s aus der %s gekickt! Grund: %s.", SpielerName(playerid), frak, grund);
    SendClientMessage(pID, HHBLAU, string);
    }
    else
    {
    SendClientMessage(playerid, GRAU, "Der Spieler ist nicht in deine Fraktion!");
    }
    }
    else
    {
    SendClientMessage(playerid, GRAU, "Du bist dafür nicht befugt!");
    }
    return 1;
    }
    ocmd:invite(playerid, params[])
    {
    if(GetPVarInt(playerid, "Rank") == 5 || GetPVarInt(playerid, "Rank") == 6)
    {
    new pID, string[128], einleitung[128];
    if(sscanf(params,"u", pID))return SendClientMessage(playerid, GRAU, "FEHLER: /invite [ID]");
    if(GetPVarInt(pID, "Fraktion") == 0)
    {
    format(string, sizeof(string), "Die %s hat dir eine Einladung in die Fraktion geschickt.", GetPlayerFrakName(playerid));
    format(einleitung, sizeof(einleitung), "Einladung in die %s.", GetPlayerFrakName(playerid));
    ShowPlayerDialog(pID, DIALOG_INVITE, DIALOG_STYLE_MSGBOX, einleitung, string, "Annehmen","Ablehnen");
    format(string, sizeof(string), "Du hast an %s eine Einladung in die %s geschickt.", SpielerName(pID), GetPlayerFrakName(playerid));
    SendClientMessage(playerid, HHBLAU, string);
    SendClientMessage(playerid, GRAU, "Er muss nur noch die Einladung annehmen.");
    }
    else
    {
    SendClientMessage(playerid, GRAU, "Dieser Spieler ist bereits in eine Fraktion!");
    }
    }
    else
    {
    SendClientMessage(playerid, GRAU, "Du bist dafür nicht befugt!");
    }
    return 1;
    }



    und der Dialog bei OnDialogResponse:


    if(dialogid==DIALOG_INVITE)
    {
    if(response==1)
    {
    new pID = Einlader[playerid];
    new frak = GetPVarInt(pID, "Fraktion");
    SetPVarInt(playerid, "Fraktion", frak);
    SetPVarInt(playerid, "Rank", 0);
    SendClientMessage(playerid, HROT, "Herzlichen Glückwunsch zu deine Neue Fraktion!");
    SendClientMessage(playerid, ORANGE, "Unter /help kannst du deine Fraktionsbefehle sehen.");
    SendClientMessage(playerid, ORANGE, "Und du kannst auch mit /f an deine Fraktionsmitglieder fragen.");
    }
    else
    {
    new string[128];
    new pID = Einlader[playerid];
    SendClientMessage(playerid, ROT, "Naja, ich hoffe du hast die Richtige wahl getroffen.");
    format(string, sizeof(string), "%s hat die Einladung abgelehnt!", SpielerName(playerid));
    SendClientMessage(pID, GRAU, string);
    }
    }



    Ich hoffe ihr findet ein Fehler und könnt mir helfen : )


    Danke im Vorraus.


    Mit Freundlichen Grüßen


    40Polat_Alemdar40

  • if(GetPVarInt(playerid, "Fraktion") == frak)
    ist falsch, hat aber glaube ich nix mit deinen Problemen zu tun, es muss aber so heißen:
    if(GetPVarInt(pID, "Fraktion") == frak)


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • habe ich schon ... wenn der Uninvite befehl entfernt wird, funktuniert der invite befehl aber wenn der Uninvite befehl da ist dann funktunieren die beiden nicht mehr



    und ja ich weiß dass es verboten ist aber ansonsten wird niemand antworten

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • if(GetPVarInt(playerid, "Fraktion") == frak)
    ist falsch, hat aber glaube ich nix mit deinen Problemen zu tun, es muss aber so heißen:
    if(GetPVarInt(pID, "Fraktion") == frak)


    mfg. :thumbup:


    wo bitte keine Antwort?
    Ich seh hier eine


    //e


    und das hier
    new pID = Einlader[playerid];
    wo setzt du bitte beim invite den Spieler den wert?

    All in all it's just another brick in the wall

  • format(string, sizeof(string), "Du wurdest von %s aus der %s gekickt! Grund: %s.", SpielerName(playerid), frak, grund);

    "new frak" = kein String. Wieso dann %s? Außerdem würde da z.B. stehen: Du wurdest von XYZ aus der 1 gekickt! Grund: Teamkill (oder so ähnlich)



    Du musst den Fraktionsnamen erst ermitteln, mit der Fraktions ID wäre es schon bisschen bescheuert? o0

  • Versuch mal:

    ocmd:uninvite(playerid, params[])
    {
    if(GetPVarInt(playerid, "Rank") == 5 || GetPVarInt(playerid, "Rank") == 6)
    {
    new string[128], pID, grund[64];//<-- Der Grund muss in einem String angegeben werden
    new frak = GetPVarInt(playerid, "Fraktion");
    if(sscanf(params,"us", pID, grund))return SendClientMessage(playerid, GRAU, "FEHLER: /uninvite [ID] [Grund]");
    if(GetPVarInt(pID, "Fraktion") == frak)
    {
    SetPVarInt(pID, "Fraktion", 0);
    SetPVarInt(pID, "Rank", 0);
    SetPVarInt(pID, "Skin", 26);
    SetPlayerSkin(pID, 26);
    format(string, sizeof(string), "Du wurdest von %s aus der %s gekickt! Grund: %s.", SpielerName(playerid), frak, grund);
    SendClientMessage(pID, HHBLAU, string);
    }
    else
    {
    SendClientMessage(playerid, GRAU, "Der Spieler ist nicht in deine Fraktion!");
    }
    }
    else
    {
    SendClientMessage(playerid, GRAU, "Du bist dafür nicht befugt!");
    }
    return 1;
    }


    /e
    new frak = GetPVarInt(playerid, "Fraktion");
    Ich denke, dass du Fraktionen als Integer gespeichert hast (LSPD = 1 usw..).
    da bringt das auch nix.
    hast du oben irgendwo
    #define fraktname1 blablabla
    stehen?

  • Bitteschön :)



    stock GetPlayerFrakName(playerid)
    {
    new fraktname[128];
    if(GetPVarInt(playerid, "Fraktion"))
    {
    switch(GetPVarInt(playerid,"Fraktion"))
    {
    case 0:{fraktname="Zivilist";}
    case 1:{fraktname=LSPD;}
    case 2:{fraktname=SFPD;}
    case 3:{fraktname=FBI;}
    case 4:{fraktname=ARMY;}
    case 5:{fraktname=MEDIC;}
    case 6:{fraktname=CNN;}
    case 7:{fraktname=OAmt;}
    case 8:{fraktname=HITMAN;}
    case 9:{fraktname=PRAESI;}
    case 10:{fraktname=Fahrschule;}
    case 11:{fraktname=TDW;}
    case 12:{fraktname=Yaki;}
    case 13:{fraktname=Triaden;}
    case 14:{fraktname=GS;}
    case 15:{fraktname=Ballas;}
    case 16:{fraktname=Aztecas;}
    case 17:{fraktname=HellsAngels;}
    case 18:{fraktname=LCN;}
    case 19:{fraktname=Bandids;}
    case 20:{fraktname=Terros;}
    case 21:{fraktname=Taxi;}
    }
    }
    return fraktname;
    }


    also der stock sollte keine Fehler haben, dennn ich benutze es schon bei vielen dingen wie z.b bei /stats oder /showperso etc.

  • Dann machst du den Befehl so:

    ocmd:uninvite(playerid, params[])
    {
    if(GetPVarInt(playerid, "Rank") == 5 || GetPVarInt(playerid, "Rank") == 6)
    {
    new string[128], pID, grund[64];//<-- Der Grund muss in einem String angegeben werden
    new frak = GetPVarInt(playerid,"Fraktion");
    if(sscanf(params,"us", pID, grund))return SendClientMessage(playerid, GRAU, "FEHLER: /uninvite [ID] [Grund]");
    if(GetPVarInt(pID, "Fraktion") == frak)
    {
    SetPVarInt(pID, "Fraktion", 0);
    SetPVarInt(pID, "Rank", 0);
    SetPVarInt(pID, "Skin", 26);
    SetPlayerSkin(pID, 26);
    format(string, sizeof(string), "Du wurdest von %s aus der %s gekickt! Grund: %s.", SpielerName(playerid), GetPlayerFraktName(playerid)/*<-- da*/, grund);
    SendClientMessage(pID, HHBLAU, string);
    }
    else
    {
    SendClientMessage(playerid, GRAU, "Der Spieler ist nicht in deine Fraktion!");
    }
    }
    else
    {
    SendClientMessage(playerid, GRAU, "Du bist dafür nicht befugt!");
    }
    return 1;
    }


    /e Befehl abgeändert

  • So /uninvite befehl klappt, aber diesmal klappt nicht mehr der /invite befehl grund:


    ich habe


    new pID = Einlader[playerid];
    playerid = Einlader[pID];


    in /invite Befehl eingefügt. xD weil ich auch in DIALOG_INVITE:


    new pID = Einlader[playerid];


    hatte ... ^^

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