Commit d1d623ec authored by Nemo Ma's avatar Nemo Ma Committed by GitHub

Merge pull request #5 from hikawiier/waaagh

Elements
好活当赏:30RP
parents e538d938 ec76bd36
...@@ -126,7 +126,22 @@ if($hp > 0){ ...@@ -126,7 +126,22 @@ if($hp > 0){
$mode = 'rest'; $mode = 'rest';
} }
} elseif($command == 'itemmain') { } elseif($command == 'itemmain') {
$mode = $itemcmd; if(($club == 20 && $itemcmd == 'itemmix') || ($club != 20 && ($itemcmd == 'elementmix' || $itemcmd == 'elementbag')))
{
$log .= "你的手突然掐住了你的头左右摇摆!<br><span class='yellow'>“你还想要干什么,啊?你还想要干什么!!”</span><br>看来你的手和脑子之间起了一点小摩擦。<br><br>";
$mode = 'command';
}
else
{
if($club == 20)
{
global $elements_info;
include_once GAME_ROOT.'./include/game/elementmix.func.php';
$emax = get_emix_itme_max();
foreach($elements_info as $e_key=>$e_info) ${'etaginfo'.$e_key} ="<span title=\"".print_elements_tags($e_key)."\">";
}
$mode = $itemcmd;
}
} elseif($command == 'song') { } elseif($command == 'song') {
$sname=trim(trim($art,'【'),'】'); $sname=trim(trim($art,'【'),'】');
include_once GAME_ROOT.'./include/game/song.inc.php'; include_once GAME_ROOT.'./include/game/song.inc.php';
...@@ -247,6 +262,11 @@ if($hp > 0){ ...@@ -247,6 +262,11 @@ if($hp > 0){
else{itemmerge($merge1,$merge2);} else{itemmerge($merge1,$merge2);}
} elseif($command == 'itemmove') { } elseif($command == 'itemmove') {
itemmove($from,$to); itemmove($from,$to);
} elseif(strpos($command,'split_itm') === 0) {
//把道具分解为元素 在数据库里注销道具的流程已经在discover()里走完了
$split_item = substr($command,9);
include_once GAME_ROOT . './include/game/elementmix.func.php';
split_item_to_elements($split_item);
} elseif(strpos($command,'drop') === 0) { } elseif(strpos($command,'drop') === 0) {
$drop_item = substr($command,4); $drop_item = substr($command,4);
itemdrop($drop_item); itemdrop($drop_item);
...@@ -280,6 +300,45 @@ if($hp > 0){ ...@@ -280,6 +300,45 @@ if($hp > 0){
itemmix($mixlist,$itemselect); itemmix($mixlist,$itemselect);
else itemmix($mixlist); else itemmix($mixlist);
} }
} elseif($command == 'elementmix') {
if($club == 20)
{
$e_mixlist = Array();
foreach($elements_info as $e_key=>$e_info)
{
global ${'element'.$e_key};
$m_e_key = $e_key + 1;//这样就不用污染原本的js了
${'emitm'.$e_key.'_num'} = round( ${'emitm'.$e_key.'_num'});
if(${'mitm'.$m_e_key}>=0 && ${'element'.$e_key} && ${'emitm'.$e_key.'_num'}>0 && ${'emitm'.$e_key.'_num'}<=${'element'.$e_key})
{
//打入参与合成的元素编号与数量
$e_mixlist[$e_key] = ${'emitm'.$e_key.'_num'};
}
}
if(count($e_mixlist)>0)
{
$er = ($lvl>=15 && $emitme_r && $change_emr==1) ? $emitme_r : NULL;
$emr = ($lvl>=5 && $emitme_max_r && $change_emax==1) ? $emitme_max_r : NULL;
include_once GAME_ROOT.'./include/game/elementmix.func.php';
element_mix($e_mixlist,$emr,$er);
}
else
{
$log.="至少要放入一份元素。<br>";
}
}
else
{
$log.="你挠了挠头,没搞懂自己到底要干什么。<br>";
}
$mode='command';
} elseif($command == 'elementbag') {
if($club == 20)
{
include_once GAME_ROOT.'./include/game/elementmix.func.php';
print_elements_info();
}
$mode='command';
} elseif($command == 'itemencase') { } elseif($command == 'itemencase') {
if(strpos($arbsk,'^')!==false && $arbs && $arbe){ if(strpos($arbsk,'^')!==false && $arbs && $arbe){
$ilist = array(); $ilist = array();
......
<?php
if(!defined('IN_GAME')) exit('Access Denied');
/********元素大师配置文件********/
//wei shenme hui zheyang ne....
global $no_type_to_e_list,$no_itm_to_e_list,$no_itmk_to_e_list,$no_itmsk_to_e_list,$no_emix_circulation;
global $split_itm_fix,$split_spitm_fix,$split_spcorpse_fix;
global $split_corpse_lvl_r,$split_default_itmk_r,$split_itmk_r,$split_default_itmsk_fix,$split_itmsk_fix;
global $temp_etags;
global $max_emix_itme_start,$max_emix_itme_up;
global $emix_list,$random_emix_list,$dommix_list,$submix_list,$random_submix_list,$itmk_to_itmsk_tags;
global $emix_luck_info,$emix_tips_arr,$emix_name_brackets_arr,$emix_name_prefix_arr,$emix_name_meta_arr,$emix_name_tail_arr;
global $emix_slip;
//过滤选项:
//不可以被拆解的NPC类型
$no_type_to_e_list = Array();
//不可以被拆解的【道具】(关键词匹配)
$no_itm_to_e_list = Array();
//不可以被拆解的【道具类别】
$no_itmk_to_e_list = Array('N','WN','p','fy','ygo');
//不可以被拆解的【道具属性】
$no_itmsk_to_e_list = Array('v','^');
//使用元素合成的道具自带灵魂绑定属性(启用:1)
$no_emix_circulation = 0;
//是否启用研究模式(启用:1)
//TODO:研究模式:每局游戏初始化时,为元素随机分配不同的特征,为特征组合分配随机配方。
//玩家需要通过阅读提示纸条,或合成出对应的类型/属性,才能了解到元素特征、组合配方,并显示在技能升级页面。
//$enable_emix_research_mode = 0;
/********拆解相关配置********/
//定值:(顺序:优先判定全词匹配→之后判定关键词匹配)
//拆解【特定道具】(全词匹配) 固定会获得的元素、数量
$split_itm_fix = Array
(
/*** 秘钥分解 ***/
//分解冰炎钥匙 获得 随机配方_2 的第 0,1 条素材
'冰炎钥匙·冰' => 'r_2-0',
'冰炎钥匙·炎' => 'r_2-1',
//分解三女主歌词卡 获得 随机配方_3 的第 0,1,2 条素材
'歌词卡片【海洋】' => 'r_3-0',
'歌词卡片【大地】' => 'r_3-1',
'歌词卡片【星空】' => 'r_3-2',
//分解黑色碎片、十字发卡 获得 随机配方_4 的第 0,1 条素材
'黑色碎片' => 'r_4-0',
'十字发卡' => 'r_4-1',
//分解琉璃血 获得随机配方_5 的第 1 条素材
'琉璃血' => 'r_5-1',
/*** 道具分解 ***/
'◆火之碎片' => Array(0=>77,1=>77,2=>77,3=>77,4=>77,5=>77), //全元素+77
'白色方块' => Array(0=>110), //昼闪闪+100
'黑色方块' => Array(5=>110), //夜静静+100
'消音器' => Array(5=>22), //夜静静+22
'打火机' => Array(1=>111), //暖洋洋+111
'树叶' => Array(3=>88), //郁萌萌+88
'毒药' => Array(5=>21), //夜静静+21
'电池' => Array(0=>15,4=>17), //亮晶晶+15、昼闪闪+17
'バカ⑨制冰块' => Array(2=>19,5=>21), //冷冰冰+19、夜静静+21
);
//拆解【特定道具】(关键词匹配,顺序越靠前优先级越高) 固定会获得的元素、数量
$split_spitm_fix = Array
(
'宝石方块' => 200, //随机元素+200
'方块' => 100, //随机元素+100
);
//拆解【特定类别NPC尸体】会获得的元素、数量
$split_spcorpse_fix = Array
(
/*** 秘钥分解 ***/
//分解种火尸体 获得 随机配方_0 的第 r(随机) 条素材
92 => 'r_0-r',
//分解执行官尸体 获得 随机配方_1 的第 0,1,2 条素材
7 => Array('电击使 御坂 美琴'=> 'r_1-0','班主任 坂持 金发'=> 'r_1-1','花之领主 风见 幽香'=> 'r_1-2',),
//分解武神尸体 获得随机配方_5 的第 0 条素材
21 => 'r_5-0',
);
//系数:
//拆解的对象等级与获得元素的数量关系(默认:等级*1) 什么,小兵竟然有30级!?
$split_corpse_lvl_r = 1;
//任意【类别】对获取元素数量的系数修正(默认:0.8)(基础的元素数量:道具(效果+耐久)/2 *该系数)
$split_default_itmk_r = 0.8;
//指定【类别】对获取元素数量的系数修正
$split_itmk_r = Array
(
//陷阱
'T' => 0.3,
//(*拆解复合武器 x1.5)
'WGK' => 1.5,
'WCF' => 1.5,
'WCP' => 1.5,
'WKF' => 1.5,
'WKP' => 1.5,
'WFK' => 1.5,
'WDG' => 1.5,
'WDF' => 1.5,
'WJ' => 1.2,
//补给品x0.05
'HH' => 0.03,
'HS' => 0.03,
'HB' => 0.05,
'PB2' => 0.035,
'PB' => 0.03,
'PH' => 0.02,
'PS' => 0.02,
//药剂 x10
'C' => 10,
//强化药物……这也舍得拆?
'ME'=> 18,
'MH'=> 17,
'M'=> 10,
'V'=> 10,
'VV'=> 15,
//弹药……这也要拆!?
'GBh' => 5,
'GBr' => 0.003,
'GBi' => 0.005,
'GBe' => 0.005,
'GB' => 0.004,
);
//单个任意【属性】对标的元素数量(默认:50)
$split_default_itmsk_fix = 50;
//特定【属性】对标的元素数量
$split_itmsk_fix = Array
(
//物理攻击:
'R' => 11, //馄饨伤害
'N' => 68, //冲击
'n' => 89, //贯穿
'r' => 144, //连击
//属性攻击:
'u' => 52, //火焰
'i' => 34, //冻气
'w' => 49, //音波
'e' => 39, //带电
'p' => 51, //带毒
'd' => Array('default'=>77,'WD'=>22,'WDG'=>33,'WDF'=>33), //爆炸 出现在爆炸物上时降低价值
'f' => 78, //灼焰
'k' => 79, //冰华
//物理防御类:14
'P' => 14,
'K' => 14,
'C' => 14,
'G' => 14,
'F' => 14,
'D' => 28, //防爆好!
'A' => 101, //全系防御
'B' => 1, //伤害抹消……
//属性防御类:17
'U' => 17,
'E' => 17,
'I' => 17,
'W' => 17,
'q' => 17,
'a' => 89, //属性防御
'b' => 1, //属性抹消
//杂项:
'M' => 33, //探雷
'S' => 15, //消音
'c' => 26, //重击辅助
'H' => 42, //HP制御
'h' => 1997, //伤害制御
//?:
'j' => 11, //多重
'J' => 22, //超量素材 //我有一个想法 但是这里写不下了
'o' => 66, //一发
'z' => 77, //天然
'x' => 777, //奇迹
'Z' => 1, //菁英
);
/********合成相关配置********/
//【特征】:每个元素带有若干个【主要特征】与【次要特征】。
//【主要特征】:用于决定合成产物的【类别】,合成时【投入份数最多】的元素会显现其主要特征。投入单数份元素时提供【第一个主特征】,否则提供【第二个主特征】
//【次要特征】:用于决定合成产物的【属性】。
//元素特征预设模板(关闭研究模式的情况下,每局游戏内元素的特征依此模板固定。)
$temp_etags = Array
(
//dom => 主要特征(类别) sub => 次要特征(属性)
//max_d(s)_tags => 仅在研究模式开启的情况下生效,用于限定元素随机生成的标签上限
0 => Array('dom' => Array('WD','DF'), 'sub' => Array('d','D','R','z'), 'max_d_tags'=>2, 'max_s_tags'=>4,), //亮晶晶
1 => Array('dom' => Array('WG','DA'), 'sub' => Array('u','G','U','c'), 'max_d_tags'=>2, 'max_s_tags'=>4,), //暖洋洋
2 => Array('dom' => Array('WC','DH'), 'sub' => Array('i','C','I','M'), 'max_d_tags'=>2, 'max_s_tags'=>4,), //冷冰冰
3 => Array('dom' => Array('WK','HS'), 'sub' => Array('p','K','q','H'), 'max_d_tags'=>2, 'max_s_tags'=>4,), //郁萌萌
4 => Array('dom' => Array('WP','HH'), 'sub' => Array('e','P','E','x'), 'max_d_tags'=>2, 'max_s_tags'=>4,), //昼闪闪
5 => Array('dom' => Array('WF','DB'), 'sub' => Array('w','F','W','S'), 'max_d_tags'=>2, 'max_s_tags'=>4,), //夜静静
);
//合成出的道具效果上限值(0级时):
$max_emix_itme_start = 45;
//每等级能够提升的道具效果上限(具体计算方法在get_emix_itme_max()内)
$max_emix_itme_up = 29;
//固定合成配方:投入固定数量元素 输出指定结果
$emix_list = Array
(
//子弹杯里伏特加加冰 兑小可可乐
Array('stuff'=>Array(1=>58,5=>18),'result'=>Array('大卫·马丁内斯','HB',58,18,'p'),),
//UG:投入全种类元素各1份
Array('stuff'=>Array(0=>1,1=>1,2=>1,3=>1,4=>1,5=>1,),'result'=>Array('Untainted Glory','A',1,1,'Z'),),
//仪水镜:投入全种类元素各7份
Array('stuff'=>Array(0=>7,1=>7,2=>7,3=>7,4=>7,5=>7,),'result'=>Array('仪水镜','Y',1,1,),),
);
//随机的固定合成配方(?):需要的素材随机 输出的结果固定 //随机指的是在每局生成临时配置文件时决定 不是完全随机
$random_emix_list = Array
(
//'stuff'=> 键名=>随机元素在数组中的自然排序的位置 键值=> 'r_x-y' 的格式等同于 rand(x,y)
//'class'=>'hidden' 不会被提示纸条揭露的配方
//0.电掣召唤仪:分解种火尸体随机获得:数量分别在1~10、10~20、20~30、30~40、40~50之间的5种不同元素
0 => Array('stuff'=>Array(0=>'r1-10',1=>'r10-20',2=>'r20-30',3=>'r30-40',4=>'r40-50'),'result'=>Array('电掣召唤仪','Y',1,1,)),
//1.游戏解除钥匙(执行官ID卡):分解执行官尸体时依次获得:数量在1000~2000之间的3种不同元素
1 => Array('class'=>'hidden','stuff'=>Array(0=>'r1000-2000',1=>'r1000-2000',2=>'r1000-2000'),'result'=>Array('游戏解除钥匙','Y',1,1,)),
//2.游戏解除钥匙(真红暮):分解冰炎钥匙火·冰时依次获得:数量在10000~99999之间的2种不同元素
2 => Array('class'=>'hidden','stuff'=>Array(0=>'r10000-99999',1=>'r10000-99999'),'result'=>Array('游戏解除钥匙','Y',1,1,)),
//3.破灭之诗:分解三女主歌词卡时依次获得:数量在100~999之间的3种不同元素
3 => Array('class'=>'hidden','stuff'=>Array(0=>'r100-999',1=>'r100-999',2=>'r100-999'),'result'=>Array('破灭之诗','Y',1,1,95)),
//4.黑色发卡:分解黑色碎片、十字发卡时依次获得:数量在500~1000、10000~29999之间的2种不同元素
4 => Array('class'=>'hidden','stuff'=>Array(0=>'r500-1000',1=>'r10000-29999'),'result'=>Array('黑色发卡','X',1,1,)),
//5.『C.H.A.O.S』:分解武神尸体、琉璃血时依次获得:数量在39999~59999、39999~79999之间的2种不同元素
5 => Array('class'=>'hidden','stuff'=>Array(0=>'r39999-59999',1=>'r39999-79999'),'result'=>Array('『C.H.A.O.S』','Y',1,1,)),
//单人脱出系列:大师要有大师风范,不准跑路!
);
//主要特征组合配方:合成时存在多个主要特征,依此表检查是否有特殊变化
//obbs:满足条件时有obbs%的概率组合,不设置即为100%组合;random:开启研究模式的情况下,随机为此配方生成random个合成条件。
$dommix_list = array
(
Array('stuff'=>Array('WG','WK'),'result'=>'WGK','obbs'=>77,), //射+斩=枪刃
Array('stuff'=>Array('WC','WF'),'result'=>'WCF','obbs'=>77,), //投+符=符札
Array('stuff'=>Array('WC','WP'),'result'=>'WCP','obbs'=>77,), //投+殴=重物
Array('stuff'=>Array('WK','WF'),'result'=>'WKF','obbs'=>77,), //斩+符=灵刃
Array('stuff'=>Array('WK','WP'),'result'=>'WKP','obbs'=>77,), //斩+殴=重剑
Array('stuff'=>Array('WF','WK','DA'),'result'=>'WFK','obbs'=>77,), //符+斩=魔刃……?等等……?只能再加个DA凑数了
Array('stuff'=>Array('WD','WG'),'result'=>'WDG','obbs'=>77,), //爆+射=巨炮
Array('stuff'=>Array('WD','WF'),'result'=>'WDF','obbs'=>77,), //爆+符=落魂
Array('stuff'=>Array('HH','HS'),'result'=>'HB','obbs'=>77,), //回命+回体=命体回复
Array('stuff'=>Array('HH','WF'),'result'=>'HM','obbs'=>77,), //回命+灵=歌魂增加
Array('stuff'=>Array('HS','WD'),'result'=>'HT','obbs'=>77,), //回体+爆=歌魂恢复
Array('stuff'=>Array('WG','WG'),'result'=>'WJ','obbs'=>30,), //射+射=重枪(30%概率)
//我认为这里应该有一个配方 可以合出有毒补给或者地雷(
);
//次要特征组合配方:将次要特征转化为道具属性时,检查是否满足组合条件。两个配方存在重复元素时,排在前面的会优先生成。
$submix_list = array
(
Array('stuff'=>Array('x','z'),'result'=>'Z','obbs'=>13), //奇迹+天然=菁英
Array('stuff'=>Array('u','i'),'result'=>'d','obbs'=>Array('default'=>30,'WD'=>98,'WDG'=>75,'WDF'=>75),), //火+冻=爆炸
Array('stuff'=>Array('i','e'),'result'=>'d','obbs'=>Array('default'=>30,'WD'=>98,'WDG'=>75,'WDF'=>75),), //冻+电=爆炸
Array('stuff'=>Array('w','i'),'result'=>'d','obbs'=>Array('default'=>30,'WD'=>98,'WDG'=>75,'WDF'=>75),), //音+冻=爆炸
//冴冴来发挥奇思妙想吧
);
//随机的次要特征组合配方 注意:指定属性(sk_*)一定要放到最前面
//可能会生成重复配方,但是也无所谓~
$random_submix_list = Array
(
//连击:随机1个价值在10以上,1个价值在20以上,1个价值在30以上的次要特征
Array('stuff'=>Array(0=>'v_10',1=>'v_20',2=>'v_30'),'result'=>'r','obbs'=>50),
//冲击:随机1个价值在20以上特征+1个随机“攻击”标签特征
Array('stuff'=>Array(0=>'tags_W',1=>'v_20'),'result'=>'N','obbs'=>50),
//贯穿:重击辅助+随机2个价值在30以上的次要特征
Array('stuff'=>Array(0=>'sk_c',1=>'v_30',2=>'v_30'),'result'=>'n','obbs'=>50),
//属性防御:随机1个价值在30以上+2个随机“防御”标签特征
Array('stuff'=>Array(0=>'v_30',1=>'tags_D',2=>'tags_D'),'result'=>'a','obbs'=>50),
//全系防御:随机2个价值在30以上的次要特征+1个随机“防御”标签特征
Array('stuff'=>Array(0=>'v_30',1=>'v_30',2=>'tags_D'),'result'=>'A','obbs'=>50),
);
//合成结果-名字:
$emix_luck_info = Array(-2 => '自己要倒大霉了QAQ……',1 => '这次合成的结果应该没什么特别之处。', 2=>'这次合成的结果还算不错。', 3=>'这次合成的结果似乎相当不错!' ,4=>'有什么大好事要发生了!');
//合成过程中随机产生的东西
$emix_tips_arr = Array('天然','喜悦','灵感','奇迹','爱','期待','愤怒','悲伤','乐子','苦闷','既视感','疯狂','幸运','RP','罪业');
//括在名字外围的符号
$emix_name_brackets_arr = Array('☆+☆','★+★','〖+〗','【+】','『+』','「+」','《+》','○+○','●+●');
//修饰前缀,由主元素决定,有多个主元素时随机抽取。主元素组合成功时再抽取通用前缀。
$emix_name_prefix_arr = Array
(
0 => Array('灰白的','雾蒙蒙的','失去颜色的','罕见的','挑染的','浮夸的','有名的','吸引来龙的','不值钱的','黑色布偶熊的','大咧咧的','吃不完的'),//'亮晶晶'
1 => Array('火热的','温暖的','混沌的','燃烧着的','地雷的','致命的','有引力的','阳炎的','红发的','超可爱的','被余晖染上的','疯狂的','活在记忆里的'),//'暖洋洋'
2 => Array('无暇的','快速的','冻住的','生人勿近的','猫的','喜欢宅在家里的','流动的','冷静的','浊心的','高洁的','黏在铁上的','被召唤来的'),//'冷冰冰'
3 => Array('翡翠的','活力的','生命的','爱的','空虚的','有反差的','双马尾的','迷路了的','加了五分糖的','天然呆的','从树上长出来的','落叶归根的'),//'郁萌萌' //什么!?原来不是郁闷的郁!
4 => Array('晨曦的','闪闪发光的','金发的','高洁的','像齿轮一样的','迈向明日的','初生的','跃动的','环形的','心怀希冀的','金色的','小男孩的'),//'昼闪闪'
5 => Array('宵暗的','无声的','活死人的','能停止时间的','无眠的','已经困了的','噩梦的','梦见羊的','梦见门之钥的','喝提神饮料的','黑漆漆的'),//'夜静静'
6 => Array('神秘的','有魔力的','结构复杂的','用AI模拟的','不可名状的','差不多完美的','终局的','烂尾的','打通了的','世界尽头的','第四面的'),//泛用
);
//元词缀,随便挑一个非主元素的
$emix_name_meta_arr = Array
(
0 => Array('乱序之','宝石纹','镭射型','镜面纹','藏书','晶化','化合型','糖浆','石纹','杂糅','透明纹'),//'亮晶晶'
1 => Array('燃素之','篝火之','黄昏之','晌午','凤凰型','猩红之','暖石','强袭型','破坏型','苹果制','血纹'),//'暖洋洋'
2 => Array('迅捷化','鱼纹','操弄之','碎心','旁观之','路人之','狡黠之','凛风之','北极星','雾之','魔咒','激流之'),//'冷冰冰'
3 => Array('生命之','蔷薇纹','根须','咖啡','妖精','吱吱乱叫之','生姜','拿铁','叶形纹','风化','仿制','纺锤状'),//'郁萌萌'
4 => Array('启示之','神之','王国制','旭日之','英雄之','荣光之','灯笼状','萤火之','神父之','麻将','骑士之'),//'昼闪闪'
5 => Array('怪异化','黑洞之','视界之','牧人羊型','往事之','循环之','吊诡之','小鬼之','刻奇之','五芒星','爬行'),//'夜静静'
6 => Array('空白之','留声型','映像型','回响型','气动型','姐妹之','差分机','飞艇型','纸制','彩玻璃制','以太制','黄铜制','贤者之'),//拓展1
);
//词尾
$emix_name_tail_arr = Array
(
'WK' => Array('剑','刃','斧','戟','锋刃','光剑','匕首','菜刀','牙','骨','燧石','线'),//'锐器'
'WP' => Array('棒','锤','槌','惃棒','木棒','昆棒','盾','指虎','火箭飞拳','鞭','松果弹抖闪电鞭','气劲','伪器'),//'钝器'
'WC' => Array('镖','卡牌','球','雪','飞盘','飞弹','弓','矢','青蛙','水滴','钢琴','猫'),//'投掷'
'WG' => Array('枪','光枪','燧发枪','步枪','炮','浮游炮','激光','掌心雷','弹弓','导弹发射器'),//'远程'
'WJ' => Array('狙击步枪','反坦克步枪','巨炮','武器阵列','手提箱','连装炮'),//'重枪'
'WD' => Array('炸弹','地雷','打击','此面向敌','贝蒂','绳','陷坑','抽卡游戏','短视频','胜负欲','这是什么?摸一下'),//'爆炸物'
'WF' => Array('符','手环','节杖','触','法书','纸人','信徒','精神性','理论','天赋','秘录','蟑螂'),//'灵武'
//TODO:复合武器
'D' => Array('物','加护','轨迹','尾巴','鱼鳞','灯笼裤','胖次','朋友','匣子','投影','力场盾','假说','抑制器','弹药包'),//不分类防具
//TODO:身体、手部、头部、足部防具
'H' => Array('糊糊','杏仁豆腐','烤鱼面包','章鱼须','乌鸡肉','生海带','幸运饼干','长芽土豆','眼泪','趣味'),//补给
'0' => Array('怪东西','???','竟然是它','■■■','数据削除'),//泛用性词尾
);
/********研究模式配置********/
//特征的“特征”……
//嘛总之就是那个意思:武器上不会出现防御,防具上不会出现攻击属性这样……
$itmk_to_itmsk_tags = Array
(
//攻击面特征
'W' => Array('u','e','i','w','p','d','r','f','k','R','S','o','n','N'),
//防御面特征
'D' => Array('P','K','C','G','D','F','U','E','I','W','q','M','a','A','B','b'),
//杂项特征
'misc' => Array('z','x','c','h','H','l','g','Z'),
);
//提示纸条:
$emix_slip = Array
(
0 => '“在元素合成时,投入份数最多的元素会成为‘主元素’,其展现出的‘主特征’会影响所合成道具的‘用途’”<br>“这点你已经知道了对吧?”<br>“但如果投入其他元素的‘份数’与‘主元素’很接近的话……也许它们的‘主特征’会混合起来?”<br>',
1 => '“在元素合成时,投入的元素所展现出的‘次要特征’会影响所合成道具的‘属性’”<br>“这点你已经知道了对吧?”<br>“但如果把不同元素的‘特征’混合起来的话,它们有时会彼此反应,从而衍生出新的‘特征’。”<br>',
2 => '“补给品、子弹这些消耗品,能分解出来的元素很少,有种说法是元素们讨厌这种被消耗的感觉。”<br>“但是从书本或强化药物这种价值不菲的消耗品上获得的元素又会变多。”<br>“很有哲理吧?”<br>',
3 => '“如果在分解元素的过程中遇到了什么奇怪的状况,找个本子记录下来会比较好。”<br>“说不定以后会派上用处的。”<br>',
4 => '“如果实在不知道该合成什么的话,不妨试试把每种元素都丢1份进去看看。”<br>“说实话我也不知道会发生什么,所以出了事不要怨我啊!”<br>',
5 => '“据说元素们在变化成具体形状时会发出奇怪的动静……说不定是在用元素语骂人呢?”<br>',
6 => '“据说要将元素的‘次要特征’附着在物品上时,会产生某种奇特的发酵物的味道。”<br>“其实元素合成的原理和腌咸菜也差不多吧?”<br>',
);
?>
...@@ -2599,7 +2599,7 @@ $npcinfo = array ...@@ -2599,7 +2599,7 @@ $npcinfo = array
'itme5' => 300, 'itme5' => 300,
'itms5' => 500, 'itms5' => 500,
'itmsk5' => 'v', 'itmsk5' => 'v',
'itm6' => '<span class="spitem" title="这个武器在主动攻击对手时,将可以复制对手的武器。注意:对手武器数值太高时会失败,后果自负!">临摹装置</span>', 'itm6' => '临摹装置',
'itmk6' => 'WC', 'itmk6' => 'WC',
'itme6' => 300, 'itme6' => 300,
'itms6' => 500, 'itms6' => 500,
...@@ -2790,7 +2790,7 @@ $npcinfo = array ...@@ -2790,7 +2790,7 @@ $npcinfo = array
'itme4' => 999, 'itme4' => 999,
'itms4' => '∞', 'itms4' => '∞',
'itmsk4' => 'Z', 'itmsk4' => 'Z',
'itm6' => '<span class="spitem" title="这个武器一定会对敌人造成350点伤害,但对防御非常高的敌人除外。">魔法蜂针</span>', 'itm6' => '魔法蜂针',
'itmk6' => 'WGK', 'itmk6' => 'WGK',
'itme6' => 350, 'itme6' => 350,
'itms6' => 350, 'itms6' => 350,
......
...@@ -894,8 +894,8 @@ $npcchat = Array( ...@@ -894,8 +894,8 @@ $npcchat = Array(
$iteminfo = Array(//注意顺序,AB必须在A的前面,以此类推 $iteminfo = Array(//注意顺序,AB必须在A的前面,以此类推
'Ag' => '同志饰物', 'Ag' => '同志饰物',
'Al' => '热恋饰物', 'Al' => '热恋饰物',
'AA' => '<span class="spitem" title="可以将一定数量的攻击次数伤害变为0,那之后失效。">数据护盾</span>', 'AA' => '数据护盾',
'AB' => '<span class="spitem" title="装备后,对补给品使用毒药下毒变为为其解毒。">毒物中和</span>', 'AB' => '毒物中和',
'A' => '饰物', 'A' => '饰物',
'Ah' => '饰物', 'Ah' => '饰物',
'Ac' => '饰物', 'Ac' => '饰物',
...@@ -959,14 +959,14 @@ $iteminfo = Array(//注意顺序,AB必须在A的前面,以此类推 ...@@ -959,14 +959,14 @@ $iteminfo = Array(//注意顺序,AB必须在A的前面,以此类推
'WD' => '爆炸物', 'WD' => '爆炸物',
'WF' => '灵力兵器', 'WF' => '灵力兵器',
'WQ' =>'????', 'WQ' =>'????',
'XA' =>'<span class="lime" title="集齐三个同颜色的不同名代码残片,来合成单人脱出结局道具吧!">代码残片·绿</span>', 'XA' =>'代码残片·绿',
'XB' =>'<span class="purple" title="集齐三个同颜色的不同名代码残片,来合成单人脱结局道具吧!">代码残片·紫</span>', 'XB' =>'代码残片·紫',
'XC' =>'<span class="yellow" title="集齐三个同颜色的不同名代码残片,来合成单人脱结局道具吧!">代码残片·黄</span>', 'XC' =>'代码残片·黄',
'XX' =>'杀意已决', 'XX' =>'杀意已决',
'XY' =>'杀意未决', 'XY' =>'杀意未决',
'X'=> '合成专用', 'X'=> '合成专用',
'Y' => '特殊', 'Y' => '特殊',
'ZA' => '<span class="neonyellow" title="这个物品中似乎含有让你可以独自脱离幻境的方法……">代码漏洞</span>', 'ZA' => '代码漏洞',
'Z' => '特殊',#不可合并 'Z' => '特殊',#不可合并
); );
...@@ -1022,59 +1022,143 @@ $iteminfo = Array(//注意顺序,AB必须在A的前面,以此类推 ...@@ -1022,59 +1022,143 @@ $iteminfo = Array(//注意顺序,AB必须在A的前面,以此类推
'^' => '背包', '^' => '背包',
); */ ); */
$iteminfo_tooltip = Array
(
'男生校服' => Array('class'=>'spitem2', 'title'=>"总之就是校服了……其实……我也没上过学……",),//DEBUG用
'女生校服' => Array('class'=>'spitem', 'title'=>"总之就是校服了……其实……我也没上过学……",),//DEBUG用
'魔法蜂针' => Array('class'=>'spitem', 'title'=>"这个武器一定会对敌人造成350点伤害,但对防御非常高的敌人除外。",),
'临摹装置' => Array('class'=>'spitem', 'title'=>"这个武器在主动攻击对手时,将可以复制对手的武器。注意:对手武器数值太高时会失败,后果自负!",),
);
$itemkinfo_tooltip = Array
(
'WG' => Array('class'=>'spitem','title'=>"这可能是一把远程武器,但也不一定是。这取决于你怎么理解远程武器。",),//DEBUG用
'WP' => Array('class'=>'spitem',),//DEBUG用
'AA' => Array('class'=>'spitem', 'title'=>"可以将一定数量的攻击次数伤害变为0,那之后失效",),
'AB' => Array('class'=>'spitem', 'title'=>"装备后,对补给品使用毒药下毒变为为其解毒。",),
'XA' => Array('class'=>'lime', 'title'=>"集齐三个同颜色的不同名代码残片,来合成单人脱出结局道具吧!",),
'XB' => Array('class'=>'purple', 'title'=>"集齐三个同颜色的不同名代码残片,来合成单人脱出结局道具吧!",),
'XC' => Array('class'=>'yellow', 'title'=>"集齐三个同颜色的不同名代码残片,来合成单人脱出结局道具吧!",),
'ZA' => Array('class'=>'neonyellow', 'title'=>"这个物品中似乎含有让你可以独自脱离幻境的方法……",),
);
$itemspkinfo_tooltip = Array
(
'A' => Array('class' => 'red', 'title' => "高概率将殴斩射投爆灵六系对你的伤害减半。",),//测试用
'a' => Array('class' => 'clan', 'title' => "高概率将毒火冻电乱音以及爆炸对你的伤害减半。并避免异常状态。",),//测试用
'B' => Array('title' => "极高概率将全部物理伤害变为1。",),
'b' => Array('title' => "极高概率将全部属性伤害变为1。",),
'C' => Array('title' => "高概率将投系对你的物理伤害减半。",),
'c' => Array('title' => "降低重击与必杀技的怒气消耗,以及重击概率。",),
'D' => Array('title' => "高概率将爆系对你的物理伤害,以及爆炸属性伤害减半。",),
'd' => Array('title' => "攻击对手时,将产生额外的爆炸属性伤害。",),
'E' => Array('title' => "高概率将电击属性对你的属性伤害减半。并避免身体麻痹状态。",),
'e' => Array('title' => "攻击对手时,将产生额外的电击属性伤害。也有可能让对手陷入身体麻痹异常状态。",),
'F' => Array('title' => "高概率将灵系对你的物理伤害减半。",),
'f' => Array('title' => "攻击对手时,对其造成无法防御的火焰属性伤害。也有可能让对手陷入烧伤异常状态。",),
'G' => Array('title' => "高概率将射系(包括重型枪械)对你的物理伤害减半。",),
'g' => Array('title' => "低概率在攻击异性敌人时伤害加倍,但攻击同性的物理伤害降为1。",),
'H' => Array('title' => "将你受到的反噬伤害降低90%。",),
'h' => Array('title' => "高概率将你受到的最高伤害压制在两千左右。",),
'I' => Array('title' => "高概率将冻气属性对你的属性伤害减半。并避免冻结状态。",),
'i' => Array('title' => "攻击对手时,将产生额外的冻气属性伤害。也有可能让对手陷入冻结异常状态。",),
'J' => Array('title' => "将卡片变成可以进行超量合成的素材。",),
'j' => Array('title' => "使用「武器模式」命令可将该物品转变为其他形态。",),
'K' => Array('title' => "高概率将斩系对你的物理伤害减半。",),
'k' => Array('title' => "攻击对手时,对其造成无法防御的冻气属性伤害。也有可能让对手陷入冻结异常状态",),
'L' => Array('title' => "攻击对手时,让对手的冷却时间大幅度增加。",),
'l' => Array('title' => "低概率在攻击同性敌人时伤害加倍,但攻击异性的物理伤害降为1。",),
'M' => Array('title' => "提高一定陷阱回避率。",),
'm' => Array('title' => "触发陷阱时,中机率免疫其伤害。",),
'N' => Array('title' => "攻击对手时,中几率将对手防具的防御力修正为一半来计算伤害。",),
'n' => Array('title' => "攻击对手时,一定几率无效抹消类与防御类属性。",),
'o' => Array('title' => "这是一把不能装子弹的武器。",),
'P' => Array('title' => "高概率将殴系对你的物理伤害减半。",),
'p' => Array('title' => "攻击对手时,将产生额外的毒属性伤害。也有可能让对手陷入中毒异常状态。",),
'q' => Array('title' => "高概率将毒属性对你的属性伤害减半。并避免中毒状态。",),
'R' => Array('title' => "这把武器的最终伤害将会为随机值。",),
'r' => Array('title' => "根据你的熟练度,做出一定数量的连续攻击。",),
'S' => Array('title' => "枪支类武器开火时不会产生声音。",),
's' => Array('title' => "这个物品是游戏王同调合成的必备素材。",),
'U' => Array('title' => "高概率将火焰属性对你的属性伤害减半。并避免烧伤状态。",),
'u' => Array('title' => "攻击对手时,将产生额外的火焰属性伤害。也有可能让对手陷入烧伤状态。",),
'v' => Array('title' => "丢弃本物品,或你死亡时,本物品会消失。",),
'W' => Array('title' => "高概率将音波属性对你的属性伤害减半。并避免混乱状态。",),
'w' => Array('title' => "攻击对手时,将产生额外的音波属性伤害。也有可能让对手陷入混乱异常状态。",),
'X' => Array('title' => "可能会一击必杀。",),
'x' => Array('title' => "人类,可以挑战神么?",),
'Z' => Array('title' => "该物品可以使用特定物品进行强化。",),
'z' => Array('title' => "那么,这个有什么用呢……?",),
'-' => Array('title' => "战斗时无效双方的防具效果。",),
'*' => Array('title' => "战斗时无效双方的武器·饰品效果,并大幅度降低灵系伤害。",),
'+' => Array('title' => "战斗时大幅度向低修正双方的熟练度。",),
'^' => Array('title' => "装备后,可使用「背包」相关指令存储物品。",),
);
$itemspkinfo = Array( $itemspkinfo = Array(
'A' => '<span title="高概率将殴斩射投爆灵六系对你的伤害减半。">全系防御</span>', 'A' => '全系防御',
'a' => '<span title="高概率将毒火冻电乱音以及爆炸对你的伤害减半。并避免异常状态。">属性防御</span>', 'a' => '属性防御',
'B' => '<span title="极高概率将全部物理伤害变为1。">伤害抹消</span>', 'B' => '伤害抹消',
'b' => '<span title="极高概率将全部属性伤害变为1。">属性抹消</span>', 'b' => '属性抹消',
'C' => '<span title="高概率将投系对你的物理伤害减半。">防投</span>', 'C' => '防投',
'c' => '<span title="降低重击与必杀技的怒气消耗,以及重击概率。">重击辅助</span>', 'c' => '重击辅助',
'D' => '<span title="高概率将爆系对你的物理伤害,以及爆炸属性伤害减半。">防爆</span>', 'D' => '防爆',
'd' => '<span title="攻击对手时,将产生额外的爆炸属性伤害。">爆炸</span>', 'd' => '爆炸',
'E' => '<span title="高概率将电击属性对你的属性伤害减半。并避免身体麻痹状态。">绝缘</span>', 'E' => '绝缘',
'e' => '<span title="攻击对手时,将产生额外的电击属性伤害。也有可能让对手陷入身体麻痹异常状态。">电击</span>', 'e' => '电击',
'F' => '<span title="高概率将灵系对你的物理伤害减半。">防符</span>', 'F' => '防符',
'f' => '<span title="攻击对手时,对其造成无法防御的火焰属性伤害。也有可能让对手陷入烧伤异常状态。">灼焰</span>', 'f' => '灼焰',
'G' => '<span title="高概率将射系(包括重型枪械)对你的物理伤害减半。">防弹</span>', 'G' => '防弹',
'g' => '<span title="低概率在攻击异性敌人时伤害加倍,但攻击同性的物理伤害降为1。">同志</span>', 'g' => '同志',
'H' => '<span title="将你受到的反噬伤害降低90%。">HP制御</span>', 'H' => 'HP制御',
'h' => '<span title="高概率将你受到的最高伤害压制在两千左右。">伤害制御</span>', 'h' => '伤害制御',
'I' => '<span title="高概率将冻气属性对你的属性伤害减半。并避免冻结状态。">防冻</span>', 'I' => '防冻',
'i' => '<span title="攻击对手时,将产生额外的冻气属性伤害。也有可能让对手陷入冻结异常状态。">冻气</span>', 'i' => '冻气',
'J' => '<span title="将卡片变成可以进行超量合成的素材。">超量素材</span>', 'J' => '超量素材',
'j' => '<span title="使用「武器模式」命令可将该物品转变为其他形态。">多重</span>', 'j' => '多重',
'K' => '<span title="高概率将斩系对你的物理伤害减半。">防斩</span>', 'K' => '防斩',
'k' => '<span title="攻击对手时,对其造成无法防御的冻气属性伤害。也有可能让对手陷入冻结异常状态">冰华</span>', 'k' => '冰华',
'L' => '<span title="攻击对手时,让对手的冷却时间大幅度增加。">致残</span>', 'L' => '致残',
'l' => '<span title="低概率在攻击同性敌人时伤害加倍,但攻击异性的物理伤害降为1。">热恋</span>', 'l' => '热恋',
'M' => '<span title="提高一定陷阱回避率。">陷阱探测</span>', 'M' => '陷阱探测',
'm' => '<span title="触发陷阱时,中机率免疫其伤害。">陷阱迎击</span>', 'm' => '陷阱迎击',
'N' => '<span title="攻击对手时,中几率将对手防具的防御力修正为一半来计算伤害。">冲击</span>', 'N' => '冲击',
'n' => '<span title="攻击对手时,一定几率无效抹消类与防御类属性。">贯穿</span>', 'n' => '贯穿',
'o' => '<span title="这是一把不能装子弹的武器。">一发</span>', 'o' => '一发',
'P' => '<span title="高概率将殴系对你的物理伤害减半。">防殴</span>', 'P' => '防殴',
'p' => '<span title="攻击对手时,将产生额外的毒属性伤害。也有可能让对手陷入中毒异常状态。">带毒</span>', 'p' => '带毒',
'q' => '<span title="高概率将毒属性对你的属性伤害减半。并避免中毒状态。">防毒</span>', 'q' => '防毒',
'R' => '<span title="这把武器的最终伤害将会为随机值。">混沌伤害</span>', 'R' => '混沌伤害',
'r' => '<span title="根据你的熟练度,做出一定数量的连续攻击。">连击</span>', 'r' => '连击',
'S' => '<span title="枪支类武器开火时不会产生声音。">消音</span>', 'S' => '消音',
's' => '<span title="这个物品是游戏王同调合成的必备素材。">调整</span>', 's' => '调整',
'U' => '<span title="高概率将火焰属性对你的属性伤害减半。并避免烧伤状态。">防火</span>', 'U' => '防火',
'u' => '<span title="攻击对手时,将产生额外的火焰属性伤害。也有可能让对手陷入烧伤状态。">火焰</span>', 'u' => '火焰',
'v' => '<span title="丢弃本物品,或你死亡时,本物品会消失。">灵魂绑定</span>', 'v' => '灵魂绑定',
'W' => '<span title="高概率将音波属性对你的属性伤害减半。并避免混乱状态。">隔音</span>', 'W' => '隔音',
'w' => '<span title="攻击对手时,将产生额外的音波属性伤害。也有可能让对手陷入混乱异常状态。">音波</span>', 'w' => '音波',
'X' => '<span title="可能会一击必杀。">直死</span>', //NPC专用 'X' => '直死', //NPC专用
'x' => '<span title="人类,可以挑战神么?">奇迹</span>', 'x' => '奇迹',
'Z' => '<span title="该物品可以使用特定物品进行强化。">菁英</span>', 'Z' => '菁英',
'z' => '<span title="那么,这个有什么用呢……?">天然</span>', 'z' => '天然',
'-' => '<span title="战斗时无效双方的防具效果。">精神抽取</span>', '-' => '精神抽取',
'*' => '<span title="战斗时无效双方的武器·饰品效果,并大幅度降低灵系伤害。">灵魂抽取</span>', '*' => '灵魂抽取',
'+' => '<span title="战斗时大幅度向低修正双方的熟练度。">技能抽取</span>', '+' => '技能抽取',
'^' => '<span title="装备后,可使用「背包」相关指令存储物品。">背包</span>', '^' => '背包',
); );
//club20 元素大师:
//元素列表 可能需要一些布灵布灵的特效
$sparkle = '<span class="sparkle">✨</span>';
$elements_info = Array
(
0 => $sparkle.'<span class="mtgcolorless">亮晶晶</span>'.$sparkle,
1 => $sparkle.'<span class="mtgred">暖洋洋</span>'.$sparkle,
2 => $sparkle.'<span class="mtgblue">冷冰冰</span>'.$sparkle,
3 => $sparkle.'<span class="mtggreen">郁萌萌</span>'.$sparkle,
4 => $sparkle.'<span class="mtgwhite">昼闪闪</span>'.$sparkle,
5 => $sparkle.'<span class="mtgblack">夜静静</span>'.$sparkle,
);
$shops = Array(0,14,27); $shops = Array(0,14,27);
$hospitals = Array(11,19,32); $hospitals = Array(11,19,32);
......
...@@ -224,6 +224,80 @@ table.admin td.tdtitle { ...@@ -224,6 +224,80 @@ table.admin td.tdtitle {
.neonyellow{animation: yellowflicker 1.5s infinite alternate;font: bold 10pt "微软雅黑" serif;line-height:16px} .neonyellow{animation: yellowflicker 1.5s infinite alternate;font: bold 10pt "微软雅黑" serif;line-height:16px}
.neonorange{animation: orangeflicker 1.5s infinite alternate;font: bold 10pt "微软雅黑" serif;line-height:16px} .neonorange{animation: orangeflicker 1.5s infinite alternate;font: bold 10pt "微软雅黑" serif;line-height:16px}
.mtgcolorless {
text-shadow: 0px 0px 2px rgba(137, 137, 137, 0.706), 0px 0px 3px #f5f5f586, 0px 0px 4px rgb(255, 255, 255);
animation: fadeInOut 2s ease-in-out infinite;
}
.mtgred {
text-shadow: 0px 0px 2px #af1d1d, 0px 0px 3px #BD4624, 0px 0px 4px red;
animation: fadeInOut 2s ease-in-out infinite;
}
.mtgblue {
text-shadow: 0px 0px 2px #378bc6, 0px 0px 3px #0da0a0, 0px 0px 4px #0a4fd0;
animation: fadeInOut 2s ease-in-out infinite;
}
.mtggreen {
text-shadow: 0px 0px 2px #5bd387, 0px 0px 3px #1bbb1b, 0px 0px 4px #269803;
animation: fadeInOut 2s ease-in-out infinite;
}
.mtgwhite {
text-shadow: 0px 0px 2px #ffffdd, 0px 0px 3px #ededc4, 0px 0px 4px #cfcf9f;
animation: fadeInOut 2s ease-in-out infinite;
}
.mtgblack {
text-shadow: 0px 0px 2px #9015c1, 0px 0px 3px #9242a2, 0px 0px 4px #4a0854;
animation: fadeInOut 2s ease-in-out infinite;
}
@keyframes fadeInOut {
0% {
filter: brightness(89%) blur(0.3px);
}
50% {
filter: brightness(122%) blur(0px);
}
100% {
filter: brightness(89%) blur(0.3px);
}
}
.sparkle {
animation: sparklefade 2s ease-in-out infinite;
}
@keyframes sparklefade {
0% {
filter: sepia(100%) brightness(88%) blur(0.3px);
}
50% {
filter: sepia(100%) brightness(133%) blur(0px);
}
100% {
filter: sepia(100%) brightness(88%) blur(0.3px);
}
}
.rainbow {
text-shadow: 0 0 10px #fff, 0 0 20px #fff, 0 0 30px #e60073, 0 0 40px #e60073, 0 0 50px #e60073, 0 0 60px #e60073, 0 0 70px #e60073;
animation: rainbowshimmer 2s ease-in-out infinite;
}
@keyframes rainbowshimmer {
0% {
text-shadow: 0 0 10px #fff, 0 0 20px #fff, 0 0 30px #e60073, 0 0 40px #e60073, 0 0 50px #e60073, 0 0 60px #e60073, 0 0 70px #e60073;
}
20% {
text-shadow: 0 0 10px #fff, 0 0 20px #fff, 0 0 30px #00ff00, 0 0 40px #00ff00, 0 0 50px #00ff00, 0 0 60px #00ff00, 0 0 70px #00ff00;
}
40% {
text-shadow: 0 0 10px #fff, 0 0 20px #fff, 0 0 30px #ffff00, 0 0 40px #ffff00, 0 0 50px #ffff00, 0 0 60px #ffff00, 0 0 70px #ffff00;
}
60% {
text-shadow: 0 0 10px #fff, 0 0 20px #fff, 0 0 30px #0000ff, 0 0 40px #0000ff, 0 0 50px #0000ff, 0 0 60px #0000ff, 0 0 70px #0000ff;
}
80% {
text-shadow: 0 0 10px #fff, 0 0 20px #fff, 0 0 30px #ff00ff, 0 0 40px #ff00ff, 0 0 50px #ff00ff, 0 0 60px #ff00ff, 0 0 70px #ff00ff;
}
100% {
text-shadow: 0 0 10px #fff, 0 0 20px #fff, 0 0 30px #e60073, 0 0 40px #e60073, 0 0 50px #e60073, 0 0 60px #e60073, 0 0 70px #e60073;
}
}
#main { #main {
white-space:nowrap; white-space:nowrap;
vertical-align:middle; vertical-align:middle;
...@@ -269,4 +343,15 @@ background-image: url("../../img/footer_line.gif"); ...@@ -269,4 +343,15 @@ background-image: url("../../img/footer_line.gif");
.auto-style1 { .auto-style1 {
border-width: 0px; border-width: 0px;
}
#gamecmd input.range{
background:linear-gradient(-75deg,rgba(248, 205, 247, 0.6),rgba(255, 255, 255, 0.6));
border-radius:4px;
margin-top: 11px;
margin-bottom: 4px;
width: 100%;
height: 12px;
outline:none;
box-shadow:0 0 6px rgba(246, 219, 251, 0.6);
} }
\ No newline at end of file
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
define('CURSCRIPT', 'help'); define('CURSCRIPT', 'help');
require './include/common.inc.php'; require './include/common.inc.php';
require './include/game.func.php';
$mixfile = config('mixitem',$gamecfg); $mixfile = config('mixitem',$gamecfg);
$shopfile = config('shopitem',$gamecfg); $shopfile = config('shopitem',$gamecfg);
...@@ -17,6 +18,88 @@ $writefile = GAME_ROOT.TPLDIR.'/mixhelp.htm'; ...@@ -17,6 +18,88 @@ $writefile = GAME_ROOT.TPLDIR.'/mixhelp.htm';
include_once config('npc',$gamecfg); include_once config('npc',$gamecfg);
for ($i=0; $i<=20; $i++) $p[$i]=$i; for ($i=0; $i<=20; $i++) $p[$i]=$i;
for ($i=1; $i<=6; $i++) $itemlst[$i]=$i; for ($i=1; $i<=6; $i++) $itemlst[$i]=$i;
foreach ($npcinfo as $i => $npcs)
{
if(!empty($npcs))
{
foreach (Array('arb','arh','ara','arf','art','itm0','itm1','itm2','itm3','itm4','itm5','itm6') as $value)
{
if($npcinfo[$i][$value]) $npcinfo[$i][$value] = parse_itm_desc($npcinfo[$i][$value]);
}
foreach (Array('arbk','arhk','arak','arfk','artk','itmk0','itmk1','itmk2','itmk3','itmk4','itmk5','itmk6') as $value)
{
if($npcinfo[$i][$value])
{
foreach($iteminfo as $info_key => $info_value)
{
if(strpos($npcinfo[$i][$value],$info_key)===0){
$npcinfo[$i][$value] = parse_itm_desc($info_key,'k');;
break;
}
}
}
}
foreach(Array('arbsk','arhsk','arask','arfsk','artsk','itmsk0','itmsk1','itmsk2','itmsk3','itmsk4','itmsk5','itmsk6') as $value)
{
if($npcinfo[$i][$value])
{
$npcinfo[$i][$value][$value.'_words'] = '';
$tmpsk = get_itmsk_array($npcinfo[$i][$value]);
foreach($tmpsk as $sk)
{
if(!empty($npcinfo[$i][$value][$value.'_words']))
{
$npcinfo[$i][$value.'_words'] .= "+".parse_itm_desc($sk,'sk');
}
else
{
$npcinfo[$i][$value.'_words'] = parse_itm_desc($sk,'sk');
}
}
}
}
foreach($npcs['sub'] as $n => $npc)
{
foreach(Array('wep','arb','arh','ara','arf','art','itm0','itm1','itm2','itm3','itm4','itm5','itm6') as $value)
{
if($npcinfo[$i]['sub'][$n][$value]) $npcinfo[$i]['sub'][$n][$value] = parse_itm_desc($npcinfo[$i]['sub'][$n][$value]);
}
foreach(Array('wepk','arbk','arhk','arak','arfk','artk','itmk0','itmk1','itmk2','itmk3','itmk4','itmk5','itmk6') as $value)
{
if($npcinfo[$i]['sub'][$n][$value])
{
foreach($iteminfo as $info_key => $info_value)
{
if(strpos($npcinfo[$i]['sub'][$n][$value],$info_key)===0){
$npcinfo[$i]['sub'][$n][$value] = parse_itm_desc($info_key,'k');;
break;
}
}
}
}
foreach(Array('wepsk','arbsk','arhsk','arask','arfsk','artsk','itmsk0','itmsk1','itmsk2','itmsk3','itmsk4','itmsk5','itmsk6') as $value)
{
if($npcinfo[$i]['sub'][$n][$value])
{
$npcinfo[$i]['sub'][$n][$value.'_words'] = '';
$tmpsk = get_itmsk_array($npcinfo[$i]['sub'][$n][$value]);
foreach($tmpsk as $sk)
{
if(!empty($npcinfo[$i]['sub'][$n][$value.'_words']))
{
$npcinfo[$i]['sub'][$n][$value.'_words'] .= "+".parse_itm_desc($sk,'sk');
}
else
{
$npcinfo[$i]['sub'][$n][$value.'_words'] = parse_itm_desc($sk,'sk');
}
}
}
}
}
}
}
// $ty1[1]=6; $ty1[2]=5; $ty1[3]=1; $ty1[4]=9; $ty1[5]=88; // $ty1[1]=6; $ty1[2]=5; $ty1[3]=1; $ty1[4]=9; $ty1[5]=88;
// $ty2[1]=11; // $ty2[1]=11;
// $ty3[1]=2; $ty3[2]=90; // $ty3[1]=2; $ty3[2]=90;
...@@ -42,21 +125,31 @@ if(filemtime($mixfile) > filemtime($writefile) || filemtime($shopfile) > filemti ...@@ -42,21 +125,31 @@ if(filemtime($mixfile) > filemtime($writefile) || filemtime($shopfile) > filemti
$mixitem = array(); $mixitem = array();
foreach($mixinfo as $mix){ foreach($mixinfo as $mix){
if($mix['class'] !== 'hidden'){ if($mix['class'] !== 'hidden'){
//名字
$mix['result'][0] = parse_itm_desc($mix['result'][0]);
//类别
foreach($iteminfo as $info_key => $info_value){ foreach($iteminfo as $info_key => $info_value){
if(strpos($mix['result'][1],$info_key)===0){ if(strpos($mix['result'][1],$info_key)===0){
$mixitmk = $info_value; $mixitmk = parse_itm_desc($info_key,'k');
break; break;
} }
} }
//属性
$mixitmsk = ''; $mixitmsk = '';
if(!empty($mix['result'][4]) && !is_numeric($mix['result'][4])){ if(!empty($mix['result'][4]) && !is_numeric($mix['result'][4])){
for ($j = 0; $j < strlen($mix['result'][4]); $j++) { /*for ($j = 0; $j < strlen($mix['result'][4]); $j++) {
$sub = substr($mix['result'][4],$j,1); $sub = substr($mix['result'][4],$j,1);
if(!empty($sub)){ if(!empty($sub)){
$mixitmsk .= $itemspkinfo[$sub].'+'; $mixitmsk .= $itemspkinfo[$sub].'+';
} }
} }
if(!empty($mixitmsk)){$mixitmsk = substr($mixitmsk,0,-1);} if(!empty($mixitmsk)){$mixitmsk = substr($mixitmsk,0,-1);}*/
$mix_sk = get_itmsk_array($mix['result'][4]); $mixitmsk = '';
foreach($mix_sk as $sk_value)
{
if(!empty($mixitmsk)) $mixitmsk .= '+'.parse_itm_desc($sk_value,'sk');
else $mixitmsk = parse_itm_desc($sk_value,'sk');
}
} }
$mixitem[$mix['class']][] = array('stuff' => $mix['stuff'], 'result' => array($mix['result'][0],$mixitmk,$mix['result'][2],$mix['result'][3],$mixitmsk)); $mixitem[$mix['class']][] = array('stuff' => $mix['stuff'], 'result' => array($mix['result'][0],$mixitmk,$mix['result'][2],$mix['result'][3],$mixitmsk));
} }
......
...@@ -4,7 +4,65 @@ if(!defined('IN_GAME')) { ...@@ -4,7 +4,65 @@ if(!defined('IN_GAME')) {
exit('Access Denied'); exit('Access Denied');
} }
//将sk转为数组格式 只会转换登记过的属性
function get_itmsk_array($sk_value)
{
global $itemspkinfo;
$ret = Array();
$i = 0;
while ($i < strlen($sk_value))
{
$sub = substr($sk_value,$i,1);
$i++;
if(!empty($sub) && array_key_exists($sub,$itemspkinfo)) array_push($ret,$sub);
}
return $ret;
}
//还原itmsk为字符串 $max_length:字符串长度上限
function get_itmsk_strlen($sk_value,$max_length=5)
{
global $itemspkinfo;
$ret = ''; $sk_count = 0;
foreach($sk_value as $sk)
{
if(array_key_exists($sk,$itemspkinfo))
{
$ret.=$sk;
$sk_count+=strlen($sk);
}
if($sk_count>=$max_length) break;
}
return $ret;
}
//为显示在主界面、尸体发现界面、游戏帮助界面的道具名、道具类、道具属性添加额外描述
function parse_itm_desc($n,$t='m')
{
global $iteminfo,$itemspkinfo;
global $iteminfo_tooltip,$itemkinfo_tooltip,$itemspkinfo_tooltip;
$s = "<span "; unset($p1); unset($p2);
switch($t)
{
//处理类别
case $t=='k':
if($itemkinfo_tooltip[$n]['title']) $p1 = "title=\"".$itemkinfo_tooltip[$n]['title']."\"";
if($itemkinfo_tooltip[$n]['class']) $p2 = "class=\"".$itemkinfo_tooltip[$n]['class']."\"";
$n = $iteminfo[$n];
break;
//处理属性
case $t=='sk':
if($itemspkinfo_tooltip[$n]['title']) $p1 = "title=\"".$itemspkinfo_tooltip[$n]['title']."\"";
if($itemspkinfo_tooltip[$n]['class']) $p2 = "class=\"".$itemspkinfo_tooltip[$n]['class']."\"";
$n = $itemspkinfo[$n];
break;
//处理名字
default:
if($iteminfo_tooltip[$n]['title']) $p1 = "title=\"".$iteminfo_tooltip[$n]['title']."\"";
if($iteminfo_tooltip[$n]['class']) $p2 = "class=\"".$iteminfo_tooltip[$n]['class']."\"";
}
$p3 = " >"; $e = "</span>";
$ret = $s.$p1.$p2.$p3.$n.$e;
return $ret;
}
function init_playerdata(){ function init_playerdata(){
global $lvl,$baseexp,$exp,$gd,$icon,$arbe,$arhe,$arae,$arfe,$weather,$fog,$weps,$arbs,$log,$upexp,$lvlupexp,$iconImg,$ardef; global $lvl,$baseexp,$exp,$gd,$icon,$arbe,$arhe,$arae,$arfe,$weather,$fog,$weps,$arbs,$log,$upexp,$lvlupexp,$iconImg,$ardef;
...@@ -35,39 +93,45 @@ function init_profile(){ ...@@ -35,39 +93,45 @@ function init_profile(){
global $itemspkinfo,$wepsk,$arbsk,$arhsk,$arask,$arfsk,$artsk,$itmsk0,$itmsk1,$itmsk2,$itmsk3,$itmsk4,$itmsk5,$itmsk6; global $itemspkinfo,$wepsk,$arbsk,$arhsk,$arask,$arfsk,$artsk,$itmsk0,$itmsk1,$itmsk2,$itmsk3,$itmsk4,$itmsk5,$itmsk6;
global $nospk,$wepsk_words,$arbsk_words,$arhsk_words,$arask_words,$arfsk_words,$artsk_words,$itmsk0_words,$itmsk1_words,$itmsk2_words,$itmsk3_words,$itmsk4_words,$itmsk5_words,$itmsk6_words; global $nospk,$wepsk_words,$arbsk_words,$arhsk_words,$arask_words,$arfsk_words,$artsk_words,$itmsk0_words,$itmsk1_words,$itmsk2_words,$itmsk3_words,$itmsk4_words,$itmsk5_words,$itmsk6_words;
global $wepk_words,$arbk_words,$arhk_words,$arak_words,$arfk_words,$artk_words,$itmk0_words,$itmk1_words,$itmk2_words,$itmk3_words,$itmk4_words,$itmk5_words,$itmk6_words; global $wepk_words,$arbk_words,$arhk_words,$arak_words,$arfk_words,$artk_words,$itmk0_words,$itmk1_words,$itmk2_words,$itmk3_words,$itmk4_words,$itmk5_words,$itmk6_words;
global $wep,$arb,$arh,$ara,$arf,$art,$itm0,$itm1,$itm2,$itm3,$itm4,$itm5,$itm6;
foreach (Array('wep','arb','arh','ara','arf','art','itm0','itm1','itm2','itm3','itm4','itm5','itm6') as $value)
{
${$value} = parse_itm_desc(${$value});
}
foreach (Array('wepk','arbk','arhk','arak','arfk','artk','itmk0','itmk1','itmk2','itmk3','itmk4','itmk5','itmk6') as $k_value) { foreach (Array('wepk','arbk','arhk','arak','arfk','artk','itmk0','itmk1','itmk2','itmk3','itmk4','itmk5','itmk6') as $k_value) {
if(${$k_value}){ if(${$k_value})
{
${$k_value.'_words'} = ''; ${$k_value.'_words'} = '';
foreach($iteminfo as $info_key => $info_value)
foreach($iteminfo as $info_key => $info_value){ {
if(strpos(${$k_value},$info_key)===0){ if(strpos(${$k_value},$info_key)===0){
${$k_value.'_words'} = $info_value; ${$k_value.'_words'} = parse_itm_desc($info_key,'k');
break; break;
} }
} }
} else { } else {
${$k_value.'_words'} = ''; ${$k_value.'_words'} = '';
} }
} }
foreach (Array('wepsk','arbsk','arhsk','arask','arfsk','artsk','itmsk0','itmsk1','itmsk2','itmsk3','itmsk4','itmsk5','itmsk6') as $sk_value) { foreach (Array('wepsk','arbsk','arhsk','arask','arfsk','artsk','itmsk0','itmsk1','itmsk2','itmsk3','itmsk4','itmsk5','itmsk6') as $sk_value) {
if(${$sk_value} && is_numeric(${$sk_value}) === false){ if(${$sk_value} && is_numeric(${$sk_value}) === false){
${$sk_value.'_words'} = ''; ${$sk_value.'_words'} = '';
for ($i = 0; $i < strlen($sk_value); $i++) { //取我数组斧来
$sub = substr(${$sk_value},$i,1); $tmpsk = get_itmsk_array(${$sk_value});
if(!empty($sub)){ foreach($tmpsk as $sk)
if(!empty(${$sk_value.'_words'})){ {
${$sk_value.'_words'} .= '+'.$itemspkinfo[$sub]; if(!empty(${$sk_value.'_words'}))
}else{ {
${$sk_value.'_words'} = $itemspkinfo[$sub]; ${$sk_value.'_words'} .= "+".parse_itm_desc($sk,'sk');
} }
} else
{
${$sk_value.'_words'} = parse_itm_desc($sk,'sk');
}
} }
} else { } else {
${$sk_value.'_words'} =$nospk; ${$sk_value.'_words'} =$nospk;
} }
......
...@@ -80,7 +80,8 @@ function findteam(&$w_pdata){ ...@@ -80,7 +80,8 @@ function findteam(&$w_pdata){
function findcorpse(&$w_pdata){ function findcorpse(&$w_pdata){
global $log,$mode,$main,$battle_title,$cmd,$iteminfo,$itemspkinfo; global $log,$mode,$main,$battle_title,$cmd,$iteminfo,$itemspkinfo;
global $w_type,$w_name,$w_gd,$w_sNo,$w_icon,$w_hp,$w_mhp,$w_wep,$w_wepk,$w_wepe,$w_lvl,$w_pose,$w_tactic,$w_inf;//,$itmsk0; global $w_type,$w_name,$w_gd,$w_sNo,$w_icon,$w_hp,$w_mhp,$w_wep,$w_wepk,$w_wepe,$w_lvl,$w_pose,$w_tactic,$w_inf;//,$itmsk0;
global $club;
$battle_title = '发现尸体'; $battle_title = '发现尸体';
extract($w_pdata,EXTR_PREFIX_ALL,'w'); extract($w_pdata,EXTR_PREFIX_ALL,'w');
init_battle(1); init_battle(1);
...@@ -111,11 +112,15 @@ function findcorpse(&$w_pdata){ ...@@ -111,11 +112,15 @@ function findcorpse(&$w_pdata){
{ {
$main = 'battle'; $main = 'battle';
$log .= '你发现了<span class="red">'.$w_name.'</span>的尸体!<br>'; $log .= '你发现了<span class="red">'.$w_name.'</span>的尸体!<br>';
foreach (Array('wep','arb','arh','ara','arf','art','itm0','itm1','itm2','itm3','itm4','itm5','itm6') as $w_value)
{
${$w_value} = parse_itm_desc(${$w_value});
}
foreach (Array('w_wepk','w_arbk','w_arhk','w_arak','w_arfk','w_artk','w_itmk0','w_itmk1','w_itmk2','w_itmk3','w_itmk4','w_itmk5','w_itmk6') as $w_k_value) { foreach (Array('w_wepk','w_arbk','w_arhk','w_arak','w_arfk','w_artk','w_itmk0','w_itmk1','w_itmk2','w_itmk3','w_itmk4','w_itmk5','w_itmk6') as $w_k_value) {
if(${$w_k_value}){ if(${$w_k_value}){
foreach($iteminfo as $info_key => $info_value){ foreach($iteminfo as $info_key => $info_value){
if(strpos(${$w_k_value},$info_key)===0){ if(strpos(${$w_k_value},$info_key)===0){
${$w_k_value.'_words'} = $info_value; ${$w_k_value.'_words'} = parse_itm_desc($info_key,'k');
break; break;
} }
} }
...@@ -123,15 +128,19 @@ function findcorpse(&$w_pdata){ ...@@ -123,15 +128,19 @@ function findcorpse(&$w_pdata){
} }
foreach (Array('w_wepsk','w_arbsk','w_arhsk','w_arask','w_arfsk','w_artsk','w_itmsk0','w_itmsk1','w_itmsk2','w_itmsk3','w_itmsk4','w_itmsk5','w_itmsk6') as $w_sk_value) { foreach (Array('w_wepsk','w_arbsk','w_arhsk','w_arask','w_arfsk','w_artsk','w_itmsk0','w_itmsk1','w_itmsk2','w_itmsk3','w_itmsk4','w_itmsk5','w_itmsk6') as $w_sk_value) {
${$w_sk_value.'_words'} = ''; ${$w_sk_value.'_words'} = '';
if(${$w_sk_value} && ! is_numeric(${$w_sk_value})){ if(${$w_sk_value} && ! is_numeric(${$w_sk_value}))
{
for ($i = 0; $i < strlen($w_sk_value)-1; $i++) { $tmp_wsk = get_itmsk_array(${$w_sk_value});
foreach($tmp_wsk as $sk)
{
${$w_sk_value.'_words'} .= parse_itm_desc($sk,'sk');
}
/*for ($i = 0; $i < strlen($w_sk_value)-1; $i++) {
$sub = substr(${$w_sk_value},$i,1); $sub = substr(${$w_sk_value},$i,1);
if(!empty($sub)){ if(!empty($sub)){
${$w_sk_value.'_words'} .= $itemspkinfo[$sub]; ${$w_sk_value.'_words'} .= $itemspkinfo[$sub];
} }
} }*/
} }
} }
include template('corpse'); include template('corpse');
......
<?php
if(!defined('IN_GAME')) {
exit('Access Denied');
}
//zai jian le suoyoude global
global $gamecfg,$elements_info;//这个$gamecfg到底是在哪定义的……
include_once config('elementmix',$gamecfg);
/********界面交互部分********/
//显示元素数量
function print_elements_info()
{
global $elements_info,$log;
$log.="当前的<span class='lime'>元素存量</span>如下:<br><span class='grey'>(将鼠标悬浮在元素上可以查看其特征)</span><br>";
foreach($elements_info as $e_key=>$e_info)
{
global ${'element'.$e_key};
if(${'element'.$e_key})
{
$log.="<span title=\"".print_elements_tags($e_key)."\">";
$log.="◆ {$e_info}{${'element'.$e_key}} 份;";
$log.="</span><br>";
}
}
$log.="<br>";
}
//显示元素标签……卧槽怎么会这样
function print_elements_tags($e_key)
{
global $temp_etags,$iteminfo,$itemspkinfo;
$tinfo="已了解的特征:";
foreach($temp_etags[$e_key] as $tk => $tarr)
{
foreach($tarr as $tm) $tinfo.= $tk == 'dom' ? "[主]".$iteminfo[$tm]." " : "[次]".$iteminfo[$tm]." ";
}
return $tinfo;
}
/********拆解元素部分********/
//过滤掉不能拆解的道具(数组) 不能分解返回1 能分解返回0
function split_to_elements_filter($i)
{
global $no_itm_to_e_list,$no_itmk_to_e_list,$no_itmsk_to_e_list;
if($i)
{
//过滤不能分解的道具种类
if((!is_array($i['itmk']) && in_array($i['itmk'],$no_itmk_to_e_list)) || (is_array($i['itmk']) && array_intersect($i['itmk'],$no_itmsk_to_e_list))) return 1;
//过滤不能分解的道具名
foreach($no_itm_to_e_list as $no_itm)
{
if(preg_match("/$no_itm/",$i['itm'])) return 1;
}
//过滤不能分解的道具属性
if($i['itmsk'])
{
//把道具属性打散成数组
$tmp_itmsk_arr = get_itmsk_array($i['itmsk']);
if(array_intersect($tmp_itmsk_arr,$no_itmsk_to_e_list)) return 1;
}
return 0;
}
return 1;
}
//把尸体打散成元素
function split_corpse_to_elements(&$edata)
{
$ev_arr = Array();
if($edata)
{
global $elements_info,$no_type_to_e_list,$split_corpse_lvl_r,$split_spcorpse_fix,$typeinfo;
global $log,$rp;
//过滤不能分解的尸体
if(in_array($edata['type'],$no_type_to_e_list))
{
$log.="无法从{$edata['name']}身上提炼元素……为什么呢?<br><br>";
return;
}
//成功从尸体中提炼元素
$log.="<span class='grey'>{$edata['name']}化作点点荧光四散开来……</span><br>";
//处理绑定有秘钥的尸体
if($split_spcorpse_fix[$edata['type']])
{
$ek_arr = Array(); unset($ekey); unset($ev);
//获取缓存文件
$re_list = merge_random_emix_list();
//还原配方与素材键名
$e_list = is_array($split_spcorpse_fix[$edata['type']]) ? $split_spcorpse_fix[$edata['type']][$edata['name']] : $split_spcorpse_fix[$edata['type']];
$e_list = explode('-',str_replace('r_','',$e_list));
//$e_list[0]:配方键名 $e_list[1]:素材所在数组内的位置(不是元素编号)
if($e_list[1] == 'r')
{
//返回随机素材
$ekey = array_rand($re_list[$e_list[0]]['stuff']);
$ev = $re_list[$e_list[0]]['stuff'][$ekey];
}
else
{
//返回指定位置素材 遍历配方 找到它的家
$e_sort = 0;
foreach($re_list[$e_list[0]]['stuff'] as $stuff_key => $stuff_num)
{
if($e_sort == $e_list[1])
{
$ekey = $stuff_key;
$ev = $stuff_num;
break;
}
$e_sort ++;
}
}
$log.="<span class='grey'>你发现从{$typeinfo[$edata['type']]}身上飘落的<span class='red'>{$ev}</span>份{$elements_info[$ekey]}样子有点奇怪……怎么回事呢?</span><br>";
$ek_arr[$ekey] += $ev;
}
//根据尸体等级计算能获得的全种类元素数量
$ev_lvl = ceil($edata['lvl']*$split_corpse_lvl_r);
//把尸体上的装备道具一起打包
$corpse_itm_arr = pack_corpse($edata);
//计算从尸体的装备上能获得的元素种类与数量
$ev_arr = get_evalues_by_iarr($corpse_itm_arr);
//增加对应的元素
foreach($elements_info as $e_key=>$e_info)
{
global ${'element'.$e_key};
$add_ev = $ev_arr[$e_key] + $ev_lvl + $ek_arr[$e_key];
//如果尸体上有元素,一并获取,不过现在还不能在npc配置文件里预设NPC出生时带的元素
//瞄了眼NPC初始化的函数,要改的话不如一步到位都改了。
//TODO:创建一个同步player表字段的函数,在NPC初始化时对NPC数据格式化,插入数据库时用格式化后的数组,这样以后添加新字段也不再需要动初始化函数了
if($edata['element'.$e_key])
{
$add_ev += $edata['element'.$e_key];
$edata['element'.$e_key] = 0;
}
${'element'.$e_key} += $add_ev;
$log.="获得了{$add_ev}{$e_info}!<br>";
}
//销毁尸体
destory_corpse($edata);
//你们也一块去吧!
unset($ev_arr); unset($corpse_itm_arr);
//炼人油败人品
$ep_dice = rand(0,100);
if($ep_dice>70)
{
$rp += $ep_dice;
$log.="……但是这一切真的值得吗?<br>";
}
$log.="<br>";
}
return;
}
//把道具打散成元素 改下传入的参数其实也可以拆装备
function split_item_to_elements($iid=NULL)
{
$i_arr = Array();
if(isset($iid))
{
global $elements_info,$itmk_to_e_list;
global $log,$rp;
global ${'itm'.$iid},${'itmk'.$iid},${'itme'.$iid},${'itms'.$iid},${'itmsk'.$iid};
if(!${'itms'.$iid})
{
$log.="道具来源非法。<br>";
return;
}
//打包
$i_arr['itm'.$iid]['itme']= ${'itme'.$iid};$i_arr['itm'.$iid]['itms']= ${'itms'.$iid};
$i_arr['itm'.$iid]['itm']= ${'itm'.$iid};$i_arr['itm'.$iid]['itmk']= ${'itmk'.$iid};$i_arr['itm'.$iid]['itmsk']= ${'itmsk'.$iid};
//过滤掉不能分解的道具
$filter_flag = split_to_elements_filter($i_arr['itm'.$iid]);
if($filter_flag)
{
$log.="不能分解此道具。<br><br>";
include_once GAME_ROOT.'./include/game/itemmain.func.php';
itemfind();
return;
}
//分解道具获得元素
$log.="<span class='grey'>".${'itm'.$iid}."化作点点荧光四散开来……</span><br>";
//计算能获得的元素种类与数量
$i_arr = get_evalues_by_iarr($i_arr);
//增加对应的元素
foreach($i_arr as $e_key=>$ev)
{
global ${'element'.$e_key};
${'element'.$e_key} += $ev;
$log.="获得了{$ev}{$elements_info[$e_key]}!<br>";
}
//销毁道具
${'itm'.$iid} = ${'itmk'.$iid} = ${'itmsk'.$iid} = '';
${'itme'.$iid} = ${'itms'.$iid} = 0;
//一起一起
unset($i_arr);
//捡垃圾涨功德
$ep_dice = rand(0,100);
if($ep_dice>70)
{
$rp = $rp-$ep_dice;
//rp可以为负吗?
}
$log.="<br>";
}
$mode='command';
return;
}
//通过输入的道具/装备数组计算对应的元素价值
//输入的iarr默认的格式:$iarr=Array('arb或itm0'=>Array('itm'=>$arb或$itm0,'itmk'=>$arbk或$itmk0.....),)
function get_evalues_by_iarr($iarr)
{
global $log,$nosta,$elements_info,$temp_etags;
global $split_itm_fix,$split_spitm_fix,$split_itmk_r,$split_default_itmk_r;
global $split_itmsk_fix,$split_default_itmsk_fix;
$ev_arr = Array();
//获取缓存文件
$cache_file = GAME_ROOT."./gamedata/bak/elementmix.bak";
if(!file_exists($cache_file)) create_random_emix_list();
$flip_etags_arr = openfile_decode($cache_file);
//开始计算元素价值
foreach($iarr as $i => $t)
{
//最优先:检查拆解特定道具(全名匹配)时的事件
if($split_itm_fix[$t['itm']])
{
unset($ekey);unset($ev);
//处理秘钥道具
if(strpos($split_itm_fix[$t['itm']],'r_')===0)
{
//还原配方与素材键名 暂时不考虑秘钥道具=>array的情况 有需要的情况再现加
//$e_list[0]:配方键名 $e_list[1]:素材所在数组内的位置(不是元素编号)
$e_list = explode('-',str_replace('r_','',$split_itm_fix[$t['itm']]));
//返回随机素材
if($e_list[1] == 'r')
{
$ekey = array_rand($flip_etags_arr['random_emix_list'][$e_list[0]]['stuff']);
$ev = $flip_etags_arr['random_emix_list'][$e_list[0]]['stuff'][$ekey];
}
//返回指定位置素材 遍历配方 找到它的家
else
{
$e_sort = 0;
foreach($flip_etags_arr['random_emix_list'][$e_list[0]]['stuff'] as $stuff_key => $stuff_num)
{
if($e_sort == $e_list[1])
{
$ekey = $stuff_key;
$ev = $stuff_num;
break;
}
$e_sort ++;
}
}
$log.="<span class='grey'>你发现构成{$t['itm']}的<span class='red'>{$ev}</span>份{$elements_info[$ekey]}样子有点奇怪……怎么回事呢?</span><br>";
$ev_arr[$ekey] += $ev;
//润!
continue;
}
foreach($split_itm_fix[$t['itm']] as $ekey=>$ev)
{
$ev_arr[$ekey] += $ev;
}
//echo "【DEBUG】检查到了特殊道具【{$t['itm']}】<br>";
continue; //道具在特判列表里 不再继续计算后面的内容 直接跳到下一个道具
}
//次优先:检查拆解特定道具(关键词匹配)时的事件
foreach($split_spitm_fix as $spitm=>$sp_ev)
{
$sp_flag = 0;
if(preg_match("/$spitm/",$t['itm']))
{
//没有指定获得哪种元素 随机获得一种元素
if(!is_array($sp_ev))
{
$ev_arr[array_rand($elements_info)] += $sp_ev;
}
else
{
foreach ($sp_ev as $ekey=>$ev)
$ev_arr[$ekey] += $ev;
unset($ekey);unset($ev);
}
$sp_flag = 1;//道具在特判列表里 不再继续计算后面的内容 直接跳到下一个道具
//echo "【DEBUG】检查到了特殊道具【{$t['itm']}】<br>";
}
}
//道具不能分解 跳过
if(split_to_elements_filter($t) || $sp_flag) continue;
//通过道具的效果、耐久,确定原始价值
if($t['itms'] == $nosta) $t['itms'] = rand(1,10);
$base_ev = round(($t['itme']+$t['itms'])/2);
//echo "【DEBUG】{$t['itm']}的基础价值是{$base_ev}<br>";
//通过道具类别获取价值修正
$k_t = $t['itmk'];
if($split_itmk_r[$k_t])
{
//存在对应修正 优先获取
$k_ev_r = $split_itmk_r[$k_t];
}
else
{
//不存在对应修正 先尝试过滤类别
$k_t = filter_itemkind($k_t);
//没有对应修正关系则返回默认类别的分解系数
$k_ev_r = $split_itmk_r[$k_t] ? $split_itmk_r[$k_t] : $split_default_itmk_r;
}
//应用价值修正
$base_ev = ceil($base_ev*$k_ev_r);
//echo "【DEBUG】{$t['itm']}的类别价值修正系数是{$k_ev_r},修正后的价值是{$base_ev}。<br>";
//通过道具类别关联元素
$k_t = $t['itmk']; $k_ekey = '';
if($flip_etags_arr['flip_d_tag'][$k_t])
{
//存在对应元素 优先获取
$k_ekey = $flip_etags_arr['flip_d_tag'][$k_t];
}
else
{
//不存在对应元素 先尝试过滤类别
$k_t = filter_itemkind($k_t);
//还是没有对应元素 返回随机一种元素
$k_ekey = $flip_etags_arr['flip_d_tag'][$k_t] ? $flip_etags_arr['flip_d_tag'][$k_t] : array_rand($elements_info);
}
//echo "【DEBUG】【{$t['itmk']}】{$t['itm']}关联到的元素是【{$elements_info[$k_ekey]}】<br>";
//应用 类别=>元素 的价值
$ev_arr[$k_ekey] += $base_ev;
//通过属性计算道具的附加价值
if(isset($t['itmsk']))
{
$t['itmsk'] = get_itmsk_array($t['itmsk']);
foreach($t['itmsk'] as $tsk)
{
//获取单个属性关联的元素 没有则随机挑选一个元素
$ekey = $flip_etags_arr['flip_s_tag'][$tsk] ? $flip_etags_arr['flip_s_tag'][$tsk] : array_rand($elements_info);
if(isset($ekey))
{
$add_ev = 0;
//获取属性价值
if($split_itmsk_fix[$tsk])
{
if(is_array($split_itmsk_fix[$tsk]))
{
$add_ev = $split_itmsk_fix[$tsk][$t['itmk']] ? $split_itmsk_fix[$tsk][$t['itmk']] : $split_itmsk_fix[$tsk]['default'];
}
else
{
$add_ev = $split_itmsk_fix[$tsk];
}
}
else
{
$add_ev = $split_default_itmsk_fix;
}
//入列!
$ev_arr[$ekey] += $add_ev;
//echo "【DEBUG】{$t['itm']}的【属性{$tsk}】分解出了{$add_ev}份{$elements_info[$ekey]}<br>";
}
}
}
}
return $ev_arr;
}
/********元素合成部分********/
//元素喝茶
function element_mix($emlist,$eitme_max_r=NULL,$eitme_r=NULL)
{
global $now,$name,$log,$iteminfo,$itemspkinfo,$elements_info;
global $no_emix_circulation;
global $emix_luck_info,$emix_tips_arr,$emix_name_brackets_arr,$emix_name_prefix_arr,$emix_name_meta_arr,$emix_name_tail_arr;
global $itm0,$itmk0,$itme0,$itms0,$itmsk0;
if(!$emlist)
{
$log.="你不能用不存在的东西合成!<br>";
return;
}
//输入了合法的元素参数,先初始化一些变量。
$c_times = 0; $total_enum = 0; $dom_ekey = -1; $dom_enum = -1; $multi_dom_ekey = Array(); $emix_flag = NULL; $emix_fix = NULL;
//自定义效/耐比的阈值:2%~98%
$eitme_r = isset($eitme_r) ? min(98,max(2,$eitme_r)) : rand(2,98);
$eitme_r /= 100;
//自定义最大效果的阈值:1%~100%
$eitme_max_r = isset($eitme_max_r) ? min(100,max(1,$eitme_max_r)) : 100;
$eitme_max_r /= 100;
//对参与合成的元素按投入数量降序排序,筛出投入数量最多的元素作为主元素
arsort($emlist);
$log.="从口袋中抓出了:<br>";
foreach($emlist as $ekey=>$enum)
{
if($c_times == 0)
{
//登记主元素
$dom_ekey = $ekey;
$dom_enum = $enum;
}
else
{
//其他投入的元素数量与主元素数量相差10以内 也可以提供主要特征
if($enum >= ($dom_enum-10)) $multi_dom_ekey[$ekey]=$enum;
//log修正
$log.="、";
}
$log.="{$enum}{$elements_info[$ekey]}";
$c_times++;
//登记投入的元素总量,用于计算效果、耐久
$total_enum += $enum;
//实际扣除投入元素,关于元素数量的合法性在提交合成时就判断过了,这里就不重复判断了
global ${'element'.$ekey};
${'element'.$ekey} -= $enum;
}
$log.="。<br>你紧张地搓了搓手。<br>合成开始了。<br>";
//检查是否存在固定合成(其实放最顶层也行 放这里只是为了输出上面一段log)
$emix_fix = check_in_emix_list($emlist);
if($emix_fix)
{
$log.="<br>但是出现结果的速度比你想象中要快得多!<br>你还没反应过来,元素们就把一样东西吐了出来!<br><br>";
$itm0 = $emix_fix[0]; $itmk0 = $emix_fix[1]; $itmsk0 = $emix_fix[4];
$itme0 = $emix_fix[2]; $itms0 = $emix_fix[3];
include_once GAME_ROOT.'./include/game/itemmain.func.php';
itemget();
addnews($now,'emix_success',$name,$emix_fix[0]);
return;
}
//开始随机合成:
$log.="<span class='grey'>…加入了一点{$emix_tips_arr[array_rand($emix_tips_arr)]}…</span><br>";
//掷骰:
$emix_dice = rand(1,100);
switch($emix_dice)
{
case $emix_dice<=5:
//大成功
$emix_flag = 4;
break;
case $emix_dice<=15:
//出色表现
$emix_flag = 3;
break;
case $emix_dice<=50:
//成功
$emix_flag = 2;
break;
case $emix_dice<=96:
//普通
$emix_flag = 1;
break;
default:
//哇 这下便样衰了!(道具会带有灵魂绑定属性 可恶 为什么诅咒属性不见了)
$emix_flag = -2;
}
$log.="<span class='grey'>你感觉{$emix_luck_info[$emix_flag]}</span><br>";
//生成道具类别:
$emix_itmk = '';
//获取主特征:
$emix_itmk_tags = Array();
$emix_itmk_tags[] = get_emix_dom_tags($dom_ekey,$dom_enum);
//有备选的主特征列表,依次获取
if(count($multi_dom_ekey)>0)
{
foreach($multi_dom_ekey as $md_ekey=>$md_enum)
{
$emix_itmk_tags[] = get_emix_dom_tags($md_ekey,$md_enum);
}
}
//用获取到的主特征(是个数组)确定道具类别
$emix_itmk = get_emix_itmk($emix_itmk_tags,$emix_flag);
$log.="<span class='clan'>你观察到自己投入进去的那坨混合物慢慢有了形状,它似乎能被用作<span class='yellow'>{$iteminfo[$emix_itmk]}</span>。</span><br>";
$log.="<span class='grey'>…再加一些{$emix_tips_arr[array_rand($emix_tips_arr)]}…</span><br>";
//生成道具效果、耐久:
$emix_itme = 0; $emix_itms = 0;
//根据投入的元素总量 计算其中能够转化为效果、耐久的部分(不会超过当前等级的理论上限值)
$cost_enum = get_emix_max_cost($total_enum,$eitme_max_r);
//获取道具效耐比(随机2~98)。$eitem_r:解锁自定义比例功能后,可以自己设置固定的效耐比。
$emix_itme_r = $eitme_r;
$emix_itms_r = 1-$emix_itme_r;
//计算道具效果、耐久
$emix_itme = ($emix_flag==4) ? $cost_enum : ceil($cost_enum*$emix_itme_r*($emix_flag/10 + 1)); //只投入1份元素,至少也会有1点效果、1点耐久。你赚了我亏了好吧!
$emix_itms = ($emix_flag==4) ? '∞' : ceil($cost_enum*$emix_itms_r*($emix_flag/10 + 1));
if(strpos($emix_itmk,'D')===0 && $emix_itms=='∞') $emix_itms = $emix_itme;
$log.="<span class='clan'>在那形状愈发明晰的时候,你听到<span class='yellow'>{$cost_enum}</span>份</span>{$elements_info[$dom_ekey]}<span class='clan'>在升腾的雾气种喃喃呓语。</span><br>";
$log.="<span class='grey'>…哎呀,不小心混入了一点{$emix_tips_arr[array_rand($emix_tips_arr)]}…</span><br>";
//生成道具属性:
$emix_itmsk = ($no_emix_circulation || $emix_flag==-2) ? Array('v') : Array(); //是否固定带有灵魂绑定属性
$emix_itmsk_max = ($no_emix_circulation || $emix_flag==-2) ? 4 : 5; //最多能生成几个属性
//获取次要特征:
$emix_itmsk_tags = Array();
foreach($emlist as $ekey=>$enum)
{
//把生成道具效果、耐久吃掉的元素,根据投入比例分摊到参与合成的元素上
//计算每个元素实际的消耗
$tmp_cost = round($cost_enum * ($enum/$total_enum));
$enum -= $tmp_cost;
//计算消耗后如果还有盈余,才会检查元素是否有能用来生成属性的次要特征。
//基本逻辑:低面板出属性代价低,高面板出属性代价高。
if($enum>0)
{
//获取次要特征
$tmp_emix_itmsk_tags = Array();
$tmp_emix_itmsk_tags = get_emix_sub_tags($ekey,$enum,$emix_itmk,$emix_flag);
$emix_itmsk_tags = array_merge($tmp_emix_itmsk_tags,$emix_itmsk_tags);
}
}
//获取到了次要特征,把次要特征转化为道具属性:
if(count($emix_itmsk_tags)>0)
{
//第三个参数:能保留的属性数量上限
$emix_itmsk = array_merge($emix_itmsk,get_emix_itmsk($emix_itmsk_tags,$emix_itmk,$emix_itmsk_max));
}
//把itmsk从数组转回字符串
$emix_itmsk = get_itmsk_strlen($emix_itmsk);
$log.="<span class='clan'>闻到了硫磺、莎草纸、</span>{$elements_info[array_rand($emlist)]}<span class='clan'>与</span><span class='yellow'>".(count($emix_itmsk_tags)+1)."种发酵物</span><span class='clan'>混合的味道。</span><br>";
//(TODO:合成事件结算阶段)
$log.="<span class='grey'>…最后再加一点{$emix_tips_arr[array_rand($emix_tips_arr)]}…</span><br><br>";
$log.="结束了…?<br><br>";
//出生了!为孩子起个可爱的名字吧
$emix_itm = ''; $emix_itm_prefix = ''; $emix_itm_meta = ''; $emix_itm_tail = ''; $emix_name_brackets = '';
//根据主元素获取修饰前缀词组
$emix_itm_prefix = array_rand($emix_name_prefix_arr[$dom_ekey]);
$emix_itm_prefix = $emix_name_prefix_arr[$dom_ekey][$emix_itm_prefix];
//随便挑一个元素的元词缀词组
$meta_emlist_id =array_rand($emlist); //TODO:大成功、失败事件可以使用拓展1词组
$emix_itm_meta = array_rand($emix_name_meta_arr[$meta_emlist_id]);
$emix_itm_meta = $emix_name_meta_arr[$meta_emlist_id][$emix_itm_meta];
//根据生成的类别获取尾巴词组
$tmp_kind = $emix_itmk;
//过滤掉道具的子类别
$tmp_kind = filter_itemkind($emix_itmk,1);
if(strpos($tmp_kind,'D')===0) $tmp_kind = 'D'; //TODO:提供了单个部位的防具词组后删掉这一句
//复合武器
if(is_array($tmp_kind))
{
//把两种武器的词尾组合起来 可能会生成很怪很怪的东西!!
for($k=0;$k<=count($tmp_kind);$k++)
{
$tmp_k_name = $emix_name_tail_arr[$tmp_kind[$k]][array_rand($emix_name_tail_arr[$tmp_kind[$k]])];
//第一种武器的词尾只保留前两个字 嘻嘻
if($k==0) $tmp_k_name = mb_substr($tmp_k_name,0,2,'utf-8');
$emix_itm_tail .= $tmp_k_name;
}
}
else
{
//根据类别获取词尾 如果没有对应类别的词尾则生成泛用性词尾
$emix_itm_tail = $emix_name_tail_arr[$tmp_kind] ? $emix_name_tail_arr[$tmp_kind][array_rand($emix_name_tail_arr[$tmp_kind])] : $emix_name_tail_arr['0'][array_rand($emix_name_tail_arr['0'])];
}
//(只有生成的是武器时才会)根据合成出的道具效果生成一个能大幅提升时髦值的括号
if(strpos($emix_itmk,'W')===0)
{
$emix_name_brackets = ($emix_itme/100) + rand(-1,1);
$emix_name_brackets = min(max(0,$emix_name_brackets),count($emix_name_brackets_arr)-rand(1,2));
$emix_name_brackets = explode('+',$emix_name_brackets_arr[$emix_name_brackets]);
}
//出生!
$emix_itm = $emix_name_brackets[0].$emix_itm_prefix.$emix_itm_meta.$emix_itm_tail.$emix_name_brackets[1];
if($emix_itm && $emix_itmk && $emix_itme && $emix_itms)
{
$itm0 = $emix_itm; $itmk0 = $emix_itmk; $itmsk0 = $emix_itmsk;
$itme0 = $emix_itme; $itms0 = $emix_itms;
include_once GAME_ROOT.'./include/game/itemmain.func.php';
itemget();
addnews($now,'emix_success',$name,$emix_itm);
}
else
{
$log.="<span class='red'>……合成失败了!<br>你投入进去的元素也全部打了水漂!<br>怎么这样……</span><br>";
addnews($now,'emix_failed',$name);
}
return;
}
//获取当前等级合成出的道具效果上限 这个上限实际上是耐久+效果共用的
//有点蛋疼
function get_emix_itme_max()
{
global $max_emix_itme_start,$max_emix_itme_up;
global $lvl;
//每1级能够提升的上限值 (前32级时的计算公式:基础+提升值*等级*(255-等级)%)(32级后:基础+(提升值+等级)*等级))
$max_itme = $lvl<31 ? $max_emix_itme_start+($max_emix_itme_up*$lvl*((255-$lvl)/255)) : $max_emix_itme_start+(($max_emix_itme_up+$lvl)*$lvl);
$max_itme = ceil($max_itme);
return $max_itme;
}
//通过投入的元素数量 判断合成时最多有多少元素可以转化为效果、耐久
function get_emix_max_cost($total_enum,$emr=1)
{
//获取理论上限
$max_enum = get_emix_itme_max();
//通过自定义上限系数修正
$max_enum *= $emr;
//判断投入数量有没有超过理论上限
$max_cost = min(round($max_enum),$total_enum);
return $max_cost;
}
//判断是否存在固定合成
function check_in_emix_list($emlist)
{
global $emix_list,$random_emix_list;
//先检查固定合成
foreach($emix_list as $elist)
{
if(!array_diff($emlist,$elist['stuff']) && count($emlist) == count($elist['stuff']))
{
//echo "【DEBUG】检测到了固定合成{$elist['result'][0]}<br>";
return $elist['result'];
}
}
//再检查随机合成:尝试获取随机合成配方
$r_emix_list = merge_random_emix_list();
foreach($r_emix_list as $rid => $relist)
{
if(!array_diff($emlist,$relist['stuff']) && count($emlist) == count($relist['stuff']))
{
//echo "【DEBUG】检测到了固定随机合成{$relist['result'][0]}<br>";
return $r_emix_list[$rid]['result'];
}
}
}
//获取元素主特征
function get_emix_dom_tags($ekey,$enum)
{
global $elements_info,$temp_etags;
//拉取元素对应的主特征
$dom_tag = $temp_etags[$ekey]['dom'];
//只有一个主特征 直接返回
if(count($dom_tag)==1) return $dom_tag[0];
//有多个主特征 按规律返回
//判断投入的元素是单数还是双数份
$tag_flag = fmod($enum,2);
//规律:投入单数份元素,返回第0个主特征;否则返回第1个主特征。如果以后有第2、3、4个主特征呢?以后的事情以后再说吧。
$dom_tag = $tag_flag ? $dom_tag[0] : $dom_tag[1];
return $dom_tag;
}
//根据主特征输出道具类别
function get_emix_itmk($dom_tags,$emix_flag=NULL)
{
global $dommix_list;
$emix_itmk = ''; $obbs_fix = 0;
//根据合成表现修正概率
if($emix_flag) $obbs_fix = $emix_flag*10;
if(count($dom_tags)>1)
{
//存在复数个主特征,判断能否进行组合
$mixflag = false;
foreach($dommix_list as $minfo)
{
//直接抄合成匹配逻辑了 有一种野性的美
if(!array_diff($dom_tags,$minfo['stuff']) && !array_diff($minfo['stuff'],$dom_tags) && count($dom_tags) == count($minfo['stuff']))
{
if($minfo['obbs'] && (rand(1,100)-$obbs_fix)>$minfo['obbs']) continue; //配方为概率合成 掷骰判定没通过 跳过
$emix_itmk = $minfo['result'];
$mixflag = true;
break;
}
}
//没有匹配的组合 随机返回一个主特征作为类别
if(!$mixflag) $emix_itmk = $dom_tags[array_rand($dom_tags)];
}
else
{
//只有一个主特征 直接让它作为类别返回
$emix_itmk = $dom_tags[0];
}
return $emix_itmk;
}
//获取元素次要特征
function get_emix_sub_tags($ekey,$enum,$kind,$emix_flag)
{
global $elements_info,$temp_etags;
global $split_default_itmsk_fix,$split_itmsk_fix;
//可惜没有诅咒属性了……
$subtags = Array();
//获取元素所有的次要特征
$e_sub_tags = $temp_etags[$ekey]['sub'];
//筛选出投入数量大于属性价值的次要特征
foreach($e_sub_tags as $etag)
{
//获取属性价值
if($split_itmsk_fix[$etag])
{
if(is_array($split_itmsk_fix[$etag]))
{
$evalues = $split_itmsk_fix[$etag][$kind] ? $split_itmsk_fix[$etag][$kind] : $split_itmsk_fix[$etag]['default'];
}
else
{
$evalues = $split_itmsk_fix[$etag];
}
}
else
{
$evalues = $split_default_itmsk_fix;
}
//配吗?
if($enum >= $evalues) $sub_tags[$etag] = $evalues;
}
//扣除元素存量,并随机生成特征:
$e_sub_tags = Array(); $tn = 0;
if(count($sub_tags)>0)
{
//骰一个生成的次要特征上限
$tag_max = rand(0,count($sub_tags)) + $emix_flag;
do{
$skey = array_rand($sub_tags);
$enum -= $sub_tags[$skey];
$e_sub_tags[]=$skey;
unset($sub_tags[$skey]);
$tn++;
}while($tn < $tag_max && count($sub_tags)>0);
}
return $e_sub_tags;
}
//根据次要特征输出道具属性 $max_sk:输出的属性数量上限
function get_emix_itmsk($sub_tags,$kind,$max_sk=5)
{
global $submix_list,$itmk_to_itmsk_tags;
$sk_value = Array();
//对传入的次要特征进行组合判断
if(count($sub_tags)>1)
{
//存在复数个次要特征,判断能否进行组合
//尝试获取随机配方
$r_submix_list = merge_random_emix_list(1);
//合并固定配方与随机配方
$submix_list = array_merge_recursive($r_submix_list,$submix_list);
foreach($submix_list as $minfo)
{
//属性组合就不要求数量一一对应了 先到先得
//逻辑:匹配素材数量>=要求素材数量 感觉有点问题 但又好像没有问题 暂时就这么搞!<-傻了吧 没做重复属性判断
if(count(array_intersect($sub_tags,$minfo['stuff'])) >= count($minfo['stuff']) && !in_array($minfo['result'],$sk_value))
{
//配方为概率合成 掷骰判定
if($minfo['obbs'])
{
//获取概率修正
if(is_array($minfo['obbs']))
{
$obbs = $minfo['obbs'][$kind] ? $minfo['obbs'][$kind] : $minfo['obbs']['default'];
}
else
{
$obbs = $minfo['obbs'];
}
if(rand(1,100)>$minfo['obbs']) continue;
}
//配对成功!消除素材特征
foreach($minfo['stuff'] as $m_sub_tags)
{
unset($sub_tags[array_search($m_sub_tags,$sub_tags)]);
}
//把组合结果丢进待生成的属性队列内
$sk_value[] = $minfo['result'];
break;
}
}
}
//将次要特征合并进待生成的属性队列内
$sk_value = array_merge($sk_value,$sub_tags);
//将传入的道具类别与特征对比,过滤掉一些乱七八糟的属性:
$kind = substr($kind,0,1); //只用道具类别的首字母判断……这个叫什么?大类!
foreach($sk_value as $key_sk => $sk)
{
//来点反人类的:TODO:这里有问题
//武器上不会生成“防御性”属性
if($kind=='W' && array_search($sk,$itmk_to_itmsk_tags['D'])) unset($sk_value[$key_sk]);
//防具、道具上不会生成“攻击性”属性
if($kind!='W' && array_search($sk,$itmk_to_itmsk_tags['W'])) unset($sk_value[$key_sk]);
//补给品只会生成杂项属性
if($kind=='H' && !array_search($sk,$itmk_to_itmsk_tags['misc'])) unset($sk_value[$key_sk]);
}
//从尾部筛出超过生成上限的属性
while(count($sk_value)>$max_sk)
{
//shuffle($sub_tags); //按照原顺序筛出,可以优先保留组合出的属性
array_pop($sk_value);
}
return $sk_value;
}
//翻转标签数组 以通过类型/属性找到对应的元素
function flip_temp_etags($tags_arr)
{
$cache_arr = Array();
//翻转标签
foreach($tags_arr as $eid=>$earr)
{
foreach($earr['dom'] as $dom_tag)
{
$cache_arr['flip_d_tag'][$dom_tag] = $eid;
}
foreach($earr['sub'] as $sub_tag)
{
$cache_arr['flip_s_tag'][$sub_tag] = $eid;
}
}
return $cache_arr;
}
//打印随机合成结果 记得先执行上面那个翻转数组 把翻转后的数组传进这里 才能确保生成随机属性组合时每个素材都有源头元素
function create_random_emix_list($cache_arr)
{
global $elements_info,$split_itmsk_fix,$split_default_itmsk_fix,$itmk_to_itmsk_tags;
global $random_emix_list,$random_submix_list;
$emix_arr = Array();
//先处理随机合成
foreach($random_emix_list as $eid=>$elist)
{
$emix_arr['random_emix_list'][$eid]['stuff'] = Array(); //缓存文件里只保存键值和配方
foreach($elist['stuff'] as $ekey=>$enum)
{
do{
$ekey = array_rand($elements_info);
}while(isset($emix_arr['random_emix_list'][$eid]['stuff'][$ekey]));
$enum = explode('-',substr($enum,1));
$enum = rand($enum[0],$enum[1]);
$emix_arr['random_emix_list'][$eid]['stuff'][$ekey]=$enum;
}
}
//然后处理随机属性……呃啊
//所有参与属性组合的“特征” 都应该存在于传入的$cache_arr(翻转数组)里 这样才能确保它是有“源头”的
foreach($random_submix_list as $sid=>$slist)
{
$emix_arr['random_smix_list'][$sid]['stuff'] = Array();
foreach($slist['stuff'] as $skey=>$snum)
{
$skey = '';
if(strpos($snum,'sk_')===0)
{
$skey = str_replace('sk_','',$snum);
}
elseif(strpos($snum,'v_')===0)
{
$snum = str_replace('v_','',$snum);
do{
$skey = array_rand($cache_arr['flip_s_tag']);
$sv = $split_itmsk_fix[$skey] ? $split_itmsk_fix[$skey] : $split_default_itmsk_fix;
if(is_array($sv)) $sv = $sv['default'];
}while($sv<$snum || in_array($emix_arr['random_smix_list'][$sid]['stuff']));
}
elseif(strpos($snum,'tags_')===0)
{
$snum = $itmk_to_itmsk_tags[str_replace('tags_','',$snum)];
do{
shuffle($snum);
$skey = $snum[0];
}while(in_array($emix_arr['random_smix_list'][$sid]['stuff']) || !array_key_exists($skey,$cache_arr['flip_s_tag']));
}
$emix_arr['random_smix_list'][$sid]['stuff'][] = $skey;
}
}
return array_merge($emix_arr,$cache_arr);
}
//合并随机合成模板与素材
function merge_random_emix_list($type=0)
{
global $random_emix_list,$random_submix_list;
//获取缓存文件
$cache_file = GAME_ROOT."./gamedata/bak/elementmix.bak";
if(!file_exists($cache_file)) create_emix_cache_file();
$cache_file = openfile_decode($cache_file);
//用已生成的随机配方替换模板配方
if($type == 0)
{
$list = $random_emix_list;
foreach($list as $rkey => $rlist)
{
$list[$rkey]['stuff'] = $cache_file['random_emix_list'][$rkey]['stuff'];
}
}
else
{
$list = $random_submix_list;
foreach($list as $rkey => $rlist)
{
$list[$rkey]['stuff'] = $cache_file['random_smix_list'][$rkey]['stuff'];
}
}
return $list;
}
//生成元素合成相关的临时配置文件 只在有人用了对应社团卡时执行一次
//如果不想用这个的话 也可以直接调用对应的数组生成模块
//研究模式随机生成的一些东西也会以这种方式储存
function create_emix_cache_file()
{
global $temp_etags,$gamecfg,$gamenum,$log;
$file = GAME_ROOT."./gamedata/bak/elementmix.bak";
if(file_exists($file))
{
//检查本局游戏是不是已经生成过配置文件了
$check = openfile_decode($file);
if($check['gamenum'] == $gamenum)
{
return;
$log.="【DEBUG】如果你看到这条信息,请转告管理员:“调试完记得把注释去掉!”<br>";
}
else
{
//文件是旧的,直接删掉
unlink($file);
}
}
//翻转标签
$cache_arr = flip_temp_etags($temp_etags);
//生成随机合成
$cache_arr = create_random_emix_list($cache_arr);
//加入本局游戏编号
$cache_arr['gamenum'] = $gamenum;
//写入文件
writeover_encode($file,$cache_arr);
//$log.="【DEBUG】生成了本局游戏对应的临时配置文件。<br>";
return;
}
/********一些可复用函数 也许可以挪到其他地方********/
//销毁尸体
function destory_corpse(&$edata)
{
if($edata && $edata['hp']<=0)
{
//$edata['state'] = 16;
$edata['money'] = 0;
$edata['weps'] = 0;$edata['arbs'] = 0;$edata['arhs'] = 0;$edata['aras'] = 0;$edata['arfs'] = 0;$edata['arts'] = 0;
$edata['itms0'] = 0;$edata['itms1'] = 0;$edata['itms2'] = 0;$edata['itms3'] = 0;$edata['itms4'] = 0;$edata['itms5'] = 0;$edata['itms6'] = 0;
player_save($edata);
}
return;
}
//打包尸体 ……
function pack_corpse(&$edata)
{
if($edata && $edata['hp']<=0)
{
$tmp_arr = Array();
foreach(Array('wep','arb','arh','ara','arf','ara') as $i)
{ //搞笑!
if($edata[$i.'s'])
{
$tmp_arr[$i]['itm'] = $edata[$i];$tmp_arr[$i]['itmk'] = $edata[$i.'k'];$tmp_arr[$i]['itmsk'] = $edata[$i.'sk'];
$tmp_arr[$i]['itme'] = $edata[$i.'e'];$tmp_arr[$i]['itms'] = $edata[$i.'s'];
}
}
for($iid=1;$iid<=6;$iid++)
{ //笑不出来了
$inm = 'itm'.$iid;
if($edata['itms'.$iid])
{
$tmp_arr[$inm]['itm'] = $edata['itm'.$iid];
$tmp_arr[$inm]['itmk'] = $edata['itmk'.$iid];
$tmp_arr[$inm]['itmsk'] = $edata['itmsk'.$iid];
$tmp_arr[$inm]['itme'] = $edata['itme'.$iid];
$tmp_arr[$inm]['itms'] = $edata['itms'.$iid];
}
}
}
return $tmp_arr;
}
//数组化itmsk 可能是四面的遗产 //和还原itmsk为字符串一起挪到game.func.php里了
//过滤杂项道具类别(可以作为一个通用型函数) //我好傻
function filter_itemkind($kind,$check_dualwep=0)
{
global $iteminfo;
foreach($iteminfo as $info_key => $info_value)
{
if(strpos($kind,$info_key)===0)
{
$kind = $info_key;
break;
}
}
return $kind;
}
//使用json_encode结构将指定数组写入文件
function writeover_encode($filename,$arr,$method='rb+')
{
if(is_array($arr))
{
$arr = json_encode($arr);
writeover($filename,$arr,$method);
chmod($filename,0777);
return;
}
return;
}
//打开使用json_encode结构保存的文件,返回整个数组,或单独某节
function openfile_decode($filename,$key=NULL)
{
if(file_exists($filename))
{
$data = file_get_contents($filename);
if($data)
{
$data = json_decode($data,true);
if(isset($key)) return $data[$key];
}
return $data;
}
return;
}
?>
\ No newline at end of file
...@@ -5,7 +5,7 @@ if (! defined ( 'IN_GAME' )) { ...@@ -5,7 +5,7 @@ if (! defined ( 'IN_GAME' )) {
} }
function itemuse($itmn) { function itemuse($itmn) {
global $mode, $log, $nosta, $pid, $name, $state, $now,$nick,$achievement; global $mode, $log, $nosta, $pid, $name, $state, $now,$nick,$achievement,$club;
if ($itmn < 1 || $itmn > 6) { if ($itmn < 1 || $itmn > 6) {
$log .= '此道具不存在,请重新选择。'; $log .= '此道具不存在,请重新选择。';
$mode = 'command'; $mode = 'command';
...@@ -1732,6 +1732,62 @@ function itemuse($itmn) { ...@@ -1732,6 +1732,62 @@ function itemuse($itmn) {
$itm = $itmk = $itmsk = ''; $itm = $itmk = $itmsk = '';
$itme = $itms = 0; $itme = $itms = 0;
death ( 's_escape', '', 0, $itm ); death ( 's_escape', '', 0, $itm );
} elseif ($itm == '测试用元素口袋'){
global $elements_info;
$log.="【DEBUG】你不知道从哪里摸出来一大堆元素!<br>";
foreach($elements_info as $e_key=>$e_info)
{
global ${'element'.$e_key};
${'element'.$e_key} += 100000;
$log.="获得了100000份".$elements_info[$e_key]."!<br>";
}
//初始化元素合成缓存文件
include_once GAME_ROOT.'./include/game/elementmix.func.php';
create_emix_cache_file();
} elseif ($itm == '测试用元素大师社团卡'){
//-----------------------//
//这是一张测试用卡 冴冴可以挑一些用得上的放在使用社团卡后执行的事件里
global $elements_info,$sparkle;
//未选择社团情况下才可以用社团卡
if($club)
{
$log.="你已经是有身份的人了!不能再使用社团卡。<br>";
}
//反正是测试用的 发段怪log
$log.="你拿起<span class='yellow'>$itm</span>左右端详着……<br>
你将目光扫过卡片上若隐若现的纹理,突然发现这张卡内似乎别有洞天。<br>
透过纹理,你看到一群奇装异服的小人们,围坐在一处颇具古典风格的露天广场上。<br>
广场中央有一人,正抬手指天,慷慨陈词。<br>
你听不到它们在说什么,但演讲者那极富感染力的动作勾起了你的好奇心,<br>
你不由自主得沿着它指的方向望去——<br>
<br>
洁白如镜的天穹上,倒映出的是你的脸。<br>
<br>
你赶忙移开视线,但小人们已经发现了你。<br>
从广场再到远处的平原上,数以十计、百计、千计、万计,
一眼望不到头的小人们从你视野的尽头涌出,挤向你所在的方向。<br>
就在此时,你突然感到手心一烫,下意识地便将手里的卡片丢了出去。<br>
眼前亦真亦幻的怪异景象登时消失不见了。<br>
<br>
你低下头,发现卡片已经被烧掉一半了,<br>
在被火焰烧灼得卷曲起的边缘处,漏出了某样东西的一角。<br>
你捡起卡片,甩了甩,便看到一个足足有卡片五倍甚至四倍大的东西从里面掉了出来!<br>";
$log.="<br>获得了<span class='sparkle'>{$sparkle}元素口袋{$sparkle}</span>!<br>";
$log.="……这到底是怎么一回事呢?<br><br>";
//社团变更
$club = 20;
//获取初始元素与第一条配方
$dice = rand(0,5);
global ${'element'.$dice};
${'element'.$dice} += 200+$dice;
//初始化元素合成缓存文件
include_once GAME_ROOT.'./include/game/elementmix.func.php';
create_emix_cache_file();
//销毁道具
$itm = $itmk = $itmsk = '';
$itme = $itms = 0;
//-----------------------//
} elseif ($itm == '提示纸条A') { } elseif ($itm == '提示纸条A') {
$log .= '你读着纸条上的内容:<br>“执行官其实都是幻影,那个红暮的身上应该有召唤幻影的玩意。”<br>“用那个东西然后打倒幻影的话能用游戏解除钥匙出去吧。”<br>'; $log .= '你读着纸条上的内容:<br>“执行官其实都是幻影,那个红暮的身上应该有召唤幻影的玩意。”<br>“用那个东西然后打倒幻影的话能用游戏解除钥匙出去吧。”<br>';
} elseif ($itm == '提示纸条B') { } elseif ($itm == '提示纸条B') {
...@@ -1882,11 +1938,37 @@ function itemuse($itmn) { ...@@ -1882,11 +1938,37 @@ function itemuse($itmn) {
$log .= " <span class=\"yellow\">$itm</span> 该如何使用呢?<br>"; $log .= " <span class=\"yellow\">$itm</span> 该如何使用呢?<br>";
} }
//元素大师使用提示纸条的特殊效果:
if($club == 20 && strpos($itmk,'Y')===0 && strpos($itm,'提示纸条')!==false)
{
$log.="<br>就在你读完内容打算把纸条收起来时,你愕然发现纸条背面竟然还有字!<br><br>";
include_once config('elementmix',$gamecfg);
$log.= $emix_slip[array_rand($emix_slip)];
//除商店纸条外:提供一条元素特征(TODO)、或一条固定配方、或一条随机属性组合
if(!preg_match('/(A|B|C|D)/',$itm))
{
$log .= "“附:见面有缘,再送你一条提示吧:”<br>";
/*** TODO:把这一块封装进一个函数里 ***/
$log .= "<span class='yellow'>“将带有";
global $itemspkinfo;
include_once GAME_ROOT.'./include/game/elementmix.func.php';
$s_list = merge_random_emix_list(1); $s_id = array_rand($s_list);
foreach($s_list[$s_id]['stuff'] as $skey) $log .= "【$itemspkinfo[$skey]】";
$s_result = $itemspkinfo[$random_submix_list[$s_id]['result']];
$log .= "特征的元素组合起来,就有机会组合出【{$s_result}】属性。”</span><br>";
/*** TODO:把这一块封装进一个函数里 ***/
}
//阅后即焚
$log .="<br>……说这么多鬼记得住啊!<br>你思考了一下,决定把{$itm}吃进肚子里,以便慢慢消化其中的知识。<br>";
$itms--;
}
if (($itms <= 0) && ($itm)) { if (($itms <= 0) && ($itm)) {
$log .= "<span class=\"red\">$itm</span> 用光了。<br>"; $log .= "<span class=\"red\">$itm</span> 用光了。<br>";
$itm = $itmk = $itmsk = ''; $itm = $itmk = $itmsk = '';
$itme = $itms = 0; $itme = $itms = 0;
} }
} else { } else {
$log .= "你使用了道具 <span class=\"yellow\">$itm</span> 。<br>但是什么也没有发生。<br>"; $log .= "你使用了道具 <span class=\"yellow\">$itm</span> 。<br>但是什么也没有发生。<br>";
} }
......
...@@ -178,6 +178,7 @@ function trap(){ ...@@ -178,6 +178,7 @@ function trap(){
function itemfind() { function itemfind() {
global $mode,$log,$itm0,$itmk0,$itms0,$itmsk0; global $mode,$log,$itm0,$itmk0,$itms0,$itmsk0;
global $club;
if(!$itm0||!$itmk0||!$itms0){ if(!$itm0||!$itmk0||!$itms0){
$log .= '获取物品信息错误!'; $log .= '获取物品信息错误!';
$mode = 'command'; $mode = 'command';
...@@ -995,6 +996,7 @@ function itembuy($item,$shop,$bnum=1) { ...@@ -995,6 +996,7 @@ function itembuy($item,$shop,$bnum=1) {
function getcorpse($item){ function getcorpse($item){
global $db,$tablepre,$log,$mode; global $db,$tablepre,$log,$mode;
global $itm0,$itmk0,$itme0,$itms0,$itmsk0,$money,$pls,$action; global $itm0,$itmk0,$itme0,$itms0,$itmsk0,$money,$pls,$action;
global $club;
$corpseid = strpos($action,'corpse')===0 ? str_replace('corpse','',$action) : str_replace('pacorpse','',$action); $corpseid = strpos($action,'corpse')===0 ? str_replace('corpse','',$action) : str_replace('pacorpse','',$action);
if(!$corpseid || strpos($action,'corpse')===false){ if(!$corpseid || strpos($action,'corpse')===false){
$log .= '<span class="yellow">你没有遇到尸体,或已经离开现场!</span><br>'; $log .= '<span class="yellow">你没有遇到尸体,或已经离开现场!</span><br>';
...@@ -1024,6 +1026,22 @@ function getcorpse($item){ ...@@ -1024,6 +1026,22 @@ function getcorpse($item){
$mode = 'command'; $mode = 'command';
return; return;
} }
if($item == 'element_split')
{
if($club != 20)
{
$log.="你还想对这具可怜的尸体干什么?麻烦给死者一点基本的尊重!<br>";
$action = '';
$mode = 'command';
return;
}
include_once GAME_ROOT.'./include/game/elementmix.func.php';
split_corpse_to_elements($edata);
$action = '';
$mode = 'command';
return;
}
if($item == 'wep') { if($item == 'wep') {
$itm0 = $edata['wep']; $itm0 = $edata['wep'];
......
...@@ -61,6 +61,8 @@ function itemmixchooser(){ ...@@ -61,6 +61,8 @@ function itemmixchooser(){
} }
} }
} }
if($('change_emr') != null && $('change_emr').checked) $('change_emr').value=1;
if($('change_emax') != null && $('change_emax').checked) $('change_emax').value=1;
} }
//icon select //icon select
...@@ -275,7 +277,7 @@ function showData(sdata){ ...@@ -275,7 +277,7 @@ function showData(sdata){
if(shwData['timer'] && typeof(timerid)=='undefined'){ if(shwData['timer'] && typeof(timerid)=='undefined'){
demiSecTimerStarter(shwData['timer']); demiSecTimerStarter(shwData['timer']);
} }
if ($('HsUipfcGhU')) //ˢҳ if ($('HsUipfcGhU')) //ˢ��ҳ����
{ {
window.location.reload(); window.location.reload();
} }
...@@ -337,4 +339,25 @@ function openShutManager(oSourceObj,oTargetObj,shutAble,oOpenTip,oShutTip){ ...@@ -337,4 +339,25 @@ function openShutManager(oSourceObj,oTargetObj,shutAble,oOpenTip,oShutTip){
} }
} }
//元素合成界面的ajax效果 仅作美化使用
function getEmitmeR(type=0) {
if(type == 1)
{
var r = document.getElementById("emitme_max_r").value;
var e = document.getElementById("emax").value;
$('s_emitme_max').innerHTML = Math.round(e*(r/100));
}
else
{
var r = document.getElementById("emitme_r").value;
$('s_emitme_r').innerHTML = r;
$('s_emitms_r').innerHTML = 100-r;
$('sr_warning').innerHTML = '';
if(r>79 || r<21)
{
$('sr_warning').innerHTML = '警告:过度干预可能引发灾难性的后果!';
}
}
}
//1 //1
...@@ -272,6 +272,10 @@ function nparse_news($start = 0, $range = 0 ){//$type = '') { ...@@ -272,6 +272,10 @@ function nparse_news($start = 0, $range = 0 ){//$type = '') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"lime\">{$a}做出了一个他自己可能会后悔很长一段时间的决定。</span><br>\n"; $newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"lime\">{$a}做出了一个他自己可能会后悔很长一段时间的决定。</span><br>\n";
} elseif($news == 'present') { } elseif($news == 'present') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"yellow\">{$a}打开了{$b},获得了{$c}!</span><br>\n"; $newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"yellow\">{$a}打开了{$b},获得了{$c}!</span><br>\n";
} elseif($news == 'emix_success') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"yellow\">{$a}用零散的元素组合出了{$b}!</span><br>\n";
} elseif($news == 'emix_failed') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"red\">{$a}试图把零散的元素重新组合起来,但是失败了!哎呀呀、这可真是……</span><br>\n";
} else { } else {
$newsinfo .= "<li>$time,$news,$a,$b,$c,$d<br>\n"; $newsinfo .= "<li>$time,$news,$a,$b,$c,$d<br>\n";
} }
......
...@@ -29,7 +29,12 @@ ...@@ -29,7 +29,12 @@
<!--{/if}--> <!--{/if}-->
<br> <br>
<!--{if $club==19}--><span class="lime">报应点数:<span id="anum">$rp</span></span><br><!--{/if}--> <!--{if $club==19}--><span class="lime">报应点数:<span id="anum">$rp</span></span><br><!--{/if}-->
<!--{if $club==20}-->
<a onclick="$('mode').value='itemmain';$('command').value='elementbag';postCmd('gamecmd','command.php');this.disabled=true;"><span class="sparkle">{$sparkle}元素口袋{$sparkle}</span></a><br>
<input type="button" class="cmdbutton" id="elementmix" name="elementmix" value="元素合成" onclick="$('command').value='itemmain';$('subcmd').name='itemcmd';$('subcmd').value='elementmix';postCmd('gamecmd','command.php');this.disabled=true;">
<!--{else}-->
<input type="button" class="cmdbutton" id="itemmix" name="itemmix" value="道具合成" onclick="$('command').value='itemmain';$('subcmd').name='itemcmd';$('subcmd').value='itemmix';postCmd('gamecmd','command.php');this.disabled=true;"> <input type="button" class="cmdbutton" id="itemmix" name="itemmix" value="道具合成" onclick="$('command').value='itemmain';$('subcmd').name='itemcmd';$('subcmd').value='itemmix';postCmd('gamecmd','command.php');this.disabled=true;">
<!--{/if}-->
<input type="button" class="cmdbutton" id="itemmerge" name="itemmerge" value="整理包裹" onclick="$('command').value='itemmain';$('subcmd').name='itemcmd';$('subcmd').value='itemmerge';postCmd('gamecmd','command.php');this.disabled=true;"> <input type="button" class="cmdbutton" id="itemmerge" name="itemmerge" value="整理包裹" onclick="$('command').value='itemmain';$('subcmd').name='itemcmd';$('subcmd').value='itemmerge';postCmd('gamecmd','command.php');this.disabled=true;">
<!--{if strpos($artk,'ss')!==false}--> <!--{if strpos($artk,'ss')!==false}-->
<input type="button" class="cmdbutton" id="sp_weapon" name="sp_weapon" value="歌唱" onclick="$('command').value='song';$('subcmd').name='song';postCmd('gamecmd','command.php');this.disabled=true;"> <input type="button" class="cmdbutton" id="sp_weapon" name="sp_weapon" value="歌唱" onclick="$('command').value='song';$('subcmd').name='song';postCmd('gamecmd','command.php');this.disabled=true;">
......
想要从尸体上拾取什么?<br><br> 想要从尸体上拾取什么?<br><br>
<input type="hidden" name="mode" value="corpse"> <input type="hidden" name="mode" value="corpse">
<input type="radio" name="command" id="menu" value="menu" <!--{if !$w_money}-->checked<!--{/if}-->><a onclick=sl('menu'); href="javascript:void(0);" >返回</a><br><br> <!--{if $club==20}-->
<input type="radio" name="command" id="element_split" value="element_split" <!--{if !$w_money}-->checked<!--{/if}-->><a onclick=sl('element_split'); href="javascript:void(0);" >提炼元素</a><br>
<!--{/if}-->
<input type="radio" name="command" id="menu" value="menu" <!--{if !$w_money && $club!=20 }-->checked<!--{/if}-->><a onclick=sl('menu'); href="javascript:void(0);" >返回</a><br><br>
<!--{if $w_weps && $w_wepe}--> <!--{if $w_weps && $w_wepe}-->
<input type="radio" name="command" id="wep" value="wep"><a onclick=sl('wep'); href="javascript:void(0);" >$w_wep/$w_wepk_words/$w_wepe/$w_weps<!--{if $w_wepsk_words}-->/$w_wepsk_words<!--{/if}--></a><br> <input type="radio" name="command" id="wep" value="wep"><a onclick=sl('wep'); href="javascript:void(0);" >$w_wep/$w_wepk_words/$w_wepe/$w_weps<!--{if $w_wepsk_words}-->/$w_wepsk_words<!--{/if}--></a><br>
<!--{/if}--> <!--{/if}-->
......
你在你的小口袋里翻找起来……<br>
打算组合哪些元素?<br>
<input type="hidden" id="emax" name="emax" value="$emax">
<input type="hidden" name="mode" value="itemmain">
<input type="hidden" name="command" id="command" value="menu">
<br>
<!--元素选取模块-->
<!--{if $element0}-->
<input type="checkbox" id="mitm1" name="mitm1" value="-1"><a onclick="$('mitm1').click();" href="javascript:void(0);">$etaginfo0 $elements_info[0] 放入:</span></a>
<input type="number" style="width:50px" name="emitm0_num" value="$element0" min="0" max="$element0" oninput="if(value>$element0)value=$element0;if(value<0)value=0" /><br>
<!--{/if}-->
<!--{if $element1}-->
<input type="checkbox" id="mitm2" name="mitm2" value="-1"><a onclick="$('mitm2').click();" href="javascript:void(0);">$etaginfo1 $elements_info[1] 放入:</span></a>
<input type="number" style="width:50px" name="emitm1_num" value="$element1" min="0" max="$element1" oninput="if(value>$element1)value=$element1;if(value<0)value=0" /><br>
<!--{/if}-->
<!--{if $element2}-->
<input type="checkbox" id="mitm3" name="mitm3" value="-1"><a onclick="$('mitm3').click();" href="javascript:void(0);">$etaginfo2 $elements_info[2] 放入:</span></a>
<input type="number" style="width:50px" name="emitm2_num" value="$element2" min="0" max="$element2" oninput="if(value>$element2)value=$element2;if(value<0)value=0" /><br>
<!--{/if}-->
<!--{if $element3}-->
<input type="checkbox" id="mitm4" name="mitm4" value="-1"><a onclick="$('mitm4').click();" href="javascript:void(0);">$etaginfo3 $elements_info[3] 放入:</span></a>
<input type="number" style="width:50px" name="emitm3_num" value="$element3" min="0" max="$element3" oninput="if(value>$element3)value=$element3;if(value<0)value=0" /><br>
<!--{/if}-->
<!--{if $element4}-->
<input type="checkbox" id="mitm5" name="mitm5" value="-1"><a onclick="$('mitm5').click();" href="javascript:void(0);">$etaginfo4 $elements_info[4] 放入:</span></a>
<input type="number" style="width:50px" name="emitm4_num" value="$element4" min="0" max="$element4" oninput="if(value>$element4)value=$element4;if(value<0)value=0" /><br>
<!--{/if}-->
<!--{if $element5}-->
<input type="checkbox" id="mitm6" name="mitm6" value="-1"><a onclick="$('mitm6').click();" href="javascript:void(0);">$etaginfo5 $elements_info[5] 放入:</span></a>
<input type="number" style="width:50px" name="emitm5_num" value="$element5" min="0" max="$element5" oninput="if(value>$element5)value=$element5;if(value<0)value=0" /><br>
<!--{/if}-->
<br>
<!--自带:通过投入元素数量的奇偶决定道具类别-->
<span class="yellow">&nbsp;&nbsp;【数术】</span><br>
&nbsp; › 投入份数<span class="lime">最多(±10)</span>的一种或多种元素<br>
会成为<span class="lime">主元素</span>,影响合成结果的<span class="lime">类型</span><br>
&nbsp; › 投入的主元素为<span class="redseed"></span>|<span class="blueseed"></span>数份时,元素会展<br>
<span class="redseed">第一</span>|<span class="blueseed">第二</span>个主特征。<br>
<br>
<!--5级后解锁:最大生成效果调节-->
<!--{if $lvl>=5}-->
<span class="yellow">&nbsp;&nbsp;【节制】</span><span class="grey">(勾选启用)</span><input type="checkbox" id="change_emr" name="change_emr" value="-1"><br>
&nbsp; › 你可以主动限制元素合成结果的<span class="lime">效耐上限</span><br>
&nbsp; › 当前:生成道具的效果+耐久上限<span class="yellow"><span id="s_emitme_max" name="s_emitme_max">$emax</span></span><br>
<input type="range" class="range" step="0.1" style="width:220px" id="emitme_max_r" name="emitme_max_r" min="1" max="100" value="100" onchange="getEmitmeR(1)"><br>
<br>
<!--{else}-->
<span class="grey">&nbsp;&nbsp;【节制】(5级后解锁):<br>
&nbsp; › 解锁后可以限制元素合成的<span class="lime">效耐上限</span><br></span>
<br>
<!--{/if}-->
<!--15级后解锁:效果、耐久比例调节-->
<!--{if $lvl>=15}-->
<span class="yellow">&nbsp;&nbsp;【预言】</span><span class="grey">(勾选启用)</span><input type="checkbox" id="change_emax" name="change_emax" value="-1"><br>
&nbsp; › 你能够干涉元素合成结果的<span class="lime">效耐占比</span><br>
&nbsp; › 当前:效果占比<span class="yellow"><span id="s_emitme_r" name="s_emitme_r">55</span>%】</span>&nbsp;耐久占比<span class="yellow"><span id="s_emitms_r" name="s_emitms_r">45</span>%】</span><br>
&nbsp; <span id="sr_warning" name="sr_warning" class="red"></span>
<input type="range" class="range" style="width:220px" id="emitme_r" name="emitme_r" min="2" max="98" value="55" onchange="getEmitmeR(0)"><br>
<br>
<!--{else}-->
<span class="grey">&nbsp;&nbsp;【预言】(15级后解锁):<br>
&nbsp; › 解锁后能够干涉元素合成结果的<span class="lime">效耐占比</span><br>
&nbsp; › 当前:效果、耐久占比会在<span class="lime">2%~98%</span>间浮动。</span><br>
<br>
<!--{/if}-->
<input type="button" class="cmdbutton" name="submit" value="提交" onclick="$('command').value='elementmix';itemmixchooser();postCmd('gamecmd','command.php');this.disabled=true;">
<input type="button" class="cmdbutton" name="submit" value="放弃" onclick="postCmd('gamecmd','command.php');this.disabled=true;">
\ No newline at end of file
...@@ -5,5 +5,9 @@ ...@@ -5,5 +5,9 @@
<br> <br>
<input type="hidden" id="mode" name="mode" value="itemmain"> <input type="hidden" id="mode" name="mode" value="itemmain">
<input type="hidden" id="command" name="command" value="itemget"> <input type="hidden" id="command" name="command" value="itemget">
<input type="button" class="cmdbutton" name="itemget" value="拾取" onclick="postCmd('gamecmd','command.php');this.disabled=true;"><br><br> <input type="button" class="cmdbutton" name="itemget" value="拾取" onclick="postCmd('gamecmd','command.php');this.disabled=true;">
<!--{if $club==20}-->
&nbsp;&nbsp;<input type="button" class="cmdbutton" name="split_itm" value="提炼" onclick="$('command').value='split_itm0';postCmd('gamecmd','command.php');this.disabled=true;">
<!--{/if}-->
<br><br>
<input type="button" class="cmdbutton" name="dropitm0" value="丢弃" onclick="$('command').value='dropitm0';postCmd('gamecmd','command.php');this.disabled=true;"> <input type="button" class="cmdbutton" name="dropitm0" value="丢弃" onclick="$('command').value='dropitm0';postCmd('gamecmd','command.php');this.disabled=true;">
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -223,7 +223,7 @@ ...@@ -223,7 +223,7 @@
武器名称 武器名称
</td> </td>
<td width=505px align="center" class="b3"> <td width=505px align="center" class="b3">
$npcinfo[$kind]['sub'][$key]['wep']/$iteminfo[$npcinfo[$kind]['sub'][$key]['wepk']]/$npcinfo[$kind]['sub'][$key]['wepe']/$npcinfo[$kind]['sub'][$key]['weps']<!--{if isset($npcinfo[$kind]['sub'][$key]['wepsk'])}--><!--{loop $itemspkinfo $ky $vl}--><!--{if strpos($npcinfo[$kind]['sub'][$key]['wepsk'],$ky)!==false}--><!--{if strpos($npcinfo[$kind]['sub'][$key]['wepsk'],$ky)===0}-->/$vl<!--{/if}--><!--{/if}--><!--{/loop}--><!--{loop $itemspkinfo $ky $vl}--><!--{if strpos($npcinfo[$kind]['sub'][$key]['wepsk'],$ky)!==false}--><!--{if strpos($npcinfo[$kind]['sub'][$key]['wepsk'],$ky)!==0}-->+$vl<!--{/if}--><!--{/if}--><!--{/loop}--><!--{/if}--> $npcinfo[$kind]['sub'][$key]['wep']/$npcinfo[$kind]['sub'][$key]['wepk']/$npcinfo[$kind]['sub'][$key]['wepe']/$npcinfo[$kind]['sub'][$key]['weps']/$npcinfo[$kind]['sub'][$key]['wepsk_words']
</td> </td>
</tr> </tr>
<tr> <tr>
...@@ -232,9 +232,9 @@ ...@@ -232,9 +232,9 @@
</td> </td>
<td width=505px align="center" class="b3"> <td width=505px align="center" class="b3">
<!--{if isset($npcinfo[$kind]['sub'][$key]['arb'])}--> <!--{if isset($npcinfo[$kind]['sub'][$key]['arb'])}-->
$npcinfo[$kind]['sub'][$key]['arb']/$npcinfo[$kind]['sub'][$key]['arbe']/$npcinfo[$kind]['sub'][$key]['arbs']<!--{if isset($npcinfo[$kind]['sub'][$key]['arbsk'])}--><!--{loop $itemspkinfo $ky $vl}--><!--{if strpos($npcinfo[$kind]['sub'][$key]['arbsk'],$ky)!==false}--><!--{if strpos($npcinfo[$kind]['sub'][$key]['arbsk'],$ky)===0}-->/$vl<!--{/if}--><!--{/if}--><!--{/loop}--><!--{loop $itemspkinfo $ky $vl}--><!--{if strpos($npcinfo[$kind]['sub'][$key]['arbsk'],$ky)!==false}--><!--{if strpos($npcinfo[$kind]['sub'][$key]['arbsk'],$ky)!==0}-->+$vl<!--{/if}--><!--{/if}--><!--{/loop}--><!--{/if}--> $npcinfo[$kind]['sub'][$key]['arb']/$npcinfo[$kind]['sub'][$key]['arbe']/$npcinfo[$kind]['sub'][$key]['arbs']/$npcinfo[$kind]['sub'][$key]['arbsk_words']
<!--{else}--> <!--{else}-->
$npcinfo[$kind]['arb']/$npcinfo[$kind]['arbe']/$npcinfo[$kind]['arbs']<!--{if isset($npcinfo[$kind]['arbsk'])}--><!--{loop $itemspkinfo $ky $vl}--><!--{if strpos($npcinfo[$kind]['arbsk'],$ky)!==false}--><!--{if strpos($npcinfo[$kind]['arbsk'],$ky)===0}-->/$vl<!--{/if}--><!--{/if}--><!--{/loop}--><!--{loop $itemspkinfo $ky $vl}--><!--{if strpos($npcinfo[$kind]['arbsk'],$ky)!==false}--><!--{if strpos($npcinfo[$kind]['arbsk'],$ky)!==0}-->+$vl<!--{/if}--><!--{/if}--><!--{/loop}--><!--{/if}--> $npcinfo[$kind]['arb']/$npcinfo[$kind]['arbe']/$npcinfo[$kind]['arbs']/$npcinfo[$kind]['arbsk_words']
<!--{/if}--> <!--{/if}-->
</td> </td>
</tr> </tr>
...@@ -244,9 +244,9 @@ ...@@ -244,9 +244,9 @@
</td> </td>
<td width=505px align="center" class="b3"> <td width=505px align="center" class="b3">
<!--{if isset($npcinfo[$kind]['sub'][$key]['arh'])}--> <!--{if isset($npcinfo[$kind]['sub'][$key]['arh'])}-->
$npcinfo[$kind]['sub'][$key]['arh']/$npcinfo[$kind]['sub'][$key]['arhe']/$npcinfo[$kind]['sub'][$key]['arhs']<!--{if isset($npcinfo[$kind]['sub'][$key]['arhsk'])}--><!--{loop $itemspkinfo $ky $vl}--><!--{if strpos($npcinfo[$kind]['sub'][$key]['arhsk'],$ky)!==false}--><!--{if strpos($npcinfo[$kind]['sub'][$key]['arhsk'],$ky)===0}-->/$vl<!--{/if}--><!--{/if}--><!--{/loop}--><!--{loop $itemspkinfo $ky $vl}--><!--{if strpos($npcinfo[$kind]['sub'][$key]['arhsk'],$ky)!==false}--><!--{if strpos($npcinfo[$kind]['sub'][$key]['arhsk'],$ky)!==0}-->+$vl<!--{/if}--><!--{/if}--><!--{/loop}--><!--{/if}--> $npcinfo[$kind]['sub'][$key]['arh']/$npcinfo[$kind]['sub'][$key]['arhe']/$npcinfo[$kind]['sub'][$key]['arhs']/$npcinfo[$kind]['sub'][$key]['arhsk_words']
<!--{else}--> <!--{else}-->
$npcinfo[$kind]['arh']/$npcinfo[$kind]['arhe']/$npcinfo[$kind]['arhs']<!--{if isset($npcinfo[$kind]['arhsk'])}--><!--{loop $itemspkinfo $ky $vl}--><!--{if strpos($npcinfo[$kind]['arhsk'],$ky)!==false}--><!--{if strpos($npcinfo[$kind]['arhsk'],$ky)===0}-->/$vl<!--{/if}--><!--{/if}--><!--{/loop}--><!--{loop $itemspkinfo $ky $vl}--><!--{if strpos($npcinfo[$kind]['arhsk'],$ky)!==false}--><!--{if strpos($npcinfo[$kind]['arhsk'],$ky)!==0}-->+$vl<!--{/if}--><!--{/if}--><!--{/loop}--><!--{/if}--> $npcinfo[$kind]['arh']/$npcinfo[$kind]['arhe']/$npcinfo[$kind]['arhs']/$npcinfo[$kind]['sub'][$key]['arhsk_words']
<!--{/if}--> <!--{/if}-->
</td> </td>
</tr> </tr>
...@@ -256,9 +256,9 @@ ...@@ -256,9 +256,9 @@
</td> </td>
<td width=505px align="center" class="b3"> <td width=505px align="center" class="b3">
<!--{if isset($npcinfo[$kind]['sub'][$key]['ara'])}--> <!--{if isset($npcinfo[$kind]['sub'][$key]['ara'])}-->
$npcinfo[$kind]['sub'][$key]['ara']/$npcinfo[$kind]['sub'][$key]['arae']/$npcinfo[$kind]['sub'][$key]['aras']<!--{if isset($npcinfo[$kind]['sub'][$key]['arask'])}--><!--{loop $itemspkinfo $ky $vl}--><!--{if strpos($npcinfo[$kind]['sub'][$key]['arask'],$ky)!==false}--><!--{if strpos($npcinfo[$kind]['sub'][$key]['arask'],$ky)===0}-->/$vl<!--{/if}--><!--{/if}--><!--{/loop}--><!--{loop $itemspkinfo $ky $vl}--><!--{if strpos($npcinfo[$kind]['sub'][$key]['arask'],$ky)!==false}--><!--{if strpos($npcinfo[$kind]['sub'][$key]['arask'],$ky)!==0}-->+$vl<!--{/if}--><!--{/if}--><!--{/loop}--><!--{/if}--> $npcinfo[$kind]['sub'][$key]['ara']/$npcinfo[$kind]['sub'][$key]['arae']/$npcinfo[$kind]['sub'][$key]['aras']/$npcinfo[$kind]['sub'][$key]['arask_words']
<!--{else}--> <!--{else}-->
$npcinfo[$kind]['ara']/$npcinfo[$kind]['arae']/$npcinfo[$kind]['aras']<!--{if isset($npcinfo[$kind]['arask'])}--><!--{loop $itemspkinfo $ky $vl}--><!--{if strpos($npcinfo[$kind]['arask'],$ky)!==false}--><!--{if strpos($npcinfo[$kind]['arask'],$ky)===0}-->/$vl<!--{/if}--><!--{/if}--><!--{/loop}--><!--{loop $itemspkinfo $ky $vl}--><!--{if strpos($npcinfo[$kind]['arask'],$ky)!==false}--><!--{if strpos($npcinfo[$kind]['arask'],$ky)!==0}-->+$vl<!--{/if}--><!--{/if}--><!--{/loop}--><!--{/if}--> $npcinfo[$kind]['ara']/$npcinfo[$kind]['arae']/$npcinfo[$kind]['aras']/$npcinfo[$kind]['arask_words']
<!--{/if}--> <!--{/if}-->
</td> </td>
</tr> </tr>
...@@ -268,9 +268,9 @@ ...@@ -268,9 +268,9 @@
</td> </td>
<td width=505px align="center" class="b3"> <td width=505px align="center" class="b3">
<!--{if isset($npcinfo[$kind]['sub'][$key]['arf'])}--> <!--{if isset($npcinfo[$kind]['sub'][$key]['arf'])}-->
$npcinfo[$kind]['sub'][$key]['arf']/$npcinfo[$kind]['sub'][$key]['arfe']/$npcinfo[$kind]['sub'][$key]['arfs']<!--{if isset($npcinfo[$kind]['sub'][$key]['arfsk'])}--><!--{loop $itemspkinfo $ky $vl}--><!--{if strpos($npcinfo[$kind]['sub'][$key]['arfsk'],$ky)!==false}--><!--{if strpos($npcinfo[$kind]['sub'][$key]['arfsk'],$ky)===0}-->/$vl<!--{/if}--><!--{/if}--><!--{/loop}--><!--{loop $itemspkinfo $ky $vl}--><!--{if strpos($npcinfo[$kind]['sub'][$key]['arfsk'],$ky)!==false}--><!--{if strpos($npcinfo[$kind]['sub'][$key]['arfsk'],$ky)!==0}-->+$vl<!--{/if}--><!--{/if}--><!--{/loop}--><!--{/if}--> $npcinfo[$kind]['sub'][$key]['arf']/$npcinfo[$kind]['sub'][$key]['arfe']/$npcinfo[$kind]['sub'][$key]['arfs']/$npcinfo[$kind]['sub'][$key]['arfsk_words']
<!--{else}--> <!--{else}-->
$npcinfo[$kind]['arf']/$npcinfo[$kind]['arfe']/$npcinfo[$kind]['arfs']<!--{if isset($npcinfo[$kind]['arfsk'])}--><!--{loop $itemspkinfo $ky $vl}--><!--{if strpos($npcinfo[$kind]['arfsk'],$ky)!==false}--><!--{if strpos($npcinfo[$kind]['arfsk'],$ky)===0}-->/$vl<!--{/if}--><!--{/if}--><!--{/loop}--><!--{loop $itemspkinfo $ky $vl}--><!--{if strpos($npcinfo[$kind]['arfsk'],$ky)!==false}--><!--{if strpos($npcinfo[$kind]['arfsk'],$ky)!==0}-->+$vl<!--{/if}--><!--{/if}--><!--{/loop}--><!--{/if}--> $npcinfo[$kind]['arf']/$npcinfo[$kind]['arfe']/$npcinfo[$kind]['arfs']/$npcinfo[$kind]['arfsk_words']
<!--{/if}--> <!--{/if}-->
</td> </td>
</tr> </tr>
...@@ -280,9 +280,9 @@ ...@@ -280,9 +280,9 @@
</td> </td>
<td width=505px align="center" class="b3"> <td width=505px align="center" class="b3">
<!--{if isset($npcinfo[$kind]['sub'][$key]['art'])}--> <!--{if isset($npcinfo[$kind]['sub'][$key]['art'])}-->
$npcinfo[$kind]['sub'][$key]['art']/$iteminfo[$npcinfo[$kind]['sub'][$key]['artk']]<!--{if isset($npcinfo[$kind]['sub'][$key]['artsk'])}--><!--{loop $itemspkinfo $ky $vl}--><!--{if strpos($npcinfo[$kind]['sub'][$key]['artsk'],$ky)!==false}--><!--{if strpos($npcinfo[$kind]['sub'][$key]['artsk'],$ky)===0}-->/$vl<!--{/if}--><!--{/if}--><!--{/loop}--><!--{loop $itemspkinfo $ky $vl}--><!--{if strpos($npcinfo[$kind]['sub'][$key]['artsk'],$ky)!==false}--><!--{if strpos($npcinfo[$kind]['sub'][$key]['artsk'],$ky)!==0}-->+$vl<!--{/if}--><!--{/if}--><!--{/loop}--><!--{/if}--> $npcinfo[$kind]['sub'][$key]['art']/$npcinfo[$kind]['sub'][$key]['artk']/$npcinfo[$kind]['sub'][$key]['artsk_words']
<!--{else}--> <!--{else}-->
$npcinfo[$kind]['art']/$iteminfo[$npcinfo[$kind]['artk']]<!--{if isset($npcinfo[$kind]['artsk'])}--><!--{loop $itemspkinfo $ky $vl}--><!--{if strpos($npcinfo[$kind]['artsk'],$ky)!==false}--><!--{if strpos($npcinfo[$kind]['artsk'],$ky)===0}-->/$vl<!--{/if}--><!--{/if}--><!--{/loop}--><!--{loop $itemspkinfo $ky $vl}--><!--{if strpos($npcinfo[$kind]['artsk'],$ky)!==false}--><!--{if strpos($npcinfo[$kind]['artsk'],$ky)!==0}-->+$vl<!--{/if}--><!--{/if}--><!--{/loop}--><!--{/if}--> $npcinfo[$kind]['art']/$npcinfo[$kind]['artk']/$npcinfo[$kind]['artsk_words']
<!--{/if}--> <!--{/if}-->
</td> </td>
</tr> </tr>
...@@ -293,7 +293,7 @@ ...@@ -293,7 +293,7 @@
掉落物品 掉落物品
</td> </td>
<td width=505px align="center" class="b3"> <td width=505px align="center" class="b3">
$npcinfo[$kind]['sub'][$key]['itm'.$id]/$iteminfo[$npcinfo[$kind]['sub'][$key]['itmk'.$id]]/$npcinfo[$kind]['sub'][$key]['itme'.$id]/$npcinfo[$kind]['sub'][$key]['itms'.$id]<!--{if isset($npcinfo[$kind]['sub'][$key]['itmsk'.$id])}--><!--{loop $itemspkinfo $ky $vl}--><!--{if strpos($npcinfo[$kind]['sub'][$key]['itmsk'.$id],$ky)!==false}--><!--{if strpos($npcinfo[$kind]['sub'][$key]['itmsk'.$id],$ky)===0}-->/$vl<!--{/if}--><!--{/if}--><!--{/loop}--><!--{loop $itemspkinfo $ky $vl}--><!--{if strpos($npcinfo[$kind]['sub'][$key]['itmsk'.$id],$ky)!==false}--><!--{if strpos($npcinfo[$kind]['sub'][$key]['itmsk'.$id],$ky)!==0}-->+$vl<!--{/if}--><!--{/if}--><!--{/loop}--><!--{/if}--> $npcinfo[$kind]['sub'][$key]['itm'.$id]/$npcinfo[$kind]['sub'][$key]['itmk'.$id]/$npcinfo[$kind]['sub'][$key]['itme'.$id]/$npcinfo[$kind]['sub'][$key]['itms'.$id]/$npcinfo[$kind]['sub'][$key]['itmsk'.$id.'_words']
</td> </td>
</tr> </tr>
<!--{elseif isset($npcinfo[$kind]['itm'.$id])}--> <!--{elseif isset($npcinfo[$kind]['itm'.$id])}-->
...@@ -302,7 +302,7 @@ ...@@ -302,7 +302,7 @@
掉落物品 掉落物品
</td> </td>
<td width=505px align="center" class="b3"> <td width=505px align="center" class="b3">
$npcinfo[$kind]['itm'.$id]/$iteminfo[$npcinfo[$kind]['itmk'.$id]]/$npcinfo[$kind]['itme'.$id]/$npcinfo[$kind]['itms'.$id]<!--{if isset($npcinfo[$kind]['itmsk'.$id])}--><!--{loop $itemspkinfo $ky $vl}--><!--{if strpos($npcinfo[$kind]['itmsk'.$id],$ky)!==false}--><!--{if strpos($npcinfo[$kind]['itmsk'.$id],$ky)===0}-->/$vl<!--{/if}--><!--{/if}--><!--{/loop}--><!--{loop $itemspkinfo $ky $vl}--><!--{if strpos($npcinfo[$kind]['itmsk'.$id],$ky)!==false}--><!--{if strpos($npcinfo[$kind]['itmsk'.$id],$ky)!==0}-->+$vl<!--{/if}--><!--{/if}--><!--{/loop}--><!--{/if}--> $npcinfo[$kind]['itm'.$id]/$npcinfo[$kind]['itmk'.$id]/$npcinfo[$kind]['itme'.$id]/$npcinfo[$kind]['itms'.$id]/$npcinfo[$kind]['itmsk'.$id.'_words']
</td> </td>
</tr> </tr>
<!--{/if}--> <!--{/if}-->
......
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