125 lines
3.3 KiB
PHP
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;
|
|
}
|