game2005api/webapp/metatable/seasoncard.php
2020-12-22 14:35:26 +08:00

125 lines
3.3 KiB
PHP

<?php
namespace metatable;
use phpcommon;
/*
配置表规范
getXXXConf:获取表所有数据
getXxxById():通过id获取单个数据
_internalGetXXXConf:获取表所有数据内部实现不对外开放
使用方式
require_once 'metatable/XXXX.php';
!!!注意必须使用require_once
*/
function getSeacardConf()
{
return _internalGetSeacardConf();
}
function getSeacardById($sea_id)
{
$conf = getSeacardConf();
$sea_id = (int)$sea_id;
return array_key_exists($sea_id, $conf) ? $conf[$sea_id] : null;
}
function _internalGetSeacardConf()
{
global $g_seacard_table;
if (!$g_seacard_table) {
$g_seacard_table = require(getConfigBaseDir() . 'seasoncard@seasoncard.php');
}
return $g_seacard_table;
}
function getNowSeasoncard($score)
{
$level = 0;
$sum_score = 0;
$pass_score = 0;
$max_pass_score = 0;
$sum_point = 0;
$conf = getSeacardConf();
$pass_array = array();
for ($i = 1; $i <= count($conf); $i++) {
$sea = getSeacardById($i);
if ($score >= $sea['min_point'] && $score <= $sea['max_exp']
|| $score >= $sea['min_point'] && $sea['max_exp'] == -1) {
$level = $sea['lv'];
$pass_score = $score - $sea['min_point'] + 1;
$max_pass_score = $sea['max_exp'] - $sea['min_point'] + 1;
$min_pass_score = $sea['min_point'];
if ($sea['max_exp'] == -1) {
$max_pass_score = $sea['min_point'];
$pass_score = $score;
}
array_push($pass_array, array(
'level' => $level,
'pass_score' => $pass_score,
'max_pass_score' => $max_pass_score,
'min_pass_score' => $min_pass_score,
'exp' => $sea['task_exp'],
));
return $pass_array;
}
}
return null;
}
function getNowSeasoncardInfo($score)
{
$conf = getSeacardConf();
for ($i = 1; $i <= count($conf); $i++) {
$sea = getSeacardById($i);
if ($score >= $sea['min_point'] && $score <= $sea['max_exp']
|| $score >= $sea['min_point'] && $sea['max_exp'] == -1) {
return $sea['lv'];
}
}
return null;
}
function getNowSeasoncardExp($score)
{
$conf = getSeacardConf();
for ($i = 1; $i <= count($conf); $i++) {
$sea = getSeacardById($i);
if ($score >= $sea['min_point'] && $score <= $sea['max_exp']
|| $score >= $sea['min_point'] && $sea['max_exp'] == -1) {
return $sea['task_exp'];
}
}
return null;
}
function getNowSeasoncardMaxExp($score)
{
$conf = getSeacardConf();
for ($i = 1; $i <= count($conf); $i++) {
$sea = getSeacardById($i);
if ($score >= $sea['min_point'] && $score <= $sea['max_exp']
|| $score >= $sea['min_point'] && $sea['max_exp'] == -1) {
return $sea['max_exp'];
}
}
return null;
}
function getNowSeasoncardCost($score)
{
$conf = getSeacardConf();
for ($i = 1; $i <= count($conf); $i++) {
$sea = getSeacardById($i);
if ($score >= $sea['min_point'] && $score <= $sea['max_exp']
|| $score >= $sea['min_point'] && $sea['max_exp'] == -1) {
return $sea['cost'];
}
}
return null;
}