Commit 9b06ccd1 authored by Nemo Ma's avatar Nemo Ma Committed by GitHub

Merge pull request #56 from hikawiier/waaagh

rev achievement phase 0.8
parents 35c0db81 6d5d0a17
<?php
if(!defined('IN_GAME')) exit('Access Denied');
# 成就大类列表:
$ach_type = Array
(
'end' => Array(
'name' => '结局成就',
'desc' => '<font color="olive">这里是与游戏结局相关的成就。<br>
虽说有些看起来帮助中没提到,但找寻它们也正是这游戏的醍醐味之一。<br></font>',
'ach' => Array(16,34,17,18,19),
//'ach' => Array(16,34,17,18,100,101,102,19),
),
'battle' => Array(
'name' => '战斗成就',
'desc' => '<font color="olive">这里是与击破特定NPC相关的成就。<br>
打倒他们来证明自己吧!<br></font>',
'ach' => Array(4,13,22,23,25,20,21,24,26,56,57,255),
),
'mixitem' => 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),
),
'lifetime' => Array(
'name' => '生涯成就',
'desc' => '<font color="olive">这里是记录了你在这个游戏中的积累相关的成就。<br>
呜呼——玩家们出发了……<br></font>',
'ach' => Array(2,3,27,29,30,53,54,55,255),
),
'challenge' => Array(
'name' => '挑战成就',
'desc' => '<font color="olive">这里是与特定游戏中挑战相关的成就。<br>
虽然颇为浮云,但毕竟山就在那里。<br></font>',
'ach' => Array(1,28,31,32,49,50,51,52,255),
),
);
# 成就登记列表:
$ach_list = Array
(
/*'example' => Array(
//成就完成时所处阶段(必填)
'lvl' => 3,
//这是一个隐藏成就吗?(隐藏成就在完成前不会显示在成就界面内)
'hidden' => 0,
//各阶段成就名(必填)(PS:完成阶段名可填可不填,填了会显示,不填会显示前一个阶段的名字)
'name' => Array('阶段0名','阶段1名','阶段2名','阶段完成'),
//各阶段状态名(选填,不填此项会应用默认状态名)
'lvlname' => Array('<span class="red">[未完成]</span>','<span class="clan">[进行中]</span>','<span class="clan">[进行中]</span>','<span class="lime">[完成]</span>'),
//各阶段用来显示完成情况的描述文本(选填,不填此项会应用默认完成情况描述)
'request' => Array('目前进度:[:request:]点','目前进度:[:request:]点','目前进度:[:request:]点','完成次数:[:request:]次',),
//各阶段头衔奖励(必填,无头衔奖励使用''占位)
'title' => Array('完成阶段0头衔奖励','完成阶段1头衔奖励','完成阶段2头衔奖励'),
//各阶段积分奖励(必填,无积分奖励使用''占位)
'c1' => Array(1,100,250,250),
//各阶段切糕奖励(必填,无切糕奖励使用''占位)
'c2' => Array(10,0,0,0),
//各阶段成就简介(必填)
'desc' => Array(
'这是模板成就的阶段0',
'这是模板成就的阶段1',
'这是模板成就的阶段2',
),
),*/
0 => Array(
# 成就各阶段名称
'lvl' => 3,
'name' => Array('永恒世界的住人','幻想世界的往人','永恒的覆唱'),
# 达成阶段成就的头衔奖励
'title' => Array('','幻想','流星'),
# 达成阶段成就的积分奖励
'c1' => Array(0,200,700),
# 达成阶段成就的切糕奖励
'c2' => Array(10,0,0),
'desc' => Array(
'合成物品【KEY系催泪弹】1次',
'合成物品【KEY系催泪弹】5次',
'合成物品【KEY系催泪弹】30次',
),
),
1 => Array(
'name' => Array('清水池之王'),
'lvl' => 1,
'name' => Array('清水池之王','清水池之王'),
'title' => Array('KEY男'),
'c1' => Array(30),
'c2' => Array(16),
),
2 => Array(
'lvl' => 3,
'name' => Array('Run With Wolves','Day Game','Thousand Enemies'),
'title' => Array('','二度打','G.D.M'),
'c1' => Array(10,500,0),
'c2' => Array(0,0,200),
),
3 => Array(
'lvl' => 3,
'name' => Array('脚本小子','黑客','幻境解离者?'),
'title' => Array('','黑客','最后一步'),
'c1' => Array(0,200,500),
'c2' => Array(5,0,15),
),
4 => Array(
'lvl' => 2,
'name' => Array('冒烟突火','红杀将军'),
'title' => Array('','越红者'),
'c1' => Array(50,0),
......@@ -88,276 +153,434 @@ $ach_list = Array
//'c2' => Array(30),
),
13 => Array(
'lvl' => 2,
'name' => Array('深度冻结','跨过彩虹'),
'title' => Array('','跨过彩虹'),
'c1' => Array(150,0),
'c2' => Array(250,0),
),
14 => Array(
'lvl' => 3,
'name' => Array('篝火的引导','世界的树形图','地=月'),
'title' => Array('','树形图','TERRA'),
'c1' => Array(0,200,700),
'c2' => Array(10,0,0),
),
15 => Array(
'lvl' => 3,
'name' => Array('不屈的生命','那种话最讨厌了','明亮的未来'),
'title' => Array('','素描本','未来战士'),
'c1' => Array(0,200,700),
'c2' => Array(10,0,0),
),
16 => Array(
'name' => Array('只是运气好而已'),
'lvl' => 1,
'name' => Array('最后幸存','只是运气好而已'),
'title' => Array('生存者'),
'c1' => Array(150),
'c2' => Array(0),
'desc' => Array(
'达成结局:最后幸存 1次',
),
),
17 => Array(
'name' => Array('麻烦制造机'),
'lvl' => 1,
'name' => Array('核爆全灭','麻烦制造机'),
'title' => Array('叶子钦定!'),
'c1' => Array(0),
'c2' => Array(100),
'desc' => Array(
'达成结局:核爆全灭 1次',
),
),
18 => Array(
'name' => Array('最后的荣光'),
'lvl' => 1,
'name' => Array('锁定解除','最后的荣光'),
'title' => Array('最后的荣光'),
'c1' => Array(500),
'c2' => Array(0),
'desc' => Array(
'<span tooltip="独自完成结局或与团队共同完成结局均可达成成就">参与达成结局:锁定解除 1次</span>',
),
),
19 => Array(
'name' => Array('奇迹的篝火'),
'lvl' => 1,
'name' => Array('幻境解离','奇迹的篝火'),
'title' => Array('奇迹的篝火'),
'c1' => Array(1000),
'c2' => Array(1000),
'desc' => Array(
'<span tooltip="独自完成结局或与团队共同完成结局均可达成成就">参与达成结局:幻境解离 1次</span>',
),
),
20 => Array(
'lvl' => 1,
'name' => Array('寻星急袭'),
'title' => Array('寻星者'),
'c1' => Array(268),
'c2' => Array(263),
),
21 => Array(
'lvl' => 1,
'name' => Array('权限【哔】的最期'),
'title' => Array('寂静洪流'),
'c1' => Array(233),
'c2' => Array(233),
),
22 => Array(
'lvl' => 1,
'name' => Array('233MAX'),
'title' => Array('l33t'),
'c1' => Array(2333),
'c2' => Array(0),
),
23 => Array(
'lvl' => 1,
'name' => Array('真名解放'),
'title' => Array('赌玉狂魔'),
'c1' => Array(0),
'c2' => Array(888),
),
24 => Array(
'lvl' => 1,
'name' => Array('逆推'),
'title' => Array('时代眼泪'),
'c1' => Array(211),
'c2' => Array(299),
),
25 => Array(
'lvl' => 1,
'name' => Array('一尸两命'),
'title' => Array('卸腿者'),
'c1' => Array(111),
'c2' => Array(333),
),
26 => Array(
'lvl' => 1,
'name' => Array('正直者之死'),
'title' => Array('吉祥物'),
'c1' => Array(1),
'c2' => Array(111),
),
27 => Array(
'lvl' => 3,
'name' => Array('秋后算账','报仇雪恨','血洗英灵殿'),
'title' => 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('及时补给','衣食无忧','奥义很爽'),
'title' => Array('','美食家','补给掠夺者'),
'c1' => Array(0,0,0),
'c2' => Array(5,50,200),
),
30 => Array(
'lvl' => 3,
'name' => Array('饥不择食','尝百草','吞食天地'),
'title' => 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('诅咒之刃'),
'title' => Array('剑圣'),
'c1' => Array(0),
'c2' => Array(522),
),
34 => Array(
'lvl' => 3,
'name' => Array('逃避可耻?','但它有用!','直面现实','逃脱大师'),
'title' => Array('实用主义者','现实主义者','脚底抹油'),
'c1' => Array(10,50,100),
'c2' => Array(5,50,200),
'desc' => Array(
'独自逃离幻境1次。',
'独自逃离幻境36次。',
'独自逃离幻境101次。',
),
),
35 => Array(
'lvl' => 3,
'name' => Array('试试看殴系吧!','热血的机师','殴系爱好者'),
'title' => Array('','热血机师','殴系爱好者'),
'c1' => Array(0,100,350),
'c2' => Array(10,0,0),
),
36 => Array(
'lvl' => 3,
'name' => Array('试试看斩系吧!','苍蓝之光','斩系爱好者'),
'title' => Array('','苍蓝之光','斩系爱好者'),
'c1' => Array(0,100,350),
'c2' => Array(10,0,0),
),
37 => Array(
'lvl' => 3,
'name' => Array('来精进斩系吧!','合二为一','钥刃大师'),
'title' => Array('','合二为一','钥刃大师'),
'c1' => Array(0,100,350),
'c2' => Array(10,0,0),
),
38 => Array(
'lvl' => 3,
'name' => Array('试试看射系吧!','勇闯仙境','射系爱好者'),
'title' => Array('','勇闯仙境','射系爱好者'),
'c1' => Array(0,100,350),
'c2' => Array(10,0,0),
),
39 => Array(
'lvl' => 3,
'name' => Array('试试看重枪吧!','黑洞边缘','重枪爱好者'),
'title' => Array('','黑洞边缘','重枪爱好者'),
'c1' => Array(0,100,350),
'c2' => Array(10,0,0),
),
40 => Array(
'lvl' => 3,
'name' => Array('试试看游戏王吧!','光的道路','决斗者'),
'title' => Array('','光的道路','决斗者'),
'c1' => Array(0,100,350),
'c2' => Array(10,0,0),
),
41 => Array(
'lvl' => 3,
'name' => Array('进行加速同调吧!','加速同调','聚集的祈愿'),
'title' => Array('','加速同调','聚集的祈愿'),
'c1' => Array(0,100,350),
'c2' => Array(10,0,0),
),
42 => Array(
'lvl' => 3,
'name' => Array('试试看投系吧!','平和之心','投系爱好者'),
'title' => Array('','平和之心','投系爱好者'),
'c1' => Array(0,100,350),
'c2' => Array(10,0,0),
),
43 => Array(
'lvl' => 3,
'name' => Array('试试看爆系吧!','红烧天堂','爆系爱好者'),
'title' => Array('','红烧天堂','爆系爱好者'),
'c1' => Array(0,100,350),
'c2' => Array(10,0,0),
),
44 => Array(
'lvl' => 3,
'name' => Array('来精进爆系吧!','★刷刷刷★','★啪啪啪★'),
'title' => Array('','★刷刷刷★','★啪啪啪★'),
'c1' => Array(0,100,350),
'c2' => Array(10,0,0),
),
45 => Array(
'lvl' => 3,
'name' => Array('试试看灵系吧!','皇家烈焰','灵系爱好者'),
'title' => Array('','皇家烈焰','灵系爱好者'),
'c1' => Array(0,100,350),
'c2' => Array(10,0,0),
),
46 => Array(
'lvl' => 3,
'name' => Array('来精进灵系吧!','五行大师','贤者之石'),
'title' => Array('','五行大师','贤者之石'),
'c1' => Array(0,100,350),
'c2' => Array(10),
),
47 => Array(
'lvl' => 3,
'name' => Array('知己知彼!','知地利','知人和'),
'title' => Array('','知地利','知人和'),
'c1' => Array(0,100,350),
'c2' => Array(10,0,0),
),
48 => Array(
'lvl' => 3,
'name' => Array('感受一下混沌吧!','混沌爱好者','混沌的深渊'),
'title' => 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('来打钉子吧!','棍棒爱好者','无情打钉者'),
'title' => Array('','棍棒爱好者','无情打钉者'),
'c1' => Array(0,0,0),
'c2' => Array(5,50,200),
),
54 => Array(
'lvl' => 3,
'name' => Array('来磨刀吧!','磨刀爱好者','无情磨刀者'),
'title' => Array('','磨刀爱好者','无情磨刀者'),
'c1' => Array(0,0,0),
'c2' => Array(5,50,200),
),
55 => Array(
'lvl' => 3,
'name' => Array('来打补丁吧!','补丁爱好者','无情补丁'),
'title' => Array('','补丁爱好者','无情补丁'),
'c1' => Array(0,0,0),
'c2' => Array(5,50,200),
),
56 => Array(
'lvl' => 3,
'name' => Array('种火?那是啥?','是都市传说。','除错大师'),
'title' => Array('','都市传说','除错大师'),
'c1' => Array(0,100,250),
'c2' => Array(10,0,0),
),
57 => Array(
'lvl' => 3,
'name' => Array('外来的神秘','风驰电掣','暴雷骤雨'),
'title' => Array('','风驰电掣','暴雷骤雨'),
'c1' => Array(0,100,250),
'c2' => Array(10,0,0),
),
999 => Array(''),
/*# 结局成就
// 16 - 最后幸存结局
16 => Array(
'lvl' => 3,
'name' => Array('最后幸存','只是运气好而已','不止是运气好而已?','不止是运气好而已!'),
'title' => Array('','生存者','生存大师'),
'c1' => Array(0,0,0),
'c2' => Array(77,777,2777),
'desc' => Array(
'达成结局:最后幸存 1次',
'达成结局:最后幸存 17次',
'达成结局:最后幸存 177次',
),
),
// 34 - 逃离幻境结局
34 => Array(
'lvl' => 3,
'name' => Array('逃避可耻?','但它有用!','直面现实','逃脱大师'),
'title' => Array('实用主义者','现实主义者','脚底抹油'),
'c1' => Array(0,0,0),
'c2' => Array(15,70,300),
'desc' => Array(
'独自逃离幻境1次。',
'独自逃离幻境36次。',
'独自逃离幻境101次。',
),
),
// 17 - 核爆全灭结局
17 => Array(
'lvl' => 2,
'name' => Array('核爆全灭','麻烦制造机?','麻烦制造机'),
'title' => Array('','叶子钦定!'),
'c1' => Array(0,0,0),
'c2' => Array(100,500),
'desc' => Array(
'达成结局:核爆全灭 1次',
'达成结局:核爆全灭 7次',
),
),
// 18 - 个人或团队累计完成锁定解除结局
18 => Array(
'lvl' => 3,
'name' => Array('锁定解除','不屈的执念','最后的荣光?','最后的荣光'),
'title' => Array('','不屈的执念','最后的荣光'),
'c1' => Array(0,0,0),
'c2' => Array(300,1312,1777),
'desc' => Array(
'独自或与团队一同达成结局:<br>锁定解除 1次',
'独自或与团队一同达成结局:<br>锁定解除 17次',
'独自或与团队一同达成结局:<br>锁定解除 77次',
),
),
// 100 - 击败幻影执行官后达成锁定解除结局
100 => Array(
'lvl' => 1,
'name' => Array('结束了?','未完待续'),
'title' => Array('挑战者'),
'c1' => Array(0),
'c2' => Array(450),
'desc' => Array(
'击败 <span class="yellow">幻影执行官</span> 后达成结局:锁定解除'
),
),
// 101 - 击败真红蓝后达成锁定解除结局
101 => Array(
'lvl' => 1,
'name' => Array('势如水火','合纵连横'),
'title' => Array('【待更新】'),
'c1' => Array(0),
'c2' => Array(950),
'desc' => Array(
'击败 <span class="yellow">参战者 红暮&蓝凝</span> 后达成结局:锁定解除',
),
),
// 102 - 击败DF后达成锁定解除结局
102 => Array(
'lvl' => 1,
//'icon' => Array('ach_102_0.gif','ach_101_2.gif'),
'name' => Array('【待更新】','【待更新】'),
'title' => Array('【待更新】'),
'c1' => Array(0),
'c2' => Array(1730),
'desc' => Array(
'击败 <span class="yellow">未名存在 Dark Force</span> 后达成结局:锁定解除',
),
),
// 19 - 个人或团队累计完成幻境解除结局
19 => Array(
'lvl' => 1,
'name' => Array('幻境解离','奇迹的篝火'),
'title' => Array('奇迹的篝火'),
'c1' => Array(1000),
'c2' => Array(1000),
'desc' => Array(
'独自或与团队一同达成结局:<br>幻境解离 1次',
),
),*/
);
//Hi
?>
\ No newline at end of file
......@@ -6,11 +6,12 @@ if(!defined('IN_GAME')) exit('Access Denied');
# 社团变更时可获得的技能清单:
$club_skillslist = Array
(
1 => Array('s_hp','s_ad','f_heal','c1_def','c1_crit','c1_sneak','c1_burnsp','c1_bjack','c1_veteran'), #'铁拳无敌',
1 => Array('s_hp','s_ad','f_heal','c1_def','c1_crit','c1_stalk','c1_burnsp','c1_bjack','c1_veteran'), #'铁拳无敌',
2 => Array('s_hp','s_ad','f_heal','c2_butcher','c2_intuit','c2_raiding','c2_master','c2_annihil'), #'见敌必斩',
3 => Array('s_hp','s_ad','f_heal','c3_pitchpow','c3_enchant','c3_potential','c3_hawkeye','c3_offset','c3_numerous'), #'灌篮高手',
4 => Array('s_hp','s_ad','f_heal','c4_stable','c4_break','c4_aiming','c4_loot','c4_roar','c4_sniper','c4_headshot'), #'狙击鹰眼',
5 => Array('s_hp','s_ad','f_heal'), #'拆弹专家',
5 => Array('s_hp','s_ad','f_heal'),
//5 => Array('s_hp','s_ad','f_heal','c5_sneak','c5_caution','c5_review','c5_focus','c5_higheg','c5_double'), #'拆弹专家',
6 => Array('s_hp','s_ad','f_heal'), #'宛如疾风',
7 => Array('s_hp','s_ad','f_heal'), #'锡安成员',
8 => Array('s_hp','s_ad','f_heal'), #'黑衣组织',
......@@ -20,7 +21,7 @@ $club_skillslist = Array
12 => Array('s_hp','s_ad','f_heal'), #'全能骑士',
13 => Array('s_hp','s_ad','f_heal'), #'根性兄贵',
14 => Array('s_hp','s_ad','f_heal'), #'肌肉兄贵',
15 => Array('s_hp','s_ad','f_heal'), #'<span class="L5">L5状态</span>',
15 => Array('f_heal'), #'<span class="L5">L5状态</span>',
16 => Array('s_hp','s_ad','f_heal'), #'全能骑士',
17 => Array('f_heal'), #'走路萌物',
18 => Array('s_hp','s_ad','f_heal'), #'天赋异禀',
......@@ -55,6 +56,7 @@ $cskills_tags = Array
'active' => '<span tooltip="在主动启动后才会产生效果" class="gold">【主动技】</span>',
//'cd' => '<span tooltip="隐藏标签:有此标签的技能会在载入时检查是否处于冷却状态" class="gold">【冷却技】</span>',
'openning' => '<span tooltip="仅在先制发现敌人时可用" class="gold">【开幕技】</span>',
'limit' => '<span tooltip="每局游戏内可发动次数有限" class="gold">【限次技】</span>',
//'buff' => '<span tooltip="隐藏标签:代表这是一个临时性状态" class="gold">【状态】</span>',
//'unlock_battle_hidden' => '<span tooltip="隐藏标签:未解锁时不会在战斗界面显示" class="gold">【隐藏】</span>',
);
......@@ -177,7 +179,7 @@ $cskills = Array
'wepk+wep_kind' => "[:wepk:] == 'WP' || [:wepk:] == 'WCP' || [:wepk:] == 'WKP' || [:wep_kind:] == 'P'",
),
),
'c1_sneak' => Array
'c1_stalk' => Array
(
'name' => '偷袭',
'tags' => Array('battle','opening'),
......@@ -487,10 +489,10 @@ $cskills = Array
(
'name' => '枭眼',
'tags' => Array('passive'),
'desc' => '如果你的武器射程不小于敌人,你对其先制攻击率<span class="yellow">+[:activer:]%</span>,<br>
'desc' => '如果你的武器射程不小于敌人,你对其先制攻击率<span class="yellow">+[:actgain:]%</span>,<br>
其攻击你时命中率<span class="yellow">-[:accloss:]%</span>,连击命中率惩罚<span class="yellow">+[:rbloss:]%</span>',
'vars' => Array(
'activer' => 10,
'actgain' => 10,
'accloss' => 12,
'rbloss' => 8,
),
......@@ -540,7 +542,7 @@ $cskills = Array
(
'name' => '百出',
'tags' => Array('passive'),
'desc' => '持投系武器时物理伤害<span class="yellow b">+([:dmgr:]×[:skillpara|c3_enchant-active_t:])%</span><br>
'desc' => '持投系武器时物理伤害<span class="yellow b">+([:dmgr:]×[^skillpara|c3_enchant-active_t^])%</span><br>
其中<span class="yellow">×</span>后的数值是你发动<span class="yellow">“附魔”</span>的次数<br>',
'vars' => Array(
'dmgr' => 2,
......@@ -730,6 +732,125 @@ $cskills = Array
'wepk+wep_kind' => "[:wepk:] == 'WG' || [:wepk:] == 'WJ' || [:wepk:] == 'WGK' || [:wepk:] == 'WDG' || [:wep_kind:] == 'G' || [:wep_kind:] == 'J'",
),
),
'c5_sneak' => Array
(
'name' => '潜行',
'tags' => Array('passive'),
'desc' => '你的隐蔽率提高<span class="yellow">[:hidegain:]%</span>,主动攻击时先攻率提高<span class="yellow">[:actgain:]%</span>',
'maxlvl' => 5,
'cost' => Array(2,3,3,4,4,-1),
'input' => '升级',
'log' => '<span class="yellow">技能「潜行」升级成功。</span><br>',
'status' => Array('skillpara|c5_sneak-lvl'),
'effect' => Array(
0 => Array('skillpara|c5_sneak-lvl' => '+=::1',),
),
'svars' => Array('lvl' => 0),
'vars' => Array(
'hidegain' => Array(0,2,4,6,8,10),
'actgain' => Array(0,2,4,6,8,10),
),
),
'c5_caution' => Array
(
'name' => '谨慎',
'tags' => Array('passive'),
'desc' => '你的陷阱回避率提高<span class="yellow">[:evgain:]%</span>,陷阱重复使用率提高<span class="yellow">[:reugain:]%</span>',
'maxlvl' => 5,
'cost' => Array(2,2,2,3,3,-1),
'input' => '升级',
'log' => '<span class="yellow">技能「谨慎」升级成功。</span><br>',
'status' => Array('skillpara|c5_caution-lvl'),
'effect' => Array(
0 => Array('skillpara|c5_caution-lvl' => '+=::1',),
),
'svars' => Array('lvl' => 0),
'vars' => Array(
'evgain' => Array(0,2,4,6,8,10),
'reugain' => Array(0,4,8,12,16,20),
),
),
'c5_review' => Array
(
'name' => '反思',
'tags' => Array('passive'),
'desc' => '使用爆系武器时,<br>即使攻击没有命中,也可以获得[:expgain:]点经验值',
'vars' => Array(
'expgain' => 1,
),
'lockdesc' => Array(
'wepk+wep_kind' => '武器不适用,持<span class="yellow">爆系武器</span>时生效',
),
'unlock' => Array(
'wepk+wep_kind' => "[:wepk:] == 'WD' || [:wepk:] == 'WDG' || [:wepk:] == 'WDF' || (!empty([:wep_kind:]) && [:wep_kind:] == 'D')",
),
),
'c5_focus' => Array
(
'name' => '专注',
'tags' => Array('passive'),
'desc' => '你可随意于下列三个状态间切换:',
'svars' => Array(
'choice' => 0,
),
'vars' => Array(
'meetgain' => 15,
'itmgain' => 15,
),
'lockdesc' => Array(
'lvl' => '3级时解锁',
),
'unlock' => Array(
'lvl' => '[:lvl:] >= 3',
),
),
'c5_higheg' => Array
(
'name' => '高能',
'tags' => Array('battle'),
'desc' => '本次攻击中爆炸属性伤害无视一切加成减成<br>
使用爆系武器方可发动,消耗<span class="yellow">[:ragecost:]</span>点怒气。',
'bdesc' => '本次攻击中爆炸属性伤害无视一切加成减成;消耗<span class="red">[:ragecost:]</span>怒气',
'vars' => Array(
'ragecost' => 40,
),
'lockdesc' => Array(
'lvl' => '6级时解锁',
'wepk+wep_kind' => '武器不适用,持<span class="yellow">爆系武器</span>时生效',
),
'unlock' => Array(
'lvl' => '[:lvl:] >= 6',
'wepk+wep_kind' => "[:wepk:] == 'WD' || [:wepk:] == 'WDG' || [:wepk:] == 'WDF' || (!empty([:wep_kind:]) && [:wep_kind:] == 'D')",
),
),
'c5_double' => Array
(
'name' => '双响',
'tags' => Array('battle','limit'),
'desc' => '本局已发动<span class="yellow">[^skillpara|c5_double-active_t^]/[:maxactive_t:]次</span><br>使用爆系武器方可发动,连续攻击[:chase_t:]次。',
'bdesc' => '本次战斗你将连续攻击[:chase_t:]次;本局已发动<span class="yellow">[^skillpara|c5_double-active_t^]/[:maxactive_t:]</span>次',
'svars' => Array(
'active_t' => 0,
),
'vars' => Array(
'ragecost' => 0,
'chase_t' => 2,
'maxactive_t' => 2,
),
'pvars' => Array(
'skillpara|c5_double-active_t',
),
'lockdesc' => Array(
'skillpara|c5_double-active_t' => '已无法发动该技能',
'lvl' => '19级时解锁',
'wepk+wep_kind' => '武器不适用,持<span class="yellow">爆系武器</span>时生效',
),
'unlock' => Array(
'skillpara|c5_double-active_t' => '[:skillpara|c5_double-active_t:] < 2',
'lvl' => '[:lvl:] >= 19',
'wepk+wep_kind' => "[:wepk:] == 'WD' || [:wepk:] == 'WDG' || [:wepk:] == 'WDF' || (!empty([:wep_kind:]) && [:wep_kind:] == 'D')",
),
),
'tl_cstick' => Array
(
'name' => '抡尸',
......
......@@ -33,6 +33,8 @@ $weather_attack_modifier = Array(10,10,0,-5,-10,-20,-15,0,0,7,20,-7,-20,-5,-10,-
$weather_defend_modifier = Array(10,30,0,0,-3,-15,-10,0,-20,-30,-50,-5,-20,-3,-20,5,-30,30);
//天气对发现率的影响
$weather_find_r = Array(10,20,0,-2,-3,-10,-7,5,-10,-20,0,-7,-5,-30,-5,-20,0,20);
//天气对躲避率的影响
$weather_hide_r = Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
//天气对先制率的影响
$weather_active_r = Array(10,20,0,-5,-10,-20,-15,0,-7,-10,-10,-5,0,-5,-20,-5,0,20);
......@@ -45,6 +47,8 @@ $pose_attack_modifier = Array(0,100,0,-25,25,-50,50,-777);
$pose_defend_active = 0;
//姿态对防御力的影响(单位:百分比加算)
$pose_defend_modifier = Array(0,25,0,-25,-50,-50,-466,777);
//姿态对躲避率的影响
$pose_hide_modifier = Array(0,-25,0,-10,10,-25,-40,-40,0);
//姿态对先制率的影响(单位:百分比加算)(计算方式:进攻方姿态先制率-防守方姿态先制率)
$pose_active_modifier = Array(0,0,50,0,25,-25,5,-100);
//姿态对反击率的影响(单位:百分比加算)
......@@ -59,6 +63,8 @@ $tactic_attack_modifier = Array(0,20,-25,25,-50);
$tactic_defend_active = 0;
//应战策略对防御力的加成(单位:百分比加算)
$tactic_defend_modifier = Array(0,-20,50,-25,0);
//应战策略对躲避率的影响
$tactic_hide_modifier = Array(0,0,0,-15,15);
//应战策略对先制率的影响(单位:百分比加算)
$tactic_active_modifier = Array(0,0,0,0,0);
//应战策略对反击率的影响(单位:百分比加算)
......@@ -73,9 +79,21 @@ $pls_attack_modifier = Array(
//场景对防御力的加成(单位:百分比加算)
$pls_defend_modifier = Array(
// 无月 端点 RF高 雪镇 索拉 指挥 梦幻 清水 白穗 墓地 麦斯 对天 夏镇 三体 光坂 守矢 常林 常高 秋镇 精灵 春镇 圣G 初始 幻想 永恒 妖精 冰封 花菱 FARG 风祭 格纳 和田 SCP 雏菊 英灵
0, -10, 0, 0, -10, 0, 0, 0, 0, 0, -10, 5, 0, -10, 0, 0, 5, 0, 0, 0, 0, 0, -10, -10, -10, 0, 0, 0, 5, 5, 5, 0, 0, -5, 0
0, -10, 0, 0, -10, 0, 0, 0, 0, 0, -10, 5, 0, -10, 0, 0, 5, 0, 0, 0, 0, 0, -10, -10, -10, 0, 0, 0, 5, 5, 5, 0, 0, -5, 0
// 0, -10, 10, 0, 0, 0, 0, 0, 0, 0, 0, -10, 10, 0, 0, 0, 0, 0, 0, 0, 10, 0
);
//场景对遇敌率的修正
$pls_find_modifier = Array(
// 无月 端点 RF高 雪镇 索拉 指挥 梦幻 清水 白穗 墓地 麦斯 对天 夏镇 三体 光坂 守矢 常林 常高 秋镇 精灵 春镇 圣G 初始 幻想 永恒 妖精 冰封 花菱 FARG 风祭 格纳 和田 SCP 雏菊 英灵
20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 20
// 10, 0, 0, 10, -10, 10, 0, 10, -10, 0, 10, 0, 0, -10, 0, -10, -10, -10, 0, 10, 0, 10
);
//场景对隐蔽率的修正
$pls_hide_modifier = Array(
// 无月 端点 RF高 雪镇 索拉 指挥 梦幻 清水 白穗 墓地 麦斯 对天 夏镇 三体 光坂 守矢 常林 常高 秋镇 精灵 春镇 圣G 初始 幻想 永恒 妖精 冰封 花菱 FARG 风祭 格纳 和田 SCP 雏菊 英灵
0, 0, 5, 5, 0, 0, 0, 0, 0, -10, 0, 0, 5, 0, 10, 0, -10, 5, 5, 0, 5, 5, 0, 0, 0, 0, 0, 15, -10,- 10, 0, 0, -10, 0, 0
// 10, 0, 0, 10, -10, 10, 0, 10, -10, 0, 10, 0, 0, -10, 0, -10, -10, -10, 0, 10, 0, 10
);
//各种攻击方式可能导致受伤的部位
$infatt = Array('N' => 'bhaf', 'P' => 'bhaf', 'K' =>'bhaf', 'G' =>'bhaf', 'C'=> 'bhaf', 'D' => 'bhaf', 'F'=> 'bhaf', 'J'=> 'bhaf');
//各种攻击方式可能导致受伤的部位
......
......@@ -220,6 +220,8 @@ CREATE TABLE `acbra2_players` (
`wf` smallint unsigned not null default '0',
`teamID` char(15) not null default '',
`teamPass` char(15) not null default '',
teamMate text NOT NULL default '',
teamIcon smallint unsigned NOT NULL default '0',
getitem text NOT NULL default '',
itembag text NOT NULL default '',
itmnum smallint unsigned NOT NULL default '0',
......
img/t_0.gif

1.39 KB

......@@ -51,6 +51,10 @@ $result = $db->query("DESCRIBE {$tablepre}winners mss");
if(!$db->num_rows($result)) $db->query("ALTER TABLE {$tablepre}winners ADD mss smallint unsigned NOT NULL default '0' AFTER ss");
$result = $db->query("DESCRIBE {$tablepre}winners skillpoint");
if(!$db->num_rows($result)) $db->query("ALTER TABLE {$tablepre}winners ADD skillpoint smallint unsigned NOT NULL default '0' AFTER nick");
$result = $db->query("DESCRIBE {$tablepre}winners teamMate");
if(!$db->num_rows($result)) $db->query("ALTER TABLE {$tablepre}winners ADD teamMate text NOT NULL default '' AFTER teamPass");
$result = $db->query("DESCRIBE {$tablepre}winners teamIcon");
if(!$db->num_rows($result)) $db->query("ALTER TABLE {$tablepre}winners ADD teamIcon smallint unsigned NOT NULL default '0' AFTER teamMate");
//以下内容均为chatGPT生成,让我们对新时代的赛博苦力致以敬意:
$db->query("ALTER TABLE {$tablepre}winners MODIFY wep char(30) NOT NULL default ''");
......
......@@ -34,7 +34,7 @@ if($urcmd){
$resultinfo = '第'.$startno.'条-第'.$endno.'条记录';
}
}
if($urcmd == 'ban' || $urcmd == 'unban' || $urcmd == 'del') {
if($urcmd == 'ban' || $urcmd == 'unban' || $urcmd == 'del' || $urcmd == 'checkach') {
$operlist = $gfaillist = $ffaillist = array();
for($i=0;$i<$showlimit;$i++){
if(isset(${'user_'.$i})) {
......@@ -46,6 +46,35 @@ if($urcmd == 'ban' || $urcmd == 'unban' || $urcmd == 'del') {
$urdata[$i]['groupid'] = 1;
}elseif($urcmd == 'del'){
unset($urdata[$i]);
}elseif($urcmd == 'checkach'){
$adata = $urdata[$i]; $n = $urdata[$i]['username'];
$adata['achrev'] = json_decode($adata['achrev'],true);
$new_ach = Array(); $cpl = Array(); $prc = Array();
//手动变化成就储存结构
if(!empty($adata['achievement']) && empty($adata['achrev']))
{
include_once GAME_ROOT.'./include/game/achievement.func.php';
$alist = get_achlist();
foreach($alist as $a => $aarr)
{
if($a <= 57)
{
$cpl[$a]=check_achievement($a,$n);
$prc[$a]=fetch_achievement($a,$n);
//新成就储存结构内,只会保存有进度的成就
if(!empty($cpl[$a]) || !empty($prc[$a]))
{
// 到达999阶段的成就 替换为配置中预设的达成等级
if($cpl[$a] == 999) $cpl[$a] = $aarr['lvl'] ?: count($aarr['name']);
$new_ach[$a]['l'] = $cpl[$a] ?: 0;
$new_ach[$a]['v'] = $prc[$a] ?: 0;
}
}
}
$new_ach = json_encode($new_ach);
$db->query("UPDATE {$tablepre}users SET achrev='$new_ach' WHERE username='".$n."'" );
}
//$new_ach = '';
}
// adminlog('banur',$urdata[$i]['username']);
}elseif(isset($urdata[$i]) && $urdata[$i]['uid'] == ${'user_'.$i}){
......@@ -66,8 +95,10 @@ if($urcmd == 'ban' || $urcmd == 'unban' || $urcmd == 'del') {
}elseif($urcmd == 'del'){
$operword = '删除';
$qryword = "DELETE FROM {$tablepre}users ";
}elseif($urcmd == 'checkach'){
$cmd_info .= " 帐户 $opernames 调整了成就储存结构";
}
if($operlist){
if($operlist && $urcmd != 'checkach'){
$qrywhere = '('.implode(',',array_keys($operlist)).')';
$opernames = implode(',',($operlist));
$db->query("$qryword WHERE uid IN $qrywhere");
......
......@@ -4,10 +4,1139 @@ 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)
{
$ach_dir = 'achievement_'.$ach;
# 本地存在对应的页面模板,返回模板
if(file_exists(GAME_ROOT."./templates/default/".$ach_dir.".htm"))
{
return Array($ach_dir);
}
# 本地不存在对应的页面模板,尝试新建一个
else
{
//暂时使用一个通用模板动态生成
//未来如果发现存在性能问题,再在这里补完自动创建模板文件的功能
return $ach_dir;
}
}
function print_achievement_rev($ach)
{
if(!empty($ach))
{
$ach = json_decode($ach,true);
return $ach;
}
return $ach;
}
function check_achievement_rev($which,$who)
{
global $db,$tablepre;
$result = $db->query("SELECT achrev FROM {$tablepre}users WHERE username = '$who'");
$ach = $db->result($result,0);
$value = 0;
if(!empty($ach))
{
$ach = print_achievement_rev($ach);
$achlist = get_achlist($which);
// 保存的成就阶段 = 成就完成阶段时 返回999 这是为了兼容旧版成就
if(isset($ach[$which]['l'])) $value = $ach[$which]['l'] == $achlist['lvl'] ? 999 : $ach[$which]['l'];
}
//echo "成就值等级检索阶段: 成就{$which} 的等级 = {$value}<br>";
return $value;
}
function fetch_achievement_rev($which,$who)
{
global $db,$tablepre;
$result = $db->query("SELECT achrev FROM {$tablepre}users WHERE username = '$who'");
$ach = $db->result($result,0);
$value = 0;
if(!empty($ach))
{
$ach = print_achievement_rev($ach);
// 保存的成就进度 >= 9999999时 返回9999999 这是为了兼容旧版成就
if(isset($ach[$which]['v'])) $value = $ach[$which]['v'] >= 9999999 ? 9999999 : $ach[$which]['v'];
}
//echo "成就值检索阶段: 成就{$which} 的值 = {$value}<br>";
return $value;
}
function update_achievement_rev($which,$who,$value)
{
global $db,$tablepre;
$result = $db->query("SELECT achrev FROM {$tablepre}users WHERE username = '$who'");
$ach = $db->result($result,0);
$ach = print_achievement_rev($ach);
$ach[$which]['v'] = $value;
//echo "成就值变更阶段: 成就{$which} 的值被修正为 {$value}<br>";
$ach = json_encode($ach);
$db->query("UPDATE {$tablepre}users SET achrev='$ach' WHERE username='".$who."'" );
}
function done_achievement_rev($which,$ch,$who)
{
global $db,$tablepre;
$result = $db->query("SELECT achrev FROM {$tablepre}users WHERE username = '$who'");
$ach = $db->result($result,0);
$ach = print_achievement_rev($ach);
// 要将成就进度改为999时 修正为当前成就对应完成阶段
if($ch == 999)
{
$achlist = get_achlist($which);
$ch = $achlist['lvl'];
}
$ach[$which]['l'] = $ch;
//echo "成就完成阶段: 成就{$which} 阶段被修正为 {$ch}<br>";
$ach = json_encode($ach);
$db->query("UPDATE {$tablepre}users SET achrev='$ach' WHERE username='".$who."'" );
}
function check_mixitem_achievement_rev($nn,$item)
{
global $now,$validtime,$starttime,$gamecfg,$name,$db,$tablepre;
//0. KEY弹成就
if ($item=="【KEY系催泪弹】")
{
update_achievement_rev(0,$nn,((int)fetch_achievement_rev(0,$nn))+1);
if ((int)fetch_achievement_rev(0,$nn)>=30 && (check_achievement_rev(0,$nn)<999)) {
done_achievement_rev(0,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+700 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("流星",$nn);
}
elseif ((int)fetch_achievement_rev(0,$nn)>=5 && (check_achievement_rev(0,$nn)<2)) {
done_achievement_rev(0,2,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+200 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("幻想",$nn);
}
elseif ((int)fetch_achievement_rev(0,$nn)>=1 && (check_achievement_rev(0,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+10 WHERE username='".$nn."'" );
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系燃烧弹】")
{
update_achievement_rev(14,$nn,((int)fetch_achievement_rev(14,$nn))+1);
if ((int)fetch_achievement_rev(14,$nn)>=30 && (check_achievement_rev(14,$nn)<999)) {
done_achievement_rev(14,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+700 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("TERRA",$nn);
}
elseif ((int)fetch_achievement_rev(14,$nn)>=5 && (check_achievement_rev(14,$nn)<2)) {
done_achievement_rev(14,2,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+200 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("树形图",$nn);
}
elseif ((int)fetch_achievement_rev(14,$nn)>=1 && (check_achievement_rev(14,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+10 WHERE username='".$nn."'" );
done_achievement_rev(14,1,$nn);
}
}
//15. 生命弹成就
if ($item=="【KEY系生命弹】")
{
update_achievement_rev(15,$nn,((int)fetch_achievement_rev(15,$nn))+1);
if ((int)fetch_achievement_rev(15,$nn)>=30 && (check_achievement_rev(15,$nn)<999)) {
done_achievement_rev(15,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+700 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("未来战士",$nn);
}
elseif ((int)fetch_achievement_rev(15,$nn)>=5 && (check_achievement_rev(15,$nn)<2)) {
done_achievement_rev(15,2,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+200 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("素描本",$nn);
}
elseif ((int)fetch_achievement_rev(15,$nn)>=1 && (check_achievement_rev(15,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+10 WHERE username='".$nn."'" );
done_achievement_rev(15,1,$nn);
}
}
//33. 诅咒刀成就
if ($item=="影刀【秋岚】")
{
update_achievement_rev(33,$nn,((int)fetch_achievement_rev(33,$nn))+1);
if ((int)fetch_achievement_rev(33,$nn)>=1 && (check_achievement_rev(33,$nn)<999)) {
done_achievement_rev(33,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+522 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("剑圣",$nn);
}
}
//35. 『T-LINK念动冲拳』成就
if ($item=="『T-LINK念动冲拳』")
{
update_achievement_rev(35,$nn,((int)fetch_achievement_rev(35,$nn))+1);
if ((int)fetch_achievement_rev(35,$nn)>=111 && (check_achievement_rev(35,$nn)<999)) {
done_achievement_rev(35,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+350 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("殴系爱好者",$nn);
}
elseif ((int)fetch_achievement_rev(35,$nn)>=51 && (check_achievement_rev(35,$nn)<2)) {
done_achievement_rev(35,2,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+100 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("热血机师",$nn);
}
elseif ((int)fetch_achievement_rev(35,$nn)>=1 && (check_achievement_rev(35,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+10 WHERE username='".$nn."'" );
done_achievement_rev(35,1,$nn);
}
}
//36. Azurewrath成就
if ($item=="Azurewrath")
{
update_achievement_rev(36,$nn,((int)fetch_achievement_rev(36,$nn))+1);
if ((int)fetch_achievement_rev(36,$nn)>=111 && (check_achievement_rev(36,$nn)<999)) {
done_achievement_rev(36,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+350 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("斩系爱好者",$nn);
}
elseif ((int)fetch_achievement_rev(36,$nn)>=51 && (check_achievement_rev(36,$nn)<2)) {
done_achievement_rev(36,2,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+100 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("苍蓝之光",$nn);
}
elseif ((int)fetch_achievement_rev(36,$nn)>=1 && (check_achievement_rev(36,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+10 WHERE username='".$nn."'" );
done_achievement_rev(36,1,$nn);
}
}
//37. 『Two Become One』成就
if ($item=="『Two Become One』")
{
update_achievement_rev(37,$nn,((int)fetch_achievement_rev(37,$nn))+1);
if ((int)fetch_achievement_rev(37,$nn)>=111 && (check_achievement_rev(37,$nn)<999)) {
done_achievement_rev(37,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+350 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("钥刃大师",$nn);
}
elseif ((int)fetch_achievement_rev(37,$nn)>=51 && (check_achievement_rev(37,$nn)<2)) {
done_achievement_rev(37,2,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+100 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("合二为一",$nn);
}
elseif ((int)fetch_achievement_rev(37,$nn)>=1 && (check_achievement_rev(37,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+10 WHERE username='".$nn."'" );
done_achievement_rev(37,1,$nn);
}
}
//38. 『迷你鲨』成就
if ($item=="『迷你鲨』")
{
update_achievement_rev(38,$nn,((int)fetch_achievement_rev(38,$nn))+1);
if ((int)fetch_achievement_rev(38,$nn)>=111 && (check_achievement_rev(38,$nn)<999)) {
done_achievement_rev(38,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+350 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("射系爱好者",$nn);
}
elseif ((int)fetch_achievement_rev(38,$nn)>=51 && (check_achievement_rev(38,$nn)<2)) {
done_achievement_rev(37,2,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+100 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("勇闯仙境",$nn);
}
elseif ((int)fetch_achievement_rev(38,$nn)>=1 && (check_achievement_rev(38,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+10 WHERE username='".$nn."'" );
done_achievement_rev(38,1,$nn);
}
}
//39. ☆金色闪光☆成就
if ($item=="☆金色闪光☆")
{
update_achievement_rev(39,$nn,((int)fetch_achievement_rev(39,$nn))+1);
if ((int)fetch_achievement_rev(39,$nn)>=111 && (check_achievement_rev(39,$nn)<999)) {
done_achievement_rev(39,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+350 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("重枪爱好者",$nn);
}
elseif ((int)fetch_achievement_rev(39,$nn)>=51 && (check_achievement_rev(39,$nn)<2)) {
done_achievement_rev(39,2,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+100 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("黑洞边缘",$nn);
}
elseif ((int)fetch_achievement_rev(39,$nn)>=1 && (check_achievement_rev(39,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+10 WHERE username='".$nn."'" );
done_achievement_rev(39,1,$nn);
}
}
//40. 星尘龙 ★8成就
if ($item=="星尘龙 ★8")
{
update_achievement_rev(40,$nn,((int)fetch_achievement_rev(40,$nn))+1);
if ((int)fetch_achievement_rev(40,$nn)>=111 && (check_achievement_rev(40,$nn)<999)) {
done_achievement_rev(40,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+350 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("决斗者",$nn);
}
elseif ((int)fetch_achievement_rev(40,$nn)>=51 && (check_achievement_rev(40,$nn)<2)) {
done_achievement_rev(40,2,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+100 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("光的道路",$nn);
}
elseif ((int)fetch_achievement_rev(40,$nn)>=1 && (check_achievement_rev(40,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+10 WHERE username='".$nn."'" );
done_achievement_rev(40,1,$nn);
}
}
//41. 流星龙 ★10成就
if ($item=="流星龙 ★10")
{
update_achievement_rev(41,$nn,((int)fetch_achievement_rev(41,$nn))+1);
if ((int)fetch_achievement_rev(41,$nn)>=111 && (check_achievement_rev(41,$nn)<999)) {
done_achievement_rev(41,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+350 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("聚集的祈愿",$nn);
}
elseif ((int)fetch_achievement_rev(41,$nn)>=51 && (check_achievement_rev(41,$nn)<2)) {
done_achievement_rev(41,2,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+100 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("加速同调",$nn);
}
elseif ((int)fetch_achievement_rev(41,$nn)>=1 && (check_achievement_rev(41,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+10 WHERE username='".$nn."'" );
done_achievement_rev(41,1,$nn);
}
}
//42. 《小黄的超级球》成就
if ($item=="《小黄的超级球》")
{
update_achievement_rev(42,$nn,((int)fetch_achievement_rev(42,$nn))+1);
if ((int)fetch_achievement_rev(42,$nn)>=111 && (check_achievement_rev(42,$nn)<999)) {
done_achievement_rev(42,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+350 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("投系爱好者",$nn);
}
elseif ((int)fetch_achievement_rev(42,$nn)>=51 && (check_achievement_rev(42,$nn)<2)) {
done_achievement_rev(42,2,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+100 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("平和之心",$nn);
}
elseif ((int)fetch_achievement_rev(42,$nn)>=1 && (check_achievement_rev(42,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+10 WHERE username='".$nn."'" );
done_achievement_rev(42,1,$nn);
}
}
//43. 莫洛托夫鸡尾酒成就
if ($item=="莫洛托夫鸡尾酒")
{
update_achievement_rev(43,$nn,((int)fetch_achievement_rev(43,$nn))+1);
if ((int)fetch_achievement_rev(43,$nn)>=111 && (check_achievement_rev(43,$nn)<999)) {
done_achievement_rev(43,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+350 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("爆系爱好者",$nn);
}
elseif ((int)fetch_achievement_rev(43,$nn)>=51 && (check_achievement_rev(43,$nn)<2)) {
done_achievement_rev(43,2,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+100 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("红烧天堂",$nn);
}
elseif ((int)fetch_achievement_rev(43,$nn)>=1 && (check_achievement_rev(43,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+10 WHERE username='".$nn."'" );
done_achievement_rev(43,1,$nn);
}
}
//44. ★BIUBIUBIU★成就
if ($item=="★BIUBIUBIU★")
{
update_achievement_rev(44,$nn,((int)fetch_achievement_rev(44,$nn))+1);
if ((int)fetch_achievement_rev(44,$nn)>=111 && (check_achievement_rev(44,$nn)<999)) {
done_achievement_rev(44,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+350 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("★啪啪啪★",$nn);
}
elseif ((int)fetch_achievement_rev(44,$nn)>=51 && (check_achievement_rev(44,$nn)<2)) {
done_achievement_rev(44,2,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+100 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("★刷刷刷★",$nn);
}
elseif ((int)fetch_achievement_rev(44,$nn)>=1 && (check_achievement_rev(44,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+10 WHERE username='".$nn."'" );
done_achievement_rev(44,1,$nn);
}
}
//45. 日符「Royal Flare」成就
if ($item=="日符「Royal Flare」")
{
update_achievement_rev(45,$nn,((int)fetch_achievement_rev(45,$nn))+1);
if ((int)fetch_achievement_rev(45,$nn)>=111 && (check_achievement_rev(45,$nn)<999)) {
done_achievement_rev(45,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+350 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("灵系爱好者",$nn);
}
elseif ((int)fetch_achievement_rev(45,$nn)>=51 && (check_achievement_rev(45,$nn)<2)) {
done_achievement_rev(45,2,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+100 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("皇家烈焰",$nn);
}
elseif ((int)fetch_achievement_rev(45,$nn)>=1 && (check_achievement_rev(45,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+10 WHERE username='".$nn."'" );
done_achievement_rev(45,1,$nn);
}
}
//46. 火水木金土符『贤者之石』成就
if ($item=="火水木金土符『贤者之石』")
{
update_achievement_rev(46,$nn,((int)fetch_achievement_rev(46,$nn))+1);
if ((int)fetch_achievement_rev(46,$nn)>=111 && (check_achievement_rev(46,$nn)<999)) {
done_achievement_rev(46,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+350 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("贤者之石",$nn);
}
elseif ((int)fetch_achievement_rev(46,$nn)>=51 && (check_achievement_rev(46,$nn)<2)) {
done_achievement_rev(46,2,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+100 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("五行大师",$nn);
}
elseif ((int)fetch_achievement_rev(46,$nn)>=1 && (check_achievement_rev(46,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+10 WHERE username='".$nn."'" );
done_achievement_rev(46,1,$nn);
}
}
//47. 广域生命探测器成就
if ($item=="广域生命探测器")
{
update_achievement_rev(47,$nn,((int)fetch_achievement_rev(47,$nn))+1);
if ((int)fetch_achievement_rev(47,$nn)>=111 && (check_achievement_rev(47,$nn)<999)) {
done_achievement_rev(47,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+350 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("知人和",$nn);
}
elseif ((int)fetch_achievement_rev(47,$nn)>=51 && (check_achievement_rev(47,$nn)<2)) {
done_achievement_rev(47,2,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+100 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("知地利",$nn);
}
elseif ((int)fetch_achievement_rev(47,$nn)>=1 && (check_achievement_rev(47,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+10 WHERE username='".$nn."'" );
done_achievement_rev(47,1,$nn);
}
}
//48. 法式面包棍棒成就
if ($item=="法式面包棍棒")
{
update_achievement_rev(48,$nn,((int)fetch_achievement_rev(48,$nn))+1);
if ((int)fetch_achievement_rev(48,$nn)>=111 && (check_achievement_rev(48,$nn)<999)) {
done_achievement_rev(48,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+350 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("混沌的深渊",$nn);
}
elseif ((int)fetch_achievement_rev(48,$nn)>=51 && (check_achievement_rev(48,$nn)<2)) {
done_achievement_rev(48,2,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+100 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("混沌爱好者",$nn);
}
elseif ((int)fetch_achievement_rev(48,$nn)>=1 && (check_achievement_rev(48,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+10 WHERE username='".$nn."'" );
done_achievement_rev(48,1,$nn);
}
}
//49. 【春雨夏海,秋叶冬雪】挑战成就
if ($item=="【春雨夏海,秋叶冬雪】")
{
update_achievement_rev(49,$nn,((int)fetch_achievement_rev(49,$nn))+1);
if ((int)fetch_achievement_rev(49,$nn)>=7 && (check_achievement_rev(49,$nn)<999)) {
done_achievement_rev(49,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+700 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("键·四季赞歌",$nn);
}
elseif ((int)fetch_achievement_rev(49,$nn)>=1 && (check_achievement_rev(49,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+100 WHERE username='".$nn."'" );
done_achievement_rev(49,1,$nn);
}
}
//50. ★一发逆转神话★挑战成就
if ($item=="★一发逆转神话★")
{
update_achievement_rev(50,$nn,((int)fetch_achievement_rev(50,$nn))+1);
if ((int)fetch_achievement_rev(50,$nn)>=7 && (check_achievement_rev(50,$nn)<999)) {
done_achievement_rev(50,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+700 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("★一发逆转!★",$nn);
}
elseif ((int)fetch_achievement_rev(50,$nn)>=1 && (check_achievement_rev(50,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+100 WHERE username='".$nn."'" );
done_achievement_rev(50,1,$nn);
}
}
//51. 模式『EX』挑战成就
if ($item=="模式『EX』")
{
update_achievement_rev(51,$nn,((int)fetch_achievement_rev(51,$nn))+1);
if ((int)fetch_achievement_rev(51,$nn)>=7 && (check_achievement_rev(51,$nn)<999)) {
done_achievement_rev(51,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+700 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("『EX』",$nn);
}
elseif ((int)fetch_achievement_rev(51,$nn)>=1 && (check_achievement_rev(51,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+100 WHERE username='".$nn."'" );
done_achievement_rev(51,1,$nn);
}
}
//52. ◎光之创造神◎挑战成就
if ($item=="◎光之创造神◎")
{
update_achievement_rev(52,$nn,((int)fetch_achievement_rev(52,$nn))+1);
if ((int)fetch_achievement_rev(52,$nn)>=7 && (check_achievement_rev(52,$nn)<999)) {
done_achievement_rev(52,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+700 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("◎胜利之光◎",$nn);
}
elseif ((int)fetch_achievement_rev(52,$nn)>=1 && (check_achievement_rev(52,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+100 WHERE username='".$nn."'" );
done_achievement_rev(52,1,$nn);
}
}
}
//新版结局成就检测机制:加入团队胜利兼容
//function check_end_achievement_rev($w,$m)
function check_end_achievement_rev($w,$m,$team=0,$vars='')
{
global $now,$validtime,$starttime,$gamecfg,$name,$db,$tablepre;
//16. 最后幸存成就
//$result = $db->query("SELECT achievement FROM {$tablepre}users WHERE username = '$w' AND type = 0");
//$ach = $db->result($result, 0);
if ($m==2)
{
update_achievement_rev(16,$w,((int)fetch_achievement_rev(16,$w))+1,$w);
if (!check_achievement_rev(16,$w)) {
$db->query("UPDATE {$tablepre}users SET credits=credits+150 WHERE username='".$w."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$w."'" );
done_achievement_rev(16,999,$w);
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("生存者",$w);
}
}
//17. 核爆全灭成就
if ($m==5)
{
update_achievement_rev(17,$w,((int)fetch_achievement_rev(17,$w))+1,$w);
if (!check_achievement_rev(17,$w)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$w."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+100 WHERE username='".$w."'" );
done_achievement_rev(17,999,$w);
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("叶子钦定!",$w);
}
}
//18. 锁定解除成就
if ($m==3)
{
update_achievement_rev(18,$w,((int)fetch_achievement_rev(18,$w))+1);
if (!check_achievement_rev(18,$w)) {
$db->query("UPDATE {$tablepre}users SET credits=credits+500 WHERE username='".$w."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$w."'" );
done_achievement_rev(18,999,$w);
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("最后的荣光",$w);
}
}
//19. 幻境解离成就
if ($m==7)
{
update_achievement_rev(19,$w,((int)fetch_achievement_rev(19,$w))+1);
if (!check_achievement_rev(19,$w)) {
$db->query("UPDATE {$tablepre}users SET credits=credits+1000 WHERE username='".$w."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+1000 WHERE username='".$w."'" );
done_achievement_rev(19,999,$w);
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("奇迹的篝火",$w);
}
}
}
//新版击杀成就检测:pa击杀pd
//function check_battle_achievement_rev($n,$is_npc,$killname,$wp)
function check_battle_achievement_rev($pa,$pd)
{
global $gamecfg,$db,$tablepre;
// 旧版成就参数兼容
$is_npc = $pd['type'] ? 1 : 0;
$nn = $pa['name'];
$killname = $pd['name'];
$wp = isset($pa['wep_name']) ? $pa['wep_name'] : $pa['wep'];
//2. 击杀玩家成就
if (!$is_npc)
{
update_achievement_rev(2,$nn,((int)fetch_achievement_rev(2,$nn))+1);
if ((int)fetch_achievement_rev(2,$nn)>=1000 && (check_achievement_rev(2,$nn)<999)) {
done_achievement_rev(2,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+200 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("G.D.M",$nn);
}
elseif ((int)fetch_achievement_rev(2,$nn)>=100 && (check_achievement_rev(2,$nn)<2)) {
done_achievement_rev(2,2,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+500 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("二度打",$nn);
}
elseif ((int)fetch_achievement_rev(2,$nn)>=10 && (check_achievement_rev(2,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits+100 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
done_achievement_rev(2,1,$nn);
}
}
//31. ReturnToSender成就
if (!$is_npc)
{
$result = $db->query("SELECT nicks FROM {$tablepre}users WHERE username = '$killname'");
$ns = $db->result($result, 0);
if ((strpos($ns,"KEY男")!==false)&&($wp=='【KEY系催泪弹】')){
update_achievement_rev(31,$nn,((int)fetch_achievement_rev(31,$nn))+1);
if ((int)fetch_achievement_rev(31,$nn)>=1 && (check_achievement_rev(31,$nn)<999)) {
done_achievement_rev(31,999,$nn);
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("R.T.S",$nn);
get_title("善有善报",$killname);
}
}
}
//32. 呵呵
if (!$is_npc)
{
$result = $db->query("SELECT nicks FROM {$tablepre}users WHERE username = '$killname'");
$ns1 = $db->result($result, 0);
$result = $db->query("SELECT nicks FROM {$tablepre}users WHERE username = '$nn'");
$ns2 = $db->result($result, 0);
if ((strpos($ns2,"LOOP")!==false)||(strpos($ns1,"LOOP")!==false)){
if (check_achievement_rev(32,$nn)<999) done_achievement_rev(32,999,$nn);
if (check_achievement_rev(32,$killname)<999) done_achievement_rev(32,999,$killname);
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("LOOP",$nn);
get_title("LOOP",$killname);
}
}
//3. 击杀NPC成就
if ($is_npc)
{
update_achievement_rev(3,$nn,((int)fetch_achievement_rev(3,$nn))+1);
if ((int)fetch_achievement_rev(3,$nn)>=10000 && (check_achievement_rev(3,$nn)<999)) {
done_achievement_rev(3,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+500 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+15 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("最后一步",$nn);
}
elseif ((int)fetch_achievement_rev(3,$nn)>=500 && (check_achievement_rev(3,$nn)<2)) {
done_achievement_rev(3,2,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+200 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("黑客",$nn);
}
elseif ((int)fetch_achievement_rev(3,$nn)>=100 && (check_achievement_rev(3,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+5 WHERE username='".$nn."'" );
done_achievement_rev(3,1,$nn);
}
}
//4. 推倒红暮成就
if ($is_npc && ($killname=="红暮" || $killname=="红杀将军 红暮"))
{
update_achievement_rev(4,$nn,((int)fetch_achievement_rev(4,$nn))+1);
if ((int)fetch_achievement_rev(4,$nn)>=9 && (check_achievement_rev(4,$nn)<999)) {
done_achievement_rev(4,999,$nn);
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("越红者",$nn);
}
elseif ((int)fetch_achievement_rev(4,$nn)>=1 && (check_achievement_rev(4,$nn)<1)) {
done_achievement_rev(4,1,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+50 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+75 WHERE username='".$nn."'" );
}
}
//13. 推倒蓝凝成就
if ($is_npc && ($killname=="蓝凝" || $killname=="红杀菁英 蓝凝"))
{
update_achievement_rev(13,$nn,((int)fetch_achievement_rev(13,$nn))+1);
if ((int)fetch_achievement_rev(13,$nn)>=3 && (check_achievement_rev(13,$nn)<999)) {
done_achievement_rev(13,999,$nn);
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("跨过彩虹",$nn);
}
elseif ((int)fetch_achievement_rev(13,$nn)>=1 && (check_achievement_rev(13,$nn)<1)) {
done_achievement_rev(13,1,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+50 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+75 WHERE username='".$nn."'" );
}
}
//20. 击破虚子成就
if ($is_npc && ($killname=="虚子" || $killname=="武神 虚子"))
{
update_achievement_rev(20,$nn,((int)fetch_achievement_rev(20,$nn))+1);
if ((int)fetch_achievement_rev(20,$nn)>=1 && (check_achievement_rev(20,$nn)<999)) {
done_achievement_rev(20,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+268 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+263 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("寻星者",$nn);
}
}
//21. 击破水月成就
if ($is_npc && ($killname=="水月" || $killname=="武神 水月"))
{
update_achievement_rev(21,$nn,((int)fetch_achievement_rev(21,$nn))+1);
if ((int)fetch_achievement_rev(21,$nn)>=1 && (check_achievement_rev(21,$nn)<999)) {
done_achievement_rev(21,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+233 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+233 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("寂静洪流",$nn);
}
}
//22. 击破冴冴成就
if ($is_npc && ($killname=="冴月麟MK-II" || $killname=="天神 冴月麟MK-II"))
{
update_achievement_rev(22,$nn,((int)fetch_achievement_rev(22,$nn))+1);
if ((int)fetch_achievement_rev(22,$nn)>=1 && (check_achievement_rev(22,$nn)<999)) {
done_achievement_rev(22,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+2333 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("l33t",$nn);
}
}
//23. 击破四面成就
if ($is_npc && ($killname=="星莲船四面BOSS" || $killname=="天神 星莲船四面BOSS"))
{
update_achievement_rev(23,$nn,((int)fetch_achievement_rev(23,$nn))+1);
if ((int)fetch_achievement_rev(23,$nn)>=1 && (check_achievement_rev(23,$nn)<999)) {
done_achievement_rev(23,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+888 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("赌玉狂魔",$nn);
}
}
//24. 击破北京成就
if ($is_npc && ($killname=="北京推倒你" || $killname=="武神 北京推倒你"))
{
update_achievement_rev(24,$nn,((int)fetch_achievement_rev(24,$nn))+1);
if ((int)fetch_achievement_rev(24,$nn)>=1 && (check_achievement_rev(24,$nn)<999)) {
done_achievement_rev(24,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+211 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+299 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("时代眼泪",$nn);
}
}
//25. 击破yoshiko成就
if ($is_npc && ($killname=="Yoshiko-G" || $killname=="武神 Yoshiko-G"))
{
update_achievement_rev(25,$nn,((int)fetch_achievement_rev(25,$nn))+1);
if ((int)fetch_achievement_rev(25,$nn)>=1 && (check_achievement_rev(25,$nn)<999)) {
done_achievement_rev(25,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+111 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+333 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("卸腿者",$nn);
}
}
//26. 击破吉祥物成就
if ($is_npc && ($killname=="便当盒" || $killname=="真职人 便当盒"))
{
update_achievement_rev(26,$nn,((int)fetch_achievement_rev(26,$nn))+1);
if ((int)fetch_achievement_rev(26,$nn)>=1 && (check_achievement_rev(26,$nn)<999)) {
done_achievement_rev(26,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+1 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+111 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("吉祥物",$nn);
}
}
//27. 英灵殿成就
if (($is_npc>=20)&&($is_npc<=22))
{
update_achievement_rev(27,$nn,((int)fetch_achievement_rev(27,$nn))+1);
if ((int)fetch_achievement_rev(27,$nn)>=100 && (check_achievement_rev(27,$nn)<999)) {
done_achievement_rev(27,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+500 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("替天行道",$nn);
}
elseif ((int)fetch_achievement_rev(27,$nn)>=30 && (check_achievement_rev(27,$nn)<2)) {
done_achievement_rev(27,2,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+300 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
}
elseif ((int)fetch_achievement_rev(27,$nn)>=1 && (check_achievement_rev(27,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+10 WHERE username='".$nn."'" );
done_achievement_rev(27,1,$nn);
}
}
//56. 击杀种火成就
if ($is_npc==92)
{
update_achievement_rev(56,$nn,((int)fetch_achievement_rev(56,$nn))+1);
if ((int)fetch_achievement_rev(56,$nn)>=366 && (check_achievement_rev(56,$nn)<999)) {
done_achievement_rev(56,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+250 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("除错大师",$nn);
}
elseif ((int)fetch_achievement_rev(56,$nn)>=180 && (check_achievement_rev(56,$nn)<2)) {
done_achievement_rev(56,2,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+100 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("都市传说",$nn);
}
elseif ((int)fetch_achievement_rev(56,$nn)>=1 && (check_achievement_rev(56,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+10 WHERE username='".$nn."'" );
done_achievement_rev(56,1,$nn);
}
}
//57. 击杀回声成就
if ($is_npc==89)
{
update_achievement_rev(57,$nn,((int)fetch_achievement_rev(57,$nn))+1);
if ((int)fetch_achievement_rev(57,$nn)>=103 && (check_achievement_rev(57,$nn)<999)) {
done_achievement_rev(57,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+250 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("暴雷骤雨",$nn);
}
elseif ((int)fetch_achievement_rev(57,$nn)>=52 && (check_achievement_rev(57,$nn)<2)) {
done_achievement_rev(57,2,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+100 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("风驰电掣",$nn);
}
elseif ((int)fetch_achievement_rev(57,$nn)>=1 && (check_achievement_rev(57,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+10 WHERE username='".$nn."'" );
done_achievement_rev(57,1,$nn);
}
}
}
function check_item_achievement_rev($nn,$i,$ie,$is,$ik,$isk)
{
global $gamecfg,$name,$db,$tablepre,$now,$starttime,$gamestate;
//28. 死斗成就
if (($gamestate==50)&&($i=="杏仁豆腐的ID卡"))
{
$t=$now-$starttime;
$besttime=(int)fetch_achievement_rev(28,$nn);
if ($t<$besttime || $besttime==0) update_achievement_rev(28,$nn,$t);
if (!check_achievement_rev(28,$nn) && $t<=1800) {
done_achievement_rev(28,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+250 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("神触",$nn);
}
}
//29. 美食成就
if (($ik=='HS')||($ik=='HH')||($ik=='HB'))
{
$heal=$ie;
if ($ik=='HB') $heal+=$ie;
$uu=((int)fetch_achievement_rev(29,$nn))+$heal;
if ($uu>9999999) $uu=9999999;
update_achievement_rev(29,$nn,$uu);
if (((int)fetch_achievement_rev(29,$nn)>=999983) && (check_achievement_rev(29,$nn))<999) {
done_achievement_rev(29,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+200 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("补给掠夺者",$nn);
}
elseif ((int)fetch_achievement_rev(29,$nn)>=142857 && (check_achievement_rev(29,$nn)<2)) {
done_achievement_rev(29,2,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+50 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("美食家",$nn);
}
elseif ((int)fetch_achievement_rev(29,$nn)>=32767 && (check_achievement_rev(29,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+5 WHERE username='".$nn."'" );
done_achievement_rev(29,1,$nn);
}
}
//30. 贝爷成就
$kk=substr($ik,0,1);
if (($kk=='P')&&($ie>=30))
{
update_achievement_rev(30,$nn,((int)fetch_achievement_rev(30,$nn))+1);
if (((int)fetch_achievement_rev(30,$nn)>=365) && (check_achievement_rev(30,$nn))<999) {
done_achievement_rev(30,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+200 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("贝爷",$nn);
}
elseif ((int)fetch_achievement_rev(30,$nn)>=133 && (check_achievement_rev(30,$nn)<2)) {
done_achievement_rev(30,2,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+50 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("神农",$nn);
}
elseif ((int)fetch_achievement_rev(30,$nn)>=5 && (check_achievement_rev(30,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+5 WHERE username='".$nn."'" );
done_achievement_rev(30,1,$nn);
}
}
//34. 独自逃脱成就
if ($i=="【E.S.C.A.P.E】"){
update_achievement_rev(34,$nn,((int)fetch_achievement_rev(34,$nn))+1);
// +20 切糕与1胜场
$db->query("UPDATE {$tablepre}users SET credits=credits+20 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET wingames=wingames+1 WHERE username='".$nn."'" );
if (((int)fetch_achievement_rev(34,$nn)>=101) && (check_achievement_rev(34,$nn))<999) {
done_achievement_rev(34,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+100 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+200 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("脚底抹油",$nn);
}
elseif ((int)fetch_achievement_rev(34,$nn)>=36 && (check_achievement_rev(34,$nn)<2)) {
done_achievement_rev(34,2,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+50 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+50 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("现实主义者",$nn);
}
elseif ((int)fetch_achievement_rev(34,$nn)>=1 && (check_achievement_rev(34,$nn)<1)) {
done_achievement_rev(34,1,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits+10 WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+5 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("实用主义者",$nn);
}
}
//53. 打钉子成就
if (preg_match ( "/钉$/", $i ) || preg_match ( "/钉\[/", $i )){
$enhance=$ie;
$uu=((int)fetch_achievement_rev(53,$nn))+$enhance;
if ($uu>9999999) $uu=9999999;
update_achievement_rev(53,$nn,$uu);
if (((int)fetch_achievement_rev(53,$nn)>=17777) && (check_achievement_rev(53,$nn))<999) {
done_achievement_rev(53,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+200 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("无情打钉者",$nn);
}
elseif ((int)fetch_achievement_rev(53,$nn)>=1777 && (check_achievement_rev(53,$nn)<2)) {
done_achievement_rev(53,2,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+50 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("棍棒爱好者",$nn);
}
elseif ((int)fetch_achievement_rev(53,$nn)>=777 && (check_achievement_rev(53,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+5 WHERE username='".$nn."'" );
done_achievement_rev(53,1,$nn);
}
}
//54. 磨刀石成就
if (strpos ( $i, '磨刀石' ) !== false){
$enhance=$ie;
$uu=((int)fetch_achievement_rev(54,$nn))+$enhance;
if ($uu>9999999) $uu=9999999;
update_achievement_rev(54,$nn,$uu);
if (((int)fetch_achievement_rev(54,$nn)>=17777) && (check_achievement_rev(54,$nn))<999) {
done_achievement_rev(54,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+200 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("无情磨刀者",$nn);
}
elseif ((int)fetch_achievement_rev(54,$nn)>=1777 && (check_achievement_rev(54,$nn)<2)) {
done_achievement_rev(54,2,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+50 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("磨刀爱好者",$nn);
}
elseif ((int)fetch_achievement_rev(54,$nn)>=777 && (check_achievement_rev(54,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+5 WHERE username='".$nn."'" );
done_achievement_rev(54,1,$nn);
}
}
//55. 针线包成就
if ($i == "针线包"){
$enhance=$ie;
$uu=((int)fetch_achievement_rev(55,$nn))+$enhance;
if ($uu>9999999) $uu=9999999;
update_achievement_rev(55,$nn,$uu);
if (((int)fetch_achievement_rev(55,$nn)>=17777) && (check_achievement_rev(55,$nn))<999) {
done_achievement_rev(55,999,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+200 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("无情补丁",$nn);
}
elseif ((int)fetch_achievement_rev(55,$nn)>=1777 && (check_achievement_rev(55,$nn)<2)) {
done_achievement_rev(55,2,$nn);
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+50 WHERE username='".$nn."'" );
include_once GAME_ROOT.'./include/game/titles.func.php';
get_title("补丁爱好者",$nn);
}
elseif ((int)fetch_achievement_rev(55,$nn)>=777 && (check_achievement_rev(55,$nn)<1)) {
$db->query("UPDATE {$tablepre}users SET credits=credits WHERE username='".$nn."'" );
$db->query("UPDATE {$tablepre}users SET credits2=credits2+5 WHERE username='".$nn."'" );
done_achievement_rev(55,1,$nn);
}
}
}
/**** 以下为旧版成就相关函数 ****/
function valid_achievement($s)
{
global $gamecfg;
require config("gamecfg",$gamecfg);
global $achievement_count;
$k=-1;
//if (strlen($s)<=($achievement_count*4)) return false;
for ($i=1; $i<=$achievement_count*2; $i++)
......@@ -22,6 +1151,7 @@ function init_achievement($t)
{
global $gamecfg;
require config("gamecfg",$gamecfg);
global $achievement_count;
$k=-1; $cnt=0;
$f=0;
while (1)
......
......@@ -279,7 +279,7 @@ function combat($active = 1, $wep_kind = '') {
$log .= npc_chat ( $w_type,$w_name, 'death' );
include_once GAME_ROOT.'./include/game/achievement.func.php';
check_battle_achievement($name,$w_type,$w_name,$wep_temp);
check_battle_achievement_rev($pa,$pd);
if(!$w_type){
if($w_rp < 80){
......
......@@ -2151,7 +2151,7 @@ function itemuse($itmn) {
}
include_once GAME_ROOT.'./include/game/achievement.func.php';
check_item_achievement($name,$i,$ie,$is,$ik,$isk);
check_item_achievement_rev($name,$i,$ie,$is,$ik,$isk);
$mode = 'command';
return;
......
......@@ -834,7 +834,7 @@ function itemmix($mlist, $itemselect=-1) {
//检查成就
include_once GAME_ROOT.'./include/game/achievement.func.php';
check_mixitem_achievement($name,$itm0);
check_mixitem_achievement_rev($name,$itm0);
itemget();
}
......
......@@ -1619,18 +1619,47 @@
function get_skill_inf(&$pa,$sk,$times,$type=0)
{
# 受到眩晕效果
}
// 获取pd面对pa时的躲避率
function get_hide_r_rev(&$pa,&$pd,$mode=0)
{
global $weather_hide_r,$pls_hide_modifier,$pose_hide_modifier,$tactic_hide_modifier;
# 获取基础躲避率
$hide_r = 0;
# 计算天气对躲避率的修正
$wth_r = $weather_hide_r[$weather] ?: 0 ;
# 计算地点对躲避率的修正
//$pls_r = $pls_hide_modifier[$pd['pls']] ?: 0 ;
$pls_r = 0;//暂时不应用地点躲避率 等遇敌率也重做之后再说
# 计算pd姿态对于躲避率的修正:
$pose_r = $pose_hide_modifier[$pd['pose']] ?: 0;
# 计算pd策略对于躲避率的修正:
$tac_r = $tactic_hide_modifier[$pd['tactic']] ?: 0;
# 基础汇总:
$hide_r += $wth_ar + $pose_r + $tac_r;
include_once GAME_ROOT.'./include/game/clubskills.func.php';
# 计算社团技能对躲避率的系数修正(旧):
$hide_r *= get_clubskill_bonus_hide($pd['club'],$pd['skills']);
# 计算社团技能对躲避率的定值修正:
$hide_r = get_clbskill_hide_rate_fix($pa,$pd,$hide_r);
//echo "hide_r = {$hide_r}<br>";
return $hide_r;
}
//获取pa对pd的先制攻击概率,
// 获取pa对pd的先制攻击概率
// $mode 0-标准战斗 1-鏖战 2-追击(追击&鏖战基础先制率不受天气姿态影响)
function get_active_r_rev(&$pa,&$pd,$mode=0)
{
global $log,$active_obbs,$weather,$gamecfg,$chase_active_obbs;
include config('combatcfg',$gamecfg);
# 获取基础先攻率:
if(!$mode)
{
# 获取基础先攻率:
$active_r = $active_obbs;
# 计算天气对先攻率的修正:
$wth_ar = $weather_active_r[$weather] ?: 0;
......@@ -1647,26 +1676,25 @@
# 计算追击状态下pa对pd的先攻加成。默认:战场距离*10%
if($mode == 2) $range_ar += get_battle_range($pa,$pd,1) * 10;
}
# 计算社团技能对于先攻率的系数修正(旧):
$active_r *= get_clubskill_bonus_active($pa['club'],$pa['skills'],$pd['club'],$pd['skills']);
# 计算社团技能对于先攻率的定值修正(新):
$active_r = get_clbskill_active_rate_fix($pa,$pd,$active_r);
# 计算先攻率上下限:
$active_r = max(min($active_r,96),4);
# 计算pa身上的异常状态对先攻率的修正:(pd身上的异常状态不会影响pa的先制率,这个机制以后考虑改掉)
$inf_ar = 1;
if(!empty($pa['inf']))
{
$inf_ar = 1;
foreach ($inf_active_p as $inf_ky => $value)
{
if(strpos($pa['inf'], $inf_ky)!==false){$inf_ar *= $value;}
}
$active_r *= $inf_ar;
}
# 计算社团技能对于先攻率的修正:
include_once GAME_ROOT.'./include/game/clubskills.func.php';
$clbskill_ar = 1;
$clbskill_ar *= get_clubskill_bonus_active($pa['club'],$pa['skills'],$pd['club'],$pd['skills']);
# 计算社团技能对于先攻率的修正(新):
$clbskill_ar *= get_clbskill_activerate($pa,$pd);
# 修正汇总:
$active_r = round($active_r * $clbskill_ar * $inf_ar);
# 计算先攻率上下限:
$active_r = max(min($active_r,96),4);
# 计算pd身上的特殊异常(技能类)对先攻率的修正:
if(!empty($pd['clbpara']['skill']))
{
......@@ -1677,7 +1705,8 @@
$active_r = 100;
}
}
//echo 'active:'.$active_r.' <br>';
//echo 'active = '.$active_r.' <br>';
return $active_r;
}
......@@ -1697,7 +1726,7 @@
return 0;
}
# 被偷袭无法反击
if(isset($pa['bskill_c1_sneak']))
if(isset($pa['bskill_c1_stalk']))
{
$pd['cannot_counter_log'] = "{$pd['nm']}无法反击!";
return 0;
......
......@@ -62,7 +62,7 @@
{
$sk_dice = diceroll(99);
# 「偷袭」或「闷棍」技能生效时,「猛击」必定触发;
$sk_obbs = isset($pa['bskill_c1_sneak'])||isset($pa['bskill_c1_bjack']) ? 100 : get_skillvars('c1_crit','rate');
$sk_obbs = isset($pa['bskill_c1_stalk'])||isset($pa['bskill_c1_bjack']) ? 100 : get_skillvars('c1_crit','rate');
# 成功触发时
if($sk_dice < $sk_obbs)
{
......@@ -92,10 +92,22 @@
return;
}
# 获取社团技能对先攻率(pa是否先攻pd)的修正(新)
function get_clbskill_activerate(&$pa,&$pd)
# 获取社团技能对躲避率(pd是否躲避pa)的定值修正(新)
function get_clbskill_hide_rate_fix(&$pa,&$pd,$r)
{
#pd持有「潜行」时的效果判定:
if(!check_skill_unlock('c5_sneak',$pd))
{
$sk_lvl = get_skilllvl('c5_sneak',$pd);
$sk_r = get_skillvars('c5_sneak','hidegain',$sk_lvl);
$r += $sk_r;
}
return $r;
}
# 获取社团技能对先攻率(pa是否先攻pd)的定值修正(新)
function get_clbskill_active_rate_fix(&$pa,&$pd,$r)
{
$r = 1;
# pa持有「枭眼」时的效果判定:
if(!check_skill_unlock('c3_hawkeye',$pa))
{
......@@ -104,8 +116,8 @@
$pd['wep_range'] = get_wep_range($pd);
if($pa['wep_range'] >= $pd['wep_range'])
{
$sk_r = get_skillvars('c3_hawkeye','activer');
$r += $sk_r/100;
$sk_r = get_skillvars('c3_hawkeye','actgain');
$r += $sk_r;
}
}
# pd持有「枭眼」时的效果判定:
......@@ -116,10 +128,17 @@
$pd['wep_range'] = get_wep_range($pd);
if($pa['wep_range'] < $pd['wep_range'])
{
$sk_r = get_skillvars('c3_hawkeye','activer');
$r -= $sk_r/100;
$sk_r = get_skillvars('c3_hawkeye','actgain');
$r -= $sk_r;
}
}
# pa持有「潜行」时的效果判定:(只在主动发现敌人时应用)
if(!check_skill_unlock('c5_sneak',$pa))
{
$sk_lvl = get_skilllvl('c5_sneak',$pa);
$sk_r = get_skillvars('c5_sneak','actgain',$sk_lvl);
$r += $sk_r;
}
return $r;
}
......
......@@ -621,7 +621,7 @@
$skey_value = parse_skillrules($pvar);
$skey_value = eval("return $skey_value;");
# 置换对应内容
$sk_desc = str_replace("[:{$pvar}:]",$skey_value,$sk_desc);
$sk_desc = str_replace("[^{$pvar}^]",$skey_value,$sk_desc);
}
else
{
......
......@@ -807,7 +807,7 @@
if(!$pa['type'])
{
include_once GAME_ROOT.'./include/game/achievement.func.php';
check_battle_achievement($pa['name'],$pd['type'],$pd['name'],$pa['wep_name']);
check_battle_achievement_rev($pa,$pd);
}
# 保存游戏进行状态
include_once GAME_ROOT.'./include/system.func.php';
......
......@@ -533,7 +533,7 @@ function discover($schmode = 0) {
if($mode_dice < $schmode)
{
//echo "进入遇敌判定<br>";
global $pid,$corpse_obbs,$teamID,$fog,$bid,$gamestate;
global $pdata,$pid,$corpse_obbs,$teamID,$fog,$bid,$gamestate;
global $clbstatusa,$clbstatusb,$clbstatusc,$clbstatusd,$clbstatuse;
$result = $db->query("SELECT * FROM {$tablepre}players WHERE pls='$pls' AND pid!='$pid'");
......@@ -553,6 +553,7 @@ function discover($schmode = 0) {
//移除了重复调用discover()的设定,尝试用一种正常一点的办法确保敌人/尸体发现率符合基础设定值,不然现在的尸体确实太难摸了。
//现在触发遇敌事件只会返回三种结果:1、发现尸体;2、发现敌人、3、敌人隐藏起来;所以实际的尸体发现率=$enemyrate*$corpse_obbs
$meetman_flag = 0;
include_once GAME_ROOT.'./include/game/revattr.func.php';
foreach($enemyarray as $enum)
{
$db->data_seek($result, $enum);
......@@ -588,9 +589,10 @@ function discover($schmode = 0) {
if ((!$edata['type'])&&($artk=='XX')&&(($edata['artk']!='XX')||($edata['art']!=$name))&&($gamestate<50)) continue;
if (($artk!='XX')&&($edata['artk']=='XX')&&($gamestate<50)) continue;
//计算活人发现率
$hide_r = get_hide_r($weather,$pls,$edata['pose'],$edata['tactic'],$edata['club'],$edata['inf']);
include_once GAME_ROOT.'./include/game/clubskills.func.php';
$hide_r *= get_clubskill_bonus_hide($edata['club'],$edata['skills']);
//$hide_r = get_hide_r($weather,$pls,$edata['pose'],$edata['tactic'],$edata['club'],$edata['inf']);
//include_once GAME_ROOT.'./include/game/clubskills.func.php';
//$hide_r *= get_clubskill_bonus_hide($edata['club'],$edata['skills']);
$hide_r = get_hide_r_rev($pdata,$edata);
$enemy_dice = rand(0,99);
$meetman_flag = $enemy_dice<($find_obbs - $hide_r) ? 1 : -1;
break;
......@@ -630,7 +632,6 @@ function discover($schmode = 0) {
//if ($active_r>96) $active_r=96;
//include_once GAME_ROOT.'./include/game/dice.func.php';
include_once GAME_ROOT.'./include/game/revbattle.func.php';
include_once GAME_ROOT.'./include/game/revattr.func.php';
//获取并保存当前玩家数据
$sdata = current_player_save();
//刷新敌人时效性状态
......
......@@ -327,7 +327,7 @@ function syncro($sb){
else {addnews($now,'overmix',get_title_desc($nick).' '.$name,$itm0);}
//检查成就
include_once GAME_ROOT.'./include/game/achievement.func.php';
check_mixitem_achievement($name,$itm0);
check_mixitem_achievement_rev($name,$itm0);
include_once GAME_ROOT.'./include/game/itemmain.func.php';
itemget();
return;
......
......@@ -29,6 +29,7 @@ function gameerrorhandler($code, $msg, $file, $line){
function gexit($message = '',$file = '', $line = 0) {
global $charset,$title,$extrahead,$allowcsscache,$errorinfo;
global $gameversion,$cuser,$cpass;
include template('error');
exit();
}
......
......@@ -506,6 +506,24 @@ function gameover($time = 0, $mode = '', $winname = '') {
} else {//最后幸存、锁定解除、核爆全灭,需要记录优胜者资料
$result = $db->query("SELECT * FROM {$tablepre}players WHERE name='$winner' AND type=0");
$pdata = $db->fetch_array($result);
//锁定解除、幻境解离结局,检查是否为队伍获胜……
if(($winmode == 3 || $winmode == 7) && !empty($pdata['teamID']))
{
$team = $pdata['teamID']; $team_mates = Array($pdata['name']);
$tresult = $db->query("SELECT name FROM {$tablepre}players WHERE teamID='$team' AND type=0");
if($db->num_rows($tresult) > 1)
{
while($tpdata = $db->fetch_array($tresult))
{
if(!in_array($tpdata['name'],$team_mates))
{
$team_mates[] = $tpdata['name'];
//队伍获胜时 同队玩家也可以获得对应结局成就
check_end_achievement_rev($tpdata['name'],$winmode,1);
}
}
}
}
$result2 = $db->query("SELECT motto FROM {$tablepre}users WHERE username='$winner'");
$pdata['motto'] = $db->result($result2, 0);
$result3 = $db->query("SELECT name,killnum FROM {$tablepre}players WHERE type=0 order by killnum desc, lvl desc limit 1");
......@@ -519,12 +537,14 @@ function gameover($time = 0, $mode = '', $winname = '') {
$pdata['getime'] = $time;
$pdata['hdmg'] = $hdamage;
$pdata['hdp'] = $hplayer;
$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,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['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']."')");
$pdata['teamMate'] = !empty($team_mates) ? json_encode($team_mates) : '';
$pdata['teamIcon'] = !empty($team_mates) ? 1 : 0;
$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']."')");
}
//检查成就
include_once GAME_ROOT.'./include/game/achievement.func.php';
check_end_achievement($winner,$winmode);
check_end_achievement_rev($winner,$winmode);
rs_sttime();//重置游戏开始时间和当前游戏状态
......
<table>
<tr>
<!--{eval $alvl = $cpl[$aid]; $rlvl = $alvl == 999 ? $alist[$aid]['lvl']-1 : $alvl;}-->
<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/achievement_0.gif">
<!--{else}-->
<img src="img/achievement_not_done.gif">
<!--{/if}-->
<!--{/if}-->
</td>
<td valign="top" align="left">
<!-- 当前阶段成就名 -->
<!--{if empty($alist[$aid]['name'][$alvl]) }-->
<b>{$alist[$aid]['name'][$rlvl]}</b>
<!--{else}-->
<b>{$alist[$aid]['name'][$alvl]}</b>
<!--{/if}-->
<!--{if !empty($alist[$aid]['lvldesc'][$alvl]) }-->
<!-- 存在预设的对应阶段的完成状态描述文本 -->
{$alist[$aid]['lvlname'][$alvl]}
<!--{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">
<!--{if !empty($alist[$aid]['request'][$alvl]) }-->
<!--{eval $areq = $alist[$aid]['request'][$alvl]; $areq = str_replace("[:request:]",$prc[$aid],$areq);}-->
{$areq}
<!--{else}-->
目前进度:{$prc[$aid]}次
<!--{/if}-->
</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>
......@@ -31,6 +31,7 @@
<th>头像</th>
<th>社团</th>
<th>成就</th>
<th>成就(新)</th>
<th>称号表</th>
<th>口头禅</th>
<th>杀人留言</th>
......@@ -59,6 +60,7 @@
<td><input type="text" name="icon_$n" size="2" maxlength="2" value="$ur['icon']" disabled="true"></td>
<td>{$clubinfo[$ur['club']]}</td>
<td><input type="text" name="achievement_$n" size="20" maxlength="400" value="$ur['achievement']" disabled="true"></td>
<td><input type="text" name="achrev_$n" size="20" maxlength="400" value="$ur['achrev']" disabled="true"></td>
<td><input type="text" name="nicks_$n" size="20" maxlength="300" value="$ur['nicks']" disabled="true"></td>
<td><input type="text" name="motto_$n" size="20" maxlength="60" value="$ur['motto']" disabled="true"></td>
<td><input type="text" name="killmsg_$n" size="20" maxlength="20" value="$ur['killmsg']" disabled="true"></td>
......@@ -85,6 +87,7 @@
<td><input type="text" name="icon_$n" size="2" maxlength="2" value="$ur['icon']"></td>
<td>{$clubinfo[$ur['club']]}</td>
<td><input type="text" name="achievement_$n" size="20" maxlength="400" value="$ur['achievement']"></td>
<td><textarea name="achrev_$n" style="overflow:auto">$ur['achrev']</textarea></td>
<td><input type="text" name="nicks_$n" size="20" maxlength="300" value="$ur['nicks']"></td>
<td><input type="text" name="motto_$n" size="20" maxlength="60" value="$ur['motto']"></td>
<td><input type="text" name="killmsg_$n" size="20" maxlength="60" value="$ur['killmsg']"></td>
......@@ -97,10 +100,11 @@
<!--{/loop}-->
<tr>
<td colspan=2><input type="checkbox" name="user_all" onchange="for(i=0; i<=$n;i++){if(! $('user_'+i).disabled){if(this.checked==true){$('user_'+i).checked=true}else{$('user_'+i).checked=false}}}">全选</td>
<td colspan=12 style="text-align:center;">
<td colspan=16 style="text-align:center;">
<input type="submit" name="submit" value="封停选中玩家" onclick="$('urcmd').value='ban'">
<input type="submit" name="submit" value="解封选中玩家" onclick="$('urcmd').value='unban'">
<input type="submit" name="submit" value="删除选中玩家" onclick="$('urcmd').value='del'">
<input type="submit" name="submit" value="更新选中玩家的成就结构" onclick="$('urcmd').value='checkach'">
</td>
</tr>
<!--{/if}-->
......
<table><tr>
<td>
<!--{if ($cpl[16]) }--><img src="img/ach/16.gif"><!--{else}--><img src="img/achievement_not_done.gif"><!--{/if}-->
</td>
<td valign="top" align="left">
<b>只是运气好而已</b>
<!--{if ($cpl[16]) }--><span class="lime">[完成]</span><!--{else}--><span class="red">[未完成]</span><!--{/if}--><br>
<font color="yellow">完成次数: $prc[16]次<br></font>
<font color="olive">奖励: 积分150 <span class="evergreen">称号 生存者</span><br></font>
完成结局:最后幸存<br>
</td>
</tr></table>
<table><tr>
<td>
<!--{if ($cpl[17]) }--><img src="img/ach/17.gif"><!--{else}--><img src="img/achievement_not_done.gif"><!--{/if}-->
</td>
<td valign="top" align="left">
<b>麻烦制造机</b>
<!--{if ($cpl[17]) }--><span class="lime">[完成]</span><!--{else}--><span class="red">[未完成]</span><!--{/if}--><br>
<font color="yellow">完成次数: $prc[17]次<br></font>
<font color="olive">奖励: 切糕100 <span class="evergreen">称号 叶子钦定!</span><br></font>
完成结局:核爆全灭<br>
</td>
</tr></table>
<table><tr>
<td>
<!--{if ($cpl[18]) }--><img src="img/ach/18.gif"><!--{else}--><img src="img/achievement_not_done.gif"><!--{/if}-->
</td>
<td valign="top" align="left">
<b>最后的荣光</b>
<!--{if ($cpl[18]) }--><span class="lime">[完成]</span><!--{else}--><span class="red">[未完成]</span><!--{/if}--><br>
<font color="yellow">完成次数: $prc[18]次<br></font>
<font color="olive">奖励: 积分500 <span class="evergreen">称号 最后的荣光</span><br></font>
完成结局:锁定解除<br>
</td>
</tr></table>
<table><tr>
<td>
<!--{if ($cpl[19]) }--><img src="img/ach/19.gif"><!--{else}--><img src="img/achievement_not_done.gif"><!--{/if}-->
</td>
<td valign="top" align="left">
<b>奇迹的篝火</b>
<!--{if ($cpl[19]) }--><span class="lime">[完成]</span><!--{else}--><span class="red">[未完成]</span><!--{/if}--><br>
<font color="yellow">完成次数: $prc[19]次<br></font>
<font color="olive">奖励: 积分1000 切糕 1000 <span class="evergreen">称号 奇迹的篝火</span><br></font>
完成结局:幻境解离<br>
</td>
</tr></table>
<table><tr>
<td>
<!--{if ($cpl[34]=='999') }--><img src="img/ach/34_999.gif"><!--{/if}-->
<!--{if ($cpl[34]=='0') }--><img src="img/ach/N.gif"><!--{/if}-->
<!--{if (($cpl[34]!='999')&&($cpl[34]!='0')) }--><img src="img/ach/34.gif"><!--{/if}-->
</td>
<td valign="top" align="left">
<b>
<!--{if ($cpl[34]=='0') }-->逃避可耻?<!--{/if}-->
<!--{if ($cpl[34]=='1') }-->但它有用!<!--{/if}-->
<!--{if ($cpl[34]=='2') }-->直面现实<!--{/if}-->
<!--{if ($cpl[34]=='999') }-->逃脱大师<!--{/if}-->
</b>
<!--{if ($cpl[34]=='999') }--><span class="lime">[完成]</span><!--{else}--><!--{if ($cpl[34]==0) }--><span class="red">[未完成]</span><!--{else}--><span class="clan">[进行中]</span><!--{/if}--><!--{/if}--><br>
<font color="yellow">目前进度: {$prc[34]}次<br></font>
<!--{if ($cpl[34]=='0') }--><font color="olive">奖励: 积分10 切糕5<br><span class="evergreen">称号 实用主义者</span><br></font> 独自逃离幻境1次。<br><!--{/if}-->
<!--{if ($cpl[34]=='1') }--><font color="olive">奖励: 积分50 切糕50<br><span class="evergreen">称号 现实主义者</span><br></font> 独自逃离幻境36次。<br><!--{/if}-->
<!--{if ($cpl[34]=='2') }--><font color="olive">奖励: 积分100 切糕200<br><span class="evergreen">称号 脚底抹油</span><br></font> 独自逃离幻境101次。<br><!--{/if}-->
<!--{if ($cpl[34]=='999') }--><font color="olive">奖励: 积分100 切糕200<br><span class="evergreen">称号 脚底抹油</span><br></font> 独自逃离幻境101次。<br><!--{/if}-->
</td>
</tr></table>
\ No newline at end of file
......@@ -19,22 +19,33 @@
</td>
</tr>
</table>
<!-- 成就显示界面(新) -->
<table>
<tr><td>
{template user_end_achievement}
</td></tr>
<tr><td>
{template user_battle_achievement}
</td></tr>
<tr><td>
{template user_mixitem_achievement}
</td></tr>
<tr><td>
{template user_lifetime_achievement}
</td></tr>
<tr><td>
{template user_other_achievement}
</td></tr>
<!--{loop $atype $tid $tarr}-->
<tr>
<td>
<div class="subtitle" align="left">{$tarr['name']}</div>
{$tarr['desc']}
<table border="1">
<!--{loop $tarr['ach'] $key $aid}-->
<!--{if !$key%3}--><tr><!--{/if}-->
<!--{eval $adata = init_achtabledata($aid);}-->
<!--{if is_array($adata)}-->
<td width="300" align="left" valign="top">
<!--{eval include template($adata[0]);}-->
</td>
<!--{else}-->
<td width="300" align="left" valign="top">
<!--成就编号{$aid}加载错误。<br>请联系管理员。-->
<!--{eval include template('achievement_temp');}-->
</td>
<!--{/if}-->
<!--{if ($key == count($tarr['ach'])-1 || (!(($key+1)%3) && $key!=0))}--></tr><!--{/if}-->
<!--{/loop}-->
</table>
</td>
</tr>
<!--{/loop}-->
</table>
</center>
{template footer}
......
......@@ -8,8 +8,8 @@
<TR height="20">
<TD class="b1" width="30px"><span></span></TD>
<TD class="b1" width="60px"><span>胜利方式</span></TD>
<TD class="b1" width="95px"><span>优胜者名</span></TD>
<TD class="b1" width="75px"><span>头衔</span></TD>
<TD class="b1" width="95px"><span>优胜者名</span></TD>
<TD class="b1" width="80px"><span>头像</span></TD>
<TD class="b1"><span>游戏结束时间</span></TD>
<TD class="b1"><span>胜利者留言</span></TD>
......@@ -22,8 +22,21 @@
<TR height="20">
<TD class="b2" ><span>$gid</span></TD>
<TD class="b3" ><span>$gwin[$info['wmode']]</span></TD>
<TD class="b3" style="white-space: nowrap;"><!--{if $info['name']}--><span class="evergreen"><u><a href="user_profile.php?playerID=$info['name']">$info['name']</a></u></span><!--{else}--><span class="grey"></span><!--{/if}--></TD>
<TD class="b3" ><span>$info['nickinfo']</span></TD>
<TD class="b3" ><!--{if !empty($info['nickinfo'])}--><span>$info['nickinfo']<!--{else}--><span class="grey">-</span><!--{/if}--></TD>
<TD class="b3" style="white-space: nowrap;">
<!--{if $info['name']}-->
<!--{if is_array($info['name'])}-->
<span>{$info['teamID']}</span><br>
<!--{loop $info['name'] $tname}-->
<span class="evergreen"><u><a href="user_profile.php?playerID=$tname">$tname</a></u></span><br>
<!--{/loop}-->
<!--{else}-->
<span class="evergreen"><u><a href="user_profile.php?playerID=$info['name']">$info['name']</a></u></span>
<!--{/if}-->
<!--{else}-->
<span class="grey"></span>
<!--{/if}-->
</TD>
<TD class="b3"><span><img src="img/$info['iconImg']" style="width:70;height:40;"></span></TD>
<TD class="b3"><span>$info['date']</span><br><span>$info['time']</span></TD>
<TD class="b3" ><!--{if $info['motto']}--><span class="white">$info['motto']</span><!--{else}--><span class="grey"></span><!--{/if}--></TD>
......
......@@ -39,12 +39,41 @@ $winning_rate=$validgames?round($wingames/$validgames*100)."%":'0%';
include_once GAME_ROOT.'./include/game/achievement.func.php';
$ach=$udata['achievement'];
$n=$udata['username'];
if (!valid_achievement($ach)) {
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']))
{
global $achievement_count;
include_once GAME_ROOT.'./include/game/achievement.func.php';
$alist = get_achlist();
$new_ach = Array(); $cpl = Array(); $prc = Array();
foreach($alist as $i => $iarr)
{
if($i <= 57)
{
$cpl[$i]=check_achievement($i,$n);
$prc[$i]=fetch_achievement($i,$n);
//新成就储存结构内,只会保存有进度的成就
if(!empty($cpl[$i]) || !empty($prc[$i]))
{
// 到达999阶段的成就 替换为配置中预设的达成等级
if($cpl[$i] == 999) $cpl[$i] = $iarr['lvl'] ?: count($iarr['name']);
$new_ach[$i]['l'] = $cpl[$i] ?: 0;
$new_ach[$i]['v'] = $prc[$i] ?: 0;
}
}
}
$new_ach = json_encode($new_ach);
$db->query("UPDATE {$tablepre}users SET achrev='$new_ach' WHERE username='".$udata['username']."'" );
$cpl = Array(); $prc = Array();
}
//解析成就的完成情况
global $gamecfg;
//解析成就的完成情况//已废弃
/*global $achievement_count;
require config("gamecfg",$gamecfg);
for ($i=0; $i<$achievement_count; $i++)
{
......@@ -52,8 +81,18 @@ for ($i=0; $i<$achievement_count; $i++)
$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();
foreach($alist as $aid => $arr)
{
$cpl[$aid] = isset($udata['achrev'][$aid]['l']) ? $udata['achrev'][$aid]['l'] : 0;
//这一条是临时为了兼容旧版本数据 之后把旧成就完全整理好后,就可以把这条注释掉了
if($cpl[$aid] == $alist[$aid]['lvl']) $cpl[$aid] = 999;
$prc[$aid] = isset($udata['achrev'][$aid]['v']) ? $udata['achrev'][$aid]['v'] : 0;
}
include template('user_profile');
......@@ -27,6 +27,33 @@ if($mode == 'enter') {
if($db->num_rows($result) > $iplimit) { gexit($_ERROR['ip_limit'],__file__,__line__); }
}
// 加入游戏时,检查是否需要转化新版成就数据结构
if(!empty($udata['achievement']) && empty($udata['achrev']))
{
include_once GAME_ROOT.'./include/game/achievement.func.php';
$alist = get_achlist();
$new_ach = Array();$cpl = Array(); $prc = Array();
foreach($alist as $i => $iarr)
{
if($i <= 57)
{
$cpl[$i]=check_achievement($i,$n);
$prc[$i]=fetch_achievement($i,$n);
//新成就储存结构内,只会保存有进度的成就
if(!empty($cpl[$i]) || !empty($prc[$i]))
{
// 到达999阶段的成就 替换为配置中预设的达成等级
if($cpl[$i] == 999) $cpl[$i] = $iarr['lvl'] ?: count($iarr['name']);
$new_ach[$i]['l'] = $cpl[$i] ?: 0;
$new_ach[$i]['v'] = $prc[$i] ?: 0;
}
}
}
$new_ach = json_encode($new_ach);
$db->query("UPDATE {$tablepre}users SET achrev='$new_ach' WHERE username='".$udata['username']."'" );
$cpl = Array(); $prc = Array();
}
$ip = real_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) {
......@@ -73,13 +100,13 @@ if($mode == 'enter') {
$arhe = $arae = $arfe = $arte = 0;
$arhs = $aras = $arfs = $arts = 0;
//获取已经完成的成就
include_once GAME_ROOT.'./include/game/achievement.func.php';
//获取已经完成的成就 已废弃
/*include_once GAME_ROOT.'./include/game/achievement.func.php';
$achievement = $udata['achievement'];
if (!valid_achievement($achievement)) {
$achievement=init_achievement($achievement);
$db->query("UPDATE {$tablepre}users SET achievement='$achievement' WHERE username='".$name."'" ); //如果第一次游戏,初始化成就
}
}*/
for ($i=0; $i<=6; $i++){$itm[$i] = $itmk[$i] = $itmsk[$i] = ''; $itme[$i] = $itms[$i] = 0;}
$itm[1] = '面包'; $itmk[1] = 'HH'; $itme[1] = 120; $itms[1] = 15;
$itm[2] = '矿泉水'; $itmk[2] = 'HS'; $itme[2] = 140; $itms[2] = 15;
......
......@@ -24,15 +24,25 @@ if($command == 'info') {
}
} else {
if(!isset($start) || !$start){
$result = $db->query("SELECT gid,name,nick,icon,gd,wep,wmode,getime,motto,hdp,hdmg,hkp,hkill FROM {$tablepre}winners ORDER BY gid desc LIMIT $winlimit");
$result = $db->query("SELECT gid,name,nick,icon,gd,wep,wmode,teamID,teamMate,teamIcon,getime,motto,hdp,hdmg,hkp,hkill FROM {$tablepre}winners ORDER BY gid desc LIMIT $winlimit");
} else {
$result = $db->query("SELECT gid,name,nick,icon,gd,wep,wmode,getime,motto,hdp,hdmg,hkp,hkill FROM {$tablepre}winners WHERE gid<='$start' ORDER BY gid desc LIMIT $winlimit");
$result = $db->query("SELECT gid,name,nick,icon,gd,wep,wmode,teamID,teamMate,teamIcon,getime,motto,hdp,hdmg,hkp,hkill FROM {$tablepre}winners WHERE gid<='$start' ORDER BY gid desc LIMIT $winlimit");
}
while($wdata = $db->fetch_array($result)) {
$wdata['date'] = date("Y-m-d",$wdata['getime']);
$wdata['time'] = date("H:i:s",$wdata['getime']);
$wdata['iconImg'] = $wdata['gd'] == 'f' ? 'f_'.$wdata['icon'].'.gif' : 'm_'.$wdata['icon'].'.gif';
$wdata['nickinfo'] = !empty($wdata['nick']) ? get_title_desc($wdata['nick']) : '-';
if(!empty($wdata['teamMate']))
{
$wdata['teamID'] = '<span class="gold">【团队 - '.$wdata['teamID'].'】</span>';
$wdata['iconImg'] = 't_'.$wdata['teamIcon'].'.gif';
$wdata['nickinfo'] = '<span class="gold">团队胜利</span>';
$wdata['name'] = json_decode($wdata['teamMate'],true);
}
else
{
$wdata['iconImg'] = $wdata['gd'] == 'f' ? 'f_'.$wdata['icon'].'.gif' : 'm_'.$wdata['icon'].'.gif';
$wdata['nickinfo'] = !empty($wdata['nick']) ? get_title_desc($wdata['nick']) : '';
}
$winfo[$wdata['gid']] = $wdata;
}
$listnum = floor($gamenum/$winlimit);
......
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