Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //new Zonen
- new LCN;
- new SNDM;
- new ZSNDM;
- new BSNNDM;
- new KHNDM;
- new Vagos;
- new Ballas;
- new Grove;
- //new Aztecas;
- new Gangfights;
- new Yakuza;
- new Russianm;
- new Triaden;
- new AttackZone[30];
- new Attack[30];
- new TakeOverTime[MAX_PLAYERS];
- new TakeOver[MAX_PLAYERS];
- new GangZone_Index = 7;
- //===========================
- enum gzInfo
- {
- gzID,
- Float:x1,
- Float:x2,
- Float:y1,
- Float:y2,
- owner,
- attacked,
- Float:ix,
- Float:iy,
- Float:iz,
- }
- new GangZone[7][gzInfo];
- //====Bei OnPlayerConnect==============================
- PlayerGangZonesShow(playerid, 1);
- //=====================================================
- //====Bei Function OnPlayerDeath=======================
- if(TakeOverTime[playerid] > 0)
- {
- for(new idd; idd<GangZone_Index;idd++)
- {
- if(idd == TakeOver[playerid])
- {
- GangZoneStopFlashForAll(GangZone[idd][gzID]);
- }
- }
- new job, job2;
- if(PlayerInfo[playerid][pMember] >0)
- {
- job = PlayerInfo[playerid][pMember];
- }
- else if(PlayerInfo[playerid][pLeader] >0)
- {
- job = PlayerInfo[playerid][pLeader];
- }
- format(ALLSTRING, sizeof(ALLSTRING), "Der Angreifer ist gestorben, Angriff fehlgeschlagen.");
- for(new i; i<MAX_PLAYERS; i++)
- {
- if(PlayerInfo[i][pMember] >0)
- {
- job2 = PlayerInfo[i][pMember];
- }
- else if(PlayerInfo[i][pLeader] >0)
- {
- job2 = PlayerInfo[i][pLeader];
- }
- if(job2 == job)
- {
- SendClientMessage(i, COLOR_RED, string);
- }
- }
- format(string, sizeof(string), "Dieses Gebiet bleibt in eurem Besitz, der Angreifer ist gestorben!");
- for(new i; i<MAX_PLAYERS; i++)
- {
- if(PlayerInfo[i][pMember] >0)
- {
- job2 = PlayerInfo[i][pMember];
- }
- else if(PlayerInfo[i][pLeader] >0)
- {
- job2 = PlayerInfo[i][pLeader];
- }
- if(GangZone[TakeOver[playerid]][owner] == job2)
- {
- SendClientMessage(i, COLOR_GREEN, string);
- }
- }
- TakeOver[playerid] = 255;
- TakeOverTime[playerid] = 0;
- }
- //======================================================
- //====Bei Function OnPlayerSpawn========================
- PlayerGangZonesShow(playerid, 1);
- if(PlayerInfo[playerid][pChar] > 0) { SetPlayerSkin(playerid, PlayerInfo[playerid][pChar]); }
- else { SetPlayerSkin(playerid, PlayerInfo[playerid][pModel]); }
- //SetPlayerWeapons(playerid);
- SetPlayerSpawn(playerid);
- SetPlayerToTeamColor(playerid);
- PlayerFixRadio(playerid);
- GangZoneShowForPlayer(playerid, SNDM, 0xFEFEFEAA);
- GangZoneShowForPlayer(playerid, ZSNDM, 0xFEFEFEAA);
- GangZoneShowForPlayer(playerid, BSNNDM, 0xFEFEFEAA);
- GangZoneShowForPlayer(playerid, KHNDM, 0xFEFEFEAA);
- GangZoneShowForPlayer(playerid, Vagos, 0xFFFF0085);
- GangZoneShowForPlayer(playerid, Ballas, 0xFF00807D);
- GangZoneShowForPlayer(playerid, Grove, 0x00FF007D);
- GangZoneShowForPlayer(playerid, Yakuza, 0xBEBEBE7D);
- GangZoneShowForPlayer(playerid, Russianm, 0x5500007B);
- GangZoneShowForPlayer(playerid, Gangfights, 0xFF00007D);
- GangZoneShowForPlayer(playerid, Triaden, 0x40808096);
- GangZoneShowForPlayer(playerid, LCN, 0x0000004F);
- //======================================================
- //===Bei Funktion SetPlayerUnJail=======================
- //Bei if(IsPlayerConnected(i))
- if(TakeOverTime[i] != 0)
- {
- TakeOverTime[i]--;
- if(TakeOverTime[i] <= 3)
- {
- GangZoneInvaded(i);
- TakeOverTime[i] = 0;
- }
- if(!PlayerToPoint(40, i, GangZone[TakeOver[i]][ix], GangZone[TakeOver[i]][iy], GangZone[TakeOver[i]][iz]))
- {
- SendClientMessage(i, COLOR_WHITE, "{FF0000}[::: {FFFFFF}Gangzonenangriff {FF0000}:::]");
- SendClientMessage(i, COLOR_RED, "{FF0000}Du hast dich zu weit vom Angriffspunkt entfern!");
- SendClientMessage(i, COLOR_RED, "{Ff0000}Der Angriff wurde abgebrochen!");
- TakeOverTime[i] = 0;
- GangZoneStopFlashForAll(GangZone[TakeOver[i]][gzID]);
- new job;
- for(new k; k<MAX_PLAYERS;k++)
- {
- if(PlayerInfo[k][pLeader] >0)
- {
- job = PlayerInfo[k][pLeader];
- }
- else if(PlayerInfo[k][pMember] >0)
- {
- job = PlayerInfo[k][pMember];
- }
- if(job == GangZone[TakeOver[i]][owner])
- {
- SendClientMessage(k, COLOR_WHITE, "{00FF00}[:::{FFFFFF} Gangzonenangriff {00FF00}:::]");
- SendClientMessage(k, COLOR_GREEN, "{00FF00}Der Angreifer hat den Angriffspunkt verlassen");
- SendClientMessage(k, COLOR_GREEN, "{00FF00}Das Gebiet gehört weiterhin euch");
- }
- }
- TakeOver[i] = 255;
- }
- }
- //============================================================
- //====Bei OnGameModeInit======================================
- Create3DTextLabel("Angriffspunkt\nTippe /angriff, um das Gebiet anzugreifen", 0xFFFFFFFF, -2767.8943,1099.3843,32.8440,15.0,0);
- Create3DTextLabel("Angriffspunkt\nTippe /angriff, um das Gebiet anzugreifen", 0xFFFFFFFF, -1789.3870,1543.5454,7.1875,15.0,0);
- Create3DTextLabel("Angriffspunkt\nTippe /angriff, um das Gebiet anzugreifen", 0xFFFFFFFF, -2513.3823,776.3461,35.1719,15.0,0);
- Create3DTextLabel("Angriffspunkt\nTippe /angriff, um das Gebiet anzugreifen", 0xFFFFFFFF, 2790.3394,-1944.1105,13.5469,15.0,0);
- Create3DTextLabel("Angriffspunkt\nTippe /angriff, um das Gebiet anzugreifen", 0xFFFFFFFF, 2805.7092,-1178.7507,25.4434,15.0,0);
- Create3DTextLabel("Angriffspunkt\nTippe /angriff, um das Gebiet anzugreifen", 0xFFFFFFFF, 2507.6379,-1471.5164,24.0372,15.0,0);
- Create3DTextLabel("Angriffspunkt\nTippe /angriff, um das Gebiet anzugreifen", 0xFFFFFFFF, 2403.5715,-1223.2195,25.1426,15.0,0);
- //===== Zonen =====//
- Triaden = GangZoneCreate(-2155.196, -175.2063, -2012.277, -21.35266);
- SNDM = GangZoneCreate(1436.625, -1764.764, 1611.556, -1618.698);
- ZSNDM = GangZoneCreate(1723.6296, -1306.8020, 1619.8969, -1371.2446);
- BSNNDM = GangZoneCreate(1159.018, -959.4252, 1292.118, -864.6794);
- KHNDM = GangZoneCreate(1181.835, -1417.363, 1269.301, -1283.14);
- Vagos = GangZoneCreate(2394.94, -1101.544, 2585.082, -971.2684);
- Ballas = GangZoneCreate(1885.36, -1223.924, 2105.925, -1089.701);
- Grove = GangZoneCreate(2318.883, -1784.503, 2577.476, -1591.064);
- Yakuza = GangZoneCreate(-2814.1357, -194.1384, -2658.1360, -405.0181);//Yakuza
- Russianm = GangZoneCreate(2406.349, -2183.225, 2581.279, -2052.949);//RM
- Gangfights = GangZoneCreate(560.538, -724.0283, 875.8406, -362.0141);
- LCN = GangZoneCreate(1558.4685, -1877.4822, 1683.8849, -1770.5396);
- //==//
- LoadGangZones();
- CreateGangZones();
- //=================================================================
- //====Ich denke mal unter OnPlayerCommand==========================
- if(strcmp(cmd, "/angriff",true)==0)
- {
- if(IsPlayerConnected(playerid))
- {
- new job;
- if(PlayerInfo[playerid][pMember] >0)
- {
- job = PlayerInfo[playerid][pMember];
- }
- if(PlayerInfo[playerid][pLeader] > 0)
- {
- job = PlayerInfo[playerid][pLeader];
- }
- if(job == 5 || job == 6 || job == 12 || job == 13 || job == 14 || job == 15 || job == 16 || job == 17 || job == 19 || job == 23)
- {
- if(GetPlayerVehicleID(playerid) != 0)
- {
- SendClientMessage(playerid, COLOR_GRAD1, "Du darfst in keinem Auto sein!");
- return 1;
- }
- new gzone = 255;
- for(new idd; idd<GangZone_Index; idd++)
- {
- if(PlayerToPoint(10, playerid, GangZone[idd][ix], GangZone[idd][iy], GangZone[idd][iz]))
- {
- gzone = idd;
- if(job == GangZone[gzone][owner])
- {
- SendClientMessage(playerid, COLOR_GRAD2, "Dieses Gebiet gehört bereits euch!");
- return 1;
- }
- else
- {
- PlayerTakingOverZone(playerid,gzone);
- return 1;
- }
- }
- }
- if(gzone == 255)
- {
- SendClientMessage(playerid,COLOR_GRAD2, "Du bist an keinem Angriffspunkt!");
- return 1;
- }
- }
- }
- return 1;
- }
- //==========================================================================
- //Ganz Weit unten im Script===============================
- Function LoadGangZones()
- {
- new arrCoords[8][64];
- new strFromFile2[256];
- new File: file = fopen("gangzones.cfg", io_read);
- if (file)
- {
- new idx;
- while (idx < GangZone_Index)
- {
- fread(file, strFromFile2);
- split(strFromFile2, arrCoords, ',');
- GangZone[idx][x1] = floatstr(arrCoords[0]);
- GangZone[idx][y1] = floatstr(arrCoords[1]);
- GangZone[idx][x2] = floatstr(arrCoords[2]);
- GangZone[idx][y2] = floatstr(arrCoords[3]);
- GangZone[idx][ix] = floatstr(arrCoords[4]);
- GangZone[idx][iy] = floatstr(arrCoords[5]);
- GangZone[idx][iz] = floatstr(arrCoords[6]);
- GangZone[idx][owner] = strval(arrCoords[7]);
- printf("GangZone %d loadad: %f,%f,%f,%f,%f,%f,%f,%d",idx,
- GangZone[idx][x1],
- GangZone[idx][y1],
- GangZone[idx][x2],
- GangZone[idx][y2],
- GangZone[idx][ix],
- GangZone[idx][iy],
- GangZone[idx][iz],
- GangZone[idx][owner]);
- idx++;
- }
- fclose(file);
- }
- return 1;
- }
- Function SaveGangZones()
- {
- new idx;
- new File: file2;
- while (idx < GangZone_Index)
- {
- new coordsstring[256];
- format(coordsstring, sizeof(coordsstring), "%f,%f,%f,%f,%f,%f,%f,%d\n",
- GangZone[idx][x1],
- GangZone[idx][y1],
- GangZone[idx][x2],
- GangZone[idx][y2],
- GangZone[idx][ix],
- GangZone[idx][iy],
- GangZone[idx][iz],
- GangZone[idx][owner]);
- if(idx == 0)
- {
- file2 = fopen("gangzones.cfg", io_write);
- }
- else
- {
- file2 = fopen("gangzones.cfg", io_append);
- }
- fwrite(file2, coordsstring);
- idx++;
- fclose(file2);
- }
- }
- Function CreateGangZones()
- {
- for(new idx; idx < GangZone_Index; idx++)
- {
- GangZone[idx][gzID] = GangZoneCreate(GangZone[idx][x1],GangZone[idx][y1],GangZone[idx][x2],GangZone[idx][y2]);
- }
- }
- Function PlayerGangZonesShow(playerid, yesno)
- {
- if(yesno == 1)
- {
- for(new idx; idx < GangZone_Index; idx++)
- {
- GangZoneShowForPlayer(playerid, GangZone[idx][gzID], GetGangZoneColor(idx));
- }
- }
- else
- {
- for(new idx; idx < GangZone_Index; idx++)
- {
- GangZoneHideForPlayer(playerid, GangZone[idx][gzID]);
- }
- }
- return 1;
- }
- Function GetGangZoneColor(gzid)
- {
- if(GangZone[gzid][owner] == 5)
- {
- return 0x000000DE;
- }
- else if(GangZone[gzid][owner] == 6)
- {
- return 0xD2D2D2DE;
- }
- else if(GangZone[gzid][owner] == 12)
- {
- return 0x000FFF4E;
- }
- else if(GangZone[gzid][owner] == 13)
- {
- return 0x37FF005E;
- }
- else if(GangZone[gzid][owner] == 14)
- {
- return 0xFF00EB5E;
- }
- else if(GangZone[gzid][owner] == 15)
- {
- return 0x6400FF5E;
- }
- else if(GangZone[gzid][owner] == 16)
- {
- return 0xEBFF005E;
- }
- else if(GangZone[gzid][owner] == 17)
- {
- return 0x00FFFA5E;
- }
- else if(GangZone[gzid][owner] == 19)
- {
- return 0xFF00005E;
- }
- else if(GangZone[gzid][owner] == 23)
- {
- return 0xA0A0A05E;
- }
- return 0xFFFFFF5E;
- }
- Function PlayerTakingOverZone(playerid,zoneid)
- {
- new count,job;
- for(new i; i<MAX_PLAYERS;i++)
- {
- if(PlayerInfo[i][pMember] != 0) { job = PlayerInfo[i][pMember]; }
- else if(PlayerInfo[i][pLeader] != 0) { job = PlayerInfo[i][pLeader]; }
- if(GangZone[zoneid][owner] == job && job != 0)
- {
- count++;
- }
- else if(GangZone[zoneid][owner] == 0)
- {
- count = 2;
- }
- }
- if(count >= 2)
- {
- if(Attack[GangZone[zoneid][owner]] != 0)
- {
- SendClientMessage(playerid, COLOR_GRAD2, "Diese Gangzone wird schon angegriffen / hat eine Angriffssperre");
- return 1;
- }
- else
- {
- Attack[GangZone[zoneid][owner]] = 1;
- AttackZone[GangZone[zoneid][owner]] = zoneid;
- for(new i; i<MAX_PLAYERS; i++)
- {
- if(PlayerInfo[i][pMember] != 0) { job = PlayerInfo[i][pMember]; }
- else if(PlayerInfo[i][pLeader] != 0) { job = PlayerInfo[i][pLeader]; }
- if(job == GangZone[zoneid][owner] && job != 0)
- {
- SendClientMessage(i, COLOR_WHITE,"{FFFFFF}[::: {FFFFFF}Gangzonenangriff {FFFFFF}:::]");
- SendClientMessage(i, COLOR_RED, "{FFFFFF}Eine Gangzone von euch wird angegriffen, begib dich schnell zum Angriffspunkt!");
- SendClientMessage(i, COLOR_RED, "{FFFFFF}Vertreibe den Angreifer, du hast ca. 5 Minuten Zeit!");
- }
- }
- TakeOverTime[playerid] = 300;
- TakeOver[playerid] = zoneid;
- SendClientMessage(playerid, COLOR_WHITE,"{00FF00}[::: {FFFFFF}Gangzonenangriff {00FF00}:::]");
- SendClientMessage(playerid, COLOR_GREEN,"{00FF00}Du musst nun ca. 5 Minuten hier in der Nähe vom Angriffspunkt bleiben!");
- SendClientMessage(playerid, COLOR_GREEN,"{00FF00}Solltest du den Punkt verlassen oder sterben, wird der Angriff abgebrochen!");
- SetTimerEx("ReleaseGangZone", 600000, 0, "i", zoneid);
- printf("PlayerTakingOverZone(%d, %d)", playerid, zoneid);
- for(new idd; idd<GangZone_Index;idd++)
- {
- if(idd == TakeOver[playerid])
- {
- GangZoneFlashForAll(GangZone[idd][gzID], COLOR_RED);
- }
- }
- return 1;
- }
- }
- else
- {
- SendClientMessage(playerid, COLOR_GRAD1, "Es müssen mindestens 2 Mitglieder der gegnerischen Fraktion da sein!");
- }
- return 1;
- }
- Function ReleaseGangZone(zoneid)
- {
- for(new i; i<GangZone_Index; i++)
- {
- for(new k;k<30;k++)
- {
- if(AttackZone[k] == zoneid)
- {
- AttackZone[k] = 255;
- Attack[k] = 0;
- }
- }
- }
- return 1;
- }
- Function GangZoneInvaded(playerid)
- {
- new job,job2,jobname[64],string[256];
- if(PlayerInfo[playerid][pLeader] > 0)
- {
- job2 = PlayerInfo[playerid][pLeader];
- }
- else if(PlayerInfo[playerid][pMember] > 0)
- {
- job2 = PlayerInfo[playerid][pMember];
- }
- for(new i; i<MAX_PLAYERS; i++)
- {
- if(PlayerInfo[i][pLeader] >0)
- {
- job = PlayerInfo[i][pLeader];
- }
- else if(PlayerInfo[i][pMember] > 0)
- {
- job = PlayerInfo[i][pMember];
- }
- if(job == GangZone[TakeOver[playerid]][owner] && job != 0)
- {
- if(job2 == 5)
- {
- format(jobname, sizeof(jobname), "der La Cosa Nostra");
- }
- else if(job2 == 6)
- {
- format(jobname, sizeof(jobname), "den Yakuza");
- }
- else if(job2 == 12)
- {
- format(jobname, sizeof(jobname), "den Triaden");
- }
- else if(job2 == 13)
- {
- format(jobname, sizeof(jobname), "der Grove Street");
- }
- else if(job2 == 14)
- {
- format(jobname, sizeof(jobname), "der Ballas");
- }
- else if(job2 == 16)
- {
- format(jobname, sizeof(jobname), "der Vagos");
- }
- else if(job2 == 17)
- {
- format(jobname, sizeof(jobname), "den Aztecas");
- }
- else if(job2 == 19)
- {
- format(jobname, sizeof(jobname), "den Red Soldiers");
- }
- else if(job2 == 23)
- {
- format(jobname, sizeof(jobname), "der Brigada");
- }
- format(string, sizeof(string), "Ihr habt verloren! Die Gangzone gehört nun %s!",jobname);
- SendClientMessage(i, COLOR_RED, string);
- }
- }
- for(new idd; idd<GangZone_Index;idd++)
- {
- if(idd == TakeOver[playerid])
- {
- GangZoneStopFlashForAll(GangZone[idd][gzID]);
- }
- }
- SendClientMessage(playerid, COLOR_GREEN, "Die Gangzone gehört nun euch");
- GivePlayerMoney(playerid, 20000);
- GangZone[TakeOver[playerid]][owner] = job2;
- TakeOver[playerid] = 255;
- UpdateGangZones();
- SaveGangZones();
- return 1;
- }
- //Das sollte es gewesen sein========================================
Advertisement
Add Comment
Please, Sign In to add comment