zrobić skrót
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.
|
BlackPerfum
Rejestracja: 13.08.2012Aktualnie: Nieaktywny
Poza forum Ostatnio: 24.03.2020 01:59





Statystyki
- Grupa: Power User
- Całość postów: 575
- Odwiedzin: 12 821
- Tytuł: Pseudo interakcja??
- Wiek: 23 lat
- Urodziny: Styczeń 5, 2002
-
Płeć
Mężczyzna
-
Lokalizacja
...
Kontakt
Narzędzia użytkownika
Ostatnio byli
#658568 [ROZWIĄZANE] Jak zmienić parametry kompilacji w kompilatorze lokalnym?
Napisane przez BlackPerfum
w 18.08.2014 10:13
#658562 [ROZWIĄZANE] Jak zmienić parametry kompilacji w kompilatorze lokalnym?
Napisane przez BlackPerfum
w 18.08.2014 09:49
Jak zmienić parametry kompilacji w kompilatorze lokalnym?
Nie musi mówic nawet czy ma wbudowaną kompilacje w edytorze tekstowym. Najszybciej jest zrobić skrót do kompilatora i w miejscu "Element Docelowy" za scieżką pliku dodawać parametry "-d3"/"-d0". Jeśli masz wbudowaną kompilacje w jakims edytorze tekstowym to dopisuj parametry po ścieżce do kompilatora w linii wykonywalnejkompilatorze lokalnym
#657567 Jak dodać losowanie flagi do pluginu "Testowy VIP"
Napisane przez BlackPerfum
w 17.08.2014 20:32
• Jeśli flaga będzie losowana przy każdym podłączeniu do serwera to ludzie będą robić specjalnie "reconnecty" by miec te najlepsze "dodatki" co mija się z celem testowania vip'a gdyż gracze nie przetestują jego wszystkich mozliwości a tylko te najlepsze (a czasem to gorsze są lepsze lecz nikt o tym nie wie)
• Jeśli flaga bedzie losowana raz to:
- gracze zaczną się pluć iż jednemu wylosowało coś lepszego a innemu cos gorszego a to ma być test vip'a a nie loteria
- nikt nie przetestuje całego vip'a a tylko to co mu zostało wylosowane...
Sensownym wyjściem było by iż mozna 8 razy włączyć testowanie vip'a i za każdym inna flaga, lub posiadanie raz testowego vip'a ale wszystkie "dodatki" (ale wtedy za silny by był człek)
wogóle jeśli mam być szczery to ten plugin wypali jedynie na serwery only steam gdyż z ns'ami będzie tak iż będą sobie nick zmieniać oraz sid...
#657566 Prośba o sprawdzenie perków i ewentualną naprawę
Napisane przez BlackPerfum
w 17.08.2014 20:12
Już zagoniono mnie do roboty... Dopiero co wróciłem a każą mi pracować. Niedorzeczne, zaprośili byście na piwo a nie
Co do perków to wyglądają jak jeśli chce ktoś się dopytać o szczegóły błedów to proszę pisać od tak książki nie chce mi się pisać...
Hahaha kto to wymyślił "naćpane naboje" Chciał bym takim dostać hahahaha
Nie chce mi się sprawdzać czy działa a pewnie gdzieś gape walnełem. Powiedzmy że to psedo kod heh:
Załączone pliki
-
codperk_nacpanenaboje.sma 1,75 KB 89 Ilość pobrań
codperk_nacpanenaboje.amxx
-
codperk_pociskizamrazajace.sma 1,66 KB 90 Ilość pobrań
codperk_pociskizamrazajace.amxx
-
codperk_trujacenaboje.sma 1,66 KB 110 Ilość pobrań
codperk_trujacenaboje.amxx
#656542 index out of bounds w ColorChat
Napisane przez BlackPerfum
w 13.08.2014 11:39
#655765 index out of bounds w ColorChat
Napisane przez BlackPerfum
w 09.08.2014 19:27
Dlatego napisałem:Kiedy usunę tę linijkę to muszę zincludować tę drugą bibliotekę, bo inaczej sypie błędami
Jakoś mi nie sypie ;D Chyba że mam niestandardowe pliczki .inc ale w to wątpię bo chyba tego nie ruszałem ;Dpobierz najnowsze pliczki .inc amxmodx'a lub skompiluj na amxx.pl Tyle trudu
Inny układ? Gdzie ty widzisz różnicę? Przeczytaj 10 razy link który tam dałem (do biblioteki amxmodx'a) wszystko śmigaMusiałbym wszędzie zmieniać funkcję ColorChat, bo ta którą podałeś ma inny układ.
#655758 index out of bounds w ColorChat
Napisane przez BlackPerfum
w 09.08.2014 18:34

#include <colorchat>i pobierz najnowsze pliczki .inc amxmodx'a lub skompiluj na amxx.pl Tyle trudu.
Co do błędu to trzeba spojrzeć na bibliotekę colorchat a dokładnie na linijkę 75 (w logach wyskakuje ci 74 ale zazwyczaj chodzi o następną linijkę...) czyli:
if(ColorChange) { Team_Info(index, MSG_Type, TeamName[team]); }Jedyną tablicą w tej linijce jest tablica TeamName teraz trzeba zobaczyć jak ona wygląda:
new TeamName[][] = { "", "TERRORIST", "CT", "SPECTATOR" }Wszyscy sobie pewnie pomyślą że jest wszystko okey ale wcale nie gdyż często w amxmodx'ie totalnie wszystko się buguje dlatego wcale się nie dziwię że chce uzyskać komórkę -1... Rozwiazaniem było by użycie funkcji funkcji clamp



#655753 Deploy crashuje serwer - niewidoczna broń
Napisane przez BlackPerfum
w 09.08.2014 18:03
Nie idiotyczne (ładnie mówiąc) tzn. pisanie kodu który w conajmniej 90% się rozumie.1. Czym jest według Ciebie pisanie racjonalne?
W sposobie podanym przeze mnie (ten z użyciem ExecuteHamB2. Można oczywiście ExecuteHamB użyć, proponowałem ExecuteHam, bo nie ma sensu żeby handler się wykonywał jeszcze raz, ale może... skoro na początku sprawdzamy, czy wyciągana broń jest "legalna" to nie ma z tym problemów żadnych przecież, bo dużo się nie wykona... A pewność, że zostanie wyciągnięta właściwa broń, która może być wyciągnięta jest taka sama, jak przy rekurencji, tylko warunek trzeba 2 razy umieścić (w rekurencji wykona się on dokładnie tyle samo razy, albo z niewielką różnicą, mimo że umieszczony jest raz).


Też uważam iż pisanie wielu pluginów jest dobre ale nie ma rzeczy bez wad... Tzn. pokazałem przykładowa wadę pisania wielu pluginów (nie stwierdzam iż takie pisanie to wada tylko iż posiada wade (ale także zalety ale zbaczamy z tematu....))3. Czemu według Ciebie rozdzielanie kodu pomiędzy pluginy to wada? Według mnie duża zaleta, ale pod warunkiem, że się wie co się robi... Po 1. możemy wyłączyć konkretną rzecz wyłączając po prostu 1 plugin, po 2. jeśli coś nie działa to wiemy gdzie szukać, po 3. łatwiej jest utrzymać porządek i wiadomo co jest do czego... zalet jest jeszcze więcej...
Zgadzam się ale wtedy kod "losowania niewidzialności" i kod "odbierania broni" był by bardzo irracjonalny... Zdarzenie Ham_Item_Deploy wykonuje się podczas pokazania przedmiotu a nie podczas jego zmiany. Zmiane należy dodatkowo wykryć (np. poprzez porównanie zawartości offsetów active item i active client item). Wtedy nie było by żadnych problemów.A co do rekurencji: wyobraź sobie przypadek, że tworzymy przedmiot, który pozwala on nam na podnoszenie broni innych klas (dzięki czemu możemy mieć broni aż 10), ale działa do końca rundy, po rundzie znika. Zbierzemy sobie więc 10 broni... Mamy również na serwerze szansę na wylosowanie niewidzialności przy zmianie broni... albo cokolwiek innego przy zmianie broni...
Przychodzi nowa runda, zmieniamy broń na broń z innej klasy, przedmiot nam już wygasł więc plugin nam tą broń wyrzuca i zmienia broń na następną... Pech chciał, że akurat są w takiej kolejności, że broń "legalna" jest na końcu... Policz sobie teraz ile razy wykona się niepotrzebnie losowanie niewidzialności czy cokolwiek sobie tam wymyślisz przy zmianie broni, gdy używasz rekurencji? Tak trąbisz o tej kompatybilności z innymi pluginami, a właśnie w tym miejscu jej nie zachowujesz, bo wykonujesz 10x niepotrzebnie ExecuteHamB, przez co inne pluginy niepotrzebnie podejmują akcje, jeśli są pod zmianę broni podpięte...
Spodobały mi się przykłady z życia wzięte, dlatego też ci jeden podam. Używamy funkcji ExecuteHam

• wyrzucamy item podczas zmiany broni na P90
• wykonuje się zdarzenie Ham_Item_Deploy w pluginie z klasą, co daje nam niewidzialność
• wykonuje się zdarzenie Ham_Item_Deploy w pluginie z itemem, odbiera nam broń P90 i pokazuje ją graczu
I teraz powinno jeszcze być poinformowanie innych pluginów o zmienie broni ale ktoś użył ExecuteHam

Zgadzam się w 100% iz ten sposób jest nie wydajny (ale otrzymujemy prawidłowy efekt końcowy). Dlatego pisałem iż:Popatrz na to zarówno przez pryzmat wydajności jak i przez każdy inny... Dlatego rekurencji zrealizowanej w TAKI SPOSÓB nie powinno się nawet do myśli dopuścić. Potrzebna Ci rekurencja i faktycznie umiesz się nią posługiwać (a naprawdę mało kto ją do końca rozumie, miałem na studiach przez cały semestr przedmiot poświęcony tylko rekurencji i widziałem jak dużo osób tego kompletnie nie rozumie... a na kierunek dostały się osoby z wynikami matur rozszerzonych 80% i wyżej) to jej użyj, ale wewnątrz pluginu, a nie poprzez Ham czy inne sposoby angażujące inne pluginy i mechanizmy serwera...
Jeśli pomomo tego ktoś będzie chciał użyć zdarzenia Ham_Item_Deploy do usuwania "nielegalnych" broni to jedynymi sposobami by wszostko prawidłowo zdziałało jest albo użycie rekurencji i zatrzymania dalszego wywoływania starej informacji albo funkcji Set_Ham_Param_Entity i podmiana modelu broni. Gdyż w innych przypadkach inne pluginy będę przetrzymywac błędne informacje.Ogułem to od razu mówię że pomimo wstawiania się za rekurencją nie jestem za nią gdyż nie jestem za użyciem Deploy'a bo to jest do pewnego stopnia (bardzo bardzo małego) nie racjonalne. Lepiej łapać dodawanie broni. A najlepiej to nie dodawac nie właściwych broni ;D
Powtórzę się kolejny raz:Które będzie najlepsze?
Z naciskiem na:Lepiej łapać dodawanie broni. A najlepiej to nie dodawac nie właściwych broni ;D
Chodzi mi o to by samemu broń odbierać w momęcie gdy staje się "nielegalna" a nie gdy pokazujemy jąA najlepiej to nie dodawac nie właściwych broni ;D
#655613 Deploy crashuje serwer - niewidoczna broń
Napisane przez BlackPerfum
w 08.08.2014 20:39
Nie, to idealnieW kodzie ktory podales uzywasz RemovePlayerItem+pev_weapons+ItemKill. Czy to nie za dużo?
Mógłbyś podrzucić kod z Ham_AddPlayerItem? Chciałbym przetestować jak to działa.
public plugin_init() { RegisterHam(Ham_AddPlayerItem, "player", "AddItem") } public AddItem(id,ent) { new wid = cs_get_weapon_id(ent) if(is_user_alive(id) && ~(bronie_klasy[klasa_gracza[id]] | bonusowe_bronie_gracza[id] | bronie_dozwolone) & 1<<wid) { ExecuteHamB(Ham_Item_Kill, ent) return HAM_SUPERCEDE } return HAM_IGNORED }Jedynie z c4 bedzie trochę inaczej bo trzeba zmienić submodel oraz usunąć ikonkę
#655604 Deploy crashuje serwer - niewidoczna broń
Napisane przez BlackPerfum
w 08.08.2014 19:38
Bardzo często mylę terminy dlatego nie uczę się ich (wogóle) ale tak dostrzegam (o ile masz na myśli wykonanie funkcji w samej sobie)1. czy dostrzegasz w tym rozwiązaniu rekurencję?
Nie. Jestem za tym by jej nawet nie było2. czy jest ona niezbędna?
Potrafię przewidzieć WSZYSTKIE RACJONALNE przypadki oraz mogę nawet powiedzieć więcej iż jeśli ktoś tego kodu uzyje racjonalnie to problemów nie będzie miał3. Czy potrafisz przewidzieć WSZYSTKIE warunki wyjścia z niej i dopilnować, aby zawsze nastąpiło wyjście z niej?
A co jeśli zmienimy broń na taka która też ma zostać usunięta? Szybszy sposób wyjścia z sytuacji. Szansa na wywołanie się usuwania broni 2x z rzędu (biorąc pod uwagę iż to cod mod oraz że pisze się racjonalnie) jest wręcz zerowa ale przydało by się i tak na wszelki wypadek sprawdzić czy na pewno (tak wiem znowu mówię o skrajnościach...)Rozumiem argument, że broń nie zmieni się poprawnie, jeśli w PRE podmienimy parametr, dlatego owszem należy wywołać zmianę broni jeszcze raz, ale po co tu rekurencja...
Takim sposobem za każdym razem gdy gracz zmieni broń na nie właściwą bedziemy robić pętlę po wszystkich jego broniach, praktycznie to jest wręcz błachostaka dla serwera ale jakoś ja wolę by wszystko o siebie dbało za siebie dlatego kod który podałem "zadbał by o to sam" (tak wiem jestem pedantem...) Co do nie używania ExecuteHam bez B to nie do końca się zgodze gdyż inny plugin już nie złapie poprawnej broniPrzelećmy pętlą po wszystkich broniach gracza w Poście (bo Pre nie ma sensu używać, jeśli nie podmieniamy zmienianej broni) i po wyrzuceniu niepotrzebnych zmieńmy na jedną z tych, które gracz użyć może, jednak już używając execute bez B...

I tu spotykamy mega wade pisania w wielu pluginach a nie w jednym... My nie wywołamy drugi raz Deploy'a a inny plugin złapie nie poprawną bron i bedzie bęc. Dlatego tak to zrobiłem nie inaczej.Tworzenie rekurencji poprzez Ham jest niezalecane i to mocno... w jakimkolwiek przypadku... Nie dość, że sam pawn rekurencji nie optymalizuje, więc wychodzi ona dużo bardziej kosztownie, niż pętle, to jeszcze przy okazji mielimy wszystkim, co silnik robi podczas zmiany broni + wszystko co po drodze robi Ham i niech nam jeszcze do tego samego eventu inny plugin się podepnie... Istna katorga i nie dziwię się, że serwer by padł tylko od tego, nawet gdy rekurencja zakończy się prawidłowo.
To zależy czy użyjesz "rekurencji" czy nie. Jeśli tak to nie ma znaczenia czy to będzie post czy pre. Jeśli nie to większe pole do działania da ci post.Czyli jak juz chce deploy to post?
Tak. Dlatego to jest najlepsze rozwiązanie. Złapiesz tym każdy item który został dodany (tylko nie taki który dodałeś za pomocą tego ewentu ale ExecuteHamCzy Ham_AddPlayerItem wywołuje się wtedy gdy gracz otrzymuje item?


Kod "sam o to zadba" by nie było takich błędów. Dlatego jej nie użyłem. (zaleta użycia "rekurencji" ;D)Dlaczego w twym kodzie nie ma pętli po slotach?
Ogułem to od razu mówię że pomimo wstawiania się za rekurencją nie jestem za nią gdyż nie jestem za użyciem Deploy'a bo to jest do pewnego stopnia (bardzo bardzo małego) nie racjonalne. Lepiej łapać dodawanie broni. A najlepiej to nie dodawac nie właściwych broni ;D
Dodam iż można użyć SetHamParamEntity

const m_pActiveItem = 373 const m_pPlayer = 41 const m_pClientActiveItem = 374 const m_iszViewModel = 68 public Deploy(ent) { new id = get_pdata_cbase(ent, m_pPlayer, 4) new wid = cs_get_weapon_id(ent) if(is_user_alive(id) && ~(bronie_klasy[klasa_gracza[id]] | bonusowe_bronie_gracza[id] | bronie_dozwolone) & 1<<wid) { new weapon = get_pdata_cbase(id,m_pClientActiveItem,5) set_pdata_cbase(id,m_pActiveItem,weapon,5) ExecuteHamB(Ham_RemovePlayerItem, id, ent) set_pev(id, pev_weapons, pev(id, pev_weapons) & ~(1<<wid)) ExecuteHamB(Ham_Item_Kill, ent) SetHamParamEntity(1,weapon) set_pev(id,pev_viewmodel,get_pdata_int(weapon,m_iszViewModel,4)) return HAM_OVERRIDE } return HAM_IGNORED }Tylko nwm jak bedzie z animacją...
#655578 Deploy crashuje serwer - niewidoczna broń
Napisane przez BlackPerfum
w 08.08.2014 16:49
Oj to naprawdę jest chamskie. Czasem godzinę błędu szukałem a tu takie cuś...Zmień new i na new i=0, chociaż wątpię, by to było problemem...
Sprawda czy byt ma prywatne dane. Czasem (zazwyczaj) podczas usuwania bytu sam się nie usunie (znaczy nie od razu) ale prywatne dane od razu zostają kasowane.Możesz wyjaśnić dlaczego sprawdzasz tutaj tylko wartość 2?
Funkcja cała dobra. Działa nawet mi ale jest pewien szkopuł. NIGDY W ŻYCIU NIE WOLNO USUWAĆ AKTYWNEJ BRONI tzn. trzeba funkcję set_pdata_cbase



const m_pActiveItem = 373 const m_pPlayer = 41 const m_pClientActiveItem = 374 public Deploy(ent) { new id = get_pdata_cbase(ent, m_pPlayer, 4) new wid = cs_get_weapon_id(ent) if(is_user_alive(id) && ~(bronie_klasy[klasa_gracza[id]] | bonusowe_bronie_gracza[id] | bronie_dozwolone) & 1<<wid) { new weapon = get_pdata_cbase(id,m_pClientActiveItem,5) set_pdata_cbase(id,m_pActiveItem,weapon,5) ExecuteHamB(Ham_RemovePlayerItem, id, ent) set_pev(id, pev_weapons, pev(id, pev_weapons) & ~(1<<wid)) ExecuteHamB(Ham_Item_Kill, ent) ExecuteHamB(Ham_Item_Deploy,weapon) return HAM_SUPERCEDE } return HAM_IGNORED }Użycie ExecuteHam

#654330 [Poradnik] Jak naprawić menu z generatora Vip'a?
Napisane przez BlackPerfum
w 02.08.2014 18:06
Nie obwiniam i tez jestem za tym żeby go wogóle nie bylo ale jeśli już jest to wypadałoby by działał. Twierdzę jedynie iż ten temat nie zakończy serii tematów o problemach z vip'emon napisał jak naprawić to co nie dziala w generatorze (po cholere w ogóle ten generator?) a ty go obwiniasz o to że generator generuje wg ciebie slaby kod jakby to Drago go pisał
1,2,3,...,97,98,99 itdco jest w parametrze item?
W menu graczy nie przesyłał by sztywnych cyfer a serial id danego gracza a to jest duża różnicajak by chcial zrobic menu graczy czy cos to ta praktyka jest odpowiednia (nie wiem co mial na mysli autor kodu ale piszesz tak jakby to zawsze byl blad)
Ten sposób działania nad przekazywaniem i odbieraniem numeru przycisku jest błędny ale nikt nie mówi że inne sposoby są złe(nie wiem co mial na mysli autor kodu ale piszesz tak jakby to zawsze byl blad)
Wtf? Sory ale nie świecęNie rób z siebie gwiazdy

gdzie ja tu go obraziłem?nie obrazaj
#654312 [Poradnik] Jak naprawić menu z generatora Vip'a?
Napisane przez BlackPerfum
w 02.08.2014 16:19
Nie "lepiej"! Przeczytaj jeszcze raz mój post! Chodziło mi o to iż ludzie nadal będą się czepiać iż im coś z menu nie działa (a dokładnie ammo do broni czasem nie bedzie dodawane).Nie do tematu.. opisałem jak naprawić menu, nie jak "lepiej" dodać broń - nie ja pisałem vip'a generatora.
To nie był błąd, a jedynie szybszy sposób twojego tut'a. Poza tym to działa!!! Sprawdź jak nie wierzysz. Przykładowy kod vip'a:No i Benio miał rację. Nie sprawdzasz co dodajesz i wskazujesz ludziom błędy. Tak niech kopiują twoją opcję i narzekają , że nadal nie działa


Nie rozumiesz czegoś, jeśli zrobisz tut'a o menu który nie będzie w pełni sprawiał iż menu bedzie poprawnie działać to ludzie nadal bedą robić tematy zwiazane z vip'em bo coś im tam nie działa. Dlatego wniosłem pomysł:Chodziło tylko o menu , a ty robisz z igły widły aby robić niby tutki na naprawę całego generatora eh
Mówiąc to miałem na myśli by nie robić żadnego tut'a!!! W dziale support'u lub na git'cie to raz zrobić by działało i bedzie spokój z tematami związanymi z vip'emMogły by osoby mające dostęp do kodu generatora to sprawnie naprawić lub chociaż umieścić to na git'cie amxx'a / w dziale dla supporta, zajeli byśmy się nim i to odpowiednio
#654297 [ROZWIĄZANE] Problem Segmentation fault
Napisane przez BlackPerfum
w 02.08.2014 15:10

#654296 [Poradnik] Jak naprawić menu z generatora Vip'a?
Napisane przez BlackPerfum
w 02.08.2014 14:55

Nie mam amxx stidio... Co to w ogóle? W tym się pisze? Nie wszyscy lubią takie bAdZiEwIa. Już prędzej "dowolny edytor tekstowy".Co robimy pierwsze? No pewnie , że otwieramy naszego vip'a.sma w programie typu : amxx-studio
Teraz spróbuję ci wpoić do twojego mUzgÓ że ten temat nie sprawi iż ilość tematów zmaleje gdyż twój poradnik "Jak naprawić menu z generatora Vip'a?" ma parę błędów a że ja z lupą chodze po tym forum to ci je pokażę byś się samodoskonalił (z moją małą pomocą

• co z tego że menu zadziała jak w połowie przypadków broń zostanie błędnie dodana (głównie chodzi o to że bez ammo) chodzi o to iż funkcja find_ent_by_owner

give_item(id, "weapon_m3") new weapon_id=find_ent_by_owner(-1, "weapon_m3", id) if(weapon_id) cs_set_weapon_ammo(weapon_id, 8)


• jaki nie mądry człek (bardzo bardzo ... bardzo ładnie mówiąc) nauczył cię by poprzez 3 argument funkcji menu_additem

• nawet nie opisałeś sposobu by jedne zestawy były dla CT a inne dla TT (a to jest w generatorze vip'a), tak samo brak licznika rund (a on jest wbudowany w generatorze wystarczy warunek zrobić), wszystko jest za free w menu super!! Gracze się ucieszą (ale tylko vip'y) tzn. nie będzie zabierać kasy jak w generatorze ustawisz by zabierało
Twój cały tut można zamienić na coś takiego:
1. Zamienić to:
public menu_callback(id, menu, item){ return ITEM_DISABLED; }Na to:
public menu_callback(id, menu, item) return ITEM_ENABLED2. Zamienić to:
public menu_handler(id, menu, item){ menu_destroy(menu); return PLUGIN_HANDLED; }Na to:
public menu_handler(id, menu, item) { if(item != MENU_EXIT) { new func[20] formatex(func,charsmax(func),"menu_%i_handler",item+1) callfunc_begin_i(get_func_id(func)) callfunc_push_int(id) callfunc_end() } menu_destroy(menu) }I osoba czytająca nie musi już robić niczego inteligentnego, wystarczy że będzie kopiowac i wklejać a uzyska taki sam efekt jak u ciebie tylko że tu sie nie namęczy, a co ważniejsze nie pomyli... (można by było też callbacki wyrzucić bo nic nie robią ale to pikuś)
Rozumiem że CheQ to wymusił (hahahaha) ale bez przesady, jeśli miał by ktoś napisać tuta jak naprawić wszystkie błędy w generatorze to napisał by conajmniej książkę (jak nie całą sagę). Mogły by osoby mające dostęp do kodu generatora to sprawnie naprawić lub chociaż umieścić to na git'cie amxx'a / w dziale dla supporta, zajeli byśmy się nim i to odpowiednio
- AMXX.pl: Support AMX Mod X i SourceMod
- → Przeglądanie profilu: Reputacja: BlackPerfum
- Regulamin