Teleport-Funktion?

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. :)
    Wie kann ich eine neue Funktion
    für den Chat schreiben? also z.B.
    /warp army
    das ich dann zu den Koordinaten meiner
    Wahl komme?
    Und wie kann ich dann noch machen
    das ich in einem Gebiet mehrere
    Koordinaten angebe und dann jedesmal
    wenn ich /warp army schreibe dann eine
    von den Positionen ausgewählt wird?

  • Also so wie ich dich verstanden habe, willst du einen Teleportbefehl, wobei du /warp army tippst und zu schon vorher im Script festgelegten Koordinaten geportet wirst ?


    Dann wäre es so unter "OnPlayerCommandText":


    if(strcmp(cmd, "/warp", true ) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GREY, "Befehl: /warp [Ortsname]");
    SendClientMessage(playerid, COLOR_GREY, "Ortsnamen: Army, LSPD");
    return 1;
    }
    if(strcmp(tmp, "army", true) == 0)
    {
    SetPlayerPos(playerid, X-KOORDINATE, Y-KOORDINATE, Z-KOORDINATE);
    SetPlayerInterior(playerid, INTERIOR-ID); // Wenn im freien, dann ID --> 0
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Du hast dich zur Army geportet.");
    return 1;
    }
    else if(strcmp(tmp, "lspd", true) == 0)
    {
    SetPlayerPos(playerid, X-KOORDINATE, Y-KOORDINATE, Z-KOORDINATE);
    SetPlayerInterior(playerid, INTERIOR-ID); // Wenn im freien, dann ID --> 0
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Du hast dich zur LSPD geportet.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Dieser Ortsname steht nicht zur Auswahl!");
    }
    }
    }



    Und wenn du "/warp army" eingeben willst und an Zufallskoordinaten geportet werden möchtest, die du im Script schon auch vorher festgelegt hast, dann kannst du das so machen:


    new ArmyPorts[2][4] = {
    {1_X_KOORDINATE, 1_Y_KOORDINATE, 1_Z_KOORDINATE, 1_INTERIOR_ID},
    {2_X_KOORDINATE, 2_Y_KOORDINATE, 2_Z_KOORDINATE, 2_INTERIOR_ID}
    };


    if(strcmp(cmd, "/warp", true ) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GREY, "Befehl: /warp [Ortsname]");
    SendClientMessage(playerid, COLOR_GREY, "Ortsnamen: Army");
    return 1;
    }
    if(strcmp(tmp, "army", true) == 0)
    {
    new rand = random(sizeof(ArmyPorts));
    SetPlayerPos(playerid, ArmyPorts[rand][0], ArmyPorts[rand][1], ArmyPorts[rand][2]);
    SetPlayerInterior(playerid, ArmyPorts[rand][4]);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Du hast dich zur Army geportet.");
    return 1;
    }
    }
    }