YiinY

daaaaaug npc kodo

May 24th, 2013
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 35.42 KB | None | 0 0
  1.  
  2. // :: NPC
  3. /*
  4. YCMD:npc(pid, params[], help)
  5. {
  6. inline npc_create(i)
  7. {
  8. npc.Create(f("npc_%i", i+GetTickCount()));
  9. }
  10. for(new i, j = strval(params); i < j; ++i)
  11. setTimerEx(using inline npc_create, 600*i, 0, "i", i);
  12. }
  13.  
  14. enum e_NPC
  15. {
  16. bool:_is_valid,
  17. _npc_name[MAX_PLAYER_NAME],
  18. _follow_timer,
  19. _shoot_timer
  20. };
  21.  
  22. new zaidejo_npc[MP][MP][e_NPC];*/
  23. /*
  24. YCMD:npc_valdymas(pid, params[], help)
  25. {
  26. inline valdymo_menu(id, did, response, listitem, string:text[])
  27. {
  28. if(response)
  29. {
  30. switch(listitem)
  31. {
  32. case 0:
  33. {
  34. inline sukurti(id2, did2, response2, listitem2, string:text2[])
  35. {
  36. if(response2)
  37. {
  38. if(isnull(text2))
  39. {
  40. notification(pid, "Ivesk npc varda.");
  41. showDialog(playerid, using inline sukurti, DIALOG_STYLE_INPUT, "Sukurti NPC", "Įvesk NPC vardą", "Sukurti", "atgal");
  42. }
  43. new __id = npc.Create(f("%s_%i", text2, random(100000)));
  44. zaidejo_npc[pid][__id][_is_valid] = true;
  45. format(zaidejo_npc[pid][__id][_npc_name], 24, text2);
  46. notification(pid, "NPC sukurtas.");
  47.  
  48. } else showDialog(pid, using inline valdymo_menu, DIALOG_STYLE_LIST, "NPC valdymas", "Sukurti NPC\nPanaikinti NPC\nDuoti ginklą NPC\nAtimti NPC ginklus\nLiepti NPC sekti kažką\nLiepti sustoti sekti\nLiepti šaudyti į kažką\nLiepti nebešaudyti", "Pasirinkti", "Išeiti");
  49. }
  50. showDialog(playerid, using inline sukurti, DIALOG_STYLE_INPUT, "Sukurti NPC", "Įvesk NPC vardą", "Sukurti", "atgal");
  51. }
  52. case 1:
  53. {
  54. format(g_szSprintfBuffer, sizeof g_szSprintfBuffer, "");
  55. for(new i; i < MP; ++i)
  56. {
  57. if(zaidejo_npc[pid][i][_is_valid])
  58. {
  59. strcat(g_szSprintfBuffer, f("%s | HP: %.2f | WEP: %i\n", zaidejo_npc[pid][i][_npc_name], npc.GetHealth(i), npc.GetWeapon(i)));
  60. }
  61. }
  62. if(isnull(g_szSprintfBuffer))
  63. {
  64. notification(pid, "Neturi NPC.");
  65.  
  66. } else {
  67.  
  68. inline panaikinti(id2, did2, response2, listitem2, string:text2[])
  69. {
  70. if(response2)
  71. {
  72. new list_item = -1;
  73. for(new i; i < MP; ++i)
  74. {
  75. if(zaidejo_npc[pid][i][_is_valid])
  76. {
  77. ++list_item;
  78. if(list_item == listitem2)
  79. {
  80. npc.Destroy(i);
  81. zaidejo_npc[pid][i][_is_valid] = false;
  82. notification(pid, "NPC panaikintas.");
  83. break;
  84. }
  85. }
  86. }
  87. } else showDialog(pid, using inline valdymo_menu, DIALOG_STYLE_LIST, "NPC valdymas", "Sukurti NPC\nPanaikinti NPC\nDuoti ginklą NPC\nAtimti NPC ginklus\nLiepti NPC sekti kažką\nLiepti sustoti sekti\nLiepti šaudyti į kažką\nLiepti nebešaudyti", "Pasirinkti", "Išeiti");
  88. }
  89. showDialog(pid, using inline panaikinti, DIALOG_STYLE_LIST, "Panikinti NPC", g_szSprintfBuffer, "Panaikinti", "atgal");
  90. }
  91. }
  92. case 2:
  93. {
  94. inline duoti_ginkla(id2, did2, response2, listitem2, string:text2[])
  95. {
  96. if(response2)
  97. {
  98. if(isnull(text2))
  99. {
  100. notification(pid, "Irasyk ginklo id.");
  101. showDialog(pid, using inline duoti_ginkla, DIALOG_STYLE_INPUT, "Duoti ginklą NPC", "Įvesk ginklo ID:", "Duoti", "atgal");
  102.  
  103. } else {
  104. format(g_szSprintfBuffer, sizeof g_szSprintfBuffer, "");
  105. for(new i; i < MP; ++i)
  106. {
  107. if(zaidejo_npc[pid][i][_is_valid])
  108. {
  109. strcat(g_szSprintfBuffer, f("%s | HP: %.2f | WEP: %i\n", zaidejo_npc[pid][i][_npc_name], npc.GetHealth(i), npc.GetWeapon(i)));
  110. }
  111. }
  112. if(isnull(g_szSprintfBuffer))
  113. {
  114. notification(pid, "Neturi NPC.");
  115.  
  116. } else {
  117.  
  118. inline pasirinkti_npc(id3, did3, response3, listitem3, string:text3[])
  119. {
  120. if(response3)
  121. {
  122. new list_item = -1;
  123. for(new i; i < MP; ++i)
  124. {
  125. if(zaidejo_npc[pid][i][_is_valid])
  126. {
  127. ++list_item;
  128. if(list_item == listitem3)
  129. {
  130. npc.SetWeapon(i, strval(text2));
  131. npc.SetAmmo(i, 10000);
  132. notification(pid, "Davei NPC ginkla.");
  133. break;
  134. }
  135. }
  136. }
  137. }
  138. }
  139. showDialog(pid, using inline pasirinkti_npc, DIALOG_STYLE_LIST, "Pasirink NPC kuriam duosi ginklą", g_szSprintfBuffer, "Duoti", "atgal");
  140. }
  141. }
  142. } else showDialog(pid, using inline valdymo_menu, DIALOG_STYLE_LIST, "NPC valdymas", "Sukurti NPC\nPanaikinti NPC\nDuoti ginklą NPC\nAtimti NPC ginklus\nLiepti NPC sekti kažką\nLiepti sustoti sekti\nLiepti šaudyti į kažką\nLiepti nebešaudyti", "Pasirinkti", "Išeiti");
  143. }
  144. showDialog(pid, using inline duoti_ginkla, DIALOG_STYLE_INPUT, "Duoti ginklą NPC", "Įvesk ginklo ID:", "Duoti", "atgal");
  145. }
  146. case 3:
  147. {
  148. format(g_szSprintfBuffer, sizeof g_szSprintfBuffer, "");
  149. for(new i; i < MP; ++i)
  150. {
  151. if(zaidejo_npc[pid][i][_is_valid])
  152. {
  153. strcat(g_szSprintfBuffer, f("%s | HP: %.2f | WEP: %i\n", zaidejo_npc[pid][i][_npc_name], npc.GetHealth(i), npc.GetWeapon(i)));
  154. }
  155. }
  156. if(isnull(g_szSprintfBuffer))
  157. {
  158. notification(pid, "Neturi NPC.");
  159.  
  160. } else {
  161.  
  162. inline pasirinkti_npc(id3, did3, response3, listitem3, string:text3[])
  163. {
  164. if(response3)
  165. {
  166. new list_item = -1;
  167. for(new i; i < MP; ++i)
  168. {
  169. if(zaidejo_npc[pid][i][_is_valid])
  170. {
  171. ++list_item;
  172. if(list_item == listitem3)
  173. {
  174. npc.SetWeapon(i, 0);
  175. notification(pid, "Atėmei NPC ginkla.");
  176. break;
  177. }
  178. }
  179. }
  180. } else showDialog(pid, using inline valdymo_menu, DIALOG_STYLE_LIST, "NPC valdymas", "Sukurti NPC\nPanaikinti NPC\nDuoti ginklą NPC\nAtimti NPC ginklus\nLiepti NPC sekti kažką\nLiepti sustoti sekti\nLiepti šaudyti į kažką\nLiepti nebešaudyti", "Pasirinkti", "Išeiti");
  181. }
  182. showDialog(pid, using inline pasirinkti_npc, DIALOG_STYLE_LIST, "Pasirink iš kurio NPC atimti ginklą", g_szSprintfBuffer, "Atimti", "atgal");
  183. }
  184. }
  185. case 4:
  186. {
  187. format(g_szSprintfBuffer, sizeof g_szSprintfBuffer, "");
  188. for(new i; i < MP; ++i)
  189. {
  190. if(zaidejo_npc[pid][i][_is_valid])
  191. {
  192. strcat(g_szSprintfBuffer, f("%s | HP: %.2f | WEP: %i\n", zaidejo_npc[pid][i][_npc_name], npc.GetHealth(i), npc.GetWeapon(i)));
  193. }
  194. }
  195. if(isnull(g_szSprintfBuffer))
  196. {
  197. notification(pid, "Neturi NPC.");
  198.  
  199. } else {
  200.  
  201. inline pasirinkti_npc(id3, did3, response3, listitem3, string:text3[])
  202. {
  203. if(response3)
  204. {
  205. new list_item = -1;
  206. for(new i; i < MP; ++i)
  207. {
  208. if(zaidejo_npc[pid][i][_is_valid])
  209. {
  210. ++list_item;
  211. if(list_item == listitem3)
  212. {
  213. inline ka_sekti(id2, did2, response2, listitem2, string:text2[])
  214. {
  215. if( response2 )
  216. {
  217. format(g_szSprintfBuffer, sizeof g_szSprintfBuffer, "");
  218. foreach(new j : Player)
  219. {
  220. strcat(g_szSprintfBuffer, f("%s (%i)\n", GetPlayerNameEx(j), j));
  221. }
  222. inline select_player(id4, did4, response4, listitem4, string:text4[])
  223. {
  224. foreach(new j : Player)
  225. {
  226. if(j == listitem4)
  227. {
  228. if(zaidejo_npc[pid][i][_follow_timer])
  229. {
  230. killTimer(zaidejo_npc[pid][i][_follow_timer]);
  231. zaidejo_npc[pid][i][_follow_timer] = 0;
  232. }
  233. inline follow()
  234. {
  235. new coords<1>, coords<2>;
  236. GetPlayerPos(j, coords<1>);
  237. npc.GetPosition(i, coords<2>);
  238. if(_x == 0 || _x2 == 0)
  239. {
  240. killTimer(zaidejo_npc[pid][i][_follow_timer]);
  241. zaidejo_npc[pid][i][_follow_timer] = 0;
  242. break;
  243. }
  244. if(GDBP(coords<1>, coords<2>) > 20)
  245. npc.GoTo(i, _x + random(8) - 4, _y + random(8) - 4, _z, MOVE_TYPE_SPRINT);
  246. else if(GDBP(coords<1>, coords<2>) > 10)
  247. npc.GoTo(i, _x + random(8) - 4, _y + random(8) - 4, _z, MOVE_TYPE_RUN);
  248. }
  249. zaidejo_npc[pid][i][_follow_timer] = setTimer(using inline follow, 300, 1);
  250. break;
  251. }
  252. }
  253. }
  254. showDialog(pid, using inline select_player, DIALOG_STYLE_LIST, "Kurį žaidėją sekti?", g_szSprintfBuffer, "Sekti", "atgal");
  255. } else showDialog(pid, using inline valdymo_menu, DIALOG_STYLE_LIST, "NPC valdymas", "Sukurti NPC\nPanaikinti NPC\nDuoti ginklą NPC\nAtimti NPC ginklus\nLiepti NPC sekti kažką\nLiepti sustoti sekti\nLiepti šaudyti į kažką\nLiepti nebešaudyti", "Pasirinkti", "Išeiti");
  256. }
  257. showDialog(pid, using inline ka_sekti, DIALOG_STYLE_LIST, g_szSprintfBuffer, "Sekti", "atgal");
  258. break;
  259. }
  260. }
  261. }
  262. } else showDialog(pid, using inline valdymo_menu, DIALOG_STYLE_LIST, "NPC valdymas", "Sukurti NPC\nPanaikinti NPC\nDuoti ginklą NPC\nAtimti NPC ginklus\nLiepti NPC sekti kažką\nLiepti sustoti sekti\nLiepti šaudyti į kažką\nLiepti nebešaudyti", "Pasirinkti", "Išeiti");
  263. }
  264. showDialog(pid, using inline pasirinkti_npc, DIALOG_STYLE_LIST, "Pasirink kuriam NPC liepti sekti.", g_szSprintfBuffer, "Rinktis", "atgal");
  265. }
  266. }
  267. case 5:
  268. {
  269. format(g_szSprintfBuffer, sizeof g_szSprintfBuffer, "");
  270. for(new i; i < MP; ++i)
  271. {
  272. if(zaidejo_npc[pid][i][_is_valid])
  273. {
  274. strcat(g_szSprintfBuffer, f("%s | HP: %.2f | WEP: %i\n", zaidejo_npc[pid][i][_npc_name], npc.GetHealth(i), npc.GetWeapon(i)));
  275. }
  276. }
  277. if(isnull(g_szSprintfBuffer))
  278. {
  279. notification(pid, "Neturi NPC.");
  280.  
  281. } else {
  282.  
  283. inline pasirinkti_npc(id3, did3, response3, listitem3, string:text3[])
  284. {
  285. if(response3)
  286. {
  287. new list_item = -1;
  288. for(new i; i < MP; ++i)
  289. {
  290. if(zaidejo_npc[pid][i][_is_valid])
  291. {
  292. ++list_item;
  293. if(list_item == listitem3)
  294. {
  295. if(zaidejo_npc[pid][i][_follow_timer])
  296. {
  297. killTimer(zaidejo_npc[pid][i][_follow_timer]);
  298. zaidejo_npc[pid][i][_follow_timer] = 0;
  299. notification(pid, "NPC nieko nebeseka.");
  300. break;
  301. }
  302. }
  303. }
  304. }
  305. } else showDialog(pid, using inline valdymo_menu, DIALOG_STYLE_LIST, "NPC valdymas", "Sukurti NPC\nPanaikinti NPC\nDuoti ginklą NPC\nAtimti NPC ginklus\nLiepti NPC sekti kažką\nLiepti sustoti sekti\nLiepti šaudyti į kažką\nLiepti nebešaudyti", "Pasirinkti", "Išeiti");
  306. }
  307. showDialog(pid, using inline pasirinkti_npc, DIALOG_STYLE_LIST, "Pasirink kuriam NPC liepti nebesekti.", g_szSprintfBuffer, "Pasirinkti", "atgal");
  308. }
  309. }
  310. case 6:
  311. {
  312. format(g_szSprintfBuffer, sizeof g_szSprintfBuffer, "");
  313. for(new i; i < MP; ++i)
  314. {
  315. if(zaidejo_npc[pid][i][_is_valid])
  316. {
  317. strcat(g_szSprintfBuffer, f("%s | HP: %.2f | WEP: %i\n", zaidejo_npc[pid][i][_npc_name], npc.GetHealth(i), npc.GetWeapon(i)));
  318. }
  319. }
  320. if(isnull(g_szSprintfBuffer))
  321. {
  322. notification(pid, "Neturi NPC.");
  323.  
  324. } else {
  325.  
  326. inline pasirinkti_npc(id3, did3, response3, listitem3, string:text3[])
  327. {
  328. if(response3)
  329. {
  330. new list_item = -1;
  331. for(new i; i < MP; ++i)
  332. {
  333. if(zaidejo_npc[pid][i][_is_valid])
  334. {
  335. ++list_item;
  336. if(list_item == listitem3)
  337. {
  338. inline ka_sekti(id2, did2, response2, listitem2, string:text2[])
  339. {
  340. if( response2 )
  341. {
  342. format(g_szSprintfBuffer, sizeof g_szSprintfBuffer, "");
  343. foreach(new j : Player)
  344. {
  345. strcat(g_szSprintfBuffer, f("%s (%i)\n", GetPlayerNameEx(j), j));
  346. }
  347. inline select_player(id4, did4, response4, listitem4, string:text4[])
  348. {
  349. foreach(new j : Player)
  350. {
  351. if(j == listitem4)
  352. {
  353. if(zaidejo_npc[pid][i][_shoot_timer])
  354. {
  355. killTimer(zaidejo_npc[pid][i][_shoot_timer]);
  356. zaidejo_npc[pid][i][_shoot_timer] = 0;
  357. }
  358. inline shoot()
  359. {
  360. new coords<1>, coords<2>;
  361. GetPlayerPos(j, coords<1>);
  362. npc.GetPosition(i, coords<2>);
  363. if(_x == 0 || _x2 == 0)
  364. {
  365. killTimer(zaidejo_npc[pid][i][_shoot_timer]);
  366. zaidejo_npc[pid][i][_shoot_timer] = 0;
  367. break;
  368. }
  369. if(GDBP(coords<1>, coords<2>) > 40 || npc.GetWeapon(i) == 0 || npc.GetWeapon(i) == 1)
  370. npc.GoTo(i, _x + random(10) - 5, _y + random(10) - 5, _z, MOVE_TYPE_SPRINT);
  371. else
  372. {
  373. npc.AimAt(i, coords<1>, 1);
  374. }
  375. }
  376. zaidejo_npc[pid][i][_shoot_timer] = setTimer(using inline shoot, 100, 1);
  377. notification(pid, "NPC pradejo saudyti.");
  378. break;
  379. }
  380. }
  381. }
  382. showDialog(pid, using inline select_player, DIALOG_STYLE_LIST, "Į kurį žaidėją šaudyti?", g_szSprintfBuffer, "Rinktis", "atgal");
  383. } else showDialog(pid, using inline valdymo_menu, DIALOG_STYLE_LIST, "NPC valdymas", "Sukurti NPC\nPanaikinti NPC\nDuoti ginklą NPC\nAtimti NPC ginklus\nLiepti NPC sekti kažką\nLiepti sustoti sekti\nLiepti šaudyti į kažką\nLiepti nebešaudyti", "Pasirinkti", "Išeiti");
  384. }
  385. showDialog(pid, using inline ka_sekti, DIALOG_STYLE_LIST, g_szSprintfBuffer, "Pasirinkti", "atgal");
  386. break;
  387. }
  388. }
  389. }
  390. } else showDialog(pid, using inline valdymo_menu, DIALOG_STYLE_LIST, "NPC valdymas", "Sukurti NPC\nPanaikinti NPC\nDuoti ginklą NPC\nAtimti NPC ginklus\nLiepti NPC sekti kažką\nLiepti sustoti sekti\nLiepti šaudyti į kažką\nLiepti nebešaudyti", "Pasirinkti", "Išeiti");
  391. }
  392. showDialog(pid, using inline pasirinkti_npc, DIALOG_STYLE_LIST, "Pasirink kuriam NPC liepti šaudyti.", g_szSprintfBuffer, "Rinktis", "atgal");
  393. }
  394. }
  395. case 7:
  396. {
  397. format(g_szSprintfBuffer, sizeof g_szSprintfBuffer, "");
  398. for(new i; i < MP; ++i)
  399. {
  400. if(zaidejo_npc[pid][i][_is_valid])
  401. {
  402. strcat(g_szSprintfBuffer, f("%s | HP: %.2f | WEP: %i\n", zaidejo_npc[pid][i][_npc_name], npc.GetHealth(i), npc.GetWeapon(i)));
  403. }
  404. }
  405. if(isnull(g_szSprintfBuffer))
  406. {
  407. notification(pid, "Neturi NPC.");
  408.  
  409. } else {
  410.  
  411. inline pasirinkti_npc(id3, did3, response3, listitem3, string:text3[])
  412. {
  413. if(response3)
  414. {
  415. new list_item = -1;
  416. for(new i; i < MP; ++i)
  417. {
  418. if(zaidejo_npc[pid][i][_is_valid])
  419. {
  420. ++list_item;
  421. if(list_item == listitem3)
  422. {
  423. if(zaidejo_npc[pid][i][_shoot_timer])
  424. {
  425. killTimer(zaidejo_npc[pid][i][_shoot_timer]);
  426. zaidejo_npc[pid][i][_shoot_timer] = 0;
  427. notification(pid, "NPC i nieka nebesaudo.");
  428. break;
  429. }
  430. }
  431. }
  432. }
  433. } else showDialog(pid, using inline valdymo_menu, DIALOG_STYLE_LIST, "NPC valdymas", "Sukurti NPC\nPanaikinti NPC\nDuoti ginklą NPC\nAtimti NPC ginklus\nLiepti NPC sekti kažką\nLiepti sustoti sekti\nLiepti šaudyti į kažką\nLiepti nebešaudyti", "Pasirinkti", "Išeiti");
  434. }
  435. showDialog(pid, using inline pasirinkti_npc, DIALOG_STYLE_LIST, "Pasirink kuriam NPC liepti nebesaufyti.", g_szSprintfBuffer, "Pasirinkti", "atgal");
  436. }
  437. }
  438. }
  439. }
  440. }
  441. showDialog(pid, using inline valdymo_menu, DIALOG_STYLE_LIST, "NPC valdymas", "Sukurti NPC\nPanaikinti NPC\nDuoti ginklą NPC\nAtimti ginkla NPC\nLiepti NPC sekti kažką\nLiepti sustoti sekti\nLiepti šaudyti į kažką\nLiepti nebešaudyti", "Pasirinkti", "Išeiti"); \nLiepti įsėsti į mašiną\nLiepti Išlipti iš mašinos\nLiepti važiuoti prie\nLiepti nebevažiuoti
  442.  
  443. return 1;
  444. }*/
  445. #define SHOW_NPC_VALDYMAS showDialog(pid, using inline valdymo_menu, DIALOG_STYLE_LIST, "NPC valdymas", "Sukurti NPC\nPanaikinti NPC\nDuoti ginklą NPC\nAtimti NPC ginklus\nLiepti NPC sekti kažką\nLiepti sustoti sekti\nLiepti šaudyti į kažką\nLiepti nebešaudyti\nKeisti NPC skin", "Pasirinkti", "Išeiti")
  446. /*
  447. YCMD:npc_valdymas(pid, params[], help)
  448. {
  449. inline valdymo_menu(id, did, response, listitem, string:text[])
  450. {
  451. #pragma unused id, did, text
  452. if(response)
  453. {
  454. switch(listitem)
  455. {
  456. case 0:
  457. {
  458. inline sukurti(id2, did2, response2, listitem2, string:text2[])
  459. {
  460. #pragma unused id2, did2, listitem2
  461. if(response2)
  462. {
  463. if(isnull(text2))
  464. {
  465. notification(pid, "Ivesk npc varda.");
  466. showDialog(playerid, using inline sukurti, DIALOG_STYLE_INPUT, "Sukurti NPC", "Įvesk NPC vardą", "Sukurti", "atgal");
  467. }
  468. new __id = npc.Create(f("%s_%i", text2, random(100000)));
  469. zaidejo_npc[pid][__id][_is_valid] = true;
  470. format(zaidejo_npc[pid][__id][_npc_name], 24, text2);
  471. notification(pid, "NPC sukurtas.");
  472.  
  473. } else SHOW_NPC_VALDYMAS;
  474. }
  475. showDialog(playerid, using inline sukurti, DIALOG_STYLE_INPUT, "Sukurti NPC", "Įvesk NPC vardą", "Sukurti", "atgal");
  476. }
  477. case 1:
  478. {
  479. format(g_szSprintfBuffer, sizeof g_szSprintfBuffer, "");
  480. for(new i; i < MP; ++i)
  481. {
  482. if(zaidejo_npc[pid][i][_is_valid])
  483. {
  484. strcat(g_szSprintfBuffer, f("%s | HP: %.2f | WEP: %i\n", zaidejo_npc[pid][i][_npc_name], npc.GetHealth(i), npc.GetWeapon(i)));
  485. }
  486. }
  487. if(isnull(g_szSprintfBuffer))
  488. {
  489. notification(pid, "Neturi NPC.");
  490.  
  491. } else {
  492.  
  493. inline panaikinti(id2, did2, response2, listitem2, string:text2[])
  494. {
  495. #pragma unused id2, did2, text2
  496. if(response2)
  497. {
  498. new list_item = -1;
  499. for(new i; i < MP; ++i)
  500. {
  501. if(zaidejo_npc[pid][i][_is_valid])
  502. {
  503. ++list_item;
  504. if(list_item == listitem2)
  505. {
  506. npc.Destroy(i);
  507. zaidejo_npc[pid][i][_is_valid] = false;
  508. notification(pid, "NPC panaikintas.");
  509. break;
  510. }
  511. }
  512. }
  513. } else SHOW_NPC_VALDYMAS;
  514. }
  515. showDialog(pid, using inline panaikinti, DIALOG_STYLE_LIST, "Panikinti NPC", g_szSprintfBuffer, "Panaikinti", "atgal");
  516. }
  517. }
  518. case 2:
  519. {
  520. inline duoti_ginkla(id2, did2, response2, listitem2, string:text2[])
  521. {
  522. #pragma unused id2, did2, listitem2
  523. if(response2)
  524. {
  525. if(isnull(text2))
  526. {
  527. notification(pid, "Irasyk ginklo id.");
  528. showDialog(pid, using inline duoti_ginkla, DIALOG_STYLE_INPUT, "Duoti ginklą NPC", "Įvesk ginklo ID:", "Duoti", "atgal");
  529.  
  530. } else {
  531. format(g_szSprintfBuffer, sizeof g_szSprintfBuffer, "");
  532. for(new i; i < MP; ++i)
  533. {
  534. if(zaidejo_npc[pid][i][_is_valid])
  535. {
  536. strcat(g_szSprintfBuffer, f("%s | HP: %.2f | WEP: %i\n", zaidejo_npc[pid][i][_npc_name], npc.GetHealth(i), npc.GetWeapon(i)));
  537. }
  538. }
  539. if(isnull(g_szSprintfBuffer))
  540. {
  541. notification(pid, "Neturi NPC.");
  542.  
  543. } else {
  544.  
  545. inline pasirinkti_npc(id3, did3, response3, listitem3, string:text3[])
  546. {
  547. #pragma unused id3, did3, text3
  548. if(response3)
  549. {
  550. new list_item = -1;
  551. for(new i; i < MP; ++i)
  552. {
  553. if(zaidejo_npc[pid][i][_is_valid])
  554. {
  555. ++list_item;
  556. if(list_item == listitem3)
  557. {
  558. npc.SetWeapon(i, strval(text2));
  559. npc.SetAmmo(i, 10000);
  560. notification(pid, "Davei NPC ginkla.");
  561. break;
  562. }
  563. }
  564. }
  565. } else SHOW_NPC_VALDYMAS;
  566. }
  567. showDialog(pid, using inline pasirinkti_npc, DIALOG_STYLE_LIST, "Pasirink NPC kuriam duosi ginklą", g_szSprintfBuffer, "Duoti", "atgal");
  568. }
  569. }
  570. } else SHOW_NPC_VALDYMAS;
  571. }
  572. showDialog(pid, using inline duoti_ginkla, DIALOG_STYLE_INPUT, "Duoti ginklą NPC", "Įvesk ginklo ID:", "Duoti", "atgal");
  573. }
  574. case 3:
  575. {
  576. format(g_szSprintfBuffer, sizeof g_szSprintfBuffer, "");
  577. for(new i; i < MP; ++i)
  578. {
  579. if(zaidejo_npc[pid][i][_is_valid])
  580. {
  581. strcat(g_szSprintfBuffer, f("%s | HP: %.2f | WEP: %i\n", zaidejo_npc[pid][i][_npc_name], npc.GetHealth(i), npc.GetWeapon(i)));
  582. }
  583. }
  584. if(isnull(g_szSprintfBuffer))
  585. {
  586. notification(pid, "Neturi NPC.");
  587.  
  588. } else {
  589.  
  590. inline pasirinkti_npc(id3, did3, response3, listitem3, string:text3[])
  591. {
  592. #pragma unused id3, did3, text3
  593. if(response3)
  594. {
  595. new list_item = -1;
  596. for(new i; i < MP; ++i)
  597. {
  598. if(zaidejo_npc[pid][i][_is_valid])
  599. {
  600. ++list_item;
  601. if(list_item == listitem3)
  602. {
  603. npc.SetWeapon(i, 0);
  604. notification(pid, "Atėmei NPC ginkla.");
  605. break;
  606. }
  607. }
  608. }
  609. } else SHOW_NPC_VALDYMAS;
  610. }
  611. showDialog(pid, using inline pasirinkti_npc, DIALOG_STYLE_LIST, "Pasirink iš kurio NPC atimti ginklą", g_szSprintfBuffer, "Atimti", "atgal");
  612. }
  613. }
  614. case 4:
  615. {
  616. format(g_szSprintfBuffer, sizeof g_szSprintfBuffer, "");
  617. for(new i; i < MP; ++i)
  618. {
  619. if(zaidejo_npc[pid][i][_is_valid])
  620. {
  621. strcat(g_szSprintfBuffer, f("%s | HP: %.2f | WEP: %i\n", zaidejo_npc[pid][i][_npc_name], npc.GetHealth(i), npc.GetWeapon(i)));
  622. }
  623. }
  624. if(isnull(g_szSprintfBuffer))
  625. {
  626. notification(pid, "Neturi NPC.");
  627.  
  628. } else {
  629.  
  630. inline pasirinkti_npc(id3, did3, response3, listitem3, string:text3[])
  631. {
  632. #pragma unused id3, did3, text3
  633. if(response3)
  634. {
  635. new list_item = -1;
  636. for(new i; i < MP; ++i)
  637. {
  638. if(zaidejo_npc[pid][i][_is_valid])
  639. {
  640. ++list_item;
  641. if(list_item == listitem3)
  642. {
  643. format(g_szSprintfBuffer, sizeof g_szSprintfBuffer, "");
  644. foreach(new j : Player)
  645. {
  646. strcat(g_szSprintfBuffer, f("%s (%i)\n", GetPlayerNameEx(j), j));
  647. }
  648. inline select_player(id4, did4, response4, listitem4, string:text4[])
  649. {
  650. #pragma unused id4, did4, text4
  651. if(response4)
  652. {
  653. foreach(new j : Player)
  654. {
  655. if(j == listitem4)
  656. {
  657. if(zaidejo_npc[pid][i][_follow_timer])
  658. {
  659. killTimer(zaidejo_npc[pid][i][_follow_timer]);
  660. zaidejo_npc[pid][i][_follow_timer] = 0;
  661. }
  662. inline follow()
  663. {
  664. new coords<1>, coords<2>;
  665. GetPlayerPos(j, coords<1>);
  666. npc.GetPosition(i, coords<2>);
  667. if(_x == 0 || _x2 == 0)
  668. {
  669. killTimer(zaidejo_npc[pid][i][_follow_timer]);
  670. zaidejo_npc[pid][i][_follow_timer] = 0;
  671. break;
  672. }
  673. if(GDBP(coords<1>, coords<2>) > 15)
  674. npc.GoTo(i, _x + random(10) - 5, _y + random(10) - 5, _z, MOVE_TYPE_SPRINT, true);
  675. else if(GDBP(coords<1>, coords<2>) > 7)
  676. npc.GoTo(i, _x + random(10) - 5, _y + random(10) - 5, _z, MOVE_TYPE_RUN, true);
  677. }
  678. zaidejo_npc[pid][i][_follow_timer] = setTimer(using inline follow, 300, 1);
  679. break;
  680. }
  681. }
  682. } else SHOW_NPC_VALDYMAS;
  683. }
  684. showDialog(pid, using inline select_player, DIALOG_STYLE_LIST, "Kurį žaidėją sekti?", g_szSprintfBuffer, "Sekti", "atgal");
  685. }
  686. }
  687. }
  688. } else SHOW_NPC_VALDYMAS;
  689. }
  690. showDialog(pid, using inline pasirinkti_npc, DIALOG_STYLE_LIST, "Pasirink kuriam NPC liepti sekti.", g_szSprintfBuffer, "Rinktis", "atgal");
  691. }
  692. }
  693. case 5:
  694. {
  695. format(g_szSprintfBuffer, sizeof g_szSprintfBuffer, "");
  696. for(new i; i < MP; ++i)
  697. {
  698. if(zaidejo_npc[pid][i][_is_valid])
  699. {
  700. strcat(g_szSprintfBuffer, f("%s | HP: %.2f | WEP: %i\n", zaidejo_npc[pid][i][_npc_name], npc.GetHealth(i), npc.GetWeapon(i)));
  701. }
  702. }
  703. if(isnull(g_szSprintfBuffer))
  704. {
  705. notification(pid, "Neturi NPC.");
  706.  
  707. } else {
  708.  
  709. inline pasirinkti_npc(id3, did3, response3, listitem3, string:text3[])
  710. {
  711. #pragma unused id3, did3, text3
  712. if(response3)
  713. {
  714. new list_item = -1;
  715. for(new i; i < MP; ++i)
  716. {
  717. if(zaidejo_npc[pid][i][_is_valid])
  718. {
  719. ++list_item;
  720. if(list_item == listitem3)
  721. {
  722. if(zaidejo_npc[pid][i][_follow_timer])
  723. {
  724. killTimer(zaidejo_npc[pid][i][_follow_timer]);
  725. zaidejo_npc[pid][i][_follow_timer] = 0;
  726. notification(pid, "NPC nieko nebeseka.");
  727. break;
  728. }
  729. }
  730. }
  731. }
  732. } else SHOW_NPC_VALDYMAS;
  733. }
  734. showDialog(pid, using inline pasirinkti_npc, DIALOG_STYLE_LIST, "Pasirink kuriam NPC liepti nebesekti.", g_szSprintfBuffer, "Pasirinkti", "atgal");
  735. }
  736. }
  737. case 6:
  738. {
  739. format(g_szSprintfBuffer, sizeof g_szSprintfBuffer, "");
  740. for(new i; i < MP; ++i)
  741. {
  742. if(zaidejo_npc[pid][i][_is_valid])
  743. {
  744. strcat(g_szSprintfBuffer, f("%s | HP: %.2f | WEP: %i\n", zaidejo_npc[pid][i][_npc_name], npc.GetHealth(i), npc.GetWeapon(i)));
  745. }
  746. }
  747. if(isnull(g_szSprintfBuffer))
  748. {
  749. notification(pid, "Neturi NPC.");
  750.  
  751. } else {
  752.  
  753. inline pasirinkti_npc(id3, did3, response3, listitem3, string:text3[])
  754. {
  755. #pragma unused id3, did3, text3
  756. if(response3)
  757. {
  758. new list_item = -1;
  759. for(new i; i < MP; ++i)
  760. {
  761. if(zaidejo_npc[pid][i][_is_valid])
  762. {
  763. ++list_item;
  764. if(list_item == listitem3)
  765. {
  766. format(g_szSprintfBuffer, sizeof g_szSprintfBuffer, "");
  767. foreach(new j : Player)
  768. {
  769. strcat(g_szSprintfBuffer, f("%s (%i)\n", GetPlayerNameEx(j), j));
  770. }
  771. inline select_player(id4, did4, response4, listitem4, string:text4[])
  772. {
  773. #pragma unused id4, did4, text4
  774. if(response4)
  775. {
  776. foreach(new j : Player)
  777. {
  778. if(j == listitem4)
  779. {
  780. if(zaidejo_npc[pid][i][_shoot_timer])
  781. {
  782. killTimer(zaidejo_npc[pid][i][_shoot_timer]);
  783. zaidejo_npc[pid][i][_shoot_timer] = 0;
  784. }
  785. inline shoot()
  786. {
  787. new coords<1>, coords<2>;
  788. GetPlayerPos(j, coords<1>);
  789. npc.GetPosition(i, coords<2>);
  790. if(_x == 0 || _x2 == 0)
  791. {
  792. killTimer(zaidejo_npc[pid][i][_shoot_timer]);
  793. zaidejo_npc[pid][i][_shoot_timer] = 0;
  794. break;
  795. }
  796. if(GDBP(coords<1>, coords<2>) > 40 || npc.GetWeapon(i) == 0 || npc.GetWeapon(i) == 1)
  797. npc.GoTo(i, _x + random(10) - 5, _y + random(10) - 5, _z, MOVE_TYPE_SPRINT, true);
  798. else
  799. {
  800. npc.AimAt(i, coords<1>, 1);
  801. }
  802. }
  803. zaidejo_npc[pid][i][_shoot_timer] = setTimer(using inline shoot, 100, 1);
  804. notification(pid, "NPC pradejo saudyti.");
  805. break;
  806. }
  807. }
  808. } else SHOW_NPC_VALDYMAS;
  809. }
  810. showDialog(pid, using inline select_player, DIALOG_STYLE_LIST, "Į kurį žaidėją šaudyti?", g_szSprintfBuffer, "Rinktis", "atgal");
  811. }
  812. }
  813. }
  814. } else SHOW_NPC_VALDYMAS;
  815. }
  816. showDialog(pid, using inline pasirinkti_npc, DIALOG_STYLE_LIST, "Pasirink kuriam NPC liepti šaudyti.", g_szSprintfBuffer, "Rinktis", "atgal");
  817. }
  818. }
  819. case 7:
  820. {
  821. format(g_szSprintfBuffer, sizeof g_szSprintfBuffer, "");
  822. for(new i; i < MP; ++i)
  823. {
  824. if(zaidejo_npc[pid][i][_is_valid])
  825. {
  826. strcat(g_szSprintfBuffer, f("%s | HP: %.2f | WEP: %i\n", zaidejo_npc[pid][i][_npc_name], npc.GetHealth(i), npc.GetWeapon(i)));
  827. }
  828. }
  829. if(isnull(g_szSprintfBuffer))
  830. {
  831. notification(pid, "Neturi NPC.");
  832.  
  833. } else {
  834.  
  835. inline pasirinkti_npc(id3, did3, response3, listitem3, string:text3[])
  836. {
  837. #pragma unused id3, did3, text3
  838. if(response3)
  839. {
  840. new list_item = -1;
  841. for(new i; i < MP; ++i)
  842. {
  843. if(zaidejo_npc[pid][i][_is_valid])
  844. {
  845. ++list_item;
  846. if(list_item == listitem3)
  847. {
  848. if(zaidejo_npc[pid][i][_shoot_timer])
  849. {
  850. killTimer(zaidejo_npc[pid][i][_shoot_timer]);
  851. zaidejo_npc[pid][i][_shoot_timer] = 0;
  852. notification(pid, "NPC i nieka nebesaudo.");
  853. break;
  854. }
  855. }
  856. }
  857. }
  858. } else SHOW_NPC_VALDYMAS;
  859. }
  860. showDialog(pid, using inline pasirinkti_npc, DIALOG_STYLE_LIST, "Pasirink kuriam NPC liepti nebešaudyti.", g_szSprintfBuffer, "Pasirinkti", "atgal");
  861. }
  862. }
  863. case 8:
  864. {
  865. format(g_szSprintfBuffer, sizeof g_szSprintfBuffer, "");
  866. for(new i; i < MP; ++i)
  867. {
  868. if(zaidejo_npc[pid][i][_is_valid])
  869. {
  870. strcat(g_szSprintfBuffer, f("%s | HP: %.2f | WEP: %i\n", zaidejo_npc[pid][i][_npc_name], npc.GetHealth(i), npc.GetWeapon(i)));
  871. }
  872. }
  873. if(isnull(g_szSprintfBuffer))
  874. {
  875. notification(pid, "Neturi NPC.");
  876.  
  877. } else {
  878.  
  879. inline pasirinkti_npc(id3, did3, response3, listitem3, string:text3[])
  880. {
  881. #pragma unused id3, did3, text3
  882. if(response3)
  883. {
  884. new list_item = -1;
  885. for(new i; i < MP; ++i)
  886. {
  887. if(zaidejo_npc[pid][i][_is_valid])
  888. {
  889. ++list_item;
  890. if(list_item == listitem3)
  891. {
  892. inline parinkti_skin(id2, did2, response2, listitem2, string:text2[])
  893. {
  894. #pragma unused id2, did2, listitem2
  895. if(response2)
  896. {
  897. if(isnull(text2) || strval(text2) < 0 || strval(text2) > 299)
  898. {
  899. notification(pid, "Irasyk skin id.");
  900. showDialog(pid, using inline parinkti_skin, DIALOG_STYLE_INPUT, "Nustatyti NPC skin.", "Įrašyk skin ID.", "Rinktis", "atgal");
  901.  
  902. } else {
  903.  
  904. npc.SetSkin(i, strval(text2));
  905. notification(pid, "NPC skin pakeistas.");
  906. }
  907. } else SHOW_NPC_VALDYMAS;
  908. }
  909. showDialog(pid, using inline parinkti_skin, DIALOG_STYLE_INPUT, "Nustatyti NPC skin.", "Įrašyk skin ID.", "Rinktis", "atgal");
  910. break;
  911. }
  912. }
  913. }
  914. } else SHOW_NPC_VALDYMAS;
  915. }
  916. showDialog(pid, using inline pasirinkti_npc, DIALOG_STYLE_LIST, "Pasirink kuriam NPC nustatysi skiną.", g_szSprintfBuffer, "Pasirinkti", "atgal");
  917. }
  918. }*/
  919. /*case 9:
  920. {
  921. format(g_szSprintfBuffer, sizeof g_szSprintfBuffer, "");
  922. for(new i; i < MP; ++i)
  923. {
  924. if(zaidejo_npc[pid][i][_is_valid])
  925. {
  926. strcat(g_szSprintfBuffer, f("%s | HP: %.2f | WEP: %i\n", zaidejo_npc[pid][i][_npc_name], npc.GetHealth(i), npc.GetWeapon(i)));
  927. }
  928. }
  929. if(isnull(g_szSprintfBuffer))
  930. {
  931. notification(pid, "Neturi NPC.");
  932.  
  933. } else {
  934.  
  935. inline pasirinkti_npc(id3, did3, response3, listitem3, string:text3[])
  936. {
  937. if(response3)
  938. {
  939. new list_item = -1;
  940. for(new i; i < MP; ++i)
  941. {
  942. if(zaidejo_npc[pid][i][_is_valid])
  943. {
  944. ++list_item;
  945. if(list_item == listitem3)
  946. {
  947. inline kur_ilipti(id2, did2, response2, listitem2, string:text2[])
  948. {
  949. if( response2 )
  950. {
  951. format(g_szSprintfBuffer, sizeof g_szSprintfBuffer, "");
  952. new npc_VehicleArray[MAX_VEHICLES];
  953. for(new j = 1; j < MAX_VEHICLES; ++j)
  954. {
  955. if(IsValidVehicle(j))
  956. {
  957. new coords<1>, coords<2>;
  958. GetVehiclePos(j, coords<1>);
  959. npc.GetPosition(i, coords<2>);
  960. if(GDBP(coords<1>, coords<2>) < 10)
  961. {
  962. strcat(g_szSprintfBuffer, f("{00ff00}%s | distance = %.3f m\n", GetVehicleName(j), GDBP(coords<1>, coords<2>)));
  963. npc_VehicleArray[j] = 1;
  964.  
  965. } else if(GDBP(coords<1>, coords<2>) < 50) {
  966.  
  967. strcat(g_szSprintfBuffer, f("{77ff00}%s | distance = %.3f m\n", GetVehicleName(j), GDBP(coords<1>, coords<2>)));
  968. npc_VehicleArray[j] = 2;
  969. }
  970. }
  971. }
  972. inline select_vehicle(id4, did4, response4, listitem4, string:text4[])
  973. {
  974. if(response4)
  975. {
  976. list_item = -1;
  977. for(new j; j < MAX_VEHICLES; ++j)
  978. {
  979. if(npc_VehicleArray[j])
  980. {
  981. ++list_item;
  982. if(list_item == listitem4)
  983. {
  984. switch(npc_VehicleArray[j])
  985. {
  986. case 1:
  987. {
  988. npc.EnterVehicle(i, j, strval(text0));
  989. notification(pid, "NPC lipa i masina.");
  990. }
  991. case 2:
  992. {
  993. new coords<1>;
  994. GetVehiclePos(j, coords<1>);
  995. npc.GoTo(i, _x + random(10) - 5, _y + random(10) - 5, _z, MOVE_TYPE_RUN);
  996. zaidejo_npc[pid][i][_goto_vehicle] = true;
  997. notification(pid, "NPC bega prie masinos.");
  998. }
  999. }
  1000. break;
  1001. }
  1002. }
  1003. }
  1004. } else SHOW_NPC_VALDYMAS;
  1005. }
  1006. showDialog(pid, using inline select_vehicle, DIALOG_STYLE_LIST, "Į kurią mašiną įlipti?", g_szSprintfBuffer, "Rinktis", "atgal");
  1007. } else SHOW_NPC_VALDYMAS;
  1008. }
  1009. showDialog(pid, using inline kur_ilipti, DIALOG_STYLE_LIST, g_szSprintfBuffer, "Pasirinkti", "atgal");
  1010. break;
  1011. }
  1012. }
  1013. }
  1014. } else SHOW_NPC_VALDYMAS;
  1015. }
  1016. showDialog(pid, using inline pasirinkti_npc, DIALOG_STYLE_LIST, "Pasirink kuriam NPC liepti įlipti į mašina.", g_szSprintfBuffer, "Rinktis", "atgal");
  1017. }
  1018. }*//*
  1019. }
  1020. }
  1021. }
  1022. SHOW_NPC_VALDYMAS;
  1023.  
  1024. return 1;
  1025. }
  1026. */
Advertisement
Add Comment
Please, Sign In to add comment