Бъг при Admin Skin плъгина OciXcrom

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
petyrkpetrov
Извън линия
Потребител
Потребител
Мнения: 47
Регистриран на: 08 Окт 2016, 18:53
Се отблагодари: 8 пъти

Бъг при Admin Skin плъгина OciXcrom

Мнение от petyrkpetrov » 16 Фев 2023, 22:34

При моментално DeathMatch Mode прераждане моделът на CT остава като Т. Тоест, когато CT убие Т и CT премине като T модела се запазва да е CT.

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

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

enum _:ModelsInfo
{
	Flag,
	CTModel[32],
	TModel[32]
}

new const g_eModels[][ModelsInfo] =
{
	{ ADMIN_LEVEL_A, "owner_ct", "owner_t" },
	{ ADMIN_LEVEL_B, "admin_ct", "admin_t" }
}

new Trie:g_tModels

public plugin_init()
{
	register_plugin("Multiple Player Models", "1.0", "OciXCrom")
	RegisterHam(Ham_Spawn, "player", "OnPlayerSpawn", 1)
}

public plugin_end()
	TrieDestroy(g_tModels)

public plugin_precache()
{
	g_tModels = TrieCreate()
	
	for(new i; i < sizeof(g_eModels); i++)
	{
		precache_player_model(g_eModels[i][CTModel])
		precache_player_model(g_eModels[i][TModel])
	}
}

public OnPlayerSpawn(id)
{
	if(is_user_alive(id))
	{
		static bool:bMatch, iFlags, i
		bMatch = false
		
		for(iFlags = get_user_flags(id), i = 0; i < sizeof(g_eModels); i++)
		{
			if(iFlags & g_eModels[i][Flag])
			{
				switch(cs_get_user_team(id))
				{
					case CS_TEAM_CT: cs_set_user_model(id, g_eModels[i][CTModel])
					case CS_TEAM_T: cs_set_user_model(id, g_eModels[i][TModel])
				}
				
				bMatch = true
				break
			}
		}
		
		if(!bMatch)
		{
			static szModel[32]
			cs_get_user_model(id, szModel, charsmax(szModel))
			
			if(TrieKeyExists(g_tModels, szModel))
				cs_reset_user_model(id)
		}
	}
}

precache_player_model(szModel[])
{
	TrieSetCell(g_tModels, szModel, 1)
	
	static szFile[128]
	formatex(szFile, charsmax(szFile), "models/player/%s/%s.mdl", szModel, szModel)
	precache_model(szFile)
	replace(szFile, charsmax(szFile), ".mdl", "T.mdl")
	
	if(file_exists(szFile))
		precache_model(szFile)
}

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

#pragma semicolon 1

#include <amxmodx>
#include <reapi>

#define ADMIN_ACCESS ADMIN_RESERVATION

new const g_szModelNames[][] = {
	"AdmT",   // te model
	"AdmCT"    // ct model
};

public plugin_init() {
    register_plugin("Admin models", "0.0.1", "mIDnight");

    RegisterHookChain(RG_CBasePlayer_SetClientUserInfoModel, "@CBasePlayer_SetClientUserInfoModel_Pre", .post = false);
}

public plugin_precache() {
	for(new i = 0; i < sizeof(g_szModelNames); i++) {
		precache_model(fmt("models/player/%s/%s.mdl", g_szModelNames[i], g_szModelNames[i]));
	}
}

@CBasePlayer_SetClientUserInfoModel_Pre(const pPlayer, infobuffer[], szNewModel[]) {
	if(get_user_flags(pPlayer) & ADMIN_ACCESS) {
		SetHookChainArg(3, ATYPE_STRING, g_szModelNames[get_member(pPlayer, m_iTeam) == TEAM_TERRORIST ? 0 : 1]);
	}
}
Намерих решение, може да се заключи.
MANSION СЪРВЪРИ :
93.123.16.44:27020 - HNS
93.123.16.44:27021 - Dust2 Classic
85.217.196.76:27016 - Long Jump 10/100aa
85.217.196.76:27017 - Dust2 Respawn

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

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

Кой е на линия

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