Advertisement
Guest User

Untitled

a guest
May 19th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.46 KB | None | 0 0
  1. #include <a_samp>
  2. #include <DOF2>
  3. #include <zcmd>
  4. #include <dini>
  5. #include <streamer>
  6.  
  7. #define MAX_SLOTS 2000
  8. new ObjectCampfire[MAX_SLOTS][8];
  9.  
  10. stock DestroyObjectCampfire(slots) {
  11. DestroyObject(ObjectCampfire[slots][0]);
  12. DestroyObject(ObjectCampfire[slots][1]);
  13. DestroyObject(ObjectCampfire[slots][2]);
  14. DestroyObject(ObjectCampfire[slots][3]);
  15. DestroyObject(ObjectCampfire[slots][4]);
  16. DestroyObject(ObjectCampfire[slots][5]);
  17. DestroyObject(ObjectCampfire[slots][6]);
  18. DestroyObject(ObjectCampfire[slots][7]);
  19. }
  20. stock CreateObjectCampfire(slots, Float:x, Float:y, Float:z, Float:a) {
  21. ObjectCampfire[slots][0]=CreateObject(841, x, y, z-1, 0.000, 0.000, a);
  22. ObjectCampfire[slots][1]=CreateObject(841, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000);
  23. ObjectCampfire[slots][2]=CreateObject(841, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000);
  24. ObjectCampfire[slots][3]=CreateObject(18688, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000);
  25. ObjectCampfire[slots][4]=CreateObject(18688, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000);
  26. ObjectCampfire[slots][5]=CreateObject(18688, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000);
  27. ObjectCampfire[slots][6]=CreateObject(18688, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000);
  28. ObjectCampfire[slots][7]=CreateObject(18688, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000);
  29. AttachObjectToObject(ObjectCampfire[slots][1], ObjectCampfire[slots][0], 0, -0.5, 0, 0, 0, 0, 1);
  30. AttachObjectToObject(ObjectCampfire[slots][2], ObjectCampfire[slots][0], 0, -0.5, 0, 0, 0, 90, 1);
  31. AttachObjectToObject(ObjectCampfire[slots][3], ObjectCampfire[slots][0], 0.5, -0.5, -2, 0, 0, 0, 1);
  32. AttachObjectToObject(ObjectCampfire[slots][4], ObjectCampfire[slots][0], -0.5, -0.5, -2, 0, 0, 0, 1);
  33. AttachObjectToObject(ObjectCampfire[slots][5], ObjectCampfire[slots][0], 0, -0.5, -2, 0, 0, 0, 1);
  34. AttachObjectToObject(ObjectCampfire[slots][6], ObjectCampfire[slots][0], 0, -0.5, -2, 0, 0, 0, 1);
  35. AttachObjectToObject(ObjectCampfire[slots][7], ObjectCampfire[slots][0], 0, -0.5, -2, 0, 0, 0, 1);
  36. }
  37.  
  38. new ilosc[MAX_PLAYERS];
  39.  
  40. #define MAX_ITEMS 100
  41.  
  42. #define DIALOG_ITEM1 1001
  43. #define DIALOG_ITEM2 1002
  44. #define DIALOG_ITEM3 1003
  45. #define DIALOG_ITEM4 1004
  46.  
  47. #define ITEM_NONE 0
  48. #define ITEM_BEER 1
  49. #define ITEM_WINE 2
  50. #define ITEM_SPRUNK 3
  51. #define ITEM_CIGGY 4
  52. #define ITEM_WOOD 8
  53. #define ITEM_LIGHTER 9
  54. new bool: crouching[MAX_PLAYERS];
  55.  
  56. #define GREY "{C0C0C0}"
  57. #define ORANGE "{FF7F50}"
  58. #define GREEN "{80FF00}"
  59.  
  60. new Nick[MAX_PLAYERS][MAX_PLAYER_NAME];
  61. new String[512];
  62. new bool:mozeOtworzyc[MAX_PLAYERS];
  63.  
  64. enum item_info
  65. {
  66. bool:item_active,
  67. item_owner[64],
  68. item_name[64],
  69. item_type,
  70. item_value1,
  71. item_value2,
  72. bool:item_dropped,
  73. Float:item_pos[3],
  74. item_vir,
  75. item_int
  76. };
  77. new ItemInfo[MAX_ITEMS][item_info],
  78. Item[MAX_PLAYERS][MAX_ITEMS],
  79. ItemObject[MAX_ITEMS],
  80. Text3D:Item3D[MAX_ITEMS];
  81.  
  82. public OnFilterScriptInit()
  83. {
  84. UsePlayerPedAnims();
  85. for(new i; i < MAX_PLAYERS; i++)
  86. {
  87. mozeOtworzyc[i] = true;
  88. }
  89. ////print("\n--------------------------------------");
  90. ////print(" System przedmiotow by Finciakk");
  91. ////print("--------------------------------------\n");
  92.  
  93. LoadAllItems();
  94. SetTimer("SaveAllItems", 4000, true);
  95.  
  96. for(new i; i < 312; i++)
  97. {
  98. AddPlayerClass(i, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
  99. }
  100. return 1;
  101. }
  102.  
  103. main(){}
  104.  
  105. public OnFilterScriptExit()
  106. {
  107. for(new nr = 0; nr < MAX_ITEMS; nr++)
  108. {
  109. if(ItemInfo[nr][item_active])
  110. {
  111. SaveItem(nr);
  112. }
  113. }
  114. DOF2_Exit();
  115. return 1;
  116. }
  117.  
  118. public OnPlayerConnect(playerid)
  119. {
  120. mozeOtworzyc[playerid] = true;
  121. new files[256],Names[24];
  122. GetPlayerName(playerid, Names, 24);
  123. format(files, 256, "/Konta/%s.txt", Names);
  124. return 1;
  125. }
  126.  
  127. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  128. {
  129. if(newkeys == KEY_YES)
  130. {
  131. if(mozeOtworzyc[playerid] == false) return SendClientMessage(playerid, -1, "Poczekaj az podniesiesz przedmiot!");
  132. ShowPlayerItems(playerid);
  133. //ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.1, 1, 1, 1, 1, 1, 1);
  134. }
  135. if(newkeys == KEY_NO)
  136. {
  137. //if(crouching[playerid])
  138. {
  139. if(mozeOtworzyc[playerid] == false) return SendClientMessage(playerid, -1, "Poczekaj az podniesiesz przedmiot!");
  140. new itemstext[512], itemtext[64], items;
  141. for(new nr = 0; nr < MAX_ITEMS; nr++)
  142. {
  143. if(ItemInfo[nr][item_active]==true && ItemInfo[nr][item_dropped]==true && IsPlayerInRangeOfPoint(playerid,5.0,ItemInfo[nr][item_pos][0],ItemInfo[nr][item_pos][1],ItemInfo[nr][item_pos][2]) && GetPlayerVirtualWorld(playerid)==ItemInfo[nr][item_vir] && GetPlayerInterior(playerid)==ItemInfo[nr][item_int])
  144. {
  145. format(itemtext, sizeof(itemtext), "{C0C0C0}%s",ItemInfo[nr][item_name]);
  146. format(itemstext, sizeof(itemstext), "%s%s\n", itemstext, itemtext);
  147. Item[playerid][items]=nr;
  148. items++;
  149. }
  150. }
  151. if(items)
  152. {
  153. ShowPlayerDialog(playerid, DIALOG_ITEM3, DIALOG_STYLE_LIST, "Przedmioty", itemstext, "Podnies", "Anuluj");
  154. return 1;
  155. }
  156. else
  157. {
  158. SendClientMessage(playerid, -1, "Nie ma zadnych przedmiotow w okolicy!");
  159. }
  160. }
  161. }
  162. if(newkeys == KEY_CROUCH)
  163. {
  164. crouching[playerid] = true;
  165. }
  166. if(newkeys == KEY_SPRINT || newkeys == KEY_CROUCH && newkeys == KEY_FIRE)
  167. {
  168. if(crouching[playerid])
  169. {
  170. crouching[playerid] = false;
  171. }
  172. }
  173. return 1;
  174. }
  175.  
  176. forward moozePodniesc(playerid);
  177. public moozePodniesc(playerid)
  178. {
  179. mozeOtworzyc[playerid] = true;
  180. return 1;
  181. }
  182.  
  183. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  184. {
  185. if(dialogid == DIALOG_ITEM1)
  186. {
  187. if(!response)
  188. {
  189. ClearAnimations(playerid);
  190. //ApplyAnimation(playerid, "CARRY", "crry_prtial", 1.0, 0, 0, 0, 0, 0);
  191. return 1;
  192. }
  193. SetPVarInt(playerid, "SelectedItem", Item[playerid][listitem]);
  194. ShowPlayerDialog(playerid, DIALOG_ITEM2, DIALOG_STYLE_LIST, "Przedmioty", "Uzyj\nOdloz", "Wybierz", "Wroc");
  195. return 1;
  196. }
  197. else if(dialogid == DIALOG_ITEM2)
  198. {
  199. if(!response)
  200. {
  201. ShowPlayerItems(playerid);
  202. return 1;
  203. }
  204. new nr=GetPVarInt(playerid, "SelectedItem");
  205. switch(listitem)
  206. {
  207. case 0:
  208. {
  209. UseItem(playerid, nr);
  210. return 1;
  211. }
  212. case 1:
  213. {
  214. DropItem(playerid, nr);
  215. return 1;
  216. }
  217. }
  218. return 1;
  219. }
  220. else if(dialogid == DIALOG_ITEM3)
  221. {
  222. if(!response)
  223. {
  224. return 1;
  225. }
  226. new nr=Item[playerid][listitem];
  227. if(IsPlayerInAnyVehicle(playerid))
  228. {
  229. SendClientMessage(playerid, -1, "Nie mozesz podnosic przedmiotow bedac w pojezdzie!");
  230. return 1;
  231. }
  232. if(ItemInfo[nr][item_active]==true && ItemInfo[nr][item_dropped]==true && IsPlayerInRangeOfPoint(playerid,5.0,ItemInfo[nr][item_pos][0],ItemInfo[nr][item_pos][1],ItemInfo[nr][item_pos][2]) && GetPlayerVirtualWorld(playerid)==ItemInfo[nr][item_vir] && GetPlayerInterior(playerid)==ItemInfo[nr][item_int])
  233. {
  234. mozeOtworzyc[playerid] = false;
  235. SetTimerEx("moozePodniesc", 3000, false, "i", playerid);
  236. PickUpItem(playerid, nr);
  237. return 1;
  238. }
  239. else
  240. {
  241. SendClientMessage(playerid, -1, "Ktos juz podniosl wybrany przedmiot.");
  242. }
  243. return 1;
  244. }
  245. else if(dialogid == DIALOG_ITEM4)
  246. {
  247. if(!response)
  248. {
  249. ShowPlayerItems(playerid);
  250. return 1;
  251. }
  252. switch(listitem)
  253. {
  254. case 0:
  255. {
  256. AddItem(playerid, "Piwo", ITEM_BEER, 0, 0);
  257. return 1;
  258. }
  259. case 1:
  260. {
  261. AddItem(playerid, "Wino", ITEM_WINE, 0, 0);
  262. return 1;
  263. }
  264. case 2:
  265. {
  266. AddItem(playerid, "Sprunk", ITEM_SPRUNK, 0, 0);
  267. return 1;
  268. }
  269. case 3:
  270. {
  271. AddItem(playerid, "Papieros", ITEM_CIGGY, 0, 0);
  272. return 1;
  273. }
  274. case 4:
  275. {
  276. AddItem(playerid, "Drewno", ITEM_WOOD, 0, 0);
  277. return 1;
  278. }
  279. case 5:
  280. {
  281. AddItem(playerid, "Zapalniczka", ITEM_LIGHTER, 0, 0);
  282. return 1;
  283. }
  284. }
  285. return 1;
  286. }
  287. return 1;
  288. }
  289.  
  290. forward SaveAllItems();
  291. public SaveAllItems()
  292. {
  293.  
  294. for(new nr = 0; nr < MAX_ITEMS; nr++)
  295. {
  296. if(ItemInfo[nr][item_active])
  297. {
  298. SaveItem(nr);
  299. }
  300. }
  301. return 1;
  302. }
  303.  
  304. /*ShowText(playerid, text[])
  305. {
  306. new Float:Pos[3], vir=GetPlayerVirtualWorld(playerid), interior=GetPlayerInterior(playerid);
  307. GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  308. for(new i = 0; i < MAX_PLAYERS; i++)
  309. {
  310. if(IsPlayerInRangeOfPoint(i, 10.0, Pos[0], Pos[1], Pos[2]) && GetPlayerInterior(i)==interior && GetPlayerVirtualWorld(i)==vir)
  311. {
  312. SendClientMessage(i, 0xB589DDFF, text);
  313. }
  314. }
  315. return 1;
  316. }*/
  317.  
  318. LoadAllItems()
  319. {
  320. new file[64];
  321. for(new nr = 0; nr < MAX_ITEMS; nr++)
  322. {
  323. format(file, sizeof(file), "Przedmioty/%d.txt", nr);
  324. if(DOF2_FileExists(file))
  325. {
  326. ItemInfo[nr][item_active]=DOF2_GetBool(file, "Aktywny");
  327. ItemInfo[nr][item_type]=DOF2_GetInt(file, "Typ");
  328. ItemInfo[nr][item_value1]=DOF2_GetInt(file, "Wartosc1");
  329. ItemInfo[nr][item_value2]=DOF2_GetInt(file, "Wartosc2");
  330. ItemInfo[nr][item_dropped]=DOF2_GetBool(file, "Odlozony");
  331. ItemInfo[nr][item_pos][0]=DOF2_GetFloat(file, "PosX");
  332. ItemInfo[nr][item_pos][1]=DOF2_GetFloat(file, "PosY");
  333. ItemInfo[nr][item_pos][2]=DOF2_GetFloat(file, "PosZ");
  334. ItemInfo[nr][item_vir]=DOF2_GetInt(file, "Vir");
  335. ItemInfo[nr][item_int]=DOF2_GetInt(file, "Int");
  336. if(ItemInfo[nr][item_active]==false)
  337. {
  338. DOF2_RemoveFile(file);
  339. }
  340. if(ItemInfo[nr][item_dropped]==true)
  341. {
  342. CreateObjectItem(nr);
  343. }
  344. }
  345. }
  346. return 1;
  347. }
  348.  
  349. SaveItem(nr)
  350. {
  351. //print("wykonuje zapis itemu %d", nr);
  352. if(nr<0||nr>MAX_ITEMS) return 1;
  353. new file[64];
  354. format(file, sizeof(file), "Przedmioty/%d.txt", nr);
  355. dini_Create(file);
  356. dini_BoolSet(file, "Aktywny", ItemInfo[nr][item_active]);
  357. dini_Set(file, "Wlasciciel", ItemInfo[nr][item_owner]);
  358. dini_Set(file, "Nazwa", ItemInfo[nr][item_name]);
  359. dini_IntSet(file, "Typ", ItemInfo[nr][item_type]);
  360. dini_IntSet(file, "Wartosc1", ItemInfo[nr][item_value1]);
  361. dini_IntSet(file, "Wartosc2", ItemInfo[nr][item_value2]);
  362. dini_BoolSet(file, "Odlozony", ItemInfo[nr][item_dropped]);
  363. dini_FloatSet(file, "PosX", ItemInfo[nr][item_pos][0]);
  364. dini_FloatSet(file, "PosY", ItemInfo[nr][item_pos][1]);
  365. dini_FloatSet(file, "PosZ", ItemInfo[nr][item_pos][2]);
  366. dini_IntSet(file, "Vir", ItemInfo[nr][item_vir]);
  367. dini_IntSet(file, "Int", ItemInfo[nr][item_int]);
  368. return 1;
  369. }
  370.  
  371. AddItem(playerid, name[], type, value1, value2)
  372. {
  373. for(new nr = 0; nr < MAX_ITEMS; nr++)
  374. {
  375. if(ItemInfo[nr][item_active]==false)
  376. {
  377. ItemInfo[nr][item_active]=true;
  378. strmid(ItemInfo[nr][item_owner], Nick[playerid], 0, 64, 64);
  379. strmid(ItemInfo[nr][item_name], name, 0, 64, 64);
  380. ItemInfo[nr][item_type]=type;
  381. ItemInfo[nr][item_value1]=value1;
  382. ItemInfo[nr][item_value2]=value2;
  383. ItemInfo[nr][item_dropped]=false;
  384. ItemInfo[nr][item_pos][0]=0.0;
  385. ItemInfo[nr][item_pos][1]=0.0;
  386. ItemInfo[nr][item_pos][2]=0.0;
  387. ItemInfo[nr][item_vir]=0;
  388. ItemInfo[nr][item_int]=0;
  389. SendClientMessage(playerid, -1, "Przedmiot zostal dodany do ekwipunku.");
  390. return 1;
  391. }
  392. }
  393. return 1;
  394. }
  395.  
  396. ShowPlayerItems(playerid)
  397. {
  398. new itemstext[2560], itemtext[256], items, pinfo[40];
  399. for(new nr = 0; nr < MAX_ITEMS; nr++)
  400. {
  401. if(ItemInfo[nr][item_active]==true && ItemInfo[nr][item_dropped]==false && !strcmp(ItemInfo[nr][item_owner], Nick[playerid], true))
  402. {
  403. format(itemtext, sizeof(itemtext), "{C0C0C0}%s", ItemInfo[nr][item_name]);
  404. format(itemstext, sizeof(itemstext), "%s%s\n", itemstext, itemtext);
  405. Item[playerid][items]=nr;
  406. items++;
  407. }
  408. }
  409. if(!items)
  410. {
  411. strcat(itemstext, "{FF0000}Plecak jest pusty!", 2560);
  412. }
  413. format(pinfo, 40, "Przedmioty", ilosc[playerid]);
  414. ShowPlayerDialog(playerid, DIALOG_ITEM1, DIALOG_STYLE_LIST, pinfo, itemstext, "Wybierz", "Anuluj");
  415. return 1;
  416. }
  417.  
  418. forward UsunObiekt(playerid);
  419. public UsunObiekt(playerid)
  420. {
  421. RemovePlayerAttachedObject(playerid, 1);
  422. TogglePlayerControllable(playerid, true);
  423. ClearAnimations(playerid);
  424. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DUCK);
  425. //ApplyAnimation(playerid,"CARRY","crry_prtial",4,0,0,0,0,1);
  426. return 1;
  427. }
  428.  
  429. UseItem(playerid, nr)
  430. {
  431. if(ItemInfo[nr][item_active]==false)
  432. {
  433. SendClientMessage(playerid, -1, "Wybrany przedmiot nie jest juz aktywny!");
  434. return 1;
  435. }
  436. if(strcmp(ItemInfo[nr][item_owner], Nick[playerid], true))
  437. {
  438. SendClientMessage(playerid, -1, "Wlasciciel przedmiotu ulegl zmianie!");
  439. return 1;
  440. }
  441. if(ItemInfo[nr][item_type]==ITEM_NONE)
  442. {
  443. SendClientMessage(playerid, -1, "Wybrany przedmiot nie pelni zadnej funkcji.");
  444. SendClientMessage(playerid, -1, "Zostanie to dodane w przyszlych aktualizacjach.");
  445. return 1;
  446. }
  447. if(ItemInfo[nr][item_type]==ITEM_BEER)
  448. {
  449. //ApplyAnimation(playerid,"VENDING","VEND_Drink2_P",4.1,0,1,1,1,1,1);
  450. SetPlayerAttachedObject(playerid, 1, 1486, 5);
  451. SetTimerEx("UsunObiekt", 3000, false, "i", playerid);
  452. //TogglePlayerControllable(playerid, false);
  453. format(String, sizeof(String), "* %s otwiera butelke piwa.", Nick[playerid]);
  454. //ShowText(playerid, String);
  455. ItemInfo[nr][item_active]=false;
  456. DeleteItem(nr);
  457. return 1;
  458. }
  459. if(ItemInfo[nr][item_type]==ITEM_WINE)
  460. {
  461. //ApplyAnimation(playerid,"VENDING","VEND_Drink2_P",4.1,0,1,1,1,1,1);
  462. SetPlayerAttachedObject(playerid, 1, 1486, 5);
  463. SetTimerEx("UsunObiekt", 3000, false, "i", playerid);
  464. //TogglePlayerControllable(playerid, false);
  465. format(String, sizeof(String), "* %s otwiera butelke wina.", Nick[playerid]);
  466. //ShowText(playerid, String);
  467. ItemInfo[nr][item_active]=false;
  468. DeleteItem(nr);
  469. return 1;
  470. }
  471. if(ItemInfo[nr][item_type]==ITEM_SPRUNK)
  472. {
  473. //ApplyAnimation(playerid,"VENDING","VEND_Drink2_P",4.1,0,1,1,1,1,1);
  474. SetPlayerAttachedObject(playerid, 1, 1546, 5);
  475. SetTimerEx("UsunObiekt", 3000, false, "i", playerid);
  476. //TogglePlayerControllable(playerid, false);
  477. format(String, sizeof(String), "* %s otwiera puszke sprunka.", Nick[playerid]);
  478. //ShowText(playerid, String);
  479. ItemInfo[nr][item_active]=false;
  480. DeleteItem(nr);
  481. return 1;
  482. }
  483. if(ItemInfo[nr][item_type]==ITEM_CIGGY)
  484. {
  485. //ApplyAnimation(playerid,"VENDING","VEND_Drink2_P",4.1,0,1,1,1,1,1);
  486. SetPlayerAttachedObject(playerid, 1, 19625, 5);
  487. SetTimerEx("UsunObiekt", 3000, false, "i", playerid);
  488. //TogglePlayerControllable(playerid, false);
  489. format(String, sizeof(String), "* %s odpala papierosa.", Nick[playerid]);
  490. //ShowText(playerid, String);
  491. ItemInfo[nr][item_active]=false;
  492. DeleteItem(nr);
  493. return 1;
  494. }
  495. if(ItemInfo[nr][item_type]==ITEM_LIGHTER) return 1;
  496. if(ItemInfo[nr][item_type]==ITEM_WOOD)
  497. {
  498. new Float:x, Float:y, Float:z, Float:a;
  499. new bool:znalezione, Name[24];
  500. GetPlayerName(playerid, Name, 24);
  501. for(new i; i < MAX_ITEMS; i++)
  502. {
  503. if(ItemInfo[i][item_type] == ITEM_LIGHTER && !strcmp(ItemInfo[i][item_owner], Nick[playerid], true))
  504. {
  505. znalezione = true;
  506. break;
  507. }
  508. }
  509. if(!znalezione) return SendClientMessage(playerid, -1, "Nie posiadasz zapalniczki do rozpalenia ognia.");
  510. else
  511. ItemInfo[nr][item_active]=false;
  512. format(String, sizeof(String), "* %s rozpala ognisko.", Nick[playerid]);
  513. //ShowText(playerid, String);
  514. format(ItemInfo[nr][item_owner], 256, "brak");
  515.  
  516. ItemInfo[nr][item_pos][0] = 0;
  517. ItemInfo[nr][item_pos][1] = 0;
  518. ItemInfo[nr][item_pos][2] = 0;
  519. DeleteItem(nr);
  520. GetPlayerPos(playerid, x, y,z);
  521. GetPlayerFacingAngle(playerid, a);
  522. CreateObjectCampfire(nr, x, y, z, a);
  523. }
  524. return 1;
  525. }
  526.  
  527. DropItem(playerid, nr)
  528. {
  529. if(ItemInfo[nr][item_active]==false)
  530. {
  531. SendClientMessage(playerid, -1, "Wybrany przedmiot nie jest juz aktywny!");
  532. return 1;
  533. }
  534. if(strcmp(ItemInfo[nr][item_owner], Nick[playerid], true))
  535. {
  536. SendClientMessage(playerid, -1, "Wlasciciel przedmiotu ulegl zmianie!");
  537. return 1;
  538. }
  539. strmid(ItemInfo[nr][item_owner], "brak", 0, 64, 64);
  540. ItemInfo[nr][item_dropped]=true;
  541. GetPlayerPos(playerid,ItemInfo[nr][item_pos][0],ItemInfo[nr][item_pos][1],ItemInfo[nr][item_pos][2]);
  542. ItemInfo[nr][item_vir]=GetPlayerVirtualWorld(playerid);
  543. ItemInfo[nr][item_int]=GetPlayerInterior(playerid);
  544. CreateObjectItem(nr);
  545. //ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.5, 0, 0, 0, 0, 0);
  546. format(String, sizeof(String), "* %s odklada przedmiot %s na ziemie.", Nick[playerid],ItemInfo[nr][item_name]);
  547. //ShowText(playerid, String);
  548. return 1;
  549. }
  550.  
  551. PickUpItem(playerid, nr)
  552. {
  553. if(ItemInfo[nr][item_active]==false)
  554. {
  555. SendClientMessage(playerid, -1, "Wybrany przedmiot nie jest juz aktywny!");
  556. return 1;
  557. }
  558. if(strcmp(ItemInfo[nr][item_owner], "brak", true))
  559. {
  560. SendClientMessage(playerid, -1, "Wlasciciel przedmiotu ulegl zmianie!");
  561. return 1;
  562. }
  563. strmid(ItemInfo[nr][item_owner], Nick[playerid], 0, 64, 64);
  564. ItemInfo[nr][item_dropped]=false;
  565. //ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.5, 0, 0, 0, 0, 0);
  566. DestroyDynamicObject(ItemObject[nr]);
  567. DestroyDynamic3DTextLabel(Item3D[nr]);
  568. format(String, sizeof(String), "* %s podnosi z ziemi %s.", Nick[playerid],ItemInfo[nr][item_name]);
  569. //ShowText(playerid, String);
  570. return 1;
  571. }
  572.  
  573. DeleteItem(nr)
  574. {
  575. ItemInfo[nr][item_active] = false;
  576. ItemInfo[nr][item_dropped] = false;
  577. ItemInfo[nr][item_int] = -1;
  578. format(ItemInfo[nr][item_name], 256, "");
  579. format(ItemInfo[nr][item_owner], 256, "");
  580. ItemInfo[nr][item_pos][0] = -1;
  581. ItemInfo[nr][item_pos][1] = -1;
  582. ItemInfo[nr][item_pos][2] = -1;
  583. ItemInfo[nr][item_type] = ITEM_NONE;
  584. ItemInfo[nr][item_value1] = -1;
  585. ItemInfo[nr][item_value2] = -1;
  586. ItemInfo[nr][item_vir] = -1;
  587. //print("wykonuje usuwanie itemu %d", nr);
  588. if(nr<0||nr>MAX_ITEMS) return 1;
  589. new file[64];
  590. format(file, sizeof(file), "Przedmioty/%d.txt", nr);
  591. dini_Create(file);
  592. dini_BoolSet(file, "Aktywny", false);
  593. dini_Set(file, "Wlasciciel", "");
  594. dini_Set(file, "Nazwa", "");
  595. dini_IntSet(file, "Typ", 0);
  596. dini_IntSet(file, "Wartosc1", 0);
  597. dini_IntSet(file, "Wartosc2", ItemInfo[nr][item_value2]);
  598. dini_BoolSet(file, "Odlozony", false);
  599. dini_FloatSet(file, "PosX", ItemInfo[nr][item_pos][0]);
  600. dini_FloatSet(file, "PosY", ItemInfo[nr][item_pos][1]);
  601. dini_FloatSet(file, "PosZ", ItemInfo[nr][item_pos][2]);
  602. dini_IntSet(file, "Vir", ItemInfo[nr][item_vir]);
  603. dini_IntSet(file, "Int", ItemInfo[nr][item_int]);
  604. //print("przedmiot %d usuniety", nr);
  605. return 1;
  606. }
  607.  
  608. CreateObjectItem(nr)
  609. {
  610. new liczba = random(13) / 5;
  611. ////print("tworzenie %d", ItemInfo[nr][item_type]);
  612. if(ItemInfo[nr][item_type]==ITEM_BEER)
  613. {
  614. ItemObject[nr]=CreateDynamicObject(1486,ItemInfo[nr][item_pos][0] + liczba,ItemInfo[nr][item_pos][1] + liczba,ItemInfo[nr][item_pos][2]-1.0,0,0,0,ItemInfo[nr][item_vir],ItemInfo[nr][item_int]);
  615. Item3D[nr]=CreateDynamic3DTextLabel("{FFFF00}---------Piwo{FFFF00}---------\nAby podniesc nacisnij {FF0000}N", 0xFFFFFFFF, ItemInfo[nr][item_pos][0] + liczba ,ItemInfo[nr][item_pos][1] + liczba,ItemInfo[nr][item_pos][2]-0.8, 10);
  616. return 1;
  617. }
  618. if(ItemInfo[nr][item_type]==ITEM_WINE)
  619. {
  620. ItemObject[nr]=CreateDynamicObject(1487,ItemInfo[nr][item_pos][0] + liczba,ItemInfo[nr][item_pos][1] + liczba,ItemInfo[nr][item_pos][2]-1.0,0,0,0,ItemInfo[nr][item_vir],ItemInfo[nr][item_int]);
  621. Item3D[nr]=CreateDynamic3DTextLabel("{FFFF00}---------Wino{FFFF00}---------\nAby podniesc nacisnij {FF0000}N", 0xFFFFFFFF, ItemInfo[nr][item_pos][0] + liczba ,ItemInfo[nr][item_pos][1] + liczba,ItemInfo[nr][item_pos][2]-0.8, 10);
  622. return 1;
  623. }
  624. if(ItemInfo[nr][item_type]==ITEM_SPRUNK)
  625. {
  626. ItemObject[nr]=CreateDynamicObject(1546,ItemInfo[nr][item_pos][0] + liczba,ItemInfo[nr][item_pos][1] + liczba,ItemInfo[nr][item_pos][2]-1.0,0,0,0,ItemInfo[nr][item_vir],ItemInfo[nr][item_int]);
  627. Item3D[nr]=CreateDynamic3DTextLabel("{FFFF00}---------Sprunk{FFFF00}---------\nAby podniesc nacisnij {FF0000}N", 0xFFFFFFFF, ItemInfo[nr][item_pos][0] + liczba ,ItemInfo[nr][item_pos][1] + liczba,ItemInfo[nr][item_pos][2]-0.8, 10);
  628. return 1;
  629. }
  630. if(ItemInfo[nr][item_type]==ITEM_CIGGY)
  631. {
  632. ItemObject[nr]=CreateDynamicObject(19625,ItemInfo[nr][item_pos][0] + liczba,ItemInfo[nr][item_pos][1] + liczba,ItemInfo[nr][item_pos][2]-1.0,0,0,0,ItemInfo[nr][item_vir],ItemInfo[nr][item_int]);
  633. Item3D[nr]=CreateDynamic3DTextLabel("{FFFF00}---------Papieros{FFFF00}---------\nAby podniesc nacisnij {FF0000}N", 0xFFFFFFFF, ItemInfo[nr][item_pos][0] + liczba ,ItemInfo[nr][item_pos][1] + liczba,ItemInfo[nr][item_pos][2]-0.8, 10);
  634. return 1;
  635. }
  636. if(ItemInfo[nr][item_type]==ITEM_WOOD)
  637. {
  638. ItemObject[nr]=CreateDynamicObject(1463,ItemInfo[nr][item_pos][0] + liczba,ItemInfo[nr][item_pos][1] + liczba,ItemInfo[nr][item_pos][2]-1.0,0,0,0,ItemInfo[nr][item_vir],ItemInfo[nr][item_int]);
  639. Item3D[nr]=CreateDynamic3DTextLabel("{FFFF00}---------Drewno{FFFF00}---------\nAby podniesc nacisnij {FF0000}N", 0xFFFFFFFF, ItemInfo[nr][item_pos][0] + liczba ,ItemInfo[nr][item_pos][1] + liczba,ItemInfo[nr][item_pos][2]-0.8, 10);
  640. return 1;
  641. }
  642. if(ItemInfo[nr][item_type]==ITEM_LIGHTER)
  643. {
  644. ItemObject[nr]=CreateDynamicObject(19998,ItemInfo[nr][item_pos][0] + liczba,ItemInfo[nr][item_pos][1] + liczba,ItemInfo[nr][item_pos][2]-1.0,0,0,0,ItemInfo[nr][item_vir],ItemInfo[nr][item_int]);
  645. Item3D[nr]=CreateDynamic3DTextLabel("{FFFF00}---------Zapalniczka{FFFF00}---------\nAby podniesc nacisnij {FF0000}N", 0xFFFFFFFF, ItemInfo[nr][item_pos][0] + liczba ,ItemInfo[nr][item_pos][1] + liczba,ItemInfo[nr][item_pos][2]-0.8, 10);
  646. return 1;
  647. }
  648. return 1;
  649. }
  650.  
  651. CMD:dodajprzedmiot(playerid, cmdtext[])
  652. {
  653. if(!IsPlayerAdmin(playerid)) return 1;
  654. ShowPlayerDialog(playerid, DIALOG_ITEM4, DIALOG_STYLE_LIST, "Przedmioty", "Piwo\nWino\nSprunk\nPapieros\nDrewno\nZapalniczka", "Dodaj", "Anuluj");
  655. return 1;
  656. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement