1
This commit is contained in:
parent
34af585100
commit
cec0178662
@ -5,6 +5,7 @@ require_once('mt/Hero.php');
|
|||||||
require_once('mt/Item.php');
|
require_once('mt/Item.php');
|
||||||
require_once('mt/HeroLevel.php');
|
require_once('mt/HeroLevel.php');
|
||||||
require_once('mt/HeroQuality.php');
|
require_once('mt/HeroQuality.php');
|
||||||
|
require_once('mt/AttrHelper.php');
|
||||||
|
|
||||||
require_once('models/Hero.php');
|
require_once('models/Hero.php');
|
||||||
require_once('models/HeroSkin.php');
|
require_once('models/HeroSkin.php');
|
||||||
@ -195,16 +196,6 @@ class HeroController extends BaseAuthedController {
|
|||||||
$this->_rspErr(2, '锁定期间不能操作');
|
$this->_rspErr(2, '锁定期间不能操作');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$initLevelMeta = mt\HeroLevel::getByQualityLevel(1, 1);
|
|
||||||
if (!$initLevelMeta) {
|
|
||||||
$this->_rspErr(100, '服务器内部错误');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
$initQualityMeta = mt\HeroQuality::getByQuality(1);
|
|
||||||
if (!$initQualityMeta) {
|
|
||||||
$this->_rspErr(100, '服务器内部错误');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
$currQualityMeta = mt\HeroQuality::getByQuality($heroDb['quality']);
|
$currQualityMeta = mt\HeroQuality::getByQuality($heroDb['quality']);
|
||||||
if (!$currQualityMeta) {
|
if (!$currQualityMeta) {
|
||||||
$this->_rspErr(100, '服务器内部错误');
|
$this->_rspErr(100, '服务器内部错误');
|
||||||
@ -212,12 +203,12 @@ class HeroController extends BaseAuthedController {
|
|||||||
}
|
}
|
||||||
$nextQualityMeta = mt\HeroQuality::getByQuality($heroDb['quality'] + 1);
|
$nextQualityMeta = mt\HeroQuality::getByQuality($heroDb['quality'] + 1);
|
||||||
if (!$nextQualityMeta) {
|
if (!$nextQualityMeta) {
|
||||||
$this->_rspErr(5, '已满级');
|
$this->_rspErr(5, '已满级1');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$nextLevelMeta = mt\HeroLevel::getByQualityLevel($heroDb['quality'] + 1, $heroDb['level']);
|
$nextLevelMeta = mt\HeroLevel::getByQualityLevel($heroDb['quality'] + 1, $heroDb['hero_lv']);
|
||||||
if (!$nextLevelMeta) {
|
if (!$nextLevelMeta) {
|
||||||
$this->_rspErr(5, '已满级');
|
$this->_rspErr(5, '已满级2');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$costItems = array();
|
$costItems = array();
|
||||||
@ -254,19 +245,13 @@ class HeroController extends BaseAuthedController {
|
|||||||
$this->_rspErr(3, $this->_getLackItemErrMsg($lackItem));
|
$this->_rspErr(3, $this->_getLackItemErrMsg($lackItem));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$oldAttr = json_decode($heroDb['rand_attr'], true);
|
$attrs = emptyReplace(json_decode($heroDb['rand_attr'], true), array());
|
||||||
$randAttr = $oldAttr;
|
|
||||||
$ret = false;
|
|
||||||
{
|
{
|
||||||
$ret = mt\HeroQuality::getNextAttr($initQualityMeta, $nextQualityMeta, $oldAttr, $randAttr);
|
$obtainAttrs = mt\HeroQuality::getRandAttr($nextQualityMeta);
|
||||||
if (!$ret) {
|
mt\AttrHelper::mergeAttr($attrs, $obtainAttrs);
|
||||||
$this->_rspErr(2, '服务器内部错误');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
$oldAttr = $randAttr;
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
$ret = mt\HeroLevel::getNextAttr($initLevelMeta, $nextLevelMeta, $oldAttr, $randAttr);
|
$ret = mt\HeroLevel::addRandAttr($nextLevelMeta, $attrs);
|
||||||
if (!$ret) {
|
if (!$ret) {
|
||||||
$this->_rspErr(2, '服务器内部错误');
|
$this->_rspErr(2, '服务器内部错误');
|
||||||
return;
|
return;
|
||||||
@ -275,10 +260,16 @@ class HeroController extends BaseAuthedController {
|
|||||||
$this->_decItems($costItems);
|
$this->_decItems($costItems);
|
||||||
Hero::update($heroUniId,
|
Hero::update($heroUniId,
|
||||||
array(
|
array(
|
||||||
|
'hero_lv' => $heroDb['hero_lv'],
|
||||||
'quality' => $heroDb['quality'] + 1,
|
'quality' => $heroDb['quality'] + 1,
|
||||||
'rand_attr' => json_encode($randAttr)
|
'rand_attr' => json_encode($attrs)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
$propertyChgService = new services\PropertyChgService();
|
||||||
|
$propertyChgService->addHeroChg();
|
||||||
|
$this->_rspData(array(
|
||||||
|
'property_chg' => $propertyChgService->toDto(),
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -6,45 +6,22 @@ use phpcommon;
|
|||||||
|
|
||||||
class AttrHelper {
|
class AttrHelper {
|
||||||
|
|
||||||
public static function parseAttrCfg($attrStr)
|
public static function mergeAttr(&$tarAttrs, $srcAttrs)
|
||||||
{
|
{
|
||||||
$attrs = array();
|
foreach ($srcAttrs as $srcAttr) {
|
||||||
$strs = explode('|', $attrStr);
|
$found = false;
|
||||||
foreach ($strs as $str) {
|
foreach ($tarAttrs as &$tarAttr) {
|
||||||
$strs1 = explode('|', $attrStr);
|
if ($tarAttr['attr_id'] == $srcAttr['attr_id'] &&
|
||||||
array_push($attrs,
|
$tarAttr['type'] == $srcAttr['type']) {
|
||||||
array(
|
$tarAttr['val'] += $srcAttr['val'];
|
||||||
'attr_id' => $strs1[0],
|
$found = true;
|
||||||
'type' => $strs1[1],
|
break;
|
||||||
));
|
|
||||||
}
|
|
||||||
return $attrs;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function mergeAttr($aAttr, $bAttr)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function canMergeCfg($aAttr, $bAttr)
|
|
||||||
{
|
|
||||||
foreach ($bAttr as $attr){
|
|
||||||
if (!array_find($aAttr, function($val) use($attr) {
|
|
||||||
if ($val['attr_id'] == $attr['attr_id'] &&
|
|
||||||
$val['type'] == $attr['type']) {
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
return false;
|
}//end for tarAttrs
|
||||||
})) {
|
if (!$found) {
|
||||||
return false;
|
array_push($tarAttrs, $srcAttr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function randAttr($attr, $outAttr)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user