Commit de217f27 authored by hisuinohoshi's avatar hisuinohoshi

rev achievement phase 0.999

(需要dbup)
成就系统革新 阶段0.999:
- 增加每日挑战相关功能、及10个每日挑战、1个每日挑战进度成就;
- 增加隐藏成就相关判定、及5个KEY系隐藏成就(需替换名称、介绍、头衔奖励);
- 增加套装收集挑战成就;
- 将杂项成就判定置于玩家数据读取阶段,换言之在该类判定下的成就想要完成必须在满足条件后再行动一次……可能会有BUG风险,以后再想想怎么处理;

其他变化:
- 新增套装判定(暂无实际效果,仅完成计数功能);
- 将移动道具与交换道具位置功能合并至整理包裹按钮;
- 切换副武器功能移至操作区,位于多重武器切换左侧;
- 为主界面操作区大部分按键添加tooltip;
parent e1be2473
......@@ -10,11 +10,12 @@ require GAME_ROOT.'./include/game.func.php';
//判断是否进入游戏
if(!$cuser||!$cpass) { gexit($_ERROR['no_login'],__file__,__line__); }
$result = $db->query("SELECT * FROM {$tablepre}players WHERE name = '$cuser' AND type = 0");
//$result = $db->query("SELECT * FROM {$tablepre}players WHERE name = '$cuser' AND type = 0");
$pdata = fetch_playerdata_by_name($cuser);
if(!$db->num_rows($result)) { header("Location: valid.php");exit(); }
if(!$pdata) { header("Location: valid.php");exit(); }
$pdata = $db->fetch_array($result);
//$pdata = $db->fetch_array($result);
//判断是否密码错误
if($pdata['pass'] != $cpass) {
......
......@@ -154,6 +154,8 @@ $result = $db->query("DESCRIBE {$tablepre}users volume");
if($db->num_rows($result)) $db->query("ALTER TABLE {$tablepre}users DROP volume");
$result = $db->query("DESCRIBE {$tablepre}users achrev");
if(!$db->num_rows($result)) $db->query("ALTER TABLE {$tablepre}users ADD achrev text NOT NULL default '' AFTER achievement");
$result = $db->query("DESCRIBE {$tablepre}users daily");
if(!$db->num_rows($result)) $db->query("ALTER TABLE {$tablepre}users ADD daily varchar(255) NOT NULL DEFAULT '' AFTER achrev");
//game表结构变动
$db->query("ALTER TABLE {$tablepre}game DROP gamevars");
......
......@@ -14,10 +14,11 @@ if(isset($mode) && $mode == 'quit') {
exit();
}
$result = $db->query("SELECT * FROM {$tablepre}players WHERE name = '$cuser' AND type = 0");
if(!$db->num_rows($result)) { header("Location: valid.php");exit(); }
//$result = $db->query("SELECT * FROM {$tablepre}players WHERE name = '$cuser' AND type = 0");
$pdata = fetch_playerdata_by_name($cuser);
if(!$pdata) { header("Location: valid.php");exit(); }
$pdata = $db->fetch_array($result);
//$pdata = $db->fetch_array($result);
if($pdata['pass'] != $cpass) {
$tr = $db->query("SELECT `password` FROM {$tablepre}users WHERE username='$cuser'");
$tp = $db->fetch_array($tr);
......
......@@ -4,6 +4,12 @@ if(!defined('IN_GAME')) exit('Access Denied');
# 成就大类列表:
$ach_type = Array
(
'daily' => Array(
'name' => '每日挑战',
'desc' => '<font color="olive">这里是用来为日常游玩调味的佐餐成就。<br>
虽然叫做每日挑战,但其实每六个小时就能刷新一次。</font>',
'ach' => Array(601,602,603,604,605,606,607,608,609,610),
),
'end' => Array(
'name' => '结局成就',
'desc' => '<font color="olive">这里是与游戏结局相关的成就。<br>
......@@ -20,36 +26,55 @@ $ach_type = Array
'name' => '战斗成就',
'desc' => '<font color="olive">这里是与击破特定NPC相关的成就。<br>
打倒他们来证明自己吧!<br></font>',
'ach' => Array(3,4,13,22,23,25,20,21,24,26,56,57,255),
'ach' => Array(3,56,57,27,4,13,22,23,25,20,21,24,26,255),
),
'mixitem' => Array(
'name' => '合成成就',
'desc' => '<font color="olive">这里是与合成各种物品相关的成就。<br>
如果看合成表觉得麻烦,只以这些物品为目标似乎也不错。<br></font>',
'ach' => Array(0,14,15,49,33,50,51,52,35,36,37,38,39,40,41,42,43,44,45,46,47,48),
'ach' => Array(48,47,35,36,37,38,39,40,41,42,43,44,45,46,0,14,15,49,51,52,50),
),
'explore' => Array(
'name' => '探索成就',
'desc' => '<font color="olive">这里是与你在游戏中会遇到的惊奇发现相关的成就。<br>
今天又会遇到些什么呢?<br></font>',
'ach' => Array(33,31),
),
'lifetime' => Array(
'name' => '生涯成就',
'desc' => '<font color="olive">这里是记录了你在这个游戏中的积累相关的成就。<br>
呜呼——玩家们出发了……<br></font>',
'ach' => Array(27,29,30,53,54,55,255),
'ach' => Array(29,30,53,54,55,600,255),
),
'challenge' => Array(
'name' => '挑战成就',
'desc' => '<font color="olive">这里是与特定游戏中挑战相关的成就。<br>
虽然颇为浮云,但毕竟山就在那里。<br></font>',
'ach' => Array(1,200,201,28,202,203,204,205,206,207,31,32,255),
'ach' => Array(1,200,201,28,202,203,208,204,205,206,207,32,255),
),
);
# 隐藏成就列表:(隐藏成就ID → 完成后会显示在哪个大类)只在完成时显示
$hidden_ach_type = Array
(
//KEY系隐藏成就:吃下【像围棋子一样的饼干】【桔黄色的果酱】并且活下来
501 => 'explore',
//KEY系隐藏成就:使用【翼人的羽毛】打出7230点以上伤害
502 => 'explore',
//KEY系隐藏成就:穿着【智代专用熊装】连续攻击同一个玩家/NPC64次以上
503 => 'explore',
//KEY系隐藏成就:在【RF高校】使用每一种系的武器各杀死一个目标
504 => 'explore',
//KEY系隐藏成就:一击秒杀【守卫者 静流】
505 => 'explore',
);
# 成就登记列表:
$ach_list = Array
(
/*'example' => Array(
//成就完成时所处阶段(必填)
'lvl' => 3,
//这是一个隐藏成就吗?(隐藏成就在完成前不会显示在成就界面内)
'hidden' => 0,
//各阶段成就名(必填)(PS:完成阶段名可填可不填,填了会显示,不填会显示前一个阶段的名字)
'name' => Array('阶段0名','阶段1名','阶段2名','阶段完成'),
//各阶段状态名(选填,不填此项会应用默认状态名)
......@@ -234,14 +259,6 @@ $ach_list = Array
'c1' => Array(0,0,0),
'c2' => Array(5,50,200),
),
33 => Array(
'lvl' => 1,
'name' => Array('诅咒之刃'),
'title' => Array('剑圣'),
'c1' => Array(0),
'c2' => Array(522),
),
35 => Array(
'lvl' => 3,
'name' => Array('试试看殴系吧!','热血的机师','殴系爱好者'),
......@@ -666,6 +683,83 @@ $ach_list = Array
),
),
# 探索成就
# 剑圣:这是一个存在固定模板的成就
33 => Array(
'lvl' => 1,
'name' => Array('诅咒之刃'),
'title' => Array('剑圣'),
'c1' => Array(0),
'c2' => Array(522),
),
# RTS:这是一个存在固定模板的成就
31 => Array(
'lvl' => 1,
'name' => Array('Return to Sender'),
'title' => Array('R.T.S'),
'c1' => Array(0),
'c2' => Array(0),
),
# KEY系隐藏成就:吃下【像围棋子一样的饼干】【桔黄色的果酱】并且活下来
501 => Array(
'lvl' => 1,
'name' => Array('【待替换501】'),
'request' => '幸存次数:[:request:]次',
'title' => Array('【待替换501】'),
'c1' => Array(0),
'c2' => Array(0),
'desc' => Array(
'这是一段待替换501的文本。',
),
),
# KEY系隐藏成就:使用【翼人的羽毛】打出7230点以上伤害
502 => Array(
'lvl' => 1,
'name' => Array('【待替换502】'),
'request' => '最高造成伤害:[:request:]点',
'title' => Array('【待替换502】'),
'c1' => Array(0),
'c2' => Array(0),
'desc' => Array(
'这是一段待替换502的文本。',
),
),
# 穿着【智代专用熊装】连续攻击同一个玩家/NPC64次以上
503 => Array(
'lvl' => 1,
'name' => Array('【待替换503】'),
'request' => '最高连击次数:[:request:]次',
'title' => Array('【待替换503】'),
'c1' => Array(0),
'c2' => Array(0),
'desc' => Array(
'这是一段待替换503的文本。',
),
),
# 在【RF高校】使用每一种系的武器各杀死一个目标
504 => Array(
'lvl' => 1,
'name' => Array('【待替换504】'),
'request' => '完成击杀的系别:[:request:]种',
'title' => Array('【待替换504】'),
'c1' => Array(0),
'c2' => Array(0),
'desc' => Array(
'这是一段待替换504的文本。',
),
),
# 一击秒杀【守卫者 静流】
505 => Array(
'lvl' => 1,
'name' => Array('【待替换505】'),
'title' => Array('【待替换505】'),
'c1' => Array(0),
'c2' => Array(0),
'desc' => Array(
'这是一段待替换505的文本。',
),
),
# 挑战成就
# key男
1 => Array(
......@@ -739,6 +833,19 @@ $ach_list = Array
'在开局<span class="sienna">55分钟内</span>达成结局:幻境解离',
),
),
# 套装收集挑战(这是一个存在固定模板的成就)
208 => Array(
'lvl' => 3,
'name' => Array('新绿的故事','百变魔法使','换装迷宫'),
'title' => Array('','百变魔法使','换装迷宫'),
'c1' => Array(0),
'c2' => Array(233,234,235),
'desc' => Array(
'触发过任1种<span class="sienna">套装</span>的完整效果',
'触发过3种不同<span class="sienna">套装</span>的完整效果',
'触发过5种不同<span class="sienna">套装</span>的完整效果',
),
),
# 使用混沌武器打满伤害
204 => Array(
'lvl' => 1,
......@@ -784,14 +891,6 @@ $ach_list = Array
'不击杀<span class="sienna">各路党派与种火</span>达成结局:锁定解除',
),
),
# RTS:这是一个存在固定模板的成就
31 => Array(
'lvl' => 1,
'name' => Array('Return to Sender'),
'title' => Array('R.T.S'),
'c1' => Array(0),
'c2' => Array(0),
),
# LOOP > TODO:修改为一个版本成就
32 => Array(
'lvl' => 2,
......@@ -800,6 +899,143 @@ $ach_list = Array
'c1' => Array(0),
'c2' => Array(0),
),
# 日常任务
# 混进来一个生涯成就:累计完成每日任务1/10/100/1001次
600 => Array(
'lvl' => 4,
'name' => Array('新篇','十日谈','百言诗','一千零一夜','尾声?'),
'title' => Array('','','虚拟体','Daemon'),
'request' => '累计完成次数:[:request:]次',
'c1' => Array(1,10,101,1001),
'c2' => Array(1,10,101,1001),
'desc' => Array(
'累计完成1次<span class="sienna">每日挑战</span>',
'累计完成10次<span class="sienna">每日挑战</span>',
'累计完成100次<span class="sienna">每日挑战</span>',
'累计完成1001次<span class="sienna">每日挑战</span>',
),
),
# 日常任务1:击杀10名NPC
601 => Array(
'lvl' => 1,
'daily' => 1,
'name' => Array('蜂群挑战者'),
'title' => Array(''),
'c1' => Array(150),
'c2' => Array(0),
'desc' => Array(
'击杀10名NPC',
),
),
# 日常任务2:击杀1名活跃玩家
602 => Array(
'lvl' => 1,
'daily' => 1,
'name' => Array('触手挑战者'),
'title' => Array(''),
'c1' => Array(0),
'c2' => Array(150),
'desc' => Array(
"击杀1名<span class=\"sienna\" tooltip=\"什么是活跃玩家?\r总之小号是不行的!\">活跃玩家</span>",
),
),
# 日常任务3:达成一次解禁/解离结局
603 => Array(
'lvl' => 1,
'daily' => 1,
'name' => Array('尖兵挑战者'),
'title' => Array(''),
'c1' => Array(250),
'c2' => Array(0),
'desc' => Array(
'达成结局:<span class="sienna">锁定解除</span>或<span class="sienna">幻境解离</span>',
),
),
# 日常任务4:开启一次死斗模式
604 => Array(
'lvl' => 1,
'daily' => 1,
'name' => Array('荣耀挑战者'),
'title' => Array(''),
'c1' => Array(250),
'c2' => Array(0),
'desc' => Array(
'开启1次<span class="sienna">死斗模式</span>',
),
),
# 日常任务5:击杀10名种火
605 => Array(
'lvl' => 1,
'daily' => 1,
'name' => Array('循环挑战者'),
'title' => Array(''),
'c1' => Array(177),
'c2' => Array(0),
'desc' => Array(
'击杀10名<span class="sienna">种火</span>',
),
),
# 日常任务6:以毒药/陷阱的方式击杀1名活跃玩家
606 => Array(
'lvl' => 1,
'daily' => 1,
'name' => Array('偏门挑战者'),
'title' => Array(''),
'c1' => Array(0),
'c2' => Array(188),
'desc' => Array(
'使用<span class="sienna">毒性补给</span>或<span class="sienna">陷阱</span>杀死1名活跃玩家',
),
),
# 日常任务7:使用凸眼鱼一次吸收20具尸体
607 => Array(
'lvl' => 1,
'daily' => 1,
'name' => Array('暴食挑战者'),
'title' => Array(''),
'c1' => Array(0),
'c2' => Array(155),
'desc' => Array(
'使用道具<span class="sienna">凸眼鱼</span>一次性吸收20具尸体',
),
),
# 日常任务8:使用移动PC解除一次禁区
608 => Array(
'lvl' => 1,
'daily' => 1,
'name' => Array('无月挑战者'),
'title' => Array(''),
'c1' => Array(155),
'c2' => Array(0),
'desc' => Array(
'使用道具<span class="sienna">移动PC</span>解除1次禁区',
),
),
# 日常任务9:合成一次KEY系催泪弹
609 => Array(
'lvl' => 1,
'daily' => 1,
'name' => Array('雕像挑战者'),
'title' => Array(''),
'c1' => Array(233),
'c2' => Array(0),
'desc' => Array(
'合成道具<span class="sienna">【KEY系催泪弹】</span>1次',
),
),
# 日常任务10:使用一次歌唱功能
610 => Array(
'lvl' => 1,
'daily' => 1,
'name' => Array('摇滚挑战者'),
'title' => Array(''),
'c1' => Array(0),
'c2' => Array(233),
'desc' => Array(
'使用一次<span class="sienna">歌唱</span>功能',
),
),
);
?>
\ No newline at end of file
......@@ -126,8 +126,10 @@ $hack_obbs = 40;
//电子设备充电上限,包括电脑和雷达
$elec_cap = 5;
//成就总数
//成就总数(已废弃)
$achievement_count=140;
//每日任务刷新间隔(单位:秒):
$reset_daily_cd = 21600;
//场外支援系统 允许购买的道具类型
$gshoplist = Array
......
<?php
if(!defined('IN_GAME')) exit('Access Denied');
# 套装相关配置文件
# 套装部件登记:(部位 → 装备名 → 对应套装编号)
$set_items = Array
(
'wep' => Array
(
'节操炸弹' => 'jc',
'寂寞' => 'jm',
'幻之刃' => 'fan',
'幻之使魔' => 'fan',
'永恒之桶' => 'ete',
'新华里的投入' => 'xhl',
'新华里的震撼' => 'xhl',
'新华里的乱舞' => 'xhl',
'新华里的手势' => 'xhl',
'新华里的呐喊' => 'xhl',
'新华里的眼神' => 'xhl',
),
'arb' => Array
(
'节操' => 'jc',
'幻之甲' => 'fan',
'永恒之甲' => 'ete',
'新华里的西服' => 'xhl',
),
'arh' => Array
(
'节操' => 'jc',
'寂寞' => 'jm',
'幻之盔' => 'fan',
'永恒之盔' => 'ete',
'新华里的领带' => 'xhl',
),
'ara' => Array
(
'节操' => 'jc',
'寂寞' => 'jm',
'幻之手镯' => 'fan',
'永恒之手镯' => 'ete',
'新华里的手表' => 'xhl',
),
'arf' => Array
(
'节操' => 'jc',
'寂寞' => 'jm',
'幻之靴' => 'fan',
'永恒之靴' => 'ete',
'新华里的皮鞋' => 'xhl',
),
'art' => Array
(
'节操' => 'jc',
'新华里的增员' => 'xhl',
),
);
# 套装登记:
$set_items_info = Array
(
'jc' => Array
(
// 套装名:
'name' => '有节操!',
// 套装组件上下限
'active' => Array(1,6),
// 套装奖励:
// 套装奖励介绍:
),
'jm' => Array
(
'name' => '是寂寞...',
'active' => Array(1,4),
),
'xhl' => Array
(
'name' => '业务员',
'active' => Array(1,6),
),
'fan' => Array
(
'name' => '幻想之遗',
'active' => Array(1,5),
),
'ete' => Array
(
'name' => '永恒之物',
'active' => Array(1,5),
),
);
?>
......@@ -377,7 +377,7 @@ span[tooltip]:hover:before {
/*background-clip: border-box; background-color: rgba(198, 114, 199, 0.8);*/
background-color:rgba(0,0,0,0.8); *BACKGROUND: rgb(0,0,0); *filter:alpha(opacity=70);
border-radius: 3px; border:2px solid rgba(225, 124, 226, 0.4);
transform: translate(40px, -5px);
transform: translate(25px, 25px);
width:max-content; max-width: 175px; position: absolute; z-index: 50;
}
......
......@@ -366,6 +366,8 @@ CREATE TABLE `acbra2_users` (
`credits` int(10) NOT NULL DEFAULT '0',
`credits2` mediumint(9) NOT NULL DEFAULT '0',
`achievement` text NOT NULL,
`achrev` text NOT NULL,
`daily` varchar(255) NOT NULL DEFAULT '',
`nick` text NOT NULL,
`nicks` text NOT NULL,
`volume` smallint(3) unsigned NOT NULL default '20',
......
......@@ -10,6 +10,7 @@ if(version_compare(PHP_VERSION, '4.3.0', '<')) {
exit('PHP version must >= 4.3.0!');
}
require GAME_ROOT.'./include/global.func.php';
require GAME_ROOT.'./include/resources.func.php';
require GAME_ROOT.'./include/game/revclubskills.func.php';
require GAME_ROOT.'./include/game/dice.func.php';
error_reporting(E_ALL);
......
......@@ -714,6 +714,23 @@ function check_skilllasttimes(&$data=NULL)
return $pure_flag;
}
//通过名字抓取指定玩家数据,只能抓玩家
function fetch_playerdata_by_name($n)
{
global $db,$tablepre;
$result = $db->query("SELECT * FROM {$tablepre}players WHERE name = '$n' AND type = 0");
if(!$db->num_rows($result)) return NULL;
$pdata = $db->fetch_array($result);
if(!empty($pdata['clbpara'])) $pdata['clbpara'] = get_clbpara($pdata['clbpara']);
//套装效果刷新
include_once GAME_ROOT.'./include/game/itemmain.func.php';
reload_set_items($pdata);
//检查杂项成就
include_once GAME_ROOT.'./include/game/achievement.func.php';
check_misc_achievement_rev($pdata);
return $pdata;
}
//通过pid抓取指定玩家/NPC数据
function fetch_playerdata_by_pid($pid)
{
......@@ -722,6 +739,8 @@ function fetch_playerdata_by_pid($pid)
if(!$db->num_rows($result)) return NULL;
$pdata = $db->fetch_array($result);
if(!empty($pdata['clbpara'])) $pdata['clbpara'] = get_clbpara($pdata['clbpara']);
include_once GAME_ROOT.'./include/game/itemmain.func.php';
reload_set_items($pdata);
return $pdata;
}
//用于读取当前玩家数据的数组结构(不进行过滤)
......
......@@ -4,23 +4,6 @@ if(!defined('IN_GAME')) {
exit('Access Denied');
}
# 获取成就大类列表
function get_achtype()
{
global $gamecfg;
include config("achievement",$gamecfg);
return $ach_type;
}
# 获取成就列表
function get_achlist($a=NULL)
{
global $gamecfg;
include config("achievement",$gamecfg);
if(isset($a) && isset($ach_list[$a])) return $ach_list[$a];
return $ach_list;
}
# 初始化单个成就页面
function init_achtabledata($ach)
{
......@@ -76,7 +59,8 @@ function fetch_achievement_rev($which,$who)
{
$ach = print_achievement_rev($ach);
// 保存的成就进度 >= 9999999时 返回9999999 这是为了兼容旧版成就
if(isset($ach[$which]['v'])) $value = $ach[$which]['v'] >= 9999999 ? 9999999 : $ach[$which]['v'];
if(isset($ach[$which]['v']) && !is_array($ach[$which]['v'])) $value = $ach[$which]['v'] >= 9999999 ? 9999999 : $ach[$which]['v'];
if(is_array($ach[$which]['v'])) $value = $ach[$which]['v'];
}
//echo "成就值检索阶段: 成就{$which} 的值 = {$value}<br>";
return $value;
......@@ -112,11 +96,79 @@ function done_achievement_rev($which,$ch,$who)
$db->query("UPDATE {$tablepre}users SET achrev='$ach' WHERE username='".$who."'" );
}
function reset_achievement_rev($which,$who)
{
global $db,$tablepre,$log;
$result = $db->query("SELECT achrev FROM {$tablepre}users WHERE username = '$who'");
$ach = $db->result($result,0);
$ach = print_achievement_rev($ach);
if(array_key_exists($which,$ach))
{
unset($ach[$which]);
//echo "【DEBUG】已重置{$who} 成就编号:{$which}的进度。<br>";
$ach = json_encode($ach);
$db->query("UPDATE {$tablepre}users SET achrev='$ach' WHERE username='".$who."'" );
}
}
function check_daily_achievement($who,$only_id=0)
{
global $db,$tablepre,$now,$reset_daily_cd;
$result = $db->query("SELECT daily FROM {$tablepre}users WHERE username = '$who'");
$daily = $db->result($result,0);
# 存在每日记录时检查是否可以刷新每日
if(!empty($daily))
{
$daily = json_decode($daily,true);
$now_daily = $daily['ach'];
if($only_id) return $daily['ach'];
$reset_time = $daily['st'] + $reset_daily_cd;
# 每日刷新尚在CD中
if($now < $reset_time) return Array($reset_time,$daily['ach']);
return Array(0,$daily['ach']);
}
return Array(0,0);
}
function reset_daily_achievement($who)
{
global $db,$tablepre,$now,$reset_daily_cd;
$result = $db->query("SELECT daily FROM {$tablepre}users WHERE username = '$who'");
$daily = $db->result($result,0);
if(!empty($daily))
{
$daily = json_decode($daily,true);
// 清空旧每日数据
foreach($daily['ach'] as $aid) reset_achievement_rev($aid,$who);
}
else
{
$daily = Array();
}
//echo "开始为{$who}获取新的每日任务<br>";
$daily['st'] = $now;
$ach_type = get_achtype();
$daily_list = $ach_type['daily']['ach'];
//至少有3个每日任务才能发每日
if(!empty($daily_list) && count($daily_list)>=3)
{
$d1 = 0; $d2 = 0; $d3 = 0;
$d1 = $daily_list[array_rand($daily_list)];
while(!$d2 || $d2 == $d1) $d2 = $daily_list[array_rand($daily_list)];
while(!$d3 || $d3 == $d2 || $d3 == $d1) $d3 = $daily_list[array_rand($daily_list)];
$daily['ach'] = Array($d1,$d2,$d3);
}
$n_daily = json_encode($daily);
$db->query("UPDATE {$tablepre}users SET daily='$n_daily' WHERE username='".$who."'" );
return Array($daily['st']+$reset_daily_cd,$daily['ach']);
}
function check_mixitem_achievement_rev($nn,$item)
{
global $now,$validtime,$starttime,$gamecfg,$name,$db,$tablepre;
include_once GAME_ROOT.'./include/game/titles.func.php';
$done = 0;
$atotal = Array();
//1. 快速KEY弹成就
if ($item=="【KEY系催泪弹】")
{
......@@ -128,6 +180,23 @@ function check_mixitem_achievement_rev($nn,$item)
$db->query("UPDATE {$tablepre}users SET credits2=credits2+16 WHERE username='".$nn."'" );
get_title("KEY男",$nn);
}
//609.日常 合成一次KEY弹
if(in_array(609,check_daily_achievement($nn,1)))
{
$aid = 609;
$alvl = check_achievement_rev($aid,$nn);
$achlist = get_achlist($aid);
$avars = fetch_achievement_rev($aid,$nn)+1;
update_achievement_rev($aid,$nn,$avars);
if(!$alvl)
{
$c1 += $achlist['c1'][$alvl]; $c2 += $achlist['c2'][$alvl];
$alvl ++;
done_achievement_rev($aid,$alvl,$nn);
//日常任务统计成就 600 计数+1
$atotal[600] += 1;
}
}
}
//200.快速贤者成就
if ($item=="火水木金土符『贤者之石』")
......@@ -655,6 +724,11 @@ function check_mixitem_achievement_rev($nn,$item)
//新版成就切糕、积分结算汇总到此
if(!empty($c1)) $db->query("UPDATE {$tablepre}users SET credits=credits+$c1 WHERE username='".$nn."'" );
if(!empty($c2)) $db->query("UPDATE {$tablepre}users SET credits2=credits2+$c2 WHERE username='".$nn."'" );
if(!empty($atotal))
{
foreach($atotal as $aid => $anums)
check_nums_achievement($nn,$aid,$anums);
}
return;
}
......@@ -666,6 +740,7 @@ function check_end_achievement_rev($w,$m,$data='')
include_once GAME_ROOT.'./include/game/titles.func.php';
$done = 0;
$atotal = Array();
$data['clbpara'] = get_clbpara($data['clbpara']);
//16. 最后幸存成就
......@@ -837,9 +912,31 @@ function check_end_achievement_rev($w,$m,$data='')
if($done) done_achievement_rev($aid,$alvl,$w);
$done = 0;
}
// 603.日常 达成一次解禁/解离结局
if(in_array(603,check_daily_achievement($w,1)) && !empty($data) && ($m==3 || $m==7))
{
$aid = 603;
$alvl = check_achievement_rev($aid,$w);
$achlist = get_achlist($aid);
$avars = fetch_achievement_rev($aid,$w)+1;
update_achievement_rev($aid,$w,$avars);
if(!$alvl)
{
$c1 += $achlist['c1'][$alvl]; $c2 += $achlist['c2'][$alvl];
$alvl ++;
done_achievement_rev($aid,$alvl,$w);
//日常任务统计成就 600 计数+1
$atotal[600] += 1;
}
}
//新版成就切糕、积分结算汇总到此
if(!empty($c1)) $db->query("UPDATE {$tablepre}users SET credits=credits+$c1 WHERE username='".$w."'" );
if(!empty($c2)) $db->query("UPDATE {$tablepre}users SET credits2=credits2+$c2 WHERE username='".$w."'" );
if(!empty($atotal))
{
foreach($atotal as $aid => $anums)
check_nums_achievement($nn,$aid,$anums);
}
return;
}
......@@ -851,12 +948,16 @@ function check_battle_achievement_rev($pa,$pd)
include_once GAME_ROOT.'./include/game/titles.func.php';
// 旧版成就参数兼容
$is_npc = $pd['type'] ? 1 : 0;
$is_npc = $pd['type'];
$nn = $pa['name'];
$killname = $pd['name'];
$wp = isset($pa['wep_name']) ? $pa['wep_name'] : $pa['wep'];
// 判断是否为活跃玩家:暂时只要IP不一样就算活跃玩家
$is_tplayer = $pa['ip'] == $pd['ip'] ? 0 : 1;
// 获取pa当前的每日任务列表
$daily = check_daily_achievement($nn,1);
//是否需要将完成过的成就统计到另一个成就里,如果有,将成就编号和完成次数汇总到下面这个数组里,在函数尾部一同处理
$atotal = Array();
# 击杀玩家成就
if (!$is_npc && $pd['name'] != $nn)
......@@ -880,6 +981,24 @@ function check_battle_achievement_rev($pa,$pd)
if($done) done_achievement_rev($aid,$alvl,$nn);
$done = 0;
// 602.日常 击杀一名活跃玩家
if(in_array(602,$daily) && $is_tplayer)
{
$aid = 602;
$alvl = check_achievement_rev($aid,$nn);
$achlist = get_achlist($aid);
$avars = fetch_achievement_rev($aid,$nn)+1;
update_achievement_rev($aid,$nn,$avars);
if(!$alvl)
{
$c1 += $achlist['c1'][$alvl]; $c2 += $achlist['c2'][$alvl];
$alvl ++;
done_achievement_rev($aid,$alvl,$nn);
//日常任务统计成就 600 计数+1
$atotal[600] += 1;
}
}
// 60.击杀存在击杀数的其他玩家
if(!empty($pd['killnum']))
{
......@@ -964,6 +1083,24 @@ function check_battle_achievement_rev($pa,$pd)
$done = 0;
}
// 606.用陷阱或毒药击杀一名活跃玩家
if(in_array(606,$daily) && $is_tplayer && ($pd['state'] == 26 || $pd['state'] == 27))
{
$aid = 606;
$alvl = check_achievement_rev($aid,$nn);
$achlist = get_achlist($aid);
$avars = fetch_achievement_rev($aid,$nn)+1;
update_achievement_rev($aid,$nn,$avars);
if(!$alvl)
{
$c1 += $achlist['c1'][$alvl]; $c2 += $achlist['c2'][$alvl];
$alvl ++;
done_achievement_rev($aid,$alvl,$nn);
//日常任务统计成就 600 计数+1
$atotal[600] += 1;
}
}
// 64.使用DN杀死玩家
if($pd['state'] == 28)
{
......@@ -1111,10 +1248,6 @@ function check_battle_achievement_rev($pa,$pd)
if($done) done_achievement_rev($aid,$alvl,$nn);
$done = 0;
}
//切糕、积分结算汇总
if(!empty($c1)) $db->query("UPDATE {$tablepre}users SET credits=credits+$c1 WHERE username='".$nn."'" );
if(!empty($c2)) $db->query("UPDATE {$tablepre}users SET credits2=credits2+$c2 WHERE username='".$nn."'" );
}
//31. ReturnToSender成就
if (!$is_npc)
......@@ -1170,6 +1303,23 @@ function check_battle_achievement_rev($pa,$pd)
done_achievement_rev(3,1,$nn);
}
}
// 601.日常 击杀10名NPC
if(in_array(601,$daily) && $is_npc)
{
$aid = 601;
$alvl = check_achievement_rev($aid,$nn);
$achlist = get_achlist($aid);
$avars = fetch_achievement_rev($aid,$nn)+1;
update_achievement_rev($aid,$nn,$avars);
if(!$alvl && $avars>=10)
{
$c1 += $achlist['c1'][$alvl]; $c2 += $achlist['c2'][$alvl];
$alvl ++;
done_achievement_rev($aid,$alvl,$nn);
//日常任务统计成就 600 计数+1
$atotal[600] += 1;
}
}
//4. 推倒红暮成就
if ($is_npc && ($killname=="红暮" || $killname=="红杀将军 红暮"))
{
......@@ -1330,6 +1480,23 @@ function check_battle_achievement_rev($pa,$pd)
done_achievement_rev(56,1,$nn);
}
}
// 605.日常击杀10名种火
if(in_array(605,$daily) && $is_npc == 89)
{
$aid = 605;
$alvl = check_achievement_rev($aid,$nn);
$achlist = get_achlist($aid);
$avars = fetch_achievement_rev($aid,$nn)+1;
update_achievement_rev($aid,$nn,$avars);
if(!$alvl && $avars>=10)
{
$c1 += $achlist['c1'][$alvl]; $c2 += $achlist['c2'][$alvl];
$alvl ++;
done_achievement_rev($aid,$alvl,$nn);
//日常任务统计成就 600 计数+1
$atotal[600] += 1;
}
}
//57. 击杀回声成就
if ($is_npc==89)
{
......@@ -1354,6 +1521,16 @@ function check_battle_achievement_rev($pa,$pd)
done_achievement_rev(57,1,$nn);
}
}
//切糕、积分结算汇总
if(!empty($c1)) $db->query("UPDATE {$tablepre}users SET credits=credits+$c1 WHERE username='".$nn."'" );
if(!empty($c2)) $db->query("UPDATE {$tablepre}users SET credits2=credits2+$c2 WHERE username='".$nn."'" );
//成就计数结算
if(!empty($atotal))
{
foreach($atotal as $aid => $anums)
check_nums_achievement($nn,$aid,$anums);
}
}
......@@ -1361,6 +1538,7 @@ function check_item_achievement_rev($nn,$i,$ie,$is,$ik,$isk)
{
global $gamecfg,$name,$db,$tablepre,$now,$starttime,$gamestate;
include_once GAME_ROOT.'./include/game/titles.func.php';
$atotal = Array();
//解禁相关
if ($i == "游戏解除钥匙")
......@@ -1391,10 +1569,27 @@ function check_item_achievement_rev($nn,$i,$ie,$is,$ik,$isk)
}
// 阶段有所变化时,增加阶段次数
if($done) done_achievement_rev($aid,$alvl,$nn);
//新版成就切糕、积分结算汇总到此
if(!empty($c1)) $db->query("UPDATE {$tablepre}users SET credits=credits+$c1 WHERE username='".$nn."'" );
if(!empty($c2)) $db->query("UPDATE {$tablepre}users SET credits2=credits2+$c2 WHERE username='".$nn."'" );
return;
}
if($i == "凸眼鱼")
{
// 607.日常 使用一次凸眼鱼吸收20具尸体
if(in_array(607,check_daily_achievement($nn,1)) && $isk>=20)
{
$aid = 607;
$alvl = check_achievement_rev($aid,$nn);
$achlist = get_achlist($aid);
$avars = fetch_achievement_rev($aid,$nn)+1;
update_achievement_rev($aid,$nn,$avars);
if(!$alvl)
{
$c1 += $achlist['c1'][$alvl]; $c2 += $achlist['c2'][$alvl];
$alvl ++;
done_achievement_rev($aid,$alvl,$nn);
//日常任务统计成就 600 计数+1
$atotal[600] += 1;
}
}
}
......@@ -1411,6 +1606,23 @@ function check_item_achievement_rev($nn,$i,$ie,$is,$ik,$isk)
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("神触",$nn);
}
//604. 日常开启一次死斗
if(in_array(604,check_daily_achievement($nn,1)))
{
$aid = 604;
$alvl = check_achievement_rev($aid,$nn);
$achlist = get_achlist($aid);
$avars = fetch_achievement_rev($aid,$nn)+1;
update_achievement_rev($aid,$nn,$avars);
if(!$alvl)
{
$c1 += $achlist['c1'][$alvl]; $c2 += $achlist['c2'][$alvl];
$alvl ++;
done_achievement_rev($aid,$alvl,$nn);
//日常任务统计成就 600 计数+1
$atotal[600] += 1;
}
}
}
//29. 美食成就
if (($ik=='HS')||($ik=='HH')||($ik=='HB'))
......@@ -1571,14 +1783,27 @@ function check_item_achievement_rev($nn,$i,$ie,$is,$ik,$isk)
done_achievement_rev(55,1,$nn);
}
}
//新版成就切糕、积分结算汇总到此
if(!empty($c1)) $db->query("UPDATE {$tablepre}users SET credits=credits+$c1 WHERE username='".$nn."'" );
if(!empty($c2)) $db->query("UPDATE {$tablepre}users SET credits2=credits2+$c2 WHERE username='".$nn."'" );
//成就计数结算
if(!empty($atotal))
{
foreach($atotal as $aid => $anums)
check_nums_achievement($nn,$aid,$anums);
}
return;
}
//杂项成就,在将数据保存回数据库时统一检查
function check_misc_achievement_rev(&$pa)
{
global $gamestate,$gamecfg,$db,$tablepre;
include_once GAME_ROOT.'./include/game/titles.func.php';
$done = 0;
$atotal = Array();
// 旧版成就参数兼容
$is_player = $pa['type'] ? 0 : 1;
$nn = $pa['name'];
......@@ -1626,7 +1851,221 @@ function check_misc_achievement_rev(&$pa)
done_achievement_rev($aid,$alvl,$nn);
}
}
// 208.套装收集成就
if(!empty($pa['clbpara']['setitems']))
{
$aid = 208;
$alvl = check_achievement_rev($aid,$nn);
$achlist = get_achlist($aid);
$avars = fetch_achievement_rev($aid,$nn);
if($alvl < 3)
{
// 成就未完成的情况下,检查是否有新集齐的套装需要加入成就记录
if(!is_array($avars)) $avars = Array();
$set_items_info = get_set_items_info();
foreach($pa['clbpara']['setitems'] as $sid => $snums)
{
// 检查凑齐完整效果的套装
if($snums == $set_items_info[$sid]['active'][1] && !in_array($sid,$avars))
{
//echo "成就 {$aid} 变动:将套装 {$sid}保存入成就进度。";
$avars[] = $sid;
}
}
update_achievement_rev($aid,$nn,$avars);
$anums = count($avars);
while((!$alvl && $anums) || ($alvl == 1 && $anums >= 3) || ($alvl == 2 && $anums >=5))
{
if(!empty($achlist['title'][$alvl])) get_title($achlist['title'][$alvl],$nn);
$c1 += $achlist['c1'][$alvl]; $c2 += $achlist['c2'][$alvl];
$alvl ++;
done_achievement_rev($aid,$alvl,$nn);
}
}
}
// 501.吃下【像围棋子一样的饼干】【桔黄色的果酱】并且活下来
if(!empty($pa['clbpara']['achvars']['eat_weiqi']) && !empty($pa['clbpara']['achvars']['eat_jelly']))
{
unset($pa['clbpara']['achvars']['eat_weiqi']);
unset($pa['clbpara']['achvars']['eat_jelly']);
$aid = 501;
$alvl = check_achievement_rev($aid,$nn);
$achlist = get_achlist($aid);
// 增加一次完成次数
$avars = fetch_achievement_rev($aid,$nn)+1;
update_achievement_rev($aid,$nn,$avars);
// 检查是否满足条件进入下一阶段
while(!$alvl && $avars)
{
if(!empty($achlist['title'][$alvl])) get_title($achlist['title'][$alvl],$nn);
$c1 += $achlist['c1'][$alvl]; $c2 += $achlist['c2'][$alvl];
$alvl ++;
done_achievement_rev($aid,$alvl,$nn);
}
}
// 502.使用【翼人的羽毛】打出7230点以上伤害
if(!empty($pa['clbpara']['achvars']['ach502']))
{
$aid = 502;
$alvl = check_achievement_rev($aid,$nn);
$achlist = get_achlist($aid);
// 检查伤害
$new_vars = $pa['clbpara']['achvars']['ach502'];
$old_vars = fetch_achievement_rev($aid,$nn);
if($new_vars > $old_vars)
{
update_achievement_rev($aid,$nn,$new_vars);
// 检查是否满足条件进入下一阶段
while(!$alvl && $new_vars>=7230)
{
if(!empty($achlist['title'][$alvl])) get_title($achlist['title'][$alvl],$nn);
$c1 += $achlist['c1'][$alvl]; $c2 += $achlist['c2'][$alvl];
$alvl ++;
done_achievement_rev($aid,$alvl,$nn);
}
}
}
// 503.穿着【智代专用熊装】连续攻击同一个玩家/NPC64次以上
if(!empty($pa['clbpara']['achvars']['ach503']))
{
$aid = 503;
$alvl = check_achievement_rev($aid,$nn);
$achlist = get_achlist($aid);
// 检查攻击次数
$new_vars = $pa['clbpara']['achvars']['ach503']['t'];
$old_vars = fetch_achievement_rev($aid,$nn);
if($new_vars > $old_vars)
{
update_achievement_rev($aid,$nn,$new_vars);
// 检查是否满足条件进入下一阶段
while(!$alvl && $new_vars>=64)
{
if(!empty($achlist['title'][$alvl])) get_title($achlist['title'][$alvl],$nn);
$c1 += $achlist['c1'][$alvl]; $c2 += $achlist['c2'][$alvl];
$alvl ++;
done_achievement_rev($aid,$alvl,$nn);
}
}
}
// 504.在【RF高校】使用每一种系的武器各杀死一个目标
if(!empty($pa['clbpara']['achvars']['ach504']))
{
$aid = 504;
$alvl = check_achievement_rev($aid,$nn);
$achlist = get_achlist($aid);
// 检查击杀过的武器种类
$new_vars = count($pa['clbpara']['achvars']['ach504']);
$old_vars = fetch_achievement_rev($aid,$nn);
if($new_vars > $old_vars)
{
update_achievement_rev($aid,$nn,$new_vars);
// 检查是否满足条件进入下一阶段
while(!$alvl && $new_vars>=6)
{
if(!empty($achlist['title'][$alvl])) get_title($achlist['title'][$alvl],$nn);
$c1 += $achlist['c1'][$alvl]; $c2 += $achlist['c2'][$alvl];
$alvl ++;
done_achievement_rev($aid,$alvl,$nn);
}
}
}
// 505.一击秒杀【守卫者 静流】
if(!empty($pa['clbpara']['achvars']['ach505']))
{
unset($pa['clbpara']['achvars']['ach505']);
$aid = 505;
$alvl = check_achievement_rev($aid,$nn);
$achlist = get_achlist($aid);
// 增加一次完成次数
$avars = fetch_achievement_rev($aid,$nn)+1;
update_achievement_rev($aid,$nn,$avars);
// 检查是否满足条件进入下一阶段
while(!$alvl && $avars)
{
if(!empty($achlist['title'][$alvl])) get_title($achlist['title'][$alvl],$nn);
$c1 += $achlist['c1'][$alvl]; $c2 += $achlist['c2'][$alvl];
$alvl ++;
done_achievement_rev($aid,$alvl,$nn);
}
}
// 608.日常 成功使用一次移动PC 只会记录一次
if(in_array(608,check_daily_achievement($nn,1)))
{
if(!empty($pa['clbpara']['achvars']['hack']))
{
$aid = 608;
$alvl = check_achievement_rev($aid,$nn);
$achlist = get_achlist($aid);
$avars = fetch_achievement_rev($aid,$nn);
if(empty($avars)) update_achievement_rev($aid,$nn,1);
if(!$alvl)
{
$c1 += $achlist['c1'][$alvl]; $c2 += $achlist['c2'][$alvl];
$alvl ++;
done_achievement_rev($aid,$alvl,$nn);
//日常任务统计成就 600 计数+1
$atotal[600] += 1;
}
}
}
// 610.日常 唱过一首歌
if(in_array(610,check_daily_achievement($nn,1)))
{
if(!empty($pa['clbpara']['achvars']['sing']))
{
$aid = 610;
$alvl = check_achievement_rev($aid,$nn);
$achlist = get_achlist($aid);
$avars = fetch_achievement_rev($aid,$nn);
if(empty($avars)) update_achievement_rev($aid,$nn,1);
if(!$alvl)
{
$c1 += $achlist['c1'][$alvl]; $c2 += $achlist['c2'][$alvl];
$alvl ++;
done_achievement_rev($aid,$alvl,$nn);
//日常任务统计成就 600 计数+1
$atotal[600] += 1;
}
}
}
}
//新版成就切糕、积分结算汇总到此
if(!empty($c1)) $db->query("UPDATE {$tablepre}users SET credits=credits+$c1 WHERE username='".$nn."'" );
if(!empty($c2)) $db->query("UPDATE {$tablepre}users SET credits2=credits2+$c2 WHERE username='".$nn."'" );
//成就计数结算
if(!empty($atotal))
{
foreach($atotal as $aid => $anums)
check_nums_achievement($nn,$aid,$anums);
}
return;
}
//为其他成就计数的成就
function check_nums_achievement($nn,$aid,$anums=1)
{
global $gamestate,$gamecfg,$db,$tablepre;
include_once GAME_ROOT.'./include/game/titles.func.php';
//每日任务计数成就
if($aid == 600)
{
$alvl = check_achievement_rev($aid,$nn);
$achlist = get_achlist($aid);
$avars = fetch_achievement_rev($aid,$nn)+$anums;
update_achievement_rev($aid,$nn,$avars);
// 检查是否完成成就
while((!$alvl && $avars) || ($alvl == 1 && $avars >= 10) || ($alvl == 2 && $avars >= 100) || ($alvl == 3 && $avars >= 1001))
{
$done = 1;
if(!empty($achlist['title'][$alvl])) get_title($achlist['title'][$alvl],$nn);
$c1 += $achlist['c1'][$alvl]; $c2 += $achlist['c2'][$alvl];
$alvl ++;
}
if($done) done_achievement_rev($aid,$alvl,$nn);
$done = 0;
}
//新版成就切糕、积分结算汇总到此
if(!empty($c1)) $db->query("UPDATE {$tablepre}users SET credits=credits+$c1 WHERE username='".$nn."'" );
if(!empty($c2)) $db->query("UPDATE {$tablepre}users SET credits2=credits2+$c2 WHERE username='".$nn."'" );
......
......@@ -8,7 +8,7 @@ include_once GAME_ROOT.'./include/game/titles.func.php';
include_once GAME_ROOT.'./include/game/clubslct.func.php';
function itemuse($itmn) {
global $mode, $log, $nosta, $pid, $name, $state, $now,$nick,$achievement,$club, $pdata;
global $mode, $log, $nosta, $pid, $name, $state, $now,$nick,$achievement,$club,$clbpara,$pdata;
$nickinfo = get_title_desc($nick);
......@@ -75,6 +75,11 @@ function itemuse($itmn) {
$itmnumlimit = $itme>=$itms ? $itms : $itme;
}
if (($noeqp && strpos ( ${$eqp.'k'}, $noeqp ) === 0) || ! ${$eqp.'s'}) {
// 装备道具时,进行单次套装检测
include_once GAME_ROOT.'./include/game/itemmain.func.php';
reload_single_set_item($pdata,$eqp,$itm,1);
${$eqp} = $itm;
${$eqp.'k'} = $itmk;
${$eqp.'e'} = $itme;
......@@ -84,6 +89,14 @@ function itemuse($itmn) {
$itm = $itmk = $itmsk = '';
$itme = $itms = 0;
} else {
// 替换装备时,进行单次套装检测
// 先检测目前穿的装备
include_once GAME_ROOT.'./include/game/itemmain.func.php';
reload_single_set_item($pdata,$eqp,${$eqp});
// 再检测要替换的装备,类型为1,表示装备
reload_single_set_item($pdata,$eqp,$itm,1);
$itmt = ${$eqp};
$itmkt = ${$eqp.'k'};
$itmet = ${$eqp.'e'};
......@@ -114,6 +127,8 @@ function itemuse($itmn) {
$sp = $sp > $msp ? $msp : $sp;
$oldsp = $sp - $oldsp;
$log .= "你使用了<span class=\"red\">$itm</span>,恢复了<span class=\"yellow\">$oldsp</span>点体力。<br>";
//吃了无毒果酱
if($itm == '桔黄色的果酱') $clbpara['achvars']['eat_jelly'] = 1;
if ($itms != $nosta) {
$itms --;
if ($itms <= 0) {
......@@ -201,6 +216,8 @@ function itemuse($itmn) {
$hp = $hp > $mhp ? $mhp : $hp;
$oldhp = $hp - $oldhp;
$log .= "你使用了<span class=\"red\">$itm</span>,恢复了<span class=\"yellow\">$oldhp</span>点生命和<span class=\"yellow\">$oldsp</span>点体力。<br>";
//吃了无毒的围棋子饼干 真勇啊!
if($itm == '像围棋子一样的饼干') $clbpara['achvars']['eat_weiqi'] = 1;
if ($itms != $nosta) {
$itms --;
if ($itms <= 0) {
......@@ -260,6 +277,12 @@ function itemuse($itmn) {
$log .= "你被毒死了!";
}
}
else
{
//吃了像围棋子一样的饼干但是活下来了……怎么做到的!
if($itm == '像围棋子一样的饼干') $clbpara['achvars']['eat_weiqi'] = 1;
if($itm == '桔黄色的果酱') $clbpara['achvars']['eat_jelly'] = 1;
}
if ($itms != $nosta) {
$itms --;
if ($itms <= 0) {
......@@ -1161,7 +1184,7 @@ function itemuse($itmn) {
$cnum = $db->affected_rows ();
addnews ( $now, 'corpseclear', $nickinfo.' '.$name, $cnum );
$log .= "使用了<span class=\"yellow\">$itm</span>。<br>突然刮起了一阵怪风,吹走了地上的{$cnum}具尸体!<br>";
$itms --;
$itms --; $isk = $cnum;
} elseif ($itm == '天候棒') {
global $weather, $wthinfo, $name;
......@@ -1914,6 +1937,10 @@ function itemuse($itmn) {
global $clbpara;
$log.="【DEBUG】你目前的播放列表还原为了默认播放列表!<br>";
unset($clbpara['event_bgmbook']);
} elseif ($itm == '成就重置装置'){
//使用会重置对应属性编号的成就进度
include_once GAME_ROOT.'./include/game/achievement.func.php';
reset_achievement_rev($itmsk,$name);
} elseif ($itm == '测试用元素口袋'){
global $elements_info;
$log.="【DEBUG】你不知道从哪里摸出来一大堆元素!<br>";
......
......@@ -294,7 +294,13 @@ function itemget() {
function itemdrop($item) {
global $db,$log,$mode,$pls,$tablepre;
if($item == 'wep'){
if(strpos($item,'itm')===false)
{
$log .= '只能丢弃包裹内的道具!<br>';
$mode = 'command';
return;
}
/*if($item == 'wep'){
global $wep,$wepk,$wepe,$weps,$wepsk;
$itm = & $wep;
$itmk = & $wepk;
......@@ -310,7 +316,7 @@ function itemdrop($item) {
$itms = & ${'ar'.$itmn.'s'};
$itmsk = & ${'ar'.$itmn.'sk'};
} elseif(strpos($item,'itm') === 0) {
} else*/if(strpos($item,'itm') === 0) {
$itmn = substr($item,3,1);
global ${'itm'.$itmn},${'itmk'.$itmn},${'itme'.$itmn},${'itms'.$itmn},${'itmsk'.$itmn};
$itm = & ${'itm'.$itmn};
......@@ -338,7 +344,7 @@ function itemdrop($item) {
drop_itembag();
}
}
if(($itmk=='XX')||(($itmk=='XY'))){
if(($itmk=='XX')||(($itmk=='XY'))){
$log .= '该物品不能丢弃。<br>';
$mode = 'command';
return;
......@@ -373,7 +379,7 @@ if(($itmk=='XX')||(($itmk=='XY'))){
}
function itemoff($item){
global $log,$mode,$cmd,$itm0,$itmk0,$itme0,$itms0,$itmsk0;
global $log,$mode,$cmd,$itm0,$itmk0,$itme0,$itms0,$itmsk0,$pdata;
if($item == 'wep'){
global $wep,$wepk,$wepe,$weps,$wepsk;
......@@ -401,6 +407,10 @@ function itemoff($item){
$mode = 'command';
return;
}
//卸下装备时,进行单次套装检测
reload_single_set_item($pdata,$item,$itm);
$log .= "你卸下了装备<span class=\"yellow\">$itm</span>。<br>";
$itm0 = $itm;
......@@ -1157,6 +1167,66 @@ function getcorpse($item){
return;
}
# 初始化玩家/NPC数据时,重载套装效果
function reload_set_items(&$pa)
{
# 身上登记过套装效果,先重置
if(!empty($pa['clbpara']['setitems']))
{
# TODO:失去对应的套装效果
}
$pa['clbpara']['setitems'] = Array();
$set_items = get_set_items();
$equip_list = get_equip_list();
# 遍历身上的装备信息 检查是否为套装的组成部分
foreach($equip_list as $eqp)
{
if(!empty($pa[$eqp.'s']) && isset($set_items[$eqp][$pa[$eqp]]))
{
$sid = $set_items[$eqp][$pa[$eqp]];
$pa['clbpara']['setitems'][$sid] += 1;
}
}
# 身上存在套装效果
if(!empty($pa['clbpara']['setitems']))
{
//获得对应的套装效果
}
return;
}
# 装备/替换/破坏装备时,进行单件套装效果变更
# eqp → 装备部位;eqm → 装备名;active 1 → 装备;active 0 → 卸下/损坏
function reload_single_set_item(&$pa,$eqp,$enm,$active=0)
{
global $log;
$set_items = get_set_items();
# 检查装备是否为套装组成部分
if(isset($set_items[$eqp][$enm]))
{
$sid = $set_items[$eqp][$enm];
$set_items_info = get_set_items_info();
if($active)
{
$pa['clbpara']['setitems'][$sid] += 1;
$nownums = $pa['clbpara']['setitems'][$sid];
//获得对应的套装效果
//$log .= "激活了套装{$set_items_info[$sid]['name']}{$nownums}件套的效果。<br>";
//检查是否解锁对应套装成就
}
else
{
$pa['clbpara']['setitems'][$sid] -= 1;
$nownums = $pa['clbpara']['setitems'][$sid];
//失去对应的套装效果
//$log .= "套装{$set_items_info[$sid]['name']}组件数-1,重新激活{$nownums}件套的效果。<br>";
}
}
return;
}
//武器损耗&消耗计算:force_imp:强制扣除武器效果;check_sk:是否在武器毁坏时重新检查属性数组$pa['ex_keys']
function weapon_loss(&$pa,$hurtvalue,$force_imp=0,$check_sk=0)
{
......@@ -1249,6 +1319,9 @@ function armor_hurt(&$pa,$which,$hurtvalue,$check_sk=0)
//剔除防具属性
if($check_sk && !empty($pa[$which.'sk'])) unset_ex_from_array($pa,get_itmsk_array($pa[$which.'sk']));
//装备损坏后 重新检查套装属性
reload_single_set_item($pa,$which,$pa[$which]);
if($which == 'arb')
{
$pa[$which] = '内衣'; $pa[$which.'k'] = 'DN';
......
......@@ -174,6 +174,10 @@
if($flag < 0) return $flag;
}
# 检查成就503
if(!empty($pa['arbs']) && $pa['arb'] == '【智代专用熊装】') attr_ach53_check($pa,$pd,$active);
if(!empty($pd['arbs']) && $pd['arb'] == '【智代专用熊装】') attr_ach53_check($pd,$pa,$active);
return 1;
}
......@@ -1524,6 +1528,10 @@
$pa['hp'] -= $hp_d;
}
}
# 检查成就502
if ($pa['wep_name'] == '翼人的羽毛') $pa['clbpara']['achvars']['ach502'] = $pa['final_damage'];
return;
}
......
......@@ -770,4 +770,22 @@
return;
}
function attr_ach53_check(&$pa,&$pd,$active)
{
if(!empty($pa['arbs']) && $pa['arb'] == '【智代专用熊装】')
{
// 必须连续攻击同一个对象
if(!empty($pa['clbpara']['achvars']['ach503']) && $pa['clbpara']['achvars']['ach503']['a'] == $pd['pid'])
{
$pa['clbpara']['achvars']['ach503']['t'] += 1;
}
else
{
$pa['clbpara']['achvars']['ach503']['a'] = $pd['pid'];
$pa['clbpara']['achvars']['ach503']['t'] = 1;
}
}
return;
}
?>
\ No newline at end of file
......@@ -385,9 +385,9 @@
battle_finish_flag:
# 检查战斗中出现的杂项成就
include_once GAME_ROOT.'./include/game/achievement.func.php';
if(!$pa['type']) check_misc_achievement_rev($pa);
if(!$pd['type']) check_misc_achievement_rev($pd);
//include_once GAME_ROOT.'./include/game/achievement.func.php';
//if(!$pa['type']) check_misc_achievement_rev($pa);
//if(!$pd['type']) check_misc_achievement_rev($pd);
# 如果战斗中出现了死者 更新action标记
if ($active)
......@@ -1009,11 +1009,20 @@
}
# 保存击杀女主的记录
if($pd['type'] == 14) $pa['clbpara']['achvars']['kill_n14'] += 1;
if($pd['type'] == 14)
{
$pa['clbpara']['achvars']['kill_n14'] += 1;
# 不一定是一击秒杀……但是先这样吧^ ^;
if($pd['name'] == '守卫者 静流' && $pa['final_damage'] >= $pd['mhp']) $pa['clbpara']['achvars']['ach505'] = 1;
}
# 保存击杀种火或小兵的记录
if(empty($pa['clbpara']['achvars']['kill_minion']) && ($pd['type'] == 90 || $pd['type'] == 91 || $pd['type'] == 92)) $pa['clbpara']['achvars']['kill_minion'] = 1;
# 成就504,保存在RF高校用过的武器记录
if($pa['pls'] == 2) $pa['clbpara']['achvars']['ach504'][$pa['wep_kind']] = 1;
# 快递被劫事件:
if(isset($pd['clbpara']['post']))
{
......@@ -1282,6 +1291,10 @@
shuffle($weplist);
$chosen = $weplist[0];$c = $chosen[0];
//var_dump($chosen);
//刷新套装效果
include_once GAME_ROOT.'./include/game/itemmain.func.php';
reload_single_set_item($pa,'wep',$oldwep);
reload_single_set_item($pa,'wep',$chosen[1],1);
$pa['itm'.$c] = $pa['wep']; $pa['itmk'.$c] = $pa['wepk']; $pa['itmsk'.$c] = $pa['wepsk'];
$pa['itme'.$c] = $pa['wepe']; $pa['itms'.$c] = $pa['weps'];
$pa['wep'] = $chosen[1]; $pa['wepk'] = $chosen[2]; $pa['wepe'] = $chosen[3]; $pa['weps'] = $chosen[4]; $pa['wepsk'] = $chosen[5];
......
......@@ -9,6 +9,7 @@
global $att,$def;
global $wep,$wepk,$weps,$wepes,$wepsk;
global $rp;
global $pdata;
//登记非功能性地点信息时合并隐藏地点
foreach($hplsinfo as $hgroup=>$hpls) $plsinfo += $hpls;
......@@ -25,6 +26,9 @@
return;
}
// 记录唱歌动作
$pdata['clbpara']['achvars']['sing'] = 1;
if ($sn=="Alicemagic"){
$log.="♪你說過在哭泣之後應該可以破涕而笑♪<br>
♪我們的旅行 我不會忘♪<br>
......
<?php
if(!defined('IN_GAME')) {
exit('Access Denied');
}
# TODO: NO GLOBAL
# resources_1.php
function get_equip_list()
{
//装备列表
$equip_list = Array('wep','arb','arh','ara','arf','art');
return $equip_list;
}
# achievement_1.php
function get_achtype()
{
include config("achievement",1);
return $ach_type;
}
function get_hidden_achtype()
{
include config("achievement",1);
return $hidden_ach_type;
}
function get_achlist($a=NULL)
{
include config("achievement",1);
if(isset($a) && isset($ach_list[$a])) return $ach_list[$a];
return $ach_list;
}
# setitems_1.php
function get_set_items()
{
include config('setitems',1);
return $set_items;
}
function get_set_items_info()
{
include config('setitems',1);
return $set_items_info;
}
?>
......@@ -542,10 +542,12 @@ function gameover($time = 0, $mode = '', $winname = '') {
$db->query("INSERT INTO {$tablepre}winners (gid,nick,name,pass,type,endtime,gd,sNo,icon,club,hp,mhp,sp,msp,ss,mss,att,def,pls,lvl,`exp`,money,bid,inf,rage,pose,tactic,killnum,killnum2,state,wp,wk,wg,wc,wd,wf,teamID,teamPass,teamMate,teamIcon,wep,wepk,wepe,weps,arb,arbk,arbe,arbs,arh,arhk,arhe,arhs,ara,arak,arae,aras,arf,arfk,arfe,arfs,art,artk,arte,arts,itm0,itmk0,itme0,itms0,itm1,itmk1,itme1,itms1,itm2,itmk2,itme2,itms2,itm3,itmk3,itme3,itms3,itm4,itmk4,itme4,itms4,itm5,itmk5,itme5,itms5,itm6,itmk6,itme6,itms6,motto,wmode,vnum,gtime,gstime,getime,hdmg,hdp,hkill,hkp,wepsk,arbsk,arhsk,arask,arfsk,artsk,itmsk0,itmsk1,itmsk2,itmsk3,itmsk4,itmsk5,itmsk6) VALUES ('".$gamenum."','".$pdata['nick']."','".$pdata['name']."','".$pdata['pass']."','".$pdata['type']."','".$pdata['endtime']."','".$pdata['gd']."','".$pdata['sNo']."','".$pdata['icon']."','".$pdata['club']."','".$pdata['hp']."','".$pdata['mhp']."','".$pdata['sp']."','".$pdata['msp']."','".$pdata['ss']."','".$pdata['mss']."','".$pdata['att']."','".$pdata['def']."','".$pdata['pls']."','".$pdata['lvl']."','".$pdata['exp']."','".$pdata['money']."','".$pdata['bid']."','".$pdata['inf']."','".$pdata['rage']."','".$pdata['pose']."','".$pdata['tactic']."','".$pdata['killnum']."','".$pdata['killnum2']."','".$pdata['state']."','".$pdata['wp']."','".$pdata['wk']."','".$pdata['wg']."','".$pdata['wc']."','".$pdata['wd']."','".$pdata['wf']."','".$pdata['teamID']."','".$pdata['teamPass']."','".$pdata['teamMate']."','".$pdata['teamIcon']."','".$pdata['wep']."','".$pdata['wepk']."','".$pdata['wepe']."','".$pdata['weps']."','".$pdata['arb']."','".$pdata['arbk']."','".$pdata['arbe']."','".$pdata['arbs']."','".$pdata['arh']."','".$pdata['arhk']."','".$pdata['arhe']."','".$pdata['arhs']."','".$pdata['ara']."','".$pdata['arak']."','".$pdata['arae']."','".$pdata['aras']."','".$pdata['arf']."','".$pdata['arfk']."','".$pdata['arfe']."','".$pdata['arfs']."','".$pdata['art']."','".$pdata['artk']."','".$pdata['arte']."','".$pdata['arts']."','".$pdata['itm0']."','".$pdata['itmk0']."','".$pdata['itme0']."','".$pdata['itms0']."','".$pdata['itm1']."','".$pdata['itmk1']."','".$pdata['itme1']."','".$pdata['itms1']."','".$pdata['itm2']."','".$pdata['itmk2']."','".$pdata['itme2']."','".$pdata['itms2']."','".$pdata['itm3']."','".$pdata['itmk3']."','".$pdata['itme3']."','".$pdata['itms3']."','".$pdata['itm4']."','".$pdata['itmk4']."','".$pdata['itme4']."','".$pdata['itms4']."','".$pdata['itm5']."','".$pdata['itmk5']."','".$pdata['itme5']."','".$pdata['itms5']."','".$pdata['itm6']."','".$pdata['itmk6']."','".$pdata['itme6']."','".$pdata['itms6']."','".$pdata['motto']."','".$pdata['wmode']."','".$pdata['vnum']."','".$pdata['gtime']."','".$pdata['gstime']."','".$pdata['getime']."','".$pdata['hdmg']."','".$pdata['hdp']."','".$pdata['hkill']."','".$pdata['hkp']."','".$pdata['wepsk']."','".$pdata['arbsk']."','".$pdata['arhsk']."','".$pdata['arask']."','".$pdata['arfsk']."','".$pdata['artsk']."','".$pdata['itmsk0']."','".$pdata['itmsk1']."','".$pdata['itmsk2']."','".$pdata['itmsk3']."','".$pdata['itmsk4']."','".$pdata['itmsk5']."','".$pdata['itmsk6']."')");
}
//检查成就
//存在获胜者数据时 检查获胜者结局成就
if(!empty($pdata))
{
include_once GAME_ROOT.'./include/game/achievement.func.php';
check_end_achievement_rev($winner,$winmode,$pdata);
}
rs_sttime();//重置游戏开始时间和当前游戏状态
$gamestate = 0;
......
<table>
<tr>
<!--{eval $alvl = $cpl[$aid] == 999 ? $alist[$aid]['lvl'] : $cpl[$aid]; $rlvl = $cpl[$aid] == 999 ? $alist[$aid]['lvl']-1 : $cpl[$aid];}-->
<td>
<!--{if file_exists("img/ach/".$aid."_".$alvl.".gif") }-->
<!-- 存在预设的对应阶段图标 -->
<img src="img/ach/{$aid}_{$alvl}.gif">
<!--{elseif file_exists("img/ach/".$aid."_".$rlvl.".gif") }-->
<!-- 完成后的成就,不存在完成阶段图标,但是存在上一阶段图标 -->
<img src="img/ach/{$aid}_{$rlvl}.gif">
<!--{elseif $alvl && file_exists("img/ach/".$aid.".gif") }-->
<!-- 没有定义阶段,但是有通用阶段图标 -->
<img src="img/ach/{$aid}.gif">
<!--{else}-->
<!-- 否则使用默认图标 -->
<!--{if !empty($alvl) }-->
<img src="img/ach/D.gif">
<!--{else}-->
<img src="img/ach/N.gif">
<!--{/if}-->
<!--{/if}-->
</td>
<td class="ach_cont">
<!-- 当前阶段成就名 -->
<span class="ach_title">
<!--{if empty($alist[$aid]['name'][$alvl]) }-->
<b>{$alist[$aid]['name'][$rlvl]}</b>
<!--{else}-->
<b>{$alist[$aid]['name'][$alvl]}</b>
<!--{/if}-->
</span>
<!--{if !empty($alist[$aid]['lvldesc'][$alvl]) }-->
<!-- 存在预设的对应阶段的完成状态描述文本 -->
{$alist[$aid]['lvlname'][$alvl]}
<!--{elseif !empty($alist[$aid]['lvldesc'][$rlvl]) }-->
{$alist[$aid]['lvlname'][$rlvl]}
<!--{else}-->
<!-- 否则使用默认描述文本 -->
<!--{if ($alvl == $alist[$aid]['lvl']) }-->
<span class="lime">[完成]</span>
<!--{elseif (!empty($alvl))}-->
<span class="clan">[进行中]</span>
<!--{else}-->
<span class="red">[未完成]</span>
<!--{/if}-->
<!--{/if}-->
<br>
<!-- 当前阶段成就完成情况 -->
<font color="yellow">
<!--{eval $nums = is_array($prc[208]) ? count($prc[208]) : 0; }-->
<!--{if $nums>0 }-->
<!--{eval $sname = "已集齐套装:\r";}-->
<!--{loop $prc[208] $sid}-->
<!--{eval $sname .= get_set_items_info()[$sid]['name']."\r";}-->
<!--{/loop}-->
<!--{/if}-->
<span <!--{if !empty($sname) }-->tooltip="{$sname}"<!--{/if}-->>已集齐套装种类:{$nums}种</span>
</font>
<br>
<!-- 当前阶段达成奖励 -->
<font color="olive">
奖励:
<!--{if $alist[$aid]['c1'][$rlvl] }-->
积分{$alist[$aid]['c1'][$rlvl]}
<!--{/if}-->
<!--{if $alist[$aid]['c2'][$rlvl] }-->
切糕{$alist[$aid]['c2'][$rlvl]}
<!--{/if}-->
<!--{if $alist[$aid]['title'][$rlvl] }-->
<span class="evergreen">称号 {$alist[$aid]['title'][$rlvl]}</span>
<!--{/if}-->
</font>
<br>
<!-- 当前阶段达成需求描述 -->
{$alist[$aid]['desc'][$rlvl]}
</td>
</tr>
</table>
......@@ -47,7 +47,10 @@
<br>
<!-- 当前阶段成就完成情况 -->
<font color="yellow">
<!--{if !empty($alist[$aid]['request'][$alvl]) }-->
<!--{if !empty($alist[$aid]['request']) && !is_array($alist[$aid]['request']) }-->
<!--{eval $areq = $alist[$aid]['request']; $areq = str_replace("[:request:]",$prc[$aid],$areq);}-->
{$areq}
<!--{elseif !empty($alist[$aid]['request'][$alvl]) }-->
<!--{eval $areq = $alist[$aid]['request'][$alvl]; $areq = str_replace("[:request:]",$prc[$aid],$areq);}-->
{$areq}
<!--{elseif !empty($alist[$aid]['request'][$rlvl]) }-->
......
......@@ -28,73 +28,131 @@
<input type="button" class="cmdbutton" <!--{if strpos($itmk6,'W')===0 || strpos($itmk6,'D')===0 || strpos($itmk6,'A')===0}-->value="装备"<!--{else}-->value="使用"<!--{/if}--> onclick="$('mode').value='command';$('command').value='itm6';postCmd('gamecmd','command.php');this.disabled=true;"><span class="yellow">{$itm6}</span>/{$itme6}/{$itms6}<br>
<!--{/if}-->
<br>
<!--{if $club==19}--><span class="lime">报应点数:<span id="anum">$rp</span></span><br><!--{/if}-->
<!--{if $club==20}-->
<!-- 第 -1 行:社团提示相关-->
<!--{if $club==19}-->
<span class="lime">报应点数:<span id="anum">$rp</span></span><br>
<!--{elseif $club==20}-->
<a onclick="$('mode').value='itemmain';$('command').value='elementbag';postCmd('gamecmd','command.php');this.disabled=true;"><span class="sparkle">{$sparkle}元素口袋{$sparkle}</span></a><br>
<!--{/if}-->
<!-- 第 1 行 : 包裹相关-->
<!--{if $club==20}-->
<input type="button" class="cmdbutton" id="elementmix" name="elementmix" value="元素合成" onclick="$('command').value='itemmain';$('subcmd').name='itemcmd';$('subcmd').value='elementmix';postCmd('gamecmd','command.php');this.disabled=true;">
<!--{else}-->
<input type="button" class="cmdbutton" id="itemmix" name="itemmix" value="道具合成" onclick="$('command').value='itemmain';$('subcmd').name='itemcmd';$('subcmd').value='itemmix';postCmd('gamecmd','command.php');this.disabled=true;">
<!--{/if}-->
<span tooltip="交换道具位置,或合并可堆叠道具">
<input type="button" class="cmdbutton" id="itemmerge" name="itemmerge" value="整理包裹" onclick="$('command').value='itemmain';$('subcmd').name='itemcmd';$('subcmd').value='itemmerge';postCmd('gamecmd','command.php');this.disabled=true;">
</span>
<input type="button" class="cmdbutton" id="itemdrop" name="itemdrop" value="道具丢弃" onclick="$('command').value='itemmain';$('subcmd').name='itemcmd';$('subcmd').value='itemdrop';postCmd('gamecmd','command.php');this.disabled=true;">
<br>
<!-- 第 2 行: 武器相关-->
<span tooltip="切换主/副武器,或将手中武器存放于副武器栏内">
<input type="button" class="cmdbutton" id="sw_weapon" name="sw_weapon" value="切换武器" onclick="$('mode').value='itemmain';$('command').value='changewep';postCmd('gamecmd','command.php');this.disabled=true;">
</span>
<span tooltip="装备的武器中带有“多重”属性时,点此转换武器模式">
<input type="button" class="cmdbutton" id="sp_weapon" name="sp_weapon" value="武器模式" onclick="$('command').value='special';$('subcmd').name='sp_cmd';$('subcmd').value='sp_weapon';postCmd('gamecmd','command.php');this.disabled=true;">
</span>
<span tooltip="消耗{$arte}点歌魂歌唱,可能会暴露自己的位置">
<!--{if strpos($artk,'ss')!==false}-->
<input type="button" class="cmdbutton" id="sp_weapon" name="sp_weapon" value="歌唱" onclick="$('command').value='song';$('subcmd').name='song';postCmd('gamecmd','command.php');this.disabled=true;">
<!--{/if}-->
<br>
<input type="button" class="cmdbutton" id="itemdrop" name="itemdrop" value="道具移动" onclick="$('command').value='itemmain';$('subcmd').name='itemcmd';$('subcmd').value='itemmove';postCmd('gamecmd','command.php');this.disabled=true;">
<input type="button" class="cmdbutton" id="itemdrop" name="itemdrop" value="道具丢弃" onclick="$('command').value='itemmain';$('subcmd').name='itemcmd';$('subcmd').value='itemdrop';postCmd('gamecmd','command.php');this.disabled=true;">
<input type="button" class="cmdbutton" id="sp_weapon" name="sp_weapon" value="武器模式" onclick="$('command').value='special';$('subcmd').name='sp_cmd';$('subcmd').value='sp_weapon';postCmd('gamecmd','command.php');this.disabled=true;">
<!--{if strpos($arbsk,'^')!==false && $arbs && $arbe}-->
</span>
<br>
<!-- 第 2.5 行: 背包指令-->
<!--{if strpos($arbsk,'^')!==false && $arbs && $arbe}-->
<input type="button" class="cmdbutton" id="itemencase" name="itemencase" value="存放道具" onclick="$('command').value='itemmain';$('subcmd').name='itemcmd';$('subcmd').value='itemencase';postCmd('gamecmd','command.php');this.disabled=true;">
<input type="button" class="cmdbutton" id="itemout" name="itemout" value="取出道具" onclick="$('command').value='itemmain';$('subcmd').name='itemcmd';$('subcmd').value='itemout';postCmd('gamecmd','command.php');this.disabled=true;">
<span tooltip="查看背包中存放的道具信息与背包容量">
<input type="button" class="cmdbutton" id="itemmain" name="itemmain" value="背包信息" onclick="$('mode').value='itemmain';$('command').value='iteminfo';postCmd('gamecmd','command.php');this.disabled=true;">
</span>
<br>
<!--{/if}-->
<br />
<input type="button" class="cmdbutton" id="rest1" name="rest1" value="睡眠" onclick="$('command').value='rest1';postCmd('gamecmd','command.php');this.disabled=true;">
<input type="button" class="cmdbutton" id="rest2" name="rest2" value="治疗" onclick="$('command').value='rest2';postCmd('gamecmd','command.php');this.disabled=true;">
<!--{if in_array($pls,$hospitals)}--><input type="button" class="cmdbutton" id="rest3" name="rest3" value="静养" onclick="$('command').value='rest3';postCmd('gamecmd','command.php');this.disabled=true;"><!--{/if}-->
<br />
<!--{if $gamestate < 40}-->
<!-- 第 3 行:休养指令-->
<span tooltip="进入睡眠状态,随时间缓慢恢复体力">
<input type="button" class="cmdbutton" id="rest1" name="rest1" value="睡眠" onclick="$('command').value='rest1';postCmd('gamecmd','command.php');this.disabled=true;">
</span>
<span tooltip="进入治疗状态,随时间缓慢恢复生命">
<input type="button" class="cmdbutton" id="rest2" name="rest2" value="治疗" onclick="$('command').value='rest2';postCmd('gamecmd','command.php');this.disabled=true;">
</span>
<!--{if in_array($pls,$hospitals)}-->
<span tooltip="进入静养状态,随时间缓慢恢复生命与体力">
<input type="button" class="cmdbutton" id="rest3" name="rest3" value="静养" onclick="$('command').value='rest3';postCmd('gamecmd','command.php');this.disabled=true;">
</span>
<!--{/if}-->
<br>
<!-- 第 3.5 行:队伍指令-->
<!--{if $gamestate < 40}-->
<!--{if !$teamID}-->
<span tooltip="消耗{$team_sp}点体力,创建一支队伍">
<input type="button" class="cmdbutton" id="teammake" name="teammake" value="组建队伍" onclick="$('command').value='team';$('subcmd').name='teamcmd';$('subcmd').value='teammake';postCmd('gamecmd','command.php');this.disabled=true;">
</span>
<span tooltip="消耗{$teamj_sp}点体力,加入一支队伍">
<input type="button" class="cmdbutton" id="teammake" name="teamjoin" value="加入队伍" onclick="$('command').value='team';$('subcmd').name='teamcmd';$('subcmd').value='teamjoin';postCmd('gamecmd','command.php');this.disabled=true;">
</span>
<!--{else}-->
<input type="button" class="cmdbutton" id="teammake" name="teamquit" value="脱离队伍" onclick="$('command').value='team';$('subcmd').name='teamcmd';$('subcmd').value='teamquit';postCmd('gamecmd','command.php');this.disabled=true;">
<!--{/if}-->
<!--{/if}-->
<br />
<!--{if in_array($pls,$shops)}-->
<br />
<!--{/if}-->
<!-- 第 4 行:地区功能-->
<!--{if in_array($pls,$shops)}-->
<input type="button" class="cmdbutton" id="sp_shop" name="sp_shop" value="商店" onclick="$('command').value='special';$('subcmd').name='sp_cmd';$('subcmd').value='sp_shop';postCmd('gamecmd','command.php');this.disabled=true;">
<!--{/if}-->
<!--{if in_array($pls,$depots)}-->
<!--{/if}-->
<!--{if in_array($pls,$depots)}-->
<span tooltip="向安全箱中存入或取出道具">
<input type="button" class="cmdbutton" id="sp_depot" name="sp_depot" value="安全箱" onclick="$('command').value='special';$('subcmd').name='sp_cmd';$('subcmd').value='sp_depot';postCmd('gamecmd','command.php');this.disabled=true;">
<!--{/if}-->
<input type="button" class="cmdbutton" id="sp_skpts" name="sp_skpts" value="升级技能" onclick="$('command').value='special';$('subcmd').name='sp_cmd';$('subcmd').value='sp_skpts';postCmd('gamecmd','command.php');this.disabled=true;">
<br />
<!--{if $club == 7}-->
</span>
<!--{/if}-->
<input type="button" class="cmdbutton" id="sp_skpts" name="sp_skpts" value="升级技能" onclick="$('command').value='special';$('subcmd').name='sp_cmd';$('subcmd').value='sp_skpts';postCmd('gamecmd','command.php');this.disabled=true;">
<br>
<!-- 第 5 行:社团特殊功能-->
<!--{if $club == 7}-->
<span tooltip="消耗一枚电池,为武器或陷阱附加电击属性">
<input type="button" class="cmdbutton" id="sp_adtsk" name="sp_adtsk" value="武器带电" onclick="$('command').value='special';$('subcmd').name='sp_cmd';$('subcmd').value='sp_adtsk';postCmd('gamecmd','command.php');this.disabled=true;">
<input type="button" class="cmdbutton" id="sp_trapadtsk" name="sp_trapadtsk" value="陷阱带电" onclick="$('command').value='special';$('subcmd').name='sp_cmd';$('subcmd').value='sp_trapadtsk';postCmd('gamecmd','command.php');this.disabled=true;">
<!--{elseif $club == 8}-->
</span>
<br />
<!--{elseif $club == 8}-->
<span tooltip="消耗一份毒药,为武器或陷阱附加带毒属性">
<input type="button" class="cmdbutton" id="sp_adtsk" name="sp_adtsk" value="武器淬毒" onclick="$('command').value='special';$('subcmd').name='sp_cmd';$('subcmd').value='sp_adtsk';postCmd('gamecmd','command.php');this.disabled=true;">
<input type="button" class="cmdbutton" id="sp_trapadtsk" name="sp_trapadtsk" value="陷阱淬毒" onclick="$('command').value='special';$('subcmd').name='sp_cmd';$('subcmd').value='sp_trapadtsk';postCmd('gamecmd','command.php');this.disabled=true;">
</span>
<span tooltip="选择一份背包中的补给品,检查其是否带毒">
<input type="button" class="cmdbutton" id="sp_poison" name="sp_poison" value="检查毒物" onclick="$('command').value='special';$('subcmd').name='sp_cmd';$('subcmd').value='sp_poison';postCmd('gamecmd','command.php');this.disabled=true;">
<!--{elseif $club == 99}-->
</span>
<br />
<!--{elseif $club == 99}-->
<span tooltip="舍弃当前称号,使属性大副提升">
<input type="button" class="cmdbutton" id="sp_pbomb" name="sp_pbomb" value="X 按钮" onclick="$('command').value='special';$('subcmd').name='sp_cmd';$('subcmd').value='sp_pbomb';postCmd('gamecmd','command.php');this.disabled=true;">
<!--{/if}-->
<br />
</span>
<br />
<!--{/if}-->
<br />
<!-- 对话框 -->
<!--{if isset($dialogue_id)}-->
{template dialogue}
<!--{/if}-->
<!-- 对话框 -->
<!--{if isset($dialogue_id)}-->
{template dialogue}
<!--{/if}-->
<!-- 子面板 -->
<input type="button" class="cmdbutton" id="sp_terminal" name="sp_terminal" value="子面板" onclick="showModalDialog($('terminal'));">
{template sp_terminal}
<!--{if isset($gamevars['apis'])}-->
{template sp_console_search}
<!--{/if}-->
<!-- 子面板 -->
<span tooltip="查看战场地图、切换背景音乐或调节背景音量">
<input type="button" class="cmdbutton" id="sp_terminal" name="sp_terminal" value="子面板" onclick="showModalDialog($('terminal'));">
</span>
{template sp_terminal}
<!--{if isset($gamevars['apis'])}-->
{template sp_console_search}
<!--{/if}-->
<!-- 技能面板 -->
<input type="button" class="cmdbutton" id="skillstable" name="skillstable" value="技能表" onclick="showModalDialog($('skillpage'));">
{template skillpage}
\ No newline at end of file
<!-- 技能面板 -->
<span tooltip="升级或使用技能">
<input type="button" class="cmdbutton" id="skillstable" name="skillstable" value="技能表" onclick="showModalDialog($('skillpage'));">
</span>
{template skillpage}
\ No newline at end of file
......@@ -4,23 +4,25 @@
<!-- 对白分段显示 -->
<!--{loop $dialogues[$dialogue_id] $dkey $dinfo}-->
<div id="d{$dkey}" <!--{if $dkey == 0}--> style="" <!--{else}--> style="display: none;" <!--{/if}-->>
<table class="map" border="1" style="text-align: center;"><tr>
<div id="d{$dkey}" <!--{if $dkey == 0}--> class="ach_box" style="border:0; text-align: center; min-height: min-content; width: max-content; max-width: 560px;" <!--{else}--> style="display: none;" <!--{/if}-->>
<table>
<tr>
<!-- 带头像对白 -->
<!--{if isset($dialogue_icon[$dialogue_id][$dkey])}-->
<td>
<img style="width:140px;height:80px;" src="$dialogue_icon[$dialogue_id][$dkey]">
</td>
<td style="border: 1px; width:280px;height:80px;text-align: left; padding: 3% 6%;">
<td class="ach-cont" style="border: 1px; width:280px;height:80px;text-align: left; padding: 3% 6%;">
$dinfo
</td>
<!-- 无头像对白 -->
<!--{else}-->
<td class="" style="width:320px;height:80px;text-align: center; padding: 3% 6%;">
<td class="ach-cont" style="width:320px;height:80px;text-align: center; padding: 3% 6%;">
$dinfo
</td>
<!--{/if}-->
</tr></table>
</tr>
</table>
<br>
<!--{if $dkey > 0}-->
<input type="button" class="cmdbutton" style="margin-right: 5%;" value="上一页" onclick="changePages($dkey,$dkey-1);">
......
你想丢掉什么?<br><br>
<input type="hidden" name="mode" value="itemmain">
<input type="radio" name="command" id="menu" value="menu" checked><a onclick=sl('menu'); href="javascript:void(0);" >返回</a><br><br>
<!--{if $weps && $wepe}-->
<input type="radio" name="command" id="wep" value="dropwep"><a onclick=sl('wep'); href="javascript:void(0);" >$wep/$wepe/$weps </a><br>
<!--{/if}-->
<!--{if $arbs && $arbe}-->
<input type="radio" name="command" id="arb" value="droparb"><a onclick=sl('arb'); href="javascript:void(0);" >$arb/$arbe/$arbs </a><br>
<!--{/if}-->
<!--{if $arhs}-->
<input type="radio" name="command" id="arh" value="droparh"><a onclick=sl('arh'); href="javascript:void(0);" >$arh/$arhe/$arhs </a><br>
<!--{/if}-->
<!--{if $aras}-->
<input type="radio" name="command" id="ara" value="dropara"><a onclick=sl('ara'); href="javascript:void(0);" >$ara/$arae/$aras </a><br>
<!--{/if}-->
<!--{if $arfs}-->
<input type="radio" name="command" id="arf" value="droparf"><a onclick=sl('arf'); href="javascript:void(0);" >$arf/$arfe/$arfs </a><br>
<!--{/if}-->
<!--{if $arts}-->
<input type="radio" name="command" id="art" value="dropart"><a onclick=sl('art'); href="javascript:void(0);" >$art/$arte/$arts </a><br>
<!--{/if}-->
<!--{if $itms1}-->
<input type="radio" name="command" id="itm1" value="dropitm1"><a onclick=sl('itm1'); href="javascript:void(0);" >$itm1/$itme1/$itms1 </a><br>
<!--{/if}-->
......
想要合并什么<br>
打算怎么整理<br>
<input type="hidden" name="mode" value="itemmain">
<input type="radio" name="command" id="menu" value="menu" checked><a onclick=sl('menu'); href="javascript:void(0);" >返回</a><br><br>
<input type="radio" name="command" id="itemmerge" value="itemmerge"><a onclick=sl('itemmerge'); href="javascript:void(0);">合并</a>
<br>
<select name="merge1" onclick=sl('itemmerge'); href="javascript:void(0);">
<option value="0">■ 道具一 ■<br />
<!--{if $itms1}--><option value="1">$itm1/$itme1/$itms1<br /><!--{/if}-->
<!--{if $itms2}--><option value="2">$itm2/$itme2/$itms2<br /><!--{/if}-->
<!--{if $itms3}--><option value="3">$itm3/$itme3/$itms3<br /><!--{/if}-->
<!--{if $itms4}--><option value="4">$itm4/$itme4/$itms4<br /><!--{/if}-->
<!--{if $itms5}--><option value="5">$itm5/$itme5/$itms5<br /><!--{/if}-->
<!--{if $itms6}--><option value="6">$itm6/$itme6/$itms6<br /><!--{/if}-->
</select>
<br>
<!-- 合并道具 -->
<input type="radio" name="command" id="itemmerge" value="itemmerge"><a onclick=sl('itemmerge'); href="javascript:void(0);">合并道具</a>
<div style="padding: 5px;">
<span class="grey">将两个可堆叠道具合并在一起。</span><br>
<select name="merge1" onclick=sl('itemmerge'); href="javascript:void(0);">
<option value="0">■ 道具一 ■<br />
<!--{if $itms1}--><option value="1">$itm1/$itme1/$itms1<br /><!--{/if}-->
<!--{if $itms2}--><option value="2">$itm2/$itme2/$itms2<br /><!--{/if}-->
<!--{if $itms3}--><option value="3">$itm3/$itme3/$itms3<br /><!--{/if}-->
<!--{if $itms4}--><option value="4">$itm4/$itme4/$itms4<br /><!--{/if}-->
<!--{if $itms5}--><option value="5">$itm5/$itme5/$itms5<br /><!--{/if}-->
<!--{if $itms6}--><option value="6">$itm6/$itme6/$itms6<br /><!--{/if}-->
</select>
<br><br>
<select name="merge2" onclick=sl('itemmerge'); href="javascript:void(0);">
<option value="0">■ 道具二 ■<br />
<!--{if $itms1}--><option value="1">$itm1/$itme1/$itms1<br /><!--{/if}-->
<!--{if $itms2}--><option value="2">$itm2/$itme2/$itms2<br /><!--{/if}-->
<!--{if $itms3}--><option value="3">$itm3/$itme3/$itms3<br /><!--{/if}-->
<!--{if $itms4}--><option value="4">$itm4/$itme4/$itms4<br /><!--{/if}-->
<!--{if $itms5}--><option value="5">$itm5/$itme5/$itms5<br /><!--{/if}-->
<!--{if $itms6}--><option value="6">$itm6/$itme6/$itms6<br /><!--{/if}-->
</select>
</div>
<br>
<select name="merge2" onclick=sl('itemmerge'); href="javascript:void(0);">
<option value="0">■ 道具二 ■<br />
<!--{if $itms1}--><option value="1">$itm1/$itme1/$itms1<br /><!--{/if}-->
<!--{if $itms2}--><option value="2">$itm2/$itme2/$itms2<br /><!--{/if}-->
<!--{if $itms3}--><option value="3">$itm3/$itme3/$itms3<br /><!--{/if}-->
<!--{if $itms4}--><option value="4">$itm4/$itme4/$itms4<br /><!--{/if}-->
<!--{if $itms5}--><option value="5">$itm5/$itme5/$itms5<br /><!--{/if}-->
<!--{if $itms6}--><option value="6">$itm6/$itme6/$itms6<br /><!--{/if}-->
</select>
<!-- 交换道具位置 -->
<input type="radio" name="command" id="itemmove" value="itemmove"><a onclick=sl('itemmove'); href="javascript:void(0);">移动道具</a>
<div style="padding: 5px;">
<span class="grey">先选择要移位的道具,再选择要移动到的位置。</span><br>
将:
<select name="from">
<option value="0">■ 道 具 ■
<!--{if $itms1}--><option value="1">$itm1/$itme1/$itms1<!--{/if}-->
<!--{if $itms2}--><option value="2">$itm2/$itme2/$itms2<!--{/if}-->
<!--{if $itms3}--><option value="3">$itm3/$itme3/$itms3<!--{/if}-->
<!--{if $itms4}--><option value="4">$itm4/$itme4/$itms4<!--{/if}-->
<!--{if $itms5}--><option value="5">$itm5/$itme5/$itms5<!--{/if}-->
<!--{if $itms6}--><option value="6">$itm6/$itme6/$itms6<!--{/if}-->
</select>
<br>
移动至/与之交换:
<select name="to">
<option value="0">■ 位 置 ■
<!--{if $itms1}--><option value="1">包裹1:$itm1/$itme1/$itms1<!--{else}--><option value="1">包裹1<!--{/if}-->
<!--{if $itms2}--><option value="2">包裹2:$itm2/$itme2/$itms2<!--{else}--><option value="2">包裹2<!--{/if}-->
<!--{if $itms3}--><option value="3">包裹3:$itm3/$itme3/$itms3<!--{else}--><option value="3">包裹3<!--{/if}-->
<!--{if $itms4}--><option value="4">包裹4:$itm4/$itme4/$itms4<!--{else}--><option value="4">包裹4<!--{/if}-->
<!--{if $itms5}--><option value="5">包裹5:$itm5/$itme5/$itms5<!--{else}--><option value="5">包裹5<!--{/if}-->
<!--{if $itms6}--><option value="6">包裹6:$itm6/$itme6/$itms6<!--{else}--><option value="6">包裹6<!--{/if}-->
</select>
</div>
<br>
<input type="button" class="cmdbutton" name="submit" value="提交" onclick="postCmd('gamecmd','command.php');this.disabled=true;">
\ No newline at end of file
......@@ -57,7 +57,7 @@
</td>
<td width=55px background="img/state2.gif" style="position:relative;background-repeat:no-repeat;background-position:left top;">
<div style="border:0; margin:0; cellspacing:0; cellpadding:0; position:absolute;top:0px;right:55px;z-index:1;">
$newhpimg
<span <!--{if $inf}-->tooltip="消耗{$inf_sp}点体力,点击红色准星图标包扎伤口"<!--{/if}-->>$newhpimg</span>
</div>
</td>
</tr>
......@@ -184,9 +184,20 @@
<tr>
<TD class=b2 height="26"><span><!--{if $wepk_words}-->$wepk_words<!--{else}-->$mltwk<!--{/if}--></span></TD>
<TD class=b3>
<!--{if CURSCRIPT == 'game' && $mode == 'command' && $wepe}--><span><input type="button" value="卸下" onclick="$('mode').value='itemmain';$('command').value='offwep';postCmd('gamecmd','command.php');return false;"</span><!--{/if}-->
<span><!--{if $weps}-->$wep_words<!--{else}-->$nowep<!--{/if}--></span>
<!--{if CURSCRIPT == 'game' && $mode == 'command'}--><span class="eicon" onclick="$('mode').value='itemmain';$('command').value='changewep';postCmd('gamecmd','command.php');return false;">🔃</span><!--{/if}-->
<span <!--{if CURSCRIPT == 'game' && $mode == 'command' && $wep2e}-->tooltip="副武器栏:{$wep2}"<!--{/if}-->>
<!--{if CURSCRIPT == 'game' && $mode == 'command' && $wepe}-->
<span>
<input type="button" value="卸下" onclick="$('mode').value='itemmain';$('command').value='offwep';postCmd('gamecmd','command.php');return false;">
</span>
<!--{/if}-->
<span>
<!--{if $weps}-->
$wep_words
<!--{else}-->
$nowep
<!--{/if}-->
</span>
</span>
</TD>
<TD class=b3><span>$wepsk_words</span></TD>
<TD class=b3><span>$wepe</span></TD>
......
<dialog id="terminal" style="max-width: 90%;max-height: 80%;">
<!-- 宽度设计:战场地图478px 控制菜单120px 间距10px-->
<!-- 宽度设计:战场地图476+2px 控制菜单118+2px 间距10px-->
<div style="text-align: center; width: 608px;">
<!-- 背景音乐 -->
<div>
......@@ -9,14 +9,14 @@
<span class="grey">正在播放:~ <span id="bgmname">$bgmname</span></span>
</div>
<!-- 战场地图 -->
<div style="width: 478px; float: left; margin-right: 5px;">
<div style="width: 476px; float: left; margin-right: 5px;border-radius: 3px; border:2px solid rgba(225, 124, 226, 0.2); ">
<!--{eval $mapdata = init_mapdata();}-->
$mapdata
</div>
<!-- 控制菜单 -->
<div style="width: 120px; float: right; margin-left: 5px;">
<div style="width: 118px; float: right; margin-left: 5px;">
<!-- 音乐控制指令 -->
<table border="1" cellspacing="0" cellpadding="0" style="position:relative;">
<table cellspacing="0" cellpadding="0" style="position:relative;border-radius: 3px; border:2px solid rgba(225, 124, 226, 0.2);">
<tr>
<TD colspan="2" class="b1" style="width: 120px; height: 24px;">播放控制</TD>
</tr>
......@@ -43,13 +43,13 @@
<!--{if !isset($clbpara['console'])}-->
<!--<div style="position:relative; height:100%; width:100%;">
<div class="blurtext">-->
<table border="1" cellspacing="0" cellpadding="0" style="position:relative;">
<table cellspacing="0" cellpadding="0" style="position:relative;">
<tr width="120" height="328" rowspan="7" class="map">
<td colspan="2" width="120" height="328" class="lockmap"></td>
</tr>
</table>
<!--{else}-->
<table border="1" cellspacing="0" cellpadding="0" style="position:relative;">
<table cellspacing="0" cellpadding="0" style="position:relative;border-radius: 3px; border:2px solid rgba(225, 124, 226, 0.2);">
<tr>
<TD colspan="2" class=b1 style="width: 120px; height: 24px;">可用信道</TD>
</tr>
......
......@@ -24,8 +24,20 @@
<!--{loop $atype $tid $tarr}-->
<tr>
<td>
<div class="subtitle" align="left">{$tarr['name']}</div>
<div style="margin-left: 6px;" align="left">{$tarr['desc']}</div>
<div class="subtitle" align="left">
{$tarr['name']}
</div>
<div style="margin-left: 6px;" align="left">
<!--{if ($tid == 'daily' && $curuser) }-->
<!--{if $reset_daily_flag}-->
{$reset_daily_flag}
<!--{elseif !isset($_REQUEST["action"])}-->
<button type="button" onclick="window.location.href='user_profile.php?action=refdaily';this.disabled=true">点击获得新的每日挑战</button>
<!--{/if}-->
<br>
<!--{/if}-->
{$tarr['desc']}
</div>
</td>
</tr>
<tr>
......@@ -43,7 +55,6 @@
<!--{else}-->
<td width="300" align="left" valign="top">
<div class="ach_box" align="left" valign="top">
<!--成就编号{$aid}加载错误。<br>请联系管理员。-->
<!--{eval include template('achievement_temp');}-->
</div>
</td>
......
......@@ -39,12 +39,28 @@ $winning_rate=$validgames?round($wingames/$validgames*100)."%":'0%';
include_once GAME_ROOT.'./include/game/achievement.func.php';
$ach=$udata['achievement'];
$n=$udata['username'];
//本人访问账户页面时,初始化每日任务相关参数
if($curuser)
{
$dailyarr = check_daily_achievement($n);
if(isset($_REQUEST["action"]) && $_REQUEST["action"]=="refdaily" && !$dailyarr[0])
{
$dailyarr = reset_daily_achievement($n);
}
if($dailyarr[0])
{
list($min,$hour,$day,$month,$year)=explode(',',date("i,H,j,n,Y",$dailyarr[0]));
$reset_daily_flag = $year."年".$month."月".$day."日".$hour."时".$min."分";
$reset_daily_flag = "<span class=\"yellow\">下次可获取每日挑战时间:".$reset_daily_flag."</span>";
}
$dailyarr = $dailyarr[1];
}
//访问它人账户页面时,只显示获取过的每日任务
else
{
$dailyarr = check_daily_achievement($n,1);
}
if(!empty($udata['achrev'])) $udata['achrev'] = json_decode($udata['achrev'],true);
/*if (!valid_achievement($ach)) {
$ach=init_achievement($ach);
$db->query("UPDATE {$tablepre}users SET achievement='$ach' WHERE username='$n'" );
}*/ //已废弃
// 访问账户页面时,检查是否需要转化新版成就数据结构
if(!empty($udata['achievement']) && empty($udata['achrev']))
{
......@@ -83,21 +99,12 @@ if(!empty($udata['achievement']) && empty($udata['achrev']))
$db->query("UPDATE {$tablepre}users SET achrev='$new_ach' WHERE username='".$udata['username']."'" );
$cpl = Array(); $prc = Array();
}
//解析成就的完成情况//已废弃
/*global $achievement_count;
require config("gamecfg",$gamecfg);
for ($i=0; $i<$achievement_count; $i++)
{
$cpl[$i]=check_achievement($i,$n);
$prc[$i]=fetch_achievement($i,$n);
//$ncp[$i]['s'] = $cpl[$i];
//$ncp[$i]['v'] = $prc[$i];
}*/
//$ncp = json_encode($ncp);
//$db->query("UPDATE {$tablepre}users SET achrev='$ncp' WHERE username='$n'" );
//解析成就的完成情况
$alist = get_achlist();
$atype = get_achtype();
$h_atype = get_hidden_achtype();
//判断是否存在每日任务
$atype['daily']['ach'] = empty($dailyarr[0]) ? Array() : $dailyarr;
foreach($alist as $aid => $arr)
{
$cpl[$aid] = isset($udata['achrev'][$aid]['l']) ? $udata['achrev'][$aid]['l'] : 0;
......@@ -105,5 +112,12 @@ foreach($alist as $aid => $arr)
if(isset($alist[$aid]['lvl']) && $cpl[$aid] == $alist[$aid]['lvl']) $cpl[$aid] = 999;
$prc[$aid] = isset($udata['achrev'][$aid]['v']) ? $udata['achrev'][$aid]['v'] : 0;
}
//判断是否存在完成的隐藏成就
foreach($h_atype as $hid => $htype)
{
if($cpl[$hid] == 999) $atype[$htype]['ach'][] = $hid;
}
include template('user_profile');
......@@ -290,6 +290,11 @@ if($mode == 'enter') {
{
if(isset($$key)) $ndata[$key] = $$key;
}
# 初始化套装信息
include_once GAME_ROOT.'./include/game/itemmain.func.php';
reload_set_items($ndata);
$ndata = player_format_with_db_structure($ndata);
if(!empty($ndata)) $db->array_insert("{$tablepre}players", $ndata);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment