Guest User

Godfather Mode by Jony & Sc4ut

a guest
May 1st, 2010
357
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 6.06 KB | None | 0 0
  1. enum gInfo
  2. {
  3.     zID,
  4.     zOwned,
  5.     zGang,
  6.     zOwner[128],
  7.     Float: zMinX,
  8.     Float: zMinY,
  9.     Float: zMaxX,
  10.     Float: zMaxY,
  11.     zMoney,
  12.     zAttackAgain,
  13.     zZName[128],
  14. };
  15. new GangZoneInfo[1][gInfo];
  16.  
  17. OnGameMOdeInit
  18.  
  19.     for(new z = 0; z < sizeof(GangZoneInfo); z++)
  20.     {
  21.         GangZoneCreate(GangZoneInfo[z][zMinX], GangZoneInfo[z][zMinY], GangZoneInfo[z][zMaxX], GangZoneInfo[z][zMaxY]);
  22.     }
  23.  
  24. public OnPlayerSpawn(playerid)
  25. {
  26.     if(!IsPlayerNPC(playerid))
  27.     {
  28.         for(new z = 0; z < sizeof(GangZoneInfo); z++)
  29.         {
  30.             GangZoneShowForPlayer(playerid, z, GetGangZoneColor(z));
  31.         }
  32.     }
  33.     PlayerSpawn(playerid);
  34.     return 1;
  35. }
  36.  
  37. forward GetGangZoneColor(gangzoneid);
  38. public GetGangZoneColor(gangzoneid)
  39. {
  40.     if(GangZoneInfo[gangzoneid][zGang] == 4) //BLACK HAND GANG
  41.     {
  42.         return 0x000000FF;
  43.     }
  44.     else if(GangZoneInfo[gangzoneid][zGang] == 6) //21st Street
  45.     {
  46.         return 0x33CCFFAA;
  47.     }
  48.     else if(GangZoneInfo[gangzoneid][zGang] == 5) //CRIPZ
  49.     {
  50.         return 0xFFFF00FF;
  51.     }
  52.     return COLOR_WHITE;
  53. }
  54.  
  55. forward UpdateGangZone(gangzoneid);
  56. public UpdateGangZone(gangzoneid)
  57. {
  58.     for(new i = 0; i < MAX_USER; i++)
  59.     {
  60.         GangZoneShowForPlayer(i,gangzoneid, GetGangZoneColor(gangzoneid));
  61.         OnGangZoneUpdate();
  62.     }
  63. }
  64.  
  65.  
  66. forward AttackGangZone();
  67. public AttackGangZone()
  68. {
  69.     new string[56], string2[128];
  70.     for(new i = 0; i < MAX_USER; i++)
  71.     {
  72.         if(Invade[i] != 255)
  73.         {
  74.             if(PlayerInZone(i, GangZoneInfo[Invade[i]][zMinX], GangZoneInfo[Invade[i]][zMinY], GangZoneInfo[Invade[i]][zMaxX],GangZoneInfo[Invade[i]][zMaxY]))
  75.             {
  76.                 GangZoneInfo[Invade[i]][zOwned] = 1;
  77.                 GangZoneInfo[Invade[i]][zGang] = GetPlayerGang(i);
  78.                 GangZoneInfo[Invade[i]][zAttackAgain] = 1;
  79.                 if(AccountInfo[i][pMember] == 4 || AccountInfo[i][pLeader] == 4)
  80.                 {
  81.                     format(string, sizeof(string), "Black Hand Gang");
  82.                 }
  83.                 if(AccountInfo[i][pMember] == 6 || AccountInfo[i][pLeader] == 6)
  84.                 {
  85.                     format(string, sizeof(string), "21st Street");
  86.                 }
  87.                 if(AccountInfo[i][pMember] == 5 || AccountInfo[i][pLeader] == 5)
  88.                 {
  89.                     format(string, sizeof(string), "Cripz");
  90.                 }
  91.                 strmid(GangZoneInfo[Invade[i]][zOwner], string, 0, strlen(string), 255);
  92.                 UpdateGangZone(Invade[i]);
  93.                 GangInfo[GetPlayerGang(i)-4][g_money] += GangZoneInfo[Invade[i]][zMoney];
  94.  
  95.                 for(new g = 0; g < MAX_PLAYERS; g++)
  96.                 {
  97.                     if(IsAGangMember(g))
  98.                     {
  99.                         new rtext[64];
  100.                         if(AccountInfo[i][pMember] == 4 || AccountInfo[i][pLeader] == 4)
  101.                         { rtext = "Black Hand Gang"; }
  102.                         if(AccountInfo[i][pMember] == 6 || AccountInfo[i][pLeader] == 6)
  103.                         { rtext = "21st Street"; }
  104.                         if(AccountInfo[i][pMember] == 5 || AccountInfo[i][pLeader] == 5)
  105.                         { rtext = "Cripz"; }
  106.                         format(string2, sizeof(string2), "~y~Gang Zone Nr. %d gehoert nun der ~r~%s", GangZoneInfo[Invade[i]][zID],rtext);
  107.                         GameTextForPlayer(g, string2,5000, 4);
  108.                     }
  109.                 }
  110.                 GangZoneWar = 0;
  111.                 for(new z = 0; z < sizeof(GangZoneInfo); z++)
  112.                 {
  113.                     if(PlayerInZone(i, GangZoneInfo[Invade[i]][zMinX], GangZoneInfo[Invade[i]][zMinY], GangZoneInfo[Invade[i]][zMaxX],GangZoneInfo[Invade[i]][zMaxY]))
  114.                     {
  115.                         GangZoneStopFlashForAll(z);
  116.                     }
  117.                 }
  118.                 Invade[i] = 255;
  119.                 return 1;
  120.             }
  121.         }
  122.     }
  123.     return 0;
  124. }
  125.  
  126. public PlayerInZone(playerid, Float:minX, Float:minY, Float:maxX, Float:maxY)
  127. {
  128.     if(IsPlayerConnected(playerid))
  129.     {
  130.         new Float:GangZoneX, Float:GangZoneY, Float:GangZoneZ;
  131.         GetPlayerPos(playerid, GangZoneX, GangZoneY, GangZoneZ);
  132.         if((GangZoneX >= minX && GangZoneX <= maxX) && (GangZoneY >= minY && GangZoneY <= maxY) && GangZoneZ <= 500)
  133.         {
  134.             return 1;
  135.         }
  136.     }
  137.     return 0;
  138. }
  139.  
  140. public LoadGangZoneInfo()
  141. {
  142.     new arrCoords[11][64];
  143.     new strFromFile2[256];
  144.     new File: file = fopen("gangzone.cfg", io_read);
  145.     if (file)
  146.     {
  147.         new idx;
  148.         while (idx < sizeof(GangZoneInfo))
  149.         {
  150.             fread(file, strFromFile2);
  151.             split(strFromFile2, arrCoords, '|');
  152.             GangZoneInfo[idx][zID] = strval(arrCoords[0]);
  153.             GangZoneInfo[idx][zOwned] = strval(arrCoords[1]);
  154.             GangZoneInfo[idx][zGang] = strval(arrCoords[2]);
  155.             strmid(GangZoneInfo[idx][zOwner], arrCoords[3], 0, strlen(arrCoords[3]), 255);
  156.             GangZoneInfo[idx][zMinX] = floatstr(arrCoords[4]);
  157.             GangZoneInfo[idx][zMinY] = floatstr(arrCoords[5]);
  158.             GangZoneInfo[idx][zMaxX] = floatstr(arrCoords[6]);
  159.             GangZoneInfo[idx][zMaxY] = floatstr(arrCoords[7]);
  160.             GangZoneInfo[idx][zMoney] = strval(arrCoords[8]);
  161.             GangZoneInfo[idx][zAttackAgain] = strval(arrCoords[9]);
  162.             strmid(GangZoneInfo[idx][zZName], arrCoords[10], 0, strlen(arrCoords[10]), 255);
  163.             printf("MinX: %f | MinY: %f | MaxX: %f | MaxY: %f",
  164.             GangZoneInfo[idx][zMinX],
  165.             GangZoneInfo[idx][zMinY],
  166.             GangZoneInfo[idx][zMaxX],
  167.             GangZoneInfo[idx][zMaxY]);
  168.             idx++;
  169.         }
  170.         printf("** Gang Zones successfully loaded **");
  171.         fclose(file);
  172.     }
  173.     return 1;
  174. }
  175.  
  176. public OnGangZoneUpdate()
  177. {
  178.     new idx;
  179.     new File: file2;
  180.     while (idx < sizeof(GangZoneInfo))
  181.     {
  182.         new coordsstring[256];
  183.         format(coordsstring, sizeof(coordsstring), "%d|%d|%d|%s|%f|%f|%f|%f|%d|%d|%s",
  184.         GangZoneInfo[idx][zID],
  185.         GangZoneInfo[idx][zOwned],
  186.         GangZoneInfo[idx][zGang],
  187.         GangZoneInfo[idx][zOwner],
  188.         GangZoneInfo[idx][zMinX],
  189.         GangZoneInfo[idx][zMinY],
  190.         GangZoneInfo[idx][zMaxX],
  191.         GangZoneInfo[idx][zMaxY],
  192.         GangZoneInfo[idx][zMoney],
  193.         GangZoneInfo[idx][zAttackAgain],
  194.         GangZoneInfo[idx][zZName]);
  195.         printf("gangzone.cfg succesfully updated");
  196.         if(idx == 0)
  197.         {
  198.             file2 = fopen("gangzone.cfg", io_write);
  199.         }
  200.         else
  201.         {
  202.             file2 = fopen("gangzone.cfg", io_append);
  203.         }
  204.         fwrite(file2, coordsstring);
  205.         idx++;
  206.         fclose(file2);
  207.     }
  208.     return 1;
  209. }
  210.  
  211. forward GetPlayerGang(playerid);
  212. public GetPlayerGang(playerid)
  213. {
  214.     if(AccountInfo[playerid][pMember] == 4 || AccountInfo[playerid][pLeader] == 4) //BLACK HAND
  215.     {
  216.         return 4;
  217.     }
  218.     else if(AccountInfo[playerid][pMember] == 5 || AccountInfo[playerid][pLeader] == 5) //CRIPZ
  219.     {
  220.         return 5;
  221.     }
  222.     else if(AccountInfo[playerid][pMember] == 6 || AccountInfo[playerid][pLeader] == 6) //21st STreet
  223.     {
  224.         return 6;
  225.     }
  226.     return 0;
  227. }
Advertisement
Add Comment
Please, Sign In to add comment