Русское сообщество по скриптингу

set_task amx_menu_naminations

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

set_task amx_menu_naminations

Сообщение ЕРНАР » 19 окт 2020, 23:30

здаравствуйте сделал csdm сервер дневные и ночные карты через set_task
amx_task 00:00 "exec server-night.cfg" t
amx_task 00:01 "exec server-night.cfg" t
amx_task 09:00 "exec server.cfg" t
amx_task 09:01 "exec server.cfg" t
mapcycle.txt дневные карты отсюда беруться
mapcycle-night.txt ночные карты
проблема в том плагин amx_menu_for_nomination не видит карты,можете помочь сделать чтоб меню наминаций после 00:00 mapcycle-night.txt,а после 09:00 вот отсюда брал для номинации карты mapcycle.txt через set_task
Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>

#define PLUGIN    "Menu for Nomination"
#define VERSION    "1.0"
#define    AUTHOR    "AndrewZ"

#define PDATA_SAFE            2
#define OFFSET_LINUX        5
#define OFFSET_CSMENUCODE    205

new g_cvar_Mode, g_cvar_File

public plugin_init
()
{
  
    register_plugin
( PLUGIN, VERSION, AUTHOR )
    
    register_clcmd
( "say maps",             "clcmd_MapsMenu",    ADMIN_ALL, "- open menu for map nomination" )
    register_clcmd( "say /maps",             "clcmd_MapsMenu",    ADMIN_ALL, "- open menu for map nomination" )
    register_clcmd( "say_team /maps",         "clcmd_MapsMenu",    ADMIN_ALL, "- open menu for map nomination" )
    register_clcmd( "maps_menu",             "clcmd_MapsMenu",    ADMIN_ALL, "- open menu for map nomination" )
    register_clcmd( "amx_nomination_menu",     "clcmd_MapsMenu",    ADMIN_ALL, "- open menu for map nomination" )
    
    g_cvar_Mode 
= register_cvar( "amx_mfn_mode", "1" )             // 0 = OFF; 1 = File; 2 = Folder.
    g_cvar_File = register_cvar( "amx_mfn_file", "mapcycle.txt" )     // File with maps list in "configs" dir.
    
    register_dictionary
( "amx_menu_for_nomination.txt" )    
}

public clcmd_MapsMenu( id )
{
    new iCvarMode = get_pcvar_num( g_cvar_Mode )

    if( !is_user_connected( id ) || !iCvarMode )
        return PLUGIN_HANDLED
        
    new szTemp
[ 64 ], iMenu
    
    formatex
( szTemp, charsmax( szTemp ), "\y%L\R", id, "MFN_MENU_TITLE" )
    iMenu = menu_create( szTemp, "handler_MapsMenu" )
        
    if
( iCvarMode == 1 )
    {
        new szCvarFile[ 32 ], iMapsFile
        get_pcvar_string
( g_cvar_File, szCvarFile, charsmax( szCvarFile ) )
        
        get_configsdir
( szTemp, charsmax( szTemp ) )
        format( szTemp, charsmax( szTemp ), "%s/%s", szTemp, szCvarFile )
        
        iMapsFile 
= fopen( szTemp, "rt" )
        
        if
( iMapsFile )
        {
            while( !feof( iMapsFile ) )
            {
                fgets( iMapsFile, szTemp, charsmax( szTemp ) )
                
                trim
( szTemp )
                
                if
( is_map_valid( szTemp ) )
                    menu_additem( iMenu, szTemp, "", ADMIN_ALL )
            }
            
            fclose
( iMapsFile )
        }
    }
    else
    
{
        new iMapsDir
        
        iMapsDir 
= open_dir( "maps", szTemp, charsmax( szTemp ) )
        
        if
( iMapsDir )
        {
            new iLen
            
            while
( next_file( iMapsDir, szTemp, charsmax( szTemp ) ) )
            {
                iLen = strlen( szTemp )
                
                if
( iLen > 4 && equali( szTemp[ iLen - 4 ], ".bsp", 4 ) )
                {
                    szTemp[ iLen - 4 ] = '^0'
                    
                    if
( is_map_valid( szTemp ) )
                        menu_additem( iMenu, szTemp, "", ADMIN_ALL )
                }
            }
            
            close_dir
( iMapsDir )
        }
    }
    
    formatex
( szTemp, charsmax( szTemp ), "%L", id, "MFN_MENU_BACK" )
    menu_setprop( iMenu, MPROP_BACKNAME, szTemp )
    
    formatex
( szTemp, charsmax( szTemp ), "%L", id, "MFN_MENU_NEXT" )
    menu_setprop( iMenu, MPROP_NEXTNAME, szTemp )
    
    formatex
( szTemp, charsmax( szTemp ), "%L", id, "MFN_MENU_EXIT" )
    menu_setprop( iMenu, MPROP_EXITNAME, szTemp )
    
    menu_setprop
( iMenu, MPROP_NUMBER_COLOR, "\w" )
    
    if
( pev_valid( id ) == PDATA_SAFE )
        set_pdata_int( id, OFFSET_CSMENUCODE, 0, OFFSET_LINUX )
    
    menu_display
( id, iMenu, 0 )
    
    return PLUGIN_HANDLED
}
    
public handler_MapsMenu
( id, iMenu, iItem )
{
    if( iItem == MENU_EXIT )
    {
        menu_destroy( iMenu )
        
        return PLUGIN_HANDLED
    
}
    
    new szData
[ 1 ], szName[ 32 ], iAccess, iCallback
    menu_item_getinfo
( iMenu, iItem, iAccess, szData, charsmax( szData ), szName, charsmax( szName ), iCallback )
    
    client_cmd
( id, "say %s", szName )
    
    menu_destroy
( iMenu )
    
    return PLUGIN_HANDLED
}
Аватара пользователя
ЕРНАР
 
Сообщения: 21
Зарегистрирован: 10 авг 2020, 21:44
Благодарил (а): 6 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше месяца
Языки программирования: Я ничего не знаю

Re: set_task amx_menu_naminations

Сообщение Qruker » 20 окт 2020, 09:33

Если вы говорите про реальное время, то никакие здесь set_task-и не помогут. Используйте get_time и переводите в целые числа, а после чего сравнивайте.

Если вдруг я вам дал не корректный ответ, то дайте мне корректный вопрос.
Skills are no more important than reason.
Аватара пользователя
Qruker
 
Сообщения: 21
Зарегистрирован: 27 авг 2019, 18:19
Благодарил (а): 2 раз.
Поблагодарили: 4 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn & AmxModX (CS 1.6; SA:MP)
Java
JavaScript (+HTML/CSS)
Python
C# (+Unity)

Re: set_task amx_menu_naminations

Сообщение ЕРНАР » 20 окт 2020, 19:48

Qruker писал(а):Если вы говорите про реальное время, то никакие здесь set_task-и не помогут. Используйте get_time и переводите в целые числа, а после чего сравнивайте.

Если вдруг я вам дал не корректный ответ, то дайте мне корректный вопрос.

как можно сделать чтоб взял список карт mapcycle.txt
просто он берет список карт с maps.ini
Аватара пользователя
ЕРНАР
 
Сообщения: 21
Зарегистрирован: 10 авг 2020, 21:44
Благодарил (а): 6 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше месяца
Языки программирования: Я ничего не знаю

Re: set_task amx_menu_naminations

Сообщение Qruker » 21 окт 2020, 07:22

ЕРНАР, возможно конфликт между плагинами связанные с командами /maps
Удалите такие-же плагины, которые используют эти команды и проверьте. Протестил у себя, работает благополучно.
Skills are no more important than reason.
Аватара пользователя
Qruker
 
Сообщения: 21
Зарегистрирован: 27 авг 2019, 18:19
Благодарил (а): 2 раз.
Поблагодарили: 4 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn & AmxModX (CS 1.6; SA:MP)
Java
JavaScript (+HTML/CSS)
Python
C# (+Unity)


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 26