Commit bad47d4c authored by hisuinohoshi's avatar hisuinohoshi

rev botservice phase 0.33

新增:
- bot基础行为模式(入场、探索、合成);

变化:
- 消灭了大部分功能函数中与玩家数据相关的global;
parent 8e713228
...@@ -34,6 +34,7 @@ gamedata/banlist.php ...@@ -34,6 +34,7 @@ gamedata/banlist.php
gamedata/clearlog.php gamedata/clearlog.php
gamedata/cache/queue_vnmixitem_1.php gamedata/cache/queue_vnmixitem_1.php
gamedata/cache/vnmixitem_1.php gamedata/cache/vnmixitem_1.php
bot/bot_enable.bat
# DTS Cache Files # DTS Cache Files
gamedata/bak/ gamedata/bak/
......
<?php
require './include/common.inc.php';
require './bot/revbotservice.php';
while (true) {
botservice();
sleep($botcds);
}
?>
\ No newline at end of file
@echo off
PATH=%PATH%;C:\wamp64\bin\php\php7.4.0
php -v
set BOT_CD=2
cd ..
:loop
php bot/revbotservice.php
timeout /t %BOT_CD%
goto loop
\ No newline at end of file
#!/bin/bash #!/bin/bash
BOT_CD=0.5 BOT_CD=2
cd .. cd ..
while true; do while true; do
php bot/revbotservice.php php bot/revbotservice.php
......
<?php
if(!defined('IN_GAME')) {
exit('Access Denied');
}
# bot参数一览
/*
0.['clbpara']['botphase'] : bot阶段 用于判定bot总的行动方针
1.['clbpara']['botact'] :包含bot具体的行为参数
2.['clbpara']['botstf']:记录bot获取过的素材
3.['clbpara']['botmix']:记录bot合成过的道具
*/
# bot在不同阶段的行动目标
$bot_action_phase = Array
(
# 0.探索阶段:刚刚入场,目标是寻找合成素材
0 => Array(
'pose' => 3,
'tactic' => 2,
),
# 1.偷反阶段:攒够合成素材,开始刷兵,会主动移动到有声音或有兵死掉的位置
1 => Array(
'pose' => 4,
'tactic' => 3,
),
# 2.强袭阶段:武器效果到达阈值,开始合成广域主动猎杀场上玩家目标
2 => Array(
'pose' => 2, //小开不算开
'tactic' => 2,
),
# 3.躲避阶段:场上存在其他更强的玩家,进入躲避阶段,不停移动躲避敌人,并把身上的钱全部拿来买雷
3 => Array(
'pose' => 4,
'tactic' => 4,
),
);
# bot在阶段0寻找素材时要前往的地图
$bot_moveto_phase = Array
(
1 => 30,
2 => 21,
3 => 16,
4 => 21,
);
# bot会拾取的道具名白名单(注意:商店购买也算在内)
$bot_can_get_itemlist = Array
(
'治疗针','体力回复药','凸眼鱼','针线包','驱云弹','钉','磨刀石','沉默磨刀石','黑磨刀石','『祝福宝石』','『灵魂宝石』',
);
$bot_stfid = Array
(
0 => Array
(
'增幅设备' => 'r0',
'生命探测器' => 'r1',
'广域生命探测器' => 'r2',
'手机' => 'p1',
'笔记本电脑' => 'p2',
'移动PC' => 'p3',
),
1 => Array
(
'原型武器P' => 'c11',
'实验装甲A' => 'c12',
'小棍棒' => 'c13',
'冰沙' => 'c14',
'御神签' => 'c15',
'《哲♂学》' => 'c16',
'☆金属拳套☆ ' => 'c17',
'★RPG-7★' => 'c19',
),
2 => Array
(
'『风魔激光刃』' => 'c21',
'『祝福宝石』' => 'c22',
),
3 => Array
(
'《小黄的草帽》' => 'c31',
'《小黄的钓鱼竿》' => 'c32',
'《小黄的行军靴》' => 'c33',
'《小黄的收服特训》' => 'c34',
'《小黄的常磐之力》' => 'c35',
),
4 => Array
(
'『连射激光』' => 'c41',
'『高性能子机』' => 'c42',
),
);
$bot_mixid = Array
(
'『T-LINK念动冲拳』' => 'm11',
'Azurewrath' => 'm21',
'《小黄的精灵球》' => 'm31',
'《小黄的超级球》' => 'm32',
'《小黄的大师球》' => 'm33',
);
$bot_player_list = Array
(
'type' => 18,
'bid' => 0,
'inf' => '',
'rage' => 0,
'pose'=> 2,
'tactic' => 3,
'killnum' => 0,
'rp' => 0,
'mhp' => 400,
'msp' => 400,
'att' => 120,
'def' => 120,
'lvl' => 0,
'skill' => 40,
'money' => 50,
'art' => '◆焰火',
'artk' => 'A',
'arte' => 1,
'arts' => 1,
'artsk' => 'H',
'itm1' => '治疗针',
'itmk1' => 'HH',
'itme1' => 100,
'itms1' => 60,
'itm2' => '体力回复药',
'itmk2' => 'HS',
'itme2' => 100,
'itms2' => 60,
'itm6' => '银白盒子',
'itmk6' => 'ps',
'itme6' => 1,
'itms6' => 1,
'sub' => array
(
0 => array
(
'name' => '小黄鸡',
'nick' => '参展者',
'icon' => 0,
'gd' => 'm',
'club' => 2,
'pls' => 21,
'wep' => '『寻星勇者』',
'wepk' => 'WK',
'wepe' => 75,
'weps' => 45,
'wepsk' => 'd',
'arb' => '男生校服',
'arbk' => 'DB',
'arbe' => 15,
'arbs' => 5,
),
1 => array
(
'name' => '小黄鸭',
'nick' => '参展者',
'icon' => 0,
'gd' => 'f',
'club' => 4,
'pls' => 21,
'wep' => '『单向火箭炮』',
'wepk' => 'WG',
'wepe' => 90,
'weps' => 188,
'wepsk' => 'do',
'arb' => '女生校服',
'arbk' => 'DB',
'arbe' => 15,
'arbs' => 5,
),
2 => array
(
'name' => '大白鹅',
'nick' => '参展者',
'icon' => 0,
'gd' => 'f',
'club' => 3,
'pls' => 16,
'wep' => '冰冻青蛙',
'wepk' => 'WC',
'wepe' => 90,
'weps' => 198,
'wepsk' => 'i',
'arb' => '女生校服',
'arbk' => 'DB',
'arbe' => 15,
'arbs' => 5,
),
3 => array
(
'name' => '小鲤鱼',
'nick' => '参展者',
'icon' => 0,
'gd' => 'm',
'club' => 1,
'pls' => 30,
'wep' => '电击鞭',
'wepk' => 'WP',
'wepe' => 64,
'weps' => 32,
'wepsk' => 'e',
'arb' => '男生校服',
'arbk' => 'DB',
'arbe' => 15,
'arbs' => 5,
),
),
);
?>
<?php
if(!defined('IN_GAME')) {
exit('Access Denied');
}
include GAME_ROOT.'./bot/revbot.config.php';
# bot初始化
function bot_player_valid($vnums)
{
global $validnum,$alivenum,$now,$db,$tablepre,$gamevars;
global $bot_player_list;
$bot_nums = count($bot_player_list['sub']);
if(!empty($vnums) && !empty($bot_nums))
{
$ids = Array();
for($i=0;$i<$vnums;$i++)
{
$bot = rand(0,$bot_nums-1);
$bots = array_merge($bot_player_list,$bot_player_list['sub'][$bot]);
unset($bots['sub']);
extract($bots);
$validnum++;
$alivenum++;
$endtime = $validtime = $now;
$sNo = $validnum;
$hp = $mhp;
$sp = $msp;
$pls = 0;
$killnum = 0;
$lvl = 0;
$exp = $areanum * 20;
$money = 20;
$rage = 0;
$pose = 3;
$tactic = 2;
$pass = 'bot';
$state = 0;
$bid = 0;
$inf = $teamID = $teamPass = '';
$ndata = update_db_player_structure();
foreach($ndata as $key)
{
if(isset($$key)) $ndata[$key] = $$key;
}
include_once GAME_ROOT.'./include/game/clubslct.func.php';
if(!empty($club)) changeclub($club,$ndata);
$ndata['clbpara']['botphase'] = 0; $ndata['clbpara']['botact']['sitm'] = 0;
$ndata = player_format_with_db_structure($ndata);
if(!empty($ndata)) $db->array_insert("{$tablepre}players", $ndata);
$ids[] = $db->insert_id();
# 初始化头衔tooltip
include_once GAME_ROOT.'./include/game/titles.func.php';
$nickinfo = get_title_desc($nick);
addnews($now,'newpc',$nickinfo.' '.$name,"{$sexinfo[$gd]}{$sNo}号",$ip,$nick);
}
return $ids;
}
}
# bot行为
function bot_acts($id)
{
global $log;
$bdata = fetch_playerdata_by_pid($id);
if($bdata && $bdata['hp'] > 0)
{
# 先检查是否需要使用道具
bot_use_items($bdata);
# 在行动前检查一遍行动策略
bot_pre_act_check($bdata);
# 判定bot是否需要移动:
include_once GAME_ROOT.'./include/game/search.func.php';
if(isset($bdata['clbpara']['botact']['moveto']) && $bdata['clbpara']['botact']['moveto'] != $bdata['pls'])
{
$flag = move($bdata['clbpara']['botact']['moveto'],$bdata);
}
else
{
$flag = search($bdata);
}
unset($bdata['clbpara']['botact']['moveto']);
echo $log;
echo "bot {$bdata['name']} 行动完成。";
player_save($bdata);
return 1;
}
else
{
return 0;
}
}
# bot在行动前检查策略
function bot_pre_act_check(&$pa)
{
global $db,$tablepre;
global $noisepls;
global $bot_moveto_phase,$bot_action_phase;
$plslist = get_safe_plslist();
# -1.存在异常状态,花1点技能点解除下异常状态
if(!empty($pa['inf']) && $pa['skillpoint'])
{
$pa['skillpoint'] --;
$pa['inf'] = '';
$pa['hp'] = $pa['mhp']; $pa['sp'] = $pa['msp'];
}
# 0.探索阶段:刚刚入场,目标是寻找合成素材
if($pa['clbpara']['botphase'] == 0)
{
if(!bot_check_can_mixitem($pa))
{
# 将目标地图设置为寻物所需位置
$bmoveto = $pa['pls'] == $bot_moveto_phase[$pa['club']] ? NULL : $bot_moveto_phase[$pa['club']];
# 能否到达指定寻物位置?
if((isset($bmoveto) && !in_array($bmoveto,$plslist)) || $pa['clbpara']['botact']['stimes'] >= 100)
{
unset($bmoveto);
# 被禁了!那只能黑幕一个了(
if($pa['club'] == 1)
{
$pa['clbpara']['botmix']['c11'] = 1; $pa['clbpara']['botmix']['c12'] = 1;
}
elseif($pa['club'] == 2)
{
$pa['clbpara']['botmix']['c21'] = 1;
}
elseif($pa['club'] == 3)
{
$pa['clbpara']['botmix']['c31'] = 1; $pa['clbpara']['botmix']['c32'] = 1; $pa['clbpara']['botmix']['c33'] = 1;
}
elseif($pa['club'] == 4)
{
$pa['wep'] = '高性能子机'; $pa['wepk'] = 'WG'; $pa['wepe'] = 77; $pa['weps'] = 77; $pa['wepsk'] = 'r';
}
}
else
{
$pa['clbpara']['botact']['stimes']++;
}
}
else
{
unset($pa['clbpara']['botact']['stimes']);
unset($bdata['clbpara']['botact']['moveto']);
$pa['clbpara']['botphase'] = 1;
}
}
# 1.偷反阶段:攒够合成素材,开始刷兵,会主动移动到有声音或有兵死掉的位置
# 2.(没合出广域的)强袭阶段:武器效果到达阈值,开始合成广域主动猎杀场上玩家目标
elseif($pa['clbpara']['botphase'] == 1 || (!isset($pa['clbpara']['botstf']['r2']) && $pa['clbpara']['botphase'] == 2))
{
bot_check_can_mixitem($pa);
# bot优先移动到有声音的位置
if($noisepls && $bdata['pls'] != $noisepls)
{
$bmoveto = $noisepls;
}
# 如果没有 移动到上一个死人的位置
else
{
$cpresult = $db->query("SELECT recv FROM {$tablepre}chat WHERE type = 3 ORDER BY time DESC");
while($spls = $db->fetch_array($cpresult))
{
if(in_array($spls,$plslist))
{
$bmoveto = $spls;
break;
}
}
}
}
# 2.(合出广域的)强袭阶段:武器效果到达阈值,挑选一位比较牛的玩家开始猎杀
elseif($pa['clbpara']['botphase'] == 2)
{
$htresult = $db->query("SELECT pls FROM {$tablepre}chat WHERE type = 0 AND pass != 'bot' ORDER BY lvl DESC");
while($spls = $db->fetch_array($htresult))
{
if(in_array($spls,$plslist))
{
$bmoveto = $spls;
break;
}
}
}
# 3.躲避阶段:场上有触手,使用一些卑鄙招数
else
{
# 有钱买雷先去买雷
if(empty($pa['clbpara']['botact']['gettrap']) && $pa['money'] >= 2500 && (in_array(14,$plslist) || in_array(27,$plslist)))
{
$bmoveto = in_array(14,$plslist) ? 14 : 27;
}
# 买到雷去干坏事
elseif(!empty($pa['clbpara']['botact']['gettrap']))
{
$htresult = $db->query("SELECT pls FROM {$tablepre}chat WHERE type = 0 AND pass != 'bot' ORDER BY wepe DESC");
if($db->num_rows($result)) $bmoveto = $db->fetch_array($result,0);
}
# 买不起雷,那跑路吧
else
{
$bmoveto = $plslist[array_rand($plslist)];
}
}
if(!empty($bmoveto)) $pa['clbpara']['botact']['moveto'] = $bmoveto;
$pa['pose'] = $bot_action_phase[$pa['clbpara']['botphase']]['pose'];
$pa['tactic'] = $bot_action_phase[$pa['clbpara']['botphase']]['tactic'];
return $bmoveto;
}
# bot在行动后修正策略
function bot_end_act_check(&$pa)
{
}
# bot使用道具的优先级
function bot_use_items(&$pa)
{
global $bot_can_get_itemlist,$bot_stfid;
include_once GAME_ROOT.'./include/game/item.func.php';
$equip_list = get_equip_list();
$e1 = get_equip_list(1);
for($i=1;$i<=6;$i++)
{
if(!empty($pa['itms'.$i]))
{
# 检查是否需要回血
if($pa['hp'] < $pa['mhp'] && (strpos($pa['itmk'.$i],'HH')===0 || strpos($pa['itmk'.$i],'HB')===0))
{
do{
itemuse($i,$pa);
}while($pa['hp'] < $pa['mhp'] && !empty($pa['itms'.$i]));
# 补货提示
if($pa['itms'.$i] < 5) $botact['need_buy_ihp'] = 1;
continue;
}
# 检查是否需要回体力(设个定值,防止浪费)
if($pa['sp'] < 50 && (strpos($pa['itmk'.$i],'HS')===0 || strpos($pa['itmk'.$i],'HB')===0))
{
do{
itemuse($i,$pa);
}while($pa['sp'] < 50 && !empty($pa['itms'.$i]));
# 补货提示
if($pa['itms'.$i] < 5) $botact['need_buy_isp'] = 1;
continue;
}
# 检查道具是否为通用素材
if(isset($bot_stfid[0][$pa['itm'.$i]]))
{
echo "将{$pa['itm'.$i]}存入了素材库<br>";
$stf_id = $bot_stfid[0][$pa['itm'.$i]];
$pa['clbpara']['botstf'][$stf_id] += $pa['itms'.$i];
$pa['itm'.$i] = $pa['itmk'.$i] = $pa['itmsk'.$i] = '';
$pa['itms'.$i] = $pa['itme'.$i] = 0;
continue;
}
# 检查道具是否为特定素材
if(isset($bot_stfid[$pa['club']][$pa['itm'.$i]]))
{
echo "将{$pa['itm'.$i]}存入了素材库<br>";
$stf_id = $bot_stfid[$pa['club']][$pa['itm'.$i]];
$pa['clbpara']['botstf'][$stf_id] += $pa['itms'.$i];
$pa['itm'.$i] = $pa['itmk'.$i] = $pa['itmsk'.$i] = '';
$pa['itms'.$i] = $pa['itme'.$i] = 0;
continue;
}
# 棍棒武器检查是否需要打钉
if(strpos($pa['itm'.$i],'钉')!==false)
{
if(strpos($pa['wep'],'棍棒')!==false)
{
do{
itemuse($i,$pa);
}while(!empty($pa['itms'.$i]));
}
else
{
itemdrop('itm'.$i,$pa);
}
continue;
}
# 锐器检查是否需要磨刀
if(strpos($pa['itm'.$i],'磨刀石')!==false)
{
if(strpos($pa['wepk'],'K')!==false)
{
do{
itemuse($i,$pa);
}while(!empty($pa['itms'.$i]));
}
else
{
itemdrop('itm'.$i,$pa);
}
continue;
}
# 给耐久大于10的衣服打针线包
if($pa['arbs'] > 10 && strpos($pa['itm'.$i],'针线包')!==false)
{
do{
itemuse($i,$pa);
}while(!empty($pa['itms'.$i]));
continue;
}
# 礼盒直接开
if(strpos($pa['itmk'.$i],'p')!==false)
{
do{
itemuse($i,$pa);
}while(!empty($pa['itms'.$i]));
continue;
}
# 技能书、攻防药直接吃 300效以下陷阱直接用
if(strpos($pa['itmk'.$i],'M')===0 || strpos($pa['itmk'.$i],'V')===0 || (strpos($pa['itmk'.$i],'T')===0 && $pa['itme'.$i]<=300) )
{
do{
itemuse($i,$pa);
}while(!empty($pa['itms'.$i]));
continue;
}
# 驱云弹
if($pa['itm'.$i] == '驱云弹') itemuse($i,$pa);
# 检查是否需要更换装备
if(strpos($pa['itmk'.$i],'D')===0)
{
if(bot_check_equipitem($pa,$e1[$pa['itmk'.$i]])) itemuse($i,$pa);
itemdrop('itm'.$i,$pa);
continue;
}
# 把所有不在素材库和白名单中的道具扔掉
if(!in_array($pa['itm'.$i],$bot_can_get_itemlist))
{
itemdrop('itm'.$i,$pa);
continue;
}
}
}
return;
}
# 检查bot是否会将道具放入背包内
function bot_check_getitem(&$pa)
{
$e1 = get_equip_list(1);
if(!empty($pa['itms0']))
{
global $bot_can_get_itemlist,$bot_stfid;
# 白名单道具
if(in_array($pa['itm0'],$bot_can_get_itemlist))
{
return 1;
}
# 通用合成素材
if(in_array($pa['itm0'],$bot_stfid[0]))
{
return 1;
}
# 社团限定合成素材
if(in_array($pa['itm0'],$bot_stfid[$pa['club']]))
{
return 1;
}
# 强化药物、技能书、地雷
if(strpos($pa['itmk0'],'M')===0 || strpos($pa['itmk0'],'V')===0 || strpos($pa['itmk0'],'T')===0) return 1;
# 装备
if(strpos($pa['itmk0'],'D')===0 && bot_check_equipitem($pa,$e1[$pa['itmk0']])) return 1;
}
return 0;
}
# 检查bot是否会拾取对应防具(不包括饰品)
function bot_check_equipitem(&$pa,$equip)
{
if(!$pa[$equip.'s'] || $pa['itme0'] > $pa[$equip.'e']) return 1;
return 0;
}
# bot武器升级:先这么搞着吧
function bot_check_can_mixitem(&$pa)
{
global $db,$tableprem,$bot_mixid;
$stf = $pa['clbpara']['botstf'];
$mlst = $pa['clbpara']['botmix'];
$mixflag = 0;
if(empty($stf['r2']) && isset($stf['r0']) && isset($stf['r1']))
{
$pa['clbpara']['botstf']['r2'] = 1;
addnews($now,'itemmix',get_title_desc($nick).' '.$name,'广域生命探测器');
}
if(empty($stf['p3']) && isset($stf['p1']) && isset($stf['p2']))
{
$pa['clbpara']['botstf']['p3'] = 1;
addnews($now,'itemmix',get_title_desc($nick).' '.$name,'移动 PC');
}
if($pa['club'] == 1)
{
if(empty($mlst['m11']) && isset($stf['c11']) && isset($stf['c12']))
{
$pa['wep'] = '『T-LINK念动冲拳』';
$pa['wepk'] = 'WP'; $pa['wepe'] = 240; $pa['weps'] = '∞'; $pa['wepsk'] = 'eN';
$pa['clbpara']['botphase'] = 1;
$mixflag = 1;
}
}
elseif($pa['club'] == 2)
{
if(!$pa['clbpara']['botphase'] && isset($stf['c21']))
{
$pa['clbpara']['botphase'] = 1;
}
if(empty($mlst['m21']) && isset($stf['c21']) && isset($stf['c22']))
{
$pa['wep'] = 'Azurewrath';
$pa['wepk'] = 'WK'; $pa['wepe'] = 9999; $pa['weps'] = '∞'; $pa['wepsk'] = 'rci';
$mixflag = 1;
}
}
elseif($pa['club'] == 3)
{
if(empty($mlst['m31']) && isset($stf['c31']) && isset($stf['c32']) && isset($stf['c33']))
{
$pa['wep'] = '《小黄的精灵球》';
$pa['wepk'] = 'WC'; $pa['wepe'] = 386; $pa['weps'] = '∞'; $pa['wepsk'] = '';
$mixflag = 1;
}
elseif(empty($mlst['m32']) && isset($stf['c34']))
{
$pa['wep'] = '《小黄的超级球》';
$pa['wepk'] = 'WC'; $pa['wepe'] = 386; $pa['weps'] = '∞'; $pa['wepsk'] = 'Zir';
$mixflag = 1;
}
elseif(empty($mlst['m33']) && isset($stf['c35']) && $stf['c34'] >= 2)
{
$pa['wep'] = '《小黄的大师球》'; $pa['money'] -= 9300;
$pa['wepk'] = 'WC'; $pa['wepe'] = 493; $pa['weps'] = '∞'; $pa['wepsk'] = 'Zrd';
$mixflag = 1;
}
}
elseif($pa['club'] == 4)
{
if(!$pa['clbpara']['botphase'] && (isset($stf['c41']) || isset($stf['c42'])))
{
$pa['clbpara']['botphase'] = 1;
}
}
if($mixflag)
{
$pa['clbpara']['botmix'][$bot_mixid[$pa['wep']]] = 1;
addnews($now,'itemmix','参展者 '.$pa['name'],$pa['wep']);
}
return $mixflag;
}
function get_bot_action_cost($pa,$action)
{
$bot_action_cost = Array
(
'search' => 2,
'move' => 2,
'useitem' => 1,
'mixitem' => 1,
'heal' => 1,
);
return $bot_action_cost[$action] ?: 2;
}
?>
<?php <?php
require './include/common.inc.php'; include './include/common.inc.php';
require GAME_ROOT . './include/game.func.php'; include GAME_ROOT.'./include/game.func.php';
require config('combatcfg', $gamecfg); include GAME_ROOT.'./bot/revbot.func.php';
$botname = '测试用脚本狗'; if($gamestate > 10)
$botcds = 0.5; //每0.5秒行动一次 {
if(!empty($gamevars['botplayer']))
$bdata = fetch_playerdata_by_name($botname);
if (!$bdata) {
echo "bot_not_in_game=1\n";
exit();
}
if ($gamestate == 0) {
echo "game_ended=1\n";
exit();
}
# 初始化bot上次行动时间
if (empty($bdata['clbpara']['action_flag']['lastact']))
$bdata['clbpara']['action_flag']['lastact'] = $now;
# 初始化bot可行动次数
$action_t = ($now - $bdata['clbpara']['action_flag']['lastact']) / $botcds;
# 初始化bot逻辑判断
while ($action_t > 0 && $bdata['hp'] > 0) {
player_save($bdata);
$bdata = fetch_playerdata_by_name($bdata['name']);
echo "bot开始行动...<br>";
$bdata['clbpara']['action_flag']['lastact'] = $now;
$action_t--;
unset($bmoveto);
# 判定bot是否需要移动:
# bot优先移动到有声音的位置
if ($noisepls && $bdata['pls'] != $noisepls) {
$bmoveto = $noisepls;
}
# 否则检查是否在同一个位置探索超过20次,超过20次则移动到下个位置
elseif ($bdata['pls'] == 0 || $bdata['clbpara']['action_flag']['sctimes'] > 20 || !empty($bdata['clbpara']['action_flag']['needmove'])) {
$bmoveto = rand(1, 31);
}
# 待补完:直接调用move()
if (isset($bmoveto)) {
$bdata['pls'] = $bmoveto;
unset($bdata['clbpara']['action_flag']['sctimes']);
unset($bdata['clbpara']['action_flag']['needmove']);
}
# 判断是否需要执行探索行为
$bsearch = 1;
# 待补完:直接调用search()
if ($bsearch) {
echo "bot开始探索...<br>";
# bot触发事件(暂不可用)
$bot_event_obbs = -1;
$event_dice = rand(0, 99);
if ($event_dice < $event_obbs) {
include_once GAME_ROOT . './include/game/event.func.php';
$event_flag = event();
//触发了事件,中止探索推进
if ($event_flag)
goto action_end_flag;
}
# bot踩雷(暂不可用)
$bot_trap_obbs = -1;
$trap_dice = diceroll(99);
// 计算陷阱“发现率”
if ($trap_dice < $bot_trap_obbs) {
$trapresult = $db->query("SELECT * FROM {$tablepre}maptrap WHERE pls = {$bdata['pls']} ORDER BY itmk DESC");
$trpnum = $db->num_rows($trapresult);
//看地图上有没有陷阱
if ($trpnum) {
include_once GAME_ROOT . './include/game/itemmain.func.php';
$fstrp = $db->fetch_array($trapresult);
//奇迹雷
$xtrpflag = $fstrp['itmk'] == 'TOc' ? true : false;
//计算 或不计算陷阱“触发率”:
$real_trap_obbs = $xtrpflag ? 100 : calc_real_trap_obbs($bdata, $trpnum);
//echo "realtrapobbs = {$real_trap_obbs}<br>";
if ($trap_dice < $real_trap_obbs) {
if (!$xtrpflag) {
$itemno = rand(0, $trpnum - 1);
$db->data_seek($trapresult, $itemno);
$fstrp = $db->fetch_array($trapresult);
}
$bdata['itm0'] = $fstrp['itm'];
$bdata['itmk0'] = $fstrp['itmk'];
$bdata['itme0'] = $fstrp['itme'];
$bdata['itms0'] = $fstrp['itms'];
$bdata['itmsk0'] = $fstrp['itmsk'];
$tid = $fstrp['tid'];
$db->query("DELETE FROM {$tablepre}maptrap WHERE tid='$tid'");
//itemfind();
goto action_end_flag;
}
}
}
# bot遇敌
$bot_schmode_obbs = 75;
include_once GAME_ROOT . './include/game/attr.func.php';
$mode_dice = rand(0, 99);
if ($mode_dice < $bot_schmode_obbs) {
echo "bot进入遇敌判定...<br>";
$result = $db->query("SELECT * FROM {$tablepre}players WHERE pls={$bdata['pls']} AND pid!={$bdata['pid']}");
if (!$db->num_rows($result)) {
echo 'bot发现<span class="yellow">周围一个人都没有</span>,准备离开。<br>';
$bdata['clbpara']['action_flag']['needmove'] = 1;
goto action_end_flag;
}
$enemynum = $db->num_rows($result);
$enemyarray = range(0, $enemynum - 1);
shuffle($enemyarray);
# 计算bot遇敌率 待整合
//$find_r = get_find_r($weather,$pls,$pose,$tactic,$club,$inf);
$b_find_r = 75;
global $enemy_obbs, $corpse_obbs, $corpseprotect;
$find_obbs = $enemy_obbs + $b_find_r;
# 计算bot是否遇敌
$meetman_flag = 0;
include_once GAME_ROOT . './include/game/revattr.func.php';
foreach ($enemyarray as $enum) {
$db->data_seek($result, $enum);
$edata = $db->fetch_array($result);
if (!$edata['type'] || $gamestate < 50) {
if ($edata['hp'] <= 0) {
//直接略过无效尸体
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 (!$ret)
continue;
//计算尸体发现率
$corpse_dice = rand(0, 99);
if ($corpse_dice < $corpse_obbs) {
$meetman_flag = 1;
break;
}
} else {
//直接略过决斗者
global $artk;
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_rev($bdata, $edata);
$enemy_dice = diceroll(99);
//echo "hide_r = {$hide_r} | find_obbs = {$find_obbs} | dice = {$enemy_dice}";
$meetman_flag = $enemy_dice < ($find_obbs - $hide_r) ? 1 : -1;
break;
}
}
}
if ($meetman_flag > 0) {
echo "bot已遇敌!<br>";
if ($edata['hp'] > 0) {
# bot发现发现队友或中立单位(暂无效果)
/*if($teamID&&(!$fog)&&($gamestate<40)&&($teamID == $edata['teamID']))
{ {
$bid = $edata['pid']; # bot初始化
$action = 'team'.$edata['pid']; $ids = bot_player_valid($gamevars['botplayer']);
include_once GAME_ROOT.'./include/game/battle.func.php'; unset($gamevars['botplayer']);
findteam($edata); $gamevars['botid'] = $ids;
return; save_gameinfo();
} echo "所有BOT初始化完成,共计:".(count($ids))."个";
//发现中立NPC或友军 TODO:把这里条件判断挪到一个函数里 }
elseif(isset($edata['clbpara']['post']) && $edata['clbpara']['post'] == $pid) elseif(!empty($gamevars['botid']))
{ {
$bid = $edata['pid']; foreach($gamevars['botid'] as $botid)
$action = 'neut'.$edata['pid']; {
include_once GAME_ROOT.'./include/game/revbattle.func.php'; $flag = bot_acts($botid);
findneut($edata,1); if($flag == 0)
return; {
}*/ unset($gamevars['botid'][array_search($botid,$gamevars['botid'])]);
# bot 发现敌人 save_gameinfo();
include_once GAME_ROOT . './include/game/revbattle.func.php'; if(empty($gamevars['botid'])) break;
include_once GAME_ROOT . './include/game/revcombat.func.php';
//刷新敌人时效性状态
if (!empty($edata['clbpara']['lasttimes']))
$edata = check_skilllasttimes($edata);
//计算先攻概率
$active_r = get_active_r_rev($bdata, $edata);
$active_dice = diceroll(99);
//进入战斗
//先制
if ($active_dice < $active_r) {
$action = 'enemy' . $edata['pid'];
//findenemy_rev($edata);
rev_combat_prepare($bdata, $edata, 1);
}
//挨打
else {
rev_combat_prepare($edata, $bdata, 0);
}
echo $log;
//战斗后刷新bdata数据
$bdata = fetch_playerdata_by_name($bdata['name']);
} else {
# bot发现尸体(暂无操作)
echo "bot发现了{$edata['name']}的尸体。<br>";
//$bdata['action'] = 'corpse'.$edata['pid'];
//include_once GAME_ROOT.'./include/game/battle.func.php';
//findcorpse($edata);
}
} elseif ($meetman_flag < 0) {
echo "bot没有发现敌人,因为敌人隐藏起来了。<br>";
} else {
echo 'bot发现<span class="yellow">周围一个人都没有</span>,准备移动到下一张地图。<br>';
$bdata['clbpara']['action_flag']['needmove'] = 1;
}
goto action_end_flag;
} else {
# bot发现道具判定(暂无)
echo "bot发现了道具...<br>";
//echo "进入道具判定<br>";
/*$find_r = get_find_r($weather,$pls,$pose,$tactic,$club,$inf);
$find_obbs = $item_obbs + $find_r;
$item_dice = rand(0,99);
if($item_dice < $find_obbs) {
$result = $db->query("SELECT * FROM {$tablepre}mapitem WHERE pls = '$pls'");
$itemnum = $db->num_rows($result);
if($itemnum <= 0){
$log .= '<span class="yellow">周围找不到任何物品。</span><br>';
$mode = 'command';
return;
}
$itemno = rand(0,$itemnum-1);
$db->data_seek($result,$itemno);
$mi=$db->fetch_array($result);
global $itm0,$itmk0,$itme0,$itms0,$itmsk0;
$itm0=$mi['itm'];
$itmk0=$mi['itmk'];
$itme0=$mi['itme'];
$itms0=$mi['itms'];
$itmsk0=$mi['itmsk'];
$iid=$mi['iid'];
$db->query("DELETE FROM {$tablepre}mapitem WHERE iid='$iid'");
if($itms0){
include_once GAME_ROOT.'./include/game/itemmain.func.php';
itemfind();
return;
} else {
$log .= "但是什么都没有发现。可能是因为道具有天然呆属性。<br>";
} }
} else { sleep(1);
$log .= "但是什么都没有发现。<br>";
}*/
} }
goto action_end_flag; echo "所有BOT行动完成";
} }
action_end_flag:
player_save($bdata);
$bdata = fetch_playerdata_by_name($bdata['name']);
} }
player_save($bdata);
$bdata = fetch_playerdata_by_name($bdata['name']);
?> ?>
...@@ -85,6 +85,7 @@ $typeinfo = Array( ...@@ -85,6 +85,7 @@ $typeinfo = Array(
13=>'循环使者', 13=>'循环使者',
14=>'数据碎片', 14=>'数据碎片',
15=>'抹杀使徒', 15=>'抹杀使徒',
18=>'参战者', //bot用
19=>'参战者', //真红暮·蓝凝用 19=>'参战者', //真红暮·蓝凝用
20=>'英雄', 20=>'英雄',
21=>'武神', 21=>'武神',
...@@ -113,6 +114,7 @@ $killmsginfo = Array( ...@@ -113,6 +114,7 @@ $killmsginfo = Array(
12=>'你要反省的事情还有很多。', 12=>'你要反省的事情还有很多。',
14=>'死吧。', 14=>'死吧。',
15=>'………………RIP.', 15=>'………………RIP.',
18=>'你弱爆了!',
19=>'我赢了。', 19=>'我赢了。',
89=>'系统弹出,正在计算补正值……', 89=>'系统弹出,正在计算补正值……',
90=>'你弱爆了!', 90=>'你弱爆了!',
...@@ -216,7 +218,8 @@ $lwinfo = Array( ...@@ -216,7 +218,8 @@ $lwinfo = Array(
'守卫者 静流' => '………………………………?!', '守卫者 静流' => '………………………………?!',
), ),
15 => '………………………………抹杀任务中止,脱出。', 15 => '………………………………抹杀任务中止,脱出。',
20 => '這就是善有善報嗎?', 18 => '怎么会这样呢?',
20 => '怎么会这样呢?',
21 => Array( 21 => Array(
'虚子' => '你做完后,你的心理得到什么样的满足感,你自己清楚!', '虚子' => '你做完后,你的心理得到什么样的满足感,你自己清楚!',
'水月' => '……', '水月' => '……',
......
...@@ -110,6 +110,8 @@ if(CURSCRIPT !== 'chat'){ ...@@ -110,6 +110,8 @@ if(CURSCRIPT !== 'chat'){
//addnews($starttime,'newgame',$gamenum); //addnews($starttime,'newgame',$gamenum);
addnews($starttime,'newgame',$gamenum); addnews($starttime,'newgame',$gamenum);
systemputchat($starttime,'newgame'); systemputchat($starttime,'newgame');
//是否部署BOT -> 数量;
$gamevars['botplayer'] = 1;
$ginfochange = true; $ginfochange = true;
} }
} }
......
...@@ -568,25 +568,25 @@ function fetch_playerdata_by_name($n) ...@@ -568,25 +568,25 @@ function fetch_playerdata_by_name($n)
global $db,$tablepre; global $db,$tablepre;
$result = $db->query("SELECT * FROM {$tablepre}players WHERE name = '$n' AND type = 0"); $result = $db->query("SELECT * FROM {$tablepre}players WHERE name = '$n' AND type = 0");
if(!$db->num_rows($result)) return NULL; if(!$db->num_rows($result)) return NULL;
$pdata = $db->fetch_array($result); $data = $db->fetch_array($result);
if(!empty($pdata['clbpara'])) $pdata['clbpara'] = get_clbpara($pdata['clbpara']); if(!empty($data['clbpara'])) $data['clbpara'] = get_clbpara($data['clbpara']);
//套装效果刷新 //套装效果刷新
include_once GAME_ROOT.'./include/game/itemmain.func.php'; include_once GAME_ROOT.'./include/game/itemmain.func.php';
reload_set_items($pdata); reload_set_items($pdata);
return $pdata; return $data;
} }
//通过pid抓取指定玩家/NPC数据 //通过pid抓取指定玩家/NPC数据
function fetch_playerdata_by_pid($pid) function fetch_playerdata_by_pid($pid)
{ {
global $db,$tablepre; global $db,$tablepre;
$result = $db->query("SELECT pid FROM {$tablepre}players WHERE pid = '$pid'"); $result = $db->query("SELECT * FROM {$tablepre}players WHERE pid = '$pid'");
if(!$db->num_rows($result)) return NULL; if(!$db->num_rows($result)) return NULL;
$pdata = $db->fetch_array($result); $data = $db->fetch_array($result);
if(!empty($pdata['clbpara'])) $pdata['clbpara'] = get_clbpara($pdata['clbpara']); if(!empty($data['clbpara'])) $data['clbpara'] = get_clbpara($data['clbpara']);
//套装效果刷新 //套装效果刷新
include_once GAME_ROOT.'./include/game/itemmain.func.php'; include_once GAME_ROOT.'./include/game/itemmain.func.php';
reload_set_items($pdata); reload_set_items($data);
return $pdata; return $data;
} }
//用于将指定player数据存回数据库 //用于将指定player数据存回数据库
function player_save($data){ function player_save($data){
...@@ -604,6 +604,15 @@ function player_save($data){ ...@@ -604,6 +604,15 @@ function player_save($data){
return; return;
} }
//获取安全地图范围
function get_safe_plslist($mode=1)
{
global $areanum,$arealist,$hack,$deepzones;
$r = $hack ? array_slice($arealist,$areanum+1) : $arealist;
if($mode) $r = array_diff($r, $deepzones);
return $r;
}
function w_save($id){ function w_save($id){
global $db,$tablepre,$w_name,$w_pass,$w_type,$w_endtime,$w_deathtime,$w_gd,$w_sNo,$w_icon,$w_club,$w_hp,$w_mhp,$w_sp,$w_msp,$w_att,$w_def,$w_pls,$w_lvl,$w_exp,$w_money,$w_bid,$w_inf,$w_rage,$w_pose,$w_tactic,$w_killnum,$w_state,$w_wp,$w_wk,$w_wg,$w_wc,$w_wd,$w_wf,$w_teamID,$w_teamPass,$w_wep,$w_wepk,$w_wepe,$w_weps,$w_arb,$w_arbk,$w_arbe,$w_arbs,$w_arh,$w_arhk,$w_arhe,$w_arhs,$w_ara,$w_arak,$w_arae,$w_aras,$w_arf,$w_arfk,$w_arfe,$w_arfs,$w_art,$w_artk,$w_arte,$w_arts,$w_itm0,$w_itmk0,$w_itme0,$w_itms0,$w_itm1,$w_itmk1,$w_itme1,$w_itms1,$w_itm2,$w_itmk2,$w_itme2,$w_itms2,$w_itm3,$w_itmk3,$w_itme3,$w_itms3,$w_itm4,$w_itmk4,$w_itme4,$w_itms4,$w_itm5,$w_itmk5,$w_itme5,$w_itms5,$w_itm6,$w_itmk6,$w_itme6,$w_itms6,$w_wepsk,$w_arbsk,$w_arhsk,$w_arask,$w_arfsk,$w_artsk,$w_itmsk0,$w_itmsk1,$w_itmsk2,$w_itmsk3,$w_itmsk4,$w_itmsk5,$w_itmsk6,$w_rp,$w_action,$w_achievement,$w_skillpoint; global $db,$tablepre,$w_name,$w_pass,$w_type,$w_endtime,$w_deathtime,$w_gd,$w_sNo,$w_icon,$w_club,$w_hp,$w_mhp,$w_sp,$w_msp,$w_att,$w_def,$w_pls,$w_lvl,$w_exp,$w_money,$w_bid,$w_inf,$w_rage,$w_pose,$w_tactic,$w_killnum,$w_state,$w_wp,$w_wk,$w_wg,$w_wc,$w_wd,$w_wf,$w_teamID,$w_teamPass,$w_wep,$w_wepk,$w_wepe,$w_weps,$w_arb,$w_arbk,$w_arbe,$w_arbs,$w_arh,$w_arhk,$w_arhe,$w_arhs,$w_ara,$w_arak,$w_arae,$w_aras,$w_arf,$w_arfk,$w_arfe,$w_arfs,$w_art,$w_artk,$w_arte,$w_arts,$w_itm0,$w_itmk0,$w_itme0,$w_itms0,$w_itm1,$w_itmk1,$w_itme1,$w_itms1,$w_itm2,$w_itmk2,$w_itme2,$w_itms2,$w_itm3,$w_itmk3,$w_itme3,$w_itms3,$w_itm4,$w_itmk4,$w_itme4,$w_itms4,$w_itm5,$w_itmk5,$w_itme5,$w_itms5,$w_itm6,$w_itmk6,$w_itme6,$w_itms6,$w_wepsk,$w_arbsk,$w_arhsk,$w_arask,$w_arfsk,$w_artsk,$w_itmsk0,$w_itmsk1,$w_itmsk2,$w_itmsk3,$w_itmsk4,$w_itmsk5,$w_itmsk6,$w_rp,$w_action,$w_achievement,$w_skillpoint;
......
...@@ -7,8 +7,19 @@ if (! defined ( 'IN_GAME' )) { ...@@ -7,8 +7,19 @@ if (! defined ( 'IN_GAME' )) {
include_once GAME_ROOT.'./include/game/titles.func.php'; include_once GAME_ROOT.'./include/game/titles.func.php';
include_once GAME_ROOT.'./include/game/clubslct.func.php'; include_once GAME_ROOT.'./include/game/clubslct.func.php';
function itemuse($itmn) { function itemuse($itmn,&$data=NULL) {
global $mode, $log, $nosta, $pid, $name, $state, $now,$nick,$achievement,$club,$clbpara,$pdata; //global $mode, $log, $nosta, $pid, $name, $state, $now,$nick,$achievement,$club,$clbpara,$pdata;
global $url,$cmd,$mode,$db,$tablepre,$log,$nosta,$noarb,$gamevars,$corpseprotect,$now,$gamecfg;
global $exdmginf,$ex_inf,$cskills,$elements_info,$sparkle,$event_bgm;
global $upexp,$baseexp,$elec_cap;
if(!isset($data))
{
global $pdata;
$data = &$pdata;
}
extract($data,EXTR_REFS);
$nickinfo = get_title_desc($nick); $nickinfo = get_title_desc($nick);
...@@ -18,7 +29,7 @@ function itemuse($itmn) { ...@@ -18,7 +29,7 @@ function itemuse($itmn) {
return; return;
} }
global ${'itm' . $itmn}, ${'itmk' . $itmn}, ${'itme' . $itmn}, ${'itms' . $itmn}, ${'itmsk' . $itmn}; ////global ${'itm' . $itmn}, ${'itmk' . $itmn}, ${'itme' . $itmn}, ${'itms' . $itmn}, ${'itmsk' . $itmn};
$itm = & ${'itm' . $itmn}; $itm = & ${'itm' . $itmn};
$itmk = & ${'itmk' . $itmn}; $itmk = & ${'itmk' . $itmn};
$itme = & ${'itme' . $itmn}; $itme = & ${'itme' . $itmn};
...@@ -63,8 +74,8 @@ function itemuse($itmn) { ...@@ -63,8 +74,8 @@ function itemuse($itmn) {
$eqp = 'art'; $eqp = 'art';
$noeqp = ''; $noeqp = '';
} }
global ${$eqp}, ${$eqp.'k'}, ${$eqp.'e'}, ${$eqp.'s'}, ${$eqp.'sk'}; //global ${$eqp}, ${$eqp.'k'}, ${$eqp.'e'}, ${$eqp.'s'}, ${$eqp.'sk'};
global $artk; //global $artk;
if((($artk=='XX')||($artk=='XY'))&&($eqp == 'art')){ if((($artk=='XX')||($artk=='XY'))&&($eqp == 'art')){
$log .= '你的饰品不能替换!<br>'; $log .= '你的饰品不能替换!<br>';
$mode = 'command'; $mode = 'command';
...@@ -72,7 +83,7 @@ function itemuse($itmn) { ...@@ -72,7 +83,7 @@ function itemuse($itmn) {
} }
//PORT //PORT
if(strpos($itmsk,'^')!==false){ if(strpos($itmsk,'^')!==false){
global $itmnumlimit; //global $itmnumlimit;
$itmnumlimit = $itme>=$itms ? $itms : $itme; $itmnumlimit = $itme>=$itms ? $itms : $itme;
} }
if (($noeqp && strpos ( ${$eqp.'k'}, $noeqp ) === 0) || ! ${$eqp.'s'}) { if (($noeqp && strpos ( ${$eqp.'k'}, $noeqp ) === 0) || ! ${$eqp.'s'}) {
...@@ -116,7 +127,7 @@ function itemuse($itmn) { ...@@ -116,7 +127,7 @@ function itemuse($itmn) {
$log .= "卸下了<span class=\"red\">$itm</span>,装备了<span class=\"yellow\">${$eqp}</span>。<br>"; $log .= "卸下了<span class=\"red\">$itm</span>,装备了<span class=\"yellow\">${$eqp}</span>。<br>";
} }
} elseif (strpos ( $itmk, 'HS' ) === 0) { } elseif (strpos ( $itmk, 'HS' ) === 0) {
global $sp, $msp,$club; //global $sp, $msp,$club;
if ($sp < $msp) { if ($sp < $msp) {
$oldsp = $sp; $oldsp = $sp;
if($club == 16){ if($club == 16){
...@@ -142,7 +153,7 @@ function itemuse($itmn) { ...@@ -142,7 +153,7 @@ function itemuse($itmn) {
$log .= '你的体力不需要恢复。<br>'; $log .= '你的体力不需要恢复。<br>';
} }
} elseif (strpos ( $itmk, 'HH' ) === 0) { } elseif (strpos ( $itmk, 'HH' ) === 0) {
global $hp, $mhp,$club; //global $hp, $mhp,$club;
if ($hp < $mhp) { if ($hp < $mhp) {
$oldhp = $hp; $oldhp = $hp;
if($club == 16){ if($club == 16){
...@@ -167,7 +178,7 @@ function itemuse($itmn) { ...@@ -167,7 +178,7 @@ function itemuse($itmn) {
$log .= '你的生命不需要恢复。<br>'; $log .= '你的生命不需要恢复。<br>';
} }
}elseif (strpos ( $itmk, 'HM' ) === 0) { }elseif (strpos ( $itmk, 'HM' ) === 0) {
global $mss,$ss; //global $mss,$ss;
$mss+=$itme; $mss+=$itme;
$ss+=$itme; $ss+=$itme;
$log .= "你使用了<span class=\"red\">$itm</span>,增加了<span class=\"yellow\">$itme</span>点歌魂。<br>"; $log .= "你使用了<span class=\"red\">$itm</span>,增加了<span class=\"yellow\">$itme</span>点歌魂。<br>";
...@@ -180,7 +191,7 @@ function itemuse($itmn) { ...@@ -180,7 +191,7 @@ function itemuse($itmn) {
} }
} }
}elseif (strpos ( $itmk, 'HT' ) === 0) { }elseif (strpos ( $itmk, 'HT' ) === 0) {
global $ss, $mss; //global $ss, $mss;
$ssup=$itme; $ssup=$itme;
if ($ss < $mss) { if ($ss < $mss) {
$oldss = $ss; $oldss = $ss;
...@@ -201,7 +212,7 @@ function itemuse($itmn) { ...@@ -201,7 +212,7 @@ function itemuse($itmn) {
$log .= '你的歌魂不需要恢复。<br>'; $log .= '你的歌魂不需要恢复。<br>';
} }
} elseif (strpos ( $itmk, 'HB' ) === 0) { } elseif (strpos ( $itmk, 'HB' ) === 0) {
global $hp, $mhp, $sp, $msp,$club; //global $hp, $mhp, $sp, $msp,$club;
if (($hp < $mhp) || ($sp < $msp)) { if (($hp < $mhp) || ($sp < $msp)) {
if($club == 16){ if($club == 16){
$bpup = round($itme*2.5); $bpup = round($itme*2.5);
...@@ -231,7 +242,7 @@ function itemuse($itmn) { ...@@ -231,7 +242,7 @@ function itemuse($itmn) {
$log .= '你的生命和体力都不需要恢复。<br>'; $log .= '你的生命和体力都不需要恢复。<br>';
} }
} elseif (strpos ( $itmk, 'P' ) === 0) { } elseif (strpos ( $itmk, 'P' ) === 0) {
global $lvl, $db, $tablepre, $now, $hp, $inf, $bid; //global $lvl, $db, $tablepre, $now, $hp, $inf, $bid;
if (strpos ( $itmk, '2' ) === 2) { if (strpos ( $itmk, '2' ) === 2) {
$damage = round ( $itme * 2 ); $damage = round ( $itme * 2 );
} elseif (strpos ( $itmk, '1' ) === 2) { } elseif (strpos ( $itmk, '1' ) === 2) {
...@@ -294,7 +305,7 @@ function itemuse($itmn) { ...@@ -294,7 +305,7 @@ function itemuse($itmn) {
} }
} elseif (strpos ( $itmk, 'T' ) === 0) { } elseif (strpos ( $itmk, 'T' ) === 0) {
global $pls, $exp, $upexp, $wd, $club,$lvl,$db,$tablepre; //global $pls, $exp, $upexp, $wd, $club,$lvl,$db,$tablepre;
$trapk = str_replace('TN','TO',$itmk); $trapk = str_replace('TN','TO',$itmk);
//$mapfile = GAME_ROOT . "./gamedata/mapitem/{$pls}mapitem.php"; //$mapfile = GAME_ROOT . "./gamedata/mapitem/{$pls}mapitem.php";
//$itemdata = "$itm,TO,$itme,1,$pid,\n"; //$itemdata = "$itm,TO,$itme,1,$pid,\n";
...@@ -321,7 +332,7 @@ function itemuse($itmn) { ...@@ -321,7 +332,7 @@ function itemuse($itmn) {
} }
} }
} elseif (strpos ( $itmk, 'GB' ) === 0) { } elseif (strpos ( $itmk, 'GB' ) === 0) {
global $wep, $wepk, $weps, $wepsk; //global $wep, $wepk, $weps, $wepsk;
if ((strpos ( $wepk, 'WG' ) !== 0)&&(strpos ( $wepk, 'WJ' ) !== 0)) { if ((strpos ( $wepk, 'WG' ) !== 0)&&(strpos ( $wepk, 'WJ' ) !== 0)) {
$log .= "<span class=\"red\">你没有装备枪械,不能使用子弹。</span><br>"; $log .= "<span class=\"red\">你没有装备枪械,不能使用子弹。</span><br>";
$mode = 'command'; $mode = 'command';
...@@ -408,7 +419,7 @@ function itemuse($itmn) { ...@@ -408,7 +419,7 @@ function itemuse($itmn) {
$log .= $itm . '没有电了,请先充电。<br>'; $log .= $itm . '没有电了,请先充电。<br>';
} }
} elseif (strpos ( $itmk, 'C' ) === 0) { } elseif (strpos ( $itmk, 'C' ) === 0) {
global $inf, $exdmginf,$ex_inf; //global $inf, $exdmginf,$ex_inf;
$ck=substr($itmk,1,1); $ck=substr($itmk,1,1);
if($ck == 'a'){ if($ck == 'a'){
$flag=false; $flag=false;
...@@ -514,7 +525,7 @@ function itemuse($itmn) { ...@@ -514,7 +525,7 @@ function itemuse($itmn) {
$log .= "你阅读了<span class=\"red\">$itm</span>。<br>"; $log .= "你阅读了<span class=\"red\">$itm</span>。<br>";
$dice = rand ( - 10, 10 ); $dice = rand ( - 10, 10 );
if (strpos ( $itmk, 'VV' ) === 0) { if (strpos ( $itmk, 'VV' ) === 0) {
global $wp, $wk, $wg, $wc, $wd, $wf; //global $wp, $wk, $wg, $wc, $wd, $wf;
$ws_sum = $wp + $wk + $wg + $wc + $wd + $wf; $ws_sum = $wp + $wk + $wg + $wc + $wd + $wf;
if ($ws_sum < $skill_minimum * 5) { if ($ws_sum < $skill_minimum * 5) {
$vefct = $itme; $vefct = $itme;
...@@ -536,7 +547,7 @@ function itemuse($itmn) { ...@@ -536,7 +547,7 @@ function itemuse($itmn) {
$wf += $vefct; //$itme; $wf += $vefct; //$itme;
$wsname = "全系熟练度"; $wsname = "全系熟练度";
} elseif (strpos ( $itmk, 'VP' ) === 0) { } elseif (strpos ( $itmk, 'VP' ) === 0) {
global $wp; //global $wp;
if ($wp < $skill_minimum) { if ($wp < $skill_minimum) {
$vefct = $itme; $vefct = $itme;
} elseif ($wp < $skill_limit) { } elseif ($wp < $skill_limit) {
...@@ -552,7 +563,7 @@ function itemuse($itmn) { ...@@ -552,7 +563,7 @@ function itemuse($itmn) {
$wp += $vefct; //$itme; $wp += $vefct; //$itme;
$wsname = "斗殴熟练度"; $wsname = "斗殴熟练度";
} elseif (strpos ( $itmk, 'VK' ) === 0) { } elseif (strpos ( $itmk, 'VK' ) === 0) {
global $wk; //global $wk;
if ($wk < $skill_minimum) { if ($wk < $skill_minimum) {
$vefct = $itme; $vefct = $itme;
} elseif ($wk < $skill_limit) { } elseif ($wk < $skill_limit) {
...@@ -568,7 +579,7 @@ function itemuse($itmn) { ...@@ -568,7 +579,7 @@ function itemuse($itmn) {
$wk += $vefct; //$itme; $wk += $vefct; //$itme;
$wsname = "斩刺熟练度"; $wsname = "斩刺熟练度";
} elseif (strpos ( $itmk, 'VG' ) === 0) { } elseif (strpos ( $itmk, 'VG' ) === 0) {
global $wg; //global $wg;
if ($wg < $skill_minimum) { if ($wg < $skill_minimum) {
$vefct = $itme; $vefct = $itme;
} elseif ($wg < $skill_limit) { } elseif ($wg < $skill_limit) {
...@@ -584,7 +595,7 @@ function itemuse($itmn) { ...@@ -584,7 +595,7 @@ function itemuse($itmn) {
$wg += $vefct; //$itme; $wg += $vefct; //$itme;
$wsname = "射击熟练度"; $wsname = "射击熟练度";
} elseif (strpos ( $itmk, 'VC' ) === 0) { } elseif (strpos ( $itmk, 'VC' ) === 0) {
global $wc; //global $wc;
if ($wc < $skill_minimum) { if ($wc < $skill_minimum) {
$vefct = $itme; $vefct = $itme;
} elseif ($wc < $skill_limit) { } elseif ($wc < $skill_limit) {
...@@ -600,7 +611,7 @@ function itemuse($itmn) { ...@@ -600,7 +611,7 @@ function itemuse($itmn) {
$wc += $vefct; //$itme; $wc += $vefct; //$itme;
$wsname = "投掷熟练度"; $wsname = "投掷熟练度";
} elseif (strpos ( $itmk, 'VD' ) === 0) { } elseif (strpos ( $itmk, 'VD' ) === 0) {
global $wd; //global $wd;
if ($wd < $skill_minimum) { if ($wd < $skill_minimum) {
$vefct = $itme; $vefct = $itme;
} elseif ($wd < $skill_limit) { } elseif ($wd < $skill_limit) {
...@@ -616,7 +627,7 @@ function itemuse($itmn) { ...@@ -616,7 +627,7 @@ function itemuse($itmn) {
$wd += $vefct; //$itme; $wd += $vefct; //$itme;
$wsname = "引爆熟练度"; $wsname = "引爆熟练度";
} elseif (strpos ( $itmk, 'VF' ) === 0) { } elseif (strpos ( $itmk, 'VF' ) === 0) {
global $wf; //global $wf;
if ($wf < $skill_minimum) { if ($wf < $skill_minimum) {
$vefct = $itme; $vefct = $itme;
} elseif ($wf < $skill_limit) { } elseif ($wf < $skill_limit) {
...@@ -632,7 +643,7 @@ function itemuse($itmn) { ...@@ -632,7 +643,7 @@ function itemuse($itmn) {
$wf += $vefct; //$itme; $wf += $vefct; //$itme;
$wsname = "灵击熟练度"; $wsname = "灵击熟练度";
} elseif (strpos ( $itmk, 'VS' ) === 0) { } elseif (strpos ( $itmk, 'VS' ) === 0) {
global $cskills,$clbpara; //global $cskills,$clbpara;
if(!empty($itmsk) && isset($cskills[$itmsk])) if(!empty($itmsk) && isset($cskills[$itmsk]))
{ {
...@@ -675,7 +686,7 @@ function itemuse($itmn) { ...@@ -675,7 +686,7 @@ function itemuse($itmn) {
$log .= "你服用了<span class=\"red\">$itm</span>。<br>"; $log .= "你服用了<span class=\"red\">$itm</span>。<br>";
if (strpos ( $itmk, 'MA' ) === 0) { if (strpos ( $itmk, 'MA' ) === 0) {
global $att; //global $att;
$att_min = 200; $att_min = 200;
$att_limit = 500; $att_limit = 500;
$dice = rand ( - 5, 5 ); $dice = rand ( - 5, 5 );
...@@ -694,7 +705,7 @@ function itemuse($itmn) { ...@@ -694,7 +705,7 @@ function itemuse($itmn) {
$att += $mefct; $att += $mefct;
$mdname = "基础攻击力"; $mdname = "基础攻击力";
} elseif (strpos ( $itmk, 'MD' ) === 0) { } elseif (strpos ( $itmk, 'MD' ) === 0) {
global $def; //global $def;
$def_min = 200; $def_min = 200;
$def_limit = 500; $def_limit = 500;
$dice = rand ( - 5, 5 ); $dice = rand ( - 5, 5 );
...@@ -713,25 +724,25 @@ function itemuse($itmn) { ...@@ -713,25 +724,25 @@ function itemuse($itmn) {
$def += $mefct; $def += $mefct;
$mdname = "基础防御力"; $mdname = "基础防御力";
} elseif (strpos ( $itmk, 'ME' ) === 0) { } elseif (strpos ( $itmk, 'ME' ) === 0) {
global $exp, $upexp, $baseexp; //global $exp, $upexp, $baseexp;
$lvlup_objective = $itme / 10; $lvlup_objective = $itme / 10;
$mefct = round ( $baseexp * 2 * $lvlup_objective + rand ( 0, 5 ) ); $mefct = round ( $baseexp * 2 * $lvlup_objective + rand ( 0, 5 ) );
$exp += $mefct; $exp += $mefct;
$mdname = "经验值"; $mdname = "经验值";
} elseif (strpos ( $itmk, 'MS' ) === 0) { } elseif (strpos ( $itmk, 'MS' ) === 0) {
global $sp, $msp; //global $sp, $msp;
$mefct = $itme; $mefct = $itme;
$sp += $mefct; $sp += $mefct;
$msp += $mefct; $msp += $mefct;
$mdname = "体力上限"; $mdname = "体力上限";
} elseif (strpos ( $itmk, 'MH' ) === 0) { } elseif (strpos ( $itmk, 'MH' ) === 0) {
global $hp, $mhp; //global $hp, $mhp;
$mefct = $itme; $mefct = $itme;
$hp += $mefct; $hp += $mefct;
$mhp += $mefct; $mhp += $mefct;
$mdname = "生命上限"; $mdname = "生命上限";
} elseif (strpos ( $itmk, 'MV' ) === 0) { } elseif (strpos ( $itmk, 'MV' ) === 0) {
global $wp, $wk, $wg, $wc, $wd, $wf; //global $wp, $wk, $wg, $wc, $wd, $wf;
$skill_minimum = 100; $skill_minimum = 100;
$skill_limit = 300; $skill_limit = 300;
$dice = rand ( - 10, 10 ); $dice = rand ( - 10, 10 );
...@@ -767,7 +778,7 @@ function itemuse($itmn) { ...@@ -767,7 +778,7 @@ function itemuse($itmn) {
if (strpos ( $itmk, 'ME' ) === 0) { if (strpos ( $itmk, 'ME' ) === 0) {
if ($exp >= $upexp) { if ($exp >= $upexp) {
global $lvl; //global $lvl;
//include_once GAME_ROOT . './include/state.func.php'; //include_once GAME_ROOT . './include/state.func.php';
//lvlup ( $lvl, $exp, 1 ); //lvlup ( $lvl, $exp, 1 );
include_once GAME_ROOT . './include/game/revcombat.func.php'; include_once GAME_ROOT . './include/game/revcombat.func.php';
...@@ -799,7 +810,7 @@ function itemuse($itmn) { ...@@ -799,7 +810,7 @@ function itemuse($itmn) {
$log .= "使用了<span class=\"red\">$itm</span>。<br>"; $log .= "使用了<span class=\"red\">$itm</span>。<br>";
include_once GAME_ROOT . './include/game/item2.func.php'; include_once GAME_ROOT . './include/game/item2.func.php';
newradar ( $itmsk ); newradar ( $itmsk );
global $club; //global $club;
if($club == 7){ if($club == 7){
$e_dice = rand(0,1); $e_dice = rand(0,1);
if($e_dice == 1){ if($e_dice == 1){
...@@ -821,10 +832,10 @@ function itemuse($itmn) { ...@@ -821,10 +832,10 @@ function itemuse($itmn) {
} }
} elseif (strpos ( $itmk, 'B' ) === 0) { } elseif (strpos ( $itmk, 'B' ) === 0) {
$flag = false; $flag = false;
global $elec_cap; //global $elec_cap;
$bat_kind = substr($itmk,1,1); $bat_kind = substr($itmk,1,1);
for($i = 1; $i <= 6; $i ++) { for($i = 1; $i <= 6; $i ++) {
global ${'itm' . $i}, ${'itmk' . $i}, ${'itme' . $i}, ${'itms' . $i}; //global ${'itm' . $i}, ${'itmk' . $i}, ${'itme' . $i}, ${'itms' . $i};
if (${'itmk' . $i} == 'E'.$bat_kind && ${'itms' . $i}) { if (${'itmk' . $i} == 'E'.$bat_kind && ${'itms' . $i}) {
if(${'itme' . $i} >= $elec_cap){ if(${'itme' . $i} >= $elec_cap){
$log .= "包裹{$i}里的<span class=\"yellow\">${'itm'.$i}</span>已经充满电了。<br>"; $log .= "包裹{$i}里的<span class=\"yellow\">${'itm'.$i}</span>已经充满电了。<br>";
...@@ -879,9 +890,9 @@ function itemuse($itmn) { ...@@ -879,9 +890,9 @@ function itemuse($itmn) {
list($in,$ik,$ie,$is,$isk) = explode(',',$itemflag[$rand]); list($in,$ik,$ie,$is,$isk) = explode(',',$itemflag[$rand]);
} }
}elseif(strpos( $itmk, 'p0' ) === 0){//新福袋·VOL1 }elseif(strpos( $itmk, 'p0' ) === 0){//新福袋·VOL1
global $statuse; // 用这个数值记录打开福袋的次数,目前只有VOL1所以只需要判断非0状况,以后如果加入更多的福袋则需要修改。 //global $statuse; // 用这个数值记录打开福袋的次数,目前只有VOL1所以只需要判断非0状况,以后如果加入更多的福袋则需要修改。
global $db,$tablepre; //global $db,$tablepre;
global $clbpara; //global $clbpara;
/* if($statuse){ /* if($statuse){
$log.="似乎你本轮已经打开过福袋,因此不能再打开更多的福袋!<br>"; $log.="似乎你本轮已经打开过福袋,因此不能再打开更多的福袋!<br>";
$db->query("INSERT INTO {$tablepre}shopitem (kind,num,price,area,item,itmk,itme,itms,itmsk) VALUES ('17','1','20','0','$itm','$itmk','$itme','$itms','$itmsk')"); $db->query("INSERT INTO {$tablepre}shopitem (kind,num,price,area,item,itmk,itme,itms,itmsk) VALUES ('17','1','20','0','$itm','$itmk','$itme','$itms','$itmsk')");
...@@ -934,7 +945,7 @@ function itemuse($itmn) { ...@@ -934,7 +945,7 @@ function itemuse($itmn) {
$rand = rand(0,count($plist)-1); $rand = rand(0,count($plist)-1);
list($in,$ik,$ie,$is,$isk) = explode(',',$plist[$rand]); list($in,$ik,$ie,$is,$isk) = explode(',',$plist[$rand]);
} }
global $itm0,$itmk0,$itme0,$itms0,$itmsk0,$mode; //global $itm0,$itmk0,$itme0,$itms0,$itmsk0,$mode;
$itm0 = $in;$itmk0=$ik;$itme0=$ie;$itms0=$is;$itmsk0=$isk; $itm0 = $in;$itmk0=$ik;$itme0=$ie;$itms0=$is;$itmsk0=$isk;
addnews($now,'present',$name,$itm,$in); addnews($now,'present',$name,$itm,$in);
$itms--; $itms--;
...@@ -944,14 +955,14 @@ function itemuse($itmn) { ...@@ -944,14 +955,14 @@ function itemuse($itmn) {
$itme = $itms = 0; $itme = $itms = 0;
} }
include_once GAME_ROOT.'./include/game/itemmain.func.php'; include_once GAME_ROOT.'./include/game/itemmain.func.php';
itemget(); itemget($data);
} elseif(strpos ( $itmk, 'ygo' ) === 0){ } elseif(strpos ( $itmk, 'ygo' ) === 0){
$log.="你打开了<span class=\"yellow\">$itm</span>。<br>"; $log.="你打开了<span class=\"yellow\">$itm</span>。<br>";
$file1 = config('box',$gamecfg); $file1 = config('box',$gamecfg);
$plist1 = openfile($file1); $plist1 = openfile($file1);
$rand1 = rand(0,count($plist1)-1); $rand1 = rand(0,count($plist1)-1);
list($in,$ik,$ie,$is,$isk) = explode(',',$plist1[$rand1]); list($in,$ik,$ie,$is,$isk) = explode(',',$plist1[$rand1]);
global $itm0,$itmk0,$itme0,$itms0,$itmsk0,$mode; //global $itm0,$itmk0,$itme0,$itms0,$itmsk0,$mode;
$itm0 = $in;$itmk0=$ik;$itme0=$ie;$itms0=$is;$itmsk0=$isk; $itm0 = $in;$itmk0=$ik;$itme0=$ie;$itms0=$is;$itmsk0=$isk;
addnews($now,'present',$nickinfo.' '.$name,$itm,$in); addnews($now,'present',$nickinfo.' '.$name,$itm,$in);
$itms1--; $itms1--;
...@@ -961,14 +972,14 @@ function itemuse($itmn) { ...@@ -961,14 +972,14 @@ function itemuse($itmn) {
$itme = $itms = 0; $itme = $itms = 0;
} }
include_once GAME_ROOT.'./include/game/itemmain.func.php'; include_once GAME_ROOT.'./include/game/itemmain.func.php';
itemget(); itemget($data);
} elseif(strpos ( $itmk, 'fy' ) === 0){ } elseif(strpos ( $itmk, 'fy' ) === 0){
$log.="你打开了<span class=\"yellow\">$itm</span>。<br>"; $log.="你打开了<span class=\"yellow\">$itm</span>。<br>";
$file1 = config('fy',$gamecfg); $file1 = config('fy',$gamecfg);
$plist1 = openfile($file1); $plist1 = openfile($file1);
$rand1 = rand(0,count($plist1)-1); $rand1 = rand(0,count($plist1)-1);
list($in,$ik,$ie,$is,$isk) = explode(',',$plist1[$rand1]); list($in,$ik,$ie,$is,$isk) = explode(',',$plist1[$rand1]);
global $itm0,$itmk0,$itme0,$itms0,$itmsk0,$mode; //global $itm0,$itmk0,$itme0,$itms0,$itmsk0,$mode;
$itm0 = $in;$itmk0=$ik;$itme0=$ie;$itms0=$is;$itmsk0=$isk; $itm0 = $in;$itmk0=$ik;$itme0=$ie;$itms0=$is;$itmsk0=$isk;
addnews($now,'present',$nickinfo.' '.$name,$itm,$in); addnews($now,'present',$nickinfo.' '.$name,$itm,$in);
$itms1--; $itms1--;
...@@ -978,9 +989,9 @@ function itemuse($itmn) { ...@@ -978,9 +989,9 @@ function itemuse($itmn) {
$itme = $itms = 0; $itme = $itms = 0;
} }
include_once GAME_ROOT.'./include/game/itemmain.func.php'; include_once GAME_ROOT.'./include/game/itemmain.func.php';
itemget(); itemget($data);
}elseif ($itmk=='U') { }elseif ($itmk=='U') {
global $db, $tablepre,$pls; //global $db, $tablepre,$pls;
$trapresult = $db->query("SELECT * FROM {$tablepre}maptrap WHERE pls = '$pls' AND itme>='$itme'"); $trapresult = $db->query("SELECT * FROM {$tablepre}maptrap WHERE pls = '$pls' AND itme>='$itme'");
$trpnum = $db->num_rows($trapresult); $trpnum = $db->num_rows($trapresult);
$itms--; $itms--;
...@@ -1005,7 +1016,7 @@ function itemuse($itmn) { ...@@ -1005,7 +1016,7 @@ function itemuse($itmn) {
//功能需要修改,改为选择道具使用YE类型道具可充电 //功能需要修改,改为选择道具使用YE类型道具可充电
$flag = false; $flag = false;
for($i = 1; $i <= 6; $i ++) { for($i = 1; $i <= 6; $i ++) {
global ${'itm' . $i}, ${'itme' . $i}; //global ${'itm' . $i}, ${'itme' . $i};
if (${'itm' . $i} == '移动PC') { if (${'itm' . $i} == '移动PC') {
${'itme' . $i} += $itme; ${'itme' . $i} += $itme;
$itms --; $itms --;
...@@ -1018,7 +1029,7 @@ function itemuse($itmn) { ...@@ -1018,7 +1029,7 @@ function itemuse($itmn) {
$log .= '你没有需要充电的物品。<br>'; $log .= '你没有需要充电的物品。<br>';
} }
} elseif ($itm == '群青多面体') { } elseif ($itm == '群青多面体') {
global $plsinfo,$nosta,$db,$tablepre; //global $plsinfo,$nosta,$db,$tablepre;
$result = $db->query("SELECT pid,name,pls FROM {$tablepre}players WHERE type = 14 && hp > 0"); $result = $db->query("SELECT pid,name,pls FROM {$tablepre}players WHERE type = 14 && hp > 0");
$ndata = array(); $ndata = array();
while($nd = $db->fetch_array($result)){ while($nd = $db->fetch_array($result)){
...@@ -1040,12 +1051,12 @@ function itemuse($itmn) { ...@@ -1040,12 +1051,12 @@ function itemuse($itmn) {
return; return;
} elseif ($itm == '残响兵器') { } elseif ($itm == '残响兵器') {
global $cmd; //global $cmd;
foreach(Array('wep','arb','arh','ara','arf','art') as $val) { foreach(Array('wep','arb','arh','ara','arf','art') as $val) {
global ${$val},${$val.'k'}, ${$val.'e'}, ${$val.'s'},${$val.'sk'}; //global ${$val},${$val.'k'}, ${$val.'e'}, ${$val.'s'},${$val.'sk'};
} }
for($i = 1; $i <= 6; $i ++) { for($i = 1; $i <= 6; $i ++) {
global ${'itmk' . $i},${'itm' . $i}, ${'itme' . $i}, ${'itms' . $i},${'itmsk' . $i}; //global ${'itmk' . $i},${'itm' . $i}, ${'itme' . $i}, ${'itms' . $i},${'itmsk' . $i};
} }
include template('nametag'); include template('nametag');
...@@ -1054,12 +1065,12 @@ function itemuse($itmn) { ...@@ -1054,12 +1065,12 @@ function itemuse($itmn) {
ob_clean(); ob_clean();
return; return;
} elseif ($itm == '超臆想时空') { } elseif ($itm == '超臆想时空') {
global $cmd; //global $cmd;
foreach(Array('wep','arb','arh','ara','arf','art') as $val) { foreach(Array('wep','arb','arh','ara','arf','art') as $val) {
global ${$val},${$val.'k'}, ${$val.'e'}, ${$val.'s'},${$val.'sk'}; //global ${$val},${$val.'k'}, ${$val.'e'}, ${$val.'s'},${$val.'sk'};
} }
for($i = 1; $i <= 6; $i ++) { for($i = 1; $i <= 6; $i ++) {
global ${'itmk' . $i},${'itm' . $i}, ${'itme' . $i}, ${'itms' . $i},${'itmsk' . $i}; //global ${'itmk' . $i},${'itm' . $i}, ${'itme' . $i}, ${'itms' . $i},${'itmsk' . $i};
} }
include template('supernametag'); include template('supernametag');
...@@ -1068,9 +1079,9 @@ function itemuse($itmn) { ...@@ -1068,9 +1079,9 @@ function itemuse($itmn) {
ob_clean(); ob_clean();
return; return;
} elseif ($itm == '毒药') { } elseif ($itm == '毒药') {
global $cmd; //global $cmd;
for($i = 1; $i <= 6; $i ++) { for($i = 1; $i <= 6; $i ++) {
global ${'itmk' . $i},${'itm' . $i}, ${'itme' . $i}, ${'itms' . $i}; //global ${'itmk' . $i},${'itm' . $i}, ${'itme' . $i}, ${'itms' . $i};
} }
include template('poison'); include template('poison');
...@@ -1078,7 +1089,7 @@ function itemuse($itmn) { ...@@ -1078,7 +1089,7 @@ function itemuse($itmn) {
ob_clean(); ob_clean();
return; return;
} elseif (strpos ( $itm, '磨刀石' ) !== false) { } elseif (strpos ( $itm, '磨刀石' ) !== false) {
global $wep, $wepk, $wepe, $weps, $wepsk; //global $wep, $wepk, $wepe, $weps, $wepsk;
if (strpos ( $wepk, 'K' ) == 1 && strpos ( $wepsk, 'Z' ) === false) { if (strpos ( $wepk, 'K' ) == 1 && strpos ( $wepsk, 'Z' ) === false) {
if (strpos($wepsk,'j')!==false){ if (strpos($wepsk,'j')!==false){
$log.='多重武器不能改造。<br>'; $log.='多重武器不能改造。<br>';
...@@ -1109,7 +1120,7 @@ function itemuse($itmn) { ...@@ -1109,7 +1120,7 @@ function itemuse($itmn) {
$log .= '你没装备锐器,不能使用磨刀石。<br>'; $log .= '你没装备锐器,不能使用磨刀石。<br>';
} }
} elseif (preg_match ( "/钉$/", $itm ) || preg_match ( "/钉\[/", $itm )) { } elseif (preg_match ( "/钉$/", $itm ) || preg_match ( "/钉\[/", $itm )) {
global $wep, $wepk, $wepe, $weps, $wepsk; //global $wep, $wepk, $wepe, $weps, $wepsk;
if (( strpos ( $wep, '棍棒' ) !== false) && ($wepk == 'WP')) { if (( strpos ( $wep, '棍棒' ) !== false) && ($wepk == 'WP')) {
if (strpos($wepsk,'j')!==false){ if (strpos($wepsk,'j')!==false){
$log.='多重武器不能改造。<br>'; $log.='多重武器不能改造。<br>';
...@@ -1138,7 +1149,7 @@ function itemuse($itmn) { ...@@ -1138,7 +1149,7 @@ function itemuse($itmn) {
$log .= '你没装备棍棒,不能安装钉子。<br>'; $log .= '你没装备棍棒,不能安装钉子。<br>';
} }
} elseif ($itm == '针线包') { } elseif ($itm == '针线包') {
global $arb, $arbk, $arbe, $arbs, $arbsk, $noarb; //global $arb, $arbk, $arbe, $arbs, $arbsk, $noarb;
if (($arb == $noarb) || ! $arb) { if (($arb == $noarb) || ! $arb) {
$log .= '你没有装备防具,不能使用针线包。<br>'; $log .= '你没有装备防具,不能使用针线包。<br>';
} elseif(strpos($arbsk,'^')!==false){ } elseif(strpos($arbsk,'^')!==false){
...@@ -1151,7 +1162,7 @@ function itemuse($itmn) { ...@@ -1151,7 +1162,7 @@ function itemuse($itmn) {
$itms --; $itms --;
} }
} elseif ($itm == '消音器') { } elseif ($itm == '消音器') {
global $wep, $wepk, $wepe, $weps, $wepsk; //global $wep, $wepk, $wepe, $weps, $wepsk;
if (strpos ( $wepk, 'WG' ) !== 0) { if (strpos ( $wepk, 'WG' ) !== 0) {
$log .= '你没有装备枪械,不能使用消音器。<br>'; $log .= '你没有装备枪械,不能使用消音器。<br>';
} elseif (strpos ( $wepsk, 'S' ) === false) { } elseif (strpos ( $wepsk, 'S' ) === false) {
...@@ -1164,7 +1175,7 @@ function itemuse($itmn) { ...@@ -1164,7 +1175,7 @@ function itemuse($itmn) {
} elseif ($itm == '探测器电池') { } elseif ($itm == '探测器电池') {
$flag = false; $flag = false;
for($i = 1; $i <= 6; $i ++) { for($i = 1; $i <= 6; $i ++) {
global ${'itmk' . $i}, ${'itme' . $i}, ${'itm' . $i}; //global ${'itmk' . $i}, ${'itme' . $i}, ${'itm' . $i};
if (${'itmk' . $i} == 'R') { if (${'itmk' . $i} == 'R') {
//if((strpos(${'itm'.$i}, '雷达') !== false)&&(strpos(${'itm'.$i}, '电池') === false)) { //if((strpos(${'itm'.$i}, '雷达') !== false)&&(strpos(${'itm'.$i}, '电池') === false)) {
${'itme' . $i} += $itme; ${'itme' . $i} += $itme;
...@@ -1183,7 +1194,7 @@ function itemuse($itmn) { ...@@ -1183,7 +1194,7 @@ function itemuse($itmn) {
divining (); divining ();
$itms --; $itms --;
} elseif ($itm == '凸眼鱼') { } elseif ($itm == '凸眼鱼') {
global $db, $tablepre, $name,$now,$corpseprotect; //global $db, $tablepre, $name,$now,$corpseprotect;
$tm = $now - $corpseprotect;//尸体保护 $tm = $now - $corpseprotect;//尸体保护
$db->query ( "UPDATE {$tablepre}players SET weps='0',arbs='0',arhs='0',aras='0',arfs='0',arts='0',itms0='0',itms1='0',itms2='0',itms3='0',itms4='0',itms5='0',itms6='0',money='0' WHERE hp <= 0 AND endtime <= $tm" ); $db->query ( "UPDATE {$tablepre}players SET weps='0',arbs='0',arhs='0',aras='0',arfs='0',arts='0',itms0='0',itms1='0',itms2='0',itms3='0',itms4='0',itms5='0',itms6='0',money='0' WHERE hp <= 0 AND endtime <= $tm" );
$cnum = $db->affected_rows (); $cnum = $db->affected_rows ();
...@@ -1192,7 +1203,7 @@ function itemuse($itmn) { ...@@ -1192,7 +1203,7 @@ function itemuse($itmn) {
$itms --; $isk = $cnum; $itms --; $isk = $cnum;
} elseif ($itm == '天候棒') { } elseif ($itm == '天候棒') {
global $weather, $wthinfo, $name; //global $weather, $wthinfo, $name;
$weather = rand ( 10, 13 ); $weather = rand ( 10, 13 );
include_once GAME_ROOT . './include/system.func.php'; include_once GAME_ROOT . './include/system.func.php';
save_gameinfo (); save_gameinfo ();
...@@ -1200,7 +1211,7 @@ function itemuse($itmn) { ...@@ -1200,7 +1211,7 @@ function itemuse($itmn) {
$log .= "你转动了几下天候棒。<br>天气突然转变成了<span class=\"red b\">$wthinfo[$weather]</span>!<br>"; $log .= "你转动了几下天候棒。<br>天气突然转变成了<span class=\"red b\">$wthinfo[$weather]</span>!<br>";
$itms --; $itms --;
} elseif ($itm == '天然呆四面的奖赏') { } elseif ($itm == '天然呆四面的奖赏') {
global $wep, $wepk, $wepe, $weps, $wepsk; //global $wep, $wepk, $wepe, $weps, $wepsk;
if (! $weps || ! $wepe) { if (! $weps || ! $wepe) {
$log .= '请先装备武器。<br>'; $log .= '请先装备武器。<br>';
return; return;
...@@ -1226,10 +1237,10 @@ function itemuse($itmn) { ...@@ -1226,10 +1237,10 @@ function itemuse($itmn) {
$log.="那么…… 给你点补偿吧,请务必收下。”<br></span>"; $log.="那么…… 给你点补偿吧,请务必收下。”<br></span>";
$itm=""; $itmk=""; $itme=0; $itms=0; $itmsk=""; $itm=""; $itmk=""; $itme=0; $itms=0; $itmsk="";
$dice2=rand(0,99); $dice2=rand(0,99);
global $itm0,$itmk0,$itme0,$itms0,$itmsk0; //global $itm0,$itmk0,$itme0,$itms0,$itmsk0;
$itm0='四面亲手制作的■DeathNote■'; $itmk0='Y'; $itme0=1; $itms0=1; $itmsk0='z'; $itm0='四面亲手制作的■DeathNote■'; $itmk0='Y'; $itme0=1; $itms0=1; $itmsk0='z';
include_once GAME_ROOT . './include/game/itemmain.func.php'; include_once GAME_ROOT . './include/game/itemmain.func.php';
itemget(); itemget($data);
} }
else if ($dice<90) else if ($dice<90)
{ {
...@@ -1248,7 +1259,7 @@ function itemuse($itmn) { ...@@ -1248,7 +1259,7 @@ function itemuse($itmn) {
$itm=""; $itmk=""; $itme=0; $itms=0; $itmsk=""; $itm=""; $itmk=""; $itme=0; $itms=0; $itmsk="";
} }
} elseif ($itm == '武器师安雅的奖赏') { } elseif ($itm == '武器师安雅的奖赏') {
global $wep, $wepk, $wepe, $weps, $wepsk, $wp, $wk, $wg, $wc, $wd, $wf; //global $wep, $wepk, $wepe, $weps, $wepsk, $wp, $wk, $wg, $wc, $wd, $wf;
if (! $weps || ! $wepe) { if (! $weps || ! $wepe) {
$log .= '请先装备武器。<br>'; $log .= '请先装备武器。<br>';
return; return;
...@@ -1285,17 +1296,17 @@ function itemuse($itmn) { ...@@ -1285,17 +1296,17 @@ function itemuse($itmn) {
$log .= '你翻开了■DeathNote■<br>'; $log .= '你翻开了■DeathNote■<br>';
return; return;
} elseif ($itm == '游戏解除钥匙') { } elseif ($itm == '游戏解除钥匙') {
global $url; //global $url;
$state = 6; $state = 6;
$url = 'end.php'; $url = 'end.php';
include_once GAME_ROOT . './include/system.func.php'; include_once GAME_ROOT . './include/system.func.php';
gameover ( $now, 'end3', $name ); gameover ( $now, 'end3', $name );
}elseif ($itm == '『C.H.A.O.S』') { }elseif ($itm == '『C.H.A.O.S』') {
global $ss,$rp,$killnum,$att,$def,$log; //global $ss,$rp,$killnum,$att,$def,$log;
$flag=false; $flag=false;
$log.="一阵强光刺得你睁不开眼。<br>强光逐渐凝成了光球,你揉揉眼睛,发现包裹里的东西全都不翼而飞了。<br>"; $log.="一阵强光刺得你睁不开眼。<br>强光逐渐凝成了光球,你揉揉眼睛,发现包裹里的东西全都不翼而飞了。<br>";
for ($i=1;$i<=6;$i++){ for ($i=1;$i<=6;$i++){
global ${'itm'.$i},${'itmk'.$i},${'itme'.$i},${'itms'.$i},${'itmsk'.$i}; //global ${'itm'.$i},${'itmk'.$i},${'itme'.$i},${'itms'.$i},${'itmsk'.$i};
$itm = & ${'itm'.$i}; $itm = & ${'itm'.$i};
$itmk = & ${'itmk'.$i}; $itmk = & ${'itmk'.$i};
$itme = & ${'itme'.$i}; $itme = & ${'itme'.$i};
...@@ -1308,7 +1319,7 @@ function itemuse($itmn) { ...@@ -1308,7 +1319,7 @@ function itemuse($itmn) {
$itms = 0; $itms = 0;
$itmsk = ''; $itmsk = '';
} }
global $itm0,$itmk0,$itme0,$itms0,$itmsk0; //global $itm0,$itmk0,$itme0,$itms0,$itmsk0;
$karma=$rp*$killnum-$def+$att; $karma=$rp*$killnum-$def+$att;
$f1=false; $f1=false;
//『G.A.M.E.O.V.E.R』itmk:Y itme:1 itms:1 itmsk:zxZ //『G.A.M.E.O.V.E.R』itmk:Y itme:1 itms:1 itmsk:zxZ
...@@ -1319,7 +1330,7 @@ function itemuse($itmn) { ...@@ -1319,7 +1330,7 @@ function itemuse($itmn) {
$itms0=1; $itms0=1;
$itmsk0='z'; $itmsk0='z';
include_once GAME_ROOT . './include/game/itemmain.func.php'; include_once GAME_ROOT . './include/game/itemmain.func.php';
itemget(); itemget($data);
$f1=true; $f1=true;
} }
if ($karma<=2000){ if ($karma<=2000){
...@@ -1329,7 +1340,7 @@ function itemuse($itmn) { ...@@ -1329,7 +1340,7 @@ function itemuse($itmn) {
$itms0=1; $itms0=1;
$itmsk0='x'; $itmsk0='x';
include_once GAME_ROOT . './include/game/itemmain.func.php'; include_once GAME_ROOT . './include/game/itemmain.func.php';
itemget(); itemget($data);
$f1=true; $f1=true;
} }
if ($flag==true){ if ($flag==true){
...@@ -1339,7 +1350,7 @@ function itemuse($itmn) { ...@@ -1339,7 +1350,7 @@ function itemuse($itmn) {
$itms0=1; $itms0=1;
$itmsk0='Z'; $itmsk0='Z';
include_once GAME_ROOT . './include/game/itemmain.func.php'; include_once GAME_ROOT . './include/game/itemmain.func.php';
itemget(); itemget($data);
$f1=true; $f1=true;
} }
if ($f1==false){ if ($f1==false){
...@@ -1348,10 +1359,10 @@ function itemuse($itmn) { ...@@ -1348,10 +1359,10 @@ function itemuse($itmn) {
$itme0=1; $itme0=1;
$itms0=1; $itms0=1;
include_once GAME_ROOT . './include/game/itemmain.func.php'; include_once GAME_ROOT . './include/game/itemmain.func.php';
itemget(); itemget($data);
} }
}elseif ($itm == '『G.A.M.E.O.V.E.R』') { }elseif ($itm == '『G.A.M.E.O.V.E.R』') {
global $url; //global $url;
$state = 6; $state = 6;
$url = 'end.php'; $url = 'end.php';
include_once GAME_ROOT . './include/system.func.php'; include_once GAME_ROOT . './include/system.func.php';
...@@ -1369,14 +1380,14 @@ function itemuse($itmn) { ...@@ -1369,14 +1380,14 @@ function itemuse($itmn) {
$log .= "你使用了<span class=\"yellow\">{$itm}</span>,不过什么反应也没有。<br><span class=\"evergreen\">“表演的时机还没到呢,请再忍耐一下吧。”</span>——林无月<br>"; $log .= "你使用了<span class=\"yellow\">{$itm}</span>,不过什么反应也没有。<br><span class=\"evergreen\">“表演的时机还没到呢,请再忍耐一下吧。”</span>——林无月<br>";
} }
} elseif ($itm == '奇怪的按钮') { } elseif ($itm == '奇怪的按钮') {
global $bid; //global $bid;
$button_dice = rand ( 1, 10 ); $button_dice = rand ( 1, 10 );
if ($button_dice < 5) { if ($button_dice < 5) {
$log .= "你按下了<span class=\"yellow\">$itm</span>,不过好像什么都没有发生!"; $log .= "你按下了<span class=\"yellow\">$itm</span>,不过好像什么都没有发生!";
$itm = $itmk = $itmsk = ''; $itm = $itmk = $itmsk = '';
$itme = $itms = 0; $itme = $itms = 0;
} elseif ($button_dice < 8) { } elseif ($button_dice < 8) {
global $url; //global $url;
$state = 6; $state = 6;
$url = 'end.php'; $url = 'end.php';
include_once GAME_ROOT . './include/system.func.php'; include_once GAME_ROOT . './include/system.func.php';
...@@ -1389,7 +1400,7 @@ function itemuse($itmn) { ...@@ -1389,7 +1400,7 @@ function itemuse($itmn) {
death ( 'button', '', 0, $itm ); death ( 'button', '', 0, $itm );
} }
} elseif ($itm == '装有H173的注射器') { } elseif ($itm == '装有H173的注射器') {
global $wp, $wk, $wg, $wc, $wd, $wf, $club, $bid, $att, $def; //global $wp, $wk, $wg, $wc, $wd, $wf, $club, $bid, $att, $def;
$log .= '你考虑了一会,<br>把袖子卷了起来,给自己注射了H173。<br>'; $log .= '你考虑了一会,<br>把袖子卷了起来,给自己注射了H173。<br>';
$deathdice = rand ( 0, 4096 ); $deathdice = rand ( 0, 4096 );
if ($deathdice == 4096 || $club == 15) { if ($deathdice == 4096 || $club == 15) {
...@@ -1407,7 +1418,7 @@ function itemuse($itmn) { ...@@ -1407,7 +1418,7 @@ function itemuse($itmn) {
death ( 'suiside', '', 0, $itm ); death ( 'suiside', '', 0, $itm );
} }
} elseif (strpos($itm, '溶剂SCP-294')===0) { } elseif (strpos($itm, '溶剂SCP-294')===0) {
global $wp, $wk, $wg, $wc, $wd, $wf, $club, $att, $def, $hp, $mhp, $sp, $msp, $rp; //global $wp, $wk, $wg, $wc, $wd, $wf, $club, $att, $def, $hp, $mhp, $sp, $msp, $rp;
if($itm == '溶剂SCP-294_PT_Poini_Kune'){ if($itm == '溶剂SCP-294_PT_Poini_Kune'){
$log .= '你考虑了一会,一扬手喝下了杯中中冒着紫色幽光的液体。<br><span class="yellow">你感到全身就像燃烧起来一样,不禁扪心自问这值得么?</span><br>'; $log .= '你考虑了一会,一扬手喝下了杯中中冒着紫色幽光的液体。<br><span class="yellow">你感到全身就像燃烧起来一样,不禁扪心自问这值得么?</span><br>';
if ($mhp > 573){ if ($mhp > 573){
...@@ -1464,7 +1475,7 @@ function itemuse($itmn) { ...@@ -1464,7 +1475,7 @@ function itemuse($itmn) {
$log .= '你的生命上限和防御力减少了<span class="yellow">'.$down.'</span>点,而你的体力上限和攻击力提升了<span class="yellow">'.$up.'</span>点!<br>'; $log .= '你的生命上限和防御力减少了<span class="yellow">'.$down.'</span>点,而你的体力上限和攻击力提升了<span class="yellow">'.$up.'</span>点!<br>';
} elseif ($itm == '溶剂SCP-294_PT_ErulTron') { } elseif ($itm == '溶剂SCP-294_PT_ErulTron') {
$log .= '你考虑了一会,<br>一扬手喝下了杯中中冒着粉红光辉的液体。<br>你感到你整个人貌似变得更普通了点。<br>'; $log .= '你考虑了一会,<br>一扬手喝下了杯中中冒着粉红光辉的液体。<br>你感到你整个人貌似变得更普通了点。<br>';
global $lvl, $exp; //global $lvl, $exp;
$lvl = $exp = 0; $lvl = $exp = 0;
$att = round($att * 0.8); $att = round($att * 0.8);
$def = round($def * 0.8); $def = round($def * 0.8);
...@@ -1501,7 +1512,7 @@ function itemuse($itmn) { ...@@ -1501,7 +1512,7 @@ function itemuse($itmn) {
$itm = $itmk = $itmsk = ''; $itm = $itmk = $itmsk = '';
$itme = $itms = 0; $itme = $itms = 0;
} elseif ($itm == '破灭之诗') { } elseif ($itm == '破灭之诗') {
global $hack,$rp,$clbpara,$gamevars; //global $hack,$rp,$clbpara,$gamevars;
$rp = 0; $rp = 0;
$clbpara['dialogue'] = 'thiphase'; $clbpara['dialogue'] = 'thiphase';
$clbpara['console'] = 1; $clbpara['console'] = 1;
...@@ -1599,7 +1610,7 @@ function itemuse($itmn) { ...@@ -1599,7 +1610,7 @@ function itemuse($itmn) {
$itm = $itmk = $itmsk = ''; $itm = $itmk = $itmsk = '';
$itme = $itms = 0; $itme = $itms = 0;
} elseif ($itm == '✦种火定点移位装置✦') { } elseif ($itm == '✦种火定点移位装置✦') {
global $db, $tablepre, $pls; //global $db, $tablepre, $pls;
$result = $db->query("SELECT * FROM {$tablepre}players WHERE type = 92"); //SELECT 全部种火NPC $result = $db->query("SELECT * FROM {$tablepre}players WHERE type = 92"); //SELECT 全部种火NPC
$fsdata = $db->fetch_array($result);//获取以上结果 $fsdata = $db->fetch_array($result);//获取以上结果
//$fspid = $fsdata['pid']; //$fspid = $fsdata['pid'];
...@@ -1657,7 +1668,7 @@ function itemuse($itmn) { ...@@ -1657,7 +1668,7 @@ function itemuse($itmn) {
$itm = $itmk = $itmsk = ''; $itm = $itmk = $itmsk = '';
$itme = $itms = 0; $itme = $itms = 0;
} elseif ($itm == '✦种火聚集装置✦') { } elseif ($itm == '✦种火聚集装置✦') {
global $db, $tablepre, $pls; //global $db, $tablepre, $pls;
$result = $db->query("SELECT * FROM {$tablepre}players WHERE type = 92"); //SELECT 全部种火NPC $result = $db->query("SELECT * FROM {$tablepre}players WHERE type = 92"); //SELECT 全部种火NPC
$fsdata = $db->fetch_array($result);//获取以上结果 $fsdata = $db->fetch_array($result);//获取以上结果
//聚集种火 //聚集种火
...@@ -1671,7 +1682,7 @@ function itemuse($itmn) { ...@@ -1671,7 +1682,7 @@ function itemuse($itmn) {
$itm = $itmk = $itmsk = ''; $itm = $itmk = $itmsk = '';
$itme = $itms = 0; $itme = $itms = 0;
} elseif ($itm == '✦呼唤种火✦') { } elseif ($itm == '✦呼唤种火✦') {
global $db, $tablepre, $pls; //global $db, $tablepre, $pls;
$result = $db->query("SELECT * FROM {$tablepre}players WHERE type = 92"); //SELECT 全部种火NPC $result = $db->query("SELECT * FROM {$tablepre}players WHERE type = 92"); //SELECT 全部种火NPC
$fsdata = $db->fetch_array($result);//获取以上结果 $fsdata = $db->fetch_array($result);//获取以上结果
//聚集种火 //聚集种火
...@@ -1690,7 +1701,7 @@ function itemuse($itmn) { ...@@ -1690,7 +1701,7 @@ function itemuse($itmn) {
// $itme = $itms = 0; // $itme = $itms = 0;
} elseif($itm == '莱卡召唤器') { } elseif($itm == '莱卡召唤器') {
// include_once GAME_ROOT . './include/system.func.php'; // include_once GAME_ROOT . './include/system.func.php';
// global $db,$tablepre; // //global $db,$tablepre;
// $result = $db->query("SELECT pid FROM {$tablepre}players WHERE type = 13"); // $result = $db->query("SELECT pid FROM {$tablepre}players WHERE type = 13");
// $num = $db->num_rows($result); // $num = $db->num_rows($result);
// if($num){ // if($num){
...@@ -1757,7 +1768,7 @@ function itemuse($itmn) { ...@@ -1757,7 +1768,7 @@ function itemuse($itmn) {
$itme = $itms = 0; $itme = $itms = 0;
} elseif ($itm == '【我想要领略真正的红杀之力】') { } elseif ($itm == '【我想要领略真正的红杀之力】') {
//文案 //文案
global $db, $tablepre, $pls; //global $db, $tablepre, $pls;
include_once GAME_ROOT . './include/system.func.php'; include_once GAME_ROOT . './include/system.func.php';
$log .= '你拿起了这个球状物体,重重地向天空抛去!<br>地图上空出现了红杀组织的龙虎徽标!<br>'; $log .= '你拿起了这个球状物体,重重地向天空抛去!<br>地图上空出现了红杀组织的龙虎徽标!<br>';
addnpc(19,0,1); addnpc(19,0,1);
...@@ -1769,7 +1780,7 @@ function itemuse($itmn) { ...@@ -1769,7 +1780,7 @@ function itemuse($itmn) {
$itm = $itmk = $itmsk = ''; $itm = $itmk = $itmsk = '';
$itme = $itms = 0; $itme = $itms = 0;
} elseif ($itmk =='ZA'){ } elseif ($itmk =='ZA'){
global $plsinfo,$db,$tablepre; //global $plsinfo,$db,$tablepre;
if($itm =='→【单兵撤退按钮】←'){ if($itm =='→【单兵撤退按钮】←'){
$log .= "你按下了这个按钮。<br>但似乎什么都没有发生。<br>按钮就这样消失了。<br>在你觉得你买到了假冒伪劣产品时,你听到了来自红暮的广播。<br>"; $log .= "你按下了这个按钮。<br>但似乎什么都没有发生。<br>按钮就这样消失了。<br>在你觉得你买到了假冒伪劣产品时,你听到了来自红暮的广播。<br>";
//销毁物品 //销毁物品
...@@ -1838,7 +1849,7 @@ function itemuse($itmn) { ...@@ -1838,7 +1849,7 @@ function itemuse($itmn) {
$log .= "<br>看起来,在脱出幻境之前,你需要玩一把寻宝游戏了……"; $log .= "<br>看起来,在脱出幻境之前,你需要玩一把寻宝游戏了……";
} }
} elseif ($itm == '【E.S.C.A.P.E】'){ } elseif ($itm == '【E.S.C.A.P.E】'){
global $db, $tablepre; //global $db, $tablepre;
//这实际上是个死法,但是会给成就,称号,并加积分与胜场。 //这实际上是个死法,但是会给成就,称号,并加积分与胜场。
include_once GAME_ROOT . './include/state.func.php'; include_once GAME_ROOT . './include/state.func.php';
//成就检查该物品本身的使用,逻辑不写在这里。 //成就检查该物品本身的使用,逻辑不写在这里。
...@@ -1850,7 +1861,7 @@ function itemuse($itmn) { ...@@ -1850,7 +1861,7 @@ function itemuse($itmn) {
} elseif ($itmk =='ZB'){ //社团卡 } elseif ($itmk =='ZB'){ //社团卡
if($club) if($club)
{ {
global $db,$tablepre; //global $db,$tablepre;
$log .="你已经是有身份的人了!不能再使用称号卡。<br>"; $log .="你已经是有身份的人了!不能再使用称号卡。<br>";
$db->query("INSERT INTO {$tablepre}shopitem (kind,num,price,area,item,itmk,itme,itms,itmsk) VALUES ('18','1','20','0','$itm','$itmk','$itme','$itms','$itmsk')"); $db->query("INSERT INTO {$tablepre}shopitem (kind,num,price,area,item,itmk,itme,itms,itmsk) VALUES ('18','1','20','0','$itm','$itmk','$itme','$itms','$itmsk')");
$log .="<span class='yellow'>$itm</span>像是有生命一般从你的手上脱离,飞回了商店!"; $log .="<span class='yellow'>$itm</span>像是有生命一般从你的手上脱离,飞回了商店!";
...@@ -1858,7 +1869,7 @@ function itemuse($itmn) { ...@@ -1858,7 +1869,7 @@ function itemuse($itmn) {
} }
//处理不能成为合法社团的情况 //处理不能成为合法社团的情况
elseif ($itme == 15){ //L5状态 elseif ($itme == 15){ //L5状态
global $wp, $wk, $wg, $wc, $wd, $wf, $club, $bid, $att, $def; //global $wp, $wk, $wg, $wc, $wd, $wf, $club, $bid, $att, $def;
$log .="【DEBUG】进入L5状态<br>"; $log .="【DEBUG】进入L5状态<br>";
$log .= '你突然感觉到一种不可思议的力量贯通全身!<br>'; $log .= '你突然感觉到一种不可思议的力量贯通全身!<br>';
$wp = $wk = $wg = $wc = $wd = $wf = 8010; $wp = $wk = $wg = $wc = $wd = $wf = 8010;
...@@ -1870,7 +1881,7 @@ function itemuse($itmn) { ...@@ -1870,7 +1881,7 @@ function itemuse($itmn) {
$log .="但是什么都没有发生!"; $log .="但是什么都没有发生!";
} }
elseif ($itme == 20){ // 元素大师特殊处理 elseif ($itme == 20){ // 元素大师特殊处理
global $elements_info,$sparkle; //global $elements_info,$sparkle;
//规则怪谈类型文案 //规则怪谈类型文案
$log.="你拿起<span class='yellow'>$itm</span>左右端详着……<br> $log.="你拿起<span class='yellow'>$itm</span>左右端详着……<br>
然后,它突然就在你的眼前消失了!<br> 然后,它突然就在你的眼前消失了!<br>
...@@ -1895,7 +1906,7 @@ function itemuse($itmn) { ...@@ -1895,7 +1906,7 @@ function itemuse($itmn) {
changeclub(20,$pdata); changeclub(20,$pdata);
//获取初始元素与第一条配方 //获取初始元素与第一条配方
$dice = rand(0,5); $dice = rand(0,5);
global ${'element'.$dice},$clbpara; //global ${'element'.$dice},$clbpara;
${'element'.$dice} += 200+$dice; ${'element'.$dice} += 200+$dice;
//初始化元素合成缓存文件 //初始化元素合成缓存文件
include_once GAME_ROOT.'./include/game/elementmix.func.php'; include_once GAME_ROOT.'./include/game/elementmix.func.php';
...@@ -1915,7 +1926,7 @@ function itemuse($itmn) { ...@@ -1915,7 +1926,7 @@ function itemuse($itmn) {
$itm = $itmk = $itmsk = ''; $itm = $itmk = $itmsk = '';
$itme = $itms = 0; $itme = $itms = 0;
} elseif ($itm == '随机数之神的庇佑'){ } elseif ($itm == '随机数之神的庇佑'){
global $wp, $wk, $wg, $wc, $wd, $wf, $club, $bid, $att, $def; //global $wp, $wk, $wg, $wc, $wd, $wf, $club, $bid, $att, $def;
$log.="你将<span class='yellow'>$itm</span>捧在手心……<br> $log.="你将<span class='yellow'>$itm</span>捧在手心……<br>
突然,从天上传来一个慵懒的声音:<br> 突然,从天上传来一个慵懒的声音:<br>
<span class=\"blueseed\">“现在还没到我的上班时间呢!”<br> <span class=\"blueseed\">“现在还没到我的上班时间呢!”<br>
...@@ -1932,14 +1943,14 @@ function itemuse($itmn) { ...@@ -1932,14 +1943,14 @@ function itemuse($itmn) {
} elseif ($itm == '事件BGM替换器'){ } elseif ($itm == '事件BGM替换器'){
// 这是一个触发事件BGM的案例,只要输入$clbpara['event_bgmbook'] = Array('事件曲集名'); 即可将当前曲集替换为特殊事件BGM // 这是一个触发事件BGM的案例,只要输入$clbpara['event_bgmbook'] = Array('事件曲集名'); 即可将当前曲集替换为特殊事件BGM
// 特殊事件曲集'event_bgmbook'的优先级高于地图曲集'pls_bgmbook',前者存在时后者不会生效 // 特殊事件曲集'event_bgmbook'的优先级高于地图曲集'pls_bgmbook',前者存在时后者不会生效
global $clbpara,$event_bgm; //global $clbpara,$event_bgm;
//include_once config('audio',$gamecfg); //include_once config('audio',$gamecfg);
$log.="【DEBUG】你目前的播放列表被替换为了{$event_bgm['test'][0]}!<br>特殊的事件曲集不会被其他曲集覆盖,除非你使用下面的道具。<br>"; $log.="【DEBUG】你目前的播放列表被替换为了{$event_bgm['test'][0]}!<br>特殊的事件曲集不会被其他曲集覆盖,除非你使用下面的道具。<br>";
$clbpara['event_bgmbook'] = $event_bgm['test']; $clbpara['event_bgmbook'] = $event_bgm['test'];
} elseif ($itm == '事件BGM还原器'){ } elseif ($itm == '事件BGM还原器'){
// 这是一个取消事件BGM的案例,只要unset($clbpara['event_bgmbook']);就可以将当前曲集替换为地图曲集或默认曲集; // 这是一个取消事件BGM的案例,只要unset($clbpara['event_bgmbook']);就可以将当前曲集替换为地图曲集或默认曲集;
// 如果你想播放另一个事件曲集,也可以$clbpara['event_bgmbook'] = Array('另一个事件曲集名'); // 如果你想播放另一个事件曲集,也可以$clbpara['event_bgmbook'] = Array('另一个事件曲集名');
global $clbpara; //global $clbpara;
$log.="【DEBUG】你目前的播放列表还原为了默认播放列表!<br>"; $log.="【DEBUG】你目前的播放列表还原为了默认播放列表!<br>";
unset($clbpara['event_bgmbook']); unset($clbpara['event_bgmbook']);
} elseif ($itm == '成就重置装置'){ } elseif ($itm == '成就重置装置'){
...@@ -1947,11 +1958,11 @@ function itemuse($itmn) { ...@@ -1947,11 +1958,11 @@ function itemuse($itmn) {
include_once GAME_ROOT.'./include/game/achievement.func.php'; include_once GAME_ROOT.'./include/game/achievement.func.php';
reset_achievement_rev($itmsk,$name); reset_achievement_rev($itmsk,$name);
} elseif ($itm == '测试用元素口袋'){ } elseif ($itm == '测试用元素口袋'){
global $elements_info; //global $elements_info;
$log.="【DEBUG】你不知道从哪里摸出来一大堆元素!<br>"; $log.="【DEBUG】你不知道从哪里摸出来一大堆元素!<br>";
foreach($elements_info as $e_key=>$e_info) foreach($elements_info as $e_key=>$e_info)
{ {
global ${'element'.$e_key}; //global ${'element'.$e_key};
${'element'.$e_key} += 100000; ${'element'.$e_key} += 100000;
$log.="获得了100000份".$elements_info[$e_key]."!<br>"; $log.="获得了100000份".$elements_info[$e_key]."!<br>";
} }
...@@ -1961,7 +1972,7 @@ function itemuse($itmn) { ...@@ -1961,7 +1972,7 @@ function itemuse($itmn) {
} elseif ($itm == '测试用元素大师社团卡'){ } elseif ($itm == '测试用元素大师社团卡'){
//-----------------------// //-----------------------//
//这是一张测试用卡 冴冴可以挑一些用得上的放在使用社团卡后执行的事件里 //这是一张测试用卡 冴冴可以挑一些用得上的放在使用社团卡后执行的事件里
global $elements_info,$sparkle; //global $elements_info,$sparkle;
//未选择社团情况下才可以用社团卡 //未选择社团情况下才可以用社团卡
if($club) if($club)
{ {
...@@ -1993,7 +2004,7 @@ function itemuse($itmn) { ...@@ -1993,7 +2004,7 @@ function itemuse($itmn) {
changeclub(20,$pdata); changeclub(20,$pdata);
//获取初始元素与第一条配方 //获取初始元素与第一条配方
$dice = rand(0,5); $dice = rand(0,5);
global ${'element'.$dice}; //global ${'element'.$dice};
${'element'.$dice} += 200+$dice; ${'element'.$dice} += 200+$dice;
//初始化元素合成缓存文件 //初始化元素合成缓存文件
include_once GAME_ROOT.'./include/game/elementmix.func.php'; include_once GAME_ROOT.'./include/game/elementmix.func.php';
...@@ -2043,10 +2054,10 @@ function itemuse($itmn) { ...@@ -2043,10 +2054,10 @@ function itemuse($itmn) {
} elseif ($itm == '提示纸条U') { } elseif ($itm == '提示纸条U') {
$log .= '你读着纸条上的内容:<br>“纸条啥的……”<br>“希望这张纸条不会成为你的遗书。”<br>“总之祝你好运。”<br>'; $log .= '你读着纸条上的内容:<br>“纸条啥的……”<br>“希望这张纸条不会成为你的遗书。”<br>“总之祝你好运。”<br>';
} elseif ($itm == '人品探测器') { } elseif ($itm == '人品探测器') {
global $rp; //global $rp;
$log .= '你读着纸条上的内容:<br>“你的RP值为'.$rp.'。”<br>“总之祝你好运。”<br>'; $log .= '你读着纸条上的内容:<br>“你的RP值为'.$rp.'。”<br>“总之祝你好运。”<br>';
} elseif ($itm == '仪水镜') { } elseif ($itm == '仪水镜') {
global $rp; //global $rp;
$log .= '水面上映出了你自己的脸,你仔细端详着……<br>'; $log .= '水面上映出了你自己的脸,你仔细端详着……<br>';
if ($rp < 40){ if ($rp < 40){
$log .= '你的脸看起来十分白皙。<br>'; $log .= '你的脸看起来十分白皙。<br>';
...@@ -2064,7 +2075,7 @@ function itemuse($itmn) { ...@@ -2064,7 +2075,7 @@ function itemuse($itmn) {
$log .= '你的脸从水镜中消失了。<br>'; $log .= '你的脸从水镜中消失了。<br>';
} }
} elseif ($itm == '风祭河水'){ } elseif ($itm == '风祭河水'){
global $rp, $wp, $wk, $wg, $wc, $wd, $wf; //global $rp, $wp, $wk, $wg, $wc, $wd, $wf;
$slv_dice = rand ( 1, 20 ); $slv_dice = rand ( 1, 20 );
if ($slv_dice < 8) { if ($slv_dice < 8) {
$log .= "你一口干掉了<span class=\"yellow\">$itm</span>,不过好像什么都没有发生!"; $log .= "你一口干掉了<span class=\"yellow\">$itm</span>,不过好像什么都没有发生!";
...@@ -2089,12 +2100,12 @@ function itemuse($itmn) { ...@@ -2089,12 +2100,12 @@ function itemuse($itmn) {
death ( 'salv', '', 0, $itm ); death ( 'salv', '', 0, $itm );
} }
} elseif ($itm == '『灵魂宝石』' || $itm == '『祝福宝石』') { } elseif ($itm == '『灵魂宝石』' || $itm == '『祝福宝石』') {
global $cmd; //global $cmd;
$cmd = '<input type="hidden" name="mode" value="item"><input type="hidden" name="usemode" value="qianghua"><input type="hidden" name="itmp" value="' . $itmn . '">你想强化哪一件装备?<br><input type="radio" name="command" id="menu" value="menu" checked><a onclick=sl("menu"); href="javascript:void(0);" >返回</a><br><br><br>'; $cmd = '<input type="hidden" name="mode" value="item"><input type="hidden" name="usemode" value="qianghua"><input type="hidden" name="itmp" value="' . $itmn . '">你想强化哪一件装备?<br><input type="radio" name="command" id="menu" value="menu" checked><a onclick=sl("menu"); href="javascript:void(0);" >返回</a><br><br><br>';
for($i = 1; $i <= 6; $i ++) { for($i = 1; $i <= 6; $i ++) {
global ${'itmsk' . $i}; //global ${'itmsk' . $i};
if ((strpos ( ${'itmsk' . $i}, 'Z' ) !== false) && (strpos ( ${'itm' . $i}, '宝石』' ) === false)) { if ((strpos ( ${'itmsk' . $i}, 'Z' ) !== false) && (strpos ( ${'itm' . $i}, '宝石』' ) === false)) {
global ${'itm' . $i}, ${'itme' . $i}, ${'itms' . $i}; //global ${'itm' . $i}, ${'itme' . $i}, ${'itms' . $i};
$cmd .= '<input type="radio" name="command" id="itm' . $i . '" value="itm' . $i . '"><a onclick=sl("itm' . $i . '"); href="javascript:void(0);" >' . "${'itm'.$i}/${'itme'.$i}/${'itms'.$i}" . '</a><br>'; $cmd .= '<input type="radio" name="command" id="itm' . $i . '" value="itm' . $i . '"><a onclick=sl("itm' . $i . '"); href="javascript:void(0);" >' . "${'itm'.$i}/${'itme'.$i}/${'itms'.$i}" . '</a><br>';
$flag = true; $flag = true;
} }
...@@ -2110,7 +2121,7 @@ function itemuse($itmn) { ...@@ -2110,7 +2121,7 @@ function itemuse($itmn) {
$flag = false; $flag = false;
for($i = 1; $i <= 6; $i ++) { for($i = 1; $i <= 6; $i ++) {
global ${'itm' . $i}, ${'itmk' . $i},${'itms' . $i},${'itme' . $i},$wk; //global ${'itm' . $i}, ${'itmk' . $i},${'itms' . $i},${'itme' . $i},$wk;
foreach(Array('香蕉','苹果','西瓜') as $fruit){ foreach(Array('香蕉','苹果','西瓜') as $fruit){
if ( strpos ( ${'itm' . $i} , $fruit ) !== false && strpos ( ${'itm' . $i} , '皮' ) === false && strpos ( ${'itm' . $i} , '■' ) === false && (strpos ( ${'itmk' . $i} , 'H' ) === 0 || strpos ( ${'itmk' . $i} , 'P' ) === 0 )) { if ( strpos ( ${'itm' . $i} , $fruit ) !== false && strpos ( ${'itm' . $i} , '皮' ) === false && strpos ( ${'itm' . $i} , '■' ) === false && (strpos ( ${'itmk' . $i} , 'H' ) === 0 || strpos ( ${'itmk' . $i} , 'P' ) === 0 )) {
...@@ -2145,7 +2156,7 @@ function itemuse($itmn) { ...@@ -2145,7 +2156,7 @@ function itemuse($itmn) {
} }
} }
} elseif(strpos($itm,'RP回复设备')!==false){ } elseif(strpos($itm,'RP回复设备')!==false){
global $rp; //global $rp;
$rp = 0; $rp = 0;
$log .= "你使用了<span class=\"yellow\">$itm</span>。你的RP归零了。<br>"; $log .= "你使用了<span class=\"yellow\">$itm</span>。你的RP归零了。<br>";
} else { } else {
...@@ -2160,7 +2171,7 @@ function itemuse($itmn) { ...@@ -2160,7 +2171,7 @@ function itemuse($itmn) {
$log.= $emix_slip[array_rand($emix_slip)]; $log.= $emix_slip[array_rand($emix_slip)];
//除商店纸条外:提供一条元素特征(TODO)、或一条固定配方、或一条随机属性组合 //除商店纸条外:提供一条元素特征(TODO)、或一条固定配方、或一条随机属性组合
$log .= "<br><span class='yellow'>附:见面有缘,再送你一条提示吧:<br>“将带有"; $log .= "<br><span class='yellow'>附:见面有缘,再送你一条提示吧:<br>“将带有";
global $itemspkinfo; //global $itemspkinfo;
include_once GAME_ROOT.'./include/game/elementmix.func.php'; include_once GAME_ROOT.'./include/game/elementmix.func.php';
if(!preg_match('/(A|B|C|D)/',$itm)) if(!preg_match('/(A|B|C|D)/',$itm))
{ {
......
...@@ -123,11 +123,16 @@ function calc_trap_reuse_rate($pa,$playerflag=0,$selflag=0) ...@@ -123,11 +123,16 @@ function calc_trap_reuse_rate($pa,$playerflag=0,$selflag=0)
} }
function trap(){ function trap(&$data=NULL){
global $log,$cmd,$mode,$iteminfo;
global $now,$db,$tablepre;
if(!isset($data))
{
global $pdata; global $pdata;
global $log,$cmd,$mode,$iteminfo,$itm0,$itmk0,$itme0,$itms0,$itmsk0,$nick; $data = &$pdata;
global $name,$now,$hp,$db,$tablepre,$bid,$lvl,$pid,$type,$tactic,$club,$skills,$rp; }
global $wepsk,$arbsk,$arhsk,$arask,$arfsk,$artsk,$achievement; extract($data,EXTR_REFS);
$playerflag = $itmsk0 ? true : false; $playerflag = $itmsk0 ? true : false;
$selflag = $itmsk0 == $pid ? true : false; $selflag = $itmsk0 == $pid ? true : false;
...@@ -144,7 +149,7 @@ function trap(){ ...@@ -144,7 +149,7 @@ function trap(){
} }
// 计算陷阱回避率 // 计算陷阱回避率
$escrate = calc_trap_escape_rate($pdata,$playerflag,$selflag); $escrate = calc_trap_escape_rate($data,$playerflag,$selflag);
//echo '回避率 = '.$escrate.'%'; //echo '回避率 = '.$escrate.'%';
if($dice >= $escrate) if($dice >= $escrate)
...@@ -170,7 +175,7 @@ function trap(){ ...@@ -170,7 +175,7 @@ function trap(){
$damage = $tactic == 2 ? round($damage * 0.75) : $damage; $damage = $tactic == 2 ? round($damage * 0.75) : $damage;
//好人卡特别活动 //好人卡特别活动
global $itm1,$itmk1,$itms1,$itm2,$itmk2,$itms2,$itm3,$itmk3,$itms3,$itm4,$itmk4,$itms4,$itm5,$itmk5,$itms5; //global $itm1,$itmk1,$itms1,$itm2,$itmk2,$itms2,$itm3,$itmk3,$itms3,$itm4,$itmk4,$itms4,$itm5,$itmk5,$itms5;
$goodmancard = 0; $goodmancard = 0;
for($i=1;$i<=5;$i++){ for($i=1;$i<=5;$i++){
if(${'itms'.$i} && ${'itm'.$i} == '好人卡' && ${'itmk'.$i} == 'Y'){ if(${'itms'.$i} && ${'itm'.$i} == '好人卡' && ${'itmk'.$i} == 'Y'){
...@@ -180,9 +185,9 @@ function trap(){ ...@@ -180,9 +185,9 @@ function trap(){
} }
# 检查陷阱是否被迎击 # 检查陷阱是否被迎击
$damage = check_trap_def_event($pdata,$damage,$playerflag,$selflag); $damage = check_trap_def_event($data,$damage,$playerflag,$selflag);
# 「天佑」技能判定 # 「天佑」技能判定
if($damage && $itmk0 != 'TOc' && !check_skill_unlock('buff_godbless',$pdata)) if($damage && $itmk0 != 'TOc' && !check_skill_unlock('buff_godbless',$data))
{ {
$damage = 0; $damage = 0;
$log .= "<span class=\"yellow\">「天佑」使你免疫了陷阱伤害!</span><br>"; $log .= "<span class=\"yellow\">「天佑」使你免疫了陷阱伤害!</span><br>";
...@@ -214,17 +219,17 @@ function trap(){ ...@@ -214,17 +219,17 @@ function trap(){
include_once GAME_ROOT.'./include/game/revcombat.func.php'; include_once GAME_ROOT.'./include/game/revcombat.func.php';
$wdata['wep_name'] = $itm0; $wdata['wep_name'] = $itm0;
// 陷阱有主 走击杀判定 // 陷阱有主 走击杀判定
$last = pre_kill_events($wdata,$pdata,0,'trap'); $last = pre_kill_events($wdata,$data,0,'trap');
// 检查是否复活 // 检查是否复活
$revival_flag = revive_process($wdata,$pdata,$active); $revival_flag = revive_process($wdata,$data,$active);
// 没有复活 走完击杀流程 // 没有复活 走完击杀流程
if(!$revival_flag) final_kill_events($wdata,$pdata,0,$last); if(!$revival_flag) final_kill_events($wdata,$data,0,$last);
player_save($wdata); player_save($wdata);
} }
else else
{ {
include_once GAME_ROOT.'./include/state.func.php'; include_once GAME_ROOT.'./include/state.func.php';
$killmsg = death('trap',$trname,$trtype,$itm0); $killmsg = death('trap',$trname,$trtype,$itm0,$data);
$log .= "你被{$trperfix}陷阱杀死了!"; $log .= "你被{$trperfix}陷阱杀死了!";
if($killmsg && !$selflag){ if($killmsg && !$selflag){
$log .= "<span class=\"yellow\">{$trname}对你说:“{$killmsg}”</span><br>"; $log .= "<span class=\"yellow\">{$trname}对你说:“{$killmsg}”</span><br>";
...@@ -240,12 +245,12 @@ function trap(){ ...@@ -240,12 +245,12 @@ function trap(){
else else
{ {
# 「天佑」技能判定 # 「天佑」技能判定
if(!check_skill_unlock('c6_godbless',$pdata) && check_skill_unlock('buff_godbless',$pdata)) if(!check_skill_unlock('c6_godbless',$data) && check_skill_unlock('buff_godbless',$data))
{ {
$actmhp = get_skillvars('c6_godbless','actmhp'); $actmhp = get_skillvars('c6_godbless','actmhp');
if($damage >= $pdata['mhp']*($actmhp/100)) if($damage >= $data['mhp']*($actmhp/100))
{ {
getclubskill('buff_godbless',$pdata['clbpara']); getclubskill('buff_godbless',$data['clbpara']);
$log .= "<span class=\"yellow\">你的技能「天佑」被触发,暂时进入了无敌状态!</span><br>"; $log .= "<span class=\"yellow\">你的技能「天佑」被触发,暂时进入了无敌状态!</span><br>";
} }
} }
...@@ -281,9 +286,9 @@ function trap(){ ...@@ -281,9 +286,9 @@ function trap(){
} }
} }
$log .= "糟糕,你触发了{$trperfix}陷阱<span class=\"yellow\">$itm0</span>!"; $log .= "糟糕,你触发了{$trperfix}陷阱<span class=\"yellow\">$itm0</span>!";
if(!empty($pdata['minedetect'])) if(!empty($data['minedetect']))
{ {
unset($pdata['minedetect']); unset($data['minedetect']);
$log .= "<br>不过,身上装备着的自动迎击系统启动了!<span class=\"yellow\">在迎击功能的保护下你毫发无伤。</span><br>"; $log .= "<br>不过,身上装备着的自动迎击系统启动了!<span class=\"yellow\">在迎击功能的保护下你毫发无伤。</span><br>";
} }
else else
...@@ -314,13 +319,13 @@ function trap(){ ...@@ -314,13 +319,13 @@ function trap(){
} }
# 计算陷阱重复利用率 # 计算陷阱重复利用率
$fdrate = calc_trap_reuse_rate($pdata,$playerflag,$selflag); $fdrate = calc_trap_reuse_rate($data,$playerflag,$selflag);
if($dice < $fdrate) if($dice < $fdrate)
{ {
if(!empty($pdata['minedetect'])) if(!empty($data['minedetect']))
{ {
unset($pdata['minedetect']); unset($data['minedetect']);
$log .= "在探雷装备的辅助下,你发现了{$trperfix}陷阱<span class=\"yellow\">$itm0</span>并且拆除了它。陷阱看上去还可以重复使用。<br>"; $log .= "在探雷装备的辅助下,你发现了{$trperfix}陷阱<span class=\"yellow\">$itm0</span>并且拆除了它。陷阱看上去还可以重复使用。<br>";
} }
else else
...@@ -333,9 +338,9 @@ function trap(){ ...@@ -333,9 +338,9 @@ function trap(){
} }
else else
{ {
if(isset($pdata['minedetect'])) if(isset($data['minedetect']))
{ {
unset($pdata['minedetect']); unset($data['minedetect']);
$log .= "在探雷装备的辅助下,你发现了{$trperfix}陷阱<span class=\"yellow\">$itm0</span>并且拆除了它。不过陷阱好像被你搞坏了。<br>"; $log .= "在探雷装备的辅助下,你发现了{$trperfix}陷阱<span class=\"yellow\">$itm0</span>并且拆除了它。不过陷阱好像被你搞坏了。<br>";
} }
else else
...@@ -350,16 +355,25 @@ function trap(){ ...@@ -350,16 +355,25 @@ function trap(){
} }
} }
function itemfind() { function itemfind(&$data=NULL) {
global $mode,$log,$itm0,$itmk0,$itms0,$itmsk0; //global $mode,$log,$itm0,$itmk0,$itms0,$itmsk0;
global $club; //global $club;
global $mode,$log;
if(!isset($data))
{
global $pdata;
$data = &$pdata;
}
extract($data,EXTR_REFS);
if(!$itm0||!$itmk0||!$itms0){ if(!$itm0||!$itmk0||!$itms0){
$log .= '获取物品信息错误!'; $log .= '获取物品信息错误!';
$mode = 'command'; $mode = 'command';
return; return;
} }
if(strpos($itmk0,'TO')===0) { if(strpos($itmk0,'TO')===0) {
trap(); trap($data);
}else{ }else{
if(CURSCRIPT == 'botservice') if(CURSCRIPT == 'botservice')
{ {
...@@ -374,8 +388,15 @@ function itemfind() { ...@@ -374,8 +388,15 @@ function itemfind() {
} }
function itemget() { function itemget(&$data=NULL)
global $log,$nosta,$mode,$itm0,$itmk0,$itme0,$itms0,$itmsk0,$cmd; {
global $log,$nosta,$mode,$cmd;
if(!isset($data))
{
global $pdata;
$data = &$pdata;
}
extract($data,EXTR_REFS);
$log .= "获得了物品<span class=\"yellow\">$itm0</span>。<br>"; $log .= "获得了物品<span class=\"yellow\">$itm0</span>。<br>";
//PORT //PORT
if(strpos($itmsk0,'^')!==false){ if(strpos($itmsk0,'^')!==false){
...@@ -387,7 +408,7 @@ function itemget() { ...@@ -387,7 +408,7 @@ function itemget() {
} }
} }
if(preg_match('/^(WC|WD|WF|Y|B|C|TN|GB|M|V)/',$itmk0) && $itms0 !== $nosta){ if(preg_match('/^(WC|WD|WF|Y|B|C|TN|GB|M|V)/',$itmk0) && $itms0 !== $nosta){
global $wep,$wepk,$wepe,$weps,$wepsk; //global $wep,$wepk,$wepe,$weps,$wepsk;
if($wep == $itm0 && $wepk == $itmk0 && $wepe == $itme0 && $wepsk == $itmsk0){ if($wep == $itm0 && $wepk == $itmk0 && $wepe == $itme0 && $wepsk == $itmsk0){
$weps += $itms0; $weps += $itms0;
$log .= "与装备着的武器<span class=\"yellow\">$wep</span>合并了。"; $log .= "与装备着的武器<span class=\"yellow\">$wep</span>合并了。";
...@@ -397,7 +418,7 @@ function itemget() { ...@@ -397,7 +418,7 @@ function itemget() {
return; return;
}else{ }else{
for($i = 1;$i <= 6;$i++){ for($i = 1;$i <= 6;$i++){
global ${'itm'.$i},${'itmk'.$i},${'itme'.$i},${'itms'.$i},${'itmsk'.$i}; //global ${'itm'.$i},${'itmk'.$i},${'itme'.$i},${'itms'.$i},${'itmsk'.$i};
if((${'itms'.$i})&&($itm0 == ${'itm'.$i})&&($itmk0 == ${'itmk'.$i})&&($itme0 == ${'itme'.$i})&&($itmsk0 == ${'itmsk'.$i})){ if((${'itms'.$i})&&($itm0 == ${'itm'.$i})&&($itmk0 == ${'itmk'.$i})&&($itme0 == ${'itme'.$i})&&($itmsk0 == ${'itmsk'.$i})){
${'itms'.$i} += $itms0; ${'itms'.$i} += $itms0;
$log .= "与包裹里的<span class=\"yellow\">$itm0</span>合并了。"; $log .= "与包裹里的<span class=\"yellow\">$itm0</span>合并了。";
...@@ -417,36 +438,37 @@ function itemget() { ...@@ -417,36 +438,37 @@ function itemget() {
} }
} }
if(isset($sameitem[0])){ if(isset($sameitem[0])){
if (CURSCRIPT != 'botservice') if ($data['pass'] == 'bot')
{ {
include template('itemmerge0'); include_once GAME_ROOT.'./bot/revbot.func.php';
$cmd = ob_get_contents(); if(bot_check_getitem($data)) itemadd($data);
ob_clean(); else itemdrop($data);
} }
else else
{ {
echo "mode=itemmerge0\n"; include template('itemmerge0');
echo "itemmergechoicenum={$scnt}\n"; $cmd = ob_get_contents();
for ($i=0; $i<$scnt; $i++) ob_clean();
echo "itemmergechoice{$i}={$sameitem[$i]}\n";
} }
// $cmd .= '<input type="hidden" name="mode" value="itemmain"><input type="hidden" name="command" value="itemmerge"><input type="hidden" name="merge1" value="0"><br>是否将 <span class="yellow">'.$itm0.'</span> 与以下物品合并?<br><input type="radio" name="merge2" id="itmn" value="n" checked><a onclick=sl("itmn"); href="javascript:void(0);" >不合并</a><br><br>';
// foreach($sameitem as $n) {
// $cmd .= '<input type="radio" name="merge2" id="itm'.$n.'" value="'.$n.'"><a onclick=sl("itm'.$n.'"); href="javascript:void(0);">'."${'itm'.$n}/${'itme'.$n}/${'itms'.$n}".'</a><br>';
// }
return; return;
} }
} }
itemadd(); itemadd($data);
return; return;
} }
function itemdrop($item) { function itemdrop($item,&$data=NULL) {
global $db,$log,$mode,$pls,$tablepre; global $db,$tablepre,$log,$mode;
if(!isset($data))
{
global $pdata;
$data = &$pdata;
}
extract($data,EXTR_REFS);
if(strpos($item,'itm')===false) if(strpos($item,'itm')===false)
{ {
...@@ -470,9 +492,11 @@ function itemdrop($item) { ...@@ -470,9 +492,11 @@ function itemdrop($item) {
$itms = & ${'ar'.$itmn.'s'}; $itms = & ${'ar'.$itmn.'s'};
$itmsk = & ${'ar'.$itmn.'sk'}; $itmsk = & ${'ar'.$itmn.'sk'};
} else*/if(strpos($item,'itm') === 0) { } else*/
if(strpos($item,'itm') === 0) {
$itmn = substr($item,3,1); $itmn = substr($item,3,1);
global ${'itm'.$itmn},${'itmk'.$itmn},${'itme'.$itmn},${'itms'.$itmn},${'itmsk'.$itmn}; //global ${'itm'.$itmn},${'itmk'.$itmn},${'itme'.$itmn},${'itms'.$itmn},${'itmsk'.$itmn};
$itm = & ${'itm'.$itmn}; $itm = & ${'itm'.$itmn};
$itmk = & ${'itmk'.$itmn}; $itmk = & ${'itmk'.$itmn};
$itme = & ${'itme'.$itmn}; $itme = & ${'itme'.$itmn};
...@@ -483,13 +507,13 @@ function itemdrop($item) { ...@@ -483,13 +507,13 @@ function itemdrop($item) {
if(strpos($itmsk,'^')!==false){ if(strpos($itmsk,'^')!==false){
$dflag=true; $dflag=true;
for($i=1;$i<=6;$i++){ for($i=1;$i<=6;$i++){
global ${'itm'.$i},${'itmk'.$i},${'itme'.$i},${'itms'.$i},${'itmsk'.$i}; //global ${'itm'.$i},${'itmk'.$i},${'itme'.$i},${'itms'.$i},${'itmsk'.$i};
if(strpos(${'itmsk'.$i},'^')!==false && ${'itms'.$i} && ${'itme'.$i}){ if(strpos(${'itmsk'.$i},'^')!==false && ${'itms'.$i} && ${'itme'.$i}){
$dflag=false; $dflag=false;
break; break;
} }
} }
global $arbsk,$arbs,$arbe; //global $arbsk,$arbs,$arbe;
if(strpos($arbsk,'^')!==false && $arbs && $arbe){ if(strpos($arbsk,'^')!==false && $arbs && $arbe){
$dflag=false; $dflag=false;
} }
...@@ -587,15 +611,24 @@ function itemoff($item){ ...@@ -587,15 +611,24 @@ function itemoff($item){
return; return;
} }
function itemadd(){ function itemadd(&$data=NULL)
global $log,$mode,$cmd,$itm0,$itmk0,$itme0,$itms0,$itmsk0; {
global $log,$mode,$cmd;
if(!isset($data))
{
global $pdata;
$data = &$pdata;
}
extract($data,EXTR_REFS);
if(!$itms0){ if(!$itms0){
$log .= '你没有捡取物品。<br>'; $log .= '你没有捡取物品。<br>';
$mode = 'command'; $mode = 'command';
return; return;
} }
for($i = 1;$i <= 6;$i++){ for($i = 1;$i <= 6;$i++){
global ${'itm'.$i},${'itmk'.$i},${'itme'.$i},${'itms'.$i},${'itmsk'.$i}; //global ${'itm'.$i},${'itmk'.$i},${'itme'.$i},${'itms'.$i},${'itmsk'.$i};
if(!${'itms'.$i}){ if(!${'itms'.$i}){
$log .= "将<span class=\"yellow\">$itm0</span>放入包裹。<br>"; $log .= "将<span class=\"yellow\">$itm0</span>放入包裹。<br>";
${'itm'.$i} = $itm0; ${'itm'.$i} = $itm0;
...@@ -1107,9 +1140,18 @@ function itemmove($from,$to){ ...@@ -1107,9 +1140,18 @@ function itemmove($from,$to){
} }
function itembuy($item,$shop,$bnum=1) { function itembuy($item,$shop,$bnum=1,&$data=NULL)
global $log,$name,$mode,$now,$money,$areanum,$areaadd,$itm0,$itmk0,$itme0,$itms0,$itmsk0,$pls,$shops,$club; {
global $log,$mode,$now,$areanum,$areaadd,$shops;
global $db,$tablepre; global $db,$tablepre;
if(!isset($data))
{
global $pdata;
$data = &$pdata;
}
extract($data,EXTR_REFS);
$result=$db->query("SELECT * FROM {$tablepre}shopitem WHERE sid = '$item'"); $result=$db->query("SELECT * FROM {$tablepre}shopitem WHERE sid = '$item'");
$iteminfo = $db->fetch_array($result); $iteminfo = $db->fetch_array($result);
$price = $club == 11 ? round($iteminfo['price']*0.75) : $iteminfo['price']; $price = $club == 11 ? round($iteminfo['price']*0.75) : $iteminfo['price'];
...@@ -1177,7 +1219,7 @@ function itembuy($item,$shop,$bnum=1) { ...@@ -1177,7 +1219,7 @@ function itembuy($item,$shop,$bnum=1) {
$itms0 = $iteminfo['itms']*$bnum; $itms0 = $iteminfo['itms']*$bnum;
$itmsk0 = $iteminfo['itmsk']; $itmsk0 = $iteminfo['itmsk'];
itemget(); itemget($data);
return; return;
} }
...@@ -1185,10 +1227,20 @@ function itembuy($item,$shop,$bnum=1) { ...@@ -1185,10 +1227,20 @@ function itembuy($item,$shop,$bnum=1) {
function getcorpse($item){ function getcorpse($item,&$data=NULL)
{
global $db,$tablepre,$log,$mode,$now; global $db,$tablepre,$log,$mode,$now;
global $itm0,$itmk0,$itme0,$itms0,$itmsk0,$money,$pls,$action,$rp,$name; //global $itm0,$itmk0,$itme0,$itms0,$itmsk0,$money,$pls,$action,$rp,$name;
global $club,$allow_destory_corpse,$no_destory_corpse_type,$rpup_destory_corpse; //global $club,$allow_destory_corpse,$no_destory_corpse_type,$rpup_destory_corpse;
global $allow_destory_corpse,$no_destory_corpse_type,$rpup_destory_corpse;
if(!isset($data))
{
global $pdata;
$data = &$pdata;
}
extract($data,EXTR_REFS);
$corpseid = strpos($action,'corpse')===0 ? str_replace('corpse','',$action) : str_replace('pacorpse','',$action); $corpseid = strpos($action,'corpse')===0 ? str_replace('corpse','',$action) : str_replace('pacorpse','',$action);
if(!$corpseid || strpos($action,'corpse')===false){ if(!$corpseid || strpos($action,'corpse')===false){
$log .= '<span class="yellow">你没有遇到尸体,或已经离开现场!</span><br>'; $log .= '<span class="yellow">你没有遇到尸体,或已经离开现场!</span><br>';
...@@ -1264,7 +1316,7 @@ function getcorpse($item){ ...@@ -1264,7 +1316,7 @@ function getcorpse($item){
if($item == 'loot_depot') if($item == 'loot_depot')
{ {
global $name,$type; //global $name,$type;
include_once GAME_ROOT.'./include/game/depot.func.php'; include_once GAME_ROOT.'./include/game/depot.func.php';
loot_depot($name,$type,$edata['name'],$edata['type']); loot_depot($name,$type,$edata['name'],$edata['type']);
$action = ''; $action = '';
...@@ -1315,7 +1367,7 @@ function getcorpse($item){ ...@@ -1315,7 +1367,7 @@ function getcorpse($item){
if(!$itms0||!$itmk0||$itmk0=='WN'||$itmk0=='DN') { if(!$itms0||!$itmk0||$itmk0=='WN'||$itmk0=='DN') {
$log .= '该物品不存在!'; $log .= '该物品不存在!';
} else { } else {
itemget(); itemget($data);
} }
$action = ''; $action = '';
$mode = 'command'; $mode = 'command';
...@@ -1387,6 +1439,9 @@ function weapon_loss(&$pa,$hurtvalue,$force_imp=0,$check_sk=0) ...@@ -1387,6 +1439,9 @@ function weapon_loss(&$pa,$hurtvalue,$force_imp=0,$check_sk=0)
{ {
global $log,$wepimprate,$nosta; global $log,$wepimprate,$nosta;
//小开不算开 以后再做弹药相关吧
if($pa['pass'] == 'bot' && ($pa['wep_kind'] == 'G' || $pa['wep_kind'] == 'J')) $hurtvalue = 0;
if($hurtvalue && $pa['wep_kind'] != 'N') if($hurtvalue && $pa['wep_kind'] != 'N')
{ {
$wep_loss_flag = 0; $wep_loss_flag = 0;
......
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
} }
# NPC释放战斗技 暂时先重复写一遍,之后合并到一个函数里 # NPC释放战斗技 暂时先重复写一遍,之后合并到一个函数里
if(!$active && $pa['type'] && !empty($pa['clbpara']['skill'])) if($pa['type'] && !empty($pa['clbpara']['skill']))
{ {
# 打乱并遍历pa技能队列 寻找可用战斗技 # 打乱并遍历pa技能队列 寻找可用战斗技
$npc_skill = $pa['clbpara']['skill']; $npc_skill = $pa['clbpara']['skill'];
......
...@@ -412,24 +412,22 @@ ...@@ -412,24 +412,22 @@
//pa是玩家/主视角NPC的情况下 把edata($w_*)发给$pd 把sdata($s_*) 发给$pa //pa是玩家/主视角NPC的情况下 把edata($w_*)发给$pd 把sdata($s_*) 发给$pa
init_battle_rev($pa,$pd,1); init_battle_rev($pa,$pd,1);
player_save($pa); player_save($pd); player_save($pa); player_save($pd);
$edata = $pd; if(!$pa['type']) $sname = $pa['name']; $edata = $pd; if(!$pa['type']) $sdata = $pa;
} }
else else
{ {
//pd是玩家/主视角NPC的情况下 把edata($w_*)发给$pa 把sdata($s_*) 发给$pd //pd是玩家/主视角NPC的情况下 把edata($w_*)发给$pa 把sdata($s_*) 发给$pd
init_battle_rev($pd,$pa,1); init_battle_rev($pd,$pa,1);
player_save($pa); player_save($pd); player_save($pa); player_save($pd);
$edata = $pa; if(!$pd['type']) $sname = $pd['name']; $edata = $pa; if(!$pd['type']) $sdata = $pd;
} }
$main = 'battle_rev'; $main = 'battle_rev';
if(isset($sname)) if(isset($sdata) && $sdata['pass'] != 'bot')
{ {
$pdata = fetch_playerdata_by_name($sname); $pdata = fetch_playerdata_by_name($sdata['name']);
extract($pdata,EXTR_REFS); extract($pdata,EXTR_REFS);
}
# 根据玩家身上的标记($action) 判断接下来要跳转的页面 # 根据玩家身上的标记($action) 判断接下来要跳转的页面
if(substr($action,0,6)=='corpse') if(substr($action,0,6)=='corpse')
{ {
...@@ -456,6 +454,7 @@ ...@@ -456,6 +454,7 @@
$cmd = ob_get_contents(); $cmd = ob_get_contents();
ob_clean(); ob_clean();
} }
}
return; return;
} }
......
...@@ -4,9 +4,19 @@ if(!defined('IN_GAME')) { ...@@ -4,9 +4,19 @@ if(!defined('IN_GAME')) {
exit('Access Denied'); exit('Access Denied');
} }
function move($moveto = 99) { function move($moveto = 99,&$data=NULL) {
global $lvl,$log,$pls,$pgroup,$plsinfo,$hplsinfo,$inf,$hp,$mhp,$sp,$def,$club,$arealist,$areanum,$hack,$areainfo,$gamestate,$pose,$weather; //global $lvl,$log,$pls,$pgroup,$plsinfo,$hplsinfo,$inf,$hp,$mhp,$sp,$def,$club,$arealist,$areanum,$hack,$areainfo,$gamestate,$pose,$weather;
global $gamestate,$gamecfg,$pdata; //global $gamestate,$gamecfg,$pdata;
global $log,$weather,$plsinfo,$hplsinfo,$arealist,$areanum,$hack,$areainfo,$gamestate,$gamecfg;
global $inf_move_sp,$infwords,$inf_move_hp;
if(!isset($data))
{
global $pdata;
$data = &$pdata;
}
extract($data,EXTR_REFS);
$plsnum = sizeof($plsinfo); $plsnum = sizeof($plsinfo);
...@@ -45,7 +55,7 @@ function move($moveto = 99) { ...@@ -45,7 +55,7 @@ function move($moveto = 99) {
//足部受伤,20;足球社,12;冻伤,30;正常,15;去gamecfg里改吧 //足部受伤,20;足球社,12;冻伤,30;正常,15;去gamecfg里改吧
$movesp = 15; $movesp = 15;
if ($inf) { if ($inf) {
global $inf_move_sp;
foreach ($inf_move_sp as $inf_ky => $sp_down) { foreach ($inf_move_sp as $inf_ky => $sp_down) {
if(strpos($inf,$inf_ky)!==false){$movesp+=$sp_down;} if(strpos($inf,$inf_ky)!==false){$movesp+=$sp_down;}
} }
...@@ -88,7 +98,7 @@ function move($moveto = 99) { ...@@ -88,7 +98,7 @@ function move($moveto = 99) {
$log .= "被<span class=\"blue\">冰雹</span>击中,生命减少了<span class=\"red\">$damage</span>点!<br>"; $log .= "被<span class=\"blue\">冰雹</span>击中,生命减少了<span class=\"red\">$damage</span>点!<br>";
if($hp <= 0 ) { if($hp <= 0 ) {
include_once GAME_ROOT.'./include/state.func.php'; include_once GAME_ROOT.'./include/state.func.php';
death('hsmove'); death('hsmove','',0,'',$data);
return; return;
// } else { // } else {
// $pls = $moveto; // $pls = $moveto;
...@@ -161,7 +171,6 @@ function move($moveto = 99) { ...@@ -161,7 +171,6 @@ function move($moveto = 99) {
if($inf){ if($inf){
global $infwords,$inf_move_hp;
foreach ($inf_move_hp as $inf_ky => $o_dmg) { foreach ($inf_move_hp as $inf_ky => $o_dmg) {
if(strpos($inf,$inf_ky)!==false){ if(strpos($inf,$inf_ky)!==false){
$damage = round($mhp * $o_dmg) + rand(0,15); $damage = round($mhp * $o_dmg) + rand(0,15);
...@@ -169,7 +178,7 @@ function move($moveto = 99) { ...@@ -169,7 +178,7 @@ function move($moveto = 99) {
$log .= "{$infwords[$inf_ky]}减少了<span class=\"red\">$damage</span>点生命!<br>"; $log .= "{$infwords[$inf_ky]}减少了<span class=\"red\">$damage</span>点生命!<br>";
if($hp <= 0 ){ if($hp <= 0 ){
include_once GAME_ROOT.'./include/state.func.php'; include_once GAME_ROOT.'./include/state.func.php';
death($inf_ky.'move'); death($inf_ky.'move','',0,'',$data);
return; return;
} }
} }
...@@ -187,15 +196,24 @@ function move($moveto = 99) { ...@@ -187,15 +196,24 @@ function move($moveto = 99) {
if($pose==3){$enemyrate -= 20;} if($pose==3){$enemyrate -= 20;}
elseif($pose==4){$enemyrate += 10;}*/ elseif($pose==4){$enemyrate += 10;}*/
include_once GAME_ROOT.'./include/game/revattr.func.php'; include_once GAME_ROOT.'./include/game/revattr.func.php';
$enemyrate = calc_meetman_rate($pdata); $enemyrate = calc_meetman_rate($data);
//echo "enemyrate = {$enemyrate}%"; //echo "enemyrate = {$enemyrate}%";
discover($enemyrate); discover($enemyrate,$data);
return; return;
} }
function search(){ function search(&$data=NULL){
global $pdata,$lvl,$log,$pls,$pgroup,$arealist,$areanum,$hack,$plsinfo,$hplsinfo,$club,$sp,$gamestate,$pose,$weather,$hp,$mhp,$def,$inf; //global $pdata,$lvl,$log,$pls,$pgroup,$arealist,$areanum,$hack,$plsinfo,$hplsinfo,$club,$sp,$gamestate,$pose,$weather,$hp,$mhp,$def,$inf;
global $log,$weather,$arealist,$areanum,$hack,$plsinfo,$hplsinfo,$gamestate;
global $inf_search_sp,$infwords,$inf_search_hp;
if(!isset($data))
{
global $pdata;
$data = &$pdata;
}
extract($data,EXTR_REFS);
if(!isset($plsinfo[$pls]) && isset($hplsinfo[$pgroup])) if(!isset($plsinfo[$pls]) && isset($hplsinfo[$pgroup]))
{ {
...@@ -214,7 +232,6 @@ function search(){ ...@@ -214,7 +232,6 @@ function search(){
//腕部受伤,20;冻伤:30;侦探社,12;正常,15;改到gamecfg //腕部受伤,20;冻伤:30;侦探社,12;正常,15;改到gamecfg
$schsp =15; $schsp =15;
if ($inf) { if ($inf) {
global $inf_search_sp;
foreach ($inf_search_sp as $inf_ky => $sp_down) { foreach ($inf_search_sp as $inf_ky => $sp_down) {
if(strpos($inf,$inf_ky)!==false){$schsp+=$sp_down;} if(strpos($inf,$inf_ky)!==false){$schsp+=$sp_down;}
} }
...@@ -255,7 +272,7 @@ function search(){ ...@@ -255,7 +272,7 @@ function search(){
$log .= "被<span class=\"blue\">冰雹</span>击中,生命减少了<span class=\"red\">$damage</span>点!<br>"; $log .= "被<span class=\"blue\">冰雹</span>击中,生命减少了<span class=\"red\">$damage</span>点!<br>";
if($hp <= 0 ) { if($hp <= 0 ) {
include_once GAME_ROOT.'./include/state.func.php'; include_once GAME_ROOT.'./include/state.func.php';
death('hsmove'); death('hsmove','',0,'',$data);
return; return;
// } else { // } else {
// $pls = $moveto; // $pls = $moveto;
...@@ -323,7 +340,6 @@ function search(){ ...@@ -323,7 +340,6 @@ function search(){
$sp -= $schsp; $sp -= $schsp;
$log .= "消耗<span class=\"yellow\">{$schsp}</span>点体力,你搜索着周围的一切。。。<br>"; $log .= "消耗<span class=\"yellow\">{$schsp}</span>点体力,你搜索着周围的一切。。。<br>";
if($inf){ if($inf){
global $infwords,$inf_search_hp;
foreach ($inf_search_hp as $inf_ky => $o_dmg) { foreach ($inf_search_hp as $inf_ky => $o_dmg) {
if(strpos($inf,$inf_ky)!==false){ if(strpos($inf,$inf_ky)!==false){
$damage = round($mhp * $o_dmg) + rand(0,10); $damage = round($mhp * $o_dmg) + rand(0,10);
...@@ -331,7 +347,7 @@ function search(){ ...@@ -331,7 +347,7 @@ function search(){
$log .= "{$infwords[$inf_ky]}减少了<span class=\"red\">$damage</span>点生命!<br>"; $log .= "{$infwords[$inf_ky]}减少了<span class=\"red\">$damage</span>点生命!<br>";
if($hp <= 0 ){ if($hp <= 0 ){
include_once GAME_ROOT.'./include/state.func.php'; include_once GAME_ROOT.'./include/state.func.php';
death($inf_ky.'move'); death($inf_ky.'move','',0,'',$data);
return; return;
} }
} }
...@@ -364,18 +380,32 @@ function search(){ ...@@ -364,18 +380,32 @@ function search(){
if($pose==3){$enemyrate -= 20;} if($pose==3){$enemyrate -= 20;}
elseif($pose==4){$enemyrate += 10;}*/ elseif($pose==4){$enemyrate += 10;}*/
include_once GAME_ROOT.'./include/game/revattr.func.php'; include_once GAME_ROOT.'./include/game/revattr.func.php';
$enemyrate = calc_meetman_rate($pdata); $enemyrate = calc_meetman_rate($data);
//echo "enemyrate = {$enemyrate}%"; //echo "enemyrate = {$enemyrate}%";
discover($enemyrate); discover($enemyrate,$data);
return; return;
} }
function discover($schmode = 0) { function discover($schmode = 0,&$data=NULL)
{
//global $pdata;
//global $art,$pls,$now,$log,$mode,$command,$cmd,$event_obbs,$weather,$pls,$club,$pose,$tactic,$inf,$item_obbs,$enemy_obbs,$trap_min_obbs,$trap_max_obbs,$bid,$db,$tablepre,$gamestate,$corpseprotect,$action,$skills,$rp,$aidata;
//global $clbpara,$gamecfg;
global $now,$log,$mode,$command,$cmd;
global $db,$tablepre,$gamestate,$aidata,$pls_bgm;
global $event_obbs,$item_obbs,$enemy_obbs,$trap_min_obbs,$trap_max_obbs,$corpseprotect;
if(!isset($data))
{
global $pdata; global $pdata;
global $art,$pls,$now,$log,$mode,$command,$cmd,$event_obbs,$weather,$pls,$club,$pose,$tactic,$inf,$item_obbs,$enemy_obbs,$trap_min_obbs,$trap_max_obbs,$bid,$db,$tablepre,$gamestate,$corpseprotect,$action,$skills,$rp,$aidata; $data = &$pdata;
global $clbpara,$gamecfg; }
extract($data,EXTR_REFS);
$event_dice = rand(0,99); $event_dice = rand(0,99);
if($data['pass'] == 'bot') $event_obbs = -1;
if(($event_dice < $event_obbs)||(($art!="Untainted Glory")&&($pls==34)&&($gamestate != 50))){ if(($event_dice < $event_obbs)||(($art!="Untainted Glory")&&($pls==34)&&($gamestate != 50))){
//echo "进入事件判定<br>"; //echo "进入事件判定<br>";
include_once GAME_ROOT.'./include/game/event.func.php'; include_once GAME_ROOT.'./include/game/event.func.php';
...@@ -389,7 +419,6 @@ function discover($schmode = 0) { ...@@ -389,7 +419,6 @@ function discover($schmode = 0) {
} }
# 判定移动、探索、事件后的BGM变化 # 判定移动、探索、事件后的BGM变化
global $pls_bgm;
if(array_key_exists($pls,$pls_bgm)) if(array_key_exists($pls,$pls_bgm))
{ {
$clbpara['pls_bgmbook'] = $pls_bgm[$pls]; $clbpara['pls_bgmbook'] = $pls_bgm[$pls];
...@@ -425,7 +454,7 @@ function discover($schmode = 0) { ...@@ -425,7 +454,7 @@ function discover($schmode = 0) {
//奇迹雷 //奇迹雷
$xtrpflag = $fstrp['itmk'] == 'TOc' ? true : false; $xtrpflag = $fstrp['itmk'] == 'TOc' ? true : false;
//计算 或不计算陷阱“触发率”: //计算 或不计算陷阱“触发率”:
$real_trap_obbs = $xtrpflag ? 100 : calc_real_trap_obbs($pdata,$trpnum); $real_trap_obbs = $xtrpflag ? 100 : calc_real_trap_obbs($data,$trpnum);
//echo "realtrapobbs = {$real_trap_obbs}<br>"; //echo "realtrapobbs = {$real_trap_obbs}<br>";
if($trap_dice < $real_trap_obbs) if($trap_dice < $real_trap_obbs)
{ {
...@@ -435,7 +464,7 @@ function discover($schmode = 0) { ...@@ -435,7 +464,7 @@ function discover($schmode = 0) {
$db->data_seek($trapresult,$itemno); $db->data_seek($trapresult,$itemno);
$fstrp = $db->fetch_array($trapresult); $fstrp = $db->fetch_array($trapresult);
} }
global $itm0,$itmk0,$itme0,$itms0,$itmsk0; //global $itm0,$itmk0,$itme0,$itms0,$itmsk0;
$itm0=$fstrp['itm']; $itm0=$fstrp['itm'];
$itmk0=$fstrp['itmk']; $itmk0=$fstrp['itmk'];
$itme0=$fstrp['itme']; $itme0=$fstrp['itme'];
...@@ -443,7 +472,7 @@ function discover($schmode = 0) { ...@@ -443,7 +472,7 @@ function discover($schmode = 0) {
$itmsk0=$fstrp['itmsk']; $itmsk0=$fstrp['itmsk'];
$tid = $fstrp['tid']; $tid = $fstrp['tid'];
$db->query("DELETE FROM {$tablepre}maptrap WHERE tid='$tid'"); $db->query("DELETE FROM {$tablepre}maptrap WHERE tid='$tid'");
itemfind(); itemfind($data);
return; return;
} }
/*if($xtrpflag){ /*if($xtrpflag){
...@@ -496,8 +525,9 @@ function discover($schmode = 0) { ...@@ -496,8 +525,9 @@ function discover($schmode = 0) {
if($mode_dice < $schmode) if($mode_dice < $schmode)
{ {
//echo "进入遇敌判定<br>"; //echo "进入遇敌判定<br>";
global $pid,$corpse_obbs,$teamID,$fog,$bid,$gamestate; //global $pid,$corpse_obbs,$teamID,$fog,$bid,$gamestate;
global $clbstatusa,$clbstatusb,$clbstatusc,$clbstatusd,$clbstatuse; //global $clbstatusa,$clbstatusb,$clbstatusc,$clbstatusd,$clbstatuse;
global $fog,$gamestate;
$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)){
...@@ -548,14 +578,14 @@ function discover($schmode = 0) { ...@@ -548,14 +578,14 @@ function discover($schmode = 0) {
else else
{ {
//直接略过决斗者 //直接略过决斗者
global $artk; //global $artk;
if ((!$edata['type'])&&($artk=='XX')&&(($edata['artk']!='XX')||($edata['art']!=$name))&&($gamestate<50)) continue; if ((!$edata['type'])&&($artk=='XX')&&(($edata['artk']!='XX')||($edata['art']!=$name))&&($gamestate<50)) continue;
if (($artk!='XX')&&($edata['artk']=='XX')&&($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']);
$hide_r = get_hide_r_rev($pdata,$edata); $hide_r = get_hide_r_rev($data,$edata);
$enemy_dice = diceroll(99); $enemy_dice = diceroll(99);
//echo "hide_r = {$hide_r} | find_obbs = {$find_obbs} | dice = {$enemy_dice}"; //echo "hide_r = {$hide_r} | find_obbs = {$find_obbs} | dice = {$enemy_dice}";
$meetman_flag = $enemy_dice<($find_obbs - $hide_r) ? 1 : -1; $meetman_flag = $enemy_dice<($find_obbs - $hide_r) ? 1 : -1;
...@@ -596,35 +626,41 @@ function discover($schmode = 0) { ...@@ -596,35 +626,41 @@ function discover($schmode = 0) {
//if ($active_r>96) $active_r=96; //if ($active_r>96) $active_r=96;
//include_once GAME_ROOT.'./include/game/dice.func.php'; //include_once GAME_ROOT.'./include/game/dice.func.php';
include_once GAME_ROOT.'./include/game/revbattle.func.php'; include_once GAME_ROOT.'./include/game/revbattle.func.php';
include_once GAME_ROOT.'./include/game/revcombat.func.php';
//刷新敌人时效性状态 //刷新敌人时效性状态
if(!empty($edata['clbpara']['lasttimes'])) $edata = check_skilllasttimes($edata); if(!empty($edata['clbpara']['lasttimes'])) $edata = check_skilllasttimes($edata);
//计算先攻概率 //计算先攻概率
$active_r = get_active_r_rev($pdata,$edata); $active_r = get_active_r_rev($data,$edata);
$bid = $edata['pid']; $bid = $edata['pid'];
$active_dice = diceroll(99); $active_dice = diceroll(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'; if($data['pass'] != 'bot')
#findenemy($edata); {
findenemy_rev($edata); findenemy_rev($edata);
}
else
{
echo "进入战斗!<br>";
rev_combat_prepare($data,$edata,1,'',0);
}
return; return;
} }
//挨打 //挨打
else else
{ {
if (CURSCRIPT == 'botservice') if($data['pass'] != 'bot')
{ {
echo "passive_battle=1\n";
echo "passive_w_name={$edata['name']}\n"; rev_combat_prepare($edata,$data,0);
echo "passive_w_type={$edata['type']}\n"; }
echo "passive_w_sNo={$edata['sNo']}\n"; else
{
rev_combat_prepare($edata,$data,0,'',0);
} }
#include_once GAME_ROOT.'./include/game/combat.func.php';
#combat(0);
include_once GAME_ROOT.'./include/game/revcombat.func.php';
rev_combat_prepare($edata,$pdata,0);
return; return;
} }
} }
...@@ -664,7 +700,7 @@ function discover($schmode = 0) { ...@@ -664,7 +700,7 @@ function discover($schmode = 0) {
$itemno = rand(0,$itemnum-1); $itemno = rand(0,$itemnum-1);
$db->data_seek($result,$itemno); $db->data_seek($result,$itemno);
$mi=$db->fetch_array($result); $mi=$db->fetch_array($result);
global $itm0,$itmk0,$itme0,$itms0,$itmsk0; //global $itm0,$itmk0,$itme0,$itms0,$itmsk0;
$itm0=$mi['itm']; $itm0=$mi['itm'];
$itmk0=$mi['itmk']; $itmk0=$mi['itmk'];
$itme0=$mi['itme']; $itme0=$mi['itme'];
...@@ -675,8 +711,15 @@ function discover($schmode = 0) { ...@@ -675,8 +711,15 @@ function discover($schmode = 0) {
if($itms0){ if($itms0){
include_once GAME_ROOT.'./include/game/itemmain.func.php'; include_once GAME_ROOT.'./include/game/itemmain.func.php';
if($data['pass'] == 'bot')
{
itemget($data);
}
else
{
itemfind(); itemfind();
return; return;
}
} else { } else {
$log .= "但是什么都没有发现。可能是因为道具有天然呆属性。<br>"; $log .= "但是什么都没有发现。可能是因为道具有天然呆属性。<br>";
} }
......
...@@ -6,10 +6,20 @@ if(!defined('IN_GAME')) { ...@@ -6,10 +6,20 @@ if(!defined('IN_GAME')) {
# TODO: NO GLOBAL # TODO: NO GLOBAL
# resources_1.php # resources_1.php
function get_equip_list() function get_equip_list($mode=0)
{ {
//装备列表 //装备列表
$equip_list = Array('wep','arb','arh','ara','arf','art'); $equip_list = Array('wep','arb','arh','ara','arf','art');
$equip_list2 = Array
(
'W' => 'wep',
'DB' => 'arb',
'DH' => 'arh',
'DA' => 'ara',
'DF' => 'arf',
'A' => 'art',
);
if($mode) return $equip_list2;
return $equip_list; return $equip_list;
} }
......
...@@ -4,9 +4,19 @@ if (! defined ( 'IN_GAME' )) { ...@@ -4,9 +4,19 @@ if (! defined ( 'IN_GAME' )) {
exit ( 'Access Denied' ); exit ( 'Access Denied' );
} }
function death($death, $kname = '', $ktype = 0, $annex = '') { function death($death, $kname = '', $ktype = 0, $annex = '',&$data=NULL)
global $now, $db, $tablepre, $alivenum, $deathnum, $name, $state, $deathtime, $type, $lvl, $bid, $killmsginfo, $typeinfo, $hp, $mhp, $wp, $wk, $wg, $wc, $wd, $wf, $sp, $msp, $club, $pls , $nick; {
global $weather; //global $name, $state, $deathtime, $type, $lvl, $bid, $hp, $mhp, $wp, $wk, $wg, $wc, $wd, $wf, $sp, $msp, $club, $pls , $nick;
global $now, $db, $tablepre, $alivenum, $deathnum, $killmsginfo, $typeinfo, $weather;
if(!isset($data))
{
global $pdata;
$data = &$pdata;
}
extract($data,EXTR_REFS);
if (! $death) { if (! $death) {
return; return;
} }
......
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