Teleport soll nur an einem bestimmten punkt gehen

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
  • Hey Ho
    ich brauche hifle und zwar soll eine teleport befehl /auf & /ab nur an einem bestimmten punkt gehen also /auf nur in nem ICON und /ab auch nur in nem ICON und nicht das man sich von überall dahin porten kann


    MFG: Nico Porath

  • in deinem befehl musst du dann PlayerToPoint benutzen hoffe du weist was es ist...
    wenn nicht poste dein command

  • also


    ungefähr so soll der aussehen


    if (strcmp("/Ganginfo4", cmdtext, true, 10) == 0)
    {
    setplayerpos blablabla
    sendclientmessage "du bist nun da und da


    also halt nur richtig ^^
    kannst du mir sagen wo ich playertopoint einfügen muss ?

  • if (strcmp("/Ganginfo4", cmdtext, true, 10) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerToPoint(6.0,playerid,207.5627,-103.7291,1005.2578)) // mit deiner position ändern wo es benutz werden soll
    SetPlayerPos(playerid, x,y,z); // x,y,z durch position ändern wohin er geportet werden soll
    SendClientMessage(playerid, COLOR_PURPLE , "Du bist nun da ");
    }
    return 1;
    }


    solltest du wegen dem abstand am rand erros bekommen mach das oben rein
    #pragma tabsize 0

  • if (strcmp("/Ganginfo4", cmdtext, true, 10) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerToPoint(6.0,playerid,207.5627,-103.7291,1005.2578)) // mit deiner position ändern wo es benutz werden soll
    SetPlayerPos(playerid, x,y,z); // x,y,z durch position ändern wohin er geportet werden soll
    SendClientMessage(playerid, COLOR_PURPLE , "Du bist nun da ");
    }
    return 1;
    }


    du musst aber auch
    PlayerToPoint Definiert haben

  • so ^^
    forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
    und unter OnGameModeInit
    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;
    }

  • hab oben noch was editier^^ so müsste es gehen bei mir klappts jedenfalls

  • wie geht das wenn ich nur durch ICON laufe das ich schon zu einem anderen punkt geportet werde ohne CMD ?
    edit: oder das ein text kommt mit /auf bzw. /ab ?

    Einmal editiert, zuletzt von Ernst Deryck ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Zitat

    #pragma tabsize 0


    Ja, ist okay... aber ich mein mal. Wenn alles so auf gut deutsch gesagt "scheiße" aussieht. verliert man den überblick. Dann entstehen bugs. Sieht unordentlich aus. Und ....


    I think its nooblike...


    Lieber überarbeiten und das dann sauber und schön in der pawno datei drin haben. als alles vollgemüllt.


    LG SureShot

  • SQL
    C:\Dokumente und Einstellungen\Administrator\Desktop\Army_Fahrschule.pwn(44) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\Administrator\Desktop\Army_Fahrschule.pwn(44) : error 017: undefined symbol "radi"
    C:\Dokumente und Einstellungen\Administrator\Desktop\Army_Fahrschule.pwn(46) : error 017: undefined symbol "playerid"
    C:\Dokumente und Einstellungen\Administrator\Desktop\Army_Fahrschule.pwn(50) : error 017: undefined symbol "playerid"
    C:\Dokumente und Einstellungen\Administrator\Desktop\Army_Fahrschule.pwn(51) : error 017: undefined symbol "x"
    C:\Dokumente und Einstellungen\Administrator\Desktop\Army_Fahrschule.pwn(52) : error 017: undefined symbol "y"
    C:\Dokumente und Einstellungen\Administrator\Desktop\Army_Fahrschule.pwn(53) : error 017: undefined symbol "z"
    C:\Dokumente und Einstellungen\Administrator\Desktop\Army_Fahrschule.pwn(55) : error 017: undefined symbol "radi"


    public OnGameModeInit()
    {
    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;
    }

  • in der morphinc include änder mal am 3 zeile das hier
    Float:GetPointDistanceToPointExMorph(Float:mx1,Float:my1,Float:mz1,Float:mx2,Float:my2,Float:mz2)
    {
    new Float:x, Float:y, Float:z;
    x = mx1-mx2;
    y = my1-my2;
    z = mz1-mz2;
    return floatsqroot(x*x+y*y+z*z);
    }

  • Die bessere Version von PlayerToPoint:
    /* By Alex "Y_Less" Cole. */
    stock IsPlayerInRangeOfPoint(playerid, Float:range, Float:x, Float:y, Float:z)
    {
    new
    Float:px,
    Float:py,
    Float:pz;
    GetPlayerPos(playerid, px, py, pz);
    px -= x;
    py -= y;
    pz -= z;
    return ((px * px) + (py * py) + (pz * pz)) < (range * range);
    }


    Anwendungsbeispiel:
    if(strcmp("/wtf",cmdtext,true) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid, 20.0, 0.0, 0.0, 1.0))
    {
    print("Bla = erfolgreich");
    return 1;
    }
    }

  • Die Version von Y_Less ist 1. besser gecodet und 2. ressourcenschonender gecodet.


    Der Unterschied sollte dir spätestens bei der Server Auslastung mit 25 Usern und einem riesigen RP Script auffallen.