aozhiwei d86c55c962 1
2020-10-22 17:36:31 +08:00

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;
}