Choose Camera View

Одобрените от нас плъгини. Моля, докладвайте ако забележите бъг с някой от плъгините в този раздел.
Аватар
illusion
Извън линия
Developer
Developer
Мнения: 1796
Регистриран на: 27 Ное 2016, 17:47
Местоположение: CraftVision
Се отблагодари: 151 пъти
Получена благодарност: 358 пъти
Обратна връзка:

Choose Camera View

Мнение от illusion » 24 Авг 2018, 14:45

Сървъра крашва, а и като гледам съобщението не е това, което аз исках да кажа. Искам всички играчи да виждат съобщението, когато аз избера примерно някаква камера, но при мен примерно да е You choose еди каквато си камера, а при тях да е Player %s (Nickname-a) choose еди каквато си камера... Дано си ме разбрал сега. А и нещо крашна сървъра, не знам защо. В логовете няма грешки.

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Choose Camera View

Мнение от OciXCrom » 24 Авг 2018, 14:49

Крашът в никакъв случай не е от един добавен квар...

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

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta>
#include <colorchat>

#define PLUGIN  "Choose Camera View"
#define VERSION "1.0"
#define AUTHOR  "hackera457 @ AMXX-BG.info"

#define DEFAULT_CAMERA_TYPES 4

enum _:Cvars{
	
	USE_DEFAULT_CAMERA_CHOICE,
	DEFAULT_CAMERA_VIEW_TYPE,
	ONLY_ADMIN_USE_MENU,
	ADMIN_MENU_ACCESS,
	SHOW_CHAT_MESSAGE
}

new const g_szCameraTypes[][]={
	
	"Normal Camera",
	"TopDown Camera",
	"UpLeft Camera",
	"3rd Person Camera"
}

new const g_szSayCommands[][]={
	
	"say /cam", "say_team /cam",
	"say /camera", "say_team /camera"	
	
}

new g_iUserCameraChoice[33]
new g_pCvars[Cvars]

public plugin_init()
{
		register_plugin(PLUGIN,VERSION,AUTHOR)
		
		register_cvar("hackera457_ccv",VERSION,FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
		
		g_pCvars[USE_DEFAULT_CAMERA_CHOICE] = register_cvar("ccv_user_default_camera_view","1")
		g_pCvars[DEFAULT_CAMERA_VIEW_TYPE] = register_cvar("ccv_default_user_camera_view","0")
		g_pCvars[ONLY_ADMIN_USE_MENU] = register_cvar("ccv_admin_use_only","0")
		g_pCvars[ADMIN_MENU_ACCESS] = register_cvar("ccv_admin_menu_access_flag","c")
		g_pCvars[SHOW_CHAT_MESSAGE] = register_cvar("ccv_show_chat_message","1")
		
		for(new i=0; i<4; i++)
			register_clcmd(g_szSayCommands[i],"cmdShowCamChoiceMenu")
		
		register_forward(FM_AddToFullPack, "Fwd_AddToFullPack", 1)
}

public plugin_precache()
{
    precache_model("models/rpgrocket.mdl")
}

public client_putinserver(id)
{
	if(get_pcvar_num(g_pCvars[USE_DEFAULT_CAMERA_CHOICE]))
		SetUserCamera(id, get_pcvar_num(g_pCvars[DEFAULT_CAMERA_VIEW_TYPE]))
	else
		g_iUserCameraChoice[id] = 0
}

public cmdShowCamChoiceMenu(id)
{
	if(get_pcvar_num(g_pCvars[ONLY_ADMIN_USE_MENU]))
	{
		static szAdminFlags[32]
		get_pcvar_string(g_pCvars[ADMIN_MENU_ACCESS], szAdminFlags, sizeof szAdminFlags -1)
		
		if(!(get_user_flags(id) & read_flags(szAdminFlags)))
		{
			ColorChat(id,TEAM_COLOR,"^4[CCV] ^1Only Admin/VIP can use camera menu!")
			return PLUGIN_HANDLED
		}
	}
	static szMenuTitle[128], szMenuItem[64], iMenu
	
	formatex(szMenuTitle, sizeof szMenuTitle -1,"\r[CCV] \yChoose your camera type:")
	iMenu = menu_create(szMenuTitle,"handlerCamChoiceMenu")
	
	for(new j=0; j < DEFAULT_CAMERA_TYPES; j++)
	{
		formatex(szMenuItem, sizeof szMenuItem -1,"\y%s %s",g_szCameraTypes[j],(g_iUserCameraChoice[id] == j ? "\r[SELECTED]":""))
		menu_additem(iMenu,szMenuItem)
	}
	
	menu_setprop(iMenu,MPROP_EXITNAME,"\rClose")
	menu_display(id,iMenu,0)
	
	return PLUGIN_HANDLED
}

public handlerCamChoiceMenu(id,iMenu,iItem)
{
	if(iItem == MENU_EXIT)
	{
		menu_destroy(iMenu)
		return PLUGIN_HANDLED
	}
	
	if(g_iUserCameraChoice[id] == iItem)
	{
		ColorChat(id,TEAM_COLOR,"^4[CCV] ^1You have already choosed camera view!")
		return PLUGIN_HANDLED
	}
		
	SetUserCamera(id,iItem)
	client_cmd(id,"spk UI/buttonclickrelease.wav")

	if(get_pcvar_num(g_pCvars[SHOW_CHAT_MESSAGE]))
	{
		new szName[32], iPlayers[32], iPnum
		get_user_name(id, szName, charsmax(szName))
		get_players(iPlayers, iPnum)

		for(new iPlayer, i; i < iPnum; i++)
		{
			iPlayer = iPlayers[i]

			if(id == iPlayer)
				ColorChat(iPlayer,TEAM_COLOR,"^4[CCV] ^1You choose ^3%s^1!",g_szCameraTypes[iItem])
			else
				ColorChat(iPlayer,TEAM_COLOR,"^4[CCV] ^3%s ^1chose the camera ^3%s^1!",szName,g_szCameraTypes[iItem])
		}
	}
	else ColorChat(id,TEAM_COLOR,"^4[CCV] ^1You choose ^3%s^1!",g_szCameraTypes[iItem])
	
	return PLUGIN_HANDLED
}

public Fwd_AddToFullPack (es_handle, e, ent, host, hostflags, player, pSe )
{
	if(player && (ent == host))
		set_es(es_handle, ES_RenderMode, kRenderNormal)
}

SetUserCamera(id,iCameraType)
{
	if(is_user_hltv(id) || is_user_bot(id))
		return;
		
	switch(iCameraType)
	{
		case 0: set_view(id,CAMERA_NONE)
		case 1: set_view(id,CAMERA_TOPDOWN)
		case 2: set_view(id,CAMERA_UPLEFT)
		case 3: set_view(id,CAMERA_3RDPERSON)
	}
	
	g_iUserCameraChoice[id] = iCameraType
}

Аватар
illusion
Извън линия
Developer
Developer
Мнения: 1796
Регистриран на: 27 Ное 2016, 17:47
Местоположение: CraftVision
Се отблагодари: 151 пъти
Получена благодарност: 358 пъти
Обратна връзка:

Choose Camera View

Мнение от illusion » 08 Окт 2018, 19:59

Сега вече си работи перфектно, а краша може да е защото бях писал на хостинга да направят началния мап.

Може ли да се направи като избереш някоя камера от менюто, менюто да си седи още отворено, тоест да не се затваря?

Аватар
JustInCase
Извън линия
Потребител
Потребител
Мнения: 582
Регистриран на: 14 Окт 2016, 23:31
Се отблагодари: 4 пъти
Получена благодарност: 15 пъти

Choose Camera View

Мнение от JustInCase » 08 Окт 2018, 22:30

F33L Th3 P0W3R. написа: 08 Окт 2018, 19:59 Сега вече си работи перфектно, а краша може да е защото бях писал на хостинга да направят началния мап.

Може ли да се направи като избереш някоя камера от менюто, менюто да си седи още отворено, тоест да не се затваря?

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

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta>
#include <colorchat>

#define PLUGIN  "Choose Camera View"
#define VERSION "1.0"
#define AUTHOR  "hackera457 @ AMXX-BG.info"

#define DEFAULT_CAMERA_TYPES 4

enum _:Cvars{
	
	USE_DEFAULT_CAMERA_CHOICE,
	DEFAULT_CAMERA_VIEW_TYPE,
	ONLY_ADMIN_USE_MENU,
	ADMIN_MENU_ACCESS,
	SHOW_CHAT_MESSAGE
}

new const g_szCameraTypes[][]={
	
	"Normal Camera",
	"TopDown Camera",
	"UpLeft Camera",
	"3rd Person Camera"
}

new const g_szSayCommands[][]={
	
	"say /cam", "say_team /cam",
	"say /camera", "say_team /camera"	
	
}

new g_iUserCameraChoice[33]
new g_pCvars[Cvars]

public plugin_init()
{
		register_plugin(PLUGIN,VERSION,AUTHOR)
		
		register_cvar("hackera457_ccv",VERSION,FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
		
		g_pCvars[USE_DEFAULT_CAMERA_CHOICE] = register_cvar("ccv_user_default_camera_view","1")
		g_pCvars[DEFAULT_CAMERA_VIEW_TYPE] = register_cvar("ccv_default_user_camera_view","0")
		g_pCvars[ONLY_ADMIN_USE_MENU] = register_cvar("ccv_admin_use_only","0")
		g_pCvars[ADMIN_MENU_ACCESS] = register_cvar("ccv_admin_menu_access_flag","c")
		g_pCvars[SHOW_CHAT_MESSAGE] = register_cvar("ccv_show_chat_message","1")
		
		for(new i=0; i<4; i++)
			register_clcmd(g_szSayCommands[i],"cmdShowCamChoiceMenu")
		
		register_forward(FM_AddToFullPack, "Fwd_AddToFullPack", 1)
}

public plugin_precache()
{
    precache_model("models/rpgrocket.mdl")
}

public client_putinserver(id)
{
	if(get_pcvar_num(g_pCvars[USE_DEFAULT_CAMERA_CHOICE]))
		SetUserCamera(id, get_pcvar_num(g_pCvars[DEFAULT_CAMERA_VIEW_TYPE]))
	else
		g_iUserCameraChoice[id] = 0
}

public cmdShowCamChoiceMenu(id)
{
	if(get_pcvar_num(g_pCvars[ONLY_ADMIN_USE_MENU]))
	{
		static szAdminFlags[32]
		get_pcvar_string(g_pCvars[ADMIN_MENU_ACCESS], szAdminFlags, sizeof szAdminFlags -1)
		
		if(!(get_user_flags(id) & read_flags(szAdminFlags)))
		{
			ColorChat(id,TEAM_COLOR,"^4[CCV] ^1Only Admin/VIP can use camera menu!")
			return PLUGIN_HANDLED
		}
	}
	static szMenuTitle[128], szMenuItem[64], iMenu
	
	formatex(szMenuTitle, sizeof szMenuTitle -1,"\r[CCV] \yChoose your camera type:")
	iMenu = menu_create(szMenuTitle,"handlerCamChoiceMenu")
	
	for(new j=0; j < DEFAULT_CAMERA_TYPES; j++)
	{
		formatex(szMenuItem, sizeof szMenuItem -1,"\y%s %s",g_szCameraTypes[j],(g_iUserCameraChoice[id] == j ? "\r[SELECTED]":""))
		menu_additem(iMenu,szMenuItem)
	}
	
	menu_setprop(iMenu,MPROP_EXITNAME,"\rClose")
	menu_display(id,iMenu,0)
	
	return PLUGIN_HANDLED
}

public handlerCamChoiceMenu(id,iMenu,iItem)
{
	if(iItem == MENU_EXIT)
	{
		menu_destroy(iMenu)
		return PLUGIN_HANDLED
	}
	
	if(g_iUserCameraChoice[id] == iItem)
	{
		ColorChat(id,TEAM_COLOR,"^4[CCV] ^1You have already choosed camera view!")
		return PLUGIN_HANDLED
	}
		
	SetUserCamera(id,iItem)
	client_cmd(id,"spk UI/buttonclickrelease.wav")
	cmdShowCamChoiceMenu(id)

	if(get_pcvar_num(g_pCvars[SHOW_CHAT_MESSAGE]))
	{
		new szName[32], iPlayers[32], iPnum
		get_user_name(id, szName, charsmax(szName))
		get_players(iPlayers, iPnum)

		for(new iPlayer, i; i < iPnum; i++)
		{
			iPlayer = iPlayers[i]

			if(id == iPlayer)
				ColorChat(iPlayer,TEAM_COLOR,"^4[CCV] ^1You choose ^3%s^1!",g_szCameraTypes[iItem])
			else
				ColorChat(iPlayer,TEAM_COLOR,"^4[CCV] ^3%s ^1chose the camera ^3%s^1!",szName,g_szCameraTypes[iItem])
		}
	}
	else ColorChat(id,TEAM_COLOR,"^4[CCV] ^1You choose ^3%s^1!",g_szCameraTypes[iItem])
	
	return PLUGIN_HANDLED
}

public Fwd_AddToFullPack (es_handle, e, ent, host, hostflags, player, pSe )
{
	if(player && (ent == host))
		set_es(es_handle, ES_RenderMode, kRenderNormal)
}

SetUserCamera(id,iCameraType)
{
	if(is_user_hltv(id) || is_user_bot(id))
		return;
		
	switch(iCameraType)
	{
		case 0: set_view(id,CAMERA_NONE)
		case 1: set_view(id,CAMERA_TOPDOWN)
		case 2: set_view(id,CAMERA_UPLEFT)
		case 3: set_view(id,CAMERA_3RDPERSON)
	}
	
	g_iUserCameraChoice[id] = iCameraType
}
MANSION - HNS : 45.144.155.99:27026
ONLINE

Аватар
gil5587
Извън линия
Foreigner
Foreigner
Мнения: 72
Регистриран на: 01 Сеп 2018, 01:26
Се отблагодари: 77 пъти
Получена благодарност: 3 пъти

Choose Camera View

Мнение от gil5587 » 09 Окт 2018, 01:19

why is it feel/look laggy when using 3rd person view? ;/

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Choose Camera View

Мнение от OciXCrom » 09 Окт 2018, 12:11

gil5587 написа: 09 Окт 2018, 01:19 why is it feel/look laggy when using 3rd person view? ;/
That's how the game works. Nothing can be done about this.

Аватар
mi0
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 534
Регистриран на: 09 Дек 2016, 22:02
Се отблагодари: 97 пъти
Получена благодарност: 120 пъти
Обратна връзка:

Choose Camera View

Мнение от mi0 » 02 Авг 2019, 06:26

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

	switch(iCameraType)
	{
		case 0: set_view(id,CAMERA_NONE)
		case 1: set_view(id,CAMERA_TOPDOWN)
		case 2: set_view(id,CAMERA_UPLEFT)
		case 3: set_view(id,CAMERA_3RDPERSON)
	}
Това е напълно излишно.
Можеш да го замениш с

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

set_view(id,iCameraType)
Също така, в края на handlerCamChoiceMenu менюто не се дестройва.

Хубаво иначе, че остава човека видим. Ама знаеш ли колко пъти се изпълнява FM_AddToFullPack в секунда? Ще е много добре да се направи някакъв квар, че да могат хората да си го спират.
aka kurdokoleno
Catch Mod - 87.121.112.232:27021

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

Обратно към “Одобрени плъгини”

Кой е на линия

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