Auto Clear Stats
Публикувано на: 12 Окт 2016, 17:00
Auto Clear Stats
☄ Описание- Плъгинът автоматично рестартира статистиките на играчите в определен ден от месеца (по подразбиране 1). Денят може да се промени чрез cvar-а acs_day.
Аз не бих ползвал такъв плъгин който има не само ден, но и месец и година... И ще се "обоснова" : ТАКА ПЛЪГИНА СТАВА ЗА ЕДНОКРАТНА УПОТРЕБА. Всеки пък трябва да отварям кода да меня датата и да го подменям... В момента както си е направен е супер, сложих го и мисля , че ще ми върши работа !
Това, което си направил е пълна глупост. Не всяка проверка може да бъде заменена със switch!JackEyedJones написа: ↑25 Сеп 2018, 21:26Може би нещо като това.
Oт тук >>> new const g_iACSMonths[] = { 1, 12 } си редактираш месеците.
Ако не работи, пиши в темата.
crx_acs_months.sma
Код за потвърждение: Избери целия код
#include <amxmodx>
new g_pCvar, g_pMonths;
public plugin_init()
{
register_plugin("Auto Clear Stats", "2.0", "HackForums.Ru // Remake by OciXCrom")
g_pCvar = register_cvar("acs_lastmonth", "0")
g_pMonths = register_cvar("acs_months", "1 4 7 10")
}
public plugin_cfg()
{
new szMonth[5], szMonths[32], iMonths[12], iMonthsCount;
get_pcvar_string(g_pMonths, szMonths, charsmax(szMonths));
while (strlen(szMonths) > 0)
{
#if AMXX_VERSION_NUM < 183
strbreak(szMonths, szMonth, charsmax(szMonth), szMonths, charsmax(szMonths));
#else
argbreak(szMonths, szMonth, charsmax(szMonth), szMonths, charsmax(szMonths));
#endif
iMonths[iMonthsCount++] = str_to_num(szMonth);
}
get_time("%m", szMonth, charsmax(szMonth))
new iMonth = str_to_num(szMonth)
for (new i = 0; i < iMonthsCount; i++)
{
if (iMonths[i] == iMonth)
{
if (get_pcvar_num(g_pCvar) != iMonth)
{
server_cmd("csstats_reset 1")
server_exec()
set_pcvar_num(g_pCvar, iMonth)
}
break
}
}
}
Чудя се дали потребителите схващат тези неща за които губиш толкова много време в обяснения.TheRedShoko ReShoko написа:
Да правиш всяка една променлива глобална и да я използваш само на 1 място е като да правиш всяка 1 променлива static. Заема памет, която не трябва. В конкретния случай ще запази памет за string & number (макар и малко), която е безполезна, защото ще се използват само в началото на мапа.
Когато променяш логиката на кода, замисли се дали тези проверки все още важат. В този случай - трябва да се промени и стойността на cvar-а, за да работи правилно. Ако все още приема стойности 0 и 1, ако 2 месеца подред трябва да рестартира, няма да сработи правилно.
Cvars са с цел улеснение. Затова заместването на cvar с hardcoded масив не е особено добра практика. Всеки път, когато искаш да го променяш ще трябва да прекомпилира...