Mini Karte links wird bunt ab und zu

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
  • Hallo zusammen,
    nachdem ich die Gangzonen eingefügt habe wird meine Minikarte (links unten) ab und zu bunt also zu einer Gangfarbe den das Gebiet in der Nähe gehört!


    Hier die Zonen:

    new Gebiete[18][gebiet] = {//Erstellt eine Variable mit der Anzahl der Gebiete in der ersten [] angegeben und in der zweiten wird das Enum von oben eingefügt. (Dient zur genaueren Beschreibnung)
    //Hier werden dann die Zonen erstellt, eigentlich alles auf 0 lassen, außer die Koordinaten...
    {8,2737.4934,-1489.3401,2847.5774,-1230.9340,0,0,0,0},
    {9,2614.9209,-1832.7828,2541.3308,-1647.2617,0,0,0,0},
    {10,2606.2610,-2580.5198,2860.4028,-2322.2412,0,0,0,0},
    {11,1877.0497,-1146.0465,2056.5168,-1250.5948,0,0,0,0},
    {12,900.6957,-1821.7444,778.4864,-2073.3267,0,0,0,0},
    {13,1689.6215,-1170.5763,1831.0482,-1069.9423,0,0,0,0},
    {14,-1919.8407,-710.1276,-2153.6289,-1000.5717,0,0,0,0},
    {15,-2284.9307,59.4707,-2384.6118,256.5312,0,0,0,0},
    {16,-2722.5874,1491.4686,-2565.6169,1349.1218,0,0,0,0},
    {17,-1734.8204,1357.6724,-1603.7792,1394.6857,0,0,0,0},
    {8,-1357.8436,1507.9801,-1488.0469,1474.9901,0,0,0,0},
    {9,-1414.2943,132.8722,-1739.8848,72.3446,0,0,0,0},
    {10,289.3071,1335.4486,110.1690,1486.3530,0,0,0,0},
    {11,1012.6032,1362.9174,1177.6165,1802.8822,0,0,0,0},
    {12,1418.2599,2066.6470,1294.6589,2222.8787,0,0,0,0},
    {13,2776.8530,2293.3147,2989.5046,2570.7114,0,0,0,0},
    {14,2682.1748,2122.1094,2537.6348,2223.4187,0,0,0,0},
    {15,1936.7078,2273.3486,2026.4342,2202.4570,0,0,0,0}
    };


    Bitte um Hilfe


    MFG

    Einmal editiert, zuletzt von KING136 ()

  • Sicher, dass du nicht die Farben so angegeben hast, dass ein Ganggebiet sozusagen im Krieg ist?


    Edit: Also GangZoneFlashForPlayer

    the ones who are crazy enough to think that they can change the world, are the ones who do
    - Steve Jobs

  • wollte eh mal fragen was daran buggy ist weil man kann nur Gebiet eins angreifen Hier der Befehl bzw alles vom Gebiet:



    //--DAS ist bei mir ganz oben-----


    enum gebiet//Dies leitet eine genauere Beschreibung für einen Array ein.
    {
    gOwner,//Hier wird die Fraktionsid gespeichert, der das Gebiet im moment gehört
    Float:gMinX,//MinX - Koordinate für die Gangzone
    Float:gMinY,//MinY
    Float:gMaxX,//MaxX
    Float:gMaxY,//MaxY
    gOn,//Ob der Gangfight läuft
    gStand1,//Der Score für das Owner Team
    gStand2,//Score für die Angreifer
    gAngreifer//Hier wird die Fraktionsid gespeichert
    };


    new Gebiete[18][gebiet] = {//Erstellt eine Variable mit der Anzahl der Gebiete in der ersten [] angegeben und in der zweiten wird das Enum von oben eingefügt. (Dient zur genaueren Beschreibnung)
    //Hier werden dann die Zonen erstellt, eigentlich alles auf 0 lassen, außer die Koordinaten...
    {8,2737.4934,-1489.3401,2847.5774,-1230.9340,0,0,0,0},
    {9,2614.9209,-1832.7828,2541.3308,-1647.2617,0,0,0,0},
    {10,2606.2610,-2580.5198,2860.4028,-2322.2412,0,0,0,0},
    {11,1877.0497,-1146.0465,2056.5168,-1250.5948,0,0,0,0},
    {12,900.6957,-1821.7444,778.4864,-2073.3267,0,0,0,0},
    {13,1689.6215,-1170.5763,1831.0482,-1069.9423,0,0,0,0},
    {14,-1919.8407,-710.1276,-2153.6289,-1000.5717,0,0,0,0},
    {15,-2284.9307,59.4707,-2384.6118,256.5312,0,0,0,0},
    {16,-2722.5874,1491.4686,-2565.6169,1349.1218,0,0,0,0},
    {17,-1734.8204,1357.6724,-1603.7792,1394.6857,0,0,0,0},
    {8,-1357.8436,1507.9801,-1488.0469,1474.9901,0,0,0,0},
    {9,-1414.2943,132.8722,-1739.8848,72.3446,0,0,0,0},
    {10,289.3071,1335.4486,110.1690,1486.3530,0,0,0,0},
    {11,1012.6032,1362.9174,1177.6165,1802.8822,0,0,0,0},
    {12,1418.2599,2066.6470,1294.6589,2222.8787,0,0,0,0},
    {13,2776.8530,2293.3147,2989.5046,2570.7114,0,0,0,0},
    {14,2682.1748,2122.1094,2537.6348,2223.4187,0,0,0,0},
    {15,1936.7078,2273.3486,2026.4342,2202.4570,0,0,0,0}
    };


    new Gebiet[18];//Hier werden die "GangZones" gespeichert, damit wir diese in Farbe setzen können usw...


    forward GangFight(gebietid);//Dies ist eine Überschrift einer public funktion. (Dies wird für den Timer verwendet, wann der GangWar stoppt.)
    forward UpdateZones();//Damit werden die Farben der zonen aktualisiert.


    //---Das unter GmaemodeInit----


    SetTimer("UpdateZones",10000,1);//Hier wird ein Timer gestartet der jede 10 sekunden die Funktion UpdateZones startet.


    //---Das unter Spawn----


    for(new i; i<sizeof(Gebiete); i++)//Damit alle gebiete durchlaufen werden
    {
    new color;//Erstellt eine neue Variable
    if(Gebiete[i][gOwner] == 8){color=LILA;}//Hier wird abgefragt welcher Fraktion das Gebiet gehört, damit dann die Farbe dafür gesetzt wird
    if(Gebiete[i][gOwner] == 9){color=GRÜN;}
    if(Gebiete[i][gOwner] == 10){color=GELB;}
    if(Gebiete[i][gOwner] == 11){color=GRAU;}
    if(Gebiete[i][gOwner] == 12){color=WEISS;}
    if(Gebiete[i][gOwner] == 13){color=TÜRKIS;}
    if(Gebiete[i][gOwner] == 14){color=SCHWARZ;}
    if(Gebiete[i][gOwner] == 15){color=ROT;}
    if(Gebiete[i][gOwner] == 16){color=BRAUN;}
    GangZoneShowForPlayer(playerid, Gebiet[i], color); // Hier wird dann die Zone gezeigt. Als erstes die spielerid, und die ist bei OnPlayerSpawn nunmal mit playerid definiert, dann welches Gebiet also Gebiet^^ und als letztes die Farbe die wir oben definiert haben.
    }



    //---Das unter death---- alles onplayer-----


    for(new i; i<sizeof(Gebiete); i++)
    {
    GangZoneHideForPlayer(playerid,Gebiet[i]);//Für wenn das Gebiet versteckt werden soll.... und welches Gebiet
    }
    if(IsPlayerInGebiet(playerid) > -1)//Ob der gestorbene in einem GF gebiet war
    {
    new zone = IsPlayerInGebiet(playerid);//Übergibt die Zoneid
    new fID = Gebiete[zone][gAngreifer];
    new aID = Gebiete[zone][gOwner];
    if(Gebiete[zone][gOn] == 1)//Ob dort Gangfight läuft
    {
    if(isPlayerInFrakt(playerid,aID))//Ob der Tote in der Besitzer Fraktion ist
    {
    if(isPlayerInFrakt(killerid,fID))//Ob der Mörder in der Gegnrischer Partei ist.
    {
    Gebiete[zone][gStand2] +=1;//Dann bekommen die Gegner Punkte
    }
    }
    if(isPlayerInFrakt(playerid,fID))//Siehe oben nur umgekehrt.. :P
    {
    if(isPlayerInFrakt(killerid,aID))
    {
    Gebiete[zone][gStand1] +=1;
    }
    }
    }
    }


    //--Das ist mein Befehl----


    ocmd:krieg(playerid,params[])
    {
    if(isPlayerInFrakt(playerid,8)||isPlayerInFrakt(playerid,9)
    ||isPlayerInFrakt(playerid,10)||isPlayerInFrakt(playerid,11)
    ||isPlayerInFrakt(playerid,12)||isPlayerInFrakt(playerid,13)
    ||isPlayerInFrakt(playerid,14)||isPlayerInFrakt(playerid,15)
    ||isPlayerInFrakt(playerid,16))//Hier wird abefragt welche Fraktion einen Gangfight starten darf
    {
    if(IsPlayerInGebiet(playerid) >= 0)//Ob der Spieler in einem Gebiet ist.
    {
    if(GetPVarInt(playerid,"Leader") == 1)
    {
    new zone = IsPlayerInGebiet(playerid);//Die Gebietsid wird in der Variable zone gespeichert.
    if(Gebiete[zone][gOn] == 1) return SendClientMessage(playerid,BLAU,"Das Gebiet wird schon angegriffen!");//Hier wird abgefragt ob das Gebiet schon bekämpft wird
    if(Gebiete[zone][gOwner] == GetPVarInt(playerid,"Fraktion")) return SendClientMessage(playerid,BLAU," Deine Fraktion ist im Besitzt dieses Gebietes");//Hier wird abgefragt ob die Fraktion schon im besitzt dieser Funktion ist
    Gebiete[zone][gAngreifer] = GetPVarInt(playerid,"Fraktion");//Hier wird der Angreifer gesetzt.
    Gebiete[zone][gOn] = 1;//Das der Gangfight für dieses Gebiet läuft
    SetTimerEx("GangFight",300000,0,"i",zone); //Dies startet einen Timer der eine Stunde läuft , damit beenden wir den Gangifght. Die Zoneid wird mit übergeben
    for(new i; i<MAX_PLAYERS; i++)//Damit jeder Spieler abgefragt wird
    {
    new fID = Gebiete[zone][gOwner];
    new aID = Gebiete[zone][gAngreifer];
    if(isPlayerInFrakt(i,fID))//Ob spieler oder Leader in dieser Fraktion ist
    {
    SendClientMessage(playerid,ORANGE,"**Achtung**:Eines ihrer Gebiete wird angegriffen.");//Sendet eine Mitteilung
    return 1;
    }
    if(isPlayerInFrakt(i,aID))//siehe oben
    {
    SendClientMessage(playerid,GELB,"**Info**:Dein Leader hat ein Gangwar gestartet!");
    return 1;
    }
    }
    }
    return SendClientMessage(playerid,ROT,"Du bist kein Leader!");
    }
    return SendClientMessage(playerid,ROT,"Du bist in keinem Gangwar Gebiet!");
    }
    return SendClientMessage(playerid,ROT,"Du bist kein Mitglied einer Gang oder Mafia!");
    }


    //--Meine publics----


    public GangFight(gebietid)
    {
    Gebiete[gebietid][gOn] = 0;
    if(Gebiete[gebietid][gStand2] > Gebiete[gebietid][gStand1])//Hier wird abgefragt ob der Stand des angreigers größer ist als des Owners...
    {
    Gebiete[gebietid][gOwner] = Gebiete[gebietid][gAngreifer]; //Hier wird ein neuer Owner gesetzt, da die Angreifer gewonnen haben...
    }
    //Wenn der Owner gewonnen hat bleibt die Gleich :P
    new string[128];//ersteltl eininen string :D
    format(string,sizeof(string),"Der Gewinner des Gebiets %d ist Fraktionsid: %d und hat mit %d : %d gewonnen",gebietid,Gebiete[gebietid][gOwner],Gebiete[gebietid][gStand1],Gebiete[gebietid][gStand2]);//Erstellt eine Message mit Variablen
    SendClientMessageToAll(GRÜN,string);
    Gebiete[gebietid][gStand2]= 0; //Setzt die Scores zurück
    Gebiete[gebietid][gStand1]=0;//oben
    Gebiete[gebietid][gAngreifer]=0;//oben
    return 1;
    }


    public UpdateZones()
    {
    for(new player; player < MAX_PLAYERS; player++)//Damit alle Spieler durchlaufen werden
    {
    for(new i; i<sizeof(Gebiete); i++)//Damit alle Gebiete durchlaufen werden
    {
    GangZoneHideForPlayer(player,Gebiet[i]);//Damit werden alle Gebiete für alle User versteckt
    new color;//Erstellt eine neue Variable
    if(Gebiete[i][gOwner] == 8){color=LILA;}//Hier wird abgefragt welcher Fraktion das Gebiet gehört, damit dann die Farbe dafür gesetzt wird
    if(Gebiete[i][gOwner] == 9){color=GRÜN;}
    if(Gebiete[i][gOwner] == 10){color=GELB;}
    if(Gebiete[i][gOwner] == 11){color=GRAU;}
    if(Gebiete[i][gOwner] == 12){color=WEISS;}
    if(Gebiete[i][gOwner] == 13){color=TÜRKIS;}
    if(Gebiete[i][gOwner] == 14){color=SCHWARZ;}
    if(Gebiete[i][gOwner] == 15){color=ROT;}
    if(Gebiete[i][gOwner] == 16){color=BRAUN;}
    GangZoneShowForPlayer(player, Gebiet[i], color); //Zeigt die Zone f ür die Spieler wieder mit der neuen/alten Farbe
    if(Gebiete[i][gOn] == 1)//Fragt ab ob Gangfight in einem Gebiet läuft
    {
    if(Gebiete[i][gAngreifer] == 8){color=LILA;}//Hier wird abgefragt welcher Fraktion das Gebiet gehört, damit dann die Farbe dafür gesetzt wird
    if(Gebiete[i][gAngreifer] == 9){color=GRÜN;}
    if(Gebiete[i][gAngreifer] == 10){color=GELB;}
    if(Gebiete[i][gAngreifer] == 11){color=GRAU;}
    if(Gebiete[i][gAngreifer] == 12){color=WEISS;}
    if(Gebiete[i][gAngreifer] == 13){color=TÜRKIS;}
    if(Gebiete[i][gAngreifer] == 14){color=SCHWARZ;}
    if(Gebiete[i][gAngreifer] == 15){color=ROT;}
    if(Gebiete[i][gAngreifer] == 16){color=BRAUN;}
    GangZoneFlashForPlayer(player,Gebiet[i],color);//"Flasht die Zone" in der Angreifer Farbe und Owner Farbe
    }
    }
    }
    return 1;
    }


    //---Mein stock---


    stock IsPlayerInGebiet(playerid)
    {
    for(new i;i<sizeof(Gebiete);i++)
    {
    new Float:GetX,Float:GetY,Float:GetZ;
    GetPlayerPos(playerid,GetX,GetY,GetZ);
    if(Gebiete[i][gMinX] < GetX && Gebiete[i][gMaxX] > GetX && Gebiete[i][gMinY] < GetY && Gebiete[i][gMaxY] > GetY)
    {
    return i;
    }
    return -1;
    }
    return -1;
    }




    Bitte um hilfe



    MFG