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 19qh102lar8vy dodana przez corel, 04.11.2013 17:45
tatasrfsdfsdf2323
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.
/* Script generated by Pawn Studio */
#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#include <nvault>
#define PLUGIN "[CoD] Magazyn na perki"
#define AUTHOR "Goliath"
#define VERSION "2.2"
/*************************************
* KONFIGURACJA PLUGINU *
**************************************/
/********************************
Zmień 32 na ilość slotów na twoim serwerze
*********************************/
#define MAX_PLAYERS 17
/********************************
Jeżeli używasz pluginu na wytrzymałość perków, zmień poniższą linijkę na:
#define WYTRZYMALOSC
Jeżeli nie, zmień ją na:
//define WYTRZYMALOSC
*********************************/
#define WYTRZYMALOSC
/********************************
Jeżeli chcesz, aby perki w magazynie przechodziły na następną mapę, zmień poniższą linijkę na:
#define ZAPISUJ
Jeżeli nie, zmień ją na:
//define ZAPISUJ
*********************************/
#define ZAPISUJ
/********************************
Tutaj zmień 3 na ilość slotów, jaką chcesz mieć w magazynie.
*********************************/
#define ILOSC_SLOTOW 3
/* UWAGA! *
* Po jakiejkolwiek zmianie w konfiguracji *
* musisz ponownie skompilować plugin! *
*/
/*************************************
* KONIEC KONFIGURACJI *
**************************************/
native cod_get_user_perk(id, &wartosc=0);
native cod_get_perk_name(perk, Return[], len);
native cod_set_user_perk(id, perk, wartosc=-1, pokaz_info=1);
native cod_get_perkid(const perk[]);
#if defined WYTRZYMALOSC
native cod_set_perk_durability(id, set);
native cod_get_perk_durability(id);
new cvar_max_wytrzymalosc,
Array:aWytrzymalosc,
max_wytrzymalosc;
#endif
new Array:aPerki, Array:aWartosc;
new Uzyto[MAX_PLAYERS+1];
#if defined ZAPISUJ
new cvar_typ_zapisu,
typ_zapisu;
new vault;
#endif
#if ILOSC_SLOTOW <= 0
#error Podano błędną ilość slotów w magazynie!
#endif
#if MAX_PLAYERS <= 0 || MAX_PLAYERS > 32
#error Podano błędną ilość slotów na serwerze!
#endif
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
aPerki = ArrayCreate();
aWartosc = ArrayCreate();
#if defined WYTRZYMALOSC
aWytrzymalosc = ArrayCreate();
cvar_max_wytrzymalosc = get_cvar_pointer("cod_maxperkdurability");
max_wytrzymalosc = get_pcvar_num(cvar_max_wytrzymalosc);
#endif
#if defined ZAPISUJ
cvar_typ_zapisu = get_cvar_pointer("cod_savetype");
typ_zapisu = get_pcvar_num(cvar_typ_zapisu);
vault = nvault_open("CodMagazyn");
#endif
register_clcmd("say /magazyn", "Magazyn");
register_event("HLTV", "NowaRunda", "a", "1=0", "2=0");
for(new i=0; i<=ILOSC_SLOTOW; i++)
{
for(new id=0; id<=MAX_PLAYERS; id++)
{
ArrayPushCell(aPerki, 0);
ArrayPushCell(aWartosc, -1);
#if defined WYTRZYMALOSC
ArrayPushCell(aWytrzymalosc, 0);
#endif
}
}
}
public Magazyn(id)
{
if(!is_user_alive(id))
return 0;
#if defined ZAPISUJ
Wczytaj(id);
#endif
new menu = menu_create("yMagazyn na perki dby rGoliath", "Magazyn_Handler");
new text[33], perk;
for(new i=1; i<=ILOSC_SLOTOW; i++)
{
perk = ArrayGetCell(aPerki, id*ILOSC_SLOTOW+i)
if(!perk)
formatex(text, 32, "Pusty slot");
else
{
#if defined WYTRZYMALOSC
cod_get_perk_name(perk, text, 32);
format(text, 32, "%s %i/%i", text, ArrayGetCell(aWytrzymalosc, id*ILOSC_SLOTOW+i), max_wytrzymalosc);
#else
cod_get_perk_name(perk, text, 32);
#endif
}
menu_additem(menu, text);
}
menu_setprop(menu, MPROP_NEXTNAME, "Dalej");
menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
menu_setprop(menu, MPROP_BACKNAME, "Wstecz");
menu_display(id, menu);
return 1;
}
public Magazyn_Handler(id, menu, item)
{
if(item++ == MENU_EXIT)
return 0;
new perk = ArrayGetCell(aPerki, id*ILOSC_SLOTOW+item), wartosc = ArrayGetCell(aWartosc, id*ILOSC_SLOTOW+item);
new wartosc_gracza, perk_gracza = cod_get_user_perk(id, wartosc_gracza);
#if defined WYTRZYMALOSC
new wytrzymalosc = ArrayGetCell(aWytrzymalosc, id*ILOSC_SLOTOW+item);
new wytrzymalosc_gracza = cod_get_perk_durability(id);
#endif
if(perk)
{
if(Uzyto[id] & (1<<item))
{
client_print(id, print_center, "Nie mozesz wyjac perku, ktory dopiero wlozyles!");
Magazyn(id);
return 0;
}
#if defined WYTRZYMALOSC
if(perk_gracza)
{
ArraySetCell(aPerki, id*ILOSC_SLOTOW+item, perk_gracza);
ArraySetCell(aWartosc, id*ILOSC_SLOTOW+item, wartosc_gracza);
ArraySetCell(aWytrzymalosc, id*ILOSC_SLOTOW+item, wytrzymalosc_gracza);
cod_set_user_perk(id, perk, wartosc, 0);
cod_set_perk_durability(id, wytrzymalosc);
Uzyto[id] |= (1<<item);
}
else
{
cod_set_user_perk(id, perk, wartosc, 0);
cod_set_perk_durability(id, wytrzymalosc);
ArraySetCell(aPerki, id*ILOSC_SLOTOW+item, 0);
ArraySetCell(aWartosc, id*ILOSC_SLOTOW+item, 0);
ArraySetCell(aWytrzymalosc, id*ILOSC_SLOTOW+item, 0);
}
#else
if(perk_gracza)
{
ArraySetCell(aPerki, id*ILOSC_SLOTOW+item, perk_gracza);
ArraySetCell(aWartosc, id*ILOSC_SLOTOW+item, wartosc_gracza);
cod_set_user_perk(id, perk, wartosc, 0);
Uzyto[id] |= (1<<item);
}
else
{
cod_set_user_perk(id, perk, wartosc, 0);
ArraySetCell(aPerki, id*ILOSC_SLOTOW+item, 0);
ArraySetCell(aWartosc, id*ILOSC_SLOTOW+item, 0);
}
#endif
}
else
{
#if defined WYTRZYMALOSC
if(!perk_gracza)
{
client_print(id, print_center, "Nie masz zadnego perku!");
Magazyn(id);
return 0;
}
else
{
ArraySetCell(aPerki, id*ILOSC_SLOTOW+item, perk_gracza);
ArraySetCell(aWartosc, id*ILOSC_SLOTOW+item, wartosc_gracza);
ArraySetCell(aWytrzymalosc, id*ILOSC_SLOTOW+item, wytrzymalosc_gracza);
cod_set_user_perk(id, 0, 0, 0);
cod_set_perk_durability(id, 0);
Uzyto[id] |= (1<<item);
}
#else
if(!perk_gracza)
{
client_print(id, print_center, "Nie masz zadnego perku!");
Magazyn(id);
return 0;
}
else
{
ArraySetCell(aPerki, id*ILOSC_SLOTOW+item, perk_gracza);
ArraySetCell(aWartosc, id*ILOSC_SLOTOW+item, wartosc_gracza);
cod_set_user_perk(id, 0, 0, 0);
Uzyto[id] |= (1<<item);
}
#endif
}
#if defined ZAPISUJ
Zapisz(id);
#endif
Magazyn(id);
return 0;
}
#if defined ZAPISUJ && !defined WYTRZYMALOSC
public Zapisz(id)
{
if(!is_user_connected(id))
return 0;
new key[40], value[513], identyfikator[33], val_len = 0;
switch(typ_zapisu)
{
case 1: get_user_name(id, identyfikator, charsmax(identyfikator));
case 2: get_user_authid(id, identyfikator, charsmax(identyfikator));
case 3: get_user_ip(id, identyfikator, charsmax(identyfikator));
}
formatex(key, charsmax(key), "%s-%i", identyfikator, typ_zapisu);
new text[33], perk, wartosc;
for(new i=1; i<=ILOSC_SLOTOW; i++)
{
perk = ArrayGetCell(aPerki, id*ILOSC_SLOTOW+i);
wartosc = ArrayGetCell(aWartosc, id*ILOSC_SLOTOW+i);
if(perk)
{
cod_get_perk_name(perk, text, charsmax(text));
replace_all(text, charsmax(text), " ", "_");
val_len += formatex(value[val_len], charsmax(value)-val_len, "%s#%i#", text, wartosc);
}
else
val_len += formatex(value[val_len], charsmax(value)-val_len, "Brak#-1#");
}
nvault_set(vault, key, value);
return 0;
}
public Wczytaj(id)
{
if(!is_user_connected(id))
return 0;
new key[40], identyfikator[33];
switch(typ_zapisu)
{
case 1: get_user_name(id, identyfikator, charsmax(identyfikator));
case 2: get_user_authid(id, identyfikator, charsmax(identyfikator));
case 3: get_user_ip(id, identyfikator, charsmax(identyfikator));
}
formatex(key, charsmax(key), "%s-%i", identyfikator, typ_zapisu);
new text[2*ILOSC_SLOTOW+2][33], value[513];
nvault_get(vault, key, value, 512);
explode(value, '#', text, 2*ILOSC_SLOTOW+1, 32);
for(new i=0; i<ILOSC_SLOTOW; i++)
{
new perk, wartosc;
replace_all(text[2*i], 32, "_", " ");
perk = cod_get_perkid(text[2*i]);
wartosc = str_to_num(text[2*i+1]);
if(perk)
{
ArraySetCell(aPerki, id*ILOSC_SLOTOW+i+1, perk);
ArraySetCell(aWartosc, id*ILOSC_SLOTOW+i+1, wartosc);
}
else
{
ArraySetCell(aPerki, id*ILOSC_SLOTOW+i+1, 0);
ArraySetCell(aWartosc, id*ILOSC_SLOTOW+i+1, -1);
}
}
return 0;
}
#endif
#if defined ZAPISUJ && defined WYTRZYMALOSC
public Zapisz(id)
{
if(!is_user_connected(id))
return 0;
new key[40], value[513], identyfikator[33], val_len = 0;
switch(typ_zapisu)
{
case 1: get_user_name(id, identyfikator, charsmax(identyfikator));
case 2: get_user_authid(id, identyfikator, charsmax(identyfikator));
case 3: get_user_ip(id, identyfikator, charsmax(identyfikator));
}
formatex(key, charsmax(key), "%s-%i", identyfikator, typ_zapisu);
new text[33], perk, wartosc, wytrzymalosc;
for(new i=1; i<=ILOSC_SLOTOW; i++)
{
perk = ArrayGetCell(aPerki, id*ILOSC_SLOTOW+i);
wartosc = ArrayGetCell(aWartosc, id*ILOSC_SLOTOW+i);
wytrzymalosc = ArrayGetCell(aWytrzymalosc, id*ILOSC_SLOTOW+i);
if(perk)
{
cod_get_perk_name(perk, text, charsmax(text));
replace_all(text, charsmax(text), " ", "_");
val_len += formatex(value[val_len], charsmax(value)-val_len, "%s#%i#%i#", text, wartosc, wytrzymalosc);
}
else
val_len += formatex(value[val_len], charsmax(value)-val_len, "Brak#-1#0#");
}
nvault_set(vault, key, value);
return 0;
}
public Wczytaj(id)
{
if(!is_user_connected(id))
return 0;
new key[40], identyfikator[33];
switch(typ_zapisu)
{
case 1: get_user_name(id, identyfikator, charsmax(identyfikator));
case 2: get_user_authid(id, identyfikator, charsmax(identyfikator));
case 3: get_user_ip(id, identyfikator, charsmax(identyfikator));
}
formatex(key, charsmax(key), "%s-%i", identyfikator, typ_zapisu);
new text[3*ILOSC_SLOTOW+2][33], value[513];
nvault_get(vault, key, value, 512);
explode(value, '#', text, 3*ILOSC_SLOTOW+1, 32);
new perk, wartosc, wytrzymalosc;
for(new i=0; i<ILOSC_SLOTOW; i++)
{
replace_all(text[3*i], 32, "_", " ");
perk = cod_get_perkid(text[3*i]);
wartosc = str_to_num(text[3*i+1]);
wytrzymalosc = str_to_num(text[3*i+2]);
if(perk)
{
ArraySetCell(aPerki, id*ILOSC_SLOTOW+i+1, perk);
ArraySetCell(aWartosc, id*ILOSC_SLOTOW+i+1, wartosc);
ArraySetCell(aWytrzymalosc, id*ILOSC_SLOTOW+i+1, wytrzymalosc);
}
else
{
ArraySetCell(aPerki, id*ILOSC_SLOTOW+i+1, 0);
ArraySetCell(aWartosc, id*ILOSC_SLOTOW+i+1, -1);
ArraySetCell(aWytrzymalosc, id*ILOSC_SLOTOW+i+1, 0);
}
}
return 0;
}
#endif
public NowaRunda()
{
for(new i=0; i<=MAX_PLAYERS; i++)
Uzyto[i] = 0;
}
public client_authorized(id)
{
Uzyto[id] = 0;
for(new i=1; i<=ILOSC_SLOTOW; i++)
{
ArraySetCell(aPerki, id*ILOSC_SLOTOW+i, 0);
ArraySetCell(aWartosc, id*ILOSC_SLOTOW+1, -1);
#if defined WYTRZYMALOSC
ArraySetCell(aWytrzymalosc, id*ILOSC_SLOTOW+1, 0);
#endif
}
}
//Stock by DarkGL
stock explode(const string[],const character,output[][],const maxs,const maxlen){
new iDo = 0;
new len = strlen(string);
new oLen = 0;
do
{
oLen += (1+copyc(output[iDo++],maxlen,string[oLen],character))
}
while(oLen < len && iDo < maxs)
}
Dodanych wklejek: 13897
Powered By (Pav32) Pastebin © 2011


Dodatki SourceMod


