Проблем с плъгин ze_stun_riffle

Въпроси и проблеми свързани с AMXModX.
Аватар
xaxa
Извън линия
Потребител
Потребител
Мнения: 4
Регистриран на: 15 Яну 2019, 19:03

Проблем с плъгин ze_stun_riffle

Мнение от xaxa » 15 Яну 2019, 19:09

Здравейте първо имам следния проблем качил съм абсолютно всичко нужно за плъгина,но след свързване ме изхвърля това съобщение.Моделите ги има както в папка models така и в sv_downloadurl.Съмнява ме,че кода не е наред ако някой може да хвърли едно око ще съм му благодарен.

СЪобщение:
Cannot continue without model models/stunrifle/v_stunrifle.mdl


Код на плъгина:

Код за потвърждение: Избери целия код

#include <zombie_escape>
#include <fakemeta_util>
new const ZE_SETTING_RESOURCES[] = "zombie_escape.ini"
#define CustomItem(%0) (pev(%0, pev_impulse) == WEAPON_KEY)
 
// CWeaponBox
#define m_rgpPlayerItems_CWeaponBox 34
 
// CBasePlayerItem
#define m_pPlayer 41
#define m_pNext 42
#define m_iId 43
 
// CBasePlayerWeapon
#define m_flNextPrimaryAttack 46
#define m_flNextSecondaryAttack 47
#define m_flTimeWeaponIdle 48
#define m_iPrimaryAmmoType 49
#define m_iClip 51
#define m_fInReload 54
#define m_iWeaponState 74
 
// CBaseMonster
#define m_flNextAttack 83
 
// CBasePlayer
#define m_iFOV 363
#define m_rpgPlayerItems 367
#define m_pActiveItem 373
#define m_rgAmmo 376
 
/*-----------------------------------------------------*/
 
#define WEAPON_KEY 776544229
#define WEAPON_OLD "weapon_ak47"
#define WEAPON_NEW "weapon_stunrifle"
 
/*-----------------------------------------------------*/
 
new const WPN_SPRITES[][] =
{
    "sprites/weapon_stunrifle.txt",
    "sprites/640hud169.spr",
    "sprites/640hud7.spr"
}
 
new const g_szSounds[][] =
{
    "weapons/stunrifle-1.wav",
    "weapons/stunrifle_drawa.wav",
    "weapons/stunrifle_drawb.wav",
    "weapons/stunrifle_drawc.wav",
    "weapons/stunrifle_reloada.wav",
    "weapons/stunrifle_reloadb.wav",
    "weapons/stunrifle_reloadc.wav",
    "weapons/stunrifle_idlea.wav",
    "weapons/stunrifle_idleb.wav",
    "weapons/stunrifle_idlec.wav",
    "weapons/stunrifle_lowbattery.wav",
    "weapons/stunrifle-2.wav"
}
 
new const iWeaponList[] =
{  
    2, 30, -1, -1, 0, 1, CSW_AK47, 0
}
 
#define WEAPON_MODEL_V "models/stunrifle/v_stunrifle.mdl"
#define WEAPON_MODEL_P "models/stunrifle/p_stunrifle.mdl"
#define WEAPON_MODEL_W "models/stunrifle/w_stunrifle.mdl"
#define WEAPON_BODY 0
 
/*-----------------------------------------------------*/
 
#define WEAPON_COST 3
 
#define WEAPON_CLIP 30
#define WEAPON_AMMO 90
#define WEAPON_RATE 0.098
#define WEAPON_RECOIL 0.96
#define WEAPON_DAMAGE 1.0 // AK47 damage multiplied by this factor
 
#define WEAPON_RATE_EX 0.169
#define WEAPON_RECOIL_EX 0.79
#define WEAPON_DAMAGE_EX 1.3
#define WEAPON_NATIVE "native_give_weapon_stunrifle"
 
/*-----------------------------------------------------*/
 
// Animations
#define ANIM_IDLE_A 0
#define ANIM_IDLE_B 1
#define ANIM_IDLE_C 2
#define ANIM_ATTACK_A 3
#define ANIM_ATTACK_B 4
#define ANIM_ATTACK_C 5
#define ANIM_RELOAD_A 6
#define ANIM_RELOAD_B 7
#define ANIM_RELOAD_C 8
#define ANIM_DRAW_A 9
#define ANIM_DRAW_B 10
#define ANIM_DRAW_C 11
 
// from model: Frames / FPS
#define ANIM_IDLE_TIME_A 90/30.0
#define ANIM_SHOOT_TIME_A 31/30.0
#define ANIM_RELOAD_TIME_A 101/30.0
#define ANIM_DRAW_TIME_A 46/30.0
#define ANIM_IDLE_TIME_B 90/30.0
#define ANIM_SHOOT_TIME_B 31/30.0
#define ANIM_RELOAD_TIME_B 101/30.0
#define ANIM_DRAW_TIME_B 46/30.0
#define ANIM_IDLE_TIME_C 90/30.0
#define ANIM_SHOOT_TIME_C 31/30.0
#define ANIM_RELOAD_TIME_C 101/30.0
#define ANIM_DRAW_TIME_C 46/30.0
 
new g_AllocString_V,
    g_AllocString_P,
    g_AllocString_E,
 
    HamHook: g_fw_TraceAttack[4],
   
    g_iMsgID_Weaponlist,
    g_iStoredEnergy[33],
    bool:g_bHasStunRifle[33],
    g_pCvarBarFillTime,
    g_pCvarRadius,
    g_pCvarElecDmg,
    g_iLigSpr,
    g_iEffSpr,
    g_iEff2Spr,
    bool:g_bReloading[33],
    g_iAppearTimes[33],
    g_iItemID
 
public plugin_init()
{
    register_plugin("[ZE] Stun Rifle", "1.0", "Raheem");
 
    // Register our item
    g_iItemID = ze_register_item("Stun Rifle", 300, 0) // It's cost 300 Coins
    
   
    RegisterHam(Ham_Item_Deploy, WEAPON_OLD, "fw_Item_Deploy_Post", 1);
    RegisterHam(Ham_Item_PostFrame, WEAPON_OLD, "fw_Item_PostFrame");
    RegisterHam(Ham_Item_AddToPlayer, WEAPON_OLD, "fw_Item_AddToPlayer_Post", 1);
    RegisterHam(Ham_Weapon_Reload, WEAPON_OLD, "fw_Weapon_Reload");
    RegisterHam(Ham_Weapon_WeaponIdle, WEAPON_OLD, "fw_Weapon_WeaponIdle");
    RegisterHam(Ham_Weapon_PrimaryAttack, WEAPON_OLD, "fw_Weapon_PrimaryAttack");
   
    g_fw_TraceAttack[0] = RegisterHam(Ham_TraceAttack, "func_breakable", "fw_TraceAttack");
    g_fw_TraceAttack[1] = RegisterHam(Ham_TraceAttack, "info_target",    "fw_TraceAttack");
    g_fw_TraceAttack[2] = RegisterHam(Ham_TraceAttack, "player",         "fw_TraceAttack");
    g_fw_TraceAttack[3] = RegisterHam(Ham_TraceAttack, "hostage_entity", "fw_TraceAttack");
    fm_ham_hook(false);
    register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1);
    register_forward(FM_PlaybackEvent, "fw_PlaybackEvent");
    register_forward(FM_SetModel, "fw_SetModel");
   
    g_pCvarBarFillTime = register_cvar("stunrifle_barfill_time", "5") // Bar fill time in seconds
    g_pCvarRadius = register_cvar("stunrifle_radius", "500") // elec radius
    g_pCvarElecDmg = register_cvar("stunrifle_electricity_dmg", "10") // electricity damage - lowest damage for 1 bar only
   
    register_clcmd(WEAPON_NEW, "HookSelect");
    g_iMsgID_Weaponlist = get_user_msgid("WeaponList");
}
 
public plugin_precache()
{
    g_AllocString_V = engfunc(EngFunc_AllocString, WEAPON_MODEL_V);
    g_AllocString_P = engfunc(EngFunc_AllocString, WEAPON_MODEL_P);
    g_AllocString_E = engfunc(EngFunc_AllocString, WEAPON_OLD);
    engfunc(EngFunc_PrecacheModel, WEAPON_MODEL_V);
    engfunc(EngFunc_PrecacheModel, WEAPON_MODEL_P);
    engfunc(EngFunc_PrecacheModel, WEAPON_MODEL_W);
   
    for (new i = 0; i < sizeof g_szSounds; i++) engfunc(EngFunc_PrecacheSound, g_szSounds[i]);
   
    for(new i = 0; i < sizeof WPN_SPRITES;i++) precache_generic(WPN_SPRITES[i]);
   
    g_iLigSpr = precache_model("sprites/lightning.spr");
    g_iEffSpr = precache_model("sprites/ef_buffak_hit.spr");
    g_iEff2Spr = precache_model("sprites/muzzleflash67.spr");
}
 
public HookSelect(iPlayer)
{
    engclient_cmd(iPlayer, WEAPON_OLD);
}
 
public give(id)
{
    give_weapon_stunrifle(id)
}
 
public give_weapon_stunrifle(iPlayer)
{
    static iEnt; iEnt = engfunc(EngFunc_CreateNamedEntity, g_AllocString_E);
    if(iEnt <= 0) return 0;
    set_pev(iEnt, pev_spawnflags, SF_NORESPAWN);
    set_pev(iEnt, pev_impulse, WEAPON_KEY);
    ExecuteHam(Ham_Spawn, iEnt);
    UTIL_DropWeapon(iPlayer, 1);
    if(!ExecuteHamB(Ham_AddPlayerItem, iPlayer, iEnt)) {
        engfunc(EngFunc_RemoveEntity, iEnt);
        return 0;
    }
    ExecuteHamB(Ham_Item_AttachToPlayer, iEnt, iPlayer);
    set_pdata_int(iEnt, m_iClip, WEAPON_CLIP, 4);
    new iAmmoType = m_rgAmmo +get_pdata_int(iEnt, m_iPrimaryAmmoType, 4);
    if(get_pdata_int(iPlayer, m_rgAmmo, 5) < WEAPON_AMMO)
    set_pdata_int(iPlayer, iAmmoType, WEAPON_AMMO, 5);
    emit_sound(iPlayer, CHAN_ITEM, "items/gunpickup2.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
    g_iStoredEnergy[iPlayer] = 0;
    g_bHasStunRifle[iPlayer] = true;
    set_task(get_pcvar_float(g_pCvarBarFillTime), "RechargeTask", iPlayer, _, _, "a", 6)
    return 1;
}
 
public plugin_natives()
{
    register_native(WEAPON_NATIVE, "give_weapon_stunrifle", 1);
}
 
public ze_select_item_pre(id, itemid)
{
    // Return Available and we will block it in Post, So it dosen't affect other plugins
    if (itemid != g_iItemID)
        return ZE_ITEM_AVAILABLE
   
    // Available for Humans only, So don't show it for zombies
    if (ze_is_user_zombie(id))
        return ZE_ITEM_DONT_SHOW
   
    return ZE_ITEM_AVAILABLE
}
 
public ze_select_item_post(player, itemid)
{
    if (itemid != g_iItemID)
        return
   
    give_weapon_stunrifle(player)
}
 
public fw_Item_Deploy_Post(iItem)
{
    if(!CustomItem(iItem)) return;
    static iPlayer; iPlayer = get_pdata_cbase(iItem, m_pPlayer, 4);
 
    set_pev_string(iPlayer, pev_viewmodel2, g_AllocString_V);
    set_pev_string(iPlayer, pev_weaponmodel2, g_AllocString_P);
   
    if (g_iStoredEnergy[iPlayer] == 0)
    {
        // Draw A
        UTIL_SendWeaponAnim(iPlayer, ANIM_DRAW_A);
        emit_sound(iPlayer, CHAN_WEAPON, g_szSounds[1], VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
        set_pdata_float(iPlayer, m_flNextAttack, ANIM_DRAW_TIME_A, 5);
        set_pdata_float(iItem, m_flTimeWeaponIdle, ANIM_DRAW_TIME_A, 4);
    }
    else if (g_iStoredEnergy[iPlayer] > 0 && g_iStoredEnergy[iPlayer] <= 3)
    {
        // Draw B
        UTIL_SendWeaponAnim(iPlayer, ANIM_DRAW_B);
        emit_sound(iPlayer, CHAN_WEAPON, g_szSounds[2], VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
        set_pdata_float(iPlayer, m_flNextAttack, ANIM_DRAW_TIME_B, 5);
        set_pdata_float(iItem, m_flTimeWeaponIdle, ANIM_DRAW_TIME_B, 4);
    }
    else if (g_iStoredEnergy[iPlayer] > 3 && g_iStoredEnergy[iPlayer] <= 6)
    {
        // Draw C
        UTIL_SendWeaponAnim(iPlayer, ANIM_DRAW_C);
        emit_sound(iPlayer, CHAN_WEAPON, g_szSounds[3], VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
        set_pdata_float(iPlayer, m_flNextAttack, ANIM_DRAW_TIME_C, 5);
        set_pdata_float(iItem, m_flTimeWeaponIdle, ANIM_DRAW_TIME_C, 4);
    }
}
 
public fw_Item_PostFrame(iItem)
{
    if(!CustomItem(iItem)) return HAM_IGNORED;
    static iPlayer; iPlayer = get_pdata_cbase(iItem, m_pPlayer, 4);
    if(get_pdata_int(iItem, m_fInReload, 4) == 1) {
        static iClip; iClip = get_pdata_int(iItem, m_iClip, 4);
        static iAmmoType; iAmmoType = m_rgAmmo + get_pdata_int(iItem, m_iPrimaryAmmoType, 4);
        static iAmmo; iAmmo = get_pdata_int(iPlayer, iAmmoType, 5);
        static j; j = min(WEAPON_CLIP - iClip, iAmmo);
        set_pdata_int(iItem, m_iClip, iClip+j, 4);
        set_pdata_int(iPlayer, iAmmoType, iAmmo-j, 5);
        set_pdata_int(iItem, m_fInReload, 0, 4);
    }
    else switch(get_pdata_int(iItem, m_iWeaponState, 4) ) {
        case 0: {
            if(get_pdata_float(iItem, m_flNextSecondaryAttack, 4) <= 0.0)
            if(pev(iPlayer, pev_button) & IN_ATTACK2) {
                set_pdata_int(iPlayer, m_iFOV, get_pdata_int(iPlayer, m_iFOV, 5) == 90 ? 60 : 90);
                set_pdata_float(iItem, m_flNextSecondaryAttack, 0.3, 4);
            }
        }
    }
   
    return HAM_IGNORED;
}
 
public fw_Item_AddToPlayer_Post(iItem, iPlayer)
{
    switch(pev(iItem, pev_impulse)) {
        case WEAPON_KEY: {
        s_weaponlist(iPlayer, true);
        g_bHasStunRifle[iPlayer] = true;
       
        if (g_iStoredEnergy[iPlayer] < 6)
        {
            set_task(101/30.0, "OnReloadFinished", iPlayer);
        }
        else if (g_iStoredEnergy[iPlayer] == 6)
        {
            client_print(iPlayer, print_center, "Your Stun Rifle is fully charged!")
        }
        }
        case 0: s_weaponlist(iPlayer, false);
    }
}
 
public ze_user_infected(infected)
{
    if (g_bHasStunRifle[infected])
    {
        g_bHasStunRifle[infected] = false
        g_iStoredEnergy[infected] = 0;
    }
}
 
public ze_user_humanized(id)
{
    g_bHasStunRifle[id] = false
    g_iStoredEnergy[id] = 0;
}
 
public fw_Weapon_Reload(iItem)
{
    if(!CustomItem(iItem)) return HAM_IGNORED;
    static iClip; iClip = get_pdata_int(iItem, m_iClip, 4);
    if(iClip >= WEAPON_CLIP) return HAM_SUPERCEDE;
    static iPlayer; iPlayer = get_pdata_cbase(iItem, m_pPlayer, 4);
    static iAmmoType; iAmmoType = m_rgAmmo + get_pdata_int(iItem, m_iPrimaryAmmoType, 4);
    if(get_pdata_int(iPlayer, iAmmoType, 5) <= 0) return HAM_SUPERCEDE
    if(get_pdata_int(iPlayer, m_iFOV, 5) != 90) set_pdata_int(iPlayer, m_iFOV, 90, 5);
 
    set_pdata_int(iItem, m_iClip, 0, 4);
    ExecuteHam(Ham_Weapon_Reload, iItem);
    set_pdata_int(iItem, m_iClip, iClip, 4);
 
    set_pdata_int(iItem, m_fInReload, 1, 4);
   
    g_bReloading[iPlayer] = true;
    set_task(3.0, "AttackTask", iPlayer+444)
   
    server_print("%i", isEmpty(iPlayer))
 
    if (g_iStoredEnergy[iPlayer] == 0)
    {
        // Reload A
        set_pdata_float(iItem, m_flNextPrimaryAttack, ANIM_RELOAD_TIME_A, 4);
        set_pdata_float(iItem, m_flNextSecondaryAttack, ANIM_RELOAD_TIME_A, 4);
        set_pdata_float(iItem, m_flTimeWeaponIdle, ANIM_RELOAD_TIME_A, 4);
        set_pdata_float(iPlayer, m_flNextAttack, ANIM_RELOAD_TIME_A, 5);
       
        UTIL_SendWeaponAnim(iPlayer, ANIM_RELOAD_A);
       
        emit_sound(iPlayer, CHAN_WEAPON, g_szSounds[4], VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
        emit_sound(iPlayer, CHAN_WEAPON, g_szSounds[10], VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
    }
    else if (g_iStoredEnergy[iPlayer] > 0 && g_iStoredEnergy[iPlayer] <= 3)
    {
        // Reload B
        set_pdata_float(iItem, m_flNextPrimaryAttack, ANIM_RELOAD_TIME_B, 4);
        set_pdata_float(iItem, m_flNextSecondaryAttack, ANIM_RELOAD_TIME_B, 4);
        set_pdata_float(iItem, m_flTimeWeaponIdle, ANIM_RELOAD_TIME_B, 4);
        set_pdata_float(iPlayer, m_flNextAttack, ANIM_RELOAD_TIME_B, 5);
       
        UTIL_SendWeaponAnim(iPlayer, ANIM_RELOAD_B);
       
        emit_sound(iPlayer, CHAN_WEAPON, g_szSounds[5], VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
       
        if (!isEmpty(iPlayer))
        {
            emit_sound(iPlayer, CHAN_WEAPON, g_szSounds[11], VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
        }
    }
    else if (g_iStoredEnergy[iPlayer] > 3 && g_iStoredEnergy[iPlayer] <= 6)
    {
        // Reload C
        set_pdata_float(iItem, m_flNextPrimaryAttack, ANIM_RELOAD_TIME_C, 4);
        set_pdata_float(iItem, m_flNextSecondaryAttack, ANIM_RELOAD_TIME_C, 4);
        set_pdata_float(iItem, m_flTimeWeaponIdle, ANIM_RELOAD_TIME_C, 4);
        set_pdata_float(iPlayer, m_flNextAttack, ANIM_RELOAD_TIME_C, 5);
       
        UTIL_SendWeaponAnim(iPlayer, ANIM_RELOAD_C);
       
        emit_sound(iPlayer, CHAN_WEAPON, g_szSounds[6], VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
       
        if (!isEmpty(iPlayer))
        {
            emit_sound(iPlayer, CHAN_WEAPON, g_szSounds[11], VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
        }
    }
   
    // Set task to recharge the battary
    remove_task(iPlayer)
    set_task(101/30.0, "OnReloadFinished", iPlayer)
 
    return HAM_SUPERCEDE;
}
 
public AttackTask(taskid)
{
    g_bReloading[taskid - 444] = false;
       
    // After reload reset the stored energy
    g_iStoredEnergy[taskid - 444] = 0;
   
    g_iAppearTimes[taskid - 444] = 0;
}
 
public client_PreThink(id)
{
    if (g_bReloading[id] && g_bHasStunRifle[id] && (get_user_weapon(id) == CSW_AK47))
    {
        if (g_iStoredEnergy[id] == 0)
        {
            // Reload A
           
        }
        else if (g_iStoredEnergy[id] > 0 && g_iStoredEnergy[id] <= 3)
        {
            // Reload B
            static Float:flOrigin[3]
            pev(id, pev_origin, flOrigin)
            new iVictim = -1;
           
            while ((iVictim = engfunc(EngFunc_FindEntityInSphere, iVictim, flOrigin, get_pcvar_float(g_pCvarRadius))) != 0)
            {
                if (!is_user_alive(iVictim) || !ze_is_user_zombie(iVictim))
                    continue
               
                static Float:flVecOrigin[3];
                pev(iVictim, pev_origin, flVecOrigin);
                   
                ElectricBeam(id, flVecOrigin);
                   
                ExecuteHam(Ham_TakeDamage, iVictim, id, id, get_pcvar_float(g_pCvarElecDmg) * g_iStoredEnergy[id], DMG_SLASH);
           
                fm_set_user_rendering(iVictim, kRenderFxGlowShell, 51, 51, 225, kRenderNormal, 10);
                set_task(101/30.0, "Delete_Glow", iVictim+4444);
            }
        }
        else if (g_iStoredEnergy[id] > 3 && g_iStoredEnergy[id] <= 6)
        {
            // Reload C
            static Float:flOrigin[3]
            pev(id, pev_origin, flOrigin)
            new iVictim = -1;
           
            while ((iVictim = engfunc(EngFunc_FindEntityInSphere, iVictim, flOrigin, get_pcvar_float(g_pCvarRadius))) != 0)
            {
                if (!is_user_alive(iVictim) || !ze_is_user_zombie(iVictim))
                    continue
               
                static Float:flVecOrigin[3]
                pev(iVictim, pev_origin, flVecOrigin)
               
                ElectricBeam(id, flVecOrigin)
               
                ExecuteHam(Ham_TakeDamage, iVictim, id, id, get_pcvar_float(g_pCvarElecDmg) * g_iStoredEnergy[id], DMG_SLASH);
               
                fm_set_user_rendering(iVictim, kRenderFxGlowShell, 51, 51, 225, kRenderNormal, 10);
                set_task(101/30.0, "Delete_Glow", iVictim+4444);
            }
        }
    }
}
 
public Delete_Glow(taskid)
{
    new id = taskid - 4444;
    fm_set_user_rendering(id);
}
 
public OnReloadFinished(id)
{
    remove_task(id)
    set_task(get_pcvar_float(g_pCvarBarFillTime), "RechargeTask", id, _, _, "a", 6)
}
 
public RechargeTask(id)
{
    if (!g_bHasStunRifle[id])
        return
   
    // Increase one bar every x time
    g_iStoredEnergy[id]++
   
    new szBars[100];
   
    switch(g_iStoredEnergy[id])
    {
        case 1:
        {
            szBars = "[ |           ]";
        }
        case 2:
        {
            szBars = "[ | |         ]";
        }
        case 3:
        {
            szBars = "[ | | |       ]";
        }
        case 4:
        {
            szBars = "[ | | | |     ]";
        }
        case 5:
        {
            szBars = "[ | | | | |   ]";
        }
        case 6:
        {
            szBars = "[ | | | | | | ]";
        }
    }
   
    set_dhudmessage(51, 153, 255, -1.0, -0.16, 0, 0.0, get_pcvar_float(g_pCvarBarFillTime) - 0.2)
    show_dhudmessage(id, "Stun Rifle Battary: %s", szBars)
   
    if (g_iStoredEnergy[id] == 6)
    {
        client_print(id, print_center, "Your Stun Rifle is fully charged!")
        remove_task(id)
    }
}
 
public fw_Weapon_WeaponIdle(iItem)
{
    if(!CustomItem(iItem) || get_pdata_float(iItem, m_flTimeWeaponIdle, 4) > 0.0) return HAM_IGNORED;
    static iPlayer; iPlayer = get_pdata_cbase(iItem, m_pPlayer, 4);
 
    if (g_iStoredEnergy[iPlayer] == 0)
    {
        // Idle A
        UTIL_SendWeaponAnim(iPlayer, ANIM_IDLE_A);
        set_pdata_float(iItem, m_flTimeWeaponIdle, ANIM_IDLE_TIME_A, 4);
       
        emit_sound(iPlayer, CHAN_WEAPON, g_szSounds[7], VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
    }
    else if (g_iStoredEnergy[iPlayer] > 0 && g_iStoredEnergy[iPlayer] <= 3)
    {
        // Idle B
        UTIL_SendWeaponAnim(iPlayer, ANIM_IDLE_B);
        set_pdata_float(iItem, m_flTimeWeaponIdle, ANIM_IDLE_TIME_B, 4);
       
        emit_sound(iPlayer, CHAN_WEAPON, g_szSounds[8], VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
    }
    else if (g_iStoredEnergy[iPlayer] > 3 && g_iStoredEnergy[iPlayer] <= 6)
    {
        // Idle C
        UTIL_SendWeaponAnim(iPlayer, ANIM_IDLE_C);
        set_pdata_float(iItem, m_flTimeWeaponIdle, ANIM_IDLE_TIME_C, 4);
       
        emit_sound(iPlayer, CHAN_WEAPON, g_szSounds[9], VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
    }
   
    return HAM_SUPERCEDE;
}
 
public fw_Weapon_PrimaryAttack(iItem)
{
    if(!CustomItem(iItem)) return HAM_IGNORED;
    static iPlayer; iPlayer = get_pdata_cbase(iItem, m_pPlayer, 4);
    static iFOV; iFOV = (get_pdata_int(iPlayer, m_iFOV, 5) != 90);
    if(get_pdata_int(iItem, m_iClip, 4) == 0) {
        ExecuteHam(Ham_Weapon_PlayEmptySound, iItem);
        set_pdata_float(iItem, m_flNextPrimaryAttack, 0.2, 4);
        return HAM_SUPERCEDE;
    }
    static fw_TraceLine; fw_TraceLine = register_forward(FM_TraceLine, "fw_TraceLine_Post", 1);
    fm_ham_hook(true);
    state FireBullets: Enabled;
    ExecuteHam(Ham_Weapon_PrimaryAttack, iItem);
    state FireBullets: Disabled;
    unregister_forward(FM_TraceLine, fw_TraceLine, 1);
    fm_ham_hook(false);
    static Float:vecPunchangle[3];
 
    pev(iPlayer, pev_punchangle, vecPunchangle);
    vecPunchangle[0] *= iFOV ? WEAPON_RECOIL_EX : WEAPON_RECOIL;
    vecPunchangle[1] *= iFOV ? WEAPON_RECOIL_EX : WEAPON_RECOIL;
    vecPunchangle[2] *= iFOV ? WEAPON_RECOIL_EX : WEAPON_RECOIL;
    set_pev(iPlayer, pev_punchangle, vecPunchangle);
 
    emit_sound(iPlayer, CHAN_WEAPON, g_szSounds[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
   
    if (g_iStoredEnergy[iPlayer] == 0)
    {
        // Idle A
        UTIL_SendWeaponAnim(iPlayer, ANIM_ATTACK_A);
        set_pdata_float(iItem, m_flTimeWeaponIdle, ANIM_SHOOT_TIME_A, 4);
    }
    else if (g_iStoredEnergy[iPlayer] > 0 && g_iStoredEnergy[iPlayer] <= 3)
    {
        // Idle B
        UTIL_SendWeaponAnim(iPlayer, ANIM_ATTACK_B);
        set_pdata_float(iItem, m_flTimeWeaponIdle, ANIM_SHOOT_TIME_B, 4);
    }
    else if (g_iStoredEnergy[iPlayer] > 3 && g_iStoredEnergy[iPlayer] <= 6)
    {
        // Idle C
        UTIL_SendWeaponAnim(iPlayer, ANIM_ATTACK_C);
        set_pdata_float(iItem, m_flTimeWeaponIdle, ANIM_SHOOT_TIME_C, 4);
    }
   
    Make_Muzzleflash(iPlayer)
 
    set_pdata_float(iItem, m_flNextPrimaryAttack, iFOV ? WEAPON_RATE_EX : WEAPON_RATE, 4);
 
    return HAM_SUPERCEDE;
}
 
public fw_PlaybackEvent() <FireBullets: Enabled> { return FMRES_SUPERCEDE; }
public fw_PlaybackEvent() <FireBullets: Disabled> { return FMRES_IGNORED; }
public fw_PlaybackEvent() <> { return FMRES_IGNORED; }
public fw_TraceAttack(iVictim, iAttacker, Float:flDamage) {
    if(!is_user_connected(iAttacker)) return;
    static iItem; iItem = get_pdata_cbase(iAttacker, m_pActiveItem, 5);
    static iFOV; iFOV = (get_pdata_int(iAttacker, m_iFOV, 5) != 90);
    static Float: flWeaponDamage; flWeaponDamage = (iFOV ? WEAPON_DAMAGE_EX : WEAPON_DAMAGE);
    if(iItem <= 0 || !CustomItem(iItem)) return;
        SetHamParamFloat(3, flDamage * flWeaponDamage);
}
 
public fw_UpdateClientData_Post(iPlayer, SendWeapons, CD_Handle)
{
    if(get_cd(CD_Handle, CD_DeadFlag) != DEAD_NO) return;
    static iItem; iItem = get_pdata_cbase(iPlayer, m_pActiveItem, 5);
    if(iItem <= 0 || !CustomItem(iItem)) return;
    set_cd(CD_Handle, CD_flNextAttack, 999999.0);
}
 
public fw_SetModel(iEnt)
{
    static i, szClassname[32], iItem;
    pev(iEnt, pev_classname, szClassname, 31);
    if(!equal(szClassname, "weaponbox")) return FMRES_IGNORED;
    for(i = 0; i < 6; i++) {
        iItem = get_pdata_cbase(iEnt, m_rgpPlayerItems_CWeaponBox + i, 4);
        if(iItem > 0 && CustomItem(iItem)) {
            engfunc(EngFunc_SetModel, iEnt, WEAPON_MODEL_W);
            set_pev(iEnt, pev_body, WEAPON_BODY);
            new iPlayer = pev(iEnt, pev_owner);
            g_bHasStunRifle[iPlayer] = false;
            remove_task(iPlayer)
            return FMRES_SUPERCEDE;
        }
    }
    return FMRES_IGNORED;
}
 
public fw_TraceLine_Post(const Float:flOrigin1[3], const Float:flOrigin2[3], iFrag, iIgnore, tr)
{
    if(iFrag & IGNORE_MONSTERS) return FMRES_IGNORED;
    static pHit; pHit = get_tr2(tr, TR_pHit);
    static Float:flvecEndPos[3]; get_tr2(tr, TR_vecEndPos, flvecEndPos);
    if(pHit > 0) {
        if(pev(pHit, pev_solid) != SOLID_BSP) return FMRES_IGNORED;
    }
    engfunc(EngFunc_MessageBegin, MSG_PAS, SVC_TEMPENTITY, flvecEndPos, 0);
    write_byte(TE_GUNSHOTDECAL);
    engfunc(EngFunc_WriteCoord, flvecEndPos[0]);
    engfunc(EngFunc_WriteCoord, flvecEndPos[1]);
    engfunc(EngFunc_WriteCoord, flvecEndPos[2]);
    write_short(pHit > 0 ? pHit : 0);
    write_byte(random_num(41, 45));
    message_end();
 
    return FMRES_IGNORED;
}
 
public fm_ham_hook(bool:on) {
    if(on) {
        EnableHamForward(g_fw_TraceAttack[0]);
        EnableHamForward(g_fw_TraceAttack[1]);
        EnableHamForward(g_fw_TraceAttack[2]);
        EnableHamForward(g_fw_TraceAttack[3]);
    }
    else {
        DisableHamForward(g_fw_TraceAttack[0]);
        DisableHamForward(g_fw_TraceAttack[1]);
        DisableHamForward(g_fw_TraceAttack[2]);
        DisableHamForward(g_fw_TraceAttack[3]);
    }
}
 
stock UTIL_SendWeaponAnim(iPlayer, iAnim)
{
    set_pev(iPlayer, pev_weaponanim, iAnim);
 
    message_begin(MSG_ONE, SVC_WEAPONANIM, _, iPlayer);
    write_byte(iAnim);
    write_byte(0);
    message_end();
}
 
stock UTIL_DropWeapon(iPlayer, iSlot) {
    static iEntity, iNext, szWeaponName[32];
    iEntity = get_pdata_cbase(iPlayer, m_rpgPlayerItems + iSlot, 5);
    if(iEntity > 0) {      
        do {
            iNext = get_pdata_cbase(iEntity, m_pNext, 4)
            if(get_weaponname(get_pdata_int(iEntity, m_iId, 4), szWeaponName, 31)) {  
                engclient_cmd(iPlayer, "drop", szWeaponName);
            }
        } while(( iEntity = iNext) > 0);
    }
}
 
stock s_weaponlist(iPlayer, bool:on)
{
    message_begin(MSG_ONE, g_iMsgID_Weaponlist, {0,0,0}, iPlayer);
    write_string(on ? WEAPON_NEW : WEAPON_OLD);
    write_byte(iWeaponList[0]);
    write_byte(on ? WEAPON_AMMO : iWeaponList[1]);
    write_byte(iWeaponList[2]);
    write_byte(iWeaponList[3]);
    write_byte(iWeaponList[4]);
    write_byte(iWeaponList[5]);
    write_byte(iWeaponList[6]);
    write_byte(iWeaponList[7]);
    message_end();
}
 
stock ElectricBeam(id, Float:flOrigin[3])
{
    message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
    write_byte(TE_BEAMENTPOINT)
    write_short(id | 0x1000)
    engfunc(EngFunc_WriteCoord, flOrigin[0])
    engfunc(EngFunc_WriteCoord, flOrigin[1])
    engfunc(EngFunc_WriteCoord, flOrigin[2])
    write_short(g_iLigSpr)
    write_byte(1); // framestart
    write_byte(100); // framerate - 5
    write_byte(1) // life - 30
    write_byte(30); // width
    write_byte(random_num(0, 10)); // noise
    write_byte(51); // r, g, b
    write_byte(51); // r, g, b
    write_byte(255); // r, g, b
    write_byte(200); // brightness
    write_byte(200); // speed
    message_end()
   
    if (g_iAppearTimes[id] >= 2)
        return
   
    message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
    write_byte(TE_EXPLOSION);
    engfunc(EngFunc_WriteCoord, flOrigin[0]);
    engfunc(EngFunc_WriteCoord, flOrigin[1]);
    engfunc(EngFunc_WriteCoord, flOrigin[2]);
    write_short(g_iEffSpr);
    write_byte(10);
    write_byte(10);
    write_byte(TE_EXPLFLAG_NOSOUND|TE_EXPLFLAG_NOPARTICLES|TE_EXPLFLAG_NODLIGHTS);
    message_end();
   
    g_iAppearTimes[id]++
}
 
stock isEmpty(id)
{
    static Float:flOrigin[3]
    pev(id, pev_origin, flOrigin)
    new iVictim = -1;
           
    while ((iVictim = engfunc(EngFunc_FindEntityInSphere, iVictim, flOrigin, get_pcvar_float(g_pCvarRadius))) != 0)
    {
        if (!is_user_alive(iVictim) || !ze_is_user_zombie(iVictim))
            continue
       
        return true;
    }
   
    return false;
}
 
public Make_Muzzleflash(id)
{
    static Float:Origin[3], TE_FLAG
    get_position(id, 32.0, 6.0, -15.0, Origin)
   
    TE_FLAG |= TE_EXPLFLAG_NODLIGHTS
    TE_FLAG |= TE_EXPLFLAG_NOSOUND
    TE_FLAG |= TE_EXPLFLAG_NOPARTICLES
   
    engfunc(EngFunc_MessageBegin, MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, Origin, id)
    write_byte(TE_EXPLOSION)
    engfunc(EngFunc_WriteCoord, Origin[0])
    engfunc(EngFunc_WriteCoord, Origin[1])
    engfunc(EngFunc_WriteCoord, Origin[2])
    write_short(g_iEff2Spr)
    write_byte(2)
    write_byte(30)
    write_byte(TE_FLAG)
    message_end()
}
 
stock get_position(id,Float:forw, Float:right, Float:up, Float:vStart[])
{
    static Float:vOrigin[3], Float:vAngle[3], Float:vForward[3], Float:vRight[3], Float:vUp[3]
   
    pev(id, pev_origin, vOrigin)
    pev(id, pev_view_ofs, vUp) //for player
    xs_vec_add(vOrigin, vUp, vOrigin)
    pev(id, pev_v_angle, vAngle) // if normal entity ,use pev_angles
   
    angle_vector(vAngle,ANGLEVECTOR_FORWARD, vForward) //or use EngFunc_AngleVectors
    angle_vector(vAngle,ANGLEVECTOR_RIGHT, vRight)
    angle_vector(vAngle,ANGLEVECTOR_UP, vUp)
   
    vStart[0] = vOrigin[0] + vForward[0] * forw + vRight[0] * right + vUp[0] * up
    vStart[1] = vOrigin[1] + vForward[1] * forw + vRight[1] * right + vUp[1] * up
    vStart[2] = vOrigin[2] + vForward[2] * forw + vRight[2] * right + vUp[2] * up
}

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Проблем с плъгин ze_stun_riffle

Мнение от OciXCrom » 15 Яну 2019, 20:06

В този плъгин няма модел с такова име. Мисля, че си качил грешен код.

Аватар
xaxa
Извън линия
Потребител
Потребител
Мнения: 4
Регистриран на: 15 Яну 2019, 19:03

Проблем с плъгин ze_stun_riffle

Мнение от xaxa » 15 Яну 2019, 20:26

#define WEAPON_MODEL_V "models/stunrifle/v_stunrifle.mdl"
#define WEAPON_MODEL_P "models/stunrifle/p_stunrifle.mdl"
#define WEAPON_MODEL_W "models/stunrifle/w_stunrifle.mdl"
#define WEAPON_BODY 0

ето ги в кода са

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Проблем с плъгин ze_stun_riffle

Мнение от OciXCrom » 15 Яну 2019, 20:34

Моя грешка, копирал съм напълно различен код на моя компютър.

Няма никакъв проблем в кода който може да изкара такава грешка. Моделите са правилно добавени в плъгина. Провери дали моделът наистина е качен в downloadurl и дали е с правилното име. Коя хостинг компания ползваш?

Аватар
xaxa
Извън линия
Потребител
Потребител
Мнения: 4
Регистриран на: 15 Яну 2019, 19:03

Проблем с плъгин ze_stun_riffle

Мнение от xaxa » 15 Яну 2019, 20:35

Gameservers всичко е точно навсякъде и аз си мислех,че там е проблема,но ги гледах 10 пъти папки файлове имената си отговарят.

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Проблем с плъгин ze_stun_riffle

Мнение от OciXCrom » 15 Яну 2019, 20:36

Няма такъв файл в downloadurl-то на Gameservers - http://svdl.iplay.bg/models/stunrifle/v_stunrifle.mdl

Аватар
xaxa
Извън линия
Потребител
Потребител
Мнения: 4
Регистриран на: 15 Яну 2019, 19:03

Проблем с плъгин ze_stun_riffle

Мнение от xaxa » 15 Яну 2019, 20:40

Хмм .rar файла който съм пратил го има явно са пропуснали благодаря дано да е това.

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Поддръжка / Помощ”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 12 госта