128 lines
3.2 KiB
PHP
128 lines
3.2 KiB
PHP
<?php
|
|
|
|
namespace mt;
|
|
|
|
use phpcommon;
|
|
|
|
class Item {
|
|
|
|
/*
|
|
0 无功能
|
|
1 金币
|
|
2 钻石
|
|
3 角色账号经验
|
|
4 权限类
|
|
5 英雄
|
|
6 皮肤
|
|
7 头像
|
|
8 头像框
|
|
9 枪械
|
|
10 材料
|
|
11 改名卡
|
|
12 喇叭
|
|
13 礼包
|
|
14 碎片
|
|
15 日活跃
|
|
16 周活跃
|
|
17 手册经验
|
|
18 工会经验
|
|
19 工会改名卡
|
|
20 英雄熟练度(预留)
|
|
*/
|
|
|
|
const NONE_TYPE = 0;
|
|
const GOLD_TYPE = 1;
|
|
const DIAMOND_TYPE = 2;
|
|
const EXP_TYPE = 3;
|
|
const PERMISSION_TYPE = 4;
|
|
const HERO_TYPE = 5;
|
|
const HERO_SKIN_TYPE = 6;
|
|
const HEAD_TYPE = 7;
|
|
const HEAD_FRAME_TYPE = 8;
|
|
const GUN_TYPE = 9;
|
|
const GUN_SKIN_TYPE = 10;
|
|
const MATERIAL_TYPE = 11;
|
|
const HORN_TYPE = 12;
|
|
const RENAME_CARD_TYPE = 13;
|
|
const GIFT_PACKAGE_TYPE = 14;
|
|
const FRAGMENT_TYPE = 15;
|
|
const DAILY_ACTIVE_TYPE = 16;
|
|
const WEAKLY_ACTIVE_TYPE = 17;
|
|
const HANDBOOK_EXP_TYPE = 18;
|
|
const GUILD_EXP_TYPE = 19;
|
|
const GUILD_RENAME_CARD_TYPE = 20;
|
|
const HERO_EXP_TYPE = 21;
|
|
|
|
const DAILY_BUY_LIMIT = 1;
|
|
const WEEKLY_BUY_LIMIT = 2;
|
|
const TOTAL_BUY_LIMIT = 3;
|
|
|
|
public static function get($id)
|
|
{
|
|
return getXVal(self::getMetaList(), $id, null);
|
|
}
|
|
|
|
public static function isType($meta, $type)
|
|
{
|
|
return $meta['type'] == $type;
|
|
}
|
|
|
|
public static function inTypes($meta, $types)
|
|
{
|
|
return in_array($meta['type'], $types);
|
|
}
|
|
|
|
public static function filter($cb)
|
|
{
|
|
foreach (self::getMetaList() as $meta) {
|
|
if (!$cb($meta)) {
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static function getPriceInfo($meta)
|
|
{
|
|
$info = array(
|
|
'item_id' => $meta['id'],
|
|
'price_info' => array(
|
|
'cost_list' => array(),
|
|
'discount_begin_time' => phpcommon\datetimeToTimestamp($meta['discount_begin']),
|
|
'discount_end_time' => phpcommon\datetimeToTimestamp($meta['discount_end'])
|
|
)
|
|
);
|
|
$discount = splitStr1($meta['discount']);
|
|
if ($meta['gold'] > 0) {
|
|
array_push($info['price_info']['cost_list'],
|
|
array(
|
|
array(
|
|
'item_id' => V_ITEM_GOLD,
|
|
'item_num' => $meta['gold'],
|
|
'discount' => count($discount) > 0 ? (int)$discount[0] : 0
|
|
)));
|
|
}
|
|
if ($meta['diamond_price'] > 0) {
|
|
array_push($info['price_info']['cost_list'],
|
|
array(
|
|
array(
|
|
'item_id' => V_ITEM_DIAMOND,
|
|
'item_num' => $meta['diamond_price'],
|
|
'discount' => count($discount) > 1 ? (int)$discount[1] : 0
|
|
)
|
|
));
|
|
}
|
|
return $info;
|
|
}
|
|
|
|
protected static function getMetaList()
|
|
{
|
|
if (!self::$metaList) {
|
|
self::$metaList = getMetaTable('item@item.php');
|
|
}
|
|
return self::$metaList;
|
|
}
|
|
|
|
protected static $metaList;
|
|
|
|
}
|