_rspErr(1, 'Please enter instructions'); return; } $cmd = $cmds[0]; $params = count($cmds) > 1 ? array_slice($cmds, 1) : array(); $cmdHash = array( '.help' => function () use($params) { $this->help($params); }, '.additem' => function () use($params) { $this->addItem($params); }, // '.addnft' => function () use($params) { // $this->addNft($params); // }, '.addtili' => function () use($params) { $this->addTili($params); }, '.getsystime' => function () use($params) { $this->getSysTime($params); }, '.setsystime' => function () use($params) { $this->setSysTime($params); }, '.reset_mission' => function () use($params) { $this->resetMission($params); } ); $func = getXVal($cmdHash, $cmd); if ($func) { $func($params); } else { $this->_rspErr(2, 'Unrecognized instruction'); return; } } private function help($params) { $this->_rspData(array( 'text' => <<_addItems(array( array( 'item_id' => $itemId, 'item_num' => $itemNum ) ), $awardService, $propertyChgService); $this->_rspData(array( 'text' => 'add item success', 'award' => $awardService->toDto(), 'property_chg' => $propertyChgService->toDto(), )); } private function addNft($params) { $itemId = getXVal($params, 0, 0); $propertyChgService = new services\PropertyChgService(); $awardService = new services\AwardService(); $itemMeta = mt\Item::get($itemId); if ($itemMeta) { $tokenType = Nft::getTokenType($itemMeta); if ($tokenType == Nft::NONE_TYPE) { myself()->_rspErr(1, 'param item_id error'); return; } else { SqlHelper::insert( myself()->_getMarketMysql(), 't_nft', array( 'token_id' => Nft::genTempTokenId(), 'token_type' => $tokenType, 'game_id' => 2006, 'item_id' => $itemId, 'owner_address' => myself()->_getOpenId(), 'createtime' => myself()->_getNowTime(), 'modifytime' => myself()->_getNowTime(), ) ); } } else { myself()->_rspErr(1, 'param item_id error'); return; } $this->_rspData(array( 'text' => 'add nft success', 'award' => $awardService->toDto(), 'property_chg' => $propertyChgService->toDto(), )); } private function addTili($params) { $heroId = getXVal($params, 0, 0); $tili = getXVal($params, 1, 0); Hero::update($heroId, array( 'hero_tili' => "hero_tili + ${tili}" )); $propertyChgService->addHeroChg(); $this->_rspData(array( 'text' => 'add item success', 'award' => $awardService->toDto(), 'property_chg' => $propertyChgService->toDto(), )); } private function getSysTime($params) { $sysTime = phpcommon\timestamp_to_datetime(phpcommon\getNowTime()); $this->_rspData(array( 'text' => $sysTime, )); } private function setSysTime($params) { if (!defined('GLOBAL_TIME_OFFSET_KEY')) { die('不支持设置系统时间'); return; } $newtime = strtotime($_REQUEST['newtime']); if ($newtime <= 0) { die('时间格式错误'); return; } $time_offset = $newtime - phpcommon\getRealTime(); $r = new phpcommon\Redis(array( 'host' => '127.0.0.1', 'port' => 6379, 'passwd' => '' )); $r->set(GLOBAL_TIME_OFFSET_KEY, $time_offset); } private function resetMission($params) { myself()->_getSelfMysql()->execScript('DELETE FROM t_mission;'); myself()->_getSelfMysql()->execScript('DELETE FROM t_bigdata;'); myself()->_rspOk(); } }