плагин оружия

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
137
Реакции
9
Помог
3 раз(а)
Здравствуйте. Вообщем дело такое. Есть плагин. В нем когда я ставлю 2 модели p.v то в игре не отображаеться оружие в руках. а сбоку стандартное показывает. Но когда я убираю модель из плагина p. то в игре отображаеться оружие в руках. но сбоку как и полагаеться дефолтное. И еще есть фикс например если у меня есть ака и я беру мк из плагина. то у меня становиться 2 оружие прежнее не выкидываеться.
Код:
#include <amxmodx>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <cstrike>
#include <colorchat>

#define is_valid_player(%1) (1 <= %1 <= 32)

new const DEAGLE_BIT_SUM = (1<<CSW_DEAGLE)

new DG_V_MODEL[64] = "models/B_O/v_deagle.mdl"
new DG_P_MODEL[64] = "models/B_O/p_deagle.mdl"

new g_hasZoom[33], gold_damage, golden_model, golddg_cost
new bool:g_HasDg[33]

public plugin_init() {
    register_plugin("GoldenDEAGLE Remake ", "1.0", "prOSanek")
    register_clcmd("bldg", "cmdGoldenDg")
    
    gold_damage = register_cvar("goldendg_dmg", "2.0")
    golden_model = register_cvar("goldendg_custommodel", "1")
    golddg_cost = register_cvar("goldendg_cost", "0")
      
    register_event("DeathMsg", "Death", "a")
    register_event("WeapPickup", "checkModel", "b","1=19")
    register_event("CurWeapon", "checkWeapon", "be","1=1")

    RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
    RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
        
    register_forward(FM_CmdStart, "fw_CmdStart")
}
 
public client_connect(id)
    g_HasDg[id] = false
 
public client_disconnect(id)
    g_HasDg[id] = false
 
public Death()
    g_HasDg[read_data(2)] = false
 
public fwHamPlayerSpawnPost(id)
    g_HasDg[id] = false
 
public plugin_precache() {
    precache_model(DG_V_MODEL)
    precache_model(DG_P_MODEL)
    precache_sound("weapons/zoom.wav")
}

public cmdGoldenDg(id) {
    if(!is_user_alive(id)) return
    
    new money = cs_get_user_money(id)
    
    if(money < get_pcvar_num(golddg_cost)) {
        ColorChat(id, RED, "^x01У вас недостаточно денег")
        return
    }
    
    drop_weapon(id, 1)               
    give_item(id, "weapon_deagle")
    cs_set_user_bpammo(id, CSW_DEAGLE, 90)
    cs_set_user_money(id, money - get_pcvar_num(golddg_cost))
    ColorChat(id, RED, "^x01[^x04Элитный Магазин^x01] Вы купили^x04 Кровавая пуля")
    g_HasDg[id] = true
}

public checkModel(id) {     
    new szWeapID = read_data(2)
      
    if(szWeapID == CSW_DEAGLE && g_HasDg[id] == true && get_pcvar_num(golden_model) == 1) {
        set_pev(id, pev_viewmodel2, DG_V_MODEL)
        set_pev(id, pev_viewmodel2, DG_P_MODEL)
    }
    return PLUGIN_HANDLED
}

public checkWeapon(id) {
    new plrWeapId
    plrWeapId = get_user_weapon(id)

    if (plrWeapId == CSW_DEAGLE && g_HasDg[id])
        checkModel(id)
    else
        return PLUGIN_CONTINUE
    
    return PLUGIN_HANDLED
}

public fw_TakeDamage(victim, inflictor, attacker, Float:damage) {
    if(is_valid_player(attacker) && get_user_weapon(attacker) == CSW_DEAGLE && g_HasDg[attacker])
        SetHamParamFloat(4, damage * get_pcvar_float(gold_damage))
}

public fw_CmdStart( id, uc_handle, seed ) {
    if(!is_user_alive(id))
        return PLUGIN_HANDLED
      
    if((get_uc(uc_handle, UC_Buttons) & IN_ATTACK2) && !( pev(id, pev_oldbuttons) & IN_ATTACK2)) {
        new szWeapID = get_user_weapon(id)

        if(szWeapID == CSW_DEAGLE && g_HasDg[id] == true && !g_hasZoom[id] == false) {
            g_hasZoom[id] = false
            cs_set_user_zoom(id, CS_SET_AUGSG552_ZOOM, 0)
            emit_sound(id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100)
        } else if(szWeapID == CSW_DEAGLE && g_HasDg[id] == true && g_hasZoom[id]) {
            g_hasZoom[id] = false
            cs_set_user_zoom(id, CS_RESET_ZOOM, 0)         
        }
    }
    return PLUGIN_HANDLED
}

stock drop_weapon(id, dropwhat) {
    static weapons[32], num, i, weaponid
    num = 0
    get_user_weapons(id, weapons, num)
    
    for (i = 0; i < num; i++) {
        weaponid = weapons[i]
        
        if ((dropwhat == 1 && ((1<<weaponid) & DEAGLE_BIT_SUM))) {
            static wname[32]
            get_weaponname(weaponid, wname, charsmax(wname))
            engclient_cmd(id, "drop", wname)
        }
    }
}
 
Сообщения
1,182
Реакции
2,146
Помог
57 раз(а)
когда я ставлю 2 модели p.v то в игре не отображаеться оружие в руках
Потому что нужно
Код:
set_pev(id, pev_viewmodel2, DG_V_MODEL)
-set_pev(id, pev_viewmodel2, DG_P_MODEL)
+set_pev(id, pev_weaponmodel2, DG_P_MODEL)

если у меня есть ака и я беру мк из плагина. то у меня становиться 2 оружие прежнее не выкидываеться.
Не вижу в коде ничего об этом.

В чём заключается ваш вопрос? В том, почему плагин неправильно работает? Отвечаю: плагин плохой. Нужно заменить нормальной алтернативой.
 
Сообщения
137
Реакции
9
Помог
3 раз(а)
BlackSignature, Да спасибо за помощь. А какую альтернативу можешь предложить? я сам понимаю что не ахти этот плагин.
 
Сообщения
56
Реакции
8
Помог
3 раз(а)
denbtr, просмотри раздел плагинов, их не так много. И выбери себе нужный. Сложно предлагать не зная что именно тебе нужно и на чем у тебя сервер стоит, если ли реапи и т.д.
 
Сообщения
137
Реакции
9
Помог
3 раз(а)
Ukraine_Ganibal, Я сейчас посмотрел. плагины есть в сборе к випам плагинам. Они я посмотрел лучше всего работают в соотношении. а вот отдельных не видел на оружие под реапи.
 
Сообщения
2,491
Реакции
2,791
Помог
61 раз(а)
denbtr, Скажете откуда у вас плагин. Ибо автор неизвестный, а оригинальный плагин под другим автором и датируется 2011 годом

Код:
#include <amxmodx>
#include <hamsandwich>
#include <reapi>

const ID = 100034;
new const DG_V_MODEL[] = "models/B_O/v_deagle.mdl";
new const DG_P_MODEL[] = "models/B_O/p_deagle.mdl";
const Float:DAMAGE = 108.0;

public plugin_init() {
    register_clcmd("bldg", "cmdGoldenDg");
    RegisterHam(Ham_Item_Deploy, "weapon_deagle", "HookItemDeploy", 1);
    RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_deagle", "HookSecondaryAttack", 0);
}

public plugin_precache() {
    precache_model(DG_V_MODEL);
    precache_model(DG_P_MODEL);
    precache_sound("weapons/zoom.wav");
}

public cmdGoldenDg(id) {
    if (is_user_alive(id)) {
        new weapon = rg_give_custom_item(id, "weapon_deagle", GT_DROP_AND_REPLACE, ID);
        if (!is_nullent(weapon)) {
            rg_set_user_bpammo(id, WEAPON_DEAGLE, 90)
            set_member(weapon, m_Weapon_flBaseDamage, DAMAGE);
            set_member(weapon, m_Weapon_bHasSecondaryAttack, true);
            client_print_color(id, print_team_red, "^1[^4Элитный Магазин^1] Вы купили ^3Кровавая пуля");
        }
    }

    return PLUGIN_HANDLED_MAIN;
}

public HookItemDeploy(const weapon) {
    if (get_entvar(weapon, var_impulse) == ID) {
        new id = get_member(weapon, m_pPlayer);
        set_entvar(id, var_viewmodel, DG_V_MODEL);
        set_entvar(id, var_weaponmodel, DG_P_MODEL);
    }
}

public HookSecondaryAttack(const weapon) {
    if (get_entvar(weapon, var_impulse) != ID) {
        return HAM_IGNORED;
    }
    set_member(weapon, m_Weapon_flNextSecondaryAttack, 0.3);
    new id = get_member(weapon, m_pPlayer);
    if (get_member(id, m_iFOV) == 90) {
        set_member(id, m_iFOV, 55);
        emit_sound(id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100);
    } else {
        set_member(id, m_iFOV, 90);
    }
    return HAM_SUPERCEDE;
}
 
Сообщения
137
Реакции
9
Помог
3 раз(а)
fantom, Плагин нашел в сети интернета. Я сейчас уже не смогу сказать где скачал исходник поскольку он давно у меня лежал. и вот только недавно я решил сделать дополнительное оружие. После этой темы яя уже нашел ваш плагин https://dev-cs.ru/threads/1983/page-3 и понял что этот плагин который у меня уже не актуален. Буду использовать ваашь. только есть вопрос я пока что не тестил и не успел поставить там выкидываеться оружие предыдущее которое было взято. сервер у меня ксдм. если да то с удовольствием буду испытывать вашу наработку.
2 Фев 2019
fantom, И спасибо вам за плагин
2 Фев 2019
fantom, я еще добавил #include <colorchat> иначе не работал текс и не компилировалось
2 Фев 2019
fantom, поставил этот код но оружие не работает не береться. в логах вот что
L 02/02/2019 - 04:06:51: [AMXX] Run time error 1 (plugin "b_o_deagle.amxx") - forced exit
Executing ReGameDLL Configuration File
ReGameDLL version: 5.7.0.295-dev
Build date: 15:10:22 Feb 19 2018
Build from: https://github.com/s1lentq/ReGameDLL_CS/commit/aa329db
возможно стоит обновить наверное?
 
Сообщения
137
Реакции
9
Помог
3 раз(а)
fantom, Что то посмотрел. не могу найти нужные версии. не кинете ссылку на необходимые обновления?
 
Сообщения
2,491
Реакции
2,791
Помог
61 раз(а)
denbtr, самые последние. На главной в правом верхнем углу ссилки
 
Сообщения
137
Реакции
9
Помог
3 раз(а)
fantom, Вот я тормоз. думал лайт версии а не ласт. Все разобрался. спасибо.
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу