Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- new g_iPickedSkin[33][33][2], g_iLastTouch[33];
- public plugin_init() {
- register_forward(FM_UpdateClientData, "fmClientData", 1);
- register_forward(FM_SetModel, "fw_setmodel");
- RegisterHam(Ham_Touch, "weaponbox", "fw_Touch");
- register_event("WeapPickup", "WeapPickup", "be", "1=28", "1=26", "1=22", "1=19", "1=18", "1=17", "1=16", "1=15");
- }
- public fw_setmodel(ent, model[]) {
- new owner = entity_get_edict(ent, EV_ENT_owner);
- if(!is_user_connected(owner)) return FMRES_IGNORED;
- if(equali(model, "models/w_weaponbox.mdl")) return FMRES_IGNORED;
- new skin = -1, weapon = 0;
- if(equali(model, "models/w_knife.mdl")) {
- weapon = CSW_KNIFE;
- }
- else if(equali(model, "models/w_ak47.mdl")) {
- weapon = CSW_AK47;
- }
- else if(equali(model, "models/w_m4a1.mdl")) {
- weapon = CSW_M4A1;
- }
- else if(equali(model, "models/w_awp.mdl")) {
- weapon = CSW_AWP;
- }
- else if(equali(model, "models/w_deagle.mdl")) {
- weapon = CSW_DEAGLE;
- }
- skin = pSkins[owner][weapon];
- if(skin == -1) return FMRES_IGNORED;
- new name[33];
- get_user_name(owner, name, 32)
- if(g_iPickedSkin[owner][weapon][1] != -1) {
- entity_set_int(ent, EV_INT_iuser1, 768);
- entity_set_int(ent, EV_INT_iuser2, g_iPickedSkin[owner][weapon][0]);
- entity_set_int(ent, EV_INT_iuser3, g_iPickedSkin[owner][weapon][1]);
- entity_set_int(ent, EV_INT_iuser4, weapon);
- g_iPickedSkin[owner][weapon][0] = 0;
- g_iPickedSkin[owner][weapon][1] = -1;
- return FMRES_IGNORED;
- }
- g_iPickedSkin[owner][weapon][0] = 0;
- g_iPickedSkin[owner][weapon][1] = -1;
- entity_set_int(ent, EV_INT_iuser1, 768);
- entity_set_int(ent, EV_INT_iuser2, owner);
- entity_set_int(ent, EV_INT_iuser3, skin);
- entity_set_int(ent, EV_INT_iuser4, weapon);
- return FMRES_IGNORED;
- }
- public fw_Touch(iEnt, iPlayer) {
- if(!is_user_connected(iPlayer))
- return HAM_IGNORED;
- new szModel[64];
- entity_get_string(iEnt, EV_SZ_model, szModel, 63);
- if(equali(szModel, "models/w_weaponbox.mdl")) return HAM_IGNORED;
- new isSkin = entity_get_int(iEnt, EV_INT_iuser1);
- if(isSkin == 768) {
- g_iLastTouch[iPlayer] = iEnt;
- }
- return HAM_IGNORED;
- }
- public WeapPickup(iPlayer) {
- new iWeapon = read_data(1);
- new iEnt = g_iLastTouch[iPlayer];
- if(!g_iLastTouch[iPlayer] || !is_valid_ent(iEnt)) return PLUGIN_CONTINUE;
- new isSkin = entity_get_int(iEnt, EV_INT_iuser1);
- new owner = entity_get_int(iEnt, EV_INT_iuser2);
- new skin = entity_get_int(iEnt, EV_INT_iuser3);
- new weapon = entity_get_int(iEnt, EV_INT_iuser4);
- if(isSkin != 768 || weapon != iWeapon || owner == iPlayer || !is_user_connected(owner)) return PLUGIN_CONTINUE;
- g_iLastTouch[iPlayer] = 0;
- g_iPickedSkin[iPlayer][weapon][0] = owner;
- g_iPickedSkin[iPlayer][weapon][1] = skin;
- return PLUGIN_CONTINUE;
- }
- public fmClientData( id, sendweapons, cd_handle ){
- if( !is_user_connected( id ) || get_cd( cd_handle , CD_ViewModel ) == 0){
- return FMRES_IGNORED;
- }
- new weapon;
- new target = is_user_alive(id) ? id : pev(id, pev_iuser2);
- if(target) {
- weapon = get_user_weapon(target);
- SetSkin(target, cd_handle, weapon, id);
- }
- return FMRES_IGNORED;
- }
- public SetSkin(id, cd, weapon, owner) {
- if(pSkins[id][weapon] == -1 && g_iPickedSkin[id][weapon][1] == -1)
- return FMRES_HANDLED;
- new picked = g_iPickedSkin[id][weapon][1];
- new skin = pSkins[id][weapon];
- set_cd(cd, CD_ViewModel, SkinCache[weapon][picked > -1 ? picked : skin]);
- return FMRES_IGNORED;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement