←  Poradniki, Łatki oraz Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

Inny
Jak dodać dźwięk do zabaw Jailbreak By Cypis

  • +
  • -
Wielkie Jol - zdjęcie Wielkie Jol 02.02.2014

Witam, dzis pokaze wam w jak prosty sposob mozemy dodac zabawe do naszego jailbreaka w tym przypadku bedzie to JB by Cypis.
Do zabawy dodamy plik .mp3, ktory bedzie odtwarzany w momencie rozpoczecia zabawy.
Na poczatek potrzebujemy jakiegos pliku mp3, ktory wrzucimy do okreslonej sciezki na naszym serwerze.
Ja przyjme, ze plik .mp3 znajduje sie w sciezce sound/misc/moj_jailbreak/zabawa.mp3.
Kod zabawy przed dodaniem dzwieku mp3. :

#include <amxmodx>

#include <amxmisc>

#include <fun>

#include <engine>

#include <jailbreak>

#include <cstrike>



#define PLUGIN "[JB] Wojna Na Granaty"

#define VERSION "1.0.6"

#define AUTHOR "Wielkie Jol"



new id_zabawa;



public plugin_init() {

    register_plugin(PLUGIN, VERSION, AUTHOR)

    

    id_zabawa = jail_register_game("Wojna Na Granaty");

}



public OnLastPrisonerShowWish(id)

{

    OnRemoveData(id_zabawa);

}



public OnRemoveData(day)

{

    jail_set_ct_hit_tt(false);

    jail_set_god_ct(false);

    server_cmd("sv_gravity 800");

}



public OnDayStartPre(day, szInfo[256], szInfo2[512], setting[10], gTimeRound)

{    

    static szTime[12];

    if(day == id_zabawa)

    {

        format_time(szTime, 11, "%M:%S", gTimeRound-30);

        formatex(szInfo2, 511, "Zasady:^n%s - Terrorysci nawzajem zabijaja sie granatami.", szTime, szTime);

        szInfo = "Dzisiaj jest Wojna Na Granaty";

        

        setting[0] = 1;

        setting[1] = 1;

        setting[2] = 1;

        setting[4] = 1;

        setting[7] = 2;

    }

}



public OnDayStartPost(day)

{

    if(day == id_zabawa)

    {

        jail_set_ct_hit_tt(true);

        jail_set_god_ct(true);

        jail_open_cele();

        jail_set_game_hud(30, "Rozpoczecie zabawy za");

        

    }

}



public OnGameHudEnd(day)

{

    if(day == id_zabawa)

    {

        jail_set_prisoners_fight(true, false, false);

        server_cmd("sv_gravity 500");

        for(new i=1; i<=MAX; i++){

            if(!is_user_alive(i) || cs_get_user_team(i) != CS_TEAM_T)

                continue;

            give_item(i, "weapon_hegrenade");

            cs_set_user_bpammo(i, CSW_HEGRENADE, 999)

        }

    }

}



//stock

stock jail_set_all_speed(Float:speed, team)

{

    for(new i=1; i<=MAX; i++)

    {

        if(!is_user_alive(i) || !is_user_connected(i) || get_user_team(i) != team)

            continue;

        

        jail_set_user_speed(i, speed);

    }

}

Na początek musimy "poinformować serwer" o tym, że będzie używany przez nas jakiś plik, w tym celu użyjemy funkcji plugin_precache(). Dodamy ją zaraz po końcu funkcji plugin_init(). Będzie to wyglądało w taki sposób:

public plugin_precache()

    precache_sound("misc/moj_jailbreak/zabawa.mp3")

.

 

Następnie w funkcji

public OnGameHudEnd(day)

odtwarzamy dźwięk wszystkim graczom na serwerze przy rozpoczęciu się zabawy, dodając taki o to fragment kodu:

        client_cmd(0, "mp3 play sound/misc/moj_jailbreak/zabawa.mp3");

Wyglądać to powinno tak:

public OnGameHudEnd(day)

