Skocz do zawartości

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.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

aSiorr - zdjęcie

aSiorr

Rejestracja: 26.12.2015
Aktualnie: Przegląda profil aSiorr
Poza forum Ostatnio: dziś, 04:58
-----

Moje tematy

Paczka GunGame [ReHLDS]

03.01.2019 22:55

opis
Paczka składa się z dwóch pluginów: gungame oraz mapchooser. Oba pluginy są ze sobą związane od strony kodu, ale można to przerobić jeśli komuś bardzo zależy.
Awansuje się w systemie zabójstw z danej broni. Przykładowo 3 fragi z glocka (1 lv.) -> usp (2 lv.).
Zabicie kosą na którymkolwiek z poziomów doda nam dwa fragi (możliwość ustawienia automatycznego awansu, bądź zmiany ilości fragów).
Ostatnim poziomem jest kosa, ale niedługo będzie możliwość opcjonalnego włączenia czegoś "fancy" (myślałem o młodszych graczach i uznałem, że nie zaciekawi ich "vanillah cs shootout", więc warto dodać coś ciekawego. Na ten moment myślę nad czymś pokroju różdżki a'la Harry Potter i strzelaniem piorunami).
 
Silnik ma zapis MySQL z wygranymi graczami. Dostępna jest także topka:

Spoiler

 
 
Główna zawartość paczki:

  • Rozgrzewka z możliwością randomizacji lub wyborem statycznej broni (w tym różdżki bez konieczności włączania jej na ostatni poziom) oraz wybraniem wygranego (bazując na ilości zdobytych fragów) z możliwością ustawienia poziomu, od którego zacznie zwycięzca,

Spoiler

  • Komenda /info { nick } dająca nam informacje o aktualnie dostępnym na serwerze graczu:

Spoiler

  • Sprite'y (aktualnie tylko przy levelupie),
  • Dźwięki (aktualnie przy: rozgrzewce, timer tick, game-end, game-beginning, levelup, leveldown),
  • Komenda /lista otwierająca menu z danymi o awansowaniu broni (opcje wzorcowo: poziom - nazwa broni - ilość wymaganych zabójstw,
  • Usuwanie broni z ziemi na każdej mapie,
  • Możliwość bardzo łatwej konfiguracji z poziomu kodu pluginu (całe ustawienia będą podane poniżej),
  • Natywy,
  • Możliwość łatwego dodania zablokowanych komend (np. kill),
  • Usunięte denerwujące dźwięki (np. rzucenia granatu + usunięcie tekstu z czatu),
  • Niekończąca się runda (jeśli paczka jest dobrze skonfigurowana), 
  • Usuwanie broni wypadających po śmierci,
  • Flash na ostatnim poziomie,
  • HUD podczas GG:

Spoiler

  • Wybranie najlepszych graczy danej mapy:

Spoiler

  • Wiele więcej drobnych konfiguracji.

konfiguracja
Paczka ma bardzo prostą konfigurację, wystarczy niewielka wiedza z języka angielskiego i jesteście ustawieni. Dla opornych jestem w stanie przetłumaczyć ustawienia, ale nie będę tego robił na zapas w przód.
 
Mod napisany jest pod ReHLDS + regamedll. Do paczki dorzucam readme w którym zawarte są instrukcje instalacji:

Spoiler

 
komendy

  • /info {nick}
  • /lista, /listabroni itp.
  • /top, /topka itp.

Zablokowane komendy (domyślnie):

  • drop,
  • fullupdate,
  • radio1,
  • radio2,
  • radio2

Z góry zaznaczam, że "#define VIP_FLAG" jest opcją testową, a paczka NIE ZAWIERA vipa. Planuję go dodać, jak tylko znajdę na to dłuższą chwilę.
 
Konfiguracja (lista ustawień z gungame.sma):

Spoiler

 
Do tej pory paczka sprzedana tylko jednej osobie.
 
Kontakt jest na moim profilu (preferuję steam, ale odpisuję także na wiadomości prywatne tutaj).

Szanujmy swój czas, nie będę odpisywał na oferty, które kpią z mojej pracy. Cena wyjściowa 200zł w dół, nie będę na nikim żerował.

Dotychczasowo paczka wraz z mapchooserem oraz konfiguracją sprzedana za 170zł.

 

Dodatkowo jestem w stanie dorzucić paczkę map (ok. 40), ale nie wszystkie są sprawdzone, do niektórych może brakować plików (które można łatwo pobrać, ale jednak nie jest to "simple copy + paste").

Skiny broni (V_, P_) z zapisem MySQL.

26.12.2018 14:18

Ostatnio widuję sporo tematów związanych ze skinami, brakami w aktualnych pluginach etc, więc postanowiłem napisać plugin, w którym nie będzie kompromisów - oczywiście nie wyszło, więc dostajecie to co nawymyślałem :D .
Plugin będzie udoskonalany z biegiem czasu, a o zmianach będę informował w notatkach pod tym postem.
 
Uprzedzając pytania: tak, dodam możliwość wyboru pomiędzy zapisem MySQL a nvault (zastanowię się nad pójściem na kompromis i użyciem Sqlite, ale to już mniejsza).

opis
Plugin dodaje na serwer skiny do broni, z możliwością manualnego ich wyłączenia. Plugin testowany był w stosunkowo nieznacznym stopniu, także nie polecam wrzucać go od razu na serwer publiczny, a wcześniej przetestować i zdać relację tutaj. Brak możliwości kupna skina in-game, jedyną możliwością zostaje nadanie flagi na skina i sprzedaż w sklepiesms etc.

konfiguracja
Plugin posiada plik konfiguracyjny, który należy uzupełnić według wzoru:

"v model path" "p model path" "skin name" "skin access (flag)" "weapon CSW"

 
gdzie:

  • v model path - ścieżka do modelu v_*.mdl, zaczynając od folderu cstrike/.
  • p model path - ścieżka do modelu p_*.dml, zaczynając od folderu cstrike/.
  • skin name - nazwa skina widniejąca w menu (max. 32 znaki, można to zmienić w kodzie).
  • skin access - dostęp do skina, plugin aktualnie obsługuje tylko jedną flagę, ale niedługo zapewne dopiszę obsługę wielu. Skin dostępny dla wszystkich graczy = 0. Flaga w wersji stringa, nie bitowej.
  • weapon CSW - index CSW_ broni, na jego bazie plugin rozpoznaje tablice dynamiczną i zapisuje do niej powyższe dane. Listę można znaleźć min. tutaj.

Maksymalna ilość skinów jest domyślnie ustawiona na 32. Jeśli chcemy zwiększyć ten limit, konieczne będzie przerobienie pluginu w znacznym stopniu, natomiast idąc w dół nie ma żadnych przeszkód.
 
 
Komendy do menu dostępne są w tablicy skinsMenuCommands:

// Skins menu commands.
new const skinsMenuCommands[][] =
{
	"say /skiny",
	"say_team /skiny",

	"say /skins",
	"say_team /skins"
};

 
 
Dane do bazy danych uzupełnić należy w tablicy mysqlData, stosując się do enuma powyżej:

  • databaseHost - host
  • databaseUser - użytkownik
  • databasePass - hasło
  • databaseDB - baza
  • databaseTableName - nazwa tabeli w bazie, np 'skiny'

 

 

Ścieżka pliku konfiguracyjnego w stałej configFilePath.

 

inne informacje
Dla koderów: komentowałem kod w większości skupiając się tylko na "ogólnym poglądzie" na kod, więc jeśli znajdziecie kruczki to mnie nie biczujcie.
Większość, o ile nie wszystkie 'ustawienia' kodu są w constach/define'ach u góry.
Jestem pewny, że zrobiłem gdzieś błąd, ale nie mam możliwości sprawdzenia pluginu z większą ilością graczy, więc z góry za to przepraszam.

 

 

Wielkie dzięki dla AwIlLa za wszelką wiedzę, jaką się ze mną podzielił co do mysqla :) .

Sterta pytań; podwajanie się wiadomości say, grenade release, numerki w menu

19.12.2018 03:26

Mając taki kod:

Spoiler

 

w rezultacie otrzymuję:

  • Będąc jedyną osobą na serwerze: 
    [GUN GAME] Gracz aSior jest na poziomie 1 [Glock - 0/2]. Wygral 4 razy. Status VIP: VIP.
    
  • 2 osoby na serwerze (nie sprawdzałem z więcej niż 2): 
    [GUN GAME] Gracz aSior jest na poziomie 1 [Glock - 0/2]. Wygral 4 razy. Status VIP: VIP.
    [GUN GAME] Gracz aSior jest na poziomie 1 [Glock - 0/2]. Wygral 4 razy. Status VIP: VIP.

 

 

2. Wykrywanie rzucenia granatu (bez operacji na modelach ani dźwięku), nie wyciągnięcia zawleczki (tak, jak jest to w primaryAttack z kanapki).

3. Usunięcie 1/x, gdzie x = ilośc stron menu. Dodatkowo usunięcie cyferek przy itemach menu. Nie chcę używać starego typu menu.

Propozycje zmian w generatorze vip

14.12.2018 23:09

Na wstępie chciałbym prosić każdego czytelnika o dołożenie swojej wiedzy do tematu i podzielenie się doświadczeniem, żeby wspólnie udoskonalić generator.

 

Ode mnie takie info:

 

Usunąć makrodefinicję IsPlayer

Spoiler

 

Zależnie od tego, czy chcemy iść z tym wszystkim pod kod easy-to-read czy wydajny:

Zamiana bool'a g_Vip na bity

Spoiler

 

Zmiana syntaxu sprawdzania sumy bitowej flag gracza

Spoiler

 

Zmiana momentu i częstotliwości przypisywania dostępu do vipa

Spoiler

 

Jednorazowe pobranie nicku gracza, żeby uniknąć powtarzania się tego przy liście vipów, say'u etc.

Spoiler

 

Zmiana syntaxu w sayHandle na łatwy do odczytania przy prefixie

Spoiler

 

Przy okazji tego wszystkiego można by zmienić syntax kodu overall; usunąć zbędne spacje, ogarnąć powtarzający się kod, nazwy zmiennych z np. "g_Vip" na "hasVip" (tak, wiem, że są różne syntaxy pisania kodu i różne firmy wymagają różnych sposobów jego pisania, ale tutaj możemy śmiało powiedzieć, że sami będziemy na tym korzystać. Moim zdaniem łatwiej się czyta "hasVip" niż "g_Vip", ale to już preferencje personalne, ja tylko daję propozycję ;) ), usunąć zbędne przechodzenie do osobnych funkcji, usunąć brackety przy jednoliniowych funkcjach (tak, tutaj też wiem, że to ma swój cel i różni programiści [...]).

Jak wykryć wybuch granatu

09.12.2018 21:29

Potrzebuję rejestrować wybuch (a najlepiej sam rzut, nie wyciąganie zawleczki) granatu.

Używam aktualnie

Ham_Weapon_PrimaryAttack

i efekt jest taki, że wyciąganie zawleczki wywołuje ten event - tym samym przeszkadza mi to w tasku, który się wykonywać powinien po rzucie.