Преработка на Models Menu ZP 4.3

Въпроси и проблеми свързани с AMXModX.
Аватар
YankoNL
Извън линия
Потребител
Потребител
Мнения: 163
Регистриран на: 06 Апр 2017, 09:07
Местоположение: Варна
Се отблагодари: 22 пъти
Получена благодарност: 9 пъти

Преработка на Models Menu ZP 4.3

Мнение от YankoNL » 26 Ное 2018, 21:02

Здравейте! Имам плъгин който сменя моделите на Human-ите и ивкам да му бъдат добавени някои нещича.
1. След избирането на модела, след името му да изписва "~Selected~" или да става в сив цвят.
2. Избрания модел да се запазва. (Не искам всеки рунд да си избирам скин.)
Благодаря предварително.

Ето и плъгина:

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

#include <amxmodx>
#include <hamsandwich>

native zp_get_user_zombie(id)
native zp_get_user_survivor(id)
native zp_override_user_model(id, const model[], modelindex=0)

//player model name: edit as you want
new const szModelName[][] = 
{
	"arctic",
	"gign",
	"gsg9",
	"guerilla",
	"leet",
	"sas",
	"terror",
	"urban",
	"vip"
}

//player model name in menu: edit as you want
new const szModelMenuName[][] = 
{
	"Arctic Munkey",
	"GIGN",
	"GSG9",
	"Guerillaz",
	"1337",
	"SAS",
	"Tellolist",
	"Urban Chaos",
	"VVIP"
}

new bool:bIsNewModel[33], szNewModel[33][32], bool:bIsNewRound

public plugin_precache()
{
	new j, szText[64]
	for(j=0; j < sizeof szModelName; j++)
	{
		formatex(szText, 63, "models/player/%s/%s.mdl", szModelName[j], szModelName[j])
		precache_model(szText)
	}
}

public plugin_init()
{
	register_plugin("ZP Models Menu", "0.0.2", "wbyokomo")
	
	register_event("HLTV", "OnNewRound", "a", "1=0", "2=0")
	register_logevent("OnStartRound",2, "1=Round_Start")
	
	RegisterHam(Ham_Spawn, "player", "OnPlayerSpawnPost", 1)
	
	register_clcmd("say /model", "CmdNewModels")
}

public client_disconnected(id)
{
	bIsNewModel[id] = false
}

public OnNewRound()
{
	bIsNewRound = true
}

public OnStartRound()
{
	bIsNewRound = false
}

public OnPlayerSpawnPost(id)
{
	if(!is_user_alive(id) || !bIsNewModel[id]) return;
	
	//spawn as zombie in deathmatch, no need to change model.
	if(!bIsNewRound && zp_get_user_zombie(id)) return;
	
	zp_override_user_model(id, szNewModel[id], 1)

	//zp_override_user_model(id, szNewModel[id])
}

public CmdNewModels(id)
{
	if(!is_user_connected(id))
	{
		log_amx("Unconnected player [%d] tried to use /model command.", id)
		return PLUGIN_HANDLED;
	}
	if(zp_get_user_zombie(id) || zp_get_user_survivor(id))
	{
		client_print(id, print_chat, "[MODEL] Sorry! Zombie, Nemesis, Survivor can't use custom model.")
		return PLUGIN_HANDLED;
	}
	
	new menu = menu_create("Human Models:", "mh_CustomModel")
	
	new j
	for(j=0; j < sizeof szModelMenuName; j++)
	{
		menu_additem(menu, szModelMenuName[j], "", 0)
	}
	
	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
	menu_display(id, menu, 0)
	
	return PLUGIN_HANDLED;
}

public mh_CustomModel(id, menu, item)
{
	if(!is_user_connected(id))
	{
		menu_destroy(id)
		return PLUGIN_HANDLED;
	}
	if(zp_get_user_zombie(id) || zp_get_user_survivor(id))
	{
		menu_destroy(id)
		client_print(id, print_chat, "[MODEL] Sorry! Zombie, Nemesis, Survivor can't use custom model.")
		return PLUGIN_HANDLED;
	}
	
	if(item == MENU_EXIT)
	{
		menu_destroy(id)
		return PLUGIN_HANDLED;
	}

	new command[6], name[64], access, callback

	menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback)
	
	bIsNewModel[id] = true

	zp_override_user_model(id, szModelName[item], 1)

	//zp_override_user_model(id, szModelName[item])

	copy(szNewModel[id], 31, szModelName[item])
	client_print(id, print_chat, "[MODEL] You've chosen '%s' as your new player model.", szModelName[item])

	menu_destroy(menu)

	return PLUGIN_HANDLED;
}

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

Обратно към “Поддръжка / Помощ”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 12 госта