Advertisement
Johurt

[SCR] jMZ

Sep 17th, 2015
679
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 4.01 KB | None | 0 0
  1. /*
  2.     jMZ, created by Johurt a.k.a ES.^, 2015/09/13
  3. */
  4. #include <a_samp>
  5. #include <zcmd>
  6.  
  7. #define COSANOSTRA      21 // CosaNostra mafijos
  8. #define BALLAS          20 // Immortal mafijos
  9. #define LEAD_COSANOSTRA     10 // CosaNostra mafijos diriko
  10. #define LEAD_BALLAS     9 // Immortal mafijos diriko
  11.  
  12. new specialybe[MAX_PLAYERS], PLEAD[MAX_PLAYERS];
  13. new zC = -1, Float:m_zones_info[2][4] =
  14. {
  15.     {-726.0822, 911.5156, -656.6287, 1000.4677}, // CosaNostra mafijos
  16.     {-1129.1905, -1692.2642, -1077.6441, -1614.2236} // Immortal mafijos
  17. };
  18.  
  19. public OnPlayerDeath(playerid, killerid, reason)
  20. {
  21.     if(zC != -1)
  22.     {
  23.         if((PLEAD[playerid] == LEAD_COSANOSTRA || specialybe[playerid] == COSANOSTRA) && zC == 1)
  24.         {
  25.             if(CountMMembersInZone(COSANOSTRA, zC) < 1)
  26.             {
  27.                     GameTextForMafia(BALLAS, "~n~~n~~n~~n~~n~~n~Zona apginta");
  28.                     GameTextForMafia(COSANOSTRA, "~n~~n~~n~~n~~n~~n~Mafija apsigyne");
  29.                 }
  30.         }
  31.         else if((PLEAD[playerid] == LEAD_BALLAS || specialybe[playerid] == BALLAS) && zC == 0)
  32.         {
  33.                 if(CountMMembersInZone(BALLAS, zC) < 1)
  34.                 {
  35.                     GameTextForMafia(COSANOSTRA, "~n~~n~~n~~n~~n~~n~Zona apginta");
  36.                     GameTextForMafia(BALLAS, "~n~~n~~n~~n~~n~~n~Mafija apsigyne");
  37.                 }
  38.         }
  39.     }
  40.     return 1;
  41. }
  42.  
  43. CMD:uzimti(playerid)
  44. {
  45.     if(!(PLEAD[playerid] == LEAD_COSANOSTRA || PLEAD[playerid] == BALLAS)) return SendClientMessage(playerid, -1, "Jus ne mafijos dirikas.");
  46.     if(zC != -1) return SendClientMessage(playerid, -1, "Jau vyksta susišaudymas dėl zonos.");
  47.     new k, z = (PLEAD[playerid] == LEAD_COSANOSTRA ? 1 : 0), mName[11], str[39];
  48.     if(!PlayerInZone(playerid, m_zones_info[z][0], m_zones_info[z][1], m_zones_info[z][2], m_zones_info[z][3])) return SendClientMessage(playerid, -1, "Turite buti priešų zonoje.");
  49.     k = CountMMembersInZone(PLEAD[playerid], z, playerid);
  50.     if(k < 2) return SendClientMessage(playerid, -1, "Su jumis zonoje turi buti 2 mafijos nariai.");
  51.     GetMafiaName(PLEAD[playerid], mName);
  52.     format(str, 39, "~n~~n~~n~~n~~n~~n~Jus puola %s", mName);
  53.     GameTextForMafia((PLEAD[playerid] == LEAD_COSANOSTRA ? BALLAS : COSANOSTRA), str);
  54.     GetMafiaName((PLEAD[playerid] == LEAD_COSANOSTRA ? BALLAS : COSANOSTRA), mName);
  55.     format(str, 39, "~n~~n~~n~~n~~n~~n~Uzpuolete %s", mName);
  56.     GameTextForMafia(PLEAD[playerid], str);
  57.     zC = z;
  58.     return 1;
  59. }
  60.  
  61. stock GetMafiaName(teamid, mName[], size = sizeof(mName))
  62. {
  63.     switch(teamid)
  64.     {
  65.             case LEAD_COSANOSTRA, COSANOSTRA: format(mName, size, "CosaNostra");
  66.         case LEAD_BALLAS, BALLAS: format(mName, size, "Immortal");
  67.         default: format(mName, size, "-");
  68.     }
  69.     return 1;
  70. }
  71.  
  72. stock GameTextForMafia(teamid, text[])
  73. {
  74.     for(new p = GetPlayerPoolSize(); p > -1; p--)
  75.     {
  76.         if(IsPlayerNPC(p) || !IsPlayerConnected(p)) continue;
  77.             switch(teamid)
  78.             {
  79.                 case LEAD_COSANOSTRA, COSANOSTRA:
  80.                 {
  81.                         if(!(PLEAD[p] == LEAD_COSANOSTRA || specialybe[p] == COSANOSTRA)) continue;
  82.             }
  83.             case LEAD_BALLAS, BALLAS:
  84.             {
  85.                 if(!(PLEAD[p] == LEAD_BALLAS || specialybe[p] == BALLAS)) continue;
  86.             }
  87.             default: continue;
  88.         }
  89.         GameTextForPlayer(p, text, 5000, 3);
  90.     }
  91.     return 1;
  92. }
  93.  
  94. stock CountMMembersInZone(teamid, zone, skip = INVALID_PLAYER_ID)
  95. {
  96.     new k;
  97.     for(new p = GetPlayerPoolSize(); p > -1; p--)
  98.     {
  99.         if(IsPlayerNPC(p) || !IsPlayerConnected(p) || skip == p) continue;
  100.             switch(teamid)
  101.             {
  102.                 case LEAD_COSANOSTRA, COSANOSTRA:
  103.                 {
  104.                         if(!(PLEAD[p] == LEAD_COSANOSTRA || specialybe[p] == COSANOSTRA)) continue;
  105.             }
  106.             case LEAD_BALLAS, BALLAS:
  107.             {
  108.                     if(!(PLEAD[p] == LEAD_BALLAS || specialybe[p] == BALLAS)) continue;
  109.             }
  110.             default: continue;
  111.         }
  112.             if(PlayerInZone(p, m_zones_info[zone][0], m_zones_info[zone][1], m_zones_info[zone][2], m_zones_info[zone][3])) k++;
  113.             if(k > 1) break;
  114.     }
  115.     return k;
  116. }
  117.  
  118. stock PlayerInZone(playerid, Float:min_X, Float:min_Y, Float:max_X, Float:max_Y)
  119. {
  120.     new Float:pos[3];
  121.     GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
  122.     if(min_X <= pos[0] <= max_X && min_Y <= pos[1] <= max_Y) return 1;
  123.     return 0;
  124. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement