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

Zatrzymanie muzyki gdy ktos rozbroił pake


Najlepsza odpowiedź Asiap, 14.11.2016 06:54

#include <amxmodx>

#define USE_MP3 // dodaj 2 slahe ( // ) przed jesli dzwiek jest WAV

new g_iC4Timer, g_iDefaultC4Timer, g_pCvarTimer;

public plugin_init()
{
	register_plugin("C4 Timer", "1.0", "asiap");

	register_event("SendAudio", "EventBombPlanted", "a", "1=0", "2=%!MRAD_BOMBPL");
	register_event("HLTV", "EventNewRound", "a", "1=0", "2=0");
	register_logevent("EventRoundEnd", 2, "1=Round_End");

	g_iDefaultC4Timer = get_pcvar_num(g_pCvarTimer = get_cvar_pointer("mp_c4timer"));
}

public plugin_precache()
{
	#if defined USE_MP3
	precache_generic("sound/misc/bomba.mp3");
	#else
	precache_sound("misc/bomba.wav");
	#endif
}

public EventNewRound()
{
	if(g_iC4Timer)
	{
		remove_task();
		g_iC4Timer = 0;
	}
	g_iDefaultC4Timer = get_pcvar_num(g_pCvarTimer);
}

public EventRoundEnd()
{
	if(g_iC4Timer)
	{
		remove_task();
		#if defined USE_MP3
		client_cmd(0, "mp3 stop");
		#else
		client_cmd(0, "stopsound");
		#endif
		g_iC4Timer = 0;
	}
}

public EventBombPlanted()
{
	g_iC4Timer = g_iDefaultC4Timer;
	set_task(1.0, "BombTimer", _, _, _, "a", g_iC4Timer);
	BombTimer();
}

public BombTimer() {
	static szTime[6];
	format_time(szTime, 5, "%M:%S", g_iC4Timer);

	if(g_iC4Timer == 15)
	{
		#if defined USE_MP3
		client_cmd(0, "mp3 play sound/misc/bomba.mp3");
		#else
		client_cmd(0, "spk misc/bomba");
		#endif
	}

	set_hudmessage(random(256), random(256), random(256), -1.0, 0.4, 2, 1.0, 1.5, 0.01, 0.01);
	show_hudmessage(0, "C4: %s", szTime);

	--g_iC4Timer;
}
Przejdź do postu


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

#1 barbeznazwy123

    Pomocny

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:49
  • Imię:Marcin
Offline

Napisano 12.11.2016 11:49

dobry, mógłby ktoś przerobić delikatnie kod poniżej --> gdy Ct rozbroi pake to muzyka  z bomby przestaje grac

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Bomb CountDown"
#define VERSION "1.0"
#define AUTHOR "peku33"
#define TID 4738

new pc;
new t;
public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
    pc = get_cvar_pointer("mp_c4timer");
    register_logevent("planted", 3, "2=Planted_The_Bomb");
    register_logevent("Koniec_Rundy", 2, "1=Round_End")
}
public planted()
{
    t = get_pcvar_num(pc);
    set_task(1.0, "bomb_tick", TID, "", 0, "b");
}
public bomb_tick()
{
    t--;
    set_hudmessage(random(255), random(255), random(255), -1.0, 0.4, 2, 1.0, 1.5, 0.01, 0.01);
    show_hudmessage(0, "c4: %d sekund", t);
    if(t == 15)
    {
        client_cmd(0, "spk misc/bomba");
    }
    if(t <= 0)
    {
        if(task_exists(TID))
        {
            remove_task(TID);
        }
    }
    
}
public Koniec_Rundy()
{
    if(task_exists(TID))
    {
        remove_task(TID);
    }
}
public plugin_precache()
{
    precache_sound("misc/bomba.wav");
}

  • +
  • -
  • 0

#2 vanillah

    nie wiem

  • Użytkownik

