• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ json_spirit::Object类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中json_spirit::Object的典型用法代码示例。如果您正苦于以下问题:C++ Object类的具体用法?C++ Object怎么用?C++ Object使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了Object类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: ProcessGetSysEquipInfo

//非玩家装备信息
int ProcessGetSysEquipInfo(net::session_ptr& psession, json_spirit::mObject& o, json_spirit::Object& robj)
{
   CharData* cdata = NULL;
    int ret = getSessionChar(psession, cdata);
    if (ret != HC_SUCCESS || NULL == cdata)
    {
        return ret;
    }
    int id = 1;
    READ_INT_FROM_MOBJ(id, o, "id");
    boost::shared_ptr<baseEquipment> beq = GeneralDataMgr::getInstance()->GetBaseEquipment(id);
    if (beq.get())
    {
        json_spirit::Object eq;
        eq.push_back( Pair("id", id) );
        eq.push_back( Pair("name", beq->name) );
        eq.push_back( Pair("spic", id) );
        eq.push_back( Pair("type", beq->type) );
        eq.push_back( Pair("level", 0) );

        eq.push_back( Pair("addNums", beq->baseValue) );

        if (beq->baseValue2 > 0)
        {
            eq.push_back( Pair("addNums", beq->baseValue2) );
        }
        eq.push_back( Pair("quality", beq->quality) );
        eq.push_back( Pair("price", beq->basePrice) );
        eq.push_back( Pair("memo", beq->desc) );
        eq.push_back( Pair("needLevel", beq->needLevel) );

        robj.push_back( Pair("equipVO", eq) );
        return HC_SUCCESS;
    }
    else
    {
        return HC_ERROR;
    }
}
开发者ID:lindianyin,项目名称:sgbj,代码行数:40,代码来源:equipment_make.cpp


示例2: while

int Boss::getBossLogEvent(json_spirit::Object& robj)
{
    json_spirit::Array list;
    std::list<boost::shared_ptr<boss_log> >::iterator it = m_event_log.begin();
    while (it != m_event_log.end())
    {
        if ((*it).get())
        {
            json_spirit::Object o;
            std::string msg = strBossLog;
            str_replace(msg, "$A", MakeCharNameLink_other((*it)->m_name));
            str_replace(msg, "$B", _boss._name);
            str_replace(msg, "$D", LEX_CAST_STR((*it)->m_damage));
            str_replace(msg, "$S", LEX_CAST_STR((*it)->m_silver));
            o.push_back( Pair("msg", msg) );
            list.push_back(o);
        }
        ++it;
    }
    robj.push_back( Pair("list", list) );
    return HC_SUCCESS;
}
开发者ID:lindianyin,项目名称:sgbj,代码行数:22,代码来源:boss.cpp


示例3: getBossHp

int bossMgr::getBossHp(int id, json_spirit::Object& robj)
{
    robj.push_back( Pair("id", id) );
    boost::shared_ptr<Boss> spb = getBoss(id);
    if (spb.get())
    {
        if (spb->_boss._cur_hp <= spb->_boss._hide_hp)
        {
            robj.push_back( Pair("special", true) );
            robj.push_back( Pair("hide_hp", spb->_boss._hide_hp) );
            robj.push_back( Pair("hp", spb->_boss._cur_hp) );
        }
        else
        {
            robj.push_back( Pair("special", false) );
            robj.push_back( Pair("hide_hp", 0) );
            robj.push_back( Pair("hp", spb->_boss._cur_hp) );
        }
    }
    return HC_SUCCESS;
}
开发者ID:lindianyin,项目名称:sgbj,代码行数:21,代码来源:boss.cpp


示例4: WaterFarmField

int farmMgr::WaterFarmField(int cid, json_spirit::Object& robj)
{
    boost::shared_ptr<CharData> cdata = GeneralDataMgr::getInstance()->GetCharData(cid);
    if (!cdata.get())
        return HC_ERROR;
    int now_water = cdata->queryExtraData(char_data_type_daily, char_data_farm_water);
    if (now_water > iFarmWater)
    {
        return HC_ERROR;
    }
    int cd = cdata->queryExtraData(char_data_type_daily, char_data_farm_water_cd);
    if (cd > time(NULL))
    {
        return HC_ERROR;
    }
    int add_reward = cdata->m_level / 5;
    if (cdata->m_level % 5 > 0)
        ++add_reward;
    //军粮数值放大10倍
    if (add_reward > 0)
        add_reward *= 10;
    cdata->addTreasure(treasure_type_supply, add_reward);
    add_statistics_of_treasure_cost(cdata->m_id,cdata->m_ip_address,treasure_type_supply,add_reward,treasure_farm_water,1,cdata->m_union_id,cdata->m_server_id);
    cdata->setExtraData(char_data_type_daily, char_data_farm_water, ++now_water);
    cdata->setExtraData(char_data_type_daily, char_data_farm_water_cd, time(NULL)+1800);
    boost::shared_ptr<baseTreasure> tr = GeneralDataMgr::getInstance()->GetBaseTreasure(treasure_type_supply);
    if (tr.get())
    {
        robj.push_back( Pair("msg", tr->name + strCounts + LEX_CAST_STR(add_reward)));
    }
    cdata->NotifyCharData();
    //act统计
    act_to_tencent(cdata.get(),act_new_water);

    //支线任务
    cdata->m_trunk_tasks.updateTask(task_farm_water, 1);
    return HC_SUCCESS;
}
开发者ID:lindianyin,项目名称:sgbj,代码行数:38,代码来源:farm.cpp


