IsPlayerInArea geht nicht.

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,


    habe das Problem mit meiner No Dm Zone das der Textdraw nicht erscheint.
    Das sind die Coordinaten von der GangZone:

    1185.6754,-1409.1810,1039.9358,-1571.0759

    Die funktioniert auch super. wird auf map alles angezeigt.
    aber warum geht mit den selben coordinaten isplayerinarea nicht?
    komisch

  • Zeig die Funktion mal her, vllt ist die falsch.


    Im Notfall würde ich die hier nehmen, die funktioniert, da bin ich mir sicher:
    stock IsPlayerInArea(playerid,Float:minX,Float:minY,Float:maxX,Float:maxY)
    {
    new Float:pX, Float:pY, Float:pZ;
    GetPlayerPos(playerid,pX,pY,pZ);
    if(pX >= minX && pX <= maxX && pY >= minY && pY <= maxY)
    {
    return 1;
    }
    return 0;
    }


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!

  • 1. Erstelle ein Forward der die IF Abfrage ausführt


    2. Schaue nach ob du diese hast...




    stock IsPlayerInArea(playerid,Float:minX,Float:minY,Float:maxX,Float:maxY)
    {
    new Float:pX,Float:pY,Float:pZ;
    GetPlayerPos(playerid,pX,pY,pZ);
    if(pX >= minX && pX <= maxX && pY >= minY && pY <= maxY) return 1;
    else return 0;
    }



    Nu Zu 1. Dazu fehlt allerdings noch der Timer zum Checken... bei On GameModeInIt packst du einfach rein..




    SetTimer("nodm" 1000, 1); << // <-- nodm ist das public das ausgeführt werden soll



    Public Erstellen und abfragen.




    forward nodm(playerid);

    public nodm(playerid)
    {
    if (IsPlayerInArea(playerid,1162.821, -943.6342, 1333.949, -852.8362))
    {
    TextDrawShowForPlayer(playerid,dmzone0); // dmzone0 so heist mein textdraw deiner heist anders trag ihn dort ein
    }
    else
    {
    TextDrawHideForPlayer(playerid,dmzone0); // <<< anpassen
    }
    }



    Sollte eigentlich Funktionieren :)


    Bei Fehlern Rückmeldung :)

  • das sind meine funktionen :



    stock IsPlayerInArea(playerid,Float:minX,Float:minY,Float:maxX,Float:maxY)
    {
    new Float:pX, Float:pY, Float:pZ;
    GetPlayerPos(playerid,pX,pY,pZ);
    if(pX >= minX && pX <= maxX && pY >= minY && pY <= maxY)
    {
    return 1;
    }
    return 0;
    }
    public check()
    {
    new Waffe,ammo;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerInArea(i,1185.6754,-1409.1810,1039.9358,-1571.0759))
    {
    TextDrawShowForPlayer(i,Textdraw0);
    SendClientMessage(i,0xFF000096,"No DM Zone");
    //ResetPlayerWeapons(i);//verhindert aufjedenfall DM am BSN ;) MAn kriegt sie aber nicht wieder.
    bsn[i] = 1;
    }
    else
    {
    if(bsn[i] == 1)
    {
    TextDrawHideForPlayer(i,Textdraw0);
    GivePlayerWeapon(i,Waffe,ammo);
    }
    }
    }
    return 1;
    }




    Und ja ich benutze dafür auch einen Timer

  • Zone :


    Y
    |
    |
    |
    |---------------> X


    Sicher das du die richtigen Koordinaten hast ?
    Außerdem würde ich dir noch empfehlen bei einer Schleife ,,IsPlayerConnected´´ ab zu fragen damit du unnötige Spieler überspringst in der 0.3 evntl.
    noch ,,IsPlayerNPC´´ Bots sind eh Müll und machen eig. nichts ^^

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Bei der GangZone ist es doch das gleiche oder nicht?
    DIe wird ja auch angezeigt.
    Warum nicht Isplayerinarea?
    Es sind richtige coords

  • Frage Warum bei dem Public check



    Noch ein SendClientMessage ?



    Iss doch Überflüssig.

  • Frage Warum bei dem Public check
    Noch ein SendClientMessage ?


    Frag ich mich auch...
    Jedes mal, wenn überprüft wird (jede Sekunde) wird auch die Nachricht geschickt, also würde der chat immer voll sein mit "No Dm"
    Zu dem anderen, du kannst ja nicht einfach waffe,ammo machen und dann die waffe und ammo geben..
    Dann gibt er ja gar nix zurück, da der wert waffe und ammo nix sind.

    public check()
    {
    new Waffe,ammo;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerInArea(i,1185.6754,-1409.1810,1039.9358,-1571.0759))
    {
    TextDrawShowForPlayer(i,Textdraw0);
    bsn[i] = 1;
    }
    else
    {
    if(bsn[i] == 0)
    {
    TextDrawHideForPlayer(i,Textdraw0);
    }
    }
    }
    return 1;
    }

    Jetzt beim einfügen seh ich dein Fehler :D, du machst bsn[i] == 1 wenn er den Textdraw zeigst, sagst aber wenn er 1 ist soll er versteckt werden.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Warum er das Bsn nicht weglässt ich habs auch ohne und es funktioniert :=)


  • public check()
    {
    new Waffe,ammo;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerInArea(i,1185.6754,-1409.1810,1039.9358,-1571.0759) && bsn[i] == 0)
    {
    TextDrawShowForPlayer(i,Textdraw0);
    bsn[i] = 1;
    }
    else if(!IsPlayerInArea(i,1185.6754,-1409.1810,1039.9358,-1571.0759) && bsn[i] == 1)
    {
    TextDrawHideForPlayer(i,Textdraw0);
    bsn[i] = 0;
    }
    }
    return 1;
    }


    lg


  • public check()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerInArea(i,1185.6754,-1409.1810,1039.9358,-1571.0759) && bsn[i] == 0)
    {
    TextDrawShowForPlayer(i,Textdraw0);
    bsn[i] = 1;
    }
    else if(!IsPlayerInArea(i,1185.6754,-1409.1810,1039.9358,-1571.0759) && bsn[i] == 1)
    {
    TextDrawHideForPlayer(i,Textdraw0);
    bsn[i] = 0;
    }
    }
    return 1;
    }

    so wäre es komplett richtig^^