Commit ef2bdbfc authored by hisuinohoshi's avatar hisuinohoshi

Elements

update:{elementmix.func.php,elementmix.htm,elementmix_1.php}
change:{command.php,item.func.php,news.func.php,js}
为元素合成添加了一些大成功、大失败事件;
添加了固定、随机配方,理论上来说可以不开小号单人完成任一流程;
为提示纸条增加了一些元素大师可以看到的额外tips,当然捡纸条主要作用是解锁配方;
但是现在配方只能靠脑子或者场外工具记,不知道有没有闲置的player表字段能让我循环利用一下存一下玩家获得的配方。
TODO:除了记忆配方以外,剩下的一个是慢慢磨平衡性,一个是装备生成的属性太多会让界面变得很丑……呃啊,要想想。
parent 26dc1695
......@@ -126,7 +126,6 @@ if($hp > 0){
$mode = 'rest';
}
} elseif($command == 'itemmain') {
//保险起见 在这里检测下两种伪造提交情况 比较丑陋!
if(($club == 20 && $itemcmd == 'itemmix') || ($club != 20 && ($itemcmd == 'elementmix' || $itemcmd == 'elementbag')))
{
$log .= "你的手突然掐住了你的头左右摇摆!<br><span class='yellow'>“你还想要干什么,啊?你还想要干什么!!”</span><br>看来你的手和脑子之间起了一点小摩擦。<br><br>";
......@@ -136,8 +135,10 @@ if($hp > 0){
{
if($club == 20)
{
global $elements_info;
include_once GAME_ROOT.'./include/game/elementmix.func.php';
$emax = get_emix_itme_max();
foreach($elements_info as $e_key=>$e_info) ${'etaginfo'.$e_key} ="<span title=\"".print_elements_tags($e_key)."\">";
}
$mode = $itemcmd;
}
......@@ -306,9 +307,9 @@ if($hp > 0){
foreach($elements_info as $e_key=>$e_info)
{
global ${'element'.$e_key};
//偷个懒 只对合法参数进行判断 非法参数就不额外判断发log了……
$m_e_key = $e_key + 1;//这样就不用污染原本的js了
${'emitm'.$e_key.'_num'} = round( ${'emitm'.$e_key.'_num'});
if(${'element'.$e_key} && ${'emitm'.$e_key}>=0 && ${'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})
{
//打入参与合成的元素编号与数量
$e_mixlist[$e_key] = ${'emitm'.$e_key.'_num'};
......@@ -316,8 +317,8 @@ if($hp > 0){
}
if(count($e_mixlist)>0)
{
if($lvl>=5 && $emitme_r) $er = $emitme_r;
if($lvl>=15 && $emitme_max_r) $emr = $emitme_max_r;
$er = ($lvl>=15 && $emitme_r && $change_emr==1) ? $emitme_r : NULL;
$emr = ($lvl>=5 && $emitme_max_r && $change_emax==1) ? $emitme_max_r : NULL;
include_once GAME_ROOT.'./include/game/elementmix.func.php';
element_mix($e_mixlist,$emr,$er);
}
......
This diff is collapsed.
This diff is collapsed.
......@@ -5,7 +5,7 @@ if (! defined ( 'IN_GAME' )) {
}
function itemuse($itmn) {
global $mode, $log, $nosta, $pid, $name, $state, $now,$nick,$achievement;
global $mode, $log, $nosta, $pid, $name, $state, $now,$nick,$achievement,$club;
if ($itmn < 1 || $itmn > 6) {
$log .= '此道具不存在,请重新选择。';
$mode = 'command';
......@@ -1733,21 +1733,61 @@ function itemuse($itmn) {
$itme = $itms = 0;
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,$club,$url;
if(!$club || $club!=20) $club=20;
$log.="什么!你从身上不知道哪个角落摸出来一大包元素!<br>";
global $elements_info;
$log.="【DEBUG】你不知道从哪里摸出来一大堆元素!<br>";
foreach($elements_info as $e_key=>$e_info)
{
global ${'element'.$e_key};
${'element'.$e_key} += 10000;
${'element'.$e_key} += 100000;
$log.="获得了100000份".$elements_info[$e_key]."!<br>";
}
//初始化元素合成缓存文件
include_once GAME_ROOT.'./include/game/elementmix.func.php';
create_emix_cache_file();
} elseif ($itm == '测试用元素大师社团卡'){
//-----------------------//
//这是一张测试用卡 冴冴可以挑一些用得上的放在使用社团卡后执行的事件里
global $elements_info,$sparkle;
//未选择社团情况下才可以用社团卡
if($club)
{
$log.="你已经是有身份的人了!不能再使用社团卡。<br>";
}
//反正是测试用的 发段怪log
$log.="你拿起<span class='yellow'>$itm</span>左右端详着……<br>
你将目光扫过卡片上若隐若现的纹理,突然发现这张卡内似乎别有洞天。<br>
透过纹理,你看到一群奇装异服的小人们,围坐在一处颇具古典风格的露天广场上。<br>
广场中央有一人,正抬手指天,慷慨陈词。<br>
你听不到它们在说什么,但演讲者那极富感染力的动作勾起了你的好奇心,<br>
你不由自主得沿着它指的方向望去——<br>
<br>
洁白如镜的天穹上,倒映出的是你的脸。<br>
<br>
你赶忙移开视线,但小人们已经发现了你。<br>
从广场再到远处的平原上,数以十计、百计、千计、万计,
一眼望不到头的小人们从你视野的尽头涌出,挤向你所在的方向。<br>
就在此时,你突然感到手心一烫,下意识地便将手里的卡片丢了出去。<br>
眼前亦真亦幻的怪异景象登时消失不见了。<br>
<br>
你低下头,发现卡片已经被烧掉一半了,<br>
在被火焰烧灼得卷曲起的边缘处,漏出了某样东西的一角。<br>
你捡起卡片,甩了甩,便看到一个足足有卡片五倍甚至四倍大的东西从里面掉了出来!<br>";
$log.="<br>获得了<span class='sparkle'>{$sparkle}元素口袋{$sparkle}</span>!<br>";
$log.="……这到底是怎么一回事呢?<br><br>";
//社团变更
$club = 20;
//获取初始元素与第一条配方
$dice = rand(0,5);
global ${'element'.$dice};
${'element'.$dice} += 200+$dice;
//初始化元素合成缓存文件
include_once GAME_ROOT.'./include/game/elementmix.func.php';
create_emix_cache_file();
//销毁道具
$itm = $itmk = $itmsk = '';
$itme = $itms = 0;
//-----------------------//
} elseif ($itm == '提示纸条A') {
$log .= '你读着纸条上的内容:<br>“执行官其实都是幻影,那个红暮的身上应该有召唤幻影的玩意。”<br>“用那个东西然后打倒幻影的话能用游戏解除钥匙出去吧。”<br>';
} elseif ($itm == '提示纸条B') {
......@@ -1898,11 +1938,37 @@ function itemuse($itmn) {
$log .= " <span class=\"yellow\">$itm</span> 该如何使用呢?<br>";
}
//元素大师使用提示纸条的特殊效果:
if($club == 20 && strpos($itmk,'Y')===0 && strpos($itm,'提示纸条')!==false)
{
$log.="<br>就在你读完内容打算把纸条收起来时,你愕然发现纸条背面竟然还有字!<br><br>";
include_once config('elementmix',$gamecfg);
$log.= $emix_slip[array_rand($emix_slip)];
//除商店纸条外:提供一条元素特征(TODO)、或一条固定配方、或一条随机属性组合
if(!preg_match('/(A|B|C|D)/',$itm))
{
$log .= "“附:见面有缘,再送你一条提示吧:”<br>";
/*** TODO:把这一块封装进一个函数里 ***/
$log .= "<span class='yellow'>“将带有";
global $itemspkinfo;
include_once GAME_ROOT.'./include/game/elementmix.func.php';
$s_list = merge_random_emix_list(1); $s_id = array_rand($s_list);
foreach($s_list[$s_id]['stuff'] as $skey) $log .= "【$itemspkinfo[$skey]】";
$s_result = $itemspkinfo[$random_submix_list[$s_id]['result']];
$log .= "特征的元素组合起来,就有机会组合出【{$s_result}】属性。”</span><br>";
/*** TODO:把这一块封装进一个函数里 ***/
}
//阅后即焚
$log .="<br>……说这么多鬼记得住啊!<br>你思考了一下,决定把{$itm}吃进肚子里,以便慢慢消化其中的知识。<br>";
$itms--;
}
if (($itms <= 0) && ($itm)) {
$log .= "<span class=\"red\">$itm</span> 用光了。<br>";
$itm = $itmk = $itmsk = '';
$itme = $itms = 0;
}
} else {
$log .= "你使用了道具 <span class=\"yellow\">$itm</span> 。<br>但是什么也没有发生。<br>";
}
......
......@@ -52,25 +52,19 @@ function demiSecTimerStarter(msec){
timerid = setInterval("demiSecTimer()",itv);
}
function itemmixchooser(type=NULL){
var istart = 1;
var iend = 6;
var iname = 'mitm';
if(type==20)
{
istart = 0;
iend = 5;
iname = 'emitm';
}
for(i=istart;i<=iend;i++){
var mname = iname+i;
function itemmixchooser(){
for(i=1;i<=6;i++){
var mname = 'mitm'+i;
if($(mname) != null){
if($(mname).checked){
$(mname).value=i;
}
}
}
if($('change_emr') != null && $('change_emr').checked) $('change_emr').value=1;
if($('change_emax') != null && $('change_emax').checked) $('change_emax').value=1;
}
//icon select
//function iconMover(){
// gd = document.valid.gender[0].checked ? 'm' : 'f';
......@@ -358,6 +352,11 @@ function getEmitmeR(type=0) {
var r = document.getElementById("emitme_r").value;
$('s_emitme_r').innerHTML = r;
$('s_emitms_r').innerHTML = 100-r;
$('sr_warning').innerHTML = '';
if(r>79 || r<21)
{
$('sr_warning').innerHTML = '警告:过度干预可能引发灾难性的后果!';
}
}
}
......
......@@ -273,7 +273,7 @@ function nparse_news($start = 0, $range = 0 ){//$type = '') {
} elseif($news == 'present') {
$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";
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"yellow\">{$a}用零散的元素组合出{$b}!</span><br>\n";
} elseif($news == 'emix_failed') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"red\">{$a}试图把零散的元素重新组合起来,但是失败了!哎呀呀、这可真是……</span><br>\n";
} else {
......
......@@ -7,45 +7,62 @@
<br>
<!--元素选取模块-->
<!--{if $element0}-->
<input type="checkbox" id="emitm0" name="emitm0" value="-1"><a onclick="$('emitm0').click();" href="javascript:void(0);"> $elements_info[0] 放入:</a>
<input type="checkbox" id="mitm1" name="mitm1" value="-1"><a onclick="$('mitm1').click();" href="javascript:void(0);">$etaginfo0 $elements_info[0] 放入:</span></a>
<input type="number" style="width:50px" name="emitm0_num" value="$element0" min="0" max="$element0" oninput="if(value>$element0)value=$element0;if(value<0)value=0" /><br>
<!--{/if}-->
<!--{if $element1}-->
<input type="checkbox" id="emitm1" name="emitm1" value="-1"><a onclick="$('emitm1').click();" href="javascript:void(0);"> $elements_info[1] 放入:</a>
<input type="checkbox" id="mitm2" name="mitm2" value="-1"><a onclick="$('mitm2').click();" href="javascript:void(0);">$etaginfo1 $elements_info[1] 放入:</span></a>
<input type="number" style="width:50px" name="emitm1_num" value="$element1" min="0" max="$element1" oninput="if(value>$element1)value=$element1;if(value<0)value=0" /><br>
<!--{/if}-->
<!--{if $element2}-->
<input type="checkbox" id="emitm2" name="emitm2" value="-1"><a onclick="$('emitm2').click();" href="javascript:void(0);"> $elements_info[2] 放入:</a>
<input type="checkbox" id="mitm3" name="mitm3" value="-1"><a onclick="$('mitm3').click();" href="javascript:void(0);">$etaginfo2 $elements_info[2] 放入:</span></a>
<input type="number" style="width:50px" name="emitm2_num" value="$element2" min="0" max="$element2" oninput="if(value>$element2)value=$element2;if(value<0)value=0" /><br>
<!--{/if}-->
<!--{if $element3}-->
<input type="checkbox" id="emitm3" name="emitm3" value="-1"><a onclick="$('emitm3').click();" href="javascript:void(0);"> $elements_info[3] 放入:</a>
<input type="checkbox" id="mitm4" name="mitm4" value="-1"><a onclick="$('mitm4').click();" href="javascript:void(0);">$etaginfo3 $elements_info[3] 放入:</span></a>
<input type="number" style="width:50px" name="emitm3_num" value="$element3" min="0" max="$element3" oninput="if(value>$element3)value=$element3;if(value<0)value=0" /><br>
<!--{/if}-->
<!--{if $element4}-->
<input type="checkbox" id="emitm4" name="emitm4" value="-1"><a onclick="$('emitm4').click();" href="javascript:void(0);"> $elements_info[4] 放入:</a>
<input type="checkbox" id="mitm5" name="mitm5" value="-1"><a onclick="$('mitm5').click();" href="javascript:void(0);">$etaginfo4 $elements_info[4] 放入:</span></a>
<input type="number" style="width:50px" name="emitm4_num" value="$element4" min="0" max="$element4" oninput="if(value>$element4)value=$element4;if(value<0)value=0" /><br>
<!--{/if}-->
<!--{if $element5}-->
<input type="checkbox" id="emitm5" name="emitm5" value="-1"><a onclick="$('emitm5').click();" href="javascript:void(0);"> $elements_info[5] 放入:</a>
<input type="checkbox" id="mitm6" name="mitm6" value="-1"><a onclick="$('mitm6').click();" href="javascript:void(0);">$etaginfo5 $elements_info[5] 放入:</span></a>
<input type="number" style="width:50px" name="emitm5_num" value="$element5" min="0" max="$element5" oninput="if(value>$element5)value=$element5;if(value<0)value=0" /><br>
<!--{/if}-->
<br>
<!--5级后解锁:效果、耐久比例调节-->
<!--自带:通过投入元素数量的奇偶决定道具类别-->
<span class="yellow">&nbsp;&nbsp;【数术】</span><br>
&nbsp; › 投入份数<span class="lime">最多(±10)</span>的一种或多种元素<br>
会成为<span class="lime">主元素</span>,影响合成结果的<span class="lime">类型</span><br>
&nbsp; › 投入的主元素为<span class="redseed"></span>|<span class="blueseed"></span>数份时,元素会展<br>
<span class="redseed">第一</span>|<span class="blueseed">第二</span>个主特征。<br>
<br>
<!--5级后解锁:最大生成效果调节-->
<!--{if $lvl>=5}-->
<span class="yellow">&nbsp;【调谐】:</span><br>
&nbsp; - 你能够干涉元素合成结果的<span class="lime b">效耐比率</span><br>
&nbsp; - 当前:效果占比<span class="yellow b"><span id="s_emitme_r" name="s_emitme_r">55</span>%】</span>&nbsp;耐久占比<span class="yellow b"><span id="s_emitms_r" name="s_emitms_r">45</span>%】</span><br>
<input type="range" class="range" style="width:220px" id="emitme_r" name="emitme_r" min="2" max="98" value="55" onclick="getEmitmeR(0)"><br>
<span class="yellow">&nbsp;&nbsp;【节制】</span><span class="grey">(勾选启用)</span><input type="checkbox" id="change_emr" name="change_emr" value="-1"><br>
&nbsp; › 你可以主动限制元素合成结果的<span class="lime">效耐上限</span><br>
&nbsp; › 当前:生成道具的效果+耐久上限<span class="yellow"><span id="s_emitme_max" name="s_emitme_max">$emax</span></span><br>
<input type="range" class="range" step="0.1" style="width:220px" id="emitme_max_r" name="emitme_max_r" min="1" max="100" value="100" onchange="getEmitmeR(1)"><br>
<br>
<!--{else}-->
<span class="grey">&nbsp;&nbsp;【节制】(5级后解锁):<br>
&nbsp; › 解锁后可以限制元素合成的<span class="lime">效耐上限</span><br></span>
<br>
<!--{/if}-->
<!--15级后解锁:最大生成效果调节-->
<!--15级后解锁:效果、耐久比例调节-->
<!--{if $lvl>=15}-->
<span class="yellow">&nbsp;【节制】:</span><br>
&nbsp; - 你可以主动限制元素合成结果的<span class="lime b">效果上限</span><br>
&nbsp; - 当前:生成道具的效果上限<span class="yellow b"><span id="s_emitme_max" name="s_emitme_max">$emax</span></span><br>
<input type="range" class="range" style="width:220px" id="emitme_max_r" name="emitme_max_r" min="1" max="100" value="100" onclick="getEmitmeR(1)"><br>
<span class="yellow">&nbsp;&nbsp;【预言】</span><span class="grey">(勾选启用)</span><input type="checkbox" id="change_emax" name="change_emax" value="-1"><br>
&nbsp; › 你能够干涉元素合成结果的<span class="lime">效耐占比</span><br>
&nbsp; › 当前:效果占比<span class="yellow"><span id="s_emitme_r" name="s_emitme_r">55</span>%】</span>&nbsp;耐久占比<span class="yellow"><span id="s_emitms_r" name="s_emitms_r">45</span>%】</span><br>
&nbsp; <span id="sr_warning" name="sr_warning" class="red"></span>
<input type="range" class="range" style="width:220px" id="emitme_r" name="emitme_r" min="2" max="98" value="55" onchange="getEmitmeR(0)"><br>
<br>
<!--{else}-->
<span class="grey">&nbsp;&nbsp;【预言】(15级后解锁):<br>
&nbsp; › 解锁后能够干涉元素合成结果的<span class="lime">效耐占比</span><br>
&nbsp; › 当前:效果、耐久占比会在<span class="lime">2%~98%</span>间浮动。</span><br>
<br>
<!--{/if}-->
<input type="button" class="cmdbutton" name="submit" value="提交" onclick="$('command').value='elementmix';itemmixchooser($club);postCmd('gamecmd','command.php');this.disabled=true;">
<input type="button" class="cmdbutton" name="submit" value="提交" onclick="$('command').value='elementmix';itemmixchooser();postCmd('gamecmd','command.php');this.disabled=true;">
<input type="button" class="cmdbutton" name="submit" value="放弃" onclick="postCmd('gamecmd','command.php');this.disabled=true;">
\ No newline at end of file
......@@ -10,5 +10,5 @@
<!--{if $itms5}--><input type="checkbox" id="mitm5" name="mitm5" value="0"><a onclick="$('mitm5').click();" href="javascript:void(0);">$itm5/$itme5/$itms5</a><br><!--{/if}-->
<!--{if $itms6}--><input type="checkbox" id="mitm6" name="mitm6" value="0"><a onclick="$('mitm6').click();" href="javascript:void(0);">$itm6/$itme6/$itms6</a><br><!--{/if}-->
<br>
<input type="button" class="cmdbutton" name="submit" value="提交" onclick="$('command').value='itemencase';itemmixchooser(0);postCmd('gamecmd','command.php');this.disabled=true;">
<input type="button" class="cmdbutton" name="submit" value="提交" onclick="$('command').value='itemencase';itemmixchooser();postCmd('gamecmd','command.php');this.disabled=true;">
<input type="button" class="cmdbutton" name="submit" value="放弃" onclick="postCmd('gamecmd','command.php');this.disabled=true;">
\ No newline at end of file
......@@ -10,5 +10,5 @@
<!--{if $itms5}--><input type="checkbox" id="mitm5" name="mitm5" value="0"><a onclick="$('mitm5').click();" href="javascript:void(0);">$itm5/$itme5/$itms5</a><br><!--{/if}-->
<!--{if $itms6}--><input type="checkbox" id="mitm6" name="mitm6" value="0"><a onclick="$('mitm6').click();" href="javascript:void(0);">$itm6/$itme6/$itms6</a><br><!--{/if}-->
<br>
<input type="button" class="cmdbutton" name="submit" value="提交" onclick="$('command').value='itemmix';itemmixchooser(0);postCmd('gamecmd','command.php');this.disabled=true;">
<input type="button" class="cmdbutton" name="submit" value="提交" onclick="$('command').value='itemmix';itemmixchooser();postCmd('gamecmd','command.php');this.disabled=true;">
<input type="button" class="cmdbutton" name="submit" value="放弃" onclick="postCmd('gamecmd','command.php');this.disabled=true;">
\ No newline at end of file
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