添加算力玩法
This commit is contained in:
parent
fc6e1d1af8
commit
7ca69ada14
@ -40,7 +40,7 @@ class ComputingPower(object):
|
||||
'params': [
|
||||
_common.ReqHead(),
|
||||
['item_id', 0, '晶体item'],
|
||||
['item_num', 0, '晶体数量'],
|
||||
# ['item_num', 0, '晶体数量'],
|
||||
],
|
||||
'response': [
|
||||
_common.RspHead(),
|
||||
|
@ -11,6 +11,7 @@ require_once('models/CrystalRecord.php');
|
||||
|
||||
use models\ComputingPower;
|
||||
use models\CrystalRecord;
|
||||
use mt\HashRate;
|
||||
use phpcommon\SqlHelper;
|
||||
class ComputingPowerController extends BaseAuthedController
|
||||
{
|
||||
@ -99,22 +100,77 @@ class ComputingPowerController extends BaseAuthedController
|
||||
|
||||
public function exchangeCrystal(){
|
||||
$itemId = getReqVal('item_id', 0);
|
||||
$itemNum = getReqVal('item_num', 0);
|
||||
// $itemNum = getReqVal('item_num', 0);
|
||||
$itemMeta = \mt\Item::get($itemId);
|
||||
if (!$itemMeta || $itemMeta['type'] != \mt\Item::CRYSTAL_TYPE || !$itemNum){
|
||||
if (!$itemMeta || $itemMeta['type'] != \mt\Item::CRYSTAL_TYPE ){
|
||||
$this->_rspErr(1, 'param error');
|
||||
return ;
|
||||
}
|
||||
$hashRateMeta = HashRate::findHash($itemId);
|
||||
if (!$hashRateMeta){
|
||||
$this->_rspErr(1, 'param error');
|
||||
return ;
|
||||
}
|
||||
$param = explode('|',$hashRateMeta['parameter']);
|
||||
$crystalNum = 0;
|
||||
switch ($itemId){
|
||||
case ComputingPower::CRYSTAL1 : {
|
||||
$killsNum = myself()->_getV(TN_TOTAL_KILLS_NUM,0);
|
||||
$starNum = myself()->_getV(TN_TOTAL_STAR_NUM,0);
|
||||
$crystalNum = max(0,floor($killsNum/$param[0]) +
|
||||
floor($starNum/$param[1]) );
|
||||
}
|
||||
break;
|
||||
case ComputingPower::CRYSTAL2 : {
|
||||
$consumeCost = myself()->_getV(TN_TOTAL_DIAMOND_CONSUME,0);
|
||||
$crystalNum = max(0,floor($consumeCost/$param[0]));
|
||||
}
|
||||
break;
|
||||
case ComputingPower::CRYSTAL3 : {
|
||||
$consumeCost = myself()->_getV(TN_TOTAL_CEG_CONSUME,0);
|
||||
$crystalNum = max(0,floor($consumeCost/$param[0]));
|
||||
}
|
||||
}
|
||||
if ($crystalNum < 1){
|
||||
$this->_rspErr(1, 'There are no available crystals');
|
||||
return ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
$items = array(
|
||||
array(
|
||||
'item_id' => $itemId,
|
||||
'item_num' => $itemNum,
|
||||
'item_num' => $crystalNum,
|
||||
)
|
||||
);
|
||||
$propertyChgService = new services\PropertyChgService();
|
||||
$awardService = new services\AwardService();
|
||||
$this->_addItems($items,$awardService,$propertyChgService);
|
||||
CrystalRecord::addCrystalRecord($itemId,$itemNum);
|
||||
CrystalRecord::addCrystalRecord($itemId,$crystalNum);
|
||||
switch ($itemId) {
|
||||
case ComputingPower::CRYSTAL1 : {
|
||||
$killsNum = myself()->_getV(TN_TOTAL_KILLS_NUM,0);
|
||||
$starNum = myself()->_getV(TN_TOTAL_STAR_NUM,0);
|
||||
$newKillsNum = floor($killsNum/$param[0]) * $param[0];
|
||||
myself()->_decV(TN_TOTAL_KILLS_NUM,0,$newKillsNum);
|
||||
$newStarNum = floor($starNum/$param[1]) * $param[1];
|
||||
myself()->_decV(TN_TOTAL_STAR_NUM,0,$newStarNum);
|
||||
}
|
||||
break;
|
||||
case ComputingPower::CRYSTAL2 : {
|
||||
$consumeCost = myself()->_getV(TN_TOTAL_DIAMOND_CONSUME,0);
|
||||
$newConsumeCost = floor($consumeCost/$param[0]) * $param[0];
|
||||
myself()->_decV(TN_TOTAL_DIAMOND_CONSUME,0,$newConsumeCost);
|
||||
}
|
||||
break;
|
||||
case ComputingPower::CRYSTAL3 : {
|
||||
$consumeCost = myself()->_getV(TN_TOTAL_CEG_CONSUME,0);
|
||||
$newConsumeCost = floor($consumeCost/$param[0]) * $param[0];
|
||||
myself()->_decV(TN_TOTAL_CEG_CONSUME,0,$newConsumeCost);
|
||||
}
|
||||
break;
|
||||
}
|
||||
$this->_rspData(array(
|
||||
'award' => $awardService->toDto(),
|
||||
'property_chg' => $propertyChgService->toDto(),
|
||||
|
@ -199,7 +199,11 @@ END
|
||||
}
|
||||
break;
|
||||
case 3 : {
|
||||
myself()->_incV(TN_TOTAL_RANK_NUM,0,$num);
|
||||
myself()->_incV(TN_TOTAL_DIAMOND_CONSUME,0,$num);
|
||||
}
|
||||
break;
|
||||
case 4 : {
|
||||
myself()->_incV(TN_TOTAL_CEG_CONSUME,0,$num);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -23,35 +23,54 @@ class HashRateService extends BaseService
|
||||
'state' => self::NONE_STATE,
|
||||
);
|
||||
$hashRateMeta = HashRate::findHash($crystalMeta['id']);
|
||||
$ownedNum = CrystalRecord::getCrystalNum($crystalMeta['id']);
|
||||
$crystalDto['claimed'] = intval($ownedNum);
|
||||
switch ($crystalMeta['sub_type']){
|
||||
case 1 : {
|
||||
$killsNum = myself()->_getV(TN_TOTAL_KILLS_NUM,0);
|
||||
$starNum = myself()->_getV(TN_TOTAL_STAR_NUM,0);
|
||||
$rankNum = myself()->_getV(TN_TOTAL_RANK_NUM,0);
|
||||
// $rankNum = myself()->_getV(TN_TOTAL_RANK_NUM,0);
|
||||
$crystalDto['total'] = array(
|
||||
'param1' => intval($killsNum),
|
||||
'param2' => intval($starNum),
|
||||
'param3' => intval($rankNum),
|
||||
// 'param3' => intval($rankNum),
|
||||
);
|
||||
$param = explode('|',$hashRateMeta['parameter']);
|
||||
$totalNum = max(0,floor($killsNum/$param[0]) +
|
||||
floor($starNum/$param[1]) + $rankNum);
|
||||
$ownedNum = CrystalRecord::getCrystalNum($crystalMeta['id']);
|
||||
$crystalDto['pending'] = intval(max(0,$totalNum - $ownedNum));
|
||||
$crystalDto['claimed'] = intval($ownedNum);
|
||||
floor($starNum/$param[1]) );
|
||||
|
||||
// $crystalDto['pending'] = intval(max(0,$totalNum - $ownedNum));
|
||||
$crystalDto['pending'] = intval($totalNum);
|
||||
$crystalDto['state'] = $crystalDto['pending'] > 0 ? self::RECEIVED_STATE : self::NONE_STATE;
|
||||
}
|
||||
break;
|
||||
case 2 : {
|
||||
// 游戏内消费总价值
|
||||
$consumeCost = myself()->_getV(TN_TOTAL_DIAMOND_CONSUME,0);
|
||||
$crystalDto['total'] = array(
|
||||
'param1' => intval($consumeCost),
|
||||
);
|
||||
$totalNum = max(0,floor($consumeCost/$hashRateMeta['parameter']));
|
||||
$crystalDto['pending'] = intval($totalNum);
|
||||
$crystalDto['state'] = $crystalDto['pending'] > 0 ? self::RECEIVED_STATE : self::NONE_STATE;
|
||||
}
|
||||
break;
|
||||
case 3 : {
|
||||
// Market交易总价值
|
||||
$consumeCost = myself()->_getV(TN_TOTAL_CEG_CONSUME,0);
|
||||
$crystalDto['total'] = array(
|
||||
'param1' => intval($consumeCost),
|
||||
);
|
||||
$totalNum = max(0,floor($consumeCost/$hashRateMeta['parameter']));
|
||||
$crystalDto['pending'] = intval($totalNum);
|
||||
$crystalDto['state'] = $crystalDto['pending'] > 0 ? self::RECEIVED_STATE : self::NONE_STATE;
|
||||
}
|
||||
break;
|
||||
case 4 : {
|
||||
// 质压总价值
|
||||
$crystalDto['total'] = array(
|
||||
'param1' => 0,
|
||||
);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -220,6 +220,7 @@ class TameBattleDataService extends BaseService {
|
||||
|
||||
//击杀
|
||||
if (getXVal($this->battleInfo,'pvp_kill', 0) > 0){
|
||||
myself()->_incV(TN_TOTAL_KILLS_NUM, 0, getXVal($this->battleInfo,'pvp_kill', 0));
|
||||
RankBattle::upsert($account,RankBattle::KILL_TIMES,getXVal($this->battleInfo,'pvp_kill', 0));
|
||||
}
|
||||
}
|
||||
@ -691,6 +692,7 @@ class TameBattleDataService extends BaseService {
|
||||
$propertyChgService = new services\PropertyChgService();
|
||||
$awardService = new services\AwardService();
|
||||
myself()->_addItems($items, $awardService,$propertyChgService);
|
||||
myself()->_incV(TN_TOTAL_STAR_NUM, 0, $finalNum);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user