Witam. Jest możliwość, żeby przerobić plugin tak, że gracz wpisuje np /dzwieki i wyłącza mu dany plugin, który dodaje różne dźwięki przy zabiciu?
Jeśli tak, to mógłby go ktoś dla mnie przerobić?
.sma podsyłam w załączniku
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.
|
Napisano 03.02.2020 20:07
Witam. Jest możliwość, żeby przerobić plugin tak, że gracz wpisuje np /dzwieki i wyłącza mu dany plugin, który dodaje różne dźwięki przy zabiciu?
Jeśli tak, to mógłby go ktoś dla mnie przerobić?
.sma podsyłam w załączniku
Napisano 05.02.2020 12:59
nie testowalem tego, ale moze zadziala.
/dzwieki wlacza lub wylacza dzwieki.
Krótki opis jak robic takie rzeczy: po prostu każde wywołanie funkcji (client_cmd) która odtwarza dźwięk zamieniasz na funkcje playSound, reszta dzieje sie sama.
Jak nie zadziała to napisz oraz załącz potrzebne dźwięki, żebym mógł to przetestować u siebie
Napisano 05.02.2020 18:48
Jestem na steam i działa jak najbardziej
Mógłbyś jeszcze dodać mi do tego pluginu takie coś?:
[DZWIEKI] w kolorze czerwonym i Wylaczyles Dzwieki. w kolorze zielonym.
Napisano 05.02.2020 19:21
zamien sobie na dole funckje client_print na Colorchat
Więcej poczytasz tu: https://amxx.pl/doku.../f348/colorchat
Napisano 05.02.2020 19:23
Dodatkowo z tego co zauważyłem to na CS 1.6 v43 od CsSetti z protektorem nie działają w ogóle te dźwięki, żeby działały to tylko i wyłącznie trzeba usunąć protektor czy jest jakieś obejście?
a na steamie na początku słychać, a po wylaczeniu i wlaczeniu już nie.
Jaka jest tego przyczyna?
Jeśli chodzi o kolory już ogarnąłem
Użytkownik Roughster edytował ten post 05.02.2020 19:42
Napisano 12.08.2020 07:53
CsSetti z protektorem nie działają w ogóle te dźwięki, żeby działały to tylko i wyłącznie trzeba usunąć protektor czy jest jakieś obejście?
Problem jest w tym:
client_cmd(0, "spk %s", nazwa_dzwieku);
Dźwięk odtworzy się za pośrednictwem konsoli, co w przypadku cssetti odpada, ponieważ jest to blokowane.
Nie jest to idealne rozwiązanie, ale zamiast linijki powyżej można zastosować:
emit_sound( id, CHAN_AUTO, nazwa_dzwieku, VOL_NORM, ATTN_NORM, 0, PITCH_NORM );
Z tym, że wtedy źródłem emitowanego dźwięku jest byt(id). Więc np. ktoś z drugiego końca mapy tego nie usłyszy. Można dać pętelke, aby każdy wytworzył ten dźwięk, lecz będzie się on dublował i przy dużej ilości graczy może nie być to przyjemne.
Użytkownik Mixtaz edytował ten post 12.08.2020 07:55
Mój serwer Zombie Biohazard/Deathmatch
Napisano 12.08.2020 11:18
Emit_sound, kiedy przyjmie w argument indexu "0", odtworzy dźwięk dla wszystkich graczy:
Dlatego też jeśli client_cmd nie działa (w co wątpię, ale jakaś szansa jest), proponuję użyć tego w ten sposób:
emit_sound(0, CHAN_AUTO, nazwa_dzwieku, VOL_NORM, ATTN_NONE, 0, PITCH_NORM);
Jakby nie działało, to pokombinowałbym z channelem.
Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.
Napisano 12.08.2020 12:09
A co jeśli chciałbym to przerobić w taki sposób, żeby tylko dany gracz widział i słyszał z możliwością on/off?
Jakby to wtedy wyglądało?
Napisano 12.08.2020 13:51
Emit_sound, kiedy przyjmie w argument indexu "0", odtworzy dźwięk dla wszystkich graczy:
TAK SIE DA??
przecież 0 (serwer/world) to nie byt taki jak gracz czy jakiś tam inny ent, gdzie sie niby ma dźwięk odtworzyć?
pozdrawiam
Mój serwer Zombie Biohazard/Deathmatch
Napisano 12.08.2020 15:18
Emit_sound, kiedy przyjmie w argument indexu "0", odtworzy dźwięk dla wszystkich graczy:
TAK SIE DA??
przecież 0 (serwer/world) to nie byt taki jak gracz czy jakiś tam inny ent, gdzie sie niby ma dźwięk odtworzyć?
pozdrawiam
if (params[1] == 0) { for (int i = 1; i <= gpGlobals->maxClients ; ++i) { CPlayer* pPlayer = GET_PLAYER_POINTER_I(i); if (pPlayer->ingame) EMIT_SOUND_DYN2(pPlayer->pEdict, channel, szSample, vol, att, flags, pitch); } } else { edict_t* pEdict = TypeConversion.id_to_edict(params[1]); if (!FNullEnt(pEdict)) EMIT_SOUND_DYN2(pEdict, channel, szSample, vol, att, flags, pitch); }
W skrócie, jeśli param[1] (id) == 0, stwórz pętlę dla każdego gracza i odtwórz kolejno na każdym z nich. Jeśli parametr jest różny od 0, wykona się na podanym id.
Co do pytania wyżej, trzeba by zrobić swoją pętlę, tak się domyślam.
Użytkownik Wicked. edytował ten post 12.08.2020 15:19
Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.
0 użytkowników, 0 gości, 0 anonimowych