#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#define FLAGA_DOSTEPU_DO_KOMENDY ADMIN_KICK
#define MAKS_ILOSC_POSIADANYCH_PIENIEDZY 16000
new g_szTrescKomendy[] = "/daj_pieniadze";
new g_szPlikLogow[] = "debug_dajPieniadze.txt";
public plugin_init()
{
register_plugin("Dawanie/Zabieranie pieniedzy", "1.0" , "_McHappy");
register_clcmd("say", "hUchwytSay");
register_clcmd("say_team", "hUchwytSay");
}
public hUchwytSay(id)
{
new szWpisanyTekst[128]
read_args(szWpisanyTekst, charsmax(szWpisanyTekst));
remove_quotes(szWpisanyTekst);
new szTrescWpisanejKomendy[32];
strbreak(szWpisanyTekst, szTrescWpisanejKomendy, charsmax(szTrescWpisanejKomendy), szWpisanyTekst, charsmax(szWpisanyTekst));
log_to_file(g_szPlikLogow, "--------------------------------------------^n^n");
log_to_file(g_szPlikLogow, "[0] hUchwytSay Start ^"%s^" | ^"%s^" | ^"%s^"", szTrescWpisanejKomendy, szWpisanyTekst, g_szTrescKomendy);
if(!equali(szTrescWpisanejKomendy, g_szTrescKomendy))
return PLUGIN_CONTINUE;
new szWpisanyNickGracza[32], iGraczDocelowy;
strbreak(szWpisanyTekst, szWpisanyNickGracza, charsmax(szWpisanyNickGracza), szWpisanyTekst, charsmax(szWpisanyTekst));
log_to_file(g_szPlikLogow, "[1] hUchwytSay NickFilter ^"%s^" | ^"%s^"", szWpisanyNickGracza, szWpisanyTekst);
if(!(iGraczDocelowy = cmd_target(id, szWpisanyNickGracza, 0)))
{
log_to_file(g_szPlikLogow, "[2] hUchwytSay NickFilter_ErrNoTarget");
if(szWpisanyNickGracza[0])
client_print(id, print_center, "Nie znaleziono gracza z nickiem podobnym do ^"%s^"...", szWpisanyNickGracza);
return PLUGIN_HANDLED;
}
new iWpisanaIloscPieniedzy, bool:bTrybOdejmowania;
if((bTrybOdejmowania = (szWpisanyTekst[0] == '-')))
replace(szWpisanyTekst, charsmax(szWpisanyTekst), "-", "");
log_to_file(g_szPlikLogow, "[3] hUchwytSay MoneyFilter_CheckNeg ^"%d^" | ^"%s^"", bTrybOdejmowania, szWpisanyTekst);
if(!(iWpisanaIloscPieniedzy = str_to_num(szWpisanyTekst)))
{
log_to_file(g_szPlikLogow, "[4] hUchwytSay NegMoneyFilter_Err0");
client_print(id, print_center, "Ilosc pieniedzy musi byc liczba niezerowa...");
return PLUGIN_HANDLED;
}
new iDeltaIlosciPieniedzy, iIloscPieniedzyGraczaDocelowego = cs_get_user_money(iGraczDocelowy);
if(bTrybOdejmowania)
{
if(!iIloscPieniedzyGraczaDocelowego)
{
log_to_file(g_szPlikLogow, "[5] hUchwytSay NegMoneyFilter_ErrNoMoney");
client_print(id, print_center, "Wybrany gracz nie posiada zadnych pieniedzy...");
return PLUGIN_HANDLED;
}
iDeltaIlosciPieniedzy = clamp(iWpisanaIloscPieniedzy, 1, iIloscPieniedzyGraczaDocelowego);
cs_set_user_money(iGraczDocelowy, iIloscPieniedzyGraczaDocelowego - iDeltaIlosciPieniedzy, 1);
}
else
{
if(iIloscPieniedzyGraczaDocelowego >= MAKS_ILOSC_POSIADANYCH_PIENIEDZY)
{
log_to_file(g_szPlikLogow, "[5] hUchwytSay MoneyFilter_ErrMaxMoney");
client_print(id, print_center, "Wybrany gracz posiada maksymalna ilosc pieniedzy...");
return PLUGIN_HANDLED;
}
iDeltaIlosciPieniedzy = clamp(iWpisanaIloscPieniedzy, 1, MAKS_ILOSC_POSIADANYCH_PIENIEDZY-iIloscPieniedzyGraczaDocelowego);
cs_set_user_money(iGraczDocelowy, iIloscPieniedzyGraczaDocelowego + iDeltaIlosciPieniedzy, 1);
}
log_to_file(g_szPlikLogow, "[4] hUchwytSay MoneyFilter_Finalize ^"%d^" | ^"%d^" | ^"%d^" | ^"%d^"", iIloscPieniedzyGraczaDocelowego, iWpisanaIloscPieniedzy, iDeltaIlosciPieniedzy, bTrybOdejmowania);
new szNazwaGracza[32], szNazwaAdmina[32];
get_user_name(iGraczDocelowy, szNazwaGracza, charsmax(szNazwaGracza))
get_user_name(id, szNazwaAdmina, charsmax(szNazwaAdmina));
client_print(0, print_chat, "[ Informacja ] Admin %s %s %d dolarow graczowi %s.", szNazwaAdmina, (bTrybOdejmowania ? "zabral" : "dodal"), iDeltaIlosciPieniedzy, szNazwaGracza);
return PLUGIN_HANDLED;
}