1
This commit is contained in:
parent
1d42bf8c6b
commit
18245e0463
@ -20,8 +20,9 @@ class Attr(object):
|
||||
|
||||
def __init__(self):
|
||||
self.fields = [
|
||||
['attr_type', 0, '属性类型'],
|
||||
['attr_val', 0, '属性值'],
|
||||
['attr_id', 0, '属性id'],
|
||||
['type', 0, '0: 绝对值 1:百分比'],
|
||||
['val', 0, '属性值'],
|
||||
]
|
||||
|
||||
class Gun(object):
|
||||
|
@ -107,17 +107,17 @@ class HeroController extends BaseAuthedController {
|
||||
$this->_rspErr(2, '锁定期间不能操作');
|
||||
return;
|
||||
}
|
||||
$initLevelMeta = mt\HeroLevel::get(1, 1);
|
||||
$initLevelMeta = mt\HeroLevel::getByQualityLevel(1, 1);
|
||||
if (!$initLevelMeta) {
|
||||
$this->_rspErr(100, '服务器内部错误');
|
||||
return;
|
||||
}
|
||||
$currLevelMeta = mt\HeroLevel::get($heroDb['quality'], $heroDb['hero_lv']);
|
||||
$currLevelMeta = mt\HeroLevel::getByQualityLevel($heroDb['quality'], $heroDb['hero_lv']);
|
||||
if (!$currLevelMeta) {
|
||||
$this->_rspErr(100, '服务器内部错误');
|
||||
return;
|
||||
}
|
||||
$nextLevelMeta = mt\HeroLevel::get($heroDb['quality'], $heroDb['hero_lv'] + 1);
|
||||
$nextLevelMeta = mt\HeroLevel::getByQualityLevel($heroDb['quality'], $heroDb['hero_lv'] + 1);
|
||||
if (!$nextLevelMeta) {
|
||||
$this->_rspErr(5, '已满级');
|
||||
return;
|
||||
@ -133,7 +133,7 @@ class HeroController extends BaseAuthedController {
|
||||
)
|
||||
);
|
||||
}
|
||||
break;
|
||||
Break;
|
||||
case V_ITEM_DIAMOND:
|
||||
{
|
||||
$costItems = array(
|
||||
@ -157,7 +157,8 @@ class HeroController extends BaseAuthedController {
|
||||
return;
|
||||
}
|
||||
$oldAttr = json_decode($heroDb['rand_attr'], true);
|
||||
$randAttr = array();
|
||||
$randAttr = $oldAttr;
|
||||
mt\HeroLevel::getRandAttr($initLevelMeta, $nextLevelMeta, $oldAttr, $randAttr);
|
||||
$this->_decItems($costItems);
|
||||
Hero::update($heroUniId,
|
||||
array(
|
||||
@ -165,12 +166,104 @@ class HeroController extends BaseAuthedController {
|
||||
'rand_attr' => json_encode($randAttr)
|
||||
)
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
public function upgradeQuality()
|
||||
{
|
||||
$costItemId = getReqVal('cost_item_id', 0);
|
||||
$heroUniId = getReqVal('hero_uniid', 0);
|
||||
$heroDb = Hero::find($heroUniId);
|
||||
if (!$heroDb) {
|
||||
$this->_rspErr(1, '英雄不存在');
|
||||
return;
|
||||
}
|
||||
if ($heroDb['state'] == Hero::GETED_STATE) {
|
||||
$this->_rspErr(3, '试用英雄不能操作');
|
||||
return;
|
||||
}
|
||||
if ($heroDb['unlock_time'] > $this->_getNowTime()) {
|
||||
$this->_rspErr(2, '锁定期间不能操作');
|
||||
return;
|
||||
}
|
||||
if ($heroDb['unlock_trade_time'] > $this->_getNowTime()) {
|
||||
$this->_rspErr(2, '锁定期间不能操作');
|
||||
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']);
|
||||
if (!$currQualityMeta) {
|
||||
$this->_rspErr(100, '服务器内部错误');
|
||||
return;
|
||||
}
|
||||
$nextQualityMeta = mt\HeroQuality::getByQuality($heroDb['quality'] + 1);
|
||||
if (!$nextQualityMeta) {
|
||||
$this->_rspErr(5, '已满级');
|
||||
return;
|
||||
}
|
||||
$nextLevelMeta = mt\HeroLevel::getByQualityLevel($heroDb['quality'] + 1, $heroDb['level']);
|
||||
if (!$nextLevelMeta) {
|
||||
$this->_rspErr(5, '已满级');
|
||||
return;
|
||||
}
|
||||
$costItems = array();
|
||||
switch ($costItemId) {
|
||||
case V_ITEM_GOLD:
|
||||
{
|
||||
$costItems = array(
|
||||
array(
|
||||
'item_id' => $costItemId,
|
||||
'item_num' => $currQualityMeta['gold']
|
||||
)
|
||||
);
|
||||
}
|
||||
break;
|
||||
case V_ITEM_DIAMOND:
|
||||
{
|
||||
$costItems = array(
|
||||
array(
|
||||
'item_id' => $costItemId,
|
||||
'item_num' => $currQualityMeta['diamond']
|
||||
)
|
||||
);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
{
|
||||
$this->_rspErr(2, '支付方式不支持');
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
$lackItem = null;
|
||||
if (!$this->_hasEnoughItems($costItems, $lackItem)) {
|
||||
$this->_rspErr(3, $this->_getLackItemErrMsg($lackItem));
|
||||
return;
|
||||
}
|
||||
$oldAttr = json_decode($heroDb['rand_attr'], true);
|
||||
$randAttr = $oldAttr;
|
||||
{
|
||||
mt\HeroQuality::getNextAttr($initQualityMeta, $nextQualityMeta, $oldAttr, $randAttr);
|
||||
$oldAttr = $randAttr;
|
||||
}
|
||||
{
|
||||
mt\HeroLevel::getNextAttr($initLevelMeta, $nextLevelMeta, $oldAttr, $randAttr);
|
||||
}
|
||||
$this->_decItems($costItems);
|
||||
Hero::update($heroUniId,
|
||||
array(
|
||||
'quality' => $heroDb['quality'] + 1,
|
||||
'rand_attr' => json_encode($randAttr)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ class HeroLevel {
|
||||
return getXVal(self::$qualityLevelHash, $quality . '_' . $level, null);
|
||||
}
|
||||
|
||||
public static function getRandAttr($initMeta, $currMeta, $oldAttr, &$newAttr)
|
||||
public static function getRandAttr($initMeta, $nextMeta, $oldAttr, &$newAttr)
|
||||
{
|
||||
|
||||
}
|
||||
|
@ -17,6 +17,11 @@ class HeroQuality {
|
||||
return getXVal(self::$qualityHash, $level, null);
|
||||
}
|
||||
|
||||
public static function getRandAttr($initMeta, $nextMeta, $oldAttr, &$newAttr)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected static function getMetaList()
|
||||
{
|
||||
if (!self::$metaList) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user