2.Biraz araştırma yaptım model içine gömülü olan sesler varmış.Onları nasıl kullanacağız?
3.Elimde bi tane eklenti var silah ateş seslerini csgomoddaki gibi yapıyor.
Kod: Tümünü seç
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <fakemeta_util>
#include <cstrike>
new silahsesler[][][] = {
{CSW_AK47,"weapons/csgo17/ak47-1.wav",4},
{CSW_AUG,"weapons/csgo17/aug-3.wav",4},
{CSW_AWP,"weapons/csgo17/awp_12yn.wav",2},
{CSW_SG552,"weapons/csgo17/sg552-2.wav",4},
{CSW_FAMAS,"weapons/csgo17/famas-2.wav",4},
{CSW_P90,"weapons/csgo17/p90-2.wav",4},
{CSW_MP5NAVY,"weapons/csgo17/mp5-2.wav",4},
{CSW_MAC10,"weapons/csgo17/mac10-1.wav",4},
{CSW_M249,"weapons/csgo17/m249-1.wav",2},
{CSW_GLOCK18,"weapons/csgo17/glock18-12yn.wav",4},
{CSW_GALIL,"weapons/csgo17/galil-2.wav",4},
{CSW_DEAGLE,"weapons/csgo17/deagle_012yn.wav",2},
{CSW_SCOUT,"weapons/csgo17/scout-2.wav",2},
{CSW_UMP45,"weapons/csgo17/ump45-2.wav",4},
{CSW_M3,"weapons/csgo17/m3-2.wav",2},
{CSW_P228,"weapons/csgo17/scout-2.wav",2},
{CSW_XM1014,"weapons/csgo17/xm1014-2.wav",2}
}
new const susturuculuusp[] = "weapons/csgo17/susturuculu/usp-2.wav"
new const susturuculum4a1[] = "weapons/csgo17/susturuculu/m4a1-1.wav"
new const susturucusuzusp[] = "weapons/csgo17/susturucusuz/usp_unsil-1.wav"
new const susturucusuzm4a1[] = "weapons/csgo17/susturucusuz/m4a1_unsil-1.wav"
public plugin_precache(){
for(new i;i<sizeof(silahsesler);i++){
precache_sound(silahsesler[i][1])
}
precache_sound(susturuculuusp)
precache_sound(susturuculum4a1)
precache_sound(susturucusuzusp)
precache_sound(susturucusuzm4a1)
}
public plugin_init(){
RegisterHam(Ham_TraceAttack, "worldspawn", "fw_TraceAttack")
RegisterHam(Ham_TraceAttack, "player", "fw_TraceAttack")
register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1)
register_forward(FM_PlaybackEvent, "fw_PlaybackEvent")
}
public fw_UpdateClientData_Post(id, sendweapons, cd_handle)
{
if(!is_user_alive(id) || !is_user_connected(id))
return FMRES_IGNORED
for(new i;i<sizeof(silahsesler);i++){
if(get_user_weapon(id) == silahsesler[i][0][0])
set_cd(cd_handle, CD_flNextAttack, get_gametime() + 0.001)
}
if(get_user_weapon(id) == CSW_USP)
set_cd(cd_handle, CD_flNextAttack, get_gametime() + 0.001)
if(get_user_weapon(id) == CSW_M4A1)
set_cd(cd_handle, CD_flNextAttack, get_gametime() + 0.001)
return FMRES_HANDLED
}
public fw_PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2)
{
if (!is_user_connected(invoker))
return FMRES_IGNORED
static weapon; weapon = fm_find_ent_by_owner(-1, "weapon_m4a1", invoker)
static weapon2; weapon2 = fm_find_ent_by_owner(-1, "weapon_usp", invoker)
engfunc(EngFunc_PlaybackEvent, flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2)
for(new i;i<sizeof(silahsesler);i++){
if(get_user_weapon(invoker) == silahsesler[i][0][0]){
UTIL_PlayWeaponAnimation(invoker, silahsesler[i][2][0])
emit_sound(invoker, CHAN_WEAPON, silahsesler[i][1], VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
}
}
if(get_user_weapon(invoker) == CSW_M4A1){
if(cs_get_weapon_silen(weapon)){
UTIL_PlayWeaponAnimation(invoker, 2)
emit_sound(invoker, CHAN_WEAPON, susturuculum4a1, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
}else{
UTIL_PlayWeaponAnimation(invoker, 9)
emit_sound(invoker, CHAN_WEAPON, susturucusuzm4a1, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
}
}
if(get_user_weapon(invoker) == CSW_USP){
if(cs_get_weapon_silen(weapon2)){
UTIL_PlayWeaponAnimation(invoker, 2)
emit_sound(invoker, CHAN_WEAPON, susturuculuusp, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
}else{
UTIL_PlayWeaponAnimation(invoker, 10)
emit_sound(invoker, CHAN_WEAPON, susturucusuzusp, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
}
}
return FMRES_SUPERCEDE
}
stock UTIL_PlayWeaponAnimation(const Player, const Sequence)
{
set_pev(Player, pev_weaponanim, Sequence)
message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player)
write_byte(Sequence)
write_byte(pev(Player, pev_body))
message_end()
}
public fw_TraceAttack(Victim, Attacker, Float:Damage, Float:Direction[3], Ptr, DamageBits)
{
static Float:flEnd[3], Float:vecPlane[3]
get_tr2(Ptr, TR_vecEndPos, flEnd)
get_tr2(Ptr, TR_vecPlaneNormal, vecPlane)
if(!is_user_alive(Victim))
{
Make_BulletHole(Attacker, flEnd, Damage)
}
return HAM_IGNORED
}
stock Make_BulletHole(id, Float:Origin[3], Float:Damage)
{
static Decal; Decal = random_num(41, 45)
static LoopTime;
if(Damage > 100.0) LoopTime = 2
else LoopTime = 1
for(new i = 0; i < LoopTime; i++)
{
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_WORLDDECAL)
engfunc(EngFunc_WriteCoord, Origin[0])
engfunc(EngFunc_WriteCoord, Origin[1])
engfunc(EngFunc_WriteCoord, Origin[2])
write_byte(Decal)
message_end()
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_GUNSHOTDECAL)
engfunc(EngFunc_WriteCoord, Origin[0])
engfunc(EngFunc_WriteCoord, Origin[1])
engfunc(EngFunc_WriteCoord, Origin[2])
write_short(id)
write_byte(Decal)
message_end()
}
}
Anladığım bu eklentiye ekstradan sesler eklenebiliyor mesela serverdeki ak-47 skini üzerinden örnek vercem.Sondaki 4 sayısı modelin animasyonlarından 4.cüsünü değiştiriyor.

Konu biraz karışık oldu inşallah anlamışsınızdır.