Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.
Модераторы: Subb98, liFe iS GoOD
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.
В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.
Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.
jban1990 » 30 апр 2020, 21:32
Добрый вечер! как сделать что бы при отсчете времени до конца разминки когда уже бывает 5-4-3-2-1 были звуки отсчета
- Код: Выделить всё
new const soundRR[] = "sound/rr/RoundStart.mp3"; native stats_set_enabled(params_num)
new g_arPlugins[][] = {
"Respawn_dead.amxx"
}
new g_iHudSync;
new g_szWeapon[32];
new g_iWp;
new HookChain:fwd_NewRound,
HookChain:fwd_Spawn,
HookChain:fwd_GiveC4,
HookChain:fwd_BlockEntity,
HookChain:fwd_Killed;
const TASK_PROTECTION_ID = 33464;
public plugin_init()
{
register_plugin("[ReAPI] Random Weapons WarmUP", "2.4.4", "neugomon");
RegisterHookChain(RG_RoundEnd, "fwdRoundEnd", true);
DisableHookChain(fwd_NewRound = RegisterHookChain(RG_CSGameRules_CheckMapConditions, "fwdRoundStart", true));
DisableHookChain(fwd_Spawn = RegisterHookChain(RG_CBasePlayer_Spawn, "fwdPlayerSpawnPost", true));
DisableHookChain(fwd_GiveC4 = RegisterHookChain(RG_CSGameRules_GiveC4, "fwdGiveC4", false));
DisableHookChain(fwd_BlockEntity = RegisterHookChain(RG_CBasePlayer_HasRestrictItem, "fwdHasRestrictItemPre", false));
register_clcmd("drop", "ClCmd_Drop");
DisableHookChain(fwd_Killed = RegisterHookChain(RG_CBasePlayer_Killed, "fwdPlayerKilledPost", true));
g_iHudSync = CreateHudSyncObj();
register_clcmd("joinclass", "clCmdJoinClass");
register_clcmd("menuselect","clCmdJoinClass");
state warmupOff;
new sPref[][] = { "awp_", "aim_", "fy_", "$", "cs_", "35hp" }; new map[32]; get_mapname(map, charsmax(map));
for(new i; i < sizeof sPref; i++)
{
if(containi(map, sPref[i]) != -1)
{
pause("ad");
return;
}
}
}
public fwdHasRestrictItemPre() {
SetHookChainReturn(ATYPE_INTEGER, true);
return HC_SUPERCEDE;
}
public ClCmd_Drop() <warmupOff>
return PLUGIN_CONTINUE;
public ClCmd_Drop() <warmupOn>
return PLUGIN_HANDLED;
public client_putinserver(id)
{
remove_task(id + TASK_PROTECTION_ID)
}
public plugin_precache()
{
precache_generic(soundRR);
}
public fwdRoundEnd(WinStatus:status, ScenarioEventEndRound:event, Float:tmDelay)
if(event == ROUND_GAME_COMMENCE)
EnableHookChain(fwd_NewRound);
public fwdRoundStart()
{
state warmupOn;
client_cmd(0, "mp3 play ^"%s^"", soundRR);
DisableHookChain(fwd_NewRound);
EnableHookChain(fwd_Spawn);
EnableHookChain(fwd_GiveC4);
stats_set_enabled(0);
set_cvar_string("mp_round_infinite", "1");
EnableHookChain(fwd_BlockEntity);
EnableHookChain(fwd_Killed);
PluginController(1);
switch((g_iWp = random(5)))
{
case 0: formatex(g_szWeapon, charsmax(g_szWeapon), "SCOUT");
case 1: formatex(g_szWeapon, charsmax(g_szWeapon), "M3");
case 2: formatex(g_szWeapon, charsmax(g_szWeapon), "Гранатах");
case 3: formatex(g_szWeapon, charsmax(g_szWeapon), "AWP");
case 4: formatex(g_szWeapon, charsmax(g_szWeapon), "Elite");
}
set_task(1.0, "ShowTimer", .flags = "a", .repeat = TIME_RR);
}
public clCmdJoinClass(id) <warmupOff>
return;
public clCmdJoinClass(id) <warmupOn>
if(get_member(id, m_iMenu) == Menu_ChooseAppearance)
set_task(0.5, "SpawnPlayer", id);
public fwdPlayerSpawnPost(const id)
{
if(!is_user_alive(id))
return;
BuyZone_ToogleSolid(SOLID_NOT);
SetProtection(id)
rg_remove_all_items(id);
set_member_game(m_bMapHasBuyZone, true);
switch(g_iWp)
{
case 0:
{
rg_give_item(id, "weapon_scout");
rg_give_item(id, "weapon_knife");
rg_set_user_bpammo(id, WEAPON_SCOUT, 90);
}
case 1:
{
rg_give_item(id, "weapon_m3");
rg_give_item(id, "weapon_knife");
rg_set_user_bpammo(id, WEAPON_M3, 90);
}
case 2:
{
rg_give_item(id, "weapon_hegrenade");
rg_set_user_bpammo(id, WEAPON_HEGRENADE, 120);
}
case 3:
{
rg_give_item(id, "weapon_awp");
rg_give_item(id, "weapon_knife");
rg_set_user_bpammo(id, WEAPON_AWP, 90);
}
case 4:
{
rg_give_item(id, "weapon_elite");
rg_give_item(id, "weapon_knife");
rg_set_user_bpammo(id, WEAPON_ELITE, 90);
}
}
}
public fwdPlayerKilledPost(pVictim)
set_task(1.0, "SpawnPlayer", pVictim);
public fwdGiveC4()
{
return HC_SUPERCEDE
}
public ShowTimer()
{
static timer = -1;
if(timer == -1) timer = TIME_RR;
switch(--timer)
{
case 0:
{
state warmupOff;
BuyZone_ToogleSolid(SOLID_TRIGGER);
DisableHookChain(fwd_Spawn);
DisableHookChain(fwd_GiveC4);
stats_set_enabled(1);
set_cvar_string("mp_round_infinite", "0");
DisableHookChain(fwd_BlockEntity);
DisableHookChain(fwd_Killed);
PluginController(0);
set_task(LATENCY, "SV_Restart", .flags = "a", .repeat = NUM_RR);
SV_Restart();
timer = -1;
}
default:
{
set_hudmessage(255, 0, 0, .x = -1.0, .y = 0.55, .holdtime = 0.9, .channel = -1);
show_hudmessage(0, "[Статистика Отключена]");
set_hudmessage(135, 206, 235, .x = -1.0, .y = 0.08, .holdtime = 0.9, .channel = -1);
ShowSyncHudMsg(0, g_iHudSync, "Разминка на %s!^nРестарт через %d сек", g_szWeapon, timer);
}
}
}
public SV_Restart()
{
set_cvar_num("sv_restart", 1);
set_task(2.0, "End_RR");
}
public End_RR()
{
set_hudmessage(255, 0, 0, .x = -1.0, .y = 0.55, .holdtime = 5.0, .channel = -1);
show_hudmessage(0, "[Статистика Включена]");
set_hudmessage(135, 206, 235, .x = -1.0, .y = 0.80, .holdtime = 5.0, .channel = -1);
show_hudmessage(0, "Ожидание завершено!^nПриятной игры!");
}
public SpawnPlayer(id)
{
if(!is_user_connected(id))
return;
if(is_user_alive(id))
return;
switch(get_member(id, m_iTeam))
{
case 1, 2: rg_round_respawn(id);
}
}
public SetProtection(id)
{
set_entvar(id, var_takedamage, DAMAGE_NO)
switch(get_member(id, m_iTeam))
{
case TEAM_TERRORIST: rg_set_rendering(id, kRenderFxGlowShell, 255, 0, 0, 10);
case TEAM_CT: rg_set_rendering(id, kRenderFxGlowShell, 0, 0, 255, 10);
}
remove_task(TASK_PROTECTION_ID + id)
set_task( PROTECTED.0, "EndProtection", TASK_PROTECTION_ID + id)
}
public EndProtection(TaskID)
{
new id = TaskID - TASK_PROTECTION_ID
if(!is_user_connected(id))
return
set_entvar(id, var_takedamage, DAMAGE_AIM)
rg_set_rendering(id)
}
stock rg_set_rendering(index, fx = kRenderFxNone, r=255, g=255, b=255, amount=16)
{
new Float:RenderColor[3]
RenderColor[0] = float(r)
RenderColor[1] = float(g)
RenderColor[2] = float(b)
set_entvar(index, var_renderfx, fx)
set_entvar(index, var_rendercolor, RenderColor)
set_entvar(index, var_renderamt, float(amount))
}
stock PluginController(stop)
{
for(new i; i < sizeof g_arPlugins; i++)
{
if(stop)pause ("ac", g_arPlugins[i]);
else unpause("ac", g_arPlugins[i]);
}
}
stock BuyZone_ToogleSolid(const solid)
{
new entityIndex = 0;
while ((entityIndex = rg_find_ent_by_class(entityIndex, "func_buyzone")))
set_entvar(entityIndex, var_solid, solid);
}
-
jban1990
-
- Сообщения: 46
- Зарегистрирован: 30 мар 2020, 17:06
- Забанен
- Благодарил (а): 3 раз.
- Поблагодарили: 0 раз.
- Языки программирования: Я ничего не знаю
Вернуться в Скриптинг
Кто сейчас на конференции
Сейчас этот форум просматривают: Bing [Bot] и гости: 5