107 lines
2.4 KiB
PHP
107 lines
2.4 KiB
PHP
<?php
|
|
|
|
namespace metatable;
|
|
|
|
use phpcommon;
|
|
|
|
/*
|
|
配置表规范
|
|
getXXXConf:获取表所有数据
|
|
getXxxById():通过id获取单个数据
|
|
_internalGetXXXConf:获取表所有数据内部实现不对外开放
|
|
|
|
使用方式
|
|
require_once 'metatable/XXXX.php';
|
|
|
|
!!!注意必须使用require_once
|
|
*/
|
|
|
|
function getExplode($string)
|
|
{
|
|
$delim = "|";
|
|
$drop_multiply = explode($delim, $string);
|
|
$delim1 = ":";
|
|
$arr = array();
|
|
for ($i = 0; $i < count($drop_multiply); $i++) {
|
|
$mul = explode($delim1, $drop_multiply[$i]);
|
|
array_push($arr, $mul);
|
|
}
|
|
return $arr;
|
|
}
|
|
|
|
function getActivityConf()
|
|
{
|
|
return _internalGetActivityConf();
|
|
}
|
|
|
|
function getActivityById($act_id)
|
|
{
|
|
$conf = getActivityConf();
|
|
$act_id = (int)$act_id;
|
|
return array_key_exists($act_id, $conf) ? $conf[$act_id] : null;
|
|
}
|
|
|
|
function _internalGetActivityConf()
|
|
{
|
|
global $g_act_table;
|
|
if (!$g_act_table) {
|
|
$g_act_table = require(getConfigBaseDir() . 'activity@activity.php');
|
|
}
|
|
return $g_act_table;
|
|
}
|
|
|
|
function getNowActivity()
|
|
{
|
|
$conf = getActivityConf();
|
|
for ($i = 1; $i <= count($conf); $i++) {
|
|
$act = getActivityById($i);
|
|
if (time() >= strtotime($act['time1']) && time() <= strtotime($act['time2'])) {
|
|
return $act;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
function getActInfo($act_conf)
|
|
{
|
|
$info_list = array();
|
|
$conditions = getExplode($act_conf['condition']);
|
|
for ($i = 0; $i < count($conditions); $i++) {
|
|
array_push($info_list,array(
|
|
'id' => $i,
|
|
'status' => 0,
|
|
'times' => 0,
|
|
'type' => $conditions[$i][0],
|
|
'condition' => $conditions[$i][1],
|
|
));
|
|
}
|
|
return $info_list;
|
|
}
|
|
|
|
function getRewardInfo($act_id, $id, $type)
|
|
{
|
|
$act_conf = getActivityById($act_id);
|
|
if (!$act_conf) {
|
|
return null;
|
|
}
|
|
$items = explode('|', $act_conf['reward']);
|
|
if ($type == 1) {
|
|
if (empty($act_conf['extra_reward'])) {
|
|
return null;
|
|
}
|
|
$items = explode('|', $act_conf['extra_reward']);
|
|
}
|
|
$arr = array();
|
|
for ($i = 0; $i < count($items); $i++) {
|
|
$mul = explode(';', $items[$i]);
|
|
array_push($arr, $mul);
|
|
}
|
|
$arr2 = array();
|
|
$str = $arr[$id];
|
|
for ($i = 0; $i < count($str); $i++) {
|
|
$mul = explode(':', $str[$i]);
|
|
array_push($arr2, $mul);
|
|
}
|
|
return $arr2;
|
|
}
|