1
This commit is contained in:
parent
3a06683610
commit
43771c8e67
@ -39,6 +39,7 @@ define('TN_TOTAL_STAR_NUM', 8014);
|
|||||||
define('TN_TOTAL_RANK_NUM', 8015);
|
define('TN_TOTAL_RANK_NUM', 8015);
|
||||||
define('TN_TOTAL_DIAMOND_CONSUME', 8016);//钻石消耗
|
define('TN_TOTAL_DIAMOND_CONSUME', 8016);//钻石消耗
|
||||||
define('TN_TOTAL_CEG_CONSUME', 8017);//ceg消耗
|
define('TN_TOTAL_CEG_CONSUME', 8017);//ceg消耗
|
||||||
|
define('TN_TOTAL_GATHER_GOLD', 8018);//收集金币
|
||||||
|
|
||||||
define('TN_DAILY_BEGIN', 9001);
|
define('TN_DAILY_BEGIN', 9001);
|
||||||
define('TN_DAILY_LOGINS', 9001);
|
define('TN_DAILY_LOGINS', 9001);
|
||||||
|
@ -24,6 +24,7 @@ require_once('mt/Task.php');
|
|||||||
require_once('mt/Drop.php');
|
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');
|
||||||
|
|
||||||
use phpcommon\SqlHelper;
|
use phpcommon\SqlHelper;
|
||||||
use models\Bag;
|
use models\Bag;
|
||||||
@ -344,6 +345,7 @@ class BaseAuthedController extends BaseController {
|
|||||||
return "gold + ${itemNum}";
|
return "gold + ${itemNum}";
|
||||||
}
|
}
|
||||||
));
|
));
|
||||||
|
$this->_incPeriodV(TN_TOTAL_GATHER_GOLD,0,$itemNum);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case V_ITEM_DIAMOND:
|
case V_ITEM_DIAMOND:
|
||||||
@ -804,4 +806,16 @@ class BaseAuthedController extends BaseController {
|
|||||||
DynData::decWeeklyV($x, $y, $decVal);
|
DynData::decWeeklyV($x, $y, $decVal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function _incPeriodV($x, $y, $incVal){
|
||||||
|
$currentPeriod= \mt\AchievementsCycle::getCurrentPeriod();
|
||||||
|
if ($currentPeriod && strtotime($currentPeriod['obtain_end_time']) > myself()->_getNowTime()){
|
||||||
|
DynData::incPeriodV($x, $y,strtotime($currentPeriod['obtain_start_time']), $incVal);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function _getPeriodV($x, $y, $decVal = 0){
|
||||||
|
$currentPeriod= \mt\AchievementsCycle::getCurrentPeriod();
|
||||||
|
return DynData::getPeriodV($x, $y,strtotime($currentPeriod['obtain_start_time']), $decVal);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,262 +1,276 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace models;
|
namespace models;
|
||||||
|
|
||||||
use mt;
|
use mt;
|
||||||
use phpcommon\SqlHelper;
|
use phpcommon\SqlHelper;
|
||||||
|
|
||||||
class DynData extends BaseModel {
|
class DynData extends BaseModel {
|
||||||
|
|
||||||
public static function preload()
|
public static function preload()
|
||||||
{
|
{
|
||||||
if (is_null(self::$dynData)) {
|
if (is_null(self::$dynData)) {
|
||||||
self::$dynData = array();
|
self::$dynData = array();
|
||||||
$rows = SqlHelper::ormSelect(
|
$rows = SqlHelper::ormSelect(
|
||||||
myself()->_getSelfMysql(),
|
myself()->_getSelfMysql(),
|
||||||
't_dyndata',
|
't_dyndata',
|
||||||
array(
|
array(
|
||||||
'account_id' => myself()->_getAccountId(),
|
'account_id' => myself()->_getAccountId(),
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
foreach ($rows as $row) {
|
foreach ($rows as $row) {
|
||||||
$key = self::calcKey($row['x'], $row['y']);
|
$key = self::calcKey($row['x'], $row['y']);
|
||||||
self::$dynData[$key] = array(
|
self::$dynData[$key] = array(
|
||||||
'val' => $row['val'],
|
'val' => $row['val'],
|
||||||
'modifytime' => $row['modifytime'],
|
'modifytime' => $row['modifytime'],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getVEx($accountId, $x, $y, $defVal = 0)
|
public static function getVEx($accountId, $x, $y, $defVal = 0)
|
||||||
{
|
{
|
||||||
$row = SqlHelper::ormSelectOne(
|
$row = SqlHelper::ormSelectOne(
|
||||||
myself()->_getMysql($accountId),
|
myself()->_getMysql($accountId),
|
||||||
't_dyndata',
|
't_dyndata',
|
||||||
array(
|
array(
|
||||||
'account_id' => $accountId,
|
'account_id' => $accountId,
|
||||||
'x' => $x,
|
'x' => $x,
|
||||||
'y' => $y,
|
'y' => $y,
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
return $row ? $row['val'] : $defVal;
|
return $row ? $row['val'] : $defVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getV($x, $y, $defVal = 0)
|
public static function getV($x, $y, $defVal = 0)
|
||||||
{
|
{
|
||||||
$valData = self::internalGetV($x, $y, $defVal);
|
$valData = self::internalGetV($x, $y, $defVal);
|
||||||
return $valData['val'];
|
return $valData['val'];
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function setV($x, $y, $defVal)
|
public static function setV($x, $y, $defVal)
|
||||||
{
|
{
|
||||||
$key = self::calcKey($x, $y);
|
$key = self::calcKey($x, $y);
|
||||||
self::internalSetV($x, $y, $defVal);
|
self::internalSetV($x, $y, $defVal);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function incV($x, $y, $val)
|
public static function incV($x, $y, $val)
|
||||||
{
|
{
|
||||||
$key = self::calcKey($x, $y);
|
$key = self::calcKey($x, $y);
|
||||||
$oldVal = self::getV($x, $y);
|
$oldVal = self::getV($x, $y);
|
||||||
self::internalSetV($x, $y, $oldVal + $val);
|
self::internalSetV($x, $y, $oldVal + $val);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function incVEx($accountId, $x, $y, $val)
|
public static function incVEx($accountId, $x, $y, $val)
|
||||||
{
|
{
|
||||||
$oldVal = self::getVEx($accountId, $x, $y);
|
$oldVal = self::getVEx($accountId, $x, $y);
|
||||||
SqlHelper::upsert
|
SqlHelper::upsert
|
||||||
(myself()->_getMysql($accountId),
|
(myself()->_getMysql($accountId),
|
||||||
't_dyndata',
|
't_dyndata',
|
||||||
array(
|
array(
|
||||||
'account_id' => $accountId,
|
'account_id' => $accountId,
|
||||||
'x' => $x,
|
'x' => $x,
|
||||||
'y' => $y
|
'y' => $y
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'val' => $oldVal + $val,
|
'val' => $oldVal + $val,
|
||||||
'modifytime' => myself()->_getNowTime()
|
'modifytime' => myself()->_getNowTime()
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'account_id' => $accountId,
|
'account_id' => $accountId,
|
||||||
'x' => $x,
|
'x' => $x,
|
||||||
'y' => $y,
|
'y' => $y,
|
||||||
'val' => $val,
|
'val' => $val,
|
||||||
'createtime' => myself()->_getNowTime(),
|
'createtime' => myself()->_getNowTime(),
|
||||||
'modifytime' => myself()->_getNowTime()
|
'modifytime' => myself()->_getNowTime()
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function setVEx($accountId, $x, $y, $val)
|
public static function setVEx($accountId, $x, $y, $val)
|
||||||
{
|
{
|
||||||
SqlHelper::upsert
|
SqlHelper::upsert
|
||||||
(myself()->_getMysql($accountId),
|
(myself()->_getMysql($accountId),
|
||||||
't_dyndata',
|
't_dyndata',
|
||||||
array(
|
array(
|
||||||
'account_id' => $accountId,
|
'account_id' => $accountId,
|
||||||
'x' => $x,
|
'x' => $x,
|
||||||
'y' => $y
|
'y' => $y
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'val' => $val,
|
'val' => $val,
|
||||||
'modifytime' => myself()->_getNowTime()
|
'modifytime' => myself()->_getNowTime()
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'account_id' => $accountId,
|
'account_id' => $accountId,
|
||||||
'x' => $x,
|
'x' => $x,
|
||||||
'y' => $y,
|
'y' => $y,
|
||||||
'val' => $val,
|
'val' => $val,
|
||||||
'createtime' => myself()->_getNowTime(),
|
'createtime' => myself()->_getNowTime(),
|
||||||
'modifytime' => myself()->_getNowTime()
|
'modifytime' => myself()->_getNowTime()
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function decV($x, $y, $val)
|
public static function decV($x, $y, $val)
|
||||||
{
|
{
|
||||||
self::incV($x, $y, 0 - $val);
|
self::incV($x, $y, 0 - $val);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getDailyV($x, $y, $defVal = 0)
|
public static function getDailyV($x, $y, $defVal = 0)
|
||||||
{
|
{
|
||||||
$valData = self::internalGetV($x, $y, $defVal);
|
$valData = self::internalGetV($x, $y, $defVal);
|
||||||
if (myself()->_getDaySeconds($valData['modifytime']) < myself()->_getNowDaySeconds()) {
|
if (myself()->_getDaySeconds($valData['modifytime']) < myself()->_getNowDaySeconds()) {
|
||||||
$valData['val'] = $defVal;
|
$valData['val'] = $defVal;
|
||||||
}
|
}
|
||||||
return $valData['val'];
|
return $valData['val'];
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function setDailyV($x, $y, $val)
|
public static function setDailyV($x, $y, $val)
|
||||||
{
|
{
|
||||||
self::setV($x, $y, $val);
|
self::setV($x, $y, $val);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function incDailyV($x, $y, $val)
|
public static function incDailyV($x, $y, $val)
|
||||||
{
|
{
|
||||||
$key = self::calcKey($x, $y);
|
$key = self::calcKey($x, $y);
|
||||||
$oldVal = self::getDailyV($x, $y);
|
$oldVal = self::getDailyV($x, $y);
|
||||||
self::internalSetV($x, $y, $oldVal + $val);
|
self::internalSetV($x, $y, $oldVal + $val);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function decDailyV($x, $y, $val)
|
public static function decDailyV($x, $y, $val)
|
||||||
{
|
{
|
||||||
self::incDailyV($x, $y, 0 - $val);
|
self::incDailyV($x, $y, 0 - $val);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getWeeklyV($x, $y, $defVal = 0)
|
public static function getWeeklyV($x, $y, $defVal = 0)
|
||||||
{
|
{
|
||||||
$valData = self::internalGetV($x, $y, $defVal);
|
$valData = self::internalGetV($x, $y, $defVal);
|
||||||
if (myself()->_getDaySeconds($valData['modifytime']) < myself()->_getMondaySeconds()) {
|
if (myself()->_getDaySeconds($valData['modifytime']) < myself()->_getMondaySeconds()) {
|
||||||
$valData['val'] = $defVal;
|
$valData['val'] = $defVal;
|
||||||
}
|
}
|
||||||
return $valData['val'];
|
return $valData['val'];
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function setWeeklyV($x, $y, $val)
|
public static function setWeeklyV($x, $y, $val)
|
||||||
{
|
{
|
||||||
self::setV($x, $y, $val);
|
self::setV($x, $y, $val);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function incWeeklyV($x, $y, $val)
|
public static function incWeeklyV($x, $y, $val)
|
||||||
{
|
{
|
||||||
$key = self::calcKey($x, $y);
|
$key = self::calcKey($x, $y);
|
||||||
$oldVal = self::getWeeklyV($x, $y);
|
$oldVal = self::getWeeklyV($x, $y);
|
||||||
self::internalSetV($x, $y, $oldVal + $val);
|
self::internalSetV($x, $y, $oldVal + $val);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function decWeeklyV($x, $y, $val)
|
public static function decWeeklyV($x, $y, $val)
|
||||||
{
|
{
|
||||||
self::incWeeklyV($x, $y, 0 - $val);
|
self::incWeeklyV($x, $y, 0 - $val);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function calcKey($x, $y)
|
public static function calcKey($x, $y)
|
||||||
{
|
{
|
||||||
$low32 = (int)$x;
|
$low32 = (int)$x;
|
||||||
$high32 = (int)$y;
|
$high32 = (int)$y;
|
||||||
$key = $low32 + ($high32 << 32);
|
$key = $low32 + ($high32 << 32);
|
||||||
return $key;
|
return $key;
|
||||||
}
|
}
|
||||||
|
public static function getPeriodV($x, $y,$time, $defVal = 0)
|
||||||
private static function internalSetV($x, $y, $val)
|
{
|
||||||
{
|
$valData = self::internalGetV($x, $y, $defVal);
|
||||||
if (!is_int($x) || !is_int($y)) {
|
if (myself()->_getDaySeconds($valData['modifytime']) < myself()->_getDaySeconds($time)) {
|
||||||
die('internalSet type error');
|
$valData['val'] = $defVal;
|
||||||
return;
|
}
|
||||||
}
|
return $valData['val'];
|
||||||
if (abs($x) > 0xFFFFFFFF) {
|
}
|
||||||
die('internalSet x error');
|
|
||||||
return;
|
public static function incPeriodV($x, $y, $time, $val){
|
||||||
}
|
$key = self::calcKey($x, $y);
|
||||||
if (abs($y) > 0xFFFFFFFF) {
|
$oldVal = self::getPeriodV($x, $y, $time);
|
||||||
die('internalSet y error');
|
self::internalSetV($x, $y, $oldVal + $val);
|
||||||
return;
|
}
|
||||||
}
|
|
||||||
$key = self::calcKey($x, $y);
|
private static function internalSetV($x, $y, $val)
|
||||||
SqlHelper::upsert
|
{
|
||||||
(myself()->_getSelfMysql(),
|
if (!is_int($x) || !is_int($y)) {
|
||||||
't_dyndata',
|
die('internalSet type error');
|
||||||
array(
|
return;
|
||||||
'account_id' => myself()->_getAccountId(),
|
}
|
||||||
'x' => $x,
|
if (abs($x) > 0xFFFFFFFF) {
|
||||||
'y' => $y
|
die('internalSet x error');
|
||||||
),
|
return;
|
||||||
array(
|
}
|
||||||
'val' => $val,
|
if (abs($y) > 0xFFFFFFFF) {
|
||||||
'modifytime' => myself()->_getNowTime()
|
die('internalSet y error');
|
||||||
),
|
return;
|
||||||
array(
|
}
|
||||||
'account_id' => myself()->_getAccountId(),
|
$key = self::calcKey($x, $y);
|
||||||
'x' => $x,
|
SqlHelper::upsert
|
||||||
'y' => $y,
|
(myself()->_getSelfMysql(),
|
||||||
'val' => $val,
|
't_dyndata',
|
||||||
'createtime' => myself()->_getNowTime(),
|
array(
|
||||||
'modifytime' => myself()->_getNowTime()
|
'account_id' => myself()->_getAccountId(),
|
||||||
)
|
'x' => $x,
|
||||||
);
|
'y' => $y
|
||||||
if (self::$dynData) {
|
),
|
||||||
self::$dynData[$key] = array(
|
array(
|
||||||
'val' => $val,
|
'val' => $val,
|
||||||
'modifytime' => myself()->_getNowTime(),
|
'modifytime' => myself()->_getNowTime()
|
||||||
);
|
),
|
||||||
}
|
array(
|
||||||
}
|
'account_id' => myself()->_getAccountId(),
|
||||||
|
'x' => $x,
|
||||||
private static function internalGetV($x, $y, $defVal = 0)
|
'y' => $y,
|
||||||
{
|
'val' => $val,
|
||||||
$key = self::calcKey($x, $y);
|
'createtime' => myself()->_getNowTime(),
|
||||||
if (!is_null(self::$dynData)) {
|
'modifytime' => myself()->_getNowTime()
|
||||||
if (isset(self::$dynData[$key])) {
|
)
|
||||||
return self::$dynData[$key];
|
);
|
||||||
} else {
|
if (self::$dynData) {
|
||||||
return array(
|
self::$dynData[$key] = array(
|
||||||
'val' => $defVal,
|
'val' => $val,
|
||||||
'modifytime' => myself()->_getNowTime()
|
'modifytime' => myself()->_getNowTime(),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
++self::$hitCount;
|
|
||||||
if (self::$hitCount > 5 && is_null(self::$dynData)) {
|
private static function internalGetV($x, $y, $defVal = 0)
|
||||||
self::preload();
|
{
|
||||||
return self::internalGetV($x, $y, $defVal);
|
$key = self::calcKey($x, $y);
|
||||||
} else {
|
if (!is_null(self::$dynData)) {
|
||||||
$row = SqlHelper::ormSelectOne(
|
if (isset(self::$dynData[$key])) {
|
||||||
myself()->_getSelfMysql(),
|
return self::$dynData[$key];
|
||||||
't_dyndata',
|
} else {
|
||||||
array(
|
return array(
|
||||||
'account_id' => myself()->_getAccountId(),
|
'val' => $defVal,
|
||||||
'x' => $x,
|
'modifytime' => myself()->_getNowTime()
|
||||||
'y' => $y,
|
);
|
||||||
)
|
}
|
||||||
);
|
} else {
|
||||||
return array(
|
++self::$hitCount;
|
||||||
'val' => $row ? $row['val'] : $defVal,
|
if (self::$hitCount > 5 && is_null(self::$dynData)) {
|
||||||
'modifytime' => $row ? $row['modifytime'] : myself()->_getNowTime(),
|
self::preload();
|
||||||
);
|
return self::internalGetV($x, $y, $defVal);
|
||||||
}
|
} else {
|
||||||
}
|
$row = SqlHelper::ormSelectOne(
|
||||||
}
|
myself()->_getSelfMysql(),
|
||||||
|
't_dyndata',
|
||||||
private static $dynData = null;
|
array(
|
||||||
private static $hitCount = 0;
|
'account_id' => myself()->_getAccountId(),
|
||||||
|
'x' => $x,
|
||||||
}
|
'y' => $y,
|
||||||
|
)
|
||||||
|
);
|
||||||
|
return array(
|
||||||
|
'val' => $row ? $row['val'] : $defVal,
|
||||||
|
'modifytime' => $row ? $row['modifytime'] : myself()->_getNowTime(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static $dynData = null;
|
||||||
|
private static $hitCount = 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -11,34 +11,6 @@ use mt\RankSeason;
|
|||||||
use phpcommon\SqlHelper;
|
use phpcommon\SqlHelper;
|
||||||
class HashRateTask extends BaseModel
|
class HashRateTask extends BaseModel
|
||||||
{
|
{
|
||||||
const KILL_TYPE = 10001;
|
|
||||||
const STAR_TYPE = 10002;
|
|
||||||
const RANK_TYPE = 10003;
|
|
||||||
const BATTLE_TIME_TYPE = 10004;
|
|
||||||
const BATTLE_WIN_TYPE = 10005;
|
|
||||||
const VS_FOUR_BATTLE_WIN_TYPE = 10006;
|
|
||||||
const DAMAGE_TYPE = 10007;
|
|
||||||
|
|
||||||
const MOBA_WIN_ID = 1;
|
|
||||||
const MOBA_KILL_ID = 2;
|
|
||||||
const MOBA_GATHER_GRENADE_ID = 3;
|
|
||||||
const MOBA_GATHER_BURNING_ID = 4;
|
|
||||||
const MOBA_GATHER_BLOOD_ID = 5;
|
|
||||||
const MOBA_BATTLE_END_ID =6;
|
|
||||||
const MOBA_FAST_UP_ID =7;
|
|
||||||
const MOBA_BATTLE_TIMES_ID =8;
|
|
||||||
const PVP_WIN_ID =9;
|
|
||||||
const PVP_LAST_RUNNER_ID =10;
|
|
||||||
const PVP_KILL_ID =11;
|
|
||||||
const PVP_GATHER_GRENADE_ID =12;
|
|
||||||
const PVP_GATHER_BURNING_ID =13;
|
|
||||||
const PVP_GATHER_BLOOD_ID =14;
|
|
||||||
const PVP_WALKING_DISTANCE_ID =16;
|
|
||||||
const PVP_BATTLE_TIMES_ID =17;
|
|
||||||
const HERO_UP_QUALITY_ID =18;
|
|
||||||
const OWN_HERO_NFT_ID =19;
|
|
||||||
const OWN_CHIP_NFT_ID =20;
|
|
||||||
const OWN_GOLD_ID =21;
|
|
||||||
|
|
||||||
public static function find(){
|
public static function find(){
|
||||||
$rows = SqlHelper::ormSelect(
|
$rows = SqlHelper::ormSelect(
|
||||||
|
@ -137,12 +137,13 @@ class HashRateService extends BaseService
|
|||||||
break;
|
break;
|
||||||
//拥有金币数
|
//拥有金币数
|
||||||
case AchievementsPower::OWN_GOLD_NUM : {
|
case AchievementsPower::OWN_GOLD_NUM : {
|
||||||
//......./
|
$taskDto['current'] = myself()->_getPeriodV(TN_TOTAL_GATHER_GOLD,0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if ($taskDto['current'] >= $taskDto['target']) {
|
if ($taskDto['current'] >= $taskDto['target']) {
|
||||||
$taskDto['current'] = $taskDto['target'];
|
$taskDto['current'] = $taskDto['target'];
|
||||||
|
$taskDto['state'] = self::FINISHED_STATE;
|
||||||
}
|
}
|
||||||
return $taskDto;
|
return $taskDto;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user