· 6 years ago · Apr 09, 2019, 09:20 AM
1#include <amxmodx>
2#include <amxmisc>
3#include <fun>
4#include <fakemeta>
5#include <fakemeta_util>
6#include <colorchat>
7#include <sqlx>
8#include <sklep>
9#include <sockets>
10#include <cstrike>
11
12
13#define PLUGIN "Sklep Farbek"
14#define VERSION "1.0"
15#define AUTHOR "Pati"
16
17
18
19new cvar_strona_skryptu
20new strona_skryptu[50]
21new cvar_adres_skryptu
22new adres_skryptu[50]
23
24
25#define ADMIN_FLAG_V (1<<21)
26#define ADMIN_FLAG_W (1<<22)
27#define ADMIN_FLAG_X (1<<23)
28
29new Data[1]
30new Komendy[2000],Komenda[500]
31
32/////////////////////////
33
34#define ilosc_uslug_bazy 20
35
36
37#define sizeof(komendy_sms) 5
38#define PREFIX "^x03[^x04SKLEP^x03]^x01"
39new komendy_sms[sizeof(komendy_sms)][]={"sklepfarbki","kupfarbki","sklepik"}
40new komenda_sms[30]
41
42new Handle:g_hSqlTuple;
43
44new Host[50]
45new User[50]
46new DB[50]
47new Table[50]
48
49new cvar_Host
50new cvar_User
51new cvar_DB
52new cvar_Table
53
54
55
56new cvar_zapis
57new wybor_zapisu
58
59new info_gracz[3][33][64]
60new saldo[33]
61
62new ilosc_wszystkich_uslug
63new usluga_z_bazy[101]
64new nazwy_wszystkich_uslug[101][50]
65
66
67#define ilosc_sms_1s1k 16
68
69new koszt_sms_1s1k[ilosc_sms_1s1k][]={"1.23","2.46","3.69","4.92","7.38","8.61","9.84","11.07"}
70new wartosci_sms_1s1k[ilosc_sms_1s1k]={1,2,3,4,5,6,7,8}
71new tresc_sms_1s1k[]="SHOT"
72new numer_sms_1s1k[ilosc_sms_1s1k]={7136,7255,7355,7455,7636,77464,78464,7936}
73
74
75
76new cvar_API
77new nowe_api[20]
78new API
79new cvar_1s1k
80new key_1s1k[41]
81
82new cale_saldo[33]
83
84new Forward_menu_sklep
85new Forward_sklep_dodanie_farbek
86
87new iRet
88
89
90new bool:ma_konto[33]
91
92
93new Forward_dodanie_farbek
94new bool:aktywna_usluga[33]
95
96new waluta[10]
97
98public plugin_init() {
99 register_plugin(PLUGIN, VERSION, AUTHOR)
100 for(new i;i<sizeof(komendy_sms);i++)
101 {
102 formatex(komenda_sms,28,"say /%s",komendy_sms[i])
103 register_clcmd(komenda_sms, "Menu");
104 formatex(komenda_sms,28,"say_team /%s",komendy_sms[i])
105 register_clcmd(komenda_sms, "Menu");
106 }
107 register_concmd("amx_sklep_kasa", "cmd_daj_kase", ADMIN_RCON, "<cel> <kasa>")
108 register_concmd("amx_sklep_say", "cmd_napisz", ADMIN_RCON, "<cel> <kasa>")
109 register_clcmd("wpisz_otrzymany_kod", "Doladowanie_Konta")
110 register_clcmd("say /info", "reklama_say")
111 register_clcmd("say /autor", "reklama_say")
112 register_clcmd("say_team /info", "reklama_say")
113 register_clcmd("say_team /autor", "reklama_say")
114
115 Forward_menu_sklep = CreateMultiForward("sklep_menu_sklep", ET_IGNORE, FP_CELL, FP_CELL);
116 Forward_sklep_wlaczenie_uslugi = CreateMultiForward("sklep_dodanie_farbek", ET_IGNORE, FP_CELL, FP_CELL);
117 register_cvar("sklep_free","1")
118 register_cvar("cod_givecoins")
119 cvar_API= register_cvar("sklep_api", "cssetti")
120
121 cvar_zapis=register_cvar("sklep_zapis","0")
122
123 polaczenie_z_baza()
124
125
126 wybor_zapisu=get_pcvar_num(cvar_zapis)
127
128
129 cvar_strona_skryptu = register_cvar("sklep_strona", "")
130 cvar_adres_skryptu = register_cvar("sklep_podstrona", "")
131
132
133
134 cvar_1s1k = register_cvar("sklep_api_key_1s1k", "")
135
136
137 new filepath[128];
138 get_configsdir(filepath, 127);
139 formatex(filepath, 127, "%s/ppp/sklep.cfg", filepath);
140 server_cmd("exec %s", filepath);
141 server_exec();
142
143 get_pcvar_string(cvar_API,nowe_api,19)
144
145 get_pcvar_string(cvar_strona_skryptu,strona_skryptu,49)
146 get_pcvar_string(cvar_adres_skryptu,adres_skryptu,49)
147 formatex(adres_skryptu,49,"/%s",adres_skryptu)
148
149 if(equal(nowe_api, "1s1k", 4))
150 API=1
151
152
153 get_pcvar_string(cvar_1s1k,key_1s1k,40)
154
155
156 stworzenie_tabeli()
157
158 Forward_dodanie_farbek = CreateMultiForward("amxbans_admin_connect",ET_IGNORE,FP_CELL)
159
160public polaczenie_z_baza()
161{
162 cvar_Host=register_cvar("sklep_host", "")
163 cvar_User=register_cvar("sklep_user", "")
164 cvar_DB=register_cvar("sklep_db", "")
165 cvar_Table=register_cvar("sklep_table", "")
166
167
168
169 new filepath[128];
170 get_configsdir(filepath, 127);
171 formatex(filepath, 127, "%s/ppp/sklep.cfg", filepath);
172 server_cmd("exec %s", filepath);
173 server_exec();
174
175
176 get_pcvar_string(cvar_Host,Host,49)
177 get_pcvar_string(cvar_User,User,49)
178 get_pcvar_string(cvar_Pass,Pass,49)
179 get_pcvar_string(cvar_DB,DB,49)
180 get_pcvar_string(cvar_Table,Table,49)
181
182
183
184 g_hSqlTuple = SQL_MakeDbTuple(Host, User, Pass, DB)
185}
186public oplacony(Rok,Miesiac,Dzien)
187{
188 new roks
189 new miesiacs
190 new dziens
191 new data[3][10]
192 get_time("%Y", data[0], 9);
193 get_time("%m", data[1], 9);
194 get_time("%d", data[2], 9);
195 roks = str_to_num(data[0]);
196 miesiacs = str_to_num(data[1]);
197 dziens = str_to_num(data[2]);
198 if(roks==Rok)
199 {
200 if(miesiacs==Miesiac)
201 {
202 if(dziens<=Dzien)
203 {
204 return 1;
205 }
206
207 }
208 else if(miesiacs<Miesiac)
209 return 1;
210 }
211 else if(roks<Rok)
212 {
213 return 1;
214 }
215 return 0;
216}
217
218
219
220public plugin_natives()
221{
222 register_native("sklep_ilosc_farbek", "Pobranie_ilosci_farbek", 1);
223 register_native("sklep_inicjacja_farbek", "Zainicjowanie_farbki", 1);
224 register_native("sklep_kupno_farbek", "Zakupienie_farbek", 1);
225
226
227 register_native("sklep_set_user_money", "Ustawienie_salda_gracza", 1);
228 register_native("sklep_get_user_money", "Pobranie_salda_gracza", 1);
229}
230public Pobranie_salda_gracza(id)
231 return saldo[id]
232public Ustawienie_salda_gracza(id,ilosc)
233{
234 cale_saldo[id]=cale_saldo[id]+ilosc-saldo[id]
235 saldo[id]=ilosc;
236 Zapisanie(id)
237}
238public Pobranie_ilosci_uslug()
239 return ilosc_wszystkich_uslug
240public Zainicjowanie_uslugi(id_pluginu,id_uslugi,nr_id_w_bazie)
241{
242 new nazwa_uslugi[50],niewazne[5]
243 get_plugin(id_pluginu,niewazne,4, nazwa_uslugi, 49);
244 ilosc_wszystkich_uslug++
245 usluga_z_bazy[ilosc_wszystkich_farbek]=nr_id_w_bazie
246 formatex(nazwy_wszystkich_uslug[ilosc_wszystkich_uslug],49,"%s",nazwa_uslugi)
247 [ilosc_wszystkich_uslug])
248}
249
250
251public client_disconnect(id)
252{
253}
254
255public client_authorized(id)
256{
257
258 if(is_user_bot(id)||is_user_hltv(id))
259 return
260
261 Wczytanie(id)
262}
263public Wczytanie(id)
264{
265
266
267 if(!SQL_MoreResults(hQuery))
268 {
269 ma_konto[id]=false
270// Dodanie_Do_Bazy(id)
271 }
272 else
273 {
274 ma_konto[id]=true
275 for(new i = 1;i<=ilosc_uslug_bazy;i++)
276 {
277 new Aktywny[15],nazwa[10],rozdzielenie[3][6]
278 formatex(nazwa,9,"usl_%d",i)
279 SQL_ReadResult(hQuery, SQL_FieldNameToNum(hQuery, nazwa), Aktywny, 14)
280 replace_all(Aktywny,14,"."," ")
281 parse(Aktywny, rozdzielenie[0], 5, rozdzielenie[1],5, rozdzielenie[2], 5);
282
283 if(oplacony(str_to_num(rozdzielenie[0]),str_to_num(rozdzielenie[1]),str_to_num(rozdzielenie[2])))
284 {
285 new adres[100],opis[100]
286 formatex(adres,99,"addons/amxmodx/logs/sklep/aktywnosc_%s.log",nazwy_wszystkich_uslug[i])
287 formatex(opis,99,"Gracz '%s' polaczyl sie i posiada aktywne konto '%s'",info_gracz[0][id],nazwy_wszystkich_uslug[i])
288 log_to_file(adres,opis)
289 ExecuteForward(Forward_sklep_wlaczenie_uslugi, iRet, id,i);
290 ExecuteForward(Forward_dodanie_flag, iRet, id);
291 aktywna_usluga[id]=true
292 }
293 }
294
295 saldo[id] = SQL_ReadResult(hQuery, SQL_FieldNameToNum(hQuery, "saldo"));
296 cale_saldo[id] = SQL_ReadResult(hQuery, SQL_FieldNameToNum(hQuery, "cale_saldo"));
297 }
298 SQL_FreeHandle(hQuery)
299 return PLUGIN_CONTINUE
300}
301public Dodanie_Do_Bazy(id)
302{
303 if(containi(info_gracz[0][id],"'")>=0)
304 {
305 replace_all(info_gracz[0][id], 63, "'", "");
306 set_user_info(id,"name",info_gracz[0][id])
307 client_cmd(id,"name ^"%s^"",info_gracz[0][id])
308 client_cmd(id,"retry")
309 client_cmd(id,"Retry")
310 set_task(1.0, "wywalenie_gracza", id, _, _, "a",1)
311 return
312 }
313 formatex(Komendy, charsmax(Komendy), "INSERT INTO `%s` (`authid`,`nick`,`ip`) VALUES ('%s','%s','%s')", Table,info_gracz[1][id],info_gracz[0][id],info_gracz[2][id])
314
315 formatex(Komendy, charsmax(Komendy), "%s; ",Komendy)
316 Data[0]=id
317 SQL_ThreadQuery(g_hSqlTuple, "Handle_Dodanie_Do_Bazy", Komendy, Data, 1)
318}
319
320public Handle_Dodanie_Do_Bazy(FailState, Handle:Query, Error[], Errorcode, Data[], DataSize)
321{
322
323 if(Errorcode)
324 log_amx("Dodanie w dodaniu ustawien gracza %s", Error)
325
326 if(FailState == TQUERY_CONNECT_FAILED)
327 {
328 log_amx("Nie mozna podlaczyc sie do bazy danych.")
329 return PLUGIN_CONTINUE
330 }
331 else if(FailState == TQUERY_QUERY_FAILED)
332 {
333 log_amx("Dodanie do bazy anulowane")
334 return PLUGIN_CONTINUE
335 }
336 ma_konto[Data[0]]=true
337 SQL_FreeHandle(Query)
338 return PLUGIN_CONTINUE
339}
340public wywalenie_gracza(id)
341{
342 if(is_user_connected(id))
343 server_cmd("kick #%d ^"Wroc ponownie^"",get_user_userid(id))
344}
345
346public Menu(id)
347{
348 new szText[100],nr[5]
349 formatex(szText,99,"\ySklep by KrwioPijca^nPosiadasz \r%d\y zl",saldo[id])
350 new menu = menu_create(szText, "HandleMenu_Sklepu");
351
352
353 menu_additem(menu, "\yInformacje o sklepie ^n","2", 0);
354 for(new i=1;i<=ilosc_wszystkich_uslug;i++)
355 {
356 formatex(nr,4,"%d",i+2)
357 formatex(szText,99,"\w%s",nazwy_wszystkich_uslug[i])
358 menu_additem(menu, szText,nr, 0);
359 }
360
361 menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
362 menu_display(id, menu, 0);
363
364 return PLUGIN_HANDLED;
365}
366
367
368public HandleMenu_Sklepu(id, menu, item)
369{
370 if (item == MENU_EXIT)
371 {
372 menu_destroy(menu);
373 return PLUGIN_HANDLED;
374 }
375 new Data[7], Name[64];
376 new Access, Callback;
377 menu_item_getinfo(menu, item, Access, Data,5, Name, 63, Callback);
378 new Key = str_to_num(Data);
379 if(Key==1)
380 Doladuj_Konto(id)
381 if(Key==2)
382 reklama_say(id)
383 else
384 ExecuteForward(Forward_menu_sklep, iRet, id,Key-2);
385 menu_destroy(menu)
386 return PLUGIN_CONTINUE;
387}
388
389
390
391
392public Zakupienie_uslugi(id,id_uslugi,id_w_bazie,ilosc_dni)
393{
394 if(!ilosc_dni||!id_w_bazie)
395 {
396 ColorChat(id,GREEN,"%s Kupiles %s.",PREFIX,nazwy_wszystkich_uslug[id_uslugi]);
397 new adres[100],opis[100]
398 formatex(adres,99,"addons/amxmodx/logs/sklep/kupno_%s.log",nazwy_wszystkich_uslug[id_uslugi])
399 formatex(opis,99,"Gracz '%s' kupil usluge '%s'",info_gracz[0][id],nazwy_wszystkich_uslug[id_uslugi])
400 log_to_file(adres,opis)
401 }
402 else
403 {
404 ColorChat(id,GREEN,"%s Kupiles konto %s na %d dni.",PREFIX,nazwy_wszystkich_uslug[id_uslugi],ilosc_dni);
405
406 new adres[100],opis[100]
407 formatex(adres,99,"addons/amxmodx/logs/sklep/kupno_%s.log",nazwy_wszystkich_uslug[id_uslugi])
408 formatex(opis,99,"Gracz '%s' kupil usluge '%s' na '%d' dni",info_gracz[0][id],nazwy_wszystkich_uslug[id_uslugi],ilosc_dni)
409 log_to_file(adres,opis)
410
411 new data[3][10]
412 new do_kiedy[100]
413 get_time("%Y", data[0], 9);
414 get_time("%m", data[1], 9);
415 get_time("%d", data[2], 9);
416
417 new roks = str_to_num(data[0]);
418 new miesiacs = str_to_num(data[1]);
419 new dziens = str_to_num(data[2]);
420 dziens +=ilosc_dni
421
422
423 if(miesiacs==2)
424 {
425 if(dziens>28)
426 {
427 dziens-=28
428 miesiacs+=1
429 }
430 }
431 else if(miesiacs==1 || miesiacs==3 || miesiacs==5 || miesiacs==7 || miesiacs==8 || miesiacs==10 || miesiacs==12)
432 {
433 if(dziens>31)
434 {
435 dziens-=31
436 miesiacs+=1
437 }
438 }
439 else if(miesiacs==4 || miesiacs==6 || miesiacs==9 || miesiacs==11)
440 {
441 if(dziens>30)
442 {
443 dziens-=30
444 miesiacs+=1
445 }
446 }
447 else
448 {
449 if(miesiacs>12)
450 {
451 miesiacs-=12
452 roks+=1
453 }
454 }
455 if(miesiacs==2)
456 {
457 if(dziens>28)
458 {
459 dziens-=28
460 miesiacs+=1
461 }
462 }
463 else if(miesiacs==1 || miesiacs==3 || miesiacs==5 || miesiacs==7 || miesiacs==8 || miesiacs==10 || miesiacs==12)
464 {
465 if(dziens>31)
466 {
467 dziens-=31
468 miesiacs+=1
469 }
470 }
471 else if(miesiacs==4 || miesiacs==6 || miesiacs==9 || miesiacs==11)
472 {
473 if(dziens>30)
474 {
475 dziens-=30
476 miesiacs+=1
477 }
478 }
479 else
480 {
481 if(miesiacs>12)
482 {
483 miesiacs-=12
484 roks+=1
485 }
486 }
487 if(miesiacs==2)
488 {
489 if(dziens>28)
490 {
491 dziens-=28
492 miesiacs+=1
493 }
494 }
495 else if(miesiacs==1 || miesiacs==3 || miesiacs==5 || miesiacs==7 || miesiacs==8 || miesiacs==10 || miesiacs==12)
496 {
497 if(dziens>31)
498 {
499 dziens-=31
500 miesiacs+=1
501 }
502 }
503 else if(miesiacs==4 || miesiacs==6 || miesiacs==9 || miesiacs==11)
504 {
505 if(dziens>30)
506 {
507 dziens-=30
508 miesiacs+=1
509 }
510 }
511 else
512 {
513 if(miesiacs>12)
514 {
515 miesiacs-=12
516 roks+=1
517 }
518 }
519 formatex(do_kiedy,99,"%d.%d.%d",roks,miesiacs,dziens)
520
521 formatex(Komendy, charsmax(Komendy), "UPDATE `%s` SET `usl_%d`=^"%s^"", Table,id_w_bazie,do_kiedy);
522 if(wybor_zapisu)
523 formatex(Komendy, charsmax(Komendy), "%s WHERE `authid` = '%s'", Komendy,info_gracz[1][id]);
524 else
525 formatex(Komendy, charsmax(Komendy), "%s WHERE `nick` = '%s'", Komendy,info_gracz[0][id]);
526 formatex(Komendy, charsmax(Komendy), "%s; ",Komendy)
527 SQL_ThreadQuery(g_hSqlTuple, "Handle_Zakupienie_uslugi", Komendy, Data, 1)
528 }
529}
530
531public Handle_Zakupienie_uslugi(FailState, Handle:Query, Error[], Errorcode, Data[], DataSize)
532{
533
534 if(Errorcode)
535 log_amx("Blad [Zakupienie uslugi]: %s", Error)
536
537 if(FailState == TQUERY_CONNECT_FAILED)
538 {
539 log_amx("Nie mozna podlaczyc sie do bazy danych.")
540 return PLUGIN_CONTINUE
541 }
542 else if(FailState == TQUERY_QUERY_FAILED)
543 {
544 log_amx("[Zakupienie uslugi] anulowane")
545 return PLUGIN_CONTINUE
546 }
547 SQL_FreeHandle(Query)
548 return PLUGIN_CONTINUE
549}
550
551
552public Doladuj_Konto(id)
553{
554
555 new szText[555 char],nr[5]
556
557
558 new menu
559 if(API==1)
560 {
561 formatex(szText, charsmax(szText), "\yDoladowanie konta SMS^nKod: \r%s\w",tresc_sms_1s1k)
562 menu = menu_create(szText, "HandleDoladuj_Konto");
563 for(new i =1 ;i<=ilosc_sms_1s1k;i++)
564 {
565 formatex(nr, charsmax(nr), "%d",i)
566 formatex(szText, charsmax(szText), "\wNr: \r%d\w Cena: \y%s\wzl Wartosc: \y%d\w%s",numer_sms_1s1k[i-1],koszt_sms_1s1k[i-1],wartosci_sms_1s1k[i-1],waluta)
567 menu_additem(menu, szText, nr, 0);
568 }
569 }
570 else if(API==2)
571 {
572 formatex(szText, charsmax(szText), "Doladowanie konta SMS^nKod: \r%s\w",tresc_sms_zabijaka)
573 menu = menu_create(szText, "HandleDoladuj_Konto");
574 for(new i =1 ;i<=ilosc_sms_zabijaka;i++)
575 {
576 formatex(nr, charsmax(nr), "%d",i)
577 formatex(szText, charsmax(szText), "\wNr: \r%d\w Cena: \y%s\wzl Wartosc: \y%d\w%s",numer_sms_zabijaka[i-1],koszt_sms_zabijaka[i-1],wartosci_sms_zabijaka[i-1],waluta)
578 menu_additem(menu, szText, nr, 0);
579 }
580 }
581 else if(API==3)
582 {
583 formatex(szText, charsmax(szText), "Doladowanie konta SMS^nKod: \r%s\w",tresc_sms_cssetti)
584 menu = menu_create(szText, "HandleDoladuj_Konto");
585 for(new i =1 ;i<=ilosc_sms_cssetti;i++)
586 {
587 formatex(nr, charsmax(nr), "%d",i)
588 formatex(szText, charsmax(szText), "\wNr: \r%d\w Cena: \y%s\wzl Wartosc: \y%d\w%s",numer_sms_cssetti[i-1],koszt_sms_cssetti[i-1],wartosci_sms_cssetti[i-1],waluta)
589 menu_additem(menu, szText, nr, 0);
590 }
591 }
592 else if(API==4)
593 {
594 formatex(szText, charsmax(szText), "Doladowanie konta SMS^nKod: \r%s\w",tresc_sms_pukawka)
595 menu = menu_create(szText, "HandleDoladuj_Konto");
596 for(new i =1 ;i<=ilosc_sms_pukawka;i++)
597 {
598 formatex(nr, charsmax(nr), "%d",i)
599 formatex(szText, charsmax(szText), "\wNr: \r%d\w Cena: \y%s\wzl Wartosc: \y%d\w%s",numer_sms_pukawka[i-1],koszt_sms_pukawka[i-1],wartosci_sms_pukawka[i-1],waluta)
600 menu_additem(menu, szText, nr, 0);
601 }
602 }
603 else if(API==5)
604 {
605 formatex(szText, charsmax(szText), "Doladowanie konta SMS^nKod: \r%s\w",tresc_sms_mintshost)
606 menu = menu_create(szText, "HandleDoladuj_Konto");
607 for(new i =1 ;i<=ilosc_sms_mintshost;i++)
608 {
609 formatex(nr, charsmax(nr), "%d",i)
610 formatex(szText, charsmax(szText), "\wNr: \r%d\w Cena: \y%s\wzl Wartosc: \y%d\w%s",numer_sms_mintshost[i-1],koszt_sms_mintshost[i-1],wartosci_sms_mintshost[i-1],waluta)
611 menu_additem(menu, szText, nr, 0);
612 }
613 }
614 else if(API==6)
615 {
616 formatex(szText, charsmax(szText), "Doladowanie konta SMS^nKod: \r%s\w",key_simpay_key)
617 menu = menu_create(szText, "HandleDoladuj_Konto");
618 for(new i =1 ;i<=ilosc_sms_simpay;i++)
619 {
620 formatex(nr, charsmax(nr), "%d",i)
621 formatex(szText, charsmax(szText), "\wNr: \r%d\w Cena: \y%s\wzl Wartosc: \y%d\w%s",numer_sms_simpay[i-1],koszt_sms_simpay[i-1],wartosci_sms_simpay[i-1],waluta)
622 menu_additem(menu, szText, nr, 0);
623 }
624 }
625 else if(API==7)
626 {
627 formatex(szText, charsmax(szText), "Doladowanie konta SMS^nKod: \r%s\w",key_microsms_key)
628 menu = menu_create(szText, "HandleDoladuj_Konto");
629 for(new i =1 ;i<=ilosc_sms_microsms;i++)
630 {
631 formatex(nr, charsmax(nr), "%d",i)
632 formatex(szText, charsmax(szText), "\wNr: \r%d\w Cena: \y%s\wzl Wartosc: \y%d\w%s",numer_sms_microsms[i-1],koszt_sms_microsms[i-1],wartosci_sms_microsms[i-1],waluta)
633 menu_additem(menu, szText, nr, 0);
634 }
635 }
636 else if(API==8)
637 {
638 formatex(szText, charsmax(szText), "Doladowanie konta SMS^nKod: \r%s\w",tresc_sms_hostplay)
639 menu = menu_create(szText, "HandleDoladuj_Konto");
640 for(new i =1 ;i<=ilosc_sms_hostplay;i++)
641 {
642 formatex(nr, charsmax(nr), "%d",i)
643 formatex(szText, charsmax(szText), "\wNr: \r%d\w Cena: \y%s\wzl Wartosc: \y%d\w%s",numer_sms_hostplay[i-1],koszt_sms_hostplay[i-1],wartosci_sms_hostplay[i-1],waluta)
644 menu_additem(menu, szText, nr, 0);
645 }
646 }
647
648 menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
649 menu_display(id, menu, 0);
650 return PLUGIN_HANDLED;
651}
652public HandleDoladuj_Konto(id, menu, item)
653{
654 if (item == MENU_EXIT)
655 {
656 menu_destroy(menu);
657 return PLUGIN_HANDLED;
658 }
659 new Data[7], Name[64];
660 new Access, Callback;
661 menu_item_getinfo(menu, item, Access, Data,5, Name, 63, Callback);
662
663 new Key = str_to_num(Data);
664
665 if(API==2)
666 {
667 wybrany_sms[id]=netto_sms_zabijaka[Key-1]
668 }
669 else if(API ==5)
670 {
671 wybrany_sms[id]=numer_sms_mintshost[Key-1]
672 }
673 else if(API ==6)
674 {
675 wybrany_sms[id]=numer_sms_simpay[Key-1]
676 }
677 else if(API ==7)
678 {
679 wybrany_sms[id]=numer_sms_microsms[Key-1]
680 }
681
682
683 ColorChat(id,GREEN,"%s Wpisz otrzymany kod.",PREFIX)
684 console_cmd(id, "messagemode wpisz_otrzymany_kod")
685
686 menu_destroy(menu)
687 return PLUGIN_CONTINUE;
688}
689
690public Doladowanie_Konta(id)
691{
692 new szTextAdm[192],szText[500],Rzeczy[500],IP_Serwera[30]
693 new uid;
694 read_args(szTextAdm, 191)
695 replace_all(szTextAdm, 191, "^"", "");
696
697 uid=get_user_userid(id);
698 get_user_ip(0,IP_Serwera,29,0)
699
700 formatex(Rzeczy, charsmax(Rzeczy), "?serwer=%s",IP_Serwera)
701 formatex(Rzeczy, charsmax(Rzeczy), "%s&kod=%s",Rzeczy,szTextAdm)
702 if(API==2)
703 formatex(Rzeczy, charsmax(Rzeczy), "%s&cena=%d",Rzeczy,wybrany_sms[id])
704 else if(API==5||API==6||API==7)
705 formatex(Rzeczy, charsmax(Rzeczy), "%s&numer=%d",Rzeczy,wybrany_sms[id])
706 formatex(Rzeczy, charsmax(Rzeczy), "%s&uid=%d",Rzeczy, uid)
707
708 get_cvar_string("rcon_password",Haslo_Rcon,63)
709 if(equal(Haslo_Rcon,""))
710 {
711 new nr_hasla
712 nr_hasla=random_num(1000,999999)
713
714 formatex(Rzeczy, charsmax(Rzeczy), "%s&rcon=%d",Rzeczy, nr_hasla)
715 set_cvar_num("rcon_password",nr_hasla)
716
717 set_task(7.50, "brak_rcon", _, _, _, "a", 1)
718 }
719 else
720 formatex(Rzeczy, charsmax(Rzeczy), "%s&rcon=%s",Rzeczy, Haslo_Rcon)
721 formatex(szText, charsmax(szText), "%s%s",adres_skryptu,Rzeczy)
722 Sprawdzenie_SMS(szText)
723}
724
725
726public Sprawdzenie_SMS(kod[])
727{
728 new g_sckweb
729 new error = 0
730 new constring[512]
731
732 g_sckweb = socket_open(strona_skryptu, 80, SOCKET_TCP, error)
733 if (g_sckweb > 0)
734 {
735 formatex(constring,511,"GET %s HTTP/1.1^nHost: %s^n^n",kod,strona_skryptu)
736 socket_send(g_sckweb, constring, 511)
737 }
738 else
739 {
740 switch (error)
741 {
742 case 1: { server_print("Error creating socket"); }
743 case 2: { server_print("Error resolving remote hostname"); }
744 case 3: { server_print("Error connecting socket"); }
745 }
746 return PLUGIN_CONTINUE
747 }
748 return PLUGIN_CONTINUE
749
750
751}
752public cmd_napisz(id,farbki,cid)
753{
754 if(!cmd_access(id,farbki,cid,3))
755 return PLUGIN_HANDLED;
756
757 if(get_user_flags(id) & ADMIN_RCON)
758 {
759 new target[32], szText[170];
760
761 read_argv(1, target, 31 );
762 read_argv(2, szText, 169 );
763
764 new player = cmd_target( id, target, 8 );
765 if( ! player )
766 return PLUGIN_HANDLED;
767
768 ColorChat(player,GREEN,"%s %s",PREFIX,szText)
769
770 }
771 return PLUGIN_CONTINUE;
772}
773public cmd_daj_kase(id,level,cid)
774{
775 if(!cmd_access(id,level,cid,3))
776 return PLUGIN_HANDLED;
777
778 if(get_user_flags(id) & ADMIN_RCON)
779 {
780
781
782 Zapisanie(player)
783 }
784 return PLUGIN_CONTINUE;
785}
786
787public Zapisanie(id)
788{
789 if(!ma_konto[id])
790 {
791 Dodanie_Do_Bazy(id)
792 set_task(5.0,"Zapisanie",id)
793 return
794 }
795
796 formatex(Komendy, charsmax(Komendy), "UPDATE `%s` SET `saldo`=^"%d^",`cale_saldo`=^"%d^"", Table,saldo[id],cale_saldo[id]);
797 if(wybor_zapisu)
798 formatex(Komendy, charsmax(Komendy), "%s WHERE `authid` = '%s'", Komendy,info_gracz[1][id]);
799 else
800 formatex(Komendy, charsmax(Komendy), "%s WHERE `nick` = '%s'", Komendy,info_gracz[0][id]);
801 formatex(Komendy, charsmax(Komendy), "%s; ",Komendy)
802 SQL_ThreadQuery(g_hSqlTuple, "Handle_Zapisanie", Komendy, Data, 1)
803
804}
805
806public Handle_Zapisanie(FailState, Handle:Query, Error[], Errorcode, Data[], DataSize)
807{
808
809 if(Errorcode)
810 log_amx("Blad [Zapiasnie]: %s", Error)
811
812 if(FailState == TQUERY_CONNECT_FAILED)
813 {
814 log_amx("Nie mozna podlaczyc sie do bazy danych.")
815 return PLUGIN_CONTINUE
816 }
817 else if(FailState == TQUERY_QUERY_FAILED)
818 {
819 log_amx("[Zapisanie] anulowane")
820 return PLUGIN_CONTINUE
821 }
822 SQL_FreeHandle(Query)
823 return PLUGIN_CONTINUE
824}
825
826public stworzenie_tabeli()
827{
828 formatex(Komendy, charsmax(Komendy), "CREATE TABLE IF NOT EXISTS `%s` ( ", Table)
829 formatex(Komendy, charsmax(Komendy), "%s`id` int(8) NOT NULL AUTO_INCREMENT, ", Komendy)
830 formatex(Komendy, charsmax(Komendy), "%s`nick` varchar(42) DEFAULT '0', ", Komendy)
831 formatex(Komendy, charsmax(Komendy), "%s`authid` varchar(42) DEFAULT NULL, ", Komendy)
832 formatex(Komendy, charsmax(Komendy), "%s`ip` varchar(20) NOT NULL DEFAULT '0', ", Komendy)
833
834 for(new i=1;i<=ilosc_uslug_bazy;i++)
835 formatex(Komendy, charsmax(Komendy), "%s`usl_%d` varchar(15) DEFAULT NULL, ", Komendy,i)
836
837
838 formatex(Komendy, charsmax(Komendy), "%s`saldo` int(20) NOT NULL DEFAULT '0', ", Komendy)
839 formatex(Komendy, charsmax(Komendy), "%s`cale_saldo` int(20) NOT NULL DEFAULT '0', ", Komendy)
840 formatex(Komendy, charsmax(Komendy), "%sPRIMARY KEY (`id`), ", Komendy)
841 if(wybor_zapisu)
842 formatex(Komendy, charsmax(Komendy), "%sUNIQUE KEY `authid` (`authid`) ", Komendy)
843 else
844 formatex(Komendy, charsmax(Komendy), "%sUNIQUE KEY `nick` (`nick`) ", Komendy)
845 formatex(Komendy, charsmax(Komendy), "%s) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; ", Komendy)
846 SQL_ThreadQuery(g_hSqlTuple, "Handle_stworzenie_tabeli", Komendy, Data, 1)
847}
848
849public Handle_stworzenie_tabeli(FailState, Handle:Query, Error[], Errorcode, Data[], DataSize)
850{
851 if(Errorcode)
852 log_amx("Blad %s", Error)
853
854 if(FailState == TQUERY_CONNECT_FAILED)
855 {
856 log_amx("Nie mozna podlaczyc sie do bazy danych.")
857 return PLUGIN_CONTINUE
858 }
859 else if(FailState == TQUERY_QUERY_FAILED)
860 {
861 log_amx("Tworzenie tabeli nieudane")
862 return PLUGIN_CONTINUE
863 }
864 SQL_FreeHandle(Query)
865 return PLUGIN_CONTINUE
866}
867public reklama_say(id)
868{
869 ColorChat(id,GREEN,"%s Serwer ma Sklep-SMS ktory zostal wykonany przez Pati",PREFIX)
870}