No DM Zonen Script

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
  • Vorab:


    Ich habe alles hier im Forum schon versucht.


    Ich suche ein NoDM Zonen Script das Funktioniert. Bei allen NoDM Zonen Scripts ist immer nur eine NoDM Zone gegangen. Die Gangzones wurde angezeigt, aber der Textdraw NoDM Zone wurde z.b. nur am BSN angezeigt aber nicht am Bahnhof / Fahrschule.


    Ich hoffe mir kann jemand helfen.

  • Benutzt IsPlayerInArea
    Hier der stock:
    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;
    }
    Um eine Gangzone zu erstellen Empfehle ich dir XtremVehiclePlotter, das gibts im Englishen Forum zu downloaden.
    Hast du eine Zone erstellt und im Script angefertigt... musst du um einen Textdraw sichtbar zumachen, wen man in die Zone geht IsPlayerInArea benutzen.
    Bsp von meinem Selfmade
    forward Gangzone(playerid);
    public GangZone(playerid)
    {
    if(IsPlayerInArea(playerid,Deine Koordienaten))
    {
    SendClientMessage(playerid, Weiß, "Dein Text");
    }


    }
    Anstadt "Dein Text" kannst du einen Textdraw benutzen.
    Am schluss rufst du den Public mit einem Timer unter OnGamemodeinit auf..
    das geht so:
    SetTimer("Gangzone",5000,1);//Jede 5 Sekunden
    Ich denke du hast es jetzt Kapiert.
    Lg .Art.

  • Ich weiss :(. Mein Script:


    #include <a_samp>


    #define COLOR_GREEN 0x33AA33AA
    #define COLOR_RED 0xFF000096


    new gz1,gz2,gz3;


    new checktimer;
    new bsnzone;
    new bsn[MAX_PLAYERS];
    new Text:Textdraw0;
    forward check();
    forward IsPlayerInArea(playerid,Float:minX,Float:minY,Float:maxX,Float:maxY);


    public OnFilterScriptInit()
    {
    bsnzone = GangZoneCreate(1094.37, -1038.38, 1280.709, -864.6794);
    gz1 = GangZoneCreate(-1998.261352,217.670394,-1943.742919,75.112503);
    gz2 = GangZoneCreate(-2014.019653,-76.365303,-2095.187255,-101.865203);
    gz3 = GangZoneCreate(-2612.293945,573.630126,-2711.304199,640.149353);


    checktimer = SetTimer("check",1000,1);
    Textdraw0 = TextDrawCreate(549.000000,32.000000,"No DM Zone");
    TextDrawAlignment(Textdraw0,0);
    TextDrawBackgroundColor(Textdraw0,0x000000ff);
    TextDrawFont(Textdraw0,3);
    TextDrawLetterSize(Textdraw0,0.399999,1.000000);
    TextDrawColor(Textdraw0,0xff0000ff);
    TextDrawSetOutline(Textdraw0,1);
    TextDrawSetProportional(Textdraw0,1);
    TextDrawSetShadow(Textdraw0,1);
    return 1;
    }


    public OnFilterScriptExit()
    {
    KillTimer(checktimer);
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    GangZoneShowForPlayer(playerid, bsnzone, COLOR_RED);
    GangZoneShowForPlayer(playerid,gz1,COLOR_GREEN);
    GangZoneShowForPlayer(playerid,gz2,COLOR_GREEN);
    GangZoneShowForPlayer(playerid,gz3,COLOR_GREEN);
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    bsn[playerid] = 0;
    return 1;
    }


    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;
    }
    public check()
    {
    new Waffe,ammo;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerInRangeOfPoint(i,25.0,-1998.261352,217.670394,-1943.742919))
    {
    TextDrawShowForPlayer(i,Textdraw0);
    //ResetPlayerWeapons(i);//verhindert aufjedenfall DM am BSN ;) MAn kriegt sie aber nicht wieder.
    bsn[i] = 1;
    printf("Area BSN (%i)",bsn[i]);
    }
    else
    {
    if(bsn[i] == 1)
    {
    TextDrawHideForPlayer(i,Textdraw0);
    GivePlayerWeapon(i,Waffe,ammo);
    bsn[i] = 0;
    printf("Nicht in Area (%i)",bsn[i]);
    }
    }
    if(IsPlayerInArea(i,-1998.261352,217.670394,-1943.742919,75.112503) || IsPlayerInArea(i,1094.37, -1038.38, 1280.709, -864.6794))
    {
    TextDrawShowForPlayer(i,Textdraw0);
    //ResetPlayerWeapons(i);//verhindert aufjedenfall DM am BSN ;) MAn kriegt sie aber nicht wieder.
    bsn[i] = 1;
    printf("Area BSN (%i)",bsn[i]);
    }
    else
    {
    if(bsn[i] == 1)
    {
    TextDrawHideForPlayer(i,Textdraw0);
    GivePlayerWeapon(i,Waffe,ammo);
    bsn[i] = 0;
    printf("Nicht in Area (%i)",bsn[i]);
    }
    }
    printf("Nicht in Area (%i)",bsn[i]);
    }
    return 1;
    }


    EDIT:


    Hier nochmal eine Auffrischung des Themas. Die Erste Gangzone geht IMMER aber wenn ich in der Zweiten bin Passiert nichts.


    EDIT2:


    Gelöst. Coords waren falsch. + Falscher bereich.

    2 Mal editiert, zuletzt von GooMan ()