1
This commit is contained in:
parent
c5af214d2c
commit
3ab7c52cef
@ -7,20 +7,24 @@ require_once ('services/callback/common/SignatureService.php');
|
||||
require_once('mt/Item.php');
|
||||
require_once('mt/Hero.php');
|
||||
require_once('mt/Parameter.php');
|
||||
require_once('mt/BattleRandAttribute.php');
|
||||
require_once('models/Hero.php');
|
||||
|
||||
|
||||
use mt\BattleRandAttribute;
|
||||
use mt\Item;
|
||||
use mt\Hero;
|
||||
use mt\Parameter;
|
||||
use phpcommon\SqlHelper;
|
||||
use models\Hero as HeroModel;
|
||||
|
||||
class MintNftHero
|
||||
{
|
||||
const TYPE_1 = 1; //D
|
||||
const TYPE_2 = 2; //C
|
||||
const TYPE_3 = 3; //B
|
||||
const TYPE_4 = 4; //A
|
||||
const TYPE_5 = 5; //S
|
||||
const TYPE_1 = 1;
|
||||
const TYPE_2 = 2;
|
||||
const TYPE_3 = 3;
|
||||
const TYPE_4 = 4;
|
||||
const TYPE_5 = 5;
|
||||
const TYPE_6 = 6;
|
||||
public function process()
|
||||
{
|
||||
SignatureService::web3ServiceCheck();
|
||||
@ -49,6 +53,7 @@ class MintNftHero
|
||||
self::TYPE_3,
|
||||
self::TYPE_4,
|
||||
self::TYPE_5,
|
||||
self::TYPE_6,
|
||||
))){
|
||||
echo json_encode(array(
|
||||
'errcode' => 2,
|
||||
@ -75,7 +80,7 @@ class MintNftHero
|
||||
}
|
||||
|
||||
|
||||
$this->internalAddHero($tokenId,$itemId,$quality);
|
||||
$this->internalAddHero($tokenId,$itemMeta,$quality);
|
||||
echo json_encode(array(
|
||||
'errcode' => 0,
|
||||
'errmsg' => "callback success",
|
||||
@ -111,25 +116,29 @@ class MintNftHero
|
||||
}
|
||||
|
||||
|
||||
private function internalAddHero($tokenId,$itemId,$quality)
|
||||
private function internalAddHero($tokenId,$heroMeta,$quality)
|
||||
{
|
||||
$randAttr = $this->_getRandAttr($itemId,$quality) ;
|
||||
$randAttr = $this->_getRandAttr($heroMeta['id']) ;
|
||||
$attribute = \mt\EconomyAttribute::getAttribute($heroMeta['relationship'], $quality);
|
||||
$fieldsKv = array(
|
||||
'hero_id' => $itemId,
|
||||
'hero_id' => $heroMeta['id'],
|
||||
'token_id' => $tokenId,
|
||||
'hero_lv' => 1,
|
||||
'quality' => 1,
|
||||
'quality' => $quality,
|
||||
'state' => 0,
|
||||
'skill_lv1' => 1,
|
||||
'skill_lv2' => 1,
|
||||
'rand_attr' => json_encode($randAttr),
|
||||
'wealth_attr' => json_encode($attribute),
|
||||
'lock_type' => 0,
|
||||
'unlock_time' => 0,
|
||||
'unlock_trade_time' => 0,
|
||||
'activate' => 1,
|
||||
'base_attr' => json_encode($randAttr),
|
||||
'activate_time' => myself()->_getNowTime(),
|
||||
'createtime' => myself()->_getNowTime(),
|
||||
'modifytime' => myself()->_getNowTime()
|
||||
'modifytime' => myself()->_getNowTime(),
|
||||
'seal_type' => HeroModel::SEAL_STATE,
|
||||
'unseal_time' => myself()->_getNowTime(),
|
||||
);
|
||||
|
||||
SqlHelper::insert(
|
||||
@ -139,43 +148,13 @@ class MintNftHero
|
||||
);
|
||||
}
|
||||
|
||||
private function _getRandAttr($heroId,$quality){
|
||||
$heroMeta = Hero::get($heroId);
|
||||
$baseAttr = Hero::getHeroAttr($heroMeta);
|
||||
$paramMeta = Parameter::getVal('quality',0);
|
||||
private function _getRandAttr($heroId){
|
||||
$attr = array();
|
||||
if ($paramMeta){
|
||||
$rate = explode('|',$paramMeta);
|
||||
foreach ($baseAttr as $value){
|
||||
if (in_array($value['attr_id'],array(kHAT_Hp,kHAT_Atk,kHAT_Def))){
|
||||
// $quality = self::_getAttrQuality($type);
|
||||
$minRate = $rate[$quality-1] * 100;
|
||||
$maxRate = $rate[$quality] * 100 - 1;
|
||||
if ($quality == 5){
|
||||
$maxRate = $rate[$quality] * 100;
|
||||
}
|
||||
$finalRate = rand($minRate,$maxRate) / 100;
|
||||
if ( $value['attr_id'] == kHAT_Hp){
|
||||
$attr_val = round($value['val'] * $finalRate,0);
|
||||
}else{
|
||||
$attr_val = round($value['val'] * $finalRate,2);
|
||||
}
|
||||
|
||||
array_push($attr,array(
|
||||
'attr_id' => $value['attr_id'],
|
||||
'val' => $attr_val,
|
||||
'quality' => $quality,
|
||||
// 'rate' => $finalRate,
|
||||
)
|
||||
);
|
||||
} else {
|
||||
array_push($attr,array(
|
||||
'attr_id' => $value['attr_id'],
|
||||
'val' => $value['val'] ,
|
||||
'quality' => 0,
|
||||
)
|
||||
);
|
||||
}
|
||||
$basicMeta = BattleRandAttribute::get($heroId);
|
||||
if ($basicMeta) {
|
||||
$randMeta = BattleRandAttribute::getByWeight($basicMeta['randomAttribute_Default']);
|
||||
if ($randMeta) {
|
||||
$attr = BattleRandAttribute::getRandAttr($randMeta);
|
||||
}
|
||||
}
|
||||
return $attr;
|
||||
|
Loading…
x
Reference in New Issue
Block a user