00003 不思议迷宫.0009.7:一键采矿(钻石、金蛋等)
2017-03-11 11:37
316 查看
00003 不思议迷宫.0009.7:一键采矿(钻石、金蛋等)
矿有很多种,今天要说的是其中的钻石矿这种,也是就神龙许愿“我想要钻石”后进到夹层中,地上显示的那些需要点击99次(初次999次)的钻石矿。为了那么一点钻石,一顿狂点,手机屏幕不怕,那手也累啊,自动化它。
有游戏源码中,这种矿不叫“矿”,而是“矿山”。UIGrid中创建矿山的代码:
-- 创建矿山
function UIGrid:initMineHill()
local mineId = self.gridData.mine_id;
local pos = self.gridData:getPos();
local function onClicked(sender, eventType)
if eventType == ccui.TouchEventType.began then
--
不能采矿
if not MineHillM.canMining(pos) then
return;
end
--
更新建筑访问
self:updateBuildingVisit();
local mineId = self.gridData.mine_id;
if MineHillM.query(mineId, "type") == MINE_TYPE_EGG then
--
金蛋
if not self.gridData:canHit() then
alert(getLocStr("cannot_reach"));
return;
end
elseif #MineHillM.findEmptyPos() <= 0 then
--
如果没有空位了
alert(getLocStr("no_pos_for_mine"));
return;
end
--
采矿
DungeonActionM.go("mining_diamond", pos);
EventMgr.fire(event.PLAYER_MOVE, pos);
end
end
--
建筑图标
local iconPath = getLevelItemIconPath(MineHillM.query(mineId, "icon"));
self:myShowContent(iconPath);
self.icon = ccui.ImageView:create(iconPath);
self.icon:setTouchEnabled(true);
self.icon:addTouchEventListener(onClicked);
self.item:addChild(self.icon);
self.iconPath = iconPath;
--
剩余次数
self:redrawMineHillLeftTimes();
if MineHillM.query(mineId, "type") == MINE_TYPE_EGG then
--
金蛋先隐藏
self.icon:setVisible(false);
self.barNode:setVisible(false);
end
end
onClicked这个回调函数没有被保存,那我们就自己存一下。然后在UIDungeonMain构造中进行调用。
首先判断地牢中是否存在矿上,如果存在,就创建“自动采矿”按钮,设置其点击回调:
local function tiewen_hasMineHill()
for i=1,#self.grids do
local g = self.grids[i];
if g.tiewen_pickMineHillClick ~= nil then return true; end
end
return false;
end
local function tiewen_isUnminedMineHill(grid)
if grid.tiewen_pickMineHillClick == nil then return false; end
if not MineHillM.canMining(grid.index) then
return false;
end
local mineId = grid.gridData.mine_id;
if MineHillM.query(mineId, "type") == MINE_TYPE_EGG then
if not grid.gridData:canHit() then return false; end
elseif #MineHillM.findEmptyPos() <= 0 then return false; end
return true;
end
local function tiewen_hasUnminedMineHill()
for i=1,#self.grids do
local g = self.grids[i];
if tiewen_isUnminedMineHill(g) and g.icon:isVisible() then return true; end
end
return false;
end
local function tiewen_autoMiningMineHill()
for i=1,#self.grids do
local g = self.grids[i];
if tiewen_isUnminedMineHill(g) and g.icon:isVisible() then
g.tiewen_pickMineHillClick(nil, ccui.TouchEventType.began);
end
end
end
local function onMyButton_autoMiningMineHill(sender, eventType)
if eventType ~= ccui.TouchEventType.ended then return; end
local o = {};
o.timer = cc.Director:getInstance():getScheduler():scheduleScriptFunc(function ()
if tiewen_hasUnminedMineHill() then
tiewen_autoMiningMineHill()
else
cc.Director:getInstance():getScheduler():unscheduleScriptEntry(o.timer);
end
end, 0.05, false);
end
local ammh = nil;
if tiewen_hasMineHill() then
ammh = TieWen_UI.createButton(self, "自动采矿", onMyButton_autoMiningMineHill);
end
如有需要,可进群161355323下载补丁或安装程序。
矿有很多种,今天要说的是其中的钻石矿这种,也是就神龙许愿“我想要钻石”后进到夹层中,地上显示的那些需要点击99次(初次999次)的钻石矿。为了那么一点钻石,一顿狂点,手机屏幕不怕,那手也累啊,自动化它。
有游戏源码中,这种矿不叫“矿”,而是“矿山”。UIGrid中创建矿山的代码:
-- 创建矿山
function UIGrid:initMineHill()
local mineId = self.gridData.mine_id;
local pos = self.gridData:getPos();
local function onClicked(sender, eventType)
if eventType == ccui.TouchEventType.began then
--
不能采矿
if not MineHillM.canMining(pos) then
return;
end
--
更新建筑访问
self:updateBuildingVisit();
local mineId = self.gridData.mine_id;
if MineHillM.query(mineId, "type") == MINE_TYPE_EGG then
--
金蛋
if not self.gridData:canHit() then
alert(getLocStr("cannot_reach"));
return;
end
elseif #MineHillM.findEmptyPos() <= 0 then
--
如果没有空位了
alert(getLocStr("no_pos_for_mine"));
return;
end
--
采矿
DungeonActionM.go("mining_diamond", pos);
EventMgr.fire(event.PLAYER_MOVE, pos);
end
end
--
建筑图标
local iconPath = getLevelItemIconPath(MineHillM.query(mineId, "icon"));
self:myShowContent(iconPath);
self.icon = ccui.ImageView:create(iconPath);
self.icon:setTouchEnabled(true);
self.icon:addTouchEventListener(onClicked);
self.item:addChild(self.icon);
self.iconPath = iconPath;
--
剩余次数
self:redrawMineHillLeftTimes();
if MineHillM.query(mineId, "type") == MINE_TYPE_EGG then
--
金蛋先隐藏
self.icon:setVisible(false);
self.barNode:setVisible(false);
end
end
onClicked这个回调函数没有被保存,那我们就自己存一下。然后在UIDungeonMain构造中进行调用。
首先判断地牢中是否存在矿上,如果存在,就创建“自动采矿”按钮,设置其点击回调:
local function tiewen_hasMineHill()
for i=1,#self.grids do
local g = self.grids[i];
if g.tiewen_pickMineHillClick ~= nil then return true; end
end
return false;
end
local function tiewen_isUnminedMineHill(grid)
if grid.tiewen_pickMineHillClick == nil then return false; end
if not MineHillM.canMining(grid.index) then
return false;
end
local mineId = grid.gridData.mine_id;
if MineHillM.query(mineId, "type") == MINE_TYPE_EGG then
if not grid.gridData:canHit() then return false; end
elseif #MineHillM.findEmptyPos() <= 0 then return false; end
return true;
end
local function tiewen_hasUnminedMineHill()
for i=1,#self.grids do
local g = self.grids[i];
if tiewen_isUnminedMineHill(g) and g.icon:isVisible() then return true; end
end
return false;
end
local function tiewen_autoMiningMineHill()
for i=1,#self.grids do
local g = self.grids[i];
if tiewen_isUnminedMineHill(g) and g.icon:isVisible() then
g.tiewen_pickMineHillClick(nil, ccui.TouchEventType.began);
end
end
end
local function onMyButton_autoMiningMineHill(sender, eventType)
if eventType ~= ccui.TouchEventType.ended then return; end
local o = {};
o.timer = cc.Director:getInstance():getScheduler():scheduleScriptFunc(function ()
if tiewen_hasUnminedMineHill() then
tiewen_autoMiningMineHill()
else
cc.Director:getInstance():getScheduler():unscheduleScriptEntry(o.timer);
end
end, 0.05, false);
end
local ammh = nil;
if tiewen_hasMineHill() then
ammh = TieWen_UI.createButton(self, "自动采矿", onMyButton_autoMiningMineHill);
end
如有需要,可进群161355323下载补丁或安装程序。
相关文章推荐
- 00003 不思议迷宫.0009.6:一键翻开石板捡取物品
- 00003 不思议迷宫.0002:修改Lua,虽然实际上没什么卵用
- 00003 不思议迷宫.0004:客户端数据缓存
- 00003 不思议迷宫.0009.2.4:自动换装:在事件中实现自动换装
- 00003 不思议迷宫.0003:玩家数据真的就不能改了吗?
- 00003 不思议迷宫.0009.1:来,练个手:换肤
- 00003 不思议迷宫.0009.8:Bug之一
- 00003 不思议迷宫.0010.1.1:csb解析显示
- 00003 不思议迷宫.0009.2.2:自动换装:界面模拟
- 00003 不思议迷宫.0009.4:攻防计算
- 00003 不思议迷宫.0005:是数据同步吗?
- 00003 不思议迷宫.0011.2:Android新版中的Lua加密(下)
- 00003 不思议迷宫.0011:Android新版中的Lua加密
- 00003 不思议迷宫.0012:SB的雷霆运营
- 00003 不思议迷宫.0009.2.3:自动换装:回改到真实环境
- 00003 不思议迷宫.0009.5:炼金坊自动捡钱
- 00003 不思议迷宫.0006:客户端的操作如何反应到服务器?
- 00003 不思议迷宫.0010.1.1.2:csb解析显示
- 00003 不思议迷宫.0009.10:Bug之二:免称号锻造、升级装备,合成卷轴
- 00003 不思议迷宫.0009.9:命运之链