[Help] GangFight System

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,


    ich bin gerade dabei ein GangFight System zu erstellen.
    Aber wie kann ich abfrage, welcher Fraktion die Zone gehört in der man
    sich befindet?
    Hier sind meine Codes:


    Spoiler anzeigen
    #define MAX_ZONES 7
    enum GangZones
    {
    Zone,
    Besitzer
    }
    new GZInfo[MAX_ZONES][GangZones];

    Spoiler anzeigen
    //OnGameModeInit
    GZInfo[1][Zone] = GSArea = GangZoneCreate(2203.125, -1980.46875, 2531.25, -1734.375);
    GZInfo[2][Zone] = BallasArea = GangZoneCreate(1951.171875, -1939.453125, 2097.65625, -1751.953125);
    GZInfo[3][Zone] = YakuzaArea = GangZoneCreate(2291.015625, 2226.5625, 2419.921875, 2414.0625);
    GZInfo[4][Zone] = RifaArea = GangZoneCreate(-2197.265625, -287.109375, -2009.765625, -70.3125);
    GZInfo[5][Zone] = VagosArea = GangZoneCreate(2724.609375, -1494.140625, 2906.25, -1259.765625);
    GZInfo[6][Zone] = LCNArea = GangZoneCreate(-1869.140625, 1189.453125, -1611.328125, 1300.78125);

    Spoiler anzeigen
    //Hier werden die besitzer gesetzt
    GZInfo[1][Besitzer] = 8; //Grove Street
    GZInfo[2][Besitzer] = 9; //Ballas
    GZInfo[3][Besitzer] = 10; //Yakuza
    GZInfo[4][Besitzer] = 11; //S.F. Rifa
    GZInfo[5][Besitzer] = 12; //Vagos
    GZInfo[6][Besitzer] = 13; //LCN

    Spoiler anzeigen
    //Das wird zB benötigt für die Farbe der GangZone
    stock FrakFarbe(fraktionid)
    {
    new farbcode;
    switch(fraktionid)
    {
    case 8:{farbcode=0x00D90064;} // GROVE STREET
    case 9:{farbcode=0xA40AFF64;} // BALLAS
    case 10:{farbcode=0xFFFFFF64;} // YAKUZA
    case 11:{farbcode=0x00FFFF64;} // S.F. RIFA
    case 12:{farbcode=0xFFFF0064;} // VAGOS
    case 13:{farbcode=0x0000FF64;} // LCN
    }
    return farbcode;
    }


    - Ich weiß nicht ob ich Fehler oder sonstiges drinnen habe.
    Kann mir bitte jemand sagen, was falsch ist?
    - Und wir kann ich nun abfragen, welcher Fraktion die Zone
    gehört?

  • Um abzufragen in welcher Zone sich ein Spieler befindet benutzt du eine forschleife und prüfst das ganze mit IsPlayerInArea
    und wenn er in einer ist lässt du die schleife abbrechen mit break;


    zu dem sollte dir mal bewusst sein das du die daten der Zonen speichern muss. Bei dir wäre es der neue besitzer später kannst du weitere variabeln folgen lassen.


    dann setzt mal die ganzen zonen in ein array.

    enum zonen {
    Float:minX,
    Float:minY,
    Float:maxX,
    Float:maxY,
    }
    #define MAX_ZONEN 6
    new ZonenInfo[MAX_ZONEN][zonen] = {
    {2203.125, -1980.46875, 2531.25, -1734.375},
    {1951.171875, -1939.453125, 2097.65625, -1751.953125},
    ......
    };


    dann kannst du das ganze dann per for schleife erstellen lassen und auch die farbe hinzufügen anhand der gespeicherten fraktion