Gun Xp Unlock

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
MaDaFuCeR
Parašęs kelias žinutes
Posts: 7
Joined: 2016 Feb 24 17:56

Gun Xp Unlock

Post by MaDaFuCeR »

Ar eitu padaryt kad naujam raunde nedinktu sitas unlock ?

Code: Select all

#include <amxmodx>#include <fakemeta>#include <fakemeta_util>#include <hamsandwich>#include <cstrike>#include <gunxpmod> #define PLUGIN "[ZP] Weapon: AK47 [Balrog Edition]"#define VERSION "1.0"#define AUTHOR "[Z]KoaLa" // CODE BY DIAS PENDRAGON #define V_MODEL "models/zp/v_ak47be.mdl"#define P_MODEL "models/zp/p_ak47be.mdl"#define W_MODEL "models/zp/w_ak47be.mdl" #define DAMAGE 90#define CLIP 40#define BPAMMO 240#define RECOIL 0.4#define ACTIVE_CLIP 20 #define CSW_AK47B CSW_AK47#define weapon_ak47b "weapon_ak47" #define WEAPON_SECRETCODE 20151#define WEAPON_EVENT "events/ak47.sc"#define OLD_W_MODEL "models/w_ak47.mdl" #define EXP_SPR "sprites/balrog5stack.spr" new const AK47B_Sounds[4][] ={    "weapons/balrogak47_1.wav",    "weapons/balrogak47_clipin.wav",    "weapons/balrogak47_clipout.wav",    "weapons/balrogak47_draw.wav"} enum{    ANIM_IDLE1 = 0,    ANIM_RELOAD,    ANIM_DRAW,    ANIM_SHOOT1,    ANIM_SHOOT2,    ANIM_SHOOT3,    ANIM_SHOOTBCS1,    ANIM_SHOOTBCS2} new g_Ak47bnew g_Had_Ak47b[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_Ak47b_Event, g_ShellId, g_SmokePuff_SprId public plugin_init() {    register_plugin(PLUGIN, VERSION, AUTHOR)        register_gxm_item("Balrog-AK47 (Ak47)", "+Power  +Zoom", 4000, 9, GUN_SECTION_RIFLE, GUN_FIRST_ACCESS_ID, CSW_AK47)        register_event("CurWeapon", "Event_CurWeapon", "be", "1=1")        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_ak47b, "fw_Weapon_PrimaryAttack")    RegisterHam(Ham_Weapon_PrimaryAttack, weapon_ak47b, "fw_Weapon_PrimaryAttack_Post", 1)    RegisterHam(Ham_Item_AddToPlayer, weapon_ak47b, "fw_Item_AddToPlayer_Post", 1)    RegisterHam(Ham_Item_PostFrame, weapon_ak47b, "fw_Item_PostFrame")    } public gxm_item_enabled(id) {    g_Had_Ak47b[id] = true;}   public plugin_precache(){    engfunc(EngFunc_PrecacheModel, V_MODEL)    engfunc(EngFunc_PrecacheModel, P_MODEL)    engfunc(EngFunc_PrecacheModel, W_MODEL)        for(new i = 0; i < sizeof(AK47B_Sounds); i++)        engfunc(EngFunc_PrecacheSound, AK47B_Sounds[i])            g_Exp_SprId = engfunc(EngFunc_PrecacheModel, EXP_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_Ak47b_Event = get_orig_retval()       } public zp_extra_item_selected(id, itemid){    if(itemid == g_Ak47b) Get_Ak47b(id)} public weapon_hook(id){    engclient_cmd(id, "weapon_ak47")    return PLUGIN_HANDLED}     public zp_user_infected_post(id) Remove_Ak47b(id)public zp_user_humanized_post(id) Remove_Ak47b(id) public Get_Ak47b(id){    if(!is_user_alive(id))        return            g_Had_Ak47b[id] = 1    g_Shoot_Special[id] = 0    g_Holding_Attack[id] = 0    g_Shoot_Count[id] = 0        fm_give_item(id, weapon_ak47b)        static Ent; Ent = fm_get_user_weapon_entity(id, CSW_AK47B)    if(!pev_valid(Ent)) return        cs_set_weapon_ammo(Ent, CLIP)        cs_set_user_bpammo(id, CSW_AK47B, BPAMMO)} public Remove_Ak47b(id){    if(!is_user_connected(id))        return            g_Had_Ak47b[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_AK47B && g_Had_Ak47b[id])    {        if(g_Old_Weapon[id] != CSW_AK47B)        {            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_AK47B && g_Had_Ak47b[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_AK47B || !g_Had_Ak47b[invoker])        return FMRES_IGNORED    if(eventid != g_Ak47b_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_AK47B) > 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_AK47B)            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_AK47B, cs_get_user_bpammo(invoker, CSW_AK47B) - 1)                if(cs_get_user_bpammo(invoker, CSW_AK47B) <= 0)        {            g_Shoot_Special[invoker] = 0            g_Shoot_Count[invoker] = 0        }    }        set_weapon_anim(invoker, g_Shoot_Special[invoker] == 1 ? ANIM_SHOOTBCS2 : ANIM_SHOOTBCS1)    emit_sound(invoker, CHAN_WEAPON, g_Shoot_Special[invoker] == 1 ? AK47B_Sounds[1] : AK47B_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_ak47b, entity)                if(!pev_valid(weapon))            return FMRES_IGNORED;                if(g_Had_Ak47b[iOwner])        {            Remove_Ak47b(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_AK47B || !g_Had_Ak47b[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_AK47B || !g_Had_Ak47b[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_BalrogEffect(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_Ak47b[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_Ak47b[Id])        return     static Float:push[3]; pev(Id, pev_punchangle, push)        xs_vec_mul_scalar(push, RECOIL, push)     set_pev(Id, pev_punchangle, push)           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_Ak47b[id] = 1        set_pev(ent, pev_impulse, 0)    }            return HAM_HANDLED  } public fw_Item_PostFrame(Ent){    if(!pev_valid(Ent))        return            static Id; Id = pev(Ent, pev_owner)    if(!g_Had_Ak47b[Id])        return        static Float:flNextAttack; flNextAttack = get_pdata_float(Id, 83, 5)    static bpammo; bpammo = cs_get_user_bpammo(Id, CSW_AK47B)    static iClip; iClip = get_pdata_int(Ent, 51, 4)     if(get_pdata_int(Ent, 54, 4) && flNextAttack <= 0.0)    {        static temp1; temp1 = min(CLIP - iClip, bpammo)         set_pdata_int(Ent, 51, iClip + temp1, 4)        cs_set_user_bpammo(Id, CSW_AK47B, bpammo - temp1)                       set_pdata_int(Ent, 54, 0, 4)    }       } 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 client_connect(id){    g_Had_Ak47b[id] = false} public client_disconnected(id){    g_Had_Ak47b[id] = false} 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_BalrogEffect(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) // By Dias{    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()}/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }*/ 

User avatar
ArtHa123
Flooderis arba specialistas
Posts: 738
Joined: 2014 Feb 19 18:40

Re: Gun Xp Unlock

Post by ArtHa123 »

Mano žiniom šie unlock skirti map'ui.
Image

InvIs2
Jau po truputį tampa savu
Posts: 149
Joined: 2013 Sep 29 12:47
Skype: pksoldierlt

Re: Gun Xp Unlock

Post by InvIs2 »

Todėl ir prašo perdaryti ne vienam mapui

DYaGesS
Flooderis arba specialistas
Posts: 875
Joined: 2013 Jan 16 01:01
Skype: usercs.com
Contact:

Re: Gun Xp Unlock

Post by DYaGesS »

Invi nematau, kur jis prašo perdaryt ne vienam mapui :D. Jis parašė, kad kitam rounde būtų unlockas. t.y jei 8 rounde nusipirko, tai, kad iki mapo galo būtų, o ne 9roundo pradžioj nebeturėtų vėl.
Padėjau? +rep

User avatar
psychical
Viršininkas
Posts: 2094
Joined: 2011 Mar 12 22:19
Skype: tautvydas11
Location: Linksmakalnis
Contact:

Re: Gun Xp Unlock

Post by psychical »

Jūs abu nemastot...
Jo klausimas - "Ar eitu padaryt kad naujam raunde nedinktu sitas unlock ?"
Mūsų atsakymas: Taip, eitų.

MaDaFuCeR
Parašęs kelias žinutes
Posts: 7
Joined: 2016 Feb 24 17:56

Re: Gun Xp Unlock

Post by MaDaFuCeR »

psychical wrote:Jūs abu nemastot...
Jo klausimas - "Ar eitu padaryt kad naujam raunde nedinktu sitas unlock ?"
Mūsų atsakymas: Taip, eitų.
Jeigu eitu tai gal nesunku parašyt kaip ? būčiau dėkingas :)

User avatar
psychical
Viršininkas
Posts: 2094
Joined: 2011 Mar 12 22:19
Skype: tautvydas11
Location: Linksmakalnis
Contact:

Re: Gun Xp Unlock

Post by psychical »

Gal veiks, o gal ir ne.

Code: Select all

#include <amxmodx>#include <fakemeta>#include <fakemeta_util>#include <hamsandwich>#include <cstrike>#include <gunxpmod> #define PLUGIN "[ZP] Weapon: AK47 [Balrog Edition]"#define VERSION "1.0"#define AUTHOR "[Z]KoaLa" // CODE BY DIAS PENDRAGON #define V_MODEL "models/zp/v_ak47be.mdl"#define P_MODEL "models/zp/p_ak47be.mdl" #define DAMAGE 90#define CLIP 40#define BPAMMO 240#define RECOIL 0.4#define ACTIVE_CLIP 20 #define CSW_AK47B CSW_AK47#define weapon_ak47b "weapon_ak47" #define WEAPON_EVENT "events/ak47.sc"#define EXP_SPR "sprites/balrog5stack.spr" new const AK47B_Sounds[4][] ={    "weapons/balrogak47_1.wav",    "weapons/balrogak47_clipin.wav",    "weapons/balrogak47_clipout.wav",    "weapons/balrogak47_draw.wav"} enum{    ANIM_IDLE1 = 0,    ANIM_RELOAD,    ANIM_DRAW,    ANIM_SHOOT1,    ANIM_SHOOT2,    ANIM_SHOOT3,    ANIM_SHOOTBCS1,    ANIM_SHOOTBCS2} new g_Had_Ak47b[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_Ak47b_Event, g_ShellId, g_SmokePuff_SprId public plugin_init(){    register_plugin(PLUGIN, VERSION, AUTHOR)       register_gxm_item("Balrog-AK47 (Ak47)", "+Power  +Zoom", 4000, 9, GUN_SECTION_RIFLE, 0, CSW_AK47)       register_event("CurWeapon", "Event_CurWeapon", "be", "1=1")       register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1)       register_forward(FM_PlaybackEvent, "fw_PlaybackEvent")     register_forward(FM_CmdStart, "fw_CmdStart")              RegisterHam(Ham_TraceAttack, "worldspawn", "fw_TraceAttack")    RegisterHam(Ham_TraceAttack, "player", "fw_TraceAttack")       RegisterHam(Ham_Weapon_PrimaryAttack, weapon_ak47b, "fw_Weapon_PrimaryAttack")    RegisterHam(Ham_Weapon_PrimaryAttack, weapon_ak47b, "fw_Weapon_PrimaryAttack_Post", 1)    RegisterHam(Ham_Item_PostFrame, weapon_ak47b, "fw_Item_PostFrame")   } public gxm_item_enabled(id){    g_Had_Ak47b[id] = 1    g_Shoot_Special[id] = 0    g_Holding_Attack[id] = 0    g_Shoot_Count[id] = 0} public plugin_precache(){    engfunc(EngFunc_PrecacheModel, V_MODEL)    engfunc(EngFunc_PrecacheModel, P_MODEL)       for(new i = 0; i < sizeof(AK47B_Sounds); i++)        engfunc(EngFunc_PrecacheSound, AK47B_Sounds[i])           g_Exp_SprId = engfunc(EngFunc_PrecacheModel, EXP_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_Ak47b_Event = get_orig_retval()      } public weapon_hook(id){    engclient_cmd(id, "weapon_ak47")    return PLUGIN_HANDLED} 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_AK47B && g_Had_Ak47b[id])    {        if(g_Old_Weapon[id] != CSW_AK47B)        {            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_AK47B && g_Had_Ak47b[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_AK47B || !g_Had_Ak47b[invoker])        return FMRES_IGNORED    if(eventid != g_Ak47b_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_AK47B) > 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_AK47B)            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_AK47B, cs_get_user_bpammo(invoker, CSW_AK47B) - 1)               if(cs_get_user_bpammo(invoker, CSW_AK47B) <= 0)        {            g_Shoot_Special[invoker] = 0            g_Shoot_Count[invoker] = 0        }    }       set_weapon_anim(invoker, g_Shoot_Special[invoker] == 1 ? ANIM_SHOOTBCS2 : ANIM_SHOOTBCS1)    emit_sound(invoker, CHAN_WEAPON, g_Shoot_Special[invoker] == 1 ? AK47B_Sounds[1] : AK47B_Sounds[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM)       Eject_Shell(invoker, g_ShellId, 0.0)           return FMRES_SUPERCEDE} public fw_CmdStart(id, uc_handle, seed){    if(!is_user_alive(id))        return    if(g_Current_Weapon[id] != CSW_AK47B || !g_Had_Ak47b[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_AK47B || !g_Had_Ak47b[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_BalrogEffect(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_Ak47b[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_Ak47b[Id])        return     static Float:push[3]; pev(Id, pev_punchangle, push)       xs_vec_mul_scalar(push, RECOIL, push)     set_pev(Id, pev_punchangle, push)          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_PostFrame(Ent){    if(!pev_valid(Ent))        return           static Id; Id = pev(Ent, pev_owner)    if(!g_Had_Ak47b[Id])        return       static Float:flNextAttack; flNextAttack = get_pdata_float(Id, 83, 5)    static bpammo; bpammo = cs_get_user_bpammo(Id, CSW_AK47B)    static iClip; iClip = get_pdata_int(Ent, 51, 4)     if(get_pdata_int(Ent, 54, 4) && flNextAttack <= 0.0)    {        static temp1; temp1 = min(CLIP - iClip, bpammo)         set_pdata_int(Ent, 51, iClip + temp1, 4)        cs_set_user_bpammo(Id, CSW_AK47B, bpammo - temp1)                     set_pdata_int(Ent, 54, 0, 4)    }      } 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 client_connect(id){    g_Had_Ak47b[id] = 0    g_Shoot_Special[id] = 0 } public client_disconnected(id){    g_Had_Ak47b[id] = 0    g_Shoot_Special[id] = 0 } 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_BalrogEffect(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) // By Dias{    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()}

MaDaFuCeR
Parašęs kelias žinutes
Posts: 7
Joined: 2016 Feb 24 17:56

Re: Gun Xp Unlock

Post by MaDaFuCeR »

psychical wrote:Gal veiks, o gal ir ne.

Code: Select all

#include <amxmodx>#include <fakemeta>#include <fakemeta_util>#include <hamsandwich>#include <cstrike>#include <gunxpmod> #define PLUGIN "[ZP] Weapon: AK47 [Balrog Edition]"#define VERSION "1.0"#define AUTHOR "[Z]KoaLa" // CODE BY DIAS PENDRAGON #define V_MODEL "models/zp/v_ak47be.mdl"#define P_MODEL "models/zp/p_ak47be.mdl" #define DAMAGE 90#define CLIP 40#define BPAMMO 240#define RECOIL 0.4#define ACTIVE_CLIP 20 #define CSW_AK47B CSW_AK47#define weapon_ak47b "weapon_ak47" #define WEAPON_EVENT "events/ak47.sc"#define EXP_SPR "sprites/balrog5stack.spr" new const AK47B_Sounds[4][] ={    "weapons/balrogak47_1.wav",    "weapons/balrogak47_clipin.wav",    "weapons/balrogak47_clipout.wav",    "weapons/balrogak47_draw.wav"} enum{    ANIM_IDLE1 = 0,    ANIM_RELOAD,    ANIM_DRAW,    ANIM_SHOOT1,    ANIM_SHOOT2,    ANIM_SHOOT3,    ANIM_SHOOTBCS1,    ANIM_SHOOTBCS2} new g_Had_Ak47b[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_Ak47b_Event, g_ShellId, g_SmokePuff_SprId public plugin_init(){    register_plugin(PLUGIN, VERSION, AUTHOR)       register_gxm_item("Balrog-AK47 (Ak47)", "+Power  +Zoom", 4000, 9, GUN_SECTION_RIFLE, 0, CSW_AK47)       register_event("CurWeapon", "Event_CurWeapon", "be", "1=1")       register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1)       register_forward(FM_PlaybackEvent, "fw_PlaybackEvent")     register_forward(FM_CmdStart, "fw_CmdStart")              RegisterHam(Ham_TraceAttack, "worldspawn", "fw_TraceAttack")    RegisterHam(Ham_TraceAttack, "player", "fw_TraceAttack")       RegisterHam(Ham_Weapon_PrimaryAttack, weapon_ak47b, "fw_Weapon_PrimaryAttack")    RegisterHam(Ham_Weapon_PrimaryAttack, weapon_ak47b, "fw_Weapon_PrimaryAttack_Post", 1)    RegisterHam(Ham_Item_PostFrame, weapon_ak47b, "fw_Item_PostFrame")   } public gxm_item_enabled(id){    g_Had_Ak47b[id] = 1    g_Shoot_Special[id] = 0    g_Holding_Attack[id] = 0    g_Shoot_Count[id] = 0} public plugin_precache(){    engfunc(EngFunc_PrecacheModel, V_MODEL)    engfunc(EngFunc_PrecacheModel, P_MODEL)       for(new i = 0; i < sizeof(AK47B_Sounds); i++)        engfunc(EngFunc_PrecacheSound, AK47B_Sounds[i])           g_Exp_SprId = engfunc(EngFunc_PrecacheModel, EXP_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_Ak47b_Event = get_orig_retval()      } public weapon_hook(id){    engclient_cmd(id, "weapon_ak47")    return PLUGIN_HANDLED} 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_AK47B && g_Had_Ak47b[id])    {        if(g_Old_Weapon[id] != CSW_AK47B)        {            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_AK47B && g_Had_Ak47b[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_AK47B || !g_Had_Ak47b[invoker])        return FMRES_IGNORED    if(eventid != g_Ak47b_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_AK47B) > 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_AK47B)            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_AK47B, cs_get_user_bpammo(invoker, CSW_AK47B) - 1)               if(cs_get_user_bpammo(invoker, CSW_AK47B) <= 0)        {            g_Shoot_Special[invoker] = 0            g_Shoot_Count[invoker] = 0        }    }       set_weapon_anim(invoker, g_Shoot_Special[invoker] == 1 ? ANIM_SHOOTBCS2 : ANIM_SHOOTBCS1)    emit_sound(invoker, CHAN_WEAPON, g_Shoot_Special[invoker] == 1 ? AK47B_Sounds[1] : AK47B_Sounds[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM)       Eject_Shell(invoker, g_ShellId, 0.0)           return FMRES_SUPERCEDE} public fw_CmdStart(id, uc_handle, seed){    if(!is_user_alive(id))        return    if(g_Current_Weapon[id] != CSW_AK47B || !g_Had_Ak47b[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_AK47B || !g_Had_Ak47b[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_BalrogEffect(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_Ak47b[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_Ak47b[Id])        return     static Float:push[3]; pev(Id, pev_punchangle, push)       xs_vec_mul_scalar(push, RECOIL, push)     set_pev(Id, pev_punchangle, push)          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_PostFrame(Ent){    if(!pev_valid(Ent))        return           static Id; Id = pev(Ent, pev_owner)    if(!g_Had_Ak47b[Id])        return       static Float:flNextAttack; flNextAttack = get_pdata_float(Id, 83, 5)    static bpammo; bpammo = cs_get_user_bpammo(Id, CSW_AK47B)    static iClip; iClip = get_pdata_int(Ent, 51, 4)     if(get_pdata_int(Ent, 54, 4) && flNextAttack <= 0.0)    {        static temp1; temp1 = min(CLIP - iClip, bpammo)         set_pdata_int(Ent, 51, iClip + temp1, 4)        cs_set_user_bpammo(Id, CSW_AK47B, bpammo - temp1)                     set_pdata_int(Ent, 54, 0, 4)    }      } 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 client_connect(id){    g_Had_Ak47b[id] = 0    g_Shoot_Special[id] = 0 } public client_disconnected(id){    g_Had_Ak47b[id] = 0    g_Shoot_Special[id] = 0 } 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_BalrogEffect(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) // By Dias{    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()}

Išmetė tokius erorus, gal galit padet sutvarkyt ?
Attachments
de_dust0000.png

Terror
Senbūvis
Posts: 1086
Joined: 2015 Feb 27 19:29
Location: Alytus

Re: Gun Xp Unlock

Post by Terror »

Man neveikia :2D:
Last edited by Terror on 2016 Feb 28 23:28, edited 1 time in total.

User avatar
ArtHa123
Flooderis arba specialistas
Posts: 738
Joined: 2014 Feb 19 18:40

Re: Gun Xp Unlock

Post by ArtHa123 »

psychical wrote:Jūs abu nemastot...
Jo klausimas - "Ar eitu padaryt kad naujam raunde nedinktu sitas unlock ?"
Mūsų atsakymas: Taip, eitų.
„Ar eitu padaryt kad naujam raunde nedinktu sitas unlock ?“

Tai, kad kiek žinau tam gun xp mode ir nedingsta kitam round'e, o tik kitam map'e. o_O
Image

Post Reply

Who is online

Users browsing this forum: No registered users and 17 guests