新人任务
This commit is contained in:
parent
d7072c4c23
commit
6ccd751f0d
59
doc/RookieTask.py
Normal file
59
doc/RookieTask.py
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import _common
|
||||||
|
|
||||||
|
class RookieTask(object):
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.apis = [
|
||||||
|
{
|
||||||
|
'name': 'bindRookieTask',
|
||||||
|
'desc': '记录用户新人任务开启',
|
||||||
|
'group': 'RookieTask',
|
||||||
|
'url': 'webapp/index.php?c=RookieTask&a=bindRookieTask',
|
||||||
|
'params': [
|
||||||
|
_common.ReqHead(),
|
||||||
|
],
|
||||||
|
'response': [
|
||||||
|
_common.RspHead(),
|
||||||
|
]
|
||||||
|
},{
|
||||||
|
'name': 'taskList',
|
||||||
|
'desc': '新人任务列表',
|
||||||
|
'group': 'RookieTask',
|
||||||
|
'url': 'webapp/index.php?c=RookieTask&a=taskList',
|
||||||
|
'params': [
|
||||||
|
_common.ReqHead(),
|
||||||
|
],
|
||||||
|
'response': [
|
||||||
|
_common.RspHead(),
|
||||||
|
['!task_list1', [Task()], '任务列表1'],
|
||||||
|
['!task_list2', [Task()], '任务列表2'],
|
||||||
|
]
|
||||||
|
},{
|
||||||
|
'name': 'commitTaskS',
|
||||||
|
'desc': '提交任务',
|
||||||
|
'group': 'RookieTask',
|
||||||
|
'url': 'webapp/index.php?c=RookieTask&a=commitTaskS',
|
||||||
|
'params': [
|
||||||
|
_common.ReqHead(),
|
||||||
|
['task_id', [Task()], '任务id'],
|
||||||
|
],
|
||||||
|
'response': [
|
||||||
|
_common.RspHead(),
|
||||||
|
['award', _common.Award(), '奖励信息'],
|
||||||
|
['property_chg', _common.PropertyChg(), '属性变更'],
|
||||||
|
]
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
class Task(object):
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.fields = [
|
||||||
|
['task_id', 0, '任务id'],
|
||||||
|
['current', 0, '任务进度-当前'],
|
||||||
|
['target', 0, '任务进度-目标'],
|
||||||
|
['state', 0, '任务状态 0:未完成 1:完成未领取 2:完成已领取 3:未到时间'],
|
||||||
|
]
|
@ -2139,3 +2139,58 @@ CREATE TABLE `t_user_bind_gold_record` (
|
|||||||
) ENGINE=InnoDB AUTO_INCREMENT=10000 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
) ENGINE=InnoDB AUTO_INCREMENT=10000 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `t_user_rookie_task_bind`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `t_user_rookie_task_bind`;
|
||||||
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
|
/*!40101 SET character_set_client = utf8 */;
|
||||||
|
CREATE TABLE `t_user_rookie_task_bind` (
|
||||||
|
`idx` bigint NOT NULL AUTO_INCREMENT COMMENT '自增id',
|
||||||
|
`account_id` varchar(60) NOT NULL DEFAULT '' COMMENT '账号id(channel + "_" + gameid + "_" + openid)',
|
||||||
|
`createtime` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||||
|
`modifytime` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间',
|
||||||
|
PRIMARY KEY (`idx`),
|
||||||
|
UNIQUE KEY `account_id` (`account_id`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=10000 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `t_rookie_task`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `t_rookie_task`;
|
||||||
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
|
/*!40101 SET character_set_client = utf8 */;
|
||||||
|
CREATE TABLE `t_rookie_task` (
|
||||||
|
`idx` bigint NOT NULL AUTO_INCREMENT COMMENT '自增id',
|
||||||
|
`account_id` varchar(60) NOT NULL DEFAULT '' COMMENT '账号id(channel + "_" + gameid + "_" + openid)',
|
||||||
|
`task_id` int(11) NOT NULL DEFAULT '0' COMMENT '任务id',
|
||||||
|
`createtime` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||||
|
`modifytime` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间',
|
||||||
|
PRIMARY KEY (`idx`),
|
||||||
|
UNIQUE KEY `account_id_task` (`account_id`, `task_id`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=10000 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `t_rookie_task_value`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `t_rookie_task_value`;
|
||||||
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
|
/*!40101 SET character_set_client = utf8 */;
|
||||||
|
CREATE TABLE `t_rookie_task_value` (
|
||||||
|
`idx` bigint NOT NULL AUTO_INCREMENT COMMENT '自增id',
|
||||||
|
`account_id` varchar(60) NOT NULL DEFAULT '' COMMENT '账号id(channel + "_" + gameid + "_" + openid)',
|
||||||
|
`task_type` int(11) NOT NULL DEFAULT '0' COMMENT '任务id',
|
||||||
|
`value` int(11) NOT NULL DEFAULT '0' COMMENT '任务进度',
|
||||||
|
`createtime` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||||
|
`modifytime` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间',
|
||||||
|
PRIMARY KEY (`idx`),
|
||||||
|
UNIQUE KEY `account_id_task` (`account_id`, `task_type`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=10000 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
|
@ -14,6 +14,36 @@ CREATE TABLE `t_user_bind_gold_record` (
|
|||||||
PRIMARY KEY (`idx`)
|
PRIMARY KEY (`idx`)
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=10000 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
) ENGINE=InnoDB AUTO_INCREMENT=10000 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
|
CREATE TABLE `t_user_rookie_task_bind` (
|
||||||
|
`idx` bigint NOT NULL AUTO_INCREMENT COMMENT '自增id',
|
||||||
|
`account_id` varchar(60) NOT NULL DEFAULT '' COMMENT '账号id(channel + "_" + gameid + "_" + openid)',
|
||||||
|
`createtime` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||||
|
`modifytime` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间',
|
||||||
|
PRIMARY KEY (`idx`),
|
||||||
|
UNIQUE KEY `account_id` (`account_id`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=10000 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
|
CREATE TABLE `t_rookie_task` (
|
||||||
|
`idx` bigint NOT NULL AUTO_INCREMENT COMMENT '自增id',
|
||||||
|
`account_id` varchar(60) NOT NULL DEFAULT '' COMMENT '账号id(channel + "_" + gameid + "_" + openid)',
|
||||||
|
`task_id` int(11) NOT NULL DEFAULT '0' COMMENT '任务id',
|
||||||
|
`createtime` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||||
|
`modifytime` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间',
|
||||||
|
PRIMARY KEY (`idx`),
|
||||||
|
UNIQUE KEY `account_id_task` (`account_id`, `task_id`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=10000 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
|
CREATE TABLE `t_rookie_task_value` (
|
||||||
|
`idx` bigint NOT NULL AUTO_INCREMENT COMMENT '自增id',
|
||||||
|
`account_id` varchar(60) NOT NULL DEFAULT '' COMMENT '账号id(channel + "_" + gameid + "_" + openid)',
|
||||||
|
`task_type` int(11) NOT NULL DEFAULT '0' COMMENT '任务id',
|
||||||
|
`value` int(11) NOT NULL DEFAULT '0' COMMENT '任务进度',
|
||||||
|
`createtime` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||||
|
`modifytime` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间',
|
||||||
|
PRIMARY KEY (`idx`),
|
||||||
|
UNIQUE KEY `account_id_task` (`account_id`, `task_type`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=10000 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
insert into version (version) values(2024092401);
|
insert into version (version) values(2024092401);
|
||||||
|
|
||||||
commit;
|
commit;
|
||||||
|
@ -27,6 +27,7 @@ define('V_ITEM_REVIVE_COIN', 140001); //复活币
|
|||||||
define('V_ITEM_CHIP_META', 100007); //芯片升级材料
|
define('V_ITEM_CHIP_META', 100007); //芯片升级材料
|
||||||
define('V_ITEM_GOLD_BULLION_1W', 10017); //金砖1w
|
define('V_ITEM_GOLD_BULLION_1W', 10017); //金砖1w
|
||||||
define('V_ITEM_GOLD_BULLION_10W', 10018); //金砖10w
|
define('V_ITEM_GOLD_BULLION_10W', 10018); //金砖10w
|
||||||
|
define('V_ITEM_ROOKIE_TASK_POINT', 10027); //新人七日任务积分
|
||||||
|
|
||||||
define('TN_BEGIN', 8001);
|
define('TN_BEGIN', 8001);
|
||||||
define('TN_ACTIVE', 8002);
|
define('TN_ACTIVE', 8002);
|
||||||
|
@ -6,6 +6,7 @@ require_once('mt/Drop.php');
|
|||||||
require_once('mt/Hero.php');
|
require_once('mt/Hero.php');
|
||||||
require_once('mt/LootConfig.php');
|
require_once('mt/LootConfig.php');
|
||||||
require_once('mt/StakingVip.php');
|
require_once('mt/StakingVip.php');
|
||||||
|
require_once('mt/RookieTask.php');
|
||||||
|
|
||||||
require_once('models/Bag.php');
|
require_once('models/Bag.php');
|
||||||
require_once('models/Hero.php');
|
require_once('models/Hero.php');
|
||||||
@ -443,6 +444,7 @@ class BagController extends BaseAuthedController {
|
|||||||
);
|
);
|
||||||
$this->_decItems($costItems);
|
$this->_decItems($costItems);
|
||||||
$this->openBattleBox($itemDb,$itemMeta,$itemNum,$costItems);
|
$this->openBattleBox($itemDb,$itemMeta,$itemNum,$costItems);
|
||||||
|
myself()->_callModelStatic('RookieTask','incTaskVal',mt\RookieTask::PIGGY_BANK_OPEN_BOX_TIMES_COND,$itemNum);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function openBattleBox($itemDb,$itemMeta,$itemNum,$costItems){
|
private function openBattleBox($itemDb,$itemMeta,$itemNum,$costItems){
|
||||||
|
@ -26,6 +26,7 @@ require_once('mt/Drop.php');
|
|||||||
require_once('mt/StarLevel.php');
|
require_once('mt/StarLevel.php');
|
||||||
require_once('mt/BattlePass.php');
|
require_once('mt/BattlePass.php');
|
||||||
require_once('mt/AchievementsCycle.php');
|
require_once('mt/AchievementsCycle.php');
|
||||||
|
require_once('mt/RookieTask.php');
|
||||||
|
|
||||||
use phpcommon\SqlHelper;
|
use phpcommon\SqlHelper;
|
||||||
use models\Bag;
|
use models\Bag;
|
||||||
@ -346,7 +347,16 @@ class BaseAuthedController extends BaseController {
|
|||||||
|
|
||||||
public function _isVirtualItem($itemId)
|
public function _isVirtualItem($itemId)
|
||||||
{
|
{
|
||||||
return in_array($itemId, array(V_ITEM_BIND_GOLD,V_ITEM_GOLD, V_ITEM_DIAMOND, V_ITEM_EXP, V_ITEM_ACTIVE,V_ITEM_BCEG,V_ITEM_STAR));
|
return in_array($itemId, array(
|
||||||
|
V_ITEM_BIND_GOLD,
|
||||||
|
V_ITEM_GOLD,
|
||||||
|
V_ITEM_DIAMOND,
|
||||||
|
V_ITEM_EXP,
|
||||||
|
V_ITEM_ACTIVE,
|
||||||
|
V_ITEM_BCEG,
|
||||||
|
V_ITEM_STAR,
|
||||||
|
V_ITEM_ROOKIE_TASK_POINT,
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function _addVirtualItem($itemId, $itemNum)
|
public function _addVirtualItem($itemId, $itemNum)
|
||||||
@ -450,6 +460,12 @@ class BaseAuthedController extends BaseController {
|
|||||||
case V_ITEM_BIND_GOLD:
|
case V_ITEM_BIND_GOLD:
|
||||||
{
|
{
|
||||||
$this->_incDailyV(TN_DAILY_BIND_GOLD, 0,$itemNum);
|
$this->_incDailyV(TN_DAILY_BIND_GOLD, 0,$itemNum);
|
||||||
|
myself()->_callModelStatic('RookieTask','incTaskVal',mt\RookieTask::PIGGY_BANK_GOLD_COND,$itemNum);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case V_ITEM_ROOKIE_TASK_POINT:
|
||||||
|
{
|
||||||
|
myself()->_callModelStatic('RookieTask','incTaskVal',\mt\RookieTask::TOTAL_COMMIT_TASK_TIMES_COND,$itemNum);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -8,6 +8,7 @@ require_once('mt/BattleRandAttribute.php');
|
|||||||
require_once('mt/EconomyAttribute.php');
|
require_once('mt/EconomyAttribute.php');
|
||||||
require_once('mt/Manufacture.php');
|
require_once('mt/Manufacture.php');
|
||||||
require_once('mt/Parameter.php');
|
require_once('mt/Parameter.php');
|
||||||
|
require_once('mt/RookieTask.php');
|
||||||
|
|
||||||
require_once('services/PropertyChgService.php');
|
require_once('services/PropertyChgService.php');
|
||||||
require_once('services/AwardService.php');
|
require_once('services/AwardService.php');
|
||||||
@ -299,6 +300,7 @@ class ChipController extends BaseAuthedController
|
|||||||
));
|
));
|
||||||
$this->_addItems($items,$awardService,$propertyChgService);
|
$this->_addItems($items,$awardService,$propertyChgService);
|
||||||
}
|
}
|
||||||
|
myself()->_callModelStatic('RookieTask','incTaskVal',\mt\RookieTask::SALVAGE_CHIP_TIMES_COND,count($uniidArr));
|
||||||
$propertyChgService->addChip();
|
$propertyChgService->addChip();
|
||||||
$propertyChgService->addBagChg();
|
$propertyChgService->addBagChg();
|
||||||
$event = array(
|
$event = array(
|
||||||
|
@ -4,6 +4,7 @@ require_once('models/Chip.php');
|
|||||||
require_once('models/ChipPage.php');
|
require_once('models/ChipPage.php');
|
||||||
require_once('models/Hero.php');
|
require_once('models/Hero.php');
|
||||||
require_once('mt/EconomyAttribute.php');
|
require_once('mt/EconomyAttribute.php');
|
||||||
|
require_once('mt/RookieTask.php');
|
||||||
require_once('services/ChipPageService.php');
|
require_once('services/ChipPageService.php');
|
||||||
require_once('services/PropertyChgService.php');
|
require_once('services/PropertyChgService.php');
|
||||||
|
|
||||||
@ -88,6 +89,7 @@ class ChipPageController extends BaseAuthedController
|
|||||||
$this->_decItems($costItems);
|
$this->_decItems($costItems);
|
||||||
$propertyChgService->addUserChg();
|
$propertyChgService->addUserChg();
|
||||||
ChipPage::unlockSlot($chipPageDb,$slotId);
|
ChipPage::unlockSlot($chipPageDb,$slotId);
|
||||||
|
myself()->_callModelStatic('RookieTask','incTaskVal',\mt\RookieTask::OPEN_CHIP_SLOT_TIMES_COND,1);
|
||||||
$this->_rspData(array(
|
$this->_rspData(array(
|
||||||
'property_chg' => $propertyChgService->toDto(),
|
'property_chg' => $propertyChgService->toDto(),
|
||||||
));
|
));
|
||||||
@ -144,6 +146,7 @@ class ChipPageController extends BaseAuthedController
|
|||||||
ChipPage::update($hero_unnid,array(
|
ChipPage::update($hero_unnid,array(
|
||||||
'data' => json_encode($data)
|
'data' => json_encode($data)
|
||||||
));
|
));
|
||||||
|
myself()->_callModelStatic('RookieTask','incTaskVal',\mt\RookieTask::EMBED_CHIP_COND,1);
|
||||||
$newChipPageDb = ChipPage::find($hero_unnid);
|
$newChipPageDb = ChipPage::find($hero_unnid);
|
||||||
$chipPageDto = ChipPage::toDtoInfo($newChipPageDb);
|
$chipPageDto = ChipPage::toDtoInfo($newChipPageDb);
|
||||||
$this->_rspData(array(
|
$this->_rspData(array(
|
||||||
|
@ -5,6 +5,7 @@ require_once('services/LootService.php');
|
|||||||
require_once('mt/AchievementsPower.php');
|
require_once('mt/AchievementsPower.php');
|
||||||
require_once('mt/AchievementsCycle.php');
|
require_once('mt/AchievementsCycle.php');
|
||||||
require_once('mt/Parameter.php');
|
require_once('mt/Parameter.php');
|
||||||
|
require_once('mt/RookieTask.php');
|
||||||
require_once('models/HashRate.php');
|
require_once('models/HashRate.php');
|
||||||
|
|
||||||
use models\HashRate;
|
use models\HashRate;
|
||||||
@ -134,6 +135,13 @@ class HashRateController extends BaseAuthedController
|
|||||||
$rewardNum = $reward[0]['item_num'];
|
$rewardNum = $reward[0]['item_num'];
|
||||||
HashRate::add($taskMeta['id'],$currentPeriod['id']);
|
HashRate::add($taskMeta['id'],$currentPeriod['id']);
|
||||||
HashRate::rewardAdd($currentPeriod['id'],$rewardNum);
|
HashRate::rewardAdd($currentPeriod['id'],$rewardNum);
|
||||||
|
if ($taskMeta['task_type'] == \mt\AchievementsPower::TYPE5){
|
||||||
|
myself()->_callModelStatic('RookieTask','incTaskVal',mt\RookieTask::HASH_RATE_DRAW_REWARD_TIMES_COND,1);
|
||||||
|
}else{
|
||||||
|
myself()->_callModelStatic('RookieTask','incTaskVal',mt\RookieTask::HASH_TASK_COMMIT_TIMES_COND,1);
|
||||||
|
}
|
||||||
|
|
||||||
|
myself()->_callModelStatic('RookieTask','incTaskVal',mt\RookieTask::TOTAL_HASH_RATE_VALUE_COND,$rewardNum);
|
||||||
// //刷新任务
|
// //刷新任务
|
||||||
// $refreshTimes = myself()->_getDailyV(TN_HASH_DAILY_REFRESH_TIMES,0);
|
// $refreshTimes = myself()->_getDailyV(TN_HASH_DAILY_REFRESH_TIMES,0);
|
||||||
// $refreshTimesMax = \mt\Parameter::getVal('economy_account_compute_refresh_max',5);
|
// $refreshTimesMax = \mt\Parameter::getVal('economy_account_compute_refresh_max',5);
|
||||||
@ -169,6 +177,7 @@ class HashRateController extends BaseAuthedController
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$this->hashRateService->refreshHashRateTask($taskMeta,$currentPeriod['id']);
|
$this->hashRateService->refreshHashRateTask($taskMeta,$currentPeriod['id']);
|
||||||
|
myself()->_callModelStatic('RookieTask','incTaskVal',mt\RookieTask::HASH_TASK_REFRESH_TIMES_COND,1);
|
||||||
$this->_rspOk();
|
$this->_rspOk();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
78
webapp/controller/RookieTaskController.class.php
Normal file
78
webapp/controller/RookieTaskController.class.php
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
require_once('services/PropertyChgService.php');
|
||||||
|
require_once('services/AwardService.php');
|
||||||
|
require_once('services/RookieTaskService.php');
|
||||||
|
|
||||||
|
require_once('mt/RookieTask.php');
|
||||||
|
|
||||||
|
require_once('models/RookieTask.php');
|
||||||
|
|
||||||
|
use models\RookieTask;
|
||||||
|
class RookieTaskController extends BaseAuthedController {
|
||||||
|
|
||||||
|
public function bindRookieTask(){
|
||||||
|
RookieTask::bindUser();
|
||||||
|
$this->_rspOk();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function taskList(){
|
||||||
|
$day = getReqVal('day', 1);
|
||||||
|
$metaList = \mt\RookieTask::getCustomDayMetaList($day);
|
||||||
|
$taskList1 = array();
|
||||||
|
foreach ($metaList as $meta){
|
||||||
|
$metaDto = \services\RookieTaskService::getTaskDto($meta);
|
||||||
|
array_push($taskList1,$metaDto);
|
||||||
|
}
|
||||||
|
$metaList2 = \mt\RookieTask::getCustomDayMetaList();
|
||||||
|
$taskList2 = array();
|
||||||
|
foreach ($metaList2 as $meta){
|
||||||
|
$metaDto = \services\RookieTaskService::getTaskDto($meta);
|
||||||
|
array_push($taskList2,$metaDto);
|
||||||
|
}
|
||||||
|
$this->_rspData(array(
|
||||||
|
'task_list1' => $taskList1,
|
||||||
|
'task_list2' => $taskList2,
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function commitTaskS(){
|
||||||
|
$task_id = getReqVal('task_id', 0);
|
||||||
|
$taskMeta = mt\RookieTask::find($task_id);
|
||||||
|
if (!$taskMeta) {
|
||||||
|
$this->_rspErr(1, 'task_id parameter error');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$taskMetaDto = \services\RookieTaskService::getTaskDto($taskMeta);
|
||||||
|
if (!$taskMetaDto) {
|
||||||
|
$this->_rspErr(10, 'server internal error');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if ($taskMetaDto['state'] == \services\RookieTaskService::RECEIVED_STATE) {
|
||||||
|
$this->_rspErr(2, "Can't get it again");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if ($taskMetaDto['state'] == \services\RookieTaskService::NOT_FINISHED_STATE) {
|
||||||
|
$this->_rspErr(3, 'task objectives not achieved');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if ($taskMetaDto['state'] == \services\RookieTaskService::UNARRIVED_TIME_STATE) {
|
||||||
|
$this->_rspErr(3, 'The task is not started');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$dropMeta = mt\Drop::get($taskMeta['reward']);
|
||||||
|
if (!$dropMeta) {
|
||||||
|
$this->_rspErr(10, 'server internal error:' . $taskMeta['reward']);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$propertyChgService = new services\PropertyChgService();
|
||||||
|
$awardService = new services\AwardService();
|
||||||
|
$this->_scatterDrop('rookieTask:' . $task_id, $dropMeta, $awardService, $propertyChgService);
|
||||||
|
RookieTask::add($task_id);
|
||||||
|
$this->_rspData(array(
|
||||||
|
'award' => $awardService->toDto(),
|
||||||
|
'property_chg' => $propertyChgService->toDto(),
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -4,6 +4,7 @@ require_once('services/AwardService.php');
|
|||||||
|
|
||||||
require_once('mt/ServerTaskTime.php');
|
require_once('mt/ServerTaskTime.php');
|
||||||
require_once('mt/Parameter.php');
|
require_once('mt/Parameter.php');
|
||||||
|
require_once('mt/RookieTask.php');
|
||||||
|
|
||||||
require_once('models/Hero.php');
|
require_once('models/Hero.php');
|
||||||
|
|
||||||
@ -51,6 +52,7 @@ class SavingPotController extends BaseAuthedController {
|
|||||||
$this->_addItems($items, $awardService,$propertyChgService);
|
$this->_addItems($items, $awardService,$propertyChgService);
|
||||||
$this->_setDailyV(TN_DAILY_DRAW_BIND_GOLD_STATE, 0,1);
|
$this->_setDailyV(TN_DAILY_DRAW_BIND_GOLD_STATE, 0,1);
|
||||||
$this->_setDailyV(TN_DAILY_BIND_GOLD, 0,0);
|
$this->_setDailyV(TN_DAILY_BIND_GOLD, 0,0);
|
||||||
|
myself()->_callModelStatic('RookieTask','incTaskVal',mt\RookieTask::PIGGY_BANK_OPEN_TIMES_COND,1);
|
||||||
SqlHelper::insert
|
SqlHelper::insert
|
||||||
(myself()->_getSelfMysql(),
|
(myself()->_getSelfMysql(),
|
||||||
't_user_bind_gold_record',
|
't_user_bind_gold_record',
|
||||||
@ -97,6 +99,7 @@ class SavingPotController extends BaseAuthedController {
|
|||||||
$this->_addItems($items, $awardService,$propertyChgService);
|
$this->_addItems($items, $awardService,$propertyChgService);
|
||||||
$this->_setDailyV(TN_DAILY_DRAW_BIND_GOLD_STATE, 0,1);
|
$this->_setDailyV(TN_DAILY_DRAW_BIND_GOLD_STATE, 0,1);
|
||||||
$this->_setDailyV(TN_DAILY_BIND_GOLD, 0,0);
|
$this->_setDailyV(TN_DAILY_BIND_GOLD, 0,0);
|
||||||
|
myself()->_callModelStatic('RookieTask','incTaskVal',mt\RookieTask::PIGGY_BANK_DRAW_TIMES_COND,1);
|
||||||
SqlHelper::insert
|
SqlHelper::insert
|
||||||
(myself()->_getSelfMysql(),
|
(myself()->_getSelfMysql(),
|
||||||
't_user_bind_gold_record',
|
't_user_bind_gold_record',
|
||||||
|
@ -2,16 +2,19 @@
|
|||||||
|
|
||||||
namespace events;
|
namespace events;
|
||||||
|
|
||||||
|
require_once('mt/RookieTask.php');
|
||||||
|
|
||||||
class Synthesis
|
class Synthesis
|
||||||
{
|
{
|
||||||
|
|
||||||
public static function onHroSyn($params){
|
public static function onHroSyn($params){
|
||||||
myself()->_callServiceStatic('HashRateService', 'onSynHero', $params);
|
myself()->_callServiceStatic('HashRateService', 'onSynHero', $params);
|
||||||
|
myself()->_callModelStatic('RookieTask','incTaskVal',\mt\RookieTask::SYN_HERO_TIMES_COND,$params);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function onChipSyn($params){
|
public static function onChipSyn($params){
|
||||||
myself()->_callServiceStatic('HashRateService', 'onSynChip', $params);
|
myself()->_callServiceStatic('HashRateService', 'onSynChip', $params);
|
||||||
|
myself()->_callModelStatic('RookieTask','incTaskVal',\mt\RookieTask::SYN_CHIP_TIMES_COND,$params);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function onSkinSyn($params){
|
public static function onSkinSyn($params){
|
||||||
|
@ -2,12 +2,13 @@
|
|||||||
|
|
||||||
namespace events;
|
namespace events;
|
||||||
|
|
||||||
|
require_once('mt/RookieTask.php');
|
||||||
class Upgrade
|
class Upgrade
|
||||||
{
|
{
|
||||||
|
|
||||||
public static function onHeroUpgrade(){
|
public static function onHeroUpgrade(){
|
||||||
myself()->_callServiceStatic('HashRateService', 'onUpLvHero');
|
myself()->_callServiceStatic('HashRateService', 'onUpLvHero');
|
||||||
|
myself()->_callModelStatic('RookieTask','incTaskVal',\mt\RookieTask::UP_HERO_TIMES_COND,1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function onChipUpgrade(){
|
public static function onChipUpgrade(){
|
||||||
|
111
webapp/models/RookieTask.php
Normal file
111
webapp/models/RookieTask.php
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
|
||||||
|
namespace models;
|
||||||
|
|
||||||
|
use mt;
|
||||||
|
use phpcommon\SqlHelper;
|
||||||
|
class RookieTask extends BaseModel
|
||||||
|
{
|
||||||
|
public static function bindUser(){
|
||||||
|
$row = SqlHelper::ormSelectOne(
|
||||||
|
myself()->_getSelfMysql(),
|
||||||
|
't_user_rookie_task_bind',
|
||||||
|
array(
|
||||||
|
'account_id' => myself()->_getAccountId(),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
if (!$row){
|
||||||
|
SqlHelper::insert(
|
||||||
|
myself()->_getSelfMysql(),
|
||||||
|
't_user_rookie_task_bind',
|
||||||
|
array(
|
||||||
|
'account_id' => myself()->_getAccountId(),
|
||||||
|
'createtime' => myself()->_getNowTime(),
|
||||||
|
'modifytime' => myself()->_getNowTime(),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static function getMyStarTime(){
|
||||||
|
$row = SqlHelper::ormSelectOne(
|
||||||
|
myself()->_getSelfMysql(),
|
||||||
|
't_user_rookie_task_bind',
|
||||||
|
array(
|
||||||
|
'account_id' => myself()->_getAccountId(),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
if (!$row){
|
||||||
|
self::bindUser();
|
||||||
|
$row = SqlHelper::ormSelectOne(
|
||||||
|
myself()->_getSelfMysql(),
|
||||||
|
't_user_rookie_task_bind',
|
||||||
|
array(
|
||||||
|
'account_id' => myself()->_getAccountId(),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return myself()->_getDaySeconds($row['createtime']);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function incTaskVal($taskType,$value){
|
||||||
|
SqlHelper::upsert(
|
||||||
|
myself()->_getSelfMysql(),
|
||||||
|
't_rookie_task_value',
|
||||||
|
array(
|
||||||
|
'account_id' => myself()->_getAccountId(),
|
||||||
|
'task_type' => $taskType,
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'value' => function () use ($value){
|
||||||
|
return "value + ${value}";
|
||||||
|
},
|
||||||
|
'modifytime' => myself()->_getNowTime(),
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'account_id' => myself()->_getAccountId(),
|
||||||
|
'task_type' => $taskType,
|
||||||
|
'value' => $value,
|
||||||
|
'createtime' => myself()->_getNowTime(),
|
||||||
|
'modifytime' => myself()->_getNowTime(),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getCurrentVal($taskType){
|
||||||
|
$row = SqlHelper::ormSelectOne(
|
||||||
|
myself()->_getSelfMysql(),
|
||||||
|
't_rookie_task_value',
|
||||||
|
array(
|
||||||
|
'account_id' => myself()->_getAccountId(),
|
||||||
|
'task_type' => $taskType,
|
||||||
|
)
|
||||||
|
);
|
||||||
|
return $row ? $row['value'] : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function find($taskId){
|
||||||
|
return SqlHelper::ormSelectOne(
|
||||||
|
myself()->_getSelfMysql(),
|
||||||
|
't_rookie_task',
|
||||||
|
array(
|
||||||
|
'account_id' => myself()->_getAccountId(),
|
||||||
|
'task_id' => $taskId,
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function add($taskId){
|
||||||
|
SqlHelper::insert(
|
||||||
|
myself()->_getSelfMysql(),
|
||||||
|
't_rookie_task',
|
||||||
|
array(
|
||||||
|
'account_id' => myself()->_getAccountId(),
|
||||||
|
'task_id' => $taskId,
|
||||||
|
'createtime' => myself()->_getNowTime(),
|
||||||
|
'modifytime' => myself()->_getNowTime(),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
53
webapp/mt/RookieTask.php
Normal file
53
webapp/mt/RookieTask.php
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace mt;
|
||||||
|
|
||||||
|
use phpcommon;
|
||||||
|
|
||||||
|
class RookieTask {
|
||||||
|
|
||||||
|
const BATTLE_TIMES_COND = 1; //进行X场比赛
|
||||||
|
const PIGGY_BANK_GOLD_COND = 3; //存钱罐累积金币
|
||||||
|
const PIGGY_BANK_OPEN_TIMES_COND = 4; //砸开X次存钱罐
|
||||||
|
const PIGGY_BANK_DRAW_TIMES_COND = 5; //取出X次存钱罐
|
||||||
|
const PIGGY_BANK_OPEN_BOX_TIMES_COND = 6; //存钱罐金币开宝箱次数
|
||||||
|
const HASH_TASK_COMMIT_TIMES_COND = 7; //算力任务完成次数
|
||||||
|
const TOTAL_HASH_RATE_VALUE_COND = 8; //算力累积达到X
|
||||||
|
const HASH_RATE_BUYS_COND = 9; //使用算力购买x次道具
|
||||||
|
const HASH_TASK_REFRESH_TIMES_COND = 10; //刷新x次算力任务
|
||||||
|
const HASH_RATE_DRAW_REWARD_TIMES_COND = 11;//领取x次算力累积奖励
|
||||||
|
const SYN_CHIP_TIMES_COND = 12; //合成x次芯片
|
||||||
|
const SALVAGE_CHIP_TIMES_COND = 13; //分解x次芯片
|
||||||
|
const OPEN_CHIP_SLOT_TIMES_COND = 14; //开启芯片x槽位
|
||||||
|
const EMBED_CHIP_COND = 15; //镶嵌x个芯片
|
||||||
|
const ADD_FRIENDS_COND = 16; //添加x名好友
|
||||||
|
const AND_FRIENDS_BATTLE_COND = 17; //和好友完成x场战斗
|
||||||
|
const UP_HERO_TIMES_COND = 18; //进阶x次英雄
|
||||||
|
const SYN_HERO_TIMES_COND = 19; //合成x次英雄
|
||||||
|
const TOTAL_COMMIT_TASK_TIMES_COND = 101; //累积任务积分达到X
|
||||||
|
|
||||||
|
public static function getCustomDayMetaList($day=0){
|
||||||
|
$metaList = array();
|
||||||
|
foreach (self::getMetaList() as $meta) {
|
||||||
|
if ($meta['task_day'] == $day) {
|
||||||
|
array_push($metaList, $meta);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $metaList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function find($id){
|
||||||
|
return getXVal(self::getMetaList(), $id);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static function getMetaList()
|
||||||
|
{
|
||||||
|
if (!self::$metaList) {
|
||||||
|
self::$metaList = getMetaTable('rookietask@rookietask.php');
|
||||||
|
}
|
||||||
|
return self::$metaList;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static $metaList;
|
||||||
|
|
||||||
|
}
|
42
webapp/services/RookieTaskService.php
Normal file
42
webapp/services/RookieTaskService.php
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
|
||||||
|
namespace services;
|
||||||
|
require_once('mt/RookieTask.php');
|
||||||
|
require_once('models/RookieTask.php');
|
||||||
|
|
||||||
|
use models\RookieTask;
|
||||||
|
use phpcommon;
|
||||||
|
class RookieTaskService extends BaseService
|
||||||
|
{
|
||||||
|
|
||||||
|
const NOT_FINISHED_STATE = 0; //未完成
|
||||||
|
const FINISHED_STATE = 1; //完成未领取
|
||||||
|
const RECEIVED_STATE = 2; //完成已领取
|
||||||
|
const UNARRIVED_TIME_STATE = 3;//未到时间
|
||||||
|
|
||||||
|
public static function getTaskDto($taskMeta){
|
||||||
|
$taskDto = array(
|
||||||
|
'task_id' => $taskMeta['id'],
|
||||||
|
'current' => RookieTask::getCurrentVal($taskMeta['type']),
|
||||||
|
'target' => getXVal($taskMeta, 'target', 1),
|
||||||
|
'state' => self::NOT_FINISHED_STATE,
|
||||||
|
);
|
||||||
|
$starTime = RookieTask::getMyStarTime();
|
||||||
|
if ($taskMeta['task_day'] > 0){
|
||||||
|
$time = ($taskMeta['task_day']-1) * 86400;
|
||||||
|
if (myself()->_getNowDaySeconds() < $starTime+$time){
|
||||||
|
$taskDto['state'] = self::UNARRIVED_TIME_STATE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($taskDto['current'] >= $taskDto['target']) {
|
||||||
|
$taskDto['current'] = $taskDto['target'];
|
||||||
|
$taskDto['state'] = self::FINISHED_STATE;
|
||||||
|
}
|
||||||
|
$taskDb = RookieTask::find($taskMeta['id']);
|
||||||
|
if ($taskDb){
|
||||||
|
$taskDto['state'] = self::RECEIVED_STATE;
|
||||||
|
}
|
||||||
|
return $taskDto;
|
||||||
|
}
|
||||||
|
}
|
@ -16,6 +16,7 @@ require_once('mt/ServerTaskTime.php');
|
|||||||
require_once('mt/MapMode.php');
|
require_once('mt/MapMode.php');
|
||||||
require_once('mt/BattleReward.php');
|
require_once('mt/BattleReward.php');
|
||||||
require_once('mt/CircuitTime.php');
|
require_once('mt/CircuitTime.php');
|
||||||
|
require_once('mt/RookieTask.php');
|
||||||
|
|
||||||
require_once('models/Season.php');
|
require_once('models/Season.php');
|
||||||
require_once('models/Battle.php');
|
require_once('models/Battle.php');
|
||||||
@ -104,6 +105,7 @@ class TameBattleDataService extends BaseService {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
myself()->_fireEvent('Battle','onSettlement',$this->battleInfo);
|
myself()->_fireEvent('Battle','onSettlement',$this->battleInfo);
|
||||||
|
myself()->_callModelStatic('RookieTask','incTaskVal',mt\RookieTask::BATTLE_TIMES_COND,1);
|
||||||
//记录战斗有效行为
|
//记录战斗有效行为
|
||||||
// $this->_updateBattleData();
|
// $this->_updateBattleData();
|
||||||
//记录战斗数据的排行榜
|
//记录战斗数据的排行榜
|
||||||
|
Loading…
x
Reference in New Issue
Block a user