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

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

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

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

> Полезные ссылки

продам плагин Revive/Mined player

Статус пользователя Xydojke
сообщение 5.10.2021, 15:19
Сообщение #1
Стаж: 7 лет 9 месяцев

Сообщений: 97
Благодарностей: 19
Полезность: 112

Приветствую! так как срочно понадобились деньжата на киви приходится продать свой плагин за копейку, а именно плагин возрождения/минирования игрока (p.s как на СССР) по функционалу даже лучше! с фокусировкой камеры на игрока который начал возрождать мой труп
отдам за 350р, думаю это копейки по сравнению с тем за сколько мне его писали

Если вообще тут можно продавать плагины, если нет то прошу удалить тему

Отредактировал: Xydojke, - 5.10.2021, 15:20
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя MDMA20
сообщение 5.10.2021, 17:00
Сообщение #2
Стаж: 8 лет 11 месяцев

Сообщений: 2180
Благодарностей: 923
Полезность: 808

А есть видео-пример как это выглядит? Так просто глянуть
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя $@NyA
сообщение 5.10.2021, 18:13
Сообщение #3


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

Стаж: 18 лет

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

Цитата(MDMA20 @ 5.10.2021, 17:00) *
А есть видео-пример как это выглядит? Так просто глянуть

Поддерживаю.
Я думаю тут камера переходит в режим 3го лица человеку,который возрождает труп...

Кстати,кто Автор и код на Реапи?



МультиМод CS
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Xydojke
сообщение 5.10.2021, 18:56
Сообщение #4
Стаж: 7 лет 9 месяцев

Сообщений: 97
Благодарностей: 19
Полезность: 112

$@NyA, верно от 3-го лица, reapi, говорят где то слит, но я не нашел по поиску, видимо еще заказывали и отдали мой заказ кому то еще, уверен в просторах его нет! просто перепродали
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
sevcs
сообщение 6.10.2021, 12:09
Сообщение #5
Стаж: 11 лет

Сообщений: 407
Благодарностей: 169
Полезность: 254

Ни когда не понимал, как народ может продавать то, что лежит (или похоже по функционалу) в паблике...

Прикрепленное изображение
Прикрепленное изображение

А этот вариант урезанной версии (попросил у него), вырезано то, чем я не буду и не планирую пользоваться.
Как говорится, причухан/подправлен/приведён в порядок.

Я доволен, всё работает как мне и нужно было.
Своего рода изюминка для сервера. (на любителя)

Код
// Время через которое воскреснит союзник (в секундах)
// Default: "4"
// Minimum: "1.000000"
// Maximum: "10.000000"
rt_duration "4"

// С какого раунда это будет доступно ?
// Default: "1"
rt_round "1"

// Метод клавиши
// 0 - Нажать на кнопку
// 1 - Удерживать кнопку
// Default: "0"
// Maximum: "1.000000"
rt_use "0"

// Это будет доступно через Х сек. от начала раунда [0 - Выкл]
// Default: "5.0"
// Maximum: "10.000000"
rt_round_time "5.0"

// Максимальное кол-во раз сколько может воскреснуть игрок за раунд [0 - Бесконечно]
// Default: "1"
rt_max_respawns "1"

// Разрешено ли стрелять и двигаться во время поднятия.
// Default: "1"
// Maximum: "1.000000"
rt_can_shoot "1"

// Скорость игрока во время события [0 - Будет неизменной]
// Default: "0"
// Maximum: "250.000000"
rt_speed "0"

// Дистанция на которую можно отойти от игрока при поднятии.
// Default: "700.0"
// Minimum: "64.000000"
// Maximum: "800.000000"
rt_distance "700.0"

// Режим возрождения
// 0. Возрождение на базе
// 1. Возрождается там где умер
// Default: "1"
// Maximum: "1.000000"
rt_spawn_mode "1"

// Автоматически переключать камеру игрока которого возрождают на того кто его возрождает
// Default: "1"
// Maximum: "1.000000"
rt_force_camera "1"

// Время через которое труп автоматически исчезнет (в секундах)
// Default: "35.0"
// Maximum: "50.000000"
rt_auto_remove "35.0"

// Сколько давать ХП для поднятого игрока.
// Default: "90.0"
// Minimum: "1.000000"
// Maximum: "150.000000"
rt_health "90.0"

// Сколько давать БРОНИ для поднятого игрока.
// Default: "100.0"
// Maximum: "150.000000"
rt_armor "100.0"

// Сколько давать ДЕНЕГ для поднятого игрока.
// Default: "1100"
rt_money "1100"

// Какое давать оружие для поднятого игрока. ("" - только нож)
// Default: "ak47"
rt_weapon "ak47"

// Сколько давать ХП для игрока который поднимает.
// Default: "20.0"
// Maximum: "150.000000"
rt_bonus_health "20.0"

// Сколько давать БРОНИ для игрока который поднимает.
// Default: "20.0"
// Maximum: "150.000000"
rt_bonus_armor "20.0"

// Сколько давать ДЕНЕГ для игрока который поднимает.
// Отрицательное значение чтобы отнять.
// Default: "1000"
rt_bonus_money "1000"

// Линия прогресс-бара при поднятии.
// 0. Выкл
// 1. Вкл
// 2. Вкл - но те кто наблюдают за игроком не увидят это
// Default: "2"
// Maximum: "2.000000"
rt_progress_bar "2"

// Блокируем поднятие когда установлена бобма.
// Default: "1"
// Maximum: "1.000000"
rt_bomb "1"

// Блокируем поднятие когда остались 1 vs 1
// Default: "1"
// Maximum: "1.000000"
rt_1v1 "1"

// Звук который будет воспроизводиться когда подняли игрока. (изменить можно в исходном коде)
// 0. выкл
// 1. через rh_emit_sound2
// 2. через rg_send_audio (слышно только тому кто поднимает)
// Default: "2"
// Maximum: "2.000000"
rt_sounds "2"

// Подсвечивать труп игрока, которого поднимают (прозрачная подсветка)
// Default: "1"
// Maximum: "1.000000"
rt_effects "1"

// Сообщение о поднятии игрока.
// 0. Выкл
// 1. Видно всем
// 2. Только команде
// Default: "2"
// Maximum: "2.000000"
rt_notifications "2"


Код
[ru]
RT_PREFIX = [^4Возрождение^1]
RT_TIME = Слишком мало времени прошло от начала раунда !
RT_BOMB = Нельзя поднимать игрока, когда установленна бомба !
RT_1_VS_1 = Нельзя поднимать игроков когда остались 1 на 1
RT_ALREADY_REVIVING = Этого игрока уже поднимает другой игрок !
RT_MAX = Превышен лимит воскрешений для этого игрока !
RT_DISTANCE = Не уходи далеко от трупа при поднятии !
RT_REVIVED = Тебя поднимает игрок: %n
RT_REVIVING = Ты поднимаешь игрока: %n
RT_REVIVE_HELP_MESSAGE = Подними своего игрока, рядом с трупом нажми: E
RT_NOTIFICATION = Игрок:^4  %n  ^1поднял игрока:^4  %n
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 3 раз
   + Цитировать сообщение
Статус пользователя $@NyA
сообщение 6.10.2021, 12:18
Сообщение #6


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

Стаж: 18 лет

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

sevcs,
Да я знаю об этом плагине - поэтому я и спросил у ТС минимум,кто Автор и есть ли Реапи...
Но ответа об Авторе я так и не увидел
Возможно,это и есть этот плагин,а дорабатывали там всеволишь обзор камеры при возрождении трупа, ну и так - по мелочи....

Xydojke
Вышли скрин Кода - хотя-бы первых несколько десятков строк - и будет сразу ясно

Отредактировал: $@NyA, - 6.10.2021, 12:20


МультиМод CS
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
sevcs
сообщение 6.10.2021, 12:40
Сообщение #7
Стаж: 11 лет

Сообщений: 407
Благодарностей: 169
Полезность: 254

На всякий случай :)

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

// ========================================================================== //

#define IsPlayer(%1)                (1 <= (%1) <= MaxClients)
#define SetRevive(%1,%2)            (set_entvar(%1, var_iuser1, %2))
#define IsReviving(%1)                (IsPlayer(get_entvar(%1, var_iuser1)))

new const SOUND_REVIVED[] = "sevcs/reviveplayer.wav";        // звук при завершении возрождения

new const CORPSE_CLASSNAME[] = "info_corpse";

// ========================================================================== //

enum any:PLAYER_DATA
{
    corpse,
    revive,
    
};    new g_data[MAX_PLAYERS + 1][PLAYER_DATA];

enum any:CVARS
{
    DURATION,
    ROUND,
    USE,
    Float:ROUND_TIME,
    MAX_USER,
    SHOOT,
    Float:SPEED,
    Float:DISTANCE,
    Float:DELAY,
    SPAWN,
    OBSERVER,
    Float:SPEED,
    Float:HEALTH,
    Float:ARMOR,
    MONEY,
    GUN[24],
    Float:BONUS_HEALTH,
    Float:BONUS_ARMOR,
    BONUS_MONEY,
    PROGRESS_BAR,
    BOMB,
    ONE_VS_ONE,
    SOUND_MODE,
    RENDER,
    NOTIFICATION,
    
};    new g_cvar[CVARS];

enum any:Forwards
{
    Fw_Return,
    Fw_Revive_Start,
    Fw_Revived,

};    new g_Forwards[Forwards];

new bool:bomb_planted, beat_rounds;

public plugin_precache()
{
    precache_sound(SOUND_REVIVED);
}

public plugin_init()
{
    register_plugin("Revive Players", "2.0.1", "Emma Jule");
    
    if (register_dictionary("revive_teammates.txt") == 0)
    {
        server_print("[Возрождение] Файл ланг: ^"revive_teammates.txt^", не удалось найти или открыть.");
    }
    
    register_message(get_user_msgid("ClCorpse"), "MsgHookClCorpse");
    
    register_event("TeamInfo", "Event_TeamInfo", "a", "2=SPECTATOR");
    
    RegisterHam(Ham_ObjectCaps, "info_target", "fw_ObjectCaps", .Post = false);
    
    RegisterHookChain(RG_CBasePlayer_Spawn, "CBasePlayer_Spawn_Post", .post = true);
    
    CreateCvars();
    
    g_Forwards[Fw_Revive_Start] = CreateMultiForward("rt_start_revive", ET_CONTINUE, FP_CELL, FP_CELL);
    g_Forwards[Fw_Revived] = CreateMultiForward("rt_revived", ET_IGNORE, FP_CELL, FP_CELL);
}

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя dehost
сообщение 6.10.2021, 14:22
Сообщение #8


Стаж: 13 лет

Сообщений: 3147
Благодарностей: 1431
Полезность: 486

$@NyA,
Цитата
Возможно,это и есть этот плагин
нет, это другой, я видел исходник.


Золотое правило нравственности:
"Относись к людям так, как хочешь, чтобы относились к тебе."
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя BlackSignature
сообщение 10.10.2021, 12:08
Сообщение #9


Стаж: 15 лет
Город: Москва

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

Имею твёрдое подозрение что ТС является мошенником. Один из постоянных клиентов, после "финансового общения" (чо есть на продажу?) с этим товарищем, скинул мне на доработку мой же плагин (естественно автором указан уже не я). Этот плагин был продан двум лицам. В одном человеке я уверен, второй был позже уличён в мошенничестве.
https://cs-games.club/index.php?threads/%D0...%8B-cs-1-6.641/

Код, который здесь имеется ввиду, так же попадал мне в руки на доработки. Заявление "лучше чем на СССР" - абсурд. Я писал его, и имею возможность сравнить. Человек же, с которым я общался по доработкам обсуждаемого плагина, в скриптинге не понимает ничего от слова совсем.

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

У всех своя голова, но мой вам совет, не связывайтесь с этим человеком. Вполне можете получить бекдор в плагине, или вообще ничего не получить. И по доработкам он вам никак не поможет.

И да, реализация от Emma Jule куда лучше. Её исходный код я тоже видел.

Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение

Отредактировал: BlackSignature, - 10.10.2021, 12:42


Написание и правка плагинов, услуги гаранта
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 8 раз
   + Цитировать сообщение
Статус пользователя steelzzz
сообщение 10.10.2021, 13:12
Сообщение #10


Стаж: 12 лет

Сообщений: 609
Благодарностей: 187
Полезность: 167

BlackSignature, Придется теперь продавать плагины с привязкой или с исх но цена x5-10


Нужна помощь в настройке сервера или плагина? (Платно) -> Тык
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
jekass
сообщение 10.10.2021, 17:57
Сообщение #11
Стаж: 7 лет 2 месяца

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

Меценат Меценат

BlackSignature,
cbf1b2bfde1a.gif Я вот одного не понимаю , если оно так , человек надеется всю жизнь так жить?
хотя че я несу , у нас город такой-же наReApI ближнего .
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя $@NyA
сообщение 10.10.2021, 21:08
Сообщение #12


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

Стаж: 18 лет

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

BlackSignature,
Это и есть тот же парень,не ?
https://dev-cs.ru/members/7738/





МультиМод CS
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя vipclient
сообщение 10.10.2021, 22:16
Сообщение #13
Стаж: 12 лет

Сообщений: 129
Благодарностей: 55
Полезность: 286

$@NyA, да это он и есть
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя $@NyA
сообщение 10.10.2021, 22:47
Сообщение #14


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

Стаж: 18 лет

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

Цитата(vipclient @ 10.10.2021, 22:16) *
$@NyA, да это он и есть

Ну,тогда мои догадки ещё тогда шли на подозрение,что сам он не являлся Автором "своего плагина"
Но,на тот момент мне никто не поверил... cbf1b2bfde1a.gif
здесь к примеру
https://dev-cs.ru/threads/16216/#post-108444

Да,что там - не сделал элементарных вещей - ну как и говорил BlackSignature

Цитата
Человек же, с которым я общался по доработкам обсуждаемого плагина, в скриптинге не понимает ничего от слова совсем.


Отредактировал: $@NyA, - 10.10.2021, 22:47


МультиМод CS
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GaSeR
сообщение 17.10.2021, 8:32
Сообщение #15


Стаж: 11 лет

Сообщений: 716
Благодарностей: 348
Полезность: 462

Меценат Меценат

Парни, есть у кого то этот плагин? Скиньте пожалуйста, поставлю себе на паблик.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя lolkaaa
сообщение 17.10.2021, 8:48
Сообщение #16


Стаж: 11 лет
Город: Нижний новгород

Сообщений: 54
Благодарностей: 48
Полезность: 116

Цитата(GaSeR @ 17.10.2021, 9:32) *
Парни, есть у кого то этот плагин? Скиньте пожалуйста, поставлю себе на паблик.

Посты выше дают подсказку как найти плагин, sma под спойлером.
Cкрытый текст
Код
#include <amxmodx>
#include <fakemeta>
#include <reapi>

// ********************************************************************************
*********** //

//#define ADMIN_FLAG    ADMIN_BAN    // игроки с этим флагом могут возрождать тиммейтов ВЫКЛ это и смогут все
#define TIME            5            // сколько идет процесс самой реинкарнации? (в секундах)
#define ROUND_TIME        15.0        // через сколько секунд от начала раунда будет работать (ВЫКЛ будет всегда)
#define SPEED            170.0        // скорость игрока в это время ВЫКЛ и будет неизменной
//#define MAX                5            // сколько может максимально воскресить 1 игрок за раунд ВЫКЛ будет неограничено
//#define MAX_USER        3            // сколько может максимально воскреснуть игрок за раунд ВЫКЛ будет неограничено
#define MAX_DISTANCE    130.0        // максимальная допустимая дистанция
#define FLOOD            2.0            // через сколько можно использовать вновь (защита от флуда)
#define NEW_HP            50.0        // здоровье только воскрешенного игрока ВЫКЛ будет 100 как всегда
//#define COST            1000        // стоимость услуги ВЫКЛ бесплатно
#define BAR                            // полоска прогресса? вкл\выкл
#define SPAWN                        // воскрешённый игрок спавнится там где умер, ВЫКЛ будет на спавне
#define NOTIFY                        // уведомления в чат кто кого воскресил?

// позволяет заминировать туп врага, при попытке воскресить его - враг взорвется
// настройки сверху также распространяются и на это
#define ENEMY_MODE

//#define SOUNDS                    // вкл\выкл звуки событий (обязательно укажите путь)
//#define API                    // api

// ********************************************************************************
*********** //

#if defined ENEMY_MODE
#include <hamsandwich>
//#define KILL_EFFECT                    // эффект при убийстве
#endif

new const __BODY_CLASSNAME[] = "__its_dead";

enum _:__nolkfun
{
    __g_iPlayerIndexEntity,
#if defined MAX
    __g_ReviveCount,
#endif
#if defined MAX_USER
    __g_ReviveMax,
#endif
#if defined ENEMY_MODE
    __g_IsBoomPlayer,
#endif
    Float:__g_fDelay
    
};    new __g_PlayersData[MAX_PLAYERS + 1][__nolkfun];

#if defined API
enum _:__Forwards
{
    __Fw_Return,
    __Fw_Revived,
    __Fw_Mined,

};    new __gForwards[__Forwards];
#endif

stock const __g_bPrefix[] =     "^4[NOLKFUN]^1";        // тег в чате

#define __TASK_REVIVE                 100
#define __ID_REVIVE                 (__taskid - __TASK_REVIVE)

#define StartRevive(%1)                (set_entvar(%1, var_iuser2, 1))
#define    StopRevive(%1)                (set_entvar(%1, var_iuser2, 0))
#define IsReviving(%1)                (get_entvar(%1, var_iuser2) == 1)

#define __IsValidTeam(%1)             (TEAM_TERRORIST <= get_member(%1, m_iTeam) <= TEAM_CT)

#if defined SOUNDS
new const __g_bSoundRevive[] = "";        // звук при завершении возрождения
new const __g_bSoundMining[] = "";        // звук при завершении минирования

public plugin_precache()
{
    precache_sound(__g_bSoundRevive);
    precache_sound(__g_bSoundMining);
}
#endif

public plugin_init()
{
    register_plugin("__[ReAPI] Can Revive Players", "1.0.0", "NOLKFUN");
    
    register_forward(FM_CmdStart, "__fw_CmdStart");
    
    RegisterHookChain(RG_CSGameRules_CleanUpMap, "__CSGameRules_CleanUpMap_Post", true);
    
#if defined SPEED
    RegisterHookChain(RG_CBasePlayer_ResetMaxSpeed, "__CBasePlayer_ResetMaxSpeed_Post", true);
#endif

    register_message(get_user_msgid("ClCorpse"), "__MsgHookClCorpse");
    
#if defined API
    __gForwards[__Fw_Revived] = CreateMultiForward("rt_revived", ET_IGNORE, FP_CELL, FP_CELL);
    __gForwards[__Fw_Mined] = CreateMultiForward("rt_mined", ET_IGNORE, FP_CELL, FP_CELL);
#endif
}

public         __fw_CmdStart(__id, __uc_handle)
{
    if (!is_user_alive(__id))        return;
    
#if defined ADMIN_FLAG
    if (~get_user_flags(__id) & ADMIN_FLAG)        return;
#endif
    
#if defined ROUND_TIME
    if (get_gametime() - Float:get_member_game(m_fRoundStartTime) < ROUND_TIME)        return;
#endif
    
    if (get_uc(__uc_handle, UC_Buttons) & IN_USE && ~pev(__id, pev_oldbuttons) & IN_USE && !__g_PlayersData[__id][__g_iPlayerIndexEntity]) __start_revive(__id);
    
    else if (pev(__id, pev_oldbuttons) & IN_USE && ~get_uc(__uc_handle, UC_Buttons) & IN_USE && __g_PlayersData[__id][__g_iPlayerIndexEntity]) __stop_revive(__id);
}

public        __CSGameRules_CleanUpMap_Post()
{
    new __iEnt = rg_find_ent_by_class(NULLENT, __BODY_CLASSNAME);
    
    while (__iEnt > 0)
    {
        set_entvar(__iEnt, var_flags, FL_KILLME);
        
        __iEnt = rg_find_ent_by_class(__iEnt, __BODY_CLASSNAME);
    
    }    for (new i; i < sizeof(__g_PlayersData); i++)    arrayset(__g_PlayersData[i], 0, __nolkfun);
}

__start_revive(__id)
{
    if ( get_member_game(m_bRoundTerminating) || __g_PlayersData[__id][__g_fDelay] > get_gametime() )    return;
    
#if defined MAX
    if (__g_PlayersData[__id][__g_ReviveCount] >= MAX)
    {
        client_print_color(__id, print_team_red, "%s ^3вы не можете воскрешать/минировать более^4 %d раз", __g_bPrefix, MAX);
        return;
    }
#endif

#if defined COST
    if (get_member(__id, m_iAccount) < COST)    return;
#endif
    
    if (__g_PlayersData[__id][__g_iPlayerIndexEntity])        __stop_revive(__id);
    
    new __iEnt = NULLENT, __iPlayer, Float:__fOrigin[3];        get_entvar(__id, var_origin, __fOrigin);
    
    while ((__iEnt = engfunc(EngFunc_FindEntityInSphere, __iEnt, __fOrigin, MAX_DISTANCE)) != 0)
    {
        if (is_nullent(__iEnt) || !FClassnameIs(__iEnt, __BODY_CLASSNAME) || IsReviving(__iEnt))    continue;
        
        __iPlayer = get_entvar(__iEnt, var_iuser1);
        
        if (!__IsValidTeam(__iPlayer))    continue;
        
    #if defined MAX_USER
        if (__g_PlayersData[__iPlayer][__g_ReviveMax] >= MAX_USER)    continue;
    #endif
        
    #if defined ENEMY_MODE
        if (get_member(__id, m_iTeam) != get_member(__iPlayer, m_iTeam))
        {
            if (__g_PlayersData[__iPlayer][__g_IsBoomPlayer])        continue;
        
            client_print(__id, print_center, "Вы минируете %n..", __iPlayer);
            
        }    else    client_print(__id, print_center, "Вы воскрешаете %n..", __iPlayer);
    #else
        client_print(__id, print_center, "Вы воскрешаете %n..", __iPlayer);
    #endif
        
        StartRevive(__iEnt);
    
        __g_PlayersData[__id][__g_iPlayerIndexEntity]        =     __iEnt;
        
    #if defined BAR
        rg_send_bartime(__id, TIME);
    #endif
        
    #if defined SPEED
        rg_reset_maxspeed(__id);
    #endif
        
        remove_task(__id + __TASK_REVIVE);    set_task(TIME.0, "__respawn_friendly", __id + __TASK_REVIVE);
        
        RequestFrame("__CBasePlayer_PreThink", __id);
        
        break;
    }
}

__stop_revive(__id)
{
    if (!__g_PlayersData[__id][__g_iPlayerIndexEntity])        return;
    
    StopRevive(__g_PlayersData[__id][__g_iPlayerIndexEntity]);
    __g_PlayersData[__id][__g_iPlayerIndexEntity]        =        0;
    __g_PlayersData[__id][__g_fDelay]                    =        get_gametime() + FLOOD;
    
#if defined SPEED
    rg_reset_maxspeed(__id);
#endif

#if defined BAR
    rg_send_bartime(__id, 0);
#endif

    remove_task(__id + __TASK_REVIVE);
}

public __CBasePlayer_PreThink(__id)
{
    if (!is_user_alive(__id))        __stop_revive(__id);
    
    else
    {
        if ( !__g_PlayersData[__id][__g_iPlayerIndexEntity])    return;
        
        new Float:__fOrigin[3], Float:__fOrigin2[3];        
        get_entvar(__id, var_origin, __fOrigin);
        get_entvar(__g_PlayersData[__id][__g_iPlayerIndexEntity], var_origin, __fOrigin2);
        
        if (vector_distance(__fOrigin, __fOrigin2) > MAX_DISTANCE)
        {
            __stop_revive(__id);
            
            client_print_color(__id, print_team_red, "%s ^3не уходите далеко от трупа", __g_bPrefix);
        
        }    else    RequestFrame("__CBasePlayer_PreThink", __id);
    }
}

#if defined SPEED
public         __CBasePlayer_ResetMaxSpeed_Post(const __this)    if (__g_PlayersData[__this][__g_iPlayerIndexEntity])        set_entvar(__this, var_maxspeed, 175.0);
#endif

public __respawn_friendly(__taskid)
{
    new __id         =         __ID_REVIVE;
    new __iEnt        =         __g_PlayersData[__id][__g_iPlayerIndexEntity];
    
    if (is_nullent(__iEnt))        return;
    
    new __player    =         get_entvar(__iEnt, var_iuser1);
    
    if (!is_user_connected(__player) || get_member_game(m_bRoundTerminating) )    return;
    
    __stop_revive(__id);
    
    if (get_member(__player, m_iTeam) == get_member(__id, m_iTeam))
    {
    #if defined ENEMY_MODE
        if (__g_PlayersData[__player][__g_IsBoomPlayer])
        {
        #if defined KILL_EFFECT
            new Float:__fPlayerOrigin[3];    get_entvar(__id, var_origin, __fPlayerOrigin);
            
            message_begin_f(MSG_PVS, SVC_TEMPENTITY, __fPlayerOrigin);
            {
                write_byte(TE_LAVASPLASH);
                write_coord_f(__fPlayerOrigin[0]); // position.x
                write_coord_f(__fPlayerOrigin[1]); // position.y
                write_coord_f(__fPlayerOrigin[2]); // position.z
            }
            message_end();
        #endif
            
            client_print_color(__id, print_team_red, "%s ^3%n заминирован", __g_bPrefix, __player);
            
            ExecuteHamB(Ham_Killed, __id, __g_PlayersData[__player][__g_IsBoomPlayer], GIB_ALWAYS);        return;
        }
    #endif
    
        rg_round_respawn(__player);
        
    #if defined SPAWN
        new Float:__fOrigin[3];        get_entvar(__iEnt, var_origin, __fOrigin);
        engfunc(EngFunc_SetOrigin, __player,    __fOrigin);
        set_entvar(__player, var_flags, get_entvar(__player, var_flags) | FL_DUCKING);
        set_entvar(__player, var_view_ofs, Float:{0.0, 0.0, 12.0});
    #endif
    
    #if defined NEW_HP
        set_entvar(__player, var_health, NEW_HP);
    #endif
    
    #if defined NOTIFY
        client_print_color(0, __id, "%s ^3%n ^1воскресил^3 %n", __g_bPrefix, __id, __player);
    #endif
    
    #if defined SOUNDS
        rh_emit_sound2(__player, 0, CHAN_BODY, __g_bSoundRevive);
    #endif
    
    #if defined MAX_USER
        __g_PlayersData[__player][__g_ReviveMax]++;
    #endif
    
    #if defined API
        ExecuteForward(__gForwards[__Fw_Revived], __gForwards[__Fw_Return], __player, __id);
    #endif
    
        set_entvar(__iEnt, var_flags, FL_KILLME);
    }
#if defined ENEMY_MODE
    else
    {
        __g_PlayersData[__player][__g_IsBoomPlayer] = __id;
        
        client_print_color(__id, print_team_blue, "%s ^3вы успешно заминировали ^4%n", __g_bPrefix, __player);
        
    #if defined SOUNDS
        rh_emit_sound2(__player, 0, CHAN_BODY, __g_bSoundMining);
    #endif
    
    #if defined API
        ExecuteForward(__gForwards[__Fw_Mined], __gForwards[__Fw_Return], __player, __id);
    #endif
    }
#endif

#if defined COST
    rg_add_account(__id, -COST);
#endif

#if defined MAX
    __g_PlayersData[__id][__g_ReviveCount]++;
#endif
}

public        __MsgHookClCorpse()
{
    new __player = get_msg_arg_int(12);
    
    new __iEnt = rg_create_entity("info_target");
    
    if (is_nullent(__iEnt))        return PLUGIN_CONTINUE;
    
    new __model[32];    get_msg_arg_string(1, __model, charsmax(__model));
    
    new Float:__origin[3], Float:__angles[3];    get_entvar(__player, var_origin, __origin);    get_entvar(__player, var_angles, __angles);
    
    engfunc(EngFunc_SetModel, __iEnt, fmt("models/player/%s/%s.mdl", __model, __model));
    engfunc(EngFunc_SetOrigin, __iEnt, __origin);
    
    set_entvar(__iEnt, var_classname, __BODY_CLASSNAME);
    set_entvar(__iEnt, var_angles, __angles);
    set_entvar(__iEnt, var_body, get_entvar(__player, var_body));
    set_entvar(__iEnt, var_skin, get_entvar(__player, var_skin));
    set_entvar(__iEnt, var_framerate, 1.0);
    set_entvar(__iEnt, var_sequence, get_entvar(__player, var_sequence));
    set_entvar(__iEnt, var_gaitsequence, get_entvar(__player, var_gaitsequence));
    set_entvar(__iEnt, var_iuser1, __player);
    StopRevive(__iEnt);
    
    return PLUGIN_HANDLED;
}

Или этот.
Cкрытый текст
dev-cs.ru/resources/447/


Отредактировал: lolkaaa, - 17.10.2021, 9:02
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: