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

Brak głosu Headshot oraz random RoundSound


Najlepsza odpowiedź PANDA_2zl, 02.11.2023 20:21

https://amxx.pl/doku...a/i11/colorchat

Pobierasz i wrzucasz do folderu include w kompilatorze Przejdź do postu


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

#1 Matevsz

    Nowy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:6
Offline

Napisano 02.11.2023 15:06

Witam, w pluginie strzału headshot nie odtwarza dźwięku, domyślnie był odtwarzany dźwięk standardowy lecz podmieniłem go na swój pod taką samą nazwą headshot.wav i już nic nie słychać. Plugin po za dźwiękiem działa prawidłowo, bo po headshocie jest napis hud kto trafił itp. Początkowo dźwięk ważył 400kb + więc zmniejszyłem go do 49kb lecz nadal nie działa. Prześlę kod ale raczej tutaj nic źle nie jest 

#include <amxmodx>

static const PLUGIN_NAME[] = "Headshot Sound"
static const PLUGIN_VERSION[] = "1.0"
static const PLUGIN_AUTHOR[] = "Atomen"

new pcvar
new gmsgHudSync

public plugin_init()
{
    register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
    register_event("DeathMsg","hs","a","3=1")
    pcvar = register_cvar("amx_headshot", "1")

    gmsgHudSync = CreateHudSyncObj()
}

public hs()
{
	if (get_pcvar_num(pcvar))
	{
		new killer_id = read_data(1)
		new victim_id = read_data(2)
		new victim_name[33]

		get_user_name(victim_id,victim_name,33)

		if (!is_user_alive(victim_id))
		{
			set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 3.0, 3.0, 0.15, 0.15, 1)
			ShowSyncHudMsg(killer_id, gmsgHudSync, "HEADSHOT^nYou Owned %s !!",victim_name)

			for(new i=1;i<=get_maxplayers();i++) 
					if( is_user_connected(i)==1 )
						client_cmd(i,"spk misc/headshot")
		}
	}
}

public plugin_precache()
{
	precache_sound("misc/headshot.wav")
	return PLUGIN_CONTINUE 
}

Druga rzecz tyczy się pluginu RoundSound, po wgraniu wszystko działa poprawnie oprócz tego, gdy po ustawieniu opcji że piosenki mają odtwarzać się losowo, odtwarzają się pokolei 

Po usunięciu też kodu z napisami "Teraz Gramy: " oraz po usunięciu informacji po wpisaniu komendy "/last" napis "Poprzedni utwór: " nadal się pokazuje

CVary są ustawione

// RoundSound Plugin
Roundsound_ads_time "120"     /* Czas wyświetlania wiadomości w sekundach [ domyślnie 120 ] | Limit nie mniej niż 30 sekund  */
Roundsound_prefix        /* Prefix wiadomości dotyczących roundsounda [ domyślnie RoundSound ]   */
Roundsound_show_type "0"     /* Wyświetlanie informacji o obecnym utworze [ domyślnie 1 ] | 1 - Chat | 0 - Brak   */
Roundsound_random_music "1"  /* Czy muzyka ma się odtwarzać losowo [ domyślnie 0 ] | 1 - Losowo | 0 - Po kolei   */
Roundsound_show_playlist "0" /* Czy ma pokazywać nazwy utworów ( w odsłuchiwaniu, pod koniec rundy lub gdy gracz użyje komendy /last ) [ domyślnie 1 ] | 1 - Tak | 0 - Nie    */

  • +
  • -
  • 0

#2 PANDA_2zl

    Guru

  • Power User

Reputacja: 178
Profesjonalista

  • Postów:726
  • Imię:Michał
  • Lokalizacja:Kraków
Offline

Napisano 02.11.2023 15:22

Z wav spróbuj różnymi konwerterami np. https://online-audio-converter.com/pl/ w razie czego możesz sprawdzić na jakości 20kHz

Co do roundsound sprawdź czy cvar jest poprawnie ustawiony w konsoli 'amx_cvar Roundsound_random_music' i wypluje ci w konsoli wartość tego ustawienia
Odnośnie komunikatów z konend to mam nadzieję że po edycji sma kompilujesz plugin na nowo do.amxx i aktualizujesz na FTP tak?
  • +
  • -
  • 0

#3 Matevsz

    Nowy

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:6
Offline

Napisano 02.11.2023 15:40

Z wav spróbuj różnymi konwerterami np. https://online-audio-converter.com/pl/ w razie czego możesz sprawdzić na jakości 20kHz

Co do roundsound sprawdź czy cvar jest poprawnie ustawiony w konsoli 'amx_cvar Roundsound_random_music' i wypluje ci w konsoli wartość tego ustawienia
Odnośnie komunikatów z konend to mam nadzieję że po edycji sma kompilujesz plugin na nowo do.amxx i aktualizujesz na FTP tak?

 

Próbuję kompilować na nowo do amxx ale jest taki błąd:

C:\...\...\compiler182\RoundSound.sma<5>: fatal error 100: cannot read from file: "ColorChat"
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <ColorChat>

#define PLUGIN "RoundSound"
#define VERSION "2.1"
#define AUTHOR "speedkill"

new Array:g_PathCT,
	Array:g_PathTT,
	Array:g_SoundNameCT,
	Array:g_SoundNameTT;

new bool:g_RoundSound[33],
	bool:g_ShowAds[33],
	bool:g_FirstPlay,
	bool:g_MusicPlaying;

new g_LastSong[96],
	g_LastSoundPath[96],
	g_Prefix[64],
	g_ShowInfo[33],
	g_ArraySize[4],
	g_Pcvar[5],
	g_ValueTeam[2],
	g_ShowType,
	g_MaxPlayers,
	g_PlaylistType,
	g_RandomMusic,
	g_ShowPlaylist;

new const g_ShowNames[][]={
	"Brak",
	"Czat"
};

new const g_CvarName[][]={
	"Roundsound_ads_time",
	"Roundsound_prefix",
	"Roundsound_random_music",
	"Roundsound_show_type",
	"Roundsound_show_playlist"
};

new const g_CvarValue[][]={
	"120",
	"RoundSound",
	"0",
	"1",
	"0"
};

new const g_LangCmd[][]={
	"say /rs",
	"say /roundsound",	
	"say_team /rs",
	"say_team /roundsound"
};

enum{
	Chat_Msg = 1
};

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
	for(new i = 0; i < sizeof g_LangCmd; i++){
		register_clcmd(g_LangCmd[i], "ShowRsMenu");
	}
	for(new i = 0; i < sizeof g_LastLangCmd; i++){
		register_clcmd(g_LastLangCmd[i], "ShowLastSong");
	}
	register_event("SendAudio", "PlaySoundTT", "a", "2&%!MRAD_terwin");
	register_event("SendAudio", "PlaySoundCT", "a", "2&%!MRAD_ctwin");
	
	register_logevent("RoundStart", 2, "1=Round_Start");
	
	for(new i = 0; i < sizeof g_CvarName; i++){
		g_Pcvar[i] = register_cvar(g_CvarName[i], g_CvarValue[i]);
	}
}

public plugin_precache(){
	g_PathCT = ArrayCreate(128);
	g_PathTT = ArrayCreate(128);
	
	g_SoundNameCT = ArrayCreate(96);
	g_SoundNameTT = ArrayCreate(96);
	
	LoadSounds();
}

public plugin_cfg(){
	get_pcvar_string(g_Pcvar[1], g_Prefix, charsmax(g_Prefix));
	
	g_ShowType = get_pcvar_num(g_Pcvar[3]);
	g_RandomMusic = get_pcvar_num(g_Pcvar[2]);
	g_ShowPlaylist = get_pcvar_num(g_Pcvar[4]);
	
	if(get_pcvar_num(g_Pcvar[0]) >= 30){
		set_task(get_pcvar_float(g_Pcvar[0]), "ShowAds",.flags = "b");
	}
	
	g_MaxPlayers = get_maxplayers();
	g_ValueTeam[0] = g_ValueTeam[1] = -1;
}

public client_authorized(id){
	g_RoundSound[id] = true;
	g_ShowAds[id]  = true;
	g_ShowInfo[id] = g_ShowType;
}

public LoadSounds(){
	new g_Path[128];
	formatex(g_Path[ get_configsdir(g_Path, charsmax(g_Path)) ], charsmax(g_Path), "/RoundSound.ini");
	
	if(file_exists(g_Path)){
		new g_Line[256],
			g_SoundPath[128],
			g_Name[96],
			g_Team[3],
			g_Len;
		
		for(new i = 0; read_file(g_Path, i, g_Line, charsmax(g_Line), g_Len); i++){
			if(!g_Len || !g_Line[0] || g_Line[0] == ';'){
				continue;
			}
			parse(g_Line, g_SoundPath, charsmax(g_SoundPath), g_Name, charsmax(g_Name), g_Team, charsmax(g_Team));
			
			new g_Value = strlen(g_SoundPath) - 4;
			
			log_amx("Path: %s | Title: %s | Team: %s | Format: %s", g_SoundPath, g_Name, g_Team, g_SoundPath[ g_Value ]);
			
			if(equal(g_SoundPath[ g_Value ], ".mp3") || equal(g_SoundPath[ g_Value ], ".wav")){
				if(equal(g_SoundPath[ g_Value ], ".mp3")){
					format(g_SoundPath, charsmax(g_SoundPath), "sound/%s", g_SoundPath);
					precache_generic(g_SoundPath);
				}
				else{
					precache_sound(g_SoundPath);
				}
				if(equal(g_Team, "CT")){
					ArrayPushString(g_PathCT, g_SoundPath);
					ArrayPushString(g_SoundNameCT, g_Name);
					
				}
				else if(equal(g_Team, "TT")){
					ArrayPushString(g_PathTT, g_SoundPath);
					ArrayPushString(g_SoundNameTT, g_Name);
				}
				log_amx("File %s has a good format", g_SoundPath);
			}
			else{
				log_amx("File %s has a bad format", g_SoundPath);
			}
		}
	}
	else{
		set_fail_state("File RoundSound.ini doesn't exist in configs/");
	}
	GetArraySize();
}

public GetArraySize(){
	g_ArraySize[0] = ArraySize(g_PathCT);
	g_ArraySize[1] = ArraySize(g_PathTT);
	g_ArraySize[2] = ArraySize(g_SoundNameCT);
	g_ArraySize[3] = ArraySize(g_SoundNameTT);
}

public ShowRsMenu(id){
	new g_FormatText[64];
	
	new g_Menu = menu_create("\wRoundSound ustawienia", "MenuChoose");
	
	formatex(g_FormatText, charsmax(g_FormatText), "\yRoundsound: \r[\d%s\r]", g_RoundSound[id] ? "ON" : "OFF");
	menu_additem(g_Menu, g_FormatText);
	
	menu_additem(g_Menu, "\rOdsluchaj utwory \yCT \d[\yPlaylista\d]");
	menu_additem(g_Menu, "\yOdsluchaj utwory \rTT \d[\rPlaylista\d]");
	
	formatex(g_FormatText, charsmax(g_FormatText), "\rReklamy: \y[\d%s\y]", g_ShowAds[id] ? "ON" : "OFF");
	menu_additem(g_Menu, g_FormatText);
	
	formatex(g_FormatText, charsmax(g_FormatText), "\yWyswietlanie nazwy \rutworu: \y[\d%s\y]", g_ShowNames[ g_ShowInfo[id] ]);
	menu_additem(g_Menu, g_FormatText);
	
	menu_setprop(g_Menu, MPROP_EXITNAME, "Wyjscie");
	menu_display(id, g_Menu);
}

public MenuChoose(id, g_Menu, g_Item){
	if(g_Item == MENU_EXIT){
		menu_destroy(g_Menu);
		return PLUGIN_HANDLED;
	}
	
	switch(g_Item){
		case 0:{
			g_RoundSound[id] = !g_RoundSound[id];
			ColorChat(id, TEAM_COLOR, "[%s]^x04 Roundsound:^x03 %s", g_Prefix, g_RoundSound[id] ? "wlaczony" : "wylaczony");
			ShowRsMenu(id);
		}
		
		case 1..2:{
			ShowPlaylist(id, g_Item);
		}
		
		case 3:{
			g_ShowAds[id] = !g_ShowAds[id];
			ColorChat(id, TEAM_COLOR, "[%s]^x04 Reklamy:^x03 %s", g_Prefix, g_ShowAds[id] ? "wlaczone" : "wylaczone");
			ShowRsMenu(id);
			
		}
		
		case 4:{
			if(g_ShowInfo[id] >= 1){
				g_ShowInfo[id] = -1;
			}
			g_ShowInfo[id]++;
			ShowRsMenu(id);
		}
	}
	menu_destroy(g_Menu);
	return PLUGIN_HANDLED;
}

public ShowPlaylist(id, g_Type){
	new g_FormatText[64],
	g_Name[96];
	
	formatex(g_FormatText, charsmax(g_FormatText), "Playlista \d%s", g_Type == 1 ? "CT" : "TT");
	new g_Menu = menu_create(g_FormatText, "PlaylistChoose");
	
	switch(g_Type){
		case 1:{
			for(new g_Item = 0; g_Item < g_ArraySize[2]; g_Item++){
				if(g_ShowPlaylist){
					ArrayGetString(g_SoundNameCT, g_Item, g_Name, charsmax(g_Name));
				}
				else{
					formatex(g_Name, charsmax(g_Name), "Utwor numer #%d", ( g_Item + 1 ));
				}
				menu_additem(g_Menu, g_Name);
			}
		}
		case 2:{
			for(new g_Item = 0; g_Item < g_ArraySize[3]; g_Item++){
				if(g_ShowPlaylist){
					ArrayGetString(g_SoundNameTT, g_Item, g_Name, charsmax(g_Name));
				}			
				else{
					formatex(g_Name, charsmax(g_Name), "Utwor numer #%d", ( g_Item + 1));
				}
				menu_additem(g_Menu, g_Name);
			}
		}
	}
	g_PlaylistType = g_Type;
	
	menu_setprop(g_Menu, MPROP_BACKNAME, "Powrot");
	menu_setprop(g_Menu, MPROP_NEXTNAME, "Dalej");
	menu_setprop(g_Menu, MPROP_EXITNAME, "Wyjscie");
	menu_setprop(g_Menu, MPROP_NUMBER_COLOR, "\r");
	
	menu_display(id, g_Menu);
}

public PlaylistChoose(id, g_Menu, g_Item){
	if(g_Item == MENU_EXIT){
		menu_destroy(g_Menu);
		return PLUGIN_HANDLED;
	}
	
	new g_SoundPath[128];
	ArrayGetString(g_PlaylistType == 1 ? g_PathCT : g_PathTT, g_Item, g_SoundPath, charsmax(g_SoundPath));
	
	new g_Format = strlen(g_SoundPath) - 4;
	
	if(equal(g_SoundPath[ g_Format ], ".mp3")){
		client_cmd(id, "mp3 play %s", g_SoundPath);
	}
	else{
		client_cmd(id, "spk %s", g_SoundPath);
	}
	ShowPlaylist(id, g_PlaylistType);
	
	return PLUGIN_CONTINUE;
}

-- 

public RoundStart(){
	g_MusicPlaying = false;
}

public PlaySoundTT(){
	CheckMusic(1);
}

public PlaySoundCT(){
	CheckMusic(2);
}

public CheckMusic(g_Type){
	if(!g_MusicPlaying){
		RandMusic(g_Type);
	}
}

public RandMusic(g_Type){
	new g_SoundPath[128],
		g_SoundName[128],
		g_Name[96],
		g_Format,
		g_FileFormat;
	
	
	switch(g_Type){
		case 1:{
			if(g_RandomMusic){
				g_ValueTeam[0] = random(g_ArraySize[1]);
			}
			else{
				g_ValueTeam[0]++;
				
				if(g_ValueTeam[0] >= g_ArraySize[1]){
					g_ValueTeam[0] = 0;
				}
			}
			
			ArrayGetString(g_PathTT, g_ValueTeam[0], g_SoundPath, charsmax(g_SoundPath));
			ArrayGetString(g_SoundNameTT, g_ValueTeam[0], g_Name, charsmax(g_Name));
		}
		case 2:{
			if(g_RandomMusic){
				g_ValueTeam[1] = random(g_ArraySize[0]);
			}
			else{
				g_ValueTeam[1]++;
				
				if(g_ValueTeam[1] >= g_ArraySize[0]){
					g_ValueTeam[1] = 0;
				}
			}

			ArrayGetString(g_PathCT, g_ValueTeam[1], g_SoundPath, charsmax(g_SoundPath));
			ArrayGetString(g_SoundNameCT, g_ValueTeam[1], g_Name, charsmax(g_Name));
		}
	}
	if(!equal(g_LastSoundPath, g_SoundPath)){
		copy(g_LastSong, charsmax(g_LastSong), g_Name);
		copy(g_LastSoundPath, charsmax(g_LastSoundPath), g_SoundPath);
		
		g_Format = strlen(g_SoundPath) - 4;
		
		if(equal(g_SoundPath[ g_Format ], ".mp3")){
			g_FileFormat = 1;
		}
		else{
			g_FileFormat = 2;
		}
											
		
		
		for(new i = 1; i <= g_MaxPlayers; i++){
			if(is_user_connected(i) && g_RoundSound[i]){
				switch(g_FileFormat){
					case 1:{
						client_cmd(i, "mp3 play %s", g_SoundPath);
					}
					case 2:{
						client_cmd(i, "spk %s", g_SoundPath);
					}
				}
				switch(g_ShowInfo[i]){
					case Chat_Msg:{
						if(g_ShowPlaylist){
							ColorChat(i, TEAM_COLOR, "[%s]^x04 %s", g_Prefix, g_SoundName);
						}
					}
				}
			}
		}
		g_MusicPlaying = true;
		g_FirstPlay = true;
	}
	else{
		RandMusic(g_Type);
	}
	return PLUGIN_CONTINUE;
}

public ShowAds(){
	for(new i = 1; i <= g_MaxPlayers; i++){
		if(is_user_connected(i) && g_ShowAds[i]){
			switch(random(3)){
				case 0:{
					ColorChat(i, TEAM_COLOR, "[%s]^x04 Chcesz %s roundsound? Napisz^x03 /roundsound ^x04lub^x03 /rs", g_Prefix, g_RoundSound[i] ? "wylaczyc" : "wlaczyc");
				}
				case 1:{
					ColorChat(i, TEAM_COLOR, "[%s]^x04 Chcesz posluchac utworow CT / TT? Napisz^x03 /roundsound ^x04lub^x03 /rs", g_Prefix);
				}
				case 2:{
					ColorChat(i, TEAM_COLOR, "[%s]^x04 Chcesz wylaczyc reklamy? Napisz^x03 /roundsound ^x04lub^x03 /rs", g_Prefix);
				}
			}
		}
	}
}

public plugin_end(){
	ArrayDestroy(g_PathCT);
	ArrayDestroy(g_PathTT);
	ArrayDestroy(g_SoundNameCT);
	ArrayDestroy(g_SoundNameTT);
}

Użytkownik Matevsz edytował ten post 02.11.2023 15:51

  • +
  • -
  • 0

#4 PANDA_2zl

    Guru

  • Power User

Reputacja: 178
Profesjonalista

  • Postów:726
  • Imię:Michał
  • Lokalizacja:Kraków
Offline

Napisano 02.11.2023 20:21   Najlepsza odpowiedź

https://amxx.pl/doku...a/i11/colorchat

Pobierasz i wrzucasz do folderu include w kompilatorze
  • +
  • -
  • 1




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

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