←  Problemy z pluginami

AMXX.pl: Support AMX Mod X i SourceMod

»

Źle działa losowanie

Locked

  • +
  • -
Scoti's Photo Scoti 06.07.2011

Witam. Na moim serwerze Easy Block zrobiłem block jeżeli na którego się ustawie losowany jest jeden z 6-ciu dzwięków (muzyka). Jednak gdy się ustawie wszystkie 6 dzwięków zaczyna grać na raz, a chcę aby tylko 1 z tych 6 zaczoł grać i za każdym razem inny, wykożystałem do tego funkcje random.

ActionMuzyka(id) 
{		
	new losowanie = random_num(1, 6);
	
		switch(losowanie)
		{
			case 1: 
			{
			client_cmd(0, "spk %s", muzyka_muzyka1);
			}
			
			case 2:
			{
			client_cmd(0, "spk %s", muzyka_muzyka2);
			}
			
			case 3:
			{
			client_cmd(0, "spk %s", muzyka_muzyka3);
			}
			
			case 4:
			{
			client_cmd(0, "spk %s", muzyka_muzyka4);
			}
			
			case 5:
			{
			client_cmd(0, "spk %s", muzyka_muzyka5);
			}
			
			case 6:
			{
			client_cmd(0, "spk %s", muzyka_muzyka6);
			}
		}
}

Nie mam pojęcia co tu jest źle, proszę o poprawienie kodu lub napisanie nowego. Błędów przy kompilacji nie ma, lecz w grze zaczyna grać wszystkie sześć utworów na raz. Dam plusa.
Quote

  • +
  • -
R3X's Photo R3X 07.07.2011

ActionMuzyka(id)
to wskazuje, że wywołujesz funkcje na wszystkich graczach osobno, a potem i tak puszczasz muzykę wszystkim
client_cmd(0,

musisz zdecydować: jedno wywołanie i 0 albo wiele i id
Quote

  • +
  • -
Scoti's Photo Scoti 07.07.2011

Inne funkcje mają albo id albo id, ent, co ja mam wstawić?

Piszesz, że puszczam muzykę wszystkim, a chcę tylko jednemu graczowi, który ustanie na ten block. Mam zamiast:

client_cmd(0, "spk %s", muzyka_muzyka1);

Użyć:

client_cmd(1, "spk %s", muzyka_muzyka1);

czy najlepiej

emit_sound(id, CHAN_STATIC, g_sound_muzyka1, 1.0, ATTN_NORM, 0, PITCH_NORM);

*g_sound_muzyka1 będzie działać tak samo


Edycja z godziny 08:06:

Gdy zrobiłem:

ActionMuzyka()

Znikneły 2 warningi ale w grze nadal jest tak samo, nie lusują się utwory tylko wszystkie zaczynają grać na raz.
Edited by Scoti, 07.07.2011 07:10.
Quote

  • +
  • -
dasiek's Photo dasiek 07.07.2011

może po każdej piosence dodaj return PLUGIN_CONTINUE; ?
Quote

  • +
  • -
Scoti's Photo Scoti 07.07.2011

Nic nie dało, ale nawet warning się utworzył w klamrze.
Quote

  • +
  • -
sebul's Photo sebul 07.07.2011

Inne funkcje mają albo id albo id, ent, co ja mam wstawić?

Piszesz, że puszczam muzykę wszystkim, a chcę tylko jednemu graczowi, który ustanie na ten block. Mam zamiast:

client_cmd(0, "spk %s", muzyka_muzyka1);

Użyć:

client_cmd(1, "spk %s", muzyka_muzyka1);

czy najlepiej

emit_sound(id, CHAN_STATIC, g_sound_muzyka1, 1.0, ATTN_NORM, 0, PITCH_NORM);

*g_sound_muzyka1 będzie działać tak samo

Skoro jednemu, to po prostu zamień "client_cmd(0," na "client_cmd(id,".

Edycja z godziny 08:06:

Gdy zrobiłem:

ActionMuzyka()

Znikneły 2 warningi ale w grze nadal jest tak samo, nie lusują się utwory tylko wszystkie zaczynają grać na raz.

bo dalej odtwarzasz każdemu te dźwięki.

może po każdej piosence dodaj return PLUGIN_CONTINUE; ?

Jak nie wiesz, to nie mieszaj...
Quote

  • +
  • -
Scoti's Photo Scoti 07.07.2011

sebul, dałem id więc jak pisałeś odtwarza tylko mi, ale nadal nie losuje muzyki tylko odtwarza wszystkie na raz i każda wchodzi na siebie, jak zrobić żeby losowało tylko jedną z sześciu?
Quote

  • +
  • -
sebul's Photo sebul 07.07.2011

Pokaż tablicę "muzyka_muzyka1", itd. jak im przypisujesz dane dźwięki.
Quote

  • +
  • -
R3X's Photo R3X 07.07.2011

sama funkcja ActionMuzyka() jest porządku, więc błąd leży w jej wywołaniu; dopóki nie pokażesz więcej kodu nic nie poradzimy
Quote

  • +
  • -
Scoti's Photo Scoti 07.07.2011

To są define z muzyki:

#define muzyka_melanz				"sound/nazwasieci/melanz.mp3"
#define muzyka_muzyka1				"sound/nazwasieci/muzyka1.mp3"
#define muzyka_muzyka2				"sound/nazwasieci/muzyka2.wav"
#define muzyka_muzyka3				"sound/nazwasieci/muzyka3.wav"
#define muzyka_muzyka4				"sound/nazwasieci/muzyka4.mp3"
#define muzyka_muzyka5				"sound/nazwasieci/muzyka5.wav"
#define muzyka_muzyka6				"sound/nazwasieci/muzyka6.mp3"
#define muzyka_bron				"sound/nazwasieci/bron.wav"
Quote
Locked