@amxpro Postat August 26, 2025 Postat August 26, 2025 (editat) PLUGIN CS 1.6 - BOMB TIMER BAR v1.2 Autor: @amxpro Versiune: 1.2 Telegram: CLICK AICI DESCRIERE: - Acest plugin afișează un timer DHUD pe ecran atunci când este plantată bomba. - Arată câte secunde mai sunt până la explozie. - Afișează o bară verde de progres sub timer. - Mesaje speciale la defusare și explozie. - Config personalizabil (.cfg generat automat). CVAR-URI DISPONIBILE: bt_rgb_dhud "255 50 50" ; culoarea DHUD pentru timer R G B bt_pos_x_dhud "-1.0" ; poziția X pe ecran (-1.0 = centrat) bt_pos_y_dhud "0.90" ; poziția Y pe ecran bt_holdtime_dhud "1.0" ; durata mesajului DHUD bt_show_bar "1" ; afișează bara verde (1 = ON / 0 = OFF) bt_rgb_defused "0 100 255" ; culoarea mesajului la dezamorsare bt_rgb_boom "255 0 0" ; culoarea mesajului la explozie INSTALARE: 1. Copiază fișierul bomb_timer_bar.amxx în: addons/amxmodx/plugins/ 2. Deschide addons/amxmodx/configs/plugins.ini și adaugă linia: bomb_timer_bar.amxx 3. Repornește serverul sau schimbă harta. 4. La prima rulare, se va crea automat fișierul de configurare: addons/amxmodx/configs/plugins/bomb_timer_bar.cfg DESCĂRCARE PLUGIN: CLICK AICI PENTRU DOWNLOAD TESTAT PE: ReHLDS + AMX Mod X 1.9 / 1.10 Editat August 27, 2025 de @amxpro 2 3
@amxpro Postat Octombrie 18, 2025 Autor Postat Octombrie 18, 2025 (editat) // Actualizare versiunea 1.3 - Remedieri task #include <amxmodx> #define AUTO_CONFIG //Creare automata a fisierului in configs/plugins enum _:CVARS { BT_RGB_DHUD[32], Float:BT_POS_X_DHUD, Float:BT_POS_Y_DHUD, Float:BT_HOLDTIME_DHUD, BT_SHOW_BAR, BT_RGB_DEFUSED[32], BT_RGB_BOOM[32] } new CvarData[CVARS] new g_TimerColor[3], g_DefusedColor[3], g_BoomColor[3] new bool:g_bShowHud new Float:g_fPlantTime new g_pC4Time public plugin_init() { register_plugin("Bomb Timer bar", "1.3", "@amxpro") register_dictionary("bomba_time_bar.txt") register_event("SendAudio", "bomb_plantdef", "a", "2=%!MRAD_BOMBPL", "2=%!MRAD_BOMBDEF") register_logevent("bomb_exploded", 6, "2=triggered", "1=TERRORIST", "3=Target_Bombed") register_event("HLTV", "event_round_start", "a", "1=0", "2=0") g_pC4Time = get_cvar_pointer("mp_c4timer") RegisterCvars() #if defined AUTO_CONFIG AutoExecConfig(true, "bomb_timer_bar") #endif } RegisterCvars() { bind_pcvar_string(create_cvar( "bt_rgb_dhud", "255 50 50", FCVAR_NONE, "Culoarea DHUD pentru timer (R G B)"), CvarData[BT_RGB_DHUD], charsmax(CvarData[BT_RGB_DHUD]) ) bind_pcvar_float(create_cvar( "bt_pos_x_dhud", "-1.0", FCVAR_NONE, "Pozitia X pe ecran DHUD (-1.0 = centrat)"), CvarData[BT_POS_X_DHUD] ) bind_pcvar_float(create_cvar( "bt_pos_y_dhud", "0.90", FCVAR_NONE, "Pozitia Y pe ecran DHUD"), CvarData[BT_POS_Y_DHUD] ) bind_pcvar_float(create_cvar( "bt_holdtime_dhud", "1.0", FCVAR_NONE, "Durata mesaj DHUD"), CvarData[BT_HOLDTIME_DHUD] ) bind_pcvar_num(create_cvar( "bt_show_bar", "1", FCVAR_NONE, "Afiseaza bara verde sub timer (1 = ON / 0 = OFF)"), CvarData[BT_SHOW_BAR] ) bind_pcvar_string(create_cvar( "bt_rgb_defused", "0 100 255", FCVAR_NONE, "Culoarea DHUD pentru mesajul DEFUSED (R G B)"), CvarData[BT_RGB_DEFUSED], charsmax(CvarData[BT_RGB_DEFUSED]) ) bind_pcvar_string(create_cvar( "bt_rgb_boom", "255 0 0", FCVAR_NONE, "Culoarea DHUD pentru mesajul BOOM (R G B)"), CvarData[BT_RGB_BOOM], charsmax(CvarData[BT_RGB_BOOM]) ) ParseColors(CvarData[BT_RGB_DHUD], g_TimerColor) ParseColors(CvarData[BT_RGB_DEFUSED], g_DefusedColor) ParseColors(CvarData[BT_RGB_BOOM], g_BoomColor) } ParseColors(const szCvar[], output[3]) { new szTemp[32], idx copy(szTemp, charsmax(szTemp), szCvar) new arg[6] while(argbreak(szTemp, arg, charsmax(arg), szTemp, charsmax(szTemp)) != -1 && idx < 3) output[idx++] = str_to_num(arg) } public bomb_plantdef() { new data[13] read_data(2, data, 12) switch(data[11]) { case 'P': { g_fPlantTime = get_gametime() g_bShowHud = true set_task(1.0, "Task_Countdown", 12345, .flags ="b") } case 'D': { g_bShowHud = false remove_task(12345) set_dhudmessage(g_DefusedColor[0], g_DefusedColor[1], g_DefusedColor[2], -1.0, 0.8, 0, 0.0, 3.0, 0.1, 0.2) show_dhudmessage(0, "%L", LANG_PLAYER, "CT_DEFUSED") // cand bomba este dezamorsata } } } public bomb_exploded() { g_bShowHud = false remove_task(12345) set_dhudmessage(g_BoomColor[0], g_BoomColor[1], g_BoomColor[2], -1.0, 0.8, 0, 0.0, 3.0, 0.1, 0.2) show_dhudmessage(0, "%L", LANG_PLAYER, "T_EXPLODED") // cand bomba explodeaza } public Task_Countdown() { if(!g_bShowHud) return new c4time = get_pcvar_num(g_pC4Time) new timeLeft = c4time - floatround(get_gametime() - g_fPlantTime) if(timeLeft <= 0) { g_bShowHud = false remove_task(12345) return } set_dhudmessage( g_TimerColor[0], g_TimerColor[1], g_TimerColor[2], CvarData[BT_POS_X_DHUD], CvarData[BT_POS_Y_DHUD], 0, 0.0, CvarData[BT_HOLDTIME_DHUD], 0.0, 0.0 ) show_dhudmessage(0, "%L", LANG_PLAYER, "BOMB_TIMER", timeLeft) // mesaj bomba if(CvarData[BT_SHOW_BAR]) { new Float:progress = float(timeLeft) / float(c4time) new barLen = floatround(progress * 30.0) // timpul de progres a barei nu mai mult de 30 de secunde new szBar[64] for(new i=0; i<barLen; i++) add(szBar, charsmax(szBar), ">") // mesaj bara jos set_dhudmessage(0, 255, 0, -1.0, 0.95, 0, 0.0, 1.0, 0.0, 0.0) show_dhudmessage(0, "%s", szBar) } } public event_round_start() { g_bShowHud = false remove_task(12345) } Editat Octombrie 18, 2025 de @amxpro
@amxpro Postat Octombrie 18, 2025 Autor Postat Octombrie 18, 2025 addons/amxmodx/data/lang/bomba_time_bar.txt [ro] CT_DEFUSED = [CT] Bomba a fost dezamorsată! T_EXPLODED = [TERO] Bomba a explodat! BOMB_TIMER = Bomba explodează în %d secunde! [en] CT_DEFUSED = [CT] The bomb has been defused! T_EXPLODED = [TERRORIST] The bomb has exploded! BOMB_TIMER = The bomb will explode in %d seconds!
LCS PREMIUM PODUAH Postat Octombrie 19, 2025 LCS PREMIUM Postat Octombrie 19, 2025 Nu-i rau, ai putea pune sa se distruga hudul daca runda s-a sfarsit de exemplu daca e bomba pusa si tero omoara toti ct hudul inca merge descrecator 1
@amxpro Postat Octombrie 20, 2025 Autor Postat Octombrie 20, 2025 @PODUAHStiu asa face cand il instalezi prima data dupa revine la normal cu cvarmp_c4timer dupa ce explodeaza bomba din runda 2 revine la normal eu il am pe serverul de testare cu boti si se sterge tasku dupa ce bomba explodeaza
@amxpro Postat Octombrie 20, 2025 Autor Postat Octombrie 20, 2025 (editat) /* [Reapi] bomba timer_bar - Versiunea 1.4 Autor: @amxpro // This file was auto-generated by AMX Mod X (v1.10.0.5468) // Cvars for plugin "[Reapi] bomba timer_bar" by "@amxpro" (reapi_bomb_timer_bar.amxx, v1.4) // Culoarea textului DHUD pentru timer (R G b // - // Default: "255 50 50" bt_rgb_dhud "255 50 50" // Poziția X pe ecran DHUD (-1.0 = centrat) // - // Default: "-1.0" bt_pos_x_dhud "-1.0" // Poziția Y pe ecran DHUD // - // Default: "0.75" bt_pos_y_dhud "0.75" // Durata de afișare a mesajului DHUD (în secunde) // - // Default: "1.0" bt_holdtime_dhud "1.0" // Afișează bara de progres sub timer (1 = activată / 0 = dezactivată) // - // Default: "1" bt_show_bar "1" // Culoarea DHUD pentru mesajul DEFUSED (R G b // - // Default: "0 100 255" bt_rgb_defused "0 100 255" // Culoarea DHUD pentru mesajul BOOM (R G b // - // Default: "255 0 0" bt_rgb_boom "255 0 0" // Poziția Y pe ecran a barei de progres // - // Default: "0.80" bt_bar_pos_y "0.80" // Oprește automat timerul când se termină (1 = activat / 0 = dezactivat) // - // Default: "1" bt_remove_task "1" // Activează sunetele pentru bomb timer (1 = activat / 0 = dezactivat) // - // Default: "0" bt_enable_sounds "0" // Caracterul folosit pentru bara de progres (ex: | < #) // - // Default: "|" bt_bar_char "|" Cerințe: - ReHLDS + ReGameDLL + ReAPI - AMX Mod X 1.9+ recomandat */ [spoiler=reapi_bomba_timer] [code} #include <amxmodx> #include <reapi> #define PLUGIN_VERSION "1.4" #define AUTO_CONFIG //Creare automata a fisierului in configs/plugins enum _:CVARS { BT_RGB_DHUD[32], Float:BT_POS_X_DHUD, Float:BT_POS_Y_DHUD, Float:BT_BAR_POS_Y, Float:BT_HOLDTIME_DHUD, BT_SHOW_BAR, BT_REMOVE_TASK, BT_RGB_DEFUSED[32], BT_ENABLE_SOUNDS, BT_BAR_CHAR[2], BT_RGB_BOOM[32] } new CvarData[CVARS] const TASKID__TIMER = 1337 new HookChain:g_hRestartRound, g_iTimer new g_BoomColor[3], g_DefusedColor[3] enum _:SoundsEnum { SOUND__1, SOUND__2, SOUND__3, SOUND__4, SOUND__5, SOUND__6, SOUND__7, SOUND__8, SOUND__9, SOUND__10, SOUND__20, SOUND__PLANT, SOUND__EXPLODE } new const g_szSounds[SoundsEnum][] = { "sound/bomba_timer_bar/1_sec.mp3", "sound/bomba_timer_bar/2_sec.mp3", "sound/bomba_timer_bar/3_sec.mp3", "sound/bomba_timer_bar/4_sec.mp3", "sound/bomba_timer_bar/5_sec.mp3", "sound/bomba_timer_bar/6_sec.mp3", "sound/bomba_timer_bar/7_sec.mp3", "sound/bomba_timer_bar/8_sec.mp3", "sound/bomba_timer_bar/9_sec.mp3", "sound/bomba_timer_bar/10_sec.mp3", "sound/bomba_timer_bar/20_sec.mp3", "bomba_timer_bar/jopki3.wav", "bomba_timer_bar/finish3.wav" } public plugin_precache() { register_plugin("[Reapi] bomba timer_bar", PLUGIN_VERSION, "@amxpro") register_dictionary("reapi_bomba_time_bar.txt") precache_sound(g_szSounds[SOUND__PLANT]) precache_sound(g_szSounds[SOUND__EXPLODE]) for (new i = SOUND__20; i >= 0; i--) { precache_generic(g_szSounds[i]) } RegisterCvars() #if defined AUTO_CONFIG AutoExecConfig(true, "reapi_bomb_timer_bar") #endif } public plugin_init() { if (!get_member_game(m_bMapHasBombTarget) && !get_member_game(m_bMapHasBombZone)) { pause("ad") return } RegisterHookChain(RG_PlantBomb, "PlantBomb_Post", true) RegisterHookChain(RG_CGrenade_ExplodeBomb, "CGrenade_ExplodeBomb_Post", true) RegisterHookChain(RG_CGrenade_DefuseBombEnd, "CGrenade_DefuseBombEnd_Post", true) g_hRestartRound = RegisterHookChain(RG_CSGameRules_RestartRound, "CSGameRules_RestartRound_Pre") DisableHookChain(g_hRestartRound) set_task(1.0, "ParseColorsTask") } RegisterCvars() { bind_pcvar_string(create_cvar("bt_rgb_dhud", "255 50 50", FCVAR_NONE, "Culoarea textului DHUD pentru timer (R G B)"), CvarData[BT_RGB_DHUD], charsmax(CvarData[BT_RGB_DHUD])) bind_pcvar_float(create_cvar("bt_pos_x_dhud", "-1.0", FCVAR_NONE, "Poziția X pe ecran DHUD (-1.0 = centrat)"), CvarData[BT_POS_X_DHUD]) bind_pcvar_float(create_cvar("bt_pos_y_dhud", "0.75", FCVAR_NONE, "Poziția Y pe ecran DHUD"), CvarData[BT_POS_Y_DHUD]) bind_pcvar_float(create_cvar("bt_holdtime_dhud", "1.0", FCVAR_NONE, "Durata de afișare a mesajului DHUD (în secunde)"), CvarData[BT_HOLDTIME_DHUD]) bind_pcvar_num(create_cvar("bt_show_bar", "1", FCVAR_NONE, "Afișează bara de progres sub timer (1 = activată / 0 = dezactivată)"), CvarData[BT_SHOW_BAR]) bind_pcvar_float(create_cvar("bt_bar_pos_y", "0.80", FCVAR_NONE, "Poziția Y pe ecran a barei de progres"), CvarData[BT_BAR_POS_Y]) bind_pcvar_string(create_cvar("bt_rgb_defused", "0 100 255", FCVAR_NONE, "Culoarea DHUD pentru mesajul DEFUSED (R G B)"), CvarData[BT_RGB_DEFUSED], charsmax(CvarData[BT_RGB_DEFUSED])) bind_pcvar_string(create_cvar("bt_rgb_boom", "255 0 0", FCVAR_NONE, "Culoarea DHUD pentru mesajul BOOM (R G B)"), CvarData[BT_RGB_BOOM], charsmax(CvarData[BT_RGB_BOOM])) bind_pcvar_num(create_cvar("bt_remove_task", "1", FCVAR_NONE, "Oprește automat timerul când se termină (1 = activat / 0 = dezactivat)"), CvarData[BT_REMOVE_TASK]) bind_pcvar_num(create_cvar("bt_enable_sounds", "0", FCVAR_NONE, "Activează sunetele pentru bomb timer (1 = activat / 0 = dezactivat)"), CvarData[BT_ENABLE_SOUNDS]) bind_pcvar_string(create_cvar("bt_bar_char", "|", FCVAR_NONE, "Caracterul folosit pentru bara de progres (ex: | < #)"), CvarData[BT_BAR_CHAR], charsmax(CvarData[BT_BAR_CHAR])) } public ParseColorsTask() { ParseColors(CvarData[BT_RGB_BOOM], g_BoomColor) ParseColors(CvarData[BT_RGB_DEFUSED], g_DefusedColor) } ParseColors(const input[], output[3]) { static szTmp[3][4] parse(input, szTmp[0], charsmax(szTmp[]), szTmp[1], charsmax(szTmp[]), szTmp[2], charsmax(szTmp[])) output[0] = str_to_num(szTmp[0]) output[1] = str_to_num(szTmp[1]) output[2] = str_to_num(szTmp[2]) } public PlantBomb_Post(const index, Float:vecStart[3], Float:vecVelocity[3]) { if (is_nullent(GetHookChainReturn(ATYPE_INTEGER))) return EnableHookChain(g_hRestartRound) if (CvarData[BT_ENABLE_SOUNDS]) { client_cmd(0, "spk %s", g_szSounds[SOUND__PLANT]) } g_iTimer = get_member_game(m_iC4Timer) set_task(1.0, "task_Timer", TASKID__TIMER, .flags = "b") } public task_Timer() { g_iTimer-- new szMsg[64] formatex(szMsg, charsmax(szMsg), "%L", LANG_PLAYER, "BOMB_TIMER", g_iTimer) new rgb[3] ParseColors(CvarData[BT_RGB_DHUD], rgb) set_dhudmessage(rgb[0], rgb[1], rgb[2], CvarData[BT_POS_X_DHUD], CvarData[BT_POS_Y_DHUD], 0, 0.0, CvarData[BT_HOLDTIME_DHUD], 0.0, 0.0) show_dhudmessage(0, szMsg) if (CvarData[BT_SHOW_BAR]) { new szBar[64] new iTotal = get_member_game(m_iC4Timer) new iBarLen = floatround(float(g_iTimer) / float(iTotal) * 30.0) new chBarChar = CvarData[BT_BAR_CHAR][0] for (new i = 0; i < iBarLen; i++) { szBar[i] = chBarChar } szBar[iBarLen] = EOS set_dhudmessage(0, 255, 0, -1.0, CvarData[BT_BAR_POS_Y], 0, 0.0, 1.0, 0.0, 0.0) show_dhudmessage(0, szBar) } if (CvarData[BT_ENABLE_SOUNDS]) { switch (g_iTimer) { case 20: client_cmd(0, "mp3 play %s", g_szSounds[SOUND__20]) case 1..10: client_cmd(0, "mp3 play %s", g_szSounds[g_iTimer - 1]) } } if (g_iTimer <= 1 && CvarData[BT_REMOVE_TASK]) { remove_task(TASKID__TIMER) } } public CGrenade_ExplodeBomb_Post(const this, tracehandle, const bitsDamageType) { set_dhudmessage(g_BoomColor[0], g_BoomColor[1], g_BoomColor[2], -1.0, 0.8, 0, 0.0, 3.0, 0.1, 0.2) show_dhudmessage(0, "%L", LANG_PLAYER, "T_EXPLODED") set_task(1.0, "task_PlayExplode") } public task_PlayExplode() { if (CvarData[BT_ENABLE_SOUNDS]) { client_cmd(0, "spk %s", g_szSounds[SOUND__EXPLODE]) } } public CGrenade_DefuseBombEnd_Post(const this, const player, bool:bDefused) { if (!bDefused) return set_dhudmessage(g_DefusedColor[0], g_DefusedColor[1], g_DefusedColor[2], -1.0, 0.8, 0, 0.0, 3.0, 0.1, 0.2) show_dhudmessage(0, "%L", LANG_PLAYER, "CT_DEFUSED") remove_task(TASKID__TIMER) } public CSGameRules_RestartRound_Pre() { DisableHookChain(g_hRestartRound) remove_task(TASKID__TIMER) } [/code] [/spoiler] Editat Octombrie 20, 2025 de @amxpro
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum