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
 

Zdjęcie

RoundSound


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
3 odpowiedzi w tym temacie

#1 METALOWIEC

    Zaawansowany

  • Użytkownik

Reputacja: 26
Życzliwy

  • Postów:138
  • GG:
  • Lokalizacja:Szczecin
Offline

Napisano 03.06.2018 18:27

Chciałbym zrobić własny - prosty plugin roundsounda. Pierwsza część - dziecinnie łatwa - odtwarzanie dźwięku przy rozpoczęciu nowej rundy (gra w trakcie freezetime).

Wyskrobałem coś takiego:

#include <amxmodx>
#include <cstrike>

#define PLUGIN "TDM RoundStart"
#define VERSION "1.0"
#define AUTHOR "METALOWY"

public plugin_init()
{

	register_event("HLTV", "event_new_round", "a", "1=0", "2=0")
	register_logevent("logevent_round_end", 2, "1=Round_End")  
	register_clcmd("rs", "rswarfare")
	register_clcmd("re", "rewarfare")
}

public plugin_precache() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR);
	precache_sound("misc/newroundranger2.wav")
	precache_sound("misc/newroundopfor2.wav")
	precache_sound("misc/rangerwin.wav")
	precache_sound("misc/opforwin.wav")
	precache_sound("misc/rangerdefeat.wav")
	precache_sound("misc/opfordefeat.wav")
}


public event_new_round(id)
{
	
	client_cmd(id, "rs");

}

public rswarfare(id)
{

	if ( cs_get_user_team(id) == CS_TEAM_CT )
	{
		client_cmd(id, "spk misc/newroundranger2.wav")
	} 
	if ( cs_get_user_team(id) == CS_TEAM_T )
	{
		client_cmd(id, "spk misc/newroundopfor2.wav")
	} 
}

public logevent_round_end(id)
{
	
	client_cmd(id, "re");

}

public rewarfare(id)
{

	if ( cs_get_user_team(id) == CS_TEAM_CT )
	{
		client_cmd(id, "spk misc/rangerwin.wav")
	} 
	if ( cs_get_user_team(id) == CS_TEAM_T )
	{
		client_cmd(id, "spk misc/opforwin.wav")
	} 
}

Funkcja "rewarfare" powinna odpowiadać za zastąpienie "CT/T Wins" oraz wygenerowanie dźwięku dla odpowiedniej drużyny.

Sprawdzałem działanie Alternative End Round Sound ale za H nie mogę się w tym połapać, mógłby ktoś wskazać czego dokładnie szukać (przy okazji, da się wydłużyć czas pomiędzy RoundEnd a NewRound - czytałem co nieco na temat: "mp_round_restart delay" ale to nie działa). 

 


  • +
  • -
  • 0

#2 Toldi

    Czempion

  • Power User

Reputacja: 259
Wszechwidzący

  • Postów:841
  • Imię:Mateusz
  • Lokalizacja:wies
Offline

Napisano 03.06.2018 18:49

#include <amxmodx>
#include <cstrike>

#define PLUGIN "TDM RoundStart"
#define VERSION "1.0"
#define AUTHOR "METALOWY"

public plugin_init()
{
	register_logevent("logevent_round_end", 2, "1=Round_End")  
}

public plugin_precache() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR);
	precache_sound("misc/newroundranger2.wav")
	precache_sound("misc/newroundopfor2.wav")
	precache_sound("misc/rangerwin.wav")
	precache_sound("misc/opforwin.wav")
	precache_sound("misc/rangerdefeat.wav")
	precache_sound("misc/opfordefeat.wav")
}

public logevent_round_end(id)
{
	if(!is_user_connected(id))
		return PLUGIN_CONTINUE;
		
	switch(get_user_team(id))
	{
		case CS_TEAM_T: client_cmd(id, "spk misc/newroundopfor2.wav")
		case CS_TEAM_CT: client_cmd(id, "spk misc/newroundranger2.wav")
		
		default: return PLUGIN_CONTINUE;
	}
	return PLUGIN_CONTINUE;
}

Czy nie uważasz że w ten sposób będzie krócej i łatwiej i bez użycia jakichkolwiek komend? Rs zazwyczaj puszcza się na koniec rundy a nie na początku (freezetime). Tak jak ty to zrobiłeś to 2 dźwięki będą odgrywane w tej samej chwili. Jeżeli chcesz się pozbyć dźwięku typu TT/CT Winner to np. możesz w evencie końca rundy tuż przed puszczeniem rsów zatrzymać inne np. tak:

Spoiler

Nie jestem pewien czy zatrzyma to dźwięk TT/CT Winner ale zawsze warto spróbować. Jest jeszcze inna metoda ale to jak znajdę czas to napiszę.


  • +
  • -
  • 0

#3 METALOWIEC

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 26
Życzliwy

  • Postów:138
  • GG:
  • Lokalizacja:Szczecin
Offline

Napisano 03.06.2018 19:39

Właśnie wszystko sprowadza się do tego że chcę odtworzyć 2 rodzaje dźwięków.

Pierwszy przy nowej rundzie (w czasie freeze time), a drugi po zakończeniu rundy (dźwięk jest dość krótki - 6 sekund). Na moim serwerze TDM mapa zmienia się co rundę :)


  • +
  • -
  • 0

#4 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

  • Postów:501
  • GG:
  • Imię:Radek
  • Lokalizacja:Tak
Offline

Napisano 03.06.2018 23:53

Wydłużenie czasu restartu rundy po jej zakończeniu jest możliwe przy wykorzystaniu zmodyfikowanego silnika gry - reGameDLL.
Link: https://github.com/s...aster/README.md

Po instalacji, należy ustawić wyżej wspomniany przez Ciebie cvar na pożądaną wartość.

Jeżeli chodzi o podmienianie domyślnych dźwięków stanowiących o wyniku rundy, polecam zaprzyjaźnić się z kodem pluginu np. takiego jak ten https://forums.allie...ad.php?t=282218

Użytkownik _McHappy edytował ten post 04.06.2018 00:00

  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych