Заявка за плъгин -Admin Models

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Отговори
Потребителски аватар

Автор на темата
Season12 OF.BG
Потребител
Потребител
Мнения: 129
Регистриран: 10 фев 2019, 19:41
Местоположение: V nas
Получена благодарност: 1 път
Години: 17
Контакти:

Заявка за плъгин -Admin Models

Мнение от Season12 OF.BG » 11 фев 2019, 00:47

Ако може да ми дадете някъкъв плъгин Admin Models защото не ми тръгват скиновете за VIP

Потребителски аватар

aHaJLruH SS
VHE Mapper
VHE Mapper
Мнения: 130
Регистриран: 13 окт 2016, 12:33
Местоположение: София
Се отблагодари: 9 пъти
Получена благодарност: 41 пъти
Години: 21

Заявка за плъгин -Admin Models

Мнение от aHaJLruH SS » 11 фев 2019, 00:51

Има търсачка - използвай я. Щом елементарни неща не знаеш по-добре се откажи от това да имаш сървър. Другият вариант е да вземеш и да разучиш малко сам.

Потребителски аватар

Darkness*
Потребител
Потребител
Мнения: 28
Регистриран: 07 фев 2019, 00:10
Се отблагодари: 1 път
Получена благодарност: 1 път

Заявка за плъгин -Admin Models

Мнение от Darkness* » 11 фев 2019, 01:38

Код: Избери всички

#include <amxmodx>
#include <cstrike>
#include <hamsandwich>

#define PLUGIN_NAME "Adm Skins"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "OciXCrom"

#define ADMIN ADMIN_RESERVATION

#define admin_t "models/player/modelzat/modelzat.mdl"
#define admin_ct "models/player/modelzact/modelzact.mdl"

public plugin_init()
{
   register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
   RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
}

public player_spawn(id)
{
   new team = get_user_team(id)
   
   if(get_user_flags(id) & ADMIN) cs_set_user_model(id, (team == 1) ? "modelzat" : "modelzact")
}

public plugin_precache()
{
   precache_model(admin_t)
   precache_model(admin_ct)
}
Ето създаваш папки с имената, който си настройваш скиновете и пътищата към тях и си готов.
Ако не знаеш и това как да го направиш, по добре се откажи найстина или вземи проучи малко как се слагат плъгини! :]

Потребителски аватар

LayerFort DJBosma
Потребител
Потребител
Мнения: 86
Регистриран: 25 дек 2018, 04:14
Местоположение: Alkmaar
Се отблагодари: 2 пъти
Получена благодарност: 3 пъти
Години: 24
Контакти:

Заявка за плъгин -Admin Models

Мнение от LayerFort DJBosma » 11 фев 2019, 12:56

Заповядай

Код: Избери всички

#include <amxmodx>
#include <zombieplague>
#include <cromchat>
#include <nvault>
#include <hamsandwich>
//#include <cstrike>

native zp_override_user_model(id, const newmodel[], modelindex = 0)

#define VIP_FLAG		ADMIN_LEVEL_E //Flag "Q"
#define ADMIN_FLAG		ADMIN_LEVEL_D //Flag "P"

#define VIP_CLASSES 4
#define ADMIN_CLASSES 4

enum _:eClassType
{
	VIP,
	ADMIN
}

enum _:eData
{
	MODEL_NAME[MAX_NAME_LENGTH],
	MODEL_PATH[64]
}

new const g_szModels[][eData] =
{
	{ "Default", 		"fter_admin" },

	// Add models only from here
	// Vip Classes
	{ "Crysis", 		"fter_admin" },
	{ "Crysis Grey", 	"fter_admin_grey" },
	{ "Crysis Gold", 	"fter_admin_gold" },
	{ "Crysis White", 	"fter_admin_white" },

	// Admin Classes
	{ "Grey Halo", 		"fter_admin_halo" },
	{ "Black Halo", 	"fter_admin_halo_black" },
	{ "Light Halo", 	"fter_admin_halo_light" },
	{ "Holy Fernando", 	"fter_admin_fernando" }
}

new g_iClass[MAX_PLAYERS + 1][eClassType], g_iSelected[MAX_PLAYERS + 1]

new g_iVault

public plugin_init()
{
	register_plugin("Human Classes [Models+Save]", "2.0", "Huehue")

	RegisterHam(Ham_Spawn, "player", "CBase_Ham_Spawn", 1)

	register_clcmd("say /models", "Command_ToggleMainMenu")

	g_iVault = nvault_open("FTER_Models")

	CC_SetPrefix("&x04[Fatall-Error] &x01")
}

public CBase_Ham_Spawn(id)
{
	if (!is_user_alive(id))
		return

	set_task(1.0, "UpdatePlayerSkin", id)
	
}

public UpdatePlayerSkin(id)
{
	if (!is_user_alive(id) || zp_get_user_zombie(id) || zp_get_user_survivor(id))
		return

	if (g_iSelected[id] == VIP && get_user_flags(id) & VIP_FLAG)
		zp_override_user_model(id, g_szModels[g_iClass[id][VIP]][MODEL_PATH])
	else if (g_iSelected[id] == ADMIN && get_user_flags(id) & ADMIN_FLAG)
		zp_override_user_model(id, g_szModels[g_iClass[id][ADMIN]][MODEL_PATH])
}

public client_putinserver(id)
{
	new szName[MAX_NAME_LENGTH]
	get_user_name(id, szName, charsmax(szName))
	set_task(0.1, "Load_Data", id, szName, sizeof(szName))
}

public client_disconnected(id)
{
	new szName[MAX_NAME_LENGTH]
	get_user_name(id, szName, charsmax(szName))
	Save_Data(id, szName)
}

public plugin_precache()
{
	for (new i = 1; i < sizeof g_szModels; i++)
		precache_player_model(g_szModels[i][MODEL_PATH])
}

public Command_ToggleMainMenu(id)
{
	if (!is_user_alive(id) || zp_get_user_zombie(id) || zp_get_user_survivor(id))
		return CC_SendMessage(id, "You don't have access right now!")

	static szTitle[64]
	formatex(szTitle, charsmax(szTitle), "Human Classes^n\dCurrent Class: \y[\r%s\y]", g_szModels[g_iClass[id][g_iSelected[id]]][MODEL_NAME])
	new iMenu = menu_create(szTitle, "main_menu_handler")

	menu_additem(iMenu, "VIP Classes", _, VIP_FLAG)
	menu_additem(iMenu, "Admin Classes", _, ADMIN_FLAG)

	menu_display(id, iMenu, 0)
	return PLUGIN_HANDLED
}

public main_menu_handler(id, iMenu, Item)
{
	if (!is_user_alive(id) || zp_get_user_zombie(id) || zp_get_user_survivor(id))
		goto destroy

	if (Item == MENU_EXIT)
		goto destroy

	ToggleClassesMenu(id, Item)

	destroy:
	menu_destroy(iMenu)
	return PLUGIN_HANDLED
}

public ToggleClassesMenu(id, iType)
{
	if (!is_user_alive(id) || zp_get_user_zombie(id) || zp_get_user_survivor(id))
		return CC_SendMessage(id, "You don't have access right now!")

	static szTitle[64]
	formatex(szTitle, charsmax(szTitle), "%s Classes", iType == 0 ? "VIP" : "Admin")

	new iMenu = menu_create(szTitle, "select_class_handler")

	switch(iType)
	{
		case 0:
		{
			for (new i = 1; i <= VIP_CLASSES; i++)
				menu_additem(iMenu, g_szModels[i][MODEL_NAME])

			g_iSelected[id] = VIP
		}
		case 1:
		{
			for (new i = VIP_CLASSES + 1; i < sizeof g_szModels; i++)
				menu_additem(iMenu, g_szModels[i][MODEL_NAME])

			g_iSelected[id] = ADMIN
		}
	}
	menu_display(id, iMenu, 0)
	return PLUGIN_HANDLED
}

public select_class_handler(id, iMenu, Item)
{
	if (!is_user_alive(id) || zp_get_user_zombie(id) || zp_get_user_survivor(id))
		goto destroy

	if (Item == MENU_EXIT)
		goto destroy

	new iModel = (g_iSelected[id] == VIP ? ++Item : ++Item + ADMIN_CLASSES)

	g_iClass[id][g_iSelected[id]] = iModel
	zp_override_user_model(id, g_szModels[iModel][MODEL_PATH])
	CC_SendMessage(id, "You have selected model &x04%s", g_szModels[iModel][MODEL_NAME])

	destroy:
	menu_destroy(iMenu)
	return PLUGIN_HANDLED
}

public Save_Data(id, szName[])
{
	new szData[64]
	formatex(szData, charsmax(szData), "%i#%i", g_iSelected[id], g_iClass[id][g_iSelected[id]])
	nvault_set(g_iVault, szName, szData)
}

public Load_Data(szName[], id)
{
	if (!is_user_connected(id))
		return
	
	new iTimeStamp
	new szData[64]

	if (nvault_lookup(g_iVault, szName, szData, charsmax(szData), iTimeStamp))
		parse_loaded_data(id, szData, charsmax(szData))
	else
		register_new_player(id)
}

public parse_loaded_data(id, szData[], iLen)
{
	replace_all(szData, iLen, "#", " ")

	new szType[10], szModel[10]
	parse(szData, szType, charsmax(szType), szModel, charsmax(szModel))

	g_iSelected[id] = str_to_num(szType)
	g_iClass[id][g_iSelected[id]] = str_to_num(szModel)

	set_task(1.0, "CheckAliveStatus", id)
}

public register_new_player(id)
{
	g_iClass[id][VIP] = 0
	g_iClass[id][ADMIN] = 0
	g_iSelected[id] = 0

	//set_task(1.0, "CheckAliveStatusReset", id)
}

public CheckAliveStatus(id)
{
	if (zp_get_user_zombie(id) || zp_get_user_survivor(id))
		return

	if (is_user_alive(id))
	{
		zp_override_user_model(id, g_szModels[g_iClass[id][g_iSelected[id]]][MODEL_PATH])
	}
}

/*
// use in case you need it.
public CheckAliveStatusReset(id)
{
	if (is_user_alive(id))
	{
		cs_reset_user_model(id)
	}
}*/

public plugin_end()
{
	nvault_close(g_iVault)
}

public client_infochanged(id)
{
	if (!is_user_connected(id))
		goto Handled
	
	new szNewName[32], szOldName[32]
	get_user_name(id, szOldName, charsmax(szOldName))
	get_user_info(id, "name", szNewName, charsmax(szNewName))
	
	if (!equal(szNewName, szOldName))
	{
		Save_Data(id, szOldName)
		set_task(0.1, "Load_Data", id, szNewName, sizeof(szNewName))
		goto Handled
	}
	
	Handled:
	return PLUGIN_HANDLED
}

stock precache_player_model(const name[], &id = 0)
{
    new model[128]
    formatex(model, charsmax(model), "models/player/%s/%sT.mdl", name, name)

    if(file_exists(model))
        id = precache_generic(model)

    static const extension[] = "T.mdl"
    #pragma unused extension

    copy(model[strlen(model) - charsmax(extension)], charsmax(model), ".mdl")
    return precache_model(model)
}
Пиша от избата, защото горе имаме течове..

Потребителски аватар

OciXCrom TM
Администратор
Администратор
Мнения: 5392
Регистриран: 06 окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 87 пъти
Получена благодарност: 602 пъти
Години: 21
Контакти:

Заявка за плъгин -Admin Models

Мнение от OciXCrom TM » 11 фев 2019, 15:00

@Darkness* - този код не съм го писал аз.
@LayerFort - някъде да е споменал, че му трябва за Zombie Plague?

Ето ти по-качествена версия, настрой моделите и флага в първите редове. Ако питаш как, ще заключа темата.

Код: Избери всички

#include <amxmodx>
#include <cstrike>
#include <hamsandwich>

new const SKIN_FLAG = ADMIN_RESERVATION
new const SKIN_CT[] = "CustomAdmCT"
new const SKIN_T[] = "CustomAdmT"

new bool:g_bHasCustomSkin[33]

public plugin_init()
{
	register_plugin("Simple VIP Model", "1.0", "OciXCrom")
	RegisterHam(Ham_Spawn, "player", "OnPlayerSpawn", 1)
}

public plugin_precache()
{	
	precache_player_model(SKIN_CT)
	precache_player_model(SKIN_T)
}

public client_putinserver(id)
	g_bHasCustomSkin[id] = false

public OnPlayerSpawn(id)
{
	if(is_user_alive(id))
	{
		if(get_user_flags(id) & SKIN_FLAG)
		{
			switch(cs_get_user_team(id))
			{
				case CS_TEAM_CT: set_model(id, SKIN_CT)
				case CS_TEAM_T: set_model(id, SKIN_T)
			}
		}
		else if(g_bHasCustomSkin[id])
		{
			g_bHasCustomSkin[id] = false
			cs_reset_user_model(id)
		}
	}
}

set_model(const id, const szModel[])
{
	cs_set_user_model(id, szModel)
	g_bHasCustomSkin[id] = true
}

stock precache_player_model(const name[], &id = 0)
{
    new model[128]
    formatex(model, charsmax(model), "models/player/%s/%sT.mdl", name, name)

    if(file_exists(model))
        id = precache_generic(model)

    static const extension[] = "T.mdl"
    #pragma unused extension

    copy(model[strlen(model) - charsmax(extension)], charsmax(model), ".mdl")
    return precache_model(model)
}

Отговори

Върни се в “Заявки за плъгини”

Кой е на линия

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