ако може някой да ми преработи плъгина който съм дал по-долу, докато тече загряващия рунд, малко над средата на екрана да излиза таймер, колко време остава до края на загряващия рунд. В началото на рунда да излизат 3 съобщения, че това е загряващ рунд. Да бъде премахнато това съобщение "Warmup round is over, restarting...", също така, има проблем с дропването на оръжията. При компилация ми показва тази грешка "(48) warning 209: function "OnDrop" should return a value". След като те убият си остават по мапа, ако може да се премахнат и те (след като те убият да изчезват). Като свърши загряващия рунд да излизат в чата 3 последнователни съобщения, няма значение какви, аз ще си ги редактирам.
Благодаря предварително!
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <reapi>
#include <WPMGPrintChatColor>
new p_flWarmUpTime, p_flForceRespawn, p_flBuyTime;
new Float:g_flOldBuyTime, Float:g_flOldForceRespawn;
new HookChain:fwdPlayerSpawn;
new bool:g_bWarmup
new const g_szWeapons[][] =
{
"weapon_ak47", "weapon_m4a1", "weapon_aug", "weapon_awp", "weapon_famas", "weapon_galil",
"weapon_m249", "weapon_scout", "weapon_m3", "weapon_xm1014", "weapon_mac10", "weapon_p90"
};
new const g_szPistols[][] =
{
"weapon_glock18", "weapon_usp", "weapon_deagle", "weapon_elite", "weapon_p228"
};
new const g_iWeaponsBpAmmo[] =
{
90, 90, 90, 30, 90, 90, 200, 90, 32, 32, 100, 100
}
new const g_iPistolsBpAmmo[] =
{
120, 100, 35, 120, 52
}
public plugin_init()
{
register_plugin("Warm UP", "1.0", "TheRedShoko @ AMXX-BG.info");
register_clcmd("drop", "OnDrop")
DisableHookChain((fwdPlayerSpawn = RegisterHookChain(RG_CBasePlayer_Spawn, "FwPlayerSpawnPost", 1)));
p_flWarmUpTime = register_cvar("warmup_time", "180.0");
p_flForceRespawn = get_cvar_pointer("mp_forcerespawn");
p_flBuyTime = get_cvar_pointer("mp_buytime");
}
public OnDrop(id)
{
if(g_bWarmup)
return PLUGIN_HANDLED
}
public plugin_cfg()
{
g_flOldBuyTime = get_pcvar_float(p_flForceRespawn);
g_flOldBuyTime = get_pcvar_float(p_flBuyTime);
set_pcvar_num(p_flBuyTime, 0);
set_pcvar_float(p_flForceRespawn, 0.1);
new Float:flWarmUpTime = get_pcvar_float(p_flWarmUpTime);
set_task(flWarmUpTime, "EndWarmUp");
g_bWarmup = true
EnableHookChain(fwdPlayerSpawn);
set_hudmessage(0, 255, 0, .holdtime = 10.0);
show_hudmessage(0, "Warmup round will end in %.f seconds!", flWarmUpTime);
PrintChatColor(0, PRINT_COLOR_PLAYERTEAM, "!g[WarmUp]!y Warmup round will end in %.f seconds!", flWarmUpTime);
}
public EndWarmUp()
{
DisableHookChain(fwdPlayerSpawn);
set_pcvar_float(p_flBuyTime, g_flOldBuyTime);
set_pcvar_float(p_flForceRespawn, g_flOldForceRespawn);
set_hudmessage(0, 255, 0, .holdtime = 10.0);
show_hudmessage(0, "Warmup round is over, restarting...");
server_cmd("sv_restart 3");
g_bWarmup = false
PrintChatColor(0, PRINT_COLOR_PLAYERTEAM, "!g[WarmUp]!y Warm up is over, restarting...");
}
public FwPlayerSpawnPost(id)
{
if (!is_user_alive(id))
{
return;
}
rg_remove_all_items(id);
rg_give_item(id, "weapon_knife");
new iPrimaryWeapon = random(sizeof g_szWeapons);
new iSecondaryWeapon = random(sizeof g_szPistols);
rg_give_item(id, g_szWeapons[iPrimaryWeapon]);
rg_give_item(id, g_szPistols[iSecondaryWeapon]);
rg_set_user_bpammo(id, rg_get_weapon_info(g_szWeapons[iPrimaryWeapon], WI_ID), g_iWeaponsBpAmmo[iPrimaryWeapon]);
rg_set_user_bpammo(id, rg_get_weapon_info(g_szPistols[iSecondaryWeapon], WI_ID), g_iPistolsBpAmmo[iSecondaryWeapon]);
}