Участник
Пользователь
- Сообщения
- 702
- Реакции
- 54
Тук тук. Я тут это, смотря на ребят, у которых уже есть такая тема, где им помогают и объясняют - себе тоже захотел такую :)
Я не могу сказать, что яро хочу изучать скриптинг, писать плагины и т.д. Просто хочется быть чутка более полезным + иногда себе нужно что-то сделать!
Собсна, создал тему, чтобы уточнить какие-то небольшие моменты, нюансы и чтобы не потерять их, создавая кучу тем.
p.s. Да и мне интересно, какая функция, как используется и где используется))
UPD: Обновил первый пост. Залил всю инфу, которая накопилась!!!
Я не могу сказать, что яро хочу изучать скриптинг, писать плагины и т.д. Просто хочется быть чутка более полезным + иногда себе нужно что-то сделать!
Собсна, создал тему, чтобы уточнить какие-то небольшие моменты, нюансы и чтобы не потерять их, создавая кучу тем.
То, что я хотел узнать и успешно узнал, будет храниться здесь, под спойлером, чтобы каждый, при нужде, смог ознакомиться и воспользоваться информацией :)
Вопрос:
Как можно получить id игрока, если же в паблике не указан изначально id или const id?
Ответ:
С помощью цикла ниже.
Или если в таске нужно, тогда создать его где-то в public'e, где изначально указан id и вписать его, как id таска:
Вопрос:
Как можно поставить на паузу плагин на картах с префиксами?
Ответ:
С помощью цикла ниже.
Вопрос:
Как можно выключить хук на картах с префиксами?
Ответ:
С помощью кода ниже
Вопрос:
Как можно выключить все хуки или их часть на конкретной карте?
Ответ:
С помощью кода ниже
Вопрос:
В чём разница между rg_send_audio и rh_emit_sound?
Ответ:
rh_emit_sound - могут услышать игроки, которые находятся рядом!
Вопрос:
Как можно получить счётчики выигранных раундов СТ или ТТ ?
Ответ:
Мемберы: m_iNumCTWins и m_iNumTerroristWins
Вопрос:
Как можно получить координаты точки, которая находится через сто метров (сделать блинк там или ещё что) ?
Ответ:
Вопрос:
Что делает натив?
Ответ:
Принудительное выполнение сервером введенной в консоль команды (server_cmd();)
Вопрос:
Как сохранить данные об игроке по STEAMID на одну карту?
Ответ:
Вопрос:
Как скрыть худ конкретного элемента?
Ответ:
Единственное, что таймер почему-то не скрывается сам по себе и радар скрывается вместе с жизнями, броней.
Вопрос:
Как удалить на карте 35хп триггер, который добивает до нужного значения хп?
Ответ:
Как можно получить id игрока, если же в паблике не указан изначально id или const id?
Ответ:
С помощью цикла ниже.
Код:
for(new id = 1; id <= g_iMaxPlayers; id++)
{}
Код:
public client_authorized(id)
set_task(1.0, "TaskMain", id ,.flags = "b");
public TaskMain(id) {}
Как можно поставить на паузу плагин на картах с префиксами?
Ответ:
С помощью цикла ниже.
Код:
new szMapPrefix[][] = {"fy_", "35hp", "awp_", "aim_", "$"};
new szMapName[32]; get_mapname( szMapName, charsmax(szMapName));
for( new i; i < sizeof( szMapPrefix ); i++)
{
if(containi( szMapName, szMapPrefix[i] ) != -1)
{
pause("ad");
break;
}
}
Как можно выключить хук на картах с префиксами?
Ответ:
С помощью кода ниже
Код:
new HookChain: g_Spawn; // создаём переменную вкл/выкл хука
public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
g_Spawn = RegisterHookChain(RG_CSGameRules_PlayerSpawn, "refwd_PlayerSpawn_Post", true); // регистрируем хук
new szMapPrefix[][] = {"fy_", "35hp", "awp_", "aim_", "cs_deagle"};
new szMapName[32]; get_mapname( szMapName, charsmax(szMapName));
for( new i; i < sizeof( szMapPrefix ); i++)
{
if(containi( szMapName, szMapPrefix[i] ) != -1) // проверяем на наличие префикса в названии карты
{
DisableHookChain(g_Spawn); // выключаем хук
break; // конец цикла
}
}
}
Как можно выключить все хуки или их часть на конкретной карте?
Ответ:
С помощью кода ниже
Код:
public plugin_init()
{
new mapName[32]; // создаём переменную. куда будет записано название карты
get_mapname(mapName, charsmax(mapName)); // получаем название текущей карты в переменную mapName
if (equal(mapName, "35hp_new")) // проверяем на полное название карты
return; // если текущая карта совпадает с желаемой, тогда ретюрним и дальше код выполняться не будет, т.е зарегистрированные хуки работать не будут
RegisterHookChain(RG_CSGameRules_PlayerSpawn, "refwd_PlayerSpawn_Post", true)
}
В чём разница между rg_send_audio и rh_emit_sound?
Ответ:
rh_emit_sound - могут услышать игроки, которые находятся рядом!
Вопрос:
Как можно получить счётчики выигранных раундов СТ или ТТ ?
Ответ:
Мемберы: m_iNumCTWins и m_iNumTerroristWins
Вопрос:
Как можно получить координаты точки, которая находится через сто метров (сделать блинк там или ещё что) ?
Ответ:
Код:
#include <amxmodx>
#include <fakemeta>
#include <xs>
public test(player)
{
// Угол напрления взгляда игрока
new Float:vecViewAngle[3];
pev(player, pev_v_angle, vecViewAngle);
// Создаем вектора напраяления из ViewAngle
// Рузультат будет сохранен в глобальные переменные glb_v_forward, glb_v_up, glb_v_right
engfunc(EngFunc_MakeVectors, vecViewAngle);
// Получем вектор направления 'вперед' из глобальной переменной
new Float:vecForward[3];
global_get(glb_v_forward, vecForward);
// Умножаем вектор 'вперед' на необходимое значение (расстояние в юнитах)
xs_vec_mul_scalar(vecForward, 100.0, vecForward);
// Текущие координаты игрока
new Float:vecOrigin[3];
pev(player, pev_origin, vecOrigin);
// Получем координаты точки в напраялении 100 юнитов вперед
xs_vec_add(vecOrigin, vecForward, vecOrigin);
}
Что делает натив?
Код:
server_exec();
Принудительное выполнение сервером введенной в консоль команды (server_cmd();)
Я и PAWN | Изучаю, потому что интересно
ThePhoenix, а зачем тебе создавать новый массив, чтобы поместить в него значения из другого, чтобы найти максимальное значение?
dev-cs.ru
Вопрос:
Как сохранить данные об игроке по STEAMID на одну карту?
Ответ:
Код:
#include <amxmodx>
enum _:Data {
data_level,
data_some_info[32]
};
new g_data[MAX_PLAYERS + 1][Data];
new Trie:g_trieData = Invalid_Trie;
public plugin_init()
{
g_trieData = TrieCreate();
}
public client_authorized(id, const szAuthId[])
{
arrayset(g_data[id], 0, Data);
if (TrieGetArray(g_trieData, szAuthId, g_data[id], Data)) {
return; // Data found and copied from g_trieData to g_data.
}
// Data isn't found. So let's create new entry.
g_data[id][data_level] = 123;
formatex(g_data[id][data_some_info], charsmax(g_data[][data_some_info]), "Some Info %d", 123);
TrieSetArray(g_trieData, szAuthId, g_data[id], Data);
}
Как скрыть худ конкретного элемента?
Ответ:
Код:
set_member(id, m_iHideHUD, get_member(id, m_iHideHUD) | CBasePlayer::m_iHideHUD);
Вопрос:
Как удалить на карте 35хп триггер, который добивает до нужного значения хп?
Ответ:
Код:
new ent = -1;
while((ent = rg_find_ent_by_class(ent, "game_player_hurt")))
{
set_entvar(ent, var_flags, FL_KILLME);
}
p.s. Да и мне интересно, какая функция, как используется и где используется))
UPD: Обновил первый пост. Залил всю инфу, которая накопилась!!!
Последнее редактирование: