/gotoplayer

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
  • Guten Abend ,


    ICh möchte gerne einen Goto befehl machen , wo der Spieler , zu dem sich geportet werden soll , einen Dialog bekommt , ob er überhaupt darf .


    Nochmal , falls ihr es nicht verstanden habt . Spieler:A /gotoplayer > Spieler:B Dialog (Darf sich ID (A) zu dir porten ?)) > Spieler A: Drückt auf Ja > Spieler B: wird zu spieler A Teleportiert.


    Nun mein Problem:


    Wenn ich die Floats im /gotoplayer von Spieler B Speicher , wie kann ich die wieder in OnDialogResponse auslesen ?


    Hier mein Anfang:


    OnDialogResponse:



    if(dialogid==DIALOG_GOTO)
    {

    if(response==0)
    {
    SendClientMessage(playerid,BLAU,"Er darf sich nicht Teleportieren.");
    return 1;
    }
    if(response==1)
    {
    new string[128];
    new gotoid;
    format(string,sizeof(string),"Teleport:%s hat sich zu %s teleportiert.",SpielerName(playerid),SpielerName(gotoid));
    SendClientMessage(playerid,0xFFBE00FF,string);
    SendClientMessage(gotoid,0xFFBE00FF,string);
    SetPlayerPos(playerid,gx,gy,gz);
    return 1;
    }
    }



    ocmd:gotoplayer(playerid,params[])
    {
    new sstring[128];
    new gotoid;
    if(sscanf(params,"u",gotoid))return SendClientMessage(playerid,ROT,"Hilfe: /goto [Spieler]");
    format(sstring,sizeof(sstring),"%s will sich zu dir Teleportieren" ,SpielerName(playerid));
    GetPlayerPos(gotoid,gx,gy,gz);
    ShowPlayerDialog (gotoid, DIALOG_GOTO ,DIALOG_STYLE_MSGBOX, "Teleportieren" ,sstring, "Ja" , "Nein");


    return 1;
    }



    MFG


    xiiN

  • Also ich würde es so machen:

    ocmd:gotoplayer(playerid,params[])
    {
    new sstring[128];
    new gotoid;
    if(sscanf(params,"u",gotoid)) { return SendClientMessage(playerid,ROT,"Hilfe: /goto [Spieler]"); }
    format(sstring,sizeof(sstring),"%s will sich zu dir Teleportieren" ,SpielerName(playerid));
    ShowPlayerDialog(gotoid, DIALOG_GOTO ,DIALOG_STYLE_MSGBOX, "Teleportieren" ,sstring, "Ja" , "Nein");
    SetPVarInt(gotoid,"port",playerid);
    return 1;
    }



    if(dialogid==DIALOG_GOTO) {
    if(response==1) {
    new string[128];
    new gotoid = GetPVarInt(playerid,"port");
    format(string,sizeof(string),"Teleport: %s hat sich zu %s teleportiert.",SpielerName(playerid),SpielerName(gotoid));
    SendClientMessage(playerid,0xFFBE00FF,string);
    SendClientMessage(gotoid,0xFFBE00FF,string);
    new Float:gx,Float:gy,Float:gz;
    GetPlayerPos(playerid,gx,gy,gz);
    SetPlayerPos(gotoid,gx,gy,gz);
    return 1;
    }
    else { return SendClientMessage(playerid,BLAU,"Er darf sich nicht Teleportieren."); }
    }


    Hab es jetzt nicht genau getestet, aber sollte so funktionieren.
    Falls irgendwas falsch ist einfach korrigieren.