←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Komenda /roundsound

Zablokowany

  • +
  • -
Andrzejek - zdjęcie Andrzejek 06.11.2012

Witam,

Mam pytanie do was, jak zrobić włącznik/wyłącznik roundsoundów?

Żeby na początku rundy się nie restartowało itp.
Odpowiedz

  • +
  • -
K!113r - zdjęcie K!113r 06.11.2012

zrób sobię 33 elementową tablicą typu boolean, i wypełniaj prawdą jeżeli ktoś sobie wyłączy odgrywanie rs'a, oczywiście sprawdzaj przed odegraniem rs'a czy gracz chce słyszeć czy nie...
Odpowiedz

  • +
  • -
GwynBleidD - zdjęcie GwynBleidD 06.11.2012

Możesz zapisywać też w setinfo preferencję gracza, aby po jego ponownym wejściu na serwer nie musiał włączać/wyłączać tego jeszcze raz ;)
Odpowiedz

  • +
  • -
Andrzejek - zdjęcie Andrzejek 06.11.2012

A może jakiś mod przenieś to do Scripting Amxx -> Pluginy

I prosił bym o przykładowa funkcje
Odpowiedz

  • +
  • -
Filip1512 - zdjęcie Filip1512 06.11.2012

Przykład:

Tworzysz nową zmienną
new bool:rs;


Później tworzysz komendę albo menu (pierwsze krótsze) w plugin_init, która będzie zmieniała czy dana osoba chce to usłyszeć czy nie, np.:

register_clcmd("say /rsoff", "rsoff")
register_clcmd("say /rson", "rson")


Z tego co wiem, to można zrobić poprostu switcha na 1 komendę, ale ja tego nie umiem :P
Tworzysz funkcje do kazdej komendy:

public rsoff(id)
rs = false

public rson(id)
rs = true


I teraz w odpowiednim miejscu (PRZED FUNKCJĄ ODGRYWAJĄCĄ RSY) wstawiasz warunek

public funkcja(id){
if(rs == true){
... FUNKCJA ...
}
}



Całość wygląda mniej więcej tak:

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

new bool:rs;

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

register_clcmd("say /rsoff", "rsoff")
register_clcmd("say /rson", "rson")
}

public rsoff(id)
rs = false

public rson(id)
rs = true

public funkcja(id){
if(rs == true){
... FUNKCJA ...
}
}

speedkill (06.11.2012 16:34):
Trochę źle, bo każdy gracz ma index, i każdy może mieć inne ustawienia, a tutaj tego nie ma, poczytaj o zmiennych ;)
speedkill (06.11.2012 16:36):
Przykład new bool:rs[33];
Następnie w funkcji rsoff(id){ rs[id] = false; } itp.

