1. forwardekt VIP user

    Регистрация:
    24.05.15
    Сообщения:
    13
    Симпатии:
    3
    Пол:
    Мужской
    Skype:
    f-o-r-w-a-r-d
    В данном плагине VIP игроки берут в начале раунда золотой дигл командой в чате /gd либо прописывают bind.
    Можно ли сделать, чтобы VIP игрокам он давался в начале раунда, если его нет, при этом взамен, если уже есть пистолет.
    --- добавлено 11.02.16 ---
    В идеале его вообще упростить, убрать все лишнее, изначально он написан, чтобы любые игроки его просто покупали в игре.
    Только ВИПам в начале раунда и все.
     

    Вложения:

    • GoldenDg3.sma
      Размер файла:
      7,5 КБ
      Просмотров:
      9
    gudaus нравится это.
  2. zhorzh78 Пользователь

    Регистрация:
    24.08.15
    Сообщения:
    156
    Симпатии:
    53
    Пол:
    Мужской
    PHP:
    #include <amxmodx>
    #include <cstrike>
    #include <fakemeta_util>
    #include <hamsandwich>

    #define PLUGIN "Golden Deagle"
    #define VERSION "1.0"
    #define AUTHOR "no matter"

    #define flag ADMIN_LEVEL_H

    #define MAX_ITEM_TYPES          6
    #define m_linux_entity          4
    #define m_pPlayer               41

    #define SECONDARY_WEAPON ((1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_P228)|(1<<CSW_DEAGLE))

    new const m_rgpPlayerItems[MAX_ITEM_TYPES] = {3435, ...}

    new const 
    DEAGLE_V_MODEL[] = "models/v_golden_deagle.mdl"
    new const DEAGLE_P_MODEL[] = "models/p_golden_deagle.mdl"
    new const DEAGLE_W_MODEL[] = "models/w_golden_deagle.mdl"

    public plugin_init()
    {     
        
    register_plugin(PLUGINVERSIONAUTHOR)

        
    RegisterHam(Ham_Spawn"player""player_spawn"1)

        
    RegisterHam(Ham_Item_Deploy"weapon_deagle""deploy_weapon"1)
        
    register_forward(FM_SetModel"set_model"1)
    }

    public 
    plugin_precache()
    {
        
    precache_model(DEAGLE_V_MODEL)
        
    precache_model(DEAGLE_P_MODEL)
        
    precache_model(DEAGLE_W_MODEL)
    }
     
    public 
    player_spawn(id)
    {
        if(
    deagle_allow(id))
            
    give_deagle(id"weapon_deagle"CSW_DEAGLE35)
    }

    public 
    deploy_weapon(ent)
    {
        static 
    wpnwpn pev(entpev_iuser1)
        if(!
    wpn)
            return

        static 
    idid get_pdata_cbase(entm_pPlayerm_linux_entity)
     
        
    set_pev(idpev_viewmodel2DEAGLE_V_MODEL)
        
    set_pev(idpev_weaponmodel2DEAGLE_P_MODEL)
    }

    public 
    set_model(entmodel[])
    {
        if(!
    pev_valid(ent))
            return
     
        static 
    classname[10]; pev(entpev_classnameclassnamecharsmax(classname))
        if(!
    equal(classname"weaponbox"))
            return

        static 
    drop
        
    for(new MAX_ITEM_TYPESi++)
        {
            
    drop get_pdata_cbase(entm_rgpPlayerItems[i], m_linux_entity)
            if(
    drop 1)
                continue
            break
        }
     
        if(
    drop 1)
            return
     
        static 
    wpnwpn pev(droppev_iuser1)
        if(!
    wpn)
            return

        
    engfunc(EngFunc_SetModelentDEAGLE_W_MODEL)
    }

    give_deagle(idwpnName[], wpnIDiAmmo)
    {
        new 
    weapons[32], numi
        get_user_weapons
    (idweaponsnum)
     
        static 
    weap_name[32]
        for(
    0numi++)
        {
            if(
    SECONDARY_WEAPON & (1<<weapons[i]))
            {
                
    get_weaponname(weapons[i], weap_namesizeof weap_name 1)
                if(!
    equali(weap_namewpnName))
                    
    engclient_cmd(id"drop"weap_name)
            }
        }

        static 
    entent fm_give_item(idwpnName)
        if(!
    pev_valid(ent))
            return 
    1
     
        set_pev
    (entpev_iuser1wpnID)
        
    cs_set_user_bpammo(idwpnIDiAmmo)
        
    deploy_weapon(ent)
        
    engclient_cmd(idwpnName)
     
        return 
    0
    }

    stock booldeagle_allow(const id)
    {
        if(
    is_user_alive(id) && (get_user_flags(id) & flag))
            return 
    true

        
    return false
    }
     
    Последнее редактирование: 11.02.16
    forwardekt нравится это.
  3. forwardekt VIP user

    Регистрация:
    24.05.15
    Сообщения:
    13
    Симпатии:
    3
    Пол:
    Мужской
    Skype:
    f-o-r-w-a-r-d
    Отлично. От души.
     
  4. forwardekt VIP user

    Регистрация:
    24.05.15
    Сообщения:
    13
    Симпатии:
    3
    Пол:
    Мужской
    Skype:
    f-o-r-w-a-r-d
    zhorzh78

    Я не сказал, что функционал по увеличению урона нужно оставить, можно это добавить? А то он стал обычный дигл, только золотой.
    Заранее спасибо.
     
  5. zhorzh78 Пользователь

    Регистрация:
    24.08.15
    Сообщения:
    156
    Симпатии:
    53
    Пол:
    Мужской
    PHP:
    #include <amxmodx>
    #include <cstrike>
    #include <fakemeta_util>
    #include <hamsandwich>

    #define PLUGIN "Golden Deagle"
    #define VERSION "1.1"
    #define AUTHOR "no matter"

    #define flag ADMIN_RESERVATION

    #define MAX_ITEM_TYPES          6
    #define m_linux_entity          4
    #define m_pPlayer               41
    #define DMG_VALUE                2.0 //множитель урона

    #define SECONDARY_WEAPON ((1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_P228)|(1<<CSW_DEAGLE))

    new g_maxPlayers
    new const m_rgpPlayerItems[MAX_ITEM_TYPES] = {3435, ...}

    new const 
    DEAGLE_V_MODEL[] = "models/v_golden_deagle.mdl"
    new const DEAGLE_P_MODEL[] = "models/p_golden_deagle.mdl"
    new const DEAGLE_W_MODEL[] = "models/w_golden_deagle.mdl"



    public plugin_init()
    {     
        
    register_plugin(PLUGINVERSIONAUTHOR)

        
    RegisterHam(Ham_Spawn"player""player_spawn"1)
        
    RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")
        
    RegisterHam(Ham_Item_Deploy"weapon_deagle""deploy_weapon"1)

        
    register_forward(FM_SetModel"set_model"1)
     
        
    g_maxPlayers get_maxplayers()
    }

    public 
    plugin_precache()
    {
        
    precache_model(DEAGLE_V_MODEL)
        
    precache_model(DEAGLE_P_MODEL)
        
    precache_model(DEAGLE_W_MODEL)
    }
     
    public 
    player_spawn(id)
    {
        if(
    deagle_allow(id))
            
    give_deagle(id"weapon_deagle"CSW_DEAGLE35)
    }

    public 
    deploy_weapon(ent)
    {
        static 
    idid get_pdata_cbase(entm_pPlayerm_linux_entity)
        static 
    wpnwpn pev(entpev_iuser1)
        if(!
    wpn)
        {
            
    set_pev(idpev_euser10)
            return
        }

        
    set_pev(idpev_viewmodel2DEAGLE_V_MODEL)
        
    set_pev(idpev_weaponmodel2DEAGLE_P_MODEL)
        
    set_pev(idpev_euser11)
    }

    public 
    set_model(entmodel[])
    {
        if(!
    pev_valid(ent))
            return
     
        static 
    classname[10]; pev(entpev_classnameclassnamecharsmax(classname))
        if(!
    equal(classname"weaponbox"))
            return

        static 
    drop
        
    for(new MAX_ITEM_TYPESi++)
        {
            
    drop get_pdata_cbase(entm_rgpPlayerItems[i], m_linux_entity)
            if(
    drop 1)
                continue
            break
        }
     
        if(
    drop 1)
            return
     
        static 
    wpnwpn pev(droppev_iuser1)
        if(!
    wpn)
            return

        
    engfunc(EngFunc_SetModelentDEAGLE_W_MODEL)
    }

    give_deagle(idwpnName[], wpnIDiAmmo)
    {
        new 
    weapons[32], numi
        get_user_weapons
    (idweaponsnum)
     
        static 
    weap_name[32]
        for(
    0numi++)
        {
            if(
    SECONDARY_WEAPON & (1<<weapons[i]))
            {
                
    get_weaponname(weapons[i], weap_namesizeof weap_name 1)
                if(!
    equali(weap_namewpnName))
                    
    engclient_cmd(id"drop"weap_name)
            }
        }

        static 
    entent fm_give_item(idwpnName)
        if(!
    pev_valid(ent))
            return 
    1
     
        set_pev
    (entpev_iuser1wpnID)
        
    cs_set_user_bpammo(idwpnIDiAmmo)
        
    deploy_weapon(ent)
        
    engclient_cmd(idwpnName)
     
        return 
    0
    }

    public 
    fw_TakeDamage(victiminflictorattackerFloat:damage)
    {
        if(!
    attacker || attacker g_maxPlayers)
            return 
    HAM_IGNORED

        
    static wpnwpn pev(attackerpev_euser1)
        if(!
    wpn)
            return 
    HAM_IGNORED
     
        SetHamParamFloat
    (4damage DMG_VALUE)

        return 
    HAM_IGNORED
    }
     
    stock booldeagle_allow(const id)
    {
        if(
    is_user_alive(id) && (get_user_flags(id) & flag))
            return 
    true

        
    return false
    }
     
    shram_47 и forwardekt нравится это.
  6. zhorzh78 Пользователь

    Регистрация:
    24.08.15
    Сообщения:
    156
    Симпатии:
    53
    Пол:
    Мужской
    Измени строку, а то ставлю по привычке...
    PHP:
    #define flag ADMIN_RESERVATION
    =>
    #define flag ADMIN_LEVEL_H
     
    forwardekt нравится это.
  7. forwardekt VIP user

    Регистрация:
    24.05.15
    Сообщения:
    13
    Симпатии:
    3
    Пол:
    Мужской
    Skype:
    f-o-r-w-a-r-d
  8. forwardekt VIP user

    Регистрация:
    24.05.15
    Сообщения:
    13
    Симпатии:
    3
    Пол:
    Мужской
    Skype:
    f-o-r-w-a-r-d
    Теперь, как выяснилось, у всего оружия стал урон х2 . Можно поправить?
    Спасибо.
     
  9. zhorzh78 Пользователь

    Регистрация:
    24.08.15
    Сообщения:
    156
    Симпатии:
    53
    Пол:
    Мужской
    Урон стал конкретно у данного оружия.. Т.е. урон установлен Оружию, а не игроку. Взял этот дигл- получил возможность двойного урона. Взял обычный дигл- двойного урона не будет
     
  10. forwardekt VIP user

    Регистрация:
    24.05.15
    Сообщения:
    13
    Симпатии:
    3
    Пол:
    Мужской
    Skype:
    f-o-r-w-a-r-d
    Игроки говорят, что увеличился урон и с апв и с калаша, убивают с двух выстрелов, не только с дигла золотого.
     
  11. zhorzh78 Пользователь

    Регистрация:
    24.08.15
    Сообщения:
    156
    Симпатии:
    53
    Пол:
    Мужской
    Измените строку 132.. пока так.. потом что-нибудь решу
    PHP:
    if(!wpn || get_user_weapon(attacker) != CSW_DEAGLE)
     
    shram_47 и forwardekt нравится это.
  12. forwardekt VIP user

    Регистрация:
    24.05.15
    Сообщения:
    13
    Симпатии:
    3
    Пол:
    Мужской
    Skype:
    f-o-r-w-a-r-d
    131 мб?
    Код:
    if(!wpn)
    =>
    if(!wpn || get_user_weapon(attacker) != CSW_DEAGLE)
    --- добавлено 12.02.16 ---
    Еще момент, двойной урон у всего оружия у всех игроков и у вип и у простых.
    Спасибо, буду ждать.
     
  13. zhorzh78 Пользователь

    Регистрация:
    24.08.15
    Сообщения:
    156
    Симпатии:
    53
    Пол:
    Мужской
    Да
    Сейчас будет урон только у дигла, но у любого игрока, имеющего эту модель. Возьмет этот дигл простой игрок- будет и у него двойной урон. Это логично. Золотой дигл- двойной урон, независимо от игрока
     
    forwardekt нравится это.