#include <sdktools_functions>
#include <sdktools_engine>
#include <Duel>
public Plugin myinfo =
{
name = "[DUEL] Punishment fire",
author = "Drumanid",
version = "1.0.2",
url = "Discord: Drumanid#9108"
};
#define TIMER 3.0 // Промежуток времени перед повторным наказанием
#define DISTANCE 750.0 // Дистанция между дуэлянтами перед тем как их накажут, если они будут далеко друг от друга.
Handle g_hTimer;
int g_iClients[2];
public void IsDuel(bool bState)
{
if(bState)
{
for(int i; i < 2; ++i) g_iClients[i] = iGetDuelist(i);
g_hTimer = CreateTimer(TIMER, TimerFire, _, TIMER_REPEAT | TIMER_FLAG_NO_MAPCHANGE);
}
else
{
if(g_hTimer != null)
{
KillTimer(g_hTimer);
g_hTimer = null;
}
}
}
#define DI(%0) for(%0 = 0; %0 < 2; ++%0)\
if(g_iClients[%0] > 0 && IsClientInGame(g_iClients[%0]))
public Action TimerFire(Handle hTimer)
{
float fPos[2][3];
int i;
DI(i)
{
GetClientEyePosition(g_iClients[i], fPos[i]);
if(i == 0) continue;
if(GetVectorDistance(fPos[0], fPos[1]) > DISTANCE)
{
DI(i)
{
PrintToChat(g_iClients[i], " \x0BПодойдите ближе к сопернику!");
PrintToChat(g_iClients[i], " \x0BИначе вы будете \x07сожжёны \x0Bдотла...");
IgniteEntity(g_iClients[i], 1.0);
}
}
return Plugin_Continue;
}
g_hTimer = null;
return Plugin_Stop;
}