←  Problemy z pluginami

AMXX.pl: Support AMX Mod X i SourceMod

»

Blokada dzwięków strzałów pod komendę - pr...

  • +
  • -
NEQU# - zdjęcie NEQU# 30.08.2016

Witam, próbuję dodać do pluginu darka możliwość wyłączenia dzwięków po użyciu komendy, jednak rezultaty są marne więc liczę na waszą pomoc.

Załączony plik  blokujemy_dzwieki.sma   1,11 KB   61 Ilość pobrań
Odpowiedz

  • +
  • -
tytusek - zdjęcie tytusek 30.08.2016

zobacz to

Załączone pliki

Odpowiedz

  • +
  • -
NEQU# - zdjęcie NEQU# 30.08.2016

zobacz to


Unlucky nie. W tej wersji blokuje dźwięki bez względu na wszystko, ogólnie trzeba to jakoś zrobić z opcja włączania/wyłączania, 1 stronna komenda odpada.
Użytkownik NEQU# edytował ten post 30.08.2016 20:43
Odpowiedz

  • +
  • -
tytusek - zdjęcie tytusek 30.08.2016

#pragma semicolon 0
#include <amxmisc>
#include <fakemeta>
 
new iEvents[] = {20,12,18,17,23,24,15,10,11,22,13,21,14,16,27,28,4,6,3,7,8,9,2,1,5}
new bool:g_dzwieki[33];
 
public plugin_init() {
register_plugin("Blokujemy dzwieki", "1.0", "DarkGL")
register_forward(FM_PlaybackEvent, "fwPlaybackEvent");
register_clcmd("say /dzwieki", "wycisz_dzwieki");
}
public wycisz_dzwieki(id)
g_dzwieki[id] = true;
 
public client_putinserver(id)
g_dzwieki[id] = false;
 
public fwPlaybackEvent( flags, id, eventindex,Float: delay, Float: origin[3], Float: angles[3], Float: fparam1, Float: fparam2, iparam1, iparam2, bparam1, bparam2) {
        if(g_dzwiek[id]){
         new bool:bFind = false;
for(new i = 0;i < sizeof iEvents;i++){
if(eventindex == iEvents[i]){
bFind = true;
break;
}
}
if(!bFind) return FMRES_IGNORED;
        }
return FMRES_SUPERCEDE;
}
 
a to 
Odpowiedz

  • +
  • -
rzeznik9871 - zdjęcie rzeznik9871 30.08.2016

#include <amxmisc>
#include <fakemeta>

new iEvents[] = {20,12,18,17,23,24,15,10,11,22,13,21,14,16,27,28,4,6,3,7,8,9,2,1,5}
new bool:g_dzwieki[33];

public plugin_init() {
	register_plugin("Blokujemy dzwieki", "1.0", "DarkGL")
	register_forward(FM_PlaybackEvent, "fwPlaybackEvent");
	register_clcmd("say /dzwieki", "wycisz_dzwieki");
}
public wycisz_dzwieki(id)
{
	if(g_dzwieki[id])
	{
		client_print(id,3,"Dzwieki zostaly wylaczone")
		g_dzwieki[id] = false;
	}
	else
	{
		client_print(id,3,"Dzwieki zostaly wlaczone")
		g_dzwieki[id]=true
	}
}

public client_putinserver(id)
	g_dzwieki[id] = true;

public fwPlaybackEvent( flags, id, eventindex,Float: delay, Float: origin[3], Float: angles[3], Float: fparam1, Float: fparam2, iparam1, iparam2, bparam1, bparam2) {
        if(g_dzwiek[id])
		return FMRES_IGNORED;

        new bool:bFind = false;
	

	for(new i = 0;i < sizeof iEvents;i++){	
		if(eventindex == iEvents[i]){
			bFind = true;
			break;
		}
	}
	
	if(!bFind)	return FMRES_IGNORED;

	
	return FMRES_SUPERCEDE;
}

?

Odpowiedz

  • +
  • -
NEQU# - zdjęcie NEQU# 30.08.2016

#include <amxmisc>
#include <fakemeta>

new iEvents[] = {20,12,18,17,23,24,15,10,11,22,13,21,14,16,27,28,4,6,3,7,8,9,2,1,5}
new bool:g_dzwieki[33];

public plugin_init() {
	register_plugin("Blokujemy dzwieki", "1.0", "DarkGL")
	register_forward(FM_PlaybackEvent, "fwPlaybackEvent");
	register_clcmd("say /dzwieki", "wycisz_dzwieki");
}
public wycisz_dzwieki(id)
{
	if(g_dzwieki[id])
	{
		client_print(id,3,"Dzwieki zostaly wylaczone")
		g_dzwieki[id] = false;
	}
	else
	{
		client_print(id,3,"Dzwieki zostaly wlaczone")
		g_dzwieki[id]=true
	}
}

public client_putinserver(id)
	g_dzwieki[id] = true;

public fwPlaybackEvent( flags, id, eventindex,Float: delay, Float: origin[3], Float: angles[3], Float: fparam1, Float: fparam2, iparam1, iparam2, bparam1, bparam2) {
        if(g_dzwiek[id])
		return FMRES_IGNORED;

        new bool:bFind = false;
	

	for(new i = 0;i < sizeof iEvents;i++){	
		if(eventindex == iEvents[i]){
			bFind = true;
			break;
		}
	}
	
	if(!bFind)	return FMRES_IGNORED;

	
	return FMRES_SUPERCEDE;
}
?

Info wyświetla dobrze, jednak bez względu na to czy g_dzwieki = true czy false wciąż blokuje dźwięki.

@tytus też sprawdziłem, ta sama sytuacja co poprzednio, blokuje dźwięki cały czas bez względu na komendę.
Użytkownik NEQU# edytował ten post 30.08.2016 21:37
Odpowiedz

  • +
  • -
rzeznik9871 - zdjęcie rzeznik9871 30.08.2016

tak btw jakie to ma blokowac dzwieki? bo wgralem na locala pochodzilem postrzelalem i u mnie nic nie blokuje ^^

Odpowiedz

  • +
  • -
NEQU# - zdjęcie NEQU# 31.08.2016

tak btw jakie to ma blokowac dzwieki? bo wgralem na locala pochodzilem postrzelalem i u mnie nic nie blokuje ^^

Blokuje dzwieki strzalow twojego teamu.
Odpowiedz

  • +
  • -
NEQU# - zdjęcie NEQU# 31.08.2016

Niestety, nie mogę edytować posta.

A więc tak, próbowałem w ten sposób i jedyne co udało mi się osiągnąć to bugujące się strzały ^^ co 2 pocisk jest wyciszony, oprócz tego wycisza je nawet osobie strzelającej, nie tylko jego sojusznikom.
 

#include <amxmisc>
#include <fakemeta>

new iEvents[] = {20,12,18,17,23,24,15,10,11,22,13,21,14,16,27,28,4,6,3,7,8,9,2,1,5}
new bool:g_dzwieki[33];

public plugin_init()
{
	register_plugin("Blokujemy dzwieki", "1.0", "DarkGL")
	register_forward(FM_PlaybackEvent, "fwPlaybackEvent");
	register_clcmd("say /dzwieki", "wycisz_dzwieki");
}
public wycisz_dzwieki(id)
{
	if(g_dzwieki[id])
	{
		client_print(id,3,"Dzwieki zostaly wylaczone")
		g_dzwieki[id] = false;

	}
	else
	{
		client_print(id,3,"Dzwieki zostaly wlaczone")
		g_dzwieki[id] = true;
	}
}

public client_putinserver(id)
	g_dzwieki[id] = true;

public fwPlaybackEvent( flags, id, eventindex,Float: delay, Float: origin[3], Float: angles[3], Float: fparam1, Float: fparam2, iparam1, iparam2, bparam1, bparam2)
{
	if (g_dzwieki[id])
 	{
		g_dzwieki[id] = false;
		new bool:bFind = false;

		for(new i = 0;i < sizeof iEvents;i++)
		{	
			if(eventindex == iEvents[i]){
			bFind = true;
			break;
		}
	}
		if(!bFind)	return FMRES_IGNORED;
			
			return FMRES_SUPERCEDE;
	}
	else
	{
		g_dzwieki[id] = true;
	}
		return FMRES_SUPERCEDE;
}
Odpowiedz

  • +
  • -
klqs99 - zdjęcie klqs99 02.09.2016

Funkcja chyba nie zwraca ID gracza, więc takie blokowanie na próżno.

(int flags, const edict_t *pInvoker, unsigned short eventindex, float delay, float *origin, float *angles, float fparam1, float fparam2, int iparam1, int iparam2, int bparam1, int bparam2)

Użytkownik klqs99 edytował ten post 03.09.2016 00:01
Odpowiedz

  • +
  • -
NEQU# - zdjęcie NEQU# 03.09.2016



 

Funkcja chyba nie zwraca ID gracza, więc takie blokowanie na próżno.

(int flags, const edict_t *pInvoker, unsigned short eventindex, float delay, float *origin, float *angles, float fparam1, float fparam2, int iparam1, int iparam2, int bparam1, int bparam2)

nope_zpshwzrnonb.png

Odpowiedz

  • +
  • -
klqs99 - zdjęcie klqs99 03.09.2016

Co Ty zrobiłeś? Ja Ci podałem co zwraca funkcja. To, że Dark sobie nazwał to "id" nie znaczy, ze zwraca to id gracza. Niech się wypowie jakaś osoba doświadczona, ja takimi rzeczami się nie interesuje

Odpowiedz

  • +
  • -
NEQU# - zdjęcie NEQU# 04.09.2016

Co Ty zrobiłeś? Ja Ci podałem co zwraca funkcja. To, że Dark sobie nazwał to "id" nie znaczy, ze zwraca to id gracza. Niech się wypowie jakaś osoba doświadczona, ja takimi rzeczami się nie interesuje

Wiedzy nie mam, doświadczenia też nie, także kombinowałem.

 

Temat wciąż aktualny

Odpowiedz