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
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.
#include <amxmodx> #include <amxmisc> #include <cstrike> #include <fakemeta> #include <hamsandwich> #include <sqlx> #include <csx> #include <colorchat> #define PLUGIN "Call of Duty: MW Mod" #define VERSION "1.0-2" #define AUTHOR "QTM_Peyote" #define MAX_WIELKOSC_NAZWY 32 #define MAX_WIELKOSC_OPISU 256 #define MAX_ILOSC_PERKOW 120 #define MAX_ILOSC_KLAS 100 #define STANDARDOWA_SZYBKOSC 250.0 #define ZADANIE_POKAZ_INFORMACJE 672 #define ZADANIE_USTAW_SZYBKOSC 832 new const maxAmmo[31] = {0, 52, 0, 90, 1, 31, 1, 100, 90, 1, 120, 100, 100, 90, 90, 90, 100, 120, 30, 120, 200, 31, 90, 120, 90, 2, 35, 90, 90,0, 100}; new MsgScreenfade; new SyncHudObj, SyncHudObj2; new cvar_doswiadczenie_za_zabojstwo, cvar_doswiadczenie_za_obrazenia, cvar_doswiadczenie_za_wygrana, cvar_typ_zapisu, cvar_limit_poziomu, cvar_proporcja_poziomu, cvar_blokada_broni; new perk_zmieniony, klasa_zmieniona; new nazwy_perkow[MAX_ILOSC_PERKOW+1][MAX_WIELKOSC_NAZWY+1], opisy_perkow[MAX_ILOSC_PERKOW+1][MAX_WIELKOSC_OPISU+1], max_wartosci_perkow[MAX_ILOSC_PERKOW+1], min_wartosci_perkow[MAX_ILOSC_PERKOW+1], pluginy_perkow[MAX_ILOSC_PERKOW+1], ilosc_perkow; new nazwa_gracza[33][64], klasa_gracza[33], nowa_klasa_gracza[33], poziom_gracza[33], doswiadczenie_gracza[33], perk_gracza[33], wartosc_perku_gracza[33]; new Float:maksymalne_zdrowie_gracza[33], Float:szybkosc_gracza[33], Float:redukcja_obrazen_gracza[33]; new punkty_gracza[33], zdrowie_gracza[33], inteligencja_gracza[33], wytrzymalosc_gracza[33], kondycja_gracza[33]; new bool:gracz_ma_tarcze[33], bool:gracz_ma_noktowizor[33]; new bonusowe_bronie_gracza[33], bonusowe_zdrowie_gracza[33], bonusowa_inteligencja_gracza[33], bonusowa_wytrzymalosc_gracza[33], bonusowa_kondycja_gracza[33]; new bronie_klasy[MAX_ILOSC_KLAS+1], zdrowie_klas[MAX_ILOSC_KLAS+1], kondycja_klas[MAX_ILOSC_KLAS+1], inteligencja_klas[MAX_ILOSC_KLAS+1], wytrzymalosc_klas[MAX_ILOSC_KLAS+1], nazwy_klas[MAX_ILOSC_KLAS+1][MAX_WIELKOSC_NAZWY+1], opisy_klas[MAX_ILOSC_KLAS+1][MAX_WIELKOSC_OPISU+1], pluginy_klas[MAX_ILOSC_KLAS+1], ilosc_klas; new bronie_druzyny[] = {0, 0, 0}, bronie_dozwolone = 1<<CSW_KNIFE | 1<<CSW_C4; new bool:freezetime = true; new licznik_zabiccod[33]; new weaponname[22]; new min_lvl = 0; new Float:procent = 0.10; // liczba 0.20 oznacza 20 % max lvl'u. Dajac 0.5 damy 50 % a 1.0 - 100 % lvlu new lvl_klasy_gracza[33][sizeof nazwy_klas]; new xp_klasy_gracza[33][sizeof nazwy_klas]; new int_klasy_gracza[33][sizeof nazwy_klas]; new zdr_klasy_gracza[33][sizeof nazwy_klas]; new wyt_klasy_gracza[33][sizeof nazwy_klas]; new kon_klasy_gracza[33][sizeof nazwy_klas]; new polaczony_raz[33], wczytane_dane[33]; new Handle:info public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); cvar_doswiadczenie_za_zabojstwo = register_cvar("cod_killxp", "10"); cvar_doswiadczenie_za_obrazenia = register_cvar("cod_damagexp", "1"); // ilosc doswiadczenia za 20 obrazen cvar_doswiadczenie_za_wygrana = register_cvar("cod_winxp", "50"); cvar_typ_zapisu = register_cvar("cod_savetype", "2"); // 1-Nick; 2-SID dla Steam; 3-IP cvar_limit_poziomu = register_cvar("cod_maxlevel", "200"); cvar_proporcja_poziomu = register_cvar("cod_levelratio", "35"); cvar_blokada_broni = register_cvar("cod_weaponsblocking", "1"); register_cvar("cod_host", "94.23.14.31"); register_cvar("cod_user", "s2647"); register_cvar("cod_pass", "haslo"); register_cvar("cod_db", "s2647"); register_cvar("cod_table", "codmod_table"); register_clcmd("say /klasa", "WybierzKlase"); register_clcmd("say /class", "WybierzKlase"); register_clcmd("say /klasy", "OpisKlasy"); register_clcmd("say /classinfo", "OpisKlasy"); register_clcmd("say /perk", "KomendaOpisPerku"); register_clcmd("say /perki", "OpisPerkow"); register_clcmd("say /perks", "OpisPerkow"); register_clcmd("say /item", "Pomoc"); register_clcmd("say /przedmiot", "OpisPerku"); register_clcmd("say /dropp", "WyrzucPerk"); register_clcmd("say /wyrzuc", "WyrzucPerk"); register_clcmd("say /reset", "KomendaResetujPunkty"); register_clcmd("say /statystyki", "PrzydzielPunkty"); register_clcmd("say /skille", "statystyki_klasy"); register_clcmd("say /staty", "statystyki_klasy"); register_clcmd("say /vip","ShowMotd") register_clcmd("say /pomoc", "Pomoc"); register_clcmd("useperk", "UzyjPerku"); register_clcmd("radio3", "UzyjPerku"); register_clcmd("fullupdate", "BlokujKomende"); register_menucmd(register_menuid("Klasa:"), 1023, "OpisKlasy"); RegisterHam(Ham_TakeDamage, "player", "Obrazenia"); RegisterHam(Ham_TakeDamage, "player", "ObrazeniaPost", 1); RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1); RegisterHam(Ham_Killed, "player", "SmiercGraczaPost", 1); RegisterHam(Ham_Touch, "armoury_entity", "DotykBroni"); RegisterHam(Ham_Touch, "weapon_shield", "DotykTarczy"); RegisterHam(Ham_Touch, "weaponbox", "DotykBroni"); register_forward(FM_CmdStart, "CmdStart"); register_forward(FM_EmitSound, "EmitSound"); register_logevent("PoczatekRundy", 2, "1=Round_Start"); register_event("SendAudio", "WygranaTerro" , "a", "2&%!MRAD_terwin"); register_event("SendAudio", "WygranaCT", "a", "2&%!MRAD_ctwin"); register_event("CurWeapon","CurWeapon","be", "1=1"); register_event("HLTV", "NowaRunda", "a", "1=0", "2=0"); register_event("DeathMsg", "SmiercGraczaKillCod", "a"); MsgScreenfade = get_user_msgid("ScreenFade"); SyncHudObj = CreateHudSyncObj(); SyncHudObj2 = CreateHudSyncObj(); perk_zmieniony = CreateMultiForward("cod_perk_changed", ET_CONTINUE, FP_CELL, FP_CELL, FP_CELL); klasa_zmieniona = CreateMultiForward("cod_class_changed", ET_CONTINUE, FP_CELL, FP_CELL); copy(nazwy_perkow[0], MAX_WIELKOSC_NAZWY, "Brak"); copy(opisy_perkow[0], MAX_WIELKOSC_OPISU, "Zabij kogos, aby otrzymac przedmiot"); copy(nazwy_klas[0], MAX_WIELKOSC_NAZWY, "Brak"); } public plugin_cfg() { new lokalizacja_cfg[33]; get_configsdir(lokalizacja_cfg, charsmax(lokalizacja_cfg)); server_cmd("exec %s/codmod.cfg", lokalizacja_cfg); server_exec(); new Host[64], User[64], Pass[64], DB[64], Table[32]; get_cvar_string("cod_host", Host, 63); get_cvar_string("cod_user", User, 63); get_cvar_string("cod_pass", Pass, 63); get_cvar_string("cod_db", DB, 63); get_cvar_string("cod_table", Table, 31); info = SQL_MakeDbTuple(Host, User, Pass, DB); if(info == Empty_Handle){ set_fail_state("Brak polaczenia z baza danych!"); return; } new szTemp[1028], iLen = 0 iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "CREATE TABLE IF NOT EXISTS `%s` (`nick` VARCHAR(64)", Table); for(new i=1; i<= ilosc_klas; i++) iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, ", `%i` VARCHAR(32)", i); iLen += copy(szTemp[iLen], charsmax(szTemp)-iLen, ")"); SQL_ThreadQuery(info, "IgnoreHandle", szTemp); } public plugin_precache() { precache_sound("QTM_CodMod/select.wav"); precache_sound("QTM_CodMod/start.wav"); precache_sound("QTM_CodMod/start2.wav"); precache_sound("QTM_CodMod/levelup.wav"); } public plugin_natives() { register_native("cod_set_user_xp", "UstawDoswiadczenie", 1); register_native("cod_set_user_class", "UstawKlase", 1); register_native("cod_set_user_perk", "UstawPerk", 1); register_native("cod_set_user_bonus_health", "UstawBonusoweZdrowie", 1); register_native("cod_set_user_bonus_intelligence", "UstawBonusowaInteligencje", 1); register_native("cod_set_user_bonus_trim", "UstawBonusowaKondycje", 1); register_native("cod_set_user_bonus_stamina", "UstawBonusowaWytrzymalosc", 1); register_native("cod_points_to_health", "PrzydzielZdrowie", 1); register_native("cod_points_to_intelligence", "PrzydzielInteligencje", 1); register_native("cod_points_to_trim", "PrzydzielKondycje", 1); register_native("cod_points_to_stamina", "PrzydzielWytrzymalosc", 1); register_native("cod_get_user_xp", "PobierzDoswiadczenie", 1); register_native("cod_get_user_level", "PobierzPoziom", 1); register_native("cod_get_user_points", "PobierzPunkty", 1); register_native("cod_get_user_class", "PobierzKlase", 1); register_native("cod_get_user_perk", "PobierzPerk", 1); register_native("cod_get_user_health", "PobierzZdrowie", 1); register_native("cod_get_user_intelligence", "PobierzInteligencje", 1); register_native("cod_get_user_trim", "PobierzKondycje", 1); register_native("cod_get_user_stamina", "PobierzWytrzymalosc", 1); register_native("cod_get_level_xp", "PobierzDoswiadczeniePoziomu", 1); register_native("cod_get_perkid", "PobierzPerkPrzezNazwe", 1); register_native("cod_get_perks_num", "PobierzIloscPerkow", 1); register_native("cod_get_perk_name", "PobierzNazwePerku", 1); register_native("cod_get_perk_desc", "PobierzOpisPerku", 1); register_native("cod_get_classid", "PobierzKlasePrzezNazwe", 1); register_native("cod_get_classes_num", "PobierzIloscKlas", 1); register_native("cod_get_class_name", "PobierzNazweKlasy", 1); register_native("cod_get_class_desc", "PobierzOpisKlasy", 1); register_native("cod_get_class_health", "PobierzZdrowieKlasy", 1); register_native("cod_get_class_intelligence", "PobierzInteligencjeKlasy", 1); register_native("cod_get_class_trim", "PobierzKondycjeKlasy", 1); register_native("cod_get_class_stamina", "PobierzWytrzymaloscKlasy", 1); register_native("cod_give_weapon", "DajBron", 1); register_native("cod_take_weapon", "WezBron", 1); register_native("cod_set_user_shield", "UstawTarcze", 1); register_native("cod_set_user_nightvision", "UstawNoktowizor", 1); register_native("cod_inflict_damage", "ZadajObrazenia", 1); register_native("cod_register_perk", "ZarejestrujPerk"); register_native("cod_register_class", "ZarejestrujKlase"); } public CmdStart(id, uc_handle) { if(!is_user_alive(id)) return FMRES_IGNORED; new Float: velocity[3]; pev(id, pev_velocity, velocity); new Float: speed = vector_length(velocity); if(szybkosc_gracza[id] > speed*1.8) set_pev(id, pev_flTimeStepSound, 300); return FMRES_IGNORED; } public Odrodzenie(id) { if(!task_exists(id+ZADANIE_POKAZ_INFORMACJE)) set_task(0.1, "PokazInformacje", id+ZADANIE_POKAZ_INFORMACJE, _, _, "b"); if(nowa_klasa_gracza[id]) UstawNowaKlase(id); if(!klasa_gracza[id]) { WybierzKlase(id); return PLUGIN_CONTINUE; } DajBronie(id); ZastosujAtrybuty(id); if(poziom_gracza[id] < min_lvl) { ColorChat(id, GREEN, "[Cs-Maniek.pl] ^x01 Wykrylem duze problemy z balansem lvli na serwerze"); ColorChat(id, GREEN, "[Cs-Maniek.pl] ^x01 W ramach tego dostales ^x04%i^x01 na start",min_lvl); UstawDoswiadczenie(id,PobierzDoswiadczeniePoziomu(min_lvl)+1); poziom_gracza[id] = min_lvl; SprawdzPoziom(id); } if(punkty_gracza[id] > 0) PrzydzielPunkty(id); return PLUGIN_CONTINUE; } public UstawNowaKlase(id) { new ret; new forward_handle = CreateOneForward(pluginy_klas[klasa_gracza[id]], "cod_class_disabled", FP_CELL, FP_CELL); ExecuteForward(forward_handle, ret, id, klasa_gracza[id]); DestroyForward(forward_handle); forward_handle = CreateOneForward(pluginy_klas[nowa_klasa_gracza[id]], "cod_class_enabled", FP_CELL, FP_CELL); ExecuteForward(forward_handle, ret, id, nowa_klasa_gracza[id]); DestroyForward(forward_handle); if(ret == 4) { klasa_gracza[id] = 0; return PLUGIN_CONTINUE; } ExecuteForward(klasa_zmieniona, ret, id, klasa_gracza[id]); if(ret == 4) { klasa_gracza[id] = 0; return PLUGIN_CONTINUE; } klasa_gracza[id] = nowa_klasa_gracza[id]; nowa_klasa_gracza[id] = 0; WczytajDane(id, klasa_gracza[id]); UstawPerk(id, 0, 0, 0); return PLUGIN_CONTINUE; } public DajBronie(id) { for(new i=1; i < 32; i++) { if((1<<i) & (bronie_klasy[klasa_gracza[id]] | bonusowe_bronie_gracza[id])) { new weaponname[22]; get_weaponname(i, weaponname, 21); fm_give_item(id, weaponname); } } if