本文整理汇总了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等源码及文档管理平台, |
请发表评论