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 1o5ofhc7eyas0 dodana przez djmiw, 12.06.2013 17:45
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.
/*
* [WYZWANIA by CYPIS]
*
* ^^^ ^^ ^^ ^^ ^^^ ^^ ^^ ^
* ^^ ^^ ^^ ^^ ^ ^^ ^
* ^^ ^^ ^^ ^^^ ^^ ^^ ^
* ^^ ^^ ^^ ^^ ^
* ^^^ ^^ ^^ ^^ ^ ^^
*
* GG: 3800672
*/
#if defined USING_SQL
#include <sqlx>
#else
#include <nvault>
#endif
#if defined COD_NOWY
native cod_get_user_xp(id);
native cod_set_user_xp(id, wartosc);
#endif
new const nazwy_nagrody[][] =
{
"Exposed %^nCall in & UAV", //0
"Interference %^nCall in & Counter-UAV", //1
"Air Mail %^nCall in & Care Packages", //2
"Sentry Veteran %^nCall in & Sentry Guns", //3
"Air To Ground %^nCall in & Predator Missiles", //4
"Airstrike Veteran %^nCall in & Precision Airstrikes", //5
"Special Delivery %^n Call in & Emergency Airdrops",//6
"Blackout %^nCall in & EMP", //7
"End Game %^nCall in & Nuke", //8
"Radar Inbound %^nCall in & UAV or Counter-UAV", //9
"Airstrike Inbound %^nCall in & Precision or Harrier Airstrike", //10
"Airdrop Inbound %^nCall in & Care Packages, Sentry Guns or Emergency Airdrop" //11
};
new const za_nagrode[][3] =
{
{1000, 2500, 5000}, //uav
{1000, 2500, 5000}, //cuav
{1000, 2500, 5000}, //care packages
{1000, 2500, 5000}, //sentry
{1500, 2500, 5000}, //predator
{1500, 3000, 6000}, //nalot
{1500, 3000, 6000}, //emergy airdrop
{2500, 5000, 10000}, //emp
{5000, 10000, 10000}, //nuke
{2500, 5000, 10000}, //uav or cuav
{2500, 5000, 10000}, //nalot2
{2500, 5000, 10000} //care packages, sentry or emergy airdrop
};
new const rzymskie_liczby[][] = {"I", "II", "III"};
new ile_nagrod[MAX+1][9], nazwa_gracza[MAX+1][35];
#if defined USING_SQL
new Handle:g_sql;
#else
new g_vault;
#endif
public ks_plugin_init()
{
register_clcmd("say /wyzwania", "MOTDwyzwania");
#if defined USING_SQL
register_cvar("ks_sql_host", "localhost");
register_cvar("ks_sql_user", "root");
register_cvar("ks_sql_pass", "");
register_cvar("ks_sql_db", "db");
#endif
}
public ks_plugin_precache()
{
precache_sound("mw/challenge_completed.wav");
}
public plugin_cfg()
{
#if defined USING_SQL
register_cvar("ks_sql_host", "localhost");
register_cvar("ks_sql_user", "root");
register_cvar("ks_sql_pass", "");
register_cvar("ks_sql_db", "db");
new host[64], user[64], pass[64], db[64];
get_cvar_string("ks_sql_host", host, 63);
get_cvar_string("ks_sql_user", user, 63);
get_cvar_string("ks_sql_pass", pass, 63);
get_cvar_string("ks_sql_db", db, 63);
g_sql = SQL_MakeDbTuple(host, user, pass, db);
if(g_sql == Empty_Handle){
set_fail_state("Brak polaczenia z baza danych!");
return;
}
new szTemp[1024];
add(szTemp, 1023, "CREATE TABLE IF NOT EXISTS `cod_ks` (`name` VARCHAR(35) NOT NULL,");
add(szTemp, 1023, "`0` INT UNSIGNED NOT NULL DEFAULT 0, ");
add(szTemp, 1023, "`1` INT UNSIGNED NOT NULL DEFAULT 0, ");
add(szTemp, 1023, "`2` INT UNSIGNED NOT NULL DEFAULT 0, ");
add(szTemp, 1023, "`3` INT UNSIGNED NOT NULL DEFAULT 0, ");
add(szTemp, 1023, "`4` INT UNSIGNED NOT NULL DEFAULT 0, ");
add(szTemp, 1023, "`5` INT UNSIGNED NOT NULL DEFAULT 0, ");
add(szTemp, 1023, "`6` INT UNSIGNED NOT NULL DEFAULT 0, ");
add(szTemp, 1023, "`7` INT UNSIGNED NOT NULL DEFAULT 0, ");
add(szTemp, 1023, "`8` INT UNSIGNED NOT NULL DEFAULT 0, ");
add(szTemp, 1023, "PRIMARY KEY(name));");
SQL_ThreadQuery(g_sql, "handleInsert", szTemp);
#else
g_vault = nvault_open("killstreak");
#endif
}
public plugin_end()
{
#if defined USING_SQL
SQL_FreeHandle(g_sql);
#else
nvault_close(g_vault);
#endif
}
public MOTDwyzwania(id)
{
#define LICZBA(%1,%2,%3,%4) (%1 >= %2? (%1 >= %3? %4: %3): %2)
#define RZYMSKALICZ(%1,%2,%3) (%1 >= %2? (%1 >= %3? "III": "II"): "I")
#define KOLOR(%1) ((zmienna[%1] > 0)? "#0099FF": "#CC0033")
new szTemp[1500], iLen = 0, zmienna[3];
iLen += copy(szTemp[iLen], charsmax(szTemp)-iLen, "<html><style type=^"text/css^">body{font-family:verdana,arial;background:#666666;margin:10px;}img{border:0px none;}.at{font-size:9px;color:red;}.green{font-size:11px;color:#00FF00;}.white{font-size:11px;color:#FFFFFF;}.red{color:#FF0000;}</style><font color=FFFFFF><small><b>Twój przebieg wyzwań:</b><br/><br/>");
iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "Exposed %s - %i / %i (Call UAV)<br/><br/>", RZYMSKALICZ(ile_nagrod[id][0],5,25), min(ile_nagrod[id][0],50), LICZBA(ile_nagrod[id][0],5,25,50));
iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "Interference %s - %i / %i (Call C-UAV)<br/><br/>", RZYMSKALICZ(ile_nagrod[id][1],5,25), min(ile_nagrod[id][1],50), LICZBA(ile_nagrod[id][1],5,25,50));
iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "Air Mail %s - %i / %i (Call Care Package)<br/><br/>", RZYMSKALICZ(ile_nagrod[id][2],5,25), min(ile_nagrod[id][2],50), LICZBA(ile_nagrod[id][2],5,25,50));
iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "Sentry Veteran %s - %i / %i (Call Sentry Gun)<br/><br/>", RZYMSKALICZ(ile_nagrod[id][3],5,25), min(ile_nagrod[id][3],50), LICZBA(ile_nagrod[id][3],5,25,50));
iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "Air To Ground %s - %i / %i (Call Predator Missle)<br/><br/>", RZYMSKALICZ(ile_nagrod[id][4],5,25), min(ile_nagrod[id][4],50), LICZBA(ile_nagrod[id][4],5,25,50));
iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "Airstrike Veteran %s - %i / %i (Call Airstrike)<br/><br/>", RZYMSKALICZ(ile_nagrod[id][5],5,25), min(ile_nagrod[id][5],50), LICZBA(ile_nagrod[id][5],5,25,50));
iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "Special Delivery %s - %i / %i (Call Emergency Airdrops)<br/><br/>",RZYMSKALICZ(ile_nagrod[id][6],5,25), min(ile_nagrod[id][6],50), LICZBA(ile_nagrod[id][6],5,25,50));
iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "Blackout %s - %i / %i (Call EMP)<br/><br/>", RZYMSKALICZ(ile_nagrod[id][7],2,5), min(ile_nagrod[id][7],10), LICZBA(ile_nagrod[id][7],2,5,10));
iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "End Game %s - %i / %i (Call Nuke)<br/><br/><br/>", RZYMSKALICZ(ile_nagrod[id][8],2,5), min(ile_nagrod[id][8],10), LICZBA(ile_nagrod[id][8],2,5,10));
iLen += copy(szTemp[iLen], charsmax(szTemp)-iLen, "<b>Dalsze wyzwania dostepne po odblokowaniu:</b><br/><br/>");
if(ile_nagrod[id][0] >= 50 && ile_nagrod[id][1] >= 50)
zmienna[0] = max(ile_nagrod[id][0], ile_nagrod[id][1])-50;
if(ile_nagrod[id][5] >= 50)
zmienna[1] = ile_nagrod[id][5]-50;
if(ile_nagrod[id][2] >= 50 && ile_nagrod[id][4] >= 50 && ile_nagrod[id][6] >= 50/*25*/)
{
new makas = max(max(ile_nagrod[id][2], ile_nagrod[id][4]), ile_nagrod[id][6]);
zmienna[2] = makas - 50/*(makas == ile_nagrod[id][6]? 25: 50)*/;
}
iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "Radar Inbound %s - %i / %i (<font color=%s>UNLOCK Exposed III AND Interference III<font color=FFFFFF>)<br/><br/>", RZYMSKALICZ(zmienna[0],50,100), min(zmienna[0],1000), LICZBA(zmienna[0],50,100,1000), KOLOR(0));
iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "Airstrike Inbound %s - %i / %i (<font color=%s>UNLOCK Airstrike Veteran III<font color=FFFFFF>)<br/><br/>", RZYMSKALICZ(zmienna[1],50,100), min(zmienna[1],1000), LICZBA(zmienna[1],50,100,1000), KOLOR(1));
iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "Airdrop Inbound %s - %i / %i (<font color=%s>UNLOCK Air Mail III AND Air To Ground III AND Special Delivery III<font color=FFFFFF>)%s", RZYMSKALICZ(zmienna[2],50,100), min(zmienna[2],1000), LICZBA(zmienna[2],50,100,1000), KOLOR(2), "</small><br/><br/>Wyzwania^x20^x62^x79^x20^x43^x79^x70^x69^x73^x20</html>");
show_motd(id, szTemp);
}
public ks_client_putinserver(id)
{
get_user_name(id, nazwa_gracza[id], 34);
replace_all(nazwa_gracza[id], 34, "'", "'");
replace_all(nazwa_gracza[id], 34, "`", "`");
WczytajDaneStreak(id);
}
stock ks_print_info(id, nazwa[])
{
new nagroda;
switch(nazwa[0])
{
case 'U': nagroda = 0; //UAV
case 'C': nagroda = (nazwa[1] == 'o'? 1: 2); //Counter-UAV, Care Package
case 'S': nagroda = 3; //Sentry Gun
case 'P': nagroda = 4; //Predator Missle
case 'A': nagroda = 5; //Airstrike
case 'E': nagroda = (nazwa[1] == 'm'? 6: 7); //Emergency Airdrop, EMP
case 'N': nagroda = 8; //Nuke
}
ile_nagrod[id][nagroda]++;
if(nagroda >= 7 && ile_nagrod[id][nagroda] <= 10) //emp, nuke
{
SpawadzNagrode(id, nagroda, 0, 2, 5);
return;
}
if(nagroda < 7/*6*/ && ile_nagrod[id][nagroda] <= 50) //Sentry Gun, ect.
{
SpawadzNagrode(id, nagroda);
return;
}
/*if(nagroda == 6 && ile_nagrod[id][nagroda] <= 25) //Emergency Airdrop
{
SpawadzNagrode(id, nagroda);
return;
}*/
if(nagroda == 5) //Airstrike
{
if(ile_nagrod[id][5] >= 50 && (ile_nagrod[id][5]-50) <= 1000)
{
SpawadzNagrode(id, nagroda, 10);
}
return;
}
if(nagroda == 0 || nagroda == 1) //UAV, Counter-UAV
{
if(ile_nagrod[id][0] >= 50 && ile_nagrod[id][1] >= 50 && (max(ile_nagrod[id][0], ile_nagrod[id][1])-50) <= 1000)
{
if(max(ile_nagrod[id][0], ile_nagrod[id][1]) == ile_nagrod[id][nagroda])
SpawadzNagrode(id, nagroda, 9);
}
return;
}
if(nagroda == 2 || nagroda == 4 || nagroda == 6) //Care Package, Predator Missle, Emergency Airdrop
{
new maksa = max(max(ile_nagrod[id][2], ile_nagrod[id][4]), ile_nagrod[id][6]);
if(ile_nagrod[id][2] >= 50 && ile_nagrod[id][4] >= 50 && ile_nagrod[id][6] >= 50/*25*/ && ((maksa - 50/*(maksa == ile_nagrod[id][6]? 25: 50)*/) <= 1000))
{
if(maksa == ile_nagrod[id][nagroda])
SpawadzNagrode(id, nagroda, 11);
}
return;
}
}
SpawadzNagrode(id, nagroda, ktore=0, wspolczynnik=5, mnoznik=25)
{
ZapiszDaneStreak(id, nagroda);
new liczba;
for(new i=0; i<3; i++)
{
if(!ktore)
{
//if(nagroda != 6)
liczba = (i==0? wspolczynnik: (i*mnoznik));
//else
// liczba = (i==0? wspolczynnik: (i==1? (mnoznik/2.5): mnoznik);
}
else
liczba = (i==2? 1000: ((i+1)*50))+/**/50;
if(ile_nagrod[id][nagroda] == liczba)
{
if(ktore)
{
liczba -= 50;
nagroda = ktore;
}
new szNazwa[256], szLiczba[11];
copy(szNazwa, 255, nazwy_nagrody[nagroda]);
replace(szNazwa, 255, "%", rzymskie_liczby[i]);
num_to_str(liczba, szLiczba, 10);
replace(szNazwa, 255, "&", szLiczba);
set_hudmessage(255, 255, 255, -1.0, 0.25, 0, 6.0, 7.0);
ShowSyncHudMsg(id, SyncHudObj, "%s^n+%iXP", szNazwa, za_nagrode[nagroda][i]);
replace(szNazwa, 255, "^n", " (");
client_print(0, 3, "[KS] Gracz %s dostal +%iXP za ukonczenie wyzwania %s)", nazwa_gracza[id], za_nagrode[nagroda][i], szNazwa);
client_cmd(id, "spk mw/challenge_completed.wav");
#if defined COD_NOWY
cod_set_user_xp(id, cod_get_user_xp(id)+za_nagrode[nagroda][i]);
#else
new szNick[32];
get_user_name(id, szNick, 31);
server_cmd("cod_addexp ^"%s^" %d", szNick, za_nagrode[nagroda][i]);
#endif
break;
}
}
}
public ZapiszDaneStreak(id, nagroda)
{
#if defined USING_SQL
new szTemp[256];
formatex(szTemp, 255, "UPDATE `cod_ks` SET `%i` = (`%i` + 1) WHERE `name` = '%s'", nagroda, nagroda, nazwa_gracza[id]);
SQL_ThreadQuery(g_sql, "handleInsert", szTemp);
#else
new vaultkey[37],vaultdata[512];
formatex(vaultdata, 511,"%i#%i#%i#%i#%i#%i#%i#%i#%i", ile_nagrod[id][0], ile_nagrod[id][1], ile_nagrod[id][2], ile_nagrod[id][3], ile_nagrod[id][4], ile_nagrod[id][5], ile_nagrod[id][6], ile_nagrod[id][7], ile_nagrod[id][8]);
formatex(vaultkey, 36,"%s-ks", nazwa_gracza[id]);
nvault_set(g_vault, vaultkey, vaultdata);
#endif
}
public WczytajDaneStreak(id)
{
#if defined USING_SQL
new data[1], szTemp[512];
data[0] = id;
formatex(szTemp, 511, "SELECT * FROM `cod_ks` WHERE `name` = '%s'", nazwa_gracza[id]);
SQL_ThreadQuery(g_sql, "handleSelect", szTemp, data, 1);
#else
new vaultkey[37], vaultdata[512];
formatex(vaultkey, 36,"%s-ks", nazwa_gracza[id]);
nvault_get(g_vault, vaultkey, vaultdata, 511);
replace_all(vaultdata, 511, "#", " ");
new danegracza[9][32];
parse(vaultdata, danegracza[0], 31, danegracza[1], 31, danegracza[2], 31, danegracza[3], 31, danegracza[4], 31, danegracza[5], 31, danegracza[6], 31, danegracza[7], 31, danegracza[8], 31);
ile_nagrod[id][0] = str_to_num(danegracza[0]);
ile_nagrod[id][1] = str_to_num(danegracza[1]);
ile_nagrod[id][2] = str_to_num(danegracza[2]);
ile_nagrod[id][3] = str_to_num(danegracza[3]);
ile_nagrod[id][4] = str_to_num(danegracza[4]);
ile_nagrod[id][5] = str_to_num(danegracza[5]);
ile_nagrod[id][6] = str_to_num(danegracza[6]);
ile_nagrod[id][7] = str_to_num(danegracza[7]);
ile_nagrod[id][8] = str_to_num(danegracza[8]);
#endif
}
#if defined USING_SQL
public handleSelect(failstate, Handle:query, error[], errnum, data[], size)
{
if(failstate != TQUERY_SUCCESS){
log_amx("[KS] MySQL (handleSelect) error: %s",error);
return;
}
new id = data[0];
if(SQL_NumRows(query))
{
for(new i=0; i<9; i++)
{
ile_nagrod[id][i] = ile_nagrod[id][i]+SQL_ReadResult(query, i+1); //wrazie czego
}
}
else
{
new szTemp[256]
formatex(szTemp, 255, "INSERT INTO `cod_ks` (name) VALUES ('%s');", nazwa_gracza[id]);
SQL_ThreadQuery(g_sql, "handleInsert", szTemp);
}
}
public handleInsert(failstate, Handle:query, error[], errnum, data[], size){
if(failstate != TQUERY_SUCCESS){
log_amx("[KS] MySQL (handleInsert) error: %s", error);
return;
}
}
#endif
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{ rtf1 ansi deff0{ fonttbl{ f0 fnil Tahoma;}}n viewkind4 uc1 pard lang1045 f0 fs16 n par }
*/
Dodanych wklejek: 13379
Powered By (Pav32) Pastebin © 2011


Dodatki SourceMod


