Jump to content

Recommended Posts

  • Root

[CS:GO] qJailBreak - Więźniowie vs Klawisze

Aktualna wersja: 1.0

 

OPIS

Na wstępie warto zaznaczyć, że pierwotna wersja (zamysł całego JB) należy do @ OG droso, a dokładniej mowa o udostępnionym przez niego jailbreak pod 1.6 na amxx. To on budował tego JB pod CS:GO w okolicach 2015/2016 roku. W 2020 roku doszło do pierwszego przepisania całej modyfikacji na nowo i właśnie na tym się skupię w tym temacie.

Na koniec dodam, że starałem się to opisać najprościej jak się da, pisząc to parę dni, głównie w nocy, więc jeśli coś jest niezrozumiałe lub niedokładne, daj znać w komentarzu.

 

Co oferuje modyfikacja?

Główne API, w którym znajdują się wszystkie najważniejsze "narzędzia" pozwalające zarządzać rozgrywką na serwerze.

Podstawowe:

  • Blokowanie informacji z gry
    Wszelkiego rodzaju informacje o kasie, ataku swojego, itp rzeczy zostały zablokowane
  • Blokowanie komend radio
  • Rozgrywka dzielona na dni
    Poniedziałek -> Niedziela
  • Powody zatrzymań, które podajemy w pliku
  • Zarządzanie celami
    Po przejściu na nową wersję zrezygnowałem z dodawania własnych przycisków do cel i aktualnie działa to na zasadzie pobranych obiektów, lecz w kolejnej wersji będzie możliwość wybrania z czego chce się korzystać
  • Własny system logów
    W folderze logs/qJail zapisywane są logi z danych zdarzeń dla silnika gry, np: wpisane freekill oraz decyzja
  • Menu broni
    Są dwie opcje, albo GUI czyli tak jakbyśmy kupowali broń w nromalnej rozgrywce, ale jest ona za darmo lub menu z dostępnymi broniami podanymi w configu
  • Prowadzący
    Jest jeden prowadzący, który jak sama nazwa wskazuje, prowadzi rozgrywkę i ma dostęp do większej ilości komend, które mają mu pozwolić lepiej zarządzać więzieniem
  • Leczenie więźniów
    Komenda która pozwala uleczyć więźniów gdy np: chcemy zrobić walkę
  • Freeday/Ghost
    Freeday to osoba, która ma specjalny kolor, nie może atakować klawiszy i po prostu lata sobie po mapie
    Ghost to osoba, która może złapać broń i traci wtedy też swój efekt oraz może zaatakować klawiszy
  • Zasada ostatniego więźnia
    Gdy zostaje ostatni więzień, odblokowuje mu się mikrofon (jeśli był wyłączony) i pozwala zdecydować co dalej można zrobić
  • Usunięto MVP z rozgrywki
  • Balans drużyn
    Cytat
  • Guard
    Cytat
  • Gangi
    Cytat

     

  • Respekt/Blunty/Rasy
    <Jeszcze nie opisane>
  • Kontrabandy
    <Jeszcze nie opisane>
  • Sklep za dolary
    <Jeszcze nie opisane>
  • Ruletka
    <Jeszcze nie opisane>
  • Menu
    <Jeszcze nie opisane>
  • Oznaczanie graczy kolorem
    <Jeszcze nie opisane>
  • Laser/Marker
    <Jeszcze nie opisane>
  • Root
    <Jeszcze nie opisane>
  • Spadochron
    <Jeszcze nie opisane>
  • Służby specjalne
    <Jeszcze nie opisane>
  • Emotki/Tańce Fortnite
    <Jeszcze nie opisane>

 

Tryby uruchamiane na graczach

Mody uruchamiane są przez natyw i resetowane po zakończeniu danego dnia

  1. Zarządzanie mikrofonem gracza
  2. Podstawowa komunikacja gdzie mówić może Klawisz, admin z włączonym voice, ostatni żywy, wszyscy gracze pomiędzy startem, a końcem rundy lub wszyscy więźniowie jeśli udzielimy im takich praw przez natyw
  3. Przenikanie przez siebie
    Sterowanie przez natyw przechodzeniem między graczami
  4. Spadochron
    Sterowanie przez natyw możliwością korzystania ze spadochronu przez graczy
  5. Tryb walki
    Sterowanie przez natyw możliwością walki więźniów między sobą
  6. Nieśmiertelność
    Sterowanie przez natyw możliwością uruchomienia god po stronie klawiszy lub więźniów
  7. Blokada ataku między drużynami
    Sterowanie przez natyw możliwością ataku Klawisz->Więzień | Więzień->Klawisz

Ustawienia dni

Służące do tworzenia zabaw lub dni na serwerze. To są tak zwane ustawienia dni, które resetują się na koniec każdego dnia

  1. Strażnik
    Ustawienie decydujące o tym czy możliwe jest ustalenie prowadzącego rozgrywki
  2. Przenikalność
    Ustawienie decydujące o tym czy gracze mają przez siebie przenikać czy też nie
  3. Leczenie
    Ustawienie decydujące o tym czy mają działać obiekty leczące
  4. Buntownik
    Ustawienie decydujące o tym czy zabicie strażnika ma oznaczać bunt czy też nie
  5. Menu broni
    Ustawienie decydujące o tym  jak ma działać menu broni. 1 - blokuje wszystkim | 2 - więźniowie mogą korzystać | 3 - wszyscy mgoą korzystać
  6. Restrykcje dla broni (poza granatami i healthshot)
    Ustawienie decydujące o podnoszeniu broni. 1 - zablokuj wszystkim | 2 - zablokuj więźniom | 3 - zablokuj klawiszom
  7. Kampienie/Afczenie
    Ustawienie decydujące o tym co należy zrobić z osobami stojącymi w miejscu. 1 - brak działań | 2 - uderzanie i informowanie o kampieniu
  8. Życzenia/Pojedynki
    Ustawienie decydujące o tym co należy zrobić z ostatnim żywym. 0 - klawisz decyduje o tym czy nadać życzenie | 1 - więzień otrzymuje życzenie z automatu | 2 - brak życzenia
  9. Ammo
    Ustawienie decydujące o odświeżaniu ammo co 5s. 1 - wszystkim | 2 - więźniom | 3 - klawiszom

Opis działania zostanie opisany przy zabawach

System Permisji

Tworzenie własnych grup permisji w oparciu o dostępne opcje, co ułatwia zarządzanie serwerem. Dodajemy tam flagę na daną grupę, immunitet który decyduje o tym na kim możemy używać komend z np: guard (jeśli ktoś ma większy immunitet, nie możemy nic mu zrobić), kolor tagu, sam tag oraz oczywiście permisje podane poniżej.

  1. Dostęp do Guard
    Dostęp do komend guard czyli takiego mini admina (zostanie opisany w dalszym tekście)
  2. Zarządzanie freeday/ghost
    Dostęp do menu, które pozwala nadawać/zdejmować freeday/ghost
  3. Zarządzanie celami
    Na ten moment dostęp do otwierania/zamykania celi omijająca posiadania prowadzącego
  4. Losowanie dwóch graczy
    Daje dostęp do opcji z menu, która pozwala wylosować dwóch graczy
  5. VoteKick Klawiszy
    W pluginie od votekick, sprawdza czy osoba z tym uprawnieniem jest dostępna i jeśli tak, to informuje o votekick na daną osobę, a także blokuje votekick gdy osoba z tym uprawnieniem jest dostępna
  6. FreeKill
    Dostęp do zarządzania freekill omijając prowadzącego
  7. Uruchamianie zabaw
    Dostęp do uruchamiania zabaw omijając prowadzącego
  8. Admin Voice
    Mówienie do wszystkich graczy po uruchomieniu
  9. Marker
    Dostęp do markera omijając prowadzącego
  10. Kolejka do Klawiszy
    Zarządzanie kolejką do klawiszy, np: wyrzucanie z niej lub czyszczenie całej kolejki
  11. Blokowanie dostępu do Klawiszy
    Zarządzanie banami na klawiszy, czyli dodawanie/usuwanie bana
  12. Event
    Dostęp do opcji eventowych
  13. Przeładowanie powodów
    Dostęp do przeładowania powodów, lecz planuje w przyszłości rozbudować to o
  14. Restart modyfikacji
    Dostęp do resetowania rozgrywki/przeładowania jej pluginów
  15. Komendy roota
    Dostęp do komend roota jak np: dodawnaie blunt, respektu, kasy, kontraband, teleportu etc oraz do wszystkich innych opcji, ponieważ jest to uprawnienie typu root

Własny system dolarów
(Można to włączyć lub wyłączyć w configu modyfikacji)

Usuwa z gry wszelkie informacje o dolarach, tworząc przy tym swoje własne w oparciu właśnie o te dostępne w grze, dzięki czemu możemy sami zbudować ekonomię serwera, co pozwoli lepiej dostosowywać wszelkiego rodzaju dodatki (np: sklepy) pod właśnie tę walutę. Domyślnie system dolarów w grze nie pasuje pod modyfikacje jailbreak, więc trzeba było skleić coś własnego.

Customowe informacje z gry

Usunięto informacje związane ze zdarzeniami z gry, np: dołączenie do danej drużyny, wyjście z serwera, itp, zastępując je własnymi, które bardziej oddają realizm rozgrywki

obraz.png

To samo tyczy się informacji po zakończeniu rundy gdzie mamy do dyspozycji aż 10 różnych zakończeń dnia, o których informuje na ekranie graczy.

obraz.png

     

    TWORZENIE GRUPY PERMISJI

    Tak wygląda sekcja z rolami, czyli permisjami. Znajduje się ona w głównym configu modyfikacji czyli w qJail.cfg

    	"RoleName"
    	{
    		// nazwa sekcji, to nazwa roli
    		// Jeżeli nie chcesz czegoś dodawać, nie musisz tego dopisywać - doda wtedy domyślnie 0
    
    		// Root jest na flagę "z".
    		// Ma dostęp do wszystkich opcji, ponieważ ustawiono mu uprawnienie root
    		"Root"
    		{
    			"flag"					"z"
    			"tagcolor"				"{darkred}"
    			"namecolor"				"{darkblue}"
    			"root"					"1"
    			"immunity"				"10"
    		}
    		// Admin jest na flagę "d". Kolor tagu jest zielony, a nick koloru drużyny, w której się znajduje
    		// Ma dostęp do: komend guard, votekick, zarządzania freekill oraz kolejką do klawiszy, admin voice, dodawania/usuwania bana na klawiszy, opcji eventowych
    		"Admin"
    		{
    			"flag"					"d"
    			"tagcolor"				"{green}"
    			"namecolor"				"{teamcolor}"
    			"guard"					"1"
    			"votekick"				"1"
    			"freekill"				"1"
    			"adminvoice"			"1"
    			"queuect"				"1"
    			"banct"					"1"
    			"event"					"1"
    			"immunity"				"2"		// Admin jest niższą rangą od roota, więc warto też dodać mu mniejszy immunitet by nie mógł wykonywać komend na root
    		}
    		// Tutaj dodałem wszystkie permisje, nawet jeśli ustawiłem przy nich 0 by pokazać które z nich są dostępne
    		// Guard ma tag o kolorze szarym oraz nick w kolorze drużyny, w której się znajduje. Jest na flagę "o"
    		// Ma on dostęp do: komend guard, zarządzania freekill, zarządzania kolejką do klawiszy
    		"Guard"
    		{
    			"flag"					"o"
    			"tagcolor"				"{grey}"
    			"namecolor"				"{teamcolor}"
    			"guard"					"1"
    			"specific"				"0"
    			"cell"					"0"
    			"semiclip"				"0"
    			"random"				"0"
    			"votekick"				"0"
    			"freekill"				"1"
    			"game"					"0"
    			"adminvoice"			"0"
    			"marker"				"0"
    			"queuect"				"1"
    			"banct"					"0"
    			"event"					"0"
    			"reloadreason"			"0"
    			"restart"				"0"
    			"rcmd"					"0"
    			"root"					"0"
    			"immunity"				"1"		// To samo co przy adminie, lecz guard nie będzie mógł też tego robić na adminie
    		}
    	}

     

    ZABAWY

    Modyfikacja pozwala tworzyć własne zabawy, które można uruchamiać w danym dniu. Przypisane do całej rozgrywki są dwie: niedziela+start to FreeDay czyli dzień wolny gdzie gracze mogą sobie biegać po mapie oraz KillDay, który jest zawsze w piątek i polega na walce między graczami.

    Tworzenie zabaw polega na rejestracji takiej zabawy w pluginie

    int g_iGameId = -1;
    
    public void OnPluginStart(/*void*/) {
    	if ( qjail_plugin_loaded() ) {
    		qJail_OnPluginStart();
    	}
    }
    
    public void qJail_OnPluginStart(/*void*/) {
    	g_iGameId = qjail_register_game("FreeDay dla wszystkich");
    }

    Następnie musimy stworzyć podstawowe ustawienia dnia wraz z jego nazwą wyświetlaną w okienku hint oraz opisie

    public void qJail_OnDayStartPre(int iDay, char szGameName[MAX_GAME_TITLE], char szGameDesc[MAX_GAME_DESC], int iDayData[sMAX]) {
    	// Dwa warunki sprawdzające, ponieważ ustaliliśmy, że 0 dzień, czyli niedziela, to freeday. Drugi warunek sprawdza czy to uruchomiona zabawa z menu
    	if ( iDay == dFREEDAY || iDay == g_iGameId ) {
    		// Tutaj podajemy nazwę zabawy wyświetlaną w hint (nie mylić z menu zabaw, bo tam jest nazwa, którą podaliśmy w rejestracji zabawy)
    		szGameName = "FreeDay";
    		// Tutaj podajemy opis zabawy
    		szGameDesc = "- Korzystaj z mapy :)!^n\
    			- Strażnicy zajmują GunRoom^n\
    			- Więźniowie z bronią (lub buntujący się/lub stojący w grupie ze zbuntowanymi) mogą zostać zabici!";
    		
    		// wszystkie te ustawienia zostały opisane powyżej
    		iDayData[sWARDEN] = 1;
    		iDayData[sSEMICLIP] = 2;
    		iDayData[sHEAL] = 0;
    		iDayData[sREBEL] = 0;
    		iDayData[sWEAPONMENU] = 0;
    		iDayData[sWEAPONUSE] = 0;
    		iDayData[sANTICAMP] = 0;
    		iDayData[sWISH] = 2;
    		iDayData[sAMMO] = 0;
    
    		qjail_set_prisoners_micro(true, true); // uruchamiamy więźniom możliwość mówienia
    	}
    }

    Oczywiście należy pamiętać o wyrejestrowaniu zabawy gdy plugin zostanie usunięty/wyłączony

    public void OnPluginEnd(/*void*/) {
    	qjail_unregister_game(g_iGameId);
    }

    Reszta to już kwestia dalszej konfiguracji zabawy, więc nie będę tego tutaj robił. Być może kiedyś opiszę to w nowym poście

     

    ŻYCZENIA / POJEDYNKI

    System życzeń jest przeznaczony dla ostatniego żywego gracza jako nagroda za jego pracę włożoną w przeżycie. Klawisz w normalnym trybie (lub tym ustalonym zgodnie z ustawieniami dnia) może zdecydować czy więzniowi przysługuje życzenie czy też nie, lecz można też z góry określić czy na danej zabawie gracz ma dostawać z automatu życzenie.

    Tworzenie życzeń nie rożni się za bardzo od zabaw

    int g_iWishFreeDay = -1;
    
    public void OnPluginStart(/*void*/) {
    	if ( qjail_plugin_loaded() ) {
    		qJail_OnPluginStart();
    	}
    }
    
    public void qJail_OnPluginStart(/*void*/) {
    	g_iWishFreeDay = qjail_register_wish("FreeDay dla mnie");
    }

    Oczywiście pamiętamy o wyrejestrowaniu życzenia jeśli usuniemy/wyłączymy plugin

    public void OnPluginEnd(/*void*/) {
    	qjail_unregister_wish(g_iWishFreeDay);
    }

    No i funkcja wywoływana gdy gracz odbierze daną nagrodę z menu

    public Action qJail_OnPlayerTakeWish(int iClient, int iWish) {
    	// Sprawdzamy czy życzenie jest tym, które tutaj zarejestrowalismy
    	if ( iWish == g_iWishFreeDay ) {
    		int iDay = qjail_get_day_id();
    		// sprawdzamy czy przypadkiem dzień nie jest przed killday lub gdy nadejdzie znowu niedziela i jeśli tak, to blokujemy odbiór
    		if ( iDay == (dKILLDAY - 1) || iDay == (dMAXDAY - 1) ) {
    			return Plugin_Stop; // blokuje odbiór życzenia
    		}
    
    		// reszta
    		PrintHintTextToAll("Freeday dla %N!", iClient);
    		qjail_set_user_freeday(iClient, true, true);
    		ForcePlayerSuicide(iClient);
    	}
    	return Plugin_Continue;
    }

     

    W głównym API jest podział na życzenia i pojedynki, które są także już gotowe i tworzymy je w configu, nie musimy grzebać w kodzie.
    Każdy z graczy otrzymuje jedną sztukę naboju/itemu i odświeża się to po danym czasie lub rzucie, etc

    "qJailDuel"
    {
    	// nazwa sekcji - podajesz kod broni z gry, czyli tak jakbyś wpisywał weapons_<nazwa broni>, ale bez weapons_
    	// 'name' - podajesz nazwę życzenia dla menu
    	// 'title' - tekst wyświetlający się w HINT po uruchomieniu pojedynku
    	"ssg08"
    	{
    		"name"					"Pojedynek na Scout"
    		"title"					"Bitwa na Scout"
    	}
    	"revolver"
    	{
    		"name"					"Pojedynek na Revolvery"
    		"title"					"Bitwa na Revolvery"
    	}
    	"knife"
    	{
    		"name"					"Pojedynek na Noże"
    		"title"					"Bitwa na Noże"
    	}
    	"hegrenade"
    	{
    		"name"					"Pojedynek na HE"
    		"title"					"Bitwa na HE"
    	}
    	"taser"
    	{
    		"name"					"Pojedynek na Zeusy"
    		"title"					"Bitwa na Zeusy"
    	}
    }

     

    CONFIG

    "Jail Qesik"
    {
    	"tag"							"Cs-Classic"	// Tutaj podajesz nazwę forum
    	"NeedCellVote"					"0.6"			// Procent głosów wymagany w vote dla otwarcia celi
    	"RepeatCmdTime"					"30.0"			// Czas po jakim można ponownie poprosić o powtórzenie poleceń strażnika
    	"FreeKillTime"					"30.0"			// Ile czasu ma gracz na zgłoszenie freekill
    	"FreeKillGodTime"				"10.0"			// Czas blokady Dmg dla osoby, która została ożywiona po FK. Ustaw 0.0 by gracz respił się w celi
    	"NameTag"						"[CSC]"			// Tag potrzebny dla danych zdarzeń, np: zdobywania większej ilości respektu
    
    	"EnableWeaponGUI"				"1"				// Ustawione na 1 włącza buyzone na całej mapie zgodnie z działaniem !bronie
    	"TeamBalanceRatio"				"5"				// Ilu wieźniów ma przypadać na Klawsza
    	"TeamBalanceMinMinutes"			"120"			// Ile minut musi przegrać gracz by móc dojść do Klawiszy (tylko GameME)
    
    	"JailerWeaponsPrimary"			"ak47;aug;awp;famas;galilar;m249;m4a1;m4a1_silencer;mac10;mag7;mp5sd;mp7;mp9;negev;nova;p90;sawedoff;sg556;ssg08;ump45;xm1014"
    	"JailerWeaponsSecondary"		"cz75a;deagle;elite;fiveseven;glock;hkp2000;p250;tec9;usp_silencer;revolver"
    
    	// kasa csgo
    	"OnMoneySystem"					"1"				// Uruchomić własny system kasy, wykorzystujący ten z csgo
    	"MoneyEventKillTT"				"150"			// Ile dolarów dostaje Więzień za zabicie innego Więźnia
    	"MoneyEventKillTCT"				"300"			// Ile dolarów dostaje Więzień za zabicie Klawisza
    	"MoneyEventKillCTT"				"400"			// Ile dolarów dostaje Klawisz za zabicie Więźnia
    	"MoneyEventKillDuelTT"			"150"			// Ile dolarów dostaje Więzień za zabicie w pojedynku
    	"MoneyEventKillDuelCT"			"150"			// Ile dolarów dostaje Klawisz za zabicie w pojedynku
    	"MoneyEventStartTT"				"300"			// Ile dolarów dostaje Więzień na start rundy
    	"MoneyEventStartCT"				"400"			// Ile dolarów dostaje Klawisz na start rundy
    	"MoneyEventWinTT"				"800"			// Ile dolarów dostaje Więzień za wygraną rundę
    	"MoneyEventWinCT"				"1700"			// Ile dolarów dostaje Klawisz za wygraną rundę
    	"MoneyEventLoseTT"				"450"			// Ile dolarów dostaje Więzień za przegraną rundę
    	"MoneyEventLoseCT"				"900"			// Ile dolarów dostaje Klawisz za przegraną rundę
    	"MoneyEventSurviveTT"			"200"			// Ile dolarów dostaje Więzień za przeżycie rundy
    	"MoneyEventSurviveCT"			"300"			// Ile dolarów dostaje Klawisz za przeżycie rundy
    	"MoneyEventWish"				"400"			// Ile dolarów za dotrwanie do życzenia przez Więźnia
    
    	// cbr
    	"CbrBoostHours"					"24-9"			// Godziny dla boost respektu
    	"CbrClassMaxLevel"				"5"				// Maksymalny poziom ras
    	"CbrDefaultChange"				"1"				// Ilość możliwych zmian ras na starcie
    	"CbrChangeClass"				"10000"			// Koszt zmiany rasy
    
    	"CbrChanceBlunt"				"600"			// Startowa wartość szansy na blunt 1/x
    	"CbrTagChanceBlunt"				"50"			// O ile zwiększyć szansę na blunt z tagiem 'NameTag'
    	"CbrBluntNameTag"				""				// Jaki tag potrzebny dla zaliczania czasu darmowego blunt (zostaw puste by bylo bez tagu)
    	"CbrFreeBluntMinJailers"		"1"				// Minimalna ilosc CT dla zliczania free blunt
    	"CbrFreeBluntHours"				"35"			// Ile godzin trzeba przegrać by otrzymać darmowego blunt
    	"CbrFreeBluntLast"				"10080"			// Ile czasu musi upłynąć od ostatniego odebrania darmowego blunt by móc wziąć kolejnego. Ustaw 0.0 by pominąć
    
    	"CbrTagRespectMultiplier"		"1.15"			// Mnożnik respektu z tagiem 'NameTag'. Ustaw 0.0 by pominąć
    	"CbrHoursRespectMultiplier"		"1.5"			// Mnożnik respektu dla danych godzin (Godziny: 'CbrBoostHours'). Ustaw 0.0 by pominąć
    	"CbrEventRespectMultiplier"		"0.0"			// Mnożnik respektu dla eventu. Ustaw 0.0 by pominąć
    
    	"CbrRespect2MinTT"				"25"			// Ile respektu dla więźniów z timera sprawdzającego wszystkich żywych. Ustaw 0.0 by pominąć
    	"CbrRespect2MinCT"				"18"			// Ile respektu dla klawiszy z timera sprawdzającego wszystkich żywych. Ustaw 0.0 by pominąć
    	"CbrRespect2MinTT"				"10"			// Ile respektu dla więźniów z timera sprawdzającego wszystkich graczy w grze. Ustaw 0.0 by pominąć
    	"CbrRespect2MinCT"				"25"			// Ile respektu dla klawiszy z timera sprawdzającego wszystkich graczy w grze. Ustaw 0.0 by pominąć
    	"CbrRespectWishTT"				"100"			// Ile respektu za bycie dotrwanie do życzenia jako więzień
    	"CbrRespectWishCT"				"50"			// Ile respektu za bycie dotrwanie do życzenia jako klawisz
    	"CbrRespectKillTT"				"5"				// Ile respektu za zabicie innego więźnia
    	"CbrRespectKillCT"				"5"				// Ile respektu za zabicie klawisza
    	"CbrRespectKillHS"				"5"				// Ile respektu bonusowego za headshot
    
    	"CbrRespectCostClass"			"15000,40000,60000,100000,150000"	// Koszt ulepszenia rasy na danym poziomie za respekt
    	"CbrBluntCostClass"				"1,2,3,4,5"		// Koszt ulepszenia rasy na danym poziomie za blunty
    
    	// ruletka
    	"RouletteCooldown"				"240"			// Cooldown dla ruletki
    	"RouletteFlag"					"r"				// Flaga dla ruletki, która blokuje negatywne losy. Zostaw puste by pominąć ten etap
    
    	// VoteKick Warden
    	"VoteKickMinPlayers"			"3"				// Minimalna ilość graczy by vote działał
    	"VoteKickTime"					"30.0"			// Po jakim czasie ma sprawdzić wynik głosów?
    	"VoteKickNeed"					"85.0"			// Wymagana (procentowo) ilość głosów
    
    	// Menu
    	"MenuRevisionTime"				"3.0"			// Czas rewizji. Ustaw 0.0 by zablokować opcje
    	"MenuRevisionDistance"			"75.0"			// Maksymalna odległość między więźniem, a przeszukującym klawiszem przy kradzieży/przeszukaniu
    	"MenuRebelMarkTime"				"40.0"			// Czas życia reszty graczy po wybraniu osoby do życzenia. ustaw na 0.0 by zablokować opcje
    	"MenuEmptyDeagleDistance"		"1000.0"		// Dystans dla pustego Deagle. Ustawi 0.0 by zablokować opcję
    	"MenuSurrenderEnable"			"0"				// Czy uruchomić opcje !poddaj
    
    	"RoleName"
    	{
    		// nazwa sekcji, to nazwa roli
    		// Jeżeli nie chcesz czegoś dodawać, nie musisz tego dopisywać - doda wtedy domyślnie 0
    		"Root"
    		{
    			"flag"					"z"
    			"tagcolor"				"{darkred}"
    			"namecolor"				"{darkblue}"
    			"root"					"1"
    			"immunity"				"10"
    		}
    		"Opiekun"
    		{
    			"flag"					"n"
    			"tagcolor"				"{orchid}"
    			"namecolor"				"{orange}"
    			"guard"					"1"
    			"specific"				"1"
    			"cell"					"1"
    			"semiclip"				"1"
    			"random"				"1"
    			"votekick"				"1"
    			"freekill"				"1"
    			"game"					"1"
    			"adminvoice"			"1"
    			"marker"				"1"
    			"queuect"				"1"
    			"banct"					"1"
    			"event"					"1"
    			"rcmd"					"1"
    			"immunity"				"5"
    		}
    		"Admin"
    		{
    			"flag"					"d"
    			"tagcolor"				"{green}"
    			"namecolor"				"{teamcolor}"
    			"guard"					"1"
    			"votekick"				"1"
    			"freekill"				"1"
    			"adminvoice"			"1"
    			"queuect"				"1"
    			"banct"					"1"
    			"event"					"1"
    			"immunity"				"2"
    		}
    		"Guard"
    		{
    			"flag"					"o"
    			"tagcolor"				"{grey}"
    			"namecolor"				"{teamcolor}"
    			"guard"					"1"
    			"specific"				"0"
    			"cell"					"0"
    			"semiclip"				"0"
    			"random"				"0"
    			"votekick"				"0"
    			"freekill"				"1"
    			"game"					"0"
    			"adminvoice"			"0"
    			"marker"				"0"
    			"queuect"				"1"
    			"banct"					"0"
    			"event"					"0"
    			"reloadreason"			"0"
    			"restart"				"0"
    			"rcmd"					"0"
    			"root"					"0"
    			"immunity"				"1"
    		}
    	}
    
    	"MarkColor"
    	{
    		"Brak koloru"
    		{
    			"tag"					"{default}"
    			"color"					"0,0,0"
    		}
    		"Żółty"
    		{
    			"tag"					"{yellow}"
    			"color"					"255,255,0"
    		}
    		"Aqua"
    		{
    			"tag"					"{lightblue}"
    			"color"					"0,255,255"
    		}
    		"Różowy"
    		{
    			"tag"					"{purple}"
    			"color"					"255,0,255"
    		}
    		"Zielony"
    		{
    			"tag"					"{green}"
    			"color"					"0,255,0"
    		}
    		"Czerwony"
    		{
    			"tag"					"{darkred}"
    			"color"					"255,0,0"
    		}
    		"Niebieski"
    		{
    			"tag"					"{blue}"
    			"color"					"0,0,255"
    		}
    		"Pomarańczowy"
    		{
    			"tag"					"{orange}"
    			"color"					"255,162,0"
    		}
    		"Fioletowy"
    		{
    			"tag"					"{violet}"
    			"color"					"213,0,255"
    		}
    	}
    }

     

    SPIS KOMEND

    Opisane zostały pod komendą !komendy z podziałem na dane drużyny lub grupy

    [Klawisz to osoba pilnująca więzienia. Może prowadzić rozgrywkę lub pomagać w tym innemu Klawiszowi Prowadzącemu]
    sm_warden                       - Zapisywanie/Wypisywanie do/z kolejki Klawiszy
    sm_ct                           - Zapisywanie/Wypisywanie do/z kolejki Klawiszy
    sm_w                            - Prowadzenie rozgrywki
    sm_warden                       - Prowadzenie rozgrywki
    sm_prowadz                      - Prowadzenie rozgrywki
    sm_zabawy                       - Menu zabaw
    sm_oddaj                        - Oddawanie prowadzącego rozgrywki
    sm_obsluga                      - Zarządzanie życzeniem więźnia
    sm_zyczenie                     - Zarządzanie życzeniem więźnia
    sm_open                         - Otwieranie celi
    sm_otworz                       - Otwieranie celi
    sm_close                        - Zamykanie celi
    sm_zamknij                      - Zamykanie celi
    sm_fk                           - Zarządzanie FreeKillami
    sm_freekill                     - Zarządzanie FreeKillami
    sm_ulecz <#id/@>                - Leczenie więźniów (@ by uleczyć wszystkich lub Id gracza)
    sm_heal <#id/@>                 - Leczenie więźniów (@ by uleczyć wszystkich lub Id gracza)
    sm_bron                         - Menu broni
    sm_bronie                       - Menu broni
    sm_gun                          - Menu broni
    sm_guns                         - Menu broni
    sm_box                          - Włączanie/Wyłączanie walki pomiędzy więźniami
    sm_mikro                        - Włączanie/Wyłączanie mikrofonu więźniom
    sm_mikrott                      - Włączanie/Wyłączanie mikrofonu więźniom
    sm_noblock                      - Włączanie/Wyłączanie przenikalności więźniom
    sm_nb                           - Włączanie/Wyłączanie przenikalności więźniom
    sm_przenikalnosc                - Włączanie/Wyłączanie przenikalności więźniom
    sm_przenikanie                  - Włączanie/Wyłączanie przenikalności więźniom
    sm_semiclip                     - Włączanie/Wyłączanie przenikalności więźniom
    sm_fd                           - Zarządzanie FreeDay/Duszkami
    sm_freeday                      - Zarządzanie FreeDay/Duszkami
    sm_duszek                       - Zarządzanie FreeDay/Duszkami
    sm_bunt                         - Oznaczanie buntowników do zabicia
    sm_przeszukaj                   - Przeszukiwanie więźnia
    sm_revision                     - Przeszukiwanie więźnia
    sm_poddaj                       - Menu z prośbami o poddanie się więźnia
    sm_mark                         - Oznaczanie graczy danym kolorem
    sm_oznacz                       - Oznaczanie graczy danym kolorem
    +laser                          - Włączanie laseru
    -laser                          - Wyłączanie laseru
    +marker                         - Włączanie markera
    -marker                         - Wyłączanie markera
    sm_flashlight                   - Włączanie/Wyłączanie laterki
    
    [Więźniowie mają za zadanie wykonywać polecenia Klawiszy i uczestniczyć w danych zabawach. Mogą przy okazji sie buntować]
    sm_bron                         - Menu broni
    sm_bronie                       - Menu broni
    sm_gun                          - Menu broni
    sm_guns                         - Menu broni
    sm_lr                           - Menu życzeń
    sm_zyczenia                     - Menu życzeń
    sm_fk <powod>                   - Zgłaszanie FreeKill
    sm_freekill <powod>             - Zgłaszanie FreeKill
    sm_cele                         - Głosowanie w sprawie otwarcia cel
    sm_stealweapon                  - Kradzież broni Klawiszowi
    sm_ukradnijbron                 - Kradzież broni Klawiszowi
    sm_poddaj                       - Zgłoś prośbę o powrót
    sm_votekickct                   - Głosowanie w sprawie wyrzucenia Klawisza
    sm_pojedynek                    - Ponowny wybór osoby do pojedynku
    
    [Wszystkie komendy, które nie są przypisane do danej drużyny]
    sm_ktoprowadzi                  - Informuje o tym kto jest prowadzącym
    sm_prowadzacy                   - Informuje o tym kto jest prowadzącym
    sm_wiezniow                     - Informacja o żywych/wszystkich więźniach
    sm_zywi                         - Informacja o żywych/wszystkich więźniach
    sm_stop                         - Zarządzanie muzyką na serwerze
    sm_muzyka                       - Zarządzanie muzyką na serwerze
    sm_vip                          - Opis VIP/SVIP
    sm_svip                         - Opis VIP/SVIP
    sm_czasgry                      - Czas gry spędzony na serwerze
    sm_kolejka                      - Menu z kolejką do Klawiszy
    sm_ct                           - Dołączanie do Klawiszy
    sm_warden                       - Dołączanie do Klawiszy
    sm_tt                           - Dołączanie do Więźniów
    sm_wiezien                      - Dołączanie do Więźniów
    sm_join                         - Dołączanie do Więźniów
    sm_dolacz                       - Dołączanie do Więźniów
    sm_team                         - Wybieranie drużyny
    sm_druzyna                      - Wybieranie drużyny
    sm_model                        - Wybór modeli dla danej drużyny
    sm_modele                       - Wybór modeli dla danej drużyny
    sm_skin                         - Wybór modeli dla danej drużyny
    sm_parachute                    - Wybór odpowiednich buttonów pod spadochron
    sm_spadochron                   - Wybór odpowiednich buttonów pod spadochron
    sm_tance                        - Wybór tańca z Fortnite
    sm_t                            - Wybór tańca z Fortnite
    sm_emotki                       - Wybór emotki z Fortnite
    sm_e                            - Wybór emotki z Fortnite
    sm_spray                        - Wybór spray
    +spray                          - Użycie Spray
     
    sm_rasa                         - Menu Ras wraz z bluntami/respekt
    sm_kontrabanda                  - Menu Kontraband
    sm_rynek                        - Menu Czarnego Rynku Kontraband
    sm_wystaw <kwota>               - Wystawianie Kontrabandy na Rynku
    sm_wymiana                      - Wymiana respektu/blunt
    sm_gang                         - Menu Gangów
    sm_gangi                        - Menu Gangów
    sm_stworzgang <nazwa>           - Tworzenie Gangu
    sm_zmiennazwe                   - Zmiana nazwy Gangu
    sm_usungang                     - Usuń Gang
    sm_transfer <ilosc>             - Wpłata respektu do Gangu
    sm_gtop                         - TOP Gangów
    sm_zadania                      - Cotygodniowe zadania
    sm_quest                        - Cotygodniowe zadania
     
    sm_los                          - Ruletka
    sm_ruletka                      - Ruletka
    sm_opisruletki                  - Opis Ruletki
    sm_sklep                        - Sklep za dolary
    sm_shop                         - Sklep za dolary
    sm_kup <item>                   - Zakup danej rzeczy w sklepie za dolary
     
    [Strażnik to osoba zajmująca się pilnowaniem porządku na serwerze]
    sm_g                            - Główne menu strażnika
    sm_guard                        - Główne menu strażnika
    sm_gkick <powod>                - Pozwala wyrzucić danego gracza na serwerze z lub bez powodu
    sm_gwyrzuc <powod>              - Pozwala wyrzucić danego gracza na serwerze z lub bez powodu
    sm_gban <powod>                 - Nakłada bana 30 minutowego na gracz z lub bez powodu
    sm_gkill <powod>                - Służy do zabijania graczy z lub bez powodu
    sm_gzabij <powod>               - Służy do zabijania graczy z lub bez powodu
    sm_gozyw                        - Pozwala ożywić danego gracza
    sm_gspawn                       - Pozwala ożywić danego gracza
    sm_gprzenies                    - Służy do przerzucania graczy między drużyną Klawiszy, a Więźniów
    sm_gprzerzuc                    - Służy do przerzucania graczy między drużyną Klawiszy, a Więźniów
    sm_gswap                        - Służy do przerzucania graczy między drużyną Klawiszy, a Więźniów
     
    [Wszystkie komendy z roota]
    sm_raddblunt <#id/nick> <ilosc>                 - Dodawanie blunt: z - zywi, w - wszyscy, ct - klawisze, tt - więźniowie
    sm_rsetblunt <#id/nick> <ilosc>                 - Ustawianie blunt
    sm_raddrespect <#id/nick> <ilosc>               - Dodawanie respektu: z - zywi, w - wszyscy, ct - klawisze, tt - więźniowie
    sm_rsetrespect <#id/nick> <ilosc>               - Ustawianie respektu
    sm_raddmoney <#id/nick> <ilosc>                 - Dodawanie kasy: z - zywi, w - wszyscy, ct - klawisze, tt - więźniowie
    sm_rsetmoney <#id/nick> <ilosc>                 - Ustawianie kasy
    sm_rsetcontraband <#id/nick> <id>               - Ustawianie kontrabandy
    sm_rbanct <#id/nick> <czas 0 - perm> <powód>    - Nadawanie bana na CT
    sm_runbanct <#id/nick>                          - Zdejmowanie bana na CT
    sm_rteleport <#id/nick>                         - Teleportowanie graczy/a do osoby wpisującej: ct - klawsze, tt - więźniowie

     

    NATIVE

    /**
     * Informacja o tym czy silnik został załadowany
     *
     * @return						True/False
     */
    native bool qjail_plugin_loaded();
    
    /**
     * Tworzenie zabawy na serwer
     *
     * @param szGameName			Nazwa zabawy
     * @return						Zwraca Id stworzonej zabawy
     */
    native int qjail_register_game(char szGameName[MAX_GAME_NAME]);
    
    /**
     * Tworzenie życzeń na serwer
     *
     * @param szWishName			Nazwa życzenia
     * @return						Zwraca Id stworzonego życzenia
     */
    native int qjail_register_wish(char szWishName[MAX_GAME_NAME]);
    
    /**
     * Usuwanie zabawy z serwera
     *
     * @param iGameId				Id zabawy
     * @noreturn
     */
    native void qjail_unregister_game(int iGameId);
    
    /**
     * Usuwanie życzenia z serwera
     *
     * @param iWishId				Id życzenia
     * @noreturn
     */
    native void qjail_unregister_wish(int iWishId);
    
    /**
     * Pobieranie dnia na serwerze (pon-niedziela)
     *
     * @return						Zwraca aktualny dzień
     */
    native int qjail_get_day_id();
    
    /**
     * Czy zabawa została uruchomiona?
     *
     * @return						True/False
     */
    native bool qjail_get_game_on();
    
    /**
     * Pobieranie id zabawy.
     *
     * @return						Zwraca id zabawy lub (gdy nie ma) qjail_get_day_id()
     */
    native int qjail_get_game_id();
    
    /**
     * Pobieranie id zabawy przez nazwę
     *
     * @param szGameName			Nazwa Zabawy
     * @return						Zwraca id zabawy lub 0 gdy nie znajdzie
     */
    native int qjail_get_game_id_by_name(char[] szGameName);
    
    /**
     * Uruchamianie zabawy o danym Id
     *
     * @param iGameId				Id zabawy
     * @param bNow					True oznacza uruchomienie bez sprawdzania warunków
     * @return						True/False
     */
    native bool qjail_set_play_game(int iGameId, bool bNow);
    
    /**
     * Uruchamia odliczania przy zabawach, pojedynkach, itp
     * Co każdą sekundę wywołuje sie qJail_OnGameHudTick(int iDay, int iCount) - count, oznacza ilosc do konca w sekundach
     * Po zakończeniu odliczania wywołuje się qJail_OnGameHudEnd(int iDay)
     *
     * @param iTime					Czas w sekundach (ile ma trwać)
     * @param szTitle				Tekst przy odliczaniu
     * @noreturn
     */
    native void qjail_set_game_hud(int iTime, char szTitle[64]);
    
    /**
     * Usuwa odliczanie. Nie używaj tego w qJail_OnRemoveDayData, ponieważ po zakończeniu rozgrywki, resetuje się samo.
     * Służy tylko i wyłącznie do tego by zatrzymać odliczanie przed końcem samej rundy lub odliczania
     *
     * @return						True/False
     */
    native bool qjail_remove_game_hud();
    
    /**
     * Otwieranie celi
     *
     * @noreturn
     */
    native void qjail_open_cell();
    
    /**
     * Zamykanie celi
     *
     * @noreturn
     */
    native void qjail_close_cell();
    
    /**
     * Wywołuje restart gry oraz silnika. Nie zadziała gdy wywołujesz między zakończeniem, a startem rundy
     *
     * @noreturn
     */
    native void qjail_exec_restart();
    
    /**
     * Informacja o żywych Więźnia zarejestrowanych w silniku JB
     *
     * @return						Zwraca ilość żywych Więźniów
     */
    native int qjail_get_alive_prisoner_count();
    
    /**
     * Pobieranie aktualnego prowadzącego
     *
     * @return						Zwraca Id prowadzącego
     */
    native int qjail_get_warden();
    
    /**
     * Pobieranie ostatniego żywego więźnia
     *
     * @return						Zwraca Id ostatniego żywego więźnia
     */
    native int qjail_get_lastprisoner();
    
    /**
     * Informacja o aktualnym ustawieniu dla podnoszenia broni bez wyjątków
     *
     * @return						True/False
     */
    native bool qjail_get_weapon_mode();
    
    /**
     * Zwraca informację o stanie końca rundy (true dla czasu pomiędzy końcem, a startem rundy)
     *
     * @return						True/False
     */
    native bool qjail_get_end_round();
    
    /**
     * Pobieranie ustawienia mikrofonu dla więźniów
     *
     * @return						True/False
     */
    native bool qjail_get_prisoners_micro();
    
    /**
     * Pobieranie ustawienia przenikalności
     *
     * @return						True/False
     */
    native bool qjail_get_team_semiclip();
    
    /**
     * Pobieranie ustawienia spadochronu
     *
     * @return						True/False
     */
    native bool qjail_get_parachute_block();
    
    /**
     * Pobieranie ustawienia walki więźniów
     *
     * @return						True/False
     */
    native bool qjail_get_prisoners_fight();
    
    /**
     * Pobieranie ustawienia nieśmiertelności więźniów
     *
     * @return						True/False
     */
    native bool qjail_get_prisoners_godmod();
    
    /**
     * Pobieranie ustawienia nieśmiertelności klawiszy
     *
     * @return						True/False
     */
    native bool qjail_get_jailers_godmod();
    
    /**
     * Zwraca informację o ataku Więźnia na Klawisza. Jeżeli zwraca true, zablokowano atakowanie Klawiszy przez Więźniów
     *
     * @return						True/False
     */
    native bool qjail_get_prisoners_hit_jailers();
    
    /**
     * Zwraca informację o ataku Klawisza na Więźnia. Jeżeli zwraca true, zablokowano atakowanie Więźnia przez Klawiszy
     *
     * @return						True/False
     */
    native bool qjail_get_jailers_hit_prisoners();
    
    /**
     * Ustawianie Prowadzącego
     *
     * @param iClient				Identyfikator gracza
     * @return						True/False
     */
    native bool qjail_set_warden(int iClient);
    
    /**
     * Zezwalanie na podnoszenie broni przez wszystkich graczy
     *
     * @param bOn					Włączyć/Wyłączyć
     * @noreturn
     */
    native void qjail_set_weapon_mode(bool bOn);
    
    /**
     * Ustawianie mikrofonu dla Więźniów
     *
     * @param bOn					Włączyć/Wyłączyć
     * @param bInfo					Wysłać informacje
     * @return						True/False
     */
    native bool qjail_set_prisoners_micro(bool bOn, bool bInfo);
    
    /**
     * Ustawianie przenikalności graczy
     *
     * @param bOn					Włączyć/Wyłączyć
     * @noreturn
     */
    native void qjail_set_team_semiclip(bool bOn);
    
    /**
     * Ustawianie blokady na spadochron
     *
     * @param bOn					Włączyć/Wyłączyć
     * @noreturn
     */
    native void qjail_set_parachute_block(bool bOn);
    
    /**
     * Ustawianie walki więźniów
     *
     * @param bOn					Włączyć/Wyłączyć
     * @param bDefaultHealth		Ustawić wszystkim 100 HP
     * @param bInfo					Poinformować o zmianie ustawień
     * @noreturn
     */
    native void qjail_set_prisoners_fight(bool bOn, bool bDefaultHealth, bool bInfo);
    
    /**
     * Ustawianie nieśmiertelności więźniom
     *
     * @param bOn					Włączyć/Wyłączyć
     * @noreturn
     */
    native void qjail_set_prisoners_godmod(bool bOn);
    
    /**
     * Ustawianie nieśmiertelności klawiszom
     *
     * @param bOn					Włączyć/Wyłączyć
     * @noreturn
     */
    native void qjail_set_jailers_godmod(bool bOn);
    
    /**
     * Zarządzanie atakiem Więźniów na Klawiszy. Ustaw true by zablokować możliwość atakowania Klawiszy przez Więźniów
     *
     * @param bOn					Włączyć/Wyłączyć
     * @noreturn
     */
    native void qjail_set_prisoners_hit_jailers(bool bOn);
    
    /**
     * Zarządzanie atakiem Klawiszy na Więźniów. Ustaw true by zablokować możliwość atakowania Więźniów przez Klawiszy
     *
     * @param bOn					Włączyć/Wyłączyć
     * @noreturn
     */
    native void qjail_set_jailers_hit_prisoners(bool bOn);
    
    /**
     * Zwraca informację o tym czy gracz posiada FreeDay
     * 
     * @param iClient				Identyfikator gracza
     * @return						0 - brak | 1 - posiada aktualnie FreeDay | 2 - otrzyma go w następnej rundzie
     */
    native bool qjail_get_user_freeday(int iClient);
    
    /**
     * Zwraca informację o tym czy gracz posiada Duszka
     * 
     * @param iClient				Identyfikator gracza
     * @return						0 - brak | 1 - posiada aktualnie Duszka | 2 - otrzyma go w następnej rundzie
     */
    native bool qjail_get_user_ghost(int iClient);
    
    /**
     * Informacja o posiadaniu GodMod przez danego gracza
     * 
     * @param iClient				Identyfikator gracza
     * @return						True/False
     */
    native bool qjail_get_user_godmod(int iClient);
    
    /**
     * Zwraca informację o tym czy gracz uczestniczy w pojedynku
     * 
     * @param iClient				Identyfikator gracza
     * @return						True/False
     */
    native bool qjail_get_user_duel(int iClient);
    
    /**
     * Zwraca informację o aktualnej ilości szybkości gracza
     * 
     * @param iClient				Identyfikator gracza
     * @return						Szybkość gracza
     */
    native float qjail_get_user_speed(int iClient);
    
    /**
     * Informacja o posiadaniu danego uprawnienia
     * 
     * @param iClient				Identyfikator gracza
     * @param iPermission			Id uprawnienia
     * @return						True/False
     */
    native bool qjail_get_user_permission(int iClient, int iPermission);
    
    /**
     * Sprawdzanie czy gracz ma większy immunitet
     * 
     * @param iClient				Identyfikator gracza sprawdzającego
     * @param iTarget				Identyfikator gracza którego sprawdzamy
     * @return						True/False
     */
    native bool qjail_get_user_immunity(int iClient);
    
    /**
     * Informacja o posiadanej ilości dolarów
     * 
     * @param iClient				Identyfikator gracza
     * @return						Ilość dolarów
     */
    native int qjail_get_user_money(int iClient);
    
    /**
     * Informacja o blokadzie uruchamiania muzyki u gracza
     * 
     * @param iClient				Identyfikator gracza
     * @return						True/False
     */
    native bool qjail_get_user_stopmusic(int iClient);
    
    /**
     * Ustawianie graczowi FreeDay
     * 
     * @param iClient				Identyfikator gracza
     * @param bEnable				Dodać/Zabrać FreeDay
     * @param bNextRound			Czy ma zostać dodany w następnej rundzie?
     * @return						True/False
     */
    native bool qjail_set_user_freeday(int iClient, bool bEnable, bool bNextRound);
    
    /**
     * Ustawianie graczowi Duszka
     * 
     * @param iClient				Identyfikator gracza
     * @param bEnable				Dodać/Zabrać Duszka
     * @param bNextRound			Czy ma zostać dodany w następnej rundzie?
     * @return						True/False
     */
    native bool qjail_set_user_ghost(int iClient, bool bEnable, bool bNextRound);
    
    /**
     * Ustawianie Zdrowia gracza
     *
     * @param iClient				Identyfikator gracza
     * @param iValue				Życie jaką ustawić
     * @param bUpdateMax			Zaktualizuj maksymalne HP
     * @noreturn
     */
    native void qjail_set_user_health(int iClient, int iValue, bool bUpdateMax = false);
    
    /**
     * Ustawianie Szybkości gracza. Ustaw -1.0 dla domyślnej wartości
     *
     * @param iClient				Identyfikator gracza
     * @param fValue				Szybkość jaką ustawić
     * @noreturn
     */
    native void qjail_set_user_speed(int iClient, float fValue);
    
    /**
     * Ustawianie Grawitacji gracza
     *
     * @param iClient				Identyfikator gracza
     * @param fValue				Grawitacja jaką ustawić
     * @noreturn
     */
    native void qjail_set_user_gravity(int iClient, float fValue);
    
    /**
     * Ustawianie radaru gracza
     *
     * @param iClient				Identyfikator gracza
     * @param bHideOnRadar			Czy ukryć gracza na radarze?
     * @param bHideRadar			Czy ukryć radar graczowi?
     * @noreturn
     */
    native int qjail_set_user_radar(int iClient, bool bHideOnRadar, bool bHideRadar);
    
    /**
     * Zarządzanie nieśmiertelnością danego gracza
     *
     * @param iClient				Identyfikator gracza
     * @param bOn					Włączyć/Wyłączyć
     * @noreturn
     */
    native void qjail_set_user_godmod(int iClient, bool bOn);
    
    /**
     * Okreslanie gracza jako aktywnego w pojedynku
     *
     * @param iClient				Identyfikator gracza
     * @param bOn					Włączyć/Wyłączyć
     * @noreturn
     */
    native void qjail_set_user_duel(int iClient, bool bOn);
    
    /**
     * Ustawianie ilości dolarów. Omija forward qJail_OnPlayerAddMoney, bo ustawia dolary, a nie je dodaje
     *
     * @param iClient				Identyfikator gracza
     * @param iMoney				Ilość dolarów
     * @noreturn
     */
    native void qjail_set_user_money(int iClient, int iMoney);
    
    /**
     * Okreslanie u gracza czy może słyszeć muzykę na zabawach (nie zapisuje się)
     *
     * @param iClient				Identyfikator gracza
     * @param bOn					Włączyć/Wyłączyć
     * @noreturn
     */
    native void qjail_set_user_stopmusic(int iClient, bool bOn);
    
    /**
     * Ustawianie danego koloru (RGBa) graczowi
     *
     * @param iClient				Identyfikator gracza
     * @param r						Ilość czerwonego
     * @param g						Ilość zielonego
     * @param b						Ilość niebieskiego
     * @param a						przeźroczystość
     * @noreturn
     */
    native void qjail_set_user_color(int iClient, int r = 255, int g = 255, int b = 255, int a = 255);
    
    /**
     * Dodawanie graczowi Życia
     *
     * @param iClient				Identyfikator gracza
     * @param iValue				Ilość HP
     * @noreturn
     */
    native void qjail_add_user_health(int iClient, int iValue);
    
    /**
     * Dodawanie graczowi Szybkości
     *
     * @param iClient				Identyfikator gracza
     * @param fValue				Ilość Szybkości
     * @noreturn
     */
    native void qjail_add_user_speed(int iClient, float fValue);
    
    /**
     * Dodawanie graczowi Grawitacji
     *
     * @param iClient				Identyfikator gracza
     * @param fValue				Ilość Grawitacji
     * @noreturn
     */
    native void qjail_add_user_gravity(int iClient, float fValue);
    
    /**
     * Dodawanie graczowi dolarów z uwzględnieniem qJail_OnPlayerAddMoney
     *
     * @param iClient				Identyfikator gracza
     * @param iMoney				Ilość dolarów
     * @noreturn
     */
    native void qjail_add_user_money(int iClient, int iMoney);
    
    /**
     * Leczenie danego gracza
     *
     * @param iClient				Identyfikator gracza
     * @param iValue				Ilość HP jaką ma uleczyć (-1 by uleczyć do fulla)
     * @return						True/False
     */
    native int qjail_user_heal(int iClient, int iValue);
    
    /**
     * Nadaj efekt oślepienia graczowi
     *
     * @param iClient				Identyfikator gracza
     * @param iAmount				Czas działania
     */
    native void qjail_set_user_blind(int iClient, int iAmount);
    
    /**
     * Nadaj efekt naćpania graczowi
     *
     * @param iClient				Identyfikator gracza
     * @param bOn					Ustawić/Usunąć
     */
    native void qjail_set_user_drug(int iClient, bool bOn);
    
    
    /********************************************************************************************************************/
    /**
     * Pobieranie Id kontrabandy gracza
     *
     * @param iClient				Identyfikator gracza
     * @param bEnable				Czy ma być włączona?
     * @return						Zwraca Id kontrabandy bądź 0 gdy jest wyłączona lub jej nie ma
     */
    native int qjail_get_user_contraband_id(int iClient, bool bEnable);
    
    /**
     * Pobieranie poziomu kontrabandy gracza
     *
     * @param iClient				Identyfikator gracza
     * @return						Zwraca poziom kontrabandy bądź 0 gdy jej nie ma lub jest to kontrabanda jednorazowa
     */
    native int qjail_get_user_contraband_level(int iClient);
    
    /**
     * Pobieranie wytrzymałości kontrabandy gracza
     *
     * @param iClient				Identyfikator gracza
     * @return						Zwraca wytrzymałość kontrabandy bądź 0 gdy jej nie ma bądź jest to kontrabanda jednorazowa
     */
    native int qjail_get_user_contraband_strength(int iClient);
    
    /**
     * Ustawianie graczowi kontrabandy
     *
     * @param iClient				Identyfikator gracza
     * @param iContraband			Id kontrabandy
     * @return						Zwraca Id kontrabandy bądź: -1 gdy ma już kontrabandę | -2 gdy podano złe Id kontrabandy
     */
    native int qjail_set_user_contraband(int Client, int iContraband);
    
    /**
     * Ustawianie graczowi wytrzymałości kontrabandy
     *
     * @param iClient				Identyfikator gracza
     * @param iValue				Ilość wytrzymałości
     * @return						True/False
     */
    native bool qjail_set_user_contraband_strength(int iClient, int iValue);
    
    /********************************************************************************************************************/
    /**
     * Pobieranie respektu gracza
     *
     * @param iClient				Identyfikator gracza
     * @return						Zwraca ilość respektu
     */
    native int qjail_get_user_respect(int iClient);
    
    /**
     * Pobieranie bluntu gracza
     *
     * @param iClient				Identyfikator gracza
     * @return						Zwraca ilość bluntów
     */
    native int qjail_get_user_blunt(int iClient);
    
    /**
     * Pobieranie rasy gracza
     *
     * @param iClient				Identyfikator gracza
     * @return						Zwraca Id rasy
     */
    native int qjail_get_user_class(int iClient);
    
    /**
     * Pobieranie lvl rasy gracza
     *
     * @param iClient				Identyfikator gracza
     * @return						Zwraca lvl rasy
     */
    native int qjail_get_user_level(int iClient);
    
    /**
     * Sprawdzanie czy gracz ma bana na CT
     *
     * @param iClient				Identyfikator gracza
     * @return						True/False
     */
    native bool qjail_get_user_banct(int iClient);
    
    /**
     * Ustawianie respektu graczowi
     *
     * @param iClient				Identyfikator gracza
     * @param iValue				Respekt
     * @noreturn
     */
    native void qjail_set_user_respect(int iClient, int iValue);
    
    /**
     * Ustawianie blunt graczowi
     *
     * @param iClient				Identyfikator gracza
     * @param iValue				Blunt
     * @noreturn
     */
    native void qjail_set_user_blunt(int iClient, int iValue);
    
    /**
     * Ustawianie poziomu rasy graczowi.
     *
     * @param iClient				Identyfikator gracza
     * @param iValue				Level
     * @return						0 - brak rasy | -1 - zły poziom | 1 - poprawnie dodany
     */
    native int qjail_set_user_level(int iClient, int iValue);
    
    /**
     * Ustawianie bana na CT
     *
     * @param iAdmin				Identyfikator admina banującego
     * @param iTarget				Identyfikator gracza zbanowanego
     * @param iTime					Czas trwania w minutach
     * @param szReason				Powód bana
     * @noreturn
     */
    native void qjail_set_user_banct(int iAdmin, int iTarget, int iTime, char szReason[MAX_CTBAN_LENGTH]);
    
    /**
     * Dodawanie respektu graczowi zgodnie z mnożnikami oraz uwzględnieniem qJail_OnPlayerAddMoney
     *
     * @param iClient				Identyfikator gracza
     * @param iValue				Respekt
     * @return						Zwraca nadaną ilość respektu
     */
    native int qjail_add_user_respect(int iClient, int iValue);
    
    
    /**
     * Czy gracz ma VIP
     *
     * @param iClient				Identyfikator gracza
     * @return						True/False
     */
    native bool qjail_get_user_vip(int iClient);
    
    /**
     * Czy gracz ma SVIP
     *
     * @param iClient				Identyfikator gracza
     * @return						True/False
     */
    native bool qjail_get_user_svip(int iClient);
    
    /**
     * Pobieranie Id Gangu gracza
     *
     * @param iClient				Identyfikator gracza
     * @return						Id Gangu
     */
    native int qjail_get_user_gang_id(int iClient);

     

    FORWARD

    /**
     * Wywołuje się po wczytaniu pluginu
     *
     * @noreturn
     */
    forward void qJail_OnPluginStart();
    
    /**
     * Wywołuje się po wczytaniu głównego configu
     *
     * @param kv						Config
     * @noreturn
     */
    forward void qJail_OnConfigLoaded(KeyValues kv);
    
    /**
     * Wywołuje się podczas rozpoczesnia dnia (rundy), przed frezztime. Dzieki temu forwardowi mozna dodawac w rozne dni zautomatyzowane zabawy.
     * 
     * @param iDay						Id dnia
     * @param szGameName				Tytuł zabawy
     * @param szGameDesc				Opis zabawy
     * @param iDayData					Ustawienia dnia, resetujące się na koniec dnia
     * @noreturn
     */
    forward void qJail_OnDayStartPre(int iDay, char szGameName[MAX_GAME_TITLE], char szGameDesc[MAX_GAME_DESC], int iDayData[sMAX]);
    
    /**
     * Rozni sie od OnDayStartPre tym ze wywoluje sie po frezztime i ma mniej argumentow. Sluzy do otwierania cel, wyswietlania czasu na hud, itd.
     *
     * @param iDay						Id dnia
     * @noreturn
     */
    forward void qJail_OnDayStartPost(int iDay);
    
    /**
     * Wywołuje się podczas zakonczenia kazdego dnia (rundy), przeznaczyony do resetowania zmiennych
     *
     * @param iDay						Id dnia
     * @noreturn
     */
    forward void qJail_OnRemoveDayData(int iDay);
    
    /**
     * Wywołuje się przed przejściem gracza do danej drużyny. Możesz dzięki temu zarządzać druzynami, np: zmieniając drużynę
     *
     * @param iClient					Identyfikator gracza
     * @param iTeam						Id drużyny do której chcesz przejść gracza
     * @return							Zwróć wartość wyższą od Plugin_Continue by zastosować zmianę dla iTeam
     */
    forward Action qJail_OnTeamChangePre(int iClient, int &iTeam);
    
    /**
     * Wywołuje się po przejściu gracza do danej druzyny
     *
     * @param iClient					Identyfikator gracza
     * @param iTeam						Id drużyny do której chcesz przejść gracz
     * @noreturn
     */
    forward void qJail_OnTeamChangePost(int iClient, int iTeam);
    
    /**
     * Wywołuje się gdy ostatni więzień otrzyma zezwolenie na życzenie
     *
     * @param iClient					Identyfikator gracza
     * @noreturn
     */
    forward void qJail_OnPlayerShowWish(int iClient);
    
    /**
     * Wywołuje się gdy gracz wybierze życzenie. Możemy tutaj zablokować uruchomienie życzenia
     *
     * @param iClient					Identyfikator gracza
     * @param iWish						Id życzenia
     * @return							Zwróć wartość wyższą od Plugin_Continue by zablokować życzenie
     */
    forward Action qJail_OnPlayerTakeWish(int iClient, int iWish);
    
    /**
     * Wywołuje się w player_death po sprawdzeniu czy ofiara jest poprawnie połączonym graczem.
     *
     * @param iDay						Id dnia
     * @param iVictim					Identyfikator ofiary
     * @param iAttacker					Identyfikator zabójcy
     * @param iAssister					Identyfikator asystującego
     * @param bHeadShot					HeadShot przy zabójstwie
     * @noreturn
     */
    forward void qJail_OnPlayerDeath(int iVictim, int iKiller, int iAssister, bool bHeadShot);
    
    /**
     * Wywołuje się w player_hurt po sprawdzeniu czy ofiara oraz atakujący są poprawnie połączeni
     *
     * @param iVictim					Identyfikator ofiary
     * @param iAttacker					Identyfikator zabójcy
     * @param iDamageHealth				Ilość straconego życia przez Ofiarę
     * @noreturn
     */
    forward void qJail_OnPlayerHurt(int iVictim, int iAttacker, int iDamageHealth);
    
    /**
     * Wywołuje się po zabiciu Klawisza gdy gracz zostaje określony jako zbuntowny
     *
     * @param iRebel					Identyfikator buntownika
     * @param iJailer					Identyfikator strażnika
     * @noreturn
     */
    forward void qJail_OnPlayerRebel(int iRebel, int iJailer);
    
    /**
     * Wywołuje się po nadaniu prowadzącego
     *
     * @param iWarden					Identyfikator nowego prowadzącego
     * @noreturn
     */
    forward void qJail_OnPlayerWarden(int iWarden);
    
    /**
     * Wywołuje się po spawn gracza gdy nie otrzyma jeszcze niczego z silnika. Możesz tutaj np: dodać hp/speed/grawitacje, etc
     *
     * @param iClient					Identyfikator gracza
     * @param iDay						Id dnia
     * @noreturn
     */
    forward void qJail_OnPlayerSpawnPre(int iDay, int iClient);
    
    /**
     * Wywołuje się po spawn gracza gdy otrzyma juz wszystko z silnika
     *
     * @param iClient					Identyfikator gracza
     * @param iDay						Id dnia
     * @noreturn
     */
    forward void qJail_OnPlayerSpawnPost(int iDay, int iClient);
    
    /**
     * Wywołuje się podczas zadania ataku, w którym obliczany jest DMG (ofiara żyje). Możesz tutaj manipulować atakiem lub go zablokować, ustawiając fDamage na 0.0
     *
     * @param iVictim					Identyfikator ofiary
     * @param iAttacker					Identyfikator atakującego
     * @param iInflictor				Identyfikator sprawcy
     * @param fDamage					Ilość DMG
     * @param iDmgType					Typ ataku
     * @param iWeapon					Id broni
     * @noreturn
     */
    forward void qJail_OnPlayerValidateDamage(int iVictim, int &iAttacker, int &iInflictor, float &fDamage, int &iDmgType, int &iWeapon);
    
    /**
     * Wywołuje się w sytuacji gdy gracz dotyka broni
     *
     * @param iClient					Identyfikator gracza
     * @param iWeapon					Id broni
     * @return							Zwróć wartość wyższą od Plugin_Continue by zablokować
     */
    forward Action qJail_OnPlayerWeaponCanUse(int iClient, int iWeapon);
    
    /**
     * Wywołuje się w sytuacji dodawania graczowi dolarów. Nadpisujesz wartość iMoney by zmienić ilość dolarów
     *
     * @param iClient					Identyfikator gracza
     * @param iMoney					Ilość dolarów
     * @noreturn
     */
    forward void qJail_OnPlayerAddMoney(int iClient, int &iMoney);
    
    /**
     * Wywołuje się w sytuacji dodawania graczowi respektu. Nadpisujesz wartość iRespect by zmienić ilość respektu
     *
     * @param iClient					Identyfikator gracza
     * @param iRespect					Ilość respektu
     * @noreturn
     */
    forward void qJail_OnPlayerAddRespect(int iClient, int &iRespect);
    
    /**
     * Wywołuje się po użyciu ruletki z poprawnym zwrotem
     *
     * @param iClient					Identyfikator gracza
     * @param iTeam						Id drużyny
     * @param iItem						Wylosowany item z ruletki
     * @noreturn
     */
    forward void qJail_OnPlayerRouletteUsed(int iClient, int iTeam, int iItem);
    
    /**
     * Wywołuje się po zakupie w sklepie za dolary
     *
     * @param iClient					Identyfikator gracza
     * @param iItem						Zakupiony Item
     * @param iCost						Koszt zakupu
     * @noreturn
     */
    forward void qJail_OnPlayerShopBought(int iClient, int iItem, int iCost);

     

    DALSZE PLANY

    1. Dodanie opcji ustawiania przycisków pod cele
    2. Rozbudowanie permisji z powodami o dodawanie/usuwanie ich z poziomu serwera
    3. Przeniesienie całości na translację by ułatwić edycję tekstów
    4. Dodanie większej ilości buttonów pod spadochron

     

    INSTALACJA

    Standardowa

    config: addons/sourcemod/configs/Qesik

    translacja: addons/sourcemod/translations/

     

    CENNIK

    Na wstępie dodam, że są to ceny dla opcji kupowanych osobno. Większy zakup wiąże się ze zniżką, zwłaszcza dla małych pluginów, które wtedy zazwyczaj są za darmo (w zależności od zakupu)
    
    1. Silnik [API]: 300 zł (w tym zabawa freeday, chowany, killday, berek oraz życzenia ghost/freeday, a także votekick klawiszy)
    2. Balans drużyn: 65 zł (w tym kolejka, tutaj też ustalamy ilość ct per tt)
    3. Gangi: 90 zł
    4. Respekt/Blunty/Rasy: 120 zł (dwie nowe waluty oraz system klas zwany rasami, a także życzenie które daje respekt)
    5. Zabawy dodatkowe: 90 zł lub 15/20 zł za zabawę (w tym bhop, codmod, dzieci wojny, headshotday, polowanie, survival, tapday, vipday, wojny gangów, zeusday, ziemniak)
    6. Życzenia dodatkowe: 15 zł (w tym bezruch, dodatkwoe życie w nowej rundzie, przejęcie kontroli nad klawiszami)
    7. Pojedynki: 25 zł (pod config opisany powyżej)
    8. Sklep dla danej drużyny: 20 zł
    9. Root: za darmo przy zakupie silnika, balansu drużyn, gangów, respekt/blunt/rasy
    10. Spadochron: 10 zł (możliwość wyboru skrzydeł/spadochronu oraz przypisania do niego buttonu)
    11. Menu z dodatkowymi opcjami: 10 zł (dochodzą nowe komendy jak dodawanie pustego deagle, zarządzanie uciekinierami, przeszukiwanie więźniów, kradzież broni)
    12. Oznaczanie więźniów: 15 zł (podział na drużyny, wybieranie koloru per gracz z menu lub na celownik)
    13. Laser/Marker: 20 zł
    14. Kontrabandy + rynek: 50 zł (specjalne itemy, które dają boost)
    15. SVIP/VIP: w cenie API (nie sprzedaje osobno)
    16. Siły specjalne (boost dla klawiszy gdy przegrywają): 15 zł
    17. Emotki/Tańce Fortnite: 25 zł (4 kategorie: darmowe, płatne za respekt, unikalne dla vip/svip oraz eksluzywne które dodaje osoba z prawami)
    18. Ruletka: 15 zł
    19. Guard: za darmo przy zakupie API (nie sprzedaje osobno)

     

    • Sad 1
    Link to comment
    Share on other sites

    • Root

    JailBreak - Balans drużyn

     

    OPIS

    Plugin ma za zadanie pilnować balansu drużyn na podstawie ustawień podanych w configu głównym. Odpowiada on także za kolejkę do Klawiszy, którą może zarządzać osoba z danym uprawnieniem opisanym w pierwszym poście.
    W domyśle, do Klawiszy można dołączyć gdy spełni się daną ilość minut na serwerze, którą ustala się w configu "TeamBalanceMinMinutes", a która to jest sprawdzana przez pluginy zewnętrzne i aktualnie to GameME oraz RankME, a więc trzeba korzystać z któregoś z tych pluginów by poprawnie sprawdzało czas spędzony na serwerze (nic nie stoi na przeszkodzie by rozbudować to o kolejne pluginy).|Jeżeli nikt z graczy nie ma przegranych minut na serwerze, omija ten warunek i pozwala wejść bez spełnienia wymagań. Nie przepuszcza też osób, które mają blokadę mikrofonu, pobieraną przez natyw z sourcecomms

     

    CONFIG

    Wszystko znajduje się w csgo/addons/sourcemod/configs/Qesik/qJail.cfg

    "TeamBalanceRatio"				"5"				// Ilu wieźniów ma przypadać na Klawsza
    "TeamBalanceMinMinutes"			"120"			// Ile minut musi przegrać gracz by móc dojść do Klawiszy (tylko GameME)

     

    INSTALACJA

    Standardowa

    Dla zliczania minut na serwerze wymagany jest
    a) GameME -> gameme.com
    b) RankME -> forums.alliedmods.net/showthread.php?t=290063

    Dla sprawdzania czy gracz ma mute niezbędny jest Sourcebans -> sbpp.dev

    Link to comment
    Share on other sites

    • -_- locked this topic
    • Root

    JailBreak - Guard (Mini Admin)

     

    OPIS

    Dodatek oferujący wsparcie dla czegoś w rodzaju mini admina, nazywanego zazwyczaj "Strażnikiem" lub "Guard", a także dodający na serwer specjalny typ wiadomości na czacie, który wyświetlany jest wszystkim graczom. By go użyć, należy dodać na początku $, np: "$Czesc wszystkim", co spowoduje wyświetlenie wiadomości do wszystkich graczy zgodnie z tagiem tej osoby ustawionym w configu qJail (opisany w pierwszym poście), dokładniej mówiąc chodzi o te ustawienia dla ról

    			"tagcolor"				"{darkred}" // odpowiada za kolor roli
    			"namecolor"				"{darkblue}" // odpowiada za kolor tekstu

    Dodatkowo można dowolnie kolorować swój tekst, korzystając z {}, np: {green}, {darkblue}, {red}, itd

    System Guard - JailBreak

    Wiadomości te są zapisywane w głównych logach sourcemod, to samo tyczy się reszty komend, które zostały opisane w sekcji "KOMENDY". Warto zaznaczyć, że poniższe komendy nie mogą być używane na osobie, która prezentuje większy immunitet, co zostało także opisane w głównym poście.

     

    KOMENDY

    sm_g                            - Główne menu strażnika
    sm_guard                        - Główne menu strażnika
    sm_gkick <powod>                - Pozwala wyrzucić danego gracza na serwerze z lub bez powodu
    sm_gwyrzuc <powod>              - Pozwala wyrzucić danego gracza na serwerze z lub bez powodu
    sm_gban <powod>                 - Nakłada bana 30 minutowego na gracz z lub bez powodu
    sm_gkill <powod>                - Służy do zabijania graczy z lub bez powodu
    sm_gzabij <powod>               - Służy do zabijania graczy z lub bez powodu
    sm_gozyw                        - Pozwala ożywić danego gracza
    sm_gspawn                       - Pozwala ożywić danego gracza
    sm_gprzenies                    - Służy do przerzucania graczy między drużyną Klawiszy, a Więźniów
    sm_gprzerzuc                    - Służy do przerzucania graczy między drużyną Klawiszy, a Więźniów
    sm_gswap                        - Służy do przerzucania graczy między drużyną Klawiszy, a Więźniów

     

    INSTALACJA

    Standardowa

    Opcjonalnie Sourcebans: sbpp.dev

    Link to comment
    Share on other sites

    • Root

    JailBreak - Gangi

    Aktualna wersja: 1.0

     

    OPIS

    Gangi tworzone są za respekt, który służy także do rozwijania ich umiejętności. Umiejętności dostępne w gangach to życie, szybkość, obrażenia, grawitacja, dodatkowa kasa, szansa na obrócenie wroga, szansa na dobry drop z ruletki oraz dodatkowe miejsca w gangu. Każdy z gangów może zaprosić daną ilość graczy, gdzie każdy z nich na start otrzymuje immunitet na wyrzucenie by nie doprowadzić do nadużyć związanych z transferowaniem do gangów respektu. Każda wpłata także powiększa ten immunitet, co pozwala ukrócić proceder związany właśnie z tym dodawaniem/wyrzucaniem po transferze. Dla zapewnienia stabilności w rozwoju gangów, dodano też opcję zezwolenia na wyrzucenie (mimo immunitetu) jeśli gracz nie wbił na serwer przez dany okres czasu, ustalony w "LastSeenTime".
    Jak w każdym pluginie, także i ten posiada system logów dla gangów, co ułatwia weryfikacje nadużyć lub jakiś problemów związanych z jego działaniem.
    Domyślnie gracze otrzymują tag (ClanTag) ustalony w "DefaultClanTag", lecz jeśli dołączą do gangu, otrzymują jego tag. Co ważne, nazwę gangu także da się zmienić, lecz wiąże się to z kosztem ustalonym w "CostChangeGangName".

    Statystyki:
    a) Życie
    b) Szybkość
    c) Obrażenia z noża
    d) Grawitacja
    e) Kasa za zabicie
    f) Obrócenie przeciwnika z kosy
    g) Lepszy drop z ruletki
    h) Miejsca w gangu

    Grupy w Gangu:
    a) Użytkownik
    b) Zastępca (może dodawać do Gangu, ulepszać statystyki, wyrzucać z gangu)
    c) Lider Gangu

    TOP Gangów z podziałem:
    a) Zabić innych gangów
    b) Zabić strażników
    c) Przeżyć jako Klawisz
    d) Ilość buntów
    e) Ilość życzeń
    f) Wygranych zabaw

    TOP Graczy z podziałem:
    a) Zabić innych gangów
    b) Zabić strażników
    c) Przeżyć jako Klawisz
    d) Ilość buntów
    e) Ilość życzeń
    f) Wygranych zabaw

     

    CONFIG

    "qGang"
    {
    	"DefaultClanTag"		"[CS-CLASSIC]"		// Domyślny ClanTag gdy gracz nie ma Gangu
    	"ReqRespect"			"40000"			// Koszt założenia Gangu
    	"CostChangeGangName"		"30000"			// Koszt zmiany nazwy Gangu. Ustaw 0 by pominąć
    	"DefaultMembers"		"5"			// Domyślna liczba ludzi w gangu
    	"TransferMin"			"1000"			// Minimalna ilość wpłaty respektu do gangu
    	"ImmunityTransfer"		"8"			// Ile sekund ochrony ma dawać wpłata 1 respektu
    	"StartImmunity"			"2880"			// Startowy immunitet w minutach
    	"LastSeenTime"			"20160"			// Po jakim czasie nieobecności pozwolić wyrzucić gracza, mimo posiadanego immunitetu. Ustaw 0 by pominąć
    	"AddFlagCost"			"100000"		// Koszt flagi dla Gangu. Ustaw 0 by pominąć (niedostępne)
    	"AddMVPCost"			"350000"		// Koszt MVP dla Gangu. Ustaw 0 by pominąć (niedostępne)
    
    	"MaxHealth"			"20"			// Maksymalny poziom statystyki życie w gangu. Ustaw 0.0 by pominąć
    	"MaxSpeeed"			"15"			// Maksymalny poziom statystyki szybkość w gangu. Ustaw 0.0 by pominąć
    	"MaxDamage"			"15"			// Maksymalny poziom statystyki obrażenia w gangu. Ustaw 0.0 by pominąć
    	"MaxGravity"			"10"			// Maksymalny poziom statystyki grawitacja w gangu. Ustaw 0.0 by pominąć
    	"MaxMoney"			"10"			// Maksymalny poziom statystyki kasa w gangu. Ustaw 0.0 by pominąć
    	"MaxRotation"			"10"			// Maksymalny poziom statystyki szansa na obrócenie w gangu. Ustaw 0.0 by pominąć
    	"MaxRoulette"			"5"			// Maksymalny poziom statystyki ruletka w gangu. Ustaw 0.0 by pominąć
    	"MaxSlot"			"5"			// Maksymalny poziom statystyki miejsce w gangu. Ustaw 0.0 by pominąć
    
    	"HealthPower"			"1"			// Ile życia ma dodawać za 1 poziom
    	"SpeedPower"			"3"			// Ile szybkości ma dodawać za 1 poziom
    	"DamagePower"			"0.013"			// O ile mnożyć obrażenia za 1 poziom
    	"GravityPower"			"0.02"			// O ile zmniejszyć grawitacje za 1 poziom
    	"MoneyPower"			"0.015"			// O ile mnożyć otrzymywane dolary za 1 poziom
    	"RotationPower"			"5"			// O ile zwiększyć szansę na obrócenie wroga z noża za 1 poziom. Od 1 do 1000
    	"RoulettePower"			"15"			// O ile procent zwiększyć szansę na dobry drop z ruletki za 1 poziom. Od 1 do 100
    	"SlotPower"			"1"			// O ile zwiększyć ilość miejsc za 1 poziom
    
    	// Tutaj podajesz koszt ulepszenia. Równanie: level * mnoznik + startowa_wartosc
    	"CostHealth"			"18000-2100"		// Ulepszenie statystyki życie. Mnożnik-startowa_wartosc
    	"CostSpeed"			"20000-4500"		// Ulepszenie statystyki szybkość. Mnożnik-startowa_wartosc
    	"CostDamage"			"18000-8000"		// Ulepszenie statystyki obrażenia. Mnożnik-startowa_wartosc
    	"CostGravity"			"22000-3400"		// Ulepszenie statystyki grawitacja. Mnożnik-startowa_wartosc
    	"CostMoney"			"22000-2500"		// Ulepszenie statystyki kasę. Mnożnik-startowa_wartosc
    	"CostRotation"			"22000-2500"		// Ulepszenie statystyki obrócenie wroga na nożu. Mnożnik-startowa_wartosc
    	"CostRoulette"			"22000-3600"		// Ulepszenie statystyki ruletka. Mnożnik-startowa_wartosc
    	"CostSlot"			"350000-50000"		// Ulepszenie statystyki miejsce w gangu. Mnożnik-startowa_wartosc
    }

     

    KOMENDY

    sm_gang                         - Menu Gangów
    sm_gangi                        - Menu Gangów
    sm_gtop                         - TOP Gangów
    sm_stworzgang <nazwa>           - Tworzenie Gangu
    sm_zmiennazwe                   - Zmiana nazwy Gangu
    sm_usungang                     - Usuń Gang
    sm_transfer <ilosc>             - Wpłata respektu do Gangu
    sm_rgang                        - Panel roota dla zarządzania Gangami

     

    NATIVE

    /**
     * Pobieranie Id Gangu gracza
     *
     * @param iClient				Identyfikator gracza
     * @return						Id Gangu
     */
    native int qjail_get_user_gang_id(int iClient);

     

    INSTALACJA

    Standardowa

     

    • Like 1
    Link to comment
    Share on other sites

    Guest
    This topic is now closed to further replies.
     Share

    • Recently Browsing   0 members

      • No registered users viewing this page.
    ×
    ×
    • Create New...

    Important Information

    By using this site you agree to Privacy Policy