Teleport

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 Leute,
    ich habe wieder so eine Frage:
    Wie kann man teleportiert werden bzw. herrausfinden wo man ist, um die Koordinaten herrauszufinden?
    Ich habe zwar folgendes nicht selber gescriptet:
    //----------------------------------[GOTO]-----------------------------------------------
    if(strcmp(cmd, "[color=#000066]/goto[/color][color=#0000ff]ls[/color]", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pAdmin] >= 3)
    {
    if (GetPlayerState(playerid) == 2)
    {
    new tmpcar = GetPlayerVehicleID(playerid);
    SetVehiclePos(tmpcar, [color=#ff0000]411,1542.5492,2664.0225,10.4046,190.3745,112,1[/color]);
    TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0;
    }
    else
    {
    SetPlayerPos(playerid, [color=#ff0000]411,1542.5492,2664.0225,10.4046,190.3745,112,1[/color]);
    }
    SendClientMessage(playerid, COLOR_GRAD1, "Du wurdest teleportiert!");
    SetPlayerInterior(playerid,0);
    PlayerInfo[playerid][pInt] = 0;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Dir ist es nicht erlaubt, diesen Befehl zu benutzen!");
    }
    }
    return 1;
    }
    Also das von mir als rot makierte sollen die vorherigen Koordinaten sein, die funktionieren, und das von mir als blau makierte ist der Befehl "ls"


    Ok "ls" kann ich ändern, aber die Koordinaten? Wie kann ich sie herrausfinden?


    Ich habe da irgendwas mit /save gehört...



    Gruß
    TD1397 C*

  • Ausführlicher bitte. Ich verstehe nicht ganz was du willst :D

  • new Float:x,Float:y,Float:z;
    GetPlayerPos(id, x, y, z);
    SetPlayerPos(id, x1, x2, x3);

  • NeoPhoenix aka ArgonX5 soll ich das ein mein gamemode als script einbauen, oder was soll ich machen?


    @[GRS]InCredible war doch gut erklärt... O_o ok ich erkläre es nochmal:
    Ich habe einen Scriptbekommen, wo man tleportiert werden kann, habs ausprobiert und es klppt auch! Ich will aber den Ort ändern, wo man hin tronsportiert wird...
    Ich habe da was gehört was man da machen muss:
    einen script in den gamemod einbauen
    ich habe diesen script nicht mehr, ich begründe das nach ein paar zeilen, damit man auch den zusammenhang versteht...
    der script sorgte für folgendes:
    man gibt "/save" ein, dann speichert der eine datein mit der Ändung .txt
    und da standen auch so einege sachen drin, ich habe die koordinaten kopiert und mit den koordinaten von dem anderen script vertauscht
    jetzt kommt die begründung:
    es hat nicht funktioniert und deswegen hab ich auch alles was mit dieser sache zu tun hat gelöscht...
    JETZT BRAUCHE ICH ES ABER WIEDER; DENN ICH WEI? JETZT ´WIE MAN MAPS IM SERVER EINBAUEN KANN!


    Meine frage:
    Wie geht das jetzt nochmal, und warum hat das vorher nicht geklappt?

  • Ich habe mal die datei wieder vom papierkorb wieder rausgenommen:


    AddStaticVehicle(411,1534.6057,2709.4067,10.2765,223.0181,112,1); // blablabla //hier habe ich "/save blablabla" eingegeben
    AddStaticVehicle(411,1542.5492,2664.0225,10.4046,190.3745,112,1); // //und hier "/save"
    AddPlayerClass(0,1561.2043,2532.4163,579.7914,138.8145,0,0,0,0,0,0); // //und hier "/save" und das ist das, was mich verärgert! Aber hier habe ich auch ein anderen gamemod benutzt...


    Bei AddStaticVehicle klang es ja ein bisschen nach koordinate... aber was ist jetzt mit AddPlayerClass???
    was habe ich falsch gemacht?
    und was meint denn NeoPhoenix aka ArgonX5??? Wo soll ich die zeilen einfügen??? O_o


    kann mich bitte jemand aufklähren??? ;(
    Ich habe ein paar feltzel, von scripts... :


    if (strcmp("/tele lspd", cmdtext, true) ==0)
    {
    >>der text<<
    }
    und
    public onplayerconnect
    {
    >>Was kommt hier rein? Da stand nut" ... "?<<
    }


    was hat es mit diesen zwei sachen auf sich!!!???

  • AddStaticVehicle macht folgendes:
    Es erstellt ein Auto, wenn es z.b. unter OnFilterScriptInit gesetzt wird mit den Parametern, die in der Klammern stehen.


    Gucken wir uns mal AddPlayerClass an:


    http://wiki.sa-mp.com/wiki/AddPlayerClass


    Da sehen wir nun Folgendes:
    (skin, Float:x, Float:y, Float:z, Float:Angle, weapon1, weapon1_ammo, weapon2, weapon2_ammo, weapon3, weapon3_ammo) // Vergleich:
    (0,1561.2043,2532.4163,579.7914,138.8145,0,0,0,0,0,0);


    Also sind die Koordinaten:


    1561.2043,2532.4163,579.7914



    Jetzt die Funktion zum Teleportieren: SetPlayerPos


    http://wiki.sa-mp.com/wiki/SetPlayerPos


    (playerid,Float:x,Float:y,Float:z)



    Dann einfach SetPlayerPos(playerid, 1561.2043,2532.4163,579.7914)


    MfG

  • das heißt:
    public onplayerconnect<----Während der spieler verbunden ist...
    {<----neues Element
    if (!strcmp (cmdtext, "/>>befehl<<", true) ) <----...und er diesen Befehl eingibt
    {<----neue aktion
    setplayerpos (playerID, X-Wert, Y-Wert, Z-Wert, Himmelsrichtung >0-360<)<----aktion + funktion, pruduckt/ergebnis
    return 1; <---- keine ahung, bitte aufklähren!
    }<----Aktion beendet
    return 0; <----ebenfalls keine ahnung...
    } <----Element beendet


    Wo zu ist "return" gut? und für was steht die zahl?
    ok return=eingabetaste oder neue zeile...
    aber wozu, wenn wir doch auch "}" haben?


    Aber an sonsten ist das ja für den anfang voll einfach!


    Um es herrauszufinden muss ich einfach nur statt "set" "get" eingeben!
    Oder muss ich da noch meine playerID eingeben, wär logisch, aber wenn da einfach nur "playerID" steht, dann ist doch immer der eigene spieler gemeint oder?

  • Ich habe jetzt verstanden du willst Ports scripten , aber auch wissen was /save ist =)
    Also , wenn du etwas absaven willst , dann gehst du in deinen Grand Theft Auto Ordner unter Samp Debug Mode oder so =) , dann gehst du z.B. zum BSN und gibst /save BSN ein . Dann gehst du wieder in deinen GTA Ordner . Dort wurde eine Datei mit dem Namen "savedpositions" erstellt . Du öffnest diese Datei mit Pawno . Dann wird folgendes kommen :
    ( Siehe TehBil's Beitrag ) . Um den port zu ändern musst du FloatX , FloatZ und FloatY rauskopieren und einfügen .
    Wenn du aber wissen wolltest wie man Ports scriptet , dann erklär ich dir das auch nochmal kurz :D .
    public OnPlayerCommandText
    {
    if(strcmp(cmdtext,"/sf",true) == 0
    }
    SetPlayerPos(playerid,float:x,float:y,float,Z) // SetPlayerPos = Die Position wo du hingeportet werden sollst.
    SendClientMessage(playerid,(COLORCODE),"Du hast dich Teleportiert." // SendClientMessage = Der Text , den du in den Chat bekommst wenn du /sf eingibst .
    }
    return 0;
    }



    Ich hoffe ich konnte dir helfen ;)


    mfg

  • Ja, es hat mir teilsweise geholfen ("Du hast dich teleportiert"), aber ich wollte wissen, wie man die position des eigenen Spielers herrausbekommt.
    Und ich will es herrauskriegen, damit ich die Koordinaten (XXX.XXX, XXX.XXX, XXX.XXX, XXX) in den Teleport-Script einbauen kann!


    Bevor man Koordinaten eingibt, muss man schließlich wissen welche!

  • Die Position findest du entweder mit /save raus oder mit Modsobeit :D Bei Modsobeit stehen die Koordinaten dann unten rechts .

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Wie kann ich das AddStaticVehicle zu AddPlayerPos machen! ;(

    AdddPlayerpos ? O_o , Meinst du AddPlayerClass ? Wenn ja , AddStaticVehicle = Wenn du im Auto sitzt und /save machst , AddPlayerPos = Wenn du zufuß bist und /save machst .