Raised This Month: $51 Target: $400
 12% 

How to add weapons with custom model, sound and sprite


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
TheiOne
Member
Join Date: Mar 2017
Old 04-02-2018 , 06:37   How to add weapons with custom model, sound and sprite
Reply With Quote #1

Hi

So basically what I want to do is to add some custom weapons to a VIP Gun plugin.
I'm using Dunn0's VIP plugin for this purpose.
My problem is that I don't know where (Within the script) to set custom models and use sprites for custom shooting effects. I tried adding this Golden AK, but the problem is that every AK47 turns into that custom gun so next I tried to move the Golden AK script within the "case" block, but that also didn't work.

I want to know how to call these models and effects functions only when a particular menu item is selected.

And could you please show me how to set unlimited ammo for a menu item ?

Any help is appreciated.
TheiOne is offline
TheiOne
Member
Join Date: Mar 2017
Old 04-03-2018 , 08:25   Re: How to add weapons with custom model, sound and sprite
Reply With Quote #2

Is it possible to make this into one plugin or should I have to make separate plugins for every gun ?

Here's the script I've come up with so far which doesn't work :

Code:
#define DAMAGE_RECIEVED #include <amxmodx> #include <amxmisc> #include <cstrike> #include <fun> #include <hamsandwich> #include <fakemeta> // Golden AK vars #define is_valid_player(%1) (1 <= %1 <= 32) new AK_V_MODEL[64] = "models/zombie_plague/v_golden_ak47.mdl" new AK_P_MODEL[64] = "models/zombie_plague/p_golden_ak47.mdl" new g_hasZoom[ 33 ] new bullets[ 33 ] // Sprite new m_spriteTexture const Wep_ak47 = ((1<<CSW_AK47)) // Default vars new maxplayers new mpd, mkb, mhb new g_MsgSync new health_add new health_hs_add new health_max new nKiller new nKiller_hp new nHp_add new nHp_max new g_menu_active new CurrentRound new bool:HasC4[33] #define Keysrod (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9) /* *I just added more buttons, but without really knowing what's going on. *Could someone please explain ? */ #if defined DAMAGE_RECIEVED new g_MsgSync2 #endif public plugin_init() {     register_plugin("VIP Eng Version", "3.0", "Dunno")     mpd = register_cvar("money_per_damage","3")     mkb = register_cvar("money_kill_bonus","200")     mhb = register_cvar("money_hs_bonus","500")     health_add = register_cvar("amx_vip_hp", "5")     health_hs_add = register_cvar("amx_vip_hp_hs", "15")     health_max = register_cvar("amx_vip_max_hp", "100")     g_menu_active = register_cvar("menu_active", "1")     register_event("Damage","Damage","b")     register_event("DeathMsg","death_msg","a")     register_menucmd(register_menuid("rod"), Keysrod, "Pressedrod")     maxplayers = get_maxplayers()     register_logevent("LogEvent_RoundStart", 2, "1=Round_Start" );     register_event("TextMsg","Event_RoundRestart","a","2&#Game_w")     register_event("TextMsg","Event_RoundRestart","a","2&#Game_C");     register_event("DeathMsg", "hook_death", "a", "1>0")     register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")     //GoldenAK     register_event("WeapPickup","checkModel","b","1=19")     // Current Weapon Event     register_event("CurWeapon","checkWeapon","be","1=1")     register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0")     // Ham TakeDamage     register_forward( FM_CmdStart, "fw_CmdStart" )     g_MsgSync = CreateHudSyncObj()     #if defined DAMAGE_RECIEVED     g_MsgSync2 = CreateHudSyncObj()     #endif  } public plugin_precache() {     precache_model(AK_V_MODEL)     precache_model(AK_P_MODEL)     m_spriteTexture = precache_model("sprites/dot.spr")     precache_sound("weapons/zoom.wav") } public checkModel(id) {     new szWeapID = read_data(2)         if ( szWeapID == CSW_AK47)     {         set_pev(id, pev_viewmodel2, AK_V_MODEL)         set_pev(id, pev_weaponmodel2, AK_P_MODEL)     }     return PLUGIN_HANDLED } public checkWeapon(id) {     new plrClip, plrAmmo, plrWeap[32]     new plrWeapId         plrWeapId = get_user_weapon(id, plrClip , plrAmmo)         if (plrWeapId == CSW_AK47)     {         checkModel(id)     }     else     {         return PLUGIN_CONTINUE     }         if (plrClip == 0)     {         // If the user is out of ammo..         get_weaponname(plrWeapId, plrWeap, 31)         // Get the name of their weapon         give_item(id, plrWeap)         engclient_cmd(id, plrWeap)         engclient_cmd(id, plrWeap)         engclient_cmd(id, plrWeap)     }     return PLUGIN_HANDLED } 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 szClip, szAmmo         new szWeapID = get_user_weapon( id, szClip, szAmmo )                 if( szWeapID == CSW_AK47 && !g_hasZoom[id] == true)         {             g_hasZoom[id] = true             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_AK47 && g_hasZoom[id])         {             g_hasZoom[ id ] = false             cs_set_user_zoom( id, CS_RESET_ZOOM, 0 )                     }             }     return PLUGIN_HANDLED } public make_tracer(id) {         new clip,ammo         new wpnid = get_user_weapon(id,clip,ammo)         new pteam[16]                 get_user_team(id, pteam, 15)                 if ((bullets[id] > clip) && (wpnid == CSW_AK47))         {             new vec1[3], vec2[3]             get_user_origin(id, vec1, 1) // origin; your camera point.             get_user_origin(id, vec2, 4) // termina; where your bullet goes (4 is cs-only)                                     //BEAMENTPOINTS             message_begin( MSG_BROADCAST,SVC_TEMPENTITY)             write_byte (0)     //TE_BEAMENTPOINTS 0             write_coord(vec1[0])             write_coord(vec1[1])             write_coord(vec1[2])             write_coord(vec2[0])             write_coord(vec2[1])             write_coord(vec2[2])             write_short( m_spriteTexture )             write_byte(1) // framestart             write_byte(5) // framerate             write_byte(2) // life             write_byte(10) // width             write_byte(0) // noise             write_byte( 255 )     // r, g, b             write_byte( 215 )       // r, g, b             write_byte( 0 )       // r, g, b             write_byte(200) // brightness             write_byte(150) // speed             message_end()         }             bullets[id] = clip     }     } public on_damage(id) {     new attacker = get_user_attacker(id)         #if defined DAMAGE_RECIEVED     // id should be connected if this message is sent, but lets check anyway     if ( is_user_connected(id) && is_user_connected(attacker) )         if (get_user_flags(attacker))     {         new damage = read_data(2)                 set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)         ShowSyncHudMsg(id, g_MsgSync2, "%i^n", damage)         #else         if ( is_user_connected(attacker) && if (get_user_flags(attacker) )     {         new damage = read_data(2)         #endif         set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)         ShowSyncHudMsg(attacker, g_MsgSync, "%i^n", damage)     } } public Damage(id) {     new weapon, hitpoint, attacker = get_user_attacker(id,weapon,hitpoint)     if(attacker<=maxplayers && is_user_alive(attacker) && attacker!=id)     if (get_user_flags(attacker))     {         new max_money = 16000         new money = read_data(2) * get_pcvar_num(mpd)         if(hitpoint==1) money += get_pcvar_num(mhb)         cs_set_user_money(attacker,cs_get_user_money(attacker) + money)         if(cs_get_user_money(attacker) > max_money)             cs_set_user_money(attacker, max_money)     } } public death_msg() {     if(read_data(1)<=maxplayers && read_data(1) && read_data(1)!=read_data(2)) cs_set_user_money(read_data(1),cs_get_user_money(read_data(1)) + get_pcvar_num(mkb) - 300) } public LogEvent_RoundStart() {     CurrentRound++;     new players[32], player, pnum;     get_players(players, pnum, "a");     for(new i = 0; i < pnum; i++)     {         player = players[i];         if(is_user_alive(player) && get_user_flags(player) && !is_user_bot(player))         {             give_item(player, "weapon_hegrenade")             give_item(player, "weapon_flashbang")             give_item(player, "weapon_flashbang")             give_item(player, "item_assaultsuit")             give_item(player, "item_thighpack")                         if (!get_pcvar_num(g_menu_active))                 return PLUGIN_CONTINUE                         if(CurrentRound >= 3)             {                 Showrod(player);             }         }     }     return PLUGIN_HANDLED }     public Event_RoundRestart() {     CurrentRound=0; } public hook_death() {     // Killer id     nKiller = read_data(1)         if ( (read_data(3) == 1) && (read_data(5) == 0) )     {         nHp_add = get_pcvar_num (health_hs_add)     }     else         nHp_add = get_pcvar_num (health_add)     nHp_max = get_pcvar_num (health_max)     // Updating Killer HP     if(!(get_user_flags(nKiller)))         return;         nKiller_hp = get_user_health(nKiller)     nKiller_hp += nHp_add     // Maximum HP check     if (nKiller_hp > nHp_max) nKiller_hp = nHp_max     set_user_health(nKiller, nKiller_hp) } public Showrod(id) {     show_menu(id, Keysrod, "\rVIP Guns^n\w1. Get M4A1 + Deagle ^n\w2. Get AK47 + Deagle^n\w3. Get AWP + Deagle^n\w4. Get Krieg552 + Deagle^n\w5. Get Bullpup + Deagle^n\y6. Get Golden AK + Deagle^n\y7. Get custom^n\y8. Get custom^n\y9. Get custom^n\w0. Exit^n", -1, "rod") // Display menu } public Pressedrod(id, key) {         /* Menu:         * VIP Guns         * 1. Get M4A1 + Deagle         * 2. Get AK47 + Deagle         * 3. Get AWP + Deagle         * 4. Get Krieg552 + Deagle         * 5. Get Bullpup + Deagle         * 6. Get Golden AK + Deagle         * 7. new         * 8. new         * 9. new         * 0. Exit         */     switch (key) {         case 0: {             if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)                 HasC4[id] = true;             else                 HasC4[id] = false;                         strip_user_weapons (id)             give_item(id,"weapon_m4a1")             give_item(id,"ammo_556nato")             give_item(id,"ammo_556nato")             give_item(id,"ammo_556nato")             give_item(id,"weapon_deagle")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"weapon_knife")             give_item(id,"weapon_hegrenade")             give_item(id, "weapon_flashbang");             give_item(id, "weapon_flashbang");             give_item(id, "item_assaultsuit");             give_item(id, "item_thighpack");                         if (HasC4[id])             {                 give_item(id, "weapon_c4");                 cs_set_user_plant( id );             }         }         case 1: {             if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)                 HasC4[id] = true;             else                 HasC4[id] = false;                         strip_user_weapons (id)             give_item(id,"weapon_ak47")             give_item(id,"ammo_762nato")             give_item(id,"ammo_762nato")             give_item(id,"ammo_762nato")             give_item(id,"weapon_deagle")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"weapon_knife")             give_item(id,"weapon_hegrenade")             give_item(id, "weapon_flashbang");             give_item(id, "weapon_flashbang");             give_item(id, "item_assaultsuit");             give_item(id, "item_thighpack");                         if (HasC4[id])             {                 give_item(id, "weapon_c4");                 cs_set_user_plant( id );             }         }         case 2: {             if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)                 HasC4[id] = true;             else                 HasC4[id] = false;                         strip_user_weapons (id)             give_item(id,"weapon_awp")             give_item(id, "ammo_338magnum")             give_item(id, "ammo_338magnum")             give_item(id, "ammo_338magnum")             give_item(id, "ammo_338magnum")             give_item(id,"weapon_deagle")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"weapon_knife")             give_item(id,"weapon_hegrenade")             give_item(id, "weapon_flashbang");             give_item(id, "weapon_flashbang");             give_item(id, "item_assaultsuit");             give_item(id, "item_thighpack");                         if (HasC4[id])             {                 give_item(id, "weapon_c4");                 cs_set_user_plant( id );             }         }         case 3: {             if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)                 HasC4[id] = true;             else                 HasC4[id] = false;                         strip_user_weapons (id)             give_item(id,"weapon_sg552")             give_item(id,"ammo_556nato")             give_item(id,"ammo_556nato")             give_item(id,"ammo_556nato")             give_item(id,"ammo_556nato")             give_item(id,"weapon_deagle")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"weapon_knife")             give_item(id,"weapon_hegrenade")             give_item(id, "weapon_flashbang");             give_item(id, "weapon_flashbang");             give_item(id, "item_assaultsuit");             give_item(id, "item_thighpack");                         if (HasC4[id])             {                 give_item(id, "weapon_c4");                 cs_set_user_plant( id );             }         }         case 4: {             if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)                 HasC4[id] = true;             else                 HasC4[id] = false;                         strip_user_weapons (id)             give_item(id,"weapon_aug")             give_item(id,"ammo_556nato")             give_item(id,"ammo_556nato")             give_item(id,"ammo_556nato")             give_item(id,"ammo_556nato")             give_item(id,"weapon_deagle")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"weapon_knife")             give_item(id,"weapon_hegrenade")             give_item(id, "weapon_flashbang");             give_item(id, "weapon_flashbang");             give_item(id, "item_assaultsuit");             give_item(id, "item_thighpack");                         if (HasC4[id])             {                 give_item(id, "weapon_c4");                 cs_set_user_plant( id );             }         }         case 5: {             if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)                 HasC4[id] = true;             else                 HasC4[id] = false;                         strip_user_weapons (id)             give_item(id,"weapon_ak47")             give_item(id,"ammo_762nato")             give_item(id,"ammo_762nato")             give_item(id,"ammo_762nato")             give_item(id,"weapon_deagle")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"ammo_50ae")             give_item(id,"weapon_knife")             give_item(id,"weapon_hegrenade")             give_item(id, "weapon_flashbang");             give_item(id, "weapon_flashbang");             give_item(id, "item_assaultsuit");             give_item(id, "item_thighpack");                         checkWeapon(id)             fw_CmdStart( id, uc_handle, seed ) // This doesn't work             make_tracer(id)                         if (HasC4[id])             {                 give_item(id, "weapon_c4");                 cs_set_user_plant( id );             }         }         case 6: {         }         case 7: {         }         case 8: {         }         case 9: {               }     }     return PLUGIN_CONTINUE }
TheiOne is offline
Relaxing
AlliedModders Donor
Join Date: Jun 2016
Location: White Plains
Old 04-03-2018 , 12:39   Re: How to add weapons with custom model, sound and sprite
Reply With Quote #3

You can use Chronic's Weapon Replacement.
__________________
Relaxing is offline
TheiOne
Member
Join Date: Mar 2017
Old 04-03-2018 , 18:54   Re: How to add weapons with custom model, sound and sprite
Reply With Quote #4

Quote:
Originally Posted by Relaxing View Post
You can use Chronic's Weapon Replacement.
Thank you, but that's not what I'm trying to achieve here(Only replacing CS default models).

Anyway, I came up with an idea and that is to specify a CVAR (Set to 0 by default) and then use it as a condition in an if statement :

Code:
cvar_goldenak = register_cvar("custom_goldenak", "0", FCVAR_SPONLY) . . . public checkModel(id) {         if (get_pcvar_num(cvar_goldenak))     {         set_pev(id, pev_viewmodel2, AK_V_MODEL)         set_pev(id, pev_weaponmodel2, AK_P_MODEL)     }     return PLUGIN_HANDLED }

Then I set it to 1 in the case block corresponding the Golden AK item :

Code:
. . . case 5: {                 if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)                     HasC4[id] = true;                 else                     HasC4[id] = false;                                 strip_user_weapons (id)                 give_item(id,"weapon_ak47")                 give_item(id,"ammo_762nato")                 give_item(id,"ammo_762nato")                 give_item(id,"ammo_762nato")                 give_item(id,"weapon_deagle")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"weapon_knife")                 give_item(id,"weapon_hegrenade")                 give_item(id, "weapon_flashbang");                 give_item(id, "weapon_flashbang");                 give_item(id, "item_assaultsuit");                 give_item(id, "item_thighpack");                                 set_cvar_string("custom_goldenak", "1")                                 if (HasC4[id])                 {                     give_item(id, "weapon_c4");                     cs_set_user_plant( id );                 }             } . . .

Now the problem is that after I choose item #6 (Golden AK) the model and the properties get applied to every weapon of all the players.

I just want to know how to apply a specific weapon's model and properties only to the person who has selected that specific menu item. As in this case when I select menu item #6 I want to be the only one who gets the Golden AK and it's model and effects and not everyone else.

Would someone please show me how to revert back to default CS weapons after a round end ?
TheiOne is offline
Relaxing
AlliedModders Donor
Join Date: Jun 2016
Location: White Plains
Old 04-04-2018 , 06:09   Re: How to add weapons with custom model, sound and sprite
Reply With Quote #5

1) Hook up the default AK models.
2) Create an array/bool.
3) When choosing the AK, set the array/bool to 1/true.
4) For 1/true activate new models(via pev), for 0/false swing back to original(same).
5) For reverting on Round End, I don't recommend you doin' dis cuz player will still holding da powerfuk weapon but without it's skin. So you can drop it on round end logevent or stip "JUST THE AK". You can also lookup at GoldenAK plugin, here on AM.
__________________
Relaxing is offline
TheiOne
Member
Join Date: Mar 2017
Old 04-04-2018 , 10:12   Re: How to add weapons with custom model, sound and sprite
Reply With Quote #6

Quote:
Originally Posted by Relaxing View Post
1) Hook up the default AK models.
2) Create an array/bool.
3) When choosing the AK, set the array/bool to 1/true.
4) For 1/true activate new models(via pev), for 0/false swing back to original(same).
5) For reverting on Round End, I don't recommend you doin' dis cuz player will still holding da powerfuk weapon but without it's skin. So you can drop it on round end logevent or stip "JUST THE AK". You can also lookup at GoldenAK plugin, here on AM.
Thank you for the reply. It certainly was helpful but I had problem understanding some of your points.

1) What do you mean by "hooking up" ? Could you please show me ?
2) I did something like this :
Code:
new bool:g_ActivateGAK[33]

3) I did it in the case statement :

Code:
case 5: {                 if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)                     HasC4[id] = true;                 else                     HasC4[id] = false;                                 strip_user_weapons (id)                 give_item(id,"weapon_ak47")                 give_item(id,"ammo_762nato")                 give_item(id,"ammo_762nato")                 give_item(id,"ammo_762nato")                 give_item(id,"weapon_deagle")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"weapon_knife")                 give_item(id,"weapon_hegrenade")                 give_item(id, "weapon_flashbang");                 give_item(id, "weapon_flashbang");                 give_item(id, "item_assaultsuit");                 give_item(id, "item_thighpack");                                 g_ActivateGAK[id]=true                                 if (HasC4[id])                 {                     give_item(id, "weapon_c4");                     cs_set_user_plant( id );                 }             }

4) I tried this but I don't know why the default AK model doesn't change, and about the second part how do I swing back to the default model ?

5) You mean I should strip the Golden AK and give the player the default AK ?

Here's the whole script so far :

Code:
#define DAMAGE_RECIEVED #include <amxmodx> #include <amxmisc> #include <cstrike> #include <fun> #include <hamsandwich> #include <fakemeta> // Golden AK vars #define is_valid_player(%1) (1 <= %1 <= 32) new AK_V_MODEL[64] = "models/zombie_plague/v_golden_ak47.mdl" new AK_P_MODEL[64] = "models/zombie_plague/p_golden_ak47.mdl" new g_hasZoom[ 33 ] new bullets[ 33 ] new bool:g_ActivateGAK[33] // Sprite new m_spriteTexture const Wep_ak47 = ((1<<CSW_AK47)) // Default vars new maxplayers new mpd, mkb, mhb new g_MsgSync new health_add new health_hs_add new health_max new nKiller new nKiller_hp new nHp_add new nHp_max new g_menu_active new CurrentRound new bool:HasC4[33] #define Keysrod (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9) // Keys: 1234567890 #if defined DAMAGE_RECIEVED new g_MsgSync2 #endif public plugin_init() {     register_plugin("VIP Eng Version", "3.0", "Dunno")     //cvar_goldenak = register_cvar("goldenak_custom", "0", FCVAR_SPONLY)     mpd = register_cvar("money_per_damage","3")     mkb = register_cvar("money_kill_bonus","200")     mhb = register_cvar("money_hs_bonus","500")     health_add = register_cvar("amx_vip_hp", "5")     health_hs_add = register_cvar("amx_vip_hp_hs", "15")     health_max = register_cvar("amx_vip_max_hp", "100")     g_menu_active = register_cvar("menu_active", "1")     register_event("Damage","Damage","b")     register_event("DeathMsg","death_msg","a")     register_menucmd(register_menuid("rod"), Keysrod, "Pressedrod")     maxplayers = get_maxplayers()     register_logevent("LogEvent_RoundStart", 2, "1=Round_Start" );     register_event("TextMsg","Event_RoundRestart","a","2&#Game_w")     register_event("TextMsg","Event_RoundRestart","a","2&#Game_C");     register_event("DeathMsg", "hook_death", "a", "1>0")     register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")     //GoldenAK     register_event("WeapPickup","checkModel","b","1=19")     // Current Weapon Event     register_event("CurWeapon","checkWeapon","be","1=1")     register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0")     // Ham TakeDamage     register_forward(FM_CmdStart, "fw_CmdStart")     g_MsgSync = CreateHudSyncObj()     #if defined DAMAGE_RECIEVED     g_MsgSync2 = CreateHudSyncObj()     #endif  } public plugin_precache() {     precache_model(AK_V_MODEL)     precache_model(AK_P_MODEL)     m_spriteTexture = precache_model("sprites/dot.spr")     precache_sound("weapons/zoom.wav") } public checkModel(id) {     new szWeapID = read_data(2)         if(g_ActivateGAK[id] && szWeapID == CSW_AK47)     {         set_pev(id, pev_viewmodel2, AK_V_MODEL)         set_pev(id, pev_weaponmodel2, AK_P_MODEL)     } } public checkWeapon(id) {     new plrClip, plrAmmo, plrWeap[32]     new plrWeapId         plrWeapId = get_user_weapon(id, plrClip , plrAmmo)             if(g_ActivateGAK[id] && plrWeapId == CSW_AK47)     {         if(plrClip == 0)         {             // If the user is out of ammo.             get_weaponname(plrWeapId, plrWeap, 31)             // Get the name of their weapon             give_item(id, plrWeap)             engclient_cmd(id, plrWeap)             engclient_cmd(id, plrWeap)             engclient_cmd(id, plrWeap)         }     } } public fw_CmdStart( id, uc_handle, seed ) {     new szClip, szAmmo     new szWeapID = get_user_weapon( id, szClip, szAmmo )         if(g_ActivateGAK[id] && szWeapID == CSW_AK47 && is_user_alive(id))     {         if( ( get_uc( uc_handle, UC_Buttons ) & IN_ATTACK2 ) && !( pev( id, pev_oldbuttons ) & IN_ATTACK2 ) )         {             if(!g_hasZoom[id] == true)             {                 g_hasZoom[id] = true                 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 (g_hasZoom[id])             {                 g_hasZoom[ id ] = false                 cs_set_user_zoom( id, CS_RESET_ZOOM, 0 )                             }                     }     } } public make_tracer(id) {     if(g_ActivateGAK[id])     {         new clip,ammo         new wpnid = get_user_weapon(id,clip,ammo)         new pteam[16]                 get_user_team(id, pteam, 15)                 if ((bullets[id] > clip) && (wpnid == CSW_AK47))         {             new vec1[3], vec2[3]             get_user_origin(id, vec1, 1) // origin; your camera point.             get_user_origin(id, vec2, 4) // termina; where your bullet goes (4 is cs-only)                                     //BEAMENTPOINTS             message_begin( MSG_BROADCAST,SVC_TEMPENTITY)             write_byte (0)     //TE_BEAMENTPOINTS 0             write_coord(vec1[0])             write_coord(vec1[1])             write_coord(vec1[2])             write_coord(vec2[0])             write_coord(vec2[1])             write_coord(vec2[2])             write_short( m_spriteTexture )             write_byte(1) // framestart             write_byte(5) // framerate             write_byte(2) // life             write_byte(10) // width             write_byte(0) // noise             write_byte( 255 )     // r, g, b             write_byte( 215 )       // r, g, b             write_byte( 0 )       // r, g, b             write_byte(200) // brightness             write_byte(150) // speed             message_end()         }         bullets[id] = clip     } } public on_damage(id) {     new attacker = get_user_attacker(id)         #if defined DAMAGE_RECIEVED     // id should be connected if this message is sent, but lets check anyway     if ( is_user_connected(id) && is_user_connected(attacker) )         if (get_user_flags(attacker))     {         new damage = read_data(2)                 set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)         ShowSyncHudMsg(id, g_MsgSync2, "%i^n", damage)         #else         if ( is_user_connected(attacker) && if (get_user_flags(attacker) )     {         new damage = read_data(2)         #endif         set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)         ShowSyncHudMsg(attacker, g_MsgSync, "%i^n", damage)     } } public Damage(id) {     new weapon, hitpoint, attacker = get_user_attacker(id,weapon,hitpoint)     if(attacker<=maxplayers && is_user_alive(attacker) && attacker!=id)     if (get_user_flags(attacker))     {         new max_money = 16000         new money = read_data(2) * get_pcvar_num(mpd)         if(hitpoint==1) money += get_pcvar_num(mhb)         cs_set_user_money(attacker,cs_get_user_money(attacker) + money)         if(cs_get_user_money(attacker) > max_money)             cs_set_user_money(attacker, max_money)     } }     public death_msg() {     if(read_data(1)<=maxplayers && read_data(1) && read_data(1)!=read_data(2)) cs_set_user_money(read_data(1),cs_get_user_money(read_data(1)) + get_pcvar_num(mkb) - 300) }         public LogEvent_RoundStart()     {         CurrentRound++;         new players[32], player, pnum;         get_players(players, pnum, "a");         for(new i = 0; i < pnum; i++)         {             player = players[i];             if(is_user_alive(player) && get_user_flags(player) && !is_user_bot(player))             {                 give_item(player, "weapon_hegrenade")                 give_item(player, "weapon_flashbang")                 give_item(player, "weapon_flashbang")                 give_item(player, "item_assaultsuit")                 give_item(player, "item_thighpack")                                 if (!get_pcvar_num(g_menu_active))                     return PLUGIN_CONTINUE                                 if(CurrentRound >= 3)                 {                     Showrod(player);                 }             }         }         return PLUGIN_HANDLED     }     public Event_RoundRestart() {     CurrentRound=0; }     public hook_death() {     // Killer id     nKiller = read_data(1)         if ( (read_data(3) == 1) && (read_data(5) == 0) )     {         nHp_add = get_pcvar_num (health_hs_add)     }     else         nHp_add = get_pcvar_num (health_add)     nHp_max = get_pcvar_num (health_max)     // Updating Killer HP     if(!(get_user_flags(nKiller)))         return;         nKiller_hp = get_user_health(nKiller)     nKiller_hp += nHp_add     // Maximum HP check     if (nKiller_hp > nHp_max) nKiller_hp = nHp_max     set_user_health(nKiller, nKiller_hp) }     public Showrod(id) {     show_menu(id, Keysrod, "\rVIP Guns^n\w1. Get M4A1 + Deagle ^n\w2. Get AK47 + Deagle^n\w3. Get AWP + Deagle^n\w4. Get Krieg552 + Deagle^n\w5. Get Bullpup + Deagle^n\y6. Get Golden AK + Deagle^n\y7. Get custom^n\y8. Get custom^n\y9. Get custom^n\w0. Exit^n", -1, "rod") }     public Pressedrod(id, key)     {         /* Menu:         * VIP Menu         * 1. Get M4A1 + Deagle         * 2. Get AK47 + Deagle         * 3. Get AWP + Deagle         * 4. Get Krieg552 + Deagle         * 5. Get Bullpup + Deagle         * 6. Get Golden AK + Deagle         * 7. new         * 8. new         * 9. new         * 0. Exit         */         switch (key) {             case 0: {                 if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)                     HasC4[id] = true;                 else                     HasC4[id] = false;                                 strip_user_weapons (id)                 give_item(id,"weapon_m4a1")                 give_item(id,"ammo_556nato")                 give_item(id,"ammo_556nato")                 give_item(id,"ammo_556nato")                 give_item(id,"weapon_deagle")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"weapon_knife")                 give_item(id,"weapon_hegrenade")                 give_item(id, "weapon_flashbang");                 give_item(id, "weapon_flashbang");                 give_item(id, "item_assaultsuit");                 give_item(id, "item_thighpack");                                 if (HasC4[id])                 {                     give_item(id, "weapon_c4");                     cs_set_user_plant( id );                 }             }             case 1: {                 if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)                     HasC4[id] = true;                 else                     HasC4[id] = false;                                 strip_user_weapons (id)                 give_item(id,"weapon_ak47")                 give_item(id,"ammo_762nato")                 give_item(id,"ammo_762nato")                 give_item(id,"ammo_762nato")                 give_item(id,"weapon_deagle")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"weapon_knife")                 give_item(id,"weapon_hegrenade")                 give_item(id, "weapon_flashbang");                 give_item(id, "weapon_flashbang");                 give_item(id, "item_assaultsuit");                 give_item(id, "item_thighpack");                                 if (HasC4[id])                 {                     give_item(id, "weapon_c4");                     cs_set_user_plant( id );                 }             }             case 2: {                 if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)                     HasC4[id] = true;                 else                     HasC4[id] = false;                                 strip_user_weapons (id)                 give_item(id,"weapon_awp")                 give_item(id, "ammo_338magnum")                 give_item(id, "ammo_338magnum")                 give_item(id, "ammo_338magnum")                 give_item(id, "ammo_338magnum")                 give_item(id,"weapon_deagle")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"weapon_knife")                 give_item(id,"weapon_hegrenade")                 give_item(id, "weapon_flashbang");                 give_item(id, "weapon_flashbang");                 give_item(id, "item_assaultsuit");                 give_item(id, "item_thighpack");                                 if (HasC4[id])                 {                     give_item(id, "weapon_c4");                     cs_set_user_plant( id );                 }             }             case 3: {                 if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)                     HasC4[id] = true;                 else                     HasC4[id] = false;                                 strip_user_weapons (id)                 give_item(id,"weapon_sg552")                 give_item(id,"ammo_556nato")                 give_item(id,"ammo_556nato")                 give_item(id,"ammo_556nato")                 give_item(id,"ammo_556nato")                 give_item(id,"weapon_deagle")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"weapon_knife")                 give_item(id,"weapon_hegrenade")                 give_item(id, "weapon_flashbang");                 give_item(id, "weapon_flashbang");                 give_item(id, "item_assaultsuit");                 give_item(id, "item_thighpack");                                 if (HasC4[id])                 {                     give_item(id, "weapon_c4");                     cs_set_user_plant( id );                 }             }             case 4: {                 if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)                     HasC4[id] = true;                 else                     HasC4[id] = false;                                 strip_user_weapons (id)                 give_item(id,"weapon_aug")                 give_item(id,"ammo_556nato")                 give_item(id,"ammo_556nato")                 give_item(id,"ammo_556nato")                 give_item(id,"ammo_556nato")                 give_item(id,"weapon_deagle")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"weapon_knife")                 give_item(id,"weapon_hegrenade")                 give_item(id, "weapon_flashbang");                 give_item(id, "weapon_flashbang");                 give_item(id, "item_assaultsuit");                 give_item(id, "item_thighpack");                                 if (HasC4[id])                 {                     give_item(id, "weapon_c4");                     cs_set_user_plant( id );                 }             }             case 5: {                 if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)                     HasC4[id] = true;                 else                     HasC4[id] = false;                                 strip_user_weapons (id)                 give_item(id,"weapon_ak47")                 give_item(id,"ammo_762nato")                 give_item(id,"ammo_762nato")                 give_item(id,"ammo_762nato")                 give_item(id,"weapon_deagle")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"ammo_50ae")                 give_item(id,"weapon_knife")                 give_item(id,"weapon_hegrenade")                 give_item(id, "weapon_flashbang");                 give_item(id, "weapon_flashbang");                 give_item(id, "item_assaultsuit");                 give_item(id, "item_thighpack");                                 g_ActivateGAK[id]=true                                 if (HasC4[id])                 {                     give_item(id, "weapon_c4");                     cs_set_user_plant( id );                 }             }             case 6: {             }             case 7: {             }             case 8: {             }             case 9: {                   }         }         return PLUGIN_HANDLED     }

Now there are 3 problems :

1. The custom model doesn't get set at all.
2. The golden bullet effect (make_tracer function) gets applied after a few seconds have past.
3. I have to shoot the first clip (30 bullets) and change the clip in order for it to be unlimited.
TheiOne is offline
TheiOne
Member
Join Date: Mar 2017
Old 04-19-2018 , 02:58   Re: How to add weapons with custom model, sound and sprite
Reply With Quote #7

Bump
TheiOne is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 06:37.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode