Problem Invite

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
  • Was will ich: Ich möchte den Spieler per DIALOG Inviten jedoch funktioniert es nicht.
    Was ist der Fehler: Bei dem Invite steht "Der Spieler ist bereits in einer Fraktion" was garnicht sein kann.


    Es ist kein klammerfehler vorhanden ist nur nicht immer alles kopiert nur das was es betrifft.



    Also habe es immer noch nicht gefunden er zeigt an das der Spieler in einer Fraktion ist obwohl es nicht stimmt.
    Hier gebe ich die ID ein :>



    Das passiert dann nach eingabe der ID :>



    Ist hier irgendwie falsch eingereiht. Aber spielt ja keine Rolle

    2 Mal editiert, zuletzt von Ferip. ()

  • Der Fehier muss in dem Befehl oder dem davor liegen.. komischerweise vielleicht wird die ID nicht ausgelesen ich weiß nicht

    https://breadfish.de/index.php…ostID=1961116#post1961116


    Printe doch mal deine Dialoge aus und schaue welche Frak ID du bist mit folgenden Print: "printf("Fraktion Spieler: %d",Spieler[playerid][pFraktion]);
    und setze das schon einmal bei den Befehl ein, wo der Invite überhaupt anfängt.

  • Also habe es immer noch nicht gefunden er zeigt an das der Spieler in einer Fraktion ist obwohl es nicht stimmt.
    Hier gebe ich die ID ein :>


    Das passiert dann nach eingabe der ID :>


    Ist hier irgendwie falsch eingereiht. Aber spielt ja keine Rolle

    Einmal editiert, zuletzt von Ferip. ()

  • Du musst den eingegebenen Name auslesen und die ID des Namens nutzen.
    case DIALOG_MEDICC:
    {
    if(response)
    {
    new string[145], pID = ReturnPlayerID(inputtext);
    if(!IsPlayerConnected(pID))
    {
    SendClientMessage(playerid, COLOR_GREY, "Dieser Spieler ist nicht eingeloggt.");
    return 1;
    }
    if(IsPlayerNPC(pID))
    {
    SendClientMessage(playerid, COLOR_GREY, "Das ist kein Spieler, der eingeladene ist ein NPC(Bot).");
    return 1;
    }
    if(Spieler[pID][pFraktion] > 0)
    {
    format(string, sizeof(string), "Der Spieler ist in einer Fraktion:", playerid);
    ShowPlayerDialog(playerid, DIALOG_MEDICC, DIALOG_STYLE_INPUT, "Contropanel: Spieler Invite", string, "Einladen", "Zurück");
    return 1;
    }
    if(Spieler[pID][pLevel] < 3)
    {
    SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist unter Level 3.");
    return 1;
    }
    if(Spieler[pID][pFraktion] > 1)
    {
    SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist bereits in einer Fraktion");
    return 1;
    }
    format(string, sizeof(string), COLOR_HEX_WHITE"Du wurdest von %s in die Fraktion %s eingeladen.\nKlicke auf "COLOR_HEX_GREEN"Annehmen"COLOR_HEX_WHITE" oder "COLOR_HEX_GREEN"Ablehnen"COLOR_HEX_WHITE".", GetName(playerid), GetFraktionName(Spieler[playerid][pFraktion]));
    ShowPlayerDialog(pID, DIALOG_INVITE, DIALOG_STYLE_MSGBOX, "Fraktions Einladung", string, "Annehmen", "Ablehnen");
    Spieler[pID][pAcceptInvite] = Spieler[playerid][pFraktion];
    format(string, sizeof(string), "Du hast %s in die Fraktion eingeladen.", GetName(pID));
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    return 1;
    }
    if(!response)return cmd_controlfrak(playerid);
    }


    Unten im Code:
    stock ReturnPlayerID(l_PlayerName[]) //©Jeffry
    {
    new l_name[MAX_PLAYER_NAME];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(GetPlayerName(i, l_name, MAX_PLAYER_NAME))
    {
    if(!strcmp(l_name,l_PlayerName, true)) return i;
    }
    }
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(GetPlayerName(i, l_name, MAX_PLAYER_NAME))
    {
    if(strfind(l_name,l_PlayerName,true)!=-1) return i;
    }
    }
    return INVALID_PLAYER_ID;
    }