Commit 5fdd70c1 authored by hisuinohoshi's avatar hisuinohoshi

fix & excavation

update:{players.sql,game.func.php,global.func.php,battle.htm}
fix:{command.php,elementmix.func.php}
删掉了players表中'typls'与‘tyowner’字段、增加了一条'clbpara'字段;
补充在战斗界面左侧的武器名、武器类tooltip显示;
从四面留下的宝贝里发掘了一些用的上的东西,有了这个player表对照工具后,就可以着手调整npc初始化和w_save()这两部分内容了,这部分留着和下次的电子斗蛐蛐内容一块提交。
parent 7b8930b9
...@@ -308,7 +308,7 @@ if($hp > 0){ ...@@ -308,7 +308,7 @@ if($hp > 0){
{ {
global ${'element'.$e_key}; global ${'element'.$e_key};
$m_e_key = $e_key + 1;//这样就不用污染原本的js了 $m_e_key = $e_key + 1;//这样就不用污染原本的js了
${'emitm'.$e_key.'_num'} = round( ${'emitm'.$e_key.'_num'}); if(isset(${'emitm'.$e_key.'_num'})) ${'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}) if(${'mitm'.$m_e_key}>=0 && ${'element'.$e_key} && ${'emitm'.$e_key.'_num'}>0 && ${'emitm'.$e_key.'_num'}<=${'element'.$e_key})
{ {
//打入参与合成的元素编号与数量 //打入参与合成的元素编号与数量
......
...@@ -2277,27 +2277,27 @@ $npcinfo = array ...@@ -2277,27 +2277,27 @@ $npcinfo = array
'lvl' => 50, 'lvl' => 50,
'skill' => 300, 'skill' => 300,
'money' => 800, 'money' => 800,
'arb' => '<span class="spitem2">巫师袍子</span>', 'arb' => '巫师袍子',
'arbk' => 'DB', 'arbk' => 'DB',
'arbe' => 1800, 'arbe' => 1800,
'arbs' => 300, 'arbs' => 300,
'arbsk' => 'A', 'arbsk' => 'A',
'arh' => '<span class="spitem2">巫师兜帽</span>', 'arh' => '巫师兜帽',
'arhk' => 'DH', 'arhk' => 'DH',
'arhe' => 1200, 'arhe' => 1200,
'arhs' => 300, 'arhs' => 300,
'arhsk' => 'DF', 'arhsk' => 'DF',
'arf' => '<span class="spitem2">巫师便鞋</span>', 'arf' => '巫师便鞋',
'arfk' => 'DF', 'arfk' => 'DF',
'arfe' => 1700, 'arfe' => 1700,
'arfs' => 300, 'arfs' => 300,
'arfsk' => 'a', 'arfsk' => 'a',
'ara' => '<span class="spitem2">巫师手套</span>', 'ara' => '巫师手套',
'arak' => 'DA', 'arak' => 'DA',
'arae' => 1900, 'arae' => 1900,
'aras' => 300, 'aras' => 300,
'arask' => 'H', 'arask' => 'H',
'art' => '<span class="spitem2">巫师之力</span>', 'art' => '巫师之力',
'artk' => 'AA', 'artk' => 'AA',
'arte' => 1, 'arte' => 1,
'arts' => 33, 'arts' => 33,
...@@ -2314,32 +2314,32 @@ $npcinfo = array ...@@ -2314,32 +2314,32 @@ $npcinfo = array
'gd' => 'm', 'gd' => 'm',
'icon' => 225, 'icon' => 225,
'club' => 4, 'club' => 4,
'wep' => '<span class="spitem2">■胶冻の巴雷特■</span>', 'wep' => '■胶冻の巴雷特■',
'wepk' => 'WJ', 'wepk' => 'WJ',
'wepe' => 333, 'wepe' => 333,
'weps' => 777, 'weps' => 777,
'wepsk' => '', 'wepsk' => '',
'arb' => '<span class="spitem2">■胶冻的风衣■</span>', 'arb' => '■胶冻的风衣■',
'arbk' => 'DB', 'arbk' => 'DB',
'arbe' => 1800, 'arbe' => 1800,
'arbs' => 300, 'arbs' => 300,
'arbsk' => 'A', 'arbsk' => 'A',
'arh' => '<span class="spitem2">■胶冻的兜帽■</span>', 'arh' => '■胶冻的兜帽■',
'arhk' => 'DH', 'arhk' => 'DH',
'arhe' => 1200, 'arhe' => 1200,
'arhs' => 300, 'arhs' => 300,
'arhsk' => 'DF', 'arhsk' => 'DF',
'arf' => '<span class="spitem2">■胶冻的跑鞋■</span>', 'arf' => '■胶冻的跑鞋■',
'arfk' => 'DF', 'arfk' => 'DF',
'arfe' => 1700, 'arfe' => 1700,
'arfs' => 300, 'arfs' => 300,
'arfsk' => 'a', 'arfsk' => 'a',
'ara' => '<span class="spitem2">■胶冻的手套■</span>', 'ara' => '■胶冻的手套■',
'arak' => 'DA', 'arak' => 'DA',
'arae' => 1900, 'arae' => 1900,
'aras' => 300, 'aras' => 300,
'arask' => 'H', 'arask' => 'H',
'art' => '<span class="spitem2">■胶冻的吊坠■</span>', 'art' => '■胶冻的吊坠■',
'artk' => 'AA', 'artk' => 'AA',
'arte' => 1, 'arte' => 1,
'arts' => 33, 'arts' => 33,
...@@ -2351,32 +2351,32 @@ $npcinfo = array ...@@ -2351,32 +2351,32 @@ $npcinfo = array
'gd' => 'm', 'gd' => 'm',
'club' => 4, 'club' => 4,
'icon' => 226, 'icon' => 226,
'wep' => '<span class="spitem2">便携式火力平台</span>', 'wep' => '便携式火力平台',
'wepk' => 'WJ', 'wepk' => 'WJ',
'wepe' => 333, 'wepe' => 333,
'weps' => 777, 'weps' => 777,
'wepsk' => '', 'wepsk' => '',
'arb' => '<span class="spitem2">Type3防弹插板</span>', 'arb' => 'Type3防弹插板',
'arbk' => 'DB', 'arbk' => 'DB',
'arbe' => 1800, 'arbe' => 1800,
'arbs' => 300, 'arbs' => 300,
'arbsk' => 'A', 'arbsk' => 'A',
'arh' => '<span class="spitem2">VFL 6-24×56光学瞄具</span>', 'arh' => 'VFL 6-24×56光学瞄具',
'arhk' => 'DH', 'arhk' => 'DH',
'arhe' => 1200, 'arhe' => 1200,
'arhs' => 300, 'arhs' => 300,
'arhsk' => 'DF', 'arhsk' => 'DF',
'arf' => '<span class="spitem2">IOP T4外骨骼</span>', 'arf' => 'IOP T4外骨骼',
'arfk' => 'DF', 'arfk' => 'DF',
'arfe' => 1700, 'arfe' => 1700,
'arfs' => 300, 'arfs' => 300,
'arfsk' => 'a', 'arfsk' => 'a',
'ara' => '<span class="spitem2">热光学迷彩披风</span>', 'ara' => '热光学迷彩披风',
'arak' => 'DA', 'arak' => 'DA',
'arae' => 1900, 'arae' => 1900,
'aras' => 300, 'aras' => 300,
'arask' => 'H', 'arask' => 'H',
'art' => '<span class="spitem2">遗留的武器库</span>', 'art' => '遗留的武器库',
'artk' => 'AA', 'artk' => 'AA',
'arte' => 1, 'arte' => 1,
'arts' => 33, 'arts' => 33,
...@@ -2388,32 +2388,32 @@ $npcinfo = array ...@@ -2388,32 +2388,32 @@ $npcinfo = array
'gd' => 'f', 'gd' => 'f',
'icon' => 227, 'icon' => 227,
'club' => 9, 'club' => 9,
'wep' => '<span class="spitem2">【工作用数位板】</span>', 'wep' => '【工作用数位板】',
'wepk' => 'WF', 'wepk' => 'WF',
'wepe' => 333, 'wepe' => 333,
'weps' => 777, 'weps' => 777,
'wepsk' => '', 'wepsk' => '',
'arb' => '<span class="spitem2">【学园针织罩衫】</span>', 'arb' => '【学园针织罩衫】',
'arbk' => 'DB', 'arbk' => 'DB',
'arbe' => 1800, 'arbe' => 1800,
'arbs' => 300, 'arbs' => 300,
'arbsk' => 'A', 'arbsk' => 'A',
'arh' => '<span class="spitem2">【鱼形发卡】</span>', 'arh' => '【鱼形发卡】',
'arhk' => 'DH', 'arhk' => 'DH',
'arhe' => 1200, 'arhe' => 1200,
'arhs' => 300, 'arhs' => 300,
'arhsk' => 'DF', 'arhsk' => 'DF',
'arf' => '<span class="spitem2">【学园制服鞋】</span>', 'arf' => '【学园制服鞋】',
'arfk' => 'DF', 'arfk' => 'DF',
'arfe' => 1700, 'arfe' => 1700,
'arfs' => 300, 'arfs' => 300,
'arfsk' => 'a', 'arfsk' => 'a',
'ara' => '<span class="spitem2">【工作用数位笔】</span>', 'ara' => '【工作用数位笔】',
'arak' => 'DA', 'arak' => 'DA',
'arae' => 1900, 'arae' => 1900,
'aras' => 300, 'aras' => 300,
'arask' => 'H', 'arask' => 'H',
'art' => '<span class="spitem2">【布艺猫咪挂件】</span>', 'art' => '【布艺猫咪挂件】',
'artk' => 'AA', 'artk' => 'AA',
'arte' => 1, 'arte' => 1,
'arts' => 33, 'arts' => 33,
......
...@@ -1026,6 +1026,11 @@ $iteminfo = Array(//注意顺序,AB必须在A的前面,以此类推 ...@@ -1026,6 +1026,11 @@ $iteminfo = Array(//注意顺序,AB必须在A的前面,以此类推
( (
'魔法蜂针' => Array('class'=>'spitem', 'title'=>"这个武器一定会对敌人造成350点伤害,但对防御非常高的敌人除外。",), '魔法蜂针' => Array('class'=>'spitem', 'title'=>"这个武器一定会对敌人造成350点伤害,但对防御非常高的敌人除外。",),
'临摹装置' => Array('class'=>'spitem', 'title'=>"这个武器在主动攻击对手时,将可以复制对手的武器。注意:对手武器数值太高时会失败,后果自负!",), '临摹装置' => Array('class'=>'spitem', 'title'=>"这个武器在主动攻击对手时,将可以复制对手的武器。注意:对手武器数值太高时会失败,后果自负!",),
//巫师
'巫师袍子' => Array('class'=>'spitem2'),'巫师兜帽' => Array('class'=>'spitem2'),'巫师便鞋' => Array('class'=>'spitem2'),'巫师手套' => Array('class'=>'spitem2'),'巫师之力' => Array('class'=>'spitem2'),
'■胶冻の巴雷特■' => Array('class'=>'spitem2'),'■胶冻的风衣■' => Array('class'=>'spitem2'),'■胶冻的兜帽■' => Array('class'=>'spitem2'),'■胶冻的跑鞋■' => Array('class'=>'spitem2'),'■胶冻的手套■' => Array('class'=>'spitem2'),'■胶冻的吊坠■' => Array('class'=>'spitem2'),
'便携式火力平台' => Array('class'=>'spitem2'),'Type3防弹插板' => Array('class'=>'spitem2'),'VFL 6-24×56光学瞄具' => Array('class'=>'spitem2'),'IOP T4外骨骼' => Array('class'=>'spitem2'),'热光学迷彩披风' => Array('class'=>'spitem2'),'遗留的武器库' => Array('class'=>'spitem2'),
'【工作用数位板】' => Array('class'=>'spitem2'),'【学园针织罩衫】' => Array('class'=>'spitem2'),'【鱼形发卡】' => Array('class'=>'spitem2'),'【学园制服鞋】' => Array('class'=>'spitem2'),'【工作用数位笔】' => Array('class'=>'spitem2'),'【布艺猫咪挂件】' => Array('class'=>'spitem2'),
); );
$itemkinfo_tooltip = Array $itemkinfo_tooltip = Array
......
...@@ -141,8 +141,7 @@ CREATE TABLE bra_players ( ...@@ -141,8 +141,7 @@ CREATE TABLE bra_players (
gempower char(5) not null default '0', gempower char(5) not null default '0',
gemexp smallint unsigned NOT NULL default '0', gemexp smallint unsigned NOT NULL default '0',
gemlvl tinyint unsigned NOT NULL default '0', gemlvl tinyint unsigned NOT NULL default '0',
typls tinyint unsigned NOT NULL default '0', clbpara text NOT NULL,
tyowner varchar(30) NOT NULL default '',
statusa int(10) NOT NULL default '0', statusa int(10) NOT NULL default '0',
statusb int(10) NOT NULL default '0', statusb int(10) NOT NULL default '0',
statusc int(10) NOT NULL default '0', statusc int(10) NOT NULL default '0',
......
...@@ -4,6 +4,40 @@ if(!defined('IN_GAME')) { ...@@ -4,6 +4,40 @@ if(!defined('IN_GAME')) {
exit('Access Denied'); exit('Access Denied');
} }
//格式化储存player表 可能也是四面的遗产
function update_db_player_structure($type=0)
{
$db_player_structure = $db_player_structure_types = $tpldata = Array();
$dps_need_update = 0;//判定是否需要更新玩家字段
$dps_file = GAME_ROOT.'./gamedata/bak/db_player_structure.config.php';
$sql_file = GAME_ROOT.'./gamedata/sql/players.sql';
if(!file_exists($dps_file) || filemtime($sql_file) > filemtime($dps_file)){
$dps_need_update = 1;
}
if($dps_need_update){//如果要更新,直接新建一个表,不需要依赖已有的players表
$sql = file_get_contents($sql_file);
$sql = str_replace("\r", "\n", str_replace(' bra_', ' '.$gtablepre.'tmp_', $sql));
$db->queries($sql);
$result = $db->query("DESCRIBE {$gtablepre}tmp_players");
while ($sttdata = $db->fetch_array($result))
{
global ${$sttdata['Field']};
$db_player_structure[] = $sttdata['Field'];
$db_player_structure_types[$sttdata['Field']] = $sttdata['Type'];
//array_push($db_player_structure,$pdata['Field']);
}
$dps_cont = str_replace('?>','',str_replace('<?','<?php',$checkstr));
$dps_cont .= '$db_player_structure = ' . var_export($db_player_structure,1).";\r\n".'$db_player_structure_types = ' . var_export($db_player_structure_types,1).";\r\n?>";
writeover($dps_file, $dps_cont);
chmod($dps_file,0777);
}else{//若不需要更新,则直接读文件就好
include $dps_file ;
}
return $type ? $db_player_structure_types : $db_player_structure;
}
//将sk转为数组格式 只会转换登记过的属性 //将sk转为数组格式 只会转换登记过的属性
function get_itmsk_array($sk_value) function get_itmsk_array($sk_value)
{ {
...@@ -233,6 +267,7 @@ function init_profile(){ ...@@ -233,6 +267,7 @@ function init_profile(){
} }
function init_battle($ismeet = 0){ function init_battle($ismeet = 0){
global $wep,$wepk;
global $w_type,$w_name,$w_gd,$w_sNo,$w_icon,$w_lvl,$w_rage,$w_hp,$w_sp,$w_mhp,$w_msp,$w_wep,$w_wepk,$w_wepe,$w_sNoinfo,$w_iconImg,$w_hpstate,$w_spstate,$w_ragestate,$w_wepestate,$w_isdead,$hpinfo,$spinfo,$rageinfo,$wepeinfo,$fog,$typeinfo,$sexinfo,$infinfo,$w_exp,$w_upexp,$baseexp,$w_pose,$w_tactic,$w_inf,$w_infdata; global $w_type,$w_name,$w_gd,$w_sNo,$w_icon,$w_lvl,$w_rage,$w_hp,$w_sp,$w_mhp,$w_msp,$w_wep,$w_wepk,$w_wepe,$w_sNoinfo,$w_iconImg,$w_hpstate,$w_spstate,$w_ragestate,$w_wepestate,$w_isdead,$hpinfo,$spinfo,$rageinfo,$wepeinfo,$fog,$typeinfo,$sexinfo,$infinfo,$w_exp,$w_upexp,$baseexp,$w_pose,$w_tactic,$w_inf,$w_infdata;
$w_upexp = round(($w_lvl*$baseexp)+(($w_lvl+1)*$baseexp)); $w_upexp = round(($w_lvl*$baseexp)+(($w_lvl+1)*$baseexp));
...@@ -292,6 +327,10 @@ function init_battle($ismeet = 0){ ...@@ -292,6 +327,10 @@ function init_battle($ismeet = 0){
} }
if(!$fog||$ismeet) { if(!$fog||$ismeet) {
//在战斗界面中加载敌我双方武器tooltip
global $wep_words,$wepk_words,$w_wep_words,$w_wepk_words;
$wep_words = parse_itm_desc($wep,'m'); $w_wep_words = parse_itm_desc($w_wep,'m');
$wepk_words = parse_itm_desc($wepk,'k'); $w_wepk_words = parse_itm_desc($w_wepk,'k');
$w_sNoinfo = "$typeinfo[$w_type]({$sexinfo[$w_gd]}{$w_sNo}号)"; $w_sNoinfo = "$typeinfo[$w_type]({$sexinfo[$w_gd]}{$w_sNo}号)";
$w_i = $w_type > 0 ? 'n' : $w_gd; $w_i = $w_type > 0 ? 'n' : $w_gd;
$w_iconImg = $w_i.'_'.$w_icon.'.gif'; $w_iconImg = $w_i.'_'.$w_icon.'.gif';
...@@ -411,5 +450,4 @@ function w_save2(&$data){ ...@@ -411,5 +450,4 @@ function w_save2(&$data){
} }
?> ?>
...@@ -3,9 +3,9 @@ ...@@ -3,9 +3,9 @@
if(!defined('IN_GAME')) { if(!defined('IN_GAME')) {
exit('Access Denied'); exit('Access Denied');
} }
//zai jian le suoyoude global //zai jian le suoyoude global
global $gamecfg,$elements_info;//这个$gamecfg到底是在哪定义的…… global $gamecfg,$elements_info;//这个$gamecfg到底是在哪定义的……
require_once './include/game/dice.func.php';
include_once config('elementmix',$gamecfg); include_once config('elementmix',$gamecfg);
/********界面交互部分********/ /********界面交互部分********/
...@@ -26,20 +26,23 @@ ...@@ -26,20 +26,23 @@
} }
$log.="<br>"; $log.="<br>";
} }
//显示元素标签……卧槽怎么会这样 //显示元素标签
function print_elements_tags($e_key) function print_elements_tags($e_key)
{ {
global $temp_etags,$iteminfo,$itemspkinfo; global $temp_etags,$iteminfo,$itemspkinfo;
$tinfo="已了解的特征:"; $tinfo="已了解的特征:";
foreach($temp_etags[$e_key] as $tk => $tarr) foreach($temp_etags[$e_key] as $tk => $tarr)
{ {
foreach($tarr as $tm) $tinfo.= $tk == 'dom' ? "[主]".$iteminfo[$tm]." " : "[次]".$iteminfo[$tm]." "; if(is_array($tarr))
{
foreach($tarr as $tm)
$tinfo.= $tk == 'dom' ? "[主]".$iteminfo[$tm]." " : "[次]".$itemspkinfo[$tm]." ";
}
} }
return $tinfo; return $tinfo;
} }
/********拆解元素部分********/ /********拆解元素部分********/
//过滤掉不能拆解的道具(数组) 不能分解返回1 能分解返回0 //过滤掉不能拆解的道具(数组) 不能分解返回1 能分解返回0
function split_to_elements_filter($i) function split_to_elements_filter($i)
{ {
...@@ -122,6 +125,7 @@ ...@@ -122,6 +125,7 @@
//计算从尸体的装备上能获得的元素种类与数量 //计算从尸体的装备上能获得的元素种类与数量
$ev_arr = get_evalues_by_iarr($corpse_itm_arr); $ev_arr = get_evalues_by_iarr($corpse_itm_arr);
//增加对应的元素 //增加对应的元素
$total_addev = 0;
foreach($elements_info as $e_key=>$e_info) foreach($elements_info as $e_key=>$e_info)
{ {
global ${'element'.$e_key}; global ${'element'.$e_key};
...@@ -135,6 +139,7 @@ ...@@ -135,6 +139,7 @@
$edata['element'.$e_key] = 0; $edata['element'.$e_key] = 0;
} }
${'element'.$e_key} += $add_ev; ${'element'.$e_key} += $add_ev;
$total_addev += $add_ev;
$log.="获得了{$add_ev}{$e_info}!<br>"; $log.="获得了{$add_ev}{$e_info}!<br>";
} }
//销毁尸体 //销毁尸体
...@@ -142,7 +147,8 @@ ...@@ -142,7 +147,8 @@
//你们也一块去吧! //你们也一块去吧!
unset($ev_arr); unset($corpse_itm_arr); unset($ev_arr); unset($corpse_itm_arr);
//炼人油败人品 //炼人油败人品
$ep_dice = rand(0,100); //$ep_dice = diceroll($total_addev);
$ep_dice = rand(0,$total_addev);
if($ep_dice>70) if($ep_dice>70)
{ {
$rp += $ep_dice; $rp += $ep_dice;
...@@ -184,10 +190,12 @@ ...@@ -184,10 +190,12 @@
//计算能获得的元素种类与数量 //计算能获得的元素种类与数量
$i_arr = get_evalues_by_iarr($i_arr); $i_arr = get_evalues_by_iarr($i_arr);
//增加对应的元素 //增加对应的元素
$total_addev = 0;
foreach($i_arr as $e_key=>$ev) foreach($i_arr as $e_key=>$ev)
{ {
global ${'element'.$e_key}; global ${'element'.$e_key};
${'element'.$e_key} += $ev; ${'element'.$e_key} += $ev;
$total_addev += $ev;
$log.="获得了{$ev}{$elements_info[$e_key]}!<br>"; $log.="获得了{$ev}{$elements_info[$e_key]}!<br>";
} }
//销毁道具 //销毁道具
...@@ -196,8 +204,9 @@ ...@@ -196,8 +204,9 @@
//一起一起 //一起一起
unset($i_arr); unset($i_arr);
//捡垃圾涨功德 //捡垃圾涨功德
$ep_dice = rand(0,100); //$ep_dice = diceroll($total_addev);
if($ep_dice>70) $ep_dice = rand(0,$total_addev);
if($ep_dice>0)
{ {
$rp = $rp-$ep_dice; $rp = $rp-$ep_dice;
//rp可以为负吗? //rp可以为负吗?
...@@ -225,7 +234,7 @@ ...@@ -225,7 +234,7 @@
foreach($iarr as $i => $t) foreach($iarr as $i => $t)
{ {
//最优先:检查拆解特定道具(全名匹配)时的事件 //最优先:检查拆解特定道具(全名匹配)时的事件
if($split_itm_fix[$t['itm']]) if(isset($split_itm_fix[$t['itm']]))
{ {
unset($ekey);unset($ev); unset($ekey);unset($ev);
//处理秘钥道具 //处理秘钥道具
...@@ -300,7 +309,7 @@ ...@@ -300,7 +309,7 @@
//通过道具类别获取价值修正 //通过道具类别获取价值修正
$k_t = $t['itmk']; $k_t = $t['itmk'];
if($split_itmk_r[$k_t]) if(isset($split_itmk_r[$k_t]))
{ {
//存在对应修正 优先获取 //存在对应修正 优先获取
$k_ev_r = $split_itmk_r[$k_t]; $k_ev_r = $split_itmk_r[$k_t];
...@@ -310,7 +319,7 @@ ...@@ -310,7 +319,7 @@
//不存在对应修正 先尝试过滤类别 //不存在对应修正 先尝试过滤类别
$k_t = filter_itemkind($k_t); $k_t = filter_itemkind($k_t);
//没有对应修正关系则返回默认类别的分解系数 //没有对应修正关系则返回默认类别的分解系数
$k_ev_r = $split_itmk_r[$k_t] ? $split_itmk_r[$k_t] : $split_default_itmk_r; $k_ev_r = isset($split_itmk_r[$k_t]) ? $split_itmk_r[$k_t] : $split_default_itmk_r;
} }
//应用价值修正 //应用价值修正
$base_ev = ceil($base_ev*$k_ev_r); $base_ev = ceil($base_ev*$k_ev_r);
...@@ -318,7 +327,7 @@ ...@@ -318,7 +327,7 @@
//通过道具类别关联元素 //通过道具类别关联元素
$k_t = $t['itmk']; $k_ekey = ''; $k_t = $t['itmk']; $k_ekey = '';
if($flip_etags_arr['flip_d_tag'][$k_t]) if(isset($flip_etags_arr['flip_d_tag'][$k_t]))
{ {
//存在对应元素 优先获取 //存在对应元素 优先获取
$k_ekey = $flip_etags_arr['flip_d_tag'][$k_t]; $k_ekey = $flip_etags_arr['flip_d_tag'][$k_t];
...@@ -328,7 +337,7 @@ ...@@ -328,7 +337,7 @@
//不存在对应元素 先尝试过滤类别 //不存在对应元素 先尝试过滤类别
$k_t = filter_itemkind($k_t); $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); $k_ekey = isset($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>"; //echo "【DEBUG】【{$t['itmk']}】{$t['itm']}关联到的元素是【{$elements_info[$k_ekey]}】<br>";
...@@ -444,6 +453,7 @@ ...@@ -444,6 +453,7 @@
$log.="<span class='grey'>…加入了一点{$emix_tips_arr[array_rand($emix_tips_arr)]}…</span><br>"; $log.="<span class='grey'>…加入了一点{$emix_tips_arr[array_rand($emix_tips_arr)]}…</span><br>";
//掷骰: //掷骰:
//$emix_dice = diceroll(100);
$emix_dice = rand(1,100); $emix_dice = rand(1,100);
switch($emix_dice) switch($emix_dice)
{ {
...@@ -500,7 +510,7 @@ ...@@ -500,7 +510,7 @@
$emix_itms = ($emix_flag==4) ? '∞' : ceil($cost_enum*$emix_itms_r*($emix_flag/10 + 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; 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='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>"; $log.="<span class='grey'>…哎呀,不小心混入了一点{$emix_tips_arr[array_rand($emix_tips_arr)]}…</span><br>";
//生成道具属性: //生成道具属性:
...@@ -681,7 +691,8 @@ ...@@ -681,7 +691,8 @@
//直接抄合成匹配逻辑了 有一种野性的美 //直接抄合成匹配逻辑了 有一种野性的美
if(!array_diff($dom_tags,$minfo['stuff']) && !array_diff($minfo['stuff'],$dom_tags) && count($dom_tags) == count($minfo['stuff'])) 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; //配方为概率合成 掷骰判定没通过 跳过 //if($minfo['obbs'] && (diceroll(100)-$obbs_fix)>$minfo['obbs']) continue;
if($minfo['obbs'] && (rand(0,100)-$obbs_fix)>$minfo['obbs']) continue; //配方为概率合成 掷骰判定没通过 跳过
$emix_itmk = $minfo['result']; $emix_itmk = $minfo['result'];
$mixflag = true; $mixflag = true;
break; break;
...@@ -778,7 +789,8 @@ ...@@ -778,7 +789,8 @@
{ {
$obbs = $minfo['obbs']; $obbs = $minfo['obbs'];
} }
if(rand(1,100)>$minfo['obbs']) continue; //if(diceroll(100)>$minfo['obbs']) continue;
if(rand(0,100)>$minfo['obbs']) continue;
} }
//配对成功!消除素材特征 //配对成功!消除素材特征
foreach($minfo['stuff'] as $m_sub_tags) foreach($minfo['stuff'] as $m_sub_tags)
......
...@@ -492,4 +492,91 @@ function putmicrotime($t_s,$t_e,$file,$info) ...@@ -492,4 +492,91 @@ function putmicrotime($t_s,$t_e,$file,$info)
writeover( $file.'.txt',"$info ;执行时间:$mtime 毫秒 \n",'ab'); writeover( $file.'.txt',"$info ;执行时间:$mtime 毫秒 \n",'ab');
} }
//----------------------------------------
// 字符串处理
//----------------------------------------
function mgzdecode($data)
{
return gzinflate(substr($data,10,-8));
}
//数组压缩转化为纯字母数字
function gencode($para){
return base64_encode(gzencode(json_encode($para)));
}
//gencode函数的逆运算
function gdecode($para, $assoc = false){
$assoc = $assoc ? true : false;
if (!$para) return array();
else return json_decode(mgzdecode(base64_decode($para)),$assoc);
}
//字符串中段省略,取头部+尾部1字符
function middle_abbr($str,$len1,$len2=1,$elli='...') {
$str = (string)$str;
$len1 = (int)$len1; $len2 = (int)$len2;
return mb_substr($str,0,$len1).$elli.mb_substr($str,-$len2,$len2);
}
//mb_strlen()兼容替代函数,直接照抄的网络
if ( !function_exists('mb_strlen') ) {
function mb_strlen ($text, $encode='UTF-8') {
if ($encode=='UTF-8') {
return preg_match_all('%(?:
[\x09\x0A\x0D\x20-\x7E] # ASCII
| [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
| \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
| \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
| \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
| [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
| \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
)%xs',$text,$out);
}else{
return strlen($text);
}
}
}
//mb_substr()兼容替代函数,直接照抄的网络
if (!function_exists('mb_substr')) {
function mb_substr($str, $start, $len = '', $encoding='UTF-8'){
$limit = strlen($str);
for ($s = 0; $start > 0;--$start) {// found the real start
if ($s >= $limit)
break;
if ($str[$s] <= "\x7F")
++$s;
else {
++$s; // skip length
while ($str[$s] >= "\x80" && $str[$s] <= "\xBF")
++$s;
}
}
if ($len == '')
return substr($str, $s);
else
for ($e = $s; $len > 0; --$len) {//found the real end
if ($e >= $limit)
break;
if ($str[$e] <= "\x7F")
++$e;
else {
++$e;//skip length
while ($str[$e] >= "\x80" && $str[$e] <= "\xBF" && $e < $limit)
++$e;
}
}
return substr($str, $s, $e - $s);
}
}
?> ?>
...@@ -201,9 +201,9 @@ ...@@ -201,9 +201,9 @@
<td class="b2" height=20px><span>{lang wep}{lang effect}</span></td> <td class="b2" height=20px><span>{lang wep}{lang effect}</span></td>
<td class="b3"><span>$w_wepestate</span></td> <td class="b3"><span>$w_wepestate</span></td>
<td class="b2"><span>{lang wep}{lang kind1}</span></td> <td class="b2"><span>{lang wep}{lang kind1}</span></td>
<td class="b3"><span><!--{if $w_wepk != ''}-->$iteminfo[$w_wepk]<!--{else}-->???<!--{/if}--></span></td> <td class="b3"><span><!--{if $w_wepk != ''}-->$w_wepk_words<!--{else}-->???<!--{/if}--></span></td>
<td class="b2"><span>{lang wep}</span></td> <td class="b2"><span>{lang wep}</span></td>
<td class="b3"><span>$w_wep</span></td> <td class="b3"><span>$w_wep_words</span></td>
</tr> </tr>
<tr> <tr>
<td class="b2" height=20px><span>{lang tactic}</span></td> <td class="b2" height=20px><span>{lang tactic}</span></td>
...@@ -243,9 +243,9 @@ ...@@ -243,9 +243,9 @@
</tr> </tr>
<tr> <tr>
<td class="b2" height=20px><span>{lang wep}</span></td> <td class="b2" height=20px><span>{lang wep}</span></td>
<td class="b3"><span>$wep</span></td> <td class="b3"><span>$wep_words</span></td>
<td class="b2"><span>{lang wep}{lang kind1}</span></td> <td class="b2"><span>{lang wep}{lang kind1}</span></td>
<td class="b3"><span>$iteminfo[$wepk]</span></td> <td class="b3"><span>$wepk_words</span></td>
<td class="b2"><span>{lang wep}{lang effect}</span></td> <td class="b2"><span>{lang wep}{lang effect}</span></td>
<td class="b3"><span>$wepe</span></td> <td class="b3"><span>$wepe</span></td>
</tr> </tr>
......
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