Commit 63921e65 authored by Nemo Ma's avatar Nemo Ma Committed by GitHub

Merge pull request #58 from hikawiier/waaagh

rev achievement phase 0.997
parents 0906223f dd51ab34
......@@ -26,7 +26,7 @@ $ach_type = Array
'name' => '合成成就',
'desc' => '<font color="olive">这里是与合成各种物品相关的成就。<br>
如果看合成表觉得麻烦,只以这些物品为目标似乎也不错。<br></font>',
'ach' => Array(0,14,15,33,35,36,37,38,39,40,41,42,43,44,45,46,47,48),
'ach' => Array(0,14,15,49,33,50,51,52,35,36,37,38,39,40,41,42,43,44,45,46,47,48),
),
'lifetime' => Array(
'name' => '生涯成就',
......@@ -38,7 +38,7 @@ $ach_type = Array
'name' => '挑战成就',
'desc' => '<font color="olive">这里是与特定游戏中挑战相关的成就。<br>
虽然颇为浮云,但毕竟山就在那里。<br></font>',
'ach' => Array(1,28,31,32,49,50,51,52,255),
'ach' => Array(1,200,201,28,202,203,204,205,206,207,31,32,255),
),
);
......@@ -81,13 +81,6 @@ $ach_list = Array
'合成物品【KEY系催泪弹】30次',
),
),
1 => Array(
'lvl' => 1,
'name' => Array('清水池之王','清水池之王'),
'title' => Array('KEY男'),
'c1' => Array(30),
'c2' => Array(16),
),
3 => Array(
'lvl' => 3,
'name' => Array('脚本小子','黑客','幻境解离者?'),
......@@ -227,13 +220,6 @@ $ach_list = Array
'c1' => Array(0,300,500),
'c2' => Array(10,0,0),
),
28 => Array(
'lvl' => 1,
'name' => Array('烈火疾风'),
'title' => Array('神触'),
'c1' => Array(250),
'c2' => Array(0),
),
29 => Array(
'lvl' => 3,
'name' => Array('及时补给','衣食无忧','奥义很爽'),
......@@ -248,20 +234,7 @@ $ach_list = Array
'c1' => Array(0,0,0),
'c2' => Array(5,50,200),
),
31 => Array(
'lvl' => 1,
'name' => Array('Return to Sender'),
'title' => Array('R.T.S'),
'c1' => Array(0),
'c2' => Array(0),
),
32 => Array(
'lvl' => 2,
'name' => Array('0xFFFFFFFFFFFFFFFF','kernel on chessboard'),
'title' => Array('LOOP'),
'c1' => Array(0),
'c2' => Array(0),
),
33 => Array(
'lvl' => 1,
'name' => Array('诅咒之刃'),
......@@ -367,34 +340,6 @@ $ach_list = Array
'c1' => Array(0,100,350),
'c2' => Array(10,0,0),
),
49 => Array(
'lvl' => 3,
'name' => Array('超级KEY爱好者','键·四季赞歌'),
'title' => Array('','键·四季赞歌'),
'c1' => Array(0,700),
'c2' => Array(100,0),
),
50 => Array(
'lvl' => 2,
'name' => Array('人,能够挑战神吗?','★一发逆转!★'),
'title' => Array('','★一发逆转!★'),
'c1' => Array(0,700),
'c2' => Array(100,0),
),
51 => Array(
'lvl' => 2,
'name' => Array('究极的灵魂','『EX』'),
'title' => Array('','『EX』'),
'c1' => Array(0,700),
'c2' => Array(100,0),
),
52 => Array(
'lvl' => 2,
'name' => Array('真正的决斗者','◎胜利之光◎'),
'title' => Array('','『EX』'),
'c1' => Array(0,700),
'c2' => Array(100,0),
),
53 => Array(
'lvl' => 3,
'name' => Array('来打钉子吧!','棍棒爱好者','无情打钉者'),
......@@ -660,7 +605,7 @@ $ach_list = Array
# 击杀从福袋中开出稀有道具的玩家
69 => Array(
'lvl' => 3,
'name' => Array('?','海豹?','欧鳇?'),
'name' => Array('?','海豹?','欧鳇?'),
'title' => Array('','海豹杀手','上帝之鞭'),
'c1' => Array(233,234,235),
'c2' => Array(0,0,0),
......@@ -670,6 +615,191 @@ $ach_list = Array
'在入场时间更晚的情况下,击杀13位<span class="sienna">从福袋中开出SSR物品</span>的活跃玩家',
),
),
# 合成成就
# 合成春雨夏海 > 这个应该挪到合成成就里
49 => Array(
'lvl' => 3,
'name' => Array('超级KEY爱好者','键·四季赞歌'),
'title' => Array('','键·四季赞歌'),
'c1' => Array(0,700),
'c2' => Array(100,0),
'desc' => Array(
'合成物品【春雨夏海,秋叶冬雪】1次',
'合成物品【春雨夏海,秋叶冬雪】7次',
),
),
# 合成一发逆转神话 > 同上
50 => Array(
'lvl' => 2,
'name' => Array('人,能够挑战神吗?','★一发逆转!★'),
'title' => Array('','★一发逆转!★'),
'c1' => Array(0,700),
'c2' => Array(100,0),
'desc' => Array(
'合成物品★一发逆转神话★1次',
'合成物品★一发逆转神话★7次',
),
),
# 合成EX 你们都挤在挑战里干什么??
51 => Array(
'lvl' => 2,
'name' => Array('究极的灵魂','『EX』'),
'title' => Array('','『EX』'),
'c1' => Array(0,700),
'c2' => Array(100,0),
'desc' => Array(
'合成物品模式『EX』1次',
'合成物品模式『EX』7次',
),
),
# 合成光之创造神 ……
52 => Array(
'lvl' => 2,
'name' => Array('真正的决斗者','◎胜利之光◎'),
'title' => Array('','『EX』'),
'c1' => Array(0,700),
'c2' => Array(100,0),
'desc' => Array(
'合成物品◎光之创造神◎1次',
'合成物品◎光之创造神◎7次',
),
),
# 挑战成就
# key男
1 => Array(
'lvl' => 1,
'name' => Array('清水池之王','清水池之王'),
'request' => Array('最快速度:[:request:]秒'),
'title' => Array('KEY男'),
'c1' => Array(30),
'c2' => Array(16),
'desc' => Array(
'在开局<span class="sienna">5分钟内</span>合成【KEY系催泪弹】',
),
),
# 开局15分钟内合成贤者之石
200 => Array(
'lvl' => 1,
'name' => Array('不动的大图书馆'),
'request' => Array('最快速度:[:request:]秒'),
'title' => Array('哲学家'),
'c1' => Array(0),
'c2' => Array(666),
'desc' => Array(
'在开局<span class="sienna">15分钟内</span>合成火水木金土符『贤者之石』',
),
),
# 开局7分钟内合成✦烈埋火
201 => Array(
'lvl' => 1,
'name' => Array('星星之火','滴水石穿'),
'request' => Array('最快速度:[:request:]秒'),
'title' => Array('铁头'),
'c1' => Array(0),
'c2' => Array(666),
'desc' => Array(
'在开局<span class="sienna">7分钟内</span>合成✦烈埋火',
),
),
# 神触
28 => Array(
'lvl' => 1,
'name' => Array('烈火疾风',),
'request' => Array('最快速度:[:request:]秒'),
'title' => Array('神触'),
'c1' => Array(250),
'c2' => Array(0),
'desc' => Array(
'在开局<span class="sienna">30分钟内</span>开启死斗模式',
),
),
# 开局25分钟内达成锁定解除
202 => Array(
'lvl' => 1,
'name' => Array('锁孔','穿越无钥之门'),
'request' => Array('最快速度:[:request:]秒'),
'title' => Array('银之键'),
'c1' => Array(0),
'c2' => Array(1024),
'desc' => Array(
'在开局<span class="sienna">25分钟内</span>达成结局:锁定解除',
),
),
# 开局55分钟内达成幻境解离
203 => Array(
'lvl' => 1,
'name' => Array('宛如梦幻','幻境旅者'),
'request' => Array('最快速度:[:request:]秒'),
'title' => Array('前向星'),
'c1' => Array(0),
'c2' => Array(4096),
'desc' => Array(
'在开局<span class="sienna">55分钟内</span>达成结局:幻境解离',
),
),
# 使用混沌武器打满伤害
204 => Array(
'lvl' => 1,
'name' => Array('混沌的宠儿','随机数之神的庇佑'),
'title' => Array('四面骰'),
'c1' => Array(0),
'c2' => Array(444),
'desc' => Array(
'使用带有<span class="sienna">混沌属性</span>的武器攻击时,造成1次满额伤害',
),
),
# 一击承受超过一百万伤害
205 => Array(
'lvl' => 1,
'name' => Array('磁场高手','磁场颠佬'),
'request' => Array('承受最多伤害:[:request:]点'),
'title' => Array('大只佬'),
'c1' => Array(0),
'c2' => Array(1919),
'desc' => Array(
'在战斗中一次性受到超过<span class="sienna">1000000</span>点伤害',
),
),
# 不使用合成/元素合成达成锁定解除/幻境解离结局
206 => Array(
'lvl' => 1,
'name' => Array('你是怎么做到的?'),
'title' => Array('草木飞花'),
'c1' => Array(7777),
'c2' => Array(0),
'desc' => Array(
'不使用<span class="sienna">合成/元素合成/队伍</span>功能<br>达成结局:锁定解除 或 幻境解离',
),
),
# 不击杀小兵/种火达成锁定解除结局
207 => Array(
'lvl' => 1,
'name' => Array('这是人能做到的吗?'),
'title' => Array('手下留情'),
'c1' => Array(0),
'c2' => Array(7777),
'desc' => 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,
'name' => Array('0xFFFFFFFFFFFFFFFF','kernel on chessboard'),
'title' => Array('LOOP'),
'c1' => Array(0),
'c2' => Array(0),
),
);
//Hi
?>
\ No newline at end of file
......@@ -9,6 +9,7 @@ CREATE TABLE bra_players (
type tinyint NOT NULL default '0',
name char(40) not null default '',
pass char(32) NOT NULL default '',
ip char(15) NOT NULL DEFAULT '',
gd char(1) NOT NULL default 'm',
race char(32) NOT NULL default '0',
sNo smallint unsigned NOT NULL default '0',
......
......@@ -115,6 +115,55 @@ function done_achievement_rev($which,$ch,$who)
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;
//1. 快速KEY弹成就
if ($item=="【KEY系催泪弹】")
{
$timeused=$now-$starttime; $besttime=(int)fetch_achievement_rev(1,$nn);
if ($timeused<$besttime || $besttime==0) update_achievement_rev(1,$nn,$timeused);
if (!check_achievement_rev(1,$nn) && $timeused<=300) {
done_achievement_rev(1,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+30 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+16 WHERE username='".$nn."'" );
get_title("KEY男",$nn);
}
}
//200.快速贤者成就
if ($item=="火水木金土符『贤者之石』")
{
$aid = 200;
$alvl = check_achievement_rev($aid,$nn);$achlist = get_achlist($aid);
// 检查最快时长
$timeused=$now-$starttime; $avars = fetch_achievement_rev($aid,$nn);
if(empty($avars) || $timeused < $avars) update_achievement_rev($aid,$nn,$timeused);
// 检查是否满足条件进入下一阶段
while(!$alvl && $timeused <= 900)
{
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);
}
}
//201.快速✦烈埋火成就
if ($item=="✦烈埋火")
{
$aid = 201;
$alvl = check_achievement_rev($aid,$nn);$achlist = get_achlist($aid);
// 检查最快时长
$timeused=$now-$starttime; $avars = fetch_achievement_rev($aid,$nn);
if(empty($avars) || $timeused < $avars) update_achievement_rev($aid,$nn,$timeused);
// 检查是否满足条件进入下一阶段
while(!$alvl && $timeused <= 420)
{
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);
}
}
//0. KEY弹成就
if ($item=="【KEY系催泪弹】")
{
......@@ -139,19 +188,6 @@ function check_mixitem_achievement_rev($nn,$item)
done_achievement_rev(0,1,$nn);
}
}
//1. 快速KEY弹成就
if ($item=="【KEY系催泪弹】")
{
$timeused=$now-$starttime; $besttime=(int)fetch_achievement_rev(1,$nn);
if ($timeused<$besttime || $besttime==0) update_achievement_rev(1,$nn,$timeused);
if (!check_achievement_rev(1,$nn) && $timeused<=300) {
done_achievement_rev(1,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+30 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+16 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("KEY男",$nn);
}
}
//14. 燃烧弹成就
if ($item=="【KEY系燃烧弹】")
{
......@@ -616,6 +652,10 @@ function check_mixitem_achievement_rev($nn,$item)
done_achievement_rev(52,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."'" );
return;
}
//新版结局成就检测机制:加入团队胜利兼容
......@@ -626,6 +666,7 @@ function check_end_achievement_rev($w,$m,$data='')
include_once GAME_ROOT.'./include/game/titles.func.php';
$done = 0;
$data['clbpara'] = get_clbpara($data['clbpara']);
//16. 最后幸存成就
if ($m==2)
......@@ -649,6 +690,7 @@ function check_end_achievement_rev($w,$m,$data='')
}
// 阶段有所变化时,增加阶段次数
if($done) done_achievement_rev($aid,$alvl,$w);
$done = 0;
}
//17. 核爆全灭成就
if ($m==5)
......@@ -669,6 +711,7 @@ function check_end_achievement_rev($w,$m,$data='')
$alvl ++;
}
if($done) done_achievement_rev($aid,$alvl,$w);
$done = 0;
}
//18. 锁定解除成就
if ($m==3)
......@@ -689,6 +732,68 @@ function check_end_achievement_rev($w,$m,$data='')
$alvl ++;
}
if($done) done_achievement_rev($aid,$alvl,$w);
$done = 0;
}
//202. 25分钟内解禁挑战(仅个人可完成)
if ($m==3 && !empty($data))
{
$aid = 202;
$alvl = check_achievement_rev($aid,$w);
$achlist = get_achlist($aid);
// 检查最快时长
$timeused=$now-$starttime;
$avars = fetch_achievement_rev($aid,$w);
if(empty($avars) || $timeused < $avars) update_achievement_rev($aid,$w,$timeused);
// 检查是否满足条件进入下一阶段
while(!$alvl && $timeused <= 1500)
{
$done = 1;
if(!empty($achlist['title'][$alvl])) get_title($achlist['title'][$alvl],$w);
$c1 += $achlist['c1'][$alvl]; $c2 += $achlist['c2'][$alvl];
$alvl ++;
}
if($done) done_achievement_rev($aid,$alvl,$w);
$done = 0;
}
//206. 不使用合成/元素合成达成锁定解除/幻境解离结局
if (!empty($data) && empty($data['clbpara']['achvars']['immix']) && empty($data['clbpara']['achvars']['team']) && ($m==3 || $m==7))
{
$aid = 206;
$alvl = check_achievement_rev($aid,$w);
$achlist = get_achlist($aid);
// 增加一次完成次数
$avars = fetch_achievement_rev($aid,$w)+1;
update_achievement_rev($aid,$w,$avars);
// 检查是否满足条件进入下一阶段
while(!$alvl)
{
$done = 1;
if(!empty($achlist['title'][$alvl])) get_title($achlist['title'][$alvl],$w);
$c1 += $achlist['c1'][$alvl]; $c2 += $achlist['c2'][$alvl];
$alvl ++;
}
if($done) done_achievement_rev($aid,$alvl,$w);
$done = 0;
}
//207. 不击杀小兵/种火达成锁定解除结局
if (!empty($data) && empty($data['clbpara']['achvars']['kill_minion']) && ($m==3 || $m==7))
{
$aid = 207;
$alvl = check_achievement_rev($aid,$w);
$achlist = get_achlist($aid);
// 增加一次完成次数
$avars = fetch_achievement_rev($aid,$w)+1;
update_achievement_rev($aid,$w,$avars);
// 检查是否满足条件进入下一阶段
while(!$alvl)
{
$done = 1;
if(!empty($achlist['title'][$alvl])) get_title($achlist['title'][$alvl],$w);
$c1 += $achlist['c1'][$alvl]; $c2 += $achlist['c2'][$alvl];
$alvl ++;
}
if($done) done_achievement_rev($aid,$alvl,$w);
$done = 0;
}
//19. 幻境解离成就
if ($m==7)
......@@ -709,6 +814,28 @@ function check_end_achievement_rev($w,$m,$data='')
$alvl ++;
}
if($done) done_achievement_rev($aid,$alvl,$w);
$done = 0;
}
//203. 55分钟内解离挑战(仅个人可完成)
if ($m==7 && !empty($data))
{
$aid = 203;
$alvl = check_achievement_rev($aid,$w);
$achlist = get_achlist($aid);
// 检查最快时长
$timeused=$now-$starttime;
$avars = fetch_achievement_rev($aid,$w);
if(empty($avars) || $timeused < $avars) update_achievement_rev($aid,$w,$timeused);
// 检查是否满足条件进入下一阶段
while(!$alvl && $timeused <= 3300)
{
$done = 1;
if(!empty($achlist['title'][$alvl])) get_title($achlist['title'][$alvl],$w);
$c1 += $achlist['c1'][$alvl]; $c2 += $achlist['c2'][$alvl];
$alvl ++;
}
if($done) done_achievement_rev($aid,$alvl,$w);
$done = 0;
}
//新版成就切糕、积分结算汇总到此
if(!empty($c1)) $db->query("UPDATE {$tablepre}users SET credits=credits+$c1 WHERE username='".$w."'" );
......@@ -721,12 +848,15 @@ function check_end_achievement_rev($w,$m,$data='')
function check_battle_achievement_rev($pa,$pd)
{
global $gamestate,$gamecfg,$db,$tablepre;
include_once GAME_ROOT.'./include/game/titles.func.php';
// 旧版成就参数兼容
$is_npc = $pd['type'] ? 1 : 0;
$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;
# 击杀玩家成就
if (!$is_npc && $pd['name'] != $nn)
......@@ -897,8 +1027,8 @@ function check_battle_achievement_rev($pa,$pd)
$done = 0;
}
// 67.击杀使用过破灭之诗的玩家
if(!empty($pd['clbpara']['achvars']['thiphase']))
// 67.击杀使用过破灭之诗的活跃玩家
if(!empty($pd['clbpara']['achvars']['thiphase']) && $is_tplayer)
{
$aid = 67;
$alvl = check_achievement_rev($aid,$nn);
......@@ -933,8 +1063,8 @@ function check_battle_achievement_rev($pa,$pd)
$done = 0;
}
// 68.击杀女主后 击杀其他摸过女主尸体的玩家
if(!empty($pa['clbpara']['achvars']['kill_n14']) && !empty($pd['clbpara']['achvars']['corpse_n14']))
// 68.击杀女主后 击杀其他摸过女主尸体的活跃玩家
if(!empty($pa['clbpara']['achvars']['kill_n14']) && !empty($pd['clbpara']['achvars']['corpse_n14']) && $is_tplayer)
{
$aid = 68;
$alvl = check_achievement_rev($aid,$nn);
......@@ -955,7 +1085,7 @@ function check_battle_achievement_rev($pa,$pd)
}
// 69.打海豹
if(!empty($pd['clbpara']['achvars']['gacha_sr']) || !empty($pd['clbpara']['achvars']['gacha_ssr']))
if((!empty($pd['clbpara']['achvars']['gacha_sr']) || !empty($pd['clbpara']['achvars']['gacha_ssr'])) && $is_tplayer)
{
$aid = 69;
$alvl = check_achievement_rev($aid,$nn);
......@@ -1230,6 +1360,7 @@ function check_battle_achievement_rev($pa,$pd)
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';
//解禁相关
if ($i == "游戏解除钥匙")
......@@ -1442,6 +1573,64 @@ function check_item_achievement_rev($nn,$i,$ie,$is,$ik,$isk)
}
}
function check_misc_achievement_rev($pa,$pd)
{
global $gamestate,$gamecfg,$db,$tablepre;
include_once GAME_ROOT.'./include/game/titles.func.php';
$done = 0;
// 旧版成就参数兼容
$is_player = $pa['type'] ? 0 : 1;
$nn = $pa['name'];
// 判断是否为活跃玩家:暂时只要IP不一样就算活跃玩家
$is_tplayer = $pa['ip'] == $pd['ip'] ? 0 : 1;
# 防呆:只会检查玩家成就完成情况
if ($is_player)
{
// 204.混沌伤害打满成就
if(!empty($pa['clbpara']['achvars']['full_chaosdmg']))
{
$aid = 204;
$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);
}
}
// 205.一击承受百万伤害成就
if(!empty($pa['clbpara']['achvars']['takedmg']) && $pa['clbpara']['achvars']['takedmg'] >= 1000000)
{
$aid = 205;
$alvl = check_achievement_rev($aid,$nn);
$achlist = get_achlist($aid);
// 检查历史最高伤害
$nowvars = $pa['clbpara']['achvars']['takedmg']; $avars = fetch_achievement_rev($aid,$nn);
if($nowvars > $avars) update_achievement_rev($aid,$nn,$nowvars);
// 检查是否完成成就
while(!$alvl)
{
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);
}
}
}
//新版成就切糕、积分结算汇总到此
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;
}
/**** 以下为旧版成就相关函数 ****/
function valid_achievement($s)
......
......@@ -428,7 +428,7 @@
global $now,$name,$log,$iteminfo,$itemspkinfo,$elements_info;
global $no_emix_circulation;
global $emix_luck_info,$emix_tips_arr,$emix_name_brackets_arr,$emix_name_prefix_arr,$emix_name_meta_arr,$emix_name_tail_arr;
global $itm0,$itmk0,$itme0,$itms0,$itmsk0;
global $itm0,$itmk0,$itme0,$itms0,$itmsk0,$clbpara;
if(!$emlist)
{
......@@ -436,6 +436,9 @@
return;
}
//尝试合成时 合成操作计数+1
if(empty($clbpara['achvars']['immix'])) $clbpara['achvars']['immix'] = 1;
//输入了合法的元素参数,先初始化一些变量。
$c_times = 0; $total_enum = 0; $dom_ekey = -1; $dom_enum = -1; $multi_dom_ekey = Array(); $emix_flag = NULL; $emix_fix = NULL;
//自定义效/耐比的阈值:2%~98%
......
......@@ -543,7 +543,7 @@ function itemmerge($itn1,$itn2){
$syncn=$synck=$synce=$syncs=$syncsk=Array();
function itemmix($mlist, $itemselect=-1) {
global $log,$mode,$gamecfg,$name,$nosta,$gd,$name,$nick;
global $itm1,$itm2,$itm3,$itm4,$itm5,$itm6,$itms1,$itms2,$itms3,$itms4,$itms5,$itms6,$itme1,$itme2,$itme3,$itme4,$itme5,$itme6,$club,$wd;
global $itm1,$itm2,$itm3,$itm4,$itm5,$itm6,$itms1,$itms2,$itms3,$itms4,$itms5,$itms6,$itme1,$itme2,$itme3,$itme4,$itme5,$itme6,$club,$clbpara,$wd;
global $itmk1,$itmk2,$itmk3,$itmk4,$itmk5,$itmk6,$itmsk1,$itmsk2,$itmsk3,$itmsk4,$itmsk5,$itmsk6;
global $syncn,$synck,$synce,$syncs,$syncsk,$sync,$reqname,$star;
global $cmd;
......@@ -558,6 +558,10 @@ function itemmix($mlist, $itemselect=-1) {
$mode = 'itemmix';
return;
}
//尝试合成时 合成操作计数+1
if(empty($clbpara['achvars']['immix'])) $clbpara['achvars']['immix'] = 1;
$issyncro=false;
$isntsyn=false;
$isoverlay=false;
......
......@@ -472,8 +472,9 @@
{
$maxdmg = $pd['mhp'] > $pa['wepe'] ? $pa['wepe'] : $pd['mhp'];
$damage = rand(1,$maxdmg);
global $log;
$log .= "武器随机造成了<span class=\"red\">$damage</span>点伤害!<br>";
// 混沌伤害打满时 保存至成就
if($damage == $maxdmg) $pa['clbpara']['achvars']['full_chaosdmg'] = 1;
return $damage;
}
......@@ -1579,6 +1580,9 @@
}
}
# 将pa造成的伤害记录在pd的成就里
if(!$pd['type'] && $pa['final_damage'] >= 1000000) $pd['clbpara']['achvars']['takedmg'] = $pa['final_damage'];
return;
}
......
......@@ -422,6 +422,11 @@
player_save($pa); player_save($pd);
}
# 检查战斗中出现的杂项成就
include_once GAME_ROOT.'./include/game/achievement.func.php';
if(!$pa['type']) check_misc_achievement_rev($pa,$pd);
if(!$pd['type']) check_misc_achievement_rev($pd,$pa);
# 刷新玩家状态
if(!$sdata['type']) player_load($sdata);
# 主视角不是玩家,可能是玩家召唤的NPC帮手。将身上的印记传给玩家。
......@@ -1006,6 +1011,9 @@
# 保存击杀女主的记录
if($pd['type'] == 14) $pa['clbpara']['achvars']['kill_n14'] += 1;
# 保存击杀种火或小兵的记录
if(empty($pa['clbpara']['achvars']['kill_minion']) && ($pd['type'] == 90 || $pd['type'] == 91 || $pd['type'] == 92)) $pa['clbpara']['achvars']['kill_minion'] = 1;
# 快递被劫事件:
if(isset($pd['clbpara']['post']))
{
......
......@@ -25,7 +25,7 @@ function teamcheck() {
}
function teammake($tID,$tPass) {
global $log,$mode,$teamID,$teamPass,$db,$tablepre,$noitm,$sp,$team_sp,$now,$name,$gamestate,$nick;
global $log,$mode,$teamID,$teamPass,$db,$tablepre,$noitm,$sp,$team_sp,$now,$name,$gamestate,$nick,$clbpara;
if($gamestate >= 40) {
$log .= '连斗时不能组建队伍。<br>';
$mode = 'command';
......@@ -58,6 +58,10 @@ function teammake($tID,$tPass) {
} elseif($sp <= $team_sp) {
$log .= '体力不足,不能创建队伍。至少需要<span class="yellow">'.$team_sp.'</span>点体力。<br>';
} else {
//创建队伍时,队伍计数+1
if(empty($clbpara['achvars']['team'])) $clbpara['achvars']['team'] = 1;
$result = $db->query("SELECT pid FROM {$tablepre}players WHERE teamID='$tID'");
if($db->num_rows($result)){
$log .= '队伍<span class="yellow">'.$tID.'</span>已经存在,请更换队伍名。<br>';
......@@ -78,7 +82,7 @@ function teammake($tID,$tPass) {
}
function teamjoin($tID,$tPass) {
global $log,$mode,$teamID,$teamPass,$db,$tablepre,$noitm,$sp,$team_sp,$teamj_sp,$now,$name,$teamlimit,$gamestate;
global $log,$mode,$teamID,$teamPass,$db,$tablepre,$noitm,$sp,$team_sp,$teamj_sp,$now,$name,$teamlimit,$gamestate,$clbpara;
if($gamestate >= 40) {
$log .= '连斗时不能加入队伍。<br>';
$mode = 'command';
......@@ -110,6 +114,10 @@ function teamjoin($tID,$tPass) {
} elseif($sp <= $teamj_sp) {
$log .= '体力不足,不能加入队伍。至少需要<span class="yellow">'.$teamj_sp.'</span>点体力。<br>';
} else {
//加入队伍时,队伍计数+1
if(empty($clbpara['achvars']['team'])) $clbpara['achvars']['team'] = 1;
$result = $db->query("SELECT teamPass FROM {$tablepre}players WHERE teamID='$tID'");
if(!$db->num_rows($result)){
$log .= '队伍<span class="yellow">'.$tID.'</span>不存在,请先创建队伍。<br>';
......
......@@ -32,6 +32,8 @@
<!--{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']) }-->
......@@ -48,6 +50,9 @@
<!--{if !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]) }-->
<!--{eval $areq = $alist[$aid]['request'][$rlvl]; $areq = str_replace("[:request:]",$prc[$aid],$areq);}-->
{$areq}
<!--{elseif $alvl == $alist[$aid]['lvl']}-->
达成次数:{$prc[$aid]}次
<!--{else}-->
......
......@@ -65,7 +65,8 @@ if($mode == 'enter') {
$cpl = Array(); $prc = Array();
}
$ip = real_ip();
//$ip = real_ip();
$ip = $udata['ip'];
$db->query("UPDATE {$tablepre}users SET gender='$gender', nick='$nick', icon='$icon', motto='$motto', killmsg='$killmsg', lastword='$lastword' WHERE username='".$udata['username']."'" );
if($validnum >= $validlimit) {
gexit($_ERROR['player_limit'],__file__, __line__);
......@@ -77,7 +78,6 @@ if($mode == 'enter') {
if ($gender !== 'm' && $gender !== 'f'){
$gender = 'm';
}
$validnum++;
$alivenum++;
$name = $cuser;
......
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