Teraz jest 25 lis 2024, 11:11

Strefa czasowa: UTC + 2


Regulamin działu


Kliknij, aby przejrzeć regulamin



Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 25 kwi 2008, 20:25 
Offline
Avatar użytkownika

Dołączył(a): 4 cze 2005, 15:11
Posty: 60
Lokalizacja: Warszawa
Witam ponownie.

Tym razem przedstawiam skrypcik, którego głównym zadaniem jest pilnować broni używanych przez graczy i w zaleznosci od konfiguracji odpowiednio zadziałać :)

SKRYPT DO POBRANIA TUTAJ

Mam nadzieję, że komuś jeszcze się przyda :) Mile widziane komentarze w tym topicu.
Ponizej zamieszczam szerszy opis.

Czym jest BF2 Oldschool Script? :
Jest to skrypt napisany w pythonie dla serwerów Battlefield 2. Działa on zarówno na czystych serwerach dedykowanych jak i odpalanych z daemona bf2cc. Powinien rowniez poprawnie dzialac na serwerach rankingowych (nie byl testowany na rankingu, ale implementacja funkcji nie rozni sie niczym od innych sprawdzonych skryptow)
Skrypt BF2O pozwala na:
- Restrykcje broni (podzial na poziomy: medics only, medics only bez unlock'ów, KNIFE-PISTOL-SHOCK only, no unlocks oraz restrykcja claymore, c4, stacjonarek i tow)
- Wybranie sposobu ukarania gracza, który użył zakazanej broni (tylko info, natychmiastowa śmierć, wykopanie z serwera)
- Wykrywanie komendanta (czyli stara wersja mojego anticomm'a w nowej oprawie ;) )
- Zarządzanie skryptem poprzez rcona w grze (nowatorski system ;] ale o tym pozniej)

Jak zainstalowac?
1. Wchodzimy do katalogu gdzie znajdują się pliki serwera bf2. Dalej przechodzimy do:
mods/bf2/python/game/
2. W katalogu "game" wklejamy plik bf2_oldschool.py
3. W tym samym katalogu znajduje się plik "__init__.py", przechodzimy do jego edycji (np w notatniku) i wklejamy dwie linijki tekstu:
Kod:
import bf2_oldschool
bf2_oldschool.init()


KONFIGURACJA
Otwieramy skrypt w edytorze (notepad, vi, lub ide pythona).

OLDSCHOOL LEVEL
Pierwsza rzecz jaką musimy ustawić to poziom restrykcji. W skrypcie nosi on nazwe OLDSCHOOL LEVEL
Może on przyjąć następujące wartości:

0 - Całkowite wyłączenie skyptu
1 - MEDISC ONLY (z unlockami)
2 - MEDICS ONLY (bez unlockow)
3 - KNIFE PISTOL SHOCKPADDLES ONLY (ten poziom działa jedynie z PUNISH_METHOD 2 - patrz niżej)
4 - NO UNLOCKS
5 - Nie zabraniaj żadnych głównych broni, ale sprawdź pozostałe ustawienia (jak c4, claymore czy anticommander)

Kolejna sekcja to restrykcja pozostałych broni. 0 - wyłączone 1 - włączone
NO_C4
NO_CLAYMORE
NO_MOUNTED_MGS (działa jedynie z PUNISH_METHOD 2)
NO_TOW_MISSILE (działa jedynie z PUNISH_METHOD 2)

PUNISH METHOD
W tym miejscu decydujemy o karze jaka czeka na nieposłusznego gracza ;)
Do wyboru mamy trzy tryby, które przypisujemy do zmiennej PUNISH_METHOD:

0 - Żadna kara, jedynie informacja, że dana broń jest zakazana. (ten tryb może wywołać drobny spam tekstowy w grze jesli gracz bedzie zmienial bron z dozwolonej na zabroniona, z zabronionej na dozwolona i tak w kółko.)
W tym trybie możemy zmienic parametr WARNING_LVL0 - Czyli tresc ostrzezenia. W tresci mozemy uzyc symbolu: %s za ktory wstawi sie nick gracza np:
Kod:
WARNING_LVL0 = "Uwazaj %s ! Nie uzywaj tej broni! Na tym serwerze jest ona zakazana!"

