game2006api/webapp/controller/HeroController.class.php
aozhiwei d4b5f02603 1
2022-01-05 13:41:11 +08:00

120 lines
3.2 KiB
PHP

<?php
require_once('mt/Shop.php');
require_once('mt/Hero.php');
require_once('mt/Item.php');
require_once('models/Hero.php');
require_once('models/HeroSkin.php');
use phpcommon\SqlHelper;
use models\Hero;
use models\HeroSkin;
class HeroController extends BaseAuthedController {
public function heroList()
{
$heroList = array();
SqlHelper::ormSelect(
$this->_getSelfMysql(),
't_hero',
array(
'account_id' => $this->_getAccountId()
),
function ($row) use(&$heroList) {
array_push($heroList, Hero::toDto($row));
}
);
$this->_rspData(array(
'hero_list' => $heroList
));
}
public function skinList()
{
$skinList = array();
SqlHelper::ormSelect(
$this->_getSelfMysql(),
't_hero_skin',
array(
'account_id' => $this->_getAccountId()
),
function ($row) use(&$skinList) {
array_push($skinList, HeroSkin::toDto($row));
}
);
$this->_rspData(array(
'skin_list' => $skinList
));
}
public function takeonSkin()
{
$heroUniId = getReqVal('hero_uniid', 0);
$skinId = getReqVal('skin_id', 0);
$heroDb = Hero::find($heroUniId);
$heroSkinDb = HeroSkin::find($skinId);
if (!$heroDb) {
$this->_rspErr(1, '你还没这个英雄');
return;
}
if (!$heroSkinDb) {
$this->_rspErr(2, '你还没这个皮肤');
return;
}
Hero::takeonSkin($heroUniId, $skinId);
$this->_rspOk();
}
public function upgradeSkill()
{
$heroUniId = getReqVal('hero_uniid', 0);
$skillIdx = getReqVal('skill_idx', 0);
$heroDb = Hero::find($heroUniId);
if (!$heroDb) {
$this->_rspErr(1, '你还没这个英雄');
return;
}
if (!in_array($skillIdx, array(0, 1))) {
$this->_rspErr(1, 'skill_idx参数必须为0-1');
return;
}
Hero::upgradeSkill($heroUniId, $skillIdx);
$this->_rspOk();
}
public function upgradeLevel()
{
$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;
}
$heroMeta = mt\Hero::get($heroDb['hero_id']);
if (!$heroMeta) {
$this->_rspErr(100, '服务器内部错误');
return;
}
}
public function upgradeQuality()
{
$heroUniId = getReqVal('hero_uniid', 0);
}
}