VIP Plugin - корекция при задаване на флагове

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
Guardian Angel
Извън линия
VIP
VIP
Мнения: 186
Регистриран на: 18 Окт 2016, 02:00
Местоположение: Петрич
Се отблагодари: 1 път
Получена благодарност: 22 пъти

Re: VIP Plugin - корекция при задаване на флагове

Мнение от Guardian Angel » 20 Мар 2017, 20:29

Да и двата.

Аватар
JustInCase
Извън линия
Потребител
Потребител
Мнения: 582
Регистриран на: 14 Окт 2016, 23:31
Се отблагодари: 4 пъти
Получена благодарност: 15 пъти

Re: VIP Plugin - корекция при задаване на флагове

Мнение от JustInCase » 20 Мар 2017, 20:32

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <colorchat>

#define TASK_SAVE 333444

new g_iOldFlags[33], g_pStart, g_pEnd, g_pFlags

public plugin_init()
{
    register_plugin("Happy VIP Hour", "1.0", "OciXCrom @ amxx-bg.info/forum")
    register_logevent("OnRoundStart", 2, "1=Round_Start")
    
    g_pStart = register_cvar("hfh_start", "24")
    g_pEnd = register_cvar("hfh_end", "9")
    g_pFlags = register_cvar("hfh_flag", "bo")
}

public client_putinserver(id)
    set_task(3.0, "SaveFlags", id + TASK_SAVE)

public SaveFlags(id)
{
    id -= TASK_SAVE
    g_iOldFlags[id] = get_user_flags(id)
}

public OnRoundStart()
{
    new iPlayers[32], iPnum,
    iStart = get_pcvar_num(g_pStart),
    iEnd = get_pcvar_num(g_pEnd)
    
    get_players(iPlayers, iPnum)
    
    if(is_happy_hour(iStart, iEnd))
    {
        for(new i, iPlayer = iPlayers[i], iFlags = get_pcvar_flags(g_pFlags); i < iPnum; i++)
        {
            ColorChat(iPlayer, RED, "^4[HAPPY HOUR] ^1Free VIP is ^4ACTIVE. ^3All players are VIPs now")
            ColorChat(iPlayer, RED, "^4[HAPPY HOUR] ^1Free VIP is ^4ACTIVE. ^3All players are VIPs now")
            ColorChat(iPlayer, RED, "^4[HAPPY HOUR] ^1Free ^4V.I.P^1 --- START : ^3%i:00 ^4| ^1END : ^3%i:00", iStart, iEnd)
            custom_set_flags(iPlayer, iFlags)
        }
    }
    else
    {
        for(new i, iPlayer; i < iPnum; i++)
        {
            iPlayer = iPlayers[i]
            custom_set_flags(iPlayer, g_iOldFlags[iPlayer])
        }
    }
    
    server_cmd("amx_reloadadmins")
}     

bool:is_happy_hour(const iStart, const iEnd) {
    new iHour; time(iHour)
    return bool:(iStart < iEnd ? (iStart <= iHour < iEnd) : (iStart <= iHour || iHour < iEnd))
}
custom_set_flags( iPlayer, iFlags ) {
    remove_user_flags( iPlayer, g_iOldFlags[ iPlayer ] );
    set_user_flags( iPlayer, iFlags );
}
Пробвай. само за първия да видим дали така ще стане
MANSION - HNS : 45.144.155.99:27026
ONLINE

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Re: VIP Plugin - корекция при задаване на флагове

Мнение от OciXCrom » 20 Мар 2017, 21:18

Бо-же... Не знаете ли, че amx_reloadadmins премахва флаговете зададени със set_user_flags?

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <cromchat>

#define CHECK_FREQ 15.0

new g_pStart, g_pEnd, g_pFlags
new bool:g_bVIP[33]

public plugin_init()
{
    register_plugin("Happy VIP Hour", "1.0", "OciXCrom @ amxx-bg.info/forum")
   
    g_pStart = register_cvar("hh_start", "0")
    g_pEnd = register_cvar("hh_end", "9")
    g_pFlags = register_cvar("hh_flag", "bo")
    
    set_task(CHECK_FREQ, "CheckHappyHour", .flags = "b")
    CC_SetPrefix("&x04[HAPPY HOUR]")
}

public client_putinserver(id)
    g_bVIP[id] = false

public CheckHappyHour()
{
    new iPlayers[32], iPnum
    get_players(iPlayers, iPnum)
    
    new iStart = get_pcvar_num(g_pStart),
        iEnd = get_pcvar_num(g_pEnd)
        
    if(is_happy_hour(iStart, iEnd))
    {
        CC_SendMessage(0, "Free VIP is &x04ACTIVE. &x03All players are VIPs now")
        CC_SendMessage(0, "Free VIP is &x04ACTIVE. &x03All players are VIPs now")
        CC_SendMessage(0, "Free &x04V.I.P&x01 --- START : &x03%i:00 &x04| &x01END : &x03%i:00", iStart, iEnd)
        
        for(new iFlags = get_pcvar_flags(g_pFlags), iPlayer, i; i < iPnum; i++)
        {
            iPlayer = iPlayers[i]
            
            if(!g_bVIP[iPlayer])
            {
                g_bVIP[iPlayer] = true
                set_user_flags(iPlayers[i], iFlags)
            }
        }
    }
    else
    {
        for(new iFlags = get_pcvar_flags(g_pFlags), iPlayer, i; i < iPnum; i++)
        {
            if(g_bVIP[iPlayer])
            {
                g_bVIP[iPlayer] = false
                remove_user_flags(iPlayers[i], iFlags)
            }
        }
    }
}

bool:is_happy_hour(const iStart, const iEnd)
{
    new iHour; time(iHour)
    return bool:(iStart < iEnd ? (iStart <= iHour < iEnd) : (iStart <= iHour || iHour < iEnd))
}
И... Wtf? Аз чак сега забелязах какви стойности имат кваровете за start и end. Кой е този час 24?! С тази стойност happy hour няма да е активен никога. Да не говорим, че са направени наобратно. Start трябва да е 0, a end 9. Промених имената на кваровете за да се сменят и в сървъра.

Аватар
Guardian Angel
Извън линия
VIP
VIP
Мнения: 186
Регистриран на: 18 Окт 2016, 02:00
Местоположение: Петрич
Се отблагодари: 1 път
Получена благодарност: 22 пъти

Re: VIP Plugin - корекция при задаване на флагове

Мнение от Guardian Angel » 20 Мар 2017, 22:41

Винаги е работело с тия стойности. Работи от 23:00 до 9:00 сутринта и плъгина работеше със стойност 23 за старт защото при стойност 11 се стартира от 11 на обяд а при 23 си почва когато трябва. По- късно като се прибера ще тествам. Да попитам плъгините така работят само за админи ли? Защото при обикновен играч без флагове задаваше флагове (dz) а на админски ник никакви флагове не добавяше. След около час ще тествам.

Аватар
JustInCase
Извън линия
Потребител
Потребител
Мнения: 582
Регистриран на: 14 Окт 2016, 23:31
Се отблагодари: 4 пъти
Получена благодарност: 15 пъти

Re: VIP Plugin - корекция при задаване на флагове

Мнение от JustInCase » 20 Мар 2017, 22:57

OciXCrom™ написа:Бо-же... Не знаете ли, че amx_reloadadmins премахва флаговете зададени със set_user_flags?
Ако имаше кой да ни каже можеше и да знаем ..
MANSION - HNS : 45.144.155.99:27026
ONLINE

Аватар
Guardian Angel
Извън линия
VIP
VIP
Мнения: 186
Регистриран на: 18 Окт 2016, 02:00
Местоположение: Петрич
Се отблагодари: 1 път
Получена благодарност: 22 пъти

Re: VIP Plugin - корекция при задаване на флагове

Мнение от Guardian Angel » 21 Мар 2017, 01:12

Някой тествал ли го е ?? Няма никаква промяна, просто не добавя флаговете. При обикновен играч без права флаговете стават "dz" а при админски ник няма абсолютно никаква промяна. При положение че флаговете които са зададени да се добавят са "bo".

Аватар
TheRedShoko
Извън линия
Модератор
Модератор
Мнения: 1016
Регистриран на: 06 Окт 2016, 07:42
Местоположение: Бургас
Се отблагодари: 5 пъти
Получена благодарност: 84 пъти

Re: VIP Plugin - корекция при задаване на флагове

Мнение от TheRedShoko » 21 Мар 2017, 01:29

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <cromchat>

#define CHECK_FREQ 15.0

new g_pStart, g_pEnd, g_pFlags
new bool:g_bVIP[33]

public plugin_init()
{
    register_plugin("Happy VIP Hour", "1.0", "OciXCrom @ amxx-bg.info/forum")
    
    g_pStart = register_cvar("hh_start", "0")
    g_pEnd = register_cvar("hh_end", "9")
    g_pFlags = register_cvar("hh_flag", "bo")
    
    set_task(CHECK_FREQ, "CheckHappyHour", .flags = "b")
    CC_SetPrefix("&x04[HAPPY HOUR]")
}

public client_putinserver(id)
    g_bVIP[id] = false

public CheckHappyHour()
{
    new iPlayers[32], iPnum
    get_players(iPlayers, iPnum)
    
    new iStart = get_pcvar_num(g_pStart),
    iEnd = get_pcvar_num(g_pEnd);
    
    new szFlags[24];
    get_pcvar_string(g_pFlags, szFlags, charsmax(szFlags));
    
    if(is_happy_hour(iStart, iEnd))
    {
        CC_SendMessage(0, "Free VIP is &x04ACTIVE. &x03All players are VIPs now")
        CC_SendMessage(0, "Free VIP is &x04ACTIVE. &x03All players are VIPs now")
        CC_SendMessage(0, "Free &x04V.I.P&x01 --- START : &x03%i:00 &x04| &x01END : &x03%i:00", iStart, iEnd)
        
        for(new iPlayer, i; i < iPnum; i++)
        {
            iPlayer = iPlayers[i]
            
            if(!g_bVIP[iPlayer])
            {
                g_bVIP[iPlayer] = true
                set_user_flags(iPlayers[i], read_flags(szFlags))
            }
        }
    }
    else
    {
        for(new iPlayer, i; i < iPnum; i++)
        {
            if(g_bVIP[iPlayer])
            {
                g_bVIP[iPlayer] = false
                remove_user_flags(iPlayers[i], read_flags(szFlags))
            }
        }
    }
}

bool:is_happy_hour(const iStart, const iEnd)
{
    new iHour; time(iHour)
    return bool:(iStart < iEnd ? (iStart <= iHour < iEnd) : (iStart <= iHour || iHour < iEnd))
}
 
Пробвай.

Аватар
Guardian Angel
Извън линия
VIP
VIP
Мнения: 186
Регистриран на: 18 Окт 2016, 02:00
Местоположение: Петрич
Се отблагодари: 1 път
Получена благодарност: 22 пъти

Re: VIP Plugin - корекция при задаване на флагове

Мнение от Guardian Angel » 21 Мар 2017, 01:39

Евала! Страшен си. Ако може да оправиш и втория код ще съм ти много благодарен.

Аватар
TheRedShoko
Извън линия
Модератор
Модератор
Мнения: 1016
Регистриран на: 06 Окт 2016, 07:42
Местоположение: Бургас
Се отблагодари: 5 пъти
Получена благодарност: 84 пъти

Re: VIP Plugin - корекция при задаване на флагове

Мнение от TheRedShoko » 21 Мар 2017, 02:02

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <hamsandwich>
#include <csx>
 
new g_pMinRank, g_pFlags
 
public plugin_init()
{
    register_plugin("VIP Rank", "1.0", "OciXCrom @ amxx-bg.info/forum")
    register_message(get_user_msgid("ScoreAttrib"), "MessageScoreAttrib")
    RegisterHam(Ham_Spawn, "player", "OnPlayerSpawn", 1)
    g_pMinRank = register_cvar("vip_minrank", "3")
    g_pFlags = register_cvar("vip_flags", "bos")
}
 
public MessageScoreAttrib(iMsgId, iDest, iReceiver)
{
    new id = get_msg_arg_int(1)
   
    if(get_user_rankpos(id) <= get_pcvar_num(g_pMinRank))
        set_msg_arg_int(2, ARG_BYTE, (1<<2))
}
 
public OnPlayerSpawn(id)
{
    if(is_user_connected(id) && get_user_rankpos(id) <= get_pcvar_num(g_pMinRank))
    {
        new szFlags[24];
        get_pcvar_string(g_pFlags, szFlags, charsmax(szFlags));
        set_user_flags(id, read_flags(szFlags));
}

get_user_rankpos(id)
{
    static iStats[8], iBodyHits[8]
    return get_user_stats(id, iStats, iBodyHits)
}
Пробвай.
Не мога да разбера кой е казал, че get_pcvar_flags връща stting-a от cvar-a като bitsum от флагове... get_pcvar_flags връща флаговете на cvara, FCVAR_SERVER etc.

Аватар
Guardian Angel
Извън линия
VIP
VIP
Мнения: 186
Регистриран на: 18 Окт 2016, 02:00
Местоположение: Петрич
Се отблагодари: 1 път
Получена благодарност: 22 пъти

Re: VIP Plugin - корекция при задаване на флагове

Мнение от Guardian Angel » 21 Мар 2017, 02:09

При компилацията ми връща грешки.

Код за потвърждение: Избери целия код

//// vip_rank.sma
\cstrike\addons\amxmodx\scripting\vip_rank.sma(20) : error 017: undefined symbol "get_user_rankpos"
\cstrike\addons\amxmodx\scripting\vip_rank.sma(22) : warning 204: symbol is assigned a value that is never used: "id"
\cstrike\addons\amxmodx\scripting\vip_rank.sma(26) : error 017: undefined symbol "get_user_rankpos"
\cstrike\addons\amxmodx\scripting\vip_rank.sma(33) : warning 217: loose indentation
\cstrike\addons\amxmodx\scripting\vip_rank.sma(33) : error 017: undefined symbol "get_user_rankpos"
\cstrike\addons\amxmodx\scripting\vip_rank.sma(37) : error 001: expected token: "}", but found "-end of file-"
//
// 4 Errors.
// Could not locate output file compiled\vip_rank.amx (compile failed).
Също ако може да кажеш как да направя съобщенията от 1вия плъгин дето съобщават че е активен FREE VIP да бъдат на по-голям период от време защото спамят доста в чата. Излизат непрекъснато.

Заключено
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: Bing [Bot], Google [Bot] и 45 госта