Biohazard v2.00 Beta 3b + BIOads_anticamp

Статус
В этой теме нельзя размещать новые ответы.

met

Сообщения
171
Реакции
42
Ошибка
BIOads_anticamp плагин убивает всех живых зомби в конце раунда, после этого сервер падает
ОС
Linux
Amx Mod X
AMX Mod X 1.8.3-Re (http://www.amxmodx.org)
Authors:
David "BAILOPAN" Anderson, Pavol "PM OnoTo" Marko
Felix "SniperBeamer" Geyer, Jonny "Got His Gun" Bergstrom
Lukasz "SidLuke" Wlasinski, Christian "Basic-Master" Hammacher
Borja "faluco" Ferrer, Scott "DS" Ehlert

Authors (ReHLDS Team):
"Adidasman", "s1lent"
Compiled: Dec 24 2016 15:59:38
Build ID: 7
Core mode: JIT + ASM32
Билд
Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
ReHLDS version: 3.4.0.668-dev
Build date: 09:47:42 Sep 29 2018 (1631)
Build from: https://github.com/dreamstalker/rehlds/commit/89be216
ReGamedll
ReGameDLL version: 5.5.0.290-dev
Build date: 15:17:10 Jan 29 2018
Build from: https://github.com/s1lentq/ReGameDLL_CS/commit/ff3891d
Версия Metamod
Metamod-r v1.3.0.110, API (5:13)
Metamod-r build: 01:14:08 Jan 30 2018
Metamod-r from: https://github.com/theAsmodai/metamod-r/commit/082b8c4
Список метамодулей
Список загруженных модулей:
Наименовани Верси Автор Состо
nVault 1.8.3-Re AMX Mod X Dev Team running
CStrike 1.8.3-Re AMX Mod X Dev Team running
CSX 1.8.3-Re AMX Mod X Dev Team running
ReAimDetector 0.2.2 ReHLDS Team running
MySQL 1.8.3-Re AMX Mod X Dev Team running
FakeMeta 1.8.3-Re AMX Mod X Dev Team running
GeoIP 1.8.3-Re AMX Mod X Dev Team running
Ham Sandwich 1.8.3-Re AMX Mod X Dev Team running
Engine 1.8.3-Re AMX Mod X Dev Team running
ReAPI 5.5.0.148- Asmodai & s1lent running
Fun 1.8.3-Re AMX Mod X Dev Team running
RegEx 1.8.3-Re AMX Mod X Dev Team running
Всего 12 модулей
Список плагинов
Currently loaded plugins:
name version author file status
[ 1] AMXBans: Core Gm 1.6 Larte Team amxbans_core.am running
[ 2] AMXBans: Main Gm 1.6 Larte Team amxbans_main.am running
[ 3] Admin Base 1.8.3-Re AMXX Dev Team admin.amxx stopped
[ 4] Admin Commands 1.8.3-Re AMXX Dev Team admincmd.amxx running
[ 5] Menus Front-End 1.8.3-Re AMXX Dev Team menufront.amxx running
[ 6] Commands Menu 1.8.3-Re AMXX Dev Team cmdmenu.amxx running
[ 7] Players Menu 1.8.3-Re AMXX Dev Team plmenu.amxx running
[ 8] Maps Menu 1.8.3-Re AMXX Dev Team mapsmenu.amxx running
[ 9] Stats Configuration 1.8.3-Re AMXX Dev Team statscfg.amxx running
[ 10] No RoundEnd Money Bonu 0.0.1 ConnorMcLeod no_roundend_mon running
[ 11] Unlimited BP ammo 0.1 VaSaKed Unlimited_BP_am running
[ 12] Biohazard 2.00 Beta cheap_suit biohazard.amxx running
[ 13] zombie radar 0.3 cheap_suit bio_radar.amxx running
[ 14] AMXBans: Freeze Gm 1.6 Larte Team amxbans_freeze. running
На сервере установлен классический Biohazard v2.00 Beta 3b без изменений.

В логах за всё время было только это:

L 01/23/2019 - 10:03:11: String formatted incorrectly - parameter 7 (total 6)
L 01/23/2019 - 10:03:11: [AMXX] Displaying debug trace (plugin "admincmd.amxx", version "1.8.3-Re")
L 01/23/2019 - 10:03:11: [AMXX] Run time error 25: parameter error
L 01/23/2019 - 10:03:11: [AMXX] [0] admincmd.sma::cmdPlugins (line 971)

Но странным образом само собой исчезло.

После перехода на ReHLDS возникло несколько проблем:

1. BIOads_anticamp плагин убивает всех живых зомби в конце раунда, после этого сервер падает. На HLDS всё работало нормально без падений.
Его пришлось отключить - поэтому в списке плагинов его нет, но когда он был включен, было написано running и в логах ничего не было.

Код:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <biohazard>

#define PLUGIN "BIOads_anticamp"
#define VERSION "1.4"
#define AUTHOR "VaSaKed"

new cvar_showsurvivors

public plugin_init() {
    
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_event("SendAudio", "event_round_end", "a", "2=%!MRAD_ctwin", "2=%!MRAD_rounddraw")
    cvar_showsurvivors= register_cvar("ba_showsurvivors", "1")
}


public event_round_end()
{
    static Float:lastDone
    
    if( get_gametime()-lastDone < 10.0 )
        return PLUGIN_CONTINUE
    
    new players[32], survivors[32], zombies[32], playersNum, zombNum, survNum, i, id
    get_players(players, playersNum, "a")
    
    for(i=0; i<playersNum; i++)
    {
        id = players[i]
        
        switch(is_user_zombie(id))
        {
            case 1: zombies[zombNum++]   = id
            case 0: survivors[survNum++] = id
        }
        
    }
    
    for(i=0; i<playersNum; i++)
    {
        id = players[i]
        if( is_user_zombie(id) && survNum)
        {
            client_print(id, print_chat, "[BIOSCAN] Result: You've starved to death!" )
            user_kill(id, 1)
        }
    }
    
    if(get_pcvar_num(cvar_showsurvivors) && zombNum && survNum && survNum < 8)
        show_players(survivors,survNum)
    
    lastDone = get_gametime()
    return PLUGIN_CONTINUE
}

public show_players(const players[],const playersNum)
{
    new i, nameString[256]
    
    formatex(nameString, 256, "- Our Survivors -      ^n^n")
    for(i=0; i<playersNum;i++)
    {
        new name[34]
        get_user_name(players[i],name,33)
        if(i != (playersNum -1))
            strcat(name, "^n",33)
        strcat(nameString,name,256)
    }
    
    set_hudmessage(150, 200, 255, 1.0, -1.0)
    show_hudmessage(0, nameString)
    
}

2. На HLDS стоял плагин, который отключал стандартное начисление средств по окончанию раунда: no_roundend_money_bonus.amxx. На ReHLDS он не работает.

Код:
#include <amxmodx>
    #include <fakemeta>
    #include <hamsandwich>
      
    #define PLUGIN "No RoundEnd Money Bonus"
    #define VERSION "0.0.1"
      
    const m_iAccount = 115
      
    new bool:g_bIsRestarting
    new bool:g_bIsNewRound
    new gmsgMoney
    new g_iNewRoundPlayerMoney[33]
      
    public plugin_init()
    {
            register_plugin( PLUGIN, VERSION, "ConnorMcLeod" )
            
            register_event("HLTV", "Event_HLTV_New_Round", "a", "1=0", "2=0")
            register_event("TextMsg", "Event_TextMsg_Restart", "a", "2&#Game_C", "2&#Game_w")
            register_forward(FM_PlaybackEvent, "OnPlaybackEvent_Post", true)
            RegisterHam(Ham_Spawn, "player", "OnCBasePlayer_Spawn_Post", true)
            
            gmsgMoney = get_user_msgid("Money")
    }
      
    public Event_TextMsg_Restart()
    {
            g_bIsRestarting = true
    }
      
    public Event_HLTV_New_Round()
    {
            if( g_bIsRestarting )
            {
                    g_bIsRestarting = false
                    return
            }
            
            g_bIsNewRound = true
            set_msg_block(gmsgMoney, BLOCK_SET)
            
            new players[32], num, id
            get_players(players, num, "h")
            for(--num; num>=0; num--)
            {
                    id = players[num]
                    g_iNewRoundPlayerMoney[id] = get_pdata_int(id, m_iAccount)
            }
    }
      
    public OnCBasePlayer_Spawn_Post( id )
    {
            if( g_bIsNewRound && is_user_connected(id) )
            {
                    set_pdata_int(id, m_iAccount, g_iNewRoundPlayerMoney[id])
            }
    }
      
    public OnPlaybackEvent_Post()
    {
            if( g_bIsNewRound )
            {
                    g_bIsNewRound = false
                    set_msg_block(gmsgMoney, BLOCK_NOT)
                    
                    /* update the player's hud */
                    new players[32], num, id
                    get_players(players, num, "h")
                    for(--num; num>=0; num--)
                    {
                            id = players[num]
                            message_begin(MSG_ONE, gmsgMoney, _, id)
                            write_long(g_iNewRoundPlayerMoney[id])
                            write_byte(0)
                            message_end()
                    }
            }
    }

P.S. может посоветуете какой-нибудь moneymanager, где можно изменить: вознаграждение за победу, за проигрыш, за убийство (желательно с разных оружий по-разному), за инфекцию, за нанесённый урон (желательно с разных оружий по-разному)

3. Плагин bio_radar работает некорректно. Плагин должен отображать последнего выжившего человека красной точкой на радаре, вместо этого он отображает последнего зомби. И у последнего зомби на радаре отображается красной точкой он сам.
1548234771585.png


Код:
#include <amxmodx>
#include <fakemeta>
#include <xs>
#tryinclude <biohazard>

#if !defined _biohazard_included
        #assert Biohazard functions file required!
#endif

#define TASKID_CHECK 124
#define TASKID_RADAR 531

new cvar_radar, g_maxplayers
public plugin_init()
{
    register_plugin("zombie radar", "0.3", "cheap_suit")
    is_biomod_active() ? plugin_init2() : pause("ad")
}

public plugin_init2()
{
    register_event("HLTV", "event_newround", "a", "1=0", "2=0")
    register_event("Damage", "event_damage", "b")
    cvar_radar = register_cvar("bh_zombie_radar", "1")
    g_maxplayers = get_maxplayers()
}

public event_newround()
{
    remove_task(TASKID_CHECK)
    remove_task(TASKID_RADAR)
}

public client_disconnect(id)
{
    remove_task(TASKID_CHECK)
    set_task(1.0, "task_check", TASKID_CHECK)
}

public event_damage(id)
{
    if(get_user_health(id) < 1 && !is_user_zombie(id))
    {
        remove_task(TASKID_CHECK)
        set_task(1.0, "task_check", TASKID_CHECK)
    }
}

public event_infect(victim, attacker)
{
    if(get_pcvar_num(cvar_radar))
    {
        remove_task(TASKID_CHECK)
        set_task(1.0, "task_check", TASKID_CHECK)
    }
}

public task_check()
{
    static survivor; survivor = last_survivor()
    if(survivor)
    {
        static params[1]; params[0] = survivor
        set_task(1.0, "task_radar", TASKID_RADAR, params, 1)
    }
}

public task_radar(params[])
{
    static id; id = params[0]
    if(!is_user_alive(id))
    {
        static msg_bombpickup
        if(!msg_bombpickup) msg_bombpickup = get_user_msgid("BombPickup")
        
        message_begin(MSG_ALL, msg_bombpickup)
        message_end()
        
        return
    }

    static origin[3]
    get_user_origin(id, origin)
    
    static msg_bombdrop
    if(!msg_bombdrop) msg_bombdrop = get_user_msgid("BombDrop")
    
    message_begin(MSG_ALL, msg_bombdrop)
    write_coord(origin[0])
    write_coord(origin[1])
    write_coord(origin[2])
    write_byte(0)
    message_end()
    
    set_task(0.5, "task_radar", TASKID_RADAR, params, 1)
}

stock last_survivor()
{
    static id, count, survivor[33]; count = 0
    for(id = 1; id <= g_maxplayers; id++) if(is_user_alive(id) && !is_user_zombie(id)) survivor[count++] = id
    return count == 1 ? survivor[0] : 0
}

4. Флэшки раньше работали корректно, теперь после броска флэшки зомби становятся невидимыми на время действия флэшки, но при этом их самих слепит.


// Flashbangs only blind zombies.
bh_flashbang 1

Сторонних плагинов, которые изменяют работу флэшки нет, только в самом Biohazard моде.

5. Люди стали помирать в начале раунда на респаунах при высоком онлайне, хотя на каждой карте как минимум 16/16 респаунов и все установлены корректно (не в текстурах, не рядом с ними, и не рядом с другими респавнами). Половина респаунов настроена через Map_Spawns_Editor (в основном 20/20 ставили), но с ним или без него - люди всё равно дохнут. Правда они сразу же возрождаются (проходит 1-2 секунды). Сам плагин работает корректно при онлайне ниже 28.

6. У нас в configs/maps на разных картах прописано разное название сервера (в зависимости от режима). В server.cfg название Zombie Biohazard, оно стоит на всех zm_ картах, потом поставили de_dust2 - название, как и положено, сменилось на Zombie DeathMatch - в итоге теперь на всех картах это название. Для его смены надо писать в prefix_zm.cfg hostname "Zombie Biohazard"???
23 Янв 2019
Ещё возникли проблемы со стрельбой. Сами пули летят так как надо, а вот при столкновение с зомби порой чудным образом исчезают, особенно когда зомби в движении (даже если он по прямой на тебя идёт). Из 30 пуль пройдет насквозь 3-4 как минимум.

Стрельбу проверяли как с плагином, который её изменяет (accuracy_fix.amxx), так и без него. Разница лишь в том, что пули летят лучше вместе с плагином, но в обоих случаях иногда проходят насквозь.

sv_minrate "15000"
sv_maxrate "25000"
sv_minupdaterate "20"
sv_maxupdaterate "102"
sys_ticrate "1000"

И ещё лапы у зм стали короче. Для того, чтобы заразить надо вплотную приблизиться. Раньше можно было за метра 1,5-2 заражать. Но это, возможно, даже лучше. Просто непривычно.
 
Сообщения
1,536
Реакции
2,324
Помог
39 раз(а)
Читайте объявление сверху.
также 1 тема=1вопрос/проблема
Закрыто
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу