本文整理汇总了C++中json_spirit::Object类的典型用法代码示例。如果您正苦于以下问题:C++ Object类的具体用法?C++ Object怎么用?C++ Object使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Object类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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;
}
}
示例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;
}
示例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;
}
示例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;
}
示例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;
}
示例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;
}
示例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);
//.........这里部分代码省略.........
示例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) );
//.........这里部分代码省略.........
示例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;
}
示例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;
}
示例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;
}
示例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;
}
示例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));
}
示例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) );
}
示例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) );
}
}