Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <ocmd>
- #include <m_zones>
- #include <dini>
- //Colors
- #define Schwarz 0x000000FF
- #define Rot 0xE10000FF
- #define Gelb 0xFFE600FF
- #define HBlau 0x00FFFFFF
- #define DBlau 0x0000FFFF
- #define Blau 0x2E9AFEFF
- #define HGruen 0x00FF00FF
- #define Orange 0xFFAB00FF
- #define Weiss 0xFFFFFFFF
- #define Grau 0xA0A0A0FF
- #define Grauu 0x646464FF
- #define Gold 0xD4A017AA
- #define Lila 0x7800FFFF
- #define Pink 0xFF00CDFF
- #define Gruen 0x009F32FF
- #define HellGrau 0xDCDCDCFF
- #define DunkelGrau 0x787878FF
- #define OAmtFarbe 0xC3FF00FF
- #define Braun 0x663300FF
- #define DBraun 0x550000FF
- #define TWeiss 0xFFFFFF00
- /* Settings */
- #define MAX_GZ 40 //Maximale Gangzonen festlegen
- #define MaxPoints 100 //Wie viel Punkte eine Fraktion haben muss, um den Gangfight gewinnen zu können
- #define GFTime 60 //Wie lange ein Gangfight dauert
- #define GFRuhe 30 //Wie lange die Zone nach einem Gangfight nicht mehr angegriffen werden darf
- #define FlaggeZeit 30 //Wie viel Sekunden es dauert, eine Flagge zu erobern
- #define MAX_FRAKTIONEN 21 //Anzahl der Fraktionen festlegen [+1]
- #define G_FILE "/Gangzonen.ini" //Wo die Gangzonen gespeichert werden sollen
- stock bool:NoGang(playerid){
- switch(GetPVarInt(playerid,"Fraktion")){ //PVar anpassen
- case 10,11,12,13:return true; //Gang-IDs anpassen
- default:return false;
- }
- return false;
- }
- stock bool:Leader(playerid){
- switch(GetPVarInt(playerid,"FrakRank")){ //PVar anpassen
- case 7:return true; //Leader-Rank anpassen
- default:return false;
- }
- return false;
- }
- stock GetFraktion(playerid)return GetPVarInt(playerid,"Fraktion");//PVar anpassen
- stock FrakColor(fid){
- new color;
- switch(fid)
- {
- case 0:color = 0x000000FF;
- case 1:color = 0xE10000FF;
- case 2:color = 0x646464FF;
- //...
- default:color = 0xFFFFFFFF;
- }
- return color;
- }
- stock FrakName(fid){
- new name[16];
- switch(fid){
- case 0:name = "No-one";
- case 1:name = "Frak_01";
- case 2:name = "Frak_02";
- //...
- default:name = "Unnamed";
- }
- return name;
- }
- /* Settings */
- #define dInt dini_Int
- #define dIntSet dini_IntSet
- #define dGet dini_Get
- #define dSet dini_Set
- #define dFloatSet dini_FloatSet
- #define dFloat dini_Float
- #define dExist dini_Exists
- #define Connected IsPlayerConnected
- #define InVehicle IsPlayerInVehicle
- #define InAnyVehicle IsPlayerInAnyVehicle
- #define GetPos GetPlayerPos
- #define SetPos SetPlayerPos
- #define RangeOfPoint IsPlayerInRangeOfPoint
- new fmex[128];
- #define SCMToAllF(%0,%1,%2) format(fmex,128,%1,%2) && SendClientMessageToAll(%0, fmex)
- #define SCMF(%0,%1,%2) format(fmex,128,%2) && SendClientMessage(%0,%1,fmex)
- #define SCMToAll(%0,%1) format(fmex,128,%1) && SendClientMessageToAll(%0,%1)
- new Text:GFPunkte_o,
- Text:GFPunkte_a,
- Text:GFZeit,
- ImGF[MAX_FRAKTIONEN],
- PlayerName[MAX_PLAYERS][MAX_PLAYER_NAME];
- enum eGZ
- {
- Float:max_x,
- Float:max_y,
- Float:min_x,
- Float:min_y,
- Float:flagge_x,
- Float:flagge_y,
- Float:flagge_z,
- owner,
- zid,
- erstellt,
- Text3D:label,
- pickup,
- ruhe,
- ruhetimer
- };
- new GZ[MAX_GZ][eGZ];
- enum eGF
- {
- owner,
- angreifer,
- punkte_o,
- punkte_a,
- timer,
- zeit,
- started,
- flaggetimer,
- flaggeerobert,
- flaggewerobert
- };
- new GF[MAX_GZ][eGF];
- enum eC
- {
- Float:min_x,
- Float:min_y,
- Float:max_x,
- Float:max_y,
- zid,
- create
- }
- new CZ[MAX_PLAYERS][eC];
- forward Gangwar(zoneid);
- forward GFRuheTimer(zoneid);
- forward FlaggeErobern(playerid,zone);
- public OnFilterScriptInit(){
- M_Init();
- GFPunkte_o = TextDrawCreate(19, 326, "Punkte (Owner): ");
- TextDrawFont(GFPunkte_o , 3);
- TextDrawLetterSize(GFPunkte_o , 0.3, 2.1);
- TextDrawColor(GFPunkte_o , Blau);
- TextDrawSetOutline(GFPunkte_o , 0);
- TextDrawSetProportional(GFPunkte_o , 1);
- TextDrawSetShadow(GFPunkte_o , 1);
- GFPunkte_a = TextDrawCreate(19, 346, "Punkte (angreifer): ");
- TextDrawFont(GFPunkte_a , 3);
- TextDrawLetterSize(GFPunkte_a , 0.3, 2.1);
- TextDrawColor(GFPunkte_a , Rot);
- TextDrawSetOutline(GFPunkte_a , 0);
- TextDrawSetProportional(GFPunkte_a , 1);
- TextDrawSetShadow(GFPunkte_a , 1);
- GFZeit = TextDrawCreate(19, 306, "Zeit: ");
- TextDrawFont(GFZeit , 3);
- TextDrawLetterSize(GFZeit , 0.3, 2.1);
- TextDrawColor(GFZeit , HGruen);
- TextDrawSetOutline(GFZeit , 0);
- TextDrawSetProportional(GFZeit , 1);
- TextDrawSetShadow(GFZeit , 1);
- if(!dExist(G_FILE))dini_Create(G_FILE), SaveGZ(), LoadGZ();
- for(new i = 0; i<MAX_FRAKTIONEN; i++)ImGF[i] = 0;
- return LoadGZ();
- }
- public OnFilterScriptExit(){
- return SaveGZ();
- }
- public OnPlayerConnect(playerid){
- GetPlayerName(playerid,PlayerName[playerid],MAX_PLAYER_NAME);
- return M_Connect(playerid);
- }
- public OnPlayerDeath(playerid,killerid,reason){
- if(M_IsPlayerInAnyZone(playerid)){
- new zone = M_GetPlayerCurrentZone(playerid);
- if(GF[zone][started] != 1)return 1;
- if((GetFraktion(playerid) == GF[zone][owner]) && (GetFraktion(killerid) == GF[zone][angreifer])){
- GF[zone][punkte_a] ++;
- GameTextForPlayer(killerid,"Gangfightkill!",888*2,6);
- }
- else if((GetFraktion(playerid) == GF[zone][angreifer]) && (GetFraktion(killerid) == GF[zone][owner])){
- GF[zone][punkte_o] ++;
- GameTextForPlayer(killerid,"Gangfightkill!",888*2,6);
- }
- if((GF[zone][punkte_o] == MaxPoints) || (GF[zone][punkte_a] == MaxPoints))GF[zone][zeit] = GFTime;
- new str[64]; format(str,sizeof(str),"Punkte (Owner): %i",GF[zone][punkte_o]);
- TextDrawSetString(GFPunkte_o,str);
- format(str,sizeof(str),"Punkte (angreifer): %i",GF[zone][punkte_a]);
- TextDrawSetString(GFPunkte_a,str);
- }
- return 1;
- }
- public FlaggeErobern(playerid,zone)
- {
- new str[64];
- GF[zone][flaggeerobert] ++;
- if(GF[zone][flaggeerobert] >= FlaggeZeit && GF[zone][flaggewerobert] == 1)
- {
- if(!IsPlayerInRangeOfPoint(playerid,15,GZ[zone][flagge_x],GZ[zone][flagge_y],GZ[zone][flagge_z]))
- {
- format(str,sizeof(str),"|Gangfight| %s hat es nicht geschafft, die Flagge zu erobern! |Gangfight|",PlayerName[playerid]);
- for(new i = 0; i<MAX_PLAYERS; i++)
- {
- if(!IsPlayerConnected(i))continue;
- if((GetFraktion(i) != GZ[zone][owner]) && (GetFraktion(i) != GF[zone][angreifer]))continue;
- GF[zone][flaggeerobert] = 0,GF[zone][flaggewerobert] = 0;
- KillTimer(GF[zone][flaggetimer]);
- return SCMF(i,Gelb,str);
- }
- return 1;
- }
- GF[zone][punkte_a] += 3;
- if((GF[zone][punkte_o] == MaxPoints) || (GF[zone][punkte_a] == MaxPoints))GF[zone][zeit] = GFTime;
- format(str,sizeof(str),"Punkte (Owner): %i",GF[zone][punkte_o]);
- TextDrawSetString(GFPunkte_o,str);
- format(str,sizeof(str),"Punkte (angreifer): %i",GF[zone][punkte_a]);
- TextDrawSetString(GFPunkte_a,str);
- format(str,sizeof(str),"|Gangfight| %s hat die Flagge erobert! |Gangfight|",PlayerName[playerid]);
- for(new i = 0; i<MAX_PLAYERS; i++)
- {
- if(!IsPlayerConnected(i))continue;
- if((GetFraktion(i) != GZ[zone][owner]) && (GetFraktion(i) != GF[zone][angreifer]))continue;
- GF[zone][flaggeerobert] = 0,GF[zone][flaggewerobert] = 0;
- KillTimer(GF[zone][flaggetimer]);
- return SCMF(i,Gelb,str);
- }
- return 1;
- }
- return 1;
- }
- public Gangwar(zoneid)
- {
- if(GF[zoneid][started] != 1)return KillTimer(GF[zoneid][timer]);
- GF[zoneid][zeit] ++;
- new strin[128];
- new str[64]; format(str,sizeof(str),"Zeit: %i / %i Minuten",GF[zoneid][zeit],GFTime);
- TextDrawSetString(GFZeit,str);
- if(GF[zoneid][punkte_a] >= MaxPoints || GF[zoneid][punkte_o] >= MaxPoints)
- {
- ImGF[GF[zoneid][owner]] = 0,ImGF[GF[zoneid][angreifer]] = 0;
- if(GF[zoneid][punkte_o] > GF[zoneid][punkte_a])format(strin,sizeof(strin),"Die Gang '%s' hat den Gangfight gegen die Fraktion '%s' mit %i / %i gewonnen.",FrakName(GF[zoneid][owner]),FrakName(GF[zoneid][angreifer]),GF[zoneid][punkte_o],GF[zoneid][punkte_a]);
- else if(GF[zoneid][punkte_a] > GF[zoneid][punkte_o])
- {
- format(strin,sizeof(strin),"Die Gang '%s' hat den Gangfight gegen die Fraktion '%s' mit %i / %i gewonnen.",FrakName(GF[zoneid][angreifer]),FrakName(GF[zoneid][owner]),GF[zoneid][punkte_a],GF[zoneid][punkte_o]);
- GZ[zoneid][owner] = GF[zoneid][angreifer];
- }
- SCMToAll(DBlau,strin);
- GF[zoneid][punkte_o] = 0,GF[zoneid][punkte_a] = 0;
- M_ZoneStopFlashForAll(zoneid);
- M_DestroyZone(zoneid);
- GZ[zoneid][ruhe] = GFRuhe;
- GZ[zoneid][ruhetimer] = SetTimerEx("GFRuheTimer",888*60,true,"i",zoneid);
- return SaveGZ_(zoneid),LoadGZ_(zoneid);
- }
- else if(GF[zoneid][zeit] >= GFTime)
- {
- GF[zoneid][started] = 0;
- if(GF[zoneid][punkte_o] > GF[zoneid][punkte_a])format(strin,sizeof(strin),"Die Gang '%s' hat den Gangfight gegen die Fraktion '%s' mit %i / %i gewonnen.",FrakName(GF[zoneid][owner]),FrakName(GF[zoneid][angreifer]),GF[zoneid][punkte_o],GF[zoneid][punkte_a]);
- else if(GF[zoneid][punkte_a] > GF[zoneid][punkte_o])
- {
- format(strin,sizeof(strin),"Die Gang '%s' hat den Gangfight gegen die Fraktion '%s' mit %i / %i gewonnen.",FrakName(GF[zoneid][angreifer]),FrakName(GF[zoneid][owner]),GF[zoneid][punkte_a],GF[zoneid][punkte_o]);
- GZ[zoneid][owner] = GF[zoneid][angreifer];
- }
- SCMToAll(DBlau,strin);
- GF[zoneid][punkte_o] = 0,GF[zoneid][punkte_a] = 0;
- M_ZoneStopFlashForAll(zoneid);
- M_DestroyZone(zoneid);
- GZ[zoneid][ruhe] = GFRuhe;
- GZ[zoneid][ruhetimer] = SetTimerEx("GFRuheTimer",888*60,true,"i",zoneid);
- return SaveGZ_(zoneid),LoadGZ_(zoneid);
- }
- return 1;
- }
- public GFRuheTimer(zoneid)
- {
- GZ[zoneid][ruhe] --;
- if(GZ[zoneid][ruhe] <= 0)return KillTimer(GZ[zoneid][ruhetimer]);
- return 1;
- }
- public M_OnPlayerEnterZone(playerid,zoneid)
- {
- return 1;
- }
- public M_OnPlayerLeaveZone(playerid,zoneid)
- {
- return 1;
- }
- ocmd:angriff(playerid,params[])
- {
- if(NoGang(playerid))return SCMF(playerid,Rot,"Du bist in keiner Gang / Mafia!");
- if(!Leader(playerid))return SCMF(playerid,Rot,"Du bist kein Leader!");
- if(!M_IsPlayerInAnyZone(playerid))return SCMF(playerid,Rot,"Du bist in keiner Zone!");
- new zone = M_GetPlayerCurrentZone(playerid);
- if(GZ[zone][owner] == GetFraktion(playerid))return SCMF(playerid,Rot,"Du kannst deine eigene Zone nicht angreifen!");
- if(GZ[zone][ruhe] >= 1)return SCMF(playerid,Rot,"Die Zone kann noch nicht angegriffen werden!");
- if(!IsPlayerInRangeOfPoint(playerid,5,GZ[zone][flagge_x],GZ[zone][flagge_y],GZ[zone][flagge_z]))return SCMF(playerid,Rot,"Du stehst nicht an der Flagge dieser Zone!");
- if(GF[zone][started] == 1)return SCMF(playerid,Rot,"Der Gangfight wurde bereits gestartet!");
- if(ImGF[GF[zone][owner]] >= 1)return SCMF(playerid,Rot,"Diese Gang ist bereits in einem Gangfight!");
- if(GZ[zone][owner] <= 0)
- {
- GZ[zone][owner] = GetFraktion(playerid);
- return SaveGZ_(zone),LoadGZ_(zone);
- }
- for(new i = 0; i<MAX_PLAYERS; i++)
- {
- if(!IsPlayerConnected(i))continue;
- if(GetFraktion(i) != GF[zone][owner])continue;
- if(!Leader(i))continue;
- if(i == INVALID_PLAYER_ID)
- {
- SCMF(playerid,Rot,"Der Leader dieser Gang ist nicht online!");
- break;
- }
- }
- M_ZoneFlashForAll(zone,FrakColor(GetFraktion(playerid)));
- GF[zone][angreifer] = GetFraktion(playerid);
- GF[zone][owner] = GZ[zone][owner],GF[zone][flaggewerobert] = 0;
- GF[zone][started] = 1,GF[zone][punkte_o] = 0, GF[zone][punkte_a] = 0,GF[zone][zeit] = 0;
- ImGF[GetFraktion(playerid)] = 1,ImGF[GF[zone][owner]] = 1;
- for(new i = 0; i<MAX_PLAYERS; i++)
- {
- if(!IsPlayerConnected(i))continue;
- if((GetFraktion(i) != GF[zone][owner]) && (GetFraktion(i) != GF[zone][angreifer]))continue;
- TextDrawShowForPlayer(i,GFPunkte_o);
- TextDrawShowForPlayer(i,GFPunkte_a);
- TextDrawShowForPlayer(i,GFZeit);
- }
- TextDrawShowForPlayer(playerid,GFPunkte_o);
- TextDrawShowForPlayer(playerid,GFPunkte_a);
- TextDrawShowForPlayer(playerid,GFZeit);
- new str[64]; format(str,sizeof(str),"Zeit: %i / %i Minuten",GF[zone][zeit],GFTime);
- TextDrawSetString(GFZeit,str);
- format(str,sizeof(str),"Punkte (Owner): %i",GF[zone][punkte_o]);
- TextDrawSetString(GFPunkte_o,str);
- format(str,sizeof(str),"Punkte (angreifer): %i",GF[zone][punkte_a]);
- TextDrawSetString(GFPunkte_a,str);
- SCMF(playerid,Rot,"Du hast den Gangfight gestartet!");
- return GF[zone][timer] = SetTimerEx("Gangwar",888*60,true,"i",zone);
- }
- ocmd:flagge(playerid,params[])
- {
- if(NoGang(playerid))return SCMF(playerid,Rot,"Du bist in keiner Gang / Mafia!");
- if(!M_IsPlayerInAnyZone(playerid))return SCMF(playerid,Rot,"Du bist in keiner Zone!");
- new zone = M_GetPlayerCurrentZone(playerid);
- if(GZ[zone][owner] == GetFraktion(playerid))return SCMF(playerid,Rot,"Du kannst deine eigene Flagge nicht erobern!");
- if(GF[zone][started] != 1)return SCMF(playerid,Rot,"Der Gangfight wurde noch nicht gestartet!");
- if(GF[zone][flaggewerobert] >= 1)return SCMF(playerid,Rot,"Die Flagge wird bereits erobert!");
- new i = 0,str[128]; format(str,sizeof(str),"|Gangfight| %s hat begonnen, die Flagge zu erobern! |Gangfight|",PlayerName[playerid]);
- for(; i<MAX_PLAYERS; i++)
- {
- if(!IsPlayerConnected(i))continue;
- if((GetFraktion(i) != GZ[zone][owner]) && (GetFraktion(i) != GF[zone][angreifer]))continue;
- SCMF(i,Gelb,str);
- }
- GF[zone][flaggeerobert] = 0;
- GF[zone][flaggewerobert] = 1;
- return GF[zone][flaggetimer] = SetTimerEx("FlaggeErobern",888,true,"ii",playerid,zone);
- }
- ocmd:creategangzone(playerid,params[])
- {
- if(!IsPlayerAdmin(playerid))return 1;
- new Float:x,Float:y,Float:z;
- GetPlayerPos(playerid,x,y,z);
- CZ[playerid][min_x] = x, CZ[playerid][min_y] = y, CZ[playerid][create] = 1;
- SCMF(playerid,Blau,"Bitte überquere jetzt die Zone um die Zone richtig zu erstellen.");
- return SCMF(playerid,Rot,"Wenn du die Zone überquert hast, tippe '/zoneende'.");
- }
- ocmd:zoneende(playerid,params[])
- {
- if(CZ[playerid][create] != 1)return SCMF(playerid,Rot,"Um eine Gangzone zu erstellen, benutze '/creategangzone'!");
- new Float:x,Float:y,Float:z,i,str[64];
- GetPlayerPos(playerid,x,y,z);
- CZ[playerid][max_x] = x,CZ[playerid][max_y] = y;
- for(; i<MAX_GZ; i++)
- {
- if(GZ[i][erstellt] == 1)continue;
- GZ[i][min_x] = CZ[playerid][min_x],GZ[i][min_y] = CZ[playerid][min_y],GZ[i][max_x] = CZ[playerid][max_x],GZ[i][max_y] = CZ[playerid][max_y];
- GZ[i][zid] = i,GZ[i][erstellt] = 1,GZ[i][owner] = 0,CZ[i][zid] = i;
- format(str,64,"%i| Besitzer: '%s'",GZ[i][zid],FrakName(GZ[i][owner]));
- M_CreateZone(GZ[i][min_x],GZ[i][min_y],GZ[i][max_x],GZ[i][max_y],FrakColor(GZ[i][owner]),str,FrakColor(GZ[i][owner]));
- break;
- }
- return SCMF(playerid,Blau,"Nun gehe zum Angriffspunkt hin und tippe '/cflagge'.");
- }
- ocmd:cflagge(playerid,params[])
- {
- if(CZ[playerid][create] != 1)return SCMF(playerid,Rot,"Um eine Gangzone zu erstellen, benutze '/creategangzone'!");
- new Float:x,Float:y,Float:z;
- GetPlayerPos(playerid,x,y,z);
- GZ[CZ[playerid][zid]][flagge_x] = x, GZ[CZ[playerid][zid]][flagge_y] = y, GZ[CZ[playerid][zid]][flagge_z] = z,CZ[playerid][create] = 0;
- GZ[CZ[playerid][zid]][pickup] = CreatePickup(1314,1,x,y,z,0);
- GZ[CZ[playerid][zid]][label] = Create3DTextLabel("Tippe '/angriff', um das Gebiet anzugreifen.\nTippe '/flagge', um die Flagge zu erobern.",Rot,x,y,z,20,0);
- SaveGZ();
- return SCMF(playerid,Blau,"Du hast die Zone erfolgreich erstellt.");
- }
- ocmd:destroyzone(playerid,params[])
- {
- if(!IsPlayerAdmin(playerid))return 1;
- if(!M_IsPlayerInAnyZone(playerid))return SCMF(playerid,Rot,"Du bist in keiner Zone!");
- new zone = M_GetPlayerCurrentZone(playerid);
- DisableZone(zone);
- return SCMF(playerid,Blau,"Du hast die Zone erfolgreich gelöscht.");
- }
- stock LoadGZ()
- {
- new i = 0,gz[32],str[64],counter = 0; format(gz,32,G_FILE);
- for(; i<MAX_GZ; i++)
- {
- GZ[i][zid] = i;
- format(str,64,"Zone%d_owner",i); GZ[i][owner] = dInt(gz,str);
- format(str,64,"Zone%d_maxX",i); GZ[i][max_x] = dFloat(gz,str);
- format(str,64,"Zone%d_maxY",i); GZ[i][max_y] = dFloat(gz,str);
- format(str,64,"Zone%d_minX",i); GZ[i][min_x] = dFloat(gz,str);
- format(str,64,"Zone%d_minY",i); GZ[i][min_y] = dFloat(gz,str);
- format(str,64,"Zone%d_flaggeX",i); GZ[i][flagge_x] = dFloat(gz,str);
- format(str,64,"Zone%d_flaggeY",i); GZ[i][flagge_y] = dFloat(gz,str);
- format(str,64,"Zone%d_flaggeZ",i); GZ[i][flagge_z] = dFloat(gz,str);
- format(str,64,"Zone%d_erstellt",i); GZ[i][erstellt] = dInt(gz,str);
- format(str,64,"%d |Besitzer: '%s'",i,FrakName(GZ[i][owner]));
- if(GZ[i][erstellt] != 1)continue;
- M_CreateZone(GZ[i][min_x],GZ[i][min_y],GZ[i][max_x],GZ[i][max_y],FrakColor(GZ[i][owner]),str,FrakColor(GZ[i][owner]));
- GZ[i][pickup] = CreatePickup(1314,1,GZ[i][flagge_x],GZ[i][flagge_y],GZ[i][flagge_z],0);
- GZ[i][label] = Create3DTextLabel("Tippe '/angriff', um das Gebiet anzugreifen.\nTippe '/flagge', um die Flagge zu erobern.",Rot,GZ[i][flagge_x],GZ[i][flagge_y],GZ[i][flagge_z],20,0);
- counter ++;
- break;
- }
- return printf(" '%d' Gangzone(n) wurde(n) erfolgreich erstellt und geladen.",counter);
- }
- stock LoadGZ_(zoneid)
- {
- new gz[32],str[64]; format(gz,sizeof(gz),G_FILE);
- GZ[zoneid][zid] = zoneid;
- format(str,64,"Zone%d_owner",zoneid); GZ[zoneid][owner] = dInt(gz,str);
- format(str,64,"Zone%d_maxX",zoneid); GZ[zoneid][max_x] = dFloat(gz,str);
- format(str,64,"Zone%d_maxY",zoneid); GZ[zoneid][max_y] = dFloat(gz,str);
- format(str,64,"Zone%d_minX",zoneid); GZ[zoneid][min_x] = dFloat(gz,str);
- format(str,64,"Zone%d_minY",zoneid); GZ[zoneid][min_y] = dFloat(gz,str);
- format(str,64,"Zone%d_flaggeX",zoneid); GZ[zoneid][flagge_x] = dFloat(gz,str);
- format(str,64,"Zone%d_flaggeY",zoneid); GZ[zoneid][flagge_y] = dFloat(gz,str);
- format(str,64,"Zone%d_flaggeZ",zoneid); GZ[zoneid][flagge_z] = dFloat(gz,str);
- format(str,64,"Zone%d_erstellt",zoneid); GZ[zoneid][erstellt] = dInt(gz,str);
- format(str,64,"%d |Besitzer: '%s'",zoneid,FrakName(GZ[zoneid][owner]));
- M_CreateZone(GZ[zoneid][min_x],GZ[zoneid][min_y],GZ[zoneid][max_x],GZ[zoneid][max_y],FrakColor(GZ[zoneid][owner]),str,FrakColor(GZ[zoneid][owner]));
- GZ[zoneid][pickup] = CreatePickup(1314,1,GZ[zoneid][flagge_x],GZ[zoneid][flagge_y],GZ[zoneid][flagge_z],0);
- GZ[zoneid][label] = Create3DTextLabel("Tippe '/angriff', um das Gebiet anzugreifen.\nTippe '/flagge', um die Flagge zu erobern.",Rot,GZ[zoneid][flagge_x],GZ[zoneid][flagge_y],GZ[zoneid][flagge_z],20,0);
- return 1;
- }
- stock SaveGZ()
- {
- new i = 0,gz[32],str[64]; format(gz,32,G_FILE);
- for(; i<MAX_GZ; i++)
- {
- format(str,64,"Zone%d_owner",i); dIntSet(gz,str,GZ[i][owner]);
- format(str,64,"Zone%d_maxX",i); dFloatSet(gz,str,GZ[i][max_x]);
- format(str,64,"Zone%d_maxY",i); dFloatSet(gz,str,GZ[i][max_y]);
- format(str,64,"Zone%d_minX",i); dFloatSet(gz,str,GZ[i][min_x]);
- format(str,64,"Zone%d_minY",i); dFloatSet(gz,str,GZ[i][min_y]);
- format(str,64,"Zone%d_flaggeX",i); dFloatSet(gz,str,GZ[i][flagge_x]);
- format(str,64,"Zone%d_flaggeY",i); dFloatSet(gz,str,GZ[i][flagge_y]);
- format(str,64,"Zone%d_flaggeZ",i); dFloatSet(gz,str,GZ[i][flagge_z]);
- format(str,64,"Zone%d_erstellt",i); dIntSet(gz,str,GZ[i][erstellt]);
- }
- return 1;
- }
- stock SaveGZ_(zoneid)
- {
- new gz[32],str[64]; format(gz,32,G_FILE);
- format(str,64,"Zone%d_owner",zoneid); dIntSet(gz,str,GZ[zoneid][owner]);
- format(str,64,"Zone%d_maxX",zoneid); dFloatSet(gz,str,GZ[zoneid][max_x]);
- format(str,64,"Zone%d_maxY",zoneid); dFloatSet(gz,str,GZ[zoneid][max_y]);
- format(str,64,"Zone%d_minX",zoneid); dFloatSet(gz,str,GZ[zoneid][min_x]);
- format(str,64,"Zone%d_minY",zoneid); dFloatSet(gz,str,GZ[zoneid][min_y]);
- format(str,64,"Zone%d_flaggeX",zoneid); dFloatSet(gz,str,GZ[zoneid][flagge_x]);
- format(str,64,"Zone%d_flaggeY",zoneid); dFloatSet(gz,str,GZ[zoneid][flagge_y]);
- format(str,64,"Zone%d_flaggeZ",zoneid); dFloatSet(gz,str,GZ[zoneid][flagge_z]);
- format(str,64,"Zone%d_erstellt",zoneid); dIntSet(gz,str,GZ[zoneid][erstellt]);
- return 1;
- }
- stock DisableAll()
- {
- new i = 0;
- for(; i<MAX_GZ; i++)
- {
- M_DestroyZone(i);
- DestroyPickup(GZ[i][pickup]);
- Delete3DTextLabel(GZ[i][label]);
- }
- return 1;
- }
- stock DisableZone(zoneid)
- {
- DestroyPickup(GZ[zoneid][pickup]);
- Delete3DTextLabel(GZ[zoneid][label]);
- GZ[zoneid][min_x] = 0,GZ[zoneid][min_y] = 0,GZ[zoneid][max_x] = 0,GZ[zoneid][max_y] = 0,GZ[zoneid][flagge_x] = 0,GZ[zoneid][flagge_y] = 0,GZ[zoneid][flagge_z] = 0;
- return M_DestroyZone(zoneid);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement