Dialog Frage

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
  • Hi, und zwar habe ich ein Problem unter OnDialogResponse.
    Kann man dort für alle Dialoge nur 1 Variable erstellen?
    Also kann ich unter Dialog 1 nich new pID; und unter Dialog 2 auch wieder new pID; machen?
    Eigentlich doch schon oder ?


    if (dialogid==DIALOG_FRAKVERWALTUNGINVITE)
    {
    if(response)
    {
    if(strlen(inputtext)>0&&IsNumeric(inputtext))
    {
    new pID = strval(inputtext);
    if(sInfo[pID][eingeloggt] == 0)return SendClientMessage(playerid,ROT,"Der Spieler ist nicht online!");
    if(!IsPlayerInFrakt(pID,0))return SendClientMessage(playerid,ROT,"Spieler ist kein Zivilist!");
    new sendename[MAX_PLAYER_NAME];
    new empfangname[MAX_PLAYER_NAME];
    new text[2][60], fID = sInfo[playerid][fraktion];
    GetPlayerName(playerid, sendename, MAX_PLAYER_NAME);
    GetPlayerName(pID, empfangname, MAX_PLAYER_NAME);
    format(text[0], sizeof(text[]), "%s hat dich in die Fraktion %s eingeladen!",sendename,fInfo[fID][f_name]);
    format(text[1], sizeof(text[]), "Du hast %s in die Fraktion %s eingeladen!",empfangname,fInfo[fID][f_name]);
    SendClientMessage(pID,HELLBLAU,text[0]);
    SendClientMessage(pID,HELLBLAU,"Zum annehmen der Einladung: /accept 'invite'");
    SendClientMessage(playerid,HELLBLAU,text[1]);
    invfraktid[pID] = fID;
    frakinviter[pID] = playerid;
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_FRAKVERWALTUNGINVITE,DIALOG_STYLE_INPUT,"Fraktionsverwaltung","Wen möchtest du in die Fraktion einladen?","Einladen","Abbrechen");
    }
    }
    }
    if (dialogid==DIALOG_FRAKVERWALTUNGUNINVITE)
    {
    if(response)
    {
    if(strlen(inputtext)>0&&IsNumeric(inputtext))
    {
    new pID = strval(inputtext);
    if(sInfo[pID][eingeloggt] == 0)return SendClientMessage(playerid,ROT,"Der Spieler ist nicht online!");
    if(!IsPlayerInFrakt(pID,sInfo[playerid][fraktion]))return SendClientMessage(playerid,ROT,"Spieler ist nicht in deiner Fraktion!");
    new sendename[MAX_PLAYER_NAME];
    new empfangname[MAX_PLAYER_NAME];
    new text[2][60], fID = sInfo[playerid][fraktion];
    GetPlayerName(playerid, sendename, MAX_PLAYER_NAME);
    GetPlayerName(pID, empfangname, MAX_PLAYER_NAME);
    format(text[0], sizeof(text[]), "%s hat dich aus der Fraktion %s geworfen!",sendename,fInfo[fID][f_name]);
    format(text[1], sizeof(text[]), "Du hast %s aus der Fraktion %s geworfen!",empfangname,fInfo[fID][f_name]);
    SendClientMessage(pID,HELLBLAU,text[0]);
    SendClientMessage(playerid,HELLBLAU,text[1]);
    sInfo[pID][fraktion] = 0;
    sInfo[pID][frang] = 0;
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_FRAKVERWALTUNGUNINVITE,DIALOG_STYLE_INPUT,"Fraktionsverwaltung","Wen möchtest du aus der Fraktion werfen?","Rauswerfen","Abbrechen");
    }
    }
    }


    Bekomme nämlich hier diese Errors:
    C:\Users\Andi\Desktop\SERVER\gamemodes\SERVER.pwn(632) : error 021: symbol already defined: "pID"
    C:\Users\Andi\Desktop\SERVER\gamemodes\SERVER.pwn(635) : error 021: symbol already defined: "sendename"
    C:\Users\Andi\Desktop\SERVER\gamemodes\SERVER.pwn(636) : error 021: symbol already defined: "empfangname"
    C:\Users\Andi\Desktop\SERVER\gamemodes\SERVER.pwn(637) : error 021: symbol already defined: "text"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    • Offizieller Beitrag
  • So habe jetzt mal alles neu gemacht, wieder fast das gleiche Problem:
    Wenn ichs so mache bekomme ich pID already defined:
    new pID,text[2][60];
    pID = strval(inputtext);
    Wenn ich es so mache dann bekomme ich wieder text already defined:
    new text[2][60];
    new pID = strval(inputtext);

    Einmal editiert, zuletzt von IceWave ()

    • Offizieller Beitrag

    Aber was ist falsch daran ?
    Wenn ich 2 extra Variablen erstelle funktionierts, also bsp string1 / string2

    Ich hätte, um ehrlich zu sein, bei so einem Dialog auch keinen zwei-dimensionalen Array verwendet, um einen Text mehrmals auszugeben. Meistens fährt man einfach immer sicherer, wenn man bei den Basics bleibt. Haben sich die anderen "Probleme" damit dann auch in Luft aufgelöst?