ADMIN/V.I.P Models

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

ADMIN/V.I.P Models

Мнение от JustInCase » 16 Окт 2016, 01:04

ADMIN/V.I.P Models Modified
Автор JustInCase


Описание:
Поставя скин на играча в зависимост дали е ADMIN или V.I.P (Контролира се чрез флагове)

CVARs:
Ще ги видите в /configs директорията в файла Admin_Models.cfg
Файлът се създава автоматично ако няма такъв.

Плъгинът е модифициран специално от мен да създава CFG файл чрез, който да имате пълен контрол над плъгина БЕЗ ПРОМЯНА на SourceCode-а !

Плъгинът не е тестван(нямам в момента сървър), ще е добре ако чуя разни отзиви за това дали има бъгове, за да подпомогна за тяхното отстраняване.

Специални благодарности на @OciXChrom за съветите отностно функциалността на плъгина.
Последно промяна от JustInCase на 16 Окт 2016, 15:02, променено общо 1 път.
MANSION - HNS : 45.144.155.99:27026
ONLINE

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

Re: ADMIN/V.I.P Models

Мнение от OciXCrom » 16 Окт 2016, 02:26

По този начин плъгинът няма как да работи правилно. plugin_init се извиква след plugin_precache, съответно ако четеш файла в plugin_init, настройките в него нямат никаква функция, тъй като моделите може да се precache-нат само в plugin_precache. Отделно, забелязах и елементарна грешка, която прави проверката за флаг неработеща (if(iFlags && ...)). За напред тествай плъгина преди да го качваш.

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

Re: ADMIN/V.I.P Models

Мнение от JustInCase » 16 Окт 2016, 11:20

OciXCrom™ написа:По този начин плъгинът няма как да работи правилно. plugin_init се извиква след plugin_precache, съответно ако четеш файла в plugin_init, настройките в него нямат никаква функция, тъй като моделите може да се precache-нат само в plugin_precache.

Следователно трябва да чета файла в plugin_precache ?
MANSION - HNS : 45.144.155.99:27026
ONLINE

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

Re: ADMIN/V.I.P Models

Мнение от OciXCrom » 16 Окт 2016, 14:52

Да, както и да регистрираш кваровете там.

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

Re: ADMIN/V.I.P Models

Мнение от JustInCase » 16 Окт 2016, 14:59

OciXCrom™ написа:Да, както и да регистрираш кваровете там.

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

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>

#pragma semicolon 1

#define PLUGIN "Admin Models File Config"
#define AUTHOR "JustInCase"
#define VERSION "1.0"



new AdminFlag,VipFlag, AdminModelTName, AdminModelCTName, VipModelTName, VipModelCTName;

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR);	
	RegisterHam(Ham_Spawn, "player", "Ham_UserSpawn", 1);
	
	
	
	//set_task(1.0, "TaskLoadFile");

	
}

public Ham_UserSpawn(id)
{
	new iFlags = get_user_flags(id), iTeam = get_user_team(id);
	
	if( !is_user_alive(id) || !is_user_connected(id) || iTeam == 3 )
		return HAM_IGNORED;
	
	/* Get pCvar Strings */
	new szAdminModels[2][32], szVipModels[2][32], szAccess[2][12];
	get_pcvar_string(AdminModelTName, szAdminModels[0], charsmax(szAdminModels[])); // T
	get_pcvar_string(AdminModelCTName, szAdminModels[1], charsmax(szAdminModels[]));    // CT
	
	get_pcvar_string(VipModelTName, szVipModels[0], charsmax(szVipModels[]));   // T
	get_pcvar_string(VipModelCTName, szVipModels[1], charsmax(szVipModels[]));  // CT
	
	get_pcvar_string(AdminFlag, szAccess[0], charsmax(szAccess[])); // Admin Flag
	get_pcvar_string(VipFlag, szAccess[1], charsmax(szAccess[]));   // Vip Flag
	/* Get pCvar Strings */
	
	if(iFlags & read_flags(szAccess[0]))
		set_user_info(id, "model", iTeam == 1 ? szAdminModels[0] : szAdminModels[1]);
	else if(iFlags &  read_flags(szAccess[1]))
		set_user_info(id, "model", iTeam == 1 ? szVipModels[0] : szVipModels[1]);
		
	return HAM_IGNORED;
}

public plugin_precache()
{
	
	AdminFlag = register_cvar("amx_models_adminf", "e"); // ADMIN_SLAY
	VipFlag = register_cvar("amx_models_vipf", "m"); // ADMIN_LEVEL_A
	AdminModelTName = register_cvar("amx_models_admintname", "adminmodelt");
	AdminModelCTName = register_cvar("amx_models_adminctname", "adminmodelct");
	VipModelTName = register_cvar("amx_models_viptname", "vipmodelt");
	VipModelCTName = register_cvar("amx_models_vipctname", "vipmodelct");
	
	
	
	set_task(1.0, "TaskLoadFile");
	
	new szModel[128], szAdminModels[2][32], szVipModels[2][32];
	get_pcvar_string(AdminModelTName, szAdminModels[0], charsmax(szAdminModels[])); // T
	get_pcvar_string(AdminModelCTName, szAdminModels[1], charsmax(szAdminModels[]));    // CT
	
	get_pcvar_string(VipModelTName, szVipModels[0], charsmax(szVipModels[]));   // T
	get_pcvar_string(VipModelCTName, szVipModels[1], charsmax(szVipModels[]));  // CT
	
	formatex(szModel, charsmax(szModel), "models/player/%s/%s.mdl", szAdminModels[0], szAdminModels[0]);
	precache_model(szModel);
	//-------------------------------
	formatex(szModel, charsmax(szModel), "models/player/%s/%s.mdl", szAdminModels[1], szAdminModels[1]);
	precache_model(szModel);
	//-------------------------------
	formatex(szModel, charsmax(szModel), "models/player/%s/%s.mdl", szVipModels[0], szVipModels[0]);
	precache_model(szModel);
	//-------------------------------
	formatex(szModel, charsmax(szModel), "models/player/%s/%s.mdl", szVipModels[1], szVipModels[1]);
	precache_model(szModel);
}
public client_infochanged(id)
{
	if(!is_user_connected(id))
		return PLUGIN_CONTINUE;
	
	
	new szModel[32], szAdminModels[2][32], szVipModels[2][32], szAccess[2][12];
	get_pcvar_string(AdminModelTName, szAdminModels[0], charsmax(szAdminModels[])); // T
	get_pcvar_string(AdminModelCTName, szAdminModels[1], charsmax(szAdminModels[]));    // CT
	
	get_pcvar_string(VipModelTName, szVipModels[0], charsmax(szVipModels[]));   // T
	get_pcvar_string(VipModelCTName, szVipModels[1], charsmax(szVipModels[]));  // CT
	
	get_pcvar_string(AdminFlag, szAccess[0], charsmax(szAccess[])); // Admin Flag
	get_pcvar_string(VipFlag, szAccess[1], charsmax(szAccess[]));   // Vip Flag
	
	get_user_info(id, "model", szModel, charsmax(szModel));
	
	new iFlags = get_user_flags(id), iTeam = get_user_team(id);
	
	if (iFlags & read_flags(szAccess[0]))
	{
		if (!equali(szModel, szAdminModels[0]) || !equali(szModel, szAdminModels[1]))
			set_user_info(id, "model", iTeam == 1 ? szAdminModels[0] : szAdminModels[1]);
	}
	if (iFlags & read_flags(szAccess[1]))
	{
		if (!equali(szModel, szVipModels[0]) || !equali(szModel, szVipModels[1]))
			set_user_info(id, "model", iTeam == 1 ? szVipModels[0] : szVipModels[1]);
	}
	return PLUGIN_CONTINUE;
}
public TaskLoadFile( )
{
	new szFile[ 124 ], dir[ 124 ];
	get_configsdir( dir, charsmax( dir ) );
	formatex( szFile, charsmax ( szFile ), "%s/Admin_Models.cfg", dir );
	
	if( file_exists( szFile ) )
	{
		server_cmd( "exec %s", szFile );
		server_exec( );
		log_amx( "Admin_Models.cfg is executed!");
	}
	else
	{
		CreateFile( szFile );
		log_amx( "Admin_Models.cfg is not found in configs folder. File is created..." );
	}
}
CreateFile( const file[ ] )
{
	
	new iCvars[6][32];
	get_pcvar_string(AdminFlag, iCvars[0], charsmax(iCvars[]));
	get_pcvar_string(VipFlag, iCvars[1], charsmax(iCvars[]));
	get_pcvar_string(AdminModelTName, iCvars[2], charsmax(iCvars[]));
	get_pcvar_string(AdminModelCTName, iCvars[3], charsmax(iCvars[]));
	get_pcvar_string(VipModelTName, iCvars[4], charsmax(iCvars[]));
	get_pcvar_string(VipModelCTName, iCvars[5], charsmax(iCvars[]));

	
	
	new i = fopen(file, "wt");
	
	fprintf(i, "// %s 	%s	%s", PLUGIN, AUTHOR, VERSION);
	fprintf(i, "//Plugin modify by JustInCase for WWW.AMXX-BG.INFO^n^n^n^n");
	fprintf(i, "//Admin Flag needed to set the ADMIN model^n");
	fprintf(i, "//Default ( ^"e^" - ADMIN_SLAY)^n");
	fprintf(i, "amx_models_adminf	%s^n^n", iCvars[0]);
	fprintf(i, "//VIP Flag needed to set the VIP model^n");
	fprintf(i, "//Default ( ^"m^" - ADMIN_LEVEL_A)^n");
	fprintf(i, "amx_models_vipf	%s^n^n", iCvars[1]);
	fprintf(i, "//Name of the Admin T Model^n");
	fprintf(i, "//Default is (%s)^n", iCvars[2]);
	fprintf(i, "amx_models_admintname	%s^n^n", iCvars[2]);
	fprintf(i, "//Name of the Admin CT Model^n");
	fprintf(i, "//Default is (%s)^n", iCvars[3]);
	fprintf(i, "amx_models_adminctname	%s^n^n", iCvars[3]);
	fprintf(i, "//Name of the VIP T Model^n");
	fprintf(i, "//Default is (%s)^n", iCvars[4]);
	fprintf(i, "amx_models_viptname		%s^n^n", iCvars[4]);
	fprintf(i, "//Name of the VIP CT Model^n");
	fprintf(i, "//Default is (%s)^n", iCvars[5]);
	fprintf(i, "amx_models_vipctname	%s^n^n", iCvars[5]);
	
	fclose(i);
	
}
UPDATE-вам го така.
MANSION - HNS : 45.144.155.99:27026
ONLINE

Аватар
LAWLIET
Извън линия
Потребител
Потребител
Мнения: 51
Регистриран на: 08 Окт 2016, 14:24
Местоположение: СофияЕИстината
Обратна връзка:

Re: ADMIN/V.I.P Models

Мнение от LAWLIET » 16 Окт 2016, 15:13

МНЕНИЕТО Е СКРИТО ОТ СТРАНА НА МОДЕРАТОР! ЦЪКНИ ВЪРХУ ЛЕНТАТА ЗА ДА ГО ПРЕГЛЕДАШ.
Последно промяна от OciXCrom на 16 Окт 2016, 15:16, променено общо 1 път.
Причина: Тази функция от 2 реда да не би да има някакви авторски права?!
Изображение
Изображение ИзображениеИзображение ИзображениеИзображение

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

Re: ADMIN/V.I.P Models

Мнение от OciXCrom » 16 Окт 2016, 15:17

Този task от 1 секунда прецаква целия плъгин. Не добавяй абсолютно никакво забавяне в plugin_precache().

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

Re: ADMIN/V.I.P Models

Мнение от JustInCase » 16 Окт 2016, 15:34

OciXCrom™ написа:Този task от 1 секунда прецаква целия плъгин. Не добавяй абсолютно никакво забавяне в plugin_precache().

Без task ?
MANSION - HNS : 45.144.155.99:27026
ONLINE

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

Re: ADMIN/V.I.P Models

Мнение от OciXCrom » 16 Окт 2016, 15:48

Естествено, че без. Ако добавиш task, останалият код във функцията ще бъде изпълнен преди да задейства task-а, съответно моделите вече ще бъдат precache-нати.

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

Re: ADMIN/V.I.P Models

Мнение от OciXCrom » 16 Окт 2016, 16:00

Като изпълниш функцията директно?!
Виж, няма как да одобря плъгина при положение, че не можеш сам да го направиш както трябва. Този файл като цяло е ненужен, тъй като ползваш кварове, които може да се променят директно. Отделно, трябва да се добави и проверка за <model>T.mdl файл. По-късно ще кача работещ плъгин - можеш да вземеш пример от него.

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

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

Кой е на линия

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