#include #include #include #include #include #include #include #define PLUGIN "Jail Gangi" #define VERSION "1.0" #define AUTHOR "Cypis" #define MAX_PEOPLE 5 #define MIN_ZYCZENIA 10 enum GANG_FLAGS { USER = 0, ADMINS, ASSIST } new const user_ranga[][] = {"", " (Zalozyciel)", " (Zastepca)"}; new GANG_FLAGS:user_flags[33]; new user_gang[33]; new bool:user_wczytalo[33]; new bool:create_gang[33]; new nazwa_gracza[33][35]; new Handle:info; new gszQuery[512+256]; new Trie:gnGangName new Trie:gnGangIle; new user_zyczenia[33]; new user_bunty[33]; new bool:nielicz; new msgid_sayText; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); RegisterHam(Ham_Killed, "player", "SmiercGraczaPost", 1); register_clcmd("say /rankg", "RankStats"); register_clcmd("say /topg", "Top15"); register_clcmd("say /gang", "MenuGang"); register_clcmd("say /gangi", "MenuGang"); register_clcmd("nazwa_gangu", "CreateNameGang"); register_clcmd("say_team", "cmdSayGang"); msgid_sayText = get_user_msgid("SayText"); } public plugin_cfg() { new pcvar_host, pcvar_user, pcvar_pass, pcvar_db; new szHost[32], szUser[32], szPass[32], szDb[32]; pcvar_host = register_cvar("jail_gang_host", "ip"); pcvar_user = register_cvar("jail_gang_user", "login"); pcvar_pass = register_cvar("jail_gang_pass", "haslo"); pcvar_db = register_cvar("jail_gang_db", "database"); get_pcvar_string(pcvar_host, szHost, 31); get_pcvar_string(pcvar_user, szUser, 31); get_pcvar_string(pcvar_pass, szPass, 31); get_pcvar_string(pcvar_db, szDb, 31); info = SQL_MakeDbTuple(szHost, szUser, szPass, szDb); new error, szError[128]; new Handle:hConn = SQL_Connect(info, error, szError, 127); if(error){ log_amx("[Gangi] Error: %s", szError); return; } gnGangName = TrieCreate(); gnGangIle = TrieCreate(); new Handle:query; SQL_FormatQuery("CREATE TABLE IF NOT EXISTS `GangName` (`id` int(10) NOT NULL AUTO_INCREMENT, `Name` varchar(32) NOT NULL, `Ilosc` int(10) NOT NULL DEFAULT '1', PRIMARY KEY (`id`));") query = SQL_PrepareQuery(hConn, gszQuery) SQL_Execute(query) SQL_FreeHandle(query); SQL_FormatQuery("CREATE TABLE IF NOT EXISTS `GangUser` (`id` int(10) NOT NULL DEFAULT '0', `Name` varchar(32) NOT NULL, `Zabicia` int(10) NOT NULL DEFAULT '0', `Zyczenia` int(10) NOT NULL DEFAULT '0', `Flaga` int(5) NOT NULL DEFAULT '0', PRIMARY KEY (`Name`));"); query = SQL_PrepareQuery(hConn, gszQuery); SQL_Execute(query) SQL_FreeHandle(query); query = SQL_PrepareQuery(hConn,"SELECT * FROM `GangName` WHERE 1"); if(!SQL_Execute(query)) { SQL_QueryError(query, szError, 127); log_amx("[Gangi] Nie mozna zaladowac gangow (%s)", szError); } else if(SQL_NumResults(query)) { new szNazwa[32], szInt[10]; while(SQL_MoreResults(query)) { num_to_str(SQL_ReadResult(query, 0), szInt, 9); SQL_ReadResult(query, 1, szNazwa, 31); TrieSetCell(gnGangIle, szInt, SQL_ReadResult(query, 2)); // numer gangu przypisany do ilosci ludzi w nim TrieSetString(gnGangName, szInt, szNazwa); // numeru gangu przypisana do nazwy gangu SQL_NextRow(query); } SQL_FreeHandle(query); } SQL_FreeHandle(hConn); } //RANK STATS public RankStats(id) { new menu = menu_create("Rank Stats:", "Handel_RankStats"); menu_additem(menu, "Twoj rank BuntĂłw"); menu_additem(menu, "Twoj rank Zyczen"); menu_setprop(menu, MPROP_EXITNAME, "Wyjdz"); menu_display(id, menu); } public Handel_RankStats(id, menu, item) { if(item == MENU_EXIT) return; new data[2]; data[0] = id; data[1] = item; SQL_FormatQuery("SELECT COUNT(*) FROM `GangUser` WHERE `%s` >= %d;", item? "Zyczenia": "Zabicia", item? user_zyczenia[id]: user_bunty[id]); SQL_ThreadQuery(info, "PobierzRank", gszQuery, data, 2); } public PobierzRank(failstate, Handle:query, error[], errnum, data[], size){ if(failstate != TQUERY_SUCCESS){ log_amx(" Error: %s", error); return; } new id = data[0]; if(!is_user_connected(id) && !is_user_connecting(id)) return; ColorChat(id, TEAM_COLOR, "^x04[RANK]^x01 Masz ^x03%i^x01 %s zajmujesz miejsce ^x03%i", data[1]? user_zyczenia[id]: user_bunty[id], data[1]? "zyczen": "buntow", SQL_ReadResult(query, 0)); } //TOP 15 public Top15(id) { new menu = menu_create("Top 15:", "Handel_Top"); menu_additem(menu, "Top 15 BuntĂłw"); menu_additem(menu, "Top 15 Zyczen"); menu_setprop(menu, MPROP_EXITNAME, "Wyjdz"); menu_display(id, menu); } public Handel_Top(id, menu, item) { if(item == MENU_EXIT) return; new data[2]; data[0] = id; data[1] = item; SQL_FormatQuery("SELECT * FROM `GangUser` ORDER BY `%s` DESC LIMIT 15", item? "Zyczenia": "Zabicia"); SQL_ThreadQuery(info, "PobierzTop", gszQuery, data, 2); } public PobierzTop(failstate, Handle:query, error[], errnum, data[], size){ if(failstate != TQUERY_SUCCESS){ log_amx(" Error: %s", error); return; } new id = data[0]; if(!is_user_connected(id) && !is_user_connecting(id)) return; if(SQL_NumRows(query)) { new buffer[2048], szName[41], iLen=0, i=0; iLen = copy(buffer[iLen], 2047-iLen, ""); iLen += formatex(buffer[iLen], 2047-iLen, "
# Gracz: Najwiecej %s", (data[1]? "Życzeń": "Buntów")); while(SQL_MoreResults(query)) { SQL_ReadResult(query, 1, szName, 40); replace_all(szName, 40, "<", "<"); replace_all(szName, 40, ">", ">"); iLen += formatex(buffer[iLen], 2047-iLen, "
%i. %s %i", ((i%2)==0)? "" :" bgcolor=#A4BED6", i+1, szName, SQL_ReadResult(query, (data[1]? 3: 2))); i++; SQL_NextRow(query); } iLen += copy(buffer[iLen], 2047-iLen, "
"); show_motd(id, buffer, "Top 15") } } //MENU GANGU public MenuGang(id) { if(!user_wczytalo[id] || create_gang[id]) return; new menu = menu_create("Menu Gangu:", "Handel_Gang"); if(!user_gang[id]) { menu_additem(menu, "Stworz Gang y(10+ Zyczen)", "0"); } else { if(user_flags[id] == ADMINS) { menu_additem(menu, "Dodaj czlonka do swojego Gangu", "2"); menu_additem(menu, "Usun czlonka Gangu^n", "3"); menu_additem(menu, "Czlonkowie Gangu", "5"); menu_additem(menu, "Ustaw range dla czlonka^n", "7"); menu_additem(menu, "yUsun swoj Gang", "4"); } else { menu_additem(menu, "yOpusc Gang^n", "1"); if(user_flags[id] == ASSIST) { menu_additem(menu, "Dodaj czlonka do swojego Gangu", "2"); menu_additem(menu, "Usun czlonka Gangu^n", "3"); } menu_additem(menu, "Czlonkowie Gangu", "5"); } } menu_setprop(menu, MPROP_EXITNAME, "Wyjdz"); menu_display(id, menu); } public Handel_Gang(id, menu, item) { if(item == MENU_EXIT) return; new szItem[3], id2; menu_item_getinfo(menu, item, id2, szItem, 2, _, _, id2); switch(str_to_num(szItem)) { case 0:{ if(!WymaganiaDoGangu(id)) return; client_cmd(id, "messagemode nazwa_gangu"); } case 1: { new menu2 = menu_create("Czy na pewno chcesz opuscic swoj Gang?", "Handel_OpuscGang"); menu_additem(menu2, "yTak"); menu_additem(menu2, "Nie"); menu_display(id, menu2); } case 2: { new szInt[3], menu2 = menu_create("Wyslij zaproszenie do Gangu:", "Handel_ZaproszenieDoGangu"); for(new i=1; i<=32; i++) { if(!is_user_connected(i) || user_gang[i] || is_user_hltv(i)) continue; num_to_str(i, szInt, 2); menu_additem(menu2, nazwa_gracza[i], szInt); } menu_setprop(menu2, MPROP_EXITNAME, "Wyjdz"); menu_display(id, menu2); } case 3: { new data[1]; data[0] = id; SQL_FormatQuery("SELECT `Name` FROM `GangUser` WHERE `id` = '%i' AND NOT `Flaga` = '%d'", user_gang[id], _:ADMINS); SQL_ThreadQuery(info, "UsunCzlonkaGangu", gszQuery, data, 1); } case 4: { new menu2 = menu_create("Czy na pewno chcesz usunac swoj Gang?", "Handel_UsunGang"); menu_additem(menu2, "yTak"); menu_additem(menu2, "Nie"); menu_display(id, menu2); } case 5: { new data[1]; data[0] = id; SQL_FormatQuery("SELECT `Name`,`Flaga` FROM `GangUser` WHERE `id` = '%i';", user_gang[id]); SQL_ThreadQuery(info, "PokazCzlonkaGangu", gszQuery, data, 1); } case 7: { new data[1]; data[0] = id; SQL_FormatQuery("SELECT `Name`,`Flaga` FROM `GangUser` WHERE `id` = '%i' AND NOT `Flaga` = '%d';", user_gang[id], _:ADMINS); SQL_ThreadQuery(info, "UstawRangCzlonka", gszQuery, data, 1); } } } //ODEJSCIE OD GANGU public Handel_OpuscGang(id, menu, item) { if(item == MENU_EXIT || item == 1) return; UstawIloscGangu(user_gang[id], -1); user_gang[id] = 0; user_flags[id] = USER; SQL_FormatQuery("UPDATE `GangUser` SET `id` = '0', `Flaga` = '0' WHERE `Name` = '%s';", nazwa_gracza[id]); SQL_ThreadQuery(info, "ZapiszDane", gszQuery); ColorChat(id, GREEN, "[GANG]^x01 Opusciles swoj Gang."); OldPlayerName(id); } //USUWANIE CALKOWICIE GANGU public Handel_UsunGang(id, menu, item) { if(item == MENU_EXIT || item == 1) return; for(new i=1; i<=32; i++) { if(user_gang[id] == user_gang[i] && id != i) { user_gang[i] = 0; user_flags[i] = USER; OldPlayerName(i); } } SQL_FormatQuery("UPDATE `GangUser` SET `id` = '0', `Flaga` = '0' WHERE `id` = '%i';", user_gang[id]); SQL_ThreadQuery(info, "ZapiszDane", gszQuery); SQL_FormatQuery("DELETE FROM `GangName` WHERE `id` = '%i';", user_gang[id]); SQL_ThreadQuery(info, "ZapiszDane", gszQuery); new StrItem[10]; num_to_str(user_gang[id], StrItem, 9); TrieDeleteKey(gnGangIle, StrItem); //USUNIECIE ILOSCI LUDZI Z GANGU user_gang[id] = 0; user_flags[id] = USER; ColorChat(id, GREEN, "[GANG]^x01 Usuneles swoj Gang."); OldPlayerName(id); } //ZAPROSZENIE DO GANGU public Handel_ZaproszenieDoGangu(id, menu, item) { if(item == MENU_EXIT) return; if(PobierzIloscGangu(user_gang[id]) >= MAX_PEOPLE) { client_print(id, 3, "[GANG] Masz za duzo czlonkow w Gangu (%d)", MAX_PEOPLE); return; } new szInt[3], id2; menu_item_getinfo(menu, item, id2, szInt, 2, _, _, id2); id2 = str_to_num(szInt); ColorChat(id, GREEN, "[GANG]^x01 Wyslales zaproszenie %s do swojego Gangu", nazwa_gracza[id2]); new szTemp[128], menu2; formatex(szTemp, 127, "%s zaprosil cie, abys dolaczyl do Gangu", nazwa_gracza[id]); menu2 = menu_create(szTemp, "Handel_DostalZaproszenie"); num_to_str(id, szInt, 2); menu_additem(menu2, "Akceptuj", szInt); menu_additem(menu2, "Odrzuc", szInt); menu_setprop(menu2, MPROP_EXITNAME, "Wyjdz"); menu_display(id2, menu2); ColorChat(id2, GREEN, "[GANG]^x01 %s wyslal tobie zaproszenie do swojego Gangu", nazwa_gracza[id]); } public Handel_DostalZaproszenie(id, menu, item) { if(item == MENU_EXIT) return; new szInt[3], id2; menu_item_getinfo(menu, item, id2, szInt, 2, _, _, id2); id2 = str_to_num(szInt); if(PobierzIloscGangu(user_gang[id2]) >= MAX_PEOPLE) return; ColorChat(id2, GREEN, "[GANG]^x01 %s%s przyja twojego zaproszenia do Gangu", nazwa_gracza[id], item? " nie": ""); if(item == 1) return; UstawIloscGangu(user_gang[id2], 1); SQL_FormatQuery("UPDATE `GangUser` SET `id` = '%i' WHERE `Name` = '%s';", user_gang[id2], nazwa_gracza[id]); SQL_ThreadQuery(info, "ZapiszDane", gszQuery); user_gang[id] = user_gang[id2]; NewPlayerName(id); } //CZLONKOWIE GANGU public PokazCzlonkaGangu(failstate, Handle:query, error[], errnum, data[], size){ if(failstate != TQUERY_SUCCESS){ log_amx(" Error: %s", error); return; } new id = data[0]; if(!is_user_connected(id) && !is_user_connecting(id)) return; if(SQL_NumRows(query)) { new szName[64], menu = menu_create("Czlonkowie Gangu:", "Handel_CzlonkowieGangu"); while(SQL_MoreResults(query)) { SQL_ReadResult(query, 0, szName, 63); add(szName, 63, user_ranga[SQL_ReadResult(query, 1)]); menu_additem(menu, szName); SQL_NextRow(query); } menu_setprop(menu, MPROP_EXITNAME, "Wyjdz"); menu_display(id, menu); } } public Handel_CzlonkowieGangu(id, menu, item) { if(item == MENU_EXIT) return; menu_display(id, menu, item/7); } //USUWANIE LUDZI Z GANGU public UsunCzlonkaGangu(failstate, Handle:query, error[], errnum, data[], size){ if(failstate != TQUERY_SUCCESS){ log_amx(" Error: %s", error); return; } new id = data[0]; if(!is_user_connected(id) && !is_user_connecting(id)) return; if(SQL_NumRows(query)) { new szName[32], menu = menu_create("Usun z Gangu:", "Handel_UsunZGangu"); while(SQL_MoreResults(query)) { SQL_ReadResult(query, 0, szName, 31); menu_additem(menu, szName, szName);//// SQL_NextRow(query); } menu_setprop(menu, MPROP_EXITNAME, "Wyjdz"); menu_display(id, menu); } } public Handel_UsunZGangu(id, menu, item) { if(item == MENU_EXIT) return; new szName[32], id2; menu_item_getinfo(menu, item, id2, szName, 32, _, _, id2); SQL_FormatQuery("UPDATE `GangUser` SET `id` = '0', `Flaga` = '%d' WHERE `Name` = '%s';", _:USER, szName);//// SQL_ThreadQuery(info, "ZapiszDane", gszQuery); UstawIloscGangu(user_gang[id], -1); id2 = get_user_index(szName);//// if(is_user_connected(id2)) { user_gang[id2] = 0; user_flags[id2] = USER; OldPlayerName(id2); } ColorChat(id, GREEN, "[GANG]^x01 Usuneles %s z Gangu", szName); } ////USTAWIANIE RANGI public UstawRangCzlonka(failstate, Handle:query, error[], errnum, data[], size){ if(failstate != TQUERY_SUCCESS){ log_amx(" Error: %s", error); return; } new id = data[0]; if(!is_user_connected(id) && !is_user_connecting(id)) return; if(SQL_NumRows(query)) { new szName[2][64], menu = menu_create("Ustaw range:", "Handel_UstawRangeCzlonka"); while(SQL_MoreResults(query)) { SQL_ReadResult(query, 0, szName[0], 63); formatex(szName[1], 63, "%s%s", szName[0], user_ranga[SQL_ReadResult(query, 1)]); menu_additem(menu, szName[1], szName[0]); SQL_NextRow(query); } menu_setprop(menu, MPROP_EXITNAME, "Wyjdz"); menu_display(id, menu); } } public Handel_UstawRangeCzlonka(id, menu, item) { if(item == MENU_EXIT) return; new szName[32], id2; menu_item_getinfo(menu, item, id2, szName, 31, _, _, id2); new szTemp[128], menu2; format(szTemp, 127, "Ustaw range dla %s", szName); menu2 = menu_create(szTemp, "Handel_UstawRangeCzlonkaGangu"); menu_additem(menu2, "Zadna", szName); menu_additem(menu2, "Zastepca", szName); menu_setprop(menu2, MPROP_EXITNAME, "Wyjdz"); menu_display(id, menu2); } public Handel_UstawRangeCzlonkaGangu(id, menu, item) { if(item == MENU_EXIT) return; new szName[32], id2; menu_item_getinfo(menu, item, id2, szName, 32, _, _, id2); item = _:(item? ASSIST: USER); SQL_FormatQuery("UPDATE `GangUser` SET `Flaga` = '%d' WHERE `Name` = '%s';", item, szName);//// SQL_ThreadQuery(info, "ZapiszDane", gszQuery); id2 = get_user_index(szName);//// if(is_user_connected(id2)) { user_flags[id2] = GANG_FLAGS:item; ColorChat(id2, GREEN, "[GANG]^x01 %s ustawil ci range%s", nazwa_gracza[id], user_ranga[item]); } ColorChat(id, GREEN, "[GANG]^x01 Ustawiles range%s czlonkowi %s", user_ranga[item], szName); } //CZAT GANGU public cmdSayGang(id) { new said[3]; read_argv(1, said, 2); if(said[0] == '@' && said[1] == '@') { if(!user_gang[id]) return PLUGIN_CONTINUE; new message[192]; read_args(message, 191); remove_quotes(message); for(new i=1; i<=32; i++) { if(is_user_connected(i) && user_gang[id] == user_gang[i]) ColorChat(i, GREEN, "(GANG) %s : %s", nazwa_gracza[id], message[2]); } return PLUGIN_HANDLED; } return PLUGIN_CONTINUE; } /*public client_infochanged(id) { if(!is_user_connected(id) || !user_gang[id]) return PLUGIN_CONTINUE; new NewName[32], OldName[32]; get_user_name(id, OldName, 31); get_user_info(id, "name", NewName, 31); if(!equal(NewName, OldName)) NewPlayerName(id, true); return PLUGIN_CONTINUE; }*/ public client_putinserver(id) { if(is_user_hltv(id)) return; create_gang[id] = false; user_wczytalo[id] = false; user_gang[id] = 0; user_flags[id] = USER; user_bunty[id] = 0; user_zyczenia[id] = 0; get_user_name(id, nazwa_gracza[id], 34); replace_all(nazwa_gracza[id], 34, "'", "'"); replace_all(nazwa_gracza[id], 34, "`", "`"); new data[1]; data[0] = id; SQL_FormatQuery("SELECT * FROM `GangUser` WHERE `Name` = '%s';", nazwa_gracza[id]); SQL_ThreadQuery(info, "PobierzGang", gszQuery, data, 1); } public PobierzGang(failstate, Handle:query, error[], errnum, data[], size){ if(failstate != TQUERY_SUCCESS){ log_amx(" Error: %s", error); return; } new id = data[0]; if(!is_user_connected(id) && !is_user_connecting(id)) return; if(SQL_NumRows(query)) { user_gang[id] = SQL_ReadResult(query, 0);//id_gangu user_bunty[id] += SQL_ReadResult(query, 2);//zabicia user_zyczenia[id] += SQL_ReadResult(query, 3);//zyczenia user_flags[id] = GANG_FLAGS:SQL_ReadResult(query, 4);//flaga if(user_gang[id]) NewPlayerName(id); } else { SQL_FormatQuery("INSERT INTO `GangUser` (`Name`) VALUES ('%s');", nazwa_gracza[id]); SQL_ThreadQuery(info, "ZapiszDane", gszQuery); } user_wczytalo[id] = true; } ///TWORZENIE GANGU public CreateNameGang(id) { if(get_user_team(id) != 1 || !user_wczytalo[id]) return PLUGIN_HANDLED; if(!WymaganiaDoGangu(id)) return PLUGIN_HANDLED; if(create_gang[id]) { ColorChat(id, GREEN, "[GANG]^x01 Poczekaj trwa tworzenie twojego gangu"); return PLUGIN_HANDLED; } new szArgs[32]; read_args(szArgs, charsmax(szArgs)); remove_quotes(szArgs); if(strlen(szArgs) > 10) { ColorChat(id, GREEN, "[GANG]^x01 Za dluga nazwa gangu! Maksymalnie 10 liter"); return PLUGIN_HANDLED; } if(strfind(szArgs, "'") != -1 || strfind(szArgs, "`") != -1) { ColorChat(id, GREEN, "[GANG]^x01 Nie mozesz uzyc niedozwolonych znakow"); return PLUGIN_HANDLED; } new data[11]; copy(data[1], 10, szArgs); data[0] = id; SQL_FormatQuery("SELECT `id` FROM `GangName` WHERE `Name` = '%s';", szArgs); SQL_ThreadQuery(info, "SprawdzenieDostepnosci", gszQuery, data, 11); create_gang[id] = true; return PLUGIN_HANDLED; } public SprawdzenieDostepnosci(failstate, Handle:query, error[], errnum, data[], size){ if(failstate != TQUERY_SUCCESS){ log_amx(" Error: %s", error); return; } new id = data[0] if(SQL_NumRows(query)) { ColorChat(id, GREEN, "[GANG]^x01 Gang z taka nazwa juz istnieje."); create_gang[id] = false; return; } ColorChat(id, GREEN, "[GANG]^x01 Stworzyles gang^x03 %s", data[1]); SQL_FormatQuery("INSERT INTO `GangName` (`Name`) VALUES ('%s');", data[1]); SQL_ThreadQuery(info, "ZapiszDaneGang", gszQuery, data, 32); } public ZapiszDaneGang(failstate, Handle:query, error[], errnum, data[], size){ if(failstate != TQUERY_SUCCESS){ log_amx(" Error: %s", error); return; } SQL_FormatQuery("SELECT `id` FROM `GangName` WHERE `Name` = '%s';", data[1]); SQL_ThreadQuery(info, "PobierzGangID", gszQuery, data, 32); } public PobierzGangID(failstate, Handle:query, error[], errnum, data[], size){ if(failstate != TQUERY_SUCCESS){ log_amx(" Error: %s", error); return; } new id = data[0]; if(SQL_NumRows(query)) { user_gang[id] = SQL_ReadResult(query, 0); user_flags[id] = ADMINS; new szInt[10]; num_to_str(user_gang[id], szInt, 9); TrieSetCell(gnGangIle, szInt, 1); TrieSetString(gnGangName, szInt, data[1]); NewPlayerName(id); //log_amx("[Gangi] Stworzono gang %s (%i) przez %s", szDane, user_gang[id], nazwa_gracza[id]); SQL_FormatQuery("UPDATE `GangUser` SET `id` = '%i', `Flaga` = '%d' WHERE `Name` = '%s';", user_gang[id], _:ADMINS, nazwa_gracza[id]); SQL_ThreadQuery(info, "ZapiszDane", gszQuery); } create_gang[id] = false; } //inne public ZapiszDane(failstate, Handle:query, error[], errnum, data[], size){ if(failstate != TQUERY_SUCCESS){ log_amx(" Error: %s", error); return; } } stock SQL_FormatQuery(const szQuery[], ...){ vformat(gszQuery, charsmax(gszQuery), szQuery, 2); } //inne stock PobierzIloscGangu(gang) { new StrItem[10], ile; num_to_str(gang, StrItem, 9); TrieGetCell(gnGangIle, StrItem, ile); return ile; } stock UstawIloscGangu(gang, dodaj) { new StrItem[10], ile; num_to_str(gang, StrItem, 9); TrieGetCell(gnGangIle, StrItem, ile); TrieSetCell(gnGangIle, StrItem, ile+dodaj); SQL_FormatQuery("UPDATE `GangName` SET `Ilosc` = (`Ilosc` + %d) WHERE `id` = '%d';", dodaj, gang); SQL_ThreadQuery(info, "ZapiszDane", gszQuery); } stock bool:WymaganiaDoGangu(id) { if(!access(id, ADMIN_IMMUNITY)) { if(user_zyczenia[id] < MIN_ZYCZENIA) { client_print(id, 3, "[GANG] Masz za malo Zyczen, aby stworzyc swoj gang!"); return false; } } if(user_gang[id]) { client_print(id, 3, "[GANG] Masz juz gang"); return false; } return true; } stock NewPlayerName(id, bool:info=false) { set_msg_block(msgid_sayText, BLOCK_ONCE); new szInt[10], szName[32], szPrefix[12]; num_to_str(user_gang[id], szInt, 9); TrieGetString(gnGangName, szInt, szPrefix, 11); info? get_user_info(id, "name", szName, 31): get_user_name(id, szName, 31); format(szName, 31, "%s | %s", szPrefix, szName); set_user_info(id, "name", szName); //set_pev(id, pev_netname, szNewName) } stock OldPlayerName(id) { set_msg_block(msgid_sayText, BLOCK_ONCE); set_user_info(id, "name", nazwa_gracza[id]); } /////Zliczanie zyczen i buntow public OnLastPrisonerTakeWish(id) { nielicz = true; user_zyczenia[id]++; SQL_FormatQuery("UPDATE `GangUser` SET `Zyczenia` = (`Zyczenia` + 1) WHERE `Name` = '%s';", nazwa_gracza[id]); SQL_ThreadQuery(info, "ZapiszDane", gszQuery); } public SmiercGraczaPost(id, attacker, shouldgib) { if(!is_user_connected(id) || !is_user_connected(attacker)) return HAM_IGNORED; if(get_user_team(id) == 2 && get_user_team(attacker) == 1 && !nielicz) { user_bunty[attacker]++; SQL_FormatQuery("UPDATE `GangUser` SET `Zabicia` = (`Zabicia` + 1) WHERE `Name` = '%s';", nazwa_gracza[attacker]); SQL_ThreadQuery(info, "ZapiszDane", gszQuery); } return HAM_IGNORED; } public OnRemoveData() { nielicz = false; }