Участник
Пользователь
- Сообщения
- 96
- Реакции
- 120
- Помог
- 1 раз(а)
Добавить проверку, если игроков менее чем N, то ставить set_fakemap
Бюджет: Есть:D договоримся
Код:
#define REHLDS_SERVER
#include <amxmodx>
#if !defined REHLDS_SERVER
#include <fakemeta>
#define ALLOC_STRING(%0) engfunc(EngFunc_AllocString, %0)
new Trie:g_tMapNames, g_iGlobalVar, g_iGlobalVar_MapName
#else
#include <reapi>
#endif
public plugin_init()
{
register_plugin("Fake Map", "0.2", "Vaqtincha")
register_concmd("set_fakemap", "ConCmd_ChangeMapName", ADMIN_CFG, "set_fakemap < fake name > or < default >")
#if !defined REHLDS_SERVER
g_tMapNames = TrieCreate()
new szMapName[32]
get_mapname(szMapName, charsmax(szMapName))
TrieSetCell(g_tMapNames, "default", ALLOC_STRING(szMapName))
g_iGlobalVar = is_linux_server() ? -0xC0 : 0x11320
g_iGlobalVar_MapName = engfunc(EngFunc_GetInfoKeyBuffer, -1) + g_iGlobalVar + 0xC
#endif
}
public ConCmd_ChangeMapName(const pPlayer, const level)
{
if(!(get_user_flags(pPlayer) & level))
return PLUGIN_HANDLED
if(read_argc() != 2)
{
server_print("set_fakemap < fake name > or < default >")
return PLUGIN_HANDLED
}
new szMapName[32]
read_argv(1, szMapName, charsmax(szMapName))
#if !defined REHLDS_SERVER
new iszNewName
strtolower(szMapName)
if(!TrieGetCell(g_tMapNames, szMapName, iszNewName))
{
iszNewName = ALLOC_STRING(szMapName)
TrieSetCell(g_tMapNames, szMapName, iszNewName)
}
UTIL__PatchMapName(iszNewName)
#else
if(equali(szMapName, "default")) {
rh_reset_mapname()
}
else {
rh_set_mapname(szMapName)
}
#endif
return PLUGIN_HANDLED
}
// thanks to PRoSToTeM@, good idea.
// -- implemented hack: PRoSToTeM@
// -- by s1lent
stock UTIL__PatchMapName(const iszNewName)
{
if(iszNewName) {
set_tr2(g_iGlobalVar_MapName, TR_AllSolid, iszNewName)
}
}
Бюджет: Есть:D договоримся
Последнее редактирование: