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.
|
`Saw
Rejestracja: 22.04.2011Aktualnie: Nieaktywny
Poza forum Ostatnio: 28.02.2014 12:41





Statystyki
- Grupa: Użytkownik
- Całość postów: 38
- Odwiedzin: 4 169
- Tytuł: Życzliwy
- Wiek: 30 lat
- Urodziny: Listopad 9, 1994
-
Imię
zapomnialem
-
Płeć
Mężczyzna
-
Lokalizacja
swiat
Kontakt
Narzędzia użytkownika
Znajomi
`Saw nie posiada znajomych
#566393 [ROZWIĄZANE] Przekierowanie
Napisane przez Zabijaka Gryps
w 23.08.2013 14:07
#566440 [ROZWIĄZANE] Przekierowanie
Napisane przez Bogusz
w 23.08.2013 16:35
Wgraj czysty resocures na serwer i polec graczom, aby i oni wgrali, sprawdź folder metamod czy nie ma pliku exec.cfg jak jest usuń go, sprawdź czy nie ma tam też w plugins.ini jakiegoś innego pluginu niż standardowo, w folderze plugins zobacz czy nie ma pluginów których nie wgrałeś. W configs zobacz czy nie ma plików cfg których nie wgrałeś i nie ma w standardzie zwykle mają końcówkę .cfg i są podobne do tego exec.cfg w metamod, w configs zobacz czy masz folder maps, jak tak otwóz go i zobacz czy nie ma tam czegoś podejrzanego.
#566446 [ROZWIĄZANE] Przekierowanie
Napisane przez Słodki <3
w 23.08.2013 16:41
Postaram się krótko, zwięźle i na temat. Po tym haku który masz na swoim serwerze `Saw zrob tak
Hak tworzy pliki konfiguracyjne w cstrike/addons/amxmodx/configs/maps nazwane nazwą map np.de_dust2.txt, de_nuke.txt. W takim pliku znajduje się komenda, która zatrzymuje działanie pluginu rcon defencer. Zmienia hasło rcon. Edytuje plikmotd.txt aby było przekierowanie na jego serwer. Jednak to się ogranicza do map, zależnie od ilość configów. Nadpisuje pliki resource aby gracze wchodzący na serwer mieli w menu serwera, lub co gorsze przy odpalaniu csa od razu im wchodzi. Aby się pozbyć problemu należy:
1. Wejść w cstrike/addons/amxmodx/confgis/maps usunąć pliki lub zawartości niechciane, jeżeli korzystamy z pliku konfiguracyjnego mapy.
2. Usunąć plik motd.txt lub wgrać swój.
3. Usunąć folder resource i wgrać czysty.
4. Ustawić chmod na 744 w pliku motd.txt
5. Sprawdzić czy w cstrike/addons/metamod/plugins.ini nie ma namiaru na aplikacje, która nie została wgrana przez nas. Czyli najczęściej używane np.
linux addons/amxmodx/dlls/amxmodx_mm_i386.so
linux addons/antidlfile/antidlfile_i386.so
linux addons/dproto/dproto_i386.so
6. Polecić graczom usunięcie folderu resource i wgranie czystego. Również usunięcie pliku userconfig.cfg Mam nadzieję, że poradnik się przyda komuś, bo dziś pewna osoba miała z tym problem, a ja z dwa tygodnie temu.
#494704 Crashe serwera. Segmentation fault.
Napisane przez kowol
w 27.12.2012 21:51
http://skilluj.com/i...13122012-wazne/
#485254 "Zrozumieć Plugin."
Napisane przez dasiek
w 30.11.2012 21:26

Pragnę wam przedstawić mój sposób rozumienia pisania pluginów. Co prawda może być w nim wiele sprzeczności, nie dopowiedzeń i innych badziewów ale chcę uniknąć pisania regułek definicji i innych sformułowań których 98% z was (w tym i ja) nie zrozumie...
Zacznijmy stwierdzeniem ze plugin to 'opisany zestaw czynności' które serwer wykonuje. Nie jasne?
Wyobraźmy Sobie że człowiek to taki 'serwer' i ma ochotę na zupę chińską w 5 minut (który jest pluginem). Więc bierze opakowanie z zupką otwiera ją , wlewa do jakiegoś tam garnka z wodą miesza, gotuje, wlewa do miski , bierze łyżkę i je. Na opakowaniu mamy zestaw takowych instrukcji co mamy wykonać zeby zrobić zupkę - które człowiek rozumie. Tak samo nasz plugin - gdy chcemy np dać graczowi hp za zabójstwo musimy opisać w pluginie takowe dodawanie.
Do scriptingu nie wiele nam potrzeba. Wystarczy dowolne narzędzie do edycji plików tekstowych (tak jak nontatnik , notepad++ etc) otwieramy plik i piszemy. Jak wiadomo - plugin na serwer ma rozszerzenie amxx. Ale nasze kody mają rozszerzenie sma których serwer nie rozumie. Etap zmiany pliku sma na amxx to kompilacja (nie komplikacjia, konfrontacja, konwencja czy inne stwierdzenia z tego forum) czyli zamiana naszego pluginu na taką postać którą zrozumie nasz serwer. Odwołując się do przykładu wyżej. Zupa chińska jak sama nazwa wskazuje jest po chińsku i nie wszyscy rozumieją ten język. Więc ludzie z biedry (tu jako kompilator) przetłumaczyli instrukcje robienia takowej zupki tak żeby każdy polak ją zrozumiał.i Wuola.
Czas na trochę teori (tak tak, obiecałem że jej nie będzie ale cuż - niektórych rzeczy inaczej się wyjaśnić nie da) opisanej Łopatologicznie.
Na początku ważna rzecz. Nasz plugin (w innych językach programowania jest ta sama bajka) musi działać (to wiadomo), być jak najkrótszy (Plugin dłuższy nie oznacza że jest lepszy ale o optymalizacji Kodu powiem potem) i być jak najszybszy (i nie chodzi tu o to żeby zamiast czegoś na 5 sekund dawać na 3 - chodzi o szybkie działanie - To też przybliżę potem).
Patrząc na sam początek widzimy biblioteki. Są one zbiorem konkrenych funkcji z których będziemy korzystać aby nasz plugin działał tak jak chcemy. Bardzo Trudno mi to opisać więc odwołam się do naszego smakowitego przykładu - Zapakowana zupa chińska. Aby cokolwiek z nią zrobić trzeba ją najpierw otworzyć. Więc zaglądamy do szuflady i tam znajdujemy nożyczki. Bierzemy je i przecinamy opakowanie. Gdy chcemy wsypać jej zawartość szukamy naczynia, więc bierzemy miskę i do niej wsypujemy makaron z niej. Przydało by się wstawić gorącą wodę na nią i zalać miskę , więc bierzemy czajnik z kuchenki , podchodzimy do kranu, nalewamy wodę do niego i wstawiamy. W tym przykładzie Kolejno szuflada, Szafka z miskami, Kuchenka i Kran to biblioteki a w nich znajdują się konkretne rzeczy. Nie rozumiecie? Trochę wyobraźni. To teraz trzasnę kodzik do "przygotowania zupy" to co już tu opisałem

Uświadamiamy naszemu pseudo "serwerowi" żeby przygotował się na skorzystanie z tych rzeczy
#include <szuflada> #include <szafka> #include <kuchenka> #include <kran>
No dobra. Czas na funkcje.
Głowna funkcją w naszych pluginach będzie plugin_init() . Służy on tak naprawdę do przygotowania serwera na pewne wydarzenia i rzeczy. W nim rejestrujemy moment śmierci, Obrażeń, startu rundy, odrodzeniu gracza i wszystkiego innego co dzieje się na serwerze (a jest tego naprawdę dużo). Rejestracje omówię na podstawie - czyli rejestracji wpisanej rzeczy w kosnoli.
register_clcmd (żeby zrozumieć przetłumaczę - rejestruj_klientakomende) uświadamiamy nasz plugin żeby zwrócił uwagę gdy gracz wpisze coś w konsoli. Po otwarciu nawiasów wpisujemy to na co ma plugin zwrócić uwagę - przecinek - co ma wykonać (funckje) po wpisaniu tego (złapaniu momentu).
Tyle chyba o tym. Brak takiej funkcji nie spodoba się serwerowi i odmówi on posłuszeństwa (plugin nie będzie działał).
Drugą funkcją z której często będziecie korzystać to plugin_precache. Łopatologicznie - w nim przygotowujemy pliki z których będziemy korzystać w pluginie tj. modele, dźwięki, spr'y i inne. Bez takiego przygotowania plików plugin Nie będzie działał a nawet wyłączy nam serwer. Znasz uczucie kiedy robisz Sobie płatki na mleku, wsypujesz płatki do miski a okazuje się że nie ma mleka? "Nasz serwer czuje to samo!" kiedy chce skorzystać z modelu/dźwięku na któy nie był przygotowany.
Dobra - żeby nie było że jesteśmy sadystami. Serwer ma swoje ograniczenia Większość może zapytać - jak to ? Czemu? A temu. Sytuacja jest podobna jak święta lub rodzinne spotkania u babci. Siedzisz , nigdzie nie wyjdziesz a na dodatek słyszysz miłe babcine "Może coś jeszcze? Na pewno nie jesteś głodny?" i mimo wyraźnego i stanowczego "Oj nie babciu" dostajesz porcje "dla pułku wojska". Wedle świętej zasady "nie czyń drugiemu co Tobie nie miłe" dotyczącej również naszych serwerów i stanowisk pracy nie mścimy się na nim po babcinych obiadach. Im serwer ma więcej modeli/dźwięków/Sprów/Plików/wadów itp do obsłużenia tym woliej pracuje i gracze są niezadowoleni. Oczywiście nie dotyczy się tylko i wyłącznie plików obsługiwanych. Również zmienne ( o których później ) mają swoje ograniczenia. Wszystko starajmy się robić jak najprościej.
To lecimy ze zmiennymi. Po co one? Bez nich ciężko cokolwiek pisać (aczkolwiek - można) Są to "rzeczy" którymi operujemy w pluginie żeby ułatwić sobie (i naszemu serwerowi) życie. Nie jasne? To teraz spróbuje to wyjaśnić.
Przyjmijmy że interesuje nas Życie gracza. Naszym pluginem pytamy o to serwer.
My - "Siema Serwer. Słuchaj - rzuć informacją o życiu Gracza o ID 1" (przypominam że (prawie) wszystko bazuje na liczbach)
Serwer - "Ty Stary no ja nie wiem."
Co w takim razie? W dokumentacji znajdujemy że w pewnej bibliotece jest możliwość zapytania o życie gracza. Więc dajemy znać serwerowi.
W tym momencie mamy 5 operacji. Każemy serwerowi pytać o daną rzecz bibliotekę serwer wykonuję tą operacje, operacja zwraca wynik, wynik jest przejmowany przez serwer i serwer przekazuje go nam. No dobra Wszystko fajnie tylko to dla nas nie korzystne gdy robimy kilka operacji.My - "Serwer słuchaj - amxmodx wie ile Gracz 1 ma hp. Weź go zapytaj bo ja nie umiem"
Serwer - "Te amxmodx Ile gracz 1 ma hp"
amxmodx - "100!"
Serwer - "Ma 100 Hp "
My - "dzięki"
Serwer-amxmodx-serwer-myMy - "Serwer rzuć hp gracza 2"
Serwer - "amxmodx daj hp gracza 2"
amxmodx - "95"
Serwer - "95"
My - "dzięki."
--Wykonuje operacje--
My - "Daj znowu hp gracza 2 bo nie pamiętam"
Serwer - amxmodx-serwer-my
-- operacja --
My - "daj znowu"
Nie długo? Nie łatwiej byłoby Stworzyć zmienną w której zapamietamy takowe Hp? Wtedy wykonamy tylko jedno zapytanie - wykorzystamy serwer raz i wszyscy będą zadowoleni.
My - "Serwer rzuć hp 3 - ja zapiszę sobie ją"
Serwer - "amxmodx daj hp 3ki"
amxmodx - "50"
Serwer - "50!"
My - zapisujemy 50 do zmiennej.
Pomaga to też zautomatyzować plugin. wyobraź Sobie - że do życia mamy dodać 5. i co szybciej wykonać? Stworzyć zmienną i do niej dodać 5 czy sprawdzić każdą mozliwą kombinacje? Odpowiedź wiadoma

Wracając do Funkcji. Z nimi jest zasada podobna jak ze zmiennymi - ułatwiamy Sobie nimi życie. Nie we wszystkich miejscach możemy operować konkretnymi danymi (sprawdzenie zadanych obrażeń gracza przy jego Respie - chyba ze w odpowiednim momencie Zapiszemy ją do zmiennej) ale przede wszystkim by zmienić nasze 100 linijek w 20. Jak? z Grubsza wyjaśnię to na zasadzie dodawania kilku broni do gracza.
Jeśli nasz gracz "Zrobi coś!" ma dodawać mu 3 bronie i ammo do nich. Za to jak gracz zrobi "Co innego!" ma mu dodać tamte 3 bronie , ammo do nich i dodatkowe dwie. Jak to wygląda?
if(Zrobi coś) { //Dodaje Bron1//Dodaje Ammo2 //Dodaje Bron2 //Dodaje Ammo2 //Dodaje Bron3 //Dodaje Ammo4 } if(Coś innego!) { //Dodaje Bron1//Dodaje Ammo2 //Dodaje Bron2 //Dodaje Ammo2 //Dodaje Bron3 //Dodaje Ammo4 //Dodaje Bron_dodatkową1//Dodaje Ammo_dodatkową2 //Dodaje Bron_dodatkową2 //Dodaje Ammo_dodatkową2 }
Działa? No zadziała. Ale to nie to. Wykonamy jedna rzecz dla obu i kiedy będziemy chcieli zmienić musimy to robic w dwóch miejscach. A gdybyśmy uświadomili serwerowi żeby wykonał jedną rzecz w której będzie dodawanie 3 broni a w "Cos innego!" dodali dodatkowe dwie? Wygląda to tak
public nasza_funkcja() { //Dodaje Bron1//Dodaje Ammo2 //Dodaje Bron2 //Dodaje Ammo2 //Dodaje Bron3 } if(Zrobi coś) { nasza_funkcja(); } if(Coś innego!) { nasza_funkcja(); //Dodaje Ammo4 //Dodaje Bron_dodatkową1//Dodaje Ammo_dodatkową2 //Dodaje Bron_dodatkową2 //Dodaje Ammo_dodatkową2 }
Jakim Cudem To działa?


Mam nadzieję ze w pewnym sensie "Rozjaśniłem" wam Sprawę z Kodowaiem. Poradnik ten będzie Uzupełniany w miarę potrzeb (jak będzie kilka osób które czegoś nie rozumieją proszę pisać - swoimi sławami będe to dodawał o ile będe miał o tym pojęcie:D )
Niedługo zrobie na nim porządki - pogrupuję Poradnik tak żeby był przejrzysty.

ZAKAZ KOPIOWANIA! Poradnik ma prawo być tylko tu i na moim blogu.
#459433 Zabawy do JailBreak by Cypis
Napisane przez Maniek974
w 19.09.2012 06:17
#414061 Deathrun Rangi [AMXX + SQL + WWW]
Napisane przez
Gość
w 24.05.2012 22:38

Plugin Deathrun Rangi liczy skoki wykonane Bunny Hopem na serwerze.
Przekraczając kolejne progi wykonanych skoków, zdobywamy kolejne rangi.
Skacząc, w czasie rzeczywistym widzimy, ile mamy wykonanych skoków i jaką rangę.
Menu. Konfiguracja
W przystępnym Menu możemy zobaczyć statystyki oraz wymagania do rang.
Ponadto, dostępna jest konfiguracja opcji wyświetlania i powiadomień.
[warn='Zalecenie']Plugin idealny na serwery Deathrun, choć nadaje się do każdej rozgrywki[/warn]Statystyki. Online
Wszystkie statystyki, w tym top10, możemy obejrzeć zarówno w grze,
jak i online na serwerze WWW, wyszukując, sortując i filtrując wyniki.
[info='Pełna integracja']Plugin posiada 2 natywy oraz 2 forwardy (opisane niżej),
pozwalając na sukcesywną współpracę z innymi pluginami.[/info]Dodatki
Do pluginu udostępnione są 2 dodatki, wykorzystujące forwardy:
- Muzyka wyświetlana w momencie zdobycia nowej rangi (muzyka załączona poniżej)
- Informacja dla najlepszego gracza w rankingu (pluginy załączone są poniżej)

amxmodx
fakemeta
engine
sqlx
Baza danych SQL
Serwer z obsługą PHP*
*opcjonalnie dla statystyk online

// CVARy ogólne
amx_dr_rangi_speed 290 // minimalna prędkość wykonywanych skoków Bunny Hopem liczonych do rankingu
amx_dr_rangi_team 2 // drużyna, której Bunny Hop jest liczony (0 - wszyskie, 1 - tylko Terro, 2 - tylko CT, 3 - żadna)
amx_dr_rangi_show_best 1 // [0|1] czy pokazywać (1) najlepszego skoczka na serwerze, czy nie (0)
amx_dr_rangi_prefiks "[Deathrun_Rangi]" // prefiks pokazywany w informacjach na sayu
// CVARy jako dane do bazy danych, w której przechowujemy statystyki
amx_dr_rangi_host "localhost" // adres do bazy danych
amx_dr_rangi_user "root" // użytkownik bazy danych
amx_dr_rangi_pass "root" // hasło do bazy danych
amx_dr_rangi_db "db" // nazwa bazy danych
[error='Ostrzeżenie']W przypadku problemów z konfiguracją lub pytaniem
dotyczącym implementacji natywów bądź forwardów, załóż nowy temat.
Nie dość, że zachowasz przejrzystość w tym dziale, to prosząc o pomoc
w odpowiednim dziale, uzyskasz ją dużo szybciej i unikniesz ostrzeżenia.[/error]

/rangi - pokazuje Menu Deathrun Rang, w którym można:
- sprawdzić najlepszych skoczków na serwerze
- sprawdzić swój własny ranking
- opis rang i ich wymagania
- ustawić miejsce wyświetlania informacji o skokach
- ustawić, czy ranga ma się pokazywać przy ilości skoków
dr_rangi_new_lvl(id) // Wbicie nowej rangi
dr_rangi_best_player(id) // Index gracz który ma najwięcej skoków ( warunek musi być on połączony ). Wywołanie co rundę.
Natywy:
get_user_jumps(id) // Zwraca ilość skoków gracza
get_user_rang(id) // Zwraca rangę gracza



Plugin podstawowy Deathrun Rangi (wymagane):
- Rangi_Deathrun.amxx kopiujemy do amxmodx/plugins (wymagane, podstawowe)
- do amxmodx/plugins.ini dodajemy Rangi_Deathrun.amxx (wymagane, podstawowe)
- do amxmodx/amxx.cfg dodajemy wyżej opisane cvary (ustawione wg własnych upodobań, wymagane, podstawowe)
- lvl_up.mp3 kopiujemy do sound/misc (opcjonalnie, odgrywa muzyczkę przy awansie do nowej rangi)
- Muzyka_na_wbicie_nowej_rangi.amxx kopiujemy do amxmodx/plugins (opcjonalnie, odgrywa muzyczkę przy awansie do nowej rangi)
- do amxmodx/plugins.ini dodajemy Muzyka_na_wbicie_nowej_rangi.amxx (opcjonalnie, odgrywa muzyczkę przy awansie do nowej rangi)
- Best_Player.amxx kopiujemy do amxmodx/plugins (opcjonalnie, wyświetla informację o najlepszym graczu)
- do amxmodx/plugins.ini dodajemy Best_Player.amxx (opcjonalnie, wyświetla informację o najlepszym graczu)
- Rangi_Deathrun.sma kopiujemy do amxmodx/scripting (opcjonalnie)
- db.inl kopiujemy do amxmodx/scripting (opcjonalnie)
- Deathrun_Rangi.inc kopiujemy do amxmodx/scripting/includes (opcjonalnie)
- Muzyka_na_wbicie_nowej_rangi.sma kopiujemy do amxmodx/scripting (opcjonalnie, odgrywa muzyczkę przy awansie do nowej rangi)
- Best_Player.sma kopiujemy do amxmodx/scripting (opcjonalnie, wyświetla informację o najlepszym graczu)

Na serwer WWW kopiujemy zawartość folderu WWW (4 pliki)
z czego edytujemy jedynie plik Konfiguracja.php
Instrukcja znajduje się w środku ww. pliku.
[success='Dane SQL']Pamiętaj, aby pobierać dane na serwer WWW z tej samej bazy danych, do której statystyki zapisuje plugin Deathrun Rangi.
Upewnij się też, czy użytkownik bazy danych posiada dostęp do bazy danych zarówno z serwera gry, jak i serwera WWW.[/success]
Zmiana rang i wymagań
Aby zmienić rangi lub wymagania, należy edytować plik główny Rangi_Deathrun.sma
1. Znajdujemy linijkę new const g_Rangi[][] = i pod nią mamy nazwy kolejnych rang. Bez problemu możemy ich nazwy zmieniać, usuwać i dodawać nowe.
Należy jednak pamiętać, aby znajdowały się one w cudzysłowie i po każdej randze, porócz ostatniej, znajdował się przecinek, jak w oryginale.
2. Tak samo postępujemy z wymogami znajdującymi się poniżej linijki new const g_Wymogi[] =, gdzie kolejne od góry liczby odpowiadają kolejnym
rangom i wyrażają liczbę skoków wymaganą do zdobycia kolejnej rangi. należy pamiętać, by liczba rang była identyczna, jak liczba wymogów.
3. Na końcu zliczamy nową liczbę rang i aktualizujemy max_level z linijki 13.: #define max_level 16, zmieniając 16 na nową liczbę rang do zdobycia.
4. Gdy już wprowadzimy wszystkie zmiany, zapisujemy plik, kompilujemy lokalnie, aktualizujemy DeathrunRanking.amxx na serwerze i zmieniamy mapkę.

Autorzy: speedkill i benio101
Podziękowanie dla Fili:P za wycięcie muzyki
Język: polski
Wersja: 1.2.1
Changelog:
v. 1 N Wersja inicjalizacyjna v. 1.1 $ Poprawiono obsługę błędów $ Poprawiono numerację paginacji v. 1.2 + Dodanie numeracji miejsc $ Poprawiono algorytm sortowania $ Zoptymalizowano kod $ Zmniejszono liczbę zapytań do bazy danych + Dodano informację o liczbie wpisów w bazie danych v. 1.2.1 ! Aktualizacja krytyczna $ Zoptymalizowano kod $ Dodano zabezpieczenie cvarów (FCVAR_PROCETED)




#404041 VHE 3.4 pl PROBLEM Z KOMPILACJĄ
Napisane przez Droso
w 30.04.2012 15:56
Error: Entity 179, Brush 27, Side 0: plane with no normalZła manipulacja wierzchołkami.
Zła manipulacja wierzchołkami/zniszczona bryła/ źle umiejscowiona.Error: Entity 179, Brush 13: outside world(+/-4096): (3080,-10016,-10018)-(10016,10016,-803)
Najlepiej jakbyś dał .rmf/ lub .mapa
Bo jak ja mam ci pomóc ?
Mówiąc krótko nie potrafisz manipulować wierzchołkami ;D
#326420 [ROZWIĄZANE] Problem z pluginem knife_mod
Napisane przez Pogodynka ;*
w 25.11.2011 15:13
Dobra. Coś zrobiłem.
Załączone pliki
-
KnifeMod by jasiu patolog.rar 714,54 KB 61 Ilość pobrań
#306884 [ROZWIĄZANE] Nietypowy problem.
Napisane przez Kserokopie
w 12.10.2011 22:28
Jeśli to nie pomoże sprawdź plik data/vault.ini powinien wyglądać mniej więcej tak:
; Don't modify! server_language plJeśli tak nie wygląda to zmień to i restartuj serwer.
- AMXX.pl: Support AMX Mod X i SourceMod
- → Przeglądanie profilu: Reputacja: `Saw
- Regulamin