Raised This Month: $ Target: $400
 0% 

VIP Plugin 3.0 question


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
CrazY.
Veteran Member
Join Date: May 2015
Location: SP, Brazil
Old 10-20-2021 , 14:34   Re: VIP Plugin 3.0 question
Reply With Quote #4

There you go
Create a file named vip_models.ini in addons/amxmodx/configs/

The syntax is
Code:
"weapon name" "path to v_model" "path to p_model"
Example
Code:
"weapon_ak47" "models/v_ak47.mdl" "models/p_ak47.mdl"
Leave blank to use default model, example
Code:
"weapon_ak47" "" "models/p_ak47.mdl"
You can get the weapon names here https://wiki.alliedmods.net/Cs_weapons_information


Code:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fakemeta>

enum _:weaponmodel_e
{
	WeaponVModel[64],
	WeaponPModel[64],
}

new Trie:g_models

public plugin_init()
{
	register_plugin("VIP Weapon Models", "1.0", "Ainsley Harriott")

	new TrieIter:iterator = TrieIterCreate(g_models)
	new weapon_name[32]

	while (!TrieIterEnded(iterator))
	{
		TrieIterGetKey(iterator, weapon_name, charsmax(weapon_name))
		TrieIterNext(iterator)

		if (get_weaponid(weapon_name) > 0)
		{
			RegisterHam(Ham_Item_Deploy, weapon_name, "OnItemDeployPost", 1)
		}
	}

	TrieIterDestroy(iterator)
}

public plugin_precache()
{
	g_models = TrieCreate()
	LoadConfigFile()
}

public plugin_end()
{
	TrieDestroy(g_models)
}

public OnItemDeployPost(weapon)
{
	new player = get_ent_data_entity(weapon, "CBasePlayerItem", "m_pPlayer")

	if (!(get_user_flags(player) & ADMIN_LEVEL_H))
	{
		return
	}

	new data[weaponmodel_e], weapon_name[32]
	pev(weapon, pev_classname, weapon_name, charsmax(weapon_name))

	if (!TrieGetArray(g_models, weapon_name, data, sizeof data))
	{
		return
	}

	if (data[WeaponVModel][0])
	{
		set_pev(player, pev_viewmodel2, data[WeaponVModel])
	}
	
	if (data[WeaponPModel][0])
	{
		set_pev(player, pev_weaponmodel2, data[WeaponPModel])
	}
}

LoadConfigFile()
{
	new filename[128]
	get_configsdir(filename, charsmax(filename))
	add(filename, charsmax(filename), "/vip_models.ini")

	new file = fopen(filename, "rt")

	if (!file)
	{
		return
	}

	new buffer[200], weapon_name[32], data[weaponmodel_e]

	while (fgets(file, buffer, charsmax(buffer)))
	{
		trim(buffer)

		if (!buffer[0] || buffer[0] == ';' || buffer[0] == '#')
		{
			continue
		}

		if (parse(buffer, weapon_name, charsmax(weapon_name), data[WeaponVModel], charsmax(data[WeaponVModel]), data[WeaponPModel], charsmax(data[WeaponPModel])) < 2)
		{
			continue
		}

		if (data[WeaponVModel][0])
		{
			if (!file_exists(data[WeaponVModel], true))
			{
				log_amx("Couldn't find file '%s'", data[WeaponVModel])
				data[WeaponVModel][0] = EOS
			}
			else
			{
				precache_model(data[WeaponVModel])
			}
		}

		if (data[WeaponPModel][0])
		{
			if (!file_exists(data[WeaponPModel], true))
			{
				log_amx("Couldn't find file '%s'", data[WeaponPModel])
				data[WeaponPModel][0] = EOS
			}
			else
			{
				precache_model(data[WeaponPModel])
			}
		}

		TrieSetArray(g_models, weapon_name, data, sizeof data)
	}

	fclose(file)
}
__________________









Last edited by CrazY.; 10-20-2021 at 15:10.
CrazY. is offline
 



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 20:45.


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