Widzę mój serwer tak popularny, że ktoś musiał sobie nawet tak samo walutę nazwać
przestań już spamować, bo robisz się żałosny
To równanie zostało stworzone przy pomocy kodu LaTeX:
Edytor LaTeX online: CodeCogs.com/latex/eqneditor.php
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.
|
Napisane przez kUJJ
w 08.04.2015 22:46
Napisane przez Puchate
w 14.05.2015 13:58
ReHLDS
Reverse-engineered HLDS v0.1
1. Czym jest ReHLDS?
Reverse-engineered HLDS, w skrócie ReHLDS jest silnikiem serwera dla gier GoldSource, takich jak Counter-Strike 1.6. Nie jest to twór ze stajni Valve, autorem projektu jest osoba prywatna która udostępnia go na zasadach open source. Stworzony został poprzez inżynierię wsteczną na podstawie oryginalnego engine w wersji 6153 (plik engine_i486.so).
2. Co to zmienia?
Podczas analizowania kodu aplikacji zostało wykryte wiele błędów (w tym potencjalnych), co poskutkowało naprawieniem ich w wynikowej wersji. Dzięki temu zyskujemy zdecydowanie większą stabilność serwera oraz optymalizację wydajności. Dla przykładu przypomnę, iż oryginalny silnik gry powstał w 1999 roku, w momencie gdy nie istniało wiele powszechnych dziś rozszerzeń rozkazów dla procesorów, takich jak SSE. Nie jest żadną nowością fakt, że HLDS od Valve nie wykorzystuje dostępnych dziś instrukcji, co przyczynia się na niebywale niską wydajność serwerów zważając na moc obliczeniową dzisiejszych komputerów. Inaczej jest natomiast w ReHLDS, autor projektu deklaruje wsparcie dla nowych technologii w wielu przypadkach, takich jak np. obliczenia na wektorach. Jednakże należy pamiętać że jest to tylko podstawowy element silnika gry służący do jego uruchomienia, nie obsługuje on rozgrywki więc większość operacji wykonuje się w plikach od producenta które takiej optymalizacji nie mają. Nie należy zatem oczekiwać kosmicznych przyrostów.
Dodatkowym smaczkiem jest nowe API serwera które możemy wykorzystywać w pluginach.
3. Jak używać?
Jak już wcześniej wspominałem, jest to oprogramowanie z udostępnionymi źródłami więc najlepszym rozwiązaniem jest skompilowanie programu w środowisku w którym będzie używany. Jednakże, będąc realistą, wiem że nie jest to proste ze względu na zaawansowany proces kompilacji (dla osób nie mających wcześniej z tym styczności) bądź brak dostępu do kompilatora.
Rozwiązaniem tego problemu jest pobranie skompilowanych już plików oraz wysłanie ich na serwer.
4. Wersje ReHLDS
W chwili obecnej są dostępne dwie wersje:
- pure - jest to wersja "bezpieczna", która używa mechanizmów zawartych w oryginalnym HLDS lecz z przepisanym kodem na nowo
- bugfixed - wersja zoptymalizowana, w której poprawione jest wiele błędów oraz wykonane są dodatkowe optymalizacje wydajności
5. Problemy
Zasadniczo ReHLDS jest już przetestowany i wszystkie znalezione błędy zostały poprawione, lecz wciąż jest to projekt w początkowej fazie wzrostu i mogą pojawić się nieoczekiwane problemy.
Dodatkowo, ze względu na inny proces kompilacji i zmienony kod mogą nie działać dodatki opierające się na analizowaniu skompilowanego już kodu (wyszukiwaniu patternów). Przykładem takiego dodatku jest Orpheu bądź Okapi.
6. Download
Źródła: https://github.com/d...stalker/rehlds/
Skompilowany silnik: http://nexus.rehlds..../rehlds-0.1.zip
Napisane przez szelbi
w 17.09.2014 16:56
Napisane przez Abes Mapper
w 08.05.2009 23:48
Napisane przez Droso
w 26.04.2014 17:25
Autor: HubertTM (aka Drozu)
V: 1.0
Wiadomo HIT na androida. Grać można tylko jako nieżywy, ale jak ożyjemy postępy są zapisywane .
Aktualnie za przejście nie ma nagrody bo każdy pewnie chce co innego, wystarczy dodać swoje linijki Szukajcie frazy: wygrales
Sterowanie WSAD/Strzałki.
Wersja Stabilna
Changelog:
1.0 - Beta
1.1 - Stabilna - poprawki błędów
Zdjęcia:
na razie brak - nie mam neta i wrzucam u kuzyna (moze ktos wrzuci? )
Standard.
Napisane przez Mr. Dziwny
w 02.02.2014 22:22
Witajcie, zacznę od tego że jest to mój pierwszy poradnik tutaj, tak więc nie oceniajcie surowo .
Na forum takiego poradnika niestety nie znalazłem, a myślę że się przyda.
Chodzi mi oto: http://amxx.pl/topic...y-bron-jaka-ma/
Źródło do oryginału: http://amxx.pl/topic...siadanej-broni/
Jak łatwo zauważyć jest to na frakcje natomiast ja pokaże jak można to zrobić nie mając frakcji na swoim serwerze, albo korzystając ze frakcji darkgl'a (sposób I, a czy II to nie patrzałem )
Wszystko edytujemy w funkcji
public WybierzKlase(id)
Zmieniamy to:
new klasa[50];
Na:
new klasa[370],bronie[320],bron[22],n
Teraz szukamy:
WczytajDane(id, i);
i pod tym dodajemy:
bronie = "" n=1 for(new b=1 ; b <= 32; b++) { if((1<<b) & bronie_klasy[i]) { get_weaponname(b, bron, 21) replace_all(bron, 21, "weapon_", "") ucfirst(bron) if(n > 1) add(bronie, charsmax(bronie), ", ") add(bronie, charsmax(bronie), bron) n++ } }
Pod koniec szukamy:
format(klasa, charsmax(klasa), "%s \yPoziom: %i", nazwy_klas[i], poziom_gracza[id]);
i zmieniamy na:
format(klasa, charsmax(klasa), "%s \y[Poziom: %i] \w-%s %s", nazwy_klas[i], poziom_gracza[id],(n == 2 ? "Bron: " : "Bronie: "),bronie);
Oczywiście można się pobawić w tym żeby lepiej wyglądało itd., ale to już szczegół .
Całość powinna wyglądać tak:
public WybierzKlase(id) { new menu = menu_create("Wybierz klase:", "WybierzKlase_Handle"); new klasa[370],bronie[320],bron[22],n for(new i=1; i <= ilosc_klas; i++) { WczytajDane(id, i) bronie = "" n=1 for(new b=1 ; b <= 32; b++) { if((1<<b) & bronie_klasy[i]) { get_weaponname(b, bron, 21) replace_all(bron, 21, "weapon_", "") ucfirst(bron) if(n > 1) add(bronie, charsmax(bronie), ", ") add(bronie, charsmax(bronie), bron) n++ } } format(klasa, charsmax(klasa), "%s \y[Poziom: %i] \w-%s %s", nazwy_klas[i], poziom_gracza[id],(n == 2 ? "Bron: " : "Bronie: "),bronie); menu_additem(menu, klasa); } WczytajDane(id, klasa_gracza[id]); menu_setprop(menu, MPROP_EXITNAME, "Wyjdz"); menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona"); menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona"); menu_display(id, menu); client_cmd(id, "spk QTM_CodMod/select"); }