{

    if(day == id_zabawa)

    {

        client_cmd(0, "mp3 play sound/misc/moj_jailbreak/zabawa.mp3");

        jail_set_prisoners_fight(true, false, false);

        server_cmd("sv_gravity 500");

        for(new i=1; i<=MAX; i++){

            if(!is_user_alive(i) || cs_get_user_team(i) != CS_TEAM_T)

                continue;

            give_item(i, "weapon_hegrenade");

            cs_set_user_bpammo(i, CSW_HEGRENADE, 999)

        }

    }

}



Kompilujemy i wstawiamy na nasz serwer. Wszystko powinno działać.

 

Całość po tych bardzo niewielkich zmianac wygląda tak:

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <engine>
#include <jailbreak>
#include <cstrike>

#define PLUGIN "[JB] Wojna Na Granaty"
#define VERSION "1.0.6"
#define AUTHOR "Wielkie Jol"

new id_zabawa;

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    id_zabawa = jail_register_game("Wojna Na Granaty");
}

public plugin_precache()
    precache_sound("misc/moj_jailbreak/zabawa.mp3");

public OnLastPrisonerShowWish(id)
{
    OnRemoveData(id_zabawa);
}

public OnRemoveData(day)
{
    jail_set_ct_hit_tt(false);
    jail_set_god_ct(false);
    server_cmd("sv_gravity 800");
}

public OnDayStartPre(day, szInfo[256], szInfo2[512], setting[10], gTimeRound)
{    
    static szTime[12];
    if(day == id_zabawa)
    {
        format_time(szTime, 11, "%M:%S", gTimeRound-30);
        formatex(szInfo2, 511, "Zasady:^n%s - Terrorysci nawzajem zabijaja sie granatami.", szTime, szTime);
        szInfo = "Dzisiaj jest Wojna Na Granaty";
        
        setting[0] = 1;
        setting[1] = 1;
        setting[2] = 1;
        setting[4] = 1;
        setting[7] = 2;
    }
}
public OnDayStartPost(day)
{
    if(day == id_zabawa)
    {
        client_cmd(0, "mp3 play sound/misc/moj_jailbreak/zabawa.mp3");
        jail_set_ct_hit_tt(true);
        jail_set_god_ct(true);
        jail_open_cele();
        jail_set_game_hud(30, "Rozpoczecie zabawy za");
        
    }
}

public OnGameHudEnd(day)
{
    if(day == id_zabawa)
    {
        client_cmd(0, "mp3 play sound/misc/moj_jailbreak/zabawa.mp3");
        jail_set_prisoners_fight(true, false, false);
        server_cmd("sv_gravity 500");
        for(new i=1; i<=MAX; i++){
            if(!is_user_alive(i) || cs_get_user_team(i) != CS_TEAM_T)
                continue;
            give_item(i, "weapon_hegrenade");
            cs_set_user_bpammo(i, CSW_HEGRENADE, 999)
        }
    }
}

//stock
stock jail_set_all_speed(Float:speed, team)
{
    for(new i=1; i<=MAX; i++)
    {
        if(!is_user_alive(i) || !is_user_connected(i) || get_user_team(i) != team)
            continue;
        
        jail_set_user_speed(i, speed);
    }
}

 

Odpowiedz

  • +
  • -
Darek_pl - zdjęcie Darek_pl 04.03.2014

Twój sposób nie działa dobrze , muzyka nie wyłącza się na koniec rundy , gra ciągle aż do końca nawet w nastepnym dniu , 

Zobaczyłem w zabawie kaczki z awp Cypisa i tam jest dodane jeszcze w public OnRemoveData(day) cos w stylu client_cmd(0, "mp3 stop") to moze byc przyczyna ??

Odpowiedz

  • +
  • -
Wielkie Jol - zdjęcie Wielkie Jol 04.03.2014

Jeżeli ta komenda - mianowicie client_cmd(0, "mp3 stop"); zostanie dodana do funkcji OnRemoveData(day), to tak, zostanie ona wyłączona.

Odpowiedz

  • +
  • -
Darek_pl - zdjęcie Darek_pl 06.03.2014

czyli bez tej komendy nie wylaczy sie ta :D

Bo wlasnie w poradniku u Ciebie tego nie ma i tak pytam czy tez sie wylaczy bez tego :) ??

Odpowiedz

Rico12 - zdjęcie Rico12 10.03.2014

fajne łap +

Odpowiedz

  • +
  • -
Dominika12345 - zdjęcie Dominika12345 09.06.2014

Czyli jak powinien wygądać plik w końcu bo się pogubiłam.

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <jailbreak>

#define PLUGIN "[Jail] Ganiany"
#define VERSION "1.0.6"
#define AUTHOR "Cypis"

new id_ganiany;
new bool:usun;

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	id_ganiany = jail_register_game("Ganiany");
}

public plugin_precache()
    precache_sound("misc/zabawy/ganiany.mp3");

public OnDayStartPre(day, szInfo[256], szInfo2[512], setting[10], gTimeRound)
{	
	static szTime[12];
	if(day == id_ganiany)
	{
		format_time(szTime, 11, "%M:%S", gTimeRound-30);
		formatex(szInfo2, 511, "Zasady:^n%s - Straznicy zaczynaja ganiac wiezniow^nOstatni wiezien ma zyczenie", szTime);
		szInfo = "Dzisiaj jest Ganiany";
			
		for(new i=1; i<=MAX; i++)
		{
			if(!is_user_connected(i) || !is_user_alive(i) || get_user_team(i) != 2)
				continue;
			
			strip_user_weapons(i);
			give_item(i, "weapon_knife");
		}
		jail_set_prisoners_micro(true, true);
		jail_set_ct_hit_tt(true);
		jail_set_god_ct(true);
			
		setting[0] = 1;
		setting[1] = 1;
		setting[2] = 1;
		setting[4] = 3;
	}
}

public OnDayStartPost(day)
{
	if(day == id_ganiany)
	{
                client_cmd(0, "mp3 play sound/misc/zabawy/ganiany.mp3");
		jail_set_all_speed(0.1, 2) //blokowanie chodzenia ct
		
		jail_open_cele();
		jail_set_game_hud(30, "Rozpoczecie zabawy za");
	}
}

public OnGameHudEnd(day)
{
	if(day == id_ganiany)
	{
		if(!usun)
		{
                        client_cmd(0, "mp3 play sound/misc/zabawy/ganiany.mp3");
			jail_set_ct_hit_tt(false);
			jail_set_all_speed(300.0, 2) //ustawienie chodzenia ct
			
			jail_set_game_hud(300, "Zakonczenie zabawy za");
		}
		else
		{
			jail_set_play_game(USUWANIE_DANYCH, true);
		}
		usun = !usun;
	}
}

public OnRemoveData(day)
{
	usun = false;
}

//stock
stock jail_set_all_speed(Float:speed, team)
{
	for(new i=1; i<=MAX; i++)
	{
		if(!is_user_alive(i) || !is_user_connected(i) || get_user_team(i) != team)
			continue;
			
		jail_set_user_speed(i, speed);
	}
}

Muzyka która jest dodana zazwyczaj kończy się w czasie trwania zabawy bo jest krótka, chcę żeby się powtarzała.

A co do zakończenia odtwarzania muzyki to chcę żeby nastąpiło to równo z zakończeniem zabawy, obecnie muzyka gra w kolejnej rundzie po zabawie...

Pomoże mi to ktoś zmienić?

Proszę o pomoc.

 

Odpowiedz

Gryzon - zdjęcie Gryzon 14.06.2014

w public OnRemoveData (day) zapomniałeś dodać client_cmd(0, "mp3 stop");

Odpowiedz

  • +
  • -
Dominika12345 - zdjęcie Dominika12345 23.06.2014

A co zrobić jeżeli w pliku sma zabawy nie ma "public OnRemoveData(day)"??

 

 
Odpowiedz

  • +
  • -
ex0 - zdjęcie ex0 23.06.2014

A co zrobić jeżeli w pliku sma zabawy nie ma "public OnRemoveData(day)"??

 

Przecież w tej zabawie powyżej masz ten public więc o co chodzi?

Jeśli inne zabawy to zwyczajnie wklej .sma a w odpowiednie miejsce Ci powiemy jak wstawić. (ale to zdanie jest zaje*******te gramatycznie :D)

Odpowiedz