GetDistanceBetweenPlayers - Pawno mal wieder zu doof ?

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 Leute.
    Ich habe folgende Zeile:
    distance = GetDistanceBetweenPlayers(playerid,playerid2);
    if(distance =< 1.5)


    In der Zeile mit "if(distance" kommen folgende Error:

    Zitat

    warning 211: possibly unintended assignment
    error 029: invalid expression, assumed zero
    warning 215: expression has no effect
    error 001: expected token: ";", but found ")"
    error 029: invalid expression, assumed zero

    Das kann doch irgendwie nicht sein ?!
    Klammere ich das aus, kommt der Fehler nichtmehr....
    Brauche diese Bedinung aber :P


    Kann mir das mal bitte erklären ?
    Sehe 100%ig keinen Fehler !


    Spoiler anzeigen
    stock Float:GetDistanceBetweenPlayers(p1,p2)
    {
    new Float:x1,Float:y1,Float:z1,Float:x3,Float:y3,Float:z3;
    if (!IsPlayerConnected(p1) || !IsPlayerConnected(p2))
    {
    return -1.00;
    }
    GetPlayerPos(p1,x1,y1,z1);
    GetPlayerPos(p2,x3,y3,z3);
    return floatsqroot(floatpower(floatabs(floatsub(x3,x1)),2)+floatpower(floatabs(floatsub(y3,y1)),2)+floatpower(floatabs(floatsub(z3,z1)),2));
    }
    Returnt übrigens den Fehler:

    Zitat
    Spoiler anzeigen

    warning 208: function with tag result used before definition, forcing reparse

  • Hey Leute.
    Ich habe folgende Zeile:
    distance = GetDistanceBetweenPlayers(playerid,playerid2);
    if(distance =< 1.5)


    In der Zeile mit "if(distance" kommen folgende Error:

    if(distance =< 1.5)


    Da gucken ^^
    Manchmal sieht man es halt einfach nicht xD


    Mfg. PLAYA

  • Stimmt sogar.


    Mensch mensch mensch, Pawno ist aber echt pingelich.
    Klein- & Großschreibung, Reihenfolgen....


    Nächste Frage (war im expander);

    Zitat


    warning 208: function with tag result used before definition, forcing reparse

    bei
    stock Float:GetDistanceBetweenPlayers(p1,p2)
    {
    new Float:x1,Float:y1,Float:z1,Float:x3,Float:y3,Float:z3;
    if (!IsPlayerConnected(p1) || !IsPlayerConnected(p2))
    {
    return -1.00;
    }
    GetPlayerPos(p1,x1,y1,z1);
    GetPlayerPos(p2,x3,y3,z3);
    return floatsqroot(floatpower(floatabs(floatsub(x3,x1)),2)+floatpower(floatabs(floatsub(y3,y1)),2)+floatpower(floatabs(floatsub(z3,z1)),2));
    }


    Hatte den Fehler noch nie, und die Beschreibung sagt mir garnichts.
    Wenn ich das Float am Anfang wegmache, kommen "tag mismatch"-warns.

  • Float:GetDistanceBetweenPlayers(p1,p2)
    {
    new Float:x1,Float:y1,Float:z1,Float:x3,Float:y3,Float:z3;
    if (!IsPlayerConnected(p1) || !IsPlayerConnected(p2))
    {
    return -1.00;
    }
    GetPlayerPos(p1,x1,y1,z1);
    GetPlayerPos(p2,x3,y3,z3);
    return floatsqroot(floatpower(floatabs(floatsub(x3,x1)),2)+floatpower(floatabs(floatsub(y3,y1)),2)+floatpower(floatabs(floatsub(z3,z1)),2));
    }

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • 1. warum so eine lange rechnung?


    return floatsqroot(floatpower(floatabs(floatsub(x3,x1)),2)+floatpower(floatabs(floatsub(y3,y1)),2)+floatpower(floatabs(floatsub(z3,z1)),2));
    kannst du durch das ersetzen:


    return floatsqroot((x1 - x3)*(x1 - x3) + (y1 - y3)*(y1 - y3) + (z1 - z3)*(z1 - z3));


    bedenke dass es sehr langsam ist...


    den ersten code kannst du durch das ersetzen:
    if(GetDistanceBetweenPlayers(playerid,playerid2) <= 1.5)


    da brauchst du den wert nicht zwischenspeichern.


    dein fehler war das "=<" das musst du so schreiben "<=" kleiner-gleich oder größer gleich ">="


    edit: hab wohl zu lang gebraucht zum schreiben^^

  • stock GetDistanceBetweenPlayers(p1,p2)
    {
    new Float:x1,Float:y1,Float:z1,Float:x3,Float:y3,Float:z3;
    if (!IsPlayerConnected(p1) || !IsPlayerConnected(p2))
    {
    return -1.00;
    }
    GetPlayerPos(p1,x1,y1,z1);
    GetPlayerPos(p2,x3,y3,z3);
    return floatsqroot(floatpower(floatabs(floatsub(x3,x1)),2)+floatpower(floatabs(floatsub(y3,y1)),2)+floatpower(floatabs(floatsub(z3,z1)),2));
    }


    jetzt müsste es gehen

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Float:GetDistanceBetweenPlayers(p1,p2);


    Float:GetDistanceBetweenPlayers(p1,p2)
    {
    new Float:x1,Float:y1,Float:z1,Float:x3,Float:y3,Float:z3;
    if (!IsPlayerConnected(p1) || !IsPlayerConnected(p2)) {
    return -1.00;
    }
    GetPlayerPos(p1,x1,y1,z1);
    GetPlayerPos(p2,x3,y3,z3);
    return floatsqroot((x1 - x3)*(x1 - x3) + (y1 - y3)*(y1 - y3) + (z1 - z3)*(z1 - z3));
    }


    Should work.

  • was könnte die warnung sonst bedeuten?


    "warning 208: function with tag result used before definition, forcing reparse"


    versuchs mal mit forward (und als public)
    was anderes fällt mir auch nicht ein. vllt in der pawn doku?

  • Mir ist grade eingefallen warum der Warning kommt - Du musst das
    Float:GetDistanceBetweenPlayers(p1,p2);
    im Scriptheader haben, also VOR Benutzung von GetDistanceBetweenPlayers.

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