Reputacja: 125
Zaawansowany

  • Postów:324
  • GG:
  • Lokalizacja:Polska
Offline

Napisano 12.11.2016 13:44

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <csx>

#define PLUGIN "Bomb CountDown"
#define VERSION "1.0"
#define AUTHOR "peku33"
#define TID 4738

new pc;
new t;
public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
    pc = get_cvar_pointer("mp_c4timer");
    register_logevent("planted", 3, "2=Planted_The_Bomb");
    register_logevent("Koniec_Rundy", 2, "1=Round_End")
}
public planted()
{
    t = get_pcvar_num(pc);
    set_task(1.0, "bomb_tick", TID, "", 0, "b");
}
public bomb_tick()
{
    t--;
    set_hudmessage(random(255), random(255), random(255), -1.0, 0.4, 2, 1.0, 1.5, 0.01, 0.01);
    show_hudmessage(0, "c4: %d sekund", t);
    if(t == 15)
    {
        client_cmd(0, "spk misc/bomba");
    }
    if(t <= 0)
    {
        if(task_exists(TID))
        {
            remove_task(TID);
        }
    }
    
}
public Koniec_Rundy()
{
    if(task_exists(TID))
    {
        remove_task(TID);
    }
}
public plugin_precache()
{
    precache_sound("misc/bomba.wav");
}

public bomb_defused(id)
	client_cmd(0,"stopsound");

  • +
  • -
  • 1

Wykonam pluginy, paczki (amxx) kontakt GG: 32263742, Steam: https://steamcommuni...om/id/vankillah

Multi-Head.pl


#3 barbeznazwy123

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:49
  • Imię:Marcin
Offline

Napisano 12.11.2016 13:58

zatrzymuje muzyke jak powinno ale teraz gdy ktoś rozbroi to nie słychać  "bomb has been defused"


  • +
  • -
  • 0

#4 vanillah

    nie wiem

  • Użytkownik

Reputacja: 125
Zaawansowany

  • Postów:324
  • GG:
  • Lokalizacja:Polska
Offline

Napisano 12.11.2016 14:48

dlatego, że bomb has been defused jest w formacie .wav, gdyby ta twoja nutka była w formacie mp3 to wystarczyłoby dać 

client_cmd(0,"mp3 stop");

i nie zatrzymywałoby dźwięku bomb has been defused

można to też zrobić taskiem, ale nie wiem jaki efekt dokładnie chcesz uzyskać


Użytkownik vanillah edytował ten post 12.11.2016 14:51

  • +
  • -
  • 1

Wykonam pluginy, paczki (amxx) kontakt GG: 32263742, Steam: https://steamcommuni...om/id/vankillah

Multi-Head.pl


#5 barbeznazwy123

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:49
  • Imię:Marcin
Offline

Napisano 12.11.2016 15:08

Rozumiem, a co do efektu to  po prostu jak ktoś rozbroi pakę to zatrzymuje się melodia i standardowo "bomb has been defused"  a jeżeli to będzie problemem to wtedy przerobi się na mp3.


  • +
  • -
  • 0

#6 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

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

Napisano 12.11.2016 17:35

Znajdź ścieżkę do dźwięku 'Bomb has been defused'.

Podmień funkcję Bomb_defused() na

public bomb_defused(id)
client_cmd(0, "speak <ścieżka do dźwięku>");

Użytkownik _McHappy edytował ten post 12.11.2016 17:37

  • +
  • -
  • 1

#7 barbeznazwy123

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:49
  • Imię:Marcin
Offline

Napisano 12.11.2016 17:44

dzięki, ale właśnie przerobiłem na mp3 i też działa.


  • +
  • -
  • 0

#8 barbeznazwy123

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:49
  • Imię:Marcin
Offline

Napisano 12.11.2016 18:38

Znajdź ścieżkę do dźwięku 'Bomb has been defused'.

Podmień funkcję Bomb_defused() na

public bomb_defused(id)
client_cmd(0, "speak <ścieżka do dźwięku>");

 

a można zrobić tak  gdy ostatni gracz CT zginie to wtedy muzyka wyłącza się na początku rundy albo 1 sec przed początkiem ?


Użytkownik barbeznazwy123 edytował ten post 12.11.2016 18:39

  • +
  • -
  • 0

#9 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

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

Napisano 12.11.2016 19:37

#include <amxmodx>

#define PLUGIN "Bomb CountDown"
#define VERSION "1.0"
#define AUTHOR "peku33"
#define TID 4738

new pc;
new t;
public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR);
	pc = get_cvar_pointer("mp_c4timer");
	register_logevent("planted", 3, "2=Planted_The_Bomb");
	register_logevent("Koniec_Rundy", 2, "1=Round_End")
	register_logevent("Poczatek_Rundy", 2, "0=World triggered", "1=Round_Start");
}
public planted()
{
	t = get_pcvar_num(pc);
	set_task(1.0, "bomb_tick", TID, "", 0, "b");
}
public bomb_tick()
{
	t--;
	set_hudmessage(random(255), random(255), random(255), -1.0, 0.4, 2, 1.0, 1.5, 0.01, 0.01);
	show_hudmessage(0, "c4: %d sekund", t);
	if(t == 15)
	{
		client_cmd(0, "spk misc/bomba");
	}
	if(t <= 0)
	{
		if(task_exists(TID))
		{
			remove_task(TID);
		}
	}
	
}
public Koniec_Rundy()
{
	if(task_exists(TID))
	{
		remove_task(TID);
	}
}

public Poczatek_Rundy()
	client_cmd(0,"stopsound");

public plugin_precache()
{
	precache_sound("misc/bomba.wav");
}

Potestuj.


  • +
  • -
  • 1

#10 vanillah

    nie wiem

  • Użytkownik

Reputacja: 125
Zaawansowany

  • Postów:324
  • GG:
  • Lokalizacja:Polska
Offline

Napisano 12.11.2016 20:01

z tego co mi się zdaje, to nie trzeba rejestrować początku rundy skoro jest już koniec rundy więc wystarczy zrobić tak:

#include <amxmodx>

#define PLUGIN "Bomb CountDown"
#define VERSION "1.0"
#define AUTHOR "peku33"
#define TID 4738

new pc;
new t;
public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR);
	pc = get_cvar_pointer("mp_c4timer");
	register_logevent("planted", 3, "2=Planted_The_Bomb");
	register_logevent("Koniec_Rundy", 2, "1=Round_End")
}
public planted()
{
	t = get_pcvar_num(pc);
	set_task(1.0, "bomb_tick", TID, "", 0, "b");
}
public bomb_tick()
{
	t--;
	set_hudmessage(random(255), random(255), random(255), -1.0, 0.4, 2, 1.0, 1.5, 0.01, 0.01);
	show_hudmessage(0, "c4: %d sekund", t);
	if(t == 15)
	{
		client_cmd(0, "spk misc/bomba");
	}
	if(t <= 0)
	{
		if(task_exists(TID))
		{
			remove_task(TID);
		}
	}
	
}
public Koniec_Rundy()
{
	if(task_exists(TID))
	{
		remove_task(TID);
	}
	client_cmd(0,"stopsound");
}

public plugin_precache()
{
	precache_sound("misc/bomba.wav");
}

PS. podaj ścieżkę do tego mp3 to od razu się na mp3 przerobi


  • +
  • -
  • 1

Wykonam pluginy, paczki (amxx) kontakt GG: 32263742, Steam: https://steamcommuni...om/id/vankillah

Multi-Head.pl


#11 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

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

Napisano 12.11.2016 20:34

@UP

Event Koniec_Rundy jest wywoływany zaraz po śmierci ostatniego CT bądź po rozbrojeniu bomby, co nie przyniesie zamierzonego efektu.

Jeżeli już chcesz wykorzystać istniejący event końca rundy, to dodaj w nim taska na ok. 4sek opóźnienia, co da sekundowe uprzedzenie zdarzenia początku nowej rundy ;)

 

W ogóle bezsensowne jest zastosowanie tu eventu końca rundy. Powinien zostać wykorzystany hook do eventu rozbrojenia bomby i to w nim powinno usuwać się taska. Przecież po wybuchu bomby task sam się usuwa...

	if(t <= 0)
	{
		if(task_exists(TID))
		{
			remove_task(TID);
		}
	}

Optymalniejsza wersja:

#include <amxmodx>

#define PLUGIN "Bomb CountDown"
#define VERSION "1.0"
#define AUTHOR "peku33"
#define TID 4738

new pc;
new t;
public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
    pc = get_cvar_pointer("mp_c4timer");
    register_logevent("planted", 3, "2=Planted_The_Bomb");
    register_logevent("Poczatek_Rundy", 2, "0=World triggered", "1=Round_Start");
}
public planted()
{
    t = get_pcvar_num(pc);
    set_task(1.0, "bomb_tick", TID, "", 0, "b");
}
public bomb_tick()
{
    t--;
    set_hudmessage(random(255), random(255), random(255), -1.0, 0.4, 2, 1.0, 1.5, 0.01, 0.01);
    show_hudmessage(0, "c4: %d sekund", t);
    if(t == 15)
    {
        client_cmd(0, "spk misc/bomba"); //Jeżeli plik .mp3: client_cmd(0, "mp3 play misc/bomba");
    }
    if(t <= 0)
    {
        if(task_exists(TID))
        {
            remove_task(TID);
        }
    }
    
}
public bomb_defused(id)
    if(task_exists(TID)) remove_task(TID);

public Poczatek_Rundy()
    client_cmd(0,"stopsound"); //Jeżeli plik .mp3 :    client_cmd(0,"mp3 stop")

public plugin_precache()
{
    precache_sound("misc/bomba.wav");
}

Użytkownik _McHappy edytował ten post 12.11.2016 20:41

  • +
  • -
  • 1

#12 barbeznazwy123

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:49
  • Imię:Marcin
Offline

Napisano 13.11.2016 18:23

 

@UP

Event Koniec_Rundy jest wywoływany zaraz po śmierci ostatniego CT bądź po rozbrojeniu bomby, co nie przyniesie zamierzonego efektu.

Jeżeli już chcesz wykorzystać istniejący event końca rundy, to dodaj w nim taska na ok. 4sek opóźnienia, co da sekundowe uprzedzenie zdarzenia początku nowej rundy ;)

 

W ogóle bezsensowne jest zastosowanie tu eventu końca rundy. Powinien zostać wykorzystany hook do eventu rozbrojenia bomby i to w nim powinno usuwać się taska. Przecież po wybuchu bomby task sam się usuwa...

	if(t <= 0)
	{
		if(task_exists(TID))
		{
			remove_task(TID);
		}
	}

Optymalniejsza wersja:

#include <amxmodx>

#define PLUGIN "Bomb CountDown"
#define VERSION "1.0"
#define AUTHOR "peku33"
#define TID 4738

new pc;
new t;
public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
    pc = get_cvar_pointer("mp_c4timer");
    register_logevent("planted", 3, "2=Planted_The_Bomb");
    register_logevent("Poczatek_Rundy", 2, "0=World triggered", "1=Round_Start");
}
public planted()
{
    t = get_pcvar_num(pc);
    set_task(1.0, "bomb_tick", TID, "", 0, "b");
}
public bomb_tick()
{
    t--;
    set_hudmessage(random(255), random(255), random(255), -1.0, 0.4, 2, 1.0, 1.5, 0.01, 0.01);
    show_hudmessage(0, "c4: %d sekund", t);
    if(t == 15)
    {
        client_cmd(0, "spk misc/bomba"); //Jeżeli plik .mp3: client_cmd(0, "mp3 play misc/bomba");
    }
    if(t <= 0)
    {
        if(task_exists(TID))
        {
            remove_task(TID);
        }
    }
    
}
public bomb_defused(id)
    if(task_exists(TID)) remove_task(TID);