Użytkownik `NN edytował ten post 06.11.2012 15:31
Odpowiedz

  • +
  • -
GwynBleidD - zdjęcie GwynBleidD 06.11.2012

Jeśli chcesz użyć tego w jednej komendzie, można to również zrobić jedną linią bez żadnego ifa:
rs[id] = !rs[id]

Co spowoduje po prostu zanegowanie wartości wpisanej wcześniej w RS.

Aby zapisać to w setinfo dodajesz coś takiego:
set_user_info(id, "_rs_active", rs[id]?'true':false);


odczyt najlepiej wykonać w client_putinserver (możesz też wcześniej, client_connect albo client_authorized, ale w connect setinfo może jeszcze nie działać)
new info[8];
get_user_info(id, "_rs_active", info, 7);
rs[id] = equali(info, "false")?false:true;
Odpowiedz

  • +
  • -
Leihto - zdjęcie Leihto 07.11.2012

#include < amxmodx >



new bool:rs[33];

public plugin_init()

{

register_plugin( "dadsadas","1","Leihto" );

	register_clcmd( "say /roundsound", "opt_roundsound" );

}



public client_putinserver( id )

	rs[id] = true;



public opt_roundsound( id )

{

	if(rs[id])

		rs[id] = false;

	else

		rs[id] = true;



	return PLUGIN_CONTINUE;

}
Odpowiedz

  • +
  • -
speedkill - zdjęcie speedkill 07.11.2012

#include <amxmodx>



new bool:rs[33];



public plugin_init(){

	register_plugin( "dadsadas","1","Leihto" );

	register_clcmd( "say /roundsound", "opt_roundsound" );

}

public client_putinserver(id)

	rs[id] = true;



public opt_roundsound(id){

	rs[id] = !rs[id];

}
Odpowiedz

  • +
  • -
GwynBleidD - zdjęcie GwynBleidD 07.11.2012

Dużo osób tutaj podaje gotowy plugin, ale zauważcie, że raczej trzeba ten kod dopisać do jakiegoś gotowego pluginu na Roundsound, a nie tworzyć nowy (no chyba, że nasz roundsound posiada jakieś forwardy czy natywy). Czy jest sens podawać w takim razie gotowy kod? Czy lepiej może wskazówki jak zmodyfikować istniejący już plugin?
speedkill (07.11.2012 16:30):
Tutaj właśnie o to chodzi, aby osoba to zobaczyła kod, a potem dopisała to do swojego roundsound'a ;)
Odpowiedz

  • +
  • -
Filip1512 - zdjęcie Filip1512 07.11.2012

Dużo osób tutaj podaje gotowy plugin, ale zauważcie, że raczej trzeba ten kod dopisać do jakiegoś gotowego pluginu na Roundsound, a nie tworzyć nowy (no chyba, że nasz roundsound posiada jakieś forwardy czy natywy). Czy jest sens podawać w takim razie gotowy kod? Czy lepiej może wskazówki jak zmodyfikować istniejący już plugin?


Ehh...

Witam,

Mam pytanie do was, jak zrobić włącznik/wyłącznik roundsoundów?

Żeby na początku rundy się nie restartowało itp.


Nigdzie nie podał *.sma, więc napisałem/napisaliśmy, w których miejscach co gdzie dodać i na podstawie gotowego pluginu poprostu umieścić odpowiednie warunki, funkcje czy zmienne w odpowiednich miejscach.

(poprawione błędy w cytacie)

Przykład:

Tworzysz nową zmienną

new bool:rs[33];


Później tworzysz komendę albo menu (pierwsze krótsze) w plugin_init, która będzie zmieniała czy dana osoba chce to usłyszeć czy nie, np.:

register_clcmd("say /rsoff", "rsoff")
register_clcmd("say /rson", "rson")


Z tego co wiem, to można zrobić poprostu switcha na 1 komendę, ale ja tego nie umiem :P
Tworzysz funkcje do kazdej komendy:

public rsoff(id)
rs[id] = false

public rson(id)
rs[id] = true


I teraz w odpowiednim miejscu (PRZED FUNKCJĄ ODGRYWAJĄCĄ RSY) wstawiasz warunek

public funkcja(id){
if(rs[id] == true){
... FUNKCJA ...
}
}



Całość wygląda mniej więcej tak:

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

new bool:rs[33];

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

register_clcmd("say /rsoff", "rsoff")
register_clcmd("say /rson", "rson")
}

public rsoff(id)
rs[id] = false

public rson(id)
rs[id] = true

public funkcja(id){
if(rs[id] == true){
... FUNKCJA ...
}
}


Użytkownik `NN edytował ten post 07.11.2012 16:01
Odpowiedz

  • +
  • -
GwynBleidD - zdjęcie GwynBleidD 07.11.2012

Nie chodzi mi akurat o Twój post, gdyż podałeś cały opis operacji. Chodzi mi o posty speedkilla i leihto, którzy po prostu umieścili gotowe pluginy które na dobrą sprawę nic nie robią, a początkującemu może być ciężko się połapać co z tego ma wrzucić do edytowanego pluginu i gdzie.
Odpowiedz

  • +
  • -
Andrzejek - zdjęcie Andrzejek 08.11.2012

Mam coś takiego:

I jak tu zrobić żeby była włączona lub wyłączona muzyka?

public wlacz_nutke(sound[]) {

new mpeg = (containi(sound, ".mp3") != -1)
if(mpeg) client_cmd(0, "mp3 play ^"%s%s^"", Nutki, sound)
else client_cmd(0, "spk ^"%s%s^"", Nutki, sound)
}


Już można zamknac kolega mi pomógł
Odpowiedz

  • +
  • -
Kawon - zdjęcie Kawon 08.11.2012

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Temat zamknięty na prośbę użytkownika.


Z pozdrowieniami,
Zespół AMXX.PL
Odpowiedz
Zablokowany