Teleports icons

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 würde gerne das lvpd nutzen .
    leider aber nicht in lv sondern sf. deshalb würde ich gerne die teleporte erstellen (am besten unsichtbar).
    kann mir einer vllt erklären wie ich die teleporte erstelle. ich will das , wenn man aus dem lvpd rausgeht an eine bestimmte stelle teleportirert wird.
    hoffe ich könntmir helfen

  • musst halt nur die coords wissen und dann:



    forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
    public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
    {
    if(IsPlayerConnected(playerid))
    {
    new Float:oldposx, Float:oldposy, Float:oldposz;
    new Float:tempposx, Float:tempposy, Float:tempposz;
    GetPlayerPos(playerid, oldposx, oldposy, oldposz);
    tempposx = (oldposx -x);
    tempposy = (oldposy -y);
    tempposz = (oldposz -z);
    //printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
    if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
    {
    return 1;
    }
    }
    return 0;
    }


    Also der Code wurde rauskopiert von GF, da ich das schreibe ^^, und dann abfrägst mit:



    PlayerToPoint(1.5,playerid,x,y,z);
    SetPlayerToPoint(playerid,x1,y1,z1);
    SetPlayerInterrior(playerid, int);



    Prüfen, ob er in der "Zone" ist ( Radius ), einsetzen für die coords x,y,z ( das Komma "," bitte als "." für Kommazahlen wie 125.22,..)
    Player hinporten, zu den Coords ( wieder einsetzen für x1,y1,z1)
    Interrior einsetzen, wenn man direkt rein/raus geportet werden soll,... ( raus ist immer ID 0, also "normale Welt")



    So sollte es klappen.


    Mfg
    Grex

  • erstmal danke!


    kriege aber 2 errrors


    D:\gta server\Psychosandman\gamemodes\prs.pwn(27924) : error 017: undefined symbol "SetPlayerToPoint"
    D:\gta server\Psychosandman\gamemodes\prs.pwn(27925) : error 017: undefined symbol "SetPlayerInterrior"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.



    public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
    {
    if(IsPlayerConnected(playerid))
    {
    new Float:oldposx, Float:oldposy, Float:oldposz;
    new Float:tempposx, Float:tempposy, Float:tempposz;
    GetPlayerPos(playerid, oldposx, oldposy, oldposz);
    tempposx = (oldposx -x);
    tempposy = (oldposy -y);
    tempposz = (oldposz -z);
    //printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
    if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
    {
    PlayerToPoint(1.5,playerid,2337.1001,2455.9500,14.9688);
    SetPlayerToPoint(playerid,-1605.6716,711.4542,13.8672);
    SetPlayerInterrior(playerid, 0);
    return 1;
    }
    }
    return 0;
    }

  • if (strcmp("/teleme", cmdtext, true, 10) == 0)
    {
    if(!PlayerToPoint(3.0,playerid,x,y,z))
    {
    // Nachricht du bist nicht am Enter POint
    return 1;
    }
    SetPlayerInterior(playerid,intid);
    SetPlayerPos(playerid,x,y,z);
    return 1;
    }

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • dann müsstest du die abfrage in nen Timer packen ohne cmd versteht sich , aber ich würd dir nen Icon empfehlen


    also
    new Bullen;


    Bullen = CreatePickup(...);


    OnPlayerPickup


    if(pickupid = Bullen)
    {
    // SetPlayerPos or so ^^
    }

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • jo das mit dem Pickup ist besser, da der Timer ansonst jede 10ms oder jede ms gestartet werden muss, auch nicht umbedingt das Beste... außerdem oben hättest du lieber ne else funktion einbauen sollen, und umgekehrt, daher:




    ...
    if(PlayerToPoint(3.0,playerid,x,y,z)
    {
    SetPlayerPos(palyerid,x,y,z);
    SetPlayerInterior(playerid, x.y,z);
    }
    else
    {
    // Du bist nicht an der richtigen Stelle
    }



    Mfg
    Grex

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • leider komme ich nicht weiter , es klappt einfach nicht .
    könnte mir vllt jemand das schnell scripten und hier reinstellen und gleich sgen wohin ich das alles reinfügen soll.
    bitte bitte


    das pickup sollte hier sein (1559,23,2337.1001,2455.9500,14.968 )


    es soll dann hierhin teleportiert werden -1605.6716,711.4542,13.8672


  • public OnGameModeInit()
    new meinpickup;
    AddStaticPickup(1239,2,1559,23,2337.1001,2455.9500,14.968);


    und wenn du dann den GF hast, dann unter

    public SetPlayerUnjail()
    {
    IfPlayerToPoint(3.0,i,1559,23,2337.1001,2455.9500,14.968);
    }

    So jetzt kommt die Frage, warum bitte unter SetPlayerUnjail ??, naja, da es schon viele Timers gibt, die jede Sekunde getätigt werden, braucht man das Script nicht noch weiter mit so vielen Timern überlasten, daran hab ichs dort dazugehängt, kann man auch überall anders, die jede Sekunde ausgeführt werden.


    Wenn du kein GF hast, dann kommen wir darauf nochma zurück.