This commit is contained in:
aozhiwei 2022-01-05 19:50:51 +08:00
parent 18245e0463
commit ba5fcca7ad
3 changed files with 53 additions and 4 deletions

View File

@ -158,7 +158,11 @@ class HeroController extends BaseAuthedController {
}
$oldAttr = json_decode($heroDb['rand_attr'], true);
$randAttr = $oldAttr;
mt\HeroLevel::getRandAttr($initLevelMeta, $nextLevelMeta, $oldAttr, $randAttr);
$ret = mt\HeroLevel::getRandAttr($initLevelMeta, $nextLevelMeta, $oldAttr, $randAttr);
if (!$ret) {
$this->_rspErr(2, '服务器内部错误');
return;
}
$this->_decItems($costItems);
Hero::update($heroUniId,
array(
@ -250,12 +254,21 @@ class HeroController extends BaseAuthedController {
}
$oldAttr = json_decode($heroDb['rand_attr'], true);
$randAttr = $oldAttr;
$ret = false;
{
mt\HeroQuality::getNextAttr($initQualityMeta, $nextQualityMeta, $oldAttr, $randAttr);
$ret = mt\HeroQuality::getNextAttr($initQualityMeta, $nextQualityMeta, $oldAttr, $randAttr);
if (!$ret) {
$this->_rspErr(2, '服务器内部错误');
return;
}
$oldAttr = $randAttr;
}
{
mt\HeroLevel::getNextAttr($initLevelMeta, $nextLevelMeta, $oldAttr, $randAttr);
$ret = mt\HeroLevel::getNextAttr($initLevelMeta, $nextLevelMeta, $oldAttr, $randAttr);
if (!$ret) {
$this->_rspErr(2, '服务器内部错误');
return;
}
}
$this->_decItems($costItems);
Hero::update($heroUniId,

28
webapp/mt/AttrHelper.php Normal file
View File

@ -0,0 +1,28 @@
<?php
namespace mt;
use phpcommon;
class AttrHelper {
public static function parseAttr($attrStr)
{
$attrs = array();
$strs = explode('|', $attrStr);
foreach ($strs as $str) {
}
return $attrs;
}
public static function mergeAttr($aAttr, $bAttr)
{
}
public static function canMerge($aAttr, $bAttr)
{
}
}

View File

@ -2,6 +2,8 @@
namespace mt;
require('mt/AttrHelper.sql');
use phpcommon;
class HeroLevel {
@ -19,7 +21,13 @@ class HeroLevel {
public static function getRandAttr($initMeta, $nextMeta, $oldAttr, &$newAttr)
{
$initAttr = mt\AttrHelper::parseAttr($initMeta['rand_attrs']);
$nextAttr = mt\AttrHelper::parseAttr($next['rand_attrs']);
if (!mt\AttrHelper::canMerge($initAttr, $nextAttr)) {
return false;
}
mt\AttrHelper::mergeAttr($oldAttr, $newAttr);
return true;
}
protected static function getMetaList()