Advertisement
Guest User

eXco-Int

a guest
May 31st, 2013
544
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 11.90 KB | None | 0 0
  1. /*
  2.                                                                 ||
  3.                                                                 XX************************************X
  4.                                                                 XX******XXX*************************X
  5.                                                                 XX*******XXXX****XXX**************X
  6.                                                                 XX*********XXX*XXX**************X
  7.                                                                 XX**********XXXXXX************X
  8.                                                                 XX*********XXX**XXX************X
  9.                                                                 XX********XXX****XXXX************X
  10.                                                                 XX****XXXX*********XXXXX************X
  11.                                                                 XX******************XXXXXXX***********X
  12.                                                                 XX**************************************X
  13.                                                                 XX
  14.                                                                 XX
  15.                                                                 XX
  16.                                                                 XX
  17.                                                                XXXX
  18.                                                               XXXXXX
  19. */
  20. #include a_samp
  21. #include zcmd
  22. #include sscanf2
  23. #include dof2
  24.  
  25. enum pInfo
  26. {
  27.     pArma01,
  28.     pArma02,
  29.     pArma03,
  30.     pArma04,
  31.     pBalas01,
  32.     pBalas02,
  33.     pBalas03,
  34.     pBalas04
  35. }
  36. new status[MAX_PLAYERS][pInfo];
  37.  
  38. public OnFilterScriptExit(){DOF2_Exit();}
  39. public OnPlayerConnect(playerid){CarregarBconta(playerid);return 1;}
  40. public OnPlayerDisconnect(playerid){SalvarContas(playerid);return 1;}
  41.  
  42. CMD:inventario(playerid)
  43. {
  44.     new Arma1[128];
  45.     new Arma2[128];
  46.     new Arma3[128];
  47.     new Arma4[128];
  48.     new armaBala[4];
  49.     switch(status[pInfo][pArma01])
  50.     {
  51.         case 3: Arma1 = "Cassetete";case 4: Arma1 = "Faca";case 5: Arma1 = "Taco de Baseball";
  52.         case 6: Arma1 = "Pá";case 7: Arma1 = "Espada";case 8: Arma1 = "Katana";
  53.         case 14: Arma1 = "Flores";case 16: Arma1 = "Granadas";case 17: Arma1 = "Granada Gás";
  54.         case 18: Arma1 = "Molotovs";case 22: Arma1 = "Pistola";case 23: Arma1 = "Pistola com Silenciador";
  55.         case 24: Arma1 = "Eagle";case 25: Arma1 = "Escopeta";case 29: Arma1 = "MP5";
  56.         case 30: Arma1 = "AK47";case 31: Arma1 = "M4";case 33: Arma1 = "Rifle";
  57.         case 34: Arma1 = "Sniper";case 37: Arma1 = "Lança Chamas";case 41: Arma1 = "spray";
  58.         case 42: Arma1 = "extintor";case 43: Arma1 = "Camera";case 46: Arma1 = "Paraquedas";
  59.     }
  60.     switch(status[pInfo][pArma02])
  61.     {
  62.         case 3: Arma2 = "Cassetete";case 4: Arma2 = "Faca";case 5: Arma2 = "Taco de Baseball";
  63.         case 6: Arma2 = "Pá";case 7: Arma2 = "Espada";case 8: Arma2 = "Katana";
  64.         case 14: Arma2 = "Flores";case 16: Arma2 = "Granadas";case 17: Arma2 = "Granada Gás";
  65.         case 18: Arma2 = "Molotovs";case 22: Arma2 = "Pistola";case 23: Arma2 = "Pistola com Silenciador";
  66.         case 24: Arma2 = "Eagle";case 25: Arma2 = "Escopeta";case 29: Arma2 = "MP5";
  67.         case 30: Arma2 = "AK47";case 31: Arma2 = "M4";case 33: Arma2 = "Rifle";
  68.         case 34: Arma2 = "Sniper";case 37: Arma2 = "Lança Chamas";case 41: Arma2 = "spray";
  69.         case 42: Arma2 = "extintor";case 43: Arma2 = "Camera";case 46: Arma2 = "Paraquedas";
  70.     }
  71.     switch(status[pInfo][pArma03])
  72.     {
  73.         case 3: Arma3 = "Cassetete";case 4: Arma3 = "Faca";case 5: Arma3 = "Taco de Baseball";
  74.         case 6: Arma3 = "Pá";case 7: Arma3 = "Espada";case 8: Arma3 = "Katana";
  75.         case 14: Arma3 = "Flores";case 16: Arma3 = "Granadas";case 17: Arma3 = "Granada Gás";
  76.         case 18: Arma3 = "Molotovs";case 22: Arma3 = "Pistola";case 23: Arma3 = "Pistola com Silenciador";
  77.         case 24: Arma3 = "Eagle";case 25: Arma3 = "Escopeta";case 29: Arma3 = "MP5";
  78.         case 30: Arma3 = "AK47";case 31: Arma3 = "M4";case 33: Arma3 = "Rifle";
  79.         case 34: Arma3 = "Sniper";case 37: Arma3 = "Lança Chamas";case 41: Arma3 = "spray";
  80.         case 42: Arma3 = "extintor";case 43: Arma3 = "Camera";case 46: Arma3 = "Paraquedas";
  81.     }
  82.     switch(status[pInfo][pArma04])
  83.     {
  84.         case 3: Arma4 = "Cassetete";case 4: Arma4 = "Faca";case 5: Arma4 = "Taco de Baseball";
  85.         case 6: Arma4 = "Pá";case 7: Arma4 = "Espada";case 8: Arma4 = "Katana";
  86.         case 14: Arma4 = "Flores";case 16: Arma4 = "Granadas";case 17: Arma4 = "Granada Gás";
  87.         case 18: Arma4 = "Molotovs";case 22: Arma4 = "Pistola";case 23: Arma4 = "Pistola com Silenciador";
  88.         case 24: Arma4 = "Eagle";case 25: Arma4 = "Escopeta";case 29: Arma4 = "MP5";
  89.         case 30: Arma4 = "AK47";case 31: Arma4 = "M4";case 33: Arma4 = "Rifle";
  90.         case 34: Arma4 = "Sniper";case 37: Arma4 = "Lança Chamas";case 41: Arma4 = "spray";
  91.         case 42: Arma4 = "extintor";case 43: Arma4 = "Camera";case 46: Arma4 = "Paraquedas";
  92.     }
  93.     armaBala[0] = status[pInfo][pBalas01];
  94.     armaBala[1] = status[pInfo][pBalas02];
  95.     armaBala[2] = status[pInfo][pBalas03];
  96.     armaBala[3] = status[pInfo][pBalas04];
  97.     new _string[128];
  98.     format(_string, 128, "[INV]{00FF00} SLOT 1 - Arma: {FF0000}%s {FFFFFF}|{00FF00} Munição: {FF0000}%d",Arma1, armaBala[0]);
  99.     SendClientMessage(playerid, -1, _string);
  100.     format(_string, 128, "[INV]{00FF00} SLOT 2 - Arma: {FF0000}%s {FFFFFF}|{00FF00} Munição: {FF0000}%d",Arma2, armaBala[1]);
  101.     SendClientMessage(playerid, -1, _string);
  102.     format(_string, 128, "[INV]{00FF00} SLOT 3 - Arma: {FF0000}%s {FFFFFF}|{00FF00} Munição: {FF0000}%d",Arma3, armaBala[2]);
  103.     SendClientMessage(playerid, -1, _string);
  104.     format(_string, 128, "[INV]{00FF00} SLOT 4 - Arma: {FF0000}%s {FFFFFF}|{00FF00} Munição: {FF0000}%d",Arma4, armaBala[3]);
  105.     SendClientMessage(playerid, -1, _string);
  106.     return true;
  107. }
  108.  
  109. CMD:colocararma(playerid, params[])
  110. {
  111.     new _string[128];
  112.     new SLOT;
  113.     if(sscanf(params,"i",SLOT)) return SendClientMessage(playerid, -1, "{FF0000}[INV-Modo] {00FF00}/colocararma {FF0000}[SLOT]");
  114.     {
  115.         new
  116.             pMinhaArma,
  117.             pMinhasBalas;
  118.  
  119.         if(!GetPlayerWeapon(playerid)) return SendClientMessage(playerid, -1, "{FF0000}Você não tem uma arma !");
  120.         pMinhaArma = GetPlayerWeapon(playerid);
  121.         pMinhasBalas = GetPlayerAmmo(playerid);
  122.         switch(SLOT)
  123.         {
  124.             case 1:
  125.             {
  126.                 if(status[pInfo][pArma01] > 0) return SendClientMessage(playerid, -1, "{FF0000}Não há nenhuma arma nessa vaga.");
  127.                 status[pInfo][pArma01] = pMinhaArma;
  128.                 status[pInfo][pBalas01] = pMinhasBalas;
  129.  
  130.                 format(_string, 128, "{00FF00}Você colocou uma arma no slot 1.");
  131.                 SendClientMessage(playerid, -1, _string);
  132.                 RemovePlayerWeapon(playerid, GetPlayerWeapon(playerid));
  133.                 return 1;
  134.             }
  135.             case 2:
  136.             {
  137.                 if(status[pInfo][pArma02] > 0) return SendClientMessage(playerid, -1, "{FF0000}Esse slot já está preenchido.");
  138.                 status[pInfo][pArma02] = pMinhaArma;
  139.                 status[pInfo][pBalas02] = pMinhasBalas;
  140.  
  141.                 format(_string, 128, "{00FF00}Você colocou uma arma no slot 2.");
  142.                 SendClientMessage(playerid, -1, _string);
  143.                 RemovePlayerWeapon(playerid, GetPlayerWeapon(playerid));
  144.                 return 1;
  145.  
  146.             }
  147.             case 3:
  148.             {
  149.                 if(status[pInfo][pArma03] > 0) return SendClientMessage(playerid, -1, "{FF0000}Esse slot já está preenchido.");
  150.                 status[pInfo][pArma03] = pMinhaArma;
  151.                 status[pInfo][pBalas03] = pMinhasBalas;
  152.  
  153.                 format(_string, 128, "{00FF00}Você colocou uma arma no slot 3.");
  154.                 SendClientMessage(playerid, -1, _string);
  155.                 RemovePlayerWeapon(playerid, GetPlayerWeapon(playerid));
  156.                 return 1;
  157.  
  158.             }
  159.             case 4:
  160.             {
  161.                 if(status[pInfo][pArma04] > 0) return SendClientMessage(playerid, -1, "{FF0000}Esse slot já está preenchido.");
  162.                 status[pInfo][pArma04] = pMinhaArma;
  163.                 status[pInfo][pBalas04] = pMinhasBalas;
  164.  
  165.                 format(_string, 128, "{00FF00}Você colocou uma arma no slot 4.");
  166.                 SendClientMessage(playerid, -1, _string);
  167.                 RemovePlayerWeapon(playerid, GetPlayerWeapon(playerid));
  168.                 return 1;
  169.             }
  170.             default: SendClientMessage(playerid, -1, "Use numeros de 1 a 4.");
  171.         }
  172.     }
  173.     return 1;
  174. }
  175.  
  176. CMD:retirararma(playerid, params[])
  177. {
  178.     new _string[128];
  179.     new SLOT;
  180.     if(sscanf(params,"i",SLOT)) return SendClientMessage(playerid, -1, "{FF0000}[INV-Modo] {00FF00}/retirararma {FF0000}[SLOT]");
  181.     {
  182.         switch(SLOT)
  183.         {
  184.             case 1:
  185.             {
  186.                 if(status[pInfo][pArma01] == 0) return SendClientMessage(playerid, -1, "{FF0000}Voce não possue uma arma neste SLOT.");
  187.                 GivePlayerWeapon(playerid, status[pInfo][pArma01], status[pInfo][pBalas01]);
  188.                 status[pInfo][pArma01] = 0;
  189.                 status[pInfo][pBalas01] = 0;
  190.                 format(_string, 128, "{00FF00}Você retirou uma arma do slot 2!");
  191.                 SendClientMessage(playerid, -1, _string);
  192.                 return 1;
  193.             }
  194.             case 2:
  195.             {
  196.                 if(status[pInfo][pArma01] == 0) return SendClientMessage(playerid, -1, "{FF0000}Voce não possue uma arma neste SLOT.");
  197.                 GivePlayerWeapon(playerid, status[pInfo][pArma02], status[pInfo][pBalas02]);
  198.                 status[pInfo][pArma02] = 0;
  199.                 status[pInfo][pBalas02] = 0;
  200.                 format(_string, 128, "{00FF00}Você retirou uma arma do slot 2!");
  201.                 SendClientMessage(playerid, -1, _string);
  202.                 return 1;
  203.  
  204.             }
  205.             case 3:
  206.             {
  207.                 if(status[pInfo][pArma03] == 0) return SendClientMessage(playerid, -1, "{FF0000}Voce não possue uma arma neste SLOT.");
  208.                 GivePlayerWeapon(playerid, status[pInfo][pArma03], status[pInfo][pBalas03]);
  209.                 status[pInfo][pArma03] = 0;
  210.                 status[pInfo][pBalas03] = 0;
  211.                 format(_string, 128, "{00FF00}Você retirou uma arma do slot 2!");
  212.                 SendClientMessage(playerid, -1, _string);
  213.                 return 1;
  214.  
  215.             }
  216.             case 4:
  217.             {
  218.                 if(status[pInfo][pArma04] == 0) return SendClientMessage(playerid, -1, "{FF0000}Voce não possue uma arma neste SLOT.");
  219.                 GivePlayerWeapon(playerid, status[pInfo][pArma04], status[pInfo][pBalas04]);
  220.                 status[pInfo][pArma04] = 0;
  221.                 status[pInfo][pBalas04] = 0;
  222.                 format(_string, 128, "{00FF00}Você retirou uma arma do slot 2!");
  223.                 SendClientMessage(playerid, -1, _string);
  224.                 return 1;
  225.             }
  226.             default: SendClientMessage(playerid, -1, "Use de 1 a 4.");
  227.         }
  228.     }
  229.     return 1;
  230. }
  231.  
  232.  
  233. forward RemovePlayerWeapon(playerid, weaponid);
  234. public RemovePlayerWeapon(playerid, weaponid)
  235. {
  236.     if(!IsPlayerConnected(playerid) || weaponid < 0 || weaponid > 50) return;
  237.     new saveweapon[13], saveammo[13];
  238.     for(new slot = 0; slot < 13; slot++)
  239.     GetPlayerWeaponData(playerid, slot, saveweapon[slot], saveammo[slot]);
  240.     ResetPlayerWeapons(playerid);
  241.     for(new slot; slot < 13; slot++)
  242.     {
  243.         if(saveweapon[slot] == weaponid || saveammo[slot] == 0)
  244.         continue;
  245.         GivePlayerWeapon(playerid, saveweapon[slot], saveammo[slot]);
  246.     }
  247.     GivePlayerWeapon(playerid, 0, 1);
  248. }
  249.  
  250. stock CarregarBconta(playerid)
  251. {
  252.     status[pInfo][pArma01] = DOF2_GetInt(PlayersB(playerid), "pArma01");
  253.     status[pInfo][pArma02] = DOF2_GetInt(PlayersB(playerid), "pArma02");
  254.     status[pInfo][pArma03] = DOF2_GetInt(PlayersB(playerid), "pArma03");
  255.     status[pInfo][pArma04] = DOF2_GetInt(PlayersB(playerid), "pArma04");
  256.     status[pInfo][pBalas01] = DOF2_GetInt(PlayersB(playerid), "pBalas01");
  257.     status[pInfo][pBalas02] = DOF2_GetInt(PlayersB(playerid), "pBalas02");
  258.     status[pInfo][pBalas03] = DOF2_GetInt(PlayersB(playerid), "pBalas03");
  259.     status[pInfo][pBalas04] = DOF2_GetInt(PlayersB(playerid), "pBalas04");
  260.     return 1;
  261. }
  262.  
  263. stock PlayersB(playerid)
  264. {
  265.     new arquivo[40], name[MAX_PLAYER_NAME];
  266.     GetPlayerName(playerid, name, 32);
  267.     format(arquivo, 40, "Inventario/%s.ini", name);
  268.     return arquivo;
  269. }
  270.  
  271. stock SalvarContas(playerid)
  272. {
  273.     if(!DOF2_FileExists(PlayersB(playerid))) DOF2_CreateFile(PlayersB(playerid));
  274.     else
  275.     {
  276.         DOF2_SetInt(PlayersB(playerid), "pArma01", status[pInfo][pArma01]);
  277.         DOF2_SetInt(PlayersB(playerid), "pArma02", status[pInfo][pArma02]);
  278.         DOF2_SetInt(PlayersB(playerid), "pArma03", status[pInfo][pArma03]);
  279.         DOF2_SetInt(PlayersB(playerid), "pArma04", status[pInfo][pArma04]);
  280.         DOF2_SetInt(PlayersB(playerid), "pBalas01", status[pInfo][pBalas01]);
  281.         DOF2_SetInt(PlayersB(playerid), "pBalas02", status[pInfo][pBalas02]);
  282.         DOF2_SetInt(PlayersB(playerid), "pBalas03", status[pInfo][pBalas03]);
  283.         DOF2_SetInt(PlayersB(playerid), "pBalas04", status[pInfo][pBalas04]);
  284.         DOF2_SaveFile();
  285.     }
  286.     return 1;
  287. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement