/* Plugin generated by AMXX-Studio */
 
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <engine>
#include <hamsandwich>
 
#define MAX 170
 
new const PLUGIN[] = "Global Offensive"
new const VERSION[] = "1.1"
new const AUTHOR[] = "Pista"
 
new Skinek[MAX][33], Skin[MAX][33]
 
new const ALAPMODELEK[][] = { 
    "rsTGO/ALAP/M4A1",
    "rsTGO/ALAP/AK47",
    "rsTGO/ALAP/AWP",
    "rsTGO/ALAP/DEAGLE",
    "rsTGO/ALAP/USP",
    "rsTGO/ALAP/GLOCK",
    "rsTGO/ALAP/FAMAS",
    "rsTGO/ALAP/MP5",
    "rsTGO/ALAP/C4",
    "rsTGO/ALAP/HE",
    "rsTGO/ALAP/FLASH",
    "rsTGO/ALAP/KNIFE"
}
 
new const WEAPONENTNAMES[][] = {"weapon_ak47", "weapon_m4a1"};
new const weapnames[] = {CSW_AK47, CSW_M4A1}
 
public plugin_precache() {
    new szText[512]
    
    for(new i;i < 11; i++) {
        format(szText, charsmax(szText), "models/%s.mdl", ALAPMODELEK[i])
        precache_model(szText)
    }
    precache_model("models/rsTGO/ALAP/KNIFE.mdl")
}
public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_event("CurWeapon", "Fegyverek", "be", "1=1")
    register_impulse(100, "ClCmd_Impulse")
    for(new i = 0; i < sizeof(WEAPONENTNAMES); i++) {
        RegisterHam(Ham_Item_Deploy, WEAPONENTNAMES[i], "OnItemDeployPost", 1);
    }
}
public OnItemDeployPost(ent) {
    new id = entity_get_edict(ent, EV_ENT_owner);
    if(id) {
        new Weapon = cs_get_weapon_id(ent);
        
        for(new i; i < sizeof(weapnames); i++) {
            if(Weapon == weapnames[i]) {
                entity_set_string(id, EV_SZ_viewmodel, ALAPMODELEK[i])
            }
        }
    }
    return HAM_IGNORED;
}
public ClCmd_Impulse(id) {
    const m_iId = 43
    const m_pActiveItem = 373
    
    new ActiveItem = get_pdata_cbase(id, m_pActiveItem)
    new Weapon = get_pdata_int(ActiveItem, m_iId, ._linuxdiff = 4);
    for(new i; i < sizeof(weapnames); i++) {
        if(Weapon == weapnames[i]) {
            SendWeaponAnim2(id, .iAnim = (weapnames[i] == CSW_M4A1 ? 15:6))
            return PLUGIN_HANDLED
        }
    }
    return PLUGIN_CONTINUE
}
public Fegyverek(id) {
    new szText[512]
    new Fegyver = get_user_weapon(id)
    
    if(Skinek[0][id] == 0 && Fegyver == CSW_M4A1 && Skin[0][id] == 0) {
        format(szText, charsmax(szText), "models/%s.mdl", ALAPMODELEK[0])
        set_pev(id, pev_viewmodel2, szText)
    }
    if(Skinek[0][id] == 0 && Fegyver == CSW_AK47 && Skin[1][id] == 0) {
        format(szText, charsmax(szText), "models/%s.mdl", ALAPMODELEK[1])
        set_pev(id, pev_viewmodel2, szText)
    }
    if(Skinek[0][id] == 0 && Fegyver == CSW_AWP && Skin[2][id] == 0) {
        format(szText, charsmax(szText), "models/%s.mdl", ALAPMODELEK[2])
        set_pev(id, pev_viewmodel2, szText)
    }
    if(Skinek[0][id] == 0 && Fegyver == CSW_DEAGLE && Skin[3][id] == 0) {
        format(szText, charsmax(szText), "models/%s.mdl", ALAPMODELEK[3])
        set_pev(id, pev_viewmodel2, szText)
    }
    if(Skinek[0][id] == 0 && Fegyver == CSW_USP && Skin[4][id] == 0) {
        format(szText, charsmax(szText), "models/%s.mdl", ALAPMODELEK[4])
        set_pev(id, pev_viewmodel2, szText)
    }
    if(Skinek[0][id] == 0 && Fegyver == CSW_GLOCK18 && Skin[5][id] == 0) {
        format(szText, charsmax(szText), "models/%s.mdl", ALAPMODELEK[5])
        set_pev(id, pev_viewmodel2, szText)
    }
    if(Skinek[0][id] == 0 && Fegyver == CSW_FAMAS && Skin[6][id] == 0) {
        format(szText, charsmax(szText), "models/%s.mdl", ALAPMODELEK[6])
        set_pev(id, pev_viewmodel2, szText)
    }
    if(Skinek[0][id] == 0 && Fegyver == CSW_MP5NAVY && Skin[7][id] == 0) {
        format(szText, charsmax(szText), "models/%s.mdl", ALAPMODELEK[7])
        set_pev(id, pev_viewmodel2, szText)
    }
    if(Skinek[0][id] == 0 && Fegyver == CSW_C4 && Skin[8][id] == 0) {
        format(szText, charsmax(szText), "models/%s.mdl", ALAPMODELEK[8])
        set_pev(id, pev_viewmodel2, szText)
    }
    if(Skinek[0][id] == 0 && Fegyver == CSW_HEGRENADE && Skin[9][id] == 0) {
        format(szText, charsmax(szText), "models/%s.mdl", ALAPMODELEK[9])
        set_pev(id, pev_viewmodel2, szText)
    }
    if(Skinek[0][id] == 0 && Fegyver == CSW_FLASHBANG && Skin[10][id] == 0) {
        format(szText, charsmax(szText), "models/%s.mdl", ALAPMODELEK[10])
        set_pev(id, pev_viewmodel2, szText)
    }
    if(Skinek[0][id] == 0 && Fegyver == CSW_KNIFE && Skin[11][id] == 0) {
        format(szText, charsmax(szText), "models/%s.mdl", ALAPMODELEK[11])
        set_pev(id, pev_viewmodel2, szText)
    }
}   
stock SendWeaponAnim(id, iAnim) {
    set_pev(id, pev_weaponanim, iAnim)
 
    message_begin(MSG_ONE/* _UNRELIABLE */, SVC_WEAPONANIM, _, id)
    write_byte(iAnim)
    write_byte(pev(id, pev_body))
    message_end()
}
stock SendWeaponAnim2(id, iAnim) {
    entity_set_int(id, EV_INT_weaponanim, iAnim)
 
    message_begin(MSG_ONE/* _UNRELIABLE */, SVC_WEAPONANIM, _, id)
    write_byte(iAnim)
    write_byte(entity_get_int(id, EV_INT_body))
    message_end()
}