Заявка за плъгин

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

Re: Заявка за плъгин

Мнение от OciXCrom » 17 Ное 2016, 20:52

Да. Извиква се след plugin_init().

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

new g_pTime

public plugin_init()
{
    // ...
    g_pTime = register_cvar("em_time", "15.0")
}

public plugin_cfg()
    set_task(get_pcvar_float(g_pTime, "play", .flags = "d")) 
тоест пак промените няма да имат ефект. Пак ще се налага рестарт на сървъра за да навлезе промяната в сила.
Под промените да имат ефект имах предвид, че ако cvar-ът се промени в server.cfg или amxx.cfg - да бъде променен. Промяна по време на игра в този случай е ненужна, както е и при доста други плъгини.

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

Re: Заявка за плъгин

Мнение от OciXCrom » 17 Ное 2016, 21:24

Ползвай това:

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

#include <amxmodx>
#include <amxmisc>

#define PLUGIN_VERSION "1.0"

new Array:g_aSounds,
    g_iArraySize

enum
{
    TYPE_INVALID = 0,
    TYPE_WAV,
    TYPE_MP3
}

new g_pTime

public plugin_init()
{
    register_plugin("Map End Music", PLUGIN_VERSION, "OciXCrom")
    g_pTime = register_cvar("mem_time", "15.0")
}

public plugin_cfg()
    set_task(get_pcvar_float(g_pTime), "PlayMusic", .flags = "d")

public plugin_precache()
{
    g_aSounds = ArrayCreate(128, 1)
    fileRead()
}

public plugin_end()
    ArrayDestroy(g_aSounds)

public PlayMusic()
{
    new szSound[128]
    ArrayGetString(g_aSounds, random(g_iArraySize), szSound, charsmax(szSound))
    
    new iType = get_sound_type(szSound)
    client_cmd(0, "%s%s", iType == TYPE_WAV ? "spk " : "mp3 play sound/", szSound)
}

fileRead()
{
    new szConfigsName[256], szFilename[256]
    get_configsdir(szConfigsName, charsmax(szConfigsName))
    formatex(szFilename, charsmax(szFilename), "%s/MapEndMusic.ini", szConfigsName)
    new iFilePointer = fopen(szFilename, "rt")
    
    if(iFilePointer)
    {
        new szData[128]
        
        while(!feof(iFilePointer))
        {
            fgets(iFilePointer, szData, charsmax(szData))
            trim(szData)
            
            switch(szData[0])
            {
                case EOS, ';': continue
                default:
                {
                    switch(get_sound_type(szData))
                    {
                        case TYPE_WAV, TYPE_MP3: precache_sound(szData)
                        case TYPE_INVALID: continue
                    }
                    
                    ArrayPushString(g_aSounds, szData)
                }
            }    
        }
        
        g_iArraySize = ArraySize(g_aSounds)
        fclose(iFilePointer)
    }
}

get_sound_type(szSound[])
{
    if(contain(szSound, ".wav") != -1)
        return TYPE_WAV
    else if(contain(szSound, ".mp3") != -1)
        return TYPE_MP3
        
    return TYPE_INVALID
} 
Звуците се добавят в configs/MapEndMusic.ini:

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

funsounds/sound1.wav
funsounds/sound2.mp3
sound3.mp3
//Edit: вариант №2 - музиката да се пуска когато се покаже scoreboard-ът в края на мапа:

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

#include <amxmodx>
#include <amxmisc>

#define PLUGIN_VERSION "1.0"

new Array:g_aSounds,
    g_iArraySize

enum
{
    TYPE_INVALID = 0,
    TYPE_WAV,
    TYPE_MP3
}

public plugin_init()
{
    register_plugin("Map End Music", PLUGIN_VERSION, "OciXCrom")
    register_event("30", "PlayMusic", "a")
}

public plugin_precache()
{
    g_aSounds = ArrayCreate(128, 1)
    fileRead()
}

public plugin_end()
    ArrayDestroy(g_aSounds)

public PlayMusic()
{
    new szSound[128]
    ArrayGetString(g_aSounds, random(g_iArraySize), szSound, charsmax(szSound))
    
    new iType = get_sound_type(szSound)
    client_cmd(0, "%s%s", iType == TYPE_WAV ? "spk " : "mp3 play sound/", szSound)
}

fileRead()
{
    new szConfigsName[256], szFilename[256]
    get_configsdir(szConfigsName, charsmax(szConfigsName))
    formatex(szFilename, charsmax(szFilename), "%s/MapEndMusic.ini", szConfigsName)
    new iFilePointer = fopen(szFilename, "rt")
    
    if(iFilePointer)
    {
        new szData[128]
        
        while(!feof(iFilePointer))
        {
            fgets(iFilePointer, szData, charsmax(szData))
            trim(szData)
            
            switch(szData[0])
            {
                case EOS, ';': continue
                default:
                {
                    switch(get_sound_type(szData))
                    {
                        case TYPE_WAV, TYPE_MP3: precache_sound(szData)
                        case TYPE_INVALID: continue
                    }
                    
                    ArrayPushString(g_aSounds, szData)
                }
            }    
        }
        
        g_iArraySize = ArraySize(g_aSounds)
        fclose(iFilePointer)
    }
}

get_sound_type(szSound[])
{
    if(contain(szSound, ".wav") != -1)
        return TYPE_WAV
    else if(contain(szSound, ".mp3") != -1)
        return TYPE_MP3
        
    return TYPE_INVALID
} 

Аватар
mount4
Извън линия
Потребител
Потребител
Мнения: 187
Регистриран на: 03 Ное 2016, 19:54
Местоположение: Варна
Обратна връзка:

Re: Заявка за плъгин

Мнение от mount4 » 17 Ное 2016, 21:25

готово оправих го.

едит:

до автора на темата: използвай това на ocixrom защото е по-гъвкаво, можеш да си редактираш звуците в .ini файл без да ти се налага да прекомпилирваш. И аз бих го направил така ама не се сетих понеже редактирах онзи код който ме подведе.
94.190.190.195:27015 -> Изображение <-- Runemod here !
94.190.190.195:27017 -> Изображение

Segmentation fault Изображение <-- Opera browser !

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

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

Кой е на линия

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