public Poczatek_Rundy()
    client_cmd(0,"stopsound"); //Jeżeli plik .mp3 :    client_cmd(0,"mp3 stop")

public plugin_precache()
{
    precache_sound("misc/bomba.wav");
}

 

wszystko idealnie ale mam jeszcze jedno pytanie, czasami się tak dzieje np gdy gracz podłoży pake gdy np już czas minął albo zginie ostatni CT to w następnej rundzie pokazuje się odliczanie cały czas można to wyłączyć ?

 


  • +
  • -
  • 0

#13 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

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

Napisano 13.11.2016 20:06

Zamień

public Poczatek_Rundy()
client_cmd(0,"stopsound"); //Jeżeli plik .mp3 : client_cmd(0,"mp3 stop")

Na

public Poczatek_Rundy()
{
if(task_exists(TID)) remove_task(TID);
client_cmd(0,"stopsound"); //Jeżeli plik .mp3 : client_cmd(0,"mp3 stop")
}
  • +
  • -
  • 1

#14 Asiap

    Wszechpomocny

  • Girl

Reputacja: 171
Profesjonalista

  • Postów:323
  • Lokalizacja:Kętrzyn
Offline

Napisano 14.11.2016 06:54   Najlepsza odpowiedź

#include <amxmodx>

#define USE_MP3 // dodaj 2 slahe ( // ) przed jesli dzwiek jest WAV

new g_iC4Timer, g_iDefaultC4Timer, g_pCvarTimer;

public plugin_init()
{
	register_plugin("C4 Timer", "1.0", "asiap");

	register_event("SendAudio", "EventBombPlanted", "a", "1=0", "2=%!MRAD_BOMBPL");
	register_event("HLTV", "EventNewRound", "a", "1=0", "2=0");
	register_logevent("EventRoundEnd", 2, "1=Round_End");

	g_iDefaultC4Timer = get_pcvar_num(g_pCvarTimer = get_cvar_pointer("mp_c4timer"));
}

public plugin_precache()
{
	#if defined USE_MP3
	precache_generic("sound/misc/bomba.mp3");
	#else
	precache_sound("misc/bomba.wav");
	#endif
}

public EventNewRound()
{
	if(g_iC4Timer)
	{
		remove_task();
		g_iC4Timer = 0;
	}
	g_iDefaultC4Timer = get_pcvar_num(g_pCvarTimer);
}

public EventRoundEnd()
{
	if(g_iC4Timer)
	{
		remove_task();
		#if defined USE_MP3
		client_cmd(0, "mp3 stop");
		#else
		client_cmd(0, "stopsound");
		#endif
		g_iC4Timer = 0;
	}
}

public EventBombPlanted()
{
	g_iC4Timer = g_iDefaultC4Timer;
	set_task(1.0, "BombTimer", _, _, _, "a", g_iC4Timer);
	BombTimer();
}

public BombTimer() {
	static szTime[6];
	format_time(szTime, 5, "%M:%S", g_iC4Timer);

	if(g_iC4Timer == 15)
	{
		#if defined USE_MP3
		client_cmd(0, "mp3 play sound/misc/bomba.mp3");
		#else
		client_cmd(0, "spk misc/bomba");
		#endif
	}

	set_hudmessage(random(256), random(256), random(256), -1.0, 0.4, 2, 1.0, 1.5, 0.01, 0.01);
	show_hudmessage(0, "C4: %s", szTime);

	--g_iC4Timer;
}

  • +
  • -
  • 2




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

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