[AHTT2] Ai biết fix lỗi này không chỉ với
Follow us on
Follow us on Facebook Follow us on Twitter Linked In Flickr Watch us on YouTube My Space Blogger
 
Trang 1 của 2 1 2 CuốiCuối
Kết quả 1 đến 10 của 11
  1. #1
    Thành Viên
    Ngày tham gia
    Aug 2012
    Bài viết
    184
    Thanks
    21
    Thanked 56 Times in 17 Posts

    [AHTT2] Ai biết fix lỗi này không chỉ với

    [Only registered and activated users can see links. ]
    Khách viếng thăm hãy cùng supergunny677 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  2. #2
    Thành Viên BanBanhQuay's Avatar
    Ngày tham gia
    Mar 2014
    Bài viết
    271
    Thanks
    1
    Thanked 152 Times in 53 Posts

    Ðề: [AHTT2] Ai biết fix lỗi này không chỉ với

    Vào server của game.Mở file commonconfig.xml
    sửa các dòng sau
    PHP Code:
                <DBIndexCreateRole>
                    <
    Index>1</Index>
                </
    DBIndexCreateRole>
                <
    DBRole>
                    <
    Index>1</Index>
                        ..........
                </
    DBRole>
        <
    is_micro_pc_open>1</is_micro_pc_open
    thành

    PHP Code:
                <DBIndexCreateRole>
                    <
    Index>0</Index>
                </
    DBIndexCreateRole>
                <
    DBRole>
                    <
    Index>0</Index>
                        ..........
                </
    DBRole>
        <
    is_micro_pc_open>0</is_micro_pc_open
    Một cách nữa là build lại server.copy và paste lại file world.cpp của gameworld
    PHP Code:
    #include "common/platform/system.h"
    #include "world.h"
    #include "ilogmodule.h"
    #include "gamedef.h"
    #include "utility/configpath.h"
    #include "internalcomm.h"
    #include "gamelog.h"
    #include "servercommon/internalprotocal/lgprotocal.h"
    #include "servercommon/internalprotocal/wgprotocal.h"
    #include "servercommon/internalprotocal/gglobalprotocal.h"
    #include "servercommon/serverconfig/serverconfigpool.h"
    #include "common/memory/memmonitor.h"
    #include "gamecommon.h"
    #include "monster/monsterpool.h"
    #include "task/taskpool.h"

    #include "scene/bossrefresher/bossrefresher.hpp"

    #include "scene/asynreqregister/asynreqregister.hpp"
    #include "other/monitor/systemmonitor.hpp"
    #include "scene/teamequipfbmanager/teamequipfbmanager.hpp"

    #include "scene/guildshadow/guildshadow.hpp"
    #include "scene/activityshadow/activityshadow.hpp"
    #include "scene/campshadow/campshadow.hpp"
    #include "other/worldevent/worldeventshadow.hpp"
    #include "other/worldboss/worldbossshadow.hpp"
    #include "other/monsterdropsum/monsterdropsum.hpp"
    #include "scene/marryshadow/marryshadow.h"
    #include "script/scriptmanager.hpp"

    static World *world_instance NULL;

    World::World(ILogModule *log
                 
    IConfigModule *config
                 
    IGameModule *game
                 
    INetworkModule *network
                 
    INetworkModule *internal_network
                 
    IClockModule *clock,
                 
    IRMIModule *rmi_module,
                 
    ITimerModule *timer,
                 
    IFileWriteModule *filewrite,
                 
    int total_server,
                 
    int server_index)
        : 
    m_game_time(0), m_scene_manager(), m_total_server(total_server), m_server_index(server_index), m_listen_port(0), m_chat_server_netid(-1), 
        
    m_global_server_netid(-1), m_login_server_netid(-1)
    {
        
    m_scene_manager.SetWorld(this);

        
    m_network network;
        
    EngineAdapter::Instance().Init(logconfiggamenetworkclockrmi_moduletimerfilewrite);

        
    // 获取日志生成目录
        
    std::string log_dir "log/";
        
    EngineAdapter::Instance().ConfigSyncValue(ROOT/"LogDir", &log_dirlog_dir);
        if (
    log_dir[log_dir.length() - 1] != '/')
        {
            
    log_dir += '/';
        }
        
        
    int open_console_log 0;
        
    EngineAdapter::Instance().ConfigSyncValue(ROOT/"OpenConsoleLog", &open_console_logopen_console_log);

        
    gamelog::LogInit(loglog_dir!= open_console_logm_server_index);

        
    InternalComm::Instance().Init(internal_network);

        
    world_instance this;
    }

    World::~World()
    {
    }

    World World::GetInstWorld()
    {
        return 
    world_instance;
    }

    bool World::Init()
    {
        
    gamelog::g_log_world.print(LL_MAINTANCE"Game Global Init.");

        
    gamecommon::GlobalInit();

        
    gamelog::g_log_world.print(LL_MAINTANCE"World Init.");

        return 
    true;
    }

    class 
    MsgMoniterTimer : public ITimerCallback
    {
        
    int interval_s;

    public:
        
    MsgMoniterTimer(int i):interval_s(i) {}

        
    virtual void OnTimer()
        {
            static 
    char buff[1024 10];

            
    memmonitor::PrintDyMemInfo(buff);

            
    gamelog::g_log_msgmoniter.print(LL_INFObuff);

            
    EngineAdapter::Instance().CreateTimerSecond(interval_s, new MsgMoniterTimer(interval_s));
        }

        
    virtual void Free() { delete this; }
    };

    bool World::Start(bool check_res_modeint total_serverint server_index)
    {
        
    m_local_ip "127.0.0.1";
        
    m_listen_port 7777;
        
    EngineAdapter::Instance().ConfigSyncValue(ROOT/"World"/"GameServer"/"Index", &m_server_indexm_server_index);
        
    EngineAdapter::Instance().ConfigSyncValue(ROOT/"World"/"GameServer"/"LocalIP", &m_local_ipm_local_ip);
        
    EngineAdapter::Instance().ConfigSyncValue(ROOT/"World"/"GameServer"/"ListenPort", &m_listen_portm_listen_port);
        
    m_total_server total_serverm_server_index server_index;
        
    m_listen_port += server_index// 监听端口递增
        
    EngineAdapter::Instance().m_server_index m_server_index// 使用命令行参数的

        // 获取配置目录
        
    std::string config_dir "../config";
        
    EngineAdapter::Instance().ConfigSyncValue(ROOT/"ConfigDir", &config_dirconfig_dir);
        if (
    config_dir[config_dir.length() - 1] != '/')
        {
            
    config_dir += '/';
        }

        
    // 加载所有服务器配置
        
    char err_info[1024]={0};
        if(!
    ServerConfigPool::Instance().Init(config_direrr_info))
        {
            
    gamelog::g_log_world.printf(LL_ERRORerr_info);
            
    gamelog::g_log_world.printf(LL_ERROR"World On INIT, ServerConfigPool::Init return FALSE.");
            return 
    false;
        }
        
    gamelog::g_log_world.printf(LL_INFO"World On INIT, ServerConfigPool::Init Success.");

        
    InternalComm::Instance().SetSesstionKeyBase(ServerConfigPool::Instance().common_config.sessionkey);
        
        if (!
    check_res_mode)
        {
            
    // 连接聊天服务器 聊天服务器一定要先初始化 不然在创建场景的时候向聊天频道注册时会出错
            
    if (!ConnectToChatServer())
            {
                return 
    false;
            }
        }

        if (!
    InitGameWorld(config_dir))                // 读配置 初始化场景
        
    {
            return 
    false;
        }
        
        if (
    check_res_mode)                            // 资源检查模式  
        
    {
            
    gamelog::g_log_world.printf(LL_MAINTANCE"【Resource Check Success.】");
            return 
    true;
        }

        
    /*std::string lua_dir = "../lua/gameworld/";
        std::string lua_err;
        if (!ScriptManager::Instance().Init(lua_dir, "luamanager.xml", &lua_err))
        {
            gamelog::g_log_world.printf(LL_MAINTANCE, "ScriptManager.Init Return Fail! Error At:%s", lua_err.c_str());
            return false;
        }*/

        
    if (!ConnectToDB())                            // 连接数据存取服务器
        
    {
            return 
    false;
        }

        
    // 连接到全局服务器,必须在ListenForGateway之后,因为用到m_server_index
        
    if (!ConnectToGlobalServer())
        {
            return 
    false;
        }

        
    // 连接登陆服务器
        
    if (!ConnectToLoginServer())
        {
            return 
    false;
        }

        
    // 为gateway监听
        
    if (!ListenForGateway())
        {
            return 
    false;
        }
        
        
    gamelog::g_log_world.printf(LL_MAINTANCE"World[total_server:%d server_index:%d] Start."m_total_serverm_server_index);
        
    m_game_time EngineAdapter::Instance().GetGameTime();

        static const 
    int MSG_MONITER_INTERVAL_S 60;
        
    EngineAdapter::Instance().CreateTimerSecond(MSG_MONITER_INTERVAL_S, new MsgMoniterTimer(MSG_MONITER_INTERVAL_S));

        return 
    true;
    }

    void World::Update()
    {
        
    //unsigned long beg_time = PITime();

        
    unsigned long now EngineAdapter::Instance().GetGameTime();
        
        
    unsigned long interval now m_game_time;

        
    m_scene_manager.Update(interval);
        
    ActivityShadow::Instance().Update(interval);
        
    SystemMonitor::Instance().Update(interval);
        
    TeamEquipFBManager::Instance().Update(interval);
        
    WorldEventShadow::Instance().GetActivity()->Update(interval);
        
    WorldBossShadow::Instance().Update(interval);
        
    GuildShadow::Instance().Update(interval);
        
    MonsterDropSum::Instance().Update(interval);
        
    CampShadow::Instance().Update(interval);
        
    MarryShadow::Instance().Update(interval);

        
    m_game_time now;

        
    /*if (m_game_time -  m_begin_time> 1000)
        {
            gamelog::g_log_world.printf(LL_DEBUG, "total:%d pc:%d(%d) ec:%d(%d) lc:%d(%d)", gamestat::g_game_stat.user_packet_count, 
                gamestat::g_game_stat.sync_pos_count, gamestat::g_game_stat.sync_pos_packege_count,
                gamestat::g_game_stat.enter_count, gamestat::g_game_stat.enter_packege_count,
                gamestat::g_game_stat.leave_count, gamestat::g_game_stat.leave_packege_count);
            m_begin_time = m_game_time;
        }*/

        //gamelog::g_log_world.printf(LL_DEBUG, "World Update cast %d ms.", PITime() - beg_time);
    }

    void World::Stop()
    {
        
    m_scene_manager.LogoutAllRole();

        
    //for (int i = 0; i < (int)m_db_rmi_session_list.size(); ++i)
        //{
        //    EngineAdapter::Instance().RMICloseSession(m_db_rmi_session_list[i]);
        //}

        
    gamelog::g_log_world.print(LL_MAINTANCE"World Stop.");
    }

    void World::Release()
    {
        
    m_scene_manager.Release();
        
    gamelog::g_log_world.print(LL_MAINTANCE"World Release.");
    }

    void World::OnAccept(Port listen_portNetID netidIP ipPort port)
    {
        
    m_gateway_set.insert(netid);
    }

    void World::OnRecv(NetID netid, const char *dataint length)
    {
        
    wgprotocal::MessageHeader *header = (wgprotocal::MessageHeader*)data;

        switch (
    header->msg_type)
        {
        case 
    wgprotocal::MT_NET_RECV_MSG:
            
    OnRecvMsg(netiddatalength);
            break;
        case 
    wgprotocal::MT_NET_DISCONNECT_NOTICE:
            
    OnNetDisconnect(netiddata);
            break;
        default:
            break;
        }
    }

    void World::OnRecvMsg(NetID netid, const char *dataint length)
    {
        
    wgprotocal::WGNetRecvMsg *nrm = (wgprotocal::WGNetRecvMsg*)data;
        
    GSNetID idtmp((unsigned short)(netid), (unsigned short)(nrm->header.netid));
        
    m_scene_manager.OnRecv(idtmpdata sizeof(wgprotocal::WGNetRecvMsg), length sizeof(wgprotocal::WGNetRecvMsg));
    }

    void World::OnNetDisconnect(NetID netid, const char *data)
    {
        
    wgprotocal::WGNetDisconnect *nd = (wgprotocal::WGNetDisconnect*)data;

        
    GSNetID idtmp((unsigned short)(netid), (unsigned short)(nd->header.netid));
        
    m_scene_manager.OnDisconnect(idtmp);

        
    AsynReqRegister::Instance().OnNetidDisconnect(idtmp);
    }

    void World::OnDisconnect(NetID netid)
    {
        
    m_scene_manager.OnGateWayDisconnect(netid);
        
    m_gateway_set.erase(netid);

        if (
    m_gateway_set.empty())    // 所有的gateway断开时候保存所有世界相关的信息 
        
    {
        }
    }

    void World::OnInternalAccept(Port listen_portNetID netidIP ipPort port)
    {
    }

    void World::OnInternalRecv(NetID netid, const char *dataint length)
    {
        if (
    netid == m_login_server_netid)
        {
            
    // 登陆服务器来消息
            
    lgprotocal::MessageHeader *header = (lgprotocal::MessageHeader*)data;
            switch (
    header->msg_type)
            {
            case 
    lgprotocal::MT_LG_REGISTER_GS:
                
    OnLGRegisterGS(data);
                break;
            case 
    lgprotocal::MT_LG_UNREGISTER_GS:
                
    OnLGUnRegisterGS(data);
                break;
            default:
                break;
            }
            return;
        }

        if (
    netid == m_global_server_netid// 全局服务器来消息
        
    {
            
    m_scene_manager.OnGlobalRecv(datalength);
        }
        else if (
    netid == m_chat_server_netid)
        {
            
    m_scene_manager.OnChatServerRecv(datalength);
        }
    }

    void World::OnInternalDisconnect(NetID netid)
    {
        if (
    netid == InternalComm::Instance().m_login_server_id)
        {
            
    InternalComm::Instance().m_login_server_id = -1;

            
    // 启动重连机制
            
    ReConnectToLogin();
        }

        
    gamelog::g_log_world.printf(LL_MAINTANCE"OnInternalDisconnect: netid[%d]."netid);
    }

    void World::ReConnectToLogin()
    {
        
    std::string login_server_ip ServerConfigPool::Instance().common_config.ipconfigs.login_server_addr.inner_connect_addr.server_ip;
        
    Port login_server_port ServerConfigPool::Instance().common_config.ipconfigs.login_server_addr.inner_connect_addr.for_gameserver.port;

        
    int handle = -1;
        
    bool ret InternalComm::Instance().NetConnectAsyn(login_server_ip.c_str(), login_server_port, &handle1000);
        if (
    ret)
        {
            
    InternalComm::Instance().m_reconnet_login_handle handle;
        }
        else
        {
            
    // log
        
    }
    }

    bool World::RegisterToLogin()
    {
        
    lgprotocal::GLRegisterGS rgs;
        
    STRNCPY(rgs.ipm_local_ip.c_str(), sizeof(rgs.ip));
        
    rgs.index m_server_index;
        
    rgs.port m_listen_port;
        
    rgs.scene_count m_scene_manager.GetSceneList(rgs.scene_listMAX_SCENE_LIST_NUM);
        return 
    InternalComm::Instance().NetSend(InternalComm::Instance().m_login_server_id, (const char *)&rgssizeof(lgprotocal::GLRegisterGS));
    }

    void World::OnLGRegisterGS(const char *msg)
    {
        
    lgprotocal::LGRegisterGS *rgs = (lgprotocal::LGRegisterGS*)msg;
        
        if (
    rgs->index == m_server_index) return; // 把本地的去掉 只记录别的gs
        
        
    for (int i 0rgs->scene_count && MAX_SCENE_LIST_NUM; ++i)
        {
            
    m_scene_manager.AddGS(rgs->scene_list[i], rgs->index);
        }
    }

    void World::OnLGUnRegisterGS(const char *msg)
    {
        
    lgprotocal::LGUnRegisterGS *urgs = (lgprotocal::LGUnRegisterGS*)msg;

        for (
    int i 0urgs->scene_count && MAX_SCENE_LIST_NUM; ++i)
        {
            
    m_scene_manager.DeleteGS(urgs->scene_list[i]);
        }
    }

    bool World::SendToAllGateway(const char *msgint length)
     {
        
    bool ret true;

        for (
    GateWaySet::iterator i m_gateway_set.begin(); != m_gateway_set.end(); ++i)
        {
            
    ret &= EngineAdapter::Instance().NetSendAll(*imsglength);
        }

        return 
    ret;

    Khách viếng thăm hãy cùng BanBanhQuay xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  3. #3
    Thành Viên
    Ngày tham gia
    Aug 2012
    Bài viết
    184
    Thanks
    21
    Thanked 56 Times in 17 Posts

    Ðề: [AHTT2] Ai biết fix lỗi này không chỉ với

    Files commomconfig.xml
    nó có sẳn cái này rùi
    PHP Code:
                <DBIndexCreateRole>
                    <
    Index>0</Index>
                </
    DBIndexCreateRole>
                <
    DBRole>
                    <
    Index>0</Index>
                        ..........
                </
    DBRole>
        <
    is_micro_pc_open>0</is_micro_pc_open
    Cách 2 không có source sao build được bạn chỉ với. bản ver 2 bị cái này
    Lần sửa cuối bởi supergunny677, ngày 11-03-15 lúc 01:21 PM.
    Khách viếng thăm hãy cùng supergunny677 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  4. #4
    Thành Viên BanBanhQuay's Avatar
    Ngày tham gia
    Mar 2014
    Bài viết
    271
    Thanks
    1
    Thanked 152 Times in 53 Posts

    Ðề: [AHTT2] Ai biết fix lỗi này không chỉ với

    Trích dẫn Gửi bởi supergunny677 [Only registered and activated users can see links. ]
    Files commomconfig.xml
    nó có sẳn cái này rùi
    PHP Code:
                <DBIndexCreateRole>
                    <
    Index>0</Index>
                </
    DBIndexCreateRole>
                <
    DBRole>
                    <
    Index>0</Index>
                        ..........
                </
    DBRole>
        <
    is_micro_pc_open>0</is_micro_pc_open
    Cách 2 không có source sao build được bạn chỉ với. bản ver 2 bị cái này
    Nếu như bạn nói file common ko có dính type 1 thì bạn vào server\debug\serverconfig.xml
    sửa lại thành như sau
    PHP Code:
       <DataAccessServer>
            <
    Type>0</Type>
            <
    Index>0</Index>
        </
    DataAccessServer
    Nếu vẫn bị thì cài lại bộ visual c++2005 ->2010 xem.Nếu không được có thể team view mình xem
    Khách viếng thăm hãy cùng BanBanhQuay xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  5. #5
    Thành Viên
    Ngày tham gia
    Aug 2012
    Bài viết
    184
    Thanks
    21
    Thanked 56 Times in 17 Posts

    Ðề: [AHTT2] Ai biết fix lỗi này không chỉ với

    Trích dẫn Gửi bởi BanBanhQuay [Only registered and activated users can see links. ]
    Nếu như bạn nói file common ko có dính type 1 thì bạn vào server\debug\serverconfig.xml
    sửa lại thành như sau
    PHP Code:
       <DataAccessServer>
            <
    Type>0</Type>
            <
    Index>0</Index>
        </
    DataAccessServer
    Nếu vẫn bị thì cài lại bộ visual c++2005 ->2010 xem.Nếu không được có thể team view mình xem
    Có online yahoo hay face book ko để mình pm
    Khách viếng thăm hãy cùng supergunny677 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  6. #6
    Thành Viên
    Ngày tham gia
    Aug 2012
    Bài viết
    184
    Thanks
    21
    Thanked 56 Times in 17 Posts

    Ðề: [AHTT2] Ai biết fix lỗi này không chỉ với

    upppppppppppppppppppppppppppppppppppppppppppppppp
    Khách viếng thăm hãy cùng supergunny677 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  7. #7
    Thành Viên
    Ngày tham gia
    Nov 2014
    Bài viết
    163
    Thanks
    0
    Thanked 92 Times in 33 Posts

    Ðề: [AHTT2] Ai biết fix lỗi này không chỉ với

    Trích dẫn Gửi bởi supergunny677 [Only registered and activated users can see links. ]
    upppppppppppppppppppppppppppppppppppppppppppppppp
    Cái hình pic 1 bị lỗi ai xem được mà giúp
    Khách viếng thăm hãy cùng sgamer xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  8. #8
    Thành Viên
    Ngày tham gia
    Aug 2012
    Bài viết
    184
    Thanks
    21
    Thanked 56 Times in 17 Posts

    Ðề: [AHTT2] Ai biết fix lỗi này không chỉ với

    Trích dẫn Gửi bởi sgamer [Only registered and activated users can see links. ]
    Cái hình pic 1 bị lỗi ai xem được mà giúp
    Chạy tầm 3h > 4h thì hiện lỗi đó và tự đóng files gameworld.exe
    Khách viếng thăm hãy cùng supergunny677 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  9. #9
    Thành Viên BanBanhQuay's Avatar
    Ngày tham gia
    Mar 2014
    Bài viết
    271
    Thanks
    1
    Thanked 152 Times in 53 Posts

    Ðề: [AHTT2] Ai biết fix lỗi này không chỉ với

    Trích dẫn Gửi bởi supergunny677 [Only registered and activated users can see links. ]
    Chạy tầm 3h > 4h thì hiện lỗi đó và tự đóng files gameworld.exe
    Tưởng mới chạy bị thế.Hóa ra chạy 3-4h sau mới bị.build lại cái server cho nhanh
    Khách viếng thăm hãy cùng BanBanhQuay xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  10. #10
    Thành Viên
    Ngày tham gia
    Jun 2014
    Bài viết
    60
    Thanks
    0
    Thanked 10 Times in 7 Posts

    Ðề: [AHTT2] Ai biết fix lỗi này không chỉ với

    Trích dẫn Gửi bởi supergunny677 [Only registered and activated users can see links. ]
    Chạy tầm 3h > 4h thì hiện lỗi đó và tự đóng files gameworld.exe
    Có trường hợp thành viên đổi tên nó cũng bị đóng gameworld
    Khách viếng thăm hãy cùng choihetminh xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

 

 
Trang 1 của 2 1 2 CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •  
Múi giờ GMT +7. Bây giờ là 08:37 AM.
vBulletin®, Copyright ©2000-2011, Jelsoft Enterprises Ltd.
CLBGamesVN không chịu trách nhiệm về Luật Bản Quyền của các tài liệu, bài viết v.v...được đăng tải trên diễn đàn này.
Diễn đàn phát triển dưới sự đóng góp của tất cả thành viên. BQT chỉ là những người thành lập ra sân chơi, quản lý và duy trì về mặt kỹ thuật, nội dung khi hợp lệ.