Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Wklejka 1ftmo7wlcfj4o dodana przez Flk, 24.01.2013 01:37
Typ:



gang
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
507.
508.
509.
510.
511.
512.
513.
514.
515.
516.
517.
518.
519.
520.
521.
522.
523.
524.
525.
526.
527.
528.
529.
530.
531.
532.
533.
534.
535.
536.
537.
538.
539.
540.
541.
542.
543.
544.
545.
546.
547.
548.
549.
550.
551.
552.
553.
554.
555.
556.
557.
558.
559.
560.
561.
562.
563.
564.
565.
566.
567.
568.
569.
570.
571.
572.
573.
574.
575.
576.
577.
578.
579.
580.
581.
582.
583.
584.
585.
586.
587.
588.
589.
590.
591.
592.
593.
594.
595.
596.
597.
598.
599.
600.
601.
602.
603.
604.
605.
606.
607.
608.
609.
610.
611.
612.
613.
614.
615.
616.
617.
618.
619.
620.
621.
622.
623.
624.
625.
626.
627.
628.
629.
630.
631.
632.
633.
634.
635.
636.
637.
638.
639.
640.
641.
642.
643.
644.
645.
646.
647.
648.
649.
650.
651.
652.
653.
654.
655.
656.
657.
658.
659.
660.
661.
662.
663.
664.
665.
666.
667.
668.
669.
670.
671.
672.
673.
674.
675.
676.
677.
678.
679.
680.
681.
682.
683.
684.
685.
686.
687.
688.
689.
690.
691.
692.
693.
694.
695.
696.
697.
698.
699.
700.
701.
702.
703.
704.
705.
706.
707.
708.
709.
710.
711.
712.
713.
714.
715.
716.
717.
718.
719.
720.
721.
722.
723.
724.
725.
726.
727.
728.
729.
730.
731.
732.
733.
734.
735.
736.
737.
738.
739.
740.
741.
742.
743.
744.
745.
746.
747.
748.
749.
750.
751.
752.
753.
754.
755.
756.
757.
758.
759.
760.
761.
762.
763.
764.
765.
766.
767.
768.
769.
770.
771.
772.
773.
774.
775.
776.
777.
778.
779.
780.
781.
782.
783.
784.
785.
786.
787.
788.
789.
790.
791.
792.
793.
794.
795.
796.
797.
798.
799.
800.
801.
802.
803.
804.
805.
806.
807.
808.
809.
810.
811.
812.
813.
814.
815.
816.
817.
818.
819.
820.
821.
822.
823.
824.
825.
826.
827.
828.
829.
830.
831.
832.
833.
834.
835.
836.
837.
838.
839.
840.
841.
842.
843.
844.
845.
846.
847.
848.
849.
850.
851.
852.
853.
854.
855.
856.
857.
858.
859.
860.
861.
862.
863.
864.
865.
866.
867.
868.
869.
870.
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <celltrie>
#include <sqlx>
 
#include <jailbreak>
#include <colorchat>
 
#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("<Query> 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("<Query> 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, "<body bgcolor=#FFFFFF><table width=100%% cellpadding=2 cellspacing=0 border=0>");
        iLen += formatex(buffer[iLen], 2047-iLen, "<tr align=center bgcolor=#52697B><th width=5%%> # <th width=35%% align=left> Gracz: <th width=20%%> Najwiecej %s", (data[1]? "Życzeń": "Buntów"));
 
        while(SQL_MoreResults(query))
        {
            SQL_ReadResult(query, 1, szName, 40);
            replace_all(szName, 40, "<", "&lt;");
            replace_all(szName, 40, ">", "&gt;");
 
            iLen += formatex(buffer[iLen], 2047-iLen, "<tr align=center%s><td> %i. <td align=left> %s <td> %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, "</table></body>");
        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("<Query> 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("<Query> 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("<Query> 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("<Query> 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("<Query> 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("<Query> 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("<Query> 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("<Query> 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;
}

Dodanych wklejek: 4031
Powered By (Pav32) Pastebin © 2011