←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

wyłączony +attack i +attack2 dla noża

Zablokowany

  • +
  • -
berix - zdjęcie berix 15.11.2008

Witam w jaki sposób moge usnąc komedny +attack i +attack2 dla noża lub wyłączyć dźwięki machania i uderznia z nozą zarówno dla +attack jak i +attack2.
Będe wdzieczny za wszelką pomoc
Odpowiedz

  • +
  • -
darkman - zdjęcie darkman 15.11.2008

#include <amxmodx>
#include <fakemeta>

public plugin_init()
{
    register_plugin("a", "b", "c")
    register_forward(FM_PlayerPreThink, "fwdPrethink")
   
}

public fwdPreThink(id){
   new wpn = get_user_weapon(id)
    new button = pev(id, pev_button)
    if(wpn == CSW_KNIFE && button & IN_ATTACK)
        return FMRES_SUPERCEDE
    return FMRES_IGNORED
}

nie powinno stawiać oporu O:)

co do soundu to mozna to zrobic w ten sposob:

#include <amxmodx>
#include <fakemeta>

public plugin_init()
{
	register_plugin("a", "b", "c")
	register_forward(FM_EmitSound, "fwdEmitSound")
}

public fwdEmitSound(ent, chan, const sound[])
{
	if(equali(sound, "sciezka do dzwieku"))
		return FMRES_SUPERCEDE
	return FMRES_IGNORED
}
Odpowiedz

  • +
  • -
grankee - zdjęcie grankee 15.11.2008

darkman użyl engine a nie FM ^_- :o
Odpowiedz

  • +
  • -
darkman - zdjęcie darkman 15.11.2008

w drugim już FM xP
Odpowiedz

  • +
  • -
Miczu - zdjęcie Miczu 15.11.2008

grankee, ty nie powinieneś marudzić tak na engine - jedynie wypada sie starać by używać engine lub FM (to lub to).

Ważniejsza rzecz którą już powinien zauważyć, to ze CurWeapon nie ma prawa przechwycić +attack i +attack2 noża.

Event CurWeapon jest tylko wywoływany przy zmianie broni lub przy zmianie liczby naboi. Naprawdę polecam poradnik EVENTY
Odpowiedz

  • +
  • -
emblaze - zdjęcie emblaze 15.11.2008

mam pytanie do drugiego kodu czy on wyłącza dany dzwiek ?? bo jak tak to by wyłączył dzwiek counter terrorist win !! i terrorist win !! ?? ??
Odpowiedz

  • +
  • -
darkman - zdjęcie darkman 15.11.2008

grankee, ty nie powinieneś marudzić tak na engine - jedynie wypada sie starać by używać engine lub FM (to lub to).

Ważniejsza rzecz którą już powinien zauważyć, to ze CurWeapon nie ma prawa przechwycić +attack i +attack2 noża.

Event CurWeapon jest tylko wywoływany przy zmianie broni lub przy zmianie liczby naboi. Naprawdę polecam poradnik EVENTY


A no, tak to jest jak sie na szybko robi :D
Poprawiony kod w 2 poście

EDIT:

mam pytanie do drugiego kodu czy on wyłącza dany dzwiek ?? bo jak tak to by wyłączył dzwiek counter terrorist win !! i terrorist win !! ?? ??


tak, musisz tylko odpowiednie ścieżki podać
Odpowiedz

  • +
  • -
grankee - zdjęcie grankee 15.11.2008

Miczu zaofftopowałem :X chodziło mi o to, że jak się darkmana pytam czasem i daje kawałek kodu w engine to on mi daje kod w FM :D pierwszy raz widzę, żeby w engine coś robił.
Odpowiedz

  • +
  • -
berix - zdjęcie berix 16.11.2008

#include <amxmodx>
#include <fakemeta>

public plugin_init()
{
register_plugin("a", "b", "c")
register_forward(FM_PlayerPreThink, "fwdPrethink")

}

public fwdPreThink(id){
new wpn = get_user_weapon(id)
new button = pev(id, pev_button)
if(wpn == CSW_KNIFE && button & IN_ATTACK)
return FMRES_SUPERCEDE
return FMRES_IGNORED
}


niestey ten kod pluginu nie działa, ale wpadłem na nowy pomysł jakby mogł kto mi pomóc aby dźwkięki noża (machanie, uderzenie) były szłyszane tylko przrez prywatna osobe
1
a nie
0
Odpowiedz

Seba - zdjęcie Seba 16.11.2008

tak, musisz tylko odpowiednie ścieżki podać

Dobra, nie bądź taki cwany, te dźwięki o które się pytał nie są wysyłane przez "emit_sound" więc z tym nic nie zrobi.

Poza tym widzę tutaj taką jak zawsze, fachową pomoc :D

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>

#define PLUGIN "Nowy Plugin"
#define VERSION "1.0"
#define AUTHOR "Sn!ff3r"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_forward(FM_PlayerPreThink, "PlayerPreThink")
	register_forward(FM_UpdateClientData, "UpdateClientData_Post", 1)
	// Add your code here..
}

public PlayerPreThink(id)
{	
	if(!is_user_alive(id))
		return FMRES_IGNORED
	
	if(get_user_weapon(id) != CSW_KNIFE)
		return FMRES_IGNORED
	
	set_pev(id, pev_button, pev(id,pev_button) & ~IN_ATTACK)
	set_pev(id, pev_button, pev(id,pev_button) & ~IN_ATTACK2)
	
	return FMRES_HANDLED
}

public UpdateClientData_Post(id, sendweapons, cd_handle)
{
	
	if(!is_user_alive(id))
		return FMRES_IGNORED
	
	if(get_user_weapon(id) != CSW_KNIFE)
		return FMRES_IGNORED
	
	set_cd(cd_handle, CD_ID, 0)       
	
	return FMRES_HANDLED
}
Odpowiedz

  • +
  • -
berix - zdjęcie berix 16.11.2008

hmm działa ta wersja, lecz przy cvarze
cl_righthand 1
postac ma noz w lewej rece a przy
cl_righthand 0
w prawej, a standardowo jest na odwrót
Odpowiedz

  • +
  • -
Miczu - zdjęcie Miczu 16.11.2008

Seba, dobry cod, nawet nie powinno byc problemow z animacja gdy dajesz update CD, ale musze sie niezgodzic z twoim strierdzeniem co do emita ;-)

emit_sound ( index, channel, sample[], Float:vol, Float:att,flags, pitch )

#define CHAN_AUTO
#define CHAN_WEAPON
#define CHAN_VOICE
#define CHAN_ITEM
#define CHAN_BODY
#define CHAN_STREAM
#define CHAN_STATIC
#define CHAN_NETWORKVOICE_BASE
#define CHAN_NETWORKVOICE_END

Funkcja emit_sound jest zapewne funkcja silnika hl1, a amxx tylko sie do niego podpina. Wszyskie dzwieki slyszane 'publicznie' w grze uzywaja tego zapewnie - czyli pikniecie przy IN_USE, tupniecie gdy upadasz, dzwiek wystrzelonej broni. Kozystaja one tylko z odpowiedniego kanalu ;-)
Odpowiedz

Seba - zdjęcie Seba 18.11.2008

http://forums.allied... ... =sendaudio

To zacznij sie zgadzać.

[ Dodano: 18-11-2008, 18:27 ]

hmm działa ta wersja, lecz przy cvarze
Kod:
cl_righthand 1
postac ma noz w lewej rece a przy
Kod:
cl_righthand 0
w prawej, a standardowo jest na odwrót

Bo ten kod blokuje animację również, a w silniku HL1 domyślnie broń jest w lewej ręce.

tupniecie gdy upadas

Wiedz że kroki też nie.
Odpowiedz

  • +
  • -
Miczu - zdjęcie Miczu 18.11.2008

Oczywista rzecza jest, ze dzwiek ctwin.wav/terwin.wav nie jest przez emita. Emit obsluguje wszystkie dzwieki "przeszczenne", czyli te ktore maja konkretny kierunek wydawania dzwieku. Np. dzwiek udezania noza o cos, jest przestrzenny - jak jestes blisko to mozesz uslyszec gdzie (w jakim kierunku) to sie stalo.

[ Dodano: 18-11-2008, 21:14 ]
##############

Kroki i tupniecia nie, bo jak by sie dobrze nad tym zastanowic to za duzo danych trzeba byloby niepotrzebnie wysylac z serwera, ale:
#include <amxmodx> 
#include <amxmisc> 
#include <fakemeta> 
 
public plugin_init() { 
    register_forward(FM_EmitSound, "block_sound") 
} 
 
public block_sound(entity, channel, const sound[]) { 
     
    client_print(0,print_chat,"%s",sound)
}
i wynik pracy ;-)
Dołączona grafika Tak samo emity to wybuch granatu, dzwiek odbicia sie granatu od przeszkody, dzwieki towarzyszace kumno aminucju, broni, podniesienia broni etc...
Odpowiedz
Zablokowany