Commit 017671f5 authored by hisuinohoshi's avatar hisuinohoshi

Add sponsor(?) & findneut

update:{...}
新增了有钱真的可以为所欲为的场外援助系统;
新增了用于配送道具的快递员NPC;
新增了玩家与中立/友好NPC的互动功能与界面。暂时只会在遇到快递员取货时触发。偶像大师应该会用到这个功能;
新增了一个用于登记NPC死亡时会触发事件的函数check_kill_events();
为商店界面添加了tooltip支持;
为gambling表添加了字段'bnid';
修改了初始化npc、addnpc的部分逻辑,现在可以在编辑npc配置文件时定义社团参数等后添加的字段了。
修改了探索时遇敌的概率判定逻辑,可能可以改善目前尸体发现率过低的问题;
后台管理界面在编辑玩家/NPC时可以编辑社团相关参数了;
挪动了一些常用函数的位置;
天然呆修正;
parent 7a730329
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
define('CURSCRIPT', 'alive'); define('CURSCRIPT', 'alive');
require './include/common.inc.php'; require './include/common.inc.php';
require './include/game/special.func.php';
//extract(gkillquotes($_POST)); //extract(gkillquotes($_POST));
//unset($_GET); //unset($_GET);
...@@ -31,6 +32,23 @@ while($apdata = $db->fetch_array($result)) { ...@@ -31,6 +32,23 @@ while($apdata = $db->fetch_array($result)) {
$adata = Array(); $adata = Array();
if($gamblingon){ if($gamblingon){
//允许购买投资物品的商店类型
$gshoplist = Array
(
1=>'■ 补给品 ■',2=>'■ 药剂 ■',3=>'■ 钝器 ■',
4=>'■ 锐器 ■',5=>'■ 远程兵器 ■',6=>'■ 投掷兵器 ■',
7=>'■ 爆炸物 ■',8=>'■ 灵力兵器材料 ■',9=>'■ 防具 ■',
10=>'■ 书籍 ■',11=>'■ 电子装备 ■',12=>'■ 杂物 ■',
17=>'■ 限量福袋 ■',13=>'■ 埃克法轻工特供武器 ■',14=>'■ 林苍月的提示 ■',
15=>'■ Key社纪念品专卖 ■',16=>'■ NPC解锁钥匙 ■',18=>'■ 上级者向物品 ■',
);
//切糕与游戏币的兑换比率:1切糕=2块钱
$credits2_values = 2;
//不能赞助自己 1:启用 0:关闭
$no_self_sponsored = 0;
//赞助者的头衔
$sponsor_title = '场外热心玩家';
//初始化赌局变量
$gbinfo = ''; $gbinfo = '';
$gbingdata = $gbeddata = $gambled = Array(); $gbingdata = $gbeddata = $gambled = Array();
$gbpool = 0; $gbpool = 0;
...@@ -58,40 +76,131 @@ if($gamblingon){ ...@@ -58,40 +76,131 @@ if($gamblingon){
// $ad['odds'] = podds($ad); // $ad['odds'] = podds($ad);
} }
//判断是否满足下注条件 //判断是否满足下注条件
if($cuser && $cpass){ if($cuser && $cpass)
{
if($gamestate < 20) { $gbinfo .= $_ERROR['no_start']; } if($gamestate < 20) { $gbinfo .= $_ERROR['no_start']; }
//elseif($now - $starttime >= 600) { $gbinfo .= '游戏开始超过10分钟,不可进行下注!'; } elseif($gbmode=='gamble' && $now - $starttime >= 600) { $gbinfo .= '游戏开始超过10分钟,不可进行下注!'; }
elseif($areanum >= $areaadd) { $gbinfo .= '游戏超过一禁,不可进行下注!'; } elseif($gbmode=='gamble' && $areanum >= $areaadd) { $gbinfo .= '游戏超过一禁,不可进行下注!'; }
elseif($gamestate >= 30) { $gbinfo .= '游戏已停止激活,不可进行下注!'; } elseif($gamestate >= 30) { $gbinfo .= '游戏已停止激活,不可进行下注或赞助!'; }
elseif($gbpool >= 8000 && $wager>50) { $gbinfo .= '本局总奖池已经超过8000切糕上限,此时每人最多只能下注50切糕!'; } elseif($gbpool >= 8000 && $wager>50) { $gbinfo .= '本局总奖池已经超过8000切糕上限,此时每人最多只能下注50切糕!'; }
else{ else
{
$uresult = $db->query("SELECT * FROM {$tablepre}users WHERE username='$cuser'"); $uresult = $db->query("SELECT * FROM {$tablepre}users WHERE username='$cuser'");
if(!$db->num_rows($uresult)) { $gbinfo .= $_ERROR['login_check']; } if(!$db->num_rows($uresult))
else{ {
$gbinfo .= $_ERROR['login_check'];
}
else
{
$udata = $db->fetch_array($uresult); $udata = $db->fetch_array($uresult);
if($udata['password'] != $cpass) { $gbinfo .= $_ERROR['wrong_pw']; } if($udata['password'] != $cpass) { $gbinfo .= $_ERROR['wrong_pw']; }
elseif($udata['groupid'] <= 0) { $gbinfo .= $_ERROR['user_ban']; } elseif($udata['groupid'] <= 0) { $gbinfo .= $_ERROR['user_ban']; }
elseif($alivenum <= 0){ $gbinfo .= '当前生存人数为0,无法下注!';} elseif($alivenum <= 0){ $gbinfo .= '当前生存人数为0,无法下注!<br>';}
else{ else
{
$uid = $udata['uid'];$uname = $udata['username']; $uid = $udata['uid'];$uname = $udata['username'];
$credits2 = $udata['credits2']; $credits2 = $udata['credits2'];
if($gbmode == 'gamble'){ if(isset($gbmode) && $gbmode!=='none')
$wager = ceil((int)$wager); {
if(!$bet || $bet == 'none'){ $gbinfo .= '投注对象有误,请检查输入。';} //脑瓜子嗡嗡的……连goto都用上了
elseif($wager <= 0){ $gbinfo .= '投注数额有误,请检查输入。';} if(!$bet || $bet == 'none')
elseif($wager > $credits2 || $wager > 1000 ){ $gbinfo .= '投注数额过大。每人每局最多只能投注总计不超过1000切糕。';} {
elseif ($gbpool >= 8000 && $wager > 50) { $gbinfo .= '本局总奖池已经超过8000切糕上限,此时每人最多只能下注50切糕!'; } $gbinfo .= '选择对象有误,请检查输入。<br>';
else{ goto gb_result;
$bet = (int)$bet; }
$bresult = $db->query("SELECT * FROM {$tablepre}players LEFT JOIN {$tablepre}users ON {$tablepre}players.name={$tablepre}users.username WHERE {$tablepre}players.pid='$bet'"); $bresult = $db->query("SELECT * FROM {$tablepre}players LEFT JOIN {$tablepre}users ON {$tablepre}players.name={$tablepre}users.username WHERE {$tablepre}players.pid='$bet'");
if(!$db->num_rows($bresult)) { $gbinfo .= '投注对象不存在。'; } if(!$db->num_rows($bresult))
else{ {
$gbinfo .= '选择的对象不存在。<br>';
goto gb_result;
}
$bdata = $db->fetch_array($bresult); $bdata = $db->fetch_array($bresult);
$bname = $bdata['name']; if($bdata['hp'] <= 0 || $bdata['state'] >= 10)
if($bdata['hp'] <= 0 || $bdata['state'] >= 10) {$gbinfo .= '投注对象已死亡,无法下注。'; } {
elseif($bdata['type'] >=1) {$gbinfo .= '投注对象不是人类!'; } $gbinfo .= '选择的对象已死亡,无法下注或赞助。';
elseif($gbnum && isset($gbeddata[$udata['uid']])){//已经下注 goto gb_result;
}
if($bdata['type'] >=1)
{
$gbinfo .= '选择的对象不是玩家!';
goto gb_result;
}
$bet = (int)$bet;
$bname = $bdata['name']; $bid = $bdata['pid'];
$gbudata = $gbeddata[$udata['uid']]; $gbudata = $gbeddata[$udata['uid']];
if($no_self_sponsored && $bname==$uname)
{
$gbinfo .= '不能给自己下注或赞助!<br>';
goto gb_result;
}
if($gbmode == 'gsponsor')
{
//使用切糕点外卖
if ($gbudata['bitm'] || $gbudata['bnid'] )
{
$gbinfo .= '你派出去的快递员还没回来,耐心等等吧!<br>';
goto gb_result;
}
$iresult=$db->query("SELECT * FROM {$tablepre}shopitem WHERE sid = '$gbid'");
$iteminfo = $db->fetch_array($iresult);
$bnum = (int)$gbinum;
if(!$iteminfo)
{
$gbinfo .= '要购买的道具不存在!<br><br>';
goto gb_result;
}
if($iteminfo['num'] <= 0) {
$gbinfo .= '此物品已经售空!<br><br>';
goto gb_result;
} elseif($bnum<=0) {
$gbinfo .= '购买数量必须为大于0的整数。<br><br>';
goto gb_result;
} elseif($bnum>$iteminfo['num']) {
$gbinfo .= '购买数量必须小于存货数量。<br><br>';
goto gb_result;
} elseif($credits2*$credits2_values < $iteminfo['price']*$bnum) {
$gbinfo .= '切糕不足,不能购买此物品!<br><br>';
goto gb_result;
} elseif(!preg_match('/^(WC|WD|WF|Y|B|C|TN|GB|H|V|M)/',$iteminfo['itmk'])&&$bnum>1) {
$gbinfo .= '此物品一次只能购买一个。<br><br>';
goto gb_result;
}elseif($iteminfo['area']> $areanum/$areaadd){
$gbinfo .= '此物品尚未开放出售!<br><br>';
goto gb_result;
}
$inum = $iteminfo['num']-$bnum;
$sid = $iteminfo['sid'];
//扣除商店库存
$db->query("UPDATE {$tablepre}shopitem SET num = '$inum' WHERE sid = '$sid'");
//扣除切糕
$cost_credits2 = round($iteminfo['price']*$bnum/$credits2_values);
$credits2 -= $cost_credits2;
$db->query("UPDATE {$tablepre}users SET credits2='$credits2' WHERE uid='$uid'");
//发news
$gbinfo .= "花费{$cost_credits2}切糕购买了{$bnum}{$iteminfo['item']}。<br>";
addnews($now,'gpost',$sponsor_title.' '.$udata['username'],$iteminfo['item'],$bdata['nick'].' '.$bdata['name'],$plsinfo[$bdata['pls']],$bnum);
//打包快递给快递员 返回新生成的快递员pid
$gclb = Array('clbpara'=>Array('sponsor'=>$uid,'post'=>$bet,'postid'=>6),); //记录赞助者的uid、收货方的pid、道具位置
$gitem = Array(6,$iteminfo['item'],$iteminfo['itmk'],$iteminfo['itme'],$iteminfo['itms']*$bnum,$iteminfo['itmsk']);//打包快递
include_once GAME_ROOT.'./include/system.func.php';
$nid = addnpc(90,0,1,$now,$gclb,$gitem,$bdata['pls'])[0];
$gbinfo .= "快递员已带着你赞助的商品前往{$bdata['name']}所在的{$plsinfo[$bdata['pls']]}!谢谢惠顾~<br>";
//存一条发快递记录到gambling表里,一个玩家在快递被接收前不能发第二份快递。防止有人狂买低价商品挤爆players表。
//有过投注记录
if($gbnum && isset($gbeddata[$udata['uid']])) $db->query("UPDATE {$tablepre}gambling SET bnid='$nid' WHERE uid='$uid'");
//没有投注记录,新生成一条
else $db->query("INSERT INTO {$tablepre}gambling (uid,uname,bnid) VALUES ('$uid','$uname','$nid')");
}
elseif($gbmode == 'gamble')
{
//使用切糕刚不灵
$wager = ceil((int)$wager);
if($wager > $credits2 || $wager > 1000 ){ $gbinfo .= '投注数额过大。每人每局最多只能投注总计不超过1000切糕。';}
elseif ($gbpool >= 8000 && $wager > 50) { $gbinfo .= '本局总奖池已经超过8000切糕上限,此时每人最多只能下注50切糕!'; }
else
{
if($wager <= 0){ $gbinfo .= '投注数额有误,请检查输入。';}
elseif($gbnum && isset($gbeddata[$udata['uid']])){//已经下注
if ($gbudata['wager'] + $wager > 1000 ) if ($gbudata['wager'] + $wager > 1000 )
{ {
$gbinfo .= '投注数额过大。每人每局最多只能投注总计不超过1000切糕。'; $gbinfo .= '投注数额过大。每人每局最多只能投注总计不超过1000切糕。';
...@@ -100,11 +209,11 @@ if($gamblingon){ ...@@ -100,11 +209,11 @@ if($gamblingon){
{ {
$gbinfo .= '本局总奖池已经超过8000切糕上限,此时每人最多只能下注50切糕!'; $gbinfo .= '本局总奖池已经超过8000切糕上限,此时每人最多只能下注50切糕!';
} }
else if($gbudata['bid'] != $bet){$gbinfo .= '追加切糕的对象必须跟之前相同。';} else if($gbudata['bid'] != $bet && $gbudata['bid'] != 0){$gbinfo .= '追加切糕的对象必须跟之前相同。';}
else{ else{
$bwager = $gbudata['wager'] + $wager; $bwager = $gbudata['wager'] + $wager;
$odds = ($gbudata['wager'] * $gbudata['odds'] + $nowodds * $wager)/$bwager; $odds = ($gbudata['wager'] * $gbudata['odds'] + $nowodds * $wager)/$bwager;
$db->query("UPDATE {$tablepre}gambling SET wager='$bwager',odds='$odds' WHERE uid='$uid'"); $db->query("UPDATE {$tablepre}gambling SET bid='$bet',bname='$bname',wager='$bwager',odds='$odds' WHERE uid='$uid'");
if($db->affected_rows() == 1){ if($db->affected_rows() == 1){
$gbeddata[$udata['uid']]['wager']+=$wager; $gbeddata[$udata['uid']]['wager']+=$wager;
//$gbeddata[$udata['uid']]['odds']=$odds; //$gbeddata[$udata['uid']]['odds']=$odds;
...@@ -141,13 +250,14 @@ if($gamblingon){ ...@@ -141,13 +250,14 @@ if($gamblingon){
} }
} }
} }
gb_result:
if($gbnum && isset($gbeddata[$udata['uid']])){ if($gbnum && isset($gbeddata[$udata['uid']])){
$gbudata = $gbeddata[$udata['uid']]; $gbudata = $gbeddata[$udata['uid']];
$gbinfo .= '你已下注,对象为:'.$gbudata['bname'].',切糕为:'.$gbudata['wager'].';'; if($gbudata['wager']>0) $gbinfo .= '<span class=\'yellow\'>你已下注,对象为:'.$gbudata['bname'].',下注的切糕为:'.$gbudata['wager'].';</span><br>';
//var_dump($gbeddata[$udata['uid']]); if($gbudata['bnid']>0) $gbinfo .= '<span class=\'yellow\'>你赞助的包裹尚在运输途中!</span><br>';
$gbact = 1; $gbact = 1;
}else{ }else{
$gbinfo .= '你尚未下注。'; $gbinfo .= '<span class=\'grey\'>你尚未下注或投资。</span>';
$gbact = 0; $gbact = 0;
} }
} }
......
...@@ -102,6 +102,20 @@ if((strpos($action,'corpse')===0 || strpos($action,'pacorpse')===0) && $gamestat ...@@ -102,6 +102,20 @@ if((strpos($action,'corpse')===0 || strpos($action,'pacorpse')===0) && $gamestat
} }
} }
} }
elseif((strpos($action,'neut')===0)){
$nid = str_replace('neut','',$action);
if($nid){
$result = $db->query("SELECT * FROM {$tablepre}players WHERE pid='$nid' AND hp>0");
if($db->num_rows($result)>0){
$edata = $db->fetch_array($result);
include_once GAME_ROOT.'./include/game/revcombat.func.php';
findneut($edata,1);
extract($edata,EXTR_PREFIX_ALL,'w');
init_battle(1);
$main = 'battle';
}
}
}
if($hp > 0 && $coldtimeon && $showcoldtimer && $rmcdtime){$log .= "行动冷却时间:<span id=\"timer\" class=\"yellow\">0.0</span>秒<script type=\"text/javascript\">demiSecTimerStarter($rmcdtime);</script><br>";} if($hp > 0 && $coldtimeon && $showcoldtimer && $rmcdtime){$log .= "行动冷却时间:<span id=\"timer\" class=\"yellow\">0.0</span>秒<script type=\"text/javascript\">demiSecTimerStarter($rmcdtime);</script><br>";}
if ($club==0) if ($club==0)
......
...@@ -1684,6 +1684,73 @@ $anpcinfo = array ...@@ -1684,6 +1684,73 @@ $anpcinfo = array
), ),
), ),
90 => array
(
'mode' => 2,
'num' => 1,
'pass' => 'bra',
'club' => 0,
'bid' => 0,
'inf' => '',
'rage' => 0,
'pose'=> 3,
'tactic' => 2,
'killnum' => 0,
'teamID' => '',
'teamPass' => '',
'gd' => 'f',
'pls' => 99,
'mhp' => 520,
'msp' => 200,
'att' => 80,
'def' => 233,
'lvl' => 23,
'skill' => 77,
'money' => 250,
'arb' => '黄色的冲锋衣',
'arbk' => 'DB',
'arbe' => 25,
'arbs' => 50,
'arh' => '黄色的骑行头盔',
'arhk' => 'DH',
'arhe' => 25,
'arhs' => 50,
'ara' => '智能手环',
'arak' => 'DA',
'arae' => 25,
'aras' => 50,
'arf' => '运动鞋',
'arfk' => 'DF',
'arfe' => 25,
'arfs' => 50,
'art' => '快递单',
'artk' => 'A',
'arte' => 1,
'arts' => 1,
'artsk' => 'z',
'itm4' => '锅?',
'itmk4' => 'Y',
'itme4' => 1,
'itms4' => 1,
'itm5' => '压缩饼干',
'itmk5' => 'HB',
'itme5' => 35,
'itms5' => 10,
'sub' => array
(
0 => array
(
'name' => '迷之搬运工',
'icon' => 10,
'wep' => '大喇叭',
'wepk' => 'WP',
'wepe' => 25,
'weps' => 75,
'wepsk' => 'w',
),
),
),
92 => array 92 => array
( (
'mode' => 2, 'mode' => 2,
......
...@@ -48,9 +48,9 @@ $mixinfo = array ...@@ -48,9 +48,9 @@ $mixinfo = array
array('class' => 'wp', 'stuff' => array('☆法式长棍面包☆','水'),'result' => array('法式面包棍棒','WP',120,25,'NRz'),), array('class' => 'wp', 'stuff' => array('☆法式长棍面包☆','水'),'result' => array('法式面包棍棒','WP',120,25,'NRz'),),
array('class' => 'wp', 'stuff' => array('棍棒','岩石','钉','毒药'),'result' => array('绽花毒藤','WKP',180,150,'Np'),), array('class' => 'wp', 'stuff' => array('棍棒','岩石','钉','毒药'),'result' => array('绽花毒藤','WKP',180,150,'Np'),),
array('class' => 'wp', 'stuff' => array('向日葵','月光碎片','铁链','超级重锤'),'result' => array('太极','WP',180,150,'Nwc'),), array('class' => 'wp', 'stuff' => array('向日葵','月光碎片','铁链','超级重锤'),'result' => array('太极','WP',180,150,'Nwc'),),
array('class' => 'wp', 'stuff' => array('红宝石方块','制御棒','延展御柱','夜雀歌谱'),'result' => array('晨星链刃','WKP',827,260,'rdfc'),), array('class' => 'wp', 'stuff' => array('红宝石方块','★制御棒★','『延展御柱』','夜雀歌谱'),'result' => array('晨星链刃','WKP',827,260,'rdfc'),),
array('class' => 'wp', 'stuff' => array('岩石','火把','阔剑地雷'),'result' => array('阳炎之怒','WP',188,30,'du'),), array('class' => 'wp', 'stuff' => array('岩石','火把','★阔剑地雷★'),'result' => array('阳炎之怒','WP',188,30,'du'),),
array('class' => 'wp', 'stuff' => array('阳炎之怒','雏人型','祝福宝石'),'result' => array('风滚草','WP',156,77,'rcd'),), array('class' => 'wp', 'stuff' => array('阳炎之怒','雏人形','『祝福宝石』'),'result' => array('风滚草','WP',156,77,'rcd'),),
array('class' => 'wp', 'stuff' => array('风滚草','晨星链刃','太极','海胆链球'),'result' => array('龙魂破','WKP',6600,2200,'ZrdfN'),), array('class' => 'wp', 'stuff' => array('风滚草','晨星链刃','太极','海胆链球'),'result' => array('龙魂破','WKP',6600,2200,'ZrdfN'),),
array('class' => 'wg', 'stuff' => array('火把','红宝石方块','某种电子零件'),'result' => array('『红石电路』','X',1,1,''),), array('class' => 'wg', 'stuff' => array('火把','红宝石方块','某种电子零件'),'result' => array('『红石电路』','X',1,1,''),),
......
...@@ -86,7 +86,7 @@ $typeinfo = Array( ...@@ -86,7 +86,7 @@ $typeinfo = Array(
89=>'残像回声', 89=>'残像回声',
90=>'各路党派', 90=>'各路党派',
91=>'各路党派', 91=>'各路党派',
92=>'种火' 92=>'种火',
); );
$killmsginfo = Array( $killmsginfo = Array(
0=>'', 0=>'',
...@@ -942,6 +942,7 @@ $iteminfo = Array(//注意顺序,AB必须在A的前面,以此类推 ...@@ -942,6 +942,7 @@ $iteminfo = Array(//注意顺序,AB必须在A的前面,以此类推
//'R' => '探测仪器', //'R' => '探测仪器',
'ss' => '歌词卡片', 'ss' => '歌词卡片',
'T' => '陷阱', 'T' => '陷阱',
'U' => '扫雷设备',
'V'=> '技能书籍', 'V'=> '技能书籍',
'VV'=> '技能书籍', 'VV'=> '技能书籍',
'WN' => '空手',#空手 'WN' => '空手',#空手
......
...@@ -13,6 +13,7 @@ input {cursor: crosshair;} ...@@ -13,6 +13,7 @@ input {cursor: crosshair;}
.subtitle {font-family: "微软雅黑"; margin: 6px;color: #cceafa; width: 100%;font-size: 24px;font-weight:400;} .subtitle {font-family: "微软雅黑"; margin: 6px;color: #cceafa; width: 100%;font-size: 24px;font-weight:400;}
.headerlink{} .headerlink{}
.small {font-size: 9pt} .small {font-size: 9pt}
.center-text {text-align: center;}
.ver a{font:bold 10pt "Viner Hand ITC","隶书" serif;color:#ff0000;} .ver a{font:bold 10pt "Viner Hand ITC","隶书" serif;color:#ff0000;}
.b1 {background-color:rgba(225, 124, 226, 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;} .b1 {background-color:rgba(225, 124, 226, 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(225, 124, 226, 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;} .b2 {background-color:rgba(225, 124, 226, 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;}
...@@ -99,6 +100,8 @@ table.admin td.tdtitle { ...@@ -99,6 +100,8 @@ table.admin td.tdtitle {
.evergreen{color:#98fb98;font: bold 10pt "微软雅黑" serif;line-height:16px} .evergreen{color:#98fb98;font: bold 10pt "微软雅黑" serif;line-height:16px}
.evergreen2{color:#98fb98;font:18pt "微软雅黑" serif;} .evergreen2{color:#98fb98;font:18pt "微软雅黑" serif;}
.lightgreen{color:#8AE234;font: bold 10pt "微软雅黑" serif;line-height:16px} .lightgreen{color:#8AE234;font: bold 10pt "微软雅黑" serif;line-height:16px}
.magenta{color:#FF00FF;font: bold 10pt "微软雅黑" serif;line-height:16px}
.sienna{color:#EE7942;font: bold 10pt "微软雅黑" serif;line-height:16px}
.dmg {color:#ff0000;font: bold 10pt "微软雅黑" serif;} .dmg {color:#ff0000;font: bold 10pt "微软雅黑" serif;}
.grey{color:#999; font: bold 10pt "微软雅黑" serif;line-height:16px} .grey{color:#999; font: bold 10pt "微软雅黑" serif;line-height:16px}
.linen{color:rgb(200,192,184); font: bold 10pt "微软雅黑" serif;line-height:16px} .linen{color:rgb(200,192,184); font: bold 10pt "微软雅黑" serif;line-height:16px}
......
...@@ -101,6 +101,6 @@ CREATE TABLE bra_gambling ( ...@@ -101,6 +101,6 @@ CREATE TABLE bra_gambling (
bname char(15) NOT NULL default '', bname char(15) NOT NULL default '',
wager int unsigned NOT NULL default '0', wager int unsigned NOT NULL default '0',
odds decimal(8,4) unsigned NOT NULL default '0', odds decimal(8,4) unsigned NOT NULL default '0',
bnid smallint unsigned NOT NULL default '0',
PRIMARY KEY (gid) PRIMARY KEY (gid)
) ENGINE=MyISAM; ) ENGINE=MyISAM;
\ No newline at end of file
...@@ -118,7 +118,8 @@ if($command == 'kill' || $command == 'live' || $command == 'del') { ...@@ -118,7 +118,8 @@ if($command == 'kill' || $command == 'live' || $command == 'del') {
} }
} }
} elseif($command == 'submitedit') { } elseif($command == 'submitedit') {
$db->query("UPDATE {$tablepre}players SET gd='$gd',icon='$icon',club='$club',sNo='$sNo',hp='$hp',mhp='$mhp',sp='$sp',msp='$msp',att='$att',def='$def',pls='$pls',lvl='$lvl',exp='$exp',money='$money',bid='$bid',inf='$inf',rage='$rage',pose='$pose',tactic='$tactic',killnum='$killnum',wp='$wp',wk='$wk',wg='$wg',wc='$wc',wd='$wd',wf='$wf',teamID='$teamID',teamPass='$teamPass',wep='$wep',wepk='$wepk',wepe='$wepe',weps='$weps',wepsk='$wepsk',arb='$arb',arbk='$arbk',arbe='$arbe',arbs='$arbs',arbsk='$arbsk',arh='$arh',arhk='$arhk',arhe='$arhe',arhs='$arhs',arhsk='$arhsk',ara='$ara',arak='$arak',arae='$arae',aras='$aras',arask='$arask',arf='$arf',arfk='$arfk',arfe='$arfe',arfs='$arfs',arfsk='$arfsk',art='$art',artk='$artk',arte='$arte',arts='$arts',artsk='$artsk',itm0='$itm0',itmk0='$itmk0',itme0='$itme0',itms0='$itms0',itmsk0='$itmsk0',itm1='$itm1',itmk1='$itmk1',itme1='$itme1',itms1='$itms1',itmsk1='$itmsk1',itm2='$itm2',itmk2='$itmk2',itme2='$itme2',itms2='$itms2',itmsk2='$itmsk2',itm3='$itm3',itmk3='$itmk3',itme3='$itme3',itms3='$itms3',itmsk3='$itmsk3',itm4='$itm4',itmk4='$itmk4',itme4='$itme4',itms4='$itms4',itmsk4='$itmsk4',itm5='$itm5',itmk5='$itmk5',itme5='$itme5',itms5='$itms5',itmsk5='$itmsk5',itm6='$itm6',itmk6='$itmk6',itme6='$itme6',itms6='$itms6',itmsk6='$itmsk6' where pid='$pid'"); if(is_array($clbpara)) $clbpara = json_encode($clbpara);
$db->query("UPDATE {$tablepre}players SET gd='$gd',icon='$icon',club='$club',sNo='$sNo',hp='$hp',mhp='$mhp',sp='$sp',msp='$msp',att='$att',def='$def',pls='$pls',lvl='$lvl',exp='$exp',clbstatusa='$clbstatusa',clbstatusb='$clbstatusb',clbstatusc='$clbstatusc',clbstatusd='$clbstatusd',clbstatuse='$clbstatuse',clbpara='$clbpara',money='$money',bid='$bid',inf='$inf',rage='$rage',pose='$pose',tactic='$tactic',killnum='$killnum',wp='$wp',wk='$wk',wg='$wg',wc='$wc',wd='$wd',wf='$wf',teamID='$teamID',teamPass='$teamPass',wep='$wep',wepk='$wepk',wepe='$wepe',weps='$weps',wepsk='$wepsk',arb='$arb',arbk='$arbk',arbe='$arbe',arbs='$arbs',arbsk='$arbsk',arh='$arh',arhk='$arhk',arhe='$arhe',arhs='$arhs',arhsk='$arhsk',ara='$ara',arak='$arak',arae='$arae',aras='$aras',arask='$arask',arf='$arf',arfk='$arfk',arfe='$arfe',arfs='$arfs',arfsk='$arfsk',art='$art',artk='$artk',arte='$arte',arts='$arts',artsk='$artsk',itm0='$itm0',itmk0='$itmk0',itme0='$itme0',itms0='$itms0',itmsk0='$itmsk0',itm1='$itm1',itmk1='$itmk1',itme1='$itme1',itms1='$itms1',itmsk1='$itmsk1',itm2='$itm2',itmk2='$itmk2',itme2='$itme2',itms2='$itms2',itmsk2='$itmsk2',itm3='$itm3',itmk3='$itmk3',itme3='$itme3',itms3='$itms3',itmsk3='$itmsk3',itm4='$itm4',itmk4='$itmk4',itme4='$itme4',itms4='$itms4',itmsk4='$itmsk4',itm5='$itm5',itmk5='$itmk5',itme5='$itme5',itms5='$itms5',itmsk5='$itmsk5',itm6='$itm6',itmk6='$itmk6',itme6='$itme6',itms6='$itms6',itmsk6='$itmsk6' where pid='$pid'");
if(!$db->affected_rows()){ if(!$db->affected_rows()){
$cmd_info = "无法修改角色 $name"; $cmd_info = "无法修改角色 $name";
} else { } else {
......
...@@ -121,7 +121,8 @@ if($command == 'kill' || $command == 'live' || $command == 'del') { ...@@ -121,7 +121,8 @@ if($command == 'kill' || $command == 'live' || $command == 'del') {
} }
} }
} elseif($command == 'submitedit') { } elseif($command == 'submitedit') {
$db->query("UPDATE {$tablepre}players SET gd='$gd',icon='$icon',club='$club',sNo='$sNo',hp='$hp',mhp='$mhp',sp='$sp',msp='$msp',ss='$ss',mss='$mss',att='$att',def='$def',pls='$pls',achievement='$achievement',exp='$exp',money='$money',bid='$bid',inf='$inf',rage='$rage',pose='$pose',tactic='$tactic',killnum='$killnum',wp='$wp',wk='$wk',wg='$wg',wc='$wc',wd='$wd',wf='$wf',teamID='$teamID',achievement='$achievement',wep='$wep',wepk='$wepk',wepe='$wepe',weps='$weps',wepsk='$wepsk',arb='$arb',arbk='$arbk',arbe='$arbe',arbs='$arbs',arbsk='$arbsk',arh='$arh',arhk='$arhk',arhe='$arhe',arhs='$arhs',arhsk='$arhsk',ara='$ara',arak='$arak',arae='$arae',aras='$aras',arask='$arask',arf='$arf',arfk='$arfk',arfe='$arfe',arfs='$arfs',arfsk='$arfsk',art='$art',artk='$artk',arte='$arte',arts='$arts',artsk='$artsk',itm0='$itm0',itmk0='$itmk0',itme0='$itme0',itms0='$itms0',itmsk0='$itmsk0',itm1='$itm1',itmk1='$itmk1',itme1='$itme1',itms1='$itms1',itmsk1='$itmsk1',itm2='$itm2',itmk2='$itmk2',itme2='$itme2',itms2='$itms2',itmsk2='$itmsk2',itm3='$itm3',itmk3='$itmk3',itme3='$itme3',itms3='$itms3',itmsk3='$itmsk3',itm4='$itm4',itmk4='$itmk4',itme4='$itme4',itms4='$itms4',itmsk4='$itmsk4',itm5='$itm5',itmk5='$itmk5',itme5='$itme5',itms5='$itms5',itmsk5='$itmsk5',itm6='$itm6',itmk6='$itmk6',itme6='$itme6',itms6='$itms6',itmsk6='$itmsk6' where pid='$pid'"); if(is_array($clbpara)) $clbpara = json_encode($clbpara);
$db->query("UPDATE {$tablepre}players SET gd='$gd',icon='$icon',club='$club',sNo='$sNo',hp='$hp',mhp='$mhp',sp='$sp',msp='$msp',ss='$ss',mss='$mss',att='$att',def='$def',pls='$pls',achievement='$achievement',exp='$exp',clbstatusa='$clbstatusa',clbstatusb='$clbstatusb',clbstatusc='$clbstatusc',clbstatusd='$clbstatusd',clbstatuse='$clbstatuse',clbpara='$clbpara',money='$money',bid='$bid',inf='$inf',rage='$rage',pose='$pose',tactic='$tactic',killnum='$killnum',wp='$wp',wk='$wk',wg='$wg',wc='$wc',wd='$wd',wf='$wf',teamID='$teamID',achievement='$achievement',wep='$wep',wepk='$wepk',wepe='$wepe',weps='$weps',wepsk='$wepsk',arb='$arb',arbk='$arbk',arbe='$arbe',arbs='$arbs',arbsk='$arbsk',arh='$arh',arhk='$arhk',arhe='$arhe',arhs='$arhs',arhsk='$arhsk',ara='$ara',arak='$arak',arae='$arae',aras='$aras',arask='$arask',arf='$arf',arfk='$arfk',arfe='$arfe',arfs='$arfs',arfsk='$arfsk',art='$art',artk='$artk',arte='$arte',arts='$arts',artsk='$artsk',itm0='$itm0',itmk0='$itmk0',itme0='$itme0',itms0='$itms0',itmsk0='$itmsk0',itm1='$itm1',itmk1='$itmk1',itme1='$itme1',itms1='$itms1',itmsk1='$itmsk1',itm2='$itm2',itmk2='$itmk2',itme2='$itme2',itms2='$itms2',itmsk2='$itmsk2',itm3='$itm3',itmk3='$itmk3',itme3='$itme3',itms3='$itms3',itmsk3='$itmsk3',itm4='$itm4',itmk4='$itmk4',itme4='$itme4',itms4='$itms4',itmsk4='$itmsk4',itm5='$itm5',itmk5='$itmk5',itme5='$itme5',itms5='$itms5',itmsk5='$itmsk5',itm6='$itm6',itmk6='$itmk6',itme6='$itme6',itms6='$itms6',itmsk6='$itmsk6' where pid='$pid'");
if(!$db->affected_rows()){ if(!$db->affected_rows()){
$cmd_info = "无法修改角色 $name"; $cmd_info = "无法修改角色 $name";
} else { } else {
......
...@@ -4,143 +4,6 @@ if(!defined('IN_GAME')) { ...@@ -4,143 +4,6 @@ if(!defined('IN_GAME')) {
exit('Access Denied'); exit('Access Denied');
} }
//格式化储存player表 可能也是四面的遗产
function update_db_player_structure($type=0)
{
global $db,$tablepre,$checkstr;
$db_player_structure = $db_player_structure_types = $tpldata = Array();
$dps_need_update = 0;//判定是否需要更新玩家字段
$dps_file = GAME_ROOT.'./gamedata/bak/db_player_structure.config.php';
$sql_file = GAME_ROOT.'./gamedata/sql/players.sql';
if(!file_exists($dps_file) || filemtime($sql_file) > filemtime($dps_file)){
$dps_need_update = 1;
}
if($dps_need_update){//如果要更新,直接新建一个表,不需要依赖已有的players表
$sql = file_get_contents($sql_file);
$sql = str_replace("\r", "\n", str_replace(' bra_', ' '.$tablepre.'tmp_', $sql));
$db->queries($sql);
$result = $db->query("DESCRIBE {$tablepre}tmp_players");
while ($sttdata = $db->fetch_array($result))
{
global ${$sttdata['Field']};
$db_player_structure[] = $sttdata['Field'];
$db_player_structure_types[$sttdata['Field']] = $sttdata['Type'];
//array_push($db_player_structure,$pdata['Field']);
}
$dps_cont = str_replace('?>','',str_replace('<?','<?php',$checkstr));
$dps_cont .= '$db_player_structure = ' . var_export($db_player_structure,1).";\r\n".'$db_player_structure_types = ' . var_export($db_player_structure_types,1).";\r\n?>";
writeover($dps_file, $dps_cont);
chmod($dps_file,0777);
}else{//若不需要更新,则直接读文件就好
include $dps_file ;
}
return $type ? $db_player_structure_types : $db_player_structure;
}
//返回一个只有数据库合法字段键名的pdata数组
function player_format_with_db_structure($data){
$ndata=Array();
$db_player_structure = update_db_player_structure();
foreach ($db_player_structure as $key){
if (isset($data[$key])) {
$ndata[$key]=$data[$key];
}
}
return $ndata;
}
//将sk转为数组格式 只会转换登记过的属性
function get_itmsk_array($sk_value)
{
global $itemspkinfo;
$ret = Array();
$i = 0;
while ($i < strlen($sk_value))
{
$sub = substr($sk_value,$i,1);
$i++;
if(!empty($sub) && array_key_exists($sub,$itemspkinfo)) array_push($ret,$sub);
}
return $ret;
}
//还原itmsk为字符串 $max_length:字符串长度上限
function get_itmsk_strlen($sk_value,$max_length=5)
{
global $itemspkinfo;
$ret = ''; $sk_count = 0;
foreach($sk_value as $sk)
{
if(array_key_exists($sk,$itemspkinfo))
{
$ret.=$sk;
$sk_count+=strlen($sk);
}
if($sk_count>=$max_length) break;
}
return $ret;
}
//为显示在主界面、尸体发现界面、游戏帮助界面的道具名、道具类、道具属性添加额外描述
//传入$n=道具名/类/属性;$t='m'(使用名称数组)/'k'(类别)/'sk'(属性);$short=1(传入的$n为数组情况下才有效,缩写属性);$class(如果传入的$n没有匹配的样式,则应用该样式)
function parse_itm_desc($n,$t,$short=0,$c=NULL)
{
global $iteminfo,$itemspkinfo;
global $iteminfo_tooltip,$itemkinfo_tooltip,$itemspkinfo_tooltip,$iteminfo_tooltip_desc;
$s = "<span "; $p1 = ''; $p2 = ''; $ret = '';
switch($t)
{
//处理类别
case $t=='k':
if(isset($itemkinfo_tooltip[$n]['title'])) $p1 = "title=\"".$itemkinfo_tooltip[$n]['title']."\"";
if(isset($itemkinfo_tooltip[$n]['class'])) $p2 = "class=\"".$itemkinfo_tooltip[$n]['class']."\"";
$n = $iteminfo[$n];
break;
//处理属性
case $t=='sk':
//如果传入的n为数组,且开启缩写模式,则输出一段缩写
if($short && is_array($n))
{
$p1 = "title=\"";
$sk1 = $itemspkinfo[current($n)]; $sk2 = $itemspkinfo[end($n)]; $skn = '';
foreach($n as $sk_value)
{
if(!empty($skn)) $skn .='+'.$itemspkinfo[$sk_value];
else $skn = $itemspkinfo[$sk_value];
}
$p1.=$skn; $n = $sk1.'+...+'.$sk2; $p2 = "\"";
}
else
{
if(isset($itemspkinfo_tooltip[$n]['title'])) $p1 = "title=\"".$itemspkinfo_tooltip[$n]['title']."\"";
if(isset($itemspkinfo_tooltip[$n]['class'])) $p2 = "class=\"".$itemspkinfo_tooltip[$n]['class']."\"";
$n = $itemspkinfo[$n];
}
break;
//处理名字
case $t=='m':
$filter_n = preg_replace('/锋利的|电气|毒性|钉|\[.*\]|-改/', '', $n);
if(isset($iteminfo_tooltip[$filter_n]))
{
if(is_array($iteminfo_tooltip[$filter_n]))
{
if(isset($iteminfo_tooltip[$filter_n]['title'])) $p1 = "title=\"".$iteminfo_tooltip[$filter_n]['title']."\"";
if(isset($iteminfo_tooltip[$filter_n]['class'])) $p2 = "class=\"".$iteminfo_tooltip[$filter_n]['class']."\"";
}
elseif(isset($iteminfo_tooltip_desc[$iteminfo_tooltip[$filter_n]]))
{ //使用可复用描述 越来越离谱了
if(isset($iteminfo_tooltip_desc[$iteminfo_tooltip[$filter_n]]['title'])) $p1 = "title=\"".$iteminfo_tooltip_desc[$iteminfo_tooltip[$filter_n]]['title']."\"";
if(isset($iteminfo_tooltip_desc[$iteminfo_tooltip[$filter_n]]['class'])) $p2 = "class=\"".$iteminfo_tooltip_desc[$iteminfo_tooltip[$filter_n]]['class']."\"";
}
}
break;
}
//传入了样式 且道具没有与预设匹配的样式 则使用传入的样式
if(isset($c) && !$p2) $p2 = "class=\"".$c."\"";
$p3 = " >"; $e = "</span>";
$ret = $s.$p1.$p2.$p3.$n.$e;
return $ret;
}
function init_playerdata(){ function init_playerdata(){
global $lvl,$baseexp,$exp,$gd,$icon,$arbe,$arhe,$arae,$arfe,$weather,$fog,$weps,$arbs,$log,$upexp,$lvlupexp,$iconImg,$ardef; global $lvl,$baseexp,$exp,$gd,$icon,$arbe,$arhe,$arae,$arfe,$weather,$fog,$weps,$arbs,$log,$upexp,$lvlupexp,$iconImg,$ardef;
...@@ -552,7 +415,19 @@ function w_save2(&$data){ ...@@ -552,7 +415,19 @@ function w_save2(&$data){
//$db->query("UPDATE {$tablepre}players SET name='$w_name',pass='$w_pass',type='$w_type',endtime='$w_endtime',gd='$w_gd',sNo='$w_sNo',icon='$w_icon',club='$w_club',hp='$w_hp',mhp='$w_mhp',sp='$w_sp',msp='$w_msp',att='$w_att',def='$w_def',pls='$w_pls',lvl='$w_lvl',exp='$w_exp',money='$w_money',bid='$w_bid',inf='$w_inf',rage='$w_rage',pose='$w_pose',tactic='$w_tactic',state='$w_state',killnum='$w_killnum',wp='$w_wp',wk='$w_wk',wg='$w_wg',wc='$w_wc',wd='$w_wd',wf='$w_wf',teamID='$w_teamID',teamPass='$w_teamPass',wep='$w_wep',wepk='$w_wepk',wepe='$w_wepe',weps='$w_weps',wepsk='$w_wepsk',arb='$w_arb',arbk='$w_arbk',arbe='$w_arbe',arbs='$w_arbs',arbsk='$w_arbsk',arh='$w_arh',arhk='$w_arhk',arhe='$w_arhe',arhs='$w_arhs',arhsk='$w_arhsk',ara='$w_ara',arak='$w_arak',arae='$w_arae',aras='$w_aras',arask='$w_arask',arf='$w_arf',arfk='$w_arfk',arfe='$w_arfe',arfs='$w_arfs',arfsk='$w_arfsk',art='$w_art',artk='$w_artk',arte='$w_arte',arts='$w_arts',artsk='$w_artsk',itm0='$w_itm0',itmk0='$w_itmk0',itme0='$w_itme0',itms0='$w_itms0',itmsk0='$w_itmsk0',itm1='$w_itm1',itmk1='$w_itmk1',itme1='$w_itme1',itms1='$w_itms1',itmsk1='$w_itmsk1',itm2='$w_itm2',itmk2='$w_itmk2',itme2='$w_itme2',itms2='$w_itms2',itmsk2='$w_itmsk2',itm3='$w_itm3',itmk3='$w_itmk3',itme3='$w_itme3',itms3='$w_itms3',itmsk3='$w_itmsk3',itm4='$w_itm4',itmk4='$w_itmk4',itme4='$w_itme4',itms4='$w_itms4',itmsk4='$w_itmsk4',itm5='$w_itm5',itmk5='$w_itmk5',itme5='$w_itme5',itms5='$w_itms5',itmsk5='$w_itmsk5',itm6='$w_itm6',itmk6='$w_itmk6',itme6='$w_itme6',itms6='$w_itms6',itmsk6='$w_itmsk6' WHERE pid='$w_pid'"); //$db->query("UPDATE {$tablepre}players SET name='$w_name',pass='$w_pass',type='$w_type',endtime='$w_endtime',gd='$w_gd',sNo='$w_sNo',icon='$w_icon',club='$w_club',hp='$w_hp',mhp='$w_mhp',sp='$w_sp',msp='$w_msp',att='$w_att',def='$w_def',pls='$w_pls',lvl='$w_lvl',exp='$w_exp',money='$w_money',bid='$w_bid',inf='$w_inf',rage='$w_rage',pose='$w_pose',tactic='$w_tactic',state='$w_state',killnum='$w_killnum',wp='$w_wp',wk='$w_wk',wg='$w_wg',wc='$w_wc',wd='$w_wd',wf='$w_wf',teamID='$w_teamID',teamPass='$w_teamPass',wep='$w_wep',wepk='$w_wepk',wepe='$w_wepe',weps='$w_weps',wepsk='$w_wepsk',arb='$w_arb',arbk='$w_arbk',arbe='$w_arbe',arbs='$w_arbs',arbsk='$w_arbsk',arh='$w_arh',arhk='$w_arhk',arhe='$w_arhe',arhs='$w_arhs',arhsk='$w_arhsk',ara='$w_ara',arak='$w_arak',arae='$w_arae',aras='$w_aras',arask='$w_arask',arf='$w_arf',arfk='$w_arfk',arfe='$w_arfe',arfs='$w_arfs',arfsk='$w_arfsk',art='$w_art',artk='$w_artk',arte='$w_arte',arts='$w_arts',artsk='$w_artsk',itm0='$w_itm0',itmk0='$w_itmk0',itme0='$w_itme0',itms0='$w_itms0',itmsk0='$w_itmsk0',itm1='$w_itm1',itmk1='$w_itmk1',itme1='$w_itme1',itms1='$w_itms1',itmsk1='$w_itmsk1',itm2='$w_itm2',itmk2='$w_itmk2',itme2='$w_itme2',itms2='$w_itms2',itmsk2='$w_itmsk2',itm3='$w_itm3',itmk3='$w_itmk3',itme3='$w_itme3',itms3='$w_itms3',itmsk3='$w_itmsk3',itm4='$w_itm4',itmk4='$w_itmk4',itme4='$w_itme4',itms4='$w_itms4',itmsk4='$w_itmsk4',itm5='$w_itm5',itmk5='$w_itmk5',itme5='$w_itme5',itms5='$w_itms5',itmsk5='$w_itmsk5',itm6='$w_itm6',itmk6='$w_itmk6',itme6='$w_itme6',itms6='$w_itms6',itmsk6='$w_itmsk6' WHERE pid='$w_pid'");
} }
return; return;
}
//销毁尸体
function destory_corpse(&$edata)
{
if($edata)
{
$edata['state'] = 16; $edata['hp'] = 0; $edata['money'] = 0; $edata['pls'] = 99;
$edata['weps'] = 0;$edata['arbs'] = 0;$edata['arhs'] = 0;$edata['aras'] = 0;$edata['arfs'] = 0;$edata['arts'] = 0;
$edata['itms0'] = 0;$edata['itms1'] = 0;$edata['itms2'] = 0;$edata['itms3'] = 0;$edata['itms4'] = 0;$edata['itms5'] = 0;$edata['itms6'] = 0;
player_save($edata);
}
return;
} }
......
...@@ -227,6 +227,7 @@ function combat($active = 1, $wep_kind = '') { ...@@ -227,6 +227,7 @@ function combat($active = 1, $wep_kind = '') {
include_once GAME_ROOT . './include/state.func.php'; include_once GAME_ROOT . './include/state.func.php';
$killmsg = kill ( $wep_kind, $w_name, $w_type, $w_pid, $wep_temp ); $killmsg = kill ( $wep_kind, $w_name, $w_type, $w_pid, $wep_temp );
check_kill_events($pid,$w_pid);
$log .= npc_chat ( $w_type,$w_name, 'death' ); $log .= npc_chat ( $w_type,$w_name, 'death' );
include_once GAME_ROOT.'./include/game/achievement.func.php'; include_once GAME_ROOT.'./include/game/achievement.func.php';
......
...@@ -996,20 +996,6 @@ ...@@ -996,20 +996,6 @@
/********一些可复用函数 也许可以挪到其他地方********/ /********一些可复用函数 也许可以挪到其他地方********/
//销毁尸体
function destory_corpse(&$edata)
{
if($edata && $edata['hp']<=0)
{
//$edata['state'] = 16;
$edata['money'] = 0;
$edata['weps'] = 0;$edata['arbs'] = 0;$edata['arhs'] = 0;$edata['aras'] = 0;$edata['arfs'] = 0;$edata['arts'] = 0;
$edata['itms0'] = 0;$edata['itms1'] = 0;$edata['itms2'] = 0;$edata['itms3'] = 0;$edata['itms4'] = 0;$edata['itms5'] = 0;$edata['itms6'] = 0;
player_save($edata);
}
return;
}
//打包尸体 …… //打包尸体 ……
function pack_corpse(&$edata) function pack_corpse(&$edata)
{ {
......
...@@ -11,6 +11,53 @@ ...@@ -11,6 +11,53 @@
但是只要提供了正确的pa和pd当然也可以给玩家使用。 //哈哈!不行!玩家数据存不回去!傻了吧! //搞定了! //没搞定啊!!不能100%保证不出怪问题,所以还是不要给玩家使用 但是只要提供了正确的pa和pd当然也可以给玩家使用。 //哈哈!不行!玩家数据存不回去!傻了吧! //搞定了! //没搞定啊!!不能100%保证不出怪问题,所以还是不要给玩家使用
本质上就是一套整理过的原版战斗函数。*/ 本质上就是一套整理过的原版战斗函数。*/
//发现中立NPC $kind 0=中立单位 1=友军
function findneut(&$edata,$kind=0)
{
global $log,$action,$mode,$name,$main,$cmd,$battle_title,$pid,$db,$tablepre;
global $w_type,$w_name,$w_gd,$w_sNo,$w_icon,$w_hp,$w_mhp,$w_sp,$w_msp,$w_rage,$w_wep,$w_wepk,$w_wepe,$w_lvl,$w_pose,$w_tactic,$w_inf;
$battle_title = $kind ? '发现朋友' : '发现敌人?';
extract($edata,EXTR_PREFIX_ALL,'w');
init_battle(1);
if(!is_array($edata['clbpara'])) $edata['clbpara']=get_clbpara($edata['clbpara']);
$log .= "你发现了<span class=\"yellow\">$w_name</span>!<br>";
if(!$kind) $log .= "对方看起来没有敌意。<br>";
//TODO:把这一段挪到一个独立函数里
if($edata['clbpara']['post'] == $pid)
{
$log.="对方一看见你,便猛地朝你扑了过来!<br>
<br><span class='sienna'>“老板!有你的快递喔!”</span><br>
<br>你被这突然袭击吓了一跳!<br>
但对方只是从身上摸出了一个包裹样的东西扔给了你。然后又急匆匆地转身离开了。<br>
<br>……这是在搞啥……?<br><br>";
$action='';
global $itm0,$itmk0,$itme0,$itms0,$itmsk0;
$iid=$edata['clbpara']['postid'];
$itm0=$edata['itm'.$iid];$itmk0=$edata['itmk'.$iid];$itmsk0=$edata['itmsk'.$iid];
$itme0=$edata['itme'.$iid];$itms0=$edata['itms'.$iid];
//发一条news 表示快递已送达
$sponsorid = $edata['clbpara']['sponsor'];
$result = $db->query("SELECT * FROM {$tablepre}gambling WHERE uid = '$sponsorid'");
$sordata = $db->fetch_array($result);
addnews($now,'gpost_success',$sordata['uname'],$itm0,$name);
//再见了~快递员!
unset($edata['clbpara']['post']);unset($edata['clbpara']['postid']);unset($edata['clbpara']['sponsor']);
destory_corpse($edata);
//解除快递锁
$db->query("UPDATE {$tablepre}gambling SET bnid=0 WHERE uid='$sponsorid'");
}
include template('findneut');
$cmd = ob_get_contents();
ob_clean();
$main = 'battle';
return;
}
//战斗准备流程:通过传入的战斗双方ID初始化 //战斗准备流程:通过传入的战斗双方ID初始化
function rev_combat_prepare($nid,$eid) function rev_combat_prepare($nid,$eid)
{ {
......
...@@ -363,8 +363,6 @@ function discover($schmode = 0) { ...@@ -363,8 +363,6 @@ function discover($schmode = 0) {
combat(0); combat(0);
return; return;
} }
} }
$trap_dice=rand(0,99);//随机数,开始判断是否踩陷阱 $trap_dice=rand(0,99);//随机数,开始判断是否踩陷阱
...@@ -459,15 +457,12 @@ function discover($schmode = 0) { ...@@ -459,15 +457,12 @@ function discover($schmode = 0) {
// } // }
// } // }
include_once GAME_ROOT.'./include/game/attr.func.php'; include_once GAME_ROOT.'./include/game/attr.func.php';
$mode_dice = rand(0,99); $mode_dice = rand(0,99);
if($mode_dice < $schmode) { if($mode_dice < $schmode)
{
global $pid,$corpse_obbs,$teamID,$fog,$bid,$gamestate; global $pid,$corpse_obbs,$teamID,$fog,$bid,$gamestate;
// if($gamestate < 40) { global $clbpara,$clbstatusa,$clbstatusb,$clbstatusc,$clbstatusd,$clbstatuse;
// $result = $db->query("SELECT * FROM {$tablepre}players WHERE pls='$pls' AND pid!='$pid' AND pid!='$bid'");
// } else {
// $result = $db->query("SELECT * FROM {$tablepre}players WHERE pls='$pls' AND pid!='$pid'");
// }
$result = $db->query("SELECT * FROM {$tablepre}players WHERE pls='$pls' AND pid!='$pid'"); $result = $db->query("SELECT * FROM {$tablepre}players WHERE pls='$pls' AND pid!='$pid'");
if(!$db->num_rows($result)){ if(!$db->num_rows($result)){
$log .= '<span class="yellow">周围一个人都没有。</span><br>'; $log .= '<span class="yellow">周围一个人都没有。</span><br>';
...@@ -482,42 +477,95 @@ function discover($schmode = 0) { ...@@ -482,42 +477,95 @@ function discover($schmode = 0) {
$find_r = get_find_r($weather,$pls,$pose,$tactic,$club,$inf); $find_r = get_find_r($weather,$pls,$pose,$tactic,$club,$inf);
$find_obbs = $enemy_obbs + $find_r; $find_obbs = $enemy_obbs + $find_r;
foreach($enemyarray as $enum){ //移除了重复调用discover()的设定,尝试用一种正常一点的办法确保敌人/尸体发现率符合基础设定值,不然现在的尸体确实太难摸了。
//现在触发遇敌事件只会返回三种结果:1、发现尸体;2、发现敌人、3、敌人隐藏起来;所以实际的尸体发现率=$enemyrate*$corpse_obbs
$meetman_flag = 0;
foreach($enemyarray as $enum)
{
$db->data_seek($result, $enum); $db->data_seek($result, $enum);
$edata = $db->fetch_array($result); $edata = $db->fetch_array($result);
if(!$edata['type'] || $gamestate < 50){ if(!$edata['type'] || $gamestate < 50)
if($edata['hp'] > 0) { {
global $art,$artk,$name; if($edata['hp'] <= 0)
if ((!$edata['type'])&&($artk=='XX')&&(($edata['artk']!='XX')||($edata['art']!=$name))&&($gamestate<50)){ {
continue; //直接略过无效尸体
if($gamestate>=40||($edata['endtime']>($now-$corpseprotect))) continue;
$ret = false;
foreach(array('money','arhs','aras','arfs','arts','itms1','itms2','itms3','itms4','itms5','itms6') as $chkval)
{
if($edata[$chkval])
{
$ret = true;
break;
} }
if (($artk!='XX')&&($edata['artk']=='XX')&&($gamestate<50)){
continue;
} }
if(!$ret) continue;
//计算尸体发现率
$corpse_dice = rand(0,99);
if($corpse_dice < $corpse_obbs)
{
$meetman_flag = 1;
break;
}
}
else
{
//直接略过决斗者
if ((!$edata['type'])&&($artk=='XX')&&(($edata['artk']!='XX')||($edata['art']!=$name))&&($gamestate<50)) continue;
if (($artk!='XX')&&($edata['artk']=='XX')&&($gamestate<50)) continue;
//计算活人发现率
$hide_r = get_hide_r($weather,$pls,$edata['pose'],$edata['tactic'],$edata['club'],$edata['inf']); $hide_r = get_hide_r($weather,$pls,$edata['pose'],$edata['tactic'],$edata['club'],$edata['inf']);
include_once GAME_ROOT.'./include/game/clubskills.func.php'; include_once GAME_ROOT.'./include/game/clubskills.func.php';
$hide_r *= get_clubskill_bonus_hide($edata['club'],$edata['skills']); $hide_r *= get_clubskill_bonus_hide($edata['club'],$edata['skills']);
$enemy_dice = rand(0,99); $enemy_dice = rand(0,99);
if($enemy_dice < ($find_obbs - $hide_r)) { $meetman_flag = $enemy_dice<($find_obbs - $hide_r) ? 1 : -1;
if($teamID&&(!$fog)&&($gamestate<40)&&($teamID == $edata['teamID'])){ break;
}
}
}
if($meetman_flag>0)
{
if($edata['hp'] > 0)
{
if(isset($edata['clbpara'])) $edata['clbpara']=get_clbpara($edata['clbpara']);
//发现队友
if($teamID&&(!$fog)&&($gamestate<40)&&($teamID == $edata['teamID']))
{
$bid = $edata['pid']; $bid = $edata['pid'];
$action = 'team'.$edata['pid']; $action = 'team'.$edata['pid'];
include_once GAME_ROOT.'./include/game/battle.func.php'; include_once GAME_ROOT.'./include/game/battle.func.php';
findteam($edata); findteam($edata);
return; return;
} else { }
//发现中立NPC或友军 TODO:把这里条件判断挪到一个函数里
elseif($edata['clbpara']['post'] == $pid)
{
$bid = $edata['pid'];
$action = 'neut'.$edata['pid'];
include_once GAME_ROOT.'./include/game/revcombat.func.php';
findneut($edata,1);
return;
}
//发现敌人
else
{
$active_r = get_active_r($weather,$pls,$pose,$tactic,$club,$inf,$edata['pose']); $active_r = get_active_r($weather,$pls,$pose,$tactic,$club,$inf,$edata['pose']);
include_once GAME_ROOT.'./include/game/clubskills.func.php'; include_once GAME_ROOT.'./include/game/clubskills.func.php';
$active_r *= get_clubskill_bonus_active($club,$skills,$edata['club'],$edata['skills']); $active_r *= get_clubskill_bonus_active($club,$skills,$edata['club'],$edata['skills']);
if ($active_r>96) $active_r=96; if ($active_r>96) $active_r=96;
$bid = $edata['pid']; $bid = $edata['pid'];
$active_dice = rand(0,99); $active_dice = rand(0,99);
if($active_dice < $active_r) { //先制
if($active_dice < $active_r)
{
$action = 'enemy'.$edata['pid']; $action = 'enemy'.$edata['pid'];
include_once GAME_ROOT.'./include/game/battle.func.php'; include_once GAME_ROOT.'./include/game/battle.func.php';
findenemy($edata); findenemy($edata);
return; return;
} else { }
//挨打
else
{
if (CURSCRIPT == 'botservice') if (CURSCRIPT == 'botservice')
{ {
echo "passive_battle=1\n"; echo "passive_battle=1\n";
...@@ -530,33 +578,22 @@ function discover($schmode = 0) { ...@@ -530,33 +578,22 @@ function discover($schmode = 0) {
return; return;
} }
} }
}else{
$hideflag = true;
} }
} else { else
$corpse_dice = rand(0,99); {
if($corpse_dice < $corpse_obbs) {
if($gamestate <40 && $edata['endtime'] < $now - $corpseprotect && (($edata['weps'] && $edata['wepe'])||($edata['arbs'] && $edata['arbe'])||$edata['arhs']||$edata['aras']||$edata['arfs']||$edata['arts']||$edata['itms0']||$edata['itms1']||$edata['itms2']||$edata['itms3']||$edata['itms4']||$edata['itms5']||$edata['money'])){
$bid = $edata['pid']; $bid = $edata['pid'];
$action = 'corpse'.$edata['pid']; $action = 'corpse'.$edata['pid'];
include_once GAME_ROOT.'./include/game/battle.func.php'; include_once GAME_ROOT.'./include/game/battle.func.php';
findcorpse($edata); findcorpse($edata);
return; return;
} else {
//这看上去是个bug…… 会导致地图上最后一个兵很难摸到……
//改成discover(100)应该就能解决问题…… 但修复了可能导致平衡性问题…… 所以暂时留在这……
discover(50);
return;
}
} }
} }
} elseif($meetman_flag < 0)
} {
if($hideflag == true){
$log .= '似乎有人隐藏着……<br>'; $log .= '似乎有人隐藏着……<br>';
}else{ }
else
{
$log .= '<span class="yellow">周围一个人都没有。</span><br>'; $log .= '<span class="yellow">周围一个人都没有。</span><br>';
} }
$mode = 'command'; $mode = 'command';
...@@ -566,11 +603,6 @@ function discover($schmode = 0) { ...@@ -566,11 +603,6 @@ function discover($schmode = 0) {
$find_obbs = $item_obbs + $find_r; $find_obbs = $item_obbs + $find_r;
$item_dice = rand(0,99); $item_dice = rand(0,99);
if($item_dice < $find_obbs) { if($item_dice < $find_obbs) {
//$mapfile = GAME_ROOT."./gamedata/mapitem/{$pls}mapitem.php";
//$mapitem = openfile($mapfile);
//$itemnum = sizeof($mapitem) - 1;
// $result = $db->query("SELECT * FROM {$tablepre}mapitem WHERE map='$pls'");
// $itemnum = $db->num_rows($result);
$result = $db->query("SELECT * FROM {$tablepre}mapitem WHERE pls = '$pls'"); $result = $db->query("SELECT * FROM {$tablepre}mapitem WHERE pls = '$pls'");
$itemnum = $db->num_rows($result); $itemnum = $db->num_rows($result);
if($itemnum <= 0){ if($itemnum <= 0){
...@@ -589,10 +621,6 @@ function discover($schmode = 0) { ...@@ -589,10 +621,6 @@ function discover($schmode = 0) {
$itmsk0=$mi['itmsk']; $itmsk0=$mi['itmsk'];
$iid=$mi['iid']; $iid=$mi['iid'];
$db->query("DELETE FROM {$tablepre}mapitem WHERE iid='$iid'"); $db->query("DELETE FROM {$tablepre}mapitem WHERE iid='$iid'");
//list($itm0,$itmk0,$itme0,$itms0,$itmsk0) = explode(',', $mapitem[$itemno]);
//array_splice($mapitem,$itemno,1);
//writeover($mapfile,implode('', $mapitem),'wb');
//unset($mapitem);
if($itms0){ if($itms0){
include_once GAME_ROOT.'./include/game/itemmain.func.php'; include_once GAME_ROOT.'./include/game/itemmain.func.php';
......
...@@ -475,12 +475,13 @@ function press_bomb(){ ...@@ -475,12 +475,13 @@ function press_bomb(){
return; return;
} }
function shoplist($sn) { function shoplist($sn,$getlist=NULL) {
global $gamecfg,$mode,$itemdata,$areanum,$areaadd,$iteminfo,$itemspkinfo,$club; global $gamecfg,$mode,$itemdata,$areanum,$areaadd,$iteminfo,$itemspkinfo,$club;
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");
$shopnum = $db->num_rows($result); $shopnum = $db->num_rows($result);
$itemdata = Array();
for($i=0;$i< $shopnum;$i++){ for($i=0;$i< $shopnum;$i++){
$itemlist = $db->fetch_array($result); $itemlist = $db->fetch_array($result);
$itemdata[$i]['sid']=$itemlist['sid']; $itemdata[$i]['sid']=$itemlist['sid'];
...@@ -489,27 +490,39 @@ function shoplist($sn) { ...@@ -489,27 +490,39 @@ function shoplist($sn) {
$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_itm_desc($itemdata[$i]['item'],'m');
$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); //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){
$itemdata[$i]['itmk_words'] = $info_value; if(isset($getlist)) $itemdata[$i]['itmk'] = $info_value;
$itemdata[$i]['itmk_words'] = parse_itm_desc($info_key,'k');
break; break;
} }
} }
$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))
{
$tmp_sk = get_itmsk_array($itemlist['itmsk']);
foreach($tmp_sk as $sk) $itemdata[$i]['itmsk_words'].= parse_itm_desc($sk,'sk');
}
else
{
for ($j = 0; $j < strlen($itemlist['itmsk']); $j++) { for ($j = 0; $j < strlen($itemlist['itmsk']); $j++) {
$sub = substr($itemlist['itmsk'],$j,1); $sub = substr($itemlist['itmsk'],$j,1);
if(!empty($sub)){ if(!empty($sub) && isset($itemspkinfo[$sub])){
$itemdata[$i]['itmsk_words'] .= $itemspkinfo[$sub]; $itemdata[$i]['itmsk_words'] .= $itemspkinfo[$sub];
} }
} }
} }
}
//$itemdata[$i] = array('sid' => $sid, 'kind' => $kind,'num' => $num, 'price' => $price, 'area' => $area, 'item' => $item,'itmk_words' => $itmk_words,'itme' => $itme, 'itms' => $itms,'itmsk_words' => $itmsk_words); //$itemdata[$i] = array('sid' => $sid, 'kind' => $kind,'num' => $num, 'price' => $price, 'area' => $area, 'item' => $item,'itmk_words' => $itmk_words,'itme' => $itme, 'itms' => $itms,'itmsk_words' => $itmsk_words);
} }
if(isset($getlist)) return $itemdata;
$mode = 'shop'; $mode = 'shop';
return; return;
......
...@@ -492,10 +492,161 @@ function putmicrotime($t_s,$t_e,$file,$info) ...@@ -492,10 +492,161 @@ function putmicrotime($t_s,$t_e,$file,$info)
writeover( $file.'.txt',"$info ;执行时间:$mtime 毫秒 \n",'ab'); writeover( $file.'.txt',"$info ;执行时间:$mtime 毫秒 \n",'ab');
} }
//格式化储存player表 可能也是四面的遗产
function update_db_player_structure($type=0)
{
global $db,$tablepre,$checkstr;
$db_player_structure = $db_player_structure_types = $tpldata = Array();
$dps_need_update = 0;//判定是否需要更新玩家字段
$dps_file = GAME_ROOT.'./gamedata/bak/db_player_structure.config.php';
$sql_file = GAME_ROOT.'./gamedata/sql/players.sql';
if(!file_exists($dps_file) || filemtime($sql_file) > filemtime($dps_file)){
$dps_need_update = 1;
}
if($dps_need_update){//如果要更新,直接新建一个表,不需要依赖已有的players表
$sql = file_get_contents($sql_file);
$sql = str_replace("\r", "\n", str_replace(' bra_', ' '.$tablepre.'tmp_', $sql));
$db->queries($sql);
$result = $db->query("DESCRIBE {$tablepre}tmp_players");
while ($sttdata = $db->fetch_array($result))
{
global ${$sttdata['Field']};
$db_player_structure[] = $sttdata['Field'];
$db_player_structure_types[$sttdata['Field']] = $sttdata['Type'];
//array_push($db_player_structure,$pdata['Field']);
}
$dps_cont = str_replace('?>','',str_replace('<?','<?php',$checkstr));
$dps_cont .= '$db_player_structure = ' . var_export($db_player_structure,1).";\r\n".'$db_player_structure_types = ' . var_export($db_player_structure_types,1).";\r\n?>";
writeover($dps_file, $dps_cont);
chmod($dps_file,0777);
}else{//若不需要更新,则直接读文件就好
include $dps_file ;
}
return $type ? $db_player_structure_types : $db_player_structure;
}
//返回一个只有数据库合法字段键名的pdata数组
function player_format_with_db_structure($data){
$ndata=Array();
$db_player_structure = update_db_player_structure();
foreach ($db_player_structure as $key){
if (isset($data[$key]))
{
if(is_array($data[$key])) $data[$key]=json_encode($data[$key]);
$ndata[$key]=$data[$key];
}
}
return $ndata;
}
//为显示在主界面、尸体发现界面、游戏帮助界面的道具名、道具类、道具属性添加额外描述
//传入$n=道具名/类/属性;$t='m'(使用名称数组)/'k'(类别)/'sk'(属性);$short=1(传入的$n为数组情况下才有效,缩写属性);$class(如果传入的$n没有匹配的样式,则应用该样式)
function parse_itm_desc($n,$t,$short=0,$c=NULL)
{
global $iteminfo,$itemspkinfo;
global $iteminfo_tooltip,$itemkinfo_tooltip,$itemspkinfo_tooltip,$iteminfo_tooltip_desc;
$s = "<span "; $p1 = ''; $p2 = ''; $ret = '';
switch($t)
{
//处理类别
case $t=='k':
if(isset($itemkinfo_tooltip[$n]['title'])) $p1 = "title=\"".$itemkinfo_tooltip[$n]['title']."\"";
if(isset($itemkinfo_tooltip[$n]['class'])) $p2 = "class=\"".$itemkinfo_tooltip[$n]['class']."\"";
$n = $iteminfo[$n];
break;
//处理属性
case $t=='sk':
//如果传入的n为数组,且开启缩写模式,则输出一段缩写
if($short && is_array($n))
{
$p1 = "title=\"";
$sk1 = $itemspkinfo[current($n)]; $sk2 = $itemspkinfo[end($n)]; $skn = '';
foreach($n as $sk_value)
{
if(!empty($skn)) $skn .='+'.$itemspkinfo[$sk_value];
else $skn = $itemspkinfo[$sk_value];
}
$p1.=$skn; $n = $sk1.'+...+'.$sk2; $p2 = "\"";
}
else
{
if(isset($itemspkinfo_tooltip[$n]['title'])) $p1 = "title=\"".$itemspkinfo_tooltip[$n]['title']."\"";
if(isset($itemspkinfo_tooltip[$n]['class'])) $p2 = "class=\"".$itemspkinfo_tooltip[$n]['class']."\"";
$n = $itemspkinfo[$n];
}
break;
//处理名字
case $t=='m':
$filter_n = preg_replace('/锋利的|电气|毒性|钉|\[.*\]|-改/', '', $n);
if(isset($iteminfo_tooltip[$filter_n]))
{
if(is_array($iteminfo_tooltip[$filter_n]))
{
if(isset($iteminfo_tooltip[$filter_n]['title'])) $p1 = "title=\"".$iteminfo_tooltip[$filter_n]['title']."\"";
if(isset($iteminfo_tooltip[$filter_n]['class'])) $p2 = "class=\"".$iteminfo_tooltip[$filter_n]['class']."\"";
}
elseif(isset($iteminfo_tooltip_desc[$iteminfo_tooltip[$filter_n]]))
{ //使用可复用描述 越来越离谱了
if(isset($iteminfo_tooltip_desc[$iteminfo_tooltip[$filter_n]]['title'])) $p1 = "title=\"".$iteminfo_tooltip_desc[$iteminfo_tooltip[$filter_n]]['title']."\"";
if(isset($iteminfo_tooltip_desc[$iteminfo_tooltip[$filter_n]]['class'])) $p2 = "class=\"".$iteminfo_tooltip_desc[$iteminfo_tooltip[$filter_n]]['class']."\"";
}
}
break;
}
//传入了样式 且道具没有与预设匹配的样式 则使用传入的样式
if(isset($c) && !$p2) $p2 = "class=\"".$c."\"";
$p3 = " >"; $e = "</span>";
$ret = $s.$p1.$p2.$p3.$n.$e;
return $ret;
}
//---------------------------------------- //----------------------------------------
// 字符串处理 // 字符串处理
//---------------------------------------- //----------------------------------------
//将sk转为数组格式 只会转换登记过的属性
function get_itmsk_array($sk_value)
{
global $itemspkinfo;
$ret = Array();
$i = 0;
while ($i < strlen($sk_value))
{
$sub = substr($sk_value,$i,1);
$i++;
if(!empty($sub) && array_key_exists($sub,$itemspkinfo)) array_push($ret,$sub);
}
return $ret;
}
//还原itmsk为字符串 $max_length:字符串长度上限
function get_itmsk_strlen($sk_value,$max_length=5)
{
global $itemspkinfo;
$ret = ''; $sk_count = 0;
foreach($sk_value as $sk)
{
if(array_key_exists($sk,$itemspkinfo))
{
$ret.=$sk;
$sk_count+=strlen($sk);
}
if($sk_count>=$max_length) break;
}
return $ret;
}
function get_clbpara($para)
{
return json_decode($para,true);
}
function set_clbpara($para)
{
return json_encode($para);
}
function mgzdecode($data) function mgzdecode($data)
{ {
return gzinflate(substr($data,10,-8)); return gzinflate(substr($data,10,-8));
......
...@@ -31,8 +31,6 @@ function nparse_news($start = 0, $range = 0 ){//$type = '') { ...@@ -31,8 +31,6 @@ function nparse_news($start = 0, $range = 0 ){//$type = '') {
$nday = $day; $nday = $day;
} }
//tooltip处理(可能不用include……)
include_once GAME_ROOT.'./include/game.func.php';
//死法(除DN外):道具名登记在$d上;第四个参数:没有检查到特殊样式的给一个红色 //死法(除DN外):道具名登记在$d上;第四个参数:没有检查到特殊样式的给一个红色
if(strpos($news,'death')!==false && $news!=='death28' && isset($d)) $d = parse_itm_desc($d,'m',0,"red"); if(strpos($news,'death')!==false && $news!=='death28' && isset($d)) $d = parse_itm_desc($d,'m',0,"red");
//赠送道具、吃到毒补给、陷阱、改变天气、强化武器、唱歌、打开礼物盒:道具名登记在$c上; //赠送道具、吃到毒补给、陷阱、改变天气、强化武器、唱歌、打开礼物盒:道具名登记在$c上;
...@@ -286,6 +284,12 @@ function nparse_news($start = 0, $range = 0 ){//$type = '') { ...@@ -286,6 +284,12 @@ function nparse_news($start = 0, $range = 0 ){//$type = '') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"yellow\">{$a}用零散的元素组合出了{$b}!</span><br>\n"; $newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"yellow\">{$a}用零散的元素组合出了{$b}!</span><br>\n";
} elseif($news == 'emix_failed') { } elseif($news == 'emix_failed') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"red\">{$a}试图把零散的元素重新组合起来,但是失败了!哎呀呀、这可真是……</span><br>\n"; $newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"red\">{$a}试图把零散的元素重新组合起来,但是失败了!哎呀呀、这可真是……</span><br>\n";
} elseif($news == 'gpost') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"sienna\">{$a}{$c}赞助了{$e}{$b}!快递员正带着包裹前往【{$d}】</span><br>\n";
} elseif($news == 'gpost_success') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"sienna\">{$a}{$c}赞助的{$b}已成功送达!</span><br>\n";
} elseif($news == 'gpost_failed') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"sienna\">{$a}向场内玩家赞助的{$b}竟然被人半路截走了!真是天有不测风云……</span><br>\n";
} else { } else {
$newsinfo .= "<li>$time,$news,$a,$b,$c,$d<br>\n"; $newsinfo .= "<li>$time,$news,$a,$b,$c,$d<br>\n";
} }
......
...@@ -538,4 +538,32 @@ function rest($command) { ...@@ -538,4 +538,32 @@ function rest($command) {
return; return;
} }
//登记一些特殊的死亡事件
function check_kill_events($kid,$eid)
{
global $db,$tablepre,$log;
$result = $db->query("SELECT * FROM {$tablepre}players WHERE pid='$eid'");
$edata = $db->fetch_array($result);
if(!is_array($edata['clbpara'])) $edata['clbpara']=get_clbpara($edata['clbpara']);
if($edata['clbpara']['post'])
{
//发一条news 表示快递被劫走了
$log.="<span class='sienna'>某样东西从{$edata['name']}身上掉了出来……</span><br>";
$iid = $edata['clbpara']['postid'];
$sponsorid = $edata['clbpara']['sponsor'];
$result = $db->query("SELECT * FROM {$tablepre}gambling WHERE uid = '$sponsorid'");
$sordata = $db->fetch_array($result);
addnews($now,'gpost_failed',$sordata['uname'],$edata['itm'.$iid]);
//消除快递相关参数
unset($edata['clbpara']['post']);unset($edata['clbpara']['postid']);unset($edata['clbpara']['sponsor']);
//解除快递锁
$db->query("UPDATE {$tablepre}gambling SET bnid=0 WHERE uid='$sponsorid'");
player_save($edata);
}
return;
}
?> ?>
...@@ -115,17 +115,19 @@ function rs_game($mode = 0) { ...@@ -115,17 +115,19 @@ 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;
$npcqry .= "('".$npc['name']."','".$npc['pass']."','".$npc['type']."','".$npc['endtime']."','".$npc['gd']."','".$npc['sNo']."','".$npc['icon']."','".$npc['club']."','".$npc['rp']."','".$npc['hp']."','".$npc['mhp']."','".$npc['sp']."','".$npc['msp']."','".$npc['att']."','".$npc['def']."','".$npc['pls']."','".$npc['lvl']."','".$npc['exp']."','".$npc['money']."','".$npc['bid']."','".$npc['inf']."','".$npc['rage']."','".$npc['pose']."','".$npc['tactic']."','".$npc['killnum']."','".$npc['state']."','".$npc['wp']."','".$npc['wk']."','".$npc['wg']."','".$npc['wc']."','".$npc['wd']."','".$npc['wf']."','".$npc['teamID']."','".$npc['teamPass']."','".$npc['wep']."','".$npc['wepk']."','".$npc['wepe']."','".$npc['weps']."','".$npc['arb']."','".$npc['arbk']."','".$npc['arbe']."','".$npc['arbs']."','".$npc['arh']."','".$npc['arhk']."','".$npc['arhe']."','".$npc['arhs']."','".$npc['ara']."','".$npc['arak']."','".$npc['arae']."','".$npc['aras']."','".$npc['arf']."','".$npc['arfk']."','".$npc['arfe']."','".$npc['arfs']."','".$npc['art']."','".$npc['artk']."','".$npc['arte']."','".$npc['arts']."','".$npc['itm0']."','".$npc['itmk0']."','".$npc['itme0']."','".$npc['itms0']."','".$npc['itm1']."','".$npc['itmk1']."','".$npc['itme1']."','".$npc['itms1']."','".$npc['itm2']."','".$npc['itmk2']."','".$npc['itme2']."','".$npc['itms2']."','".$npc['itm3']."','".$npc['itmk3']."','".$npc['itme3']."','".$npc['itms3']."','".$npc['itm4']."','".$npc['itmk4']."','".$npc['itme4']."','".$npc['itms4']."','".$npc['itm5']."','".$npc['itmk5']."','".$npc['itme5']."','".$npc['itms5']."','".$npc['itm6']."','".$npc['itmk6']."','".$npc['itme6']."','".$npc['itms6']."','".$npc['wepsk']."','".$npc['arbsk']."','".$npc['arhsk']."','".$npc['arask']."','".$npc['arfsk']."','".$npc['artsk']."','".$npc['itmsk0']."','".$npc['itmsk1']."','".$npc['itmsk2']."','".$npc['itmsk3']."','".$npc['itmsk4']."','".$npc['itmsk5']."','".$npc['itmsk6']."','".$npc['skills']."'),"; $npc=player_format_with_db_structure($npc);
$db->array_insert("{$tablepre}players", $npc);
//$npcqry .= "('".$npc['name']."','".$npc['pass']."','".$npc['type']."','".$npc['endtime']."','".$npc['gd']."','".$npc['sNo']."','".$npc['icon']."','".$npc['club']."','".$npc['rp']."','".$npc['hp']."','".$npc['mhp']."','".$npc['sp']."','".$npc['msp']."','".$npc['att']."','".$npc['def']."','".$npc['pls']."','".$npc['lvl']."','".$npc['exp']."','".$npc['money']."','".$npc['bid']."','".$npc['inf']."','".$npc['rage']."','".$npc['pose']."','".$npc['tactic']."','".$npc['killnum']."','".$npc['state']."','".$npc['wp']."','".$npc['wk']."','".$npc['wg']."','".$npc['wc']."','".$npc['wd']."','".$npc['wf']."','".$npc['teamID']."','".$npc['teamPass']."','".$npc['wep']."','".$npc['wepk']."','".$npc['wepe']."','".$npc['weps']."','".$npc['arb']."','".$npc['arbk']."','".$npc['arbe']."','".$npc['arbs']."','".$npc['arh']."','".$npc['arhk']."','".$npc['arhe']."','".$npc['arhs']."','".$npc['ara']."','".$npc['arak']."','".$npc['arae']."','".$npc['aras']."','".$npc['arf']."','".$npc['arfk']."','".$npc['arfe']."','".$npc['arfs']."','".$npc['art']."','".$npc['artk']."','".$npc['arte']."','".$npc['arts']."','".$npc['itm0']."','".$npc['itmk0']."','".$npc['itme0']."','".$npc['itms0']."','".$npc['itm1']."','".$npc['itmk1']."','".$npc['itme1']."','".$npc['itms1']."','".$npc['itm2']."','".$npc['itmk2']."','".$npc['itme2']."','".$npc['itms2']."','".$npc['itm3']."','".$npc['itmk3']."','".$npc['itme3']."','".$npc['itms3']."','".$npc['itm4']."','".$npc['itmk4']."','".$npc['itme4']."','".$npc['itms4']."','".$npc['itm5']."','".$npc['itmk5']."','".$npc['itme5']."','".$npc['itms5']."','".$npc['itm6']."','".$npc['itmk6']."','".$npc['itme6']."','".$npc['itms6']."','".$npc['wepsk']."','".$npc['arbsk']."','".$npc['arhsk']."','".$npc['arask']."','".$npc['arfsk']."','".$npc['artsk']."','".$npc['itmsk0']."','".$npc['itmsk1']."','".$npc['itmsk2']."','".$npc['itmsk3']."','".$npc['itmsk4']."','".$npc['itmsk5']."','".$npc['itmsk6']."','".$npc['skills']."'),";
//$db->query("INSERT INTO {$tablepre}players (name,pass,type,endtime,gd,sNo,icon,club,hp,mhp,sp,msp,att,def,pls,lvl,`exp`,money,bid,inf,rage,pose,tactic,killnum,state,wp,wk,wg,wc,wd,wf,teamID,teamPass,wep,wepk,wepe,weps,arb,arbk,arbe,arbs,arh,arhk,arhe,arhs,ara,arak,arae,aras,arf,arfk,arfe,arfs,art,artk,arte,arts,itm0,itmk0,itme0,itms0,itm1,itmk1,itme1,itms1,itm2,itmk2,itme2,itms2,itm3,itmk3,itme3,itms3,itm4,itmk4,itme4,itms4,itm5,itmk5,itme5,itms5,wepsk,arbsk,arhsk,arask,arfsk,artsk,itmsk0,itmsk1,itmsk2,itmsk3,itmsk4,itmsk5) VALUES ('".$npc['name']."','".$npc['pass']."','".$npc['type']."','".$npc['endtime']."','".$npc['gd']."','".$npc['sNo']."','".$npc['icon']."','".$npc['club']."','".$npc['hp']."','".$npc['mhp']."','".$npc['sp']."','".$npc['msp']."','".$npc['att']."','".$npc['def']."','".$npc['pls']."','".$npc['lvl']."','".$npc['exp']."','".$npc['money']."','".$npc['bid']."','".$npc['inf']."','".$npc['rage']."','".$npc['pose']."','".$npc['tactic']."','".$npc['killnum']."','".$npc['death']."','".$npc['wp']."','".$npc['wk']."','".$npc['wg']."','".$npc['wc']."','".$npc['wd']."','".$npc['wf']."','".$npc['teamID']."','".$npc['teamPass']."','".$npc['wep']."','".$npc['wepk']."','".$npc['wepe']."','".$npc['weps']."','".$npc['arb']."','".$npc['arbk']."','".$npc['arbe']."','".$npc['arbs']."','".$npc['arh']."','".$npc['arhk']."','".$npc['arhe']."','".$npc['arhs']."','".$npc['ara']."','".$npc['arak']."','".$npc['arae']."','".$npc['aras']."','".$npc['arf']."','".$npc['arfk']."','".$npc['arfe']."','".$npc['arfs']."','".$npc['art']."','".$npc['artk']."','".$npc['arte']."','".$npc['arts']."','".$npc['itm0']."','".$npc['itmk0']."','".$npc['itme0']."','".$npc['itms0']."','".$npc['itm1']."','".$npc['itmk1']."','".$npc['itme1']."','".$npc['itms1']."','".$npc['itm2']."','".$npc['itmk2']."','".$npc['itme2']."','".$npc['itms2']."','".$npc['itm3']."','".$npc['itmk3']."','".$npc['itme3']."','".$npc['itms3']."','".$npc['itm4']."','".$npc['itmk4']."','".$npc['itme4']."','".$npc['itms4']."','".$npc['itm5']."','".$npc['itmk5']."','".$npc['itme5']."','".$npc['itms5']."','".$npc['wepsk']."','".$npc['arbsk']."','".$npc['arhsk']."','".$npc['arask']."','".$npc['arfsk']."','".$npc['artsk']."','".$npc['itmsk0']."','".$npc['itmsk1']."','".$npc['itmsk2']."','".$npc['itmsk3']."','".$npc['itmsk4']."','".$npc['itmsk5']."')"); //$db->query("INSERT INTO {$tablepre}players (name,pass,type,endtime,gd,sNo,icon,club,hp,mhp,sp,msp,att,def,pls,lvl,`exp`,money,bid,inf,rage,pose,tactic,killnum,state,wp,wk,wg,wc,wd,wf,teamID,teamPass,wep,wepk,wepe,weps,arb,arbk,arbe,arbs,arh,arhk,arhe,arhs,ara,arak,arae,aras,arf,arfk,arfe,arfs,art,artk,arte,arts,itm0,itmk0,itme0,itms0,itm1,itmk1,itme1,itms1,itm2,itmk2,itme2,itms2,itm3,itmk3,itme3,itms3,itm4,itmk4,itme4,itms4,itm5,itmk5,itme5,itms5,wepsk,arbsk,arhsk,arask,arfsk,artsk,itmsk0,itmsk1,itmsk2,itmsk3,itmsk4,itmsk5) VALUES ('".$npc['name']."','".$npc['pass']."','".$npc['type']."','".$npc['endtime']."','".$npc['gd']."','".$npc['sNo']."','".$npc['icon']."','".$npc['club']."','".$npc['hp']."','".$npc['mhp']."','".$npc['sp']."','".$npc['msp']."','".$npc['att']."','".$npc['def']."','".$npc['pls']."','".$npc['lvl']."','".$npc['exp']."','".$npc['money']."','".$npc['bid']."','".$npc['inf']."','".$npc['rage']."','".$npc['pose']."','".$npc['tactic']."','".$npc['killnum']."','".$npc['death']."','".$npc['wp']."','".$npc['wk']."','".$npc['wg']."','".$npc['wc']."','".$npc['wd']."','".$npc['wf']."','".$npc['teamID']."','".$npc['teamPass']."','".$npc['wep']."','".$npc['wepk']."','".$npc['wepe']."','".$npc['weps']."','".$npc['arb']."','".$npc['arbk']."','".$npc['arbe']."','".$npc['arbs']."','".$npc['arh']."','".$npc['arhk']."','".$npc['arhe']."','".$npc['arhs']."','".$npc['ara']."','".$npc['arak']."','".$npc['arae']."','".$npc['aras']."','".$npc['arf']."','".$npc['arfk']."','".$npc['arfe']."','".$npc['arfs']."','".$npc['art']."','".$npc['artk']."','".$npc['arte']."','".$npc['arts']."','".$npc['itm0']."','".$npc['itmk0']."','".$npc['itme0']."','".$npc['itms0']."','".$npc['itm1']."','".$npc['itmk1']."','".$npc['itme1']."','".$npc['itms1']."','".$npc['itm2']."','".$npc['itmk2']."','".$npc['itme2']."','".$npc['itms2']."','".$npc['itm3']."','".$npc['itmk3']."','".$npc['itme3']."','".$npc['itms3']."','".$npc['itm4']."','".$npc['itmk4']."','".$npc['itme4']."','".$npc['itms4']."','".$npc['itm5']."','".$npc['itmk5']."','".$npc['itme5']."','".$npc['itms5']."','".$npc['wepsk']."','".$npc['arbsk']."','".$npc['arhsk']."','".$npc['arask']."','".$npc['arfsk']."','".$npc['artsk']."','".$npc['itmsk0']."','".$npc['itmsk1']."','".$npc['itmsk2']."','".$npc['itmsk3']."','".$npc['itmsk4']."','".$npc['itmsk5']."')");
unset($npc); unset($npc);
} }
} }
} }
if(!empty($npcqry)){ /*if(!empty($npcqry)){
$npcqry = "INSERT INTO {$tablepre}players (name,pass,type,endtime,gd,sNo,icon,club,rp,hp,mhp,sp,msp,att,def,pls,lvl,`exp`,money,bid,inf,rage,pose,tactic,killnum,state,wp,wk,wg,wc,wd,wf,teamID,teamPass,wep,wepk,wepe,weps,arb,arbk,arbe,arbs,arh,arhk,arhe,arhs,ara,arak,arae,aras,arf,arfk,arfe,arfs,art,artk,arte,arts,itm0,itmk0,itme0,itms0,itm1,itmk1,itme1,itms1,itm2,itmk2,itme2,itms2,itm3,itmk3,itme3,itms3,itm4,itmk4,itme4,itms4,itm5,itmk5,itme5,itms5,itm6,itmk6,itme6,itms6,wepsk,arbsk,arhsk,arask,arfsk,artsk,itmsk0,itmsk1,itmsk2,itmsk3,itmsk4,itmsk5,itmsk6,skills) VALUES ".substr($npcqry, 0, -1); $npcqry = "INSERT INTO {$tablepre}players (name,pass,type,endtime,gd,sNo,icon,club,rp,hp,mhp,sp,msp,att,def,pls,lvl,`exp`,money,bid,inf,rage,pose,tactic,killnum,state,wp,wk,wg,wc,wd,wf,teamID,teamPass,wep,wepk,wepe,weps,arb,arbk,arbe,arbs,arh,arhk,arhe,arhs,ara,arak,arae,aras,arf,arfk,arfe,arfs,art,artk,arte,arts,itm0,itmk0,itme0,itms0,itm1,itmk1,itme1,itms1,itm2,itmk2,itme2,itms2,itm3,itmk3,itme3,itms3,itm4,itmk4,itme4,itms4,itm5,itmk5,itme5,itms5,itm6,itmk6,itme6,itms6,wepsk,arbsk,arhsk,arask,arfsk,artsk,itmsk0,itmsk1,itmsk2,itmsk3,itmsk4,itmsk5,itmsk6,skills) VALUES ".substr($npcqry, 0, -1);
$db->query($npcqry); $db->query($npcqry);
unset($npcqry); unset($npcqry);
} }*/
} }
if ($mode & 16) { if ($mode & 16) {
//echo " - 地图道具/陷阱初始化 - "; //echo " - 地图道具/陷阱初始化 - ";
...@@ -539,7 +541,7 @@ function movehtm($atime = 0) { ...@@ -539,7 +541,7 @@ function movehtm($atime = 0) {
return; return;
} }
function addnpc($type,$sub,$num,$time = 0) { function addnpc($type,$sub,$num,$time = 0,$clbstatus=NULL,$aitem=NULL,$apls=NULL) {
global $now,$db,$tablepre,$log,$plsinfo,$typeinfo,$anpcinfo,$npcinit,$arealist,$areanum,$gamecfg; global $now,$db,$tablepre,$log,$plsinfo,$typeinfo,$anpcinfo,$npcinit,$arealist,$areanum,$gamecfg;
$time = $time == 0 ? $now : $time; $time = $time == 0 ? $now : $time;
$plsnum = sizeof($plsinfo); $plsnum = sizeof($plsinfo);
...@@ -578,13 +580,36 @@ function addnpc($type,$sub,$num,$time = 0) { ...@@ -578,13 +580,36 @@ function addnpc($type,$sub,$num,$time = 0) {
} }
//$npc['pls'] = rand(1,$plsnum-1); //$npc['pls'] = rand(1,$plsnum-1);
} }
$db->query("INSERT INTO {$tablepre}players (name,pass,type,endtime,gd,sNo,icon,club,hp,mhp,sp,msp,att,def,pls,lvl,`exp`,money,bid,inf,rage,pose,tactic,killnum,state,wp,wk,wg,wc,wd,wf,teamID,teamPass,wep,wepk,wepe,weps,arb,arbk,arbe,arbs,arh,arhk,arhe,arhs,ara,arak,arae,aras,arf,arfk,arfe,arfs,art,artk,arte,arts,itm0,itmk0,itme0,itms0,itm1,itmk1,itme1,itms1,itm2,itmk2,itme2,itms2,itm3,itmk3,itme3,itms3,itm4,itmk4,itme4,itms4,itm5,itmk5,itme5,itms5,itm6,itmk6,itme6,itms6,wepsk,arbsk,arhsk,arask,arfsk,artsk,itmsk0,itmsk1,itmsk2,itmsk3,itmsk4,itmsk5,itmsk6) VALUES ('".$npc['name']."','".$npc['pass']."','".$npc['type']."','".$npc['endtime']."','".$npc['gd']."','".$npc['sNo']."','".$npc['icon']."','".$npc['club']."','".$npc['hp']."','".$npc['mhp']."','".$npc['sp']."','".$npc['msp']."','".$npc['att']."','".$npc['def']."','".$npc['pls']."','".$npc['lvl']."','".$npc['exp']."','".$npc['money']."','".$npc['bid']."','".$npc['inf']."','".$npc['rage']."','".$npc['pose']."','".$npc['tactic']."','".$npc['killnum']."','".$npc['state']."','".$npc['wp']."','".$npc['wk']."','".$npc['wg']."','".$npc['wc']."','".$npc['wd']."','".$npc['wf']."','".$npc['teamID']."','".$npc['teamPass']."','".$npc['wep']."','".$npc['wepk']."','".$npc['wepe']."','".$npc['weps']."','".$npc['arb']."','".$npc['arbk']."','".$npc['arbe']."','".$npc['arbs']."','".$npc['arh']."','".$npc['arhk']."','".$npc['arhe']."','".$npc['arhs']."','".$npc['ara']."','".$npc['arak']."','".$npc['arae']."','".$npc['aras']."','".$npc['arf']."','".$npc['arfk']."','".$npc['arfe']."','".$npc['arfs']."','".$npc['art']."','".$npc['artk']."','".$npc['arte']."','".$npc['arts']."','".$npc['itm0']."','".$npc['itmk0']."','".$npc['itme0']."','".$npc['itms0']."','".$npc['itm1']."','".$npc['itmk1']."','".$npc['itme1']."','".$npc['itms1']."','".$npc['itm2']."','".$npc['itmk2']."','".$npc['itme2']."','".$npc['itms2']."','".$npc['itm3']."','".$npc['itmk3']."','".$npc['itme3']."','".$npc['itms3']."','".$npc['itm4']."','".$npc['itmk4']."','".$npc['itme4']."','".$npc['itms4']."','".$npc['itm5']."','".$npc['itmk5']."','".$npc['itme5']."','".$npc['itms5']."','".$npc['itm6']."','".$npc['itmk6']."','".$npc['itme6']."','".$npc['itms6']."','".$npc['wepsk']."','".$npc['arbsk']."','".$npc['arhsk']."','".$npc['arask']."','".$npc['arfsk']."','".$npc['artsk']."','".$npc['itmsk0']."','".$npc['itmsk1']."','".$npc['itmsk2']."','".$npc['itmsk3']."','".$npc['itmsk4']."','".$npc['itmsk5']."','".$npc['itmsk6']."')"); //自定义addnpc出现位置,会覆盖原本预设的位置。 TODO:要不要发个特别的news?
if(isset($apls)) $npc['pls'] = (int)$apls;
//自定义addnpc身上携带的道具,会覆盖原本预设的道具。 格式:$aitem=Array($iid=>Array($itm,$itmk,$itme,$itms,$itmsk),...)
if(isset($aitem))
{
$aid = $aitem[0];
$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(isset($clbstatus['clbpara']))
{
$npc['clbpara'] = is_array($npc['clbpara']) ? array_merge($npc['clbpara'],$clbstatus['clbpara']) : $clbstatus['clbpara'];
}
}
//对将要插入数据库的npc数组格式化,现在可以直接在npc配置文件里预设那些后添加的字段了。
$npc=player_format_with_db_structure($npc);
$db->array_insert("{$tablepre}players", $npc);
$summon_ids[] = $db->insert_id();
//获取新生成npc的pid。不知道高并发时会不会出BUG……呃……出BUG了再看看?但是出BUG了我也不会修啊!
$newsname=$typeinfo[$type].' '.$npc['name']; $newsname=$typeinfo[$type].' '.$npc['name'];
//$npcwordlist[] = $typeinfo[$type].' '.$npc['name'];
addnews($now, 'addnpc', $newsname); addnews($now, 'addnpc', $newsname);
} }
} }
if($num > $npc['num']){ /*if($num > $npc['num']){
//if($num > 1){ //if($num > 1){
$newsname=$typeinfo[$type]; $newsname=$typeinfo[$type];
addnews($time, 'addnpcs', $newsname,$i); addnews($time, 'addnpcs', $newsname,$i);
...@@ -594,9 +619,8 @@ function addnpc($type,$sub,$num,$time = 0) { ...@@ -594,9 +619,8 @@ function addnpc($type,$sub,$num,$time = 0) {
// } // }
//$newsname=$typeinfo[$type].' '.$npc['name']; //$newsname=$typeinfo[$type].' '.$npc['name'];
//addnews($time, 'addnpc', $newsname); //addnews($time, 'addnpc', $newsname);
} }*/
return $summon_ids;
return $sub;
} }
function evonpc($type,$name){ function evonpc($type,$name){
......
...@@ -262,6 +262,26 @@ ...@@ -262,6 +262,26 @@
<td>子类型</td> <td>子类型</td>
<td><input size="20" type="text" name="itmsk6" value="{$npc['itmsk6']}" maxlength="20"></td> <td><input size="20" type="text" name="itmsk6" value="{$npc['itmsk6']}" maxlength="20"></td>
</tr> </tr>
<tr>
<td>社团参数A</td>
<td><input size="20" type="text" name="clbstatusa" value="{$npc['clbstatusa']}" maxlength="20"></td>
<td>社团参数B</td>
<td><input size="20" type="text" name="clbstatusb" value="{$npc['clbstatusb']}" maxlength="20"></td>
<td>社团参数C</td>
<td><input size="20" type="text" name="clbstatusc" value="{$npc['clbstatusc']}" maxlength="20"></td>
</tr>
<tr>
<td>社团参数D</td>
<td><input size="20" type="text" name="clbstatusd" value="{$npc['clbstatusd']}" maxlength="20"></td>
<td>社团参数E</td>
<td><input size="20" type="text" name="clbstatuse" value="{$npc['clbstatuse']}" maxlength="20"></td>
<td></td>
<td></td>
</tr>
<tr>
<td>社团参数集</td>
<td><textarea cols="20" rows="4" style="overflow:auto" name="clbpara">{$npc['clbpara']}</textarea></td>
</tr>
</table> </table>
<input type="submit" value="修改NPC数值" onclick="$('command').value = 'submitedit'"> <input type="submit" value="修改NPC数值" onclick="$('command').value = 'submitedit'">
</form> </form>
......
...@@ -270,6 +270,26 @@ ...@@ -270,6 +270,26 @@
<td></td> <td></td>
<td></td> <td></td>
</tr> </tr>
<tr>
<td>社团参数A</td>
<td><input size="20" type="text" name="clbstatusa" value="{$pc['clbstatusa']}" maxlength="20"></td>
<td>社团参数B</td>
<td><input size="20" type="text" name="clbstatusb" value="{$pc['clbstatusb']}" maxlength="20"></td>
<td>社团参数C</td>
<td><input size="20" type="text" name="clbstatusc" value="{$pc['clbstatusc']}" maxlength="20"></td>
</tr>
<tr>
<td>社团参数D</td>
<td><input size="20" type="text" name="clbstatusd" value="{$pc['clbstatusd']}" maxlength="20"></td>
<td>社团参数E</td>
<td><input size="20" type="text" name="clbstatuse" value="{$pc['clbstatuse']}" maxlength="20"></td>
<td></td>
<td></td>
</tr>
<tr>
<td>社团参数集</td>
<td><textarea cols="20" rows="4" style="overflow:auto" name="clbpara">{$pc['clbpara']}</textarea></td>
</tr>
</table> </table>
<input type="submit" value="修改玩家数值" onclick="$('command').value = 'submitedit'"> <input type="submit" value="修改玩家数值" onclick="$('command').value = 'submitedit'">
</form> </form>
......
<input type="button" class="cmdbutton" name="back" value="返回" onclick="postCmd('gamecmd','command.php');"><br><br>
\ No newline at end of file
<!--{if $cuser && isset($credits2)}-->你的{lang credits2}:<span id="credits2" class="yellow">$credits2</span>
<!--{if $gbnum}-->当前奖池:{$gbpool}。<!--{else}-->当前还未开设赌局。<!--{/if}-->当前分成系数:{$nowodds} 你可以选择一位对象,消耗<span class="yellow">{lang credits2}</span>为ta<span class="yellow">下注</span><span class="yellow">赞助</span>
<span class="yellow" id="gbinfo"> 选择对象:
$gbinfo
</span>
<!--{if $cuser && isset($credits2)}-->
你的{lang credits2}:<span id="credits2" class="yellow">$credits2</span>
<!--{if $gbact == 1}-->
<input type="hidden" name="bet" value="{$gbudata['bid']}">
<!--{else}-->
选择:
<select name="bet"> <select name="bet">
<option value="none">不选择 <option value="none">不选择
<!--{loop $alivedata $alive}--><option value="{$alive['pid']}">{$alive['name']}<!--{/loop}--> <!--{loop $alivedata $alive}--><option value="{$alive['pid']}">{$alive['name']}<!--{/loop}-->
</select> </select>
<!--{/if}--> <br>
<!--{/if}-->
赌注:<input type="text" name="wager" value="1" size="4" maxlength="6"> <!--{if $cuser && isset($credits2)}-->
赞助:
<span id="gbshop_box">
<select id="gbid" name="gbid" style="width:100px" onchange="$('command').value='gbid';postCmd('gamecmd','command.php');this.disabled=true;">
<option value="main">可赞助商品一览</option>
<!--{loop $gshoplist $gshopid $gshopname}-->
<optgroup label="$gshopname">
<!--{loop shoplist($gshopid,1) $idata}-->
<!--{if isset($idata['sid']) && $idata['price']<=$credits2*$credits2_values}-->
<option value="$idata['sid']">$idata['item']/$idata['itmk']/$idata['itme']/$idata['itms']<!--{if $idata['itmsk_words']}-->/$idata['itmsk_words']<!--{/if}--> 【价:$idata['price'],数:$idata['num']】</option>
<!--{/if}-->
<!--{/loop}-->
<!--{/loop}-->
</select>
</span>
数量:<input type="text" name="gbinum" value="1" size="4" maxlength="6">
<input type="button" value="下单" onClick="$('gbmode').value='gsponsor';postCmd('alive','alive.php');">
<br>
<!--{/if}-->
<!--{if $gbnum}-->当前奖池:{$gbpool}。当前分成系数:{$nowodds}。<!--{else}-->当前还未开设赌局。<!--{/if}-->
<!--{if $cuser && isset($credits2)}-->
下注:<input type="text" name="wager" value="1" size="4" maxlength="6">
<input type="button" <!--{if $gbact == 1}-->value="追加"<!--{else}-->value="下注"<!--{/if}--> onClick="$('gbmode').value='gamble';postCmd('alive','alive.php');"> <input type="button" <!--{if $gbact == 1}-->value="追加"<!--{else}-->value="下注"<!--{/if}--> onClick="$('gbmode').value='gamble';postCmd('alive','alive.php');">
<br>
<!--{/if}--> <!--{/if}-->
<span class="yellow" id="gbinfo">
$gbinfo
</span>
\ No newline at end of file
...@@ -3885,7 +3885,7 @@ ...@@ -3885,7 +3885,7 @@
<td class="b3"><span>2禁刷新2个</span></td></tr> <td class="b3"><span>2禁刷新2个</span></td></tr>
<tr><td class="b3" height=20px><span>SCP研究设施</span></td> <tr><td class="b3" height=20px><span>SCP研究设施</span></td>
<td class="b3"><span>浮☆云</span></td> <td class="b3"><span>浮☆云</span></td>
<td class="b3"><span></span></td> <td class="b3"><span>全地图唯一的野生浮云礼物盒</span></td>
<td class="b3"><span>1/1</span></td> <td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td> <td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新1个</span></td></tr> <td class="b3"><span>0禁刷新1个</span></td></tr>
...@@ -6428,186 +6428,6 @@ ...@@ -6428,186 +6428,6 @@
<td class="b3"><span></span></td> <td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新10个</span></td></tr> <td class="b3"><span>0禁刷新10个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td> <tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条金</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条木</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条水</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条火</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条土</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条城壁</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条主教</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条骑士</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条国王</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条皇后</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条雷</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条风</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条震</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条泽</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条氢</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条氦</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条锂</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条铍</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条硼</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条碳</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条氮</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条氧</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条氟</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条氖</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条钠</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条镁</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条铝</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条硅</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条磷</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>提示纸条铀</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新3个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>《殴系指南》</span></td> <td class="b3"><span>《殴系指南》</span></td>
<td class="b3"><span>技能书籍</span></td> <td class="b3"><span>技能书籍</span></td>
<td class="b3"><span>25/1</span></td> <td class="b3"><span>25/1</span></td>
...@@ -7375,4 +7195,10 @@ ...@@ -7375,4 +7195,10 @@
<td class="b3"><span>90/1</span></td> <td class="b3"><span>90/1</span></td>
<td class="b3"><span></span></td> <td class="b3"><span></span></td>
<td class="b3"><span>0禁刷新7个</span></td></tr> <td class="b3"><span>0禁刷新7个</span></td></tr>
<tr><td class="b3" height=20px><span>全图随机</span></td>
<td class="b3"><span>→【神器任意门】←</span></td>
<td class="b3"><span>特殊</span></td>
<td class="b3"><span>1/1</span></td>
<td class="b3"><span></span></td>
<td class="b3"><span>1禁刷新1个</span></td></tr>
</table></div><br> </table></div><br>
...@@ -204,6 +204,30 @@ ...@@ -204,6 +204,30 @@
<tr><td class="b3" height=20px title="通过合成获取&#13;" ><span>☆法式长棍面包☆</span></td><td class="b3" title="0禁于清水池刷新20个&#13;每禁于清水池刷新10个&#13;0禁于夏之镇刷新20个&#13;0禁于三体星刷新10个&#13;每禁于风祭森林刷新10个&#13;0禁于风祭森林刷新10个&#13;0禁于风祭森林刷新5个&#13;每禁全图随机刷新20个&#13;每禁全图随机刷新20个&#13;" ><span></span></td><td class="b3" ><span>-</span></td><td class="b3" ><span>-</span></td><td class="b3" ><span>-</span></td><td class="b3"></td> <tr><td class="b3" height=20px title="通过合成获取&#13;" ><span>☆法式长棍面包☆</span></td><td class="b3" title="0禁于清水池刷新20个&#13;每禁于清水池刷新10个&#13;0禁于夏之镇刷新20个&#13;0禁于三体星刷新10个&#13;每禁于风祭森林刷新10个&#13;0禁于风祭森林刷新10个&#13;0禁于风祭森林刷新5个&#13;每禁全图随机刷新20个&#13;每禁全图随机刷新20个&#13;" ><span></span></td><td class="b3" ><span>-</span></td><td class="b3" ><span>-</span></td><td class="b3" ><span>-</span></td><td class="b3"></td>
<td class="b3"><span><span >法式面包棍棒</span></span></td> <td class="b3"><span><span >法式面包棍棒</span></span></td>
<td class="b3"><span><span >钝器</span>/120/25/<span title="攻击对手时,中几率将对手防具的防御力修正为一半来计算伤害。" >冲击</span>+<span title="这把武器的最终伤害将会为随机值。" >混沌伤害</span>+<span title="那么,这个有什么用呢……?" >天然</span></span></td> <td class="b3"><span><span >钝器</span>/120/25/<span title="攻击对手时,中几率将对手防具的防御力修正为一半来计算伤害。" >冲击</span>+<span title="这把武器的最终伤害将会为随机值。" >混沌伤害</span>+<span title="那么,这个有什么用呢……?" >天然</span></span></td>
</tr>
<tr><td class="b3" height=20px title="0禁于对天使用作战本部刷新5个&#13;0禁全图随机刷新2个&#13;0禁全图随机刷新2个&#13;0禁全图随机刷新2个&#13;" ><span>棍棒</span></td><td class="b3" title="0禁于麦斯克林刷新10个&#13;2禁于麦斯克林刷新8个&#13;" ><span>岩石</span></td><td class="b3" title="每禁于对天使用作战本部刷新10个&#13;1禁于对天使用作战本部刷新10个&#13;2禁于对天使用作战本部刷新10个&#13;3禁于对天使用作战本部刷新10个&#13;0禁起在商店中出售(60元)&#13;打开礼品盒时有概率获得&#13;" ><span></span></td><td class="b3" title="每禁于常磐森林刷新10个&#13;每禁于精灵中心刷新16个&#13;0禁全图随机刷新50个&#13;0禁起在商店中出售(5元)&#13;" ><span>毒药</span></td><td class="b3" ><span>-</span></td><td class="b3"></td>
<td class="b3"><span><span >绽花毒藤</span></span></td>
<td class="b3"><span><span >重剑</span>/180/150/<span title="攻击对手时,中几率将对手防具的防御力修正为一半来计算伤害。" >冲击</span>+<span title="攻击对手时,将产生额外的毒属性伤害。也有可能让对手陷入中毒异常状态。" >带毒</span></span></td>
</tr>
<tr><td class="b3" height=20px title="0禁于梦幻馆刷新3个&#13;1禁于梦幻馆刷新3个&#13;2禁于梦幻馆刷新3个&#13;" ><span>向日葵</span></td><td class="b3" title="1禁于梦幻馆刷新5个&#13;0禁全图随机刷新15个&#13;" ><span>月光碎片</span></td><td class="b3" title="0禁于FARGO前基地刷新12个&#13;" ><span>铁链</span></td><td class="b3" title="0禁起在商店中出售(300元)&#13;" ><span>超级重锤</span></td><td class="b3" ><span>-</span></td><td class="b3"></td>
<td class="b3"><span><span >太极</span></span></td>
<td class="b3"><span><span >钝器</span>/180/150/<span title="攻击对手时,中几率将对手防具的防御力修正为一半来计算伤害。" >冲击</span>+<span title="攻击对手时,将产生额外的音波属性伤害。也有可能让对手陷入混乱异常状态。" >音波</span>+<span title="降低重击与必杀技的怒气消耗,以及重击概率。" >重击辅助</span></span></td>
</tr>
<tr><td class="b3" height=20px title="通过合成获取&#13;打开礼品盒时有概率获得&#13;" ><span>红宝石方块</span></td><td class="b3" title="0禁起在商店中出售(9100元)&#13;" ><span>★制御棒★</span></td><td class="b3" title="1禁起在商店中出售(2100元)&#13;" ><span>『延展御柱』</span></td><td class="b3" title="0禁全图随机刷新4个&#13;0禁起在商店中出售(20元)&#13;" ><span>夜雀歌谱</span></td><td class="b3" ><span>-</span></td><td class="b3"></td>
<td class="b3"><span><span >晨星链刃</span></span></td>
<td class="b3"><span><span >重剑</span>/827/260/<span title="根据你的熟练度,做出一定数量的连续攻击。" >连击</span>+<span title="攻击对手时,将产生额外的爆炸属性伤害。" >爆炸</span>+<span title="攻击对手时,对其造成无法防御的火焰属性伤害。也有可能让对手陷入烧伤异常状态。" >灼焰</span>+<span title="降低重击与必杀技的怒气消耗,以及重击概率。" >重击辅助</span></span></td>
</tr>
<tr><td class="b3" height=20px title="0禁于麦斯克林刷新10个&#13;2禁于麦斯克林刷新8个&#13;" ><span>岩石</span></td><td class="b3" title="0禁全图随机刷新20个&#13;" ><span>火把</span></td><td class="b3" title="1禁于FARGO前基地刷新16个&#13;1禁于FARGO前基地刷新4个&#13;0禁全图随机刷新5个&#13;0禁起在商店中出售(1500元)&#13;打开礼品盒时有概率获得&#13;" ><span>★阔剑地雷★</span></td><td class="b3" ><span>-</span></td><td class="b3" ><span>-</span></td><td class="b3"></td>
<td class="b3"><span><span >阳炎之怒</span></span></td>
<td class="b3"><span><span >钝器</span>/188/30/<span title="攻击对手时,将产生额外的爆炸属性伤害。" >爆炸</span>+<span title="攻击对手时,将产生额外的火焰属性伤害。也有可能让对手陷入烧伤状态。" >火焰</span></span></td>
</tr>
<tr><td class="b3" height=20px title="通过合成获取&#13;" ><span>阳炎之怒</span></td><td class="b3" title="0禁全图随机刷新4个&#13;0禁起在商店中出售(20元)&#13;" ><span>雏人形</span></td><td class="b3" title="0禁起在商店中出售(1500元)&#13;" ><span>『祝福宝石』</span></td><td class="b3" ><span>-</span></td><td class="b3" ><span>-</span></td><td class="b3"></td>
<td class="b3"><span><span >风滚草</span></span></td>
<td class="b3"><span><span >钝器</span>/156/77/<span title="根据你的熟练度,做出一定数量的连续攻击。" >连击</span>+<span title="降低重击与必杀技的怒气消耗,以及重击概率。" >重击辅助</span>+<span title="攻击对手时,将产生额外的爆炸属性伤害。" >爆炸</span></span></td>
</tr>
<tr><td class="b3" height=20px title="通过合成获取&#13;" ><span>风滚草</span></td><td class="b3" title="通过合成获取&#13;" ><span>晨星链刃</span></td><td class="b3" title="通过合成获取&#13;" ><span>太极</span></td><td class="b3" title="1禁起在商店中出售(2500元)&#13;" ><span>海胆链球</span></td><td class="b3" ><span>-</span></td><td class="b3"></td>
<td class="b3"><span><span >龙魂破</span></span></td>
<td class="b3"><span><span >重剑</span>/6600/2200/<span title="该物品可以使用特定物品进行强化。" >菁英</span>+<span title="根据你的熟练度,做出一定数量的连续攻击。" >连击</span>+<span title="攻击对手时,将产生额外的爆炸属性伤害。" >爆炸</span>+<span title="攻击对手时,对其造成无法防御的火焰属性伤害。也有可能让对手陷入烧伤异常状态。" >灼焰</span>+<span title="攻击对手时,中几率将对手防具的防御力修正为一半来计算伤害。" >冲击</span></span></td>
</tr> </tr>
</table> </table>
<p><span class="yellow">射系武器合成表</span></p> <p><span class="yellow">射系武器合成表</span></p>
...@@ -509,11 +533,11 @@ ...@@ -509,11 +533,11 @@
</tr> </tr>
<tr><td class="b3" height=20px title="0禁于常磐森林刷新7个&#13;1禁于常磐森林刷新2个&#13;打开礼品盒时有概率获得&#13;" ><span>《小黄的草帽》</span></td><td class="b3" title="0禁于常磐森林刷新7个&#13;1禁于常磐森林刷新2个&#13;打开礼品盒时有概率获得&#13;" ><span>《小黄的钓鱼竿》</span></td><td class="b3" title="0禁于常磐森林刷新7个&#13;1禁于常磐森林刷新2个&#13;打开礼品盒时有概率获得&#13;" ><span>《小黄的行军靴》</span></td><td class="b3" ><span>-</span></td><td class="b3" ><span>-</span></td><td class="b3"></td> <tr><td class="b3" height=20px title="0禁于常磐森林刷新7个&#13;1禁于常磐森林刷新2个&#13;打开礼品盒时有概率获得&#13;" ><span>《小黄的草帽》</span></td><td class="b3" title="0禁于常磐森林刷新7个&#13;1禁于常磐森林刷新2个&#13;打开礼品盒时有概率获得&#13;" ><span>《小黄的钓鱼竿》</span></td><td class="b3" title="0禁于常磐森林刷新7个&#13;1禁于常磐森林刷新2个&#13;打开礼品盒时有概率获得&#13;" ><span>《小黄的行军靴》</span></td><td class="b3" ><span>-</span></td><td class="b3" ><span>-</span></td><td class="b3"></td>
<td class="b3"><span><span >《小黄的精灵球》</span></span></td> <td class="b3"><span><span >《小黄的精灵球》</span></span></td>
<td class="b3"><span><span >投掷兵器</span>/233/∞</span></td> <td class="b3"><span><span >投掷兵器</span>/386/∞</span></td>
</tr> </tr>
<tr><td class="b3" height=20px title="通过合成获取&#13;" ><span>《小黄的精灵球》</span></td><td class="b3" title="0禁起在商店中出售(3800元)&#13;" ><span>《小黄的收服特训》</span></td><td class="b3" ><span>-</span></td><td class="b3" ><span>-</span></td><td class="b3" ><span>-</span></td><td class="b3"></td> <tr><td class="b3" height=20px title="通过合成获取&#13;" ><span>《小黄的精灵球》</span></td><td class="b3" title="0禁起在商店中出售(3800元)&#13;" ><span>《小黄的收服特训》</span></td><td class="b3" ><span>-</span></td><td class="b3" ><span>-</span></td><td class="b3" ><span>-</span></td><td class="b3"></td>
<td class="b3"><span><span >《小黄的超级球》</span></span></td> <td class="b3"><span><span >《小黄的超级球》</span></span></td>
<td class="b3"><span><span >投掷兵器</span>/233/∞/<span title="该物品可以使用特定物品进行强化。" >菁英</span>+<span title="攻击对手时,将产生额外的冻气属性伤害。也有可能让对手陷入冻结异常状态。" >冻气</span>+<span title="根据你的熟练度,做出一定数量的连续攻击。" >连击</span></span></td> <td class="b3"><span><span >投掷兵器</span>/386/∞/<span title="该物品可以使用特定物品进行强化。" >菁英</span>+<span title="攻击对手时,将产生额外的冻气属性伤害。也有可能让对手陷入冻结异常状态。" >冻气</span>+<span title="根据你的熟练度,做出一定数量的连续攻击。" >连击</span></span></td>
</tr> </tr>
<tr><td class="b3" height=20px title="0禁于白穗神社刷新10个&#13;" ><span>白色的羽毛</span></td><td class="b3" title="0禁全图随机刷新25个&#13;1禁全图随机刷新15个&#13;打开礼品盒时有概率获得&#13;" ><span>金色方块</span></td><td class="b3" ><span>-</span></td><td class="b3" ><span>-</span></td><td class="b3" ><span>-</span></td><td class="b3"></td> <tr><td class="b3" height=20px title="0禁于白穗神社刷新10个&#13;" ><span>白色的羽毛</span></td><td class="b3" title="0禁全图随机刷新25个&#13;1禁全图随机刷新15个&#13;打开礼品盒时有概率获得&#13;" ><span>金色方块</span></td><td class="b3" ><span>-</span></td><td class="b3" ><span>-</span></td><td class="b3" ><span>-</span></td><td class="b3"></td>
<td class="b3"><span><span >凤凰之羽</span></span></td> <td class="b3"><span><span >凤凰之羽</span></span></td>
...@@ -525,19 +549,19 @@ ...@@ -525,19 +549,19 @@
</tr> </tr>
<tr><td class="b3" height=20px title="0禁起在商店中出售(3800元)&#13;" ><span>《小黄的收服特训》</span></td><td class="b3" title="通过合成获取&#13;" ><span>《小黄的超级球》</span></td><td class="b3" title="0禁起在商店中出售(5500元)&#13;" ><span>《小黄的常磐之力》</span></td><td class="b3" ><span>-</span></td><td class="b3" ><span>-</span></td><td class="b3"></td> <tr><td class="b3" height=20px title="0禁起在商店中出售(3800元)&#13;" ><span>《小黄的收服特训》</span></td><td class="b3" title="通过合成获取&#13;" ><span>《小黄的超级球》</span></td><td class="b3" title="0禁起在商店中出售(5500元)&#13;" ><span>《小黄的常磐之力》</span></td><td class="b3" ><span>-</span></td><td class="b3" ><span>-</span></td><td class="b3"></td>
<td class="b3"><span><span >《小黄的大师球》</span></span></td> <td class="b3"><span><span >《小黄的大师球》</span></span></td>
<td class="b3"><span><span >投掷兵器</span>/386/∞/<span title="该物品可以使用特定物品进行强化。" >菁英</span>+<span title="根据你的熟练度,做出一定数量的连续攻击。" >连击</span>+<span title="攻击对手时,将产生额外的爆炸属性伤害。" >爆炸</span></span></td> <td class="b3"><span><span >投掷兵器</span>/493/∞/<span title="该物品可以使用特定物品进行强化。" >菁英</span>+<span title="根据你的熟练度,做出一定数量的连续攻击。" >连击</span>+<span title="攻击对手时,将产生额外的爆炸属性伤害。" >爆炸</span></span></td>
</tr> </tr>
<tr><td class="b3" height=20px title="通过合成获取&#13;" ><span>凤凰之羽</span></td><td class="b3" title="通过合成获取&#13;" ><span>《小黄的超级球》</span></td><td class="b3" title="0禁起在商店中出售(5500元)&#13;" ><span>《小黄的常磐之力》</span></td><td class="b3" ><span>-</span></td><td class="b3" ><span>-</span></td><td class="b3"></td> <tr><td class="b3" height=20px title="通过合成获取&#13;" ><span>凤凰之羽</span></td><td class="b3" title="通过合成获取&#13;" ><span>《小黄的超级球》</span></td><td class="b3" title="0禁起在商店中出售(5500元)&#13;" ><span>《小黄的常磐之力》</span></td><td class="b3" ><span>-</span></td><td class="b3" ><span>-</span></td><td class="b3"></td>
<td class="b3"><span><span >《小黄的大师球》</span></span></td> <td class="b3"><span><span >《小黄的大师球》</span></span></td>
<td class="b3"><span><span >投掷兵器</span>/386/∞/<span title="攻击对手时,将产生额外的火焰属性伤害。也有可能让对手陷入烧伤状态。" >火焰</span>+<span title="降低重击与必杀技的怒气消耗,以及重击概率。" >重击辅助</span>+<span title="根据你的熟练度,做出一定数量的连续攻击。" >连击</span>+<span title="攻击对手时,将产生额外的爆炸属性伤害。" >爆炸</span></span></td> <td class="b3"><span><span >投掷兵器</span>/493/∞/<span title="攻击对手时,将产生额外的火焰属性伤害。也有可能让对手陷入烧伤状态。" >火焰</span>+<span title="降低重击与必杀技的怒气消耗,以及重击概率。" >重击辅助</span>+<span title="根据你的熟练度,做出一定数量的连续攻击。" >连击</span>+<span title="攻击对手时,将产生额外的爆炸属性伤害。" >爆炸</span></span></td>
</tr> </tr>
<tr><td class="b3" height=20px title="通过合成获取&#13;" ><span>露琪亚之羽</span></td><td class="b3" title="通过合成获取&#13;" ><span>《小黄的超级球》</span></td><td class="b3" title="0禁起在商店中出售(5500元)&#13;" ><span>《小黄的常磐之力》</span></td><td class="b3" ><span>-</span></td><td class="b3" ><span>-</span></td><td class="b3"></td> <tr><td class="b3" height=20px title="通过合成获取&#13;" ><span>露琪亚之羽</span></td><td class="b3" title="通过合成获取&#13;" ><span>《小黄的超级球》</span></td><td class="b3" title="0禁起在商店中出售(5500元)&#13;" ><span>《小黄的常磐之力》</span></td><td class="b3" ><span>-</span></td><td class="b3" ><span>-</span></td><td class="b3"></td>
<td class="b3"><span><span >《小黄的大师球》</span></span></td> <td class="b3"><span><span >《小黄的大师球》</span></span></td>
<td class="b3"><span><span >投掷兵器</span>/386/∞/<span title="攻击对手时,将产生额外的冻气属性伤害。也有可能让对手陷入冻结异常状态。" >冻气</span>+<span title="降低重击与必杀技的怒气消耗,以及重击概率。" >重击辅助</span>+<span title="根据你的熟练度,做出一定数量的连续攻击。" >连击</span>+<span title="攻击对手时,将产生额外的爆炸属性伤害。" >爆炸</span></span></td> <td class="b3"><span><span >投掷兵器</span>/493/∞/<span title="攻击对手时,将产生额外的冻气属性伤害。也有可能让对手陷入冻结异常状态。" >冻气</span>+<span title="降低重击与必杀技的怒气消耗,以及重击概率。" >重击辅助</span>+<span title="根据你的熟练度,做出一定数量的连续攻击。" >连击</span>+<span title="攻击对手时,将产生额外的爆炸属性伤害。" >爆炸</span></span></td>
</tr> </tr>
<tr><td class="b3" height=20px title="通过合成获取&#13;" ><span>凤凰之羽</span></td><td class="b3" title="通过合成获取&#13;" ><span>露琪亚之羽</span></td><td class="b3" title="通过合成获取&#13;" ><span>《小黄的超级球》</span></td><td class="b3" title="0禁起在商店中出售(5500元)&#13;" ><span>《小黄的常磐之力》</span></td><td class="b3" ><span>-</span></td><td class="b3"></td> <tr><td class="b3" height=20px title="通过合成获取&#13;" ><span>凤凰之羽</span></td><td class="b3" title="通过合成获取&#13;" ><span>露琪亚之羽</span></td><td class="b3" title="通过合成获取&#13;" ><span>《小黄的超级球》</span></td><td class="b3" title="0禁起在商店中出售(5500元)&#13;" ><span>《小黄的常磐之力》</span></td><td class="b3" ><span>-</span></td><td class="b3"></td>
<td class="b3"><span><span >《小黄的大师球》</span></span></td> <td class="b3"><span><span >《小黄的大师球》</span></span></td>
<td class="b3"><span><span >投掷兵器</span>/386/∞/<span title="该物品可以使用特定物品进行强化。" >菁英</span>+<span title="降低重击与必杀技的怒气消耗,以及重击概率。" >重击辅助</span>+<span title="根据你的熟练度,做出一定数量的连续攻击。" >连击</span>+<span title="攻击对手时,将产生额外的爆炸属性伤害。" >爆炸</span></span></td> <td class="b3"><span><span >投掷兵器</span>/493/∞/<span title="该物品可以使用特定物品进行强化。" >菁英</span>+<span title="降低重击与必杀技的怒气消耗,以及重击概率。" >重击辅助</span>+<span title="根据你的熟练度,做出一定数量的连续攻击。" >连击</span>+<span title="攻击对手时,将产生额外的爆炸属性伤害。" >爆炸</span></span></td>
</tr> </tr>
</table> </table>
<p><span class="lime">KEY系道具合成表</span></p> <p><span class="lime">KEY系道具合成表</span></p>
...@@ -580,7 +604,7 @@ ...@@ -580,7 +604,7 @@
<td class="b3"><span><span >【KEY系未来弹】</span></span></td> <td class="b3"><span><span >【KEY系未来弹】</span></span></td>
<td class="b3"><span><span >钝器</span>/860/5/<span title="那么,这个有什么用呢……?" >天然</span>+<span title="攻击对手时,将产生额外的爆炸属性伤害。" >爆炸</span></span></td> <td class="b3"><span><span >钝器</span>/860/5/<span title="那么,这个有什么用呢……?" >天然</span>+<span title="攻击对手时,将产生额外的爆炸属性伤害。" >爆炸</span></span></td>
</tr> </tr>
<tr><td class="b3" height=20px title="0禁全图随机刷新10个&#13;" ><span>提示纸条K</span></td><td class="b3" title="0禁全图随机刷新10个&#13;" ><span>提示纸条E</span></td><td class="b3" title="通过合成获取&#13;" ><span>提示纸条Y</span></td><td class="b3" title="0禁全图随机刷新10个&#13;0禁起在商店中出售(1元)&#13;" ><span>提示纸条D</span></td><td class="b3" ><span>-</span></td><td class="b3"></td> <tr><td class="b3" height=20px title="0禁全图随机刷新10个&#13;" ><span>提示纸条K</span></td><td class="b3" title="0禁全图随机刷新10个&#13;" ><span>提示纸条E</span></td><td class="b3" title="通过合成获取&#13;" ><span>提示纸条Y</span></td><td class="b3" title="0禁全图随机刷新10个&#13;0禁起在商店中出售(1元)&#13;1禁起在商店中出售(20元)&#13;" ><span>提示纸条D</span></td><td class="b3" ><span>-</span></td><td class="b3"></td>
<td class="b3"><span><span >【KEY系生命弹】</span></span></td> <td class="b3"><span><span >【KEY系生命弹】</span></span></td>
<td class="b3"><span><span >远程兵器</span>/860/5/<span title="那么,这个有什么用呢……?" >天然</span>+<span title="攻击对手时,将产生额外的爆炸属性伤害。" >爆炸</span>+<span title="根据你的熟练度,做出一定数量的连续攻击。" >连击</span></span></td> <td class="b3"><span><span >远程兵器</span>/860/5/<span title="那么,这个有什么用呢……?" >天然</span>+<span title="攻击对手时,将产生额外的爆炸属性伤害。" >爆炸</span>+<span title="根据你的熟练度,做出一定数量的连续攻击。" >连击</span></span></td>
</tr> </tr>
......
...@@ -5,11 +5,11 @@ ...@@ -5,11 +5,11 @@
<input type="radio" name="command" id="shop" value="shop"><a onclick=sl('shop'); href="javascript:void(0);" onmouseover="status=' ';return true;">返回列表</a><br><br> <input type="radio" name="command" id="shop" value="shop"><a onclick=sl('shop'); href="javascript:void(0);" onmouseover="status=' ';return true;">返回列表</a><br><br>
<!--{loop $itemdata $idata}--> <!--{loop $itemdata $idata}-->
<!--{if $idata['sid']}--> <!--{if $idata['sid']}-->
<a onclick=sl("$idata['sid']"); href="javascript:void(0);" onmouseover="status=' ';return true;"><input type="radio" name="command" id="$idata['sid']" value="$idata['sid']">$idata['item']/$idata['itmk_words']/$idata['itme']/$idata['itms']<!--{if $idata['itmsk_words']}-->/$idata['itmsk_words']<!--{/if}--> 【价:$idata['price'],数:$idata['num']】</a><br> <a onclick=sl("$idata['sid']"); href="javascript:void(0);" onmouseover="status=' ';return true;"><input type="radio" name="command" id="$idata['sid']" value="$idata['sid']">$idata['item_words']/$idata['itmk_words']/$idata['itme']/$idata['itms']<!--{if $idata['itmsk_words']}-->/$idata['itmsk_words']<!--{/if}--> 【价:$idata['price'],数:$idata['num']】</a><br>
<!--{/if}--> <!--{/if}-->
<!--{/loop}--> <!--{/loop}-->
<!--{if $shop==1||$shop==2||$shop==6||$shop==7||$shop==8||$shop==10||$shop==11||$shop==12}--> <!--{if $shop==1||$shop==2||$shop==6||$shop==7||$shop==8||$shop==10||$shop==11||$shop==12}-->
请输入购买数量:<input type="text" name="buynum" value="1" size="5" maxlength="5"> 请输入购买数量:<input type="number" name="buynum" value="1" min="1" max="1000">
<!--{else}--> <!--{else}-->
<input type="hidden" name="buynum" value="1"> <input type="hidden" name="buynum" value="1">
<!--{/if}--> <!--{/if}-->
......
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