· 6 years ago · Jan 12, 2020, 12:24 AM
1/* Plugin generated by AMXX-Studio */
2
3#include <amxmodx>
4#include <amxmisc>
5#include <fun>
6#include <fakemeta>
7#include <fakemeta_util>
8#include <colorchat>
9#include <sqlx>
10#include <sklep>
11#include <sockets>
12#include <cstrike>
13
14
15#define PLUGIN "Sklep SMS"
16#define VERSION "1.0"
17#define AUTHOR "KrwioPijca"
18
19
20
21new cvar_strona_skryptu
22new strona_skryptu[50]
23new cvar_adres_skryptu
24new adres_skryptu[50]
25
26
27#define ADMIN_FLAG_V (1<<21)
28#define ADMIN_FLAG_W (1<<22)
29#define ADMIN_FLAG_X (1<<23)
30
31new Haslo_Rcon[64]
32new Data[1]
33new Komendy[2000],Komenda[500]
34
35/////////////////////////
36
37#define ilosc_uslug_bazy 20
38
39
40#define sizeof(komendy_sms) 5
41#define PREFIX "^x03[^x04SKLEP^x03]^x01"
42new komendy_sms[sizeof(komendy_sms)][]={"sklepsms","sms","sklep-sms","smsy","sklepik"}
43new komenda_sms[30]
44
45new Handle:g_hSqlTuple;
46
47new Host[50]
48new User[50]
49new Pass[50]
50new DB[50]
51new Table[50]
52
53new cvar_Host
54new cvar_User
55new cvar_Pass
56new cvar_DB
57new cvar_Table
58
59
60
61new cvar_zapis
62new wybor_zapisu
63
64new info_gracz[3][33][64]
65new saldo[33]
66
67new ilosc_wszystkich_uslug
68new usluga_z_bazy[101]
69new nazwy_wszystkich_uslug[101][50]
70
71
72#define ilosc_sms_1s1k 16
73#define ilosc_sms_simpay 16
74#define ilosc_sms_zabijaka 10
75#define ilosc_sms_cssetti 12
76#define ilosc_sms_pukawka 10
77#define ilosc_sms_mintshost 10
78#define ilosc_sms_microsms 15
79#define ilosc_sms_hostplay 13
80new koszt_sms_1s1k[ilosc_sms_1s1k][]={"1.23","2.46","3.69","4.92","6.15","7.38","8.61","9.84","11.07","12.30","13.53","17.22","19.68","23.37","24.60","30.25"}
81new wartosci_sms_1s1k[ilosc_sms_1s1k]={1,2,3,4,5,6,7,8,9,10,11,14,16,19,20,25}
82new tresc_sms_1s1k[]="SHOT"
83new numer_sms_1s1k[ilosc_sms_1s1k]={7136,7255,7355,7455,7555,7636,77464,78464,7936,91055,91155,91455,91664,91955,92055,92555}
84
85new koszt_sms_simpay[ilosc_sms_simpay][]={"1.23","2.46","3.69","4.92","6.15","7.38","8.61","9.84","11.07","12.30","13.53","17.22","19.68","23.37","24.60","30.25"}
86new wartosci_sms_simpay[ilosc_sms_simpay]={1,2,3,4,5,6,7,8,9,10,11,14,16,19,20,25}
87//new tresc_sms_simpay[]="Nie wysylac"
88new numer_sms_simpay[ilosc_sms_simpay]={7136,7255,7355,7455,7555,7636,77464,78464,7936,91055,91155,91455,91664,91955,92055,92555}
89
90
91new koszt_sms_zabijaka[ilosc_sms_zabijaka][]={"1.23","2.46","3.69","4.92","6.15","7.38","11.07","17.22","23.37","30.25"}
92new wartosci_sms_zabijaka[ilosc_sms_zabijaka]={1,2,3,4,5,6,9,14,19,25}
93new netto_sms_zabijaka[ilosc_sms_zabijaka]={1,2,3,4,5,6,9,14,19,25}
94new tresc_sms_zabijaka[]="AG.ZABIJAKA"
95new numer_sms_zabijaka[ilosc_sms_zabijaka]={71480,72480,73480,74480,75480,76480,79480,91400,91900,92550}
96new wybrany_sms[33]
97
98new koszt_sms_cssetti[ilosc_sms_cssetti][]={"1.23","2.46","3.69","4.92","6.15","7.38","8.61","9.84","11.07","17.22","23.37","30.25"}
99new wartosci_sms_cssetti[ilosc_sms_cssetti]={1,2,3,4,5,6,7,8,9,14,19,25}
100new tresc_sms_cssetti[]="DP CSSETTI"
101new numer_sms_cssetti[ilosc_sms_cssetti]={71624,72624,73624,74624,75624,76624,77464,78464,79624,91455,91974,92574}
102
103new koszt_sms_pukawka[ilosc_sms_pukawka][]={"1.23","2.46","3.69","4.92","6.15","7.38","11.07","17.22","23.37","30.25"}
104new wartosci_sms_pukawka[ilosc_sms_pukawka]={1,2,3,4,5,6,9,14,17,25}
105new tresc_sms_pukawka[]="pukawka"
106new numer_sms_pukawka[ilosc_sms_pukawka]={71480,72480,73480,74480,75480,76480,79480,91400,91900,92550}
107
108new koszt_sms_mintshost[ilosc_sms_mintshost][]={"1.23","2.46","3.69","4.92","6.15","7.38","11.07","17.22","23.37","30.25"}
109new wartosci_sms_mintshost[ilosc_sms_mintshost]={1,2,3,4,6,7,9,14,19,25}
110new tresc_sms_mintshost[]="SIM.MINTS"
111new numer_sms_mintshost[ilosc_sms_mintshost]={7136,7255,7355,7455,7555,7636,7936,91455,91955,92555}
112
113new koszt_sms_microsms[ilosc_sms_microsms][]={"1.23","2.46","3.69","4.92","6.15","7.38","9.84","11.07","12.30","13.53","17.22","19.68","23.37","24.60","30.25"}
114new wartosci_sms_microsms[ilosc_sms_microsms]={1,2,3,4,5,6,7,9,10,11,14,16,19,20,25}
115//new tresc_sms_microsms[]="Nie wysylac"
116new numer_sms_microsms[ilosc_sms_microsms]={7136,7255,7355,7455,7555,7636,77464,7936,91055,91155,91455,91664,91955,92055,92555}
117
118new koszt_sms_hostplay[ilosc_sms_hostplay][]={"1.23","2.46","3.69","4.92","6.15","7.38","11.07","12.30","13.53","17.22","23.37","24.60","30.25"}
119new wartosci_sms_hostplay[ilosc_sms_hostplay]={1,2,3,4,5,6,9,10,11,14,19,20,25}
120new tresc_sms_hostplay[]="HOSTPLAY"
121new numer_sms_hostplay[ilosc_sms_hostplay]={7155,7255,7355,7455,7555,76660,7955,91055,91155,91455,91955,92055,92520}
122
123new cvar_API
124new nowe_api[20]
125new API
126new cvar_1s1k
127new key_1s1k[41]
128new cvar_simpay1
129new cvar_simpay2
130new cvar_simpay3
131new cvar_simpay_key
132new key_simpay1[41]
133new key_simpay2[41]
134new key_simpay3[41]
135new key_simpay_key[41]
136new cvar_zabijaka
137new key_zabijaka[41]
138new cvar_cssetti
139new key_cssetti[41]
140new cvar_pukawka
141new key_pukawka[41]
142new cvar_mintshost
143new key_mintshost[41]
144new cvar_hostplay
145new key_hostplay[41]
146
147
148new cvar_microsms_key
149
150new cvar_microsms1
151new cvar_microsms2
152new key_microsms1[41]
153new key_microsms2[41]
154new key_microsms_key[41]
155
156new cale_saldo[33]
157
158new Forward_menu_sklep
159new Forward_sklep_wlaczenie_uslugi
160
161new iRet
162
163
164new bool:ma_konto[33]
165
166
167new Forward_dodanie_flag,Forward_zabranie_flag
168new bool:aktywna_usluga[33]
169
170new waluta[10]
171
172public plugin_init() {
173 register_plugin(PLUGIN, VERSION, AUTHOR)
174 for(new i;i<sizeof(komendy_sms);i++)
175 {
176 formatex(komenda_sms,28,"say /%s",komendy_sms[i])
177 register_clcmd(komenda_sms, "Menu");
178 formatex(komenda_sms,28,"say_team /%s",komendy_sms[i])
179 register_clcmd(komenda_sms, "Menu");
180 }
181 register_concmd("amx_sklep_kasa", "cmd_daj_kase", ADMIN_RCON, "<cel> <kasa>")
182 register_concmd("amx_sklep_say", "cmd_napisz", ADMIN_RCON, "<cel> <kasa>")
183 register_clcmd("wpisz_otrzymany_kod", "Doladowanie_Konta")
184 register_clcmd("say /info", "reklama_say")
185 register_clcmd("say /autor", "reklama_say")
186 register_clcmd("say_team /info", "reklama_say")
187 register_clcmd("say_team /autor", "reklama_say")
188
189 Forward_menu_sklep = CreateMultiForward("sklep_menu_sklep", ET_IGNORE, FP_CELL, FP_CELL);
190 Forward_sklep_wlaczenie_uslugi = CreateMultiForward("sklep_wlaczenie_uslugi", ET_IGNORE, FP_CELL, FP_CELL);
191 register_cvar("sklep_free","1")
192 cvar_API= register_cvar("sklep_api", "cssetti")
193
194 cvar_zapis=register_cvar("sklep_zapis","0")
195
196 polaczenie_z_baza()
197
198
199 wybor_zapisu=get_pcvar_num(cvar_zapis)
200
201
202 cvar_strona_skryptu = register_cvar("sklep_strona", "")
203 cvar_adres_skryptu = register_cvar("sklep_podstrona", "")
204
205
206
207 cvar_1s1k = register_cvar("sklep_api_key_1s1k", "")
208 cvar_zabijaka = register_cvar("sklep_api_key_zabijaka", "")
209 cvar_cssetti = register_cvar("sklep_api_key_cssetti", "")
210 cvar_pukawka = register_cvar("sklep_api_key_pukawka", "")
211 cvar_mintshost = register_cvar("sklep_api_key_mintshost", "")
212 cvar_simpay_key = register_cvar("sklep_api_tresc_simpay", "")
213 cvar_simpay1 = register_cvar("sklep_api_key_simpay1", "")
214 cvar_simpay2 = register_cvar("sklep_api_key_simpay2", "")
215 cvar_simpay3 = register_cvar("sklep_api_key_simpay3", "")
216
217 cvar_microsms_key = register_cvar("sklep_api_tresc_microsms", "")
218 cvar_hostplay = register_cvar("sklep_api_key_hostplay", "299")
219 cvar_microsms1 = register_cvar("sklep_api_key_microsms1", "")
220 cvar_microsms2 = register_cvar("sklep_api_key_microsms2", "")
221
222 new filepath[128];
223 get_configsdir(filepath, 127);
224 formatex(filepath, 127, "%s/krwiopijca/sklep.cfg", filepath);
225 server_cmd("exec %s", filepath);
226 server_exec();
227
228 get_pcvar_string(cvar_API,nowe_api,19)
229
230 get_pcvar_string(cvar_strona_skryptu,strona_skryptu,49)
231 get_pcvar_string(cvar_adres_skryptu,adres_skryptu,49)
232 formatex(adres_skryptu,49,"/%s",adres_skryptu)
233
234 if(equal(nowe_api, "1s1k", 4))
235 API=1
236 else if(equal(nowe_api, "zabijaka", 8))
237 API=2
238 else if(equal(nowe_api, "cssetti", 7))
239 API=3
240 else if(equal(nowe_api, "pukawka", 7))
241 API=4
242 else if(equal(nowe_api, "mintshost", 9))
243 API=5
244 else if(equal(nowe_api, "simpay", 7))
245 API=6
246 else if(equal(nowe_api, "microsms", 8))
247 API=7
248 else if(equal(nowe_api, "hostplay", 8))
249 API=8
250 else
251 {
252 formatex(nowe_api,19,"cssetti")
253 API=3
254 }
255
256
257 get_pcvar_string(cvar_1s1k,key_1s1k,40)
258 get_pcvar_string(cvar_zabijaka,key_zabijaka,40)
259 get_pcvar_string(cvar_cssetti,key_cssetti,40)
260 get_pcvar_string(cvar_pukawka,key_pukawka,40)
261 get_pcvar_string(cvar_mintshost,key_mintshost,40)
262 get_pcvar_string(cvar_hostplay,key_hostplay,40)
263 get_pcvar_string(cvar_simpay1,key_simpay1,40)
264 get_pcvar_string(cvar_simpay2,key_simpay2,40)
265 get_pcvar_string(cvar_simpay3,key_simpay3,40)
266 get_pcvar_string(cvar_simpay_key,key_simpay_key,40)
267 get_pcvar_string(cvar_microsms1,key_microsms1,40)
268 get_pcvar_string(cvar_microsms2,key_microsms2,40)
269 get_pcvar_string(cvar_microsms_key,key_microsms_key,40)
270 get_pcvar_string(cvar_microsms_key,key_microsms_key,40)
271
272 stworzenie_tabeli()
273
274 Forward_dodanie_flag = CreateMultiForward("amxbans_admin_connect",ET_IGNORE,FP_CELL)
275 Forward_zabranie_flag = CreateMultiForward("amxbans_admin_disconnect",ET_IGNORE,FP_CELL)
276}
277public polaczenie_z_baza()
278{
279 cvar_Host=register_cvar("sklep_host", "")
280 cvar_User=register_cvar("sklep_user", "")
281 cvar_Pass=register_cvar("sklep_pass", "")
282 cvar_DB=register_cvar("sklep_db", "")
283 cvar_Table=register_cvar("sklep_table", "")
284
285
286 new filepath[128];
287 get_configsdir(filepath, 127);
288 formatex(filepath, 127, "%s/krwiopijca/sklep.cfg", filepath);
289 server_cmd("exec %s", filepath);
290 server_exec();
291
292
293 get_pcvar_string(cvar_Host,Host,49)
294 get_pcvar_string(cvar_User,User,49)
295 get_pcvar_string(cvar_Pass,Pass,49)
296 get_pcvar_string(cvar_DB,DB,49)
297 get_pcvar_string(cvar_Table,Table,49)
298
299
300
301 g_hSqlTuple = SQL_MakeDbTuple(Host, User, Pass, DB)
302}
303public oplacony(Rok,Miesiac,Dzien)
304{
305 new roks
306 new miesiacs
307 new dziens
308 new data[3][10]
309 get_time("%Y", data[0], 9);
310 get_time("%m", data[1], 9);
311 get_time("%d", data[2], 9);
312 roks = str_to_num(data[0]);
313 miesiacs = str_to_num(data[1]);
314 dziens = str_to_num(data[2]);
315 if(roks==Rok)
316 {
317 if(miesiacs==Miesiac)
318 {
319 if(dziens<=Dzien)
320 {
321 return 1;
322 }
323
324 }
325 else if(miesiacs<Miesiac)
326 return 1;
327 }
328 else if(roks<Rok)
329 {
330 return 1;
331 }
332 return 0;
333}
334
335
336
337public plugin_natives()
338{
339 register_native("sklep_ilosc_uslug", "Pobranie_ilosci_uslug", 1);
340 register_native("sklep_inicjacja_uslug", "Zainicjowanie_uslugi", 1);
341 register_native("sklep_kupno_uslugi", "Zakupienie_uslugi", 1);
342
343
344 register_native("sklep_set_user_money", "Ustawienie_salda_gracza", 1);
345 register_native("sklep_get_user_money", "Pobranie_salda_gracza", 1);
346}
347public Pobranie_salda_gracza(id)
348 return saldo[id]
349public Ustawienie_salda_gracza(id,ilosc)
350{
351 cale_saldo[id]=cale_saldo[id]+ilosc-saldo[id]
352 saldo[id]=ilosc;
353 Zapisanie(id)
354}
355public Pobranie_ilosci_uslug()
356 return ilosc_wszystkich_uslug
357public Zainicjowanie_uslugi(id_pluginu,id_uslugi,nr_id_w_bazie)
358{
359 new nazwa_uslugi[50],niewazne[5]
360 get_plugin(id_pluginu,niewazne,4, nazwa_uslugi, 49);
361 ilosc_wszystkich_uslug++
362 usluga_z_bazy[ilosc_wszystkich_uslug]=nr_id_w_bazie
363 formatex(nazwy_wszystkich_uslug[ilosc_wszystkich_uslug],49,"%s",nazwa_uslugi)
364 log_amx("[KrwioPijca] Zaladowanie uslugi: %s",nazwy_wszystkich_uslug[ilosc_wszystkich_uslug])
365}
366
367
368public client_disconnect(id)
369{
370
371 if(aktywna_usluga[id])
372 {
373 aktywna_usluga[id]=false
374 ExecuteForward(Forward_zabranie_flag, iRet, id);
375 }
376
377}
378
379public client_authorized(id)
380{
381 saldo[id]=0
382 get_user_name(id,info_gracz[0][id],63)
383 get_user_authid(id,info_gracz[1][id],63)
384 get_user_ip(id,info_gracz[2][id],63,1)
385
386 if(is_user_bot(id)||is_user_hltv(id))
387 return
388
389 Wczytanie(id)
390}
391public Wczytanie(id)
392{
393
394 Data[0] = id
395
396 if(wybor_zapisu)
397 formatex(Komenda, charsmax(Komenda), "SELECT * FROM %s WHERE `authid` = '%s'", Table,info_gracz[1][id]);
398 else
399 formatex(Komenda, charsmax(Komenda), "SELECT * FROM %s WHERE `nick` = '%s'", Table,info_gracz[0][id]);
400
401 SQL_ThreadQuery(g_hSqlTuple, "Handle_Wczytanie", Komenda, Data, 1)
402}
403public Handle_Wczytanie(FailState, Handle:hQuery, Error[], Errorcode, Data[], DataSize)
404{
405 new id = Data[0]
406
407 if(Errorcode)
408 log_amx("Blad w zapytaniu: %s [Wczytanie]", Error)
409
410 if(FailState == TQUERY_CONNECT_FAILED)
411 {
412 log_amx("Nie mozna podlaczyc sie do bazy danych.")
413 return PLUGIN_CONTINUE
414 }
415 else if(FailState == TQUERY_QUERY_FAILED)
416 {
417 log_amx("Zapytanie anulowane [Wczytanie]")
418 return PLUGIN_CONTINUE
419 }
420
421 if(!SQL_MoreResults(hQuery))
422 {
423 ma_konto[id]=false
424// Dodanie_Do_Bazy(id)
425 }
426 else
427 {
428 ma_konto[id]=true
429 for(new i = 1;i<=ilosc_uslug_bazy;i++)
430 {
431 new Aktywny[15],nazwa[10],rozdzielenie[3][6]
432 formatex(nazwa,9,"usl_%d",i)
433 SQL_ReadResult(hQuery, SQL_FieldNameToNum(hQuery, nazwa), Aktywny, 14)
434 replace_all(Aktywny,14,"."," ")
435 parse(Aktywny, rozdzielenie[0], 5, rozdzielenie[1],5, rozdzielenie[2], 5);
436
437 if(oplacony(str_to_num(rozdzielenie[0]),str_to_num(rozdzielenie[1]),str_to_num(rozdzielenie[2])))
438 {
439 new adres[100],opis[100]
440 formatex(adres,99,"addons/amxmodx/logs/sklep/aktywnosc_%s.log",nazwy_wszystkich_uslug[i])
441 formatex(opis,99,"Gracz '%s' polaczyl sie i posiada aktywne konto '%s'",info_gracz[0][id],nazwy_wszystkich_uslug[i])
442 log_to_file(adres,opis)
443 ExecuteForward(Forward_sklep_wlaczenie_uslugi, iRet, id,i);
444 ExecuteForward(Forward_dodanie_flag, iRet, id);
445 aktywna_usluga[id]=true
446 }
447 }
448
449 saldo[id] = SQL_ReadResult(hQuery, SQL_FieldNameToNum(hQuery, "saldo"));
450 cale_saldo[id] = SQL_ReadResult(hQuery, SQL_FieldNameToNum(hQuery, "cale_saldo"));
451 }
452 SQL_FreeHandle(hQuery)
453 return PLUGIN_CONTINUE
454}
455public Dodanie_Do_Bazy(id)
456{
457 if(containi(info_gracz[0][id],"'")>=0)
458 {
459 replace_all(info_gracz[0][id], 63, "'", "");
460 set_user_info(id,"name",info_gracz[0][id])
461 client_cmd(id,"name ^"%s^"",info_gracz[0][id])
462 client_cmd(id,"retry")
463 client_cmd(id,"Retry")
464 set_task(1.0, "wywalenie_gracza", id, _, _, "a",1)
465 return
466 }
467 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])
468
469 formatex(Komendy, charsmax(Komendy), "%s; ",Komendy)
470 Data[0]=id
471 SQL_ThreadQuery(g_hSqlTuple, "Handle_Dodanie_Do_Bazy", Komendy, Data, 1)
472}
473
474public Handle_Dodanie_Do_Bazy(FailState, Handle:Query, Error[], Errorcode, Data[], DataSize)
475{
476
477 if(Errorcode)
478 log_amx("Dodanie w dodaniu ustawien gracza %s", Error)
479
480 if(FailState == TQUERY_CONNECT_FAILED)
481 {
482 log_amx("Nie mozna podlaczyc sie do bazy danych.")
483 return PLUGIN_CONTINUE
484 }
485 else if(FailState == TQUERY_QUERY_FAILED)
486 {
487 log_amx("Dodanie do bazy anulowane")
488 return PLUGIN_CONTINUE
489 }
490 ma_konto[Data[0]]=true
491 SQL_FreeHandle(Query)
492 return PLUGIN_CONTINUE
493}
494public wywalenie_gracza(id)
495{
496 if(is_user_connected(id))
497 server_cmd("kick #%d ^"Wroc ponownie^"",get_user_userid(id))
498}
499
500public Menu(id)
501{
502 new szText[100],nr[5]
503 formatex(szText,99,"\ySklep by KrwioPijca^nPosiadasz \r%d\y zl",saldo[id])
504 new menu = menu_create(szText, "HandleMenu_Sklepu");
505
506
507 menu_additem(menu, "\yInformacje o sklepie ^n","2", 0);
508 for(new i=1;i<=ilosc_wszystkich_uslug;i++)
509 {
510 formatex(nr,4,"%d",i+2)
511 formatex(szText,99,"\w%s",nazwy_wszystkich_uslug[i])
512 menu_additem(menu, szText,nr, 0);
513 }
514
515 menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
516 menu_display(id, menu, 0);
517
518 return PLUGIN_HANDLED;
519}
520
521
522public HandleMenu_Sklepu(id, menu, item)
523{
524 if (item == MENU_EXIT)
525 {
526 menu_destroy(menu);
527 return PLUGIN_HANDLED;
528 }
529 new Data[7], Name[64];
530 new Access, Callback;
531 menu_item_getinfo(menu, item, Access, Data,5, Name, 63, Callback);
532 new Key = str_to_num(Data);
533 if(Key==1)
534 Doladuj_Konto(id)
535 if(Key==2)
536 reklama_say(id)
537 else
538 ExecuteForward(Forward_menu_sklep, iRet, id,Key-2);
539 menu_destroy(menu)
540 return PLUGIN_CONTINUE;
541}
542
543
544
545
546public Zakupienie_uslugi(id,id_uslugi,id_w_bazie,ilosc_dni)
547{
548 if(!ilosc_dni||!id_w_bazie)
549 {
550 ColorChat(id,GREEN,"%s Kupiles %s.",PREFIX,nazwy_wszystkich_uslug[id_uslugi]);
551 new adres[100],opis[100]
552 formatex(adres,99,"addons/amxmodx/logs/sklep/kupno_%s.log",nazwy_wszystkich_uslug[id_uslugi])
553 formatex(opis,99,"Gracz '%s' kupil usluge '%s'",info_gracz[0][id],nazwy_wszystkich_uslug[id_uslugi])
554 log_to_file(adres,opis)
555 }
556 else
557 {
558 ColorChat(id,GREEN,"%s Kupiles konto %s na %d dni.",PREFIX,nazwy_wszystkich_uslug[id_uslugi],ilosc_dni);
559
560 new adres[100],opis[100]
561 formatex(adres,99,"addons/amxmodx/logs/sklep/kupno_%s.log",nazwy_wszystkich_uslug[id_uslugi])
562 formatex(opis,99,"Gracz '%s' kupil usluge '%s' na '%d' dni",info_gracz[0][id],nazwy_wszystkich_uslug[id_uslugi],ilosc_dni)
563 log_to_file(adres,opis)
564
565 new data[3][10]
566 new do_kiedy[100]
567 get_time("%Y", data[0], 9);
568 get_time("%m", data[1], 9);
569 get_time("%d", data[2], 9);
570
571 new roks = str_to_num(data[0]);
572 new miesiacs = str_to_num(data[1]);
573 new dziens = str_to_num(data[2]);
574 dziens +=ilosc_dni
575
576
577 if(miesiacs==2)
578 {
579 if(dziens>28)
580 {
581 dziens-=28
582 miesiacs+=1
583 }
584 }
585 else if(miesiacs==1 || miesiacs==3 || miesiacs==5 || miesiacs==7 || miesiacs==8 || miesiacs==10 || miesiacs==12)
586 {
587 if(dziens>31)
588 {
589 dziens-=31
590 miesiacs+=1
591 }
592 }
593 else if(miesiacs==4 || miesiacs==6 || miesiacs==9 || miesiacs==11)
594 {
595 if(dziens>30)
596 {
597 dziens-=30
598 miesiacs+=1
599 }
600 }
601 else
602 {
603 if(miesiacs>12)
604 {
605 miesiacs-=12
606 roks+=1
607 }
608 }
609 if(miesiacs==2)
610 {
611 if(dziens>28)
612 {
613 dziens-=28
614 miesiacs+=1
615 }
616 }
617 else if(miesiacs==1 || miesiacs==3 || miesiacs==5 || miesiacs==7 || miesiacs==8 || miesiacs==10 || miesiacs==12)
618 {
619 if(dziens>31)
620 {
621 dziens-=31
622 miesiacs+=1
623 }
624 }
625 else if(miesiacs==4 || miesiacs==6 || miesiacs==9 || miesiacs==11)
626 {
627 if(dziens>30)
628 {
629 dziens-=30
630 miesiacs+=1
631 }
632 }
633 else
634 {
635 if(miesiacs>12)
636 {
637 miesiacs-=12
638 roks+=1
639 }
640 }
641 if(miesiacs==2)
642 {
643 if(dziens>28)
644 {
645 dziens-=28
646 miesiacs+=1
647 }
648 }
649 else if(miesiacs==1 || miesiacs==3 || miesiacs==5 || miesiacs==7 || miesiacs==8 || miesiacs==10 || miesiacs==12)
650 {
651 if(dziens>31)
652 {
653 dziens-=31
654 miesiacs+=1
655 }
656 }
657 else if(miesiacs==4 || miesiacs==6 || miesiacs==9 || miesiacs==11)
658 {
659 if(dziens>30)
660 {
661 dziens-=30
662 miesiacs+=1
663 }
664 }
665 else
666 {
667 if(miesiacs>12)
668 {
669 miesiacs-=12
670 roks+=1
671 }
672 }
673 formatex(do_kiedy,99,"%d.%d.%d",roks,miesiacs,dziens)
674
675 formatex(Komendy, charsmax(Komendy), "UPDATE `%s` SET `usl_%d`=^"%s^"", Table,id_w_bazie,do_kiedy);
676 if(wybor_zapisu)
677 formatex(Komendy, charsmax(Komendy), "%s WHERE `authid` = '%s'", Komendy,info_gracz[1][id]);
678 else
679 formatex(Komendy, charsmax(Komendy), "%s WHERE `nick` = '%s'", Komendy,info_gracz[0][id]);
680 formatex(Komendy, charsmax(Komendy), "%s; ",Komendy)
681 SQL_ThreadQuery(g_hSqlTuple, "Handle_Zakupienie_uslugi", Komendy, Data, 1)
682 }
683}
684
685public Handle_Zakupienie_uslugi(FailState, Handle:Query, Error[], Errorcode, Data[], DataSize)
686{
687
688 if(Errorcode)
689 log_amx("Blad [Zakupienie uslugi]: %s", Error)
690
691 if(FailState == TQUERY_CONNECT_FAILED)
692 {
693 log_amx("Nie mozna podlaczyc sie do bazy danych.")
694 return PLUGIN_CONTINUE
695 }
696 else if(FailState == TQUERY_QUERY_FAILED)
697 {
698 log_amx("[Zakupienie uslugi] anulowane")
699 return PLUGIN_CONTINUE
700 }
701 SQL_FreeHandle(Query)
702 return PLUGIN_CONTINUE
703}
704
705
706public Doladuj_Konto(id)
707{
708
709 new szText[555 char],nr[5]
710
711
712 new menu
713 if(API==1)
714 {
715 formatex(szText, charsmax(szText), "\yDoladowanie konta SMS^nKod: \r%s\w",tresc_sms_1s1k)
716 menu = menu_create(szText, "HandleDoladuj_Konto");
717 for(new i =1 ;i<=ilosc_sms_1s1k;i++)
718 {
719 formatex(nr, charsmax(nr), "%d",i)
720 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)
721 menu_additem(menu, szText, nr, 0);
722 }
723 }
724 else if(API==2)
725 {
726 formatex(szText, charsmax(szText), "Doladowanie konta SMS^nKod: \r%s\w",tresc_sms_zabijaka)
727 menu = menu_create(szText, "HandleDoladuj_Konto");
728 for(new i =1 ;i<=ilosc_sms_zabijaka;i++)
729 {
730 formatex(nr, charsmax(nr), "%d",i)
731 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)
732 menu_additem(menu, szText, nr, 0);
733 }
734 }
735 else if(API==3)
736 {
737 formatex(szText, charsmax(szText), "Doladowanie konta SMS^nKod: \r%s\w",tresc_sms_cssetti)
738 menu = menu_create(szText, "HandleDoladuj_Konto");
739 for(new i =1 ;i<=ilosc_sms_cssetti;i++)
740 {
741 formatex(nr, charsmax(nr), "%d",i)
742 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)
743 menu_additem(menu, szText, nr, 0);
744 }
745 }
746 else if(API==4)
747 {
748 formatex(szText, charsmax(szText), "Doladowanie konta SMS^nKod: \r%s\w",tresc_sms_pukawka)
749 menu = menu_create(szText, "HandleDoladuj_Konto");
750 for(new i =1 ;i<=ilosc_sms_pukawka;i++)
751 {
752 formatex(nr, charsmax(nr), "%d",i)
753 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)
754 menu_additem(menu, szText, nr, 0);
755 }
756 }
757 else if(API==5)
758 {
759 formatex(szText, charsmax(szText), "Doladowanie konta SMS^nKod: \r%s\w",tresc_sms_mintshost)
760 menu = menu_create(szText, "HandleDoladuj_Konto");
761 for(new i =1 ;i<=ilosc_sms_mintshost;i++)
762 {
763 formatex(nr, charsmax(nr), "%d",i)
764 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)
765 menu_additem(menu, szText, nr, 0);
766 }
767 }
768 else if(API==6)
769 {
770 formatex(szText, charsmax(szText), "Doladowanie konta SMS^nKod: \r%s\w",key_simpay_key)
771 menu = menu_create(szText, "HandleDoladuj_Konto");
772 for(new i =1 ;i<=ilosc_sms_simpay;i++)
773 {
774 formatex(nr, charsmax(nr), "%d",i)
775 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)
776 menu_additem(menu, szText, nr, 0);
777 }
778 }
779 else if(API==7)
780 {
781 formatex(szText, charsmax(szText), "Doladowanie konta SMS^nKod: \r%s\w",key_microsms_key)
782 menu = menu_create(szText, "HandleDoladuj_Konto");
783 for(new i =1 ;i<=ilosc_sms_microsms;i++)
784 {
785 formatex(nr, charsmax(nr), "%d",i)
786 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)
787 menu_additem(menu, szText, nr, 0);
788 }
789 }
790 else if(API==8)
791 {
792 formatex(szText, charsmax(szText), "Doladowanie konta SMS^nKod: \r%s\w",tresc_sms_hostplay)
793 menu = menu_create(szText, "HandleDoladuj_Konto");
794 for(new i =1 ;i<=ilosc_sms_hostplay;i++)
795 {
796 formatex(nr, charsmax(nr), "%d",i)
797 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)
798 menu_additem(menu, szText, nr, 0);
799 }
800 }
801
802 menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
803 menu_display(id, menu, 0);
804 return PLUGIN_HANDLED;
805}
806public HandleDoladuj_Konto(id, menu, item)
807{
808 if (item == MENU_EXIT)
809 {
810 menu_destroy(menu);
811 return PLUGIN_HANDLED;
812 }
813 new Data[7], Name[64];
814 new Access, Callback;
815 menu_item_getinfo(menu, item, Access, Data,5, Name, 63, Callback);
816
817 new Key = str_to_num(Data);
818
819 if(API==2)
820 {
821 wybrany_sms[id]=netto_sms_zabijaka[Key-1]
822 }
823 else if(API ==5)
824 {
825 wybrany_sms[id]=numer_sms_mintshost[Key-1]
826 }
827 else if(API ==6)
828 {
829 wybrany_sms[id]=numer_sms_simpay[Key-1]
830 }
831 else if(API ==7)
832 {
833 wybrany_sms[id]=numer_sms_microsms[Key-1]
834 }
835
836
837 ColorChat(id,GREEN,"%s Wpisz otrzymany kod.",PREFIX)
838 console_cmd(id, "messagemode wpisz_otrzymany_kod")
839
840 menu_destroy(menu)
841 return PLUGIN_CONTINUE;
842}
843
844public Doladowanie_Konta(id)
845{
846 new szTextAdm[192],szText[500],Rzeczy[500],IP_Serwera[30]
847 new uid;
848 read_args(szTextAdm, 191)
849 replace_all(szTextAdm, 191, "^"", "");
850
851 uid=get_user_userid(id);
852 get_user_ip(0,IP_Serwera,29,0)
853
854 formatex(Rzeczy, charsmax(Rzeczy), "?serwer=%s",IP_Serwera)
855 formatex(Rzeczy, charsmax(Rzeczy), "%s&kod=%s",Rzeczy,szTextAdm)
856 if(API==2)
857 formatex(Rzeczy, charsmax(Rzeczy), "%s&cena=%d",Rzeczy,wybrany_sms[id])
858 else if(API==5||API==6||API==7)
859 formatex(Rzeczy, charsmax(Rzeczy), "%s&numer=%d",Rzeczy,wybrany_sms[id])
860 formatex(Rzeczy, charsmax(Rzeczy), "%s&uid=%d",Rzeczy, uid)
861
862 get_cvar_string("rcon_password",Haslo_Rcon,63)
863 if(equal(Haslo_Rcon,""))
864 {
865 new nr_hasla
866 nr_hasla=random_num(1000,999999)
867
868 formatex(Rzeczy, charsmax(Rzeczy), "%s&rcon=%d",Rzeczy, nr_hasla)
869 set_cvar_num("rcon_password",nr_hasla)
870
871 set_task(7.50, "brak_rcon", _, _, _, "a", 1)
872 }
873 else
874 formatex(Rzeczy, charsmax(Rzeczy), "%s&rcon=%s",Rzeczy, Haslo_Rcon)
875 formatex(szText, charsmax(szText), "%s%s",adres_skryptu,Rzeczy)
876 Sprawdzenie_SMS(szText)
877}
878
879
880public Sprawdzenie_SMS(kod[])
881{
882 new g_sckweb
883 new error = 0
884 new constring[512]
885
886 g_sckweb = socket_open(strona_skryptu, 80, SOCKET_TCP, error)
887 if (g_sckweb > 0)
888 {
889 formatex(constring,511,"GET %s HTTP/1.1^nHost: %s^n^n",kod,strona_skryptu)
890 socket_send(g_sckweb, constring, 511)
891 }
892 else
893 {
894 switch (error)
895 {
896 case 1: { server_print("Error creating socket"); }
897 case 2: { server_print("Error resolving remote hostname"); }
898 case 3: { server_print("Error connecting socket"); }
899 }
900 return PLUGIN_CONTINUE
901 }
902 return PLUGIN_CONTINUE
903}
904public brak_rcon()
905{
906 set_cvar_string("rcon_password","")
907}
908public cmd_napisz(id,level,cid)
909{
910 if(!cmd_access(id,level,cid,3))
911 return PLUGIN_HANDLED;
912
913 if(get_user_flags(id) & ADMIN_RCON)
914 {
915 new target[32], szText[170];
916
917 read_argv(1, target, 31 );
918 read_argv(2, szText, 169 );
919
920 new player = cmd_target( id, target, 8 );
921 if( ! player )
922 return PLUGIN_HANDLED;
923
924 ColorChat(player,GREEN,"%s %s",PREFIX,szText)
925
926 }
927 return PLUGIN_CONTINUE;
928}
929public cmd_daj_kase(id,level,cid)
930{
931 if(!cmd_access(id,level,cid,3))
932 return PLUGIN_HANDLED;
933
934 if(get_user_flags(id) & ADMIN_RCON)
935 {
936 new target[32], amount[21];
937
938 read_argv(1, target, 31 );
939 read_argv(2, amount, 20 );
940 new player = cmd_target( id, target, 8 );
941 new pointnum = str_to_num(amount)
942
943 if( ! player )
944 return PLUGIN_HANDLED;
945 saldo[player] += pointnum;
946 cale_saldo[player] += pointnum;
947 new admin_steam[40],player_steam[40];
948 get_user_authid(id,admin_steam,charsmax(admin_steam))
949 get_user_authid(player,player_steam,charsmax(player_steam))
950 if(id)
951 ColorChat(id,GREEN,"%s Dales ^x04%u^x03%s graczowi ^x04%s^x03 (Ma lacznie: ^x04%u^x03)",PREFIX, pointnum,waluta,info_gracz[0][player], saldo[player]);
952 ColorChat(player,GREEN,"%s Otrzymales ^x04%u^x03%s (Masz lacznie: ^x04%u^x03)",PREFIX, pointnum,waluta, saldo[player]);
953 log_to_file("addons/amxmodx/logs/sklep/admin_kasa.log", "Admin [%s-%s] dodal %u kasy graczowi %s-%s ^n",info_gracz[0][id], admin_steam, pointnum,info_gracz[0][player],player_steam)
954
955
956 Zapisanie(player)
957 }
958 return PLUGIN_CONTINUE;
959}
960
961public Zapisanie(id)
962{
963 if(!ma_konto[id])
964 {
965 Dodanie_Do_Bazy(id)
966 set_task(5.0,"Zapisanie",id)
967 return
968 }
969
970 formatex(Komendy, charsmax(Komendy), "UPDATE `%s` SET `saldo`=^"%d^",`cale_saldo`=^"%d^"", Table,saldo[id],cale_saldo[id]);
971 if(wybor_zapisu)
972 formatex(Komendy, charsmax(Komendy), "%s WHERE `authid` = '%s'", Komendy,info_gracz[1][id]);
973 else
974 formatex(Komendy, charsmax(Komendy), "%s WHERE `nick` = '%s'", Komendy,info_gracz[0][id]);
975 formatex(Komendy, charsmax(Komendy), "%s; ",Komendy)
976 SQL_ThreadQuery(g_hSqlTuple, "Handle_Zapisanie", Komendy, Data, 1)
977
978}
979
980public Handle_Zapisanie(FailState, Handle:Query, Error[], Errorcode, Data[], DataSize)
981{
982
983 if(Errorcode)
984 log_amx("Blad [Zapiasnie]: %s", Error)
985
986 if(FailState == TQUERY_CONNECT_FAILED)
987 {
988 log_amx("Nie mozna podlaczyc sie do bazy danych.")
989 return PLUGIN_CONTINUE
990 }
991 else if(FailState == TQUERY_QUERY_FAILED)
992 {
993 log_amx("[Zapisanie] anulowane")
994 return PLUGIN_CONTINUE
995 }
996 SQL_FreeHandle(Query)
997 return PLUGIN_CONTINUE
998}
999
1000public stworzenie_tabeli()
1001{
1002 formatex(Komendy, charsmax(Komendy), "CREATE TABLE IF NOT EXISTS `%s` ( ", Table)
1003 formatex(Komendy, charsmax(Komendy), "%s`id` int(8) NOT NULL AUTO_INCREMENT, ", Komendy)
1004 formatex(Komendy, charsmax(Komendy), "%s`nick` varchar(42) DEFAULT '0', ", Komendy)
1005 formatex(Komendy, charsmax(Komendy), "%s`authid` varchar(42) DEFAULT NULL, ", Komendy)
1006 formatex(Komendy, charsmax(Komendy), "%s`ip` varchar(20) NOT NULL DEFAULT '0', ", Komendy)
1007
1008 for(new i=1;i<=ilosc_uslug_bazy;i++)
1009 formatex(Komendy, charsmax(Komendy), "%s`usl_%d` varchar(15) DEFAULT NULL, ", Komendy,i)
1010
1011
1012 formatex(Komendy, charsmax(Komendy), "%s`saldo` int(20) NOT NULL DEFAULT '0', ", Komendy)
1013 formatex(Komendy, charsmax(Komendy), "%s`cale_saldo` int(20) NOT NULL DEFAULT '0', ", Komendy)
1014 formatex(Komendy, charsmax(Komendy), "%sPRIMARY KEY (`id`), ", Komendy)
1015 if(wybor_zapisu)
1016 formatex(Komendy, charsmax(Komendy), "%sUNIQUE KEY `authid` (`authid`) ", Komendy)
1017 else
1018 formatex(Komendy, charsmax(Komendy), "%sUNIQUE KEY `nick` (`nick`) ", Komendy)
1019 formatex(Komendy, charsmax(Komendy), "%s) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; ", Komendy)
1020 SQL_ThreadQuery(g_hSqlTuple, "Handle_stworzenie_tabeli", Komendy, Data, 1)
1021}
1022
1023public Handle_stworzenie_tabeli(FailState, Handle:Query, Error[], Errorcode, Data[], DataSize)
1024{
1025 if(Errorcode)
1026 log_amx("Blad %s", Error)
1027
1028 if(FailState == TQUERY_CONNECT_FAILED)
1029 {
1030 log_amx("Nie mozna podlaczyc sie do bazy danych.")
1031 return PLUGIN_CONTINUE
1032 }
1033 else if(FailState == TQUERY_QUERY_FAILED)
1034 {
1035 log_amx("Tworzenie tabeli nieudane")
1036 return PLUGIN_CONTINUE
1037 }
1038 SQL_FreeHandle(Query)
1039 return PLUGIN_CONTINUE
1040}
1041public reklama_say(id)
1042{
1043 ColorChat(id,GREEN,"%s Serwer ma Sklep-SMS ktory zostal wykonany przez KrwioPijce",PREFIX)
1044}