Commit fea4b6df authored by hisuinohoshi's avatar hisuinohoshi

Add elementmix_1.php; Update element.func.php;

other changes:{news.func.php;item.func.php}
基本上完成了元素大师的拆解与合成功能,但具体的数值与配置还需要慢慢打磨一下。
todolist:元素合成的log美化、配置调整、研究模式。
写到这忽然反应过来,这个职业是不是还需要4个技能……
冴冴……这个坑比我想象的要深啊!
parent 7f6a31ac
<?php
if(!defined('IN_GAME')) exit('Access Denied');
/********元素大师配置文件********/
//wo bei global gaofengle, shui neng jiujiu wo...
//你怎么回事 搞特殊化?
global $corpse_to_e_lvl_r;
//过滤选项:
//不可以被拆解的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;
//是否启用研究模式(启用:2 很神奇吧!)
//TODO:研究模式:每局游戏初始化时,为元素随机分配不同的特征,为特征组合分配随机配方。
//玩家需要通过阅读提示纸条,或合成出对应的类型/属性,才能了解到元素特征、组合配方,并显示在技能升级页面。
//相关的配置选项在最下面(
//$enable_emix_research_mode = 0;
/********拆解相关配置********/
//系数:
//拆解的对象等级与获得元素的数量关系(默认:等级*1) 什么,小兵竟然有30级!?
$corpse_to_e_lvl_r = 1;
//拆解【特定道具】(全名匹配)时 固定会获得的元元素、数量
//应该还有一些拆掉会触发别的事件的道具,这个特事特判吧
$itm_to_e_fix = Array
(
'消音器' => Array(5=>21), //拆消音器固定获得21个夜静静
'打火机' => Array(1=>113), //拆打火机固定获得113个暖洋洋
'毒药' => Array(3=>25), //拆毒药固定获得25个郁萌萌
'电池' => Array(0=>15,4=>17), //拆电池获得15个亮晶晶、7个昼闪闪
'バカ⑨制冰块' => Array(2=>19,1=>9), //拆这个东西会获得19个冷冰冰……和9个暖洋洋……可能是被冻在里面的东西也被一起拆了
//拆方块应该在这里占有一席之地……或者?
);
//拆解【特定类别】时 固定会获得的元素、数量
//没有特殊标注时,拆解类别对应的元素与元素的主要特征挂钩
$itmk_to_e_fix = Array();
//拆解【特定类别】时获得元素数量的修正系数(默认:1倍)(基础的元素数量:效果+耐久/2 *系数 *浮动)
$itmk_to_e_r = Array
(
//拆解陷阱
'TN' => 0.3,
//拆解复合武器获得的元素数量x2.5
'WGK' => 2.5,
'WCF' => 2.5,
'WCP' => 2.5,
'WKF' => 2.5,
'WKP' => 2.5,
'WFK' => 2.5,
'WDG' => 2.5,
'WDF' => 2.5,
'WJ' => 1.25,
//拆解补给品获得的元素数量x0.1
'HH' => 0.1,
'HS' => 0.1,
'HB' => 0.2,
'PH' => 0.12,
'PS' => 0.12,
'PB' => 0.25,
//拆解强化药物……这也舍得拆?
'M'=> 15,
'ME'=> 25,
'MH'=> 25,
'V'=> 3,
'VV'=> 5,
//拆解弹药……这也要拆!?
'GBh' => 5,
'GBr' => 0.003,
'GBi' => 0.005,
'GBe' => 0.005,
'GB' => 0.004,
);
//拆解【特定属性】时 固定会获得的元素、数量
//没有特殊标注时,拆解类别对应的元素与元素的次要特征挂钩
$itmsk_to_e_fix = Array();
/********合成相关配置********/
//【特征】:每个元素带有若干个【主要特征】与【次要特征】。
//【主要特征】:用于决定合成产物的【类别】,合成时【投入份数最多】的元素会显现其主要特征;
//【次要特征】:用于决定合成产物的【属性】。
//元素特征预设模板(关闭研究模式的情况下,每局游戏内元素的特征依此模板固定。)
$temp_etags = Array
(
//dom => 主要特征(类别) sub => 次要特征(属性)
//max_d(s)_tags => 仅在研究模式开启的情况下生效,用于限定元素随机生成的标签上限
0 => Array('dom' => Array('WP','DH'), 'sub' => Array('e','P','E','x'), 'max_d_tags'=>2, 'max_s_tags'=>4,), //亮晶晶
1 => Array('dom' => Array('WG','HH'), 'sub' => Array('u','G','U','c'), 'max_d_tags'=>2, 'max_s_tags'=>4,), //暖洋洋
2 => Array('dom' => Array('WC','HS'), 'sub' => Array('i','C','I','H'), 'max_d_tags'=>2, 'max_s_tags'=>4,), //冷冰冰
3 => Array('dom' => Array('WK','DB'), 'sub' => Array('p','K','q','z'), 'max_d_tags'=>2, 'max_s_tags'=>4,), //郁萌萌
4 => Array('dom' => Array('WD','DA'), 'sub' => Array('d','D','R','M'), 'max_d_tags'=>2, 'max_s_tags'=>4,), //昼闪闪
5 => Array('dom' => Array('WF','DF'), 'sub' => Array('w','F','W','S'), 'max_d_tags'=>2, 'max_s_tags'=>4,), //夜静静
);
//合成结果-类别:
//主要特征组合配方:合成时存在多个【主要特征】(投入了多种占比最高、且数量相同的元素),依此表检查是否有特殊变化
//obbs:满足条件时有obbs%的概率组合,不设置即为100%组合;random:开启研究模式的情况下,随机为此配方生成random个合成条件。
$emix_dom_mixlist = array
(
Array('stuff'=>Array('WG','WK'),'result'=>'WGK'), //射+斩=枪刃
Array('stuff'=>Array('WC','WF'),'result'=>'WCF'), //投+符=符札
Array('stuff'=>Array('WC','WP'),'result'=>'WCP'), //投+殴=重物
Array('stuff'=>Array('WK','WF'),'result'=>'WKF'), //斩+符=灵刃
Array('stuff'=>Array('WK','WP'),'result'=>'WKP'), //斩+殴=重剑
Array('stuff'=>Array('WF','WK','DA'),'result'=>'WFK'), //符+斩=魔刃……?等等……?只能再加个DA凑数了
Array('stuff'=>Array('WD','WG'),'result'=>'WDG'), //爆+射=巨炮
Array('stuff'=>Array('WD','WF'),'result'=>'WDF'), //爆+符=落魂
Array('stuff'=>Array('HH','HS'),'result'=>'HB'), //回命+回体=命体回复
Array('stuff'=>Array('HH','WF'),'result'=>'HM',), //回命+灵=歌魂增加
Array('stuff'=>Array('HS','WD'),'result'=>'HT'), //回体+爆=歌魂恢复
Array('stuff'=>Array('WG','WG'),'result'=>'WJ','obbs'=>30,), //射+射=重枪(30%概率)
//我认为这里应该有一个配方 可以合出有毒补给或者地雷(
);
//合成结果-效果与耐久:
//效果初始上限值(合成出的道具/装备效果不会超过这个值)
$max_emix_itme_start = 45;
//每1级能够提升的上限值(有浮动,具体计算方法在get_emix_itme_max()内)
$max_emix_itme_up = 29;
//合成时默认的效果/耐久比例(效果*0.55 耐久*(1-0.55))(等级变高后,合成时可以自己控制这一比例)
$default_emix_itme_r = 0.55;
//合成结果-属性:
//默认(未定义)属性价值:合成时投入的元素份数(减去用来生成效果、耐久的部分后)大于此值才有概率生成对应属性。
$emix_sub_tags_default_values = 50;
//属性价值表:不在表内的属性会使用默认的特征价值。
$emix_sub_tags_values = Array
(
//物理攻击:
'R' => 11, //馄饨伤害
'N' => 68, //冲击
'n' => 89, //贯穿
'r' => 112, //连击
//属性攻击:
'u' => 52, //火焰
'i' => 34, //冻气
'w' => 49, //音波
'e' => 39, //带电
'p' => 51, //带毒
'd' => 77, //爆炸
'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, //奇迹
);
//属性价值修正(根据道具类别判断)
$emix_sub_tags_values_fix = Array
(
'HH' => Array('z'=>-66,), //补给品生成天然属性所需的价值-66……但是为什么呢?
'HS' => Array('z'=>-66,),
'WD' => Array('d'=>-40,), //爆系武器生成爆炸属性需要的价值-40
'WDG' => Array('d'=>-20,),
'WDF' => Array('d'=>-20,),
);
//次要特征组合配方:将次要特征转化为道具属性时,检查是否满足组合条件。
//两个配方存在重复元素时,排在前面的会优先生成,可能新增条目的时候要注意下顺序……大概?。
$emix_sub_mixlist = array
(
Array('stuff'=>Array('e','w','p','c'),'result'=>'n','obbs'=>50), //音+电+毒+重击辅助=贯穿(50%概率)
Array('stuff'=>Array('x','z','o'),'result'=>'Z','obbs'=>7), //奇迹+天然+一发=菁英
Array('stuff'=>Array('u','i'),'result'=>'d','obbs'=>50), //火+冻=爆炸
Array('stuff'=>Array('i','e'),'result'=>'d','obbs'=>50), //冻+电=爆炸
Array('stuff'=>Array('w','u'),'result'=>'d','obbs'=>50), //音+火=爆炸
//冴冴来发挥奇思妙想吧
//还应该有一些合出连击物防属防或者其他乱七八糟属性的配方,头皮好痒,感觉要长脑子了
);
//属性组合配方概率修正(根据道具类别判断)
$emix_sub_mix_obbs_fix = Array
(
'WD' => Array('d'=>50,), //爆系武器生成爆炸属性的概率+50
'WDG' => Array('d'=>25,),
'WDF' => Array('d'=>25,),
);
//合成结果-名字:
//乐
//括在名字外围的符号
$emix_name_brackets_arr = Array('☆+☆','★+★','〖+〗','【+】','『+』','「+」','《+》','○+○','●+●');
//前缀修饰词,由主元素决定,有多个主元素时随机抽取。主元素组合成功时再抽取通用前缀。
$emix_name_prefix_arr = Array
(
0 => Array('拂晓的','闪亮的','璀璨的','耀目的','浮华的','光芒的','有名的','吸引来龙的','不值钱的','布偶熊的','大咧咧的'),//'亮晶晶'
1 => Array('温暖的','燃烧着的','活力的','致命的','有引力的','阳炎的','红发的','超可爱的','被余晖染上的','血的'),//'暖洋洋'
2 => Array('无暇的','纯洁的','冻住的','生人勿近的','猫的','喜欢宅在家里的','流动的','冷静的','浊心的','高洁的','黏在铁上的'),//'冷冰冰'
3 => Array('华丽的','地雷的','悲伤的','爱的','空虚的','有反差的','单马尾的','迷失了的','黑漆漆的','活在记忆里的','天然呆的'),//'郁萌萌'
4 => Array('晨曦的','闪闪发光的','金发的','像齿轮一样的','迈向明日的','初生的','跃动的','环形的','心怀希冀的','金色的'),//'昼闪闪'
5 => Array('宵暗的','无声的','能停止时间的','无眠的','已经困了的','噩梦的','梦见羊的','梦见门之钥的','喝提神饮料的','五分糖的'),//'夜静静'
6 => Array('神秘的','有魔力的','结构复杂的','不可名状的','差不多完美的','终局的','烂尾的','连通了的','可再生的','世界尽头的','第四面的'),//泛用
);
//过渡词,随便挑一个非主元素的
$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
(
0 => Array('之剑','之锋刃','小刀','之斧','光剑','带刃','匕首','菜刀','牙'),//'锐器'
1 => Array('之锤','之惃棒','之木棒','木昆棒','之槌','拳套','偶','像','之盾','鞭','之石'),//'钝器'
2 => Array('之镖','牌','投掷物','大便','之球','盘','弹','之弓','之矢','青蛙','水滴'),//'投掷'
3 => Array('之枪','之光枪','之炮','浮游炮','燧发枪','滑膛枪','激光','气枪','弹弓'),//'枪'
4 => Array('之炸弹','之此面向敌','之贝蒂','之绳','之陷坑','抽卡游戏','之胜负欲','之这是什么?摸一下。'),//'爆炸物'
5 => Array('之手环','之法书','之心','之触','符篆','纸人','信徒','精神性','南方蟑螂'),//'灵武'
6 => Array('之服','之护','轨迹','之尾巴','之鱼形鳞','之灯笼裤','之胖次','朋友','匣子'),//防具……要再细分下……?以后再说吧……
7 => Array('糊糊','面糊饼','烤鱼面包','章鱼须','鸡肉','生海带','幸运饼干','土豆','之泪'),//道具……同上……
);
/********研究模式配置********/
//元素初始化时可分配的主要特征列表
//在随机为元素分配特征时,会优先从不同键名内挑选特征。可以通过在不同键名内加入相同的特征,加大其出现的概率。
$emix_dom_tags = Array
(
'att' => Array('WP','WK','WC','WG','WD','WF'),
'def' => Array('DB','DH','DA','DF'),
'misc' => Array('HH','HS'),
);
//元素初始化时可分配的次要特征列表:
$emix_sub_tags = Array
(
'att' => Array('u','e','i','w','p','d','R'),
'def' => Array('P','K','C','G','D','F','U','E','I','W','q'),
'misc' => Array('M','S','o','z','x','c','H','l','g'),
);
?>
...@@ -4,99 +4,71 @@ ...@@ -4,99 +4,71 @@
exit('Access Denied'); exit('Access Denied');
} }
//global haomafan wo hao miss mingmingspace //zai jian le suoyoude global
global $elements_info; global $gamecfg,$elements_info;//这个$gamecfg到底是在哪定义的……
global $no_type_to_e_list,$no_itmk_to_e_list,$no_itmsk_to_e_list,$no_emix_circulation; include_once config('elementmix',$gamecfg);
global $corpse_to_e_lvl_r,$itmk_to_e_r,$itmsk_to_e,$itmsk_to_e_r;
//过滤:
//不可以被拆解的NPC类型
$no_type_to_e_list = Array();
//不可以被拆解的道具类别
$no_itmk_to_e_list = Array('N','WN','Y','Z','p','fy','ygo');
//不可以被拆解的道具属性
$no_itmsk_to_e_list = Array('v','^');
//使用元素合成的道具自带灵魂绑定属性(启用:1)
$no_emix_circulation = 0;
//系数:
//元素合成的效果初始上限值(合成出的道具/装备效果不会超过这个值)
$max_emix_itme_start = 45;
//每1级能够提升的上限值 (前32级时的计算公式:提升值*等级*(100-等级)%)(32级后开始数值膨胀:(提升值+等级)*等级*(1+等级/(255-等级)))
$max_emix_itme_up = 29;
//拆解的对象等级与获得元素的数量关系(默认:等级*5)
$corpse_to_e_lvl_r = 5;
//拆解特定类别道具时获得元素数量的修正系数(默认:1倍)(基础的元素数量:效果+耐久/2 *系数 *浮动)
//给自己一个参考,拆掉一个小兵能获得的元素(等级10*5+武器100/2+装备55/2*4=210),好像勉强还能和钱对标,但是到真职人开始可能就要崩盘了
//真职人能提供多少元素?(等级30*5+武器88+888/2+装备888+888/2*4=4190 好像也还能接受!)
$itmk_to_e_r = Array
(
//拆解复合武器获得的元素数量x2.5
'WGK' => 2.5,
'WCF' => 2.5,
'WCP' => 2.5,
'WKF' => 2.5,
'WKP' => 2.5,
'WFK' => 2.5,
'WDG' => 2.5,
'WDF' => 2.5,
'WJ' => 1.25,
//拆解补给品获得的元素数量x0.1
'HH' => 0.1,
'HS' => 0.1,
'HB' => 0.2,
'PH' => 0.12,
'PS' => 0.12,
'PB' => 0.25,
//拆解弹药……这也要拆!?
'GBh' => 5,
'GBr' => 0.003,
'GBi' => 0.005,
'GBe' => 0.005,
'GB' => 0.004,
);
//拆解特定属性时获得元素数量(种类)的基础值
$itmsk_to_e = Array
(
'x' => 999997,//奇迹
'e' => Array(0=>77),//电击 固定给77个亮晶晶
'u' => Array(1=>101),//火焰 固定给101个暖洋洋
'i' => Array(2=>121),//冻气 固定给121个冷冰冰
'p' => Array(3=>22),//带毒 固定给22个郁萌萌
'w' => Array(4=>141),//音波 固定给141个昼闪闪
'S' => Array(5=>21),//消音 固定会给21个夜静静
);
//指定某些道具类别能拆出特定种类的元素、数量
$itmk_to_e_list = Array();
/********拆解元素部分********/ /********拆解元素部分********/
//过滤掉不能拆解的道具 不能分解返回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(in_array($i['itmk'],$no_itmk_to_e_list)) return 1;
//过滤不能分解的道具名
foreach($no_itm_to_e_list as $no_itm)
{
if(strpos($i['itm'],$no_itm)!==false) 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) function split_corpse_to_elements(&$edata)
{ {
$tmp_arr = Array();
if($edata) if($edata)
{ {
global $elements_info,$no_type_to_e_list; global $elements_info,$no_type_to_e_list,$corpse_to_e_lvl_r;
global $log,$rp; global $log,$rp;
//过滤不能分解的尸体 //过滤不能分解的尸体
if(in_array($edata['type'],$no_type_to_e_list)) if(in_array($edata['type'],$no_type_to_e_list))
{ {
$log.="无法从这具尸体上提炼元素!<br>"; $log.="无法从{$edata['name']}身上提炼元素……为什么呢?<br><br>";
return; return;
} }
//成功从尸体中提炼元素 //成功从尸体中提炼元素
$log.="{$edata['name']}化作点点荧光四散开来……<br>"; $log.="{$edata['name']}化作点点荧光四散开来……<br>";
//计算能获得的元素种类与数量 //根据尸体等级计算能获得的全种类元素数量
$get_elements = 13; $ev_lvl = ceil($edata['lvl']*$corpse_to_e_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) foreach($elements_info as $e_key=>$e_info)
{ {
global ${'element'.$e_key}; global ${'element'.$e_key};
${'element'.$e_key} += $get_elements; $add_ev = $ev_arr[$e_key] + $ev_lvl;
$log.="从{$edata['name']}身上提取到了{$get_elements}{$e_info}!<br>"; ${'element'.$e_key} += $add_ev;
$log.="提取到了{$add_ev}{$e_info}!<br>";
} }
//销毁尸体 //销毁尸体
destory_corpse($edata); destory_corpse($edata);
//你也一块去吧!
unset($ev_arr);
//炼人油败人品 //炼人油败人品
$ep_dice = rand(0,100); $ep_dice = rand(0,100);
if($ep_dice>70) if($ep_dice>70)
...@@ -114,7 +86,7 @@ ...@@ -114,7 +86,7 @@
{ {
if(isset($iid)) if(isset($iid))
{ {
global $elements_info,$no_itmk_to_e_list,$no_itmsk_to_e_list,$itmk_to_e_list; global $elements_info,$itmk_to_e_list;
global $log,$rp; global $log,$rp;
global ${'itm'.$iid},${'itmk'.$iid},${'itme'.$iid},${'itms'.$iid},${'itmsk'.$iid}; global ${'itm'.$iid},${'itmk'.$iid},${'itme'.$iid},${'itms'.$iid},${'itmsk'.$iid};
if(!${'itms'.$iid}) if(!${'itms'.$iid})
...@@ -122,12 +94,14 @@ ...@@ -122,12 +94,14 @@
$log.="道具来源非法。<br>"; $log.="道具来源非法。<br>";
return; return;
} }
//把道具属性打散成数组 //打包
if(${'itmsk'.$iid}) $tmp_itmsk_arr = get_itmsk_array(${'itmsk'.$iid}); $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};
if(in_array(${'itmk'.$iid},$no_itmk_to_e_list) || array_intersect($tmp_itmsk_arr,$no_itmsk_to_e_list)) //过滤掉不能分解的道具
$filter_flag = split_to_elements_filter($i_arr['itm'.$iid]);
if($filter_flag)
{ {
$log.="不能分解此道具。<br><br>"; $log.="不能分解此道具。<br><br>";
include_once GAME_ROOT.'./include/game/itemmain.func.php'; include_once GAME_ROOT.'./include/game/itemmain.func.php';
itemfind(); itemfind();
return; return;
...@@ -135,15 +109,19 @@ ...@@ -135,15 +109,19 @@
//分解道具获得元素 //分解道具获得元素
$log.=${'itm'.$iid}."化作点点荧光四散开来……<br>"; $log.=${'itm'.$iid}."化作点点荧光四散开来……<br>";
//计算能获得的元素种类与数量 //计算能获得的元素种类与数量
$get_elements = 13; $i_arr = get_evalues_by_iarr($i_arr);
$e_key = array_rand($elements_info);
//增加对应的元素 //增加对应的元素
foreach($i_arr as $e_key=>$ev)
{
global ${'element'.$e_key}; global ${'element'.$e_key};
${'element'.$e_key} += $get_elements; ${'element'.$e_key} += $ev;
$log.="提取到了{$get_elements}{$elements_info[$e_key]}!<br>"; $log.="提取到了{$ev}{$elements_info[$e_key]}!<br>";
}
//销毁道具 //销毁道具
${'itm'.$iid} = ${'itmk'.$iid} = ${'itmsk'.$iid} = ''; ${'itm'.$iid} = ${'itmk'.$iid} = ${'itmsk'.$iid} = '';
${'itme'.$iid} = ${'itms'.$iid} = 0; ${'itme'.$iid} = ${'itms'.$iid} = 0;
//一起一起
unset($i_arr);
//捡垃圾涨功德 //捡垃圾涨功德
$ep_dice = rand(0,100); $ep_dice = rand(0,100);
if($ep_dice>70) if($ep_dice>70)
...@@ -157,22 +135,437 @@ ...@@ -157,22 +135,437 @@
return; 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 $itm_to_e_fix,$itmk_to_e_fix,$itmk_to_e_r,$itmsk_to_e_fix;
global $emix_sub_tags_values,$emix_sub_tags_default_values;
$ev_arr = Array();
//通过缓存文件获取翻转数组……是不是真的有必要这么搞啊……?
$cache_file = GAME_ROOT."./gamedata/bak/elementmix.bak";
$flip_etags_arr = file_exists($cache_file) ? openfile_decode($cache_file) : flip_temp_etags($temp_etags);
//开始计算元素价值
foreach($iarr as $i => $t)
{
//重复过滤一次
if(split_to_elements_filter($t)) continue;
//检查拆解固定道具时的事件
//通过道具名为道具关联一个元素
if($itm_to_e_fix[$t['itm']])
{
foreach($itm_to_e_fix[$t['itm']] as $ekey=>$ev)
{
$ev_arr[$ekey] += $ev;
}
//道具在特判列表里 不再继续计算后面的内容 直接跳到下一个道具
continue;
}
//通过道具的效果、耐久,确定原始价值
if($t['itms'] == $nosta) $t['itms'] = rand(1,10);
$base_ev = round(($t['itme']+$t['itms'])/2);
//通过道具类别为道具关联一个元素
//能找到源头元素的情况下绑定源头元素 否则绑定随机元素
$ekey = $flip_etags_arr['flip_d_tag'][$t['itmk']] ? $flip_etags_arr['flip_d_tag'][$t['itmk']] : array_rand($elements_info);
//类别价值修正
$base_ev *= $itmk_to_e_r[$t['itmk']] ? $itmk_to_e_r[$t['itmk']] : 1;
$base_ev = ceil($base_ev);
$ev_arr[$ekey] += $base_ev;
echo "【DEBUG】【{$t['itmk']}{$t['itm']}分解出了{$base_ev}{$elements_info[$ekey]}<br>";
//通过道具属性为道具关联一个或多个元素
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;
//获取属性价值
$add_ev = $emix_sub_tags_values[$tsk] ? $emix_sub_tags_values[$tsk] : $emix_sub_tags_default_values;
//获取属性价值修正
if($emix_sub_tags_values_fix[$t['itmk']]) $add_ev = max(0,$add_ev+$emix_sub_tags_values_fix[$t['itmk']]);
//入列!
$ev_arr[$ekey] += $add_ev;
echo "【DEBUG】{$t['itm']}的【属性{$tsk}】分解出了{$add_ev}{$elements_info[$ekey]}<br>";
}
}
}
}
return $ev_arr;
}
/********元素合成部分********/ /********元素合成部分********/
function element_mix($emlist,$eitmk=NULL,$eitme_r=NULL) //元素喝茶
function element_mix($emlist,$eitme_r=NULL)
{ {
global $log,$elements_info; global $log,$elements_info,$default_emix_itme_r,$no_emix_circulation;
//输入了合法的元素参数 打印log global $emix_name_brackets_arr,$emix_name_prefix_arr,$emix_name_meta_arr,$emix_name_tail_arr;
//输入了合法的元素参数,先初始化一些变量。
$c_times = 0; $total_enum = 0; $dom_ekey = -1; $dom_enum = -1; $multi_dom_ekey = Array();
//自定义效/耐比的阈值:2%~98%
if(isset($eitme_r)) $eitme_r = min(0.98,max(0.02,$eitme_r));
//对参与合成的元素按投入数量降序排序,筛出投入数量最多的元素作为主元素
arsort($emlist);
$log.="从口袋中抓出了"; $log.="从口袋中抓出了";
//好看修正 foreach($emlist as $ekey=>$enum)
$log_prefix = 0;
foreach($emlist as $log_e_key=>$log_e_num)
{ {
if($log_prefix>0) $log.="、"; if($c_times == 0)
$log.="{$log_e_num}{$elements_info[$log_e_key]}"; {
$log_prefix++; //登记主元素
$dom_ekey = $ekey;
$dom_enum = $enum;
}
else
{
//其他元素投入了与主元素相同的数量 把其他元素登记到备选主元素列表里
if($enum == $dom_enum) $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><br>"; $log.="。<br>……<br>开始了合成。<br><br>";
//在开始随机合成前,先检查是否存在固定合成。
//(TODO:固定的元素合成列表)
//一些想法:元素大师不能合成结局道具啊!
//一个思路:分解指定关键道具,生成5~4位数随机值的指定元素,把元素=>作为秘钥的随机值保存在每局重置的临时文件里。
//把分解数个关键道具获得的元素=>秘钥 重新进行元素合成,就可以得到结局道具。
//开始随机合成:
//(TODO:随机的合成事件:大失败 失败 普通 成功 大成功)
//$dice_flag = get_emix_dice_flag();
//生成道具类别:
$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_itme = 0; $emix_itms = 0;
//根据投入的元素总量 计算其中能够转化为效果、耐久的部分(不会超过当前等级的理论上限值)
$cost_enum = get_emix_max_cost($total_enum);
//获取道具效果耐久比例。$eitem_r:解锁自定义比例功能后,合成时设定的效/耐比。
$emix_itme_r = $eitme_r ? $eitme_r : $default_emix_itme_r;
$emix_itms_r = 1-$emix_itme_r;
//计算道具效果、耐久
$emix_itme = ceil($cost_enum*$emix_itme_r); //只投入1份元素,至少也会有1点效果、1点耐久。你赚了我亏了好吧!
$emix_itms = ceil($cost_enum*$emix_itms_r);
//生成道具属性:
$emix_itmsk = $no_emix_circulation ? Array('v') : Array();
$emix_itmsk_max = $no_emix_circulation ? 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)
{
//get_emix_sub_tags()返回的是一个数组。
//(可选)第四个参数:返回的标签数量上限。暂定2个,是否有必要用升级解锁等方式拓展这个数量?
$tmp_emix_itmsk_tags = get_emix_sub_tags($ekey,$enum,$emix_itmk,2);
$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);
//(TODO:合成事件结算阶段)
//出生了!为孩子起个可爱的名字吧
$emix_itm = ''; $emix_itm_prefix = ''; $emix_itm_meta = ''; $emix_itm_tail = ''; $emix_name_brackets = '';
//根据主元素获取修饰词前缀
$emix_itm_prefix = $emix_name_prefix_arr[$dom_ekey][array_rand($emix_name_prefix_arr[$dom_ekey])];
//随便挑一个元素作为过渡词缀
$emix_itm_meta = $emix_name_meta_arr[array_rand($emlist)];
$emix_itm_meta = $emix_itm_meta[array_rand($emix_itm_meta)];
//根据生成的类别获取一个尾巴
//这部分太畜生了,之后得改一个正常点的
switch ($emix_itmk)
{
case strpos($emix_itmk,'WK')!==false:
$emix_itm_tail = $emix_name_tail_arr[0][array_rand($emix_name_tail_arr[0])];
break;
case strpos($emix_itmk,'WP')!==false:
$emix_itm_tail = $emix_name_tail_arr[1][array_rand($emix_name_tail_arr[1])];
break;
case strpos($emix_itmk,'WC')!==false:
$emix_itm_tail = $emix_name_tail_arr[2][array_rand($emix_name_tail_arr[2])];
break;
case strpos($emix_itmk,'WG')!==false:
$emix_itm_tail = $emix_name_tail_arr[3][array_rand($emix_name_tail_arr[3])];
break;
case strpos($emix_itmk,'WD')!==false:
$emix_itm_tail = $emix_name_tail_arr[4][array_rand($emix_name_tail_arr[4])];
break;
case strpos($emix_itmk,'WF')!==false:
$emix_itm_tail = $emix_name_tail_arr[5][array_rand($emix_name_tail_arr[5])];
break;
case strpos($emix_itmk,'D')!==false:
$emix_itm_tail = $emix_name_tail_arr[6][array_rand($emix_name_tail_arr[6])];
break;
case strpos($emix_itmk,'H')!==false:
$emix_itm_tail = $emix_name_tail_arr[7][array_rand($emix_name_tail_arr[7])];
break;
default:
//要补一个乱七八糟词组,乱七八糟的类别都套这个名字
$emix_itm_tail = $emix_name_tail_arr[6][array_rand($emix_name_tail_arr[6])];
return;
}
//根据合成出的道具效果生成一个能大幅提升时髦值的括号
$emix_name_brackets = $emix_itme/100;
$emix_name_brackets += rand(0,1);
$emix_name_brackets = min(max(0,$emix_name_brackets),8);
$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];
global $now,$name;
if($emix_itm && $emix_itmk && $emix_itme && $emix_itms)
{
global $itm0,$itmk0,$itme0,$itms0,$itmsk0;
$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.="<br>……但是合成失败了!你的元素也全部木大了!真是遗憾呐!<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)
{
//获取理论上限
$max_enum = get_emix_itme_max();
//判断投入数量有没有超过理论上限
$max_cost = min($max_enum,$total_enum);
return $max_cost;
}
//获取元素主特征
function get_emix_dom_tags($ekey,$enum)
{
global $elements_info,$temp_etags;
$e_dom_tags = $temp_etags[$ekey]['dom'];
$e_dom_tag = is_array($e_dom_tags) ? $e_dom_tags[array_rand($e_dom_tags)] : $e_dom_tags;
return $e_dom_tag;
}
//根据主特征输出道具类别
function get_emix_itmk($dom_tags)
{
global $emix_dom_mixlist;
$emix_itmk = 'E'; //DEBUG用
if(count($dom_tags)>1)
{
//存在复数个主特征,判断能否进行组合
$mixflag = false;
foreach($emix_dom_mixlist 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)>$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;
}
//获取元素次要特征 $tag_max:输出的次要特征数量上限
function get_emix_sub_tags($ekey,$enum,$kind,$tag_max=4)
{
global $elements_info,$temp_etags,$emix_sub_tags_values,$emix_sub_tags_default_values,$emix_sub_tags_values_fix;
$ev_sub_tags = Array();
$e_sub_tags = $temp_etags[$ekey]['sub'];
//根据价值筛选出符合条件的次要特征
foreach($e_sub_tags as $etag)
{
//获取特征价值
$evalues = $emix_sub_tags_values[$etag] ? $emix_sub_tags_values[$etag] : $emix_sub_tags_default_values;
//根据道具类别获取特征价值修正(暂时没有)
if(isset($emix_sub_tags_values_fix[$kind][$ekey]))
{
$evalues_fix = $emix_sub_tags_values_fix[$kind][$ekey];
$evalues += $evalues_fix;
}
//配吗?
if($enum >= $evalues) $ev_sub_tags[$etag] = $evalues;
}
//从特征中进一步挑选出高价值对象、限制生成的特征个数
//参数里传进来道具类别了,如果想限制类似【武器上不能有防御属性】【防具上不能有攻击属性】,可以在这里判断。
//但是我觉得来点乱七八糟的属性也挺好的(
$e_sub_tags = Array(); $tn = 0;
if(count($ev_sub_tags)>0)
{
//对价值数组降序排序 优先生成高价值属性
arsort($ev_sub_tags);
foreach($ev_sub_tags as $skey=>$values)
{
if($enum >= $values)
{
//扣除存款,输出对应特征
$enum -= $values;
$e_sub_tags[]=$skey;
$tn++;
}
//到达可生成的特征上限 返回
if($tn >= $tag_max) break;
}
}
return $e_sub_tags;
}
//根据次要特征输出道具属性 $max_sk:输出的属性数量上限
function get_emix_itmsk($sub_tags,$kind,$max_sk=5)
{
global $emix_sub_mixlist,$emix_sub_mix_obbs_fix;
$sk_value = Array();
//对传入的次要特征进行组合判断
if(count($sub_tags)>1)
{
//存在复数个次要特征,判断能否进行组合
$mixflag = false;
foreach($emix_sub_mixlist as $minfo)
{
//属性组合就不要求数量一一对应了 先到先得
//逻辑:匹配素材数量>=要求素材数量 感觉有点问题 但又好像没有问题 暂时就这么搞!
if(count(array_intersect($sub_tags,$minfo['stuff'])) >= count($minfo['stuff']))
{
//配方为概率合成 掷骰判定
if($minfo['obbs'])
{
//获取概率修正
if(isset($emix_sub_mix_obbs_fix[$kind][$minfo['result']])) $minfo['obbs'] += $emix_sub_mix_obbs_fix[$kind][$minfo['result']];
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'];
$mixflag = true;
break;
}
}
}
//将次要特征合并进待生成的属性队列内
$sk_value = array_merge($sk_value,$sub_tags);
//从尾部筛出过滤属性数量
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;
}
//将翻转后的标签数组保存在临时文件里 只在有人用了对应社团卡时执行一次
//如果不想用这个的话 也可以直接用flip_temp_etags() 但是每次拆东西的时候都要遍历一遍……
//研究模式随机生成的一些东西也会以这种方式储存
function create_flip_temp_etags_cache_file($tags_arr)
{
global $gamecfg,$gamenum,$log;
$file = GAME_ROOT."./gamedata/bak/elementmix.bak";
if(file_exists($file))
{
//检查本局游戏是不是已经生成过配置文件了
$tmp_arr = openfile_decode($file);
if($tmp_arr['gamenum'] == $gamenum)
{
$log.="【DEBUG】配置文件已存在,请不要重复生成。<br>";
return;
}
}
//翻转标签
$tags_arr = flip_temp_etags($tags_arr);
//加入本局游戏编号
$tags_arr['gamenum'] = $gamenum;
//写入文件
writeover_encode($file,$tags_arr);
$log.="【DEBUG】生成了本局游戏对应的临时配置文件".$file."。<br>";
return; return;
} }
...@@ -192,18 +585,95 @@ ...@@ -192,18 +585,95 @@
return; return;
} }
//打包尸体 ……
function pack_corpse(&$edata)
{
if($edata && $edata['hp']<=0)
{
$tmp_arr = Array();
foreach(Array('wep','arb','arh','ara','arf') 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 可能是四面的遗产
function get_itmsk_array($sk_value) function get_itmsk_array($sk_value)
{ {
global $itemspkinfo;
$ret = Array(); $ret = Array();
$i = 0; $i = 0;
while ($i < strlen($sk_value)) while ($i < strlen($sk_value))
{ {
$sub = substr($sk_value,$i,1); $sub = substr($sk_value,$i,1);
$i++; $i++;
if(!empty($sub)) array_push($ret,$sub); if(!empty($sub) && array_key_exists($sub,$itemspkinfo)) array_push($ret,$sub); //itmsk里怪东西不少 规范一些 只会加入登记过的属性
}
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; return $ret;
} }
//使用json_encode结构将指定数组写入文件
function writeover_encode($filename,$arr,$method='rb+')
{
if(is_array($arr))
{
$arr = json_encode($arr);
writeover($filename,$arr,$method);
chmod($arr,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
...@@ -1732,6 +1732,21 @@ function itemuse($itmn) { ...@@ -1732,6 +1732,21 @@ 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 == '测试用元素口袋'){
//-----------------------//
//冴冴可以把这一段放在使用社团卡后执行的事件里
include_once config('elementmix',$gamecfg);
$tags_arr = $temp_etags;
include_once GAME_ROOT.'./include/game/elementmix.func.php';
create_flip_temp_etags_cache_file($tags_arr);
//-----------------------//
global $elements_info;
$log.="什么!你从身上不知道哪个角落摸出来一大坨元素!<br>";
foreach($elements_info as $e_key=>$e_info)
{
global ${'element'.$e_key};
${'element'.$e_key} += 10000;
}
} elseif ($itm == '提示纸条A') { } elseif ($itm == '提示纸条A') {
$log .= '你读着纸条上的内容:<br>“执行官其实都是幻影,那个红暮的身上应该有召唤幻影的玩意。”<br>“用那个东西然后打倒幻影的话能用游戏解除钥匙出去吧。”<br>'; $log .= '你读着纸条上的内容:<br>“执行官其实都是幻影,那个红暮的身上应该有召唤幻影的玩意。”<br>“用那个东西然后打倒幻影的话能用游戏解除钥匙出去吧。”<br>';
} elseif ($itm == '提示纸条B') { } elseif ($itm == '提示纸条B') {
......
...@@ -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 == 'present') {
$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";
} }
......
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