示例5: json_decode

bool json_decode(const json_spirit::Object& obj, sample_data_req1& sd)
{
    sd = sample_data_req1(); // empty it.
    try
    {
        for (size_t i = 0; i != obj.size(); ++i)
        {
            const json_spirit::Pair& item = obj[i];
            if (item.name_ == "email")
                sd.email = item.value_.get_str();
            else if (item.name_ == "phone")
                sd.phone = item.value_.get_str();
            else if (item.name_ == "delay")
                sd.delay = item.value_.get_uint64();
        }
    }
    catch (std::exception& e)
    {
        BOOST_LOG_TRIVIAL(error) << "json_decode(json_spirit::Object, sample_data_req1) exception " << e.what() << std::endl;
        return false;
    }
    return true;
}
开发者ID:bitbouncer,项目名称:csi-http,代码行数:23,代码来源:json_spirit_http_server_sample.cpp


示例6: rewardNourish

int farmMgr::rewardNourish(int cid, json_spirit::Object& robj)
{
    int reward = getNourishReward(cid);
    boost::shared_ptr<CharData> cdata = GeneralDataMgr::getInstance()->GetCharData(cid);
    if (cdata.get())
    {
        cdata->addTreasure(treasure_type_supply, reward);
        cdata->NotifyCharData();
        add_statistics_of_treasure_cost(cdata->m_id,cdata->m_ip_address,treasure_type_supply,reward,treasure_farm,1,cdata->m_union_id,cdata->m_server_id);
        clearNourishReward(cid);
        boost::shared_ptr<baseTreasure> tr = GeneralDataMgr::getInstance()->GetBaseTreasure(treasure_type_supply);
        if (tr.get())
        {
            robj.push_back( Pair("msg", tr->name + strCounts + LEX_CAST_STR(reward)));
        }
        //act统计
        act_to_tencent(cdata.get(),act_new_nourish);

        //支线任务
        cdata->m_trunk_tasks.updateTask(task_farm_yechan, 1);
        return HC_SUCCESS;
    }
    return HC_ERROR;
}
开发者ID:lindianyin,项目名称:sgbj,代码行数:24,代码来源:farm.cpp


示例7: ProcessCorpsExploreDone

