Advertisement
Guest User

Untitled

a guest
Jun 11th, 2014
893
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.81 KB | None | 0 0
  1. /* Plugin generated by AMXX-Studio
  2. * Thanks for "TrzyRazyZero"
  3. */
  4.  
  5. #include <amxmodx>
  6. #include <amxmisc>
  7. #include <sqlx>
  8. #include <colorchat>
  9. #include <nvault>
  10. //#include <jailbreak>
  11. #include < hamsandwich >
  12. #include <engine>
  13. #include <cstrike>
  14. #define PLUGIN "[SZLUGI] System"
  15. #define VERSION "1.1"
  16. #define AUTHOR "Eryk172"
  17.  
  18. new const prefix[] = "Szlugi"
  19.  
  20. new pPcvarDBHost;
  21. new pPcvarDBUser;
  22. new pPcvarDBPassword;
  23. new pPcvarDBBase;
  24.  
  25. new Handle:g_SqlTuple;
  26. new g_Cache[512];
  27. new bool:SQLenabled;
  28. new bool:gIntermission;
  29. new gTablesLoaded[33];
  30. new gSaveKey[33][32];
  31.  
  32.  
  33. new ilosc_jbpack[33];
  34.  
  35. new jb_packi_nv
  36. new msgtext;
  37. public plugin_init() {
  38. register_plugin(PLUGIN, VERSION, AUTHOR)
  39.  
  40. //--//--//--//--//--//--//--//--//--//--//--//--//--//--//
  41. pPcvarDBHost = register_cvar("db_host", "sql.pukawka.pl"); //ip bazy danych
  42. pPcvarDBUser = register_cvar("db_user", "331530"); //nazwa uzytkownika
  43. pPcvarDBPassword = register_cvar("db_pass", "cRlIrT87PoSAnbD"); //haslo do bazy danych
  44. pPcvarDBBase = register_cvar("db_database", "331530_szlugi"); //nazwa bazy danych
  45. //--//--//--//--//--//--//--//--//--//--//--//--//--//--//
  46.  
  47. register_cvar("jb_ct", "1" ); // Ilosc przyznawanych Szlugow za zabicie.
  48. register_cvar("jb_tt", "1" ); // Ilosc przyznawanych Szlugow za zabicie Wieznia.
  49. register_cvar("jb_tt_hs", "1" ); // Ilosc przyznawanych Szlugow za zabicie Wieznia HS.
  50. register_cvar("jb_ct_vip", "2" ); // Ilosc przyznawanych Szlugow za zabicie. ( VIP )
  51. register_cvar("jb_hs", "1" ); // Ilosc dodatkowych szlugow za headShota.
  52. register_cvar("jb_hs_vip", "2" ); // Ilosc dodatkowych szlugow za headShot. ( VIP )
  53. register_cvar("jb_zapis", "1"); //1 - SQL, 2 - nVault
  54. register_cvar("jb_hud", "1"); //0 - off, 1 - status, 2 - hud
  55.  
  56. if(get_cvar_num("jb_zapis") == 2) {
  57. jb_packi_nv = nvault_open("jb_packi")
  58. if(jb_packi_nv == INVALID_HANDLE)
  59. set_fail_state("Nie moge otworzyc pliku");
  60. }
  61.  
  62. register_event("DeathMsg", "DeathMsg", "a")
  63. register_event("ResetHUD","HUD", "b");
  64.  
  65. register_clcmd("say /szlugi", "MenuSzlugi")
  66. register_clcmd("say_team /szlugi", "MenuSzlugi")
  67.  
  68. register_concmd("jb_packgive", "cmd_give", ADMIN_IMMUNITY, "<nazwa> <ilosc>");
  69. register_concmd("szlugi_give", "cmd_give", ADMIN_IMMUNITY, "<nazwa> <ilosc>");
  70.  
  71. msgtext = get_user_msgid("StatusText");
  72.  
  73. set_task(6.0, "HUD",0,"",0,"b");
  74.  
  75. }
  76.  
  77. public HUD(id) {
  78. for (new id=0; id < 32; id++) {
  79.  
  80. if (!is_user_connected(id))
  81. continue
  82.  
  83. if (get_user_team(id) == 2)
  84. continue
  85.  
  86. if(is_user_alive(id)){
  87. new HUD[128];
  88.  
  89. format(HUD, 127,"SZLUGI: %i",ilosc_jbpack[id]);
  90. if(get_cvar_num("jb_hud") == 1){
  91. message_begin(MSG_ONE_UNRELIABLE, msgtext, {0,0,0}, id);
  92. write_byte(0);
  93. write_string(HUD);
  94. message_end();
  95. return PLUGIN_CONTINUE;
  96. }
  97. else if(get_cvar_num("jb_hud") == 2)
  98. {
  99. set_hudmessage(0, 255, 0, 0.02, 0.63, 0, 0.01, 0.8, _, _, 3)
  100. show_hudmessage(id, "%s",HUD)
  101. }
  102. }
  103. }
  104. return PLUGIN_CONTINUE;
  105. }
  106. /*public client_PreThink(id){
  107. if(!is_user_alive(id)){
  108. return PLUGIN_CONTINUE;
  109. }
  110. if(is_user_alive(id) && !is_user_bot(id) && get_cvar_num("jb_hud") > 0){
  111. HUD(id);
  112. }
  113. return PLUGIN_HANDLED;
  114. }*/
  115. public DeathMsg( )
  116. {
  117. new Killer = read_data( 1 );
  118. new Victim = read_data( 2 );
  119. new headshot = read_data(3);
  120. new flagi = get_user_flags( Killer ) & ADMIN_LEVEL_H || ADMIN_LEVEL_G;
  121. if(Killer == Victim)
  122. {
  123. return PLUGIN_HANDLED
  124. }
  125. if ( cs_get_user_team( Killer ) == CS_TEAM_T && cs_get_user_team( Victim ) == CS_TEAM_CT && flagi )
  126. {
  127. ColorChat(Killer, GREEN, "[%s] ^x01Za zabicie straznika otrzymujesz ^x04+%i Szlugow (VIP)",prefix, get_cvar_num("jb_ct_vip"));
  128. ilosc_jbpack[Killer] += get_cvar_num("jb_ct_vip")
  129. }
  130. if ( cs_get_user_team( Killer ) == CS_TEAM_T && cs_get_user_team( Victim ) == CS_TEAM_CT && flagi && headshot )
  131. {
  132. ColorChat(Killer, GREEN, "[%s] ^x01Za zabicie HeadShotem otrzymujesz dodatkowo ^x04+%i Szlugow (VIP)",prefix, get_cvar_num("jb_hs_vip"));
  133. ilosc_jbpack[Killer] += get_cvar_num("jb_hs_vip")
  134. }
  135. if ( cs_get_user_team( Killer ) == CS_TEAM_T && cs_get_user_team( Victim ) == CS_TEAM_CT && !is_user_admin( Killer ) && headshot)
  136. {
  137. ColorChat( Killer, GREEN, "[%s] ^x01Otrzymales dodatkowo ^x04%d Szlugi ^x01za zabicie headshotem.",prefix, get_cvar_num("jb_hs") );
  138. ilosc_jbpack[Killer] += get_cvar_num("jb_hs")
  139. }
  140. if ( cs_get_user_team( Killer ) == CS_TEAM_T && cs_get_user_team( Victim ) == CS_TEAM_CT && !is_user_admin( Killer ))
  141. {
  142. ColorChat( Killer, GREEN, "[%s] ^x01Otrzymales ^x04%d Szlugi ^x01za zabicie straznika.",prefix, get_cvar_num("jb_ct") );
  143. ilosc_jbpack[Killer] += get_cvar_num("jb_ct")
  144. }
  145. if ( cs_get_user_team( Killer ) == CS_TEAM_T && cs_get_user_team( Victim ) == CS_TEAM_T )
  146. {
  147. ColorChat( Killer, GREEN, "[%s] ^x01Otrzymales ^x04%d Szlugi ^x01za zabicie Wieznia",prefix, get_cvar_num("jb_tt") );
  148.  
  149. ilosc_jbpack[Killer] += get_cvar_num("jb_tt")
  150. }
  151. if ( cs_get_user_team( Killer ) == CS_TEAM_T && cs_get_user_team( Victim ) == CS_TEAM_T && headshot)
  152. {
  153. ColorChat( Killer, GREEN, "[%s] ^x01Otrzymales dodatkowe ^x04%d Szlugow ^x01za zabicie Wieznia HeadShotem!",prefix, get_cvar_num("jb_tt_hs") );
  154.  
  155. ilosc_jbpack[Killer] += get_cvar_num("jb_tt_hs")
  156. }
  157. if(get_cvar_num("jb_zapis") == 1) {
  158. sql_save(Killer)
  159. }
  160. else
  161. {
  162. zapisz_jbpack(Killer)
  163. }
  164. return PLUGIN_HANDLED;
  165. }
  166.  
  167.  
  168. // MENU
  169.  
  170. public MenuSzlugi(id)
  171. {
  172. new menu,formats[64];
  173. formatex(formats,charsmax(formats),"\wMenu Szlugow^n\wIlosc Szlugow: \y%i",ilosc_jbpack[id])
  174. menu = menu_create(formats,"handle_szlugi");
  175.  
  176. menu_additem(menu,"Szlugi - Informacje","0")
  177. menu_additem(menu,"Wyslij Szlugi","1")
  178. menu_additem(menu,"Postaw Szlugi \r(hazard)","2")
  179. menu_additem(menu,"Kup Szlugi za Dolary","3")
  180. menu_additem(menu,"Quiz - \yOdpowiedz i Wygraj","4")
  181.  
  182. menu_setprop(menu,MPROP_EXIT,MEXIT_ALL)
  183. menu_setprop(menu,MPROP_EXITNAME,"Wyjscie")
  184. menu_setprop(menu,MPROP_NEXTNAME,"Dalej")
  185. menu_setprop(menu,MPROP_BACKNAME,"Wroc")
  186. menu_display(id,menu,0)
  187. return PLUGIN_HANDLED
  188. }
  189.  
  190. public handle_szlugi(id, menu, item)
  191. {
  192. switch(item)
  193. {
  194. case 0: MenuInformacje(id);
  195. case 1: WyslijSzlugi(id);
  196. case 2: PostawSzlugi(id);
  197. case 3: KupSzlugi(id);
  198. case 4: client_cmd(id, "say /quiz");
  199. }
  200. return PLUGIN_CONTINUE;
  201. }
  202.  
  203. ////----//////
  204.  
  205. public cmd_give(id, level, cid)
  206. {
  207. if(!cmd_access(id, level, cid, 3))
  208. return PLUGIN_CONTINUE;
  209.  
  210. new arg[33];
  211. read_argv(1, arg, 32);
  212. new target = cmd_target(id, arg, CMDTARGET_ALLOW_SELF);
  213.  
  214. if(!is_user_connected(target))
  215. return PLUGIN_CONTINUE;
  216.  
  217. read_argv(2, arg, 32);
  218. new ilejb = str_to_num(arg);
  219.  
  220. ilosc_jbpack[target] = ilosc_jbpack[target] + ilejb;
  221.  
  222. return PLUGIN_CONTINUE;
  223. }
  224.  
  225. public plugin_natives()
  226. {
  227. register_native("get_user_jbpack","return_jbpack", 1)
  228. register_native("set_user_jbpack","set_jbpack", 1)
  229. }
  230.  
  231. public return_jbpack(id)
  232. {
  233. return ilosc_jbpack[id];
  234. }
  235. public set_jbpack(id, amount)
  236. {
  237. ilosc_jbpack[id] = amount
  238. }
  239.  
  240.  
  241. //////////////
  242. public zaladuj_jbpack(id)
  243. {
  244. new name[48]
  245. get_user_name(id,name,47)
  246. new vaultkey[64],vaultdata[128]
  247. formatex(vaultkey,63,"%s-jbpack",name)
  248.  
  249. if(nvault_get(jb_packi_nv,vaultkey,vaultdata,127)) {
  250. new jb_packii[16];
  251. parse(vaultdata, jb_packii, 15)
  252.  
  253. ilosc_jbpack[id]=str_to_num(jb_packii)
  254. }
  255.  
  256. return PLUGIN_CONTINUE
  257. }
  258.  
  259. public zapisz_jbpack(id) {
  260. new name[48]
  261. get_user_name(id,name,47)
  262. new vaultkey[64],vaultdata[128]
  263. formatex(vaultkey,63,"%s-jbpack",name)
  264. formatex(vaultdata,127,"%d", ilosc_jbpack[id])
  265. nvault_set(jb_packi_nv,vaultkey,vaultdata)
  266.  
  267. return PLUGIN_CONTINUE
  268. }
  269.  
  270. public plugin_cfg(){
  271. SQLenabled = false;
  272. sql_init();
  273. }
  274. public plugin_end()
  275. {
  276. if ( SQLenabled )
  277. {
  278. SQL_FreeHandle(g_SqlTuple);
  279. }
  280. }
  281. public Message_Intermission()
  282. {
  283. gIntermission = true;
  284. }
  285. public client_putinserver(id){
  286. gTablesLoaded[id] = 0;
  287. if(get_cvar_num("jb_zapis") == 1) {
  288. get_save_key(id);
  289. }
  290. else
  291. {
  292. zaladuj_jbpack(id);
  293. }
  294. }
  295. public client_disconnect(id)
  296. {
  297. if(get_cvar_num("jb_zapis") == 1) {
  298. sql_save(id)
  299. }
  300. else
  301. {
  302. zapisz_jbpack(id)
  303. }
  304. }
  305. public sql_init()
  306. {
  307. new szHost[32], szUser[32], szPass[32], szDB[32];
  308. get_pcvar_string(pPcvarDBHost, szHost, 31);
  309. get_pcvar_string(pPcvarDBUser, szUser, 31);
  310. get_pcvar_string(pPcvarDBPassword, szPass, 31);
  311. get_pcvar_string(pPcvarDBBase, szDB, 31);
  312.  
  313. g_SqlTuple = SQL_MakeDbTuple(szHost, szUser, szPass, szDB);
  314.  
  315. SQL_ThreadQuery(g_SqlTuple, "TableHandle", "CREATE TABLE IF NOT EXISTS szlugi (nazwa_gracza VARCHAR(35), ilosc_jbpack INT(11), PRIMARY KEY (nazwa_gracza))");
  316. }
  317. public get_save_key(id)
  318. {
  319. get_user_name(id, gSaveKey[id], charsmax(gSaveKey[]));
  320. sql_load(id);
  321. }
  322. public sql_load(id)
  323. {
  324. new index[1];
  325. index[0] = id;
  326.  
  327. new tempSaveKey[63];
  328. copy(tempSaveKey, charsmax(tempSaveKey), gSaveKey[id]);
  329. replace_all(tempSaveKey, charsmax(tempSaveKey), "'", "\'" );
  330.  
  331. formatex(g_Cache, charsmax(g_Cache), "SELECT ilosc_jbpack FROM szlugi WHERE nazwa_gracza='%s'", tempSaveKey);
  332. SQL_ThreadQuery(g_SqlTuple, "SelectHandle", g_Cache, index, 1);
  333. }
  334. public TableHandle(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
  335. {
  336. if ( FailState )
  337. {
  338. if ( FailState == TQUERY_CONNECT_FAILED )
  339. {
  340. log_amx("Table - Could not connect to SQL database. [%d] %s", Errcode, Error);
  341. }
  342. else if ( FailState == TQUERY_QUERY_FAILED )
  343. {
  344. log_amx("Table Query failed. [%d] %s", Errcode, Error);
  345. }
  346.  
  347. SQLenabled = false;
  348.  
  349. return;
  350. }
  351.  
  352. SQLenabled = true;
  353. }
  354.  
  355. public QueryHandle(FailState, Handle:Query, Error[], Errcode,Data[], DataSize)
  356. {
  357. if ( FailState )
  358. {
  359. if ( FailState == TQUERY_CONNECT_FAILED )
  360. {
  361. log_amx("Save - Could not connect to SQL database. [%d] %s", Errcode, Error);
  362. }
  363. else if ( FailState == TQUERY_QUERY_FAILED )
  364. {
  365. log_amx("Save Query failed. [%d] %s", Errcode, Error);
  366. }
  367.  
  368. return;
  369. }
  370. }
  371.  
  372. public SelectHandle(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
  373. {
  374. if ( FailState )
  375. {
  376. if ( FailState == TQUERY_CONNECT_FAILED )
  377. {
  378. log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
  379. }
  380. else if ( FailState == TQUERY_QUERY_FAILED )
  381. {
  382. log_amx("Load Query failed. [%d] %s", Errcode, Error);
  383. }
  384.  
  385. return;
  386. }
  387.  
  388. new id = Data[0];
  389.  
  390. if ( !SQL_NumResults(Query) )
  391. {
  392. new tempSaveKey[63];
  393. copy(tempSaveKey, charsmax(tempSaveKey), gSaveKey[id]);
  394. replace_all(tempSaveKey, charsmax(tempSaveKey), "'", "\'" );
  395.  
  396. formatex(g_Cache, charsmax(g_Cache), "INSERT INTO szlugi VALUES('%s', '0')", tempSaveKey);
  397. SQL_ThreadQuery(g_SqlTuple, "QueryHandle", g_Cache);
  398. }
  399. else
  400. {
  401. ilosc_jbpack[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"ilosc_jbpack"));
  402. }
  403. gTablesLoaded[id]++;
  404. }
  405.  
  406. public sql_save(id)
  407. {
  408. if ( gTablesLoaded[id] == 1 )
  409. {
  410. if ( gIntermission )
  411. {
  412. sql_save_nonthreaded(id);
  413. return;
  414. }
  415. new tempSaveKey[63];
  416. copy(tempSaveKey, charsmax(tempSaveKey), gSaveKey[id]);
  417. replace_all(tempSaveKey, charsmax(tempSaveKey), "'", "\'" );
  418.  
  419. formatex(g_Cache, charsmax(g_Cache), "UPDATE szlugi SET ilosc_jbpack=%i WHERE nazwa_gracza=^"%s^"", ilosc_jbpack[id], tempSaveKey);
  420. SQL_ThreadQuery(g_SqlTuple, "QueryHandle", g_Cache);
  421. }
  422. }
  423.  
  424. sql_save_nonthreaded(id)
  425. {
  426. new Errcode, Error[128], Handle:SqlConnection;
  427.  
  428. SqlConnection = SQL_Connect(g_SqlTuple, Errcode, Error, charsmax(Error));
  429.  
  430. if ( !SqlConnection )
  431. {
  432. log_amx("Save - Could not connect to SQL database. [%d] %s", Errcode, Error);
  433. SQL_FreeHandle(SqlConnection);
  434. return;
  435. }
  436.  
  437. new tempSaveKey[63];
  438. copy(tempSaveKey, charsmax(tempSaveKey), gSaveKey[id]);
  439. replace_all(tempSaveKey, charsmax(tempSaveKey), "'", "\'" );
  440.  
  441. new Handle:Query;
  442. Query = SQL_PrepareQuery(SqlConnection, "UPDATE szlugi SET ilosc_jbpack=%i WHERE nazwa_gracza=^"%s^"", ilosc_jbpack[id], tempSaveKey);
  443. if ( !SQL_Execute(Query) )
  444. {
  445. Errcode = SQL_QueryError(Query, Error, charsmax(Error));
  446. log_amx("Save Query failed. [%d] %s", Errcode, Error);
  447. SQL_FreeHandle(Query);
  448. SQL_FreeHandle(SqlConnection);
  449. return;
  450. }
  451.  
  452. SQL_FreeHandle(Query);
  453.  
  454. SQL_FreeHandle(SqlConnection);
  455. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement