FakeMap v2

Сообщения
96
Реакции
120
Помог
1 раз(а)
Добавить проверку, если игроков менее чем N, то ставить set_fakemap

Код:

#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 договоримся
 
Последнее редактирование:
Сообщения
2,143
Реакции
1,225
Помог
44 раз(а)
Код:
#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


Код:
#else
if(equali(szMapName, "default")) {
rh_reset_mapname()
}
else {
rh_set_mapname(szMapName)
}

#endif
 
Сообщения
96
Реакции
120
Помог
1 раз(а)
Minni, не так выразил тз
как говорил fantom "в реапи доступный натив без хака"
 
Сообщения
2,143
Реакции
1,225
Помог
44 раз(а)
h1k3,
Код:
/*
* Sets the name of the map.
*
* @param mapname New map name.
*
* @noreturn
*/
native rh_set_mapname(const mapname[]);

/*
* Gets the name of the map.
*
* @param output Buffer to copy map name to
* @param len Maximum buffer size
* @param type MNT_SET will return the name of the current map
* MNT_TRUE will return the original map name independant of the name set with via rh_set_mapname
*
* @noreturn
*/
native rh_get_mapname(output[], len, MapNameType:type = MNT_SET);

/*
* Reverts back the original map name.
*
* @noreturn
*/
native rh_reset_mapname();
 
Сообщения
96
Реакции
84
Помог
2 раз(а)
Вот есть ещё такая версия плагина, но имя карты слетает после смены
Код:
#include <amxmodx>
#include <reapi>

#define PLUGIN_VERSION "1.0"

new g_pMap

public plugin_init()
{
register_plugin("Custom Mapname", PLUGIN_VERSION, "OciXCrom")
register_cvar("CRXCustomMapname", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
RegisterHookChain(RH_Cvar_DirectSet, "ReAPI_HC_Cvar_DirectSet")
g_pMap = register_cvar("sv_mapname", "")
}

public plugin_cfg()
{
new szMap[32]
get_pcvar_string(g_pMap, szMap, charsmax(szMap))
ReAPI_HC_Cvar_DirectSet(g_pMap, szMap)
}

public ReAPI_HC_Cvar_DirectSet(pCvar, szValue[])
{
if(pCvar == g_pMap)
szValue[0] ? rh_set_mapname(szValue) : rh_reset_mapname()
}
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
имя карты слетает после смены
Тоесть слетает. Подробней
26 Ноя 2017
Minni, не так выразил тз
как говорил fantom "в реапи доступный натив без хака"
Minni как раз и дал код без хака. Я изначально не заметил эго. Моя ошибка. Сорри.
 
Сообщения
96
Реакции
84
Помог
2 раз(а)
fantom, при смене карты заданное имя не сохраняется и нужно вводить команду по новой
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
chihuahuashka, так пропишите в конфиге amxx.cfg иили для конкретной карты
 
Сообщения
2,288
Реакции
1,739
Помог
31 раз(а)
h1k3,
Не понимаю установки данного плагина на сервер, вы меняете название карты на de_dust2 вместо названия реальной карты, игрок заходит с желание поиграть на de_dust2, а попадает к примеру на de_fog какой нибудь.И что в итоге? Получается вы обманываете своих клиентов поднося им ложную информацию в 90% случаях такие игроки выйдут с сервера и уйдут на другой, а к вашему потеряется доверие. Лучше поработайте над тем, что б игроки возвращались к вам играть не смотря на название карты.
 
Сообщения
96
Реакции
120
Помог
1 раз(а)
Pokemoshka,
1. у меня он не стоит
2. Постоянные игроки не уйдут и будут вкурсе такой фишки+ знают какие карты на серве. Ставится карта даст2_2х2, чтобы школота из раскруток заходила на серв и поверьте далеко не все уходят, а по личным наблюдениям без плагина 20-25 человек, с ним 25+.Делается это для того чтобы было 32/32. Мне это не нужно т.к. до 25 человек для меня норма
 
Сообщения
2,288
Реакции
1,739
Помог
31 раз(а)
h1k3, Не лучше ли собирать на сервере адекватный контингент взрослых людей, чем школоту?
 
Сообщения
96
Реакции
120
Помог
1 раз(а)
Pokemoshka, 1. плагин у меня не стоит
то что я создал тему не означает, что я его использую)
как по мне, кто плагин ставит тупо хочет 32/32 и не важно кто там играет, а ну и донат
 
Сообщения
96
Реакции
120
Помог
1 раз(а)
Minni, спасибо, вроде пока все работает
p.s слетает мапа из-за плагина Admin Loader 2.9
 
Сообщения
2,143
Реакции
1,225
Помог
44 раз(а)
В каком смысле "слетает карта"?
 
Сообщения
96
Реакции
120
Помог
1 раз(а)
Minni, "при смене карты заданное имя не сохраняется и нужно вводить команду по новой"
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу