Commit 7aadb341 authored by hisuinohoshi's avatar hisuinohoshi Committed by GitHub

Merge branch 'amarillonmc:nachster' into waaagh

parents 06d6e36f 091821bb
......@@ -260,6 +260,72 @@ if($hp > 0){
}
$mode='command';
}
//码语行人提取
} elseif ($sp_cmd == 'sp_extract_trait') {
$position = 0;
if ($club == 21) {
foreach (array(1, 2, 3, 4, 5, 6) as $imn)
//遍历所有武器装备
if (strpos(${'itmk' . $imn}, 'D') === 0 || strpos(${'itmk' . $imn}, 'W') === 0) {
$position = $imn;
break;
}
if (!$position) {
$log .= '<span class="red">你没有武器或者装备,无法提取要素!</span><br />';
$mode = 'command';
} else $mode = 'sp_extract_trait';
} else {
$log .= '<span class="red">你不懂得如何提取要素!</span><br />';
$mode = 'command';
}
} elseif ($sp_cmd == 'sp_extract_trait_selected') {
if (!isset($choice) || $choice == 'menu') {
$mode = 'command';
} else {
$choice_position = (int)(substr($choice, -1));
//$choice = (int)$choice;
if ($choice_position < 1 || $choice_position > 6)
$log .= '<span class="red">无此物品。</span><br />';
else {
include_once GAME_ROOT . './include/game/special.func.php';
item_extract_trait($choice, $choice_position);
}
$mode = 'command';
}
//码语行人插入
} elseif ($sp_cmd == 'sp_add_trait') {
$position = 0;
if ($club == 21) {
foreach (array(1, 2, 3, 4, 5, 6) as $imn)
//遍历所有武器装备
if (strpos(${'itmk' . $imn}, '🥚') === 0) {
$position = $imn;
break;
}
if (!$position) {
$log .= '<span class="red">你没有代码片段,无法插入代码片段!</span><br />';
$mode = 'command';
} else $mode = 'sp_add_trait';
} else {
$log .= '<span class="red">你不懂得如何插入代码片段!</span><br />';
$mode = 'command';
}
} elseif ($sp_cmd == 'sp_add_trait_selected') {
if (!isset($choice) || $choice == 'menu') {
$mode = 'command';
} else {
$choice = (int)($choice);
$choice2 = (int)($choice2);
if ($choice < 1 || $choice > 6 || $choice2 < 1 || $choice2 > 6)
$log .= '<span class="red">无此物品。</span><br />';
elseif ($choice == $choice2)
$log .= '<span class="red">你选择了相同的代码片段。</span><br />';
else {
include_once GAME_ROOT . './include/game/special.func.php';
item_add_trait($choice, $choice2);
}
$mode = 'command';
}
}elseif($sp_cmd == 'sp_pbomb'){
$mode = 'sp_pbomb';
}elseif($sp_cmd == 'sp_weapon'){
......
......@@ -27,7 +27,7 @@ $club_skillslist = Array
//18 => Array('s_hp','s_ad','f_heal'), #'天赋异禀',
19 => Array('s_hp','s_ad','f_heal','c19_nirvana','c19_reincarn','c19_purity','c19_crystal','c19_redeem','c19_dispel','c19_woesea'), #'晶莹剔透', //晶莹剔透、决死结界合并为晶莹剔透
20 => Array('s_hp','s_ad','f_heal','c20_fertile','c20_windfall','c20_lighting','c20_zombie','c20_sparkle','c20_lotus'), #'元素大师', #商店购买社团卡
21 => Array('s_hp','s_ad','f_heal'), #'灵子梦魇', #暂定名,商店购买社团卡
21 => Array('s_hp','s_ad','f_heal'), #'码语行人'
22 => Array('s_hp','s_ad','f_heal'), #'偶像大师', #暂定名,「除错大师」头衔奖励
98 => Array('s_hp','s_ad','f_heal'), #'换装迷宫',
99 => Array('s_hp','s_ad','f_heal'), #'第一形态'
......
......@@ -296,9 +296,9 @@
//冲击:随机1个价值在20以上特征+1个随机“攻击”标签特征
Array('stuff'=>Array(0=>'tags_W',1=>'v_20'),'result'=>'N','obbs'=>50),
//贯穿:重击辅助+随机2个价值在30以上的次要特征
Array('stuff'=>Array(0=>'c',1=>'v_30',2=>'v_30'),'result'=>'n','obbs'=>66),
Array('stuff'=>Array(0=>'c',1=>'v_30',2=>'v_30'),'result'=>'n','obbs'=>45),
//破格:陷阱探测+随机2个价值在30以上的次要特征
Array('stuff'=>Array(0=>'M',1=>'v_30',2=>'v_30'),'result'=>'n','obbs'=>66),
Array('stuff'=>Array(0=>'M',1=>'v_30',2=>'v_30'),'result'=>'y','obbs'=>45),
//属性防御:随机1个价值在30以上+2个随机“防御”标签特征
Array('stuff'=>Array(0=>'v_30',1=>'tags_D',2=>'tags_D'),'result'=>'a','obbs'=>50),
//全系防御:随机2个价值在30以上的次要特征+1个随机“防御”标签特征
......
......@@ -69,7 +69,7 @@ $clubinfo = Array(
//18=>'天赋异禀',
19=>'晶莹剔透', //决死结界、晶莹剔透合并为晶莹剔透
20=>'元素大师', #商店购买社团卡
21=>'灵子梦魇', #暂定名,商店购买社团卡
21=>'码语行人', #商店购买社团卡
22=>'偶像大师', #暂定名,「除错大师」头衔奖励
98=>'换装迷宫',
99=>'第一形态'
......@@ -1034,6 +1034,7 @@ $iteminfo = Array(//注意顺序,AB必须在A的前面,以此类推
'ZA' => '代码漏洞',
'ZB'=> '称号卡',
'Z' => '特殊',#不可合并
'🥚' => '代码片段',
);
$itemspkinfo = Array(
......
......@@ -199,4 +199,5 @@
17,1,20,0,BORN FROM WISH 「幻想啼音」,p0F,1,1,,
17,1,20,1,提示纸条D,Y,1,1,,
0,18,,,上级者向·测试,,,,,
18,1,20,0,「元素大师」称号卡,ZB,20,1,,
\ No newline at end of file
18,1,20,0,「元素大师」称号卡,ZB,20,1,,
18,1,20,0,「码语行人」称号卡,ZB,21,1,,
\ No newline at end of file
<?php
//码语行人配置文件
//各个属性比率
$itmsk_extract_rate = array(
'A' => 150,
'a' => 150,
'B' => 400,
'b' => 400,
'C' => 30,
'c' => 10,
'D' => 30,
'd' => 20,
'E' => 30,
'e' => 20,
'F' => 30,
'f' => 30,
'G' => 20,
'g' => 5,
'H' => 120,
'h' => 80,
'I' => 30,
'i' => 20,
'J' => 200,
'j' => 200,
'K' => 30,
'k' => 30,
'L' => 50,
'l' => 5,
'M' => 100,
'm' => 100,
'N' => 20,
'n' => 40,
'o' => 5,
'P' => 20,
'p' => 30,
'q' => 30,
'R' => 60,
'r' => 60,
'S' => 20,
's' => 200,
'U' => 30,
'u' => 20,
'V' => 100,
'v' => 100,
'W' => 30,
'w' => 20,
'X' => 800,
'x' => 50,
'y' => 40,
'Z' => 50,
'z' => 1,
'-' => 200,
'*' => 200,
'+' => 200,
'^' => 1200,
'🧰' => 200
);
//itm
$itm_extract_rate = array(
"棍棒" => 250,
"改" => 100,
"+" => 100,
"n" => 10
);
//物品效果和耐久的场合:按照1:1比率消耗体力进行提取
$itms_extract_rate = 1; //耐久
$itms_infinite_extract_rate = 50; //无限耐久
$itme_extract_rate = 1; //效果
//插入代码片段
$insert_rate = 50;
//合并代码片段
$merge_rate = 0;
\ No newline at end of file
......@@ -230,6 +230,8 @@
$gdata['clbpara']['mate'][] = $pid; $gdata['clbpara']['zombieoid'] = $pid;
# 获得灵俑状态技能
getclubskill('inf_zombie',$gdata['clbpara']);
# 人死魂灭 - 玩家灵俑强制变为 NPC
if ($gdata['type'] == 0){$gdata['type'] = 19;}
# 插入
$gdata = player_format_with_db_structure($gdata);
if(!empty($gdata))
......@@ -394,7 +396,11 @@
if($itmer > 98 || $itmer < 1) $itmer = 55;
$emixarr = Array(); $emixnums = Array(); $farr = Array();
# 检查素材合法性
$domkey = Array(); $domnum = 0;
//$domkey = Array(); $domnum = 0;
arsort($nums);
$domid = array_key_first($nums);
$domkey = Array($domid);
$domnum = $nums[$domid];
for($i = 0; $i<= count($list); $i++)
{
if(isset($list[$i]) && !empty($nums[$i]))
......@@ -412,10 +418,14 @@
return;
}
# 检查是否为主元素
if($emixnums[$i] >= $domnum - 10)
// if($emixnums[$i] >= $domnum - 10)
// {
// $domnum = $emixnums[$i];
// $domkey[] = $i;
// }
if(!in_array($i,$domkey) && $emixnums[$i] >= $domnum - 10)
{
$domnum = $emixnums[$i];
$domkey[] = $i;
$domkey[] = $i;
}
}
}
......
......@@ -1148,9 +1148,13 @@ function itemuse($itmn,&$data=NULL) {
}
} elseif (preg_match ( "/钉$/", $itm ) || preg_match ( "/钉\[/", $itm )) {
//global $wep, $wepk, $wepe, $weps, $wepsk;
if (( strpos ( $wep, '棍棒' ) !== false) && ($wepk == 'WP')) {
if (strpos($wepsk,'j')!==false){
$log.='多重武器不能改造。<br>';
//码语行人,$club==21的时候不能使用钉子
if ($club == 21) {
$log .= '<span class="yellow">码语行人,$club==21的时候不能使用针线包<br>';
return;
} elseif ((strpos($wep, '棍棒') !== false) && ($wepk == 'WP')) {
if (strpos($wepsk, 'j') !== false) {
$log .= '多重武器不能改造。<br>';
return;
}
$dice = rand ( 0, 100 );
......@@ -1177,7 +1181,11 @@ function itemuse($itmn,&$data=NULL) {
}
} elseif ($itm == '针线包') {
//global $arb, $arbk, $arbe, $arbs, $arbsk, $noarb;
if (($arb == $noarb) || ! $arb) {
//码语行人,$club==21的时候不能使用针线包
if ($club == 21) {
$log .= '<span class="yellow">码语行人,$club==21的时候不能使用针线包<br>';
return;
} elseif (($arb == $noarb) || !$arb) {
$log .= '你没有装备防具,不能使用针线包。<br>';
} elseif(strpos($arbsk,'^')!==false){
$log .= '<span class="yellow">你不能对背包使用针线包。<br>';
......@@ -1247,16 +1255,21 @@ function itemuse($itmn,&$data=NULL) {
$itms --;
} elseif ($itm == '天然呆四面的奖赏') {
//global $wep, $wepk, $wepe, $weps, $wepsk;
if (! $weps || ! $wepe) {
//码语行人,$club==21的时候不能使用天然呆四面的奖赏
if ($club == 21) {
$log .= '<span class="yellow">码语行人,$club==21的时候不能使用武器师安雅的奖赏<br>';
return;
}
if (!$weps || !$wepe) {
$log .= '请先装备武器。<br>';
return;
}
if (strpos($wepsk,'j')!==false){
$log.='多重武器不能改造。<br>';
if (strpos($wepsk, 'j') !== false) {
$log .= '多重武器不能改造。<br>';
return;
}
if (strpos($wepsk,'O')!==false){
$log.='进化武器不能改造。<br>';
if (strpos($wepsk, 'O') !== false) {
$log .= '进化武器不能改造。<br>';
return;
}
$log .= "使用了<span class='yellow'>天然呆四面的奖赏</span>。<br>";
......@@ -1295,7 +1308,11 @@ function itemuse($itmn,&$data=NULL) {
}
} elseif ($itm == '武器师安雅的奖赏') {
//global $wep, $wepk, $wepe, $weps, $wepsk, $wp, $wk, $wg, $wc, $wd, $wf;
if (! $weps || ! $wepe) {
//码语行人,$club==21的时候不能使用武器师安雅的奖赏
if ($club == 21) {
$log .= '<span class="yellow">码语行人,$club==21的时候不能使用武器师安雅的奖赏<br>';
return;
} elseif (!$weps || !$wepe) {
$log .= '请先装备武器。<br>';
return;
}
......@@ -1377,6 +1394,8 @@ function itemuse($itmn,&$data=NULL) {
$log .= "<br>然后,你的<span class='sparkle'>{$sparkle}元素口袋{$sparkle}</span>飞了出去——<br><br>";
# 失去元素口袋
$clbstatusa = 1;
# 追加判定
if ($tflag and $hflag and $flag==true){
# 直接获得gameover
$itm0='『G.A.M.E.O.V.E.R』';
$itmk0='Y';
......@@ -1385,6 +1404,17 @@ function itemuse($itmn,&$data=NULL) {
$itmsk0='zv';
$f1=true;
itemget($data);
}else{
$log .= "但似乎还是少了些什么东西……<br>";
# 大侠请重新来过
$itm0='『S.C.R.A.P』';
$itmk0='Y';
$itme0=1;
$itms0=1;
//$itmsk0='zv';
$f1=false;
itemget($data);
}
}
else
{
......@@ -1991,18 +2021,17 @@ function itemuse($itmn,&$data=NULL) {
$clbpara['elements']['tags'] = Array($dice => Array('dom' => Array(0 => 1),'sub' => Array(0 => 1)));
$clbpara['elements']['info']['d']['d1'] = 1;
//初始化元素合成缓存文件
include_once GAME_ROOT.'./include/game/elementmix.func.php';
include_once GAME_ROOT . './include/game/elementmix.func.php';
emix_spawn_info();
}
elseif ($itme == 21){ //灵子梦魇特殊处理
$log .="再等等吧……<br>";
}
elseif ($itme == 22){ //偶像大师特殊处理
$log .="再等等吧……<br>";
}
else{//直接将社团卡的效果写入玩家club
changeclub($itme,$data);
$log .="你的称号被改动了!";
} elseif ($itme == 21) { //码语行人特殊处理
$log .= "码语行人特殊处理<br>";
//社团变更
changeclub(21, $data);
} elseif ($itme == 22) { //偶像大师特殊处理
$log .= "再等等吧……<br>";
} else { //直接将社团卡的效果写入玩家club
changeclub($itme, $data);
$log .= "你的称号被改动了!";
}
//销毁物品
$itm = $itmk = $itmsk = '';
......@@ -2188,12 +2217,17 @@ function itemuse($itmn,&$data=NULL) {
}
} elseif ($itm == '『灵魂宝石』' || $itm == '『祝福宝石』') {
//global $cmd;
//码语行人,$club==21的时候不能使用宝石
if ($club == 21) {
$log .= '<span class="yellow">码语行人,$club==21的时候不能使用宝石<br>';
return;
}
$cmd = '<input type="hidden" name="mode" value="item"><input type="hidden" name="usemode" value="qianghua"><input type="hidden" name="itmp" value="' . $itmn . '">你想强化哪一件装备?<br><input type="radio" name="command" id="menu" value="menu" checked><a onclick=sl("menu"); href="javascript:void(0);" >返回</a><br><br><br>';
for($i = 1; $i <= 6; $i ++) {
for ($i = 1; $i <= 6; $i++) {
//global ${'itmsk' . $i};
if ((strpos ( ${'itmsk' . $i}, 'Z' ) !== false) && (strpos ( ${'itm' . $i}, '宝石』' ) === false)) {
if ((strpos(${'itmsk' . $i}, 'Z') !== false) && (strpos(${'itm' . $i}, '宝石』') === false)) {
//global ${'itm' . $i}, ${'itme' . $i}, ${'itms' . $i};
$cmd .= '<input type="radio" name="command" id="itm' . $i . '" value="itm' . $i . '"><a onclick=sl("itm' . $i . '"); href="javascript:void(0);" >' . "{${'itm'.$i}}/{${'itme'.$i}}/{${'itms'.$i}}" . '</a><br>';
$cmd .= '<input type="radio" name="command" id="itm' . $i . '" value="itm' . $i . '"><a onclick=sl("itm' . $i . '"); href="javascript:void(0);" >' . "{${'itm' .$i}}/{${'itme' .$i}}/{${'itms' .$i}}" . '</a><br>';
$flag = true;
}
}
......
......@@ -1445,53 +1445,60 @@ function getcorpse($item,&$data=NULL)
# 切换副武器
function change_subwep($s=2,&$data=NULL)
{
global $log,$nosta;
if(!isset($data))
{
global $pdata;
$data = &$pdata;
}
extract($data,EXTR_REFS);
# 初始化主武器名
$eqp = 'wep';
# 初始化副武器名
$seqp = 'wep'.$s;
$seqpk = $seqp.'k';
$seqpe = $seqp.'e';
$seqps = $seqp.'s';
$seqpsk = $seqp.'sk';
# 保存副武器数据
$swep=${$seqp}; $swepk=${$seqpk};
$swepe=${$seqpe}; $sweps=${$seqps}; $swepsk=${$seqpsk};
# 主武器为空、副武器不为空的情况下,直接替换为副武器
if(($wepk == 'WN' || !$weps) && ($swepk != 'WN'))
{
${$eqp} = $swep; ${$seqp} = '拳头';
${$eqp.'k'} = $swepk; ${$seqpk} = 'WN';
${$eqp.'e'} = $swepe; ${$seqpe} = 0;
${$eqp.'s'} = $sweps; ${$seqps} = $nosta;
${$eqp.'sk'} = $swepsk; ${$seqpsk} = '';
$log.="你将{$wep}拿在了手上。<br>";
}
# 主武器不为空的情况下,副武器替换为主武器
elseif($wepk != 'WN')
{
${$seqp} = ${$eqp}; ${$eqp} = $swep;
${$seqpk} = ${$eqp.'k'}; ${$eqp.'k'} = $swepk;
${$seqpe} = ${$eqp.'e'}; ${$eqp.'e'} = $swepe;
${$seqps} = ${$eqp.'s'}; ${$eqp.'s'} = $sweps;
${$seqpsk} = ${$eqp.'sk'}; ${$eqp.'sk'} = $swepsk;
$log.="你将{$wep2}收了起来";
if($wepk != 'WN') $log .=",将{$wep}拿在了手上";
$log.="。<br>";
}
else
{
$log.="你没有装备副武器!去给自己找一个吧!<br>";
}
return;
global $log,$nosta,$nowep;
if(!isset($data))
{
global $pdata;
$data = &$pdata;
}
extract($data,EXTR_REFS);
# 初始化主武器名
$eqp = 'wep';
# 初始化副武器名
$seqp = 'wep'.$s;
$seqpk = $seqp.'k';
$seqpe = $seqp.'e';
$seqps = $seqp.'s';
$seqpsk = $seqp.'sk';
# 保存副武器数据
$swep=${$seqp}; $swepk=${$seqpk};
$swepe=${$seqpe}; $sweps=${$seqps}; $swepsk=${$seqpsk};
# 切换时,检查主手是否为空
$no_wepflag = 0;
if($wepk == 'WN' && $wep == $nowep && empty($wepe) && $weps == $nosta && empty($wepsk))
{
$no_wepflag = 1;
}
# 切换时,检查副武器槽是否为空
$no_swepflag = 0;
if(empty($swep) || ($swepk == 'WN' && $swep == $nowep && empty($swepe) && $sweps == $nosta && empty($swepsk)))
{
$swep = $nowep; $swepk = 'WN';
$swepe = 0; $sweps = $nosta; $swepsk = '';
$no_swepflag = 1;
}
${$seqp} = ${$eqp}; ${$eqp} = $swep;
${$seqpk} = ${$eqp.'k'}; ${$eqp.'k'} = $swepk;
${$seqpe} = ${$eqp.'e'}; ${$eqp.'e'} = $swepe;
${$seqps} = ${$eqp.'s'}; ${$eqp.'s'} = $sweps;
${$seqpsk} = ${$eqp.'sk'}; ${$eqp.'sk'} = $swepsk;
$sweplog = '';
if(!$no_wepflag) $sweplog.="收起了<span class='yellow'>{$wep2}</span>";
if(!$no_swepflag)
{
if(!empty($sweplog)) $sweplog .= ',';
$sweplog .="拿出了<span class='yellow'>{$wep}</span>";
}
$log .= $sweplog."。<br>";
return;
}
# 销毁指定装备
......@@ -1545,6 +1552,7 @@ function reload_equip_items(&$pa)
global $nowep,$noarb,$nosta;
if(empty($pa['wep']) || empty($pa['weps']))
//if(empty($pa['weps']) && $pa['wep'] !== $nowep)
{
$pa['wep'] = $nowep;
$pa['wepk'] = 'WN';
......
......@@ -413,7 +413,7 @@ namespace revattr
//没有灵抽的情况下,向属性数组中打入复制后武器的属性
if(!isset($pa['sldr_flag'])) $pa['ex_keys'] = array_merge($pa['ex_keys'],get_itmsk_array($pa['wepsk']));
get_wep_kind($pa);
$log .= "{$pa['nm']}使用{$pa['wep']}<span class=\"yellow\">{$attinfo[$pa['wep_kind']]}</span>{$pd['nm']}!<br>";
//$log .= "{$pa['nm']}使用{$pa['wep']}<span class=\"yellow\">{$attinfo[$pa['wep_kind']]}</span>{$pd['nm']}!<br>";
}
}
else
......
......@@ -448,7 +448,7 @@ namespace revattr
get_inf_rev($pd,'p');
}else{
$log .= "<span class=\"yellow\">体当冲刺朝你袭来!造成了<span class=\"red\">550</span>点伤害!<br>";
$dmg = 250;
$dmg = 550;
}
return $dmg;
}
......
......@@ -478,6 +478,253 @@ function press_bomb(){
return;
}
//提取代码片段逻辑
function item_extract_trait($which, $item_position)
{
include_once GAME_ROOT . './gamedata/club21cfg.php';
//去掉string which的最后一位
$which = substr($which, 0, -1);
global $log, $mode, $club, $sp;
if ($club != 21) {
$log .= '你的称号不能使用该技能。';
$mode = 'command';
return;
}
if ($item_position < 1 || $item_position > 6) {
$log .= '此道具不存在,请重新选择。';
$mode = 'command';
return;
}
global ${'itm' . $item_position}, ${'itmk' . $item_position}, ${'itme' . $item_position}, ${'itms' . $item_position}, ${'itmsk' . $item_position};
$oriitm = &${'itm' . $item_position};
$itm = &${'itm' . $item_position};
$itmk = &${'itmk' . $item_position};
$itme = &${'itme' . $item_position};
$itms = &${'itms' . $item_position};
$itmsk = &${'itmsk' . $item_position};
$tmp_trait = ${$which . $item_position};
// 判断itmk是否以'D'或'W'开头
if (strpos($itmk, 'D') === 0 || strpos($itmk, 'W') === 0) {
// 给代码片段命名
if ($which == 'itm') {
preg_match_all('/(改|棍棒|\+(\\d+))/u', $itm, $matches);
if (!empty($matches[0])) {
$sp_cost = 0;
foreach ($matches[0] as $match) {
if ($match == '改') {
$sp_cost += $itm_extract_rate['改'] * 1;
} elseif ($match == '棍棒') {
$sp_cost += $itm_extract_rate['棍棒'] * 1;
} else {
preg_match('/\+(\d+)/', $match, $numberMatch);
$number = isset($numberMatch[1]) ? (int) $numberMatch[1] : 0;
$sp_cost += $itm_extract_rate['+'] + $itm_extract_rate['n'] * $number;
}
}
if ($sp < $sp_cost) {
$log .= '体力不足,无法转换为代码片段。<br>';
return;
}
$sp -= $sp_cost;
$log .= '消耗体力' . $sp_cost . '点。<br>';
$itm = implode('', $matches[0]);
$itm = (string)$itm;
$itm = "名称" . $itm . '代码片段';
$itmk = '🥚';
$itme = '0';
$itms = '1';
$itmsk = '';
return;
}
else {
$log .= '该物品无法转换为代码片段。<br>';
return;
}
} elseif ($which == 'itme') {
if ($sp < $itme_extract_rate * $itme) {
$log .= '体力不足,无法转换为代码片段。<br>';
return;
}
//$itm = "效果" . ${$which . $item_position} . '代码片段';
$itm = '🥚' . $oriitm . '🥚的效果代码片段';
$log .= '消耗体力' . $itme_extract_rate * $itme . '点。<br>';
$sp -= $itme_extract_rate * $itme;
} elseif ($which == 'itms') {
//如果itms为∞
if ($itms == '∞') {
if ($sp < $itms_infinite_extract_rate* 1) {
$log .= '体力不足,无法转换为代码片段。<br>';
return;
}
$itm = '🥚' . $oriitm . '🥚的耐久代码片段';
$log .= '消耗体力' . $itms_infinite_extract_rate* 1 . '点。<br>';
$sp -= $itms_infinite_extract_rate* 1;
$itmk = '';
$itme = '0';
$itms = '∞';
$itmsk = '';
${$which . $item_position} = $tmp_trait;
// 将itmk替换为代码片段的itmk
$itmk = '🥚';
$log .= '成功将物品转换为代码片段。<br>';
return;
}
if ($sp < $itms_extract_rate * $itms) {
$log .= '体力不足,无法转换为代码片段。<br>';
return;
}
//$itm = "耐久" . ${$which . $item_position} . '代码片段';
$itm = '🥚' . $oriitm . '🥚的耐久代码片段';
$log .= '消耗体力' . $itms_extract_rate * $itms . '点。<br>';
$sp -= $itms_extract_rate * $itms;
} elseif ($which == 'itmsk') {
preg_match_all('/./u', $itmsk, $matches);
var_dump($matches);
//如果matches没有
if (empty($matches[0])) {
$log .= '该物品无法转换为代码片段。<br>';
return;
}
foreach ($matches[0] as $single_itmsk) {
if (isset($itmsk_extract_rate[$single_itmsk])) {
$sum += 1 * $itmsk_extract_rate[$single_itmsk];
}
}
if ($sp < $sum) {
$log .= '体力不足,无法转换为代码片段。<br>';
return;
}
//$itm = "属性" . ${$which . $item_position} . '代码片段';
$itm = '🥚' . $oriitm . '🥚的属性代码片段';
$log .= '消耗体力' . $sum . '点。<br>';
$sp -= $sum;
}
$itmk = '';
$itme = '0';
$itms = '1';
$itmsk = '';
${$which . $item_position} = $tmp_trait;
$itms += 1;
// 将itmk替换为代码片段的itmk
$itmk = '🥚';
$log .= '成功将物品转换为代码片段。<br>';
} else {
$log .= '该物品无法转换为代码片段。<br>';
}
return;
}
//合并代码片段逻辑
function item_add_trait($choice1, $choice2)
{
global $log, $mode, $club, $sp, $rage;
if ($club != 21) {
$log .= '你的称号不能使用该技能。';
$mode = 'command';
return;
}
//获取choice1和choice2的itm itmk itme itms itmsk
global ${'itm' . $choice1}, ${'itmk' . $choice1}, ${'itme' . $choice1}, ${'itms' . $choice1}, ${'itmsk' . $choice1};
global ${'itm' . $choice2}, ${'itmk' . $choice2}, ${'itme' . $choice2}, ${'itms' . $choice2}, ${'itmsk' . $choice2};
$itm1 = &${'itm' . $choice1};
$itmk1 = &${'itmk' . $choice1};
$itme1 = &${'itme' . $choice1};
$itms1 = &${'itms' . $choice1};
$itmsk1 = &${'itmsk' . $choice1};
$itm2 = &${'itm' . $choice2};
$itmk2 = &${'itmk' . $choice2};
$itme2 = &${'itme' . $choice2};
$itms2 = &${'itms' . $choice2};
$itmsk2 = &${'itmsk' . $choice2};
//检查itmk1是否为🥚,itmk2是否为D或W开头或者是否为🥚
if ($itmk1 != '🥚' || (strpos($itmk2, 'D') !== 0 && strpos($itmk2, 'W') !== 0 && ($itmk2 !== '🥚'))) {
$log .= '该物品无法合并。<br>';
return;
}
//让itm2属性合并itm1
//如果都是🥚,则去掉$itm的所有“代码片段”四个字,然后itm相加
if ($itmk1 == '🥚' && $itmk2 == '🥚') {
$itm1 = str_replace('代码片段', '', $itm1);
//$itm2 = $itm1 . $itm2;
$itm2 = '🥚复合代码片段🥚';
$itmk2 = $itmk1 . $itmk2;
$itme2 = (int)$itme1 + (int)$itme2;
//当任意一个itms为∞
if ($itms1 == '∞' || $itms2 == '∞') {
$itms2 = '∞';
}
else {
$itms2 = (int)$itms1 + (int)$itms2 - 1;
}
$itmsk2 = $itmsk1 . $itmsk2;
//清空itm1
$itm1 = '';
$itmk1 = '';
$itme1 = '0';
$itms1 = '0';
$itmk2 = '🥚';
$itms2 -= 1;
return;
}
if ($rage < 50 ) {
$log .= '怒气不足,无法合并代码片段。<br>';
return;
}
$rage -= 50;
//如果itm1是名称开头的
if (strpos($itm1, '名称') === 0){
//去掉名称和代码片段后合并
$itm1 = str_replace('名称', '', $itm1);
$itm1 = str_replace('代码片段', '', $itm1);
//var_dump($itm1);
//$itm2 = $itm1 . $itm2;
$itm2 = '🥚' . $itm1 . '🥚的复合代码片段';
$itmk2 = $itmk1 . $itmk2;
$itme2 = (int)$itme1 + (int)$itme2;
//当任意一个itms为∞
if ($itms1 == '∞' || $itms2 == '∞') {
$itms2 = '∞';
}
else {
$itms2 = (int)$itms1 + (int)$itms2 - 1;
}
$itmsk2 = $itmsk1 . $itmsk2;
//清空itm1
$itm1 = '';
$itmk1 = '';
$itme1 = '0';
$itms1 = '0';
$itmk2 = str_replace('🥚', '', $itmk2);
return;
}
$itmk2 = $itmk1 . $itmk2;
$itme2 = (int)$itme1 + (int)$itme2;
//当任意一个itms为∞
if ($itms1 == '∞' || $itms2 == '∞') {
$itms2 = '∞';
}
else {
$itms2 = (int)$itms1 + (int)$itms2 - 1;
}
$itmsk2 = $itmsk1 . $itmsk2;
//清空itm1
$itm1 = '';
$itmk1 = '';
$itme1 = '0';
$itms1 = '0';
//去除itm2重复的属性
$itmsk2 = implode(array_unique(str_split($itmsk2)));
//去除itm2属性里的🥚
$itmk2 = str_replace('🥚', '', $itmk2);
}
function shoplist($sn,$getlist=NULL) {
global $gamecfg,$mode,$itemdata,$areanum,$areaadd,$iteminfo,$itemspkinfo,$club,$horizon;
global $db,$tablepre;
......@@ -530,5 +777,3 @@ function shoplist($sn,$getlist=NULL) {
return;
}
?>
......@@ -37,14 +37,14 @@ function nparse_news($start = 0, $range = 0 ){//$type = '') {
//'itemmix' => 'd',
//'syncmix' => 'c',
//'overmix' => 'c',
'senditem' => 'd',
//'senditem' => 'd',
'csl_wthchange' => 'c',
'csl_hack' => 'b',
'csl_addarea' => 'b',
'song' => 'd',
'revival' => 'b',
'wth18_revival' => 'b',
'aurora_revival' => 'b',
//'revival' => 'b',
//'wth18_revival' => 'b',
//'aurora_revival' => 'b',
);
//for($i = $start;$i <= $r;$i++) {
......
......@@ -155,6 +155,14 @@
<input type="button" class="cmdbutton" id="sp_poison" name="sp_poison" value="检查毒物" onclick="$('command').value='special';$('subcmd').name='sp_cmd';$('subcmd').value='sp_poison';postCmd('gamecmd','command.php');this.disabled=true;">
</span>
<br />
<!--{elseif $club == 21}-->
<span tooltip="可以通过消耗体力,将武器·装备上的「要素」取出成为物品">
<input type="button" class="cmdbutton" id="sp_extract_trait" name="sp_extract_trait" value="提取代码片段" onclick="$('command').value='special';$('subcmd').name='sp_cmd';$('subcmd').value='sp_extract_trait';postCmd('gamecmd','command.php');this.disabled=true;">
</span>
<span tooltip="插回其他物品让其他物品获得这些属性">
<input type="button" class="cmdbutton" id="sp_add_trait" name="sp_add_trait" value="插入代码片段" onclick="$('command').value='special';$('subcmd').name='sp_cmd';$('subcmd').value='sp_add_trait';postCmd('gamecmd','command.php');this.disabled=true;">
</span>
<br />
<!--{elseif $club == 99}-->
<span tooltip="舍弃当前称号,使属性大副提升">
<input type="button" class="cmdbutton" id="sp_pbomb" name="sp_pbomb" value="X 按钮" onclick="$('command').value='special';$('subcmd').name='sp_cmd';$('subcmd').value='sp_pbomb';postCmd('gamecmd','command.php');this.disabled=true;">
......
<input type="hidden" name="mode" value="command" />
<input type="hidden" name="command" value="special" />
<input type="hidden" name="sp_cmd" value="sp_add_trait_selected" />
<input type="hidden" id="choice" name="choice" value="menu" />
<input type="hidden" id="choice2" name="choice" value="menu" />
你打算怎么插入代码片段?<br>
<div style="padding: 5px;">
<select name="choice" onclick=sl('choice'); href="javascript:void(0);">
<option value="0">■ 道具一 ■<br />
<!--{if (strpos($itmk1, '🥚') === 0)}--><option value="1">$itm1/$itme1/$itms1<br /><!--{/if}-->
<!--{if (strpos($itmk2, '🥚') === 0)}--><option value="2">$itm2/$itme2/$itms2<br /><!--{/if}-->
<!--{if (strpos($itmk3, '🥚') === 0)}--><option value="3">$itm3/$itme3/$itms3<br /><!--{/if}-->
<!--{if (strpos($itmk4, '🥚') === 0)}--><option value="4">$itm4/$itme4/$itms4<br /><!--{/if}-->
<!--{if (strpos($itmk5, '🥚') === 0)}--><option value="5">$itm5/$itme5/$itms5<br /><!--{/if}-->
<!--{if (strpos($itmk6, '🥚') === 0)}--><option value="6">$itm6/$itme6/$itms6<br /><!--{/if}-->
</select>
<br><br>
<select name="choice2" onclick=sl('choice2'); href="javascript:void(0);">
<option value="0">■ 道具二 ■<br />
<!--{if (strpos ( $itmk1, 'D' ) === 0 ) || (strpos ( $itmk1, 'W' ) === 0) || (strpos ( $itmk1, '🥚' ) === 0) }--><option value="1">$itm1/$itme1/$itms1<br /><!--{/if}-->
<!--{if (strpos ( $itmk2, 'D' ) === 0 ) || (strpos ( $itmk2, 'W' ) === 0) || (strpos ( $itmk2, '🥚' ) === 0) }--><option value="2">$itm2/$itme2/$itms2<br /><!--{/if}-->
<!--{if (strpos ( $itmk3, 'D' ) === 0 ) || (strpos ( $itmk3, 'W' ) === 0) || (strpos ( $itmk3, '🥚' ) === 0) }--><option value="3">$itm3/$itme3/$itms3<br /><!--{/if}-->
<!--{if (strpos ( $itmk4, 'D' ) === 0 ) || (strpos ( $itmk4, 'W' ) === 0) || (strpos ( $itmk4, '🥚' ) === 0) }--><option value="4">$itm4/$itme4/$itms4<br /><!--{/if}-->
<!--{if (strpos ( $itmk5, 'D' ) === 0 ) || (strpos ( $itmk5, 'W' ) === 0) || (strpos ( $itmk5, '🥚' ) === 0) }--><option value="5">$itm5/$itme5/$itms5<br /><!--{/if}-->
<!--{if (strpos ( $itmk6, 'D' ) === 0 ) || (strpos ( $itmk6, 'W' ) === 0) || (strpos ( $itmk6, '🥚' ) === 0) }--><option value="6">$itm6/$itme6/$itms6<br /><!--{/if}-->
</select>
</div>
<input type="button" class="cmdbutton" id="zz" name="submit" value="[Z]提交" onclick="postCmd('gamecmd','command.php');this.disabled=true;">
<input type="hidden" name="mode" value="command">
<input type="hidden" name="command" value="special">
<input type="hidden" name="sp_cmd" value="sp_extract_trait_selected">
<input type="hidden" id="choice" name="choice" value="menu">
你想提取什么要素?<br>
<br>
<!--{if (strpos ( $itmk1, 'D' ) === 0 ) || (strpos ( $itmk1, 'W' ) === 0) }-->
<input type="button" onclick="$('choice').value='itm1';postCmd('gamecmd','command.php');this.disabled=true;" value="名称">$itm1<br>
<input type="button" onclick="$('choice').value='itme1';postCmd('gamecmd','command.php');this.disabled=true;" value="效果">$itme1<br>
<input type="button" onclick="$('choice').value='itms1';postCmd('gamecmd','command.php');this.disabled=true;" value="耐久">$itms1<br>
<input type="button" onclick="$('choice').value='itmsk1';postCmd('gamecmd','command.php');this.disabled=true;" value="属性">$itmsk1_words<br>
<!--{/if}-->
<br>
<!--{if (strpos ( $itmk2, 'D' ) === 0 ) || (strpos ( $itmk2, 'W' ) === 0) }-->
<input type="button" onclick="$('choice').value='itm2';postCmd('gamecmd','command.php');this.disabled=true;" value="名称">$itm2<br>
<input type="button" onclick="$('choice').value='itme2';postCmd('gamecmd','command.php');this.disabled=true;" value="效果">$itme2<br>
<input type="button" onclick="$('choice').value='itms2';postCmd('gamecmd','command.php');this.disabled=true;" value="耐久">$itms2<br>
<input type="button" onclick="$('choice').value='itmsk2';postCmd('gamecmd','command.php');this.disabled=true;" value="属性">$itmsk2_words<br>
<!--{/if}-->
<br>
<!--{if (strpos ( $itmk3, 'D' ) === 0 ) || (strpos ( $itmk3, 'W' ) === 0) }-->
<input type="button" onclick="$('choice').value='itm3';postCmd('gamecmd','command.php');this.disabled=true;" value="名称">$itm3<br>
<input type="button" onclick="$('choice').value='itme3';postCmd('gamecmd','command.php');this.disabled=true;" value="效果">$itme3<br>
<input type="button" onclick="$('choice').value='itms3';postCmd('gamecmd','command.php');this.disabled=true;" value="耐久">$itms3<br>
<input type="button" onclick="$('choice').value='itmsk3';postCmd('gamecmd','command.php');this.disabled=true;" value="属性">$itmsk3_words<br>
<!--{/if}-->
<br>
<!--{if (strpos ( $itmk4, 'D' ) === 0 ) || (strpos ( $itmk4, 'W' ) === 0) }-->
<input type="button" onclick="$('choice').value='itm4';postCmd('gamecmd','command.php');this.disabled=true;" value="名称">$itm4<br>
<input type="button" onclick="$('choice').value='itme4';postCmd('gamecmd','command.php');this.disabled=true;" value="效果">$itme4<br>
<input type="button" onclick="$('choice').value='itms4';postCmd('gamecmd','command.php');this.disabled=true;" value="耐久">$itms4<br>
<input type="button" onclick="$('choice').value='itmsk4';postCmd('gamecmd','command.php');this.disabled=true;" value="属性">$itmsk4_words<br>
<!--{/if}-->
<br>
<!--{if (strpos ( $itmk5, 'D' ) === 0 ) || (strpos ( $itmk5, 'W' ) === 0) }-->
<input type="button" onclick="$('choice').value='itm5';postCmd('gamecmd','command.php');this.disabled=true;" value="名称">$itm5<br>
<input type="button" onclick="$('choice').value='itme5';postCmd('gamecmd','command.php');this.disabled=true;" value="效果">$itme5<br>
<input type="button" onclick="$('choice').value='itms5';postCmd('gamecmd','command.php');this.disabled=true;" value="耐久">$itms5<br>
<input type="button" onclick="$('choice').value='itmsk5';postCmd('gamecmd','command.php');this.disabled=true;" value="属性">$itmsk5_words<br>
<!--{/if}-->
<br>
<!--{if (strpos ( $itmk6, 'D' ) === 0 ) || (strpos ( $itmk6, 'W' ) === 0) }-->
<input type="button" onclick="$('choice').value='itm6';postCmd('gamecmd','command.php');this.disabled=true;" value="名称">$itm6<br>
<input type="button" onclick="$('choice').value='itme6';postCmd('gamecmd','command.php');this.disabled=true;" value="效果">$itme6<br>
<input type="button" onclick="$('choice').value='itms6';postCmd('gamecmd','command.php');this.disabled=true;" value="耐久">$itms6<br>
<input type="button" onclick="$('choice').value='itmsk6';postCmd('gamecmd','command.php');this.disabled=true;" value="属性">$itmsk6_words<br>
<!--{/if}-->
<br>
<input type="button" class="cmdbutton" onclick="postCmd('gamecmd','command.php');this.disabled=true;" value="放弃">
\ No newline at end of file
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