Habe ein Gangfightsystem im Script, aber man kann einfach jedes Gebiet einnehmen!
Es muss keiner Online sein, jeder kann alles einnehmen in einer Gang/Mafia!
Ich möchte aber das man nur das Gebiet angreifen kann wenn der Gegner da ist, also der aktuelle Besitzer der Base -.-'
Hier das Script!
Ich weiss echt nicht woran es liegt und habe es mehrfach durchsucht..
if(strcmp(cmdtext,"/invade",true)==0){
if(IsAFightFaction(GetPlayerFaction(playerid))){
for(new fs;fs<sizeof(FightSystem);fs++){
if((FightSystem[fs][fsOwnerFaction] == GetPlayerFaction(playerid) && FightSystem[fs][fsFightTime]) || FightSystem[fs][fsAttackFaction] == GetPlayerFaction(playerid))
return SendClientMessage(playerid,FS_COL_GREY,"** Deine Gang / Mafia ist bereits in einem Fight.");
}
new on[2];
on[0] = 0;
on[1] = 0;
for(new fs;fs<sizeof(FightSystem);fs++){
for(new p=0;p<MAX_PLAYERS;p++)
{
if(GetPlayerFaction(p) == FightSystem[fs][fsOwnerFaction]) {
on[0]++;
}
if(GetPlayerFaction(p) == GetPlayerFaction(playerid))
{
on[1]++;
}
}
}
if(testphase == 0)
{
if(on[0] <= 2) return SendClientMessage(playerid, FS_COL_GREY, "Es sind nicht genügend Gegner Online (mindestens 2)");
if(on[1] <= 2) return SendClientMessage(playerid, FS_COL_GREY, "Es sind nicht genügend Mitglieder deiner Fraktion Online (mindestens 2)");
}
new TempZone = GetPlayerFightzone(playerid);
if(TempZone != -255){
if(FightSystem[TempZone][fsFightTimeCool] != 0)
{
format(stringx, sizeof(stringx), "Das Gebiet kann erst wieder in ca. %d Minuten erobert werden.", FightSystem[TempZone][fsFightTimeCool]);
return SendClientMessage(playerid, FS_COL_GREY,stringx);
}
if(!IsAFightFaction(FightSystem[TempZone][fsOwnerFaction]))
return SendClientMessage(playerid,FS_COL_GREY,"Gebiet wurde ausgeschaltet.");
if(FightSystem[TempZone][fsOwnerFaction] == GetPlayerFaction(playerid))
return SendClientMessage(playerid,FS_COL_GREY,"** Man greift nicht seine eigenen Leute an.");
if(FightSystem[TempZone][fsFightTime] || FightSystem[TempZone][fsAttackFaction] != -255)
return SendClientMessage(playerid,FS_COL_GREY,"** In diesem Gebiet wird bereits geschossen.");
if(FightSystem[TempZone][fsLastFight]){
new fsText[178];
format(fsText,sizeof(fsText),"Ganggebiet: Dieses Ganggebiet wurde bereits Angegriffen, wartet noch: '%d' Minuten.",FightSystem[TempZone][fsLastFight]);
SendClientMessage(playerid,FS_COL_GREY,fsText);
return 1;
}
for(new fs;fs<sizeof(FightSystem);fs++){
if(FightSystem[fs][fsOwnerFaction] == FightSystem[TempZone][fsOwnerFaction] && (FightSystem[fs][fsFightTime] || FightSystem[fs][fsAttackFaction] != -255))
return SendClientMessage(playerid,FS_COL_GREY,"Ganggebiet: Die Gang / Mafia der das Ganggebiet gehört hat bereits ein Kampf.");
}
new fsTextToOwner[255];
format(fsTextToOwner,sizeof(fsTextToOwner),"Kent Brockman: ihr werdet von %s angegriffen, kämpf um deine Zone!!!",GetFactionNameOfFaction(GetPlayerFaction(playerid)));
new fsName[MAX_PLAYER_NAME];
GetPlayerName(playerid,fsName,MAX_PLAYER_NAME);
new fsTextToAttack[255];
format(fsTextToAttack,sizeof(fsTextToAttack),"Kent Brockman: %s hat einen Gangfight gegen %s gestartet, kämpft um die Zone!",fsName,GetFactionNameOfFaction(FightSystem[TempZone][fsOwnerFaction]));
new fsText[64];
format(fsText,sizeof(fsText),"~y~%s",GetFactionNameOfFaction(FightSystem[TempZone][fsOwnerFaction]));
TextDrawSetString(FightSystem[TempZone][fsWinFaction],fsText);
TextDrawSetString(FightSystem[TempZone][fsWinKills],"~y~00 Kills");
format(fsText,sizeof(fsText),"~y~%s",GetFactionNameOfFaction(GetPlayerFaction(playerid)));
TextDrawSetString(FightSystem[TempZone][fsLoseFaction],fsText);
TextDrawSetString(FightSystem[TempZone][fsLoseKills],"~y~00 Kills");
TextDrawSetString(FightSystem[TempZone][fsTime],"Verbl. Zeit: 10 Minuten");//ZEIT
for(new i;i<MAX_PLAYERS;i++){
if(IsPlayerConnected(i)){
GangZoneFlashForPlayer(i,FightSystem[TempZone][fsZoneID],GetZoneColorOfFaction(GetPlayerFaction(playerid)));
if(GetPlayerFaction(i) == FightSystem[TempZone][fsOwnerFaction]){
PlayerPlaySound(i,1058,0.0,0.0,0.0);
SendClientMessage(i,FS_COL_YELLOW,fsTextToOwner);
TextDrawShowForPlayer(i,Fight);
TextDrawShowForPlayer(i,Fight2);
TextDrawShowForPlayer(i,FightBG);
TextDrawShowForPlayer(i,FightUnderline);
TextDrawShowForPlayer(i,FightSystem[TempZone][fsWinFaction]);
TextDrawShowForPlayer(i,FightSystem[TempZone][fsWinKills]);
TextDrawShowForPlayer(i,FightSystem[TempZone][fsLoseFaction]);
TextDrawShowForPlayer(i,FightSystem[TempZone][fsLoseKills]);
TextDrawShowForPlayer(i,FightSystem[TempZone][fsTime]);
}
if(GetPlayerFaction(i) == GetPlayerFaction(playerid)){
PlayerPlaySound(i,1058,0.0,0.0,0.0);
SendClientMessage(i,FS_COL_YELLOW,fsTextToAttack);
TextDrawShowForPlayer(i,Fight);
TextDrawShowForPlayer(i,Fight2);
TextDrawShowForPlayer(i,FightBG);
TextDrawShowForPlayer(i,FightUnderline);
TextDrawShowForPlayer(i,FightSystem[TempZone][fsWinFaction]);
TextDrawShowForPlayer(i,FightSystem[TempZone][fsWinKills]);
TextDrawShowForPlayer(i,FightSystem[TempZone][fsLoseFaction]);
TextDrawShowForPlayer(i,FightSystem[TempZone][fsLoseKills]);
TextDrawShowForPlayer(i,FightSystem[TempZone][fsTime]);
}
}
}
FightSystem[TempZone][fsAttackFaction] = GetPlayerFaction(playerid);
FightSystem[TempZone][fsKillsOfOwner] = 0;
FightSystem[TempZone][fsKillsOfAttack] = 0;
FightSystem[TempZone][fsFightTime] = 10;//ZEIT
FightSystem[TempZone][fsFightTimeCool] = 20;//ZEIT
FightSystem[TempZone][fsCTF][0] = -255;
FightSystem[TempZone][fsCTF][1] = 0;
FightSystem[TempZone][fsCTF][2] = 0;
return 1;
}return SendClientMessage(playerid,FS_COL_GREY,"** Du bist in keinem Gebiet!");
}else SendClientMessage(playerid,FS_COL_GREY,"** Du bist in keiner Gang / Mafia.");
return 1;
}