1 - ZABIJ GRACZA bezpośrednio po jego respawnie z niedozwolona bronia. Jesli niedozwolone sa rowniez c4 lub claymore gracz popelni samobojstwo po przelaczeniu sie na nie za pomoca klawisza 5.
Niestety jak już wspomniałem dla tego trybu nie dzialaja stacjonarki i tow. Komunikat jaki zobaczy uśmiercony gracz znajduje sie w zmiennej WARNING_LVL1. Podobnie jak wyzej za %s wstawi sie nam nick gracza.
2 - KICKnij gracza. Tutaj możemy ustawić kilka parametrów:

HOW_MANY_KILLS_TO_KICK - Czyli ile biednych ludków musi uśmiercić gracz z zakazanej broni aby wylecieć z serwera
WARNING_AFTER_FRAG - Ten komunikat będzie ostrzegał gracza za każdym razem kiedy zaliczy fraga z zabronionej broni. Oczywiscie do czasu az nie poleci z serwa (tu mozna wstawic %s)
RESTRICTED_WEAPON_KICK_MSG - Ta zmienna przetrzymuje wiadomość jaką serwer zapoda nam kiedy wreszcie wykona wyrzucenie gracza (tu mozna wstawic %s)
RESTRICTED_WEAPON_KICK_REASON - A to juz komuniakt jaki otrzyma wykopany gracz w slicznym okienku punkbustera (aha, oczywiscie zeby dzialalo wykopywanie musi byc wlaczony punkbuster!)
RESTRICTED_WEAPON_KICK_IN_MINUTES - tutaj podajemy wartosc liczbowa okreslajaca na ile minut ma zostac wykopany gracz :)

ANTICOMMANDER
Oczywiscie nie moglo zabraknac anticomm'a ;] Konfiguracja wyglada tak:
ANTICOMMANDER - 0 wyłączony; 1 - włączony
COMMANDER_MSG - Tutaj wpisujemy komunikat jaki ma sie pojawic w grze gdy ktos wezmie commandera. (tu mozna wstawic %s)

COMMANDER_AUTOKICK - 0 wyłączony (wtedy bedzie działać tylko informacja); 1 - włączony (trzeba jeszcze sprawdzić ustawienia poniżej)
COMMANDER_KICK_TIME_IN_MINUTES - czyli na ile minut wykopać commandera
COMMANDER_KICK_MSG - Informacja dla graczy, ze wlasnie wylatuje commander ;) (tu mozna wstawic %s)
COMMANDER_KICK_REASON - Tutaj ustawiamy komunikat powodu jaki ma zobaczyc gracz po wykopaniu (czyli w okienku punkbustera)

ADMIN SETTINGS
Czyli dodawanie administratora skryptu.
Admina dodajemy do listy wstawiajac go w " " (nazwa gracza to pelna nazwa konta wraz z prefiksem!!!). Jesli chcemy dodac wiecej niz jednego admina wstawiamy przecinki pomiedzy konczacym a rozpoczynajacym apostrofem.

Przykładowo:
Kod:
ADMIN_LIST = "[V!S] MisiekBest[PL]", "#SOF# FrYzJeR.inf"


Taki admin moze teraz wykonywac komendy na serwerze.
Komendy zaimplementowalem w dosc nowatorski sposob. Poniewaz ciagle parsowanie czestych rozmow w grze to malo wydajna metoda, pomyslalem ze warto to zrobic za pomoca rcona. Jednak uzycie metod dodawania polecen rcona nie dziala dla operacji wykonywanych z konsoli w grze. Na szczescie istnieje specjalna funkcja do przechwytywania jakichkolwiek polecen wydawanych przez zdalna konsole. Dlatego wywolanie rcona z moim parametrem wykona sie poprawnie, choc batek zwroci najpierw blad.

Tak wiec aby wywolac jakas komende nalezy najpierw otworzyc konsole (~)
a następnie wpisać:
rcon bfo <komenda> <wartosc_opcjonalna>
np:
Kod:
rcon bfo olevel 4
spowoduje ustawienie oldschool level na 4 czyli NO UNLOCKS

Ponizej lista wszystkich komend:
rcon bfo help - wygenerowanie helpa w grze. Aby przewijac tekst w konsoli uzywamy pgup pgdown
rcon bfo status - wypisuje stan wszystkich podstawowych ustawien

