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 4ytr6iono dodana przez Gość, 25.01.2013 20:48
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.
/* ================================================================================================ / data 25-1-2013 diablo mod bazujacy na grze dota/dota 2 autor stachu for cs-hedzik.pl ================================================================================================= */ ///// iniclude #include <amxmodx> #include <amxmisc> #include <engine> #include <fakemeta> #include <csx> #include <cstrike> #include <fun> #include <fakemeta_util> #include <sqlx> #include <colorchat> #include <hamsandwich> #include <nvault> #include <nvault_util> #include <xs> //////////////////////// #define ILE_KLAS 3 ///////// sql new Handle:g_SqlTuple new g_sqlTable[64] = "dbmod_tables" new g_boolsqlOK=0 //////// enum { NONE = 0, Blood} new Race[ILE_KLAS][26] = { "None","Bloodseeker"} new race_heal[ILE_KLAS] = { 130,90 } new race_sila[ILE_KLAS] = {0,15} new race_zrecznosc[ILE_KLAS] = {0,7} new race_inteligencja[ILE_KLAS] = {0,5} //////// new player_lvl[33] new player_class[33] new asked_klass[33] new const LevelXP[127] = { 0,1500,5100,8700,9900 } public plugin_init() { ///// sql register_cvar("diablo_sql_host","localhost",FCVAR_PROTECTED) register_cvar("diablo_sql_user","root",FCVAR_PROTECTED) register_cvar("diablo_sql_pass","root",FCVAR_PROTECTED) register_cvar("diablo_sql_database","dbmod",FCVAR_PROTECTED) register_cvar("diablo_sql_table","dbmod_tablet",FCVAR_PROTECTED) set_task(1.0, "sql_start"); } public sql_start() { if(g_boolsqlOK) return; new host[128], user[64], pass[64], database[64]; get_cvar_string("diablo_sql_database", database, 63); get_cvar_string("diablo_sql_host", host, 127); get_cvar_string("diablo_sql_user", user, 63); get_cvar_string("diablo_sql_pass", pass, 63); g_SqlTuple = SQL_MakeDbTuple(host, user, pass, database); get_cvar_string("diablo_sql_table", g_sqlTable, 63); new q_command[512]; formatex(q_command, 511, "CREATE TABLE IF NOT EXISTS `%s` (`zapis` VARCHAR(48),`klasa` INT(2),`lvl` INT(3) DEFAULT 1,`exp` INT(9),`sila` INT(3), `int` INT(3) ,`zre` INT(3),`misja` INT(3),`kamienie` INT(5), `postep` INT(3),`art` INT(3),`wyt` INT(3) DEFAULT 0) DEFAULT CHARSET `utf8` COLLATE `utf8_general_ci`", g_sqlTable); SQL_ThreadQuery(g_SqlTuple, "TableHandle", q_command); } ///////////// public TableHandle(FailState, Handle:Query, Error[], Errcode, Data[], DataSize) { if(FailState == TQUERY_CONNECT_FAILED) { log_to_file("diablo.log", "Could not connect to SQL database."); return PLUGIN_CONTINUE; } if(FailState == TQUERY_QUERY_FAILED) { log_to_file("diablo.log", "Table Query failed."); return PLUGIN_CONTINUE; } if(Errcode) { log_to_file("diablo.log", "Error on Table query: %s", Error); return PLUGIN_CONTINUE; } g_boolsqlOK = 1; look_for_none() return PLUGIN_CONTINUE; } ///////////////// public look_for_none() { for(new i=1;i<ILE_KLAS;i++) { if(is_user_alive(i) ) { if(player_class[i]==0) { select_class_query(i) } } } } ////////////////// public select_class_query(id) { if(asked_klass[id]) return PLUGIN_HANDLED; if(g_boolsqlOK) { new name[48], data[1], q_command[512]; data[0] = id; formatex(q_command, 511, "SELECT `klasa`, `lvl` FROM `%s` WHERE `zapis`='%s'", g_sqlTable,sprawdz_co_ma(id,name)); SQL_ThreadQuery(g_SqlTuple, "select_class_handle", q_command, data, 1); asked_klass[id] = 1; } else sql_start(); return PLUGIN_HANDLED; } //////////////////////////// stock sprawdz_co_ma(id,sid[]) { get_user_authid(id, sid, 47); if(contain(auth, "STEAM_0:0:") != -1 || contain(auth, "STEAM_0:1:") != -1) return sid get_user_name(id, sid, 47); replace_all(sid, 47, "'", "'"); return sid; } public select_class_handle(FailState, Handle:Query, Error[], Errcode, Data[], DataSize) { new id = Data[0]; if(FailState == TQUERY_CONNECT_FAILED) { log_to_file("diablo.log", "Could not connect to SQL database."); asked_klass[id] = 0; return PLUGIN_CONTINUE; } if(FailState == TQUERY_QUERY_FAILED) { log_to_file("diablo.log", "select_class_query Query failed."); asked_klass[id] = 0; return PLUGIN_CONTINUE; } if(Errcode) { log_to_file("diablo.log", "Error on select_class_query query: %s", Error); asked_klass[id] = 0; return PLUGIN_CONTINUE; } if(SQL_MoreResults(Query)) { new i, numklasa, numlvl; numklasa = SQL_FieldNameToNum(Query, "klasa"); numlvl = SQL_FieldNameToNum(Query, "lvl"); while(SQL_MoreResults(Query)) { i = SQL_ReadResult(Query, numklasa); player_class_lvl[id][i] = SQL_ReadResult(Query, numlvl); SQL_NextRow(Query); } } if(asked_klass[id] == 1) { asked_klass[id] = 2; select_class(id); } return PLUGIN_CONTINUE; } public LoadXP(id, klasa) { if(is_user_bot(id) || asked_sql[id] || klasa == NONE) return PLUGIN_HANDLED; if(g_boolsqlOK) { new data[2]; data[0] = id; data[1] = klasa; new sid[48], q_command[512]; formatex(q_command, 511, "SELECT * FROM `%s` WHERE `zapis`='%s' AND `klasa`='%i'", g_sqlTable, sprawdz_co_ma(id,sid), klasa); SQL_ThreadQuery(g_SqlTuple, "Load_xp_handle", q_command, data, 2); asked_sql[id] = 1; } else sql_start(); return PLUGIN_HANDLED; } public Load_xp_handle(FailState, Handle:Query, Error[], Errcode, Data[], DataSize) { new id = Data[0]; asked_sql[id] = 0; if(FailState == TQUERY_CONNECT_FAILED) { log_to_file("diablo.log", "Could not connect to SQL database."); return PLUGIN_CONTINUE; } if(FailState == TQUERY_QUERY_FAILED) { log_to_file("diablo.log", "Load_xp Query failed."); return PLUGIN_CONTINUE; } if(Errcode) { log_to_file("diablo.log", "Error on Load_xp query: %s", Error); return PLUGIN_CONTINUE; } new klasa = Data[1]; if(SQL_MoreResults(Query)) { player_class[id] = klasa; player_lvl[id] = player_class_lvl[id][klasa]; player_xp[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "exp")); } else create_klass(id, klasa); return PLUGIN_CONTINUE; } public create_klass(id, class) { if(g_boolsqlOK) { if(!is_user_bot(id) && !database_user_created[id]) { new data[2]; data[0] = id; data[1] = class; new name[48], q_command[512]; log_to_file("test_log.log", "*** %s [%s] <%s> *** Create %s ***", sprawdz_co_ma(id,name), Race[class]); formatex(q_command, 511, "INSERT INTO `%s` (`nick`,`klasa`,`lvl`,`exp`) VALUES ('%s','%i',1,1)", g_sqlTable, sprawdz_co_ma(id,name), class); SQL_ThreadQuery(g_SqlTuple, "create_klass_handle", q_command, data, 2); database_user_created[id] = 1; } } else sql_start(); } public select_class(id) { if(is_user_bot(id)) return PLUGIN_HANDLED; asked_klass[id] = 0 new MyMenu=menu_create("Wybierz Strone","select_class_menu"); menu_additem(MyMenu,"BETA","",0) menu_setprop(MyMenu,MPROP_EXITNAME,"Wyjscie"); menu_setprop(MyMenu,MPROP_PERPAGE,7) menu_display(id, MyMenu,0); return PLUGIN_HANDLED; } public select_class_menu(id, menu, item){ if(item == MENU_EXIT){ menu_destroy(menu); return PLUGIN_HANDLED; } switch(item) { case 0: strona1(id) } return PLUGIN_HANDLED; } public strona1(id) { new text1[128] format(text1, 127,"BloodSeeker Lev :%i",player_class_lvl[id][1]) new MyMenu=menu_create("Wybierz","select_strona3"); menu_additem(MyMenu,text1,"",0,_) menu_setprop(MyMenu,MPROP_EXITNAME,"Wroc"); menu_setprop(MyMenu,MPROP_PERPAGE,7) menu_display(id, MyMenu,0); return PLUGIN_HANDLED; } public select_strona3(id, menu, item){ if(item == MENU_EXIT){ menu_destroy(menu); select_class(id) return PLUGIN_HANDLED; } switch(item) { case 0:{ player_class[id] = Blood LoadXP(id, player_class[id]) } } otwarte_menu[id] = false return PLUGIN_HANDLED; } ///////////////////////////////////////////////////////// ///////////////// public fwTakeDamage(this, idinflictor, idattacker, Float:damage, damagebits) { if(!is_user_alive(this) || !is_user_connected(this) || !is_user_connected(idattacker) || get_user_team(this) == get_user_team(idattacker)){ return HAM_IGNORED; } damage*=krytyk(idattacker,this) item_take_dolicz(idattacker,this,damage,weapon) if(damagebits & DMG_ENERGYBEAM||damagebits & DMG_SHOCK){ pokaz_obr(idattacker,damage) } if(damage>175) player_dmg[idattacker]+=damage/2.0 else player_dmg[idattacker]+=damage dmg_exp(idattacker) //////inne//////// if (HasFlag(idattacker,Flag_Ignite)){ RemoveFlag(idattacker,Flag_Ignite) } SetHamParamFloat(4, damage); return HAM_IGNORED; } new Float:tablica_krytyczne[33][2] //////// [0] - szansa na krytyk np = 0.01 = 10% //////// [1] - wielkosc krytyka stock krytyk(at,id) { if(tablica_krytyczne[at][0]<0) return 1.0 if(random_float(1*tablica_krytyczne[at][0],1)==1 return tablica_krytyczne[at][1] }
Dodanych wklejek: 12215
Powered By (Pav32) Pastebin © 2011