Advertisement
Guest User

Sistema de Inventário - SSGamers by iBart

a guest
Sep 2nd, 2015
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.42 KB | None | 0 0
  1. //==============================================================================
  2. //Sistema de inventário criado por Mateus Costa - Artista
  3. //Não retire os créditos.
  4. //Postado por iBart na SSGamers [www.scriptsamp.forumeiros.com]
  5. //==============================================================================
  6. #include <a_samp>
  7. #include <DOF2>
  8. #include <zcmd>
  9.  
  10. #define DialogInv 200
  11. #define DialogOpc 201
  12.  
  13. new InventarioArma[8][MAX_PLAYERS];
  14. new InventarioAmmo[8][MAX_PLAYERS];
  15. new ItemOpcao[MAX_PLAYERS];
  16.  
  17. public OnFilterScriptInit()
  18. {
  19. print("\n-----------------------------------------");
  20. print(" Sistema de inventario carregado com sucesso");
  21. print(" Postado na SSGamers por iBart - Thanks!");
  22. print("-----------------------------------------\n");
  23. return 1;
  24. }
  25.  
  26. public OnFilterScriptExit()
  27. {
  28. DOF2_Exit();
  29. return 1;
  30. }
  31.  
  32. CMD:inventario(playerid)
  33. {
  34. new Inv[160];
  35. new Nome[20];
  36. for(new i = 0; i != 8; i++)
  37. {
  38. GetWeaponName(InventarioArma[i][playerid], Nome, 20);
  39. strcat(Inv, InventarioArma[i][playerid] > 0 ? (InventarioArma[i][playerid] == 18 ? ("Cocktail Molotov") : (Nome)) : ("(Vazio)"));
  40. strcat(Inv, "\n");
  41. }
  42. strcat(Inv, "Guardar equipamento atual");
  43. ShowPlayerDialog(playerid, DialogInv, DIALOG_STYLE_LIST, "Itens", Inv, "Selecionar", "Fechar");
  44. return 1;
  45. }
  46.  
  47. public OnPlayerConnect(playerid)
  48. {
  49. CarregarIventario(playerid);
  50. return 1;
  51. }
  52.  
  53. public OnPlayerDisconnect(playerid, reason)
  54. {
  55. SalvarIventario(playerid);
  56. return 1;
  57. }
  58.  
  59. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  60. {
  61. if(dialogid == DialogInv)
  62. {
  63. if(!response) return 1;
  64. if(response)
  65. {
  66. switch(listitem)
  67. {
  68. case 0: ItemOpcoes(playerid, 0);
  69. case 1: ItemOpcoes(playerid, 1);
  70. case 2: ItemOpcoes(playerid, 2);
  71. case 3: ItemOpcoes(playerid, 3);
  72. case 4: ItemOpcoes(playerid, 4);
  73. case 5: ItemOpcoes(playerid, 5);
  74. case 6: ItemOpcoes(playerid, 6);
  75. case 7: ItemOpcoes(playerid, 7);
  76. case 8: GuardarItem(playerid);
  77. }
  78. return 1;
  79. }
  80. }
  81.  
  82. if(dialogid == DialogOpc)
  83. {
  84. if(!response) return 1;
  85. if(response)
  86. {
  87. switch(listitem)
  88. {
  89. case 0:
  90. {
  91. GivePlayerWeapon(playerid, InventarioArma[ItemOpcao[playerid]][playerid], InventarioAmmo[ItemOpcao[playerid]][playerid]);
  92. InventarioArma[ItemOpcao[playerid]][playerid]=0;
  93. InventarioAmmo[ItemOpcao[playerid]][playerid]=0;
  94. }
  95. case 1:
  96. {
  97. InventarioArma[ItemOpcao[playerid]][playerid]=0;
  98. InventarioAmmo[ItemOpcao[playerid]][playerid]=0;
  99. SendClientMessage(playerid, -1, "Item destruído!");
  100. }
  101. }
  102. return 1;
  103. }
  104. }
  105. return 0;
  106. }
  107.  
  108. stock GanharItem(playerid, Item, Ammo)
  109. {
  110. new Nome[20];
  111. new i;
  112. while(i != 8)
  113. {
  114. if(InventarioArma[i][playerid] == Item)
  115. {
  116. InventarioAmmo[i][playerid]=InventarioAmmo[i][playerid]+Ammo;
  117. break;
  118. }
  119. if(InventarioArma[i][playerid] == 0)
  120. {
  121. InventarioArma[i][playerid]=Item;
  122. InventarioAmmo[i][playerid]=Ammo;
  123. break;
  124. }
  125. i++;
  126. }
  127. GetWeaponName(Item, Nome, 20);
  128. new string[35]=" Adquirido!";
  129. strins(string, Item == 18 ? ("Cocktail Molotov") : (Nome), 0, 20);
  130. return SendClientMessage(playerid, -1, i == 8 ? ("Inventário cheio!") : (string));
  131. }
  132.  
  133. stock GuardarItem(playerid)
  134. {
  135. new Item = GetPlayerWeapon(playerid);
  136. new Ammo = GetPlayerAmmo(playerid);
  137. if(Item == 0) return SendClientMessage(playerid, -1, "Item inválido!");
  138. new i;
  139. while(i != 8)
  140. {
  141. if(InventarioArma[i][playerid] == Item)
  142. {
  143. InventarioAmmo[i][playerid]=InventarioAmmo[i][playerid]+Ammo;
  144. RemoverItem(playerid, Item);
  145. break;
  146. }
  147. if(InventarioArma[i][playerid] == 0)
  148. {
  149. InventarioArma[i][playerid]=Item;
  150. InventarioAmmo[i][playerid]=Ammo;
  151. RemoverItem(playerid, Item);
  152. break;
  153. }
  154. i++;
  155. }
  156. return i == 8 ? SendClientMessage(playerid, -1, "Inventário cheio!") : 1;
  157. }
  158.  
  159. stock RemoverItem(playerid, item)
  160. {
  161. new Arma[13][2];
  162. for(new i = 1; i < 13; ++i) GetPlayerWeaponData(playerid, i, Arma[i][0], Arma[i][1]);
  163. ResetPlayerWeapons(playerid);
  164. for(new i = 1; i < 13; ++i)
  165. {
  166. if(item != Arma[i][0]) GivePlayerWeapon(playerid, Arma[i][0], Arma[i][1]);
  167. }
  168. }
  169.  
  170. stock ItemOpcoes(playerid, Item)
  171. {
  172. if(InventarioArma[Item][playerid] == 0) return PlayerPlaySound(playerid, 1053, 0.0, 0.0, 0.0);
  173. ItemOpcao[playerid]=Item;
  174. return ShowPlayerDialog(playerid,DialogOpc,DIALOG_STYLE_LIST,"Opções:","Usar\nDestruir","OK","Fechar");
  175. }
  176.  
  177. stock SalvarIventario(playerid)
  178. {
  179. new Nome[25];
  180. GetPlayerName(playerid,Nome,sizeof(Nome));
  181. new Arquivo[41]="Inventarios/.ini";
  182. strins(Arquivo, Nome, 12, 25);
  183. if(!DOF2_FileExists(Arquivo))
  184. {
  185. DOF2_CreateFile(Arquivo);
  186. }
  187. new str[12];
  188. for(new i = 0; i != 8; ++i)
  189. {
  190. format(str, sizeof(str), "Arma inv %d", i);
  191. DOF2_SetInt(Arquivo, str, InventarioArma[i][playerid]);
  192. format(str, sizeof(str), "Ammo inv %d", i);
  193. DOF2_SetInt(Arquivo, str, InventarioAmmo[i][playerid]);
  194. }
  195. DOF2_SaveFile();
  196. return 1;
  197. }
  198.  
  199. stock CarregarIventario(playerid)
  200. {
  201. new Nome[25];
  202. GetPlayerName(playerid,Nome,sizeof(Nome));
  203. new Arquivo[41]="Inventarios/.ini";
  204. strins(Arquivo, Nome, 12, 25);
  205. if(DOF2_FileExists(Arquivo))
  206. {
  207. new str[12];
  208. for(new i = 0; i != 8; ++i)
  209. {
  210. format(str, sizeof(str), "Arma inv %d", i);
  211. InventarioArma[i][playerid]=DOF2_GetInt(Arquivo, str);
  212. format(str, sizeof(str), "Ammo inv %d", i);
  213. InventarioAmmo[i][playerid]=DOF2_GetInt(Arquivo, str);
  214. }
  215. }
  216. return 1;
  217. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement