Advertisement
Guest User

Sistema de minas - correção

a guest
Oct 31st, 2013
305
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 3.81 KB | None | 0 0
  1. #include a_samp
  2. #include streamer
  3. #include zcmd
  4.  
  5. #define MAX_MINES 5
  6. #define TEMPO 6
  7. #define INVALID_MINE_RANGE -100.0
  8.  
  9. new
  10.     pMineObj[MAX_PLAYERS][MAX_MINES][2],
  11.     pMineArea[MAX_PLAYERS][MAX_MINES],
  12.     bool:pMineAtivada[MAX_PLAYERS][MAX_MINES],
  13.     Float:pMineRange[MAX_PLAYERS][MAX_MINES][3]
  14. ;
  15.  
  16. CMD:desativartodas(playerid) {
  17.     if(!IsPlayerAdmin(playerid)) return 0;
  18.     for(new i; i < MAX_PLAYERS; i++) {
  19.         if(IsPlayerConnected(i)) {
  20.             for(new mineid; mineid < MAX_MINES; mineid++) {
  21.                 if((pMineObj[i][mineid][0] != 0) && (pMineObj[i][mineid][1] != 0)) {
  22.                     pMineAtivada[i][mineid] = false;
  23.                 }
  24.             }
  25.         }
  26.     }
  27.     return 1;
  28. }
  29.  
  30. CMD:ativarminas(playerid) {
  31.     for(new mineid; mineid < MAX_MINES; mineid++) {
  32.         if((pMineObj[playerid][mineid][0] != 0) && (pMineObj[playerid][mineid][1] != 0)) {
  33.             pMineAtivada[playerid][mineid] = true;
  34.         }
  35.     }
  36.     SendClientMessage(playerid, -1, "Minas ativadas");
  37.     return 1;
  38. }
  39.  
  40. CMD:desativarminas(playerid) {
  41.     for(new mineid; mineid < MAX_MINES; mineid++) {
  42.         if((pMineObj[playerid][mineid][0] != 0) && (pMineObj[playerid][mineid][1] != 0)) {
  43.             pMineAtivada[playerid][mineid] = false;
  44.         }
  45.     }
  46.     SendClientMessage(playerid, -1, "Minas desativadas");
  47.     return 1;
  48. }
  49.  
  50. CMD:mina(playerid) {
  51.     if(GetPlayerInterior(playerid) != 0) return 1;
  52.     new bool:freio;
  53.     for(new mineid; mineid < MAX_MINES; mineid++) {
  54.         if((pMineObj[playerid][mineid][0] == 0) && (pMineObj[playerid][mineid][1] == 0)) {
  55.             GetPlayerPos(playerid, pMineRange[playerid][mineid][0], pMineRange[playerid][mineid][1], pMineRange[playerid][mineid][2]);
  56.             pMineObj[playerid][mineid][0] = CreateDynamicObject(1213, pMineRange[playerid][mineid][0], pMineRange[playerid][mineid][1], pMineRange[playerid][mineid][2]-0.90, 0.0, 0.0, 0.0, -1, -1, -1);
  57.             pMineObj[playerid][mineid][1] = CreateDynamicObject(19290, pMineRange[playerid][mineid][0], pMineRange[playerid][mineid][1], pMineRange[playerid][mineid][2]-0.90, 0.0, 0.0, 0.0, -1, -1, -1);
  58.             pMineArea[playerid][mineid] = CreateDynamicCube(pMineRange[playerid][mineid][0], pMineRange[playerid][mineid][1], pMineRange[playerid][mineid][2]-0.90, pMineRange[playerid][mineid][0]+3.5, pMineRange[playerid][mineid][1]+3.5, pMineRange[playerid][mineid][2]+3.5, -1, -1, -1);
  59.             SetTimerEx("DestruirMina", TEMPO*60*1000, false, "ii", playerid, mineid);
  60.             SendClientMessage(playerid, -1, "Mina criada!");
  61.             print("[MINAS] Mina criada!");
  62.             freio = true;
  63.         }
  64.         if(freio == true) break;
  65.     }
  66.     if(freio == false) return SendClientMessage(playerid, -1, "Você não possui ou já atingiu o número maximo de minas colocadas!");
  67.     return 1;
  68. }
  69.  
  70. DestruirMina(playerid, mineid); public DestruirMina(playerid, mineid) {
  71.     for(new i; i < 2; i ++) {
  72.         DestroyDynamicObject(pMineObj[playerid][mineid][i]);
  73.         DestroyDynamicArea(pMineArea[playerid][mineid]);
  74.         pMineAtivada[playerid][mineid] = false;
  75.         pMineObj[playerid][mineid][i] = 0;
  76.         for(new x; x < 3; x++)
  77.             pMineRange[playerid][mineid][x] = INVALID_MINE_RANGE;
  78.     }
  79.     print("[MINAS] Mina distruida!");
  80.     return 1;
  81. }
  82.  
  83. public OnPlayerDisconnect(playerid, reason) {
  84.     for(new mineid; mineid < MAX_MINES; mineid++) {
  85.         for(new i; i < 2; i ++) {
  86.             DestroyDynamicObject(pMineObj[playerid][mineid][i]);
  87.             DestroyDynamicArea(pMineArea[playerid][mineid]);
  88.             pMineAtivada[playerid][mineid] = false;
  89.             pMineObj[playerid][mineid][i] = 0;
  90.             for(new x; x < 3; x++)
  91.                 pMineRange[playerid][mineid][x] = INVALID_MINE_RANGE;
  92.         }
  93.     }
  94.     return 1;
  95. }
  96.  
  97. public OnPlayerEnterDynamicArea(playerid, areaid)
  98. {
  99.     for(new i; i < MAX_PLAYERS; i++) {
  100.         if(IsPlayerConnected(i)) {
  101.             for(new mineid; mineid < MAX_MINES; mineid++) {
  102.                 if( (areaid == pMineArea[i][mineid]) && (pMineAtivada[i][mineid] == true) )
  103.                     CreateExplosion(pMineRange[i][mineid][0], pMineRange[i][mineid][1], pMineRange[i][mineid][2], 2, 3.0);
  104.             }
  105.         }
  106.     }
  107.     return 1;
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement