Merge branch 'hjb' of git.kingsome.cn:server/game2006api into hjb

This commit is contained in:
aozhiwei 2024-08-17 19:20:15 +08:00
commit 452365ee8b
3 changed files with 61 additions and 24 deletions

View File

@ -10,6 +10,7 @@ require_once('models/Bag.php');
require_once('models/Hero.php');
require_once('models/User.php');
require_once('models/DiamondConsumeProduct.php');
require_once('models/RealtimeData.php');
require_once('services/AwardService.php');
@ -22,6 +23,7 @@ use phpcommon\SqlHelper;
use models\Bag;
use models\Hero;
use models\User;
use models\RealtimeData;
use models\DiamondConsumeProduct;
use services\LogService;
@ -391,33 +393,28 @@ class BagController extends BaseAuthedController {
return;
}
}
$lootMeta = mt\LootConfig::find($itemMeta['loot']);
if ($lootMeta['isAffected']){
// $lucky = Hero::getAccountLucky(myself()->_getAddress());
$lucky = Hero::getAccountLuckyTemp();
$luckyParam = \mt\Parameter::getVal('economy_account_luck_K',0);
$rangeArr = explode("|",\mt\Parameter::getVal('economy_account_luck_range',0));
$rate = ($rangeArr[1]-$rangeArr[0]) * $lucky/($lucky+$luckyParam) + $rangeArr[0];
$rnd = rand() / (mt_getrandmax() + 1);
$items = array();
if ($rnd <= $rate){
$itemsTemp = \services\LootService::dropOutItem($itemMeta['loot']);
foreach ($itemsTemp as $itemTemp){
array_push($items,$itemTemp);
}
}
if ($itemMeta['quality'] > 3){
$maxCec = \mt\Parameter::getVal('CEC_ServerDailyLootMax_Special',1500);
$nameIndex = RealtimeData::CEC_NAME_INDEX2;
}else{
$maxCec = \mt\Parameter::getVal('CEC_ServerDailyLootMax_Normal',500);
$nameIndex = RealtimeData::CEC_NAME_INDEX1;
}
$items = array();
for ($i=0;$i<$itemNum;$i++){
$itemsTemp = \services\LootService::dropOutItem($itemMeta['loot']);
foreach ($itemsTemp as $itemTemp){
array_push($items,$itemTemp);
if ($itemTemp['item_id'] == V_ITEM_BCEG){
$currentOutPutCec = RealtimeData::getDailyCec($nameIndex);
if ($currentOutPutCec + $itemTemp['item_num'] <= $maxCec){
RealtimeData::incDailyCec($nameIndex,$itemTemp['item_num']);
array_push($items,$itemTemp);
}
}else{
array_push($items,$itemTemp);
}
}
}
}
$hashItems = array();
foreach ($items as $item){
if (isset($hashItems[$item['item_id']])){

View File

@ -126,4 +126,44 @@ class RealtimeData extends BaseModel {
return $row ? $row : '';
}
public static function getDailyCec($nameIndex)
{
$row = self::internalGet("daily_output_cec_".$nameIndex);
if (!$row){
return 0;
}
if (myself()->_getDaySeconds($row['modifytime']) < myself()->_getNowDaySeconds()) {
$row['value1'] = 0;
}
return $row['value1'];
}
public static function incDailyCec($nameIndex,$value){
$oldValue = self::getDailyCec($nameIndex);
self::internalSet('daily_output_cec_'.$nameIndex,$oldValue+$value);
}
private static function internalSet($name,$value){
SqlHelper::upsert
(myself()->_getMysql(''),
't_realtime_data',
array(
'name' => $name
),
array(
'value1' => $value,
'modifytime' => myself()->_getNowTime()
),
array(
'name' => $name,
'value1' => $value,
'createtime' => myself()->_getNowTime(),
'modifytime' => myself()->_getNowTime()
)
);
}
const CEC_NAME_INDEX1 = "normal";
const CEC_NAME_INDEX2 = "special";
}

View File

@ -5,10 +5,10 @@ namespace services;
class ContributionService extends BaseService {
private static $ignoreCa = array(
'BlockChain@mintGoldBullion',
'InGameMall@sellS',
'InGameMall@buyS',
'InGameMall@shoppingCartBuyS',
'BlockChain@mintGoldBullion'=>1,
'InGameMall@sellS'=>2,
'InGameMall@buyS'=>3,
'InGameMall@shoppingCartBuyS'=>4,
);
public static function onGoldConsume($params) {