Wo steckt der Fehler ? IsPlayerInRangeOfPoint

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
  • Soo ich habe hier:
    public Winner1(playerid)
    {
    if(IsPlayerInRangeOfPoint(playerid, 20.0, 4199.35010000,-2450.22310000,90.89240000))
    {
    if(Winner[playerid] == 0)
    {
    new Name2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Name2, sizeof(Name2));
    Winner[playerid] = 1;
    new string[512];
    format(string,sizeof(string),"* [INFO] %s absolvierte den Auto Parkour.( /rc)", Name2);
    SendClientMessageToAll(COLOR_HG,string);
    Winner2[playerid] = Create3DTextLabel("/rc Gewinner", COLOR_GELB, 30.0, 40.0, 50.0, 40.0, 0);
    Attach3DTextLabelToPlayer(Winner2[playerid], playerid, 0.0, 0.0, 0.7);
    }
    }
    return 1;
    }
    Und wenn man durch den Punkt fährt oder zu Fuß geht soll der Text angezeigt werden aber es passiert ingame nichts waurm nur ?
    Oben hab ich:
    new Winner[MAX_PLAYERS];
    forward Winner1(playerid);
    new Text3D:Winner2[MAX_PLAYERS];

  • Hallo,


    ersteinmal ist das was Pain sagt, irgendwie sinnlos. Denn der String kann so groß sein wie er will, es wird keine Komplikationen geben.


    Zu deinem Problem:


    Du musst auch die Funktion ausführen lassen. Falls du einen Godfather-Gamemode hast, so wirst du den Timer "SetPlayerUnjail" finden. Dort wirst du dann folgendes einfügen:


    winner(i);


    Das i steht in dieser Situation für playerid, wird jedoch durch das new aus der for-Schleife ersetzt.


    Falls du ein Selfmade hast oder der Timer nicht vorhanden ist, so musst du einen Timer setzen. Und dies machst du folgender Maßen:


    unter OnGameModeInit wird der Timer gestartet:


    SetTimer("maxxtimer", 1000, 1);


    oben im Script:


    forward maxxtimer();


    und dann irgendwo im Script unter eine andere Public:


    public SetPlayerUnjail()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    winner(i);
    }
    }
    return 1;
    }


    Ich hoffe ich konnte helfen.


    Mit freundlichen Grüßen
    Max Berger