/accept invite /uninvite Befehl Error

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
  • Nabend Breadfishler,


    Ich bin es mal wieder mit einem "kleinen" Problem, und zwar bin ich dabei den /accept invite und /uninvite Befehl zu machen die sehen zurzeit so aus:


    ocmd:invite(playerid,params[])
    {
    if(IstSpielerInFraktion(playerid, 0))return SendClientMessage(playerid,ROT,"Du bist in keiner Fraktion!");
    if(sSpieler[playerid][Rang] = 12)return SendClientMessage(playerid,ROT,"Du bist nicht der Leader dieser Fraktion!"); //3233
    new pID, fID;
    fID = sSpieler[playerid][Fraktion];
    if(sscanf(params, "u", pID))return SendClientMessage(playerid,GELB,"Tippe: /invite [ID]");
    if(!IstSpielerInFraktion(pID, 0))return SendClientMessage(playerid,ROT,"Spieler ist bereits in einer Fraktion!");
    new string[128];
    format(string,sizeof(string), "%s hat dich in die Fraktion %s eingeladen.", SpielerName(playerid), fInfo[fID][f_name]);
    SendClientMessage(pID,GELB,string);
    SendClientMessage(pID,GELB,"Wenn du der Fraktion beitreten willst benutze /accept invite");
    SetPVarInt(pID, "inv_fraktid", fID);
    SetPVarInt(pID, "inv_inviter", playerid);
    return 1;
    }


    ocmd:uninvite(playerid,params[])
    {
    if(IstSpielerInFraktion(playerid, 0))return SendClientMessage(playerid,ROT,"Du bist in keiner Fraktion!");
    if(sSpieler[playerid][Rang] = 12)return SendClientMessage(playerid,ROT,"Du bist nicht der Leader dieser Fraktion!"); //3250
    new pID;
    if(sscanf(params, "u", pID))return SendClientMessage(playerid,GELB,"Tippe: /uninvite [ID]");
    if(!IstSpielerInFraktion(pID, sSpieler[playerid][Fraktion]))return SendClientMessage(playerid,ROT,"Spieler ist nicht in dieser Fraktion!");
    new string[128];
    format(string,sizeof(string),"Du wurdest von %s aus der Fraktion geworfen!",SpielerName(playerid));
    SendClientMessage(pID, ROT, string);
    format(string,sizeof(string),"Du hast %s aus der Fraktion geworfen!",SpielerName(pID));
    SendClientMessage(playerid,GELB,string);
    return 1;
    }


    ocmd:accept(playerid, params[])
    {
    new item[64];
    if(sscanf(params,"s[64]",item))return SendClientMessage(playerid,GELB, "INFO: /accept [invite]");
    if(!strcmp(item, "invite", false))
    {
    if(GetPVarInt(playerid, "inv_fraktid") == 0)return SendClientMessage(playerid,ROT,"Du wurdest in keine Fraktion eingeladen!");
    new fID = GetPVarInt(playerid, "inv_fraktid");
    sSpieler[playerid][Fraktion] = fID;
    sSpieler[playerid][Rang] = 1;
    new string[128];
    format(string,sizeof(string), "Du bist der Fraktion %s beigetreten.",fInfo[fID][f_name]);
    SendClientMessage(playerid, GELB, string);
    format(string,sizeof(string), "%s ist der Fraktion beigetreten.",SpielerName(playerid));
    SendClientMessage(GetPVarInt(playerid, "inv_inviter"), string); //3276
    }
    return 1;
    }


    Ich habe schon mehrere Sachen ausprobiert aber da ich keine Ahnung mehr habe was ich machen soll frage ich nun einfach :D hier sind die Errors:


    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3233) : warning 211: possibly unintended assignment
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3250) : warning 211: possibly unintended assignment
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3276) : error 035: argument type mismatch (argument 2)



    Vielen Dank im Vorraus! ^^^^

  • hey
    1Warning:
    du hast nen zeichen vergesssen 1 = reicht nicht entweder ==12 oder <= oder >= oder != duw eisst schon :)
    if(sSpieler[playerid][Rang] = 12)return SendClientMessage(playerid,ROT,"Du bist nicht der Leader dieser Fraktion!"); //3233
    zu(falls 12 höster rank ist)
    if(sSpieler[playerid][Rang] < 12)return SendClientMessage(playerid,ROT,"Du bist nicht der Leader dieser Fraktion!"); //3233


    2 Warning:
    genau das gleiche ;D


    1 Error:
    SendClientMessage(GetPVarInt(playerid, "inv_inviter"), string);
    da fehlt eine farbe XD
    SendClientMessage(GetPVarInt(playerid, "inv_inviter"),ROT, string);
    z.b ;D
    mfg Mogly1

  • @Mogly1



    Erstmal vielen dank für die Antwort aber wenn ich in dieser Zeile ein Warning:
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3250) : warning 211: possibly unintended assignment


    mit diesem code:
    if(sSpieler[playerid][Rang] = 12)return SendClientMessage(playerid,ROT,"Du bist nicht der Leader dieser Fraktion!"); //3250


    wenn ich es so mache:
    if(sSpieler[playerid][Rang] < 12)return SendClientMessage(playerid,ROT,"Du bist nicht der Leader dieser Fraktion!"); //3250


    bekomme ich das:


    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3250) : warning 211: possibly unintended assignment
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3250) : error 029: invalid expression, assumed zero
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3250) : warning 215: expression has no effect
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3250) : error 001: expected token: ";", but found ")"
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3250) : error 029: invalid expression, assumed zero
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3250) : fatal error 107: too many error messages on one line


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



    4 Errors.


    /edit habs Selbst gemerkt -.- :D:


    if(sSpieler[playerid][Rang] == 12)return SendClientMessage(playerid,ROT,"Du bist nicht der Leader dieser Fraktion!"); //3250
    zu:
    if(sSpieler[playerid][Rang] == 12)return SendClientMessage(playerid,ROT,"Du bist nicht der Leader dieser Fraktion!"); //3250

  • Hey mein accept Befehl sieht mittlerweile so aus:


    if(strcmp(cmd, "/accept", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    new x_nr[256],string[128];
    x_nr = strtok(cmdtext, idx);
    if(!strlen(x_nr)) {
    SendClientMessage(playerid, HELLBLAU, "_____________________________");
    SendClientMessage(playerid, ROT, "FEHLER: /accept [Accept-Name]");
    SendClientMessage(playerid, GRAU, "** Accept-Namen **: invite");
    return 1;
    }
    if(strcmp(x_nr,"invite",true) == 0)
    {
    if(GetPVarInt(playerid, "inv_fraktid") == 0)return SendClientMessage(playerid,ROT,"Du wurdest in keine Fraktion eingeladen!");
    new fID = GetPVarInt(playerid, "inv_fraktid");
    sSpieler[playerid][Fraktion] = fID;
    sSpieler[playerid][Rang] = 1;
    format(string,sizeof(string), "Du bist der Fraktion %s beigetreten.",fInfo[fID][f_name]);
    SendClientMessage(playerid, GELB, string);
    format(string,sizeof(string), "%s ist der Fraktion beigetreten.",SpielerName(playerid));
    SendClientMessage(GetPVarInt(playerid, "inv_inviter"),ROT, string); //3276
    }
    }
    return 1;
    }



    aber wenn ich eine Person einlade kann er immer wieder joinen und somit den Chat der playerid der den Befehl genutzt hat vollspammen wie kann ich das Beheben?

  • wenn er der Fraktion erfolgreich beigetreten ist, musst du das Pvar "inv_fraktid" für den spieler mit setpvarint auf 0 setzten




    //bin am handy

    Mit freundlichen Grüßen,


    Keslo