1
This commit is contained in:
parent
c43b938564
commit
143db181aa
@ -31,7 +31,19 @@ class Circuit(object):
|
||||
['!rank_list', [rankingInfo()], '榜信息'],
|
||||
['my_rank', rankingInfo(), '个人榜信息'],
|
||||
]
|
||||
}
|
||||
},{
|
||||
'name': 'CircuitTaskList',
|
||||
'desc': '巡回赛任务',
|
||||
'group': 'Circuit',
|
||||
'url': 'webapp/index.php?c=Circuit&a=CircuitTaskList',
|
||||
'params': [
|
||||
_common.ReqHead(),
|
||||
],
|
||||
'response': [
|
||||
_common.RspHead(),
|
||||
['!list', [task()], '任务列表'],
|
||||
]
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
@ -61,3 +73,12 @@ class rankingInfo(object):
|
||||
['score', 0, '积分'],
|
||||
['cec', 0, 'cec(个人榜信息才有)'],
|
||||
]
|
||||
|
||||
class task(object):
|
||||
|
||||
def __init__(self):
|
||||
self.fields = [
|
||||
['task_id', 0, '任务id'],
|
||||
['current', 0, '当前进度'],
|
||||
['target', 0, '目标进度'],
|
||||
]
|
@ -2255,3 +2255,23 @@ CREATE TABLE `t_lucky_symbol_record` (
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `t_circuit_task_value`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `t_circuit_task_value`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `t_circuit_task_value` (
|
||||
`idx` bigint NOT NULL AUTO_INCREMENT COMMENT '自增id',
|
||||
`account_id` varchar(60) NOT NULL DEFAULT '' COMMENT '账号id(channel + "_" + gameid + "_" + openid)',
|
||||
`circuit_season` int(11) NOT NULL DEFAULT '0' COMMENT '期',
|
||||
`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 */;
|
||||
|
||||
|
@ -66,6 +66,7 @@ CREATE TABLE `t_hashrate_shop_buy_record` (
|
||||
CREATE TABLE `t_circuit_task_value` (
|
||||
`idx` bigint NOT NULL AUTO_INCREMENT COMMENT '自增id',
|
||||
`account_id` varchar(60) NOT NULL DEFAULT '' COMMENT '账号id(channel + "_" + gameid + "_" + openid)',
|
||||
`circuit_season` int(11) NOT NULL DEFAULT '0' COMMENT '期',
|
||||
`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 '创建时间',
|
||||
|
@ -3,16 +3,19 @@
|
||||
require_once('mt/Parameter.php');
|
||||
require_once('mt/CircuitTime.php');
|
||||
require_once('mt/CircuitReward.php');
|
||||
require_once('mt/CircuitTask.php');
|
||||
require_once('models/Circuit.php');
|
||||
require_once('models/User.php');
|
||||
require_once('models/Hero.php');
|
||||
require_once('models/HeroSkin.php');
|
||||
require_once('models/CircuitTask.php');
|
||||
|
||||
|
||||
use models\Circuit;
|
||||
use models\User;
|
||||
use models\Hero;
|
||||
use models\HeroSkin;
|
||||
use models\CircuitTask;
|
||||
use phpcommon\SqlHelper;
|
||||
class CircuitController extends BaseAuthedController {
|
||||
private $redis_key_circuit_ranking = 'circuit_ranking';
|
||||
@ -33,10 +36,21 @@ class CircuitController extends BaseAuthedController {
|
||||
public function CircuitTaskList(){
|
||||
$circuitCircuitMeta = mt\CircuitTime::getCurrentCircuit();
|
||||
$nextCircuitMeta = mt\CircuitTime::getNextCircuit();
|
||||
if (!$circuitCircuitMeta){
|
||||
|
||||
$taskList = array();
|
||||
if (!$circuitCircuitMeta && $nextCircuitMeta){
|
||||
$metas = \mt\CircuitTask::getListBySeason($nextCircuitMeta['circuit_season']);
|
||||
if (count($metas) > 0){
|
||||
foreach ($metas as $meta){
|
||||
array_push($taskList, array(
|
||||
'task_id' => $meta['id'],
|
||||
'current' => CircuitTask::getCurrentVal($nextCircuitMeta['circuit_season'],$meta['type']),
|
||||
'target' => $meta['target'],
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->_rspData(array('list' => $taskList));
|
||||
}
|
||||
|
||||
public function getCurrentStage(){
|
||||
$circuitStageMeta = mt\CircuitTime::getCurrentStage();
|
||||
|
@ -6,6 +6,7 @@ require_once('mt/AchievementsPower.php');
|
||||
require_once('mt/AchievementsCycle.php');
|
||||
require_once('mt/Parameter.php');
|
||||
require_once('mt/RookieTask.php');
|
||||
require_once('mt/CircuitTask.php');
|
||||
require_once('models/HashRate.php');
|
||||
|
||||
use models\HashRate;
|
||||
@ -139,6 +140,7 @@ class HashRateController extends BaseAuthedController
|
||||
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('CircuitTask','incTaskVal',mt\CircuitTask::COMPLETE_HASH_TASK_END,1);
|
||||
}
|
||||
|
||||
myself()->_callModelStatic('RookieTask','incTaskVal',mt\RookieTask::TOTAL_HASH_RATE_VALUE_COND,$rewardNum);
|
||||
|
@ -53,7 +53,10 @@ class OutAppCircuitController extends BaseController {
|
||||
$currentStageMeta = \mt\CircuitTime::getCurrentStage();
|
||||
$prevStageMeta = \mt\CircuitTime::getPrevStage();
|
||||
|
||||
if (!$currentStageMeta && $prevStageMeta && !CircuitReward::_verifySettlement($prevStageMeta['circuit_season'],$prevStageMeta['circuit_phase'])){
|
||||
if (!$currentStageMeta &&
|
||||
$prevStageMeta &&
|
||||
$prevStageMeta['is_reward'] > 0 &&
|
||||
!CircuitReward::_verifySettlement($prevStageMeta['circuit_season'],$prevStageMeta['circuit_phase'])){
|
||||
$rows = Circuit::getRankingList($prevStageMeta['circuit_season']);
|
||||
if (count($rows) > 0){
|
||||
$totalWeight = 0;
|
||||
|
69
webapp/models/CircuitTask.php
Normal file
69
webapp/models/CircuitTask.php
Normal file
@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace models;
|
||||
|
||||
use mt;
|
||||
use phpcommon\SqlHelper;
|
||||
class CircuitTask extends BaseModel
|
||||
{
|
||||
|
||||
public static function _verifyCondition($season){
|
||||
$metas = mt\CircuitTask::getListBySeason($season);
|
||||
foreach ($metas as $meta){
|
||||
$current = self::getCurrentVal($season,$meta['type']);
|
||||
if ($current < $meta['target']){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public static function incTaskVal($taskType,$value){
|
||||
|
||||
$circuitCircuitMeta = mt\CircuitTime::getCurrentCircuit();
|
||||
$nextCircuitMeta = mt\CircuitTime::getNextCircuit();
|
||||
if ($circuitCircuitMeta || !$nextCircuitMeta){
|
||||
return;
|
||||
}
|
||||
$season = $nextCircuitMeta['circuit_season'];
|
||||
SqlHelper::upsert(
|
||||
myself()->_getSelfMysql(),
|
||||
't_circuit_task_value',
|
||||
array(
|
||||
'account_id' => myself()->_getAccountId(),
|
||||
'circuit_season' => $season,
|
||||
'task_type' => $taskType,
|
||||
),
|
||||
array(
|
||||
'value' => function () use ($value){
|
||||
return "value + ${value}";
|
||||
},
|
||||
'modifytime' => myself()->_getNowTime(),
|
||||
),
|
||||
array(
|
||||
'account_id' => myself()->_getAccountId(),
|
||||
'circuit_season' => $season,
|
||||
'task_type' => $taskType,
|
||||
'value' => $value,
|
||||
'createtime' => myself()->_getNowTime(),
|
||||
'modifytime' => myself()->_getNowTime(),
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
public static function getCurrentVal($season,$taskType){
|
||||
$row = SqlHelper::ormSelectOne(
|
||||
myself()->_getSelfMysql(),
|
||||
't_circuit_task_value',
|
||||
array(
|
||||
'account_id' => myself()->_getAccountId(),
|
||||
'circuit_season' => $season,
|
||||
'task_type' => $taskType,
|
||||
)
|
||||
);
|
||||
return $row ? $row['value'] : 0;
|
||||
}
|
||||
|
||||
|
||||
}
|
32
webapp/mt/CircuitTask.php
Normal file
32
webapp/mt/CircuitTask.php
Normal file
@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace mt;
|
||||
|
||||
use phpcommon;
|
||||
|
||||
class CircuitTask {
|
||||
|
||||
const BATTLE_TIMES_END = 1;
|
||||
const COMPLETE_HASH_TASK_END = 2;
|
||||
|
||||
public static function getListBySeason($season){
|
||||
$metas = array();
|
||||
foreach (self::getMetaList() as $meta){
|
||||
if ($meta['limit_type'] == $season){
|
||||
array_push($metas,$meta);
|
||||
}
|
||||
}
|
||||
return $metas;
|
||||
}
|
||||
|
||||
protected static function getMetaList()
|
||||
{
|
||||
if (!self::$metaList) {
|
||||
self::$metaList = getMetaTable('circuitTask@circuitTask.php');
|
||||
}
|
||||
return self::$metaList;
|
||||
}
|
||||
|
||||
protected static $metaList;
|
||||
|
||||
}
|
@ -7,6 +7,7 @@ require_once('models/HashRate.php');
|
||||
require_once('models/Season.php');
|
||||
require_once('models/TicketConsumeRecord.php');
|
||||
require_once('models/Circuit.php');
|
||||
require_once('models/CircuitTask.php');
|
||||
|
||||
require_once('mt/MapMode.php');
|
||||
require_once('mt/Rank.php');
|
||||
@ -24,6 +25,7 @@ require_once('services/BattleBoxService.php');
|
||||
require_once('phpcommon/tglog.php');
|
||||
|
||||
use models\Circuit;
|
||||
use models\CircuitTask;
|
||||
use models\TicketConsumeRecord;
|
||||
use mt;
|
||||
use services;
|
||||
@ -133,7 +135,7 @@ class RoomBattleDataService extends BaseService {
|
||||
//巡回模式排位分计算
|
||||
if ($this->mapMode == mt\MapMode::CIRCUIT_MODE){
|
||||
$circuitMeta = mt\CircuitTime::getCurrentCircuit();
|
||||
if ($circuitMeta){
|
||||
if ($circuitMeta && CircuitTask::_verifyCondition($circuitMeta['circuit_season'])){
|
||||
$minScore = mt\Parameter::getVal('circuit_rank_score_min',0);
|
||||
$multConstant = mt\Parameter::getVal('circuit_score_mult_constant',1);
|
||||
$shiftConstant = mt\Parameter::getVal('circuit_score_shift_constant',1);
|
||||
@ -147,7 +149,7 @@ class RoomBattleDataService extends BaseService {
|
||||
|
||||
$battleSingleDb = BattleSettlement::findSingle($this->battleSettlementDb['battle_uuid']);
|
||||
if ($this->mapMode == mt\MapMode::TREASURE_BOX_MODE && $member['move_distance'] <= 2000 ){
|
||||
error_log("金币模式:消极战斗");
|
||||
error_log("宝箱模式:消极战斗");
|
||||
}else{
|
||||
$this->_getBattleRewards($battleSingleDb, $userDb,$heroDb,$battleScore,$myTeamScoreAvg,$myTeamScore,$member['reward'], $member);
|
||||
myself()->_addItems($member['reward'], $awardService,$propertyChgService);
|
||||
|
@ -17,6 +17,7 @@ require_once('mt/MapMode.php');
|
||||
require_once('mt/BattleReward.php');
|
||||
require_once('mt/CircuitTime.php');
|
||||
require_once('mt/RookieTask.php');
|
||||
require_once('mt/CircuitTask.php');
|
||||
|
||||
require_once('models/Season.php');
|
||||
require_once('models/Battle.php');
|
||||
@ -105,7 +106,7 @@ class TameBattleDataService extends BaseService {
|
||||
return false;
|
||||
}
|
||||
myself()->_fireEvent('Battle','onSettlement',$this->battleInfo);
|
||||
|
||||
myself()->_callModelStatic('CircuitTask','incTaskVal',mt\CircuitTask::BATTLE_TIMES_END,1);
|
||||
$this->incRookieTaskValue();
|
||||
//记录战斗有效行为
|
||||
// $this->_updateBattleData();
|
||||
|
Loading…
x
Reference in New Issue
Block a user