Добро пожаловать

Для полноценного пользования форумом и общения с его участниками, пройдите регистрацию ниже
Регистрация

Решено написать плагин

Тема в разделе "Свалка", создана пользователем maaxru, 7 сен 2017.

Статус темы:
Закрыта.
  1. maaxru

    maaxru Пользователь

    122
    8
    60
    Всем привет, есть плагин ограничение потронов на скорострелку, авп, пулемет, проблема в том что нету исходника, я плагин декомпилировал и получилось вот это (как все знают не полный код)
    // Ignored xs__ variables
    #pragma semicolon 1
    #pragma ctrlchar '\'


    fm_find_ent_by_owner(index, String:classname[], owner, jghgtype)
    {
    new strtype[11];
    strtype[0] = 0;
    new ent = index;
    switch (jghgtype)
    {
    case 1:
    {
    strtype[0] = 40;
    }
    case 2:
    {
    strtype[0] = 68;
    }
    default:
    {
    }
    }

    / * ERROR! Unable to cast object of type 'Lysis.DSentinel' to type 'Lysis.DReturn'. * /
    function "fm_find_ent_by_owner"
    fm_find_ent_by_owner(index, String:classname[], owner, jghgtype)

    public plugin_init()
    {
    register_plugin("WeaponAmmo", "1.0", "ViniPux");
    register_event("CurWeapon", "event_CurWeapon", "be", "1=1");
    return 0;
    }

    public event_CurWeapon(id)
    {
    !!! Removed Phi
    if (get_user_flags(id, 0) & 2)
    {
    return 1;
    }
    if (get_user_weapon(id, 0, 0) == 20 && cs_get_weapon_ammo(weapon_id) > 45)
    {
    cs_set_weapon_ammo(weapon_id, 45);
    cs_set_user_bpammo(id, 20, cs_get_user_bpammo(id, 20) + 55);
    }
    if (get_user_weapon(id, 0, 0) == 24 && cs_get_weapon_ammo(weapon_id_tt) > 10)
    {
    cs_set_weapon_ammo(weapon_id_tt, 10);
    cs_set_user_bpammo(id, 24, cs_get_user_bpammo(id, 24) + 20);
    }
    if (get_user_weapon(id, 0, 0) == 13 && cs_get_weapon_ammo(weapon_id_ct) > 15)
    {
    cs_set_weapon_ammo(weapon_id_ct, 15);
    cs_set_user_bpammo(id, 13, cs_get_user_bpammo(id, 13) + 5);
    }
    if (get_user_weapon(id, 0, 0) == 18 && cs_get_weapon_ammo(weapon_id_awp) > 4)
    {
    cs_set_weapon_ammo(weapon_id_awp, 4);
    cs_set_user_bpammo(id, 18, cs_get_user_bpammo(id, 18) + 6);
    }
    return 0;
    }

    помогите написать данный плагин, подскажите нативы, инклюды (я по такому 0)
     
  2. Izzatillo

    Izzatillo Проверенный

    480
    199
    170
    maaxru, инклюды
    fakemeta_util.inc
    cstrike.inc
     
  3. maaxru

    maaxru Пользователь

    122
    8
    60
    cпс, щас попробую
    --- Сообщение склеено, 7 сен 2017 ---
    Вот тут должен быть название оружия ? к примеру CSW_M4A1
    if (get_user_weapon(id, 0, 0) == 20 && cs_get_weapon_ammo(weapon_id) > 45)
     
  4. maaxru

    maaxru Пользователь

    122
    8
    60
    не получается у меня(
     
  5. Izzatillo

    Izzatillo Проверенный

    480
    199
    170
    maaxru, подождите может кто-то более опытные люди подскажет.
    если вам. так необходим такой плагин закажите.
     
  6. maaxru

    maaxru Пользователь

    122
    8
    60
    подожду, если никто не поможет закажу
     
  7. Lanister

    Lanister Проверенный

    14
    28
    30
    Я 1 один не понял логику плагина или я переработал?!
    Тоесть он проверяет сколько патронов в стволе, скидывает их и остальное докидывает в запас, но после перезарядки они снова станут по дефолту, он опять сбросит и накинет в запас = бесконечные патроны?!?!?!?!... Рано я бросил курить гашиш =)

    Код:
    #include <amxmodx>
    #include <cstrike>
    #include <fakemeta_util>
    
    
    public plugin_init()
    {
        register_plugin("WeaponAmmo", "1.0", "ViniPux")
    
        register_event("CurWeapon", "event_CurWeapon", "be", "1=1")
    }
    
    public event_CurWeapon(id)
    {
        if(get_user_flags(id) & ADMIN_KICK)
            return PLUGIN_CONTINUE
    
        static iWeapon, iWeaponEnt
        iWeapon = get_user_weapon(id)
    
    
        switch( iWeapon )
        {
            case CSW_M249:
            {
                iWeaponEnt = fm_find_ent_by_owner(-1, "weapon_m249", id)
                if(!iWeaponEnt)
                    return PLUGIN_CONTINUE
    
                if(cs_get_weapon_ammo(iWeaponEnt) > 45)
                {
                    cs_set_weapon_ammo(iWeaponEnt, 45)
                    cs_set_user_bpammo(id, CSW_M249, cs_get_user_bpammo(id, CSW_M249) + 55)
                }
            }
    
            case CSW_G3SG1:
            {
                iWeaponEnt = fm_find_ent_by_owner(-1, "weapon_g3sg1", id)
                if(!iWeaponEnt)
                    return PLUGIN_CONTINUE
    
                if(cs_get_weapon_ammo(iWeaponEnt) > 10)
                {
                    cs_set_weapon_ammo(iWeaponEnt, 10)
                    cs_set_user_bpammo(id, CSW_G3SG1, cs_get_user_bpammo(id, CSW_G3SG1) + 20)
                }
            }
    
            case CSW_SG550:
            {
                iWeaponEnt = fm_find_ent_by_owner(-1, "weapon_sg550", id)
                if(!iWeaponEnt)
                    return PLUGIN_CONTINUE
    
                if(cs_get_weapon_ammo(iWeaponEnt) > 15)
                {
                    cs_set_weapon_ammo(iWeaponEnt, 15)
                    cs_set_user_bpammo(id, CSW_SG550, cs_get_user_bpammo(id, CSW_SG550) + 5)
                }
            }
    
            case CSW_AWP:
            {
                iWeaponEnt = fm_find_ent_by_owner(-1, "weapon_awp", id)
                if(!iWeaponEnt)
                    return PLUGIN_CONTINUE
    
                if(cs_get_weapon_ammo(iWeaponEnt) > 4)
                {
                    cs_set_weapon_ammo(iWeaponEnt, 4)
                    cs_set_user_bpammo(id, CSW_AWP, cs_get_user_bpammo(id, CSW_AWP) + 6)
                }
            }
        }
        return PLUGIN_CONTINUE
    }
     
  8. maaxru

    maaxru Пользователь

    122
    8
    60
    спасибо большое, я незнаю ее логику плагин старый
     
  9. 3BEPb

    3BEPb Проверенный

    218
    141
    110
    Чтобы знать что делает код, его нужно читать. а не просто буковки разглядывать. Что не знаешь или непонятно искать в инете, глядишь и разберёшься.
     
  10. maaxru

    maaxru Пользователь

    122
    8
    60
    так как я учусь по немножко смотря на то что и как реалезовано, я с таким плагином не сталкивался(смена патронов и.т.д) я многому научился благодаря этому форуму, я искал в интернете но ни где не находил
     
  11. Izzatillo

    Izzatillo Проверенный

    480
    199
    170
    тема закрыта
     
Статус темы:
Закрыта.