[INC] M-Zones v1.3 | Zonensystem by M4rciii

  • Hallo,
    ich stelle euch hier ein System zur Verfügung, welches euch erlaubt Zonen zu erstellen, die dann auf der Karte angezeigt werden. Wenn man diese Zonen oder auch Ganggebiete betritt, wird ein Textdraw angezeigt. Ganz einfach...



    FUNKTIONEN:
    native M_CreateZone(Float:minx,Float:miny,Float:maxx,Float:maxy,zonecolor,text[]="",textcolor=0xFFFFFFFF);
    native M_DestroyZone(zoneid);
    native M_ZoneFlashForPlayer(playerid,zoneid,flashcolor);
    native M_ZoneFlashForAll(zoneid,flashcolor);
    native M_ZoneStopFlashForPlayer(playerid,zoneid);
    native M_ZoneStopFlashForAll(zoneid);
    native M_ZoneSetTextDraw(zoneid,text[]="",textcolor=0xFFFFFFFF);
    native M_ZoneSetZone(zoneid,Float:minx,Float:miny,Float:maxx,Float:maxy,zonecolor);
    native M_ZoneGetZoneCoords(zoneid,&Float:minx,&Float:miny,&Float:maxx,&Float:maxy);
    native M_IsValidZone(zoneid);
    native M_IsPlayerInZone(playerid,zoneid);
    native M_IsPlayerInAnyZone(playerid);
    native M_GetPlayerCurrentZone(playerid);
    native M_IsPlayerInArea(playerid,Float:minX,Float:minY,Float:maxX,Float:maxY);



    CHANGELOG:
    v1.3:
    - M_AddZone heißt nun M_CreateZone
    - Neue Funktion: IsPlayerInAnyZone
    - Neue Funktion: GetPlayerCurrentZone
    - Neues Callback: OnPlayerEnterZone
    - Neues Callback: OnPlayerLeaveZone
    - Man kann das Textdraw deaktivieren (zB. Falls man überm TextDrawLimit ist). Einfach den Text und die Textfarbe auslassen.



    EINBAU:
    Der Einbau gestaltet sich recht einfach. Füge ganz oben in deinen Gamemode
    #include <M-Zones>
    ein. Die Include wird geladen... Nun brauchst du nur noch
    M_Init();
    in deinem OnGameModeInit() Callback, sodass ein Timer gestartet wird und das System erst funktioniert.
    Dann kommt noch
    M_Connect(playerid);
    in das Callback OnPlayerConnect rein, sodass die Zonen für diesen Spieler angezeigt werden.
    Außerdem müssen diese Callbacks im Script enthalten sein:
    public M_OnPlayerEnterZone(playerid,zoneid)
    {
    return 1;
    }


    public M_OnPlayerLeaveZone(playerid,zoneid)
    {
    return 1;
    }



    BUGS:
    - Der Bug aus Version 1.1 wurde nun endlich behoben und die Zonen werden angezeigt!



    BEISPIEL:
    Ich habe das System mit den Zonen getestet und es hat funktioniert :D
    #define GANG_ZONE_GROVE 0x006600C0
    #define GANG_ZONE_BALLAS 0x990066C0
    #define GANG_ZONE_VAGOS 0xFFFF00C0
    #define GANG_ZONE_ZIVIS 0x66FFFFC0
    M_CreateZone(2321.9546,-1746.7269,2585.2441,-1546.8424,GANG_ZONE_GROVE,"Ganggebiet der Grove Street",GANG_ZONE_GROVE); // Mit TextDraw
    M_CreateZone(1849.7106,-1278.7588,2171.7375,-1103.2615,GANG_ZONE_BALLAS); // Ohne TextDraw
    M_CreateZone(1066.9972,-2160.9045,1522.2491,-1882.8773,GANG_ZONE_VAGOS,""); // Auch ohne TextDraw
    M_CreateZone(1818.6459,-1548.1340,2112.2666,-1344.7012,GANG_ZONE_ZIVIS,"",0x00000000); // Auch ohne TextDraw



    DOWNLOAD:
    RAR-Archiv
    INC-Datei





    Ich denke das wars dann. Hoffe alles funktioniert für euch einwandfrei, wenn nicht, hier sagen und ich behebe es ;) .


    MfG, M4rciii ;)


    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!

    8 Mal editiert, zuletzt von M4rciii ()

  • Hi
    Marcel könntest du vieleicht es so hin schreiben wie man es im GM einfügen kann.

  • Joo danke Marcel


    Achso kannst du kurz mir was sagen also ich wollte wissen wie ich das hier vom ein filterscript den Text.



    public OnFilterScriptInit()
    {


    Oder das hier


    public OnFilterScriptExit()
    {


    In mein GM einfügen kann also wie heist das im GM wo ich diese zeile einfügen möchte also wenn ich ein Filterscript rein bauen will.

  • Wenn du es in ein FS einbauen willst, dann kommt es natürlich in OnFilterScriptInit() rein.


    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!

  • ?


    Und wo kommt das so rein


    define GANG_ZONE_GROVE 0x006600C0
    #define GANG_ZONE_BALLAS 0x990066C0
    #define GANG_ZONE_VAGOS 0xFFFF00C0
    #define GANG_ZONE_ZIVIS 0x66FFFFC0
    M_AddZone(2321.9546,-1746.7269,2585.2441,-1546.8424,GANG_ZONE_GROVE,"Ganggebiet der Grove Street",GANG_ZONE_GROVE);
    M_AddZone(1849.7106,-1278.7588,2171.7375,-1103.2615,GANG_ZONE_BALLAS,"Ganggebiet der Ballas",GANG_ZONE_BALLAS);
    M_AddZone(1066.9972,-2160.9045,1522.2491,-1882.8773,GANG_ZONE_VAGOS,"Ganggebiet der Vagos",GANG_ZONE_VAGOS);
    M_AddZone(1818.6459,-1548.1340,2112.2666,-1344.7012,GANG_ZONE_ZIVIS,"Ganggebiet der Zivilisten",GANG_ZONE_ZIVIS);

  • das könnte man gut für Area 51 benutzen wenn man Area 51 betrit wird der spieler Automatisch auf 0.0 Hp gesetzt

    The Real Real life 0.0.1
    5% fertig



  • schön wäre es noch mit zonenübernahme
    stell ich mir so vor:
    grove geht in ballas zone
    schießt einen ballas in der zone ab
    gebiet blinkt und grove und ballas kriegen meldung
    ballas haben 5min oda so zeit es zu verteidigen
    wenn aber groves im gebiet sterben oder es verlassen wird es automatisch wieder ballasgebiet

    you have been Traceured.


  • Hallo
    Kann mir das mir bitte in ein Filterscript einfügen.

  • ?


    Und wo kommt das so rein


    #define GANG_ZONE_GROVE 0x006600C0
    ...

    Das käme dann in OnGameModeInit bzw OnFilterScriptInit rein, aber es ist eben nur ein Beispiel... es ist dir gestattet eigene Zonen zu machen :D
    Hier dein Filterscript.


    Mike : Hmm, ich denke, das wäre etwas aufwendig, aber vllt mache ich das mal als "Scriptbeispiel" dazu...


    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!

    Einmal editiert, zuletzt von M4rciii ()

  • Sorry EDIT// Also wo das rein kommt #define GANG_ZONE_GROVE 0x006600C0 weiss ich würde aber gerne das im ein Filterscript sehen.
    Wenn du oder irgend ein anderer das machen könnte das währ sehr nett.

  • Update mit Version 1.1:
    - M_AddZone heißt nun M_CreateZone
    - Neue Funktion: IsPlayerInAnyZone
    - Neue Funktion: GetPlayerCurrentZone
    - Neues Callback: OnPlayerEnterZone
    - Neues Callback: OnPlayerLeaveZone
    - Man kann das Textdraw deaktivieren (zB. Falls man überm TextDrawLimit ist)
    Das heißt man kann die TextDraws allgemein deaktivieren, indem man vor #define USE_TEXTDRAW zwei Schrägstriche schreibt.
    Oder um TextDraws von einzelnen Zonen wegzulassen, einfach den Text und die Textfarbe auslassen.


    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!

  • Bitte um Hilfe habe 4 ERRORS


    (9420) : error 017: undefined symbol "M_AddZone"
    (9421) : error 017: undefined symbol "M_AddZone"
    (9422) : error 017: undefined symbol "M_AddZone"
    (9423) : error 017: undefined symbol "M_AddZone"


    Die zeilen hier


    M_Init();


    M_AddZone(1843.529,-1429.206,2060.291,-1125.23,GANG_ZONE_GROVE,"Ganggebiet der Grove Street",GANG_ZONE_GROVE);
    M_AddZone(2273.249,-1200.237,2619.307,-987.0594,GANG_ZONE_BALLAS,"Ganggebiet der Ballas",GANG_ZONE_BALLAS);
    M_AddZone(-572.2159,-1564.835,-233.5575,-1156.11,GANG_ZONE_VAGOS,"Ganggebiet der Vagos",GANG_ZONE_VAGOS);
    M_AddZone(2060.219,842.7594,2563.944,1194.753,GANG_ZONE_ZIVIS,"Ganggebiet der Zivilisten",GANG_ZONE_ZIVIS);

  • Also warum kommen die 2 ERROS


    (83) : error 004: function "M_OnPlayerEnterZone" is not implemented
    (96) : error 004: function "M_OnPlayerLeaveZone" is not implemented