Commit 245a9c67 authored by Nemo Ma's avatar Nemo Ma

Maint - before cursor merge

parent 48b314cd
This diff is collapsed.
......@@ -41,13 +41,20 @@ $pdata['clbpara'] = get_clbpara($pdata['clbpara']);
//Also copying for $weppara, $itmpara and such.
$pdata['weppara'] = get_itmpara($pdata['weppara']);
$pdata['wep2para'] = get_itmpara($pdata['wep2para']);
$pdata['itm0para'] = get_itmpara($pdata['itm0para']);
$pdata['itm1para'] = get_itmpara($pdata['itm1para']);
$pdata['itm2para'] = get_itmpara($pdata['itm2para']);
$pdata['itm3para'] = get_itmpara($pdata['itm3para']);
$pdata['itm4para'] = get_itmpara($pdata['itm4para']);
$pdata['itm5para'] = get_itmpara($pdata['itm5para']);
$pdata['itm6para'] = get_itmpara($pdata['itm6para']);
//$pdata['itm0para'] = get_itmpara($pdata['itm0para']);
//$pdata['itm1para'] = get_itmpara($pdata['itm1para']);
//$pdata['itm2para'] = get_itmpara($pdata['itm2para']);
//$pdata['itm3para'] = get_itmpara($pdata['itm3para']);
//$pdata['itm4para'] = get_itmpara($pdata['itm4para']);
//$pdata['itm5para'] = get_itmpara($pdata['itm5para']);
//$pdata['itm6para'] = get_itmpara($pdata['itm6para']);
$pdata['itmpara0'] = get_itmpara($pdata['itmpara0']);
$pdata['itmpara1'] = get_itmpara($pdata['itmpara1']);
$pdata['itmpara2'] = get_itmpara($pdata['itmpara2']);
$pdata['itmpara3'] = get_itmpara($pdata['itmpara3']);
$pdata['itmpara4'] = get_itmpara($pdata['itmpara4']);
$pdata['itmpara5'] = get_itmpara($pdata['itmpara5']);
$pdata['itmpara6'] = get_itmpara($pdata['itmpara6']);
$pdata['arbpara'] = get_itmpara($pdata['arbpara']);
$pdata['arhpara'] = get_itmpara($pdata['arhpara']);
$pdata['arapara'] = get_itmpara($pdata['arapara']);
......
......@@ -39,6 +39,18 @@ $dialogues = Array
4 => '你似乎看到了,听到了,感觉到了一个模糊的场景,<br>但你不知道这是什么。',
5 => '大量类似的场景掠过你的脑海,而你已经无力吸收。<br>你浑身疼痛,不禁口吐鲜血,无助地等待着一切结束。',
),
//NPC Platform Usage
'npcplatform' => Array
(
0 => '你将这个按钮部署在了地上,它扩张成了一个平台。<br>你毅然地站了进去。',
1 => '你看着脚底下的使用说明,将脚放在了平台边缘的按钮上,<br>将其按下。',
2 => '刹那间,七彩的光束从平台涌动而出,将你淹没。',
3 => '你感觉你的一切都被读取,扭曲,改写。<br>血液在翻滚,内脏在舞动,意识在倾泻。<br>你甚至已经有了一种你不是你自己的错觉。',
4 => '随着光束散去,平台也凭空消失。<br>留下的只有一位崭新的你。',
5 => '希望……这真的值得。',
),
//TESTING ONLY - DELETE THIS WHEN DEPLOYING
'testingDialog' => Array
(
......
......@@ -249,7 +249,7 @@ $mixinfo = array
array('class' => 'fseed', 'stuff' => array('◆焰火','✦ЦВЙΨХЩΗЖФ✦'),'result' => array('✦ЦΨЙЩЦΑПΨЁВЦЩΨ✦','🎆C',1,1),),
array('class' => 'fseed', 'stuff' => array('◆◆◆愈合数据','✦烈焰火'),'result' => array('✦愈合数据','🎆H',120,'∞',),),
array('class' => 'fseed', 'stuff' => array('◆◆◆熟练数据','✦烈焰火'),'result' => array('✦熟练数据','🎆V',75,1,),),
array('class' => 'fseed', 'stuff' => array('◆◆◆熟练数据','✦烈焰火'),'result' => array('✦熟练数据','🎆V',175,1,),),
array('class' => 'fseed', 'stuff' => array('◆◆◆生命数据','✦烈焰火'),'result' => array('✦生命数据','🎆O',500,1,),),
array('class' => 'fseed', 'stuff' => array('◆◆◆意念数据','✦烈焰火'),'result' => array('✦意念数据','🎆D',500,1,),),
......
......@@ -97,7 +97,7 @@ $wthinfo = Array(
17 => '<span class="gold">极光</span>',
18 => '<span class="minirainbow">光玉雨</span>'
);
$sexinfo = Array(0=> '未定', 'm' => '男生', 'f' => '女生');
$sexinfo = Array(0=> '未定', 'm' => '男生', 'f' => '女生', 'n' => '投影');
$raceinfo = Array(0=> '人类', 1=> '兽人', 2=> '妖精', 3=> '龙', 4=> '鱼人', 5=> 'AI');
$hpinfo = Array('<span class="clan">并无大碍</span>','<span class="yellow">伤痕累累</span>','<span class="red">生命危险</span>','<span class="red">已经死亡</span>');
$spinfo = Array('精力充沛','略有疲惫','精疲力尽','已经死亡');
......@@ -1077,6 +1077,7 @@ $iteminfo = Array(//注意顺序,AB必须在A的前面,以此类推
'🎆C' => '余烬', #种火盒子·报社篇
'P🎆' => '余烬', #霍霍完歌魂是不是还要霍霍种火数据(悲
'🎆' => '余烬', # Catch-All
'💝' => '投射平台', // NPC/Player platform - uses its $itmpara for logic
);
$itemspkinfo = Array(
......
......@@ -131,6 +131,68 @@ table.infotable th {
50% { border-color: orange }
}
/* Quest Panel */
#quest-panel {
position: fixed;
right: -250px; /* Start hidden */
top: 50%;
transform: translateY(-50%);
width: 250px;
background-color: rgba(0, 0, 0, 0.9);
border: 2px solid rgba(225, 124, 226, 0.4);
border-radius: 10px 0 0 10px;
box-shadow: -3px 0 5px rgba(0, 0, 0, 0.5);
overflow: hidden;
transition: right 0.3s ease-in-out;
z-index: 100;
}
#quest-panel.open {
right: 0; /* Slide in */
}
#quest-tab {
position: fixed; /* Make it relative to the viewport */
/* right: 0; Align to the edge of the viewport */
top: 50%;
transform: translateY(-50%);
width: 50px;
height: 100px;
background-color: rgba(225, 124, 226, 0.9);
border: 2px solid rgba(225, 124, 226, 0.4);
border-radius: 10px 0 0 10px;
color: #fff;
text-align: center;
line-height: 100px;
font: bold 12pt "FusionPixel10px";
cursor: pointer;
box-shadow: -3px 0 5px rgba(0, 0, 0, 0.5);
z-index: 101; /* Ensure it stays above other elements */
}
#quest-content {
padding: 50px;
color: #ddd;
font: 10pt "FusionPixel10px";
}
#quest-content h3 {
font: bold 12pt "FusionPixel12px";
color: #cceafa;
margin-bottom: 10px;
}
#quest-content ul {
list-style: none;
padding: 0;
}
#quest-content ul li {
margin: 5px 0;
font: 10pt "FusionPixel10px";
color: #98fb98;
}
.typewritersong {@include typed("到哪都一样 一样乐观 耐操耐撞","永远都一样 一样天真 敢梦敢想","现在还一样 一样冲动 爱疯爱狂","不能停 不能闲 不能不忙","不管他 不怕你笑我","我生来就这样");}
.clit {color: #feea23; font:18pt "FusionPixel10px" serif; }
......
This diff is collapsed.
......@@ -28,7 +28,7 @@ XX => ``mhp``, ``msp``, ``mss``, ``att``, ``def``, ``wp/k/g/c/d/f``, ``money``,
The following keys will apply:
> ``PlatformPlayerMode`` - ``0`` - Uses the values builtin ``$itmpara``, ``1`` - Unused for now. ``2`` - Grab values from player table by matching ``PlatformPlayerName`` and populate them.
> ``PlatformPlayerMode`` - ``0`` - Uses the values builtin ``$itmpara``, ``1`` - Unused for now. ``2`` - Grab values from player table by matching ``PlatformPlayerName`` and populate them. In case this value is ``2``, use ``PlatformPlayerPID`` instead of ``PlatformPlayerName``, obviously.
>
> ``PlatformPlayerName`` - players.sql -> ``name``.
>
......
......@@ -261,6 +261,7 @@ namespace revattr
function calc_enmity_losshpr(&$pa,&$pd)
{
$hpr = 1 - ($pa['hp']/$pa['mhp']);
if($hpr<0) $hpr = 0;
$r = (1 + 2*$hpr) * $hpr;
return $r;
}
......@@ -269,6 +270,7 @@ namespace revattr
function calc_garrison_losshpr(&$pa,&$pd)
{
$hpr = 1 - ($pa['hp']/$pa['mhp']);
if($hpr<0) $hpr = 0;
$r = -1 * pow($hpr,3) + 4 * $hpr;
return $r;
}
......
......@@ -38,7 +38,9 @@
}
if($hp < $mhp || $sp < $msp)
{
$hp = $mhp; $sp = $msp;
//$hp = $mhp; $sp = $msp;
if($hp < $mhp){$hp = $mhp;}
if($sp < $msp){$sp = $msp;}
$heal_flag = 1;
$log .= "你的生命与体力完全恢复了!<br>";
}
......
......@@ -618,12 +618,17 @@ namespace revcombat
if($pd['hp']<= 0)
{
# NPC二阶段处理:
if($pd['club'] == 99 && $pd['type'])
# Adding additional check for 百命猫 here to prevent she coming back if she's killed enough times.
if($pd['club'] == 99 && $pd['type'] && $pd['clbpara']['lifedestroyed'] < 111)
{
$log .= npc_chat_rev ($pd,$pa, 'death' );
include_once GAME_ROOT . './include/system.func.php';
$npcdata = evonpc ($pd['type'],$pd['name']);
$log .= '<span class="yellow">'.$pd['name'].'却没死去,反而爆发出真正的实力!</span><br>';
# add additional logic for 百命猫
if($pd['name']=='是TSEROF啦!'){
$pd['clbpara']['lifedestroyed'] += 1;
}
if($npcdata)
{
addnews($now , 'evonpc',$pd['name'], $npcdata['name'], $pa['name']);
......
......@@ -919,6 +919,7 @@ function set_clbpara($para,$key,$value)
//将itmpara转为数组
function get_itmpara($para)
{
//echo $para, "is a ", gettype($para);
if(empty($para)) $para = Array();
if(!is_array($para)) return json_decode($para,true);
else return $para;
......
......@@ -359,6 +359,8 @@ function nparse_news($start = 0, $range = 0 ){//$type = '') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,$nword<br>\n";
} elseif($news == 'notworthit') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"lime\">{$a}做出了一个他自己可能会后悔很长一段时间的决定。</span><br>\n";
} elseif($news == 'npcplatformusage') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"lime\">{$a}决定化身成为全新的自我。</span><br>\n";
} elseif($news == 'present') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"yellow\">{$a}打开了{$b},获得了{$c}!</span><br>\n";
} elseif($news == 'emix_success') {
......
......@@ -382,7 +382,8 @@ function add_once_area($atime) {
}
//躲避禁区判定
//} elseif($sub['type'] != 1 && $sub['type'] != 7 && $sub['type'] != 9 && $sub['type'] != 13 && $sub['type'] != 20 && $sub['type'] != 21 && $sub['type'] != 88 && $sub['type'] != 22 && $sub['type'] != 92) {
}elseif(!in_array($sub['type'],$sentinel_typelist)){
// Let's try giving NPCs less human rights to migrate the leak problem
}elseif(!in_array($sub['type'],$sentinel_typelist) && $gamestate <= 40){
if($npc_away_from_deepzones)
{ //开启了NPC不会因躲避禁区移动到危险地图的功能
do{
......
......@@ -21,7 +21,7 @@
<table border="0" cellspacing="0" height=75px width=580px cellpadding="0" width="100%" valign="middle">
<tr>
<td class="b1" colspan=2 height=20px><span>$tdata['lvlinfo']</span></td>
<td class="b1" colspan=2><span>$tdata['nameinfo']</span></td>
<td class="b1" colspan=2><span>$tdata['nameinfo']<!--{if !empty($tdata['clbpara']['PlatformName'])}--> ($tdata['clbpara']['PlatformName'])<!--{/if}--></span></td>
<td class="b1" colspan=2><span>{$tdata['typeinfo']}{$tdata['sNoinfo']}</span><!--{if $sdata['club']==19}--><span class="lime">报应点数:<span id="anum">$tdata['rp']</span></span><!--{/if}--></td>
</tr>
<tr>
......@@ -91,7 +91,7 @@
<table border="0" width=580px height=80px cellspacing="0" cellpadding="0" valign="middle">
<tr>
<td class="b1" colspan=2 height=20px><span>$typeinfo[$sdata['type']]({$sexinfo[$sdata['gd']]}{$sdata['sNo']}号)</span></td>
<td class="b1" colspan=2><span>$sdata['name']</span></td>
<td class="b1" colspan=2><span>$sdata['name']<!--{if !empty($sdata['clbpara']['PlatformName'])}--> ($sdata['clbpara']['PlatformName'])<!--{/if}--></span></td>
<td class="b1" colspan=2><span>Lv. $sdata['lvl']</span></td>
</tr>
<tr>
......
......@@ -49,7 +49,7 @@
</td>
<td valign="top">
无名机关的爱发电:<br>
<a href="https://afdian.net/@brdts">https://afdian.net/@brdts</a>
<a href="https://afdian.com/@brdts">https://afdian.com/@brdts</a>
</td>
</tr>
<tr valign="top">
......
......@@ -4,7 +4,7 @@
<table border="0" width="720" cellspacing="0" cellpadding="0" valign="middle">
<tr>
<!--{eval $nickinfo = titles_get_desc($nick,1);}-->
<td width="210" colspan="3" class="b1" id="nickinfo"><span>{$nickinfo} {$name}</span></td>
<td width="210" colspan="3" class="b1" id="nickinfo"><span>{$nickinfo} {$name}<!--{if !empty($clbpara['PlatformName'])}--> ($clbpara['PlatformName'])<!--{/if}--></span></td>
<td width="100" colspan="1" class="b1"><span>{$sexinfo[$gd]}{$sNo}号</span></td>
<td width="95" colspan="2" class="b1"><span>{lang weather}:$wthinfo[$weather]</span></td>
<td width="215" colspan="1" class="b1"><span>{lang gamedate}<!--{if $gamestate == 40 }--><span class="yellow">{lang combo}</span><!--{/if}--><!--{if $gamestate == 50 }--><span class="red">{lang duel}</span><!--{/if}--></span></td>
......
<div id="quest-panel">
<div id="quest-tab" onmouseover="showPanel()" onmouseout="hidePanel()">无授权魔改造</div>
<div id="quest-content" onmouseover="keepPanelOpen()" onmouseout="hidePanel()">
<h3>任务窗体</h3>
<ul id="quest-list">
<!-- Dynamically populate quests -->
<li>这里是任务窗体。</li>
<li>该窗体的内容通过读取clbpara中的键值生成。</li>
<li>目前这只是一个范例。</li>
</ul>
<h3>其他信息</h3>
<ul id="misc-list">
<!-- Dynamically populate quests -->
<li>理论上这里也能放点别的。</li>
<li>GPT4o:会赢的。</li>
</ul>
</div>
</div>
<script>
let panelTimeout;
function showPanel() {
clearTimeout(panelTimeout);
document.getElementById('quest-panel').classList.add('open');
}
function hidePanel() {
panelTimeout = setTimeout(() => {
document.getElementById('quest-panel').classList.remove('open');
}, 500); // Delay hiding to allow smooth interaction
}
function keepPanelOpen() {
clearTimeout(panelTimeout);
}
</script>
\ 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