VIP
This commit is contained in:
parent
63cfb918b2
commit
c84b774d26
@ -5,6 +5,7 @@ require_once('mt/Item.php');
|
|||||||
require_once('mt/Drop.php');
|
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('models/Bag.php');
|
require_once('models/Bag.php');
|
||||||
require_once('models/Hero.php');
|
require_once('models/Hero.php');
|
||||||
@ -538,17 +539,34 @@ class BagController extends BaseAuthedController {
|
|||||||
}
|
}
|
||||||
$costItems= array();
|
$costItems= array();
|
||||||
if ($itemMeta['gold'] > 0){
|
if ($itemMeta['gold'] > 0){
|
||||||
|
//vip加成金币消耗
|
||||||
|
$goldNum = $itemMeta['gold'];
|
||||||
|
if (in_array($itemMeta['sub_type'],array(4,5,6))){
|
||||||
|
$rightVal = myself()->_getVipRightsVal(mt\StakingVip::GOLD_CUT_DOWN);
|
||||||
|
if ($rightVal > 0){
|
||||||
|
$goldNum -= $goldNum*$rightVal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
array_push($costItems,array(
|
array_push($costItems,array(
|
||||||
'item_id' => V_ITEM_GOLD,
|
'item_id' => V_ITEM_GOLD,
|
||||||
'item_num' => $itemMeta['gold'] * $itemNum
|
'item_num' => ceil($goldNum) * $itemNum
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($itemMeta['diamond'] > 0){
|
if ($itemMeta['diamond'] > 0){
|
||||||
|
//vip加成砖石消耗
|
||||||
|
$diamondNum = $itemMeta['diamond'];
|
||||||
|
if ($itemMeta['sub_type'] == 7){
|
||||||
|
$rightVal = myself()->_getVipRightsVal(mt\StakingVip::DIAMOND_CUT_DOWN);
|
||||||
|
if ($rightVal > 0){
|
||||||
|
$diamondNum -= $diamondNum*$rightVal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
array_push($costItems,array(
|
array_push($costItems,array(
|
||||||
'item_id' => V_ITEM_DIAMOND,
|
'item_id' => V_ITEM_DIAMOND,
|
||||||
'item_num' => $itemMeta['diamond'] * $itemNum
|
'item_num' => ceil($diamondNum) * $itemNum
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
$lackItem = null;
|
$lackItem = null;
|
||||||
|
@ -908,4 +908,9 @@ class BaseAuthedController extends BaseController {
|
|||||||
myself()->_callServiceStatic('LogService', 'addTgLog', $eventName, $prop);
|
myself()->_callServiceStatic('LogService', 'addTgLog', $eventName, $prop);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function _getVipRightsVal($type)
|
||||||
|
{
|
||||||
|
$vip = User::getVipLv(myself()->_getAddress());
|
||||||
|
return myself()->_callMtStatic('StakingVip', 'getValByLv', $vip, $type);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@ require_once('mt/EconomyAttribute.php');
|
|||||||
require_once('mt/Manufacture.php');
|
require_once('mt/Manufacture.php');
|
||||||
require_once('mt/BattleBasicAttribute.php');
|
require_once('mt/BattleBasicAttribute.php');
|
||||||
require_once('mt/BattleRandAttribute.php');
|
require_once('mt/BattleRandAttribute.php');
|
||||||
|
require_once('mt/StakingVip.php');
|
||||||
require_once('models/Hero.php');
|
require_once('models/Hero.php');
|
||||||
require_once('models/HeroPreset.php');
|
require_once('models/HeroPreset.php');
|
||||||
require_once('services/AwardService.php');
|
require_once('services/AwardService.php');
|
||||||
@ -172,11 +173,16 @@ class HeroController extends BaseAuthedController {
|
|||||||
if ($extraItemId == $extraItem[0]){
|
if ($extraItemId == $extraItem[0]){
|
||||||
$chanceKey = min($extraItemNum,$extraItem[1]);
|
$chanceKey = min($extraItemNum,$extraItem[1]);
|
||||||
}
|
}
|
||||||
|
//vip加成金币消耗
|
||||||
|
$rightVal = myself()->_getVipRightsVal(mt\StakingVip::HERO_UP);
|
||||||
|
$goldNum = $manufactureMeta['gold'];
|
||||||
|
if ($rightVal > 0){
|
||||||
|
$goldNum -= $goldNum*$rightVal;
|
||||||
|
}
|
||||||
$costItems = array(
|
$costItems = array(
|
||||||
array(
|
array(
|
||||||
'item_id' => V_ITEM_GOLD,
|
'item_id' => V_ITEM_GOLD,
|
||||||
'item_num' => $manufactureMeta['gold']
|
'item_num' => ceil($goldNum)
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'item_id' => $itemId,
|
'item_id' => $itemId,
|
||||||
|
@ -10,6 +10,7 @@ require_once('mt/Item.php');
|
|||||||
require_once('mt/BattleBasicAttribute.php');
|
require_once('mt/BattleBasicAttribute.php');
|
||||||
require_once('mt/BattleRandAttribute.php');
|
require_once('mt/BattleRandAttribute.php');
|
||||||
require_once('mt/EconomyAttribute.php');
|
require_once('mt/EconomyAttribute.php');
|
||||||
|
require_once('mt/StakingVip.php');
|
||||||
require_once('models/HeroSkin.php');
|
require_once('models/HeroSkin.php');
|
||||||
require_once('models/Chip.php');
|
require_once('models/Chip.php');
|
||||||
require_once('models/User.php');
|
require_once('models/User.php');
|
||||||
@ -1034,6 +1035,11 @@ class Hero extends BaseModel {
|
|||||||
$lucky += self::getHeroLucky($row);
|
$lucky += self::getHeroLucky($row);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//Vip加成账号幸运值
|
||||||
|
$rightVal = myself()->_getVipRightsVal(mt\StakingVip::ACCOUNT_LUCKY_INC);
|
||||||
|
if ($rightVal > 0){
|
||||||
|
$lucky += $rightVal;
|
||||||
|
}
|
||||||
return $lucky;
|
return $lucky;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,16 +71,16 @@ class User extends BaseModel {
|
|||||||
return $rows ? $rows : null;
|
return $rows ? $rows : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// public static function getVipLv($address){
|
public static function getVipLv($address){
|
||||||
// $row = SqlHelper::ormSelectOne(
|
$row = SqlHelper::ormSelectOne(
|
||||||
// myself()->_getMarketMysql(''),
|
myself()->_getMarketMysql(''),
|
||||||
// 't_staking_cec',
|
't_staking_cec',
|
||||||
// array(
|
array(
|
||||||
// 'account_address' => $address
|
'account_address' => $address
|
||||||
// )
|
)
|
||||||
// );
|
);
|
||||||
// return $row ? $row['vip_lv'] : 0;
|
return $row ? $row['vip_lv'] : 0;
|
||||||
// }
|
}
|
||||||
|
|
||||||
public static function show($row)
|
public static function show($row)
|
||||||
{
|
{
|
||||||
@ -141,7 +141,7 @@ class User extends BaseModel {
|
|||||||
'honor_info' => $honorInfo,
|
'honor_info' => $honorInfo,
|
||||||
'account_lucky' => $lucky,
|
'account_lucky' => $lucky,
|
||||||
'chest_rate' => $rate,
|
'chest_rate' => $rate,
|
||||||
// 'vip_lv' => self::getVipLv($row['address']),
|
'vip_lv' => self::getVipLv($row['address']),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -207,7 +207,7 @@ class User extends BaseModel {
|
|||||||
'last_login_time' => $row['last_login_time'],
|
'last_login_time' => $row['last_login_time'],
|
||||||
'account_lucky' => $lucky,
|
'account_lucky' => $lucky,
|
||||||
'chest_rate' => $rate,
|
'chest_rate' => $rate,
|
||||||
// 'vip_lv' => self::getVipLv($row['address']),
|
'vip_lv' => self::getVipLv($row['address']),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,12 +6,12 @@ use phpcommon;
|
|||||||
|
|
||||||
class StakingVip {
|
class StakingVip {
|
||||||
|
|
||||||
const GAIN_GOLD = 1;
|
const GAIN_GOLD = 1; //类型 = 1,Gold模式额外获数量(具体指,不是比例)
|
||||||
const HERO_UP = 2;
|
const HERO_UP = 2; //类型 = 2,英雄升阶金币消耗减少比例
|
||||||
const ACCOUNT_TIMES = 3;
|
const ACCOUNT_TIMES = 3; //类型 = 3,账号总打金次数增加场次
|
||||||
const GOLD_CUT_DOWN = 4;
|
const GOLD_CUT_DOWN = 4; //类型 = 4,购买特殊道具所需金币数量减少比例,此处特殊道具包括-Bounty门票、恢复道具、封装道具
|
||||||
const DIAMOND_CUT_DOWN = 5;
|
const DIAMOND_CUT_DOWN = 5; //类型 = 5,购买特殊道具所需钻石数量减少比例,此处特殊道具包括-英雄升阶概率提升道具
|
||||||
const ACCOUNT_LUCKY_INC = 6;
|
const ACCOUNT_LUCKY_INC = 6; //类型 = 6,账号总有效幸运值增加数值
|
||||||
|
|
||||||
public static function find($lv)
|
public static function find($lv)
|
||||||
{
|
{
|
||||||
@ -23,13 +23,34 @@ class StakingVip {
|
|||||||
return array();
|
return array();
|
||||||
}
|
}
|
||||||
|
|
||||||
// public static function exportRights($lv){
|
public static function exportRights($lv){
|
||||||
// $meta = self::find($lv);
|
$meta = self::find($lv);
|
||||||
// if (!$meta || empty($meta['rights'])){
|
if (!$meta || empty($meta['rights'])){
|
||||||
// return array();
|
return array();
|
||||||
// }
|
}
|
||||||
// $rights = explode('|',$meta['rights']);
|
$rightList = array();
|
||||||
// }
|
$rights = explode('|',$meta['rights']);
|
||||||
|
foreach ($rights as $right){
|
||||||
|
$arr = explode(':',$right);
|
||||||
|
array_push($rightList,array(
|
||||||
|
'type' => $arr[0],
|
||||||
|
'val' => $arr[1],
|
||||||
|
));
|
||||||
|
}
|
||||||
|
return $rightList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getValByLv($lv,$type){
|
||||||
|
$rights = self::exportRights($lv);
|
||||||
|
$rightsHash = array();
|
||||||
|
array_walk($rights, function ($row) use(&$rightsHash) {
|
||||||
|
$rightsHash[$row['type']] = $row;
|
||||||
|
});
|
||||||
|
if (isset($rightsHash[$type])){
|
||||||
|
return $rightsHash[$type]['val'];
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
protected static function getMetaList()
|
protected static function getMetaList()
|
||||||
{
|
{
|
||||||
|
@ -13,6 +13,7 @@ require_once('mt/Rank.php');
|
|||||||
require_once('mt/RankSeason.php');
|
require_once('mt/RankSeason.php');
|
||||||
require_once('mt/EconomyAttribute.php');
|
require_once('mt/EconomyAttribute.php');
|
||||||
require_once('mt/CircuitTime.php');
|
require_once('mt/CircuitTime.php');
|
||||||
|
require_once('mt/StakingVip.php');
|
||||||
|
|
||||||
require_once('services/AwardService.php');
|
require_once('services/AwardService.php');
|
||||||
require_once('services/PropertyChgService.php');
|
require_once('services/PropertyChgService.php');
|
||||||
@ -202,9 +203,15 @@ class RoomBattleDataService extends BaseService {
|
|||||||
'heroInfo'=> $heroDb
|
'heroInfo'=> $heroDb
|
||||||
)));
|
)));
|
||||||
//金币模式检验
|
//金币模式检验
|
||||||
|
//Vip加成打金次数
|
||||||
|
$rewardsMaxTimes = $mapModeMeta['rewards_max_time'];
|
||||||
|
$rightVal = myself()->_getVipRightsVal(mt\StakingVip::ACCOUNT_TIMES);
|
||||||
|
if ($rightVal > 0){
|
||||||
|
$rewardsMaxTimes += $rightVal;
|
||||||
|
}
|
||||||
if ($this->mapMode == mt\MapMode::GOLD_MODE &&
|
if ($this->mapMode == mt\MapMode::GOLD_MODE &&
|
||||||
// ($goldModeTimes >= $mapModeMeta['rewards_max_time'] )){
|
// ($goldModeTimes >= $mapModeMeta['rewards_max_time'] )){
|
||||||
(!Hero::verifyValid($heroDb) || $heroTimes >= $heroTimesMax || $goldModeTimes >= $mapModeMeta['rewards_max_time'])){
|
(!Hero::verifyValid($heroDb) || $heroTimes >= $heroTimesMax || $goldModeTimes >= $rewardsMaxTimes)){
|
||||||
error_log("金币模式:出战英雄没有打金时间或每日打金场次上限");
|
error_log("金币模式:出战英雄没有打金时间或每日打金场次上限");
|
||||||
}else{
|
}else{
|
||||||
if (!empty($rewardMeta['goldLoot'])){
|
if (!empty($rewardMeta['goldLoot'])){
|
||||||
@ -259,7 +266,11 @@ class RoomBattleDataService extends BaseService {
|
|||||||
$gold = $gold * ($powerRate + 1);
|
$gold = $gold * ($powerRate + 1);
|
||||||
$hashRateValue = round($powerRate,4);
|
$hashRateValue = round($powerRate,4);
|
||||||
}
|
}
|
||||||
|
//Vip加成金币获得
|
||||||
|
$rightVal = myself()->_getVipRightsVal(mt\StakingVip::GAIN_GOLD);
|
||||||
|
if ($rightVal > 0){
|
||||||
|
$gold += $rightVal;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ($gold > 0){
|
if ($gold > 0){
|
||||||
array_push($reward,array(
|
array_push($reward,array(
|
||||||
@ -267,7 +278,7 @@ class RoomBattleDataService extends BaseService {
|
|||||||
"item_num" => floor($gold),
|
"item_num" => floor($gold),
|
||||||
"details" => array(
|
"details" => array(
|
||||||
'baseValue' => floor($baseValue),
|
'baseValue' => floor($baseValue),
|
||||||
// 'wealthValue' => $wealthValue,
|
'vipValue' => isset($rightVal) ? $rightVal : 0,
|
||||||
'hashRateValue' => isset($hashRateValue) ? $hashRateValue : 0,
|
'hashRateValue' => isset($hashRateValue) ? $hashRateValue : 0,
|
||||||
)
|
)
|
||||||
));
|
));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user