//军团探索完成
int ProcessCorpsExploreDone(net::session_ptr& psession, json_spirit::mObject& o, json_spirit::Object& robj)
{
    CharData* pc = NULL;
    int ret = getSessionChar(psession, pc);
    if (ret != HC_SUCCESS || NULL == pc)
    {
        return ret;
    }
    if (pc->m_corps_member.get() == NULL)
    {
        return HC_ERROR_NOT_JOIN_JT;
    }
    int nums = pc->queryExtraData(char_data_type_daily, char_data_daily_corps_explore);
    int corps_explore_times = 0;
    splsCorps* cp = corpsMgr::getInstance()->findCorps(pc->m_corps_member.get()->corps);
    if (cp)
    {
        corps_explore_times = iCorpsExploreTimesOneday[cp->_level];
    }
    int left = corps_explore_times - nums;
    if (left <= 0)
    {
        return HC_ERROR_CORPS_EXPLORE_NO_TIMES;
    }

    charCorpsExplore* c = Singleton<corpsExplore>::Instance().getChar(pc->m_id).get();
    if (c == NULL)
    {
        return HC_ERROR;
    }

    int pos = 1;
    READ_INT_FROM_MOBJ(pos,o,"pos");

    if (pos < 1 || pos > 3)
    {
        return HC_ERROR;
    }

    if (c->que[pos-1].state == 0)
    {
        return HC_ERROR;
    }

    if (!c->que[pos-1].isDone())
    {
        return HC_ERROR;
    }

    c->que[pos-1].state = 0;
    //军粮,军团经验
    int supply = pc->m_level * pc->m_level * c->que[pos-1].fac / 80;
    if (supply <= 0)
    {
        supply = 1;
    }

    int exp = 30 * c->que[pos-1].fac;
    if (c->special == c->que[pos-1].type)
    {
        supply *= 2;
        exp *= 2;
    }

#ifdef SF_SERVER
            if (supply > 0)
                supply *= 20;
#else
            //军粮数值放大10倍
            if (supply > 0)
                supply *= 10;
#endif


    //军团实际收益
    corpsRealReward(supply);
    corpsRealReward(exp);

    robj.push_back( Pair("supply", supply) );
    robj.push_back( Pair("exp", exp) );

    pc->addTreasure(treasure_type_supply, supply);
    add_statistics_of_treasure_cost(pc->m_id,pc->m_ip_address,treasure_type_supply,supply,treasure_corps_explore,1,pc->m_union_id,pc->m_server_id);

    pc->NotifyCharData();

    corpsMgr::getInstance()->addEvent(pc, corps_event_explore, c->que[pos-1].type + c->que[pos-1].quality * 10, exp);

    c->refresh(pos);

    ++nums;
    pc->setExtraData(char_data_type_daily, char_data_daily_corps_explore, nums);
    //act统计
    act_to_tencent(pc,act_new_corps_explore);

    if (nums == 10)
    {
        //第十次
        splsCorps* corps = corpsMgr::getInstance()->findCorps(pc->m_corps_member->corps);
//.........这里部分代码省略.........
开发者ID:lindianyin,项目名称:sgbj,代码行数:101,代码来源:corpsExplore.cpp


示例8: ProcessCorpsExplreList

//军团探索列表
int ProcessCorpsExplreList(net::session_ptr& psession, json_spirit::mObject& o, json_spirit::Object& robj)
{
    CharData* pc = NULL;
    int ret = getSessionChar(psession, pc);
    if (ret != HC_SUCCESS || NULL == pc)
    {
        return ret;
    }
    if (pc->m_corps_member.get() == NULL)
    {
        return HC_ERROR_NOT_JOIN_JT;
    }
    charCorpsExplore* c = Singleton<corpsExplore>::Instance().getChar(pc->m_id).get();
    if (c == NULL)
    {
        return HC_ERROR;
    }

    robj.push_back( Pair("refresh", c->refresh_time - time(NULL)) );
    robj.push_back( Pair("gold", iCorpsExploreRefreshGold) );
    robj.push_back( Pair("explore_ling", pc->m_bag.getGemCount(treasure_type_explore_ling)) );

    int nums = pc->queryExtraData(char_data_type_daily, char_data_daily_corps_explore);
    int corps_explore_times = 0;
    splsCorps* cp = corpsMgr::getInstance()->findCorps(pc->m_corps_member.get()->corps);
    if (cp)
    {
        corps_explore_times = iCorpsExploreTimesOneday[cp->_level];
    }
    int left = corps_explore_times - nums;
    if (left < 0)
    {
        left = 0;
    }
    robj.push_back( Pair("left", left) );
    json_spirit::Object special;
    special.push_back( Pair("type", c->special) );
    special.push_back( Pair("name", c->special_name) );
    robj.push_back( Pair("special", special) );

    json_spirit::Array list;
    for (int i = 0; i < 3; ++i)
    {
        json_spirit::Object obj;
        obj.push_back( Pair("pos", i+1) );
        obj.push_back( Pair("type", c->que[i].type) );
        obj.push_back( Pair("quality", c->que[i].quality) );
        obj.push_back( Pair("name", c->que[i].name) );

        if (c->que[i].state == 1)
        {
            int left_secs = c->que[i].done_time - time(NULL);
            if (left_secs <= 0)
            {
                obj.push_back( Pair("state", 2) );
            }
            else
            {
                obj.push_back( Pair("state", 1) );
                obj.push_back( Pair("time", left_secs) );
                int gold = left_secs / 60;
                if (gold % 60 > 0)
                {
                    ++gold;
                }
                obj.push_back( Pair("gold", gold) );
            }
        }
        else
        {
            obj.push_back( Pair("state", c->que[i].state) );
            obj.push_back( Pair("time", c->que[i].need_secs) );
        }
        //军粮,军团经验
        int supply = pc->m_level * pc->m_level * c->que[i].fac / 80;
        if (supply == 0)
        {
            supply = 1;
        }
#ifdef SF_SERVER
        if (supply > 0)
            supply *= 20;
#else
        //军粮数值放大10倍
        if (supply > 0)
            supply *= 10;
#endif

        int exp = 30 * c->que[i].fac;

        //军团探索收益系数
        corpsRealReward(supply);
        corpsRealReward(exp);

        if (c->special == c->que[i].type)
        {
            obj.push_back( Pair("double", 1) );
        }
        obj.push_back( Pair("supply", supply) );
//.........这里部分代码省略.........
开发者ID:lindianyin,项目名称:sgbj,代码行数:101,代码来源:corpsExplore.cpp


示例9: ProcessCorpsExploreRefresh

//军团探索刷新
int ProcessCorpsExploreRefresh(net::session_ptr& psession, json_spirit::mObject& o, json_spirit::Object& robj)
{
    CharData* pc = NULL;
    int ret = getSessionChar(psession, pc);
    if (ret != HC_SUCCESS || NULL == pc)
    {
        return ret;
    }
    if (pc->m_corps_member.get() == NULL)
    {
        return HC_ERROR_NOT_JOIN_JT;
    }
    charCorpsExplore* c = Singleton<corpsExplore>::Instance().getChar(pc->m_id).get();
    if (c == NULL)
    {
        return HC_ERROR;
    }

    bool canrefresh = false;
    for (int i = 0; i < 3; ++i)
    {
        if (c->que[i].state == 0)
        {
            canrefresh = true;
            break;
        }
    }
    if (!canrefresh)
    {
        return HC_SUCCESS;
    }

    //优先扣道具
    if (pc->addTreasure(treasure_type_explore_ling, -1) >= 0)
    {
        //通知道具消耗
        std::string msg = treasure_expend_msg(treasure_type_explore_ling, 1);
        if (msg != "")
        {
            robj.push_back( Pair("msg", msg) );
        }
        //统计道具消耗
        add_statistics_of_treasure_cost(pc->m_id,pc->m_ip_address,treasure_type_explore_ling,1,treasure_unknow,2,pc->m_union_id,pc->m_server_id);

    }
    else if (pc->addGold(-iCorpsExploreRefreshGold) < 0)
    {
        return HC_ERROR_NOT_ENOUGH_GOLD;
    }

    //金币消耗统计
    add_statistics_of_gold_cost(pc->m_id, pc->m_ip_address, iCorpsExploreRefreshGold, gold_cost_for_corps_explore_refresh, pc->m_union_id, pc->m_server_id);
#ifdef QQ_PLAT
    gold_cost_tencent(pc,iCorpsExploreRefreshGold,gold_cost_for_corps_explore_refresh);
#endif

    c->refresh(0);

    pc->NotifyCharData();

    return HC_SUCCESS;
}
开发者ID:lindianyin,项目名称:sgbj,代码行数:63,代码来源:corpsExplore.cpp


示例10: ProcessGetBankFeedback

int ProcessGetBankFeedback(net::session_ptr& psession, json_spirit::mObject& o, json_spirit::Object& robj)
{
    CharData* cdata = NULL;
    int ret = getSessionChar(psession, cdata);
    if (ret != HC_SUCCESS || NULL == cdata)
    {
        return ret;
    }
    if (!cdata->isBankOpen())
    {
        return HC_ERROR;
    }
    int case_id = 1, sid = 0;
    READ_INT_FROM_MOBJ(case_id, o, "case_id");
    READ_INT_FROM_MOBJ(sid, o, "sid");
    if (sid < 1 || sid > iBankSubCaseCount)
    {
        return HC_ERROR;
    }
    json_spirit::Array list;
    boost::shared_ptr<char_bank_list> p_cb = bankMgr::getInstance()->GetCharBankList(cdata->m_id);
    if (p_cb.get())
    {
        if (bankUnGet(*p_cb) == false)
        {
            return HC_ERROR;
        }
        for (int i = 0; i < (int)(*p_cb).size(); ++i)
        {
            //项目已经投资
            if ((*p_cb)[i].get() && (*p_cb)[i]->m_case_id == case_id && (*p_cb)[i]->m_state == 2)
            {
                if((*p_cb)[i]->m_base.get())
                {
                    char_bank_case* pb = (*p_cb)[i].get();
                    {
                        if (pb->m_feedback_state[sid-1] == 1)
                        {
                            int gold = pb->m_base->_case_map[sid-1]._feedback_gold;
                            cdata->addGold(gold, gold_get_bank, true);
                            (*p_cb)[i]->m_get_gold += gold;
                            (*p_cb)[i]->m_feedback_state[sid-1] = 2;
                            (*p_cb)[i]->save();
                            int state = bankCanGet(*p_cb);
                            if (0 == state)
                            {
                                cdata->updateTopButton(top_button_bank, 0);
                            }
                            else if (2 == state)
                            {
                                cdata->updateTopButton(top_button_bank, 0);
                            }
                            robj.push_back( Pair("gold", gold) );
                            return HC_SUCCESS;
                        }
                        else
                        {
                            return HC_ERROR;
                        }
                    }
                }
            }
        }
    }
    return HC_ERROR;
}
开发者ID:lindianyin,项目名称:sgbj,代码行数:66,代码来源:bank.cpp


示例11: ProcessGetCaseInfo

int ProcessGetCaseInfo(net::session_ptr& psession, json_spirit::mObject& o, json_spirit::Object& robj)
{
    CharData* cdata = NULL;
    int ret = getSessionChar(psession, cdata);
    if (ret != HC_SUCCESS || NULL == cdata)
    {
        return ret;
    }
    if (!cdata->isBankOpen())
    {
        return HC_ERROR;
    }
    int case_id = 1;
    READ_INT_FROM_MOBJ(case_id, o, "case_id");
    json_spirit::Array list;
    boost::shared_ptr<char_bank_list> p_cb = bankMgr::getInstance()->GetCharBankList(cdata->m_id);
    if (p_cb.get())
    {
        for (int i = 0; i < (int)(*p_cb).size(); ++i)
        {
            if ((*p_cb)[i].get() && (*p_cb)[i]->m_case_id == case_id)
            {
                if((*p_cb)[i]->m_base.get())
                {
                    time_t stime = 0;
                    if ((*p_cb)[i]->m_state == 2)
                    {
                        stime = time(NULL);
                    }
                    bool btmp = false;
                    for (size_t s = 0; s < iBankSubCaseCount; ++s)
                    {
                        json_spirit::Object o;
                        o.push_back( Pair("sid", s+1) );
                        o.push_back( Pair("secs", (*p_cb)[i]->m_base->_case_map[s]._need_mins*60) );
                        o.push_back( Pair("gold", (*p_cb)[i]->m_base->_case_map[s]._feedback_gold) );
                        o.push_back( Pair("state", (*p_cb)[i]->m_feedback_state[s]) );
                        if ((*p_cb)[i]->m_feedback_state[s] == 0 && btmp == false)
                        {
                            int left = (*p_cb)[i]->m_sub_can_get_time[s] - stime;
                            if (left > 0)
                            {
                                o.push_back( Pair("left", left) );
                                btmp = true;
                            }
                        }
                        list.push_back(o);
                    }
                }
                robj.push_back( Pair("caseInfo", list) );
                robj.push_back( Pair("state", (*p_cb)[i]->m_state) );
                break;
            }
            else
            {
                INFO("case_id=" << (*p_cb)[i]->m_case_id << endl);
            }
        }
    }
    return HC_SUCCESS;
}
开发者ID:lindianyin,项目名称:sgbj,代码行数:61,代码来源:bank.cpp


示例12: getWeekRankingsEvent

//获取排行信息
int weekRankings::getRankingsInfo(CharData* pc, json_spirit::Object &robj)
{
    //排行活动信息
    json_spirit::Object event_obj;
    boost::shared_ptr<weekRankings_event> wre = getWeekRankingsEvent(m_event_type);
    if (wre.get())
    {
        event_obj.push_back( Pair("type", m_event_type) );
        event_obj.push_back( Pair("name", wre->name) );
        event_obj.push_back( Pair("memo", wre->memo) );
        json_spirit::Array reward_list;
        for (int rank = 1; rank <= 5; ++rank)
        {
            boost::shared_ptr<weekRankings_event_award> p_award = wre->rankings_list[rank];
            if (p_award.get())
            {
                json_spirit::Object o;
                o.push_back( Pair("rank", rank) );
                json_spirit::Array getlist;
                itemlistToArray(p_award->awards, getlist);
                o.push_back( Pair("get", getlist) );
                reward_list.push_back(o);
            }
        }
        event_obj.push_back( Pair("rank_get", reward_list) );
        robj.push_back( Pair("event_info", event_obj) );
    }
    //排行信息
    json_spirit::Array rank_list;
    int rank = 0;
    for (std::list<char_weekRankings>::iterator it = m_now_Rankings.begin(); it != m_now_Rankings.end(); ++it)
    {
        ++rank;
        if (rank <= iRewardMinRank)
        {
            json_spirit::Object o;
            o.push_back( Pair("rank", rank) );
            o.push_back( Pair("cid", it->cid) );
            boost::shared_ptr<CharData> cdata = GeneralDataMgr::getInstance()->GetCharData(it->cid);
            if (cdata.get())
            {
                o.push_back( Pair("name", cdata->m_name) );
                o.push_back( Pair("level", cdata->m_level) );
                if (cdata->GetGuildId())
                {
                    o.push_back( Pair("guildname", Singleton<guildMgr>::Instance().getGuildName(cdata->GetGuildId())));
                }
            }
            o.push_back( Pair("score", it->score) );
            o.push_back( Pair("refresh_time", it->refresh_time) );
            rank_list.push_back(o);
        }
    }
    robj.push_back( Pair("rank_list", rank_list) );
    //自身信息
    {
        json_spirit::Object o;
        o.push_back( Pair("cid", pc->m_id) );
        if (pc->GetGuildId())
        {
            o.push_back( Pair("guildname", Singleton<guildMgr>::Instance().getGuildName(pc->GetGuildId())));
        }
        o.push_back( Pair("score", m_score_maps[pc->m_id].score) );
        o.push_back( Pair("refresh_time", m_score_maps[pc->m_id].refresh_time) );
        robj.push_back( Pair("self_obj", o) );
    }
    return HC_SUCCESS;
}
开发者ID:lindianyin,项目名称:sgbj,代码行数:69,代码来源:weekRanking.cpp


示例13: fillJSONObject

void Printer::fillJSONObject(json_spirit::Object &obj) {
    using namespace json_spirit;
    obj.push_back(Pair("active",active));
    obj.push_back(Pair("paused",paused));
    obj.push_back(Pair("printerName",name));
    obj.push_back(Pair("slug",slugName));
    obj.push_back(Pair("device",device));
    obj.push_back(Pair("baudrate",baudrate));
    obj.push_back(Pair("xmin",xmin));
    obj.push_back(Pair("xmax",xmax));
    obj.push_back(Pair("ymin",ymin));
    obj.push_back(Pair("ymax",ymax));
    obj.push_back(Pair("zmin",zmin));
    obj.push_back(Pair("zmax",zmax));
    obj.push_back(Pair("speedx",speedx));
    obj.push_back(Pair("speedy",speedy));
    obj.push_back(Pair("speedz",speedz));
    obj.push_back(Pair("speedeExtrude",speedeExtrude));
    obj.push_back(Pair("speedeRetract",speedeRetract));
    obj.push_back(Pair("extruderCount",extruderCount));
    Array ea;
    for(int i=0;i<extruderCount;i++) {
        Object e;
        e.push_back(Pair("extruderid",i));
        e.push_back(Pair("extrudernum",i+1));
        ea.push_back(e);
    }
    obj.push_back(Pair("extruder",ea));
}
开发者ID:brokenstuff,项目名称:Repetier-Server,代码行数:29,代码来源:printer.cpp


示例14: create_json

 void create_json(json_spirit::Object &o) const
 {
     using namespace json_spirit;
     o.push_back( Pair("name", m_name) );
     o.push_back( Pair("count", m_trackCount) );        
 }
开发者ID:dsingleton,项目名称:playdar,代码行数:6,代码来源:boffin.cpp


示例15: toObj

void EquipmentData::toObj(json_spirit::Object& eq)
{
    eq.push_back( Pair("id", id) );
    eq.push_back( Pair("name", name()) );
    eq.push_back( Pair("spic", baseid) );
    eq.push_back( Pair("type", type) );
    eq.push_back( Pair("level", qLevel) );
    eq.push_back( Pair("maxLevel", quality*20) );

    int cur = getvalue();
    int add2 = 0;
    int add = equipmentUpgrade::getInstance()->getUpgradeValue(up_quality, type, qLevel + 1, add2);
    eq.push_back( Pair("addNums", cur) );
    eq.push_back( Pair("nextNums", cur + add) );

    if (add2 > 0)
    {
        int cur2 = getvalue2();
        eq.push_back( Pair("addNums2", cur2) );
        eq.push_back( Pair("nextNums2", cur2 + add2) );
    }

    eq.push_back( Pair("quality", quality) );
    eq.push_back( Pair("up_quality", up_quality) );
    eq.push_back( Pair("price", sellPrice()) );
    eq.push_back( Pair("memo", memo()) );
    if (baseEq.get())
    {
        eq.push_back( Pair("needLevel", baseEq->needLevel) );
    }
}
开发者ID:lindianyin,项目名称:sgbj,代码行数:31,代码来源:equipment_make.cpp


示例16: setWaterState

int farmMgr::WaterFarmFriendFieldAll(int cid, json_spirit::Object& robj)
{
    boost::shared_ptr<CharData> cdata = GeneralDataMgr::getInstance()->GetCharData(cid);
    if (!cdata.get())
        return HC_ERROR;
    int now_water = cdata->queryExtraData(char_data_type_daily, char_data_farm_friend_water);
    if (now_water >= iFarmFriendWater)
    {
        return HC_ERROR_FARM_WATER_TIMES;
    }
    int cnt = iFarmFriendWater - now_water;
    int tmp_cnt = 0;
    boost::shared_ptr<char_ralation> my_rl = Singleton<relationMgr>::Instance().getRelation(cdata->m_id);
    json_spirit::Array list;
    for (std::map<int, boost::shared_ptr<char_ralation> >::iterator it = my_rl->m_my_attentions.begin();
            it != my_rl->m_my_attentions.end();
                ++it)
    {
        if (cnt <= 0)
        {
            setWaterState(cid,it->second->m_char_id);
        }
        else if (!getWaterState(cid,it->second->m_char_id))
        {
            //json_spirit::Object o;
            //WaterFarmFriendField(cid,it->second->m_char_id,o);
            --cnt;
            ++tmp_cnt;
            setWaterState(cid,it->second->m_char_id);
            //cout << "water friend_id=" << it->second->m_char_id << endl;
        }
    }
    if (tmp_cnt == 0)
    {
        return HC_ERROR_NO_FARM_WATER_FRIEND;
    }
    int add_reward = cdata->m_level / 10;
    if (cdata->m_level % 10 > 0)
        ++add_reward;
    //军粮数值放大10倍
    if (add_reward > 0)
        add_reward *= 10;
    add_reward *= tmp_cnt;
    
    //屯田收益系数
    farmRealReward(add_reward);
    cdata->addTreasure(treasure_type_supply, add_reward);
    add_statistics_of_treasure_cost(cdata->m_id,cdata->m_ip_address,treasure_type_supply,add_reward,treasure_farm_water,1,cdata->m_union_id,cdata->m_server_id);
    cdata->NotifyCharData();
    
    //支线任务
    cdata->m_trunk_tasks.updateTask(task_farm_water, tmp_cnt);
    
    cdata->setExtraData(char_data_type_daily, char_data_farm_friend_water, now_water+tmp_cnt);
    //cout << "water_cnt=" << tmp_cnt;
    boost::shared_ptr<baseTreasure> tr = GeneralDataMgr::getInstance()->GetBaseTreasure(treasure_type_supply);
    if (tr.get())
    {
        robj.push_back( Pair("msg", tr->name + strCounts + LEX_CAST_STR(add_reward)));
    }
    return HC_SUCCESS;
}
开发者ID:lindianyin,项目名称:sgbj,代码行数:62,代码来源:farm.cpp


示例17: trySubMaterial

//升级装备
int CharData::upgradeEquipment(int eid, bool cost_gold, json_spirit::Object& robj)
{
    if (cost_gold && gold() < 50)
    {
        return HC_ERROR_NOT_ENOUGH_GOLD;
    }
    //cout<<"upgradeEquipment(), eid "<<eid<<endl;
    equipment_scroll* sp = NULL;
    EquipmentData* src_eq = m_bag.getEquipById(eid);
    if (!src_eq)
    {
        src_eq = m_generals.getEquipById(eid);
    }
    if (src_eq)
    {
        //cout<<"find scroll by src_id "<<src_eq->baseid<<endl;
        sp = Singleton<equipment_scroll_mgr>::Instance().getScrollBySrcId(src_eq->baseid);
        if (!sp)
        {
            //cout<<"not find"<<endl;
            return HC_ERROR;
        }
    }
    else
    {
        //cout<<"wrong eid"<<endl;
        return HC_ERROR;
    }
    Bag* pbag = src_eq->getContainer();
    //武将身上,判断等级是否够
    if (pbag != &m_bag && pbag && pbag->gd.get() && pbag->gd->m_level < sp->m_equipment->needLevel)
    {
        return HC_ERROR_NOT_ENOUGH_GENERAL_LEVEL;
    }
    if (m_bag.getGemCount(sp->m_gem_id) <= 0)
    {
        //cout<<"no scroll,gem id: "<<sp->m_gem_id<<endl;
        return HC_ERROR;
    }
    //扣材料
    bool success = trySubMaterial(sp, m_bag);
    if (!success)
    {
        //cout<<"trySubMaterial() return false"<<endl;
        return HC_ERROR;
    }
    //扣卷轴
    int err_code = 0;
    m_bag.addGem(sp->m_gem_id, -1, err_code);
    if (cost_gold)
    {
        if (addGold(-iUpgradeEquiptmentKeepLevelGold) < 0)
        {
            return HC_ERROR_NOT_ENOUGH_GOLD;
        }
        //金币消耗统计
        add_statistics_of_gold_cost(m_id, m_ip_address, iUpgradeEquiptmentKeepLevelGold, gold_cost_for_upgrade_equipment, m_union_id, m_server_id);
#ifdef QQ_PLAT
        gold_cost_tencent(this,iUpgradeEquiptmentKeepLevelGold,gold_cost_for_upgrade_equipment);
#endif
        NotifyCharData();
        //act统计
        act_to_tencent(this,act_new_equipt_make_special,src_eq->qLevel,src_eq->quality);
    }
    //升级装备
    src_eq->upgrade(cost_gold);

    if (src_eq->getContainer() != &m_bag)
    {
        m_weapon_attack_change = true;
        if (pbag->gd.get())
        {
            pbag->gd->updateEquipmentEffect();
        }
    }
    
    json_spirit::Object eq;
    src_eq->toObj(eq);
    robj.push_back( Pair("equipVO", eq) );

    updateEnhanceCost();
    updateEnhanceCDList();
    if (src_eq->baseEq.get())
    {
        std::string link_name = strEquipLink;
        str_replace(link_name, "$G", LEX_CAST_STR(src_eq->id));
        str_replace(link_name, "$C", LEX_CAST_STR(m_id));
        str_replace(link_name, "$N", src_eq->baseEq->name);

        addColor(link_name, src_eq->quality);
        //广播升级装备信息
        std::string notify_msg = strEquiptMakeInfo;
        str_replace(notify_msg, "$N", MakeCharNameLink(m_name));
        str_replace(notify_msg, "$G", link_name);
        GeneralDataMgr::getInstance()->broadCastSysMsg(notify_msg, -1);
    }
    
    //七日目标
    Singleton<seven_Goals_mgr>::Instance().updateGoals(*this,queryCreateDays(),goals_type_equipt,src_eq->baseid);
//.........这里部分代码省略.........
开发者ID:lindianyin,项目名称:sgbj,代码行数:101,代码来源:equipment_make.cpp


示例18: fillJSONObject

void PrinterState::fillJSONObject(json_spirit::Object &obj) {
    using namespace json_spirit;
    mutex::scoped_lock l(mutex);
    obj.push_back(Pair("activeExtruder",activeExtruder));
    obj.push_back(Pair("x",x));
    obj.push_back(Pair("y",y));
    obj.push_back(Pair("z",z));
    obj.push_back(Pair("fanOn",fanOn));
    obj.push_back(Pair("fanVoltage",fanVoltage));
    obj.push_back(Pair("powerOn",powerOn));
    obj.push_back(Pair("debugLevel",debugLevel));
    obj.push_back(Pair("hasXHome",hasXHome));
    obj.push_back(Pair("hasYHome",hasYHome));
    obj.push_back(Pair("hasZHome",hasZHome));
    obj.push_back(Pair("layer",layer));
    obj.push_back(Pair("sdcardMounted",sdcardMounted));
    obj.push_back(Pair("bedTempSet",bed.tempSet));
    obj.push_back(Pair("bedTempRead",bed.tempRead));
    obj.push_back(Pair("speedMultiply",speedMultiply));
    obj.push_back(Pair("flowMultiply",flowMultiply));
    obj.push_back(Pair("numExtruder",printer->extruderCount));
    obj.push_back(Pair("firmware",firmware));
    obj.push_back(Pair("firmwareURL",firmwareURL));
    Array ea;
    for(int i=0;i<printer->extruderCount;i++) {
        Object e;
        e.push_back(Pair("tempSet",extruder[i].tempSet));
        e.push_back(Pair("tempRead",extruder[i].tempRead));
        e.push_back(Pair("output",extruder[i].output));
        ea.push_back(e);
    }
    obj.push_back(Pair("extruder",ea));
}
开发者ID:CNCBASHER,项目名称:Repetier-Server,代码行数:33,代码来源:PrinterState.cpp


示例19: Pair

//打开物品
int CharData::openSlotItm(int slot, int nums, json_spirit::Object& robj)
{
    boost::shared_ptr<iItem> itm = m_bag.getItem(slot);
    if (!itm.get())
    {
        return HC_ERROR;
    }
    if (itm->getType() != iItem_type_gem)
    {
        return HC_ERROR;
    }
    int use_num = itm->getCount();
    if (nums > 0 && itm->getCount() > nums)
    {
        use_num = nums;
    }
    Gem* pg = dynamic_cast<Gem*>(itm.get());
    robj.push_back( Pair("use", pg->getUsage()) );

    switch (pg->getUsage())
    {
        //变身卡
        case ITEM_USAGE_CHANGE_CARD:
        {
            m_change_spic = itm->getSubtype() - 499;
            m_change_spic_time = time(NULL) + 7200;
            m_bag.removeItem(slot);
            itm->Clear();
            itm->Save();
            //robj.push_back( Pair("refresh", 1) );
            setExtraData(char_data_type_normal, char_data_change_spic, m_change_spic);
            setExtraData(char_data_type_normal, char_data_change_spic_time, m_change_spic_time);
            return HC_SUCCESS;
        }
        //兑换货币
        case ITEM_USAGE_SILVER_CARD:
        {
            int total = pg->getValue() * use_num;
            addSilver(total);
            //银币统计
            add_statistics_of_silver_get(m_id,m_ip_address,total,silver_get_by_treasure, m_union_id, m_server_id);
            json_spirit::Object obj;
            obj.push_back( Pair("type", item_type_silver) );
            obj.push_back( Pair("count", total) );
            obj.push_back( Pair("id", 0) );
            obj.push_back( Pair("fac", 0) );
            obj.push_back( Pair("name", strSilver) );
            robj.push_back( Pair("get", obj) );
            if (itm->getCount() > use_num)
            {
                itm->addCount(-use_num);
            }
            else
            {
                m_bag.removeItem(slot);
                itm->Clear();
            }
            itm->Save();
            NotifyCharData();
            return HC_SUCCESS;
        }
        case ITEM_USAGE_GOLD_CARD:
        {
            int total = pg->getValue() * use_num;
            addGold(total);
            //金币获得统计
            add_statistics_of_gold_get(m_id,m_ip_address,total,gold_get_treasure, m_union_id, m_server_id);
            json_spirit::Object obj;
            obj.push_back( Pair("type", item_type_gold) );
            obj.push_back( Pair("count", total) );
            obj.push_back( Pair("id", 0) );
            obj.push_back( Pair("fac", 0) );
            obj.push_back( Pair("name", strGold) );
            robj.push_back( Pair("get", obj) );
            if (itm->getCount() > use_num)
            {
                itm->addCount(-use_num);
            }
            else
            {
                m_bag.removeItem(slot);
                itm->Clear();
            }
            itm->Save();
            NotifyCharData();
            return HC_SUCCESS;
        }
        case ITEM_USAGE_YUSHI_CARD:
        {
            int total = pg->getValue() * use_num;
            addTreasure(treasure_type_yushi, total);
            json_spirit::Object obj;
            obj.push_back( Pair("type", item_type_treasure) );
            obj.push_back( Pair("count", total) );
            obj.push_back( Pair("id", treasure_type_yushi) );
            obj.push_back( Pair("fac", 0) );
            boost::shared_ptr<baseTreasure> tr = GeneralDataMgr::getInstance()->GetBaseTreasure(treasure_type_yushi);
            if (tr.get())
            {
//.........这里部分代码省略.........
开发者ID:lindianyin,项目名称:sgbj,代码行数:101,代码来源:equipment_make.cpp


示例20: serialize

 virtual void serialize(json_spirit::Object &json) {
     AE::serialize(json);
     json.push_back(json_spirit::Pair("PARAM_IDX", json_spirit::Value(m_paramIdx)));
 }
开发者ID:ambell,项目名称:h-store,代码行数:4,代码来源:expression_test.cpp



注:本文中的json_spirit::Object类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ jsonbox::Value类代码示例发布时间:2022-05-31
下一篇:
C++ value::iterator类代码示例发布时间:2022-05-31
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap