Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

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
Modyfikacja

[ROZWIĄZANE] Przerobienie Headshot Sound Hud

Modyfikacja

  • Zamknięty Temat jest zamknięty
9 odpowiedzi w tym temacie

#1 psilocybe

    Toasty!

  • Power User

Reputacja: 246
Wszechwidzący

  • Postów:524
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:PL
Offline

Napisano 03.03.2012 18:14

Witam, mam wielką prośbę o przerobienie pluginu który napisał dla mnie speedkill, chodzi o dźwięki odgrywane przy zabiciu headshotem.

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Headshot Sound Hud"
#define VERSION "1.0"
#define AUTHOR "speedkill"

new const muza[] = "misc/headshot2.wav"

public plugin_init() {
	    register_plugin(PLUGIN, VERSION, AUTHOR)
	    register_event("DeathMsg", "death", "a", "1>0")
}
public plugin_precache()
{
	    precache_sound(muza)
}
public death()
{
	    new Killer = read_data(1)
	    new Victim = read_data(2)
	    new Hs = read_data(3)
	    
	    
	    if(Killer != Victim && get_user_team(Killer) != get_user_team(Victim) && Hs)
	    {
        client_cmd(Victim, "spk %s",muza);
        client_cmd(Killer, "spk %s",muza);
        set_hudmessage (000, 255, 000, -1.0, 0.2, 2, 0.02, 6.0, 0.01, 0.1, -1);
        show_hudmessage(Killer, "HEADSHOT!");
        set_hudmessage (255, 000, 000, -1.0, 0.2, 2, 0.02, 6.0, 0.01, 0.1, -1);
        show_hudmessage(Victim, "HEADSHOT!");
	    }
}

Czy jest ktoś w stanie dopisać warunek że gdy headshot jest zadany z noża to odgrywa inny dźwięk, np. 'headshot3.wav'? Dźwięk ma być również słyszalny tylko dla ofiary i oprawcy, nie dla całego serwera.

Dodatkowo, podczas zabicia headshotem z noża chciałbym wyświetlić ikonkę statusu jako sprite, z tym raczej poradzę sobie sam ale jeżeli ktoś już by był w stanie napisać warunek na headshot nożem to mógł by dodać do gotowego kodu to:

stock Display_Icon(id, enable, name[], red, green, blue) {
		if(is_user_connected(id)) {
				message_begin(MSG_ONE, ikonka, {0,0,0}, id);
				write_byte(enable);
				write_string(name);
				write_byte(red);
				write_byte(green);
				write_byte(blue);
				message_end();
		}
}

Oraz wyświetlić ikonkę podczas headshota z noża:


Display_Icon(id, 1, "dmg_poison", 0, 255, 0)


Z góry dziękuję za jakąkolwiek pomoc.

Użytkownik psilocybe edytował ten post 03.03.2012 18:21

  • +
  • -
  • 0

Dołączona grafika

Dołączona grafika


#2 Nakupenda.

    Not yet YODA

  • Użytkownik

Reputacja: 136
Zaawansowany

  • Postów:451
  • Imię:Paweł
  • Lokalizacja:Warszawa
Offline

Napisano 03.03.2012 18:45


/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Headshot Sound Hud"
#define VERSION "1.1"
#define AUTHOR "speedkill & Nakupenda."

#define TIME 3.0

new const muza[] = "misc/headshot2.wav"
new const muza2[] = "misc/nazwaplikuheadshot.wav"

new g_msg_statusicon

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("DeathMsg", "death", "a", "1>0")

g_msg_statusicon = get_user_msgid("StatusIcon")
}
public plugin_precache()
{
precache_sound(muza)
precache_sound(muza2)
}
public death()
{
new weaponname[20]
new Killer = read_data(1)
new Victim = read_data(2)
new Hs = read_data(3)
read_data(4,weaponname,31)

if(Killer != Victim && get_user_team(Killer) != get_user_team(Victim) && Hs)
{
if(equal(weaponname,"weapon_knife"))
{
client_cmd(Victim, "spk %s",muza2);
client_cmd(Killer, "spk %s",muza2);
set_hudmessage (000, 255, 000, -1.0, 0.2, 2, 0.02, 6.0, 0.01, 0.1, -1);
show_hudmessage(Killer, "HEADSHOT z kosy!");
set_hudmessage (255, 000, 000, -1.0, 0.2, 2, 0.02, 6.0, 0.01, 0.1, -1);
show_hudmessage(Victim, "HEADSHOT z kosy!");
Display_Icon(Victim, 1, "dmg_poison", 0, 255, 0)
set_task(TIME, "unrader", Victim)
}
else
{
client_cmd(Victim, "spk %s",muza);
client_cmd(Killer, "spk %s",muza);
set_hudmessage (000, 255, 000, -1.0, 0.2, 2, 0.02, 6.0, 0.01, 0.1, -1);
show_hudmessage(Killer, "HEADSHOT!");
set_hudmessage (255, 000, 000, -1.0, 0.2, 2, 0.02, 6.0, 0.01, 0.1, -1);
show_hudmessage(Victim, "HEADSHOT!");
}
}
}

public unrader(id)
{
Display_Icon(id, 0, "dmg_poison", 0, 255, 0)
return PLUGIN_HANDLED;
}

stock Display_Icon(id, enable, name[], red, green, blue)
{
if(is_user_connected(id)) {
message_begin(MSG_ONE, g_msg_statusicon, {0,0,0}, id);
write_byte(enable);
write_string(name);
write_byte(red);
write_byte(green);
write_byte(blue);
message_end();
}
}


@edit: dodałem z ikonką

// czas po którym ikonka ma znikać zmieniasz w #define TIME 3.0 - pamiętaj że to zawsze musi być liczba zmiennoprzecinkowa (float)

Użytkownik Nakupenda. edytował ten post 03.03.2012 18:54

  • +
  • -
  • 0

#3 psilocybe

    Toasty!

  • Autor tematu
  • Power User

Reputacja: 246
Wszechwidzący

  • Postów:524
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:PL
Offline

Napisano 03.03.2012 21:01

Dzięki byłem pewny że zadziała, wszystko napisane elegancko, lecz niestety nie działa poprawnie.

Próbowałem to ogarnąć w podobny sposób lecz nie działało, twój kod również nie działa, plugin pracuje poprawnie lecz przy HS z kosy jest dźwięk i napis hud jak przy zwykłym HS, tak jakby nie wykrywał że masz nóż. Nie raz dostosowywałem pluginy do zmienionych modeli i musiałem w *.sma zmieniać nazwę modelu ponieważ mam inne nazwy modeli. W przykładowym pluginie warunek sprawdzał model a nie zmienną.

if (equali(ptrModel,"models/w_knife3.mdl"))

Może da radę ktoś zrobić warunek na podstawie nazwy modelu? Trzeba będzie wykorzystać dodatkowy moduł?
  • +
  • -
  • 0

Dołączona grafika

Dołączona grafika


#4 Nakupenda.

    Not yet YODA

  • Użytkownik

Reputacja: 136
Zaawansowany

  • Postów:451
  • Imię:Paweł
  • Lokalizacja:Warszawa
Offline

Napisano 03.03.2012 21:39

a jaki masz model do kosy ?

ew. spróbuj:
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "Headshot Sound Hud"
#define VERSION "1.1"
#define AUTHOR "speedkill & Nakupenda."
#define TIME 3.0
new const muza[] = "misc/headshot2.wav"
new const muza2[] = "misc/nazwaplikuheadshot.wav"
new g_msg_statusicon
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("DeathMsg", "death", "a", "1>0")


g_msg_statusicon = get_user_msgid("StatusIcon")
}
public plugin_precache()
{
precache_sound(muza)
precache_sound(muza2)
}
public death()
{
new Killer = read_data(1)
new Victim = read_data(2)
new Hs = read_data(3)
new weapon = get_user_weapon(Killer)

if(Killer != Victim && get_user_team(Killer) != get_user_team(Victim) && Hs)
{
if(weapon == CSW_KNIFE)
{
client_cmd(Victim, "spk %s",muza2);
client_cmd(Killer, "spk %s",muza2);
set_hudmessage (000, 255, 000, -1.0, 0.2, 2, 0.02, 6.0, 0.01, 0.1, -1);
show_hudmessage(Killer, "HEADSHOT z kosy!");
set_hudmessage (255, 000, 000, -1.0, 0.2, 2, 0.02, 6.0, 0.01, 0.1, -1);
show_hudmessage(Victim, "HEADSHOT z kosy!");
Display_Icon(Victim, 1, "dmg_poison", 0, 255, 0)
set_task(TIME, "unrader", Victim)
}
else
{
client_cmd(Victim, "spk %s",muza);
client_cmd(Killer, "spk %s",muza);
set_hudmessage (000, 255, 000, -1.0, 0.2, 2, 0.02, 6.0, 0.01, 0.1, -1);
show_hudmessage(Killer, "HEADSHOT!");
set_hudmessage (255, 000, 000, -1.0, 0.2, 2, 0.02, 6.0, 0.01, 0.1, -1);
show_hudmessage(Victim, "HEADSHOT!");
}
}
}
public unrader(id)
{
Display_Icon(id, 0, "dmg_poison", 0, 255, 0)
return PLUGIN_HANDLED;
}
stock Display_Icon(id, enable, name[], red, green, blue)
{
if(is_user_connected(id)) {
message_begin(MSG_ONE, g_msg_statusicon, {0,0,0}, id);
write_byte(enable);
write_string(name);
write_byte(red);
write_byte(green);
write_byte(blue);
message_end();
}
}

  • +
  • -
  • 0

#5 psilocybe

    Toasty!

  • Autor tematu
  • Power User

Reputacja: 246
Wszechwidzący

  • Postów:524
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:PL
Offline

Napisano 03.03.2012 22:54

Niestety przy kompilacji pisze: "undefined symbol: weapon", próbowałem również if get_user_weapon(id) == CSW_KNIFE, też błąd przy kompilacji. Myślałem że to będzie łatwiejsze do zrobienia :)

Może speedkill coś wymyśli :)

edit: czy ten warunek jest w stanie zadziałać?

if(equali("get_user_weapons", "CSW_KNIFE"))

Kompilacja bez błędów, ale czy to nie jakieś głupoty powypisywałem? :)

Użytkownik psilocybe edytował ten post 03.03.2012 23:21

  • +
  • -
  • 0

Dołączona grafika

Dołączona grafika


#6 Nakupenda.

    Not yet YODA

  • Użytkownik

Reputacja: 136
Zaawansowany

  • Postów:451
  • Imię:Paweł
  • Lokalizacja:Warszawa
Offline

Napisano 04.03.2012 07:48

Kompilacja bez błędów, ale czy to nie jakieś głupoty powypisywałem?


głupota. :giggle:

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

Header size:            496 bytes
Code size:             2304 bytes
Data size:             1056 bytes
Stack/heap size:      16384 bytes; estimated max. usage=779 cells (3116 bytes)
Total requirements:   20240 bytes
Done.

<<< Process finished.

  • +
  • -
  • 0

#7 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1570
Godlike

  • Postów:2733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 04.03.2012 09:07

@Nakupenda, po co dałeś taska 3.0 ? :P
Sprawdź
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Headshot Sound Hud"
#define VERSION "1.0"
#define AUTHOR "speedkill"

new ikonka
new const muza[] = "misc/headshot2.wav"
new const muza1[] = "misc/headshot3.wav"

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_event("DeathMsg", "death", "a", "1>0")
	ikonka = get_user_msgid("StatusIcon")
}
public plugin_precache()
{
	precache_sound(muza)
        precache_sound(muza1)
}
public death()
{
	new Killer = read_data(1)
	new Victim = read_data(2)
	new Hs = read_data(3)
	new weapon = get_user_weapon(Killer)
	
	
	if(Killer != Victim && get_user_team(Killer) != get_user_team(Victim) && Hs)
	{
		if(weapon == CSW_KNIFE)
		{
			client_cmd(Victim, "spk %s",muza1)
			client_cmd(Killer, "spk %s",muza1)
			set_hudmessage (000, 255, 000, -1.0, 0.2, 2, 0.02, 6.0, 0.01, 0.1, -1)
			show_hudmessage(Killer, "HEADSHOT z kosy!")
			set_hudmessage (255, 000, 000, -1.0, 0.2, 2, 0.02, 6.0, 0.01, 0.1, -1)
			show_hudmessage(Victim, "HEADSHOT z kosy!")
			Display_Icon(Victim, 0, "dmg_poison", 0, 255, 0)
		}
		else
		{
			client_cmd(Victim, "spk %s",muza)
			client_cmd(Killer, "spk %s",muza)
			set_hudmessage (000, 255, 000, -1.0, 0.2, 2, 0.02, 6.0, 0.01, 0.1, -1)
			show_hudmessage(Killer, "HEADSHOT!")
			set_hudmessage (255, 000, 000, -1.0, 0.2, 2, 0.02, 6.0, 0.01, 0.1, -1)
			show_hudmessage(Victim, "HEADSHOT!")
		}
	}
}
stock Display_Icon(id, enable, name[], red, green, blue) {
	if(is_user_connected(id)) {
		message_begin(MSG_ONE, ikonka, {0,0,0}, id);
		write_byte(enable);
		write_string(name);
		write_byte(red);
		write_byte(green);
		write_byte(blue);
		message_end();
	}
}

Użytkownik speedkill edytował ten post 04.03.2012 09:08

  • +
  • -
  • 1

If you can dream it, you can do it.


#8 psilocybe

    Toasty!

  • Autor tematu
  • Power User

Reputacja: 246
Wszechwidzący

  • Postów:524
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:PL
Offline

Napisano 04.03.2012 17:13

Dzięki speedkill, plugin działa bez zarzutów, na początku nie wyświetlał ikonki lecz zmieniłem linijkę:

Display_Icon(Victim, 0, "dmg_poison", 0, 255, 0)

na:

Display_Icon(Victim, 1, "dmg_poison", 0, 255, 0)

Teraz wyświetla wybraną ikonkę, lecz ikonka ta nie znika aż do końca rundy. Gdy dam enable na 2 powinna migać, również nie miga tylko jest widoczna do końca rundy. Aż tak bardzo mi na tym nie zależy, lecz jeżeli jesteś w stanie to poprawić speedkill będę bardzo wdzięczny :) Twoja pomoc jest nieoceniona :)

edit: zapomniałem dodać że dopisałem linijkę aby wyświetlała ikonkę również dla oprawcy, więc jest:

Display_Icon(Victim, 1, "dmg_poison", 0, 255, 0)
Display_Icon(Killer, 1, "dmg_poison", 0, 255, 0)

Użytkownik psilocybe edytował ten post 04.03.2012 17:15

  • +
  • -
  • 0

Dołączona grafika

Dołączona grafika


#9 psilocybe

    Toasty!

  • Autor tematu
  • Power User

Reputacja: 246
Wszechwidzący

  • Postów:524
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:PL
Offline

Napisano 04.03.2012 20:11

Dobra, temat można zamknąć, speedkill rozwiązał problem ze znikaniem ikonki. Z racji że powstał prosty lecz fajny plugin, opublikuję go w dziale Pluginy, razem z dźwiękami których użyłem. Jeszcze raz dziękuję za pomoc.
  • +
  • -
  • 0

Dołączona grafika

Dołączona grafika


#10 Ojciec Dyrektor

    papa smerf.

  • Przyjaciel

Reputacja: 476
Wszechobecny

  • Postów:3035
  • Imię:Paweł
  • Lokalizacja:Rabka-Zdrój
Offline

Napisano 04.03.2012 21:54

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: Modyfikacja

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

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