Страница 1 от 1
SOUND+SCREEN_FADE за CRXRanks: Give XP Per Minute !
Публикувано на: 12 Юли 2019, 22:30
от iv69
Има ли начин към приложения по-долу събплъгин да даване на XP за проиграно време в сървъра към OciXCrom's Rank System , освен съобщението в чата, да се добави премигването на екрана и същия звуков сигнал, тоест да добавим ако може и ефектите от OciXCrom's Rank System при добиване на ново ниво?
Е, разбира се ако има такава възмоожност, искам горещо да помоля ако някой обича, да дообработи (когато има време и желание) събплъгина.
Благодаря предварително и от сърце.
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <cromchat>
#include <crxranks>
#if defined client_disconnected
#define client_disconnect client_disconnected
#endif
#define XP_FREQ 30
#define XP_AMOUNT 50
public plugin_init()
{
register_plugin("CRXRanks: XP Per Minute", "1.0", "OciXCrom")
crxranks_get_chat_prefix(CC_PREFIX, charsmax(CC_PREFIX))
}
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)
}
else remove_task(id)
}
Преработка събплъгина към OciXCrom's Rank System.
Публикувано на: 12 Юли 2019, 22:36
от OciXCrom
Оправи заглавието на темата като добавиш за кой плъгин става дума и какво трябва да се редактира.
Редакция на събплъгин за даване на XP.
Публикувано на: 12 Юли 2019, 23:09
от iv69
Промених заглавието на темата и съдържанието, така добре ли е?
Добавено преди 8 минути 23 секунди:
iv69 написа: ↑12 Юли 2019, 23:00
Промених заглавието на темата и съдържанието, така добре ли е?
p.s. Предполагам, че няма да се получи някой "бъг" с ефектите , когато трябва едновременно събплъгина дава на играча ХР а пък плъгина дава на играча и ново ниво от тази премия? Тоест , ще изпълнява един път ефектите ?
Редакция на събплъгин за даване на XP.
Публикувано на: 13 Юли 2019, 14:53
от OciXCrom
Отново не виждам информация в заглавието свързана със самата редакция - обясни за каква редакция става дума в заглавието. Недей да пишеш само "редакция на плъгин".
Направих го да не изпълнява ефекта/звука ако 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)
}
}
Редакция на събплъгин за даване на XP.
Публикувано на: 13 Юли 2019, 18:50
от iv69
OciXCrom написа: ↑13 Юли 2019, 14:53
Отново не виждам информация в заглавието свързана със самата редакция - обясни за каква редакция става дума в заглавието. Недей да пишеш само "редакция на плъгин".
Направих го да не изпълнява ефекта/звука ако 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)
}
}
Благодаря, ще тествам .
Добавено преди 1 час 40 минути 43 секунди:
SOUND+SCREEN_FADE за CRXRanks: Give XP Per Minute !
Съблъгина работи много добре! Препоръчвам го всички които ползват OciXCrom's Rank System !!! Ако на някой му се стори много/малко ХР който се дава, или е често/рядко - да си го настройва от редовете:
const XP_FREQ = 30
const XP_AMOUNT = 50
Още веднъж благодаря на Крома за разбирането и любезното отношение!
Заключете темата.
SOUND+SCREEN_FADE за CRXRanks: Give XP Per Minute !
Публикувано на: 13 Юли 2019, 20:05
от OciXCrom
const XP_FREQ = 30
const XP_AMOUNT = 50
Ако искаш, мога да направя и тези настройки да се четат от
RankSystem.ini, или да са кварове, както ти е по-удобно.
SOUND+SCREEN_FADE за CRXRanks: Give XP Per Minute !
Публикувано на: 13 Юли 2019, 21:12
от iv69
OciXCrom написа: ↑13 Юли 2019, 20:05
const XP_FREQ = 30
const XP_AMOUNT = 50
Ако искаш, мога да направя и тези настройки да се четат от
RankSystem.ini, или да са кварове, както ти е по-удобно.
Мисля, че като квари ще е по-лесно за нас, клиентите?! Поне според мене и ако ги направиш да си ги редактираме сами без да бърникаме по кода, ще е супер.
Имам една молба, а ще може ли когато имаш време, да добавиш плъгина в твоята лаборатория - към останалите ти събплъгини за CRXRanksSystem? Полезна добавка стана, много ефектно е и просто така няма да го търсим по заявките тука ?