Commit 85b0e85d authored by hisuinohoshi's avatar hisuinohoshi

Update wtf

新增:
- 怪技能;
- 怪技能书;

变化:
- tooltip实现方法微调;
- shopitem,mapitem,maptrap表扩容;

修复:
- 「百战」无法正常使用的问题;

参展者
陷入了尸体迷恋之中,ta正打算挖出一具尸体和别人一起观赏。
这是因为心情不佳。
压倒骆驼的最后一根稻草:吃了生的尸体
parent 980fb95e
......@@ -564,6 +564,25 @@ $cskills = Array
'wepk+wep_kind' => "[:wepk:] == 'WG' || [:wepk:] == 'WJ' || [:wepk:] == 'WGK' || [:wepk:] == 'WDG' || [:wep_kind:] == 'G' || [:wep_kind:] == 'J'",
),
),
'tl_cstick' => Array
(
'name' => '抡尸',
'tags' => Array('passive'),
'desc' => '发现尸体时,可消耗<span class="red">[:ragecost:]</span>点怒气将尸体作为<span class="yellow">殴系武器</span>拔出。<br>
武器的<span class="yellow">效耐</span>取决于尸体的<span class="yellow">最大生命</span>与<span class="yellow">体力</span>,上限为<span class="red">[:limit:]</span>点。<br>
优秀的尸源有概率为武器附加<span class="yellow">冲击</span>与<span class="yellow">精英</span>属性',
'vars' => Array(
'ragecost' => 100,
'limit' => 2000,
'notype' => Array(88,92),//不能用来抡的NPC
),
'lockdesc' => Array(
'rage' => '怒气不足,需要<span class="red">100</span>点怒气才能使用',
),
'unlock' => Array(
'rage' => '[:rage:] > 100',
),
),
'inf_dizzy' => Array
(
'name' => '眩晕',
......
......@@ -957,6 +957,7 @@ $iteminfo = Array(//注意顺序,AB必须在A的前面,以此类推
'U' => '扫雷设备',
'V'=> '技能书籍',
'VV'=> '技能书籍',
'VS' => '技能书',
'WN' => '空手',#空手
'WGK' => '枪刃',#射+斩
'WCF' => '符札',#投+符
......@@ -1039,7 +1040,7 @@ $itemspkinfo = Array(
'^' => '背包',
);
$iteminfo_tooltip_desc = Array
$tps_names = Array
(
# 用于记录一些内容重复但来源不同的描述
# 不能改善性能,但是可以保护视力与腱鞘?……大概吧
......@@ -1059,7 +1060,7 @@ $iteminfo_tooltip_desc = Array
99 => Array('title'=>"……这、这是什么?!"),
);
$iteminfo_tooltip = Array
$tps_name = Array
(
# 强化道具
'钉' => 3, '钢钉' => 3, '艾莲娜的圣钉' => 3, '埃克法-冰凌-钉' => 3,
......@@ -1085,13 +1086,13 @@ $iteminfo_tooltip = Array
'「曳光」' => 1,'「人生重来箱」' => 1,'「菁英宅之怒」' => 1,'闭锁世界的冥神 L5' => 1,'铁兽式强袭机动兵装改牛头伯劳2 L5' => 1,
'防火龙·暗流体 L5' => 1,'前托枪管龙 L5' => 1,'电子界到临者@火灵天星 L6' => 1,'「活跃迎春曲」' => 1,'「飘落」' => 1,'「明动」' => 1,
'「正午高阳」' => 1,'神灭兵器-天霆号扼宙斯 ☆12' => 1,'「碧海船歌」' => 1,'「翼展」' => 1,'「安谧」' => 1,
'「午前许愿」' => 1,'神之圣剑' => 1,'「龙怒」' => 1,'「升天」' => 1,'「宁静」' => 1,'「清晨恩典」' => 1,'神之棍棒' => 1,
'「午前许愿」' => 1,'神之圣剑' => 1,'「金霜协奏曲」'=>1,'「龙怒」' => 1,'「升天」' => 1,'「宁静」' => 1,'「清晨恩典」' => 1,'神之棍棒' => 1,
# 福袋SSR
'随机数之神的棍棒' => 2,'随机数之神的圣剑' => 2,'随机数之神的泪水' => 2,
'随机数之神的神力' => 2,'随机数之神的震撼' => 2,'随机数之神的摄理' => 2,'随机数之神的恶戏' => 2,
);
$itemkinfo_tooltip = Array
$tps_ik = Array
(
'Ag' => Array('title' =>"可能带有同志属性",),
'Al' => Array('title' =>"可能带有热恋属性",),
......@@ -1149,7 +1150,7 @@ $itemkinfo_tooltip = Array
'ZA' => Array('class'=>'neonyellow', 'title'=>"这个物品中似乎含有让你可以独自脱离幻境的方法……",),
);
$itemspkinfo_tooltip = Array
$tps_isk = Array
(
'A' => Array('title' => "高概率将殴斩射投爆灵六系对你的伤害减半。",),//测试用
'a' => Array('title' => "高概率将毒火冻电乱音以及爆炸对你的伤害减半。并避免异常状态。",),//测试用
......
......@@ -111,6 +111,7 @@
10,3,300,0,《投系指南》,VC,30,1,,
10,3,300,0,《爆系指南》,VD,30,1,,
10,3,300,0,《灵系指南》,VF,30,1,,
10,10,4444,0,《黑暗兵法·素材复用之卷》,VS,1,1,tl_cstick,
10,10,3800,0,《小黄的收服特训》,X,1,1,,
10,10,7000,0,《寻星流奥义书》,VK,300,1,,
10,10,5500,0,《小黄的常磐之力》,VC,300,1,,
......
......@@ -41,10 +41,10 @@ DROP TABLE IF EXISTS bra_mapitem;
CREATE TABLE bra_mapitem (
iid mediumint unsigned NOT NULL auto_increment,
itm char(30) NOT NULL default '',
itmk char(5) not null default '',
itme mediumint unsigned NOT NULL default '0',
itms char(5) not null default '0',
itmsk char(5) not null default '',
itmk char(40) not null default '',
itme int(10) unsigned NOT NULL DEFAULT '0',
itms char(10) not null default '0',
itmsk char(40) not null default '',
pls tinyint unsigned not null default '0',
PRIMARY KEY (iid)
......@@ -59,10 +59,10 @@ DROP TABLE IF EXISTS bra_maptrap;
CREATE TABLE bra_maptrap (
tid mediumint unsigned NOT NULL auto_increment,
itm char(30) NOT NULL default '',
itmk char(5) not null default '',
itme smallint unsigned NOT NULL default '0',
itms char(5) not null default '0',
itmsk char(5) not null default '',
itmk char(40) not null default '',
itme int(10) unsigned NOT NULL DEFAULT '0',
itms char(10) not null default '0',
itmsk char(40) not null default '',
pls tinyint unsigned not null default '0',
PRIMARY KEY (tid)
......@@ -115,9 +115,9 @@ DROP TABLE IF EXISTS bra_itemdepot;
CREATE TABLE bra_itemdepot (
iid mediumint unsigned NOT NULL auto_increment,
itm varchar(30) NOT NULL default '',
itmk varchar(15) not null default '',
itmk varchar(40) not null default '',
itme int(10) unsigned NOT NULL default '0',
itms varchar(10) not null default '0',
itms char(10) not null default '0',
itmsk varchar(40) not null default '',
itmowner char(15) NOT NULL DEFAULT '',
itmpw char(5) NOT NULL DEFAULT '',
......
......@@ -10,10 +10,10 @@ CREATE TABLE bra_shopitem (
price smallint unsigned NOT NULL default '0',
area tinyint unsigned NOT NULL default '0',
item char(30) NOT NULL default '',
itmk char(5) NOT NULL default '',
itme smallint unsigned NOT NULL default '0',
itms char(5) NOT NULL default '0',
itmsk char(5) NOT NULL default '',
itmk char(40) not null default '',
itme int(10) unsigned NOT NULL DEFAULT '0',
itms char(10) not null default '0',
itmsk char(40) not null default '',
PRIMARY KEY (sid),
INDEX KIND (kind, area)
......
......@@ -62,14 +62,7 @@ if(filemtime($vnmixfile) > filemtime($writefile) ||filemtime($mixfile) > filemti
foreach($mixinfo as $mix){
if($mix['class'] !== 'hidden'){
//名字
$mix['result'][0] = parse_itm_desc($mix['result'][0],'m');
//类别
foreach($iteminfo as $info_key => $info_value){
if(strpos($mix['result'][1],$info_key)===0){
$mixitmk = parse_itm_desc($info_key,'k');
break;
}
}
$mix['result'][0] = parse_info_desc($mix['result'][0],'m');
//属性
$mixitmsk = '';
if(!empty($mix['result'][4]) && !is_numeric($mix['result'][4])){
......@@ -80,13 +73,22 @@ if(filemtime($vnmixfile) > filemtime($writefile) ||filemtime($mixfile) > filemti
}
}
if(!empty($mixitmsk)){$mixitmsk = substr($mixitmsk,0,-1);}*/
$mix_sk = get_itmsk_array($mix['result'][4]); $mixitmsk = '';
/*$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');
}
}*/
$mixitmsk = parse_info_desc($mix['result'][4],'sk',$mix['result'][1]);
}
//类别
$mixitmk = parse_info_desc($mix['result'][1],'k');
/*foreach($iteminfo as $info_key => $info_value){
if(strpos($mix['result'][1],$info_key)===0){
$mixitmk = parse_itm_desc($info_key,'k');
break;
}
}*/
$mixitem[$mix['class']][] = array('stuff' => $mix['stuff'], 'result' => array($mix['result'][0],$mixitmk,$mix['result'][2],$mix['result'][3],$mixitmsk));
}
}
......@@ -166,24 +168,27 @@ if(filemtime($vnmixfile) > filemtime($writefile) ||filemtime($mixfile) > filemti
if($mix['class'] !== 'hidden')
{
//名字
$mix['result'][0] = parse_itm_desc($mix['result'][0],'m');
//类别
foreach($iteminfo as $info_key => $info_value){
if(strpos($mix['result'][1],$info_key)===0){
$mixitmk = parse_itm_desc($info_key,'k');
break;
}
}
//$mix['result'][0] = parse_itm_desc($mix['result'][0],'m');
$mix['result'][0] = parse_info_desc($mix['result'][0],'m');
//属性
$mixitmsk = '';
if(!empty($mix['result'][4]) && !is_numeric($mix['result'][4])){
$mix_sk = get_itmsk_array($mix['result'][4]); $mixitmsk = '';
/*$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');
}
}*/
$mixitmsk = parse_info_desc($mix['result'][4],'sk',$mix['result'][1]);
}
//类别
$mixitmk = parse_info_desc($mix['result'][1],'k');
/*foreach($iteminfo as $info_key => $info_value){
if(strpos($mix['result'][1],$info_key)===0){
$mixitmk = parse_itm_desc($info_key,'k');
break;
}
}*/
$vmixitem[$mix['class']][] = array('name' => $mix['name'], 'stuff' => $mix['stuff'], 'result' => array($mix['result'][0],$mixitmk,$mix['result'][2],$mix['result'][3],$mixitmsk));
}
}
......
......@@ -34,13 +34,14 @@ if(file_exists($cache_file))
$sk_arr = Array();
if(!empty($vn_info[4]))
{
$sk_arr = get_itmsk_array($vn_info[4]);
//$sk_arr = get_itmsk_array($vn_info[4]);
$temp_mixinfo[$vn_key][$vn_type][4] = '';
foreach($sk_arr as $sk_value)
$temp_mixinfo[$vn_key][$vn_type][4] = parse_info_desc($vn_info[4],'sk',$vn_info[1]);
/*foreach($sk_arr as $sk_value)
{
if(!empty($temp_mixinfo[$vn_key][$vn_type][4])) $temp_mixinfo[$vn_key][$vn_type][4] .= '+'.parse_itm_desc($sk_value,'sk');
else $temp_mixinfo[$vn_key][$vn_type][4] = parse_itm_desc($sk_value,'sk');
}
}*/
}
}
}
......
......@@ -42,52 +42,42 @@ function init_profile(){
foreach (Array('wep','arb','arh','ara','arf','art','itm0','itm1','itm2','itm3','itm4','itm5','itm6') as $value)
{
global ${$value.'_words'};
${$value.'_words'} = parse_itm_desc(${$value},'m');
}
foreach (Array('wepk','arbk','arhk','arak','arfk','artk','itmk0','itmk1','itmk2','itmk3','itmk4','itmk5','itmk6') as $k_value) {
if(${$k_value})
if(strpos($value,'itm')!==false)
{
${$k_value.'_words'} = '';
foreach($iteminfo as $info_key => $info_value)
{
if(strpos(${$k_value},$info_key)===0){
${$k_value.'_words'} = parse_itm_desc($info_key,'k');
break;
}
}
} else {
${$k_value.'_words'} = '';
$k_value = str_replace('itm','itmk',$value);
$s_value = str_replace('itm','itms',$value);
$sk_value = str_replace('itm','itmsk',$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){
${$sk_value.'_words'} = '';
//取我数组斧来
$tmpsk = get_itmsk_array(${$sk_value});
if(count($tmpsk)>3)
else
{
$k_value = $value.'k';
$s_value = $value.'s';
$sk_value = $value.'sk';
}
global $$s_value;
if(!empty($$s_value))
{
global ${$value.'_words'};
# 初始化名称样式
${$value.'_words'} = parse_info_desc($$value,'m');
# 初始化类别样式
if(${$k_value})
{
${$k_value.'_words'} = parse_info_desc($$k_value,'k');
}
else
{
//在装备、道具栏内的道具超过3个属性时,显示为+...+的缩写……不然属性多起来太丑了!!
${$sk_value.'_words'} = parse_itm_desc($tmpsk,'sk',1);
${$k_value.'_words'} = '';
}
# 初始化属性样式
if(${$sk_value} && is_numeric(${$sk_value}) === false)
{
${$sk_value.'_words'} = parse_info_desc($$sk_value,'sk',$$k_value,1);
}
else
{
foreach($tmpsk as $sk)
{
if(!empty(${$sk_value.'_words'}))
{
${$sk_value.'_words'} .= "+".parse_itm_desc($sk,'sk');
}
else
{
${$sk_value.'_words'} = parse_itm_desc($sk,'sk');
}
}
${$sk_value.'_words'} = $nospk;
}
} else {
${$sk_value.'_words'} =$nospk;
}
}
......@@ -224,18 +214,18 @@ function init_battle($ismeet = 0){
//在战斗界面中加载敌我双方武器tooltip
global $wep_words,$wepk_words,$w_wep_words,$w_wepk_words;
$wep_words = parse_itm_desc($wep,'m'); $wepk_words = parse_itm_desc($wepk,'k');
$wep_words = parse_info_desc($wep,'m'); $wepk_words = parse_info_desc($wepk,'k');
if(!$fog||$ismeet) {
//非雾天显示敌人武器情报
$w_wep_words = parse_itm_desc($w_wep,'m');
$w_wepk_words = parse_itm_desc($w_wepk,'k');
$w_wep_words = parse_info_desc($w_wep,'m');
$w_wepk_words = parse_info_desc($w_wepk,'k');
//如果有的话 初始化第三方武器情报
if(isset($n_type))
{
global $n_wep_words,$n_wepk_words,$n_iconImg;
$n_iconImg = $n_type ? 'n_'.$n_icon.'.gif' : $n_gd.'_'.$n_icon.'.gif';
$n_wep_words = parse_itm_desc($n_wep,'m');
$n_wepk_words = parse_itm_desc($n_wepk,'k');
$n_wep_words = parse_info_desc($n_wep,'m');
$n_wepk_words = parse_info_desc($n_wepk,'k');
}
$w_sNoinfo = "$typeinfo[$w_type]({$sexinfo[$w_gd]}{$w_sNo}号)";
$w_i = $w_type > 0 ? 'n' : $w_gd;
......@@ -364,8 +354,8 @@ function init_rev_battle($ismeet = 0)
${$p.'wepestate'} = "$wepeinfo[0]";
}
//更新武器名、武器类别情报
${$p.'wep_words'} = parse_itm_desc(${$p.'wep'},'m');
${$p.'wepk_words'} = parse_itm_desc(${$p.'wepk'},'k');
${$p.'wep_words'} = parse_info_desc(${$p.'wep'},'m');
${$p.'wepk_words'} = parse_info_desc(${$p.'wepk'},'k');
//更新编号情报
${$p.'sNoinfo'} = $typeinfo[${$p.'type'}]."(".$sexinfo[${$p.'gd'}].${$p.'sNo'}."号)";
//更新头像情报
......
......@@ -112,7 +112,46 @@ function findcorpse(&$w_pdata){
{
$main = 'battle';
$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)
foreach (Array('wep','arb','arh','ara','arf','art','itm0','itm1','itm2','itm3','itm4','itm5','itm6') as $value)
{
$value = 'w_'.$value;
if(strpos($value,'itm')!==false)
{
$k_value = str_replace('itm','itmk',$value);
$s_value = str_replace('itm','itms',$value);
$sk_value = str_replace('itm','itmsk',$value);
}
else
{
$k_value = $value.'k';
$s_value = $value.'s';
$sk_value = $value.'sk';
}
if(!empty($$s_value))
{
# 初始化名称样式
${$value.'_words'} = parse_info_desc($$value,'m');
# 初始化类别样式
if(${$k_value})
{
${$k_value.'_words'} = parse_info_desc($$k_value,'k');
}
else
{
${$k_value.'_words'} = '';
}
# 初始化属性样式
if(${$sk_value} && is_numeric(${$sk_value}) === false)
{
${$sk_value.'_words'} = parse_info_desc($$sk_value,'sk',$$k_value,1);
}
else
{
${$sk_value.'_words'} = $nospk;
}
}
}
/*foreach (Array('wep','arb','arh','ara','arf','art','itm0','itm1','itm2','itm3','itm4','itm5','itm6') as $w_value)
{
if(isset(${$w_value})) ${$w_value} = parse_itm_desc(${$w_value},'m');
}
......@@ -136,13 +175,19 @@ function findcorpse(&$w_pdata){
${$w_sk_value.'_words'} .= parse_itm_desc($sk,'sk');
}
}
}
}*/
include_once GAME_ROOT.'./include/game/depot.func.php';
$loot_depot_flag = 0;
if(in_array($w_type,$can_lootdepot_type))
{
$loot_depot_flag = depot_getlist($w_name,$w_type) ? 1 : 0;
}
global $pdata;
include_once GAME_ROOT.'./include/game/revclubskills.func.php';
if(!check_skill_unlock('tl_cstick',$pdata))
{
$cstick_flag = in_array($w_type,get_skillvars('tl_cstick','notype')) ? 0 : 1;
}
include template('corpse');
$cmd = ob_get_contents();
ob_clean();
......
......@@ -600,14 +600,37 @@ function itemuse($itmn) {
}
$wf += $vefct; //$itme;
$wsname = "灵击熟练度";
} elseif (strpos ( $itmk, 'VS' ) === 0) {
global $cskills,$clbpara;
if(!empty($itmsk) && isset($cskills[$itmsk]))
{
include_once GAME_ROOT.'./include/game/revclubskills.func.php';
$flag = getclubskill($itmsk,$clbpara);
if($flag)
{
$log.="哇!没想到这本书里竟然介绍了<span class='yellow'>「{$cskills[$itmsk]['name']}」</span>的原理!<br>获得了技能<span class='yellow'>「{$cskills[$itmsk]['name']}」</span>!<br>你心满意足地把<span class='red'>{$itm}</span>吃进了肚里。<br>";
addnews($now,'getsk_'.$itmsk,$name,$itm);
}
else
{
$log.="什么嘛!原来里面都是些你看过的东西了,你没有从书中学到任何新东西。<br>你一怒之下把这本破书撕了个稀巴烂!<br>";
}
}
else
{
$log.="但是你横看竖看,也弄不明白作者到底想表达什么!<br>你一怒之下把这本破书撕了个稀巴烂!<br>";
}
}
if ($vefct > 0) {
$log .= "嗯,有所收获。<br>你的{$wsname}提高了<span class=\"yellow\">$vefct</span>点!<br>";
} elseif ($vefct == 0) {
$log .= "对你来说书里的内容过于简单了。<br>你的熟练度没有任何提升。<br>";
} else {
$vefct = - $vefct;
$log .= "对你来说书里的内容过于简单了。<br>而且由于盲目相信书上的知识,你反而被编写者的纰漏所误导了!<br>你的{$wsname}下降了<span class=\"red\">$vefct</span>点!<br>";
if(isset($vefct))
{
if ($vefct > 0) {
$log .= "嗯,有所收获。<br>你的{$wsname}提高了<span class=\"yellow\">$vefct</span>点!<br>";
} elseif ($vefct == 0) {
$log .= "对你来说书里的内容过于简单了。<br>你的熟练度没有任何提升。<br>";
} else {
$vefct = - $vefct;
$log .= "对你来说书里的内容过于简单了。<br>而且由于盲目相信书上的知识,你反而被编写者的纰漏所误导了!<br>你的{$wsname}下降了<span class=\"red\">$vefct</span>点!<br>";
}
}
if ($itms != $nosta) {
$itms --;
......
......@@ -1069,6 +1069,15 @@ function getcorpse($item){
return;
}
if($item == 'cstick')
{
include_once GAME_ROOT.'./include/game/revclubskills_extra.func.php';
skill_tl_cstick_act($edata);
$action = '';
$mode = 'command';
return;
}
if($item == 'loot_depot')
{
global $name,$type;
......
......@@ -58,95 +58,37 @@ function get_npc_helpinfo($nlist,$tooltip=1)
}
if(isset($snpc['club'])) $snpc['club'] = $snpc['club']==99 ? '第一形态' : $clubinfo[$snpc['club']];
//合并装备
foreach(Array('wep','arb','arh','ara','arf','art') as $t1)
//格式化装备、道具
foreach (Array('wep','arb','arh','ara','arf','art','itm0','itm1','itm2','itm3','itm4','itm5','itm6') as $value)
{
foreach(Array('','k','e','s','sk') as $t2)
if(strpos($value,'itm')!==false)
{
if(!empty($snpc[$t1.$t2]))
{
//为装备名添加tooltip效果
if($t2 == '' && $tooltip)
{
$snpc[$t1.$t2] = parse_itm_desc($snpc[$t1.$t2],'m');
}
//为装备类别添加tooltip效果
elseif($t2 == 'k' && $tooltip)
{
foreach($iteminfo as $info_key => $info_value)
{
if(strpos($snpc[$t1.$t2],$info_key)===0)
{
$snpc[$t1.$t2] = parse_itm_desc($info_key,'k');
break;
}
}
}
//为装备属性添加tooltip效果
elseif($t2 == 'sk' && $tooltip)
{
$tmpsk = get_itmsk_array($snpc[$t1.$t2]);
foreach($tmpsk as $sk)
{
if(!empty($snpc[$t1.$t2.'_words']))
{
$snpc[$t1.$t2.'_words'] .= "+".parse_itm_desc($sk,'sk');
}
else
{
$snpc[$t1.$t2.'_words'] = parse_itm_desc($sk,'sk');
}
}
}
}
else
{
$snpc[$t1.$t2] = '-';
}
$k_value = str_replace('itm','itmk',$value);
$e_value = str_replace('itm','itme',$value);
$s_value = str_replace('itm','itms',$value);
$sk_value = str_replace('itm','itmsk',$value);
}
}
//合并道具名
for($ni=0;$ni<=6;$ni++)
{
foreach(Array('','k','e','s','sk') as $t2)
else
{
$e_value = $value.'e';
$k_value = $value.'k';
$s_value = $value.'s';
$sk_value = $value.'sk';
}
if(!empty($snpc[$s_value]))
{
if(!empty($snpc['itm'.$t2.$ni]))
//添加tooltip效果
if($tooltip)
{
//为装备名添加tooltip效果
if($t2 == '' && $tooltip)
{
$snpc['itm'.$t2.$ni] = parse_itm_desc($snpc['itm'.$t2.$ni],'m');
}
//为装备类别添加tooltip效果
elseif($t2 == 'k' && $tooltip)
{
foreach($iteminfo as $info_key => $info_value)
{
if(strpos($snpc['itm'.$t2.$ni],$info_key)===0)
{
$snpc['itm'.$t2.$ni] = parse_itm_desc($info_key,'k');
break;
}
}
}
//为装备属性添加tooltip效果
elseif($t2 == 'sk' && $tooltip)
{
$tmpsk = get_itmsk_array($snpc['itm'.$t2.$ni]);
foreach($tmpsk as $sk)
{
if(!empty($snpc['itm'.$t2.$ni.'_words']))
{
$snpc['itm'.$t2.$ni.'_words'] .= "+".parse_itm_desc($sk,'sk');
}
else
{
$snpc['itm'.$t2.$ni.'_words'] = parse_itm_desc($sk,'sk');
}
}
}
if(!empty($snpc[$value])) $snpc[$value] = parse_info_desc($snpc[$value],'m');
if(!empty($snpc[$sk_value])) $snpc[$sk_value.'_words'] = parse_info_desc($snpc[$sk_value],'sk',$snpc[$k_value]);
if(!empty($snpc[$k_value])) $snpc[$k_value] = parse_info_desc($snpc[$k_value],'k');
}
}
else
{
$snpc[$t1.$t2] = '-';
}
}
$tnlist[$i][$tsub][$n] = $snpc;
unset($snpc);
......
......@@ -32,8 +32,9 @@
if($ltkey == 'lasttimes' || $ltkey == 'lastturns') $para[$ltkey][$sk] = $lt;
}
}
return 1;
}
return;
return 0;
}
# 失去指定技能 $sk:技能名;$para:$clbpara
......@@ -313,7 +314,7 @@
$data['clbpara'] = get_clbpara($data['clbpara']);
if(!in_array($sk,$data['clbpara']['skill']))
{
return 1;
return "技能未解锁!<br>";
}
if(!empty($cskills[$sk]['unlock']))
{
......
......@@ -12,7 +12,7 @@
function skill_c1_veteran_act($choice)
{
global $log,$pdata,$cskills,$club,$clbpara,$itemspkinfo;
if(!check_skill_unlock($sk,$pdata))
if(!check_skill_unlock('c1_veteran',$pdata))
{
$c_arr = get_skillvars('c1_veteran','defkind');
$cvar = &$clbpara['skillpara']['c1_veteran']['choice'];
......@@ -27,7 +27,7 @@
return;
}
$cvar = $choice;
$log .= "「百战」的防御属性变更为{$itemspkinfo[$choice]}<br>";
$log .= "防御属性已变更为<span class='yellow'>{$itemspkinfo[$choice]}</span>!<br>";
}
else
{
......@@ -57,4 +57,62 @@
return;
}
# 尸体发火!
function skill_tl_cstick_act(&$edata)
{
global $log,$pdata,$cskills;
include_once GAME_ROOT.'./include/game/revclubskills.func.php';
$lock = check_skill_unlock('tl_cstick',$pdata);
if(!$lock)
{
# 扣除怒气
$pdata['rage'] -= get_skillvars('tl_cstick','ragecost');
addnews($now,'bsk_tl_cstick',$pdata['name'],$edata['name']);
# 炼到了不该炼的尸体
if(in_array($edata['type'],get_skillvars('tl_cstick','notype')))
{
$log .= "仿佛觉察到了你那邪恶的念头,你刚一伸出手,{$edata['name']}的尸体便化作尘埃随风散去了……<br>不知为何,你感到有些惭愧。<br>";
destory_corpse($edata);
$pdata['rp'] += 333;
return;
}
# 开抡!
$log .= "你干脆利落地把<span class='red'>{$edata['name']}</span>从地上拽了起来!然后卯足力气,在空中挥舞了两下。<br>……<br>";
$pdata['itm0'] = "{$edata['name']}尸体模样的棍棒";
$pdata['itmk0'] = 'WP';
$pdata['itme0'] = round($edata['msp']);
$pdata['itms0'] = round($edata['mhp']);
$dice = diceroll(99);
$N_obbs = pow($edata['lvl'],1.3);
$z_obbs = !$edata['type'] ? pow($edata['lvl'],1.3) : pow($edata['lvl'],1.15);
if($dice < $N_obbs)
{
$pdata['itmsk0'] .= 'N';
$log .= "不错!份量不轻不重刚刚好!<br>";
}
if($dice < $z_obbs)
{
$pdata['itmsk0'] .= 'Z';
$log .= "越是挥舞,越觉趁手!这尸体仿佛死来就是为你准备的!<br>哇,这下真正捡到宝了!<br>";
}
if(empty($pdata['itmsk0']))
{
$log .= "哎呀……好像这具尸体和你的相性不是很好。但是无所谓啦!<br>";
}
# 出生啊!
$max_rp_dice = $pdata['itme0']+$pdata['itms0'] > 300 ? $pdata['itme0']+$pdata['itms0'] : 300;
$rp_dice = rand(300,$max_rp_dice);
$pdata['rp'] += $rp_dice;
# 做成棍了就没有尸体了
destory_corpse($edata);
include_once GAME_ROOT.'./include/game/itemmain.func.php';
itemget();
}
else
{
$log .= isset($cskills['tl_cstick']['lockdesc'][$lock]) ? $cskills['tl_cstick']['lockdesc'][$lock] : $lock;
}
return;
}
?>
......@@ -492,23 +492,25 @@ function shoplist($sn,$getlist=NULL) {
$itemdata[$i]['price']= $club == 11 ? round($itemlist['price']*0.75) : $itemlist['price'];
$itemdata[$i]['area']=$itemlist['area'];
$itemdata[$i]['item']=$itemlist['item'];
$itemdata[$i]['item_words']= parse_itm_desc($itemdata[$i]['item'],'m');
$itemdata[$i]['item_words']= parse_info_desc($itemdata[$i]['item'],'m');
$itemdata[$i]['itme']=$itemlist['itme'];
$itemdata[$i]['itms']=$itemlist['itms'];
//list($sid,$kind,$num,$price,$area,$item,$itmk,$itme,$itms,$itmsk)=explode(',',$itemlist);
foreach($iteminfo as $info_key => $info_value){
/*foreach($iteminfo as $info_key => $info_value){
if(strpos($itemlist['itmk'],$info_key)===0){
if(isset($getlist)) $itemdata[$i]['itmk'] = $info_value;
$itemdata[$i]['itmk_words'] = parse_itm_desc($info_key,'k');
break;
}
}
}*/
$itemdata[$i]['itmk_words'] = parse_info_desc($itemlist['itmk'],'k');
$itemdata[$i]['itmsk_words'] = '';
if($itemlist['itmsk'] && ! is_numeric($itemlist['itmsk'])){
if(!isset($getlist))
{
$tmp_sk = get_itmsk_array($itemlist['itmsk']);
foreach($tmp_sk as $sk) $itemdata[$i]['itmsk_words'].= parse_itm_desc($sk,'sk');
$itemdata[$i]['itmsk_words'] = parse_info_desc($itemlist['itmsk'],'sk',$itemlist['itmk']);
//$tmp_sk = get_itmsk_array($itemlist['itmsk']);
//foreach($tmp_sk as $sk) $itemdata[$i]['itmsk_words'].= parse_itm_desc($sk,'sk');
}
else
{
......
......@@ -566,25 +566,125 @@ function player_format_with_db_structure($data){
}
return $ndata;
}
function parse_info_desc($info,$type,$vars='',$short=0)
{
global $iteminfo,$itemspkinfo,$cskills;
global $tps_name,$tps_names,$tps_ik,$tps_isk;
# 处理名字
if($type == 'm')
{
$tinfo = preg_replace('/锋利的|电气|毒性|\[\+.*\]|-改/', '', $info);
if(isset($tps_name[$tinfo]) && isset($tps_names[$tps_name[$tinfo]]))
{
$ts = $tps_names[$tps_name[$tinfo]];
$tinfo_f = isset($ts['class']) ? "class=\"{$ts['class']}\"" : '';
$tinfo_tp = isset($ts['title']) ? "tooltip=\"{$ts['title']}\"" : '';
return "<span {$tinfo_tp} {$tinfo_f}>{$tinfo}</span>";
}
elseif(isset($tps_name[$tinfo]))
{
$tinfo_f = isset($tps_name[$tinfo]['class']) ? "class=\"{$tps_name[$tinfo]['class']}\"" : '';
$tinfo_tp = isset($tps_name[$tinfo]['title']) ? "tooltip=\"{$tps_name[$tinfo]['title']}\"" : '';
return "<span {$tinfo_tp} {$tinfo_f}>{$info}</span>";
}
return $info;
}
# 处理类别
if($type == 'k')
{
foreach($iteminfo as $info_key => $info_value)
{
if(strpos($info,$info_key)===0)
{
$v_info = $info_key;
break;
}
}
# 类别不存在样式或提示时,用大类尝试一下
if(!isset($tps_ik[$info])) $info = $v_info;
$info_f = isset($tps_ik[$info]['class']) ? "class=\"{$tps_ik[$info]['class']}\"" : '';
$info_tp = isset($tps_ik[$info]['title']) ? "tooltip=\"{$tps_ik[$info]['title']}\"" : '';
if(!isset($iteminfo[$info])) $info = $v_info;
return "<span {$info_tp} {$info_f}>{$iteminfo[$info]}</span>";
}
# 处理属性
if($type == 'sk')
{
$ret = '-^-';
# 处理该数量以上的属性时,将属性格式变为+...+的缩写
$short_nums = 4;
# 技能书特殊处理
if($vars == 'VS')
{
if(!empty($info) && isset($cskills[$info]))
{
$sk = $cskills[$info]; $sknm = $cskills[$info]['name'];
return "<span tooltip=\"阅读后可习得技能「{$sknm}\">知识</span>";
}
return "--";
}
# 正常处理属性
else
{
# 数组化
if(!is_array($info)) $info = get_itmsk_array($info);
# 计数
$sk_max = count($info); $sk_nums = 0;
$sk_info = '';
foreach($info as $sk)
{
$csk = $itemspkinfo[$sk];
# 检查属性有没有特殊样式
if(isset($tps_isk[$sk]['class'])) $csk = "<span class=\"".$tps_isk[$sk]['class']."\">".$csk."</span>";
# 将属性加入显示队列
$sk_info .= $csk;
# 如果不是最后一个属性 显示一个 + 号
if($sk_nums<$sk_max-1) $sk_info .= '+';
# 检查属性有没有tooltip
if(isset($tps_isk[$sk]['title']))
{
if($sk_max > 1)
{
$sk_tp .= "【{$itemspkinfo[$sk]}】".$tps_isk[$sk]['title'];
if($sk_nums<$sk_max-1) $sk_tp .= "\r";
}
else
{
$sk_tp = $tps_isk[$sk]['title'];
}
}
$sk_nums++;
}
if(!empty($sk_info)) $ret = $sk_info;
if($sk_max > $short_nums && $short) $ret = $itemspkinfo[$info[0]]."+...+".$itemspkinfo[end($info)];
if(!empty($sk_tp))
{
$ret = "<span tooltip=\"{$sk_tp}\">{$ret}</span>";
}
}
return $ret;
}
return $info;
}
//为显示在主界面、尸体发现界面、游戏帮助界面的道具名、道具类、道具属性添加额外描述
//传入$n=道具名/类/属性;$t='m'(使用名称数组)/'k'(类别)/'sk'(属性);$short=1(传入的$n为数组情况下才有效,缩写属性);$class(如果传入的$n没有匹配的样式,则应用该样式)
function parse_itm_desc($n,$t,$short=0,$c=NULL)
function parse_itm_desc($n,$t,$s=0,$c=NULL)
{
global $iteminfo,$itemspkinfo;
//我再也不敢把变量名起的又臭又长了
global $iteminfo_tooltip,$itemkinfo_tooltip,$itemspkinfo_tooltip,$iteminfo_tooltip_desc;
global $iteminfo,$itemspkinfo,$cskills;
global $tps_name,$tps_ik,$tps_isk,$tps_names;
$span = "<span "; $p1 = "tooltip=\""; $p2 = "class=\""; $ret1 = ''; $ret2 = ''; $ret = '';
switch($t)
{
//处理类别
case $t=='k':
if(isset($itemkinfo_tooltip[$n]['title'])) $ret1 = $itemkinfo_tooltip[$n]['title']."\"";
if(isset($itemkinfo_tooltip[$n]['class'])) $ret2 = $itemkinfo_tooltip[$n]['class']."\"";
if(isset($tps_ik[$n]['title'])) $ret1 = $tps_ik[$n]['title']."\"";
if(isset($tps_ik[$n]['class'])) $ret2 = $tps_ik[$n]['class']."\"";
$n = $iteminfo[$n];
break;
//处理属性
case $t=='sk':
//如果传入的n为数组,且开启缩写模式,则输出一段缩写
if($short && is_array($n) && count($n)>1)
{
$sk1 = $itemspkinfo[current($n)]; $sk2 = $itemspkinfo[end($n)]; $skn = '';
......@@ -597,25 +697,25 @@ function parse_itm_desc($n,$t,$short=0,$c=NULL)
}
else
{
if(isset($itemspkinfo_tooltip[$n]['title'])) $ret1= $itemspkinfo_tooltip[$n]['title']."\"";
if(isset($itemspkinfo_tooltip[$n]['class'])) $ret2= $itemspkinfo_tooltip[$n]['class']."\"";
if(isset($tps_isk[$n]['title'])) $ret1= $tps_isk[$n]['title']."\"";
if(isset($tps_isk[$n]['class'])) $ret2= $tps_isk[$n]['class']."\"";
$n = $itemspkinfo[$n];
}
break;
//处理名字
case $t=='m':
$filter_n = preg_replace('/锋利的|电气|毒性|\[.*\]|-改/', '', $n);
if(isset($iteminfo_tooltip[$filter_n]))
$fn = preg_replace('/锋利的|电气|毒性|\[.*\]|-改/', '', $n);
if(isset($tps_name[$fn]))
{
if(is_array($iteminfo_tooltip[$filter_n]))
if(is_array($tps_name[$fn]))
{
if(isset($iteminfo_tooltip[$filter_n]['title'])) $ret1= $iteminfo_tooltip[$filter_n]['title']."\"";
if(isset($iteminfo_tooltip[$filter_n]['class'])) $ret2= $iteminfo_tooltip[$filter_n]['class']."\"";
if(isset($tps_name[$fn]['title'])) $ret1= $tps_name[$fn]['title']."\"";
if(isset($tps_name[$fn]['class'])) $ret2= $tps_name[$fn]['class']."\"";
}
elseif(isset($iteminfo_tooltip_desc[$iteminfo_tooltip[$filter_n]]))
elseif(isset($tps_names[$tps_name[$fn]]))
{ //使用可复用描述 越来越离谱了
if(isset($iteminfo_tooltip_desc[$iteminfo_tooltip[$filter_n]]['title'])) $ret1= $iteminfo_tooltip_desc[$iteminfo_tooltip[$filter_n]]['title']."\"";
if(isset($iteminfo_tooltip_desc[$iteminfo_tooltip[$filter_n]]['class'])) $ret2= $iteminfo_tooltip_desc[$iteminfo_tooltip[$filter_n]]['class']."\"";
if(isset($tps_names[$tps_name[$fn]]['title'])) $ret1= $tps_names[$tps_name[$fn]]['title']."\"";
if(isset($tps_names[$tps_name[$fn]]['class'])) $ret2= $tps_names[$tps_name[$fn]]['class']."\"";
}
}
break;
......
......@@ -34,12 +34,12 @@ function nparse_news($start = 0, $range = 0 ){//$type = '') {
//登记非功能性地点信息时合并隐藏地点 为什么会有两个news.func.php???
foreach($hplsinfo as $hgroup=>$hpls) $plsinfo += $hpls;
//死法(除DN外):道具名登记在$d上;第四个参数:没有检查到特殊样式的给一个红色
if(strpos($news,'death')!==false && $news!=='death28' && isset($d)) $d = parse_itm_desc($d,'m',0,"red");
//死法(除DN外):道具名登记在$d上;
if(strpos($news,'death')!==false && $news!=='death28' && isset($d)) $d = parse_info_desc($d,'m');
//赠送道具、吃到毒补给、陷阱、改变天气、强化武器、唱歌、打开礼物盒:道具名登记在$c上;
if((strpos($news,'senditem')!==false||strpos($news,'poison')!==false||strpos($news,'trap')!==false||strpos($news,'wth')!==false||strpos($news,'newwep')!==false||strpos($news,'song')!==false||strpos($news,'present')!==false) && isset($c)) $c = parse_itm_desc($c,'m');
if((strpos($news,'senditem')!==false||strpos($news,'poison')!==false||strpos($news,'trap')!==false||strpos($news,'wth')!==false||strpos($news,'newwep')!==false||strpos($news,'song')!==false||strpos($news,'present')!==false) && isset($c)) $c = parse_info_desc($c,'m');
//合成、使用死斗卡、使用仓库:道具名登记在$b上;
if((strpos($news,'mix')!==false||strpos($news,'duelkey')!==false||strpos($news,'depot')===0) && isset($b)) $b = parse_itm_desc($b,'m');
if((strpos($news,'mix')!==false||strpos($news,'duelkey')!==false||strpos($news,'depot')===0) && isset($b)) $b = parse_info_desc($b,'m');
//新PC加入战场 格式化nick
//卧槽这可怎么搞……只能脏一把了
......@@ -116,17 +116,17 @@ function nparse_news($start = 0, $range = 0 ){//$type = '') {
} elseif($news == 'death20') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"yellow\">$a</span>被<span class=\"yellow\">$c</span>用<span class=\"red\">$nowep</span>击飞";
} elseif($news == 'death21') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"yellow\">$a</span>被<span class=\"yellow\">$c</span>使用{$d}殴打致死";
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"yellow\">$a</span>被<span class=\"yellow\">$c</span>使用<span class=\"red\">{$d}</span>殴打致死";
} elseif($news == 'death22') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"yellow\">$a</span>被<span class=\"yellow\">$c</span>使用{$d}斩杀";
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"yellow\">$a</span>被<span class=\"yellow\">$c</span>使用<span class=\"red\">{$d}</span>斩杀";
} elseif($news == 'death23') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"yellow\">$a</span>被<span class=\"yellow\">$c</span>使用{$d}射杀";
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"yellow\">$a</span>被<span class=\"yellow\">$c</span>使用<span class=\"red\">{$d}</span>射杀";
} elseif($news == 'death24') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"yellow\">$a</span>被<span class=\"yellow\">$c</span>投掷{$d}致死";
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"yellow\">$a</span>被<span class=\"yellow\">$c</span>投掷<span class=\"red\">{$d}</span>致死";
} elseif($news == 'death25') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"yellow\">$a</span>被<span class=\"yellow\">$c</span>埋设{$d}伏击炸死";
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"yellow\">$a</span>被<span class=\"yellow\">$c</span>埋设<span class=\"red\">{$d}</span>伏击炸死";
} elseif($news == 'death29') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"yellow\">$a</span>被<span class=\"yellow\">$c</span>发动{$d}以灵力杀死";
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"yellow\">$a</span>被<span class=\"yellow\">$c</span>发动<span class=\"red\">{$d}</span>以灵力杀死";
} elseif($news == 'death39') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"yellow\">$a</span>在与<span class=\"yellow\">$c</span>的战斗中因<span class=\"red\">武器反噬</span>意外身亡";
} elseif($news == 'death26') {
......@@ -319,6 +319,10 @@ function nparse_news($start = 0, $range = 0 ){//$type = '') {
$bsk = substr($news,4);
$bname = $cskills[$bsk]['name'];
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"clan\">{$a}{$b}发动了技能<span class=\"yellow\">「{$bname}」</span>!</span><br>\n";
} elseif(strpos($news,'getsk_')===0) {
$bsk = substr($news,6);
$bname = $cskills[$bsk]['name'];
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"yellow\">{$a}通过翻阅{$b}学会了技能<span class=\"lime\">「{$bname}」</span>!</span><br>\n";
} else {
$newsinfo .= "<li>$time,$news,$a,$b,$c,$d<br>\n";
}
......
......@@ -5,6 +5,9 @@
<!--{elseif $allow_destory_corpse && !in_array($w_type,$no_destory_corpse_type)}-->
<input type="radio" name="command" id="destory" value="destory" <!--{if !$w_money}-->checked<!--{/if}-->><a onclick=sl('destory'); href="javascript:void(0);" >销毁尸体</a><br>
<!--{/if}-->
<!--{if $cstick_flag}-->
<input type="radio" name="command" id="cstick" value="cstick"><a onclick=sl('cstick'); href="javascript:void(0);" ><span tooltip="消耗100点怒气,将这具尸体变成一把殴系武器">抡起尸体!</span></a><br>
<!--{/if}-->
<!--{if $loot_depot_flag}-->
<input type="radio" name="command" id="loot_depot" value="loot_depot"><a onclick=sl('loot_depot'); href="javascript:void(0);" >转移安全箱权限</a><br>
<!--{/if}-->
......
This diff is collapsed.
......@@ -48,17 +48,22 @@ if($vnmode=='none')
}
$tooltipinfo = '';
}
// 格式化名称
$cinfo['result'][0] = parse_info_desc($cinfo['result'][0],'m');
// 格式化类别
$cinfo['result'][1] = parse_info_desc($cinfo['result'][1],'k');
// 格式化属性
if(isset($cinfo['result'][4]) && is_array($cinfo['result'][4]))
{
foreach($cinfo['result'][4] as $sk)
$temp_carr[$cid]['spkinfo'] = parse_info_desc($cinfo['result'][4],'sk',$cinfo['result'][1]);
/*foreach($cinfo['result'][4] as $sk)
{
if(!empty($temp_carr[$cid]['spkinfo'])) $temp_carr[$cid]['spkinfo'] .= '+'.parse_itm_desc($sk,'sk');
else $temp_carr[$cid]['spkinfo'] = parse_itm_desc($sk,'sk');
}
else $temp_carr[$cid]['spkinfo'] = parse_info_desc($sk,'sk');
}*/
}
// 汇总合成结果至一段内
$temp_carr[$cid]['result'][0] = $cinfo['result'][0].'/'.$temp_vniteminfo[$cinfo['result'][1]].'/'.$cinfo['result'][2].'/'.$cinfo['result'][3];
$temp_carr[$cid]['result'][0] = $cinfo['result'][0].'/'.$cinfo['result'][1].'/'.$cinfo['result'][2].'/'.$cinfo['result'][3];
if(isset($temp_carr[$cid]['spkinfo'])) $temp_carr[$cid]['result'][0].='/'.$temp_carr[$cid]['spkinfo'];
}
}
......
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