1
This commit is contained in:
parent
c43b938564
commit
143db181aa
@ -31,7 +31,19 @@ class Circuit(object):
|
|||||||
['!rank_list', [rankingInfo()], '榜信息'],
|
['!rank_list', [rankingInfo()], '榜信息'],
|
||||||
['my_rank', 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, '积分'],
|
['score', 0, '积分'],
|
||||||
['cec', 0, 'cec(个人榜信息才有)'],
|
['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;
|
) ENGINE=InnoDB AUTO_INCREMENT=10001 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_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` (
|
CREATE TABLE `t_circuit_task_value` (
|
||||||
`idx` bigint NOT NULL AUTO_INCREMENT COMMENT '自增id',
|
`idx` bigint NOT NULL AUTO_INCREMENT COMMENT '自增id',
|
||||||
`account_id` varchar(60) NOT NULL DEFAULT '' COMMENT '账号id(channel + "_" + gameid + "_" + openid)',
|
`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',
|
`task_type` int(11) NOT NULL DEFAULT '0' COMMENT '任务id',
|
||||||
`value` int(11) NOT NULL DEFAULT '0' COMMENT '任务进度',
|
`value` int(11) NOT NULL DEFAULT '0' COMMENT '任务进度',
|
||||||
`createtime` 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/Parameter.php');
|
||||||
require_once('mt/CircuitTime.php');
|
require_once('mt/CircuitTime.php');
|
||||||
require_once('mt/CircuitReward.php');
|
require_once('mt/CircuitReward.php');
|
||||||
|
require_once('mt/CircuitTask.php');
|
||||||
require_once('models/Circuit.php');
|
require_once('models/Circuit.php');
|
||||||
require_once('models/User.php');
|
require_once('models/User.php');
|
||||||
require_once('models/Hero.php');
|
require_once('models/Hero.php');
|
||||||
require_once('models/HeroSkin.php');
|
require_once('models/HeroSkin.php');
|
||||||
|
require_once('models/CircuitTask.php');
|
||||||
|
|
||||||
|
|
||||||
use models\Circuit;
|
use models\Circuit;
|
||||||
use models\User;
|
use models\User;
|
||||||
use models\Hero;
|
use models\Hero;
|
||||||
use models\HeroSkin;
|
use models\HeroSkin;
|
||||||
|
use models\CircuitTask;
|
||||||
use phpcommon\SqlHelper;
|
use phpcommon\SqlHelper;
|
||||||
class CircuitController extends BaseAuthedController {
|
class CircuitController extends BaseAuthedController {
|
||||||
private $redis_key_circuit_ranking = 'circuit_ranking';
|
private $redis_key_circuit_ranking = 'circuit_ranking';
|
||||||
@ -33,10 +36,21 @@ class CircuitController extends BaseAuthedController {
|
|||||||
public function CircuitTaskList(){
|
public function CircuitTaskList(){
|
||||||
$circuitCircuitMeta = mt\CircuitTime::getCurrentCircuit();
|
$circuitCircuitMeta = mt\CircuitTime::getCurrentCircuit();
|
||||||
$nextCircuitMeta = mt\CircuitTime::getNextCircuit();
|
$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(){
|
public function getCurrentStage(){
|
||||||
$circuitStageMeta = mt\CircuitTime::getCurrentStage();
|
$circuitStageMeta = mt\CircuitTime::getCurrentStage();
|
||||||
|
@ -6,6 +6,7 @@ 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('mt/RookieTask.php');
|
||||||
|
require_once('mt/CircuitTask.php');
|
||||||
require_once('models/HashRate.php');
|
require_once('models/HashRate.php');
|
||||||
|
|
||||||
use models\HashRate;
|
use models\HashRate;
|
||||||
@ -139,6 +140,7 @@ class HashRateController extends BaseAuthedController
|
|||||||
myself()->_callModelStatic('RookieTask','incTaskVal',mt\RookieTask::HASH_RATE_DRAW_REWARD_TIMES_COND,1);
|
myself()->_callModelStatic('RookieTask','incTaskVal',mt\RookieTask::HASH_RATE_DRAW_REWARD_TIMES_COND,1);
|
||||||
}else{
|
}else{
|
||||||
myself()->_callModelStatic('RookieTask','incTaskVal',mt\RookieTask::HASH_TASK_COMMIT_TIMES_COND,1);
|
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);
|
myself()->_callModelStatic('RookieTask','incTaskVal',mt\RookieTask::TOTAL_HASH_RATE_VALUE_COND,$rewardNum);
|
||||||
|
@ -53,7 +53,10 @@ class OutAppCircuitController extends BaseController {
|
|||||||
$currentStageMeta = \mt\CircuitTime::getCurrentStage();
|
$currentStageMeta = \mt\CircuitTime::getCurrentStage();
|
||||||
$prevStageMeta = \mt\CircuitTime::getPrevStage();
|
$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']);
|
$rows = Circuit::getRankingList($prevStageMeta['circuit_season']);
|
||||||
if (count($rows) > 0){
|
if (count($rows) > 0){
|
||||||
$totalWeight = 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/Season.php');
|
||||||
require_once('models/TicketConsumeRecord.php');
|
require_once('models/TicketConsumeRecord.php');
|
||||||
require_once('models/Circuit.php');
|
require_once('models/Circuit.php');
|
||||||
|
require_once('models/CircuitTask.php');
|
||||||
|
|
||||||
require_once('mt/MapMode.php');
|
require_once('mt/MapMode.php');
|
||||||
require_once('mt/Rank.php');
|
require_once('mt/Rank.php');
|
||||||
@ -24,6 +25,7 @@ require_once('services/BattleBoxService.php');
|
|||||||
require_once('phpcommon/tglog.php');
|
require_once('phpcommon/tglog.php');
|
||||||
|
|
||||||
use models\Circuit;
|
use models\Circuit;
|
||||||
|
use models\CircuitTask;
|
||||||
use models\TicketConsumeRecord;
|
use models\TicketConsumeRecord;
|
||||||
use mt;
|
use mt;
|
||||||
use services;
|
use services;
|
||||||
@ -133,7 +135,7 @@ class RoomBattleDataService extends BaseService {
|
|||||||
//巡回模式排位分计算
|
//巡回模式排位分计算
|
||||||
if ($this->mapMode == mt\MapMode::CIRCUIT_MODE){
|
if ($this->mapMode == mt\MapMode::CIRCUIT_MODE){
|
||||||
$circuitMeta = mt\CircuitTime::getCurrentCircuit();
|
$circuitMeta = mt\CircuitTime::getCurrentCircuit();
|
||||||
if ($circuitMeta){
|
if ($circuitMeta && CircuitTask::_verifyCondition($circuitMeta['circuit_season'])){
|
||||||
$minScore = mt\Parameter::getVal('circuit_rank_score_min',0);
|
$minScore = mt\Parameter::getVal('circuit_rank_score_min',0);
|
||||||
$multConstant = mt\Parameter::getVal('circuit_score_mult_constant',1);
|
$multConstant = mt\Parameter::getVal('circuit_score_mult_constant',1);
|
||||||
$shiftConstant = mt\Parameter::getVal('circuit_score_shift_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']);
|
$battleSingleDb = BattleSettlement::findSingle($this->battleSettlementDb['battle_uuid']);
|
||||||
if ($this->mapMode == mt\MapMode::TREASURE_BOX_MODE && $member['move_distance'] <= 2000 ){
|
if ($this->mapMode == mt\MapMode::TREASURE_BOX_MODE && $member['move_distance'] <= 2000 ){
|
||||||
error_log("金币模式:消极战斗");
|
error_log("宝箱模式:消极战斗");
|
||||||
}else{
|
}else{
|
||||||
$this->_getBattleRewards($battleSingleDb, $userDb,$heroDb,$battleScore,$myTeamScoreAvg,$myTeamScore,$member['reward'], $member);
|
$this->_getBattleRewards($battleSingleDb, $userDb,$heroDb,$battleScore,$myTeamScoreAvg,$myTeamScore,$member['reward'], $member);
|
||||||
myself()->_addItems($member['reward'], $awardService,$propertyChgService);
|
myself()->_addItems($member['reward'], $awardService,$propertyChgService);
|
||||||
|
@ -17,6 +17,7 @@ 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('mt/RookieTask.php');
|
||||||
|
require_once('mt/CircuitTask.php');
|
||||||
|
|
||||||
require_once('models/Season.php');
|
require_once('models/Season.php');
|
||||||
require_once('models/Battle.php');
|
require_once('models/Battle.php');
|
||||||
@ -105,7 +106,7 @@ class TameBattleDataService extends BaseService {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
myself()->_fireEvent('Battle','onSettlement',$this->battleInfo);
|
myself()->_fireEvent('Battle','onSettlement',$this->battleInfo);
|
||||||
|
myself()->_callModelStatic('CircuitTask','incTaskVal',mt\CircuitTask::BATTLE_TIMES_END,1);
|
||||||
$this->incRookieTaskValue();
|
$this->incRookieTaskValue();
|
||||||
//记录战斗有效行为
|
//记录战斗有效行为
|
||||||
// $this->_updateBattleData();
|
// $this->_updateBattleData();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user