Problem mit Dialoge

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 Brotfische,


    ich bin dabei mir ein kleines Adminsystem per OnPlayerClickPlayer, dabei sind einige Probleme aufgetreten die ich mir nicht erklären kann.
    Inspiration kommt vom TVPikachu da er solch ein Tutorial gepostet hat.


    So mein Problem liegt jetzt im OnDialogResponse.


    Quellcode von OnDialogResponse


    if(dialogid == DIALOG_ASYSTEM)
    {
    if(response == 1)
    {
    ShowPlayerDialog(playerid, DIALOG_ASYSTEM2,DIALOG_STYLE_LIST, "DIALOG_ASYSTEM2","Teleport #1\nTeleport #2\nPrivate Nahricht\nKick\nBan","Ausführen","Schließen");
    }
    if(response == 0)
    {
    return 1;
    }
    if(dialogid == DIALOG_ASYSTEM2)
    {
    if(response == 1)
    {
    if(listitem == 0)//Teleport zu Clickid
    {
    new string [128];
    new Float:x,Float:y,Float:z;
    new namee[MAX_PLAYER_NAME];
    GetPlayerName(clickid[playerid], namee, sizeof(namee));
    GetPlayerPos(clickid[playerid],x,y,z);
    SetPlayerPos(playerid,x,y,z);
    format(string,sizeof string,"** Du hast dich zum Spieler: %s teleportiert.",namee);
    SendClientMessage(clickid[playerid], C_**, string);
    return 1;
    }
    if(listitem == 1)//Teleport Clickid zu playerid
    {
    new string [128];
    new Float:x,Float:y,Float:z;
    new namee[MAX_PLAYER_NAME];
    GetPlayerName(clickid[playerid], namee, sizeof(namee));
    GetPlayerPos(playerid,x,y,z);
    SetPlayerPos(clickid[playerid],x,y,z);
    format(string,sizeof string,"** Du wurdes von %s teleportiert.",namee);
    SendClientMessage(playerid, C_MELDUNG, string);
    return 1;
    }
    if(listitem == 2)// Private Nahricht (ADMIN MESSAGE)
    {

    Quellcode von OnDialogResponse
    }
    if(listitem == 3)// Kick
    {
    new string [128];
    new namee[MAX_PLAYER_NAME];
    GetPlayerName(clickid[playerid], namee, sizeof(namee));
    format(string,sizeof string,"** Du hast erfolgreich %s vom Server gekickt.",namee);
    SendClientMessage(clickid[playerid], C_**, string);
    Kick(clickid[playerid]);
    return 1;
    }
    if(listitem == 4)//Ban
    {
    new string [128];
    new namee[MAX_PLAYER_NAME];
    GetPlayerName(clickid[playerid], namee, sizeof(namee));
    format(string,sizeof string,"** Du hast erfolgreich %s vom Server gebannt.",namee);
    SendClientMessage(clickid[playerid], C_**, string);
    Ban(clickid[playerid]);
    return 1;
    }
    }
    if(response == 0)
    {
    }
    }
    return 1;


    Quellcode von OnPlayerClickPlayer

    Dazu hab ich noch eine Frage.
    Undzwar ich möchte gerne im Titel des Dialoges "Spieler: name von clickedplayerid" ich habe da schon einiges
    versucht aber es hat nichts funktioniert.

    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    clickid[playerid] = clickedplayerid;
    ShowPlayerDialog(playerid, DIALOG_ASYSTEM, DIALOG_STYLE_LIST, "Spieler: ","Administratives","Weiter","Schließen");
    return 1;
    }


    Fehler Code vom Compilen


    Desktop\pawn\gamemodes\morshRP.pwn(283) : warning 217: loose indentation
    Desktop\pawn\gamemodes\morshRP.pwn(342) : error 030: compound statement not closed at the end of file (started at line 273)


    Bin für jede Hilfe dankbar ;)


  • if(dialogid == DIALOG_ASYSTEM)
    {
    if(response == 1)
    {
    ShowPlayerDialog(playerid, DIALOG_ASYSTEM2,DIALOG_STYLE_LIST, "DIALOG_ASYSTEM2","Teleport #1\nTeleport #2\nPrivate Nahricht\nKick\nBan","Ausführen","Schließen");
    }
    if(response == 0)
    {
    return 1;
    }
    }
    if(dialogid == DIALOG_ASYSTEM2)
    {
    if(response == 1)
    {
    if(listitem == 0)//Teleport zu Clickid
    {
    new string [128];
    new Float:x,Float:y,Float:z;
    new namee[MAX_PLAYER_NAME];
    GetPlayerName(clickid[playerid], namee, sizeof(namee));
    GetPlayerPos(clickid[playerid],x,y,z);
    SetPlayerPos(playerid,x,y,z);
    format(string,sizeof string,"** Du hast dich zum Spieler: %s teleportiert.",namee);
    SendClientMessage(clickid[playerid], C_**, string);
    return 1;
    }
    if(listitem == 1)//Teleport Clickid zu playerid
    {
    new string [128];
    new Float:x,Float:y,Float:z;
    new namee[MAX_PLAYER_NAME];
    GetPlayerName(clickid[playerid], namee, sizeof(namee));
    GetPlayerPos(playerid,x,y,z);
    SetPlayerPos(clickid[playerid],x,y,z);
    format(string,sizeof string,"** Du wurdes von %s teleportiert.",namee);
    SendClientMessage(playerid, C_MELDUNG, string);
    return 1;
    }
    if(listitem == 2)// Private Nahricht (ADMIN MESSAGE)
    {


    }
    if(listitem == 3)// Kick
    {
    new string [128];
    new namee[MAX_PLAYER_NAME];
    GetPlayerName(clickid[playerid], namee, sizeof(namee));
    format(string,sizeof string,"** Du hast erfolgreich %s vom Server gekickt.",namee);
    SendClientMessage(clickid[playerid], C_**, string);
    Kick(clickid[playerid]);
    return 1;
    }
    if(listitem == 4)//Ban
    {
    new string [128];
    new namee[MAX_PLAYER_NAME];
    GetPlayerName(clickid[playerid], namee, sizeof(namee));
    format(string,sizeof string,"** Du hast erfolgreich %s vom Server gebannt.",namee);
    SendClientMessage(clickid[playerid], C_**, string);
    Ban(clickid[playerid]);
    return 1;
    }
    }
    if(response == 0)
    {
    return 1;
    }
    }
    return 1;



    was hältst du von einer adminabfrage bei dem onplayerclicked palyer?

  • es geht mir nicht um eine Admin abfrage gerade.
    Hab das problem jetzt selbst gelöst das waren klammerfehler....




    Trotzdem besteht die eine frage noch:

    Frage zu OnPlayerClickPlayer

    Dazu hab ich noch eine Frage.
    Undzwar ich möchte gerne im Titel des Dialoges "Spieler: name von clickedplayerid" ich habe da schon einiges
    versucht aber es hat nichts funktioniert.

    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    clickid[playerid] = clickedplayerid;
    ShowPlayerDialog(playerid, DIALOG_ASYSTEM, DIALOG_STYLE_LIST, "Spieler: ","Administratives","Weiter","Schließen");
    return 1;
    }


  • public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    clickid[playerid] = clickedplayerid;
    new name[MAX_PLAYER_NAME], string[128];
    GetPlayerName(clickid[playerid],name,sizeof(name));
    format(string,sizeof(string),"Spieler: %s",name);
    ShowPlayerDialog(playerid, DIALOG_ASYSTEM, DIALOG_STYLE_LIST, string,"Administratives","Weiter","Schließen");
    return 1;
    }

    20€ geschenkt - bei Fragen gerne PN an mich


    Mehr über reCyclix
    reCyclix - more than recycling
    reyCyclix ist ein polnisches Recyclingunternehmen, welches jedem die Möglichkeit bietet, sich an ihrem Geschäftsmodell gewinnbringend zu beteiligen. Normalerweise passiert das, in dem man eine beliebige Summe in Kunststoffmüll investiert, allerdings schenkt reCyclix zur Zeit noch jedem neuem Nutzer 20€, die zur Investition genutzt werden können.