############## OLDSCHOOL LEVEL ##############
#############################################
olevel # Zwraca aktualny status oldschool level
olevel [value] # Ustawia oldschool level na wartosc podana w parametrze

############## PUNISH METHOD ##############
############################################
punish # Zwraca aktualny status punish method
punish [value] # Ustawia punish method na wartosc podana w parametrze

############## MISC WEAPONS ##############
##############################################
c4 #Zwraca aktualny status NO C4
c4 [value] # Włącz-wyłącz zakaz c4. 0-Wyłączony 1-Włączony
claymore # Zwraca aktualny status NO CLAYMORE
claymore [value] # Włącz-wyłącz zakaz claymore. 0-Wyłączony 1-Włączony
mgs # Zwraca aktualny status NO MGS
mgs [value] # Włącz-wyłącz zakaz mgs. 0-Wyłączony 1-Włączony
tow # Zwraca aktualny status NO TOW
tow [value] # Włącz-wyłącz zakaz tow. 0-Wyłączony 1-Włączony

############## KICKER SYSTEM (punish 2) ##############
##########################################################
kick_frags # Zwraca wartość ilości fragow po ktorych skrypt wyrzuci gracza
kick_frags [value] # Ustaw wartosc ilosci fragow na ta podana w parametrze
kick_time # Zwraca czas (minuty) okreslajace na jak dlugo gracz bedzie wyrzucony
kick_time [value] # Ustawia czas wyrzucenia gracza na ten podany w parametrze

############## ANTI COMMANDER ##############
##################################################
anticomm # Zwraca status aniticommandera
anticomm [value] # Włącz-wyłącz anticommandera. 0-Wyłączony 1-Włączony
commkick # Zwraca status anticommandera z wykopaniem gracza
commkick [value] # Włącz-wyłącz anticommandera z kopaniem. 0-Wyłączony 1-Włączony
commkick_time # Zwraca czas na jak dlugo ma byc wyrzucony komander
commkick_time [value] # Ustaw czas wykopania komandera



No i to by było tyle.
Pozdrawiam
MB

_________________
* Restrykcja broni, MEDICS ONLY, NO UNLOCKS etc.,wykrywanie commandera. Zapraszam TUTAJ :)
* !map,!restart,!pause bez BF2CC ? Zapraszam TUTAJ


Góra
 Zobacz profil  
 
PostNapisane: 25 kwi 2008, 21:24 
Offline
Spamer!
Avatar użytkownika

Dołączył(a): 7 gru 2006, 19:48
Posty: 5036
Lokalizacja: żyję od 14 mld lat ;] więc skąd ?
GJ, przykleić :) na publicznym serwerze nierankingowym MISS'u to dziala sprawnie :)

_________________
#5000. post i "spamer!" :lol: |czekałem od początku(:
kliknij i zarejestruj się -15% opłat transak. na najlepszej giełdzie kryptowalut


Góra
 Zobacz profil  
 
PostNapisane: 25 kwi 2008, 22:15 
Offline
Avatar użytkownika

Dołączył(a): 4 cze 2005, 15:11
Posty: 60
Lokalizacja: Warszawa
Co prawda nie jest to ten sam skrypt, ale dziala rownie dobrze :)
O ile sie nie myle na MISS wywala po okreslonym czasie. Tutaj mozna zadecydowac o naglej smierci lub wywaleniu po minimum pierwszym fragu. System wykrywania jest po nazwie broni a nie po wybranej klasie gracza co daje wieksza elastycznosc ;]
W nastepnej wersji bedzie custom mode, udostepnie pelna liste broni i ich specyficznych nazw uzywanych w silniku. Bedzie wtedy mozna robic wlasne listy zatrzezonych broni (np granaty, granade luncher etc)

_________________
* Restrykcja broni, MEDICS ONLY, NO UNLOCKS etc.,wykrywanie commandera. Zapraszam TUTAJ :)
* !map,!restart,!pause bez BF2CC ? Zapraszam TUTAJ


Góra
 Zobacz profil  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 

Strefa czasowa: UTC + 2


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów

Szukaj:
Skocz do:  
Powered by phpBB® Forum Software © phpBB Group
Przyjazne użytkownikom polskie wsparcie phpBB3 - phpBB3.PL