武器升级
This commit is contained in:
parent
3d6face169
commit
0fcdfb2f2e
17
doc/Gun.py
17
doc/Gun.py
@ -197,4 +197,21 @@ class Gun(object):
|
|||||||
['!infos', [_common.QualityingGun()], '升阶中的枪械列表'],
|
['!infos', [_common.QualityingGun()], '升阶中的枪械列表'],
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
'name': 'upgradeLv',
|
||||||
|
'desc': '升等级',
|
||||||
|
'group': 'Gun',
|
||||||
|
'url': 'webapp/index.php?c=Gun&a=upgradeLv',
|
||||||
|
'params': [
|
||||||
|
_common.ReqHead(),
|
||||||
|
['gun_uniid', 0, '枪械唯一id'],
|
||||||
|
['cost_gun_uniid', 0, '材料武器id'],
|
||||||
|
],
|
||||||
|
'response': [
|
||||||
|
_common.RspHead(),
|
||||||
|
['property_chg', _common.PropertyChg(), '属性变更'],
|
||||||
|
['old_gun', _common.Gun(), '枪械-老'],
|
||||||
|
['new_gun', _common.Gun(), '枪械-新'],
|
||||||
|
]
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
@ -816,4 +816,65 @@ class GunController extends BaseAuthedController {
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function upgradeLv(){
|
||||||
|
$gunUniId = getReqVal('gun_uniid', 0);
|
||||||
|
$costGunUniId = getReqVal('cost_gun_uniid', 0);
|
||||||
|
$gunDb = Gun::find($gunUniId);
|
||||||
|
$oldGun = Gun::toDto($gunDb);
|
||||||
|
$costGunDb = Gun::findEx($costGunUniId);
|
||||||
|
if (!$gunDb || !$costGunDb) {
|
||||||
|
$this->_rspErr(100, 'param error or null');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if ($costGunDb['token_id']){
|
||||||
|
$this->_rspErr(100, 'NFT cannot be a material');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if ($gunDb['gun_lv'] != $costGunDb['gun_lv']){
|
||||||
|
$this->_rspErr(100, 'You need the same level to do it');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$itemMeta = mt\Item::get($gunDb['gun_id']);
|
||||||
|
if (!$itemMeta) {
|
||||||
|
$this->_rspErr(100, 'server internal error');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$nextLevelMeta = mt\GunLevel::getByLevel($gunDb['gun_lv'] +1);
|
||||||
|
if (!$nextLevelMeta) {
|
||||||
|
$this->_rspErr(5, "It's already the highest level");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//升级所需消耗
|
||||||
|
// $costItems = array();
|
||||||
|
// $lackItem = null;
|
||||||
|
// if (!$this->_hasEnoughItems($costItems, $lackItem)) {
|
||||||
|
// $this->_rspErr(3, $this->_getLackItemErrMsg($lackItem));
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
// $this->_decItems($costItems);
|
||||||
|
|
||||||
|
$attrs = mt\GunLevel::addRandAttrNew($gunDb,1);
|
||||||
|
Gun::update($gunUniId,
|
||||||
|
array(
|
||||||
|
'gun_lv' => $gunDb['gun_lv'] + 1,
|
||||||
|
'rand_attr' => json_encode($attrs),
|
||||||
|
));
|
||||||
|
Gun::update($costGunUniId,
|
||||||
|
array(
|
||||||
|
'account_id' => myself()->_getAccountId() . '!!!',
|
||||||
|
)
|
||||||
|
);
|
||||||
|
$newGun = Gun::toDto(Gun::find($gunUniId));
|
||||||
|
$propertyChgService = new services\PropertyChgService();
|
||||||
|
$propertyChgService->addGunChg();
|
||||||
|
$propertyChgService->addUserChg();
|
||||||
|
$this->_rspData(array(
|
||||||
|
'property_chg' => $propertyChgService->toDto(),
|
||||||
|
'old_gun' => $oldGun,
|
||||||
|
'new_gun' => $newGun,
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -57,6 +57,11 @@ class Gun extends BaseModel {
|
|||||||
'idx' => $gunUniId,
|
'idx' => $gunUniId,
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
if ($row) {
|
||||||
|
if ($row['account_id'] != myself()->_getAccountId()) {
|
||||||
|
$row = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
return $row;
|
return $row;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user