Yardimci olursaniz tek tek ugrasabilirimThe Professiona͏l yazdı:Bakıyorumda herkes bilmediği bir konuda hoca kesilmiş...
Silahın atış sesleri hariç diğer sesleri degiştirilebilir fakat atış sesleri degiştirilemez.. Modelin .qc dosyasına atış sesi eklemeye kalkarsanız eklediğiniz ses ile orjinal ses aynı anda cikar ve sesler karışır... Bunun yanında pazeenin dediği gibi eklenti ile tek tek tıpkı bir ekstra item silahı gibi ayarlanabilir bu da uğraştırır...
Silah ses...
Moderatör: Moderatörler
Forum kuralları
[font size=20] DİKKAT [/font]
Silinmiş konu içerikleri hiçbir şekilde kontrol edlimemektedir. İndirdiğiniz dosyaların sorumluluğu tamamiyle size aittir.
Mutlaka indirdiğiniz dosyaları antivirüs ile taratınız.
[font size=20] DİKKAT [/font]
Silinmiş konu içerikleri hiçbir şekilde kontrol edlimemektedir. İndirdiğiniz dosyaların sorumluluğu tamamiyle size aittir.
Mutlaka indirdiğiniz dosyaları antivirüs ile taratınız.
-
Konu Sahibi - Mesajlar: 429
- Kayıt: Çrş Şub 01, 2017 3:42 pm
Silah ses...
Link: | |
Linklerini gizle |
-
- Mesajlar: 1761
- Kayıt: Çrş Şub 22, 2017 11:28 pm
- Konum: Istanbul
- Server Ip/DNS: Cs.teknoklan.com
- Clan İsmi: TeknoKlan
- İletişim:
Silah ses...
@TunnS[C] telefondayim senin ekstra silahlarindan 1 tane atarsan arkadasa ornek olabilir..
Tesekkurler
Tesekkurler
Link: | |
Linklerini gizle |
-
Konu Sahibi - Mesajlar: 429
- Kayıt: Çrş Şub 01, 2017 3:42 pm
Silah ses...
Demek istediginiz sey extra item pluginlerimi orda modelini sesini tek tek ayarlicaz plugin gibi her silah icinPaZee yazdı:@TunnS[C] telefondayim senin ekstra silahlarindan 1 tane atarsan arkadasa ornek olabilir..
Tesekkurler
Link: | |
Linklerini gizle |
-
- Mesajlar: 3971
- Kayıt: Prş Oca 05, 2017 12:38 pm
- Konum: Ordu
- Server Ip/DNS: 213.238.173.78
- Clan İsmi: CapitaLL |
- İletişim:
Silah ses...
Olurmu ?PaZee yazdı:@TunnS[C] telefondayim senin ekstra silahlarindan 1 tane atarsan arkadasa ornek olabilir..
Tesekkurler
Bu mesaja eklenen dosyaları görüntülemek için gerekli izinlere sahip değilsiniz.
Link: | |
Linklerini gizle |
Silah ses...
The Professiona͏l yazdı:Bakıyorumda herkes bilmediği bir konuda hoca kesilmiş...
Silahın atış sesleri hariç diğer sesleri degiştirilebilir fakat atış sesleri degiştirilemez.. Modelin .qc dosyasına atış sesi eklemeye kalkarsanız eklediğiniz ses ile orjinal ses aynı anda cikar ve sesler karışır... Bunun yanında pazeenin dediği gibi eklenti ile tek tek tıpkı bir ekstra item silahı gibi ayarlanabilir bu da uğraştırır...

Link: | |
Linklerini gizle |
-
- Mesajlar: 1761
- Kayıt: Çrş Şub 22, 2017 11:28 pm
- Konum: Istanbul
- Server Ip/DNS: Cs.teknoklan.com
- Clan İsmi: TeknoKlan
- İletişim:
Silah ses...
Ben eve gidince gerekli ayarlari yapip yanlarina not birakicam editlemesini yaparsin.
Link: | |
Linklerini gizle |
-
Konu Sahibi - Mesajlar: 429
- Kayıt: Çrş Şub 01, 2017 3:42 pm
Silah ses...
tşkler saolunPaZee yazdı:Ben eve gidince gerekli ayarlari yapip yanlarina not birakicam editlemesini yaparsin.
Link: | |
Linklerini gizle |
-
- Mesajlar: 1761
- Kayıt: Çrş Şub 22, 2017 11:28 pm
- Konum: Istanbul
- Server Ip/DNS: Cs.teknoklan.com
- Clan İsmi: TeknoKlan
- İletişim:
Silah ses...
buyur dene.
ANIM yeri biraz kafani karistiracak diger arkadaslara sorarsin olmadi umarim aciklayici anlatmisindir baktik anlamadin daha detayli anlatirim pek zamanim yok. iyi oyunlar
Kod: Tümünü seç
#include <amxmodx>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <cstrike>
#include <colorchat>
// yaptigim ayarlar m4a1 ayarlari hasarini ellemedim. Buyuk ihtimal m4a1 kendi akisiyla olmayacak . scsini felan yaptik ama bakicaz.
#define PLUGIN "M4a1-III"
#define VERSION "1.0"
#define AUTHOR "Dias & Optimist"
#define V_MODEL "models/v_m4a1.mdl" // Oyuncunun gorecegi model
#define P_MODEL "models/p_m4a1.mdl" // disardan biri oyuncunun elinde gorecegi model
#define W_MODEL "models/w_m4a1.mdl" // dunyada yerde gozukucek model
#define DAMAGE 30 // hasari
#define BPAMMO 240 // mermisi
#define ACTIVE_CLIP 15
#define CSW_M4A13 CSW_MP5NAVY
#define weapon_m4a13 "weapon_mp5navy"
#define WEAPON_SECRETCODE 4962
#define WEAPON_EVENT "events/m4a1.sc"
#define OLD_W_MODEL "models/w_m4a1.mdl"
new const M4a13_Sounds[6][] =
{
"weapons/balrig3-1.wav", // sesleri kendin ayarlarsin
"weapons/balrig3-2.wav",
"weapons/balrig3_boltpull.wav",
"weapons/balrig3_clipin.wav",
"weapons/balrig3_clipout.wav",
"weapons/balrig3_draw.wav"
}
#define EXPLOSE_SPR "sprites/rifle_smoke1.spr" // silah ucundan cikacak efekt
enum
{
ANIM_IDLE = 0, // HLMW ile yapacagin silahin dosyasini ac efe sequanceye bas animation sequancenin altinda idle felan yazar ne yaziyorsa buraya ANIM_IDLE yaz diyelim ismi ATES1 Buraya ANIM_ATES1 yaz butun
ANIM_DRAW, // silahi baska mermi cekme efekti yeni bir efekt ekleme sadece burdakilere gore silahtaki efektleri sec ctrlf degistir ANIM_DRAW ve butun smadaki ANIM_DRAW lari kendi hlmvde yazanla degistir yoksa akisi bozar ve sv coker.
ANIM_RELOAD, // silah degistirme
ANIM_SHOOT1, // ates 1
ANIM_SHOOT2 // ates 2
}
new g_Had_M4a13[33], g_Shoot_Special[33], g_Holding_Attack[33], g_Shoot_Count[33], g_Old_Weapon[33], g_Current_Weapon[33]
new g_Exp_SprId, g_m4a13_event, g_ShellId, g_SmokePuff_SprId, cvar_m4a1_fiyat
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("CurWeapon", "Event_CurWeapon", "be", "1=1")
register_event("HLTV", "YeniTur", "a", "1=0", "2=0")
register_clcmd("say /m4a1","bio_extra_item_selected")
register_clcmd("say_team /m4a1","bio_extra_item_selected")
register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1)
register_forward(FM_PlaybackEvent, "fw_PlaybackEvent")
register_forward(FM_SetModel, "fw_SetModel")
register_forward(FM_CmdStart, "fw_CmdStart")
RegisterHam(Ham_TraceAttack, "worldspawn", "fw_TraceAttack")
RegisterHam(Ham_TraceAttack, "player", "fw_TraceAttack")
RegisterHam(Ham_Weapon_PrimaryAttack, weapon_m4a13, "fw_Weapon_PrimaryAttack")
RegisterHam(Ham_Weapon_PrimaryAttack, weapon_m4a13, "fw_Weapon_PrimaryAttack_Post", 1)
RegisterHam(Ham_Item_AddToPlayer, weapon_m4a13, "fw_Item_AddToPlayer_Post", 1)
cvar_m4a1_fiyat = register_cvar("bio_m4a1_fiyat", "16000") // alacaklari para degerini gir.
}
public plugin_precache()
{
engfunc(EngFunc_PrecacheModel, V_MODEL)
engfunc(EngFunc_PrecacheModel, P_MODEL)
engfunc(EngFunc_PrecacheModel, W_MODEL)
for(new i = 0; i < sizeof(M4a13_Sounds); i++)
engfunc(EngFunc_PrecacheSound, M4a13_Sounds[i])
g_Exp_SprId = engfunc(EngFunc_PrecacheModel, EXPLOSE_SPR)
g_SmokePuff_SprId = engfunc(EngFunc_PrecacheModel, "sprites/wall_puff1.spr")
g_ShellId = engfunc(EngFunc_PrecacheModel, "models/pshell.mdl")
register_forward(FM_PrecacheEvent, "fw_PrecacheEvent_Post", 1)
}
public fw_PrecacheEvent_Post(type, const name[])
{
if(equal(WEAPON_EVENT, name))
g_m4a13_event = get_orig_retval()
}
public YeniTur() {
new players[32],inum;
get_players(players,inum)
for(new id;id<inum;id++) {
g_Had_M4a13[id] = 0
}
}
public bio_extra_item_selected(id, itemid) {
if (!is_user_alive(id)) {
ColorChat(id,NORMAL,"^4[Ses]:^1 ^3M4a1 Silahini^1 Alamabilmek Icin ^4Hayatta Olmaniz^1 Gereklidir.!")
return PLUGIN_HANDLED
}
new para = cs_get_user_money(id)
if (para >= get_pcvar_num(cvar_m4a1_fiyat)){
cs_set_user_money(id, para - get_pcvar_num(cvar_m4a1_fiyat))
Get_M4a13(id)
ColorChat(id,NORMAL,"^4[Ses]:^1 ^3M4a1 Silahini^1 Satin Aldiniz.!")
}else {
ColorChat(id,NORMAL,"^4[Ses]:^1 M4a1 Silahini Almak Icin ^4Yeterli Paraniz^1 Yok. ^4Silahin Degeri: ^1^3%d^1 TL ", get_pcvar_num(cvar_m4a1_fiyat))
}
return PLUGIN_HANDLED
}
public event_infect(id) Remove_M4a13(id)
public Get_M4a13(id) {
if(!is_user_alive(id))
return
g_Had_M4a13[id] = 1
g_Shoot_Special[id] = 0
g_Holding_Attack[id] = 0
g_Shoot_Count[id] = 0
fm_give_item(id, weapon_m4a13)
cs_set_user_bpammo(id, CSW_M4A13, BPAMMO)
}
public Remove_M4a13(id) {
if(!is_user_connected(id))
return
g_Had_M4a13[id] = 0
g_Shoot_Special[id] = 0
}
public Event_CurWeapon(id) {
if(!is_user_alive(id))
return
if(get_user_weapon(id) != g_Current_Weapon[id]) g_Current_Weapon[id] = get_user_weapon(id)
if(get_user_weapon(id) == CSW_M4A13 && g_Had_M4a13[id]) {
if(g_Old_Weapon[id] != CSW_M4A13) {
set_pev(id, pev_viewmodel2, V_MODEL)
set_pev(id, pev_weaponmodel2, P_MODEL)
}
}
g_Old_Weapon[id] = get_user_weapon(id)
}
public fw_UpdateClientData_Post(id, sendweapons, cd_handle) {
if(!is_user_alive(id) || !is_user_connected(id))
return FMRES_IGNORED
if(get_user_weapon(id) == CSW_M4A13 && g_Had_M4a13[id])
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
if(get_user_weapon(invoker) != CSW_M4A13 || !g_Had_M4a13[invoker])
return FMRES_IGNORED
if(eventid != g_m4a13_event)
return FMRES_IGNORED
engfunc(EngFunc_PlaybackEvent, flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2)
if(!g_Shoot_Special[invoker] && cs_get_user_bpammo(invoker, CSW_M4A13) > 0) {
g_Shoot_Count[invoker]++
if(g_Shoot_Count[invoker] >= ACTIVE_CLIP) {
g_Shoot_Special[invoker] = 1
static Ent; Ent = fm_get_user_weapon_entity(invoker, CSW_M4A13)
if(pev_valid(Ent)) g_Shoot_Count[invoker] = cs_get_weapon_ammo(Ent)
}
} else if(g_Shoot_Special[invoker]) {
cs_set_user_bpammo(invoker, CSW_M4A13, cs_get_user_bpammo(invoker, CSW_M4A13) - 1)
if(cs_get_user_bpammo(invoker, CSW_M4A13) <= 0) {
g_Shoot_Special[invoker] = 0
g_Shoot_Count[invoker] = 0
}
}
set_weapon_anim(invoker, g_Shoot_Special[invoker] == 1 ? ANIM_SHOOT2 : ANIM_SHOOT1)
emit_sound(invoker, CHAN_WEAPON, g_Shoot_Special[invoker] == 1 ? M4a13_Sounds[1] : M4a13_Sounds[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
Eject_Shell(invoker, g_ShellId, 0.0)
return FMRES_SUPERCEDE
}
public fw_SetModel(entity, model[]) {
if(!pev_valid(entity))
return FMRES_IGNORED
static Classname[32]
pev(entity, pev_classname, Classname, sizeof(Classname))
if(!equal(Classname, "weaponbox"))
return FMRES_IGNORED
static iOwner
iOwner = pev(entity, pev_owner)
if(equal(model, OLD_W_MODEL)) {
static weapon; weapon = fm_find_ent_by_owner(-1, weapon_m4a13, entity)
if(!pev_valid(weapon))
return FMRES_IGNORED;
if(g_Had_M4a13[iOwner]) {
Remove_M4a13(iOwner)
set_pev(weapon, pev_impulse, WEAPON_SECRETCODE)
engfunc(EngFunc_SetModel, entity, W_MODEL)
return FMRES_SUPERCEDE
}
}
return FMRES_IGNORED;
}
public fw_CmdStart(id, uc_handle, seed) {
if(!is_user_alive(id))
return
if(g_Current_Weapon[id] != CSW_M4A13 || !g_Had_M4a13[id])
return
static NewButton; NewButton = get_uc(uc_handle, UC_Buttons)
static OldButton; OldButton = pev(id, pev_oldbuttons)
if(NewButton & IN_ATTACK) {
if(!g_Holding_Attack[id]) g_Holding_Attack[id] = 1
} else if((NewButton & IN_ATTACK2) && !(OldButton & IN_ATTACK2)) {
if(cs_get_user_zoom(id) == 1) cs_set_user_zoom(id, CS_SET_AUGSG552_ZOOM, 1)
else cs_set_user_zoom(id, CS_SET_NO_ZOOM, 1)
} else {
if(OldButton & IN_ATTACK)
{
if(g_Holding_Attack[id])
{
g_Holding_Attack[id] = 0
g_Shoot_Count[id] = 0
g_Shoot_Special[id] = 0
}
}
}
}
public fw_TraceAttack(Victim, Attacker, Float:Damage, Float:Direction[3], Ptr, DamageBits) {
if(!is_user_alive(Attacker))
return HAM_IGNORED
if(get_user_weapon(Attacker) != CSW_M4A13 || !g_Had_M4a13[Attacker])
return HAM_IGNORED
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)
Make_BulletSmoke(Attacker, Ptr)
}
if(g_Shoot_Special[Attacker]) {
Make_M4a1Effect(Attacker, Ptr)
radius_damage(Attacker, flEnd, float(DAMAGE), 96.0)
}
SetHamParamFloat(3, float(DAMAGE))
return HAM_IGNORED
}
public fw_Weapon_PrimaryAttack(Ent) {
if(!pev_valid(Ent))
return
static Id; Id = pev(Ent, pev_owner)
if(!g_Had_M4a13[Id])
return
if(g_Shoot_Special[Id]) set_pdata_float(Ent, 62, 0.4, 4)
else set_pdata_float(Ent, 62, 0.2, 4)
}
public fw_Weapon_PrimaryAttack_Post(Ent) {
if(!pev_valid(Ent))
return
static Id; Id = pev(Ent, pev_owner)
if(!g_Had_M4a13[Id])
return
if(g_Shoot_Special[Id] && cs_get_weapon_ammo(Ent) > 0) {
cs_set_weapon_ammo(Ent, g_Shoot_Count[Id])
set_pdata_float(Ent, 46, get_pdata_float(Ent, 46, 4) * 0.75, 4)
}
}
public fw_Item_AddToPlayer_Post(ent, id) {
if(!pev_valid(ent))
return HAM_IGNORED
if(pev(ent, pev_impulse) == WEAPON_SECRETCODE) {
g_Had_M4a13[id] = 1
set_pev(ent, pev_impulse, 0)
}
return HAM_HANDLED
}
stock Make_BulletHole(id, Float:Origin[3], Float:Damage) {
// Find target
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++) {
// Put decal on "world" (a wall)
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()
// Show sparcles
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()
}
}
public Make_BulletSmoke(id, TrResult) {
static Float:vecSrc[3], Float:vecEnd[3], TE_FLAG
get_weapon_attachment(id, vecSrc)
global_get(glb_v_forward, vecEnd)
xs_vec_mul_scalar(vecEnd, 8192.0, vecEnd)
xs_vec_add(vecSrc, vecEnd, vecEnd)
get_tr2(TrResult, TR_vecEndPos, vecSrc)
get_tr2(TrResult, TR_vecPlaneNormal, vecEnd)
xs_vec_mul_scalar(vecEnd, 2.5, vecEnd)
xs_vec_add(vecSrc, vecEnd, vecEnd)
TE_FLAG |= TE_EXPLFLAG_NODLIGHTS
TE_FLAG |= TE_EXPLFLAG_NOSOUND
TE_FLAG |= TE_EXPLFLAG_NOPARTICLES
engfunc(EngFunc_MessageBegin, MSG_PAS, SVC_TEMPENTITY, vecEnd, 0)
write_byte(TE_EXPLOSION)
engfunc(EngFunc_WriteCoord, vecEnd[0])
engfunc(EngFunc_WriteCoord, vecEnd[1])
engfunc(EngFunc_WriteCoord, vecEnd[2] - 10.0)
write_short(g_SmokePuff_SprId)
write_byte(2)
write_byte(50)
write_byte(TE_FLAG)
message_end()
}
public Make_M4a1Effect(id, TrResult) {
static Float:vecSrc[3], Float:vecEnd[3], TE_FLAG
get_weapon_attachment(id, vecSrc)
global_get(glb_v_forward, vecEnd)
xs_vec_mul_scalar(vecEnd, 8192.0, vecEnd)
xs_vec_add(vecSrc, vecEnd, vecEnd)
get_tr2(TrResult, TR_vecEndPos, vecSrc)
get_tr2(TrResult, TR_vecPlaneNormal, vecEnd)
xs_vec_mul_scalar(vecEnd, 5.0, vecEnd)
xs_vec_add(vecSrc, vecEnd, vecEnd)
TE_FLAG |= TE_EXPLFLAG_NODLIGHTS
TE_FLAG |= TE_EXPLFLAG_NOSOUND
TE_FLAG |= TE_EXPLFLAG_NOPARTICLES
engfunc(EngFunc_MessageBegin, MSG_PAS, SVC_TEMPENTITY, vecEnd, 0)
write_byte(TE_EXPLOSION)
engfunc(EngFunc_WriteCoord, vecEnd[0])
engfunc(EngFunc_WriteCoord, vecEnd[1])
engfunc(EngFunc_WriteCoord, vecEnd[2])
write_short(g_Exp_SprId)
write_byte(5)
write_byte(30)
write_byte(TE_FLAG)
message_end()
}
stock get_weapon_attachment(id, Float:output[3], Float:fDis = 40.0) {
new Float:vfEnd[3], viEnd[3]
get_user_origin(id, viEnd, 3)
IVecFVec(viEnd, vfEnd)
new Float:fOrigin[3], Float:fAngle[3]
pev(id, pev_origin, fOrigin)
pev(id, pev_view_ofs, fAngle)
xs_vec_add(fOrigin, fAngle, fOrigin)
new Float:fAttack[3]
xs_vec_sub(vfEnd, fOrigin, fAttack)
xs_vec_sub(vfEnd, fOrigin, fAttack)
new Float:fRate
fRate = fDis / vector_length(fAttack)
xs_vec_mul_scalar(fAttack, fRate, fAttack)
xs_vec_add(fOrigin, fAttack, output)
}
stock radius_damage(id, Float:Origin[3], Float:Damage, Float:Radius) {
static Victim; Victim = -1
while((Victim = engfunc(EngFunc_FindEntityInSphere, Victim, Origin, Radius)) != 0) {
if(!is_user_alive(Victim) || id == Victim)
continue
ExecuteHamB(Ham_TakeDamage, Victim, fm_get_user_weapon_entity(id, get_user_weapon(id)), id, Damage, DMG_BULLET)
}
}
stock Eject_Shell(id, Shell_ModelIndex, Float:Time) {
static Ent; Ent = get_pdata_cbase(id, 373, 5)
if(!pev_valid(Ent))
return
set_pdata_int(Ent, 57, Shell_ModelIndex, 4)
set_pdata_float(id, 111, get_gametime() + Time)
}
stock set_weapon_anim(id, anim) {
if(!is_user_alive(id))
return
set_pev(id, pev_weaponanim, anim)
message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, {0, 0, 0}, id)
write_byte(anim)
write_byte(pev(id, pev_body))
message_end()
}
ANIM yeri biraz kafani karistiracak diger arkadaslara sorarsin olmadi umarim aciklayici anlatmisindir baktik anlamadin daha detayli anlatirim pek zamanim yok. iyi oyunlar
Link: | |
Linklerini gizle |
-
- Mesajlar: 149
- Kayıt: Pzt Eki 15, 2018 5:58 pm
- Konum: Angara
- Server Ip/DNS: 213.238.173.17
- Clan İsmi: LiekabLe* > Pro
Silah ses...
denendimi bu konu sahibi bilgi verebilirmiPaZee yazdı: Pzt Mar 13, 2017 4:53 pm buyur dene.
Kod: Tümünü seç
#include <amxmodx> #include <fakemeta> #include <fakemeta_util> #include <hamsandwich> #include <cstrike> #include <colorchat> // yaptigim ayarlar m4a1 ayarlari hasarini ellemedim. Buyuk ihtimal m4a1 kendi akisiyla olmayacak . scsini felan yaptik ama bakicaz. #define PLUGIN "M4a1-III" #define VERSION "1.0" #define AUTHOR "Dias & Optimist" #define V_MODEL "models/v_m4a1.mdl" // Oyuncunun gorecegi model #define P_MODEL "models/p_m4a1.mdl" // disardan biri oyuncunun elinde gorecegi model #define W_MODEL "models/w_m4a1.mdl" // dunyada yerde gozukucek model #define DAMAGE 30 // hasari #define BPAMMO 240 // mermisi #define ACTIVE_CLIP 15 #define CSW_M4A13 CSW_MP5NAVY #define weapon_m4a13 "weapon_mp5navy" #define WEAPON_SECRETCODE 4962 #define WEAPON_EVENT "events/m4a1.sc" #define OLD_W_MODEL "models/w_m4a1.mdl" new const M4a13_Sounds[6][] = { "weapons/balrig3-1.wav", // sesleri kendin ayarlarsin "weapons/balrig3-2.wav", "weapons/balrig3_boltpull.wav", "weapons/balrig3_clipin.wav", "weapons/balrig3_clipout.wav", "weapons/balrig3_draw.wav" } #define EXPLOSE_SPR "sprites/rifle_smoke1.spr" // silah ucundan cikacak efekt enum { ANIM_IDLE = 0, // HLMW ile yapacagin silahin dosyasini ac efe sequanceye bas animation sequancenin altinda idle felan yazar ne yaziyorsa buraya ANIM_IDLE yaz diyelim ismi ATES1 Buraya ANIM_ATES1 yaz butun ANIM_DRAW, // silahi baska mermi cekme efekti yeni bir efekt ekleme sadece burdakilere gore silahtaki efektleri sec ctrlf degistir ANIM_DRAW ve butun smadaki ANIM_DRAW lari kendi hlmvde yazanla degistir yoksa akisi bozar ve sv coker. ANIM_RELOAD, // silah degistirme ANIM_SHOOT1, // ates 1 ANIM_SHOOT2 // ates 2 } new g_Had_M4a13[33], g_Shoot_Special[33], g_Holding_Attack[33], g_Shoot_Count[33], g_Old_Weapon[33], g_Current_Weapon[33] new g_Exp_SprId, g_m4a13_event, g_ShellId, g_SmokePuff_SprId, cvar_m4a1_fiyat public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_event("CurWeapon", "Event_CurWeapon", "be", "1=1") register_event("HLTV", "YeniTur", "a", "1=0", "2=0") register_clcmd("say /m4a1","bio_extra_item_selected") register_clcmd("say_team /m4a1","bio_extra_item_selected") register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1) register_forward(FM_PlaybackEvent, "fw_PlaybackEvent") register_forward(FM_SetModel, "fw_SetModel") register_forward(FM_CmdStart, "fw_CmdStart") RegisterHam(Ham_TraceAttack, "worldspawn", "fw_TraceAttack") RegisterHam(Ham_TraceAttack, "player", "fw_TraceAttack") RegisterHam(Ham_Weapon_PrimaryAttack, weapon_m4a13, "fw_Weapon_PrimaryAttack") RegisterHam(Ham_Weapon_PrimaryAttack, weapon_m4a13, "fw_Weapon_PrimaryAttack_Post", 1) RegisterHam(Ham_Item_AddToPlayer, weapon_m4a13, "fw_Item_AddToPlayer_Post", 1) cvar_m4a1_fiyat = register_cvar("bio_m4a1_fiyat", "16000") // alacaklari para degerini gir. } public plugin_precache() { engfunc(EngFunc_PrecacheModel, V_MODEL) engfunc(EngFunc_PrecacheModel, P_MODEL) engfunc(EngFunc_PrecacheModel, W_MODEL) for(new i = 0; i < sizeof(M4a13_Sounds); i++) engfunc(EngFunc_PrecacheSound, M4a13_Sounds[i]) g_Exp_SprId = engfunc(EngFunc_PrecacheModel, EXPLOSE_SPR) g_SmokePuff_SprId = engfunc(EngFunc_PrecacheModel, "sprites/wall_puff1.spr") g_ShellId = engfunc(EngFunc_PrecacheModel, "models/pshell.mdl") register_forward(FM_PrecacheEvent, "fw_PrecacheEvent_Post", 1) } public fw_PrecacheEvent_Post(type, const name[]) { if(equal(WEAPON_EVENT, name)) g_m4a13_event = get_orig_retval() } public YeniTur() { new players[32],inum; get_players(players,inum) for(new id;id<inum;id++) { g_Had_M4a13[id] = 0 } } public bio_extra_item_selected(id, itemid) { if (!is_user_alive(id)) { ColorChat(id,NORMAL,"^4[Ses]:^1 ^3M4a1 Silahini^1 Alamabilmek Icin ^4Hayatta Olmaniz^1 Gereklidir.!") return PLUGIN_HANDLED } new para = cs_get_user_money(id) if (para >= get_pcvar_num(cvar_m4a1_fiyat)){ cs_set_user_money(id, para - get_pcvar_num(cvar_m4a1_fiyat)) Get_M4a13(id) ColorChat(id,NORMAL,"^4[Ses]:^1 ^3M4a1 Silahini^1 Satin Aldiniz.!") }else { ColorChat(id,NORMAL,"^4[Ses]:^1 M4a1 Silahini Almak Icin ^4Yeterli Paraniz^1 Yok. ^4Silahin Degeri: ^1^3%d^1 TL ", get_pcvar_num(cvar_m4a1_fiyat)) } return PLUGIN_HANDLED } public event_infect(id) Remove_M4a13(id) public Get_M4a13(id) { if(!is_user_alive(id)) return g_Had_M4a13[id] = 1 g_Shoot_Special[id] = 0 g_Holding_Attack[id] = 0 g_Shoot_Count[id] = 0 fm_give_item(id, weapon_m4a13) cs_set_user_bpammo(id, CSW_M4A13, BPAMMO) } public Remove_M4a13(id) { if(!is_user_connected(id)) return g_Had_M4a13[id] = 0 g_Shoot_Special[id] = 0 } public Event_CurWeapon(id) { if(!is_user_alive(id)) return if(get_user_weapon(id) != g_Current_Weapon[id]) g_Current_Weapon[id] = get_user_weapon(id) if(get_user_weapon(id) == CSW_M4A13 && g_Had_M4a13[id]) { if(g_Old_Weapon[id] != CSW_M4A13) { set_pev(id, pev_viewmodel2, V_MODEL) set_pev(id, pev_weaponmodel2, P_MODEL) } } g_Old_Weapon[id] = get_user_weapon(id) } public fw_UpdateClientData_Post(id, sendweapons, cd_handle) { if(!is_user_alive(id) || !is_user_connected(id)) return FMRES_IGNORED if(get_user_weapon(id) == CSW_M4A13 && g_Had_M4a13[id]) 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 if(get_user_weapon(invoker) != CSW_M4A13 || !g_Had_M4a13[invoker]) return FMRES_IGNORED if(eventid != g_m4a13_event) return FMRES_IGNORED engfunc(EngFunc_PlaybackEvent, flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2) if(!g_Shoot_Special[invoker] && cs_get_user_bpammo(invoker, CSW_M4A13) > 0) { g_Shoot_Count[invoker]++ if(g_Shoot_Count[invoker] >= ACTIVE_CLIP) { g_Shoot_Special[invoker] = 1 static Ent; Ent = fm_get_user_weapon_entity(invoker, CSW_M4A13) if(pev_valid(Ent)) g_Shoot_Count[invoker] = cs_get_weapon_ammo(Ent) } } else if(g_Shoot_Special[invoker]) { cs_set_user_bpammo(invoker, CSW_M4A13, cs_get_user_bpammo(invoker, CSW_M4A13) - 1) if(cs_get_user_bpammo(invoker, CSW_M4A13) <= 0) { g_Shoot_Special[invoker] = 0 g_Shoot_Count[invoker] = 0 } } set_weapon_anim(invoker, g_Shoot_Special[invoker] == 1 ? ANIM_SHOOT2 : ANIM_SHOOT1) emit_sound(invoker, CHAN_WEAPON, g_Shoot_Special[invoker] == 1 ? M4a13_Sounds[1] : M4a13_Sounds[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM) Eject_Shell(invoker, g_ShellId, 0.0) return FMRES_SUPERCEDE } public fw_SetModel(entity, model[]) { if(!pev_valid(entity)) return FMRES_IGNORED static Classname[32] pev(entity, pev_classname, Classname, sizeof(Classname)) if(!equal(Classname, "weaponbox")) return FMRES_IGNORED static iOwner iOwner = pev(entity, pev_owner) if(equal(model, OLD_W_MODEL)) { static weapon; weapon = fm_find_ent_by_owner(-1, weapon_m4a13, entity) if(!pev_valid(weapon)) return FMRES_IGNORED; if(g_Had_M4a13[iOwner]) { Remove_M4a13(iOwner) set_pev(weapon, pev_impulse, WEAPON_SECRETCODE) engfunc(EngFunc_SetModel, entity, W_MODEL) return FMRES_SUPERCEDE } } return FMRES_IGNORED; } public fw_CmdStart(id, uc_handle, seed) { if(!is_user_alive(id)) return if(g_Current_Weapon[id] != CSW_M4A13 || !g_Had_M4a13[id]) return static NewButton; NewButton = get_uc(uc_handle, UC_Buttons) static OldButton; OldButton = pev(id, pev_oldbuttons) if(NewButton & IN_ATTACK) { if(!g_Holding_Attack[id]) g_Holding_Attack[id] = 1 } else if((NewButton & IN_ATTACK2) && !(OldButton & IN_ATTACK2)) { if(cs_get_user_zoom(id) == 1) cs_set_user_zoom(id, CS_SET_AUGSG552_ZOOM, 1) else cs_set_user_zoom(id, CS_SET_NO_ZOOM, 1) } else { if(OldButton & IN_ATTACK) { if(g_Holding_Attack[id]) { g_Holding_Attack[id] = 0 g_Shoot_Count[id] = 0 g_Shoot_Special[id] = 0 } } } } public fw_TraceAttack(Victim, Attacker, Float:Damage, Float:Direction[3], Ptr, DamageBits) { if(!is_user_alive(Attacker)) return HAM_IGNORED if(get_user_weapon(Attacker) != CSW_M4A13 || !g_Had_M4a13[Attacker]) return HAM_IGNORED 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) Make_BulletSmoke(Attacker, Ptr) } if(g_Shoot_Special[Attacker]) { Make_M4a1Effect(Attacker, Ptr) radius_damage(Attacker, flEnd, float(DAMAGE), 96.0) } SetHamParamFloat(3, float(DAMAGE)) return HAM_IGNORED } public fw_Weapon_PrimaryAttack(Ent) { if(!pev_valid(Ent)) return static Id; Id = pev(Ent, pev_owner) if(!g_Had_M4a13[Id]) return if(g_Shoot_Special[Id]) set_pdata_float(Ent, 62, 0.4, 4) else set_pdata_float(Ent, 62, 0.2, 4) } public fw_Weapon_PrimaryAttack_Post(Ent) { if(!pev_valid(Ent)) return static Id; Id = pev(Ent, pev_owner) if(!g_Had_M4a13[Id]) return if(g_Shoot_Special[Id] && cs_get_weapon_ammo(Ent) > 0) { cs_set_weapon_ammo(Ent, g_Shoot_Count[Id]) set_pdata_float(Ent, 46, get_pdata_float(Ent, 46, 4) * 0.75, 4) } } public fw_Item_AddToPlayer_Post(ent, id) { if(!pev_valid(ent)) return HAM_IGNORED if(pev(ent, pev_impulse) == WEAPON_SECRETCODE) { g_Had_M4a13[id] = 1 set_pev(ent, pev_impulse, 0) } return HAM_HANDLED } stock Make_BulletHole(id, Float:Origin[3], Float:Damage) { // Find target 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++) { // Put decal on "world" (a wall) 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() // Show sparcles 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() } } public Make_BulletSmoke(id, TrResult) { static Float:vecSrc[3], Float:vecEnd[3], TE_FLAG get_weapon_attachment(id, vecSrc) global_get(glb_v_forward, vecEnd) xs_vec_mul_scalar(vecEnd, 8192.0, vecEnd) xs_vec_add(vecSrc, vecEnd, vecEnd) get_tr2(TrResult, TR_vecEndPos, vecSrc) get_tr2(TrResult, TR_vecPlaneNormal, vecEnd) xs_vec_mul_scalar(vecEnd, 2.5, vecEnd) xs_vec_add(vecSrc, vecEnd, vecEnd) TE_FLAG |= TE_EXPLFLAG_NODLIGHTS TE_FLAG |= TE_EXPLFLAG_NOSOUND TE_FLAG |= TE_EXPLFLAG_NOPARTICLES engfunc(EngFunc_MessageBegin, MSG_PAS, SVC_TEMPENTITY, vecEnd, 0) write_byte(TE_EXPLOSION) engfunc(EngFunc_WriteCoord, vecEnd[0]) engfunc(EngFunc_WriteCoord, vecEnd[1]) engfunc(EngFunc_WriteCoord, vecEnd[2] - 10.0) write_short(g_SmokePuff_SprId) write_byte(2) write_byte(50) write_byte(TE_FLAG) message_end() } public Make_M4a1Effect(id, TrResult) { static Float:vecSrc[3], Float:vecEnd[3], TE_FLAG get_weapon_attachment(id, vecSrc) global_get(glb_v_forward, vecEnd) xs_vec_mul_scalar(vecEnd, 8192.0, vecEnd) xs_vec_add(vecSrc, vecEnd, vecEnd) get_tr2(TrResult, TR_vecEndPos, vecSrc) get_tr2(TrResult, TR_vecPlaneNormal, vecEnd) xs_vec_mul_scalar(vecEnd, 5.0, vecEnd) xs_vec_add(vecSrc, vecEnd, vecEnd) TE_FLAG |= TE_EXPLFLAG_NODLIGHTS TE_FLAG |= TE_EXPLFLAG_NOSOUND TE_FLAG |= TE_EXPLFLAG_NOPARTICLES engfunc(EngFunc_MessageBegin, MSG_PAS, SVC_TEMPENTITY, vecEnd, 0) write_byte(TE_EXPLOSION) engfunc(EngFunc_WriteCoord, vecEnd[0]) engfunc(EngFunc_WriteCoord, vecEnd[1]) engfunc(EngFunc_WriteCoord, vecEnd[2]) write_short(g_Exp_SprId) write_byte(5) write_byte(30) write_byte(TE_FLAG) message_end() } stock get_weapon_attachment(id, Float:output[3], Float:fDis = 40.0) { new Float:vfEnd[3], viEnd[3] get_user_origin(id, viEnd, 3) IVecFVec(viEnd, vfEnd) new Float:fOrigin[3], Float:fAngle[3] pev(id, pev_origin, fOrigin) pev(id, pev_view_ofs, fAngle) xs_vec_add(fOrigin, fAngle, fOrigin) new Float:fAttack[3] xs_vec_sub(vfEnd, fOrigin, fAttack) xs_vec_sub(vfEnd, fOrigin, fAttack) new Float:fRate fRate = fDis / vector_length(fAttack) xs_vec_mul_scalar(fAttack, fRate, fAttack) xs_vec_add(fOrigin, fAttack, output) } stock radius_damage(id, Float:Origin[3], Float:Damage, Float:Radius) { static Victim; Victim = -1 while((Victim = engfunc(EngFunc_FindEntityInSphere, Victim, Origin, Radius)) != 0) { if(!is_user_alive(Victim) || id == Victim) continue ExecuteHamB(Ham_TakeDamage, Victim, fm_get_user_weapon_entity(id, get_user_weapon(id)), id, Damage, DMG_BULLET) } } stock Eject_Shell(id, Shell_ModelIndex, Float:Time) { static Ent; Ent = get_pdata_cbase(id, 373, 5) if(!pev_valid(Ent)) return set_pdata_int(Ent, 57, Shell_ModelIndex, 4) set_pdata_float(id, 111, get_gametime() + Time) } stock set_weapon_anim(id, anim) { if(!is_user_alive(id)) return set_pev(id, pev_weaponanim, anim) message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, {0, 0, 0}, id) write_byte(anim) write_byte(pev(id, pev_body)) message_end() }
ANIM yeri biraz kafani karistiracak diger arkadaslara sorarsin olmadi umarim aciklayici anlatmisindir baktik anlamadin daha detayli anlatirim pek zamanim yok. iyi oyunlar
Link: | |
Linklerini gizle |
-
- Mesajlar: 2368
- Kayıt: Sal Oca 26, 2016 3:54 pm
- Konum: Samsun
- Clan İsmi: -
- İletişim:
Silah ses...
2 yıl geçmiş ama pazee yazdıysa çalışmıştırMenedit yazdı: Pzt Mar 11, 2019 11:54 amdenendimi bu konu sahibi bilgi verebilirmiPaZee yazdı: Pzt Mar 13, 2017 4:53 pm buyur dene.
Kod: Tümünü seç
#include <amxmodx> #include <fakemeta> #include <fakemeta_util> #include <hamsandwich> #include <cstrike> #include <colorchat> // yaptigim ayarlar m4a1 ayarlari hasarini ellemedim. Buyuk ihtimal m4a1 kendi akisiyla olmayacak . scsini felan yaptik ama bakicaz. #define PLUGIN "M4a1-III" #define VERSION "1.0" #define AUTHOR "Dias & Optimist" #define V_MODEL "models/v_m4a1.mdl" // Oyuncunun gorecegi model #define P_MODEL "models/p_m4a1.mdl" // disardan biri oyuncunun elinde gorecegi model #define W_MODEL "models/w_m4a1.mdl" // dunyada yerde gozukucek model #define DAMAGE 30 // hasari #define BPAMMO 240 // mermisi #define ACTIVE_CLIP 15 #define CSW_M4A13 CSW_MP5NAVY #define weapon_m4a13 "weapon_mp5navy" #define WEAPON_SECRETCODE 4962 #define WEAPON_EVENT "events/m4a1.sc" #define OLD_W_MODEL "models/w_m4a1.mdl" new const M4a13_Sounds[6][] = { "weapons/balrig3-1.wav", // sesleri kendin ayarlarsin "weapons/balrig3-2.wav", "weapons/balrig3_boltpull.wav", "weapons/balrig3_clipin.wav", "weapons/balrig3_clipout.wav", "weapons/balrig3_draw.wav" } #define EXPLOSE_SPR "sprites/rifle_smoke1.spr" // silah ucundan cikacak efekt enum { ANIM_IDLE = 0, // HLMW ile yapacagin silahin dosyasini ac efe sequanceye bas animation sequancenin altinda idle felan yazar ne yaziyorsa buraya ANIM_IDLE yaz diyelim ismi ATES1 Buraya ANIM_ATES1 yaz butun ANIM_DRAW, // silahi baska mermi cekme efekti yeni bir efekt ekleme sadece burdakilere gore silahtaki efektleri sec ctrlf degistir ANIM_DRAW ve butun smadaki ANIM_DRAW lari kendi hlmvde yazanla degistir yoksa akisi bozar ve sv coker. ANIM_RELOAD, // silah degistirme ANIM_SHOOT1, // ates 1 ANIM_SHOOT2 // ates 2 } new g_Had_M4a13[33], g_Shoot_Special[33], g_Holding_Attack[33], g_Shoot_Count[33], g_Old_Weapon[33], g_Current_Weapon[33] new g_Exp_SprId, g_m4a13_event, g_ShellId, g_SmokePuff_SprId, cvar_m4a1_fiyat public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_event("CurWeapon", "Event_CurWeapon", "be", "1=1") register_event("HLTV", "YeniTur", "a", "1=0", "2=0") register_clcmd("say /m4a1","bio_extra_item_selected") register_clcmd("say_team /m4a1","bio_extra_item_selected") register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1) register_forward(FM_PlaybackEvent, "fw_PlaybackEvent") register_forward(FM_SetModel, "fw_SetModel") register_forward(FM_CmdStart, "fw_CmdStart") RegisterHam(Ham_TraceAttack, "worldspawn", "fw_TraceAttack") RegisterHam(Ham_TraceAttack, "player", "fw_TraceAttack") RegisterHam(Ham_Weapon_PrimaryAttack, weapon_m4a13, "fw_Weapon_PrimaryAttack") RegisterHam(Ham_Weapon_PrimaryAttack, weapon_m4a13, "fw_Weapon_PrimaryAttack_Post", 1) RegisterHam(Ham_Item_AddToPlayer, weapon_m4a13, "fw_Item_AddToPlayer_Post", 1) cvar_m4a1_fiyat = register_cvar("bio_m4a1_fiyat", "16000") // alacaklari para degerini gir. } public plugin_precache() { engfunc(EngFunc_PrecacheModel, V_MODEL) engfunc(EngFunc_PrecacheModel, P_MODEL) engfunc(EngFunc_PrecacheModel, W_MODEL) for(new i = 0; i < sizeof(M4a13_Sounds); i++) engfunc(EngFunc_PrecacheSound, M4a13_Sounds[i]) g_Exp_SprId = engfunc(EngFunc_PrecacheModel, EXPLOSE_SPR) g_SmokePuff_SprId = engfunc(EngFunc_PrecacheModel, "sprites/wall_puff1.spr") g_ShellId = engfunc(EngFunc_PrecacheModel, "models/pshell.mdl") register_forward(FM_PrecacheEvent, "fw_PrecacheEvent_Post", 1) } public fw_PrecacheEvent_Post(type, const name[]) { if(equal(WEAPON_EVENT, name)) g_m4a13_event = get_orig_retval() } public YeniTur() { new players[32],inum; get_players(players,inum) for(new id;id<inum;id++) { g_Had_M4a13[id] = 0 } } public bio_extra_item_selected(id, itemid) { if (!is_user_alive(id)) { ColorChat(id,NORMAL,"^4[Ses]:^1 ^3M4a1 Silahini^1 Alamabilmek Icin ^4Hayatta Olmaniz^1 Gereklidir.!") return PLUGIN_HANDLED } new para = cs_get_user_money(id) if (para >= get_pcvar_num(cvar_m4a1_fiyat)){ cs_set_user_money(id, para - get_pcvar_num(cvar_m4a1_fiyat)) Get_M4a13(id) ColorChat(id,NORMAL,"^4[Ses]:^1 ^3M4a1 Silahini^1 Satin Aldiniz.!") }else { ColorChat(id,NORMAL,"^4[Ses]:^1 M4a1 Silahini Almak Icin ^4Yeterli Paraniz^1 Yok. ^4Silahin Degeri: ^1^3%d^1 TL ", get_pcvar_num(cvar_m4a1_fiyat)) } return PLUGIN_HANDLED } public event_infect(id) Remove_M4a13(id) public Get_M4a13(id) { if(!is_user_alive(id)) return g_Had_M4a13[id] = 1 g_Shoot_Special[id] = 0 g_Holding_Attack[id] = 0 g_Shoot_Count[id] = 0 fm_give_item(id, weapon_m4a13) cs_set_user_bpammo(id, CSW_M4A13, BPAMMO) } public Remove_M4a13(id) { if(!is_user_connected(id)) return g_Had_M4a13[id] = 0 g_Shoot_Special[id] = 0 } public Event_CurWeapon(id) { if(!is_user_alive(id)) return if(get_user_weapon(id) != g_Current_Weapon[id]) g_Current_Weapon[id] = get_user_weapon(id) if(get_user_weapon(id) == CSW_M4A13 && g_Had_M4a13[id]) { if(g_Old_Weapon[id] != CSW_M4A13) { set_pev(id, pev_viewmodel2, V_MODEL) set_pev(id, pev_weaponmodel2, P_MODEL) } } g_Old_Weapon[id] = get_user_weapon(id) } public fw_UpdateClientData_Post(id, sendweapons, cd_handle) { if(!is_user_alive(id) || !is_user_connected(id)) return FMRES_IGNORED if(get_user_weapon(id) == CSW_M4A13 && g_Had_M4a13[id]) 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 if(get_user_weapon(invoker) != CSW_M4A13 || !g_Had_M4a13[invoker]) return FMRES_IGNORED if(eventid != g_m4a13_event) return FMRES_IGNORED engfunc(EngFunc_PlaybackEvent, flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2) if(!g_Shoot_Special[invoker] && cs_get_user_bpammo(invoker, CSW_M4A13) > 0) { g_Shoot_Count[invoker]++ if(g_Shoot_Count[invoker] >= ACTIVE_CLIP) { g_Shoot_Special[invoker] = 1 static Ent; Ent = fm_get_user_weapon_entity(invoker, CSW_M4A13) if(pev_valid(Ent)) g_Shoot_Count[invoker] = cs_get_weapon_ammo(Ent) } } else if(g_Shoot_Special[invoker]) { cs_set_user_bpammo(invoker, CSW_M4A13, cs_get_user_bpammo(invoker, CSW_M4A13) - 1) if(cs_get_user_bpammo(invoker, CSW_M4A13) <= 0) { g_Shoot_Special[invoker] = 0 g_Shoot_Count[invoker] = 0 } } set_weapon_anim(invoker, g_Shoot_Special[invoker] == 1 ? ANIM_SHOOT2 : ANIM_SHOOT1) emit_sound(invoker, CHAN_WEAPON, g_Shoot_Special[invoker] == 1 ? M4a13_Sounds[1] : M4a13_Sounds[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM) Eject_Shell(invoker, g_ShellId, 0.0) return FMRES_SUPERCEDE } public fw_SetModel(entity, model[]) { if(!pev_valid(entity)) return FMRES_IGNORED static Classname[32] pev(entity, pev_classname, Classname, sizeof(Classname)) if(!equal(Classname, "weaponbox")) return FMRES_IGNORED static iOwner iOwner = pev(entity, pev_owner) if(equal(model, OLD_W_MODEL)) { static weapon; weapon = fm_find_ent_by_owner(-1, weapon_m4a13, entity) if(!pev_valid(weapon)) return FMRES_IGNORED; if(g_Had_M4a13[iOwner]) { Remove_M4a13(iOwner) set_pev(weapon, pev_impulse, WEAPON_SECRETCODE) engfunc(EngFunc_SetModel, entity, W_MODEL) return FMRES_SUPERCEDE } } return FMRES_IGNORED; } public fw_CmdStart(id, uc_handle, seed) { if(!is_user_alive(id)) return if(g_Current_Weapon[id] != CSW_M4A13 || !g_Had_M4a13[id]) return static NewButton; NewButton = get_uc(uc_handle, UC_Buttons) static OldButton; OldButton = pev(id, pev_oldbuttons) if(NewButton & IN_ATTACK) { if(!g_Holding_Attack[id]) g_Holding_Attack[id] = 1 } else if((NewButton & IN_ATTACK2) && !(OldButton & IN_ATTACK2)) { if(cs_get_user_zoom(id) == 1) cs_set_user_zoom(id, CS_SET_AUGSG552_ZOOM, 1) else cs_set_user_zoom(id, CS_SET_NO_ZOOM, 1) } else { if(OldButton & IN_ATTACK) { if(g_Holding_Attack[id]) { g_Holding_Attack[id] = 0 g_Shoot_Count[id] = 0 g_Shoot_Special[id] = 0 } } } } public fw_TraceAttack(Victim, Attacker, Float:Damage, Float:Direction[3], Ptr, DamageBits) { if(!is_user_alive(Attacker)) return HAM_IGNORED if(get_user_weapon(Attacker) != CSW_M4A13 || !g_Had_M4a13[Attacker]) return HAM_IGNORED 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) Make_BulletSmoke(Attacker, Ptr) } if(g_Shoot_Special[Attacker]) { Make_M4a1Effect(Attacker, Ptr) radius_damage(Attacker, flEnd, float(DAMAGE), 96.0) } SetHamParamFloat(3, float(DAMAGE)) return HAM_IGNORED } public fw_Weapon_PrimaryAttack(Ent) { if(!pev_valid(Ent)) return static Id; Id = pev(Ent, pev_owner) if(!g_Had_M4a13[Id]) return if(g_Shoot_Special[Id]) set_pdata_float(Ent, 62, 0.4, 4) else set_pdata_float(Ent, 62, 0.2, 4) } public fw_Weapon_PrimaryAttack_Post(Ent) { if(!pev_valid(Ent)) return static Id; Id = pev(Ent, pev_owner) if(!g_Had_M4a13[Id]) return if(g_Shoot_Special[Id] && cs_get_weapon_ammo(Ent) > 0) { cs_set_weapon_ammo(Ent, g_Shoot_Count[Id]) set_pdata_float(Ent, 46, get_pdata_float(Ent, 46, 4) * 0.75, 4) } } public fw_Item_AddToPlayer_Post(ent, id) { if(!pev_valid(ent)) return HAM_IGNORED if(pev(ent, pev_impulse) == WEAPON_SECRETCODE) { g_Had_M4a13[id] = 1 set_pev(ent, pev_impulse, 0) } return HAM_HANDLED } stock Make_BulletHole(id, Float:Origin[3], Float:Damage) { // Find target 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++) { // Put decal on "world" (a wall) 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() // Show sparcles 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() } } public Make_BulletSmoke(id, TrResult) { static Float:vecSrc[3], Float:vecEnd[3], TE_FLAG get_weapon_attachment(id, vecSrc) global_get(glb_v_forward, vecEnd) xs_vec_mul_scalar(vecEnd, 8192.0, vecEnd) xs_vec_add(vecSrc, vecEnd, vecEnd) get_tr2(TrResult, TR_vecEndPos, vecSrc) get_tr2(TrResult, TR_vecPlaneNormal, vecEnd) xs_vec_mul_scalar(vecEnd, 2.5, vecEnd) xs_vec_add(vecSrc, vecEnd, vecEnd) TE_FLAG |= TE_EXPLFLAG_NODLIGHTS TE_FLAG |= TE_EXPLFLAG_NOSOUND TE_FLAG |= TE_EXPLFLAG_NOPARTICLES engfunc(EngFunc_MessageBegin, MSG_PAS, SVC_TEMPENTITY, vecEnd, 0) write_byte(TE_EXPLOSION) engfunc(EngFunc_WriteCoord, vecEnd[0]) engfunc(EngFunc_WriteCoord, vecEnd[1]) engfunc(EngFunc_WriteCoord, vecEnd[2] - 10.0) write_short(g_SmokePuff_SprId) write_byte(2) write_byte(50) write_byte(TE_FLAG) message_end() } public Make_M4a1Effect(id, TrResult) { static Float:vecSrc[3], Float:vecEnd[3], TE_FLAG get_weapon_attachment(id, vecSrc) global_get(glb_v_forward, vecEnd) xs_vec_mul_scalar(vecEnd, 8192.0, vecEnd) xs_vec_add(vecSrc, vecEnd, vecEnd) get_tr2(TrResult, TR_vecEndPos, vecSrc) get_tr2(TrResult, TR_vecPlaneNormal, vecEnd) xs_vec_mul_scalar(vecEnd, 5.0, vecEnd) xs_vec_add(vecSrc, vecEnd, vecEnd) TE_FLAG |= TE_EXPLFLAG_NODLIGHTS TE_FLAG |= TE_EXPLFLAG_NOSOUND TE_FLAG |= TE_EXPLFLAG_NOPARTICLES engfunc(EngFunc_MessageBegin, MSG_PAS, SVC_TEMPENTITY, vecEnd, 0) write_byte(TE_EXPLOSION) engfunc(EngFunc_WriteCoord, vecEnd[0]) engfunc(EngFunc_WriteCoord, vecEnd[1]) engfunc(EngFunc_WriteCoord, vecEnd[2]) write_short(g_Exp_SprId) write_byte(5) write_byte(30) write_byte(TE_FLAG) message_end() } stock get_weapon_attachment(id, Float:output[3], Float:fDis = 40.0) { new Float:vfEnd[3], viEnd[3] get_user_origin(id, viEnd, 3) IVecFVec(viEnd, vfEnd) new Float:fOrigin[3], Float:fAngle[3] pev(id, pev_origin, fOrigin) pev(id, pev_view_ofs, fAngle) xs_vec_add(fOrigin, fAngle, fOrigin) new Float:fAttack[3] xs_vec_sub(vfEnd, fOrigin, fAttack) xs_vec_sub(vfEnd, fOrigin, fAttack) new Float:fRate fRate = fDis / vector_length(fAttack) xs_vec_mul_scalar(fAttack, fRate, fAttack) xs_vec_add(fOrigin, fAttack, output) } stock radius_damage(id, Float:Origin[3], Float:Damage, Float:Radius) { static Victim; Victim = -1 while((Victim = engfunc(EngFunc_FindEntityInSphere, Victim, Origin, Radius)) != 0) { if(!is_user_alive(Victim) || id == Victim) continue ExecuteHamB(Ham_TakeDamage, Victim, fm_get_user_weapon_entity(id, get_user_weapon(id)), id, Damage, DMG_BULLET) } } stock Eject_Shell(id, Shell_ModelIndex, Float:Time) { static Ent; Ent = get_pdata_cbase(id, 373, 5) if(!pev_valid(Ent)) return set_pdata_int(Ent, 57, Shell_ModelIndex, 4) set_pdata_float(id, 111, get_gametime() + Time) } stock set_weapon_anim(id, anim) { if(!is_user_alive(id)) return set_pev(id, pev_weaponanim, anim) message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, {0, 0, 0}, id) write_byte(anim) write_byte(pev(id, pev_body)) message_end() }
ANIM yeri biraz kafani karistiracak diger arkadaslara sorarsin olmadi umarim aciklayici anlatmisindir baktik anlamadin daha detayli anlatirim pek zamanim yok. iyi oyunlar
Link: | |
Linklerini gizle |