Das ist ja das lustige ... ich habe eigentlich nur das GF Script editiert ...
enum gebiet
{
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[1][gebiet] = {
{Owner,1971.4418,-2156.8086,2112.3213,-2120.2324,On,Stand1,Stand2,Angreifer},//Hier werden dann die Zonen erstellt, eigentlich alles auf 0 lassen, außer die Koordinaten...
};
new Gebiet[1];//Hier werden die "GangZones" gespeichert, damit wir diese in Farbe setzen können usw...
forward GangFight(gebietid);//Dies ist eine Überschrift einer public funktion. (Timer, wann der GangWar stoppt.)
forward UpdateZones();//Damit werden die Farben der Zonen aktualisiert.
//OnGameModeInit
for(new i=0;i<sizeof(Gebiete);i++)//Hier werden alle Gebiete durchgegangen die oben angegeben sind.
{
Gebiet[i] = GangZoneCreate(Gebiete[i][gMinX],Gebiete[i][gMinY],Gebiete[i][gMaxX],Gebiete[i][gMaxY]); // Hier wird eine Zone erstellt die in der Variable Gebiet gespeichert wird !
}
SetTimer("UpdateZones",10000,1);//Hier wird ein Timer gestartet der jede 10 sekunden die Funktion UpdateZones startet.
for(new i; i<sizeof(Gebiete); i++)//Damit alle gebiete durchlaufen werden
{
new color;//Erstellt eine neue Variable
if(Gebiete[i][gOwner] == 5){color=0x5A5A5AFF;}//Hier wird abgefragt welcher Fraktion das Gebiet gehört, damit dann die Farbe dafür gesetzt wird
if(Gebiete[i][gOwner] == 6){color=0xD2D2D2FF;}
if(Gebiete[i][gOwner] == 12){color=0xFEFEFEFF;}
if(Gebiete[i][gOwner] == 13){color=0x00C100FF;}
if(Gebiete[i][gOwner] == 14){color=0xB500B9FF;}
if(Gebiete[i][gOwner] == 15){color=0x141414FF;}
if(Gebiete[i][gOwner] == 16){color=0xFFFF00FF;}
if(Gebiete[i][gOwner] == 17){color=0x00EBFFFF;}
if(Gebiete[i][gOwner] == 18){color=0x0023FFFF;}
if(Gebiete[i][gOwner] == 19){color=0xD70000FF;}
if(Gebiete[i][gOwner] == 23){color=0xC59100FF;}
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.
}
for(new i; i<sizeof(Gebiete); i++)
{
GangZoneHideForPlayer(playerid,Gebiet[i]);//Für wenn das Gebiet versteckt werden soll.... und welches Gebiet
}
stock IsPlayerInGebiet(playerid)//Funktion bennen mit den jeweiligen Variablen oder auch Parameter genannt.
{
for(new i;i<sizeof(Gebiete);i++)//Damit wieder nach allen Zonen geschaut wird.
{
new Float:GetX,Float:GetY,Float:GetZ;//Neue Float Variablen erstellen, damit wir dort die Positionen des Spielers speichern können
GetPlayerPos(playerid,GetX,GetY,GetZ);//Die Position des Spielers in den oben genannten Variablen speichern.
if(Gebiete[i][gMinX] < GetX && Gebiete[i][gMaxX] > GetX && Gebiete[i][gMinY] < GetY && Gebiete[i][gMaxY] > GetY)//Hier wird abgefragt ob die Spielerkooridnanten in dem Bereich der Gangzone sind.
{
return i;//Hier wird die Gebietsid returned
}
return -1;//Wenn der nirgendwo drin ist wird halt -1 returned damit wir einen unterschied haben
}
return -1;//s.o.
}
dcmd_gw(playerid,params[])
{
#pragma unused params
if(PlayerInfo[playerid][pLeader] == 5||PlayerInfo[playerid][pLeader] == 6||PlayerInfo[playerid][pLeader] == 12||PlayerInfo[playerid][pLeader] == 13||PlayerInfo[playerid][pLeader] == 14||PlayerInfo[playerid][pLeader] == 15||PlayerInfo[playerid][pLeader] == 16||PlayerInfo[playerid][pLeader] == 17||PlayerInfo[playerid][pLeader] == 18||PlayerInfo[playerid][pLeader] == 19||PlayerInfo[playerid][pLeader] == 23||)//Hier wird abefragt welche Fraktion einen Gangfight starten darf
{
if(IsPlayerInGebiet(playerid) > -1)//Ob der Spieler in einem Gebiet ist.
{
new zone = IsPlayerInGebiet(playerid);//Die Gebietsid wird in der Variable zone gespeichert.
if(Gebiete[zone][gOn] == 1) return SendClientMessage(playerid,COLOR_BLUE,"Das Gebiet wird schon Umkämpft!");//Hier wird abgefragt ob das Gebiet schon bekämpft wird
if(Gebiete[zone][gOwner] == PlayerInfo[playerid][pLeader]) return SendClientMessage(playerid,COLOR_BLUE," Deine Fraktion ist im Besitzt dieses Gebietes");//Hier wird abgefragt ob die Fraktion schon im besitzt dieser Funktion ist
Gebiete[zone][gAngreifer] = PlayerInfo[playerid][pLeader];//Hier wird der Angreifer gesetzt.
Gebiete[zone][gOn] = 1;//Das der Gangfight für dieses Gebiet läuft
SetTimerEx("GangFight",3600000,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
{
if(PlayerInfo[i][pLeader] == Gebiete[zone][gOwner] ||PlayerInfo[i][pMember] == Gebiete[zone][gOwner])//Ob spieler oder Leader in dieser Fraktion ist
{
SendClientMessage(playerid,COLOR_RED,"Eines ihrer Gebiete wird angegriffen.");
}
if(PlayerInfo[i][pLeader] == Gebiete[zone][gAngreifer] ||PlayerInfo[i][pMember] == Gebiete[zone][gAngreifer])
{
SendClientMessage(playerid,COLOR_RED,"Dein Leader hat einen Gangwar gestartet!");
}
}
}
}
return 1;
}
public GangFight(gebietid)
{
Gebiete[gebietid][gOn] = 0;
if(Gebiete[gebietid][gStand2] > Gebiete[gebietid][gStand1])
{
Gebiete[gebietid][gOwner] = Gebiete[gebietid][gAngreifer];
}
new string[128];
format(string,sizeof(string),"Der Gewinner des Gebiets %d ist Fraktionsid: %d, mit %d : %d gewonnen",gebietid,Gebiete[gebietid][gOwner],Gebiete[gebietid][gStand1],Gebiete[gebietid][gStand2]);
SendClientMessageToAll(0x000000,string);
Gebiete[gebietid][gStand2]= 0;
Gebiete[gebietid][gStand1]=0;
Gebiete[gebietid][gAngreifer]=0;
return 1;
}
if(IsPlayerInGebiet(playerid) > -1)
{
new zone = IsPlayerInGebiet(playerid) ;
if(Gebiete[zone][gOn] == 1)
{
if(PlayerInfo[playerid][pLeader]==Gebiete[zone][gOwner] ||PlayerInfo[playerid][pMember]==Gebiete[zone][gOwner])
{
if(PlayerInfo[killerid][pLeader] == Gebiete[zone][gAngreifer] || PlayerInfo[killerid][pMember] == Gebiete[zone][gAngreifer])
{
Gebiete[zone][gStand2] ++;
}
}
if(PlayerInfo[playerid][pLeader]==Gebiete[zone][gAngreifer] ||PlayerInfo[playerid][pMember]==Gebiete[zone][gAngreifer])
{
if(PlayerInfo[killerid][pLeader] == Gebiete[zone][gOwner] || PlayerInfo[killerid][pMember] == Gebiete[zone][gOwner])
{
Gebiete[zone][gStand1] ++;
}
}
}
}