Commit a29abb27 authored by Nemo Ma's avatar Nemo Ma Committed by GitHub

Merge pull request #13 from hikawiier/waaagh

Add itemdepot
parents 3658379b 284b1837
......@@ -452,6 +452,37 @@ if($hp > 0){
$log .= '<span class="yellow">你所在的地区没有商店。</span><br />';
$mode = 'command';
}
} elseif($mode == 'depot') {
include_once GAME_ROOT.'./include/game/depot.func.php';
if(in_array($pls,$depots))
{
global $name,$type;
$saveitem_list = depot_getlist($name,$type);
switch($command)
{
case 'sp_depot_save':
$mode = 'sp_depot_save';
break;
case 'sp_depot_load':
$mode = 'sp_depot_load';
break;
case strpos($command,'saveitem')===0:
$iid = substr($command,9);
depot_save($iid);
break;
case strpos($command,'loaditem')===0:
$lid = substr($command,9);
depot_load($lid);
break;
default :
$mode = 'sp_depot';
}
}
else
{
$log .= '<span class="yellow">你所在的地区没有安全箱。</span><br />';
$mode = 'command';
}
} elseif($mode == 'deathnote') {
if($dnname){
include_once GAME_ROOT.'./include/game/item2.func.php';
......
......@@ -1213,7 +1213,8 @@ $elements_info = Array
4 => $sparkle.'<span class="mtgwhite">昼闪闪</span>'.$sparkle,
5 => $sparkle.'<span class="mtgblack">夜静静</span>'.$sparkle,
);
//安全箱位置
$depots = Array(5,28);
$shops = Array(0,14,27);
$hospitals = Array(11,19,32);
$plsinfo = Array(
......
......@@ -103,4 +103,24 @@ CREATE TABLE bra_gambling (
odds decimal(8,4) unsigned NOT NULL default '0',
bnid smallint unsigned NOT NULL default '0',
PRIMARY KEY (gid)
) ENGINE=MyISAM;
--
-- 表的结构 `bra_itemdepot`
-- 储存仓库道具的信息
--
DROP TABLE IF EXISTS bra_itemdepot;
CREATE TABLE bra_itemdepot (
iid mediumint unsigned NOT NULL auto_increment,
itm varchar(30) NOT NULL default '',
itmk varchar(15) not null default '',
itme int(10) unsigned NOT NULL default '0',
itms varchar(10) not null default '0',
itmsk varchar(40) not null default '',
itmowner char(15) NOT NULL DEFAULT '',
itmpw char(5) NOT NULL DEFAULT '',
PRIMARY KEY (iid)
) ENGINE=MyISAM;
\ No newline at end of file
......@@ -135,14 +135,14 @@ function findcorpse(&$w_pdata){
{
${$w_sk_value.'_words'} .= parse_itm_desc($sk,'sk');
}
/*for ($i = 0; $i < strlen($w_sk_value)-1; $i++) {
$sub = substr(${$w_sk_value},$i,1);
if(!empty($sub)){
${$w_sk_value.'_words'} .= $itemspkinfo[$sub];
}
}*/
}
}
include_once GAME_ROOT.'./include/game/depot.func.php';
$loot_depot_flag = 0;
if(in_array($w_type,$can_lootdepot_type))
{
$loot_depot_flag = depot_getlist($w_name,$w_type) ? 1 : 0;
}
include template('corpse');
$cmd = ob_get_contents();
ob_clean();
......
<?php
if(!defined('IN_GAME')) {
exit('Access Denied');
}
global $can_lootdepot_type;
//个人仓库最多可以储存的道具数量 0=不限制
$max_saveitem_num = 0;
//储存每件道具的手续费
$saveitem_cost = 20;
//取出道具的手续费
$loaditem_cost = 220;
//游戏开场时NPC存在仓库里的道具
$npc_depot = Array();
//可以从哪些人的尸体上获取其存放在仓库里的道具权限? 默认:仅玩家
$can_lootdepot_type = Array(0);
function depot_getlist($n,$t)
{
global $db,$tablepre;
$iarr = Array();
$depot = $db->query("SELECT * FROM {$tablepre}itemdepot WHERE itmowner='$n' AND itmpw='$t'");
while($i = $db->fetch_array($depot))
{
$iarr[] = $i;
}
return $iarr;
}
function depot_changeowner($n,$t,$tn,$tt)
{
global $db,$tablepre;
$db->query("UPDATE {$tablepre}itemdepot SET itmowner='$tn',itmpw='$tt' WHERE itmowner='$n' AND itmpw=$t");
}
function loot_depot($n,$t,$tn,$tt)
{
global $log,$can_lootdepot_type,$rp;
if(!in_array($tt,$can_lootdepot_type))
{
$log.="无法转移安全箱权限!可能是对方的权限等级比你高。<br>";
return;
}
if(count(depot_getlist($n,$t))<=0)
{
$log.="对方没有在安全箱内存过东西!<br>";
return;
}
depot_changeowner($tn,$tt,$n,$t);
$rp+=233;
$log .= "你将{$tn}生前存放在安全箱里的东西转移到了自己的名下!哇,这可真是……<br>";
addnews ( 0, 'loot_depot', $n, $tn );
return;
}
function depot_save($i)
{
global $db,$tablepre,$arealist,$areanum,$hack;
global $log,$pls,$name,$type,$money;
global $max_saveitem_num,$saveitem_cost,$loaditem_cost,$depots;
global ${'itm'.$i},${'itmk'.$i},${'itme'.$i},${'itms'.$i},${'itmsk'.$i};
$i = (int)$i;
if(!in_array($pls,$depots))
{
$log.="<span class='red'>你所在的位置没有安全箱!建议你不要胡思乱想!</span><br>";
return;
}
if(array_search($pls,$arealist) <= $areanum && !$hack)
{
$log.="<span class='red'>你所在的位置是禁区!还想着存东西,命不要啦!</span><br>";
return;
}
if(!$i || $i>6 || $i<1 || (${'itms'.$i}<=0 && ${'itms'.$i}!=='∞'))
{
$log.="<span class='red'>要储存的道具信息错误,请返回重新输入。</span><br>";
return;
}
if($money < $saveitem_cost)
{
$log.="<span class='red'>你身上的钱不足以支付储存道具的手续费!</span><br>";
return;
}
if(strpos(${'itmsk'.$i},'v')!==false)
{
$log.="<span class='red'>你尝试着把灵魂绑定的道具扔进安全箱,但安全箱又立刻将它吐了出来!</span><br>";
return;
}
$idpt = depot_getlist($name,$type);
$idpt_num = sizeof($idpt);
if($idpt_num+1>$max_saveitem_num && $max_saveitem_num>0)
{
$log.="<span class='red'>安全箱已满,无法再储存更多道具!</span><br>";
return;
}
$money -= $saveitem_cost;
$log.="你成功将道具<span class='yellow'>{${'itm'.$i}}</span>存进了安全箱内!<br>同时被迫支付了手续费<span class='yellow'>{$saveitem_cost}</span>元。<br>";
$itm=&${'itm'.$i};$itmk=&${'itmk'.$i};$itmsk=&${'itmsk'.$i};
$itme=&${'itme'.$i};$itms=&${'itms'.$i};
addnews($now,'depot_save',$name,${'itm'.$i});
$db->query("INSERT INTO {$tablepre}itemdepot (itm, itmk, itme, itms, itmsk ,itmowner, itmpw) VALUES ('$itm', '$itmk', '$itme', '$itms', '$itmsk', '$name', '$type')");
$itm='';$itmk='';$itmsk='';
$itme=0;$itms=0;
}
function depot_load($i)
{
global $db,$tablepre,$arealist,$areanum,$hack;
global $log,$pls,$name,$type,$money;
global $max_saveitem_num,$saveitem_cost,$loaditem_cost,$depots;
global $itm0,$itmk0,$itme0,$itms0,$itmsk0;
$i = (int)$i;
if(!in_array($pls,$depots))
{
$log.="<span class='red'>你所在的位置没有安全箱!建议你不要胡思乱想!</span><br>";
return;
}
if(array_search($pls,$arealist) <= $areanum && !$hack)
{
$log.="<span class='red'>你所在的位置是禁区!还想着取东西,命不要啦!</span><br>";
return;
}
if($money < $loaditem_cost)
{
$log.="<span class='red'>你身上的钱不足以支付取出道具的保管费……卧槽竟然二次收费,太黑了吧!</span><br>";
return;
}
$idpt = depot_getlist($name,$type);
$idpt_num = sizeof($idpt);
if(($max_saveitem_num>0 && $i>$max_saveitem_num) || $i<0 || ($idpt[$i]['itms']<=0 && $idpt[$i]['itms']!=='∞'))
{
$log.="<span class='red'>要取出的道具信息错误,请返回重新输入。</span><br>";
return;
}
$itm0= $idpt[$i]['itm'];
$itmk0= $idpt[$i]['itmk'];
$itme0= $idpt[$i]['itme'];
$itms0= $idpt[$i]['itms'];
$itmsk0= $idpt[$i]['itmsk'];
$iid = $idpt[$i]['iid'];
addnews($now,'depot_load',$name,$itm0);
$log.="你成功将道具<span class='yellow'>{$itm0}</span>从安全箱中取了出来!<br>同时被迫支付了保管费<span class='yellow'>{$loaditem_cost}</span>元……你感觉自己的心在滴血。<br>";
$money -= $loaditem_cost;
$db->query("DELETE FROM {$tablepre}itemdepot WHERE iid='$iid'");
include_once GAME_ROOT.'./include/game/itemmain.func.php';
itemget();
}
?>
......@@ -1045,6 +1045,16 @@ function getcorpse($item){
$mode = 'command';
return;
}
if($item == 'loot_depot')
{
global $name,$type;
include_once GAME_ROOT.'./include/game/depot.func.php';
loot_depot($name,$type,$edata['name'],$edata['type']);
$action = '';
$mode = 'command';
return;
}
if($item == 'wep') {
$itm0 = $edata['wep'];
......
......@@ -35,8 +35,8 @@ function nparse_news($start = 0, $range = 0 ){//$type = '') {
if(strpos($news,'death')!==false && $news!=='death28' && isset($d)) $d = parse_itm_desc($d,'m',0,"red");
//赠送道具、吃到毒补给、陷阱、改变天气、强化武器、唱歌、打开礼物盒:道具名登记在$c上;
if((strpos($news,'senditem')!==false||strpos($news,'poison')!==false||strpos($news,'trap')!==false||strpos($news,'wth')!==false||strpos($news,'newwep')!==false||strpos($news,'song')!==false||strpos($news,'present')!==false) && isset($c)) $c = parse_itm_desc($c,'m');
//合成、使用死斗卡:道具名登记在$b上;
if((strpos($news,'mix')!==false||strpos($news,'duelkey')!==false) && isset($b)) $b = parse_itm_desc($b,'m');
//合成、使用死斗卡、使用仓库:道具名登记在$b上;
if((strpos($news,'mix')!==false||strpos($news,'duelkey')!==false||strpos($news,'depot')===0) && isset($b)) $b = parse_itm_desc($b,'m');
//$sec='??';
if($news == 'newgame') {
......@@ -290,6 +290,12 @@ function nparse_news($start = 0, $range = 0 ){//$type = '') {
$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";
} elseif($news == 'depot_save') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"grey\">{$a}向安全箱中存入了道具{$b}。</span><br>\n";
} elseif($news == 'depot_load') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"grey\">{$a}从安全箱中取出了道具{$b}。</span><br>\n";
} elseif($news == 'loot_depot') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"grey\">{$a}{$b}生前存放在安全箱里的东西转移到了自己的名下。哇……真是世风日下,道德沦丧啊!</span><br>\n";
} else {
$newsinfo .= "<li>$time,$news,$a,$b,$c,$d<br>\n";
}
......
......@@ -541,7 +541,7 @@ function rest($command) {
//登记一些特殊的死亡事件
function check_kill_events($kid,$eid)
{
global $db,$tablepre,$log;
global $db,$tablepre,$log,$now;
$result = $db->query("SELECT * FROM {$tablepre}players WHERE pid='$eid'");
$edata = $db->fetch_array($result);
......
......@@ -207,7 +207,21 @@ function rs_game($mode = 0) {
unset($itemlist);unset($iqry);
//unset($mapitem);
//挤一挤 仓库道具初始化
include_once GAME_ROOT.'./include/game/depot.func.php';
if(is_array($npc_depot))
{
foreach($npc_depot as $nd_num => $nd_arr)
{
foreach($nd_arr['itm'] as $nd_itm_arr)
{
$ditm = $nd_itm_arr['itm'];$ditmk = $nd_itm_arr['itmk'];$ditmsk = $nd_itm_arr['itmsk'];
$ditme = $nd_itm_arr['itme'];$ditms = $nd_itm_arr['itms'];
$dname = $nd_arr['name'];$dtype = $nd_arr['type'];
$db->query("INSERT INTO {$tablepre}itemdepot (itm, itmk, itme, itms, itmsk ,itmowner, itmpw) VALUES ('$ditm', '$ditmk', '$ditme', '$ditms', '$ditmsk', '$dname', '$dtype')");
}
}
}
}
if ($mode & 32) {
//echo " - 商店初始化 - ";
......
......@@ -66,6 +66,9 @@
<!--{if in_array($pls,$shops)}-->
<input type="button" class="cmdbutton" id="sp_shop" name="sp_shop" value="商店" onclick="$('command').value='special';$('subcmd').name='sp_cmd';$('subcmd').value='sp_shop';postCmd('gamecmd','command.php');this.disabled=true;">
<!--{/if}-->
<!--{if in_array($pls,$depots)}-->
<input type="button" class="cmdbutton" id="sp_depot" name="sp_depot" value="安全箱" onclick="$('command').value='special';$('subcmd').name='sp_cmd';$('subcmd').value='sp_depot';postCmd('gamecmd','command.php');this.disabled=true;">
<!--{/if}-->
<input type="button" class="cmdbutton" id="sp_skpts" name="sp_skpts" value="升级技能" onclick="$('command').value='special';$('subcmd').name='sp_cmd';$('subcmd').value='sp_skpts';postCmd('gamecmd','command.php');this.disabled=true;">
<br />
<!--{if $club == 7}-->
......
......@@ -3,6 +3,9 @@
<!--{if $club==20}-->
<input type="radio" name="command" id="element_split" value="element_split" <!--{if !$w_money}-->checked<!--{/if}-->><a onclick=sl('element_split'); href="javascript:void(0);" >提炼元素</a><br>
<!--{/if}-->
<!--{if $loot_depot_flag}-->
<input type="radio" name="command" id="loot_depot" value="loot_depot"><a onclick=sl('loot_depot'); href="javascript:void(0);" >转移安全箱权限</a><br>
<!--{/if}-->
<input type="radio" name="command" id="menu" value="menu" <!--{if !$w_money && $club!=20 }-->checked<!--{/if}-->><a onclick=sl('menu'); href="javascript:void(0);" >返回</a><br><br>
<!--{if $w_weps && $w_wepe}-->
<input type="radio" name="command" id="wep" value="wep"><a onclick=sl('wep'); href="javascript:void(0);" >$w_wep/$w_wepk_words/$w_wepe/$w_weps<!--{if $w_wepsk_words}-->/$w_wepsk_words<!--{/if}--></a><br>
......
<!--{eval include_once GAME_ROOT.'./include/game/depot.func.php';}-->
<input type="hidden" name="mode" value="depot">
你在某个不起眼的角落发现了一个黑乎乎的匣子。<br>
当你靠近时,匣子上方投影出了一段文字。<br>
从屏幕上的内容来看,你似乎可以把道具存放在这个「绝对安全」的匣子里。<br>
那么……该怎么做呢?<br>
<br>
<input type="radio" name="command" id="menu" value="menu" checked><a onclick=sl('menu'); href="javascript:void(0);" onmouseover="status=' ';return true;">【离开】</a>
<br>
<input type="radio" name="command" id="sp_depot_save" value="sp_depot_save"><a onclick=sl('sp_depot_save'); href="javascript:void(0);" onmouseover="status=' ';return true;">【存放道具】</a><br>
<span class="grey">选择该功能,可以将身上的道具<span class="yellow">储存</span>在安全箱中进行保管。<br>储存的道具<span class="yellow">不可堆叠</span><!--{if $max_saveitem_num>0}-->且最多可以存放<span class="yellow">$max_saveitem_num</span>件,<!--{/if}-->请在储存前将其整理好。储存道具的手续费为每件<span class="yellow">$saveitem_cost</span>元。<br>
<input type="radio" name="command" id="sp_depot_load" value="sp_depot_load"><a onclick=sl('sp_depot_load'); href="javascript:void(0);" onmouseover="status=' ';return true;">【取出道具】</a><br>
<span class="grey">选择该功能,可以将储存在安全箱中的道具<span class="yellow">取出</span><br>取出道具时,会收取一定的保管费,保管费用为每件<span class="yellow">$loaditem_cost</span>元。<br>
<br>
<input type="button" class="cmdbutton" name="submit" id="提交" value="提交" onclick="postCmd('gamecmd','command.php');this.disabled=true;">
\ No newline at end of file
<input type="hidden" name="mode" value="depot">
你在全息屏幕上提交了取出道具的请求。<br>
一阵闪烁后,屏幕上的内容刷新为你曾经在安全箱中存入的道具信息。<br>
要从安全箱中取出什么呢?<br>
<br>
<input type="radio" name="command" id="sp_depot" value="sp_depot" checked><a onclick=sl('menu'); href="javascript:void(0);" onmouseover="status=' ';return true;">返回</a>
<br><br>
<!--{loop $saveitem_list $sid $siar}-->
<input type="radio" name="command" id="loaditem_$sid" value="loaditem_$sid"><a onclick="$('loaditem_$sid').click();" href="javascript:void(0);">$siar['itm']/$siar['itme']/$siar['itms']</a><br>
<!--{/loop}-->
<br><br>
<input type="button" class="cmdbutton" name="submit" id="提交" value="提交" onclick="postCmd('gamecmd','command.php');this.disabled=true;">
\ No newline at end of file
<input type="hidden" name="mode" value="depot">
你在全息屏幕上提交了储存的请求。<br>
一阵闪烁后,屏幕上的内容刷新为了你身上携带着的道具信息。<br>
要向安全箱内存入什么呢?<br>
<br>
<input type="radio" name="command" id="sp_depot" value="sp_depot" checked><a onclick=sl('menu'); href="javascript:void(0);" onmouseover="status=' ';return true;">返回</a>
<br><br>
<!--{if $itms1}--><input type="radio" name="command" id="saveitem_1" value="saveitem_1"><a onclick="$('saveitem_1').click();" href="javascript:void(0);">$itm1/$itme1/$itms1</a><br><!--{/if}-->
<!--{if $itms2}--><input type="radio" name="command" id="saveitem_2" value="saveitem_2"><a onclick="$('saveitem_2').click();" href="javascript:void(0);">$itm2/$itme2/$itms2</a><br><!--{/if}-->
<!--{if $itms3}--><input type="radio" name="command" id="saveitem_3" value="saveitem_3"><a onclick="$('saveitem_3').click();" href="javascript:void(0);">$itm3/$itme3/$itms3</a><br><!--{/if}-->
<!--{if $itms4}--><input type="radio" name="command" id="saveitem_4" value="saveitem_4"><a onclick="$('saveitem_4').click();" href="javascript:void(0);">$itm4/$itme4/$itms4</a><br><!--{/if}-->
<!--{if $itms5}--><input type="radio" name="command" id="saveitem_5" value="saveitem_5"><a onclick="$('saveitem_5').click();" href="javascript:void(0);">$itm5/$itme5/$itms5</a><br><!--{/if}-->
<!--{if $itms6}--><input type="radio" name="command" id="saveitem_6" value="saveitem_6"><a onclick="$('saveitem_6').click();" href="javascript:void(0);">$itm6/$itme6/$itms6</a><br><!--{/if}-->
<br><br>
<input type="button" class="cmdbutton" name="submit" id="提交" value="提交" onclick="postCmd('gamecmd','command.php');this.disabled=true;">
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment