Spieler von OnPlayerClickPayer auf OnDialogResponse übertragen?

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, wie kann ich machen, dass z.B. wenn ich auf ID 1 klicke, dass sich dann Dialoge öffnen & ich sie dann z.B. bannen kann?
    Also wie kriege ich den Spieler raus, den ich angeklickt habe?


    Hier ein Code:
    if(listitem == 7)
    {
    format(string,sizeof(string),"Was möchtest du %s flüstern?",cname);
    ShowPlayerDialog(playerid,DIALOG_HEILEN,DIALOG_STYLE_INPUT,"Flüstern",string,"Bestätigen","Abbrechen");
    }


    if(dialogid == DIALOG_WHISPER)
    {
    if(response == 1)
    {
    format(string,sizeof(string),"Admin %s flüstert dir: %s",pname,inputtext[50]);
    format(string2,sizeof(string2),"Du flüsterst %s, %s.",cname,inputtext[50]);
    SendClientMessage(playerid, Weiss, string2);
    SendClientMessage(clickedplayerid, Weiss, string);
    }
    }


    Jedoch steht da:
    Admin Blood flüstert dir: Text
    Du flüsterst Blood, Text.


    Heißt, ich selber schreibe mir etwas, obwohl ich einen anderen angeklickt habe.
    Bis jetzt ist es so, dass er den Namen bei "cname[MAX_PLAYERS]" immer von ID 0 ausliest, heißt, wenn ich auf ID 1 klicke & selber ID 0 bin, füge ich alles mir zu, was ich ihm hinzufügen wollte, sei es ein Kick/das heilen etc.


    edit: Fehler aufgeklärt im 1. Post


    MfG

    Einmal editiert, zuletzt von Blood. ()

  • Alles klarr mein Fehler, hab new clickedplayerid; nach new cname[MAX_PLAYERS]; eingefügt, heißt, 'cname' erkennt nicht clickerplayerid, sodass er den Namen von ID 0 (In diesem Fall Blood) nimmt.


    Hat sich erledigt. Trotzdem danke :)


    edit: Doch nicht lag nur dran, dass der Spieler ID 0 war nicht ich.


    Hier der Abschnitt:
    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    if(Admin[playerid] == 0)return SendClientMessage(playerid,ROT,"Du bist kein Admin. [Adminsystem by Blood]");
    if(Admin[playerid] == 1)
    {
    ShowPlayerDialog(playerid,DIALOG_MENU,DIALOG_STYLE_LIST,"Admin Menu","Kicken\nBannen\nKatapultieren\nWarnen\nTöten\nHeilen\nVerletzen\nFlüstern\nExplodieren","Auswählen","Abbrechen");
    }
    if(Admin[playerid] == 1 && playerid == clickedplayerid)
    {
    ShowPlayerDialog(playerid,DIALOG_SYSTEM,DIALOG_STYLE_LIST,"Server Menu","Restart\nServer Nachricht","Auswählen","Abbrechen");
    }
    return 1;
    }

    Einmal editiert, zuletzt von Blood. ()

  • if(Admin[playerid] == 1)
    {
    SetPVarInt(playerid,"clickplayer",clickedplayerid);
    ShowPlayerDialog(playerid,DIALOG_MENU,DIALOG_STYLE_LIST,"Admin Menu","Kicken\nBannen\nKatapultieren\nWarnen\nTöten\nHeilen\nVerletzen\nFlüstern\nExplodieren","Auswählen","Abbrechen");
    }


    nun kannst du bei OndialogRespnse mit GetPVarInt(playerid,"clickplayer") die Id des Spielers welche du angeklickt hast herausfinden.