DJDosKiller

Untitled

Dec 13th, 2011
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 15.22 KB | None | 0 0
  1. //new Zonen
  2. new LCN;
  3. new SNDM;
  4. new ZSNDM;
  5. new BSNNDM;
  6. new KHNDM;
  7. new Vagos;
  8. new Ballas;
  9. new Grove;
  10. //new Aztecas;
  11. new Gangfights;
  12. new Yakuza;
  13. new Russianm;
  14. new Triaden;
  15. new AttackZone[30];
  16. new Attack[30];
  17. new TakeOverTime[MAX_PLAYERS];
  18. new TakeOver[MAX_PLAYERS];
  19. new GangZone_Index = 7;
  20. //===========================
  21. enum gzInfo
  22. {
  23.     gzID,
  24.     Float:x1,
  25.     Float:x2,
  26.     Float:y1,
  27.     Float:y2,
  28.     owner,
  29.     attacked,
  30.     Float:ix,
  31.     Float:iy,
  32.     Float:iz,
  33. }
  34. new GangZone[7][gzInfo];
  35. //====Bei OnPlayerConnect==============================
  36.     PlayerGangZonesShow(playerid, 1);
  37. //=====================================================
  38. //====Bei Function OnPlayerDeath=======================
  39.     if(TakeOverTime[playerid] > 0)
  40.     {
  41.         for(new idd; idd<GangZone_Index;idd++)
  42.         {
  43.             if(idd == TakeOver[playerid])
  44.             {
  45.                 GangZoneStopFlashForAll(GangZone[idd][gzID]);
  46.             }
  47.         }
  48.         new job, job2;
  49.         if(PlayerInfo[playerid][pMember] >0)
  50.         {
  51.             job = PlayerInfo[playerid][pMember];
  52.         }
  53.         else if(PlayerInfo[playerid][pLeader] >0)
  54.         {
  55.             job = PlayerInfo[playerid][pLeader];
  56.         }
  57.         format(ALLSTRING, sizeof(ALLSTRING), "Der Angreifer ist gestorben, Angriff fehlgeschlagen.");
  58.         for(new i; i<MAX_PLAYERS; i++)
  59.         {
  60.             if(PlayerInfo[i][pMember] >0)
  61.             {
  62.                 job2 = PlayerInfo[i][pMember];
  63.             }
  64.             else if(PlayerInfo[i][pLeader] >0)
  65.             {
  66.                 job2 = PlayerInfo[i][pLeader];
  67.             }
  68.             if(job2 == job)
  69.             {
  70.                 SendClientMessage(i, COLOR_RED, string);
  71.             }
  72.         }
  73.         format(string, sizeof(string), "Dieses Gebiet bleibt in eurem Besitz, der Angreifer ist gestorben!");
  74.         for(new i; i<MAX_PLAYERS; i++)
  75.         {
  76.             if(PlayerInfo[i][pMember] >0)
  77.             {
  78.                 job2 = PlayerInfo[i][pMember];
  79.             }
  80.             else if(PlayerInfo[i][pLeader] >0)
  81.             {
  82.                 job2 = PlayerInfo[i][pLeader];
  83.             }
  84.             if(GangZone[TakeOver[playerid]][owner] == job2)
  85.             {
  86.                 SendClientMessage(i, COLOR_GREEN, string);
  87.             }
  88.         }
  89.         TakeOver[playerid] = 255;
  90.         TakeOverTime[playerid] = 0;
  91.     }
  92. //======================================================
  93. //====Bei Function OnPlayerSpawn========================
  94.     PlayerGangZonesShow(playerid, 1);
  95.    
  96.     if(PlayerInfo[playerid][pChar] > 0) { SetPlayerSkin(playerid, PlayerInfo[playerid][pChar]); }
  97.     else { SetPlayerSkin(playerid, PlayerInfo[playerid][pModel]); }
  98.     //SetPlayerWeapons(playerid);
  99.     SetPlayerSpawn(playerid);
  100.     SetPlayerToTeamColor(playerid);
  101.     PlayerFixRadio(playerid);
  102.     GangZoneShowForPlayer(playerid, SNDM, 0xFEFEFEAA);
  103.     GangZoneShowForPlayer(playerid, ZSNDM, 0xFEFEFEAA);
  104.     GangZoneShowForPlayer(playerid, BSNNDM, 0xFEFEFEAA);
  105.     GangZoneShowForPlayer(playerid, KHNDM, 0xFEFEFEAA);
  106.     GangZoneShowForPlayer(playerid, Vagos, 0xFFFF0085);
  107.     GangZoneShowForPlayer(playerid, Ballas, 0xFF00807D);
  108.     GangZoneShowForPlayer(playerid, Grove, 0x00FF007D);
  109.     GangZoneShowForPlayer(playerid, Yakuza, 0xBEBEBE7D);
  110.     GangZoneShowForPlayer(playerid, Russianm, 0x5500007B);
  111.     GangZoneShowForPlayer(playerid, Gangfights, 0xFF00007D);
  112.   GangZoneShowForPlayer(playerid, Triaden, 0x40808096);
  113.     GangZoneShowForPlayer(playerid, LCN, 0x0000004F);
  114. //======================================================
  115. //===Bei Funktion SetPlayerUnJail=======================
  116. //Bei if(IsPlayerConnected(i))
  117.             if(TakeOverTime[i] != 0)
  118.             {
  119.                 TakeOverTime[i]--;
  120.                 if(TakeOverTime[i] <= 3)
  121.                 {
  122.                     GangZoneInvaded(i);
  123.                     TakeOverTime[i] = 0;
  124.                 }
  125.                 if(!PlayerToPoint(40, i, GangZone[TakeOver[i]][ix], GangZone[TakeOver[i]][iy], GangZone[TakeOver[i]][iz]))
  126.                 {
  127.                     SendClientMessage(i, COLOR_WHITE, "{FF0000}[::: {FFFFFF}Gangzonenangriff {FF0000}:::]");
  128.                     SendClientMessage(i, COLOR_RED, "{FF0000}Du hast dich zu weit vom Angriffspunkt entfern!");
  129.                     SendClientMessage(i, COLOR_RED, "{Ff0000}Der Angriff wurde abgebrochen!");
  130.                     TakeOverTime[i] = 0;
  131.                     GangZoneStopFlashForAll(GangZone[TakeOver[i]][gzID]);
  132.                     new job;
  133.                     for(new k; k<MAX_PLAYERS;k++)
  134.                     {
  135.                         if(PlayerInfo[k][pLeader] >0)
  136.                         {
  137.                             job = PlayerInfo[k][pLeader];
  138.                         }
  139.                         else if(PlayerInfo[k][pMember] >0)
  140.                         {
  141.                             job = PlayerInfo[k][pMember];
  142.                         }
  143.                         if(job == GangZone[TakeOver[i]][owner])
  144.                         {
  145.                             SendClientMessage(k, COLOR_WHITE, "{00FF00}[:::{FFFFFF} Gangzonenangriff {00FF00}:::]");
  146.                             SendClientMessage(k, COLOR_GREEN, "{00FF00}Der Angreifer hat den Angriffspunkt verlassen");
  147.                             SendClientMessage(k, COLOR_GREEN, "{00FF00}Das Gebiet gehört weiterhin euch");
  148.                         }
  149.                     }
  150.                     TakeOver[i] = 255;
  151.                 }
  152.             }
  153. //============================================================
  154. //====Bei OnGameModeInit======================================
  155.     Create3DTextLabel("Angriffspunkt\nTippe /angriff, um das Gebiet anzugreifen", 0xFFFFFFFF, -2767.8943,1099.3843,32.8440,15.0,0);
  156.     Create3DTextLabel("Angriffspunkt\nTippe /angriff, um das Gebiet anzugreifen", 0xFFFFFFFF, -1789.3870,1543.5454,7.1875,15.0,0);
  157.     Create3DTextLabel("Angriffspunkt\nTippe /angriff, um das Gebiet anzugreifen", 0xFFFFFFFF, -2513.3823,776.3461,35.1719,15.0,0);
  158.     Create3DTextLabel("Angriffspunkt\nTippe /angriff, um das Gebiet anzugreifen", 0xFFFFFFFF, 2790.3394,-1944.1105,13.5469,15.0,0);
  159.     Create3DTextLabel("Angriffspunkt\nTippe /angriff, um das Gebiet anzugreifen", 0xFFFFFFFF, 2805.7092,-1178.7507,25.4434,15.0,0);
  160.     Create3DTextLabel("Angriffspunkt\nTippe /angriff, um das Gebiet anzugreifen", 0xFFFFFFFF, 2507.6379,-1471.5164,24.0372,15.0,0);
  161.     Create3DTextLabel("Angriffspunkt\nTippe /angriff, um das Gebiet anzugreifen", 0xFFFFFFFF, 2403.5715,-1223.2195,25.1426,15.0,0);
  162.    
  163.     //===== Zonen =====//
  164.     Triaden = GangZoneCreate(-2155.196, -175.2063, -2012.277, -21.35266);
  165.     SNDM = GangZoneCreate(1436.625, -1764.764, 1611.556, -1618.698);
  166.     ZSNDM = GangZoneCreate(1723.6296, -1306.8020, 1619.8969, -1371.2446);
  167.     BSNNDM = GangZoneCreate(1159.018, -959.4252, 1292.118, -864.6794);
  168.     KHNDM = GangZoneCreate(1181.835, -1417.363, 1269.301, -1283.14);
  169.     Vagos = GangZoneCreate(2394.94, -1101.544, 2585.082, -971.2684);
  170.     Ballas = GangZoneCreate(1885.36, -1223.924, 2105.925, -1089.701);
  171.     Grove = GangZoneCreate(2318.883, -1784.503, 2577.476, -1591.064);
  172.     Yakuza = GangZoneCreate(-2814.1357, -194.1384, -2658.1360, -405.0181);//Yakuza
  173.     Russianm = GangZoneCreate(2406.349, -2183.225, 2581.279, -2052.949);//RM
  174.     Gangfights = GangZoneCreate(560.538, -724.0283, 875.8406, -362.0141);
  175.     LCN = GangZoneCreate(1558.4685, -1877.4822, 1683.8849, -1770.5396);
  176.     //==//
  177.     LoadGangZones();
  178.     CreateGangZones();
  179. //=================================================================
  180. //====Ich denke mal unter OnPlayerCommand==========================
  181.     if(strcmp(cmd, "/angriff",true)==0)
  182.     {
  183.         if(IsPlayerConnected(playerid))
  184.         {
  185.             new job;
  186.             if(PlayerInfo[playerid][pMember] >0)
  187.             {
  188.                 job = PlayerInfo[playerid][pMember];
  189.             }
  190.             if(PlayerInfo[playerid][pLeader] > 0)
  191.             {
  192.                 job = PlayerInfo[playerid][pLeader];
  193.             }
  194.             if(job == 5 || job == 6 || job == 12 || job == 13 || job == 14 || job == 15 || job == 16 || job == 17 || job == 19 || job == 23)
  195.             {
  196.                 if(GetPlayerVehicleID(playerid) != 0)
  197.                 {
  198.                     SendClientMessage(playerid, COLOR_GRAD1, "Du darfst in keinem Auto sein!");
  199.                     return 1;
  200.                 }
  201.                 new gzone = 255;
  202.                 for(new idd; idd<GangZone_Index; idd++)
  203.                 {
  204.                     if(PlayerToPoint(10, playerid, GangZone[idd][ix], GangZone[idd][iy], GangZone[idd][iz]))
  205.                     {
  206.                         gzone = idd;
  207.                         if(job == GangZone[gzone][owner])
  208.                         {
  209.                             SendClientMessage(playerid, COLOR_GRAD2, "Dieses Gebiet gehört bereits euch!");
  210.                             return 1;
  211.                         }
  212.                         else
  213.                         {
  214.                             PlayerTakingOverZone(playerid,gzone);
  215.                             return 1;
  216.                         }
  217.                     }
  218.                 }
  219.                 if(gzone == 255)
  220.                 {
  221.                     SendClientMessage(playerid,COLOR_GRAD2, "Du bist an keinem Angriffspunkt!");
  222.                     return 1;
  223.                 }
  224.             }
  225.         }
  226.         return 1;
  227.     }
  228. //==========================================================================
  229. //Ganz Weit unten im Script===============================
  230. Function LoadGangZones()
  231. {
  232.     new arrCoords[8][64];
  233.     new strFromFile2[256];
  234.     new File: file = fopen("gangzones.cfg", io_read);
  235.     if (file)
  236.     {
  237.         new idx;
  238.         while (idx < GangZone_Index)
  239.         {
  240.             fread(file, strFromFile2);
  241.             split(strFromFile2, arrCoords, ',');
  242.             GangZone[idx][x1] = floatstr(arrCoords[0]);
  243.             GangZone[idx][y1] = floatstr(arrCoords[1]);
  244.             GangZone[idx][x2] = floatstr(arrCoords[2]);
  245.             GangZone[idx][y2] = floatstr(arrCoords[3]);
  246.             GangZone[idx][ix] = floatstr(arrCoords[4]);
  247.             GangZone[idx][iy] = floatstr(arrCoords[5]);
  248.             GangZone[idx][iz] = floatstr(arrCoords[6]);
  249.             GangZone[idx][owner] = strval(arrCoords[7]);
  250.             printf("GangZone %d loadad: %f,%f,%f,%f,%f,%f,%f,%d",idx,
  251.             GangZone[idx][x1],
  252.             GangZone[idx][y1],
  253.             GangZone[idx][x2],
  254.             GangZone[idx][y2],
  255.             GangZone[idx][ix],
  256.             GangZone[idx][iy],
  257.             GangZone[idx][iz],
  258.             GangZone[idx][owner]);
  259.             idx++;
  260.         }
  261.         fclose(file);
  262.     }
  263.     return 1;
  264. }
  265.  
  266. Function SaveGangZones()
  267. {
  268.     new idx;
  269.     new File: file2;
  270.     while (idx < GangZone_Index)
  271.     {
  272.         new coordsstring[256];
  273.         format(coordsstring, sizeof(coordsstring), "%f,%f,%f,%f,%f,%f,%f,%d\n",
  274.         GangZone[idx][x1],
  275.         GangZone[idx][y1],
  276.         GangZone[idx][x2],
  277.         GangZone[idx][y2],
  278.         GangZone[idx][ix],
  279.         GangZone[idx][iy],
  280.         GangZone[idx][iz],
  281.         GangZone[idx][owner]);
  282.         if(idx == 0)
  283.         {
  284.             file2 = fopen("gangzones.cfg", io_write);
  285.         }
  286.         else
  287.         {
  288.             file2 = fopen("gangzones.cfg", io_append);
  289.         }
  290.         fwrite(file2, coordsstring);
  291.         idx++;
  292.         fclose(file2);
  293.     }
  294. }
  295.  
  296. Function CreateGangZones()
  297. {
  298.     for(new idx; idx < GangZone_Index; idx++)
  299.     {
  300.         GangZone[idx][gzID] = GangZoneCreate(GangZone[idx][x1],GangZone[idx][y1],GangZone[idx][x2],GangZone[idx][y2]);
  301.     }
  302. }
  303.  
  304. Function PlayerGangZonesShow(playerid, yesno)
  305. {
  306.     if(yesno == 1)
  307.     {
  308.         for(new idx; idx < GangZone_Index; idx++)
  309.         {
  310.             GangZoneShowForPlayer(playerid, GangZone[idx][gzID], GetGangZoneColor(idx));
  311.         }
  312.     }
  313.     else
  314.     {
  315.         for(new idx; idx < GangZone_Index; idx++)
  316.         {
  317.             GangZoneHideForPlayer(playerid, GangZone[idx][gzID]);
  318.         }
  319.     }
  320.     return 1;
  321. }
  322.  
  323. Function GetGangZoneColor(gzid)
  324. {
  325.     if(GangZone[gzid][owner] == 5)
  326.     {
  327.         return 0x000000DE;
  328.     }
  329.     else if(GangZone[gzid][owner] == 6)
  330.     {
  331.         return 0xD2D2D2DE;
  332.     }
  333.     else if(GangZone[gzid][owner] == 12)
  334.     {
  335.         return 0x000FFF4E;
  336.     }
  337.     else if(GangZone[gzid][owner] == 13)
  338.     {
  339.         return 0x37FF005E;
  340.     }
  341.     else if(GangZone[gzid][owner] == 14)
  342.     {
  343.         return 0xFF00EB5E;
  344.     }
  345.     else if(GangZone[gzid][owner] == 15)
  346.     {
  347.         return 0x6400FF5E;
  348.     }
  349.     else if(GangZone[gzid][owner] == 16)
  350.     {
  351.         return 0xEBFF005E;
  352.     }
  353.     else if(GangZone[gzid][owner] == 17)
  354.     {
  355.         return 0x00FFFA5E;
  356.     }
  357.     else if(GangZone[gzid][owner] == 19)
  358.     {
  359.         return 0xFF00005E;
  360.     }
  361.     else if(GangZone[gzid][owner] == 23)
  362.     {
  363.         return 0xA0A0A05E;
  364.     }
  365.     return 0xFFFFFF5E;
  366. }
  367.  
  368. Function PlayerTakingOverZone(playerid,zoneid)
  369. {
  370.     new count,job;
  371.     for(new i; i<MAX_PLAYERS;i++)
  372.     {
  373.         if(PlayerInfo[i][pMember] != 0) { job = PlayerInfo[i][pMember]; }
  374.         else if(PlayerInfo[i][pLeader] != 0) { job = PlayerInfo[i][pLeader]; }
  375.         if(GangZone[zoneid][owner] == job && job != 0)
  376.         {
  377.             count++;
  378.         }
  379.         else if(GangZone[zoneid][owner] == 0)
  380.         {
  381.             count = 2;
  382.         }
  383.     }
  384.     if(count >= 2)
  385.     {
  386.         if(Attack[GangZone[zoneid][owner]] != 0)
  387.         {
  388.             SendClientMessage(playerid, COLOR_GRAD2, "Diese Gangzone wird schon angegriffen / hat eine Angriffssperre");
  389.             return 1;
  390.         }
  391.         else
  392.         {
  393.             Attack[GangZone[zoneid][owner]] = 1;
  394.             AttackZone[GangZone[zoneid][owner]] = zoneid;
  395.             for(new i; i<MAX_PLAYERS; i++)
  396.             {
  397.                 if(PlayerInfo[i][pMember] != 0) { job = PlayerInfo[i][pMember]; }
  398.                 else if(PlayerInfo[i][pLeader] != 0) { job = PlayerInfo[i][pLeader]; }
  399.                 if(job == GangZone[zoneid][owner] && job != 0)
  400.                 {
  401.                     SendClientMessage(i, COLOR_WHITE,"{FFFFFF}[::: {FFFFFF}Gangzonenangriff {FFFFFF}:::]");
  402.                     SendClientMessage(i, COLOR_RED, "{FFFFFF}Eine Gangzone von euch wird angegriffen, begib dich schnell zum Angriffspunkt!");
  403.                     SendClientMessage(i, COLOR_RED, "{FFFFFF}Vertreibe den Angreifer, du hast ca. 5 Minuten Zeit!");
  404.                 }
  405.             }
  406.             TakeOverTime[playerid] = 300;
  407.             TakeOver[playerid] = zoneid;
  408.             SendClientMessage(playerid, COLOR_WHITE,"{00FF00}[::: {FFFFFF}Gangzonenangriff {00FF00}:::]");
  409.             SendClientMessage(playerid, COLOR_GREEN,"{00FF00}Du musst nun ca. 5 Minuten hier in der Nähe vom Angriffspunkt bleiben!");
  410.             SendClientMessage(playerid, COLOR_GREEN,"{00FF00}Solltest du den Punkt verlassen oder sterben, wird der Angriff abgebrochen!");
  411.             SetTimerEx("ReleaseGangZone", 600000, 0, "i", zoneid);
  412.             printf("PlayerTakingOverZone(%d, %d)", playerid, zoneid);
  413.             for(new idd; idd<GangZone_Index;idd++)
  414.             {
  415.                 if(idd == TakeOver[playerid])
  416.                 {
  417.                     GangZoneFlashForAll(GangZone[idd][gzID], COLOR_RED);
  418.                 }
  419.             }
  420.             return 1;
  421.         }
  422.     }
  423.     else
  424.     {
  425.         SendClientMessage(playerid, COLOR_GRAD1, "Es müssen mindestens 2 Mitglieder der gegnerischen Fraktion da sein!");
  426.     }
  427.     return 1;
  428. }
  429.  
  430. Function ReleaseGangZone(zoneid)
  431. {
  432.     for(new i; i<GangZone_Index; i++)
  433.     {
  434.         for(new k;k<30;k++)
  435.         {
  436.             if(AttackZone[k] == zoneid)
  437.             {
  438.                 AttackZone[k] = 255;
  439.                 Attack[k] = 0;
  440.             }
  441.         }
  442.     }
  443.     return 1;
  444. }
  445.  
  446. Function GangZoneInvaded(playerid)
  447. {
  448.     new job,job2,jobname[64],string[256];
  449.     if(PlayerInfo[playerid][pLeader] > 0)
  450.     {
  451.         job2 = PlayerInfo[playerid][pLeader];
  452.     }
  453.     else if(PlayerInfo[playerid][pMember] > 0)
  454.     {
  455.         job2 = PlayerInfo[playerid][pMember];
  456.     }
  457.     for(new i; i<MAX_PLAYERS; i++)
  458.     {
  459.         if(PlayerInfo[i][pLeader] >0)
  460.         {
  461.             job = PlayerInfo[i][pLeader];
  462.         }
  463.         else if(PlayerInfo[i][pMember] > 0)
  464.         {
  465.             job = PlayerInfo[i][pMember];
  466.         }
  467.         if(job == GangZone[TakeOver[playerid]][owner] && job != 0)
  468.         {
  469.             if(job2 == 5)
  470.             {
  471.                 format(jobname, sizeof(jobname), "der La Cosa Nostra");
  472.             }
  473.             else if(job2 == 6)
  474.             {
  475.                 format(jobname, sizeof(jobname), "den Yakuza");
  476.             }
  477.             else if(job2 == 12)
  478.             {
  479.                 format(jobname, sizeof(jobname), "den Triaden");
  480.             }
  481.             else if(job2 == 13)
  482.             {
  483.                 format(jobname, sizeof(jobname), "der Grove Street");
  484.             }
  485.             else if(job2 == 14)
  486.             {
  487.                 format(jobname, sizeof(jobname), "der Ballas");
  488.             }
  489.             else if(job2 == 16)
  490.             {
  491.                 format(jobname, sizeof(jobname), "der Vagos");
  492.             }
  493.             else if(job2 == 17)
  494.             {
  495.                 format(jobname, sizeof(jobname), "den Aztecas");
  496.             }
  497.             else if(job2 == 19)
  498.             {
  499.                 format(jobname, sizeof(jobname), "den Red Soldiers");
  500.             }
  501.             else if(job2 == 23)
  502.             {
  503.                 format(jobname, sizeof(jobname), "der Brigada");
  504.             }
  505.             format(string, sizeof(string), "Ihr habt verloren! Die Gangzone gehört nun %s!",jobname);
  506.             SendClientMessage(i, COLOR_RED, string);
  507.         }
  508.     }
  509.     for(new idd; idd<GangZone_Index;idd++)
  510.     {
  511.         if(idd == TakeOver[playerid])
  512.         {
  513.             GangZoneStopFlashForAll(GangZone[idd][gzID]);
  514.         }
  515.     }
  516.     SendClientMessage(playerid, COLOR_GREEN, "Die Gangzone gehört nun euch");
  517.     GivePlayerMoney(playerid, 20000);
  518.     GangZone[TakeOver[playerid]][owner] = job2;
  519.     TakeOver[playerid] = 255;
  520.     UpdateGangZones();
  521.     SaveGangZones();
  522.     return 1;
  523. }
  524. //Das sollte es gewesen sein========================================
  525.  
Advertisement
Add Comment
Please, Sign In to add comment