婆罗门
精华
|
战斗力 鹅
|
回帖 0
注册时间 2010-7-12
|
第一个问题是因为大逃杀的引擎在捡尸体方面没有死亡判定,所以只要任何人在地址栏里面注入“从尸体上捡东西”的代码,就能百发百中地捡取任何NPC/玩家的物品。
注入代码如下:
command.php?mode=corpse&command=[itm1|itm2|itm3|itm4|itm5|wep|ar*]&wid=尸体ID
(MODE POST)
这个的解决方法请在/include/game/itemmain.func.php这个文件中
$edata = $db->fetch_array($result); 这一行后面增加:
if($edata['hp']>0) {
$log .= "对方尚未死亡!<br>";
$mode = 'command';
return;
} elseif($edata['pls'] != $pls) {
$log .= "对方跟你不在同一个地图!<br>";
$mode = 'command';
return;
}
然后在前面
global $itm0,$itmk0,$itme0,$itms0,$itmsk0,$money;
请修改成:
global $itm0,$itmk0, http://bbs.265g.com/thread-182751-1-1.html1.数据库字段修改:/gamedata/players.sql 增加字段 eid,然后重新安装游戏以更新数据库结构
2.valid.php的修改:87行、90行,加入$eid初始值;
3.command.php的修改:59行,加入$eid判断;200行,使$eid更新
4.include/game/search.func.php的修改:116行,声明全局变量$eid;151行,为$eid赋值
5.include/game/combat.func.php的修改:9行,声明全局变量$eid;25行,加入$eid的判断;35、44、53、60、176行,在返回之前使$eid归零
//至此,追击BUG修改完成。
//其实还可以进一步把表单中的$wid删掉,直接用$eid代替,不过这个不是必须的,技术人员可以自己摸索。
6.include/game/battle.func.php的修改:78行,声明全局变量$eid;87行,加入$eid的判断;97、103、120、148、157行,在返回之前使$eid归零
//至此,送东西BUG修改完成。
7.include/game/itemmain.func.php的修改:399行,声明全局变量$eid;407行,加入$eid的判断;446、450、462行,在返回之前使$eid归零
//至此,摸尸体BUG修改完成。
提示一下,rar里的文件是基于原版的,如果技术人员嫌麻烦可以直接覆盖现有文件,不过必须重装游戏,否则出错。
也有不用修改数据库的方法,不过局限性很大,技术人员可以自己摸索。 http://bbs.265g.com/thread-627509-1-1.html |
|