Commit 06d6e36f authored by hisuinohoshi's avatar hisuinohoshi

horizon phase o.2

新增:
- 灵子视界:
  - 可通过视界按钮在标准/灵子视界间切换;
  - 灵子视界中,界面颜色会发生变化;
  - 灵子视界中,可以看到对同一物品的不同描述;
  - 灵子视界中,移动需要消耗生命而非体力;
  - 灵子视界中,只会发现同处于灵子视界的敌人、尸体;
  - 灵子视界中,使用雷达仪器时只会看到同处于灵子视界中的对象;
  - 从灵子视界切换回标准视界后,需要等待一定时间才能再度切换;

变化:
- 移除了灵子姿态;
- 远程武器使用弹药类型提示不再显示在属性栏,而是显示在类别栏;
- 探索时,如果体力不足,会消耗生命进行探索,但不会致死;
- 安全箱的基础存放道具上限降低为3格;
- 子面板的初始信道数量降低为3条,且每次禁区增加时,只会自然回复1条被占用的信道;

开放相关:
- 添加了守护进程;
- 修改了NPC头像的字段类型与显示逻辑,现在可以自定义不同命名结构与图片格式的NPC头像;
- 用于返回tooltip内容的parse_info_desc()现在被拆分为3个函数:parse_nameinfo_desc()、parse_kinfo_desc()、parse_skinfo_desc();分别用于处理名称/类别/属性;
- 删去了部分已经不再使用的方法与模板文件,避免混淆;
parent 4e0bf61d
...@@ -80,3 +80,6 @@ vendor ...@@ -80,3 +80,6 @@ vendor
# env file # env file
.env .env
# daemon
daemon*
...@@ -172,12 +172,19 @@ if($gamblingon){ ...@@ -172,12 +172,19 @@ if($gamblingon){
//发news //发news
$gbinfo .= "花费{$cost_credits2}切糕购买了{$bnum}{$iteminfo['item']}。<br>"; $gbinfo .= "花费{$cost_credits2}切糕购买了{$bnum}{$iteminfo['item']}。<br>";
addnews($now,'gpost',$sponsor_title.' '.$udata['username'],$iteminfo['item'],$bdata['nick'].' '.$bdata['name'],$bdata['pls'],$bnum); addnews($now,'gpost',$sponsor_title.' '.$udata['username'],$iteminfo['item'],$bdata['nick'].' '.$bdata['name'],$bdata['pls'],$bnum);
//打包快递给快递员 返回新生成的快递员pid
$gclb = Array('clbpara'=>Array('sponsor'=>$uid,'post'=>$bet,'postid'=>6),); //记录赞助者的uid、收货方的pid、道具位置 # 为快递员NPC添加一些自定义参数
$gitem = Array(6,$iteminfo['item'],$iteminfo['itmk'],$iteminfo['itme'],$iteminfo['itms']*$bnum,$iteminfo['itmsk']);//打包快递 $gnpcdata = Array();
//include_once GAME_ROOT.'./include/system.func.php'; $gnpcdata['pls'] = $bdata['pls'];
$nid = addnpc($gnpctype,$gnpcsub,1,$now,$gclb,$gitem,$bdata['pls'])[0]; $gnpcdata['clbpara'] = Array('sponsor'=>$uid,'post'=>$bet,'postid'=>6);
$gnpcdata['itm6'] = $iteminfo['item']; $gnpcdata['itmk6'] = $iteminfo['itmk'];
$gnpcdata['itme6'] = $iteminfo['itme']; $gnpcdata['itms6'] = $iteminfo['itms']*$bnum;
$gnpcdata['itmsk6'] = $iteminfo['itmsk'];
# 召唤快递员NPC,获取其PID
$nid = addnpc($gnpctype,$gnpcsub,1,$now,$gnpcdata)[0];
$gbinfo .= "快递员已带着你赞助的商品前往{$bdata['name']}所在的位置!谢谢惠顾~<br>"; $gbinfo .= "快递员已带着你赞助的商品前往{$bdata['name']}所在的位置!谢谢惠顾~<br>";
//存一条发快递记录到gambling表里,一个玩家在快递被接收前不能发第二份快递。防止有人狂买低价商品挤爆players表。 //存一条发快递记录到gambling表里,一个玩家在快递被接收前不能发第二份快递。防止有人狂买低价商品挤爆players表。
//有过投注记录 //有过投注记录
if($gbnum && isset($gbeddata[$udata['uid']])) $db->query("UPDATE {$tablepre}gambling SET bnid='$nid' WHERE uid='$uid'"); if($gbnum && isset($gbeddata[$udata['uid']])) $db->query("UPDATE {$tablepre}gambling SET bnid='$nid' WHERE uid='$uid'");
......
...@@ -46,9 +46,9 @@ ...@@ -46,9 +46,9 @@
if ($tdata['weps'] && $tdata['wepe']) { if ($tdata['weps'] && $tdata['wepe']) {
$list[] = array( $list[] = array(
"key" => "wep", "key" => "wep",
"type" => parse_info_desc($tdata['wepk'], 'k'), "type" => parse_kinfo_desc($tdata['wepk'], $tdata['wepsk']),
"name" => $tdata['wep'], "name" => parse_nameinfo_desc($tdata['wep'],$tdata['horizon']),
"props" => $tdata['wepsk'] ? parse_info_desc($tdata['wepsk'], 'sk', 'wepsk', 1) : '', "props" => $tdata['wepsk'] ? parse_skinfo_desc($tdata['wepsk'], $tdata['wepk'] , 1) : '',
"quality" => $tdata['wepe'], "quality" => $tdata['wepe'],
"durability" => $tdata['weps'], "durability" => $tdata['weps'],
); );
...@@ -57,9 +57,9 @@ ...@@ -57,9 +57,9 @@
if ($tdata['arbs'] && $tdata['arbe']) { if ($tdata['arbs'] && $tdata['arbe']) {
$list[] = array( $list[] = array(
"key" => "arb", "key" => "arb",
"type" => parse_info_desc($tdata['arbk'], 'k'), "type" => parse_kinfo_desc($tdata['arbk'], $tdata['arbsk']),
"name" => $tdata['arb'], "name" => parse_nameinfo_desc($tdata['arb'],$tdata['horizon']),
"props" => $tdata['arbsk'] ? parse_info_desc($tdata['arbsk'], 'sk', 'arbsk', 1) : '', "props" => $tdata['arbsk'] ? parse_skinfo_desc($tdata['arbsk'], $tdata['arbk'] , 1) : '',
"quality" => $tdata['arbe'], "quality" => $tdata['arbe'],
"durability" => $tdata['arbs'], "durability" => $tdata['arbs'],
); );
...@@ -68,9 +68,9 @@ ...@@ -68,9 +68,9 @@
if ($tdata['arhs']) { if ($tdata['arhs']) {
$list[] = array( $list[] = array(
"key" => "arh", "key" => "arh",
"type" => parse_info_desc($tdata['arhk'], 'k'), "type" => parse_kinfo_desc($tdata['arhk'], $tdata['arhsk']),
"name" => $tdata['arh'], "name" => parse_nameinfo_desc($tdata['arh'],$tdata['horizon']),
"props" => $tdata['arhsk'] ? parse_info_desc($tdata['arhsk'], 'sk', 'arhsk', 1) : '', "props" => $tdata['arhsk'] ? parse_skinfo_desc($tdata['arhsk'], $tdata['arhk'] , 1) : '',
"quality" => $tdata['arhe'], "quality" => $tdata['arhe'],
"durability" => $tdata['arhs'], "durability" => $tdata['arhs'],
); );
...@@ -79,9 +79,9 @@ ...@@ -79,9 +79,9 @@
if ($tdata['aras']) { if ($tdata['aras']) {
$list[] = array( $list[] = array(
"key" => "ara", "key" => "ara",
"type" => parse_info_desc($tdata['arak'], 'k'), "type" => parse_kinfo_desc($tdata['arak'], $tdata['arask']),
"name" => $tdata['ara'], "name" => parse_nameinfo_desc($tdata['ara'],$tdata['horizon']),
"props" => $tdata['arask'] ? parse_info_desc($tdata['arask'], 'sk', 'arask', 1) : '', "props" => $tdata['arask'] ? parse_skinfo_desc($tdata['arask'], $tdata['arak'] , 1) : '',
"quality" => $tdata['arae'], "quality" => $tdata['arae'],
"durability" => $tdata['aras'], "durability" => $tdata['aras'],
); );
...@@ -90,9 +90,9 @@ ...@@ -90,9 +90,9 @@
if ($tdata['arfs']) { if ($tdata['arfs']) {
$list[] = array( $list[] = array(
"key" => "arf", "key" => "arf",
"type" => parse_info_desc($tdata['arfk'], 'k'), "type" => parse_kinfo_desc($tdata['arfk'], $tdata['arfsk']),
"name" => $tdata['arf'], "name" => parse_nameinfo_desc($tdata['arf'],$tdata['horizon']),
"props" => $tdata['arfsk'] ? parse_info_desc($tdata['arfsk'], 'sk', 'arfsk', 1) : '', "props" => $tdata['arfsk'] ? parse_skinfo_desc($tdata['arfsk'], $tdata['arfk'] , 1) : '',
"quality" => $tdata['arfe'], "quality" => $tdata['arfe'],
"durability" => $tdata['arfs'], "durability" => $tdata['arfs'],
); );
...@@ -101,9 +101,9 @@ ...@@ -101,9 +101,9 @@
if ($tdata['arts']) { if ($tdata['arts']) {
$list[] = array( $list[] = array(
"key" => "art", "key" => "art",
"type" => parse_info_desc($tdata['artk'], 'k'), "type" => parse_kinfo_desc($tdata['artk'], $tdata['artsk']),
"name" => $tdata['art'], "name" => parse_nameinfo_desc($tdata['art'],$tdata['horizon']),
"props" => $tdata['artsk'] ? parse_info_desc($tdata['artsk'], 'sk', 'artsk', 1) : '', "props" => $tdata['artsk'] ? parse_skinfo_desc($tdata['artsk'], $tdata['artk'] , 1) : '',
"quality" => $tdata['arte'], "quality" => $tdata['arte'],
"durability" => $tdata['arts'], "durability" => $tdata['arts'],
); );
...@@ -112,9 +112,9 @@ ...@@ -112,9 +112,9 @@
if ($tdata['itms0']) { if ($tdata['itms0']) {
$list[] = array( $list[] = array(
"key" => "itm0", "key" => "itm0",
"type" => parse_info_desc($tdata['itmk0'], 'k'), "type" => parse_kinfo_desc($tdata['itmk0'], $tdata['itmsk0']),
"name" => $tdata['itm0'], "name" => parse_nameinfo_desc($tdata['itm0'],$tdata['horizon']),
"props" => $tdata['itmsk0'] ? parse_info_desc($tdata['itmsk0'], 'sk', 'itmsk0', 1) : '', "props" => $tdata['artsk'] ? parse_skinfo_desc($tdata['itmsk0'], $tdata['itmk0'] , 1) : '',
"quality" => $tdata['itme0'], "quality" => $tdata['itme0'],
"durability" => $tdata['itms0'], "durability" => $tdata['itms0'],
); );
...@@ -123,9 +123,9 @@ ...@@ -123,9 +123,9 @@
if ($tdata['itms1']) { if ($tdata['itms1']) {
$list[] = array( $list[] = array(
"key" => "itm1", "key" => "itm1",
"type" => parse_info_desc($tdata['itmk1'], 'k'), "type" => parse_kinfo_desc($tdata['itmk1'], $tdata['itmsk1']),
"name" => $tdata['itm1'], "name" => parse_nameinfo_desc($tdata['itm1'],$tdata['horizon']),
"props" => $tdata['itmsk1'] ? parse_info_desc($tdata['itmsk1'], 'sk', 'itmsk1', 1) : '', "props" => $tdata['artsk'] ? parse_skinfo_desc($tdata['itmsk1'], $tdata['itmk1'] , 1) : '',
"quality" => $tdata['itme1'], "quality" => $tdata['itme1'],
"durability" => $tdata['itms1'], "durability" => $tdata['itms1'],
); );
...@@ -134,9 +134,9 @@ ...@@ -134,9 +134,9 @@
if ($tdata['itms2']) { if ($tdata['itms2']) {
$list[] = array( $list[] = array(
"key" => "itm2", "key" => "itm2",
"type" => parse_info_desc($tdata['itmk2'], 'k'), "type" => parse_kinfo_desc($tdata['itmk2'], $tdata['itmsk2']),
"name" => $tdata['itm2'], "name" => parse_nameinfo_desc($tdata['itm2'],$tdata['horizon']),
"props" => $tdata['itmsk2'] ? parse_info_desc($tdata['itmsk2'], 'sk', 'itmsk2', 1) : '', "props" => $tdata['artsk'] ? parse_skinfo_desc($tdata['itmsk2'], $tdata['itmk2'] , 1) : '',
"quality" => $tdata['itme2'], "quality" => $tdata['itme2'],
"durability" => $tdata['itms2'], "durability" => $tdata['itms2'],
); );
...@@ -145,9 +145,9 @@ ...@@ -145,9 +145,9 @@
if ($tdata['itms3']) { if ($tdata['itms3']) {
$list[] = array( $list[] = array(
"key" => "itm3", "key" => "itm3",
"type" => parse_info_desc($tdata['itmk3'], 'k'), "type" => parse_kinfo_desc($tdata['itmk3'], $tdata['itmsk3']),
"name" => $tdata['itm3'], "name" => parse_nameinfo_desc($tdata['itm3'],$tdata['horizon']),
"props" => $tdata['itmsk3'] ? parse_info_desc($tdata['itmsk3'], 'sk', 'itmsk3', 1) : '', "props" => $tdata['artsk'] ? parse_skinfo_desc($tdata['itmsk3'], $tdata['itmk3'] , 1) : '',
"quality" => $tdata['itme3'], "quality" => $tdata['itme3'],
"durability" => $tdata['itms3'], "durability" => $tdata['itms3'],
); );
...@@ -156,9 +156,9 @@ ...@@ -156,9 +156,9 @@
if ($tdata['itms4']) { if ($tdata['itms4']) {
$list[] = array( $list[] = array(
"key" => "itm4", "key" => "itm4",
"type" => parse_info_desc($tdata['itmk4'], 'k'), "type" => parse_kinfo_desc($tdata['itmk4'], $tdata['itmsk4']),
"name" => $tdata['itm4'], "name" => parse_nameinfo_desc($tdata['itm4'],$tdata['horizon']),
"props" => $tdata['itmsk4'] ? parse_info_desc($tdata['itmsk4'], 'sk', 'itmsk4', 1) : '', "props" => $tdata['artsk'] ? parse_skinfo_desc($tdata['itmsk4'], $tdata['itmk4'] , 1) : '',
"quality" => $tdata['itme4'], "quality" => $tdata['itme4'],
"durability" => $tdata['itms4'], "durability" => $tdata['itms4'],
); );
...@@ -167,9 +167,9 @@ ...@@ -167,9 +167,9 @@
if ($tdata['itms5']) { if ($tdata['itms5']) {
$list[] = array( $list[] = array(
"key" => "itm5", "key" => "itm5",
"type" => parse_info_desc($tdata['itmk5'], 'k'), "type" => parse_kinfo_desc($tdata['itmk5'], $tdata['itmsk5']),
"name" => $tdata['itm5'], "name" => parse_nameinfo_desc($tdata['itm5'],$tdata['horizon']),
"props" => $tdata['itmsk5'] ? parse_info_desc($tdata['itmsk5'], 'sk', 'itmsk5', 1) : '', "props" => $tdata['artsk'] ? parse_skinfo_desc($tdata['itmsk5'], $tdata['itmk5'] , 1) : '',
"quality" => $tdata['itme5'], "quality" => $tdata['itme5'],
"durability" => $tdata['itms5'], "durability" => $tdata['itms5'],
); );
...@@ -178,9 +178,9 @@ ...@@ -178,9 +178,9 @@
if ($tdata['itms6']) { if ($tdata['itms6']) {
$list[] = array( $list[] = array(
"key" => "itm6", "key" => "itm6",
"type" => parse_info_desc($tdata['itmk6'], 'k'), "type" => parse_kinfo_desc($tdata['itmk6'], $tdata['itmsk6']),
"name" => $tdata['itm6'], "name" => parse_nameinfo_desc($tdata['itm6'],$tdata['horizon']),
"props" => $tdata['itmsk6'] ? parse_info_desc($tdata['itmsk6'], 'sk', 'itmsk6', 1) : '', "props" => $tdata['artsk'] ? parse_skinfo_desc($tdata['itmsk6'], $tdata['itmk6'] , 1) : '',
"quality" => $tdata['itme6'], "quality" => $tdata['itme6'],
"durability" => $tdata['itms6'], "durability" => $tdata['itms6'],
); );
......
...@@ -418,12 +418,6 @@ if($hp > 0){ ...@@ -418,12 +418,6 @@ if($hp > 0){
if(strpos($command,'pose') === 0) { if(strpos($command,'pose') === 0) {
$cpose = substr($command,4,1); $cpose = substr($command,4,1);
if(in_array($cpose,$apose)){ if(in_array($cpose,$apose)){
if($cpose == 8 && isset($clbpara['starttimes']['pose8']) && ($now < ($clbpara['starttimes']['pose8'] + 60))){
$log .= "现在无法切换至{$poseinfo[$cpose]}。剩余冷却时间:".round($clbpara['starttimes']['pose8'] + 60 - $now)."秒。<br>";
goto command_end_flag;
} elseif($cpose == 8) {
$clbpara['starttimes']['pose8'] = $now;
}
$pose = $cpose; $pose = $cpose;
$log .= "基础姿态变为<span class=\"yellow\">$poseinfo[$pose]</span>。<br> "; $log .= "基础姿态变为<span class=\"yellow\">$poseinfo[$pose]</span>。<br> ";
$mode = 'command'; $mode = 'command';
...@@ -441,6 +435,19 @@ if($hp > 0){ ...@@ -441,6 +435,19 @@ if($hp > 0){
$log .= "<span class=\"yellow\">这种策略太奇怪了!</span><br> "; $log .= "<span class=\"yellow\">这种策略太奇怪了!</span><br> ";
$mode = 'command'; $mode = 'command';
} }
} elseif(strpos($command,'hor') === 0) {
$chor = substr($command,3,1);
if(isset($horizoninfo[$chor])){
$horizon = $chor;
$log .= "视界切换为<span class=\"yellow\">$horizoninfo[$chor]</span>。<br> ";
# 切换视界后,丢失所有视野
lost_searchmemory('all',$pdata);
# 向页面发送刷新标记
$log .= "<span id='HsUipfcGhU'></span>";
}else{
$log .= "<span class=\"yellow\">这种想法太奇怪了!</span><br> ";
}
$mode = 'command';
} elseif(strpos($command,'inf') === 0) { } elseif(strpos($command,'inf') === 0) {
$infpos = substr($command,3,1); $infpos = substr($command,3,1);
chginf($infpos); chginf($infpos);
......
This diff is collapsed.
...@@ -142,19 +142,19 @@ $weather_active_r = Array( ...@@ -142,19 +142,19 @@ $weather_active_r = Array(
//姿态对攻击力的影响始终生效(1:只在作出先制攻击时生效) //姿态对攻击力的影响始终生效(1:只在作出先制攻击时生效)
$pose_attack_active = 0; $pose_attack_active = 0;
//姿态对攻击力的影响(单位:百分比加算) //姿态对攻击力的影响(单位:百分比加算)
$pose_attack_modifier = Array(0,100,0,-25,25,-50,50,-777,0); $pose_attack_modifier = Array(0,100,0,-25,25,-50,50,-777);
//姿态对防御力的影响始终生效(1:只在受到先制攻击伤害时生效) //姿态对防御力的影响始终生效(1:只在受到先制攻击伤害时生效)
$pose_defend_active = 0; $pose_defend_active = 0;
//姿态对防御力的影响(单位:百分比加算) //姿态对防御力的影响(单位:百分比加算)
$pose_defend_modifier = Array(0,25,0,-25,-50,-50,-466,777,10); $pose_defend_modifier = Array(0,25,0,-25,-50,-50,-466,777);
//姿态对遇敌率的影响(遇敌率越低道具发现率越高) //姿态对遇敌率的影响(遇敌率越低道具发现率越高)
$pose_find_modifier = Array(0,15,20,-20,20,5,80,85,10); $pose_find_modifier = Array(0,15,20,-20,20,5,80,85);
//姿态对躲避率的影响 //姿态对躲避率的影响
$pose_hide_modifier = Array(0,-25,-10,-10,10,-25,-80,-40,0); $pose_hide_modifier = Array(0,-25,-10,-10,10,-25,-80,-40);
//姿态对先制率的影响(单位:百分比加算)(计算方式:进攻方姿态先制率-防守方姿态先制率) //姿态对先制率的影响(单位:百分比加算)(计算方式:进攻方姿态先制率-防守方姿态先制率)
$pose_active_modifier = Array(0,0,50,0,25,-5,5,-100,0); $pose_active_modifier = Array(0,0,50,0,25,-5,5,-100);
//姿态对反击率的影响(单位:百分比加算) //姿态对反击率的影响(单位:百分比加算)
$pose_counter_modifier = Array(0,0,0,0,0,-100,0,-100,0); $pose_counter_modifier = Array(0,0,0,0,0,-100,0,-100);
//'通常','','重视防御','重视反击','重视躲避' //'通常','','重视防御','重视反击','重视躲避'
//应战策略对攻击力的影响始终生效(1:只在作出反击时生效) //应战策略对攻击力的影响始终生效(1:只在作出反击时生效)
......
...@@ -76,6 +76,11 @@ $mrage = 500; ...@@ -76,6 +76,11 @@ $mrage = 500;
//携带金钱上限 //携带金钱上限
$moneylimit = 65500; $moneylimit = 65500;
//移动需要消耗的最小SP
$movesp = 15;
//燃烧生命时移动时,生命&体力置换系数
$movehp = 1;
// 恢复量的设定 // 恢复量的设定
//体力恢复时间(秒):*秒1点恢复 //体力恢复时间(秒):*秒1点恢复
$sleep_time = 3; $sleep_time = 3;
......
This diff is collapsed.
...@@ -34,6 +34,13 @@ $action_list = Array ...@@ -34,6 +34,13 @@ $action_list = Array
'pcover', //被敌人的协战者夹击时获得 bid为敌人协战者的id 'pcover', //被敌人的协战者夹击时获得 bid为敌人协战者的id
); );
//视界状态描述
$horizoninfo = Array
(
0 => '标准视界',
1 => '灵子视界',
);
//游戏状态描述 //游戏状态描述
$gstate = Array(0 => '<font color="grey">已结束</font>',10 => '即将开始',20 => '开放激活',30 => '停止激活',40=> '<font color="yellow">连斗中</font>',50=>'<font color="red">死斗中</font>',60=>'<font color="red">紧急状态!</font>'); $gstate = Array(0 => '<font color="grey">已结束</font>',10 => '即将开始',20 => '开放激活',30 => '停止激活',40=> '<font color="yellow">连斗中</font>',50=>'<font color="red">死斗中</font>',60=>'<font color="red">紧急状态!</font>');
$gwin = Array(0 => '程序故障', 1 => '全部死亡',2 => '最后幸存',3 => '锁定解除',4 => '无人参加',5 => '核爆全灭',6 => 'GM中止',7=>'幻境解离'); $gwin = Array(0 => '程序故障', 1 => '全部死亡',2 => '最后幸存',3 => '锁定解除',4 => '无人参加',5 => '核爆全灭',6 => 'GM中止',7=>'幻境解离');
...@@ -96,10 +103,10 @@ $hpinfo = Array('<span class="clan">并无大碍</span>','<span class="yellow"> ...@@ -96,10 +103,10 @@ $hpinfo = Array('<span class="clan">并无大碍</span>','<span class="yellow">
$spinfo = Array('精力充沛','略有疲惫','精疲力尽','已经死亡'); $spinfo = Array('精力充沛','略有疲惫','精疲力尽','已经死亡');
$rageinfo = Array('平静','愤怒','暴怒','已经死亡'); $rageinfo = Array('平静','愤怒','暴怒','已经死亡');
$wepeinfo = Array('不值一提','略有威胁','威力可观','无敌神器'); $wepeinfo = Array('不值一提','略有威胁','威力可观','无敌神器');
$poseinfo = Array('通常','作战姿态','强袭姿态','探物姿态','偷袭姿态','治疗姿态','✧狂飙姿态✧','哨戒姿态','✧灵子姿态✧'); $poseinfo = Array('通常','作战姿态','强袭姿态','探物姿态','偷袭姿态','治疗姿态','✧狂飙姿态✧','哨戒姿态');
$tacinfo = Array('通常','','重视防御','重视反击','重视躲避'); $tacinfo = Array('通常','','重视防御','重视反击','重视躲避');
//可供玩家选择的姿态、策略 //可供玩家选择的姿态、策略
$apose = Array(1,3,4,5,6,8); $apose = Array(1,3,4,5,6);
$atac = Array(2,3,4); $atac = Array(2,3,4);
//不会生成在危险地图的NPC(执行官、女主) //不会生成在危险地图的NPC(执行官、女主)
$hidding_typelist = Array(7,14); $hidding_typelist = Array(7,14);
......
...@@ -72,6 +72,10 @@ $tps_name = Array ...@@ -72,6 +72,10 @@ $tps_name = Array
'随机数之神的神力' => 2,'随机数之神的震撼' => 2,'随机数之神的摄理' => 2,'随机数之神的恶戏' => 2, '随机数之神的神力' => 2,'随机数之神的震撼' => 2,'随机数之神的摄理' => 2,'随机数之神的恶戏' => 2,
# 福袋惩罚物品 # 福袋惩罚物品
'乌黑的脸' => Array('title'=>"贪 心 不 足 蛇 吞 象"), '乌黑的脸' => Array('title'=>"贪 心 不 足 蛇 吞 象"),
);
$tps_name_lore = Array
(
# LORE,看了这些内容,还不考虑拆分这个文件么?总之先搞这么多…… # LORE,看了这些内容,还不考虑拆分这个文件么?总之先搞这么多……
'燃素加农炮『爆炎』MK-II' => Array('title'=>"在接受好友的委托之时,一切看起来都只像一个简单的工作。"), '燃素加农炮『爆炎』MK-II' => Array('title'=>"在接受好友的委托之时,一切看起来都只像一个简单的工作。"),
'奥术盔甲B - 炎' => Array('title'=>"但正如自己的爷爷所说过的那样,看起来简单的东西,往往背后有坑。"), '奥术盔甲B - 炎' => Array('title'=>"但正如自己的爷爷所说过的那样,看起来简单的东西,往往背后有坑。"),
......
...@@ -13,7 +13,7 @@ CREATE TABLE bra_players ( ...@@ -13,7 +13,7 @@ CREATE TABLE bra_players (
gd char(1) NOT NULL default 'm', gd char(1) NOT NULL default 'm',
race char(32) NOT NULL default '0', race char(32) NOT NULL default '0',
sNo smallint unsigned NOT NULL default '0', sNo smallint unsigned NOT NULL default '0',
icon smallint unsigned NOT NULL default '0', icon varchar(255) NOT NULL DEFAULT '0',
club tinyint unsigned NOT NULL default '0', club tinyint unsigned NOT NULL default '0',
endtime int(10) unsigned NOT NULL default '0', endtime int(10) unsigned NOT NULL default '0',
validtime int(10) unsigned NOT NULL default '0', validtime int(10) unsigned NOT NULL default '0',
...@@ -26,6 +26,7 @@ CREATE TABLE bra_players ( ...@@ -26,6 +26,7 @@ CREATE TABLE bra_players (
cdsec int(10) unsigned NOT NULL default '0', cdsec int(10) unsigned NOT NULL default '0',
cdmsec smallint(3) unsigned NOT NULL default '0', cdmsec smallint(3) unsigned NOT NULL default '0',
cdtime int(10) unsigned NOT NULL DEFAULT '0', cdtime int(10) unsigned NOT NULL DEFAULT '0',
horizon tinyint unsigned NOT NULL default '0',
action char(12) NOT NULL default '', action char(12) NOT NULL default '',
bid smallint unsigned NOT NULL default '0', bid smallint unsigned NOT NULL default '0',
hp int(10) unsigned NOT NULL DEFAULT '0', hp int(10) unsigned NOT NULL DEFAULT '0',
......
...@@ -42,18 +42,19 @@ $npcinfo = get_npc_helpinfo($npcinfo); ...@@ -42,18 +42,19 @@ $npcinfo = get_npc_helpinfo($npcinfo);
//print_r($npcinfo[14]['esub']); //print_r($npcinfo[14]['esub']);
$ty1[1]=1; $ty1[2]=88; $ty1[1]=1; $ty1[2]=88;
$ty2[1]=5; $ty2[2]=6; $ty2[1]=Array(5,'asub'); $ty2[2]=Array(6,'asub');
$ty2a[1]=Array(19,'asub'); #真红蓝 $ty2a[1]=Array(19,'asub'); #真红蓝
$ty3[1]=11; $ty3[1]=Array(11,'asub');
$ty4[1]=90; $ty4[2]=92; $ty4[1]=90; $ty4[2]=92;
$ty5[1]=2; //$ty5[1]=2;
$ty5[1] = Array(2,'asub');
$ty6[1]=14; $ty6[2]=4; $ty6[1]=14; $ty6[2]=4;
$ty6e[1]=Array(14,'esub'); #女主第二形态情报 $ty6e[1]=Array(14,'esub'); #女主第二形态情报
$ty7[1]=13; $ty7[1]=Array(13,'asub');
$ty8[1]=15; $ty8[1]=Array(15,'asub');
$ty9[1]=22; $ty9[1]=22;
$ty10[1]=21; $ty10[1]=21;
$ty11[1]=89; $ty11[1]=Array(89,'asub');
$ty11e[1]=Array(89,'esub'); #电掣NPC第二形态情报 $ty11e[1]=Array(89,'esub'); #电掣NPC第二形态情报
$ty12[1]=24; $ty12[1]=24;
$ty25a[1] = Array(25,'asub'); #佣兵NPC $ty25a[1] = Array(25,'asub'); #佣兵NPC
...@@ -61,35 +62,15 @@ $ty25a[1] = Array(25,'asub'); #佣兵NPC ...@@ -61,35 +62,15 @@ $ty25a[1] = Array(25,'asub'); #佣兵NPC
if(filemtime($vnmixfile) > filemtime($writefile) ||filemtime($mixfile) > filemtime($writefile) || filemtime($shopfile) > filemtime($writefile) || filemtime($mapitemfile) > filemtime($writefile) || filemtime($synfile) > filemtime($writefile) || filemtime($ovlfile) > filemtime($writefile) || filemtime($presentfile) > filemtime($writefile) || filemtime($boxfile) > filemtime($writefile)){ if(filemtime($vnmixfile) > filemtime($writefile) ||filemtime($mixfile) > filemtime($writefile) || filemtime($shopfile) > filemtime($writefile) || filemtime($mapitemfile) > filemtime($writefile) || filemtime($synfile) > filemtime($writefile) || filemtime($ovlfile) > filemtime($writefile) || filemtime($presentfile) > filemtime($writefile) || filemtime($boxfile) > filemtime($writefile)){
$mixitem = array(); $mixitem = array();
foreach($mixinfo as $mix){ foreach($mixinfo as $mix){
if($mix['class'] !== 'hidden'){ if($mix['class'] !== 'hidden')
{
//名字 //名字
$mix['result'][0] = parse_info_desc($mix['result'][0],'m'); $mix['result'][0] = parse_nameinfo_desc($mix['result'][0]);
//属性 //属性
$mixitmsk = ''; $mixitmsk = empty($mix['result'][4]) ? '' : parse_skinfo_desc($mix['result'][4],$mix['result'][1]);
if(!empty($mix['result'][4]) && !is_numeric($mix['result'][4])){
/*for ($j = 0; $j < strlen($mix['result'][4]); $j++) {
$sub = substr($mix['result'][4],$j,1);
if(!empty($sub)){
$mixitmsk .= $itemspkinfo[$sub].'+';
}
}
if(!empty($mixitmsk)){$mixitmsk = substr($mixitmsk,0,-1);}*/
/*$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'); $mixitmk = parse_kinfo_desc($mix['result'][1],$mix['result'][4]);
/*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)); $mixitem[$mix['class']][] = array('stuff' => $mix['stuff'], 'result' => array($mix['result'][0],$mixitmk,$mix['result'][2],$mix['result'][3],$mixitmsk));
} }
} }
...@@ -169,27 +150,12 @@ if(filemtime($vnmixfile) > filemtime($writefile) ||filemtime($mixfile) > filemti ...@@ -169,27 +150,12 @@ if(filemtime($vnmixfile) > filemtime($writefile) ||filemtime($mixfile) > filemti
if($mix['class'] !== 'hidden') if($mix['class'] !== 'hidden')
{ {
//名字 //名字
//$mix['result'][0] = parse_itm_desc($mix['result'][0],'m'); $mix['result'][0] = parse_nameinfo_desc($mix['result'][0]);
$mix['result'][0] = parse_info_desc($mix['result'][0],'m');
//属性 //属性
$mixitmsk = ''; $mixitmsk = empty($mix['result'][4]) ? '' : parse_skinfo_desc($mix['result'][4],$mix['result'][1]);
if(!empty($mix['result'][4]) && !is_numeric($mix['result'][4])){
/*$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'); $mixitmk = parse_kinfo_desc($mix['result'][1],$mix['result'][4]);
/*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)); $vmixitem[$mix['class']][] = array('name' => $mix['name'], 'stuff' => $mix['stuff'], 'result' => array($mix['result'][0],$mixitmk,$mix['result'][2],$mix['result'][3],$mixitmsk));
} }
} }
......
...@@ -33,8 +33,7 @@ if(file_exists($cache_file)) ...@@ -33,8 +33,7 @@ if(file_exists($cache_file))
$sk_arr = Array(); $sk_arr = Array();
if(!empty($vn_info[4])) if(!empty($vn_info[4]))
{ {
$temp_mixinfo[$vn_key][$vn_type][4] = ''; $temp_mixinfo[$vn_key][$vn_type][4] = parse_skinfo_desc($vn_info[4],$vn_info[1]);
$temp_mixinfo[$vn_key][$vn_type][4] = parse_info_desc($vn_info[4],'sk',$vn_info[1]);
} }
} }
} }
......
This diff is collapsed.
...@@ -175,7 +175,11 @@ function aievent($rate){ ...@@ -175,7 +175,11 @@ function aievent($rate){
$itmchat[] = Array('type' => '2', 'time' => $now, 'send' => '【SANMA_TK】', 'msg' => $cht); $itmchat[] = Array('type' => '2', 'time' => $now, 'send' => '【SANMA_TK】', 'msg' => $cht);
} }
if(!empty($itmchat)){ if(!empty($itmchat)){
$db->multi_insert("{$tablepre}chat",$itmchat); foreach($itmchat as $ickey => $icvalues)
{
$db->query("INSERT INTO {$tablepre}chat (type,`time`,send,recv,msg) VALUES ('{$icvalues['type']}','{$icvalues['time']}','{$icvalues['send']}','','{$icvalues['msg']}')");
}
//$db->multi_insert("{$tablepre}chat",$itmchat);
} }
} }
......
This diff is collapsed.
...@@ -96,10 +96,10 @@ ...@@ -96,10 +96,10 @@
foreach($list['stuff'] as $skey => $slist) foreach($list['stuff'] as $skey => $slist)
{ {
if($skey != 0) $smhint .= ' + '; if($skey != 0) $smhint .= ' + ';
$smhint .= "<span class='grey'>[主]</span>".parse_info_desc($slist,'k').""; $smhint .= "<span class='grey'>[主]</span>".parse_kinfo_desc($slist)."";
} }
$smobbs = !empty($list['obbs']) ? '('.$list['obbs'].'%)' : ''; $smobbs = !empty($list['obbs']) ? '('.$list['obbs'].'%)' : '';
$smhint .= " → <span class='grey'>{$smobbs}</span>".parse_info_desc($list['result'],'k').""; $smhint .= " → <span class='grey'>{$smobbs}</span>".parse_kinfo_desc($list['result'])."";
$smhint .= '</span></li>'; $smhint .= '</span></li>';
} }
} }
...@@ -117,10 +117,10 @@ ...@@ -117,10 +117,10 @@
foreach($list['stuff'] as $skey => $slist) foreach($list['stuff'] as $skey => $slist)
{ {
if($skey != 0) $smhint .= ' + '; if($skey != 0) $smhint .= ' + ';
$smhint .= "<span class='grey'>[次]</span>".parse_info_desc($slist,'sk').""; $smhint .= "<span class='grey'>[次]</span>".parse_skinfo_desc($slist)."";
} }
$smobbs = !empty($list['obbs']) ? '('.$list['obbs'].'%)' : ''; $smobbs = !empty($list['obbs']) ? '('.$list['obbs'].'%)' : '';
$smhint .= " → <span class='grey'>{$smobbs}</span>".parse_info_desc($list['result'],'sk').""; $smhint .= " → <span class='grey'>{$smobbs}</span>".parse_skinfo_desc($list['result'])."";
$smhint .= '</span></li>'; $smhint .= '</span></li>';
} }
} }
......
...@@ -1591,7 +1591,7 @@ function itemuse($itmn,&$data=NULL) { ...@@ -1591,7 +1591,7 @@ function itemuse($itmn,&$data=NULL) {
wthchange( $itm,$itmsk); wthchange( $itm,$itmsk);
addnews ($now,'thiphase',$name,$nick); addnews ($now,'thiphase',$name,$nick);
$hack = 1; $hack = 1;
$gamevars['apis'] = $gamevars['api'] = 5; $gamevars['apis'] = $gamevars['api'] = 3;
$log .= '因为破灭之歌的作用,全部锁定被打破了!<br>'; $log .= '因为破灭之歌的作用,全部锁定被打破了!<br>';
movehtm(); movehtm();
addnews($now,'hack2',$name,$nick); addnews($now,'hack2',$name,$nick);
...@@ -1614,6 +1614,10 @@ function itemuse($itmn,&$data=NULL) { ...@@ -1614,6 +1614,10 @@ function itemuse($itmn,&$data=NULL) {
addnpc ( 2, 1, 4); addnpc ( 2, 1, 4);
addnpc ( 2, 2, 4); addnpc ( 2, 2, 4);
addnpc ( 2, 3, 4); addnpc ( 2, 3, 4);
addnpc ( 2, 4, 4);
addnpc ( 2, 5, 4);
addnpc ( 2, 6, 4);
addnpc ( 2, 7, 4);
addnews ($now , 'key0', $name,$nick); addnews ($now , 'key0', $name,$nick);
$itms --; $itms --;
if($itms <= 0) destory_single_item($data,$itmn,1); if($itms <= 0) destory_single_item($data,$itmn,1);
......
...@@ -178,6 +178,7 @@ function hack($itmn = 0) { ...@@ -178,6 +178,7 @@ function hack($itmn = 0) {
function newradar($m = 0){ function newradar($m = 0){
global $mode,$log,$cmd,$main,$pls,$db,$tablepre,$plsinfo,$arealist,$areanum,$hack,$gamestate; global $mode,$log,$cmd,$main,$pls,$db,$tablepre,$plsinfo,$arealist,$areanum,$hack,$gamestate;
global $pnum,$npc2num,$npc3num,$npc4num,$npc5num,$npc6num,$radarscreen,$typeinfo,$weather; global $pnum,$npc2num,$npc3num,$npc4num,$npc5num,$npc6num,$radarscreen,$typeinfo,$weather;
global $horizon;
if((CURSCRIPT !== 'botservice') && (!$mode)) { if((CURSCRIPT !== 'botservice') && (!$mode)) {
$log .= '仪器使用失败!<br>'; $log .= '仪器使用失败!<br>';
...@@ -191,7 +192,15 @@ function newradar($m = 0){ ...@@ -191,7 +192,15 @@ function newradar($m = 0){
return; return;
} }
} }
$npctplist = Array(90,92,2,5,6,7,11,14,89);
if($horizon == 1)
{
$npctplist = Array(92,89);
}
else
{
$npctplist = Array(90,2,5,6,11,14);
}
$tdheight = 20; $tdheight = 20;
$screenheight = count($plsinfo)*$tdheight; $screenheight = count($plsinfo)*$tdheight;
if (CURSCRIPT == 'botservice') if (CURSCRIPT == 'botservice')
......
...@@ -131,7 +131,7 @@ function check_trap_def_event(&$pa,$damage,$playerflag=0,$selflag=0) ...@@ -131,7 +131,7 @@ function check_trap_def_event(&$pa,$damage,$playerflag=0,$selflag=0)
} }
# 「天佑」技能判定 # 「天佑」技能判定
if($damage && !check_skill_unlock('buff_godbless',$data)) if($damage && !check_skill_unlock('buff_godbless',$pa))
{ {
$damage = 0; $damage = 0;
$log .= "<span class=\"yellow\">「天佑」使你免疫了陷阱伤害!</span><br>"; $log .= "<span class=\"yellow\">「天佑」使你免疫了陷阱伤害!</span><br>";
...@@ -225,7 +225,7 @@ function trap(&$data=NULL){ ...@@ -225,7 +225,7 @@ function trap(&$data=NULL){
addnews($now,'trap',$name,$trname,$itm0,$nick); addnews($now,'trap',$name,$trname,$itm0,$nick);
} }
$log .= "糟糕,你触发了{$trperfix}陷阱<span class=\"yellow\">$itm0</span>!<br>"; $log .= "糟糕,你触发了{$trperfix}陷阱<span class=\"yellow\">$itm0</span>!<br>";
if($data['skilllog']) $log.= $data['skilllog']; if(!empty($data['skilllog'])) $log.= $data['skilllog'];
$log .= "受到<span class=\"dmg\">$damage</span>点伤害!<br>"; $log .= "受到<span class=\"dmg\">$damage</span>点伤害!<br>";
# 踩雷rp结算 # 踩雷rp结算
......
...@@ -199,15 +199,15 @@ function parse_smartmix_recipelink($itemindex, $stext = '', $sstyle = ''){ ...@@ -199,15 +199,15 @@ function parse_smartmix_recipelink($itemindex, $stext = '', $sstyle = ''){
return "<span tooltip2=\"{$tt}\"><a ".($sstyle ? "class=\"{$sstyle}\" " : '')."onclick=\"$('itemindex').value='$itemindex';postCmd('maincmd','command.php');\">".($stext ? $stext : $itemindex).'</a></span>'; return "<span tooltip2=\"{$tt}\"><a ".($sstyle ? "class=\"{$sstyle}\" " : '')."onclick=\"$('itemindex').value='$itemindex';postCmd('maincmd','command.php');\">".($stext ? $stext : $itemindex).'</a></span>';
} }
function parse_itemmix_resultshow($rarr){ function parse_itemmix_resultshow($rarr){
$ret = $rarr[0].'/'.parse_info_desc($rarr[1],'k','',0,'none').'/'.$rarr[2].'/'.$rarr[3]; $ret = $rarr[0].'/'.parse_kinfo_desc($rarr[1],'','','none').'/'.$rarr[2].'/'.$rarr[3];
$itmskw = !empty($rarr[4]) ? parse_info_desc($rarr[4],'sk',$rarr[1],0,'none') : ''; $itmskw = !empty($rarr[4]) ? parse_skinfo_desc($rarr[4],$rarr[1],'','none') : '';
if($itmskw) $ret .= '/'.$itmskw; if($itmskw) $ret .= '/'.$itmskw;
return $ret; return $ret;
} }
function get_npc_helpinfo($nlist,$tooltip=1) function get_npc_helpinfo($nlist,$tooltip=1)
{ {
global $plsinfo,$hplsinfo,$gamecfg,$iteminfo,$clubinfo; global $npcinit,$plsinfo,$hplsinfo,$gamecfg,$iteminfo,$clubinfo;
global $posetips,$tactips,$poseinfo,$tacinfo; global $posetips,$tactips,$poseinfo,$tacinfo;
//登记非功能性地点信息时合并隐藏地点 //登记非功能性地点信息时合并隐藏地点
foreach($hplsinfo as $hgroup=>$hpls) $plsinfo += $hpls; foreach($hplsinfo as $hgroup=>$hpls) $plsinfo += $hpls;
...@@ -224,12 +224,13 @@ function get_npc_helpinfo($nlist,$tooltip=1) ...@@ -224,12 +224,13 @@ function get_npc_helpinfo($nlist,$tooltip=1)
foreach($npcs[$tsub] as $n => $npc) foreach($npcs[$tsub] as $n => $npc)
{ {
$snpc = array_merge($npcs,$npc); $snpc = array_merge($npcs,$npc);
$snpc = array_merge($npcinit,$snpc);
unset($snpc['sub']);unset($snpc['asub']);unset($snpc['esub']); unset($snpc['sub']);unset($snpc['asub']);unset($snpc['esub']);
foreach(Array('p','k','g','c','d','f') as $val) foreach(Array('p','k','g','c','d','f') as $val)
{ {
if(isset($snpc['w'.$val])) if(!empty($snpc['w'.$val]))
{ {
if(isset($snpc['skill'])) if(!empty($snpc['skill']))
{ {
$snpc['skill'] .= '(?)'; $snpc['skill'] .= '(?)';
} }
...@@ -250,15 +251,26 @@ function get_npc_helpinfo($nlist,$tooltip=1) ...@@ -250,15 +251,26 @@ function get_npc_helpinfo($nlist,$tooltip=1)
} }
if(isset($snpc['pls'])) if(isset($snpc['pls']))
{ {
if($tsub == 'esub') if(is_array($snpc['pls']))
{ {
$snpc['pls'] = '原地'; $splss = '';
foreach($snpc['pls'] as $spls)
{
$splss .= empty($splss) ? $plsinfo[$spls] : '|'.$plsinfo[$spls];
}
$snpc['pls'] = $splss;
} }
else else
{ {
$snpc['pls'] = $snpc['pls']==99 ? '随机' : $plsinfo[$snpc['pls']]; if($tsub == 'esub')
} {
$snpc['pls'] = '原地';
}
else
{
$snpc['pls'] = $snpc['pls']==99 ? '随机' : $plsinfo[$snpc['pls']];
}
}
} }
if(isset($snpc['pose']))$snpc['poseinfo'] = "<span tooltip=\"{$posetips[$snpc['pose']]}\">".$poseinfo[$snpc['pose']]."</span>"; if(isset($snpc['pose']))$snpc['poseinfo'] = "<span tooltip=\"{$posetips[$snpc['pose']]}\">".$poseinfo[$snpc['pose']]."</span>";
if(isset($snpc['tactic']))$snpc['tacinfo'] = "<span tooltip=\"{$tactips[$snpc['tactic']]}\">".$tacinfo[$snpc['tactic']]."</span>"; if(isset($snpc['tactic']))$snpc['tacinfo'] = "<span tooltip=\"{$tactips[$snpc['tactic']]}\">".$tacinfo[$snpc['tactic']]."</span>";
...@@ -285,9 +297,9 @@ function get_npc_helpinfo($nlist,$tooltip=1) ...@@ -285,9 +297,9 @@ function get_npc_helpinfo($nlist,$tooltip=1)
//添加tooltip效果 //添加tooltip效果
if($tooltip) if($tooltip)
{ {
if(!empty($snpc[$value])) $snpc[$value] = parse_info_desc($snpc[$value],'m'); if(!empty($snpc[$value])) $snpc[$value] = parse_nameinfo_desc($snpc[$value]);
if(!empty($snpc[$sk_value])) $snpc[$sk_value.'_words'] = parse_info_desc($snpc[$sk_value],'sk',$snpc[$k_value]); if(!empty($snpc[$sk_value])) $snpc[$sk_value.'_words'] = parse_skinfo_desc($snpc[$sk_value],$snpc[$k_value]);
if(!empty($snpc[$k_value])) $snpc[$k_value] = parse_info_desc($snpc[$k_value],'k'); if(!empty($snpc[$k_value])) $snpc[$k_value] = parse_kinfo_desc($snpc[$k_value]);
} }
} }
} }
......
...@@ -64,6 +64,10 @@ namespace revbattle ...@@ -64,6 +64,10 @@ namespace revbattle
global $log,$now,$weather,$gamevars,$gamecfg; global $log,$now,$weather,$gamevars,$gamecfg;
global $weather_active_r,$pose_active_modifier,$pose_active_modifier,$active_obbs,$chase_active_obbs; global $weather_active_r,$pose_active_modifier,$pose_active_modifier,$active_obbs,$chase_active_obbs;
# 敌人处于哨戒姿态下时,不会先攻
if($pd['pose'] == 7) return 100;
if($pa['pose'] == 7) return 0;
# 获取基础先攻率: # 获取基础先攻率:
if(!$mode) if(!$mode)
{ {
......
...@@ -429,9 +429,11 @@ namespace revcombat ...@@ -429,9 +429,11 @@ namespace revcombat
return 0; return 0;
} }
# 哨戒姿态不会反击,但是会生气…… # 哨戒姿态不会反击,但是会生气……
# 生气后会变更为强袭姿态
if($pd['pose'] == 7) if($pd['pose'] == 7)
{ {
$pd['cannot_counter_log'] = "{$pd['nm']}看起来非常生气!还是离他远点吧……"; $pd['pose'] = 2;
$pd['cannot_counter_log'] = "{$pd['nm']}看起来非常生气!这回你可摊上事啦!";
return 0; return 0;
} }
......
...@@ -50,7 +50,7 @@ function check_can_move($pls,$pgroup,$moveto) ...@@ -50,7 +50,7 @@ function check_can_move($pls,$pgroup,$moveto)
function move($moveto = 99,&$data=NULL) function move($moveto = 99,&$data=NULL)
{ {
global $log,$weather,$plsinfo,$hplsinfo,$arealist,$areanum,$hack,$areainfo,$gamestate,$gamecfg; global $log,$weather,$plsinfo,$hplsinfo,$arealist,$areanum,$hack,$areainfo,$gamestate,$gamecfg;
global $inf_move_sp,$infwords,$inf_move_hp; global $actlog;
if(!isset($data)) if(!isset($data))
{ {
...@@ -93,28 +93,9 @@ function move($moveto = 99,&$data=NULL) ...@@ -93,28 +93,9 @@ function move($moveto = 99,&$data=NULL)
$hpls_flag = false; $hpls_flag = false;
} }
//足部受伤,20;足球社,12;冻伤,30;正常,15;去gamecfg里改吧 # 计算并扣除移动所需SP/HP
$movesp = 15; $flag = calc_move_search_sp_cost($data,'move');
if ($inf) { if(!$flag) return;
foreach ($inf_move_sp as $inf_ky => $sp_down) {
if(strpos($inf,$inf_ky)!==false){$movesp+=$sp_down;}
}
}
if($club == 6){
if($lvl>=20){
$movesp -= 14;
}else{
$movesp -= 10+floor($lvl/5);
}
}
if($sp <= $movesp){
$log .= "体力不足,不能移动!<br>还是先睡会儿吧!<br>";
return;
}
$sp -= $movesp;
# 预移动、探索阶段事件结算 # 预移动、探索阶段事件结算
$moved = pre_move_search_events($data,'move'); $moved = pre_move_search_events($data,'move');
...@@ -125,7 +106,7 @@ function move($moveto = 99,&$data=NULL) ...@@ -125,7 +106,7 @@ function move($moveto = 99,&$data=NULL)
if(!$hpls_flag) $pgroup = 0; if(!$hpls_flag) $pgroup = 0;
$pls = $moveto; $pls = $moveto;
$moveto_info = $hpls_flag ? $hplsinfo[$pgroup][$pls] : $plsinfo[$pls]; $moveto_info = $hpls_flag ? $hplsinfo[$pgroup][$pls] : $plsinfo[$pls];
$log .= "消耗<span class=\"yellow\">{$movesp}</span>点体力,移动到了<span class=\"yellow\">{$moveto_info}</span>。<br>"; $log .= "{$actlog},移动到了<span class=\"yellow\">{$moveto_info}</span>。<br>";
} }
$log .= $areainfo[$pls].'<br>'; $log .= $areainfo[$pls].'<br>';
...@@ -142,7 +123,7 @@ function move($moveto = 99,&$data=NULL) ...@@ -142,7 +123,7 @@ function move($moveto = 99,&$data=NULL)
function search(&$data=NULL) function search(&$data=NULL)
{ {
global $log,$weather,$arealist,$areanum,$hack,$plsinfo,$hplsinfo,$gamestate; global $log,$weather,$arealist,$areanum,$hack,$plsinfo,$hplsinfo,$gamestate;
global $inf_search_sp,$infwords,$inf_search_hp; global $actlog;
if(!isset($data)) if(!isset($data))
{ {
...@@ -165,32 +146,15 @@ function search(&$data=NULL) ...@@ -165,32 +146,15 @@ function search(&$data=NULL)
$hpls_flag = false; $hpls_flag = false;
} }
//腕部受伤,20;冻伤:30;侦探社,12;正常,15;改到gamecfg # 计算并扣除移动所需SP/HP
$schsp =15; $flag = calc_move_search_sp_cost($data,'search');
if ($inf) { if(!$flag) return;
foreach ($inf_search_sp as $inf_ky => $sp_down) {
if(strpos($inf,$inf_ky)!==false){$schsp+=$sp_down;}
}
}
if($club == 6){
if($lvl>=20){
$schsp -= 14;
}else{
$schsp -= 10+floor($lvl/5);
}
}
if($sp <= $schsp){
$log .= "体力不足,不能探索!<br>还是先睡会儿吧!<br>";
return;
}
# 预移动、探索阶段事件结算 # 预移动、探索阶段事件结算
$moved = pre_move_search_events($data,'search'); $moved = pre_move_search_events($data,'search');
if($hp <= 0) return; if($hp <= 0) return;
$sp -= $schsp; $log .= "{$actlog},你搜索着周围的一切。。。<br>";
$log .= "消耗<span class=\"yellow\">{$schsp}</span>点体力,你搜索着周围的一切。。。<br>";
# 探索指定地点,结算探索事件 # 探索指定地点,结算探索事件
move_search_events($data,'search'); move_search_events($data,'search');
...@@ -202,6 +166,57 @@ function search(&$data=NULL) ...@@ -202,6 +166,57 @@ function search(&$data=NULL)
} }
# 计算移动 & 探索消耗的SP & HP
function calc_move_search_sp_cost(&$data,$act)
{
global $log,$movesp,$movehp,$inf_move_sp,$actlog;
extract($data,EXTR_REFS);
$flag = 0;
# 移动&探索的消耗基数
$costsp = $movesp;
# 代偿移动&探索的消耗系数
$costspr = $movehp;
# 移动&探索要消耗的属性类型
$actpoint = $horizon == 1 ? 'hp' : 'sp';
# 代偿移动&探索要消耗的属性类型
$subpoint = $horizon == 1 ? 'sp' : 'hp';
# 受伤时消耗增加
if($inf)
{
foreach($inf_move_sp as $inf_ky => $sp_down)
{
if(strpos($inf,$inf_ky)!==false)
{
$costsp+=$sp_down;
}
}
}
# 宛如疾风消耗减少
if($club == 6) $costsp -= $lvl>=20 ? 14 : 10+floor($lvl/5);
if($$actpoint > $costsp)
{
$$actpoint -= $costsp;
$flag = $actpoint;
}
elseif($$subpoint > round($costsp * $costspr))
{
$$subpoint -= $costsp;
$flag = $subpoint;
}
else
{
$log .= "再动下去要出人命了!<br>还是先睡会儿吧!<br>";
return $flag;
}
$actlog = $flag == 'hp' ? "燃烧了<span class=\"red\">{$costsp}</span>点生命" : "消耗了<span class=\"yellow\">{$costsp}</span>点体力";
return $flag;
}
# 预探索、移动阶段事件 # 预探索、移动阶段事件
function pre_move_search_events(&$data,$act) function pre_move_search_events(&$data,$act)
{ {
...@@ -523,20 +538,6 @@ function discover($schmode = 0,&$data=NULL) ...@@ -523,20 +538,6 @@ function discover($schmode = 0,&$data=NULL)
} }
extract($data,EXTR_REFS); extract($data,EXTR_REFS);
$event_dice = rand(0,99);
if($data['pass'] == 'bot') $event_obbs = -1;
if(($event_dice < $event_obbs)||(($art!="Untainted Glory")&&($pls==34)&&($gamestate != 50))){
//echo "进入事件判定<br>";
include_once GAME_ROOT.'./include/game/event.func.php';
$event_flag = event();
//触发了事件,中止探索推进
if($event_flag)
{
$mode = 'command';
return;
}
}
# 判定移动、探索、事件后的BGM变化 # 判定移动、探索、事件后的BGM变化
if(array_key_exists($pls,$pls_bgm)) if(array_key_exists($pls,$pls_bgm))
{ {
...@@ -557,6 +558,20 @@ function discover($schmode = 0,&$data=NULL) ...@@ -557,6 +558,20 @@ function discover($schmode = 0,&$data=NULL)
$edata = $aidata; $edata = $aidata;
goto battle_flag; goto battle_flag;
} }
$event_dice = rand(0,99);
if($data['pass'] == 'bot') $event_obbs = -1;
if(($event_dice < $event_obbs)||(($art!="Untainted Glory")&&($pls==34)&&($gamestate != 50))){
//echo "进入事件判定<br>";
include_once GAME_ROOT.'./include/game/event.func.php';
$event_flag = event();
//触发了事件,中止探索推进
if($event_flag)
{
$mode = 'command';
return;
}
}
$trap_dice=diceroll(99); $trap_dice=diceroll(99);
// 计算陷阱“发现率” // 计算陷阱“发现率”
...@@ -622,7 +637,10 @@ function discover($schmode = 0,&$data=NULL) ...@@ -622,7 +637,10 @@ function discover($schmode = 0,&$data=NULL)
$eid = $edata['pid']; $eid = $edata['pid'];
# 使用fetch_playerdata_by_pid重新获取敌人数据,以应用各种在载入玩家数据时进行的判定 # 使用fetch_playerdata_by_pid重新获取敌人数据,以应用各种在载入玩家数据时进行的判定
$edata = fetch_playerdata_by_pid($eid); $edata = fetch_playerdata_by_pid($eid);
if(!$edata['type'] || $gamestate < 50)
# 不管是活人还是死人,都只会在处于相同视界的情况下遭遇
# 死斗模式无视视界限制
if($horizon == $edata['horizon'] || (!$edata['type'] && $gamestate == 50))
{ {
if($edata['hp'] <= 0) if($edata['hp'] <= 0)
{ {
...@@ -657,8 +675,7 @@ function discover($schmode = 0,&$data=NULL) ...@@ -657,8 +675,7 @@ function discover($schmode = 0,&$data=NULL)
if (($artk!='XX')&&($edata['artk']=='XX')&&($gamestate<50)) continue; if (($artk!='XX')&&($edata['artk']=='XX')&&($gamestate<50)) continue;
# 暂时直接略过盟友单位 # 暂时直接略过盟友单位
if(!empty($edata['clbpara']['mate']) && in_array($pid,$edata['clbpara']['mate'])) continue; if(!empty($edata['clbpara']['mate']) && in_array($pid,$edata['clbpara']['mate'])) continue;
# 灵子状态只能遭遇同为灵子状态的对象,非灵子状态对象无法发现灵子状态下的对象……但是尸体就没有这种考量了
if(($edata['pose'] == 8 || $data['pose'] == 8) && $data['pose'] != $edata['pose']) continue;
# 「量心」技能效果判定(不会遭遇HP为1的敌人): # 「量心」技能效果判定(不会遭遇HP为1的敌人):
if(!check_skill_unlock('c19_dispel',$data) && !empty(get_skillpara('c19_dispel','active',$clbpara)) && $edata['hp'] == 1) continue; if(!check_skill_unlock('c19_dispel',$data) && !empty(get_skillpara('c19_dispel','active',$clbpara)) && $edata['hp'] == 1) continue;
...@@ -696,7 +713,7 @@ function discover($schmode = 0,&$data=NULL) ...@@ -696,7 +713,7 @@ function discover($schmode = 0,&$data=NULL)
else else
{ {
battle_flag: battle_flag:
//计算先攻概率 //计算玩家对敌人的先攻概率
$active_r = \revbattle\calc_active_rate($data,$edata); $active_r = \revbattle\calc_active_rate($data,$edata);
$bid = $edata['pid']; $bid = $edata['pid'];
$active_dice = diceroll(99); $active_dice = diceroll(99);
...@@ -745,7 +762,7 @@ function discover($schmode = 0,&$data=NULL) ...@@ -745,7 +762,7 @@ function discover($schmode = 0,&$data=NULL)
} }
else else
{ {
if($data['pose'] == 8) $log .= '<span class="yellow">周围没有同处于灵子状态的对象。</span><br>'; if($horizon == 1) $log .= '<span class="yellow">周围没有同处于灵子视界中的对象。</span><br>';
else $log .= '<span class="yellow">周围一个人都没有。</span><br>'; else $log .= '<span class="yellow">周围一个人都没有。</span><br>';
} }
$mode = 'command'; $mode = 'command';
......
...@@ -479,7 +479,7 @@ function press_bomb(){ ...@@ -479,7 +479,7 @@ function press_bomb(){
} }
function shoplist($sn,$getlist=NULL) { function shoplist($sn,$getlist=NULL) {
global $gamecfg,$mode,$itemdata,$areanum,$areaadd,$iteminfo,$itemspkinfo,$club; global $gamecfg,$mode,$itemdata,$areanum,$areaadd,$iteminfo,$itemspkinfo,$club,$horizon;
global $db,$tablepre; global $db,$tablepre;
$arean = floor($areanum / $areaadd); $arean = floor($areanum / $areaadd);
$result=$db->query("SELECT * FROM {$tablepre}shopitem WHERE kind = '$sn' AND area <= '$arean' AND num > '0' AND price > '0' ORDER BY sid"); $result=$db->query("SELECT * FROM {$tablepre}shopitem WHERE kind = '$sn' AND area <= '$arean' AND num > '0' AND price > '0' ORDER BY sid");
...@@ -493,25 +493,22 @@ function shoplist($sn,$getlist=NULL) { ...@@ -493,25 +493,22 @@ function shoplist($sn,$getlist=NULL) {
$itemdata[$i]['price']= $club == 11 ? round($itemlist['price']*0.75) : $itemlist['price']; $itemdata[$i]['price']= $club == 11 ? round($itemlist['price']*0.75) : $itemlist['price'];
$itemdata[$i]['area']=$itemlist['area']; $itemdata[$i]['area']=$itemlist['area'];
$itemdata[$i]['item']=$itemlist['item']; $itemdata[$i]['item']=$itemlist['item'];
$itemdata[$i]['item_words']= parse_info_desc($itemdata[$i]['item'],'m'); $itemdata[$i]['item_words']= parse_nameinfo_desc($itemdata[$i]['item'],$horizon);
$itemdata[$i]['itme']=$itemlist['itme']; $itemdata[$i]['itme']=$itemlist['itme'];
$itemdata[$i]['itms']=$itemlist['itms']; $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(strpos($itemlist['itmk'],$info_key)===0){
if(isset($getlist)) $itemdata[$i]['itmk'] = $info_value; if(isset($getlist)) $itemdata[$i]['itmk'] = $info_value;
//$itemdata[$i]['itmk_words'] = parse_itm_desc($info_key,'k');
break; break;
} }
} }
$itemdata[$i]['itmk_words'] = parse_info_desc($itemlist['itmk'],'k'); $itemdata[$i]['itmk_words'] = parse_kinfo_desc($itemlist['itmk'],$itemlist['itmsk']);
$itemdata[$i]['itmsk_words'] = ''; $itemdata[$i]['itmsk_words'] = '';
if($itemlist['itmsk'] && ! is_numeric($itemlist['itmsk'])){ if($itemlist['itmsk'] && ! is_numeric($itemlist['itmsk'])){
if(!isset($getlist)) if(!isset($getlist))
{ {
$itemdata[$i]['itmsk_words'] = parse_info_desc($itemlist['itmsk'],'sk',$itemlist['itmk']); $itemdata[$i]['itmsk_words'] = parse_skinfo_desc($itemlist['itmsk'],$itemlist['itmk']);
//$tmp_sk = get_itmsk_array($itemlist['itmsk']);
//foreach($tmp_sk as $sk) $itemdata[$i]['itmsk_words'].= parse_itm_desc($sk,'sk');
} }
else else
{ {
......
...@@ -524,6 +524,182 @@ function player_format_with_db_structure($data){ ...@@ -524,6 +524,182 @@ function player_format_with_db_structure($data){
reload_equip_items($ndata); reload_equip_items($ndata);
return $ndata; return $ndata;
} }
# 处理道具名的显示信息
function parse_nameinfo_desc($info,$subinfo='',$short='',$tiptype='')
{
global $tps_name,$tps_names,$tps_name_lore,$noitm;
global $horizon;
if(empty($info)) return $noitm;
$ttypes = $tiptype ? $tiptype : 'tooltip';
$info_f = $info_tp = '';
# 首先检查带前缀的道具名是否有特殊介绍
# 如果没有,过滤掉前缀
if(!isset($tps_name[$info]) && !isset($tps_names[$info]))
{
$tinfo = preg_replace('/锋利的|电气|毒性|\[\+.*\]|-改/', '', $info);
}
else
{
$tinfo = $info;
}
if(isset($tps_name[$tinfo]) && !is_array($tps_name[$tinfo]) && isset($tps_names[$tps_name[$tinfo]]))
{
$ts = $tps_names[$tps_name[$tinfo]];
$info_f = isset($ts['class']) ? $ts['class'] : '';
$info_tp = isset($ts['title']) ? $ts['title'] : '';
}
elseif(isset($tps_name[$tinfo]))
{
$info_f = isset($tps_name[$tinfo]['class']) ? $tps_name[$tinfo]['class'] : '';
$info_tp = isset($tps_name[$tinfo]['title']) ? $tps_name[$tinfo]['title'] : '';
}
# 灵子视界内,可以看到特殊信息
if($subinfo == 1 && isset($tps_name_lore[$tinfo]))
{
if(!empty($info_tp)) $info_tp .= "\r";
$info_tp .= $tps_name_lore[$tinfo]['title'];
}
if(!empty($info_f)) $info_f = "class=\"{$info_f}\"";
if(!empty($info_tp)) $info_tp = "{$ttypes}=\"{$info_tp}\"";
$info = "<span {$info_f} {$info_tp}>{$info}</span>";
return $info;
}
# 处理道具类别的显示信息
function parse_kinfo_desc($info,$subinfo='',$short='',$tiptype='')
{
global $iteminfo,$tps_ik,$noitm;
if(empty($info)) return $noitm;
$ttypes = $tiptype ? $tiptype : 'tooltip';
# 获取该道具的通用类别,保存在$v_info内
# 如果该道具类别没有特殊介绍,则直接使用通用类别
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']) ? $tps_ik[$info]['class'] : '';
$info_tp = isset($tps_ik[$info]['title']) ? $tps_ik[$info]['title'] : '';
# 传入了属性作为辅助参数时
if($info == 'WJ')
{
$info_tp.= "需装填「重型弹药」";
}
elseif(!empty($subinfo))
{
if(!empty($info_tp)) $info_tp .= "\r";
if(!is_array($subinfo)) $subinfo = get_itmsk_array($subinfo);
if($info == 'WG' || $info == 'WGK' || $info == 'WDG')
{
if(in_array('e',$subinfo) || in_array('w',$subinfo)) $info_tp.= "需装填「能源弹药」";
elseif(in_array('u',$subinfo) || in_array('i',$subinfo)) $info_tp.= "需装填「气体弹药」";
elseif(in_array('r',$subinfo)) $info_tp.= "需装填「机枪子弹」";
}
}
else
{
if($info == 'WG' || $info == 'WGK' || $info == 'WDG') $info_tp.= "需装填「手枪弹药」";
}
if(!empty($info_f)) $info_f = "class=\"{$info_f}\"";
if(!empty($info_tp)) $info_tp = "{$ttypes}=\"{$info_tp}\"";
# 道具类别里没有$info的介绍,使用通用类别$v_info
if(!isset($iteminfo[$info])) $info = $v_info;
return "<span {$info_tp} {$info_f}>{$iteminfo[$info]}</span>";
}
# 处理道具属性的显示信息
function parse_skinfo_desc($info,$subinfo='',$short='',$tiptype='')
{
global $itemspkinfo,$cskills,$tps_isk,$nospk;
# 属性为空时 返回 “--”
$ret = $nospk;
if(empty($info)) return $ret;
$ttypes = $tiptype ? $tiptype : 'tooltip';
# 处理该数量以上的属性时,将属性格式变为+...+的缩写
$short_nums = 4;
# 技能书特殊处理
if($subinfo == 'VS')
{
if(!empty($info) && isset($cskills[$info]))
{
$sk = $cskills[$info]; $sknm = $cskills[$info]['name'];
$ret = "<span {$ttypes}=\"使用后可习得技能「{$sknm}\">知识</span>";
}
return $ret;
}
# 正常处理属性
else
{
# 数组化
if(!is_array($info)) $info = get_itmsk_array($info);
# 计数
$sk_max = count($info); $sk_nums = 0;
$sk_info = ''; $sk_tp = '';
# 属性中是否有奇迹属性?
if(in_array('x',$info)) $xflag = 1;
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)
{
# 奇迹属性隐藏tips
if(!empty($xflag) && isset($tps_isk[$sk]['x-title'])) $sk_tp .= $tps_isk[$sk]['x-title'];
# 标准tips
else $sk_tp .= "【{$itemspkinfo[$sk]}】: ".$tps_isk[$sk]['title'];
# 换行
if($sk_nums<$sk_max-1) $sk_tp .= "\r";
}
else
{
$sk_tp = !empty($xflag) && isset($tps_isk[$sk]['x-title']) ? $tps_isk[$sk]['x-title'] : $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 {$ttypes}=\"{$sk_tp}\">{$ret}</span>";
}
}
return $ret;
}
/*
function parse_info_desc($info,$type,$vars='',$short=0,$tiptype=0) function parse_info_desc($info,$type,$vars='',$short=0,$tiptype=0)
{ {
global $iteminfo,$itemspkinfo,$cskills; global $iteminfo,$itemspkinfo,$cskills;
...@@ -562,8 +738,29 @@ function parse_info_desc($info,$type,$vars='',$short=0,$tiptype=0) ...@@ -562,8 +738,29 @@ function parse_info_desc($info,$type,$vars='',$short=0,$tiptype=0)
} }
# 类别不存在样式或提示时,用大类尝试一下 # 类别不存在样式或提示时,用大类尝试一下
if(!isset($tps_ik[$info])) $info = $v_info; if(!isset($tps_ik[$info])) $info = $v_info;
$info_f = isset($tps_ik[$info]['class']) ? "class=\"{$tps_ik[$info]['class']}\"" : ''; $info_f = isset($tps_ik[$info]['class']) ? $tps_ik[$info]['class'] : '';
$info_tp = isset($tps_ik[$info]['title']) ? "{$ttypes}=\"{$tps_ik[$info]['title']}\"" : ''; $info_tp = isset($tps_ik[$info]['title']) ? $tps_ik[$info]['title'] : '';
# 输入了属性作为子参数
if(!empty($vars))
{
if(!empty($info_tp)) $info_tp .= "\r";
if(!is_array($vars)) $vars = get_itmsk_array($vars);
if($v_info == 'WG' || $v_info == 'WGK' || $v_info == 'WDG')
{
if(in_array('e',$vars) || in_array('w',$vars)) $info_tp.= "需装填「能源弹药」";
elseif(in_array('u',$vars) || in_array('i',$vars)) $info_tp.= "需装填「气体弹药」";
elseif(in_array('r',$vars)) $info_tp.= "需装填「机枪子弹」";
}
if($v_info == 'WJ') $info_tp.= "需装填「重型弹药」";
}
else
{
if($v_info == 'WG' || $v_info == 'WGK' || $v_info == 'WDG') $info_tp.= "需装填「手枪弹药」";
if($v_info == 'WJ') $info_tp.= "需装填「重型弹药」";
}
if(!empty($info_f)) $info_f = "class=\"{$info_f}\"";
if(!empty($info_tp)) $info_tp = "{$ttypes}=\"{$info_tp}\"";
if(!isset($iteminfo[$info])) $info = $v_info; if(!isset($iteminfo[$info])) $info = $v_info;
return "<span {$info_tp} {$info_f}>{$iteminfo[$info]}</span>"; return "<span {$info_tp} {$info_f}>{$iteminfo[$info]}</span>";
} }
...@@ -621,15 +818,6 @@ function parse_info_desc($info,$type,$vars='',$short=0,$tiptype=0) ...@@ -621,15 +818,6 @@ function parse_info_desc($info,$type,$vars='',$short=0,$tiptype=0)
} }
$sk_nums++; $sk_nums++;
} }
# 枪械弹药类型特判
if($vars == 'WG' || $vars == 'WGK' || $vars == 'WDG')
{
if(empty($info)) $sk_tp.= "\r【需装填】:手枪子弹";
elseif(in_array('e',$info) || in_array('w',$info)) $sk_tp.= "\r【需装填】:能源弹药";
elseif(in_array('u',$info) || in_array('i',$info)) $sk_tp.= "\r【需装填】:气体弹药";
elseif(in_array('r',$info)) $sk_tp.= "\r【需装填】:机枪子弹";
}
if($vars == 'WJ') $sk_tp.= "\r【需装填】:重型弹药";
if(!empty($sk_info)) $ret = $sk_info; if(!empty($sk_info)) $ret = $sk_info;
if($sk_max > $short_nums && $short) $ret = $itemspkinfo[$info[0]]."+...+".$itemspkinfo[end($info)]; if($sk_max > $short_nums && $short) $ret = $itemspkinfo[$info[0]]."+...+".$itemspkinfo[end($info)];
if(!empty($sk_tp)) if(!empty($sk_tp))
...@@ -640,7 +828,7 @@ function parse_info_desc($info,$type,$vars='',$short=0,$tiptype=0) ...@@ -640,7 +828,7 @@ function parse_info_desc($info,$type,$vars='',$short=0,$tiptype=0)
return $ret; return $ret;
} }
return $info; return $info;
} }*/
//省略显示 //省略显示
//显示宽度20英文字符,假设汉字的显示宽度大约是英文字母的1.8倍 //显示宽度20英文字符,假设汉字的显示宽度大约是英文字母的1.8倍
......
...@@ -21,17 +21,27 @@ function init_icon_states(&$pa,$pd,$ismeet=0) ...@@ -21,17 +21,27 @@ function init_icon_states(&$pa,$pd,$ismeet=0)
//更新编号情报 //更新编号情报
$pa['sNoinfo'] = "(".$sexinfo[$pa['gd']].$pa['sNo']."号)"; $pa['sNoinfo'] = "(".$sexinfo[$pa['gd']].$pa['sNo']."号)";
$pa['typeinfo'] = $typeinfo[$pa['type']]; $pa['typeinfo'] = $typeinfo[$pa['type']];
//更新头像情报
$itype = $pa['type'] > 0 ? 'n' : $pa['gd']; # 更新头像情报
$iname = $itype.'_'.$pa['icon']; # 检查是否存在固定头像
if(file_exists('img/'.$iname.'a.gif')) if(file_exists('img/'.$pa['icon']))
{ {
$pa['iconImgB']= $iname.'a.gif'; $iconImg = $pa['icon'];
} }
else else
{ {
$pa['iconImg'] = $iname.'.gif'; $itype = $pa['type'] > 0 ? 'n' : $pa['gd'];
unset($pa['iconImgB']); $iconImg = $itype.'_'.$pa['icon'].'.gif';
}
# 检查是否存在大头像
$iconImgB = str_replace('.','a.',$iconImg);
if(file_exists('img/'.$iconImgB))
{
$pa['iconImgB'] = $iconImgB;
}
else
{
$pa['iconImg'] = $iconImg;
} }
} }
...@@ -141,8 +151,8 @@ function init_wep_states(&$pa,$pd,$ismeet=0) ...@@ -141,8 +151,8 @@ function init_wep_states(&$pa,$pd,$ismeet=0)
if(!check_skill_unlock('c6_godeyes',$pd)) if(!check_skill_unlock('c6_godeyes',$pd))
{ {
$pa['wepestate'] = $pa['wepe']; $pa['wepestate'] = $pa['wepe'];
$pa['wep_words'] = parse_info_desc($pa['wep'],'m'); $pa['wep_words'] = parse_nameinfo_desc($pa['wep'],$pa['horizon']);
$pa['wepk_words'] =parse_info_desc($pa['wepk'],'k'); $pa['wepk_words'] = parse_kinfo_desc($pa['wepk'],$pa['wepsk']);
return; return;
} }
if($fog && !$ismeet) if($fog && !$ismeet)
...@@ -170,8 +180,8 @@ function init_wep_states(&$pa,$pd,$ismeet=0) ...@@ -170,8 +180,8 @@ function init_wep_states(&$pa,$pd,$ismeet=0)
} }
//更新武器名、武器类别情报 //更新武器名、武器类别情报
$pa['wep_words'] = parse_info_desc($pa['wep'],'m'); $pa['wep_words'] = parse_nameinfo_desc($pa['wep'],$pa['horizon']);
$pa['wepk_words'] = parse_info_desc($pa['wepk'],'k'); $pa['wepk_words'] = parse_kinfo_desc($pa['wepk'],$pa['wepsk']);
} }
function init_inf_states(&$pa,$pd,$ismeet=0) function init_inf_states(&$pa,$pd,$ismeet=0)
......
...@@ -61,11 +61,11 @@ function nparse_news($start = 0, $range = 0 ){//$type = '') { ...@@ -61,11 +61,11 @@ function nparse_news($start = 0, $range = 0 ){//$type = '') {
//登记非功能性地点信息时合并隐藏地点 为什么会有两个news.func.php??? //登记非功能性地点信息时合并隐藏地点 为什么会有两个news.func.php???
foreach($hplsinfo as $hgroup=>$hpls) $plsinfo += $hpls; foreach($hplsinfo as $hgroup=>$hpls) $plsinfo += $hpls;
//死法(除DN外):道具名登记在$d上; //死法(除DN外):道具名登记在$d上;
if(strpos($news,'death')!==false && $news!=='death28' && isset($d)) $d = parse_info_desc($d,'m'); if(strpos($news,'death')!==false && $news!=='death28' && isset($d)) $d = parse_nameinfo_desc($d);
//赠送道具、吃到毒补给、陷阱、改变天气、强化武器、唱歌、打开礼物盒:道具名登记在$c上; //赠送道具、吃到毒补给、陷阱、改变天气、强化武器、唱歌、打开礼物盒:道具名登记在$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_info_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_nameinfo_desc($c);
//合成、使用死斗卡、使用仓库:道具名登记在$b上; //合成、使用死斗卡、使用仓库:道具名登记在$b上;
if((strpos($news,'mix')!==false||strpos($news,'duelkey')!==false||strpos($news,'depot')===0) && isset($b)) $b = parse_info_desc($b,'m'); if((strpos($news,'mix')!==false||strpos($news,'duelkey')!==false||strpos($news,'depot')===0) && isset($b)) $b = parse_nameinfo_($b);
if(!empty($old_nicknews[$news])) if(!empty($old_nicknews[$news]))
......
...@@ -117,9 +117,13 @@ function rs_game($mode = 0) { ...@@ -117,9 +117,13 @@ function rs_game($mode = 0) {
# NPC自定义技能初始化 # NPC自定义技能初始化
if(!empty($npc['clubskill']) || !empty($npc['clubskillpara'])) customtclubskill($npc); if(!empty($npc['clubskill']) || !empty($npc['clubskillpara'])) customtclubskill($npc);
//初始化NPC所在位置 # 初始化NPC所在位置
global $hidding_typelist,$deepzones; global $hidding_typelist,$deepzones;
//女主不会刷新在危险区域
# 位置信息为数组时,在两地中择一随机刷新
if(is_array($npc['pls'])) $npc['pls'] = $npc['pls'][array_rand($npc['pls'])];
# 女主不会刷新在危险区域
if(in_array($npc['type'],$hidding_typelist)) if(in_array($npc['type'],$hidding_typelist))
{ {
do{ do{
...@@ -130,7 +134,10 @@ function rs_game($mode = 0) { ...@@ -130,7 +134,10 @@ function rs_game($mode = 0) {
{ {
do{$rpls=rand(1,$plsnum-1);}while ($rpls==34); do{$rpls=rand(1,$plsnum-1);}while ($rpls==34);
} }
if($npc['pls'] == 99){$npc['pls'] = $rpls; } if($npc['pls'] == 99)
{
$npc['pls'] = $rpls;
}
$npc['state'] = 0; $npc['state'] = 0;
$npc=player_format_with_db_structure($npc); $npc=player_format_with_db_structure($npc);
...@@ -345,8 +352,8 @@ function add_once_area($atime) { ...@@ -345,8 +352,8 @@ function add_once_area($atime) {
} else { } else {
if($weather <= 9) $weather = rand(0,9); if($weather <= 9) $weather = rand(0,9);
if($hack > 0){$hack--;} if($hack > 0){$hack--;}
//重置控制面板可用次数 # 解锁子面板功能后,每次增加禁区时,释放一条被占用的信道
if(isset($gamevars['apis']) && isset($gamevars['api'])) $gamevars['api'] = $gamevars['apis']; if(isset($gamevars['apis']) && isset($gamevars['api']) && $gamevars['api'] < $gamevars['apis']) $gamevars['api']++;
$areaaddlist = array_slice($arealist,$areanum+1,$areaadd); $areaaddlist = array_slice($arealist,$areanum+1,$areaadd);
$areanum += $areaadd; $areanum += $areaadd;
movehtm(); movehtm();
...@@ -625,7 +632,7 @@ function movehtm($atime = 0) { ...@@ -625,7 +632,7 @@ function movehtm($atime = 0) {
//return; //return;
} }
function addnpc($type,$sub,$num,$time = 0,$clbstatus=NULL,$aitem=NULL,$apls=NULL) { function addnpc($type,$sub,$num,$time = 0,$anpcdata = NULL) {
global $now,$db,$gtablepre,$tablepre,$log,$plsinfo,$typeinfo,$arealist,$areanum,$gamecfg; global $now,$db,$gtablepre,$tablepre,$log,$plsinfo,$typeinfo,$arealist,$areanum,$gamecfg;
global $hidding_typelist,$deepzones; global $hidding_typelist,$deepzones;
include_once GAME_ROOT."./include/game/clubslct.func.php"; include_once GAME_ROOT."./include/game/clubslct.func.php";
...@@ -661,7 +668,14 @@ function addnpc($type,$sub,$num,$time = 0,$clbstatus=NULL,$aitem=NULL,$apls=NULL ...@@ -661,7 +668,14 @@ function addnpc($type,$sub,$num,$time = 0,$clbstatus=NULL,$aitem=NULL,$apls=NULL
} }
//$npc['wp'] = $npc['wk'] = $npc['wg'] = $npc['wc'] = $npc['wd'] = $npc['wf'] = $npc['skill']; //$npc['wp'] = $npc['wk'] = $npc['wg'] = $npc['wc'] = $npc['wd'] = $npc['wf'] = $npc['skill'];
if($npc['gd'] == 'r'){$npc['gd'] = rand(0,1) ? 'm':'f';} if($npc['gd'] == 'r'){$npc['gd'] = rand(0,1) ? 'm':'f';}
if($npc['pls'] == 99){
# 位置信息为数组时,在两地中择一随机刷新
if(is_array($npc['pls']))
{
$npc['pls'] = $npc['pls'][array_rand($npc['pls'])];
}
elseif($npc['pls'] == 99)
{
$areaarr = array_slice($arealist,$areanum+1); $areaarr = array_slice($arealist,$areanum+1);
if(empty($areaarr)){ if(empty($areaarr)){
$npc['pls'] = 0; $npc['pls'] = 0;
...@@ -686,27 +700,30 @@ function addnpc($type,$sub,$num,$time = 0,$clbstatus=NULL,$aitem=NULL,$apls=NULL ...@@ -686,27 +700,30 @@ function addnpc($type,$sub,$num,$time = 0,$clbstatus=NULL,$aitem=NULL,$apls=NULL
# NPC自定义技能初始化 # NPC自定义技能初始化
if(!empty($npc['clubskill']) || !empty($npc['clubskillpara'])) customtclubskill($npc); if(!empty($npc['clubskill']) || !empty($npc['clubskillpara'])) customtclubskill($npc);
//自定义addnpc出现位置,会覆盖原本预设的位置。 TODO:要不要发个特别的news? # 自定义数据不为空时,覆盖原本预设的NPC数据
if(isset($apls)) $npc['pls'] = (int)$apls; if(!empty($anpcdata))
//自定义addnpc身上携带的道具,会覆盖原本预设的道具。 格式:$aitem=Array($iid=>Array($itm,$itmk,$itme,$itms,$itmsk),...)
if(isset($aitem))
{ {
$aid = $aitem[0]; foreach($anpcdata as $adkey => $advalue)
$npc['itm'.$aid] = $aitem[1];$npc['itmk'.$aid] = $aitem[2];$npc['itme'.$aid] = $aitem[3];$npc['itms'.$aid] = $aitem[4];$npc['itmsk'.$aid] = $aitem[5];
}
//自定义addnpc身上的社团参数,会覆盖原本预设的参数。 格式:$clbstatus=Array('a'=>'int(10)',...'clbpara'=> $arr')
if(isset($clbstatus))
{
foreach(Array('a','b','c','d','e') as $cbs)
{ {
if(isset($clbstatus[$cbs])) $npc['clbstatus'.$cbs] = $clbstatus[$cbs]; # 暂时跳过一些复杂内容,特事特判
if(is_array($advalue)) continue;
$npc[$adkey] = $advalue;
} }
if(isset($clbstatus['clbpara'])) # 自定义addnpc身上的社团参数,会覆盖原本预设的参数。
if(isset($anpcdata['clbstatus']))
{ {
$npc['clbpara'] = is_array($npc['clbpara']) ? array_merge($npc['clbpara'],$clbstatus['clbpara']) : $clbstatus['clbpara']; foreach(Array('a','b','c','d','e') as $cbs)
{
if(isset($anpcdata['clbstatus'][$cbs])) $npc['clbstatus'.$cbs] = $anpcdata['clbstatus'][$cbs];
}
}
if(isset($anpcdata['clbpara']))
{
$npc['clbpara'] = is_array($npc['clbpara']) ? array_merge($npc['clbpara'],$anpcdata['clbpara']) : $anpcdata['clbpara'];
} }
} }
//对将要插入数据库的npc数组格式化,现在可以直接在npc配置文件里预设那些后添加的字段了。
# 对将要插入数据库的npc数组格式化,现在可以直接在npc配置文件里预设那些后添加的字段了。
$npc=player_format_with_db_structure($npc); $npc=player_format_with_db_structure($npc);
$db->array_insert("{$tablepre}players", $npc); $db->array_insert("{$tablepre}players", $npc);
$summon_ids[] = $db->insert_id(); $summon_ids[] = $db->insert_id();
......
...@@ -21,16 +21,15 @@ function parse_queue_vnmix_info($carr) ...@@ -21,16 +21,15 @@ function parse_queue_vnmix_info($carr)
} }
} }
// 格式化名称 // 格式化名称
$carr['itm_desc'] = parse_info_desc($carr['itm'],'m'); $carr['itm_desc'] = parse_nameinfo_desc($carr['itm']);
// 格式化类别 // 格式化类别
$carr['itmk_desc'] = parse_info_desc($carr['itmk'],'k'); $carr['itmk_desc'] = parse_kinfo_desc($carr['itmk'],$carr['itmsk']);
// 合并显示类 // 合并显示类
$carr['result'] = $carr['itmk_desc'].'/'.$carr['itme'].'/'.$carr['itms']; $carr['result'] = $carr['itmk_desc'].'/'.$carr['itme'].'/'.$carr['itms'];
// 格式化属性 // 格式化属性
if(!empty($carr['itmsk'])) if(!empty($carr['itmsk']))
{ {
$carr['itmsk'] = get_itmsk_array($carr['itmsk']); $carr['itmsk_desc'] = parse_skinfo_desc($carr['itmsk'],$carr['itmk']);
$carr['itmsk_desc'] = parse_info_desc($carr['itmsk'],'sk',$carr['itmk']);
$carr['result'] .= '/'.$carr['itmsk_desc']; $carr['result'] .= '/'.$carr['itmsk_desc'];
} }
return $carr; return $carr;
......
...@@ -100,7 +100,7 @@ CREATE TABLE bra_winners ( ...@@ -100,7 +100,7 @@ CREATE TABLE bra_winners (
`pass` char(32) NOT NULL DEFAULT '', `pass` char(32) NOT NULL DEFAULT '',
`gd` char(1) NOT NULL DEFAULT 'm', `gd` char(1) NOT NULL DEFAULT 'm',
`sNo` smallint(5) unsigned NOT NULL DEFAULT '0', `sNo` smallint(5) unsigned NOT NULL DEFAULT '0',
`icon` tinyint(3) unsigned NOT NULL DEFAULT '0', `icon` varchar(255) NOT NULL DEFAULT '0',
`club` tinyint(3) unsigned NOT NULL DEFAULT '0', `club` tinyint(3) unsigned NOT NULL DEFAULT '0',
`endtime` int(10) unsigned NOT NULL DEFAULT '0', `endtime` int(10) unsigned NOT NULL DEFAULT '0',
`hp` smallint(5) unsigned NOT NULL DEFAULT '0', `hp` smallint(5) unsigned NOT NULL DEFAULT '0',
......
<!--{loop $plsinfo $places $info}-->
<!--{if (CURSCRIPT == 'game' && $pls==$places)}-->
<!--{eval $bgurl = "img/location/".$places.".jpg"}-->
<style>
body {background-image: url("$bgurl");background-position: center;}
</style>
<!--{/if}-->
<!--{/loop}-->
<TABLE border="0" width=720px height=430px align="center" cellspacing="0" cellpadding="0" class="battle">
<tr>
<td class="b8" valign="top" rowspan=2>
<div style="position:relative;width:140px;height:340px;">
<!--{if $w_iconImgB}-->
<IMG src="img/$w_iconImgB" style="border:0;height:340px;position:absolute;left:0px;top:0px;<!--{if $w_hp==0}-->filter: grayscale(100%)<!--{/if}-->" />
<!--{else}-->
<IMG src="img/$w_iconImg" style="border:0;height:80px;<!--{if $w_hp==0}-->filter: grayscale(100%)<!--{/if}-->" />
<!--{/if}-->
</div>
</td>
<td colspan=2 width=580px>
<table border="0" cellspacing="0" height=75px width=580px cellpadding="0" width="100%" valign="middle">
<tr>
<td class="b1" colspan=2 height=20px><span>Lv. $w_lvl</span></td>
<td class="b1" colspan=2><span>$w_name</span></td>
<td class="b1" colspan=2><span>$w_sNoinfo</span><!--{if $club==19}--><span class="lime">报应点数:<span id="anum">$w_rp</span></span><!--{/if}--></td>
</tr>
<tr>
<td class="b2" width=70px height=20px><span>{lang rage}</span></td>
<td class="b3" width=95px><span>$w_ragestate</span></td>
<td class="b2" width=70px><span>{lang sp}</span></td>
<td class="b3" width=105px><span>$w_spstate</span></td>
<td class="b2" width=70px><span>{lang hp}</span></td>
<td class="b3" width=170px><span>$w_hpstate</span></td>
</tr>
<tr>
<td class="b2" height=20px><span>{lang wep}{lang effect}</span></td>
<td class="b3"><span>$w_wepestate</span></td>
<td class="b2"><span>{lang wep}{lang kind1}</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="b3"><span>$w_wep_words</span></td>
</tr>
<tr>
<td class="b2" height=20px><span>{lang tactic}</span></td>
<td class="b3"><span><!--{if $w_tactic >= 0}-->$tacinfo[$w_tactic]<!--{else}-->???<!--{/if}--></span></td>
<td class="b2"><span>{lang pose}</span></td>
<td class="b3"><span><!--{if $w_pose >= 0}-->$poseinfo[$w_pose]<!--{else}-->???<!--{/if}--></span></td>
<td height="20px" class="b2"><span>{lang inf}</span></td>
<td class="b3"><span><!--{if $w_infdata}-->$w_infdata<!--{else}--><!--{/if}--></span></td>
</tr>
<tr>
<td height=20px></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
</td>
</tr>
<tr>
<TD class="b8" height=270px width=440px>
<div style="position:relative;height:268px;width:438px;display: flex;align-items:center;justify-content: center;">
<span><B><FONT color="#ff0000" size="5" face="黑体">$battle_title</FONT></B></span>
</div>
</TD>
<td class="b8" width=140px rowspan="2" valign="bottom">
<div style="position:relative;width:140px;height:350px;">
<!--{if $iconImgB}-->
<IMG src="img/$iconImgB" style="border:0;height:340px;position:absolute;left:0px;bottom:-10px;<!--{if $hp==0}-->filter: grayscale(100%)<!--{/if}-->" />
<!--{else}-->
<IMG src="img/$iconImg" style="border:0;height:80px;position:absolute;left:0;bottom:0;<!--{if $hp==0}-->filter: grayscale(100%)<!--{/if}-->" />
<!--{/if}-->
</div>
</td>
</TR>
<tr>
<td colspan=2 width=580px>
<table border="0" width=580px height=80px cellspacing="0" cellpadding="0" valign="middle">
<tr>
<td class="b1" colspan=2 height=20px><span>$typeinfo[$type]({$sexinfo[$gd]}{$sNo}号)</span></td>
<td class="b1" colspan=2><span>$name</span></td>
<td class="b1" colspan=2><span>Lv. $lvl</span></td>
</tr>
<tr>
<td class="b2" width=70px height=20px><span>{lang hp}</span></td>
<td class="b3" width=170px><span><span class="$hpcolor">$hp / $mhp</span></span></td>
<td class="b2" width=70px><span>{lang sp}</span></td>
<td class="b3" width=105px><span>$sp / $msp</span></td>
<td class="b2" width=70px><span>{lang rage}</span></td>
<td class="b3" width=95px><span><!--{if $rage >=30}--><span class="yellow">$rage</span><!--{else}-->$rage<!--{/if}--></span></td>
</tr>
<tr>
<td class="b2" height=20px><span>{lang wep}</span></td>
<td class="b3"><span>$wep_words</span></td>
<td class="b2"><span>{lang wep}{lang kind1}</span></td>
<td class="b3"><span>$wepk_words</span></td>
<td class="b2"><span>{lang wep}{lang effect}</span></td>
<td class="b3"><span>$wepe</span></td>
</tr>
<tr>
<td class="b2" height=20px><span>{lang inf}</span></td>
<td class="b3">
<span>
<!--{if $inf}-->
<!--{loop $infinfo $key $val}-->
<!--{if strpos($inf,$key)!==false}-->
$val
<!--{/if}-->
<!--{/loop}-->
<!--{else}-->
<!--{/if}-->
</span>
</td>
<td class="b2"><span>{lang pose}</span></td>
<td class="b3"><span>$poseinfo[$pose]</span></td>
<td class="b2"><span>{lang tactic}</span></td>
<td class="b3"><span>$tacinfo[$tactic]</span></td>
</tr>
</table>
</td>
</tr>
</TABLE>
现在想要做什么?<br><br>
向对手大喊:<br><input size="30" type="text" name="message" maxlength="60"><br><br>
<input type="hidden" name="mode" value="combat">
<input type="hidden" id="command" name="command" value="back">
<input type="button" class="cmdbutton" style="width:100" name="w1" value="{$attinfo[$w1]}" onclick="$('command').value='$w1';postCmd('gamecmd','command.php');this.disabled=true;"><br>
<!--{if $w2}-->
<input type="button" class="cmdbutton" style="width:100" name="w2" value="{$attinfo[$w2]}" onclick="$('command').value='$w2';postCmd('gamecmd','command.php');this.disabled=true;"><br>
<!--{/if}-->
<br><input type="button" class="cmdbutton" name="back" value="逃跑" onclick="postCmd('gamecmd','command.php');this.disabled=true;">
\ No newline at end of file
...@@ -17,46 +17,46 @@ ...@@ -17,46 +17,46 @@
<!--{/if}--> <!--{/if}-->
<input type="radio" name="command" id="back" value="back" <!--{if !$w_money && $club!=20 && !$allow_destory_corpse}-->checked<!--{/if}-->><a onclick=sl('back'); href="javascript:void(0);" >返回</a><br><br> <input type="radio" name="command" id="back" value="back" <!--{if !$w_money && $club!=20 && !$allow_destory_corpse}-->checked<!--{/if}-->><a onclick=sl('back'); href="javascript:void(0);" >返回</a><br><br>
<!--{if $w_weps && $w_wepe}--> <!--{if $w_weps && $w_wepe}-->
<input type="radio" name="command" id="wep" value="wep"><a onclick=sl('wep'); href="javascript:void(0);" >$w_wep/$w_wepk_words/$w_wepe/$w_weps<!--{if $w_wepsk_words}-->/$w_wepsk_words<!--{/if}--></a><br> <input type="radio" name="command" id="wep" value="wep"><a onclick=sl('wep'); href="javascript:void(0);" >$w_wep_words/$w_wepk_words/$w_wepe/$w_weps<!--{if $w_wepsk_words}-->/$w_wepsk_words<!--{/if}--></a><br>
<!--{/if}--> <!--{/if}-->
<!--{if $w_wep2s && $w_wep2e}--> <!--{if $w_wep2s && $w_wep2e}-->
<input type="radio" name="command" id="wep2" value="wep2"><a onclick=sl('wep2'); href="javascript:void(0);" >$w_wep2/$w_wep2k_words/$w_wep2e/$w_wep2s<!--{if $w_wep2sk_words}-->/$w_wep2sk_words<!--{/if}--></a><br> <input type="radio" name="command" id="wep2" value="wep2"><a onclick=sl('wep2'); href="javascript:void(0);" >$w_wep2_words/$w_wep2k_words/$w_wep2e/$w_wep2s<!--{if $w_wep2sk_words}-->/$w_wep2sk_words<!--{/if}--></a><br>
<!--{/if}--> <!--{/if}-->
<!--{if $w_arbs && $w_arbe}--> <!--{if $w_arbs && $w_arbe}-->
<input type="radio" name="command" id="arb" value="arb"><a onclick=sl('arb'); href="javascript:void(0);" >$w_arb/$w_arbk_words/$w_arbe/$w_arbs<!--{if $w_arbsk_words}-->/$w_arbsk_words<!--{/if}--></a><br> <input type="radio" name="command" id="arb" value="arb"><a onclick=sl('arb'); href="javascript:void(0);" >$w_arb_words/$w_arbk_words/$w_arbe/$w_arbs<!--{if $w_arbsk_words}-->/$w_arbsk_words<!--{/if}--></a><br>
<!--{/if}--> <!--{/if}-->
<!--{if $w_arhs}--> <!--{if $w_arhs}-->
<input type="radio" name="command" id="arh" value="arh"><a onclick=sl('arh'); href="javascript:void(0);" >$w_arh/$w_arhk_words/$w_arhe/$w_arhs<!--{if $w_arhsk_words}-->/$w_arhsk_words<!--{/if}--></a><br> <input type="radio" name="command" id="arh" value="arh"><a onclick=sl('arh'); href="javascript:void(0);" >$w_arh_words/$w_arhk_words/$w_arhe/$w_arhs<!--{if $w_arhsk_words}-->/$w_arhsk_words<!--{/if}--></a><br>
<!--{/if}--> <!--{/if}-->
<!--{if $w_aras}--> <!--{if $w_aras}-->
<input type="radio" name="command" id="ara" value="ara"><a onclick=sl('ara'); href="javascript:void(0);" >$w_ara/$w_arak_words/$w_arae/$w_aras<!--{if $w_arask_words}-->/$w_arask_words<!--{/if}--></a><br> <input type="radio" name="command" id="ara" value="ara"><a onclick=sl('ara'); href="javascript:void(0);" >$w_ara_words/$w_arak_words/$w_arae/$w_aras<!--{if $w_arask_words}-->/$w_arask_words<!--{/if}--></a><br>
<!--{/if}--> <!--{/if}-->
<!--{if $w_arfs}--> <!--{if $w_arfs}-->
<input type="radio" name="command" id="arf" value="arf"><a onclick=sl('arf'); href="javascript:void(0);" >$w_arf/$w_arfk_words/$w_arfe/$w_arfs<!--{if $w_arfsk_words}-->/$w_arfsk_words<!--{/if}--></a><br> <input type="radio" name="command" id="arf" value="arf"><a onclick=sl('arf'); href="javascript:void(0);" >$w_arf_words/$w_arfk_words/$w_arfe/$w_arfs<!--{if $w_arfsk_words}-->/$w_arfsk_words<!--{/if}--></a><br>
<!--{/if}--> <!--{/if}-->
<!--{if $w_arts}--> <!--{if $w_arts}-->
<input type="radio" name="command" id="art" value="art"><a onclick=sl('art'); href="javascript:void(0);" >$w_art/$w_artk_words/$w_arte/$w_arts<!--{if $w_artsk_words}-->/$w_artsk_words<!--{/if}--></a><br> <input type="radio" name="command" id="art" value="art"><a onclick=sl('art'); href="javascript:void(0);" >$w_art_words/$w_artk_words/$w_arte/$w_arts<!--{if $w_artsk_words}-->/$w_artsk_words<!--{/if}--></a><br>
<!--{/if}--> <!--{/if}-->
<!--{if $w_itms0}--> <!--{if $w_itms0}-->
<input type="radio" name="command" id="itm0" value="itm0"><a onclick=sl('itm0'); href="javascript:void(0);" >$w_itm0/$w_itmk0_words/$w_itme0/$w_itms0<!--{if $w_itmsk0_words}-->/$w_itmsk0_words<!--{/if}--></a><br> <input type="radio" name="command" id="itm0" value="itm0"><a onclick=sl('itm0'); href="javascript:void(0);" >$w_itm0_words/$w_itmk0_words/$w_itme0/$w_itms0<!--{if $w_itmsk0_words}-->/$w_itmsk0_words<!--{/if}--></a><br>
<!--{/if}--> <!--{/if}-->
<!--{if $w_itms1}--> <!--{if $w_itms1}-->
<input type="radio" name="command" id="itm1" value="itm1"><a onclick=sl('itm1'); href="javascript:void(0);" >$w_itm1/$w_itmk1_words/$w_itme1/$w_itms1<!--{if $w_itmsk1_words}-->/$w_itmsk1_words<!--{/if}--></a><br> <input type="radio" name="command" id="itm1" value="itm1"><a onclick=sl('itm1'); href="javascript:void(0);" >$w_itm1_words/$w_itmk1_words/$w_itme1/$w_itms1<!--{if $w_itmsk1_words}-->/$w_itmsk1_words<!--{/if}--></a><br>
<!--{/if}--> <!--{/if}-->
<!--{if $w_itms2}--> <!--{if $w_itms2}-->
<input type="radio" name="command" id="itm2" value="itm2"><a onclick=sl('itm2'); href="javascript:void(0);" >$w_itm2/$w_itmk2_words/$w_itme2/$w_itms2<!--{if $w_itmsk2_words}-->/$w_itmsk2_words<!--{/if}--></a><br> <input type="radio" name="command" id="itm2" value="itm2"><a onclick=sl('itm2'); href="javascript:void(0);" >$w_itm2_words/$w_itmk2_words/$w_itme2/$w_itms2<!--{if $w_itmsk2_words}-->/$w_itmsk2_words<!--{/if}--></a><br>
<!--{/if}--> <!--{/if}-->
<!--{if $w_itms3}--> <!--{if $w_itms3}-->
<input type="radio" name="command" id="itm3" value="itm3"><a onclick=sl('itm3'); href="javascript:void(0);" >$w_itm3/$w_itmk3_words/$w_itme3/$w_itms3<!--{if $w_itmsk3_words}-->/$w_itmsk3_words<!--{/if}--></a><br> <input type="radio" name="command" id="itm3" value="itm3"><a onclick=sl('itm3'); href="javascript:void(0);" >$w_itm3_words/$w_itmk3_words/$w_itme3/$w_itms3<!--{if $w_itmsk3_words}-->/$w_itmsk3_words<!--{/if}--></a><br>
<!--{/if}--> <!--{/if}-->
<!--{if $w_itms4}--> <!--{if $w_itms4}-->
<input type="radio" name="command" id="itm4" value="itm4"><a onclick=sl('itm4'); href="javascript:void(0);" >$w_itm4/$w_itmk4_words/$w_itme4/$w_itms4<!--{if $w_itmsk4_words}-->/$w_itmsk4_words<!--{/if}--></a><br> <input type="radio" name="command" id="itm4" value="itm4"><a onclick=sl('itm4'); href="javascript:void(0);" >$w_itm4_words/$w_itmk4_words/$w_itme4/$w_itms4<!--{if $w_itmsk4_words}-->/$w_itmsk4_words<!--{/if}--></a><br>
<!--{/if}--> <!--{/if}-->
<!--{if $w_itms5}--> <!--{if $w_itms5}-->
<input type="radio" name="command" id="itm5" value="itm5"><a onclick=sl('itm5'); href="javascript:void(0);" >$w_itm5/$w_itmk5_words/$w_itme5/$w_itms5<!--{if $w_itmsk5_words}-->/$w_itmsk5_words<!--{/if}--></a><br> <input type="radio" name="command" id="itm5" value="itm5"><a onclick=sl('itm5'); href="javascript:void(0);" >$w_itm5_words/$w_itmk5_words/$w_itme5/$w_itms5<!--{if $w_itmsk5_words}-->/$w_itmsk5_words<!--{/if}--></a><br>
<!--{/if}--> <!--{/if}-->
<!--{if $w_itms6}--> <!--{if $w_itms6}-->
<input type="radio" name="command" id="itm6" value="itm6"><a onclick=sl('itm6'); href="javascript:void(0);" >$w_itm6/$w_itmk6_words/$w_itme6/$w_itms6<!--{if $w_itmsk6_words}-->/$w_itmsk6_words<!--{/if}--></a><br> <input type="radio" name="command" id="itm6" value="itm6"><a onclick=sl('itm6'); href="javascript:void(0);" >$w_itm6_words/$w_itmk6_words/$w_itme6/$w_itms6<!--{if $w_itmsk6_words}-->/$w_itmsk6_words<!--{/if}--></a><br>
<!--{/if}--> <!--{/if}-->
<!--{if $w_money}--> <!--{if $w_money}-->
<input type="radio" name="command" id="money" value="money" checked><a onclick=sl('money'); href="javascript:void(0);" >$w_money {lang moneyunit} </a><br> <input type="radio" name="command" id="money" value="money" checked><a onclick=sl('money'); href="javascript:void(0);" >$w_money {lang moneyunit} </a><br>
......
...@@ -4,14 +4,23 @@ ...@@ -4,14 +4,23 @@
<!--{eval $bgm = init_bgm(1)}--> <!--{eval $bgm = init_bgm(1)}-->
$bgm $bgm
</div> </div>
<!--{loop $plsinfo $places $info}--> <!--{eval $bgurl = "img/location/".$pls.".jpg";}-->
<!--{if (CURSCRIPT == 'game' && $pls==$places)}--> <!--{if $horizon}-->
<!--{eval $bgurl = "img/location/".$places.".jpg"}--> <style>
body {background-image: url("$bgurl");background-position: center;filter: hue-rotate(5deg);}
</style>
<!--{else}-->
<style> <style>
body {background-image: url("$bgurl");background-position: center;} body {background-image: url("$bgurl");background-position: center;}
</style> </style>
<!--{/if}--> <!--{/if}-->
<!--{/loop}--> <!--{if $horizon}-->
<style>
.b1 {background-color:rgba(82, 64, 139, 0.6); *BACKGROUND: rgb(98,135,163); *filter:alpha(opacity=60); BORDER: #000 0px none; TEXT-ALIGN: center; COLOR: #fff; border-right: #111 1px solid; border-bottom: #111 1px solid;font:bold 10pt "微软雅黑" serif;}
.b2 {background-color:rgba(82, 64, 139, 0.6); *BACKGROUND: rgb(98,135,163); *filter:alpha(opacity=80); BORDER: #000 0px none; TEXT-ALIGN: center; COLOR: #fff; border-right: #111 1px solid;font:10pt "微软雅黑" serif;}
.b3 {background-color:rgba(17,17,17,0.5); *BACKGROUND:rgb(17,17,17); *filter:alpha(opacity=50); BORDER: #000 0px none; color: #fff; text-align: center; border-right: #111 1px solid;font:10pt "微软雅黑" serif;}
</style>
<!--{/if}-->
<table border="0" cellspacing="10" cellpadding="0" align="center"> <table border="0" cellspacing="10" cellpadding="0" align="center">
<tr valign=top> <tr valign=top>
<td> <td>
......
...@@ -19,10 +19,14 @@ ...@@ -19,10 +19,14 @@
<tr> <tr>
<td> <td>
<span class="icon"> <span class="icon">
<IMG width=140px src="img/n_$npcinfo[$kind][$ksub][$key]['icon'].gif" border="0" valign="middle"/> <!--{if !file_exists('img/'.$npcinfo[$kind][$ksub][$key]['icon'])}-->
<!--{if file_exists('img/n_'.$npcinfo[$kind][$ksub][$key]['icon'].'a.gif')}--> <!--{eval $npcinfo[$kind][$ksub][$key]['icon'] = 'n_'.$npcinfo[$kind][$ksub][$key]['icon'].'.gif';}-->
<!--{/if}-->
<!--{eval $aicon = 'img/'.str_replace('.','a.',$npcinfo[$kind][$ksub][$key]['icon'])}-->
<IMG width=140px src="img/$npcinfo[$kind][$ksub][$key]['icon']" border="0" valign="middle"/>
<!--{if file_exists($aicon)}-->
<div class="icona"> <div class="icona">
<IMG class="aicon" width=140px src="img/n_$npcinfo[$kind][$ksub][$key]['icon']a.gif"> <IMG class="aicon" width=140px src="$aicon">
</div> </div>
<!--{/if}--> <!--{/if}-->
</span> </span>
...@@ -50,7 +54,11 @@ ...@@ -50,7 +54,11 @@
所处地点 所处地点
</td> </td>
<td width=100px align="center" class="b3"> <td width=100px align="center" class="b3">
<span class="yellow"> <!--{if $npcinfo[$kind][$ksub][$key]['horizon']}-->
<span class="darkviolet" tooltip="处于灵子视界中">
<!--{else}-->
<span class="yellow" tooltip="处于标准视界中">
<!--{/if}-->
$npcinfo[$kind][$ksub][$key]['pls'] $npcinfo[$kind][$ksub][$key]['pls']
</span> </span>
</td> </td>
...@@ -211,7 +219,7 @@ ...@@ -211,7 +219,7 @@
</td> </td>
</tr> </tr>
<!--{loop $itemlst $id $vid}--> <!--{loop $itemlst $id $vid}-->
<!--{if isset($npcinfo[$kind][$ksub][$key]['itm'.$id])}--> <!--{if !empty($npcinfo[$kind][$ksub][$key]['itms'.$id])}-->
<tr> <tr>
<td width=100px align="center" class="b1"> <td width=100px align="center" class="b1">
掉落物品 掉落物品
......
<!--{loop $plsinfo $places $info}-->
<!--{if (CURSCRIPT == 'game' && $pls==$places)}-->
<!--{eval $bgurl = "img/location/".$places.".jpg"}-->
<style>
body {background-image: url("$bgurl");background-position: center;}
</style>
<!--{/if}-->
<!--{/loop}-->
<table border="0" width="720" height="100%" cellspacing="0" cellpadding="0" valign="middle"> <table border="0" width="720" height="100%" cellspacing="0" cellpadding="0" valign="middle">
<tr> <tr>
<td> <td>
...@@ -174,9 +166,14 @@ ...@@ -174,9 +166,14 @@
<td class="b3"><!--{if $skillpoint > 0}--><span class="lime">$skillpoint</span><!--{else}--><span>$skillpoint</span><!--{/if}--></td> <td class="b3"><!--{if $skillpoint > 0}--><span class="lime">$skillpoint</span><!--{else}--><span>$skillpoint</span><!--{/if}--></td>
</tr> </tr>
<tr> <tr>
<td class="b2">游戏版本</td> <td class="b2">战术界面</td>
<td class="b3"> <td class="b3">
「GE1167」</td> <select id="horizon" name="horizon" onchange="$('mode').value='special';$('command').value=$('horizon').value;postCmd('gamecmd','command.php');return false;" <!--{if CURSCRIPT != 'game' || $mode != 'command'}-->disabled<!--{/if}-->>
<!--{loop $horizoninfo $key $value}-->
<option value="hor$key"<!--{if $horizon == $key}-->selected<!--{/if}-->>$value
<!--{/loop}-->
</select>
</td>
<td class="b2"><span>{lang ss}</span></td> <td class="b2"><span>{lang ss}</span></td>
<td class="b3"><span class="<!--{if $ss <= $mss*0.2}-->red<!--{elseif $ss <= $mss*0.5}-->yellow<!--{else}-->clan<!--{/if}-->">$ss / $mss</span></td> <td class="b3"><span class="<!--{if $ss <= $mss*0.2}-->red<!--{elseif $ss <= $mss*0.5}-->yellow<!--{else}-->clan<!--{/if}-->">$ss / $mss</span></td>
<td class="b2"><span>{lang killnum}</span></td> <td class="b2"><span>{lang killnum}</span></td>
......
...@@ -9,14 +9,23 @@ ...@@ -9,14 +9,23 @@
<span class="grey">正在播放:~ <span id="bgmname">$bgmname</span></span> <span class="grey">正在播放:~ <span id="bgmname">$bgmname</span></span>
</div> </div>
<!-- 战场地图 --> <!-- 战场地图 -->
<div style="width: 476px; float: left; margin-right: 5px;border-radius: 3px; border:2px solid rgba(225, 124, 226, 0.2); "> <!-- 这是人能干出来的事吗? -->
<!--{if !$horizon}-->
<div style="width: 476px; float: left; margin-right: 5px;border-radius: 3px; border:2px solid rgba(225, 124, 226, 0.2);">
<!--{else}-->
<div style="width: 476px; float: left; margin-right: 5px;border-radius: 3px; border:2px solid rgba(82, 64, 139, 0.2);">
<!--{/if}-->
<!--{eval $mapdata = init_mapdata();}--> <!--{eval $mapdata = init_mapdata();}-->
$mapdata $mapdata
</div> </div>
<!-- 控制菜单 --> <!-- 控制菜单 -->
<div style="width: 118px; float: right; margin-left: 5px;"> <div style="width: 118px; float: right; margin-left: 5px;">
<!-- 音乐控制指令 --> <!-- 音乐控制指令 -->
<!--{if !$horizon}-->
<table cellspacing="0" cellpadding="0" style="position:relative;border-radius: 3px; border:2px solid rgba(225, 124, 226, 0.2);"> <table cellspacing="0" cellpadding="0" style="position:relative;border-radius: 3px; border:2px solid rgba(225, 124, 226, 0.2);">
<!--{else}-->
<table cellspacing="0" cellpadding="0" style="position:relative;border-radius: 3px; border:2px solid rgba(82, 64, 139, 0.2);">
<!--{/if}-->
<tr> <tr>
<TD colspan="2" class="b1" style="width: 120px; height: 24px;">播放控制</TD> <TD colspan="2" class="b1" style="width: 120px; height: 24px;">播放控制</TD>
</tr> </tr>
......
...@@ -37,7 +37,7 @@ if(isset($_POST['editid']) || isset($_POST['editor'])) ...@@ -37,7 +37,7 @@ if(isset($_POST['editid']) || isset($_POST['editor']))
if($carr['itms'] == $nosta) $carr['itms'] = 0; if($carr['itms'] == $nosta) $carr['itms'] = 0;
if(!empty($carr['itmsk'])) if(!empty($carr['itmsk']))
{ {
$carr['itmsk_desc'] = parse_info_desc(get_itmsk_array($carr['itmsk']),'sk',$carr['itmk']); $carr['itmsk_desc'] = parse_skinfo_desc($carr['itmsk'],$carr['itmk']);
} }
else else
{ {
......
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