Counter-Strike 1.6
HH-GaminG.EU #GunGame
91.134.123.43:27015
gg_crossfire
Играчи: 8/28
gg_crossfire
Counter-Strike 1.6
[BG] GODLIKE # Dust2 / Classic + VIP 45.144.155.164:27015 de_dust2 Играчи: 10/32
Counter-Strike 1.6
CS1.BG | DUST2 NOSHTA GARMI [RANKED PLAY] 45.144.155.113:27015 de_dust2 Играчи: 0/31
Counter-Strike 1.6
Cs-PlovdiV.com - Aim Attack 93.123.16.4:27022 aim_dust2 Играчи: 0/16
Counter-Strike 1.6
VIP
45.144.155.171:27015 ★ [ZM]ImperialCS Zombie Plague Mega|Fast SaveAP Jetpack+GoldenAK zm_snow_attack_dd 11/32

Change plugin Custom Player Models

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
Niiicu
Извън линия
Потребител
Потребител
Мнения: 88
Регистриран на: 24 Апр 2020, 10:01
Се отблагодари: 1 път
Получена благодарност: 1 път

Change plugin Custom Player Models

Мнение от Niiicu » 28 Авг 2021, 08:21

Hi,
Is this possible to modify this plugin that instead of player models to be able to give player weapons skins on flag,steamid,name?
Or if anyone know a plugin that can do that.

Код за потвърждение: Избери целия код

// *************************************************************************************//
// Плагин загружен с  www.neugomon.ru                                                   //
// Автор: Neygomon  [ https://neugomon.ru/members/1/ ]                                  //
// Официальная тема поддержки: https://neugomon.ru/threads/2038/                        //
// При копировании материала ссылка на сайт www.neugomon.ru ОБЯЗАТЕЛЬНА!                //
// *************************************************************************************//

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

enum _:MDL { ACCESS[32], MDL_T[64], MDL_CT[64] }	// ip, steam, flag, #, *. # - steam; * - всем 

#define MAX_MDL 64
new g_iBlockMdl[MAX_MDL];
new g_szModels[MAX_MDL][MDL];

new g_szPlayerModel[33][3][64];

public plugin_precache()
{
	new fp = fopen("addons/amxmodx/configs/custom_models.ini", "rt");
	if(!fp) set_fail_state("File addons/amxmodx/configs/custom_models.ini not found!");
	
	new buff[190], x;
	while(!feof(fp))
	{
		fgets(fp, buff, charsmax(buff)); trim(buff);
		if(!buff[0] || buff[0] == ';')
			continue;
		if(parse(buff, 
			g_szModels[x][ACCESS], charsmax(g_szModels[][ACCESS]), 
			g_szModels[x][MDL_T], charsmax(g_szModels[][MDL_T]), 
			g_szModels[x][MDL_CT], charsmax(g_szModels[][MDL_CT])) == 3
		) x++;
	}
	fclose(fp);
	if(!x) set_fail_state("File addons/amxmodx/configs/custom_models.ini incorrect!");

	for(new i, t, ct, str[64]; i < sizeof g_szModels; i++)
	{
		formatex(str, charsmax(str), "models/player/%s/%s.mdl", g_szModels[i][MDL_T], g_szModels[i][MDL_T]);
		t = file_exists(str);
		if(t) precache_model(str);
		
		formatex(str, charsmax(str), "models/player/%s/%s.mdl", g_szModels[i][MDL_CT], g_szModels[i][MDL_CT]);
		ct = file_exists(str);
		if(ct) precache_model(str);
		
		g_iBlockMdl[i] = (!t && !ct);
	}
}

public plugin_init()
{
	register_plugin("Custom Models", "1.3.2", "neugomon");
	
	RegisterHam(Ham_Spawn, "player", "fwd_HamSpawn_Post", true);
	register_forward(FM_SetClientKeyValue, "fwd_SetClientKeyValue_Pre", false);
}

public client_putinserver(id)
{
	new szIP[16]; 	 get_user_ip(id, szIP, charsmax(szIP), 1);
	new szAuthid[25];get_user_authid(id, szAuthid, charsmax(szAuthid));
	new flags = 	 get_user_flags(id);

	g_szPlayerModel[id][1][0] = EOS;
	g_szPlayerModel[id][2][0] = EOS;
	
	for(new i; i < sizeof g_szModels; i++)
	{
		if(g_iBlockMdl[i] == 1)
			continue;

		switch(g_szModels[i][ACCESS][0])
		{
			case '#':
			{
				if(is_user_steam(id))
				{
					CopyModel(id, i);
					break;
				}	
			}
			case '*':
			{
				CopyModel(id, i);
				break;
			}
			case 'S':
			{
				if(strcmp(g_szModels[i][ACCESS], szAuthid) == 0)
				{
					CopyModel(id, i);
					break;
				}
			}
			default:
			{
				if(isdigit(g_szModels[i][ACCESS][0]))
				{
					if(strcmp(g_szModels[i][ACCESS], szIP) == 0)
					{
						CopyModel(id, i);
						break;
					}
				}
				else if(flags & read_flags(g_szModels[i][ACCESS]))
				{
					CopyModel(id, i);
					break;
				}
			}
		}
	}
}

public fwd_HamSpawn_Post(id)
{
	if(!is_user_alive(id))
		return;
		
	switch(get_pdata_int(id, 114))
	{
		case 1: if(g_szPlayerModel[id][1][0]) fmSetModel(id, g_szPlayerModel[id][1]);
		case 2: if(g_szPlayerModel[id][2][0]) fmSetModel(id, g_szPlayerModel[id][2]);
	}
}

public fwd_SetClientKeyValue_Pre(id, const szInfobuffer[], const szKey[], const szValue[])
{	
	if(strcmp(szKey, "model") != 0)
		return FMRES_IGNORED;
	static iTeam; iTeam = get_pdata_int(id, 114);
	if(iTeam != 1 && iTeam != 2)
		return FMRES_IGNORED;
	if(g_szPlayerModel[id][iTeam][0] && strcmp(szValue, g_szPlayerModel[id][iTeam]) != 0)
	{
		fmSetModel(id, g_szPlayerModel[id][iTeam]);
		return FMRES_SUPERCEDE;
	}
	return FMRES_IGNORED;	
}

stock CopyModel(index, sId)
{
	copy(g_szPlayerModel[index][1], charsmax(g_szPlayerModel[][]), g_szModels[sId][MDL_T]);
	copy(g_szPlayerModel[index][2], charsmax(g_szPlayerModel[][]), g_szModels[sId][MDL_CT]);
}

stock fmSetModel(id, const model[])
	engfunc(EngFunc_SetClientKeyValue, id, engfunc(EngFunc_GetInfoKeyBuffer, id), "model", model);
	
bool:is_user_steam(id)
{
	static dp_pointer;
	if(!dp_pointer) dp_pointer = get_cvar_pointer("dp_r_id_provider");
	
	server_cmd("dp_clientinfo %d", id);
	server_exec();
	return (get_pcvar_num(dp_pointer) == 2) ? true : false;
}	

Код за потвърждение: Избери целия код

;;; Конфигурационный файл для плагина Custom Models by Neugomon ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Модели можно назначить на:
; 1 - IP
; 2 - STEAMID
; 3 - Флаг доступа
; 4 - Steam игрокам	(ключ "#")
; 5 - Всем остальным	(ключ "*")

;; Примеры

"127.0.0.1" 	 "mdlbyipt" 	"mdlbyipct"
"STEAM_0:1:1234" "mdlbysteamt" 	"mdlbysteamct"
"u" 		 "admint" 	"adminct"
"t" 		 "vipt" 	"vipct"
"#" 		 "steamt" 	"steamct"
"*" 		 "t" 		"ct"
CS.AVENGERSCS.RO - Classic

Аватар
Lethality
Извън линия
VHE Mapper
VHE Mapper
Мнения: 211
Регистриран на: 06 Яну 2020, 15:41
Местоположение: Германия
Се отблагодари: 34 пъти
Получена благодарност: 50 пъти
Обратна връзка:

Change plugin Custom Player Models

Мнение от Lethality » 28 Авг 2021, 08:32

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <fakemeta>

#define VIP_FLAG ADMIN_RESERVATION

enum _:Weapons
{
	Id[20],
	V_Model[64],
	P_Model[64]
}

new const g_szWeapons[][Weapons] =
{
	{ "weapon_ak47", "models/my_folder/v_ak47.mdl", "models/my_folder/p_ak47.mdl" },
	{ "weapon_m4a1", "models/my_folder/v_m4a1.mdl", "models/my_folder/p_m4a1.mdl" },
	{ "weapon_deagle", "models/my_folder/v_deagle.mdl", "models/my_folder/p_deagle.mdl" }
}

new Trie:g_tVModels, Trie:g_tPModels

public plugin_init()
{
	register_plugin("Admin/VIP Weapon Models", "1.0", "OciXCrom")
	register_event("CurWeapon", "OnChangeWeapon", "be", "1=1")
	g_tVModels = TrieCreate()
	g_tPModels = TrieCreate()
}

public plugin_precache()
{
	for(new i; i < sizeof(g_szWeapons); i++)
	{
		if(g_szWeapons[i][V_Model][0])
		{
			TrieSetString(g_tVModels, g_szWeapons[i][Id], g_szWeapons[i][V_Model])
			precache_model(g_szWeapons[i][V_Model])
		}

		if(g_szWeapons[i][P_Model][0])
		{
			TrieSetString(g_tPModels, g_szWeapons[i][Id], g_szWeapons[i][P_Model])
			precache_model(g_szWeapons[i][P_Model])
		}
	}
}

public plugin_end()
{
	TrieDestroy(g_tVModels)
	TrieDestroy(g_tPModels)
}

public OnChangeWeapon(id)
{
	if(!(get_user_flags(id) & VIP_FLAG))
		return

	new szModel[64], szWeapon[20]
	get_weaponname(read_data(2), szWeapon, charsmax(szWeapon))

	if(TrieGetString(g_tVModels, szWeapon, szModel, charsmax(szModel)))
		set_pev(id, pev_viewmodel2, szModel)

	if(TrieGetString(g_tPModels, szWeapon, szModel, charsmax(szModel)))
		set_pev(id, pev_weaponmodel2, szModel)
}

Аватар
Niiicu
Извън линия
Потребител
Потребител
Мнения: 88
Регистриран на: 24 Апр 2020, 10:01
Се отблагодари: 1 път
Получена благодарност: 1 път

Change plugin Custom Player Models

Мнение от Niiicu » 28 Авг 2021, 08:50

menkisa написа: 28 Авг 2021, 08:32

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <fakemeta>

#define VIP_FLAG ADMIN_RESERVATION

enum _:Weapons
{
	Id[20],
	V_Model[64],
	P_Model[64]
}

new const g_szWeapons[][Weapons] =
{
	{ "weapon_ak47", "models/my_folder/v_ak47.mdl", "models/my_folder/p_ak47.mdl" },
	{ "weapon_m4a1", "models/my_folder/v_m4a1.mdl", "models/my_folder/p_m4a1.mdl" },
	{ "weapon_deagle", "models/my_folder/v_deagle.mdl", "models/my_folder/p_deagle.mdl" }
}

new Trie:g_tVModels, Trie:g_tPModels

public plugin_init()
{
	register_plugin("Admin/VIP Weapon Models", "1.0", "OciXCrom")
	register_event("CurWeapon", "OnChangeWeapon", "be", "1=1")
	g_tVModels = TrieCreate()
	g_tPModels = TrieCreate()
}

public plugin_precache()
{
	for(new i; i < sizeof(g_szWeapons); i++)
	{
		if(g_szWeapons[i][V_Model][0])
		{
			TrieSetString(g_tVModels, g_szWeapons[i][Id], g_szWeapons[i][V_Model])
			precache_model(g_szWeapons[i][V_Model])
		}

		if(g_szWeapons[i][P_Model][0])
		{
			TrieSetString(g_tPModels, g_szWeapons[i][Id], g_szWeapons[i][P_Model])
			precache_model(g_szWeapons[i][P_Model])
		}
	}
}

public plugin_end()
{
	TrieDestroy(g_tVModels)
	TrieDestroy(g_tPModels)
}

public OnChangeWeapon(id)
{
	if(!(get_user_flags(id) & VIP_FLAG))
		return

	new szModel[64], szWeapon[20]
	get_weaponname(read_data(2), szWeapon, charsmax(szWeapon))

	if(TrieGetString(g_tVModels, szWeapon, szModel, charsmax(szModel)))
		set_pev(id, pev_viewmodel2, szModel)

	if(TrieGetString(g_tPModels, szWeapon, szModel, charsmax(szModel)))
		set_pev(id, pev_weaponmodel2, szModel)
}
I have something similar.. What i need it's to be able to gave a weapon skin only to a specific player, so i am thinking that the only way to do that is to add access on steam id,name
CS.AVENGERSCS.RO - Classic

Аватар
Lethality
Извън линия
VHE Mapper
VHE Mapper
Мнения: 211
Регистриран на: 06 Яну 2020, 15:41
Местоположение: Германия
Се отблагодари: 34 пъти
Получена благодарност: 50 пъти
Обратна връзка:

Change plugin Custom Player Models

Мнение от Lethality » 28 Авг 2021, 10:48

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

enum _:WP_MODELS
{
	AUTH[25],
	NAME[32],
	pMDL[64],
	vMDL[64],
	wMDL[64]
}

new g_arWeaponData[][WP_MODELS] =
{
	// { "IP или Steamid или буква флага", "название модели без расширения и префикса", "p_ модель", "v_ модель", "w_ модель" }
	{ "STEAM_0:1:156412994", "ak47", "models/new/p_ak47.mdl", "models/new/v_ak47.mdl", "models/new/w_ak47.mdl" },
	{ "188.244.3.192", 		 "m4a1", "models/new/p_m4a1.mdl", "models/new/v_m4a1.mdl", "models/new/w_m4a1.mdl" },
	{ "t", 		 	 "awp",  "models/new/p_awp.mdl",  "models/new/v_awp.mdl",  "models/new/w_awp.mdl"  }
}

#if AMXX_VERSION_NUM < 183
	#define MAX_PLAYERS 32
	new MaxClients;
#endif	
#define MAX_MODELS 12	// Кому мало 12 моделей на одно рыло, может добавить :)
new g_szModel[MAX_PLAYERS][MAX_MODELS][10];
new g_iNumModels[MAX_PLAYERS];
new g_iModelIndexes[MAX_PLAYERS][MAX_MODELS];
new g_iArraySize;

public plugin_precache() 
{
	g_iArraySize = sizeof g_arWeaponData;
	
	for(new i; i < g_iArraySize; i++)
	{
		if(g_arWeaponData[i][pMDL][0])
		{
			if(file_exists(g_arWeaponData[i][pMDL]))
				precache_model(g_arWeaponData[i][pMDL]);
			else	g_arWeaponData[i][pMDL][0] = EOS;	
		}
		if(g_arWeaponData[i][vMDL][0])
		{
			if(file_exists(g_arWeaponData[i][vMDL]))
				precache_model(g_arWeaponData[i][vMDL]);
			else	g_arWeaponData[i][vMDL][0] = EOS;	
		}
		if(g_arWeaponData[i][wMDL][0])
		{
			if(file_exists(g_arWeaponData[i][wMDL]))
				precache_model(g_arWeaponData[i][wMDL]);
			else	g_arWeaponData[i][wMDL][0] = EOS;	
		}
	}	
}

public plugin_init()
{
	register_plugin("New Models", "0.1 Beta 3", "neygomon");
	
	RegisterHam(Ham_Spawn, "weaponbox", "fwdWeaponBox", true);
	register_forward(FM_SetModel, "fwdSetModel", false);
	
	new szWeapon[32];
	for(new i; i < g_iArraySize; i++)
	{
		if(!g_arWeaponData[i][vMDL][0] && !g_arWeaponData[i][pMDL][0])
			continue;
		
		formatex(szWeapon, charsmax(szWeapon), "weapon_%s", g_arWeaponData[i][NAME]);
		RegisterHam(Ham_Item_Deploy, szWeapon, "fwdHamItemDeploy", true);
	}
#if AMXX_VERSION_NUM < 183
	MaxClients = get_maxplayers();
#endif		
	state WeaponBoxDisabled;
}

public client_putinserver(id)
{
	arrayset(g_szModel[id][0], 	EOS, 	sizeof g_szModel[]);
	arrayset(g_iModelIndexes[id], 	0, 	sizeof g_iModelIndexes[]);
	g_iNumModels[id] = 0;
	
	new szAuth[25]; 	get_user_authid(id, szAuth, charsmax(szAuth));
	new szIP[16];		get_user_ip(id, szIP, charsmax(szIP), .without_port = 1);
	new flags = 		get_user_flags(id);
	
	for(new i; i < g_iArraySize; i++)
	{
		if(
			(szAuth[0] == 'S' && !strcmp(szAuth, g_arWeaponData[i][AUTH])) || 
			(isdigit(szIP[0]) && !strcmp(szIP, g_arWeaponData[i][AUTH])) ||
			(flags & read_flags(g_arWeaponData[i][AUTH]))
		)
		{
			copy(g_szModel[id][g_iNumModels[id]], charsmax(g_szModel[][]), g_arWeaponData[i][NAME]);
			g_iModelIndexes[id][g_iNumModels[id]] = i;
			g_iNumModels[id]++;
		}
	}	
}

public fwdHamItemDeploy(ent)
{
	static id, mIndex, szViewModel[64];
	
	pev(id, pev_viewmodel2, szViewModel, charsmax(szViewModel));
	id = get_pdata_cbase(ent, 41, 4);
	mIndex = SearchModel(id, szViewModel);

	if(mIndex != -1)
	{
		if(g_arWeaponData[g_iModelIndexes[id][mIndex]][vMDL][0])
			set_pev(id, pev_viewmodel2, g_arWeaponData[g_iModelIndexes[id][mIndex]][vMDL]);
		if(g_arWeaponData[g_iModelIndexes[id][mIndex]][pMDL][0])
			set_pev(id, pev_weaponmodel2, g_arWeaponData[g_iModelIndexes[id][mIndex]][pMDL]);
	}
}

public fwdWeaponBox(const iEnt)
	state WeaponBoxEnabled;

public fwdSetModel(const iEnt, szModel[]) <WeaponBoxEnabled>
{
	state WeaponBoxDisabled;
	
	if(!pev_valid(iEnt))
		return FMRES_IGNORED;
	
	static id; id = pev(iEnt, pev_owner);
	if(1<=id<=MaxClients)
	{
		static mIndex; mIndex = SearchModel(id, szModel);
		if(mIndex != -1 && g_arWeaponData[g_iModelIndexes[id][mIndex]][wMDL][0])
		{
			engfunc(EngFunc_SetModel, iEnt, g_arWeaponData[g_iModelIndexes[id][mIndex]][wMDL]);	
			return FMRES_SUPERCEDE;
		}
	}	
	return FMRES_IGNORED;
}

public fwdSetModel(const iEnt) <WeaponBoxDisabled>
        return FMRES_IGNORED;
	
stock SearchModel(id, szModel[])
{
	for(new i; i < g_iNumModels[id]; i++)
		if(contain(szModel, g_szModel[id][i]) != -1)
			return i;
	return -1;	
}

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: Ahrefs [Bot], Semrush [Bot] и 7 госта