• Like 4
  • UP 2
  • Fortzaaaa 1
  • Mor de râs 2
  • Dislike 1
Sari la conținut

Postări Recomandate

Postat (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 de @amxpro
  • Like 2
  • Fortzaaaa 3
  • 1 lună mai târziu...
Postat (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 de @amxpro
Postat

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 Snowflake ❄️
Postat

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

  • Like 1
Postat

@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

Postat (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 de @amxpro

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 cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
  • Navigare recentă   0 membri

    • Nici un utilizator înregistrat nu vede această pagină.
×
×
  • Creează nouă...

Informații Importante

Termeni de Utilizare & Politică Intimitate