Отново не виждам информация в заглавието свързана със самата редакция - обясни за каква редакция става дума в заглавието. Недей да пишеш само "редакция на плъгин".
Направих го да не изпълнява ефекта/звука ако XP-то което ще получи е достатъчно за достигане на следващото ниво.
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <cromchat>
#include <crxranks>
#if defined client_disconnected
#define client_disconnect client_disconnected
#endif
#define clr(%1) %1 == -1 ? random(256) : %1
const XP_FREQ = 30
const XP_AMOUNT = 50
new g_szSound[128], bool:g_bScreenFadeEnabled, g_iScreenFade[4], g_iMsgScreenFade
public plugin_init()
{
register_plugin("CRXRanks: XP Per Minute", "1.0a", "OciXCrom")
crxranks_get_chat_prefix(CC_PREFIX, charsmax(CC_PREFIX))
crxranks_get_setting("LEVELUP_SOUND", g_szSound, charsmax(g_szSound))
new szColor[16], szTemp[4][5], szFade[2]
crxranks_get_setting("LEVELUP_SCREEN_FADE_ENABLED", szFade, charsmax(szFade))
g_bScreenFadeEnabled = str_to_num(szFade) != 0
crxranks_get_setting("LEVELUP_SCREEN_FADE_COLOR", szColor, charsmax(szColor))
parse(szColor, szTemp[0], charsmax(szTemp[]), szTemp[1], charsmax(szTemp[]), szTemp[2], charsmax(szTemp[]), szTemp[3], charsmax(szTemp[]))
for(new i = 0; i < 4; i++)
{
g_iScreenFade[i] = clamp(str_to_num(szTemp[i]), -1, 255)
}
g_iMsgScreenFade = get_user_msgid("ScreenFade")
}
public client_putinserver(id)
{
set_task(XP_FREQ * 60.0, "GiveXP", id, .flags = "b")
}
public client_disconnect(id)
{
remove_task(id)
}
public GiveXP(id)
{
if(is_user_connected(id))
{
crxranks_give_user_xp(id, XP_AMOUNT)
CC_SendMessage(id, "You received &x03%i XP &x01for playing for &x04%i minute&x01.", XP_AMOUNT, XP_FREQ)
if(crxranks_get_user_xp(id) + XP_AMOUNT < crxranks_get_user_next_xp(id))
{
if(g_szSound[0])
{
client_cmd(id, "spk ^"%s^"", g_szSound)
}
if(g_bScreenFadeEnabled)
{
message_begin(MSG_ONE, g_iMsgScreenFade, {0, 0, 0}, id)
write_short(1<<10)
write_short(1<<10)
write_short(0x0000)
write_byte(clr(g_iScreenFade[0]))
write_byte(clr(g_iScreenFade[1]))
write_byte(clr(g_iScreenFade[2]))
write_byte(clr(g_iScreenFade[3]))
message_end()
}
}
}
else
{
remove_task(id)
}
}