Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

Плагин Спавн игроков

, Спавн игроков при заходе на сервер
Статус пользователя CnopTuK
сообщение 29.1.2021, 11:32
Сообщение #1
Стаж: 5 лет 4 месяца
Город: Украина

Сообщений: 29
Благодарностей: 1
Полезность: < 0

Парни помогите пожалуйста!Вот плагин, как сделать в нем чтобы при заходе на сервер, игрок автоматом возродился!А то игра идет, и те кто зашел сидят мертвыми !
Прикрепленные файлы:
Прикрепленный файл  Boss_Spawnsystem.sma.sma ( 2,54 килобайт ) Кол-во скачиваний: 18
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя $@NyA
сообщение 29.1.2021, 12:59
Сообщение #2


Иконка группы

Стаж: 18 лет

Сообщений: 987
Благодарностей: 529
Полезность: 1050

Тут такая штука,на Оленях бился Коннор с этим делом - я не знаю,получилось ли у его...

Цитата
Как вы знаете, когда игрок входит на сервер и присоединяется к команде, в зависимости от продвижения раунда, он будет возрождаться или нет.
Видя много плагинов, где ставятся задачи и несколько раз проверяют, есть ли игрок в команде, а затем возрождают его, я искал удушливый способ возрождения игроков в этой ситуации.
Код не был полностью протестирован, но должен работать нормально.

Варианты
Код:
#include < amxmodx >
#include < fakemeta >
#include < hamsandwich >

#pragma semicolon 1

#define VERSION "0.1.0"
#define PLUGIN "Respawn on First Join"

const m_iJoiningState = 121;
const m_iMenu = 205;
const MENU_CHOOSEAPPEARANCE = 3;
const JOIN_CHOOSEAPPEARANCE = 4;

new HamHook:g_iHhCBasePlayerPreThink;

#define MaskEnt(%0) ( 1<<(%0 & 31) )

new g_iBitHookPlayerPreThink;
#define MarkPlayerPreThink(%0) g_iBitHookPlayerPreThink |= MaskEnt(%0)
#define ClearPlayerPreThink(%0) g_iBitHookPlayerPreThink &= ~MaskEnt(%0)
#define HookPlayerPreThink(%0) ( g_iBitHookPlayerPreThink & MaskEnt(%0) )

public plugin_init()
{
register_plugin(PLUGIN, VERSION, "ConnorMcLeod");

register_clcmd("menuselect", "ClCmd_MenuSelect_JoinClass"); // old style menu
register_clcmd("joinclass", "ClCmd_MenuSelect_JoinClass"); // VGUI menu

DisableHamForward( g_iHhCBasePlayerPreThink = RegisterHam(Ham_Player_PreThink, "player", "OnCBasePlayer_PreThink_Post", true) ); // register it for later
}

// player is pressing a key in an old style menu
// or player is sending joinclass command, either by typing it in console, either selecting a option from VGUI skins selection menu
public ClCmd_MenuSelect_JoinClass(id)
{
// Don't need to check args here, because (assuming player is in the skin select menu,
// we gonna check this) if there is no arg, or if arg is bad, game gonna act as if player was choosing auto-select.
// So first check if player is in the correct menu, pdata m_iMenu can just tell us
// Then check if player has just joined the server, m_iJoiningState is used by the game for this
if( get_pdata_int(id, m_iMenu) == MENU_CHOOSEAPPEARANCE && get_pdata_int(id, m_iJoiningState) == JOIN_CHOOSEAPPEARANCE )
{
// Enable PreThink for 1 frame if not already
if( !g_iBitHookPlayerPreThink )
{
EnableHamForward( g_iHhCBasePlayerPreThink );
}
MarkPlayerPreThink(id);
}
}

// Little explanation on what should happen after player has chosen a skin :
// In CBasePlayer::PreThink, if player pdata m_iJoiningState is different from 0, function CBasePlayer::JoinThink gonna be called
// In JoinThink function, if m_iJoiningState 5 it means that player has just chosen a skin, we had checked if pdata was 4 because player has not chosen a team yet
// Then game checks if that player can be respawn with function CGameRules::FPlayerCanRespawn (if no objective or no player in 1 team player can respawn,
// else if we are less that 20sec after round start player can respawn, else player won't spawn)

// So now that PreThink and JoinThink have been called, let's check if player has been respawned or not.
public OnCBasePlayer_PreThink_Post( id )
{
if( !HookPlayerPreThink(id) )
{
return HAM_IGNORED;
}

ClearPlayerPreThink(id);
if( !g_iBitHookPlayerPreThink )
{
DisableHamForward( g_iHhCBasePlayerPreThink );
}

if( !is_user_alive(id) )
{
// if player has not been respawned by the game, let's force it.
ExecuteHam(Ham_Spawn, id);
return HAM_HANDLED;
}
return HAM_IGNORED;
}


Код:
#include < amxmodx >
#include < fakemeta >
#include < hamsandwich >

#pragma semicolon 1

#define VERSION "0.1.0"
#define PLUGIN "Respawn on First Join"

const m_iJoiningState = 121;
const m_iMenu = 205;
const MENU_CHOOSEAPPEARANCE = 3;
const JOIN_CHOOSEAPPEARANCE = 4;

public plugin_init()
{
register_plugin(PLUGIN, VERSION, "ConnorMcLeod");

register_clcmd("menuselect", "ClCmd_MenuSelect_JoinClass"); // old style menu
register_clcmd("joinclass", "ClCmd_MenuSelect_JoinClass"); // VGUI menu
}

public ClCmd_MenuSelect_JoinClass(id)
{
if( get_pdata_int(id, m_iMenu) == MENU_CHOOSEAPPEARANCE && get_pdata_int(id, m_iJoiningState) == JOIN_CHOOSEAPPEARANCE )
{
new command[11], arg1[32];
read_argv(0, command, charsmax(command));
read_argv(1, arg1, charsmax(arg1));
engclient_cmd(id, command, arg1);
ExecuteHam(Ham_Player_PreThink, id);
if( !is_user_alive(id) )
{
ExecuteHamB(Ham_Spawn, id);
}
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}


МультиМод CS
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя CHEL74
сообщение 29.1.2021, 14:39
Сообщение #3


Стаж: 9 лет 2 месяца

Сообщений: 261
Благодарностей: 204
Полезность: 1012

mp_roundrespawn_time "Ваше значение"
Поставить "значение",что-бы увеличивать в ключевые моменты.

Отредактировал: $@NyA, - 29.1.2021, 15:05
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя CnopTuK
сообщение 30.1.2021, 14:54
Сообщение #4
Стаж: 5 лет 4 месяца
Город: Украина

Сообщений: 29
Благодарностей: 1
Полезность: < 0

$@NyA,
Саня можешь закрыть тему,решилось теч что добавил #include < DeathRun_Bosses > и все заработало!Спасибо всем кто помогал!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: