Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Guest Message by DevFuse
Wklejka 1hew08xagfz1n dodana przez Warjat, 19.04.2014 21:13
Plugin 1.0
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369. 370. 371. 372. 373. 374. 375. 376. 377. 378. 379. 380. 381. 382. 383. 384. 385. 386. 387. 388. 389. 390. 391. 392. 393. 394. 395. 396. 397. 398. 399. 400. 401. 402. 403. 404. 405. 406. 407. 408. 409. 410. 411. 412. 413. 414. 415. 416. 417. 418. 419. 420. 421. 422. 423. 424. 425. 426. 427. 428. 429. 430. 431. 432. 433. 434. 435. 436. 437. 438. 439. 440. 441. 442. 443. 444. 445. 446. 447. 448. 449. 450. 451. 452. 453. 454. 455. 456. 457. 458. 459. 460. 461. 462. 463. 464. 465. 466. 467. 468. 469. 470. 471. 472. 473. 474. 475. 476. 477. 478. 479. 480. 481. 482. 483. 484. 485. 486. 487. 488. 489. 490. 491. 492. 493. 494. 495. 496. 497. 498. 499. 500. 501. 502. 503. 504. 505. 506. 507. 508. 509.
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #include <codmod> #include <cstrike> #include <ColorChat> #include <nvault> #define MAX_PLAYER 32 native set_user_diamenty(id, wartosc); native get_user_diamenty(id); enum { NONE = 0, M4A1 = 1, AK47 = 2, MP5 = 3, M3 = 4, P90 = 5, AWP = 6 } new QuestInfoMessage[][] = { "Brak Questa %i", "Musisz zabic jeszcze %i osob z M4A1", "Musisz zabic jeszcze %i osob z AK47", "Musisz zabic jeszcze %i osob z MP5", "Musisz zabic jeszcze %i osob z M3", "Musisz zabic jeszcze %i osob z P90", "Musisz zabic jeszcze %i osob z AWP" } new QuestRozdzial[][] = { "Stary Kraj", "Dziki Szal", "Pomroczne Widmo", "Mlot i Kowadlo", "Czysta krew", "Wymiana Ognia", "Tron" } // Polozenie x / y new Float:HudType[][3] = { {0.02, 0.23}, {0.02, 0.23}, {0.02, 0.23} } new szPlayerName[MAX_PLAYER+1][64]; new iPlayerQuestID[MAX_PLAYER+1]; new ePlayerQuestType[MAX_PLAYER+1] new iPlayerQuestProgress[MAX_PLAYER+1] new iPlayerPrzedzial[MAX_PLAYER+1] new iPlayerHudType[MAX_PLAYER+1]; new vault; new vault2 new MenuCallback; new MaxQuest; new HudObj; new Array: gPrzedzial; new Array: gIleRazy; new Array: gTyp; new Array: gNagrodaCoins; public plugin_cfg() { gPrzedzial = ArrayCreate(); gIleRazy = ArrayCreate(); gTyp = ArrayCreate(); gNagrodaCoins = ArrayCreate(); new plik[128]; get_localinfo("amxx_configsdir", plik, charsmax(plik)); format(plik, charsmax(plik), "%s/misje.ini", plik); if(!file_exists(plik)){ new szError[512]; formatex(szError, charsmax(szError), "[Misje] Nie mozna znalesc pliku misje.ini w lokalizacji %s", plik) set_fail_state(szError); } new fp = fopen(plik, "r"); new tresc[128], dane[4][32]; while( !feof(fp) ) { fgets(fp, tresc, charsmax(tresc)); if(tresc[0] == ';' || tresc[0] == '^0') continue; parse(tresc, dane[0], 31, dane[1], 31, dane[2], 31, dane[3], 31); replace_all(tresc, 127, "^"", ""); ArrayPushCell(gPrzedzial, str_to_num(dane[0])); ArrayPushCell(gIleRazy, str_to_num(dane[1])); ArrayPushCell(gTyp, str_to_num(dane[2])); ArrayPushCell(gNagrodaCoins, str_to_num(dane[3])); } fclose(fp); MaxQuest = ArraySize(gPrzedzial); } public plugin_init() { register_plugin("[4FUN] Questy/Misje", "1.0", "Gh0st (Przerobka Mentos)") vault = nvault_open("4fun_misje"); vault2 = nvault_open("4fun_misje") register_event("DeathMsg", "DeathMsg", "a") register_clcmd("say /misje", "Pierwsze_Menu"); register_clcmd("say /misja", "Pierwsze_Menu"); MenuCallback = menu_makecallback("menu_callback"); HudObj = CreateHudSyncObj(); set_task(0.8, "HudInfo", _, _, _, "b"); } public Pierwsze_Menu(id) { new menu = menu_create("yWybierz Akcje:", "Pierwsze_Menu_Handle") (ePlayerQuestType[id]) ? menu_additem(menu, "Misje Podstawowe", _, _, MenuCallback) : menu_additem(menu, "Questy Podstawowe") (ePlayerQuestType[id]) ? menu_additem(menu, "Zakoncz Misje") : menu_additem(menu, "Zakoncz Quest", _, _, MenuCallback) menu_display(id,menu,0) } public Pierwsze_Menu_Handle(id, menu, item) { if(item == MENU_EXIT){ menu_destroy(menu); return PLUGIN_CONTINUE; } switch( item ) { case 0: Menu_Questow(id) case 1: ResetQuest(id) } return PLUGIN_HANDLED; } public menu_callback(id, Menu, item){ return ITEM_DISABLED } public DeathMsg() { new id = read_data(1); new vid = read_data(2) if( is_user_connected(id) && get_user_team(id) != get_user_team(vid) ) { if( ePlayerQuestType[id] ) { switch(ePlayerQuestType[id]) { case M4A1: { if( get_user_weapon(id) == CSW_M4A1 ) { add_progress(id, 1) } } case AK47: { if( get_user_weapon(id) == CSW_AK47 ) { add_progress(id, 1) } } case MP5: { if( get_user_weapon(id) == CSW_MP5NAVY ) { add_progress(id, 1) } } case M3: { if( get_user_weapon(id) == CSW_M3 ) { add_progress(id, 1) } } case P90: { if( get_user_weapon(id) == CSW_P90 ) { add_progress(id, 1) } } case AWP: { if( get_user_weapon(id) == CSW_AWP ) { add_progress(id, 1) } } } } } } public client_connect(id) { get_user_name(id, szPlayerName[id], 63); ResetQuest(id) LoadAktQuest(id) iPlayerHudType[id]=1; } public add_progress(id, amount) { if( ! is_user_connected(id) ) return PLUGIN_HANDLED; new Sprawdz = CheckProgress(id) if( Sprawdz == 0 ){ iPlayerQuestProgress[id]+=amount; return PLUGIN_HANDLED; } else if( Sprawdz > 0 ){ give_award(id); return PLUGIN_HANDLED; } return PLUGIN_HANDLED; } public CheckProgress(id) { if( ! is_user_connected(id) ) return PLUGIN_HANDLED; new need = get_user_progress_need(id) - 1; new progress = get_user_progress(id) if( progress >= need ) return 1; else return 0; return PLUGIN_HANDLED; } public give_award(id) { if( ! is_user_connected(id) ) return PLUGIN_HANDLED; if(LoadQuest(id, iPlayerQuestID[id])) return PLUGIN_HANDLED; new award_coins = ArrayGetCell(gNagrodaCoins, iPlayerQuestID[id]); set_user_diamenty(id, get_user_diamenty(id) + award_coins); SaveQuest(id, iPlayerQuestID[id]) ColorChat(id, GREEN, "[MISJE] Gratulacje! Ukonczyles misje, otrzymujesz %i Diamentow", award_coins); ResetQuest(id) return PLUGIN_HANDLED; } public ResetQuest(id) { ePlayerQuestType[id] = NONE; iPlayerQuestID[id] = -1; iPlayerQuestProgress[id] = 0; } public SaveQuest(id, QuestID) { if(is_user_bot(id)) return PLUGIN_CONTINUE; new vaultkey[64], vaultdata[64]; formatex(vaultkey, charsmax(vaultkey), "%s-%i", szPlayerName[id], QuestID); formatex(vaultdata, charsmax(vaultdata), "1"); nvault_set(vault, vaultkey, vaultdata); return PLUGIN_CONTINUE; } public LoadQuest(id, QuestID) { if(is_user_bot(id)) return PLUGIN_CONTINUE; new vaultkey[64], vaultdata[64]; formatex(vaultkey, charsmax(vaultkey), "%s-%i", szPlayerName[id], QuestID); nvault_get(vault, vaultkey, vaultdata, charsmax(vaultdata)); return str_to_num(vaultdata) > 0 ? true : false; } public Menu_Questow(id) { if( ! ePlayerQuestType[id] ) { new menu = menu_create("yWybierz Rozdzial:", "menu_first_handle") new formats[128] for(new i; i < sizeof(QuestRozdzial); i++) { if( is_user_connected(id)){ formatex(formats,127,"Rozdzial r%s",QuestRozdzial[i]); menu_additem(menu,formats) }else{ formatex(formats,127,"dRozdzial %s",QuestRozdzial[i]); menu_additem(menu,formats, _, _, MenuCallback) } } menu_display(id,menu,0) }else{ ColorChat(id, GREEN, "[MISJE] Wykonaj najpierw poprzednia misje !"); } } public menu_first_handle(id, menu, item) { if(item == MENU_EXIT){ menu_destroy(menu); return PLUGIN_CONTINUE; } new menu2 = menu_create("Wybierz Misje:","menu_handle") new formats[128] for(new i = 0;i<MaxQuest;i++) { if(ArrayGetCell(gPrzedzial, i) == item) { switch(ArrayGetCell(gTyp, i)) { case M4A1: formatex(formats, 127, "Zabij %i osob z M4A1 [Nagroda: %i Diamentow]", ArrayGetCell(gIleRazy, i), ArrayGetCell(gNagrodaCoins, i)) case AK47: formatex(formats, 127, "Zabij %i osob z AK47 [Nagroda: %i Diamentow]", ArrayGetCell(gIleRazy, i), ArrayGetCell(gNagrodaCoins, i)) case MP5: formatex(formats, 127, "Zabij %i osob z MP5 [Nagroda: %i Diamentow]", ArrayGetCell(gIleRazy, i), ArrayGetCell(gNagrodaCoins, i)) case M3: formatex(formats, 127, "Zabij %i osob z M3 [Nagroda: %i Diamentow]", ArrayGetCell(gIleRazy, i), ArrayGetCell(gNagrodaCoins, i)) case P90: formatex(formats, 127, "Zabij %i osob z P90 [Nagroda: %i Diamentow]", ArrayGetCell(gIleRazy, i), ArrayGetCell(gNagrodaCoins, i)) case AWP: formatex(formats, 127, "Zabij %i osob z AWP [Nagroda: %i Diamentow]", ArrayGetCell(gIleRazy, i), ArrayGetCell(gNagrodaCoins, i)) } menu_additem(menu2, formats); } } iPlayerPrzedzial[id] = item; menu_setprop(menu2, MPROP_PERPAGE, 6); menu_display(id,menu2,0) menu_destroy(menu); return PLUGIN_HANDLED } public menu_handle(id, menu, item) { if(item == MENU_EXIT){ menu_destroy(menu); return PLUGIN_CONTINUE; } new ile = 0; for(new i = 0;i<MaxQuest;i++){ if(ArrayGetCell(gPrzedzial, i) != iPlayerPrzedzial[id]) continue; if(ile == item) { item = i; break; } ile++; } if(LoadQuest(id, item)){ ColorChat(id, RED, "[MISJE] Juz wykonywales ta misje! Wybierz Inna."); Menu_Questow(id); return PLUGIN_HANDLED; } ResetQuest(id) iPlayerQuestID[id] = item; ePlayerQuestType[id] = ArrayGetCell(gTyp, item) ColorChat(id, GREEN, "[MISJE] Rozpoczales Misje. Powodzenia!"); menu_destroy(menu) return PLUGIN_HANDLED } public HudInfo() { new Msg[1024]; new Float:HUD_X new Float:HUD_Y new Msg2[512] for(new id; id<MAX_PLAYER+1; id++){ if( ! is_user_connected(id) ) continue; if( ! is_user_alive(id) ) continue; if( ! iPlayerHudType[id] ) continue; HUD_X = HudType[iPlayerHudType[id] - 1][0]; HUD_Y = HudType[iPlayerHudType[id] - 1][1]; if( ! ePlayerQuestType[id] ) Msg = "^n^n^n^n^n^n^n^n^n[Nie Robisz Zadnej Misji]^n[Say /misje]"; else{ formatex(Msg2, charsmax(Msg2), QuestInfoMessage[ePlayerQuestType[id]], (get_user_progress_need(id)-get_user_progress(id))); formatex(Msg, charsmax(Msg), "^n^n^n^n^n^n^n^n^n[Rozdzial: %s]^n[Postep: %i/%i]^n[Info: %s]", QuestRozdzial[iPlayerPrzedzial[id]], get_user_progress(id), get_user_progress_need(id), Msg2); } set_hudmessage(0, 255, 0, HUD_X, HUD_Y, 0, 1.0, 0.8) ShowSyncHudMsg(id, HudObj, Msg); } } public get_user_progress(id){ return iPlayerQuestProgress[id] ? iPlayerQuestProgress[id] : 0; } public get_user_progress_need(id){ if(ePlayerQuestType[id]) return ArrayGetCell(gIleRazy, iPlayerQuestID[id]); return 0; } public SaveAktQuest(id, ma) { if(is_user_bot(id)) return PLUGIN_CONTINUE; new vaultkey[64], vaultdata[64]; formatex(vaultkey, charsmax(vaultkey), "%s", szPlayerName[id]); formatex(vaultdata, charsmax(vaultdata), "%i %i %i %i", ma ? iPlayerQuestID[id] : -1, ePlayerQuestType[id], iPlayerQuestProgress[id], iPlayerPrzedzial[id]); nvault_set(vault2, vaultkey, vaultdata); return PLUGIN_CONTINUE; } public LoadAktQuest(id) { if(is_user_bot(id)) return PLUGIN_CONTINUE; new vaultkey[64], vaultdata[64]; formatex(vaultkey, charsmax(vaultkey), "%s", szPlayerName[id]); nvault_get(vault2, vaultkey, vaultdata, charsmax(vaultdata)); new data[5][64]; parse(vaultdata, data[0], 63, data[1], 63, data[2], 63, data[3], 63) new new_data[6] for(new i=0; i<4; i++) new_data[i] = str_to_num(data[i]); if(new_data[0] == -1) return PLUGIN_HANDLED iPlayerQuestID[id] = new_data[0] ePlayerQuestType[id] = new_data[1]; iPlayerQuestProgress[id] = new_data[2] iPlayerPrzedzial[id] = new_data[3] return PLUGIN_HANDLED; } public client_disconnect(id) { SaveAktQuest(id, ePlayerQuestType[id]); ResetQuest(id) }
Dodanych wklejek: 11179
Powered By (Pav32) Pastebin © 2011