예제 #1
0
int32_t LuaEngine::OnTimer(int64_t task_id, void* data)
{
    UNUSE_ARG(data);
    LOG(INFO) << "OnTimer: task_id[" << task_id << "] TIMEOUT!!!!";

    CloseTask(task_id);
    return -1;
}
예제 #2
0
int32_t MsgModule::OnDatasvrAccountRegRes(ProtoSs::Msg* msg, void* arg)
{
    UNUSE_ARG(arg);
    LuaEngineModule* lua_engine_module = FindModule<LuaEngineModule>(app_);
    uint64_t task_id = msg->head().seq();
    int32_t account_reg_flag = msg->head().ret();
    LOG(INFO) << "account reg result[" << account_reg_flag << "]";

    lua_engine_module->Resume(task_id, account_reg_flag);

    return 0;
}
예제 #3
0
int32_t MsgModule::OnDatasvrSetPlayerDataRes(ProtoSs::Msg* msg, void* arg)
{
    UNUSE_ARG(arg);
    LuaEngineModule* lua_engine_module = FindModule<LuaEngineModule>(app_);
    uint64_t task_id = msg->head().seq();
    int32_t update_player_data_flag = msg->head().ret();
    int32_t player_idx = msg->head().player_idx();
    LOG(INFO)
        << "get player_data result[" << update_player_data_flag
        << "] player_idx[" << player_idx
        << "] seq[" << task_id 
        << "]";

    lua_engine_module->Resume(task_id, update_player_data_flag);

    return 0;
}
예제 #4
0
int32_t MsgModule::OnDatasvrGetPlayerDataRes(ProtoSs::Msg* msg, void* arg)
{
    UNUSE_ARG(arg);
    LuaEngineModule* lua_engine_module = FindModule<LuaEngineModule>(app_);
    uint64_t task_id = msg->head().seq();
    int32_t ret = msg->head().ret();
    int32_t player_idx = msg->head().player_idx();
    LOG(INFO)
        << "get player_data result[" << ret
        << "] player_idx[" << player_idx
        << "] seq[" << task_id 
        << "]";

    if (ret == 0) {
        const ProtoSs::GetPlayerDataRes& get_player_data_res = msg->get_player_data_res();
        Database::PlayerData player_data;
        player_data.ParseFromArray(get_player_data_res.player_data().c_str(),
            get_player_data_res.player_data().size());
        LOG(INFO) << "\nplayer_data:\n" << player_data.Utf8DebugString();

        // 从数据库初始化对象
        ObjMgrModule* obj_mgr_module = FindModule<ObjMgrModule>(app_);
        Player* player = obj_mgr_module->get_player(player_idx); 
        const Database::RoleInfo& role_info 
            = player_data.role_info();
        player->set_player_by_db(&role_info);

        for (int32_t i = 0; i < player_data.city_list_size(); i++) {
            const Database::CityInfo& city_info = player_data.city_list(i);
            int32_t city_idx = obj_mgr_module->add_city(player_idx);
            City* city = obj_mgr_module->get_city(city_idx);
            city->set_city_by_db(&city_info);
            if (city != NULL) {
                city->set_player_idx(player_idx);
            }
        }
        
        lua_engine_module->Resume(task_id, 0);
    } else {
        lua_engine_module->Resume(task_id, 1);
    }


    return 0;
}
예제 #5
0
int32_t MsgModule::OnDatasvrAccountVerifyRes(ProtoSs::Msg* msg, void* arg)
{
    UNUSE_ARG(arg);
    LuaEngineModule* lua_engine_module = FindModule<LuaEngineModule>(app_);
    uint64_t task_id = msg->head().seq();
    int32_t ret = msg->head().ret();
    LOG(INFO) << "account verify result[" << ret << "]";

    if (ret == 0) {
        lua_engine_module->SetGlobal("ACCOUNT_VERIFY_FLAG", 0);
    } else {
        lua_engine_module->SetGlobal("ACCOUNT_VERIFY_FLAG", 1);
    }

    lua_engine_module->Resume(task_id, CHECK_SIG_OK);

    return 0;
}