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: 15354
Powered By (Pav32) Pastebin © 2011


Dodatki SourceMod


