Участник
Пользователь
- Сообщения
- 290
- Реакции
- 28
- Помог
- 2 раз(а)
- Ошибка
-
L 01/24/2023 - 04:44:24: Start of error session.
L 01/24/2023 - 04:44:24: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20230124.log")
L 01/24/2023 - 04:44:24: Client index 16 is invalid
L 01/24/2023 - 04:44:24: [AMXX] Displaying debug trace (plugin "rt_core.amxx", version "0.11.0")
L 01/24/2023 - 04:44:24: [AMXX] Run time error 10: native error (native "client_print_color")
L 01/24/2023 - 04:44:24: [AMXX] [0] rt_core.sma::Corpse_Think (line 230)
- ОС
- Linux
- Amx Mod X
-
amxx version
AMX Mod X 1.9.0.5294 (http://www.amxmodx.org)
Authors:
David "BAILOPAN" Anderson, Pavol "PM OnoTo" Marko
Felix "SniperBeamer" Geyer, Jonny "Got His Gun" Bergstrom
Lukasz "SidLuke" Wlasinski, Christian "Basic-Master" Hammacher
Borja "faluco" Ferrer, Scott "DS" Ehlert
Compiled: Dec 3 2021 15:54:56
Built from: https://github.com/alliedmodders/amxmodx/commit/363871a
Build ID: 5294:363871a
Core mode: JIT+ASM32
- Билд
-
version
Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
ReHLDS version: 3.12.0.780-dev
Build date: 16:20:56 Sep 19 2022 (3082)
Build from: https://github.com/dreamstalker/rehlds/commit/d6ebe82
- ReGamedll
-
game version
ReGameDLL version: 5.21.0.556-dev
Build date: 08:43:58 Jul 22 2022
Build from: https://github.com/s1lentq/ReGameDLL_CS/commit/1081301
- Версия Metamod
-
meta version
Metamod-r v1.3.0.131, API (5:13)
Metamod-r build: 18:51:02 Jul 11 2022
Metamod-r from: https://github.com/theAsmodai/metamod-r/commit/adc9414
- Список метамодулей
-
Currently loaded plugins:
description stat pend file vers src load unload
[ 1] Reunion RUN - reunion_mm_i386.so v0.1.0.137 ini Start Never
[ 2] SafeNameAndChat RUN - SafeNameAndChat.so v1.2 Beta 3 ini ANY ANY
[ 3] VoiceTranscoder RUN - VoiceTranscoder.so v2017RC5 ini ANY ANY
[ 4] AMX Mod X RUN - amxmodx_mm_i386.so v1.9.0.5294 ini Start ANY
[ 5] Print Center Fix RUN - printcenterfix_mm_i386.so v2.0.1 ini ANY ANY
[ 6] ReAuthCheck RUN - reauthcheck_mm_i386.so v0.1.6 ini Start Never
[ 7] Rechecker RUN - rechecker_mm_i386.so v2.5 ini Chlvl ANY
[ 8] ReSemiclip RUN - resemiclip_mm_i386.so v2.3.9 ini Chlvl ANY
[ 9] ReSRDetector RUN - resrdetector_mm_i386.so v0.1.0 ini Chlvl ANY
[10] WHBlocker RUN - whblocker_mm_i386.so v1.5.697 ini Chlvl ANY
[11] HitBox Fix RUN - hitbox_fix_mm_i386.so v1.1.1 ini Start ANY
[12] AuthEmu RUN - authemu_amxx_i386.so v5.2.12.525-dev+m pl4 ANY Never
[13] Hide Cvars RUN - hidecvars_amxx_i386.so v1.0 pl4 ANY ANY
[14] ReAimDetector RUN - reaimdetector_amxx_i386.so v0.2.2 pl4 ANY Never
[15] ReAPI RUN - reapi_amxx_i386.so v5.22.0.254-dev pl4 ANY Never
[16] MySQL RUN - mysql_amxx_i386.so v1.9.0.5294 pl4 ANY ANY
[17] FakeMeta RUN - fakemeta_amxx_i386.so v1.9.0.5294 pl4 ANY ANY
[18] CSX RUN - csx_amxx_i386.so v1.9.0.5294 pl4 ANY ANY
[19] Ham Sandwich RUN - hamsandwich_amxx_i386.so v1.9.0.5294 pl4 ANY ANY
[20] Engine RUN - engine_amxx_i386.so v1.9.0.5294 pl4 ANY ANY
[21] CStrike RUN - cstrike_amxx_i386.so v1.9.0.5294 pl4 ANY ANY
[22] GeoIP RUN - geoip_amxx_i386.so v1.9.0.5294 pl4 ANY ANY
[23] Fun RUN - fun_amxx_i386.so v1.9.0.5294 pl4 ANY ANY
[24] SxGeo RUN - sxgeo_amxx_i386.so v2.3 pl4 ANY Never
24 plugins, 24 running
- Список плагинов
-
amxx plugins
Currently loaded plugins:
name version author file status
[ 1] ReAimDetector API 0.2.2 ReHLDS Team reaimdetector.a running
[ 2] Access Manager 1.0.0 mx?! AccessManager.a running
[ 3] [Advanced Slot Reserva 2.2 Shadows Adi advanced_slot_r debug
[ 4] OciXCrom's Rank System 3.10 OciXCrom crx_ranksystem. running
[ 5] CRXRanks: Happy Hour 1.0 OciXCrom crxranks_happyh running
[ 6] ExpMenu for CRXRanks 1.0.4 Nordic Warrior crxranks_exp_ed running
[ 7] [ReAPI] Healthnade 0.0.8f DEV-CS.RU Commun reapi_healthnad running
[ 8] Frags Counter 1.0 CHEL74 frags_counter.a running
[ 9] Mute Weapon Shots 0.2 RauliTop mute_weapon_sho running
[ 10] [ReAPI] Anti overflow 1.0 Some Author antioverflow.am running
[ 11] [190] VIP RBS 22.12.08BE SKAJIbnEJIb vip_rbs.amxx running
[ 12] FreshBans 1.4.7b kanagava fresh_bans_147- running
[ 13] WebHS 0.1 kanagava fb_web_online.a running
[ 14] fb_forwards 0.1.4 Kanagava & Realu fb_forwards.amx running
[ 15] DopBan 3.0.8b kanagava dopban308.amxx running
[ 16] [190] Damager RBS 20.06.06 SKAJIbnEJIb damager_rbs.amx running
[ 17] Private Message: Core 1.5 Denzer private_message running
[ 18] Private Message: Loggi 1.3 Denzer private_message running
[ 19] SERVER TASKS 2.0 HATTRICK (HTTRCK server_tasks.am running
[ 20] Command Restrictions 2.0 OciXCrom crx_command_res running
[ 21] Admin Commands 1.9.0.5294 AMXX Dev Team admincmd.amxx running
[ 22] Admin Help 1.9.0.5294 AMXX Dev Team adminhelp.amxx running
[ 23] Multi-Lingual System 1.9.0.5294 AMXX Dev Team multilingual.am running
[ 24] Menus Front-End 1.9.0.5294 AMXX Dev Team menufront.amxx running
[ 25] Commands Menu 1.9.0.5294 AMXX Dev Team cmdmenu.amxx running
[ 26] Players Menu 1.9.0.5294 AMXX Dev Team plmenu.amxx running
[ 27] Plugin Menu 1.9.0.5294 AMXX Dev Team pluginmenu.amxx running
[ 28] [190] Stimulation RBS 20.06.06 SKAJIbnEJIb stimulation_rbs running
[ 29] Pause Plugins 1.9.0.5294 AMXX Dev Team pausecfg.amxx running
[ 30] Stats Configuration 1.9.0.5294 AMXX Dev Team statscfg.amxx running
[ 31] StatsX 1.9.0.5294 AMXX Dev Team statsx.amxx running
[ 32] Top Awards 1.2.0 szawesome top_awards.amxx running
[ 33] Items Restrict 1.1 s1lent items_restrict. running
[ 34] Ping Faker 1.5a MeRcyLeZZ pingfaker_count running
[ 35] unknown unknown unknown flash.amxx running
[ 36] Blinding Time 0.0.1 Albertio cflash.amxx running
[ 37] Team Transfer 2.1 UnFoRgIvEn transfer_chat.a running
[ 38] Unlimited Choose Team 1.0 Javekson unlimited_choos running
[ 39] Parachute 1.3 Fixed KRoT@L/JTP10181 parasuta.amxx running
[ 40] Last Maps Time 0.0.1 Exolent last_maps_time. running
[ 41] Advanced Spam Nick Cha 0.2 Fullserver advanced_spam_n running
[ 42] MOTD Commands 1.3 OciXCrom crx_motdcommand running
[ 43] Advanced Kill Assists 1.3c Xelson next21_kill_ass running
[ 44] SHOW IP + LAST IP 2.0 Alka + x amx_showip_last running
[ 45] Reklama 09.07.2019 mx?! reklama.amxx running
[ 46] [190] CsStats ResetSco 20.06.06 SKAJIbnEJIb csstats_resetsc running
[ 47] CFG Slash 1.0 aNNakin cfg_slash.amxx running
[ 48] Server Menu 1.5.0 F@nt0M server_menu.amx running
[ 49] Admin Commands Log 1.2 w0w admin_commands_ running
[ 50] DemoRecoder 1.1 neygomon amx_demorec.amx running
[ 51] [190] Cvar On Map 20.06.06 SKAJIbnEJIb cvar_on_map.amx running
[ 52] Whatsapp_Group_Request 3.2 CrAzY MaN whatsapp_group_ running
[ 53] [ReAPI] AdminFreeLook 1.0 ReHLDS Team adminfreelook.a running
[ 54] [190] Warmup RBS 21.03.23 SKAJIbnEJIb warmup_rbs.amxx running
[ 55] Trial Access 1.0.0 mx?! trial_access.am running
[ 56] [190] Ultimate Flags 22.11.15 SKAJIbnEJIb ultimate_flags. running
[ 57] Slap/Slay Team 1.0 Kobra slaylslapteam.a running
[ 58] Auto Team Balance Adva 1.5.1 Radius auto_team_balan running
[ 59] Hide 1.1 xPaw hidexpaw.amxx running
[ 60] Save score & money 1.2.4 Minni Mouse Save_Score_and_ running
[ 61] Hostname Timeleft 1.0 xPaw HostnameTimelef running
[ 62] [ReAPI] Block 'Fire in 0.0.1 sergrib simpleblockfith running
[ 63] Online Logger 1.0.3 mx?! online_logger.a running
[ 64] 49 44 49 20 4E 41 58 59 49 ausermsg.amxx running
[ 65] Auto Join on Connect 0.1 VEN auto_join_on_co running
[ 66] M_AntiRusher 2.83 Miczu xPaw_Antirusher running
[ 67] Announcer Killstreak 2.1 Jumper & mx?! Announcer_Kills running
[ 68] Admin Groups 1.2 OciXCrom crx_admingroups running
[ 69] AFK Control 1.0 mx?! afk_control.amx running
[ 70] No Bhop and SGS/DDRun 1.1 Denzer no_bhop_sgs.amx running
[ 71] Invisible Spectator 0.2 ConnorMcLeod invi2.amxx running
[ 72] GSClient Auth 1.0 Dev-MS.ru gsclient.amxx running
[ 73] Admins Only 1.0 Andy staffonly.amxx running
[ 74] AMX Immunity 3.0 eVeste imuneoff.amxx running
[ 75] [SxGeo] Connect Info 1.0 s1lent sxgeo_connect_i running
[ 76] unknown unknown unknown fake.amxx running
[ 77] ASP 1.0.2 iPlague autospawnpoints running
[ 78] Yet Another Voteban 1.8 AndrewZ/voed yet_another_vot running
[ 79] [ReAPI:AMXX] Buy Nades 0.2 F@nt0M Buy_Nades_Timeo running
[ 80] Adverts hud 1.0.1 cpctrl adverts_hud.amx running
[ 81] Top Bomber 0.1.1 Albertio top_bomber.amxx running
[ 82] [190] BackWeapons RBS 20.06.06 SKAJIbnEJIb & ho backweapons_rbs running
[ 83] ChatAdditions: Core v1.9.1 Sergey Shorokhov ChatAdditions_C running
[ 84] ChatAdditions: CSBans v1.9.1 Sergey Shorokhov CA_Storage_CSBa running
[ 85] CA: Anti Flood v1.9.1 Nordic Warrior CA_AntiFlood.am running
[ 86] CA: Mute v1.9.1 Sergey Shorokhov CA_Mute.amxx running
[ 87] CA Addon: Death mute v1.9.1 Sergey Shorokhov CA_Addon_DeathM debug
[ 88] CA Addon: Request UnGA v1.9.1 steelzzz CA_Addon_Reques running
[ 89] CA: VoteGAG 1.0.0-alph Sergey Shorokhov CA_Addon_VoteGa running
[ 90] CA: Gag 3a4e0d1 Sergey Shorokhov CA_Gag.amxx running
[ 91] Chat Manager 4.8 OciXCrom crx_chatmanager running
[ 92] CM: Toggle Chat 4.1 OciXCrom crx_chatmanager running
[ 93] OciXCrom's Admin Chat 4.2 OciXCrom crx_adminchat.a running
[ 94] Revive Teammates: Core 0.11.0 ufame & Albertio rt_core.amxx debug
[ 95] Revive Teammates: Plan 0.11.0 ufame & Albertio rt_planting.amx running
[ 96] Revive Teammates: Rest 0.11.0 ufame & Albertio rt_restrictions running
[ 97] Revive Teammates: Time 0.11.0 ufame & Albertio rt_timer.amxx running
[ 98] Revive Teammates: Effe 0.11.0 ufame & Albertio rt_effects.amxx running
[ 99] Revive Teammates: Bonu 0.11.0 ufame & Albertio rt_bonus.amxx running
[100] Revive Teammates: Spri 0.11.0 ufame & Albertio rt_sprite.amxx running
[101] Map Manager: Core 3.1.5-5ee7 Mistrick map_manager_cor running
[102] Map Manager: Scheduler 0.1.11-5ee Mistrick map_manager_sch running
[103] Admin Mapmenu 0.5.3 d3m37r4 admin_mapmenu.a running
[104] Map Manager: Rtv 0.1.3 Mistrick map_manager_rtv running
[105] Map Manager: Nominatio 0.3.1 Mistrick map_manager_nom running
[106] Map Manager: BlockList 0.0.4-16b9 Mistrick map_manager_blo running
[107] Map Manager: Online so 0.0.4-5ee7 Mistrick map_manager_onl running
[108] Map Manager: Effects 0.1.1-5ee7 Mistrick map_manager_eff running
[109] Map Manager: Informer 0.0.5-5ee7 Mistrick map_manager_inf running
[110] Map Manager: Sounds 0.0.3-5ee7 Mistrick map_manager_sou running
[111] Map Manager: Advanced 0.1.0-5ee7 Mistrick map_manager_adv running
[112] Map Manager: Priority 0.0.2-5ee7 Mistrick map_manager_pri running
[113] Map Manager: Online ch 1.0.2-5ee7 Sergey Shorokhov map_manager_onl running
[114] Hide HUD/Menu on Vote 1.2.2 d3m37r4 hide_hud_and_me running
[115] unknown unknown unknown kobra_rtv_maps. running
[116] Molotov Cocktail API 2.16 Misha molotov_cocktai running
[117] Molotov Cocktail Spawn 1.5 Misha molotov_cocktai running
[118] AWP Restrictions 1.5.1 Radius awp_restriction running
[119] CT Bomb Cracker 0.5 Vaqtincha ct_bomb_cracker running
[120] Bet 2.2 Filip Vilicic bet.amxx running
[121] Style C4 Timer 3.0 OciXCrom crx_c4timer.amx running
[122] AMX Slay Losers 1.2 [email protected] slaylosers.amxx running
[123] Walkguard 1.0.0 mx?! walkguard.amxx running
123 plugins, 123 running
- Автор плагина
- ufame & Albertio
- Версия плагина
- 0.11.0
- Исходный код
-
#include <rt_api>
enum CVARS
{
Float:REVIVE_TIME,
Float:ANTIFLOOD_TIME,
Float:CORPSE_TIME,
Float:SEARCH_RADIUS
};
new g_eCvars[CVARS];
enum Forwards
{
ReviveStart,
ReviveLoop_Pre,
ReviveLoop_Post,
ReviveEnd,
ReviveCancelled,
CreatingCorpseStart,
CreatingCorpseEnd
};
new g_eForwards[Forwards];
new g_iPluginLoaded;
new Float:g_flLastUse[MAX_PLAYERS + 1], g_iTimeUntil[MAX_PLAYERS + 1];
public plugin_precache()
{
RegisterCvars();
UploadConfigs();
}
public plugin_init()
{
register_plugin("Revive Teammates: Core", VERSION, AUTHORS);
register_dictionary("rt_library.txt");
register_message(get_user_msgid("ClCorpse"), "MessageHook_ClCorpse");
RegisterHookChain(RG_CSGameRules_CleanUpMap, "CSGameRules_CleanUpMap_Post", .post = 1);
RegisterHookChain(RG_CBasePlayer_UseEmpty, "CBasePlayer_UseEmpty_Pre", .post = 0);
g_eForwards[ReviveStart] = CreateMultiForward("rt_revive_start", ET_STOP, FP_CELL, FP_CELL, FP_CELL, FP_CELL);
g_eForwards[ReviveLoop_Pre] = CreateMultiForward("rt_revive_loop_pre", ET_STOP, FP_CELL, FP_CELL, FP_CELL, FP_FLOAT, FP_CELL);
g_eForwards[ReviveLoop_Post] = CreateMultiForward("rt_revive_loop_post", ET_IGNORE, FP_CELL, FP_CELL, FP_CELL, FP_FLOAT, FP_CELL);
g_eForwards[ReviveEnd] = CreateMultiForward("rt_revive_end", ET_IGNORE, FP_CELL, FP_CELL, FP_CELL, FP_CELL);
g_eForwards[ReviveCancelled] = CreateMultiForward("rt_revive_cancelled", ET_IGNORE, FP_CELL, FP_CELL, FP_CELL, FP_CELL);
g_eForwards[CreatingCorpseStart] = CreateMultiForward("rt_creating_corpse_start", ET_STOP, FP_CELL, FP_CELL);
g_eForwards[CreatingCorpseEnd] = CreateMultiForward("rt_creating_corpse_end", ET_IGNORE, FP_CELL, FP_CELL, FP_ARRAY);
g_iPluginLoaded = is_plugin_loaded("rt_planting.amxx", true);
}
public client_disconnected(id)
{
g_flLastUse[id] = 0.0;
new iActivator= UTIL_RemoveCorpses(id, DEAD_BODY_CLASSNAME);
if(is_user_connected(iActivator))
{
UTIL_NotifyClient(iActivator, print_team_red, "RT_DISCONNECTED");
UTIL_ResetEntityThink(g_eForwards[ReviveCancelled], NULLENT, id, iActivator, MODE_NONE);
}
}
public CSGameRules_CleanUpMap_Post()
{
UTIL_RemoveCorpses(0, DEAD_BODY_CLASSNAME);
}
public CBasePlayer_UseEmpty_Pre(const iActivator)
{
if(~get_entvar(iActivator, var_flags) & FL_ONGROUND)
return;
static iEnt;
iEnt = NULLENT;
static Float:vPlOrigin[3], Float:vEntOrigin[3];
get_entvar(iActivator, var_origin, vPlOrigin);
while((iEnt = rg_find_ent_by_class(iEnt, DEAD_BODY_CLASSNAME)) > 0)
{
if(!is_nullent(iEnt))
{
get_entvar(iEnt, var_vuser4, vEntOrigin);
if(ExecuteHam(Ham_FVecInViewCone, iActivator, vEntOrigin) && vector_distance(vPlOrigin, vEntOrigin) < g_eCvars[SEARCH_RADIUS])
{
Corpse_Use(iEnt, iActivator);
return;
}
}
}
}
public Corpse_Use(const iEnt, const iActivator)
{
if(is_nullent(iEnt) || get_member_game(m_bRoundTerminating) || !ExecuteHam(Ham_IsPlayer, iActivator))
return;
static iPlayer;
iPlayer = get_entvar(iEnt, var_owner);
static TeamName:iActTeam, TeamName:iPlTeam, TeamName:iEntTeam;
iActTeam = get_member(iActivator, m_iTeam);
iPlTeam = get_member(iPlayer, m_iTeam);
iEntTeam = get_entvar(iEnt, var_team);
static modes_struct:eCurrentMode;
eCurrentMode = (iActTeam == iPlTeam) ? MODE_REVIVE : MODE_PLANT;
if(g_iPluginLoaded == INVALID_PLUGIN_ID && eCurrentMode == MODE_PLANT)
return;
if(iActTeam == TEAM_SPECTATOR || iPlTeam == TEAM_SPECTATOR)
return;
if(iEntTeam != iPlTeam)
{
UTIL_NotifyClient(iActivator, print_team_red, "RT_CHANGE_TEAM");
return;
}
if(get_entvar(iEnt, var_iuser1))
{
UTIL_NotifyClient(iActivator, print_team_red, "RT_ACTIVATOR_EXISTS");
return;
}
if(!is_user_alive(iActivator))
{
UTIL_ResetEntityThink(g_eForwards[ReviveCancelled], iEnt, iPlayer, iActivator, eCurrentMode);
return;
}
new fwRet;
ExecuteForward(g_eForwards[ReviveStart], fwRet, iEnt, iPlayer, iActivator, eCurrentMode);
if(fwRet == PLUGIN_HANDLED)
{
UTIL_ResetEntityThink(g_eForwards[ReviveCancelled], iEnt, iPlayer, iActivator, eCurrentMode);
return;
}
static Float:flGameTime;
flGameTime = get_gametime();
if(g_flLastUse[iActivator] > flGameTime)
{
UTIL_NotifyClient(iActivator, print_team_red, "RT_ANTI_FLOOD");
UTIL_ResetEntityThink(g_eForwards[ReviveCancelled], iEnt, iPlayer, iActivator, eCurrentMode);
return;
}
g_flLastUse[iActivator] = flGameTime + g_eCvars[ANTIFLOOD_TIME];
UTIL_NotifyClient(iActivator, print_team_blue, eCurrentMode == MODE_REVIVE ? "RT_TIMER_REVIVE" : "RT_TIMER_PLANT", iPlayer);
g_iTimeUntil[iActivator] = 0;
set_entvar(iEnt, var_iuser1, iActivator);
set_entvar(iEnt, var_fuser1, flGameTime + g_eCvars[REVIVE_TIME]);
set_entvar(iEnt, var_fuser3, g_eCvars[REVIVE_TIME]);
set_entvar(iEnt, var_nextthink, flGameTime + 0.1);
}
public Corpse_Think(const iEnt)
{
if(is_nullent(iEnt))
return;
static iPlayer, iActivator;
iPlayer = get_entvar(iEnt, var_owner);
iActivator = get_entvar(iEnt, var_iuser1);
static TeamName:iActTeam, TeamName:iPlTeam, TeamName:iEntTeam;
iActTeam = get_member(iActivator, m_iTeam);
iPlTeam = get_member(iPlayer, m_iTeam);
iEntTeam = get_entvar(iEnt, var_team);
static modes_struct:eCurrentMode;
eCurrentMode = (iActTeam == iPlTeam) ? MODE_REVIVE : MODE_PLANT;
if(iEntTeam != iPlTeam)
{
UTIL_NotifyClient(iActivator, print_team_red, "RT_CHANGE_TEAM");
return;
}
new Float:flGameTime = get_gametime();
if(g_eCvars[CORPSE_TIME] && !iActivator && get_entvar(iEnt, var_fuser4) < flGameTime)
{
UTIL_RemoveCorpses(iPlayer, DEAD_BODY_CLASSNAME);
return;
}
if(~get_entvar(iActivator, var_button) & IN_USE)
{
UTIL_NotifyClient(iActivator, print_team_red, eCurrentMode == MODE_REVIVE ? "RT_CANCELLED_REVIVE" : "RT_CANCELLED_PLANT");
UTIL_ResetEntityThink(g_eForwards[ReviveCancelled], iEnt, iPlayer, iActivator, eCurrentMode);
return;
}
static Float:flTimeUntil[2];
flTimeUntil[0] = Float:get_entvar(iEnt, var_fuser1);
flTimeUntil[1] = Float:get_entvar(iEnt, var_fuser3);
g_iTimeUntil[iActivator]++;
if(g_iTimeUntil[iActivator] == 10)
{
flTimeUntil[1] -= 1.0;
if(!is_user_alive(iActivator))
{
UTIL_ResetEntityThink(g_eForwards[ReviveCancelled], iEnt, iPlayer, iActivator, eCurrentMode);
return;
}
new fwRet;
ExecuteForward(g_eForwards[ReviveLoop_Pre], fwRet, iEnt, iPlayer, iActivator, flTimeUntil[1], eCurrentMode);
if(fwRet == PLUGIN_HANDLED)
{
UTIL_ResetEntityThink(g_eForwards[ReviveCancelled], iEnt, iPlayer, iActivator, eCurrentMode);
return;
}
}
if(flGameTime > flTimeUntil[0])
{
new modes_struct:iMode = get_entvar(iEnt, var_iuser3);
if(eCurrentMode == MODE_REVIVE && iMode != MODE_PLANT)
{
UTIL_NotifyClient(iActivator, print_team_blue, "RT_REVIVE", iPlayer);
UTIL_NotifyClient(iPlayer, print_team_blue, "RT_REVIVED", iActivator);
rg_round_respawn(iPlayer);
static Float:fOrigin[3];
get_entvar(iActivator, var_origin, fOrigin);
set_entvar(iPlayer, var_flags, get_entvar(iPlayer, var_flags) | FL_DUCKING);
engfunc(EngFunc_SetSize, iPlayer, Float:{-16.000000, -16.000000, -18.000000}, Float:{16.000000, 16.000000, 32.000000});
engfunc(EngFunc_SetOrigin, iPlayer, fOrigin);
UTIL_RemoveCorpses(iPlayer, DEAD_BODY_CLASSNAME);
}
if(!is_user_alive(iActivator))
{
UTIL_ResetEntityThink(g_eForwards[ReviveCancelled], iEnt, iPlayer, iActivator, eCurrentMode);
return;
}
ExecuteForward(g_eForwards[ReviveEnd], _, iEnt, iPlayer, iActivator, eCurrentMode);
return;
}
if(g_iTimeUntil[iActivator] == 10)
{
if(!is_user_alive(iActivator))
{
UTIL_ResetEntityThink(g_eForwards[ReviveCancelled], iEnt, iPlayer, iActivator, eCurrentMode);
return;
}
ExecuteForward(g_eForwards[ReviveLoop_Post], _, iEnt, iPlayer, iActivator, flTimeUntil[1], eCurrentMode);
g_iTimeUntil[iActivator] = 0;
}
set_entvar(iEnt, var_fuser3, flTimeUntil[1]);
set_entvar(iEnt, var_nextthink, flGameTime + 0.1);
}
public MessageHook_ClCorpse()
{
if(get_member_game(m_bRoundTerminating))
return PLUGIN_HANDLED;
enum
{
arg_model = 1,
arg_body = 10,
arg_id = 12
};
static iPlayer;
iPlayer = get_msg_arg_int(arg_id);
static TeamName:iPlTeam;
iPlTeam = get_member(iPlayer, m_iTeam);
if(iPlTeam == TEAM_SPECTATOR)
return PLUGIN_HANDLED;
static iEnt;
iEnt = rg_create_entity("info_target");
if(is_nullent(iEnt))
return PLUGIN_HANDLED;
new fwRet;
ExecuteForward(g_eForwards[CreatingCorpseStart], fwRet, iEnt, iPlayer);
if(fwRet == PLUGIN_HANDLED)
{
set_entvar(iEnt, var_flags, FL_KILLME);
set_entvar(iEnt, var_nextthink, -1.0);
return PLUGIN_HANDLED;
}
static szTemp[MAX_RESOURCE_PATH_LENGTH], szModel[MAX_RESOURCE_PATH_LENGTH];
get_msg_arg_string(arg_model, szTemp, charsmax(szTemp));
formatex(szModel, charsmax(szModel), "models/player/%s/%s.mdl", szTemp, szTemp);
engfunc(EngFunc_SetModel, iEnt, szModel);
set_entvar(iEnt, var_classname, DEAD_BODY_CLASSNAME);
set_entvar(iEnt, var_body, get_msg_arg_int(arg_body));
set_entvar(iEnt, var_sequence, get_entvar(iPlayer, var_sequence));
set_entvar(iEnt, var_frame, 255.0);
set_entvar(iEnt, var_skin, get_entvar(iPlayer, var_skin));
set_entvar(iEnt, var_owner, iPlayer);
set_entvar(iEnt, var_team, iPlTeam);
static Float:fOrigin[3];
get_entvar(iPlayer, var_origin, fOrigin);
engfunc(EngFunc_SetOrigin, iEnt, fOrigin);
static Float:fAngles[3];
get_entvar(iPlayer, var_angles, fAngles);
set_entvar(iEnt, var_angles, fAngles);
engfunc(EngFunc_GetBonePosition, iEnt, 2, fOrigin, fAngles);
set_entvar(iEnt, var_vuser4, fOrigin);
set_entvar(iEnt, var_fuser2, g_eCvars[SEARCH_RADIUS]);
SetThink(iEnt, "Corpse_Think");
if(g_eCvars[CORPSE_TIME])
set_entvar(iEnt, var_fuser4, get_gametime() + g_eCvars[CORPSE_TIME]);
static szOriginData[3];
for(new i; i < 3; i++)
szOriginData[i] = floatround(fOrigin[i]);
szOriginData[2] += 20;
ExecuteForward(g_eForwards[CreatingCorpseEnd], _, iEnt, iPlayer, PrepareArray(szOriginData, sizeof(szOriginData)));
return PLUGIN_HANDLED;
}
public RegisterCvars()
{
bind_pcvar_float(create_cvar(
"rt_revive_time",
"3.0",
FCVAR_NONE,
"Duration of the player's resurrection(in seconds)",
true,
1.0),
g_eCvars[REVIVE_TIME]
);
bind_pcvar_float(create_cvar(
"rt_revive_antiflood",
"3.0",
FCVAR_NONE,
"Duration of anti-flood resurrection(in seconds)",
true,
1.0),
g_eCvars[ANTIFLOOD_TIME]
);
bind_pcvar_float(create_cvar(
"rt_corpse_time",
"30.0",
FCVAR_NONE,
"Duration of a corpse's life (in seconds). If you set it to 0, the corpse lives until the end of the round.",
true,
0.0),
g_eCvars[CORPSE_TIME]
);
bind_pcvar_float(create_cvar(
"rt_search_radius",
"64.0",
FCVAR_NONE,
"Search radius for a corpse",
true,
1.0),
g_eCvars[SEARCH_RADIUS]
);
}
--
В этой теме было размещено решение! Перейти к решению.