1 local UserDefault = cc.UserDefault:getInstance() 2 local cjson = require("cjson") 3 local PlayerInfo = require("src/app/views/PlayerInfo/PlayerInfo") 4 local TaskInfo = require("src/app/views/task/TaskInfo") 5 local BagAndStore = require("src/app/views/bag/BagAndStore") 6 local TaskQuickNoticeCfg = require("app/cfg/TaskQuickNoticeCfg") 7 8 SaveDataManager = require("src/app/util/SaveDataManager") 9 ScienceStudyCfg = require("src/app/cfg/ScienceStudyCfg") 10 11 cc.utils = require("framework.cc.utils.init") 12 cc.net = require("framework.cc.net.init") 13 cc.uiload = require("framework.cc.uiloader.uiloader") 14 local WorldScene = class("WorldScene", function() 15 return display.newScene("WorldScene") 16 end) 17 18 local openBtn = { 19 [1] = { normal = "pic/mainmap_right/btn/btn_up.png", down = "pic/mainmap_right/btn/btn_upPress.png" }, 20 [2] = { normal = "pic/mainmap_right/btn/btn_down.png", down = "pic/mainmap_right/btn/btn_downPress.png" }, 21 [3] = { normal = "pic/resources/resource_jiaoqu/btn_jiaoqu_02.png", down = "pic/resources/resource_jiaoqu/btn_jiaoqu_02.png" }, 22 [4] = { normal = "pic/resources/resource_jiaoqu/btn_jiaoqu_01.png", down = "pic/resources/resource_jiaoqu/btn_jiaoqu_01.png" }, 23 } 24 25 local Scheduler = cc.Director:getInstance():getScheduler() 26 27 g_SpeedUpFree = 3 28 --新手引导结束回调 29 NoviceGuide:registerGuideEnd(function() 30 31 if gWorldScene == nil then 32 return 33 end 34 35 gWorldScene:freshRBtn() 36 gWorldScene:freshQuick() 37 gWorldScene:getGametips() 38 gWorldScene:getAnnouncement() 39 40 gWorldScene:NoviceGuideWomenshow() 41 42 --if cc.UserDefault:getInstance():getIntegerForKey("firstGuanQia", 0) ~= 1 then 43 -- 44 -- --关卡动画显示 45 -- --列表 46 -- local list = gWorldScene.BottomUI:getChildByName("ListView_1") 47 -- local budui = list:getChildByName("Button_2") 48 -- --Animation:playAnimation2(budui,gUIeffect[6].effect,1) 49 -- local anim = Animation:playAnimation2(budui, gUIeffect[34].effect, 1) 50 -- if anim ~= nil then 51 -- local x, y = anim:getPosition() 52 -- anim:setPosition(cc.p(x, y + 5)) 53 -- end 54 -- 55 -- cc.UserDefault:getInstance():setIntegerForKey("firstGuanQia", 1) 56 --end 57 --if gWorldScene.FirstRechargeIcon then 58 -- gWorldScene.FirstRechargeIcon:playAnimation() 59 --end 60 -- 61 -- 62 --if gWorldScene.FixTimeFirstPayIcon and gWorldScene.FixTimeFirstPayIcon:isVisible() then 63 -- gWorldScene.FixTimeFirstPayIcon:playAnimation() 64 --end 65 -- 66 -- 67 --if gWorldScene.Gift_rmb3_Icon and gWorldScene.Gift_rmb3_Icon:isVisible() then 68 -- gWorldScene.Gift_rmb3_Icon:playAnimation() 69 --end 70 71 -- 弹出援军礼包 72 require("app/views/activity/FirstRechargePopout"):show(gWorldScene, true) 73 -- 弹出新手礼包 74 require("app/util/MainMapPopoutUtils"):checkNewPlayerPkg(gWorldScene) 75 -- 刷新大地图显示 76 app:dispatchEvent({name="freshResShow"}) 77 end) 78 -- 79 APP_ENTER_BACKGROUND_EVENT = "APP_ENTER_BACKGROUND_EVENT" 80 APP_ENTER_FOREGROUND_EVENT = "APP_ENTER_FOREGROUND_EVENT" 81 local eventDispatcher = cc.Director:getInstance():getEventDispatcher() 82 --local customListenerBg = cc.EventListenerCustom:create(APP_ENTER_BACKGROUND_EVENT, 83 -- handler(self, self.onEnterBackground)) 84 --eventDispatcher:addEventListenerWithFixedPriority(customListenerBg, 1) 85 local customListenerFg = cc.EventListenerCustom:create(APP_ENTER_FOREGROUND_EVENT, 86 function() 87 -- NodeTranslator:deltaDo(0.1, 88 -- function() 89 -- if gWorldScene ~= nil then 90 -- gWorldScene:BaseQuest() 91 -- end 92 -- end 93 -- ) 94 95 96 end) 97 eventDispatcher:addEventListenerWithFixedPriority(customListenerFg, 1) 98 99 BuildId2Button = { 100 [1] = "Button_9", 101 [2] = "Button_16", 102 [3] = "Button_15", 103 [4] = "Button_11", 104 [5] = "Button_12", 105 [6] = "Button_1", 106 [7] = "Button_3", 107 [8] = "Button_5", 108 [9] = "Button_6", 109 [10] = "Button_7", 110 [11] = "Button_14", 111 [12] = "Button_4", 112 [13] = "Button_10", 113 } 114 115 NUM_OF_TANK_IN_BASE = 28 --在主基地中的坦克边界 116 117 tankId2Button = { 118 "Button_Tank_1", 119 "Button_Tank_2", 120 "Button_Tank_3", 121 "Button_Tank_4", 122 "Button_Tank_5", 123 "Button_Tank_6", 124 "Button_Tank_7", 125 "Button_Tank_8", 126 "Button_Tank_9", 127 "Button_Tank_10", 128 "Button_Tank_11", 129 "Button_Tank_12", 130 "Button_Tank_13", 131 "Button_Tank_14", 132 "Button_Tank_15", 133 "Button_Tank_16", 134 "Button_Tank_17", 135 "Button_Tank_18", 136 "Button_Tank_19", 137 "Button_Tank_20", 138 "Button_Tank_21", 139 "Button_Tank_22", 140 "Button_Tank_23", 141 "Button_Tank_24", 142 "Button_Tank_25", 143 "Button_Tank_26", 144 "Button_Tank_27", 145 "Button_Tank_28", 146 } 147 148 tankId2Node = { 149 [29] = "icon_tank_01", 150 [30] = "icon_destory_01", 151 [31] = "icon_hunter_01", 152 [32] = "icon_rocket_01", 153 [33] = "icon_tank_02", 154 [34] = "icon_destory_02", 155 [35] = "icon_hunter_02", 156 [36] = "icon_rocket_02", 157 [37] = "icon_tank_03", 158 [38] = "icon_destory_03", 159 [39] = "icon_hunter_03", 160 [40] = "icon_rocket_03", 161 [41] = "icon_tank_04", 162 [42] = "icon_destory_04", 163 [43] = "icon_hunter_04", 164 [44] = "icon_rocket_04", 165 [45] = "icon_tank_05", 166 [46] = "icon_destory_05", 167 [47] = "icon_hunter_05", 168 [48] = "icon_rocket_05", 169 [49] = "icon_tank_06", 170 [50] = "icon_destory_06", 171 [51] = "icon_hunter_06", 172 [52] = "icon_rocket_06", 173 [53] = "icon_tank_07", 174 [54] = "icon_destory_07", 175 [55] = "icon_hunter_07", 176 [56] = "icon_rocket_07", 177 [57] = "icon_tank_08", 178 [58] = "icon_destory_08", 179 [59] = "icon_hunter_08", 180 [60] = "icon_rocket_08", 181 } 182 183 --界面动画 184 185 --向右上飞 186 local rightup = { gUIeffect[11].effect, gUIeffect[11].effect, gUIeffect[14].effect, gUIeffect[16].effect, gUIeffect[18].effect } 187 188 local leftdown = { gUIeffect[10].effect, gUIeffect[12].effect, gUIeffect[15].effect, gUIeffect[17].effect, gUIeffect[19].effect } 189 190 -- 23,24 为坦克 191 -- 16 为飞机 11 鸟 192 local flyId = { 11, 16, 23, 24 } 193 flyId = { } 194 195 local animIndex = 0 196 197 function WorldScene:dofeijianimation() 198 -- 飞机动画暂时屏蔽 199 --NodeTranslator:deltaDo(60, function() 200 -- if gWorldScene == nil then 201 -- return 202 -- end 203 -- 204 -- if gWorldScene.feijidonghua ~= nil then 205 -- gWorldScene.BaseBg:getChildByName("ScrollView_1"):getChildByName("homeMap_mi"):removeChild(gWorldScene.feijidonghua) 206 -- end 207 -- 208 -- gWorldScene.feijidonghua = Animation:createAnimation(gUIeffect[12].effect) 209 -- gWorldScene.feijidonghua:setScale(4.52) 210 -- gWorldScene.feijidonghua:setName(gUIeffect[12].effect) 211 -- gWorldScene.BaseBg:getChildByName("ScrollView_1"):getChildByName("homeMap_mi"):addChild(gWorldScene.feijidonghua, 1000) 212 -- gWorldScene:dofeijianimation() 213 --end) 214 end 215 216 function WorldScene:doAnimation() 217 if math.random(0, 2) == 1 then 218 animIndex = animIndex + 1 219 --local t = math.random(1,6) 220 local len = #flyId 221 if len == 0 then 222 return 223 end 224 225 local t = animIndex % len + 1 226 227 local anim = Animation:createAnimation(gUIeffect[flyId[t]].effect) 228 if flyId[t] == 14 or flyId[t] == 18 then 229 --吉普车和卡车 230 -- anim:setPosition( cc.p(0,788)) 231 -- self.BaseBg:getChildByName("ScrollView_1"):getChildByName("homeMap_mi"):addChild(anim,0) 232 -- local time = 20 233 -- local action1 = cc.MoveTo:create(time,cc.p(810,1195)) 234 -- local action = cc.Sequence:create(action1,cc.CallFunc:create(function() 235 -- anim:removeFromParent() 236 -- end)) 237 -- anim:runAction(action) 238 elseif flyId[t] == 23 then 239 --卡车3 240 anim:setPosition( cc.p(1298, 364)) 241 self.BaseBg:getChildByName("ScrollView_1"):getChildByName("homeMap_mi"):getChildByName("Node_2"):addChild(anim, 0) 242 local time = 20 243 local action1 = cc.MoveTo:create(time, cc.p(0, 1016)) 244 local action = cc.Sequence:create(action1, cc.CallFunc:create(function() 245 anim:removeFromParent() 246 end)) 247 anim:runAction(action) 248 249 250 elseif flyId[t] == 24 then 251 --卡车4 252 anim:setPosition( cc.p(0, 1000)) 253 self.BaseBg:getChildByName("ScrollView_1"):getChildByName("homeMap_mi"):getChildByName("Node_2"):addChild(anim, 2) 254 local time = 20 255 local action1 = cc.MoveTo:create(time, cc.p(1298, 348)) 256 local action = cc.Sequence:create(action1, cc.CallFunc:create(function() 257 anim:removeFromParent() 258 end)) 259 anim:runAction(action) 260 else 261 anim:setPosition( cc.p(0, math.random(100, 1000))) 262 self.BaseBg:getChildByName("ScrollView_1"):getChildByName("homeMap_mi"):addChild(anim, 100) 263 local time = 20 264 if flyId[t] == 16 then 265 time = 5 266 end 267 local action1 = cc.MoveBy:create(time, cc.p(1200, 580)) 268 local action = cc.Sequence:create(action1, cc.CallFunc:create(function() 269 anim:removeFromParent() 270 end)) 271 anim:runAction(action) 272 end 273 274 275 276 -- --吉普车和卡车 277 -- if t == 3 or t == 5 then 278 -- anim:setPosition( cc.p(0,788)) 279 -- self.BaseBg:getChildByName("ScrollView_1"):getChildByName("homeMap_mi"):addChild(anim,50) 280 -- else 281 -- anim:setPosition( cc.p(0,math.random(100,1000))) 282 -- self.BaseBg:getChildByName("ScrollView_1"):getChildByName("homeMap_mi"):addChild(anim,150) 283 -- end 284 -- --飞机 285 -- local time = 20 286 -- if t == 2 or t == 4 then 287 -- time = 5 288 -- end 289 -- 290 -- local action1 = cc.MoveBy:create(time,cc.p(1200,580)) 291 -- local action = cc.Sequence:create(action1,cc.CallFunc:create(function() 292 -- anim:removeFromParent() 293 -- end)) 294 -- anim:runAction(action) 295 296 end 297 end 298 299 300 function WorldScene:BuildIdAndDbId2Button(buildId, dbid) 301 local btnKey = BuildId2Button[buildId] 302 303 304 if type(btnKey) == "table" then 305 local b1 = BuildId2Button[dbid + 1000] 306 if b1 == nil then 307 BuildId2Button[dbid + 1000] = btnKey[1] 308 table.remove(btnKey, 1) 309 end 310 311 btnKey = BuildId2Button[dbid + 1000] 312 end 313 314 return btnKey 315 end 316 317 gWorldScene = nil 318 319 function WorldScene:initMapScale() 320 if true then 321 return 322 end 323 324 local map = self.BaseBg:getChildByName("ScrollView_1"):getChildByName("homeMap_mi") 325 self.twoTouchLayer = cc.Layer:create() 326 self:addChild(self.twoTouchLayer, 5) 327 328 329 function onTouchesBegan(touches, event) 330 if #touches > 1 then 331 332 map._touchPoint = (map:convertTouchToNodeSpace(_touches[0]):getMidpoint( 333 map:convertTouchToNodeSpace(_touches[1]))); 334 map._touchLength = map:convertTouchToNodeSpace(_touches[0]):getDistance( 335 map:convertTouchToNodeSpace(_touches[1])); 336 print("-----onTouchesBegan11-------x:" .. _touches[0]:getLocation().x .. "y:" .. _touches[0]:getLocation().y) 337 print("-----onTouchesBegan22-------x:" .. _touches[1]:getLocation().x .. "y:" .. _touches[1]:getLocation().y) 338 -- map._touchLength = _container->convertTouchToNodeSpace(_touches[0]).getDistance( 339 -- _container->convertTouchToNodeSpace(_touches[1])); 340 341 end 342 end 343 344 function onTouchesMoved(touches, event) 345 346 if true then 347 348 if #touches > 1 then 349 local point1 = touches[1]:getLocation() 350 local point2 = touches[2]:getLocation() 351 352 local currDistance = math.ceil(cc.pGetDistance(point1, point2)) 353 354 print("-----onTouchesBegan11-------x:" .. _touches[0]:getLocation().x .. "y:" .. _touches[0]:getLocation().y) 355 print("-----onTouchesBegan22-------x:" .. _touches[1]:getLocation().x .. "y:" .. _touches[1]:getLocation().y) 356 end 357 end 358 end 359 360 function onTouchesEnded(touches, event) 361 362 end 363 364 function onTouchesCancelled(touches, event) 365 366 end 367 368 local listener = cc.EventListenerTouchAllAtOnce:create() 369 listener:registerScriptHandler(onTouchesBegan, cc.Handler.EVENT_TOUCHES_BEGAN ) 370 listener:registerScriptHandler(onTouchesMoved, cc.Handler.EVENT_TOUCHES_MOVED ) 371 listener:registerScriptHandler(onTouchesEnded, cc.Handler.EVENT_TOUCHES_ENDED) 372 listener:registerScriptHandler(onTouchesCancelled, cc.Handler.EVENT_TOUCHES_CANCELLED ) 373 local eventDispatcher = self:getEventDispatcher() 374 eventDispatcher:addEventListenerWithSceneGraphPriority(listener, self.twoTouchLayer) 375 listener:setSwallowTouches(false) 376 377 local listener = cc.EventListenerTouchOneByOne:create() 378 self.twoTouchLayer = cc.Layer:create() 379 self:addChild(self.twoTouchLayer, 5) 380 self.twoTouchLayer.touches = {} 381 function onTouchesBegan(touches, event) 382 print("-------------onTouchesBegan----------------") 383 --table.insert(self.twoTouchLayer.touches,1,touches) 384 self.twoTouchLayer.touches[touches] = 1 385 386 387 return true 388 end 389 390 function onTouchesMoved(touches, event) 391 --table.insert(self.twoTouchLayer.touches,1,touches) 392 self.twoTouchLayer.touches[touches] = 1 393 print("-------------onTouchesMoved---fdsa-------------") 394 395 function getnum() 396 local num = 0 397 for key, var in pairs(self.twoTouchLayer.touches) do 398 num = num + 1 399 end 400 print("----------num:" .. num) 401 return num 402 end 403 404 if getnum() == 2 then 405 --if true then 406 listener:setSwallowTouches(true) 407 print("----------two touch") 408 for key, var in pairs(self.twoTouchLayer.touches) do 409 local p = key:getLocation(); 410 p = self.twoTouchLayer:convertToNodeSpace(p); 411 print("--x:" .. p.x .. "--y:" .. p.y) 412 end 413 end 414 415 return true 416 end 417 418 function onTouchesEnded(touches, event) 419 -- for key, var in pairs(self.twoTouchLayer.touches) do 420 -- if var == touches then 421 -- table.remove(table,key) 422 -- end 423 -- end 424 self.twoTouchLayer.touches[touches] = nil 425 print("-------------onTouchesEnded----------------") 426 listener:setSwallowTouches(false) 427 return true 428 429 end 430 431 function onTouchesCancelled(touches, event) 432 print("-------------onTouchesCancelled----------------") 433 return true 434 end 435 436 437 listener:registerScriptHandler(onTouchesBegan, cc.Handler.EVENT_TOUCH_BEGAN ) 438 listener:registerScriptHandler(onTouchesMoved, cc.Handler.EVENT_TOUCH_MOVED ) 439 listener:registerScriptHandler(onTouchesEnded, cc.Handler.EVENT_TOUCH_ENDED) 440 listener:registerScriptHandler(onTouchesCancelled, cc.Handler.EVENT_TOUCH_CANCELLED ) 441 local eventDispatcher = self:getEventDispatcher() 442 eventDispatcher:addEventListenerWithSceneGraphPriority(listener, self.twoTouchLayer) 443 end 444 445 446 gTaskNoticeInfo = nil 447 --显示任务快捷提示 448 function WorldScene:taskQuickNotice() 449 gTaskNoticeInfo = nil 450 local pd = PlayerData:getInstanse() 451 452 local getProgressFunc = { 453 [1] = function() 454 return pd:getBaseBuildLv(1) 455 end, 456 [2] = function() 457 return math.max(pd:getBaseBuildLv(2), pd:getBaseBuildLv(3)) 458 end, 459 [3] = function() 460 return pd:getBaseBuildLv(5) 461 end, 462 [4] = function() 463 return math.max(pd:getBaseBuildLv(6), pd:getBaseBuildLv(7)) 464 end, 465 [7] = function() 466 return pd:getBaseBuildLv(10) 467 end, 468 [8] = function() 469 return pd:getBaseBuildLv(11) 470 end, 471 [9] = function() 472 local data = pd:getResBuildMaxLvData(14) 473 return (data and data.buildLv) or 0 474 end, 475 [10] = function() 476 local data = pd:getResBuildMaxLvData(15) 477 return (data and data.buildLv) or 0 478 end, 479 [11] = function() 480 local data = pd:getResBuildMaxLvData(16) 481 return (data and data.buildLv) or 0 482 end, 483 [12] = function() 484 local data = pd:getResBuildMaxLvData(17) 485 return (data and data.buildLv) or 0 486 end, 487 [14] = function() 488 return pd:getBuildNumById(14) 489 end, 490 [15] = function() 491 return pd:getBuildNumById(15) 492 end, 493 [16] = function() 494 return pd:getBuildNumById(16) 495 end, 496 [17] = function() 497 return pd:getBuildNumById(17) 498 end, 499 [20] = function() 500 return pd.basicData.commandLv 501 end, 502 [21] = function() 503 return pd.basicData.warLv 504 end, 505 } 506 507 local function UpdateTaskNotice(dt) 508 if gTaskNoticeInfo == nil then 509 return 510 end 511 local taskvo = gTaskNoticeInfo 512 --handle daily task 513 if taskvo.taskId == nil and taskvo.id ~= nil then 514 local taskInfo = gDailyTask[taskvo.id] 515 self.TaskQuickNotice:setVisible(true) 516 local panel = self.TaskQuickNotice:getChildByName("Panel_bg") 517 -- 检查状态是否改变,不改变的情况,只修改未完成任务的进度 518 local stateChanged = false 519 if taskvo.LastState == nil or taskvo.LastState ~= taskvo.state then 520 stateChanged = true 521 taskvo.LastState = taskvo.state 522 end 523 local name = gDailyTask[taskvo.id].name 524 local types = gDailyTask[taskvo.id].type 525 panel:getChildByName("Text"):setString(StringRes[name].."("..taskvo.count.."/"..taskvo.allCount..")") 526 527 --任务未完成 528 if taskvo.state == 0 then 529 Common:changePic(panel:getChildByName("Icon"), "pic/mission/btn/mission_tips_icon_1.png") 530 Common:setBtnTouchEnable(panel, true) 531 panel:addTouchEventListener( function(e, t) 532 if t == ccui.TouchEventType.ended then 533 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 534 TaskInfo:StaticGotoHere(taskInfo) 535 --更新任务 536 Connect:sendMsg("TaskAction", "refreshPushTask", nil, function(data) 537 local i = 0; 538 dump(data) 539 end , false) 540 end 541 end ) 542 end 543 544 --任务完成则直接领取 545 if taskvo.state == 1 and stateChanged then 546 --完成 547 Common:changePic(panel:getChildByName("Icon"), "pic/mission/btn/mission_tips_icon_4.png") 548 local TaskName 549 550 --更新获取状态 551 Common:setBtnTouchEnable(panel, true) 552 panel:addTouchEventListener(function(e, t) 553 if t == ccui.TouchEventType.ended then MyAudio:PlayEffect(MusicAndEffect.btnEffect) 554 local msg = {taskId = taskvo.id} 555 Common:setBtnTouchEnable(panel, false) 556 print("---"..taskvo.id) 557 Connect:sendMsg("TaskAction", "getTaskDailyReward", msg, 558 function(data) 559 local pd = PlayerData:getInstanse() 560 -- 更新数据 561 -- Yangjie 更换统一接口 2016-11-2 562 pd:setBasicData(data.playerInfoVO) 563 -- pd.basicData = data.playerInfoVO 564 -- Yangjie end 565 if pd.task then 566 pd.task.taskDailyShowVOs = data.taskDailyShowVOs 567 end 568 --var.state = 2 569 --self:freshDayTask() 570 --FlyWordPrompt:prompt(TaskInfo:getLittleDayNotice(data.taskId)) 571 end , true) 572 --TaskInfo:StaticGotoHere(gTask[taskvo.id]) 573 --self:TaskQuest() 574 575 local Animation = cc.CSLoader:createTimeline("res/csd/mission_tips.csb") 576 panel:runAction(Animation) 577 Animation:gotoFrameAndPlay(0, false) 578 end 579 end) 580 end 581 return 582 end 583 local taskInfo = gTask[taskvo.taskId] 584 --local dataCfg = TaskQuickNoticeCfg[taskvo.type*100 + taskvo.stype] 585 586 --if dataCfg then 587 self.TaskQuickNotice:setVisible(true) 588 589 local panel = self.TaskQuickNotice:getChildByName("Panel_bg") 590 591 592 --检查状态是否改变,不改变的情况,只修改未完成任务的进度 593 local stateChanged = false 594 if taskvo.LastState == nil or taskvo.LastState ~= taskvo.state then 595 stateChanged = true 596 taskvo.LastState = taskvo.state 597 598 --更换图标 599 --Common:changePic(panel:getChildByName("Icon"), dataCfg.icon) 600 end 601 602 if taskvo.state == 0 then 603 604 local TaskProgress = "" 605 if taskvo.type == 1 and taskvo.stype == 13 then 606 --生产坦克,客户端无法自行维护进度信息 607 local num = StringTemp:Split(taskInfo.cond,":") 608 num = tonumber( num[3]) 609 local tankName = StringTemp:strtoTable(taskInfo.cond) 610 TaskProgress = string.format( StringRes[taskInfo.name],StringRes[Tank[tankName.id].name])..string.format(" (%d/%d)", taskvo.tankcount, num) 611 elseif taskvo.type == 2 and (taskvo.stype == 18 or taskvo.stype == 19)then 612 --挑战关卡,攻击资源点,进度显示未完成 613 TaskProgress = StringRes[taskInfo.name].." ("..StringRes.task_unfinish..")" 614 elseif taskvo.type == 1 or taskvo.type == 2 then 615 local num = StringTemp:Split(taskInfo.cond,":") 616 num = tonumber( num[2]) 617 618 local progress = 0 619 if getProgressFunc[taskvo.stype] then 620 progress = getProgressFunc[taskvo.stype]() 621 end 622 623 if progress < num then 624 TaskProgress = StringRes[taskInfo.name]..string.format(" (%d/%d)", progress, num) 625 else 626 --任务完成 627 taskvo.state = 1 628 stateChanged = true 629 taskvo.LastState = taskvo.state 630 end 631 end 632 633 --更新任务进度 634 panel:getChildByName("Text"):setString(TaskProgress) 635 636 if taskvo.state == 0 and stateChanged then 637 --未完成 638 Common:changePic(panel:getChildByName("Icon"), "pic/mission/btn/mission_tips_icon_1.png") 639 640 Common:setBtnTouchEnable(panel, true) 641 panel:addTouchEventListener(function(e, t) 642 if t == ccui.TouchEventType.ended then MyAudio:PlayEffect(MusicAndEffect.btnEffect) 643 TaskInfo:StaticGotoHere(taskInfo) 644 Connect:sendMsg("TaskAction", "refreshPushTask", nil, function(data) 645 --local i = 0; 646 --dump(data) 647 end , false) 648 end 649 end) 650 end 651 end 652 653 if taskvo.state == 1 and stateChanged then 654 if pd.getGametipsVO then 655 pd.getGametipsVO.taskTips = 1 656 gWorldScene:freshGametips() 657 else 658 gWorldScene:getGametips() 659 end 660 661 --完成 662 Common:changePic(panel:getChildByName("Icon"), "pic/mission/btn/mission_tips_icon_4.png") 663 664 665 666 local TaskName 667 --坦克名字 668 local tankName = StringTemp:strtoTable(taskInfo.cond) 669 if tankName.id ~= nil then 670 TaskName = string.format( StringRes[taskInfo.name],StringRes[Tank[tankName.id].name]) 671 else 672 TaskName = StringRes[taskInfo.name] 673 end 674 675 --资源数量 676 if taskInfo.type == 3 then 677 local nums = StringTemp:Split(taskInfo.cond,":") 678 nums = tonumber( nums[2]) 679 panel:getChildByName("Text"):setString(string.format(TaskName,nums)) 680 else 681 panel:getChildByName("Text"):setString(TaskName) 682 end 683 684 Common:setBtnTouchEnable(panel, true) 685 panel:addTouchEventListener(function(e, t) 686 if t == ccui.TouchEventType.ended then MyAudio:PlayEffect(MusicAndEffect.btnEffect) 687 local msg = {taskId = taskvo.taskId} 688 Common:setBtnTouchEnable(panel, false) 689 Connect:sendMsg("TaskAction","getTaskReward",msg, 690 function(data) 691 --更新数据 692 --Yangjie 更换统一接口 2016-11-2 693 PlayerData:getInstanse():setBasicData(data.playerInfoVO) 694 --pd.basicData = data.playerInfoVO 695 --Yangjie end 696 697 FlyWordPrompt:prompt(TaskInfo:getNotice(taskvo.taskId)) 698 --gWorldScene:getGametips() 699 if pd.getGametipsVO then 700 local num = 0 701 local List = { 702 data.openTaskItemVO.playerTasks, 703 data.openTaskItemVO.buildingTasks, 704 data.openTaskItemVO.resourceTasks, 705 data.openTaskItemVO.task1DailyVOs, 706 data.openTaskItemVO.task2DailyVOs, 707 data.openTaskItemVO.task3DailyVOs, 708 data.openTaskItemVO.task4DailyVOs, 709 } 710 for i=1, #List do 711 local tasklist = List[i] 712 for __, var in pairs(tasklist) do 713 if var and var.state == 1 then 714 num = num + 1 715 end 716 end 717 end 718 pd.getGametipsVO.taskTips = num 719 gWorldScene:freshGametips() 720 else 721 gWorldScene:getGametips() 722 end 723 end, true) 724 --TaskInfo:StaticGotoHere(gTask[taskvo.taskId]) 725 --self:TaskQuest() 726 727 local Animation = cc.CSLoader:createTimeline("res/csd/mission_tips.csb") 728 panel:runAction(Animation) 729 Animation:gotoFrameAndPlay(0, false) 730 end 731 end) 732 end 733 --else 734 -- self.TaskQuickNotice:setVisible(false) 735 -- gTaskNoticeInfo = nil 736 --end 737 end 738 self.TaskQuickNotice.updateId = Scheduler:scheduleScriptFunc(UpdateTaskNotice, 1.0, false) 739 local function onNodeEvent(tag) 740 if tag == "exit" and self.TaskQuickNotice.updateId then 741 Scheduler:unscheduleScriptEntry(self.TaskQuickNotice.updateId) 742 end 743 end 744 self.TaskQuickNotice:registerScriptHandler(onNodeEvent) 745 746 local function registertaskQuickNotice() 747 Connect:register("notifyTaskState", function(data) 748 749 if not cc.UserDefault:getInstance():getBoolForKey("mainlinenotice") or not data then 750 self.TaskQuickNotice:setVisible(false) 751 gTaskNoticeInfo = nil 752 return 753 end 754 gTaskNoticeInfo = data 755 UpdateTaskNotice() 756 757 758 --[[ yangjie 2017-6-13 制作新手中期引导,修改任务提示功能,屏蔽原有的任务提示功能代码 759 local bg = self.TaskQuickNotice:getChildByName("panel_bg"):getChildByName("panel_detail") 760 761 762 local taskvo = data 763 --未完成 764 if taskvo.state == 0 then 765 bg:getChildByName("panel_outline"):setVisible(false) 766 bg:getChildByName("icon_task_complete"):setVisible(false) 767 bg:getChildByName("icon_task_problem"):setVisible(true) 768 769 self.TaskQuickNotice:getChildByName("panel_bg"):addTouchEventListener(function(e, t) 770 if t == ccui.TouchEventType.ended then MyAudio:PlayEffect(MusicAndEffect.btnEffect) 771 TaskInfo:StaticGotoHere(gTask[taskvo.taskId]) 772 end 773 end) 774 --完成 775 elseif taskvo.state == 1 then 776 bg:getChildByName("panel_outline"):setVisible(true) 777 bg:getChildByName("icon_task_complete"):setVisible(true) 778 bg:getChildByName("icon_task_problem"):setVisible(false) 779 780 781 self.TaskQuickNotice:getChildByName("panel_bg"):addTouchEventListener(function(e, t) 782 if t == ccui.TouchEventType.ended then MyAudio:PlayEffect(MusicAndEffect.btnEffect) 783 -- local msg = {taskId = taskvo.taskId} 784 -- Connect:sendMsg("TaskAction","getTaskReward",msg, 785 -- function(data) 786 -- local pd = PlayerData:getInstanse() 787 -- --更新数据 788 -- pd.basicData = data.playerInfoVO 789 -- FlyWordPrompt:prompt(TaskInfo:getNotice(taskvo.taskId)) 790 -- end) 791 --TaskInfo:StaticGotoHere(gTask[taskvo.taskId]) 792 self:TaskQuest() 793 end 794 end) 795 796 end 797 --名字 798 bg:getChildByName("text_mission"):setString( StringRes[gTask[taskvo.taskId].name]) 799 800 local action1 = cc.DelayTime:create(8) 801 local action = cc.Sequence:create(action1,cc.CallFunc:create(function() 802 self.TaskQuickNotice:setVisible(false) 803 end)) 804 self.TaskQuickNotice:stopAllActions() 805 self.TaskQuickNotice:runAction(action) 806 --]] 807 808 end) 809 end 810 registertaskQuickNotice() 811 812 end 813 814 815 816 function WorldScene:setChildVisible(visible) 817 print("--------------" .. tostring(visible)) 818 self.isPauseUpdate = not visible 819 820 self.Feild:setVisible(visible) 821 self.BaseBg:setVisible(visible) 822 self.OutSideBg:setVisible(visible) 823 824 if self.BgPage == 1 then 825 self.topUI:setVisible(visible) 826 self.MiddleUI:setVisible(visible) 827 self.BottomUI:setVisible(visible) 828 end 829 end 830 831 832 function WorldScene:ctor() 833 Common:initBackKey(self) 834 gWorldScene = self 835 -- 只显示一次的红点记录 836 self.RPOnce = {} 837 838 839 self.TaskQuickNotice = CCUILoader:load("res/csd/mission_tips.csb") --res/csd/mission/layer_popout_mission_complete.csb") 840 self.TaskQuickNotice:setVisible(false) 841 842 local pd = PlayerData:getInstanse() 843 self.topUI = cc.uiload:load("res/csd/PlayerTopUi.csb") 844 self.MiddleUI = cc.uiload:load("res/csd/PlayerMiddleUi.csb") 845 self.BottomUI = cc.uiload:load("res/csd/PlayerBottomUi.csb") 846 self:RefreshActivityIcon() 847 848 self.BaseBg = cc.uiload:load("res/csd/LayerBaseBG.csb") 849 require("src/app/unit/Airborne"):init() 850 851 --self.OutSideBg = cc.uiload:load("res/csd/LayerOutsideBG.csb") 852 self.OutSideBg = self.BaseBg:getChildByName("ScrollView_1"):getChildByName("homeMap_mi"):getChildByName("WorldOutSide") 853 854 self.Feild = Field.new() 855 self:addChild(self.Feild) 856 self:addChild(self.BaseBg) 857 --self:addChild(self.OutSideBg) 858 --self.OutSideBg:setVisible(false) 859 self:addChild(self.topUI) 860 self:addChild(self.MiddleUI) 861 self:addChild(self.BottomUI) 862 self:addChild(self.TaskQuickNotice) 863 self.Feild:setVisible(false) 864 865 -- 矿产数量 866 self.BtnOutSide = self.MiddleUI:getChildByName("Image_20") 867 self.BtnOutSide.BtnOutSide_Switch = self.BtnOutSide:getChildByName("Button_41") 868 self.BtnOutSide.startPos = cc.p(self.BtnOutSide:getPosition()) 869 local width = self.BtnOutSide:getContentSize().width 870 self.BtnOutSide.endPos = cc.pSub(self.BtnOutSide.startPos, cc.p(-width, 0)) 871 872 -- --排行榜 873 self.ranks = self.MiddleUI:getChildByName("Button_53") 874 self.ranks:addTouchEventListener(function(e, t) 875 if t == ccui.TouchEventType.ended then 876 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 877 local Ranks = require("src/app/views/Ranks/Ranks").new(self) 878 self:addChild(Ranks) 879 end 880 end) 881 882 local function rightBtnClickEvent(e, t) 883 if t == ccui.TouchEventType.ended then 884 local pd = PlayerData:getInstanse() 885 for i, v in pairs(pd.outSideBuild) do 886 if v.templateId == e.templateId then 887 local btnKey = gBlock[v.blockId].position 888 local btn = self.OutSideGbButton:getChildByName(btnKey) 889 NodeTranslator:splashDouble(btn); 890 end 891 end 892 end 893 end 894 895 -- 设定初始化 true 展开 false 关闭 896 self.BtnOutSide.BtnOutSide_iron = self.BtnOutSide:getChildByName("btn_jiaoqu_tk"):getChildByName("Button_50") 897 self.BtnOutSide.BtnOutSide_iron.txt = self.BtnOutSide:getChildByName("btn_jiaoqu_tk"):getChildByName("Text_2") 898 self.BtnOutSide.BtnOutSide_iron.templateId = 14 899 self.BtnOutSide.BtnOutSide_iron:addTouchEventListener( rightBtnClickEvent ) 900 self.BtnOutSide.BtnOutSide_oil = self.BtnOutSide:getChildByName("btn_jiaoqu_cy"):getChildByName("Button_51") 901 self.BtnOutSide.BtnOutSide_oil.txt = self.BtnOutSide:getChildByName("btn_jiaoqu_cy"):getChildByName("Text_3") 902 self.BtnOutSide.BtnOutSide_oil.templateId = 15 903 self.BtnOutSide.BtnOutSide_oil:addTouchEventListener( rightBtnClickEvent ) 904 self.BtnOutSide.BtnOutSide_Al = self.BtnOutSide:getChildByName("btn_jiaoqu_lk"):getChildByName("Button_52") 905 self.BtnOutSide.BtnOutSide_Al.txt = self.BtnOutSide:getChildByName("btn_jiaoqu_lk"):getChildByName("Text_4") 906 self.BtnOutSide.BtnOutSide_Al.templateId = 16 907 self.BtnOutSide.BtnOutSide_Al:addTouchEventListener( rightBtnClickEvent ) 908 self:rigesterBtnOutSide() 909 910 -- self.BaseBg:getChildByName("ScrollView_1"):addTouchEventListener(function(e, t) 911 -- if t == ccui.TouchEventType.began then 912 -- print("---TouchEventType.began--") 913 -- end 914 -- if t == ccui.TouchEventType.ended then 915 -- print("---TouchEventType.ended--") 916 -- end 917 -- end) 918 919 920 --等级显示消失 921 local sc = self.BaseBg:getChildByName("ScrollView_1") 922 -- sc:addEventListener(function(t,event) 923 -- if event == 4 then 924 -- --self:BuildLvShow(false) 925 -- self.scrollTime = 0.1 926 -- end 927 -- 928 -- end) 929 sc:setMaxScale(1.5) 930 local listSize = sc:getContentSize() 931 local containSize = sc:getInnerContainerSize() 932 self._moveSceneScaleX = containSize.width / (containSize.width - listSize.width) 933 self._moveSceneScaleY = containSize.height / (containSize.height - listSize.height) 934 --sc:setRadioScale(1000) 935 sc:addTouchEventListener(function(e, t) 936 if t == ccui.TouchEventType.ended then 937 self:showName(false) 938 elseif t == ccui.TouchEventType.began then 939 self:showName(true) 940 end 941 end) 942 943 self.RightBtnOpen = true --右侧按钮展开 944 self:R1Hide() 945 self.BgPage = 0 --1:基地 2:郊外 3:世界 946 self:TurnToNextBg() 947 948 --self.BaseBg:getChildByName("ScrollView_1"):setSwallowTouches(false) 949 WorldScene:dofeijianimation() 950 951 --parent:setScale(1.5) 952 self.BaseBg:setVisible(false) 953 self:initMapScale() 954 955 self.scrollTime = 0 956 957 --todo地图缩放 958 --self.BaseBg:setScale(0.7) 959 local scale = 0.85 960 self.BaseBgButton = self.BaseBg:getChildByName("ScrollView_1"):getChildByName("homeMap_mi") 961 local scSize = sc:getInnerContainerSize() 962 sc:setInnerContainerSize(cc.size(scSize.width * scale, scSize.height * scale)) 963 self.BaseBgButton:setScale(scale) 964 965 local error_close1 = self.BaseBgButton:getChildByName("Button_1") 966 error_close1:addTouchEventListener(function(e, t) 967 if t == ccui.TouchEventType.ended then 968 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 969 print("----------error_close1-------") 970 end 971 end) 972 973 self.BaseBgButton:getChildByName("icon_basement"):addTouchEventListener(function(e, t) 974 if t == ccui.TouchEventType.ended then 975 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 976 local info = gBuilding[18] 977 if info.unlock > PlayerData:getInstanse():getBaseBuildLv(1) then 978 PromptView:type1(StringRes.notice, 979 string.format( StringRes[info.unlockdes], info.unlock) 980 , StringRes.ok) 981 else 982 require("src/app/views/buildings/TankBasement"):show(gWorldScene) 983 end 984 end 985 end) 986 987 988 989 --等级显示消失 990 local sc = self.OutSideBg:getChildByName("ScrollView_1") 991 -- sc:addEventListener(function(t,event) 992 -- if event == 4 then 993 -- --self:BuildLvShow(false) 994 -- self.scrollTime = 0.1 995 -- end 996 -- 997 -- end) 998 if sc then 999 sc:setMaxScale(1.5) 1000 sc:addTouchEventListener(function(e, t) 1001 if t == ccui.TouchEventType.ended then 1002 self:showName(false) 1003 elseif t == ccui.TouchEventType.began then 1004 self:showName(true) 1005 end 1006 end) 1007 end 1008 1009 self:showName(false) 1010 1011 1012 local anim = Animation:createAnimation(gUIeffect[26].effect) 1013 anim:setName(gUIeffect[22].effect) 1014 self.BaseBgButton:getChildByName("Bridge1"):addChild(anim) 1015 local anim = Animation:createAnimation(gUIeffect[26].effect) 1016 anim:setName(gUIeffect[22].effect) 1017 self.BaseBgButton:getChildByName("Bridge3"):addChild(anim) 1018 --Animation:playAnimation2(self.BaseBgButton:getChildByName("Bridge1"),gUIeffect[26].effect) 1019 --Animation:playAnimation2(self.BaseBgButton:getChildByName("Bridge3"),gUIeffect[26].effect) 1020 1021 1022 -- 1023 -- 1024 -- local function updateScroll(delta) 1025 -- 1026 -- 1027 -- 1028 -- if self.scrollTime > 0 then 1029 -- self:showName(true) 1030 -- else 1031 -- self:showName(false) 1032 -- end 1033 -- 1034 -- self.scrollTime = self.scrollTime - delta 1035 -- 1036 -- end 1037 1038 --动画 1039 1040 -- local t1 = nil 1041 -- for var=10, 16 do 1042 -- t1 = Animation:createAnimation(gUIeffect[var].effect) 1043 -- t1:setPosition( cc.p(300,200+(var-10)*100)) 1044 -- self:addChild(t1) 1045 -- end 1046 1047 1048 1049 1050 --奖励中心 1051 local tmp_action = cc.RepeatForever:create(cc.Sequence:create(cc.RotateTo:create(0.2, -30), cc.RotateTo:create(0.4, 30), cc.RotateTo:create(0.15, -15), cc.RotateTo:create(0.15, 15), cc.RotateTo:create(0.1, -8), cc.RotateTo:create(0.1, 8), cc.RotateTo:create(0.1, -5), cc.RotateTo:create(0.1, 5), cc.RotateTo:create(0.1, -3), cc.RotateTo:create(0.1, 3), cc.RotateTo:create(0.08, 0), cc.DelayTime:create(0.5))) 1052 self.MiddleUI:getChildByName("Buttonjiangli_10"):runAction(tmp_action) 1053 self.MiddleUI:getChildByName("Buttonjiangli_10"):addTouchEventListener(function(e, t) 1054 if t == ccui.TouchEventType.ended then 1055 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 1056 require("src/app/views/activity/MilitaryExerciseAward"):show(self) 1057 end 1058 end) 1059 1060 1061 --增益信息 1062 self.MiddleUI:getChildByName("Button_L1"):addTouchEventListener(function(e, t) 1063 if t == ccui.TouchEventType.ended then 1064 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 1065 require("src/app/views/buff/BuffInfo"):show(self) 1066 end 1067 end) 1068 1069 1070 --活动 1071 --增益信息 1072 self.MiddleUI:getChildByName("Button_L5"):addTouchEventListener(function(e, t) 1073 if t == ccui.TouchEventType.ended then 1074 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 1075 local layer = require("src/app/views/activity/MainActivity.lua").new() 1076 self:addChild(layer) 1077 NodeTranslator:transUpBefore(layer) 1078 end 1079 end) 1080 1081 1082 1083 --抽奖 1084 --local rewardButton = self.MiddleUI:getChildByName("Button_L2") 1085 --rewardButton:setVisible(false) 1086 self.MiddleUI:getChildByName("Button_L2"):addTouchEventListener(function(e, t) 1087 if t == ccui.TouchEventType.ended then 1088 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 1089 require("app/views/lottery/LotteryMainView.lua"):open(self, nil, nil) 1090 end 1091 end) 1092 1093 --小助手 1094 self.MiddleUI:getChildByName("panel_women"):addTouchEventListener(function(e, t) 1095 if t == ccui.TouchEventType.ended then 1096 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 1097 AssistantGuide:start() 1098 end 1099 end) 1100 1101 --任务 1102 local list = self.BottomUI:getChildByName("ListView_1") 1103 1104 local taskButton = self.BottomUI:getChildByName("Button_task") 1105 taskButton:addTouchEventListener(function(e, t) 1106 if t == ccui.TouchEventType.ended then 1107 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 1108 self:TaskQuest() 1109 1110 1111 end 1112 end) 1113 1114 --在线奖励 1115 -- TopbarUtils.clear() 1116 -- local OnlineRewardIcon = require("src/app/views/activity/OnlineRewardIcon").new(self.MiddleUI:getChildByName("btn_time_reward")) 1117 -- TopbarUtils.addIcon(OnlineRewardIcon) 1118 -- local FirstRechargeIcon = require("app/views/activity/FirstRechargeIcon.lua").new(self.MiddleUI:getChildByName("btn_first_recharge")) 1119 -- TopbarUtils.addIcon(FirstRechargeIcon) 1120 -- TopbarUtils.update() 1121 --taskButton:setColor( cc.c3b(120, 120, 120)) 1122 1123 --签到 1124 local battleTest = self.MiddleUI:getChildByName("Button_L3") 1125 battleTest:addTouchEventListener(function(e, t) 1126 if t == ccui.TouchEventType.ended then 1127 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 1128 1129 local pd = PlayerData:getInstanse() 1130 local state = pd.signOr7day 1131 if pd and state == 1 then 1132 require("app/views/activity/Sign7Days"):show(self) 1133 elseif pd and state == 2 then 1134 require("app/views/activity/Sign30Days"):show(self) 1135 end 1136 end 1137 end) 1138 1139 --资源详细 1140 local playerinfoButton = self.topUI:getChildByName("Button_1") 1141 playerinfoButton:addTouchEventListener(function(e, t) 1142 if t == ccui.TouchEventType.ended then 1143 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 1144 1145 1146 local layer = require("app/views/buff/ResInfo").new() 1147 self:addChild(layer) 1148 require("app/util/NodeTranslator"):transUp(layer, nil) 1149 1150 1151 end 1152 end) 1153 1154 --玩家信息 1155 local playerinfoButton = self.topUI:getChildByName("Button_2") 1156 playerinfoButton:addTouchEventListener(function(e, t) 1157 if t == ccui.TouchEventType.ended then 1158 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 1159 1160 -- 玩家信息页面是否开启 1161 if not NoviceGuide:CheckOpen("playerInfo") then return end 1162 1163 NoviceGuide:complete("BeStronger", "Leader"); 1164 self.PlayerInfo = PlayerInfo.new(self) 1165 self:addChild(self.PlayerInfo) 1166 end 1167 end) 1168 1169 --VIP 1170 local playerinfoButton = self.topUI:getChildByName("Button_3") 1171 playerinfoButton:addTouchEventListener(function(e, t) 1172 if t == ccui.TouchEventType.ended then 1173 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 1174 require("src/app/views/vip/VipInfo.lua"):showWithTab(self) 1175 end 1176 end) 1177 1178 self:rigesterR1() 1179 -- 1180 self:initBottomBtn() 1181 1182 --Button_5 1183 local rechargebtn = self.topUI:getChildByName("Button_5") 1184 rechargebtn:addTouchEventListener(function(e, t) 1185 if t == ccui.TouchEventType.ended then 1186 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 1187 --RechargeBatter:show(gWorldScene) 1188 RechargeNew:show(gWorldScene) 1189 -- require("src/app/unit/Airborne"):updateParachute(1) 1190 -- require("app/views/territories_war/TerritoriesContend"):show(gWorldScene,1) 1191 end 1192 end) 1193 1194 1195 --Button_4 1196 local battlenumbtn = self.topUI:getChildByName("Button_4") 1197 battlenumbtn:addTouchEventListener(function(e, t) 1198 if t == ccui.TouchEventType.ended then 1199 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 1200 -- 战斗力页面是否开启 1201 if not NoviceGuide:CheckOpen("powerView") then return end 1202 self:addChild(ForceUpgrade.new()) 1203 end 1204 end) 1205 1206 local studyCenter = self.BaseBgButton:getChildByName("Button_12") 1207 studyCenter:addTouchEventListener(function(e, t) 1208 if t == ccui.TouchEventType.ended then 1209 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 1210 1211 end 1212 end) 1213 1214 self.OutSideGbButton = self.OutSideBg 1215 local backhome = self.OutSideGbButton:getChildByName("Button_1") 1216 backhome:addTouchEventListener(function(e, t) 1217 if t == ccui.TouchEventType.ended then 1218 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 1219 1220 end 1221 end) 1222 1223 1224 1225 local function AutobuiltTimer(delta) 1226 1227 local pd = PlayerData:getInstanse() 1228 if PlayerData:getInstanse().IsCanAutoBuilt then 1229 1230 local autotime = pd:getAutoLevel() 1231 if autotime <= 0 then 1232 return 1233 end 1234 1235 ---客户端模拟 当有自动升级时间时候的倒计时 1236 autotime = autotime - delta 1237 pd:setAutoLevel(autotime) 1238 1239 if Buildings:CheckUpgradebuilt() then 1240 Connect:sendMsg("AutoUpLevelAction", "requestBuildAutoUp", {}, 1241 function(data) 1242 if data then 1243 dump(data) 1244 if data.autoLevelUpSecond then 1245 if data.autoLevelUpSecond <= 0 then 1246 FlyWordPrompt:prompt("建筑自动升级时间已耗尽停止") 1247 end 1248 pd:setAutoLevel(data.autoLevelUpSecond) 1249 elseif data.type == -999 then 1250 else 1251 pd:BuildFresh(data) 1252 app:dispatchEvent({ name = "Dis_Autobuilt" }) 1253 end 1254 end 1255 end, true) 1256 end 1257 1258 end 1259 end 1260 1261 1262 1263 local function loadingbarScheduler(delta) 1264 1265 local pd = PlayerData:getInstanse() 1266 if pd.baseBuild == nil then 1267 return 1268 end 1269 1270 --基础建筑 倒计时 1271 for i, v in pairs(pd.baseBuild) do 1272 1273 local btnKey = self:BuildIdAndDbId2Button(v.templateId, v.dbId) 1274 local btn = nil 1275 if btnKey ~= nil then 1276 btn = self.BaseBgButton:getChildByName(btnKey) 1277 end 1278 if btn ~= nil then 1279 --显示进度条 1280 --[[ 1281 local timeImage = btn:getChildByName("Image_3") 1282 if timeImage == nil then 1283 timeImage = gLittleUi:getChildByName("Image_3"):clone() 1284 btn:addChild(timeImage, 15) 1285 local size = btn:getContentSize() 1286 local pos = { x = 0, y = 0 } 1287 if v.templateId > 0 then 1288 pos = StringTemp:toPosition(gBuilding[v.templateId].proposition) 1289 end 1290 timeImage:setPosition( cc.p(pos.x, pos.y) ) 1291 end 1292 1293 if v.time <= 0 or v.allTime <= 0 then 1294 timeImage:setVisible(false) 1295 else 1296 local t1 = 100 - v.time / v.allTime * 100 1297 timeImage:getChildByName("LoadingBar_1"):setPercent(t1) 1298 timeImage:setVisible(true) 1299 end 1300 ]] 1301 1302 -- 显示倒计时 1303 local timeImage = btn:getChildByName("timeNode") 1304 if timeImage == nil then 1305 timeImage = gLittleUi:getChildByName("timeNode"):clone() 1306 btn:addChild(timeImage, 15) 1307 local size = btn:getContentSize() 1308 local pos = { x = 0, y = 0 } 1309 if v.templateId > 0 then 1310 pos = StringTemp:toPosition(gBuilding[v.templateId].proposition) 1311 end 1312 timeImage:setPosition( cc.p(pos.x, pos.y) ) 1313 end 1314 if v.time <= 0 or v.allTime <= 0 then 1315 timeImage:setVisible(false) 1316 else 1317 --print("time: " .. v.time) 1318 --print("all time: " .. v.allTime) 1319 local timeStr = StringTemp:toTime(v.time) 1320 timeImage:getChildByName("timeLabel"):setString(timeStr) 1321 timeImage:setVisible(true) 1322 end 1323 1324 1325 local btn_Free = btn:getChildByName("Button_Free") 1326 if btn_Free then 1327 if v.time > 0 and v.allTime > 0 and Common:getSpendByTime(v.time) <= g_SpeedUpFree then 1328 if btn_Free:isVisible() == false then 1329 local freeBtn = Animation:playFreeAnimation(btn_Free) 1330 if freeBtn then 1331 freeBtn:addTouchEventListener(function(e, t) 1332 btn_Free:setVisible(false) 1333 gWorldScene:freshGametips() 1334 local msg = { type = v.buildType, dbId = v.dbId } 1335 Connect:sendMsg("BuildAction", "buildOverSpeedUpFree", msg, 1336 function(v) 1337 local pd = PlayerData:getInstanse() 1338 pd:BuildTimeOverFresh(v, StringRes[gBuilding[v.templateId].name]) 1339 if v.templateId == 1 then 1340 gWorldScene:BaseQuest() 1341 end 1342 end, true) 1343 end) 1344 end 1345 end 1346 btn_Free:setVisible(true) 1347 WorldScene:dontKnow(btn, "", false) 1348 --Common:setBtnTouchEnable(btn_Free, true) 1349 else 1350 if btn_Free:isVisible() then 1351 gWorldScene:freshGametips() 1352 end 1353 btn_Free:setVisible(false) 1354 btn_Free:stopAllActions() 1355 --Common:setBtnTouchEnable(btn_Free, false) 1356 end 1357 end 1358 end 1359 1360 end 1361 1362 --资源建筑 倒计时 1363 if pd.outSideBuild ~= nil then 1364 for i, v in pairs(pd.outSideBuild) do 1365 1366 local btnKey = gBlock[v.blockId].position 1367 local btn = nil 1368 if btnKey ~= nil then 1369 btn = self.OutSideGbButton:getChildByName(btnKey) 1370 end 1371 if btn ~= nil then 1372 --[[ 显示进度条 1373 local timeImage = btn:getChildByName("Image_5") 1374 if timeImage == nil then 1375 timeImage = gLittleUi:getChildByName("Image_5"):clone() 1376 btn:addChild(timeImage, 100) 1377 local size = btn:getContentSize() 1378 1379 --timeImage:setPosition( cc.p(size.width*0.5+20,size.height*0.5-20) ) 1380 end 1381 1382 if v.time <= 0 or v.allTime <= 0 then 1383 timeImage:setVisible(false) 1384 else 1385 local t1 = 100 - v.time / v.allTime * 100 1386 timeImage:getChildByName("LoadingBar_1"):setPercent(t1) 1387 timeImage:setVisible(true) 1388 1389 1390 local pos = { x = 0, y = 0 } 1391 if v.templateId > 0 then 1392 pos = StringTemp:toPosition(gBuilding[v.templateId].proposition) 1393 end 1394 timeImage:setPosition( cc.p(pos.x, pos.y + 20) ) 1395 1396 end 1397 ]] 1398 -- 野外建筑倒计时 1399 local timeImage = btn:getChildByName("timeNode") 1400 if timeImage == nil then 1401 timeImage = gLittleUi:getChildByName("timeNode"):clone() 1402 timeImage:setGlobalZOrder(100) 1403 btn:addChild(timeImage, 100) 1404 local size = btn:getContentSize() 1405 end 1406 local pos = { x = 0, y = 0 } 1407 if v.templateId > 0 then 1408 pos = StringTemp:toPosition(gBuilding[v.templateId].proposition) 1409 end 1410 timeImage:setPosition( cc.p(pos.x, pos.y) ) 1411 if v.time <= 0 or v.allTime <= 0 then 1412 timeImage:setVisible(false) 1413 else 1414 local timeStr = StringTemp:toTime(v.time) 1415 timeImage:getChildByName("timeLabel"):setString(timeStr) 1416 timeImage:setVisible(true) 1417 end 1418 1419 local btn_Free = btn:getChildByName("Button_Free") 1420 if btn_Free == nil then 1421 --btn_Free = self.OutSideBg:getChildByName("Button_Free"):clone() 1422 --btn:addChild(btn_Free, 100) 1423 --btn_Free:setPosition(cc.p(70, 70)) 1424 local cfg = "res/csd/public/MapBtnFree.csb" 1425 local freeBtn= cc.uiloader:load(cfg) 1426 local freeAction = cc.CSLoader:createTimeline(cfg) 1427 freeAction:gotoFrameAndPlay(0, true) 1428 freeBtn:runAction(freeAction) 1429 freeBtn:setName("Button_Free") 1430 freeBtn:setPosition(cc.p(70, 100)) 1431 btn:addChild(freeBtn) 1432 btn_Free = freeBtn 1433 local actButton = freeBtn:getChildByName("Button_1") 1434 if actButton then 1435 actButton:addTouchEventListener(function(e, t) 1436 btn_Free:setVisible(false) 1437 local msg = { type = v.buildType, dbId = v.dbId } 1438 Connect:sendMsg("BuildAction", "buildOverSpeedUpFree", msg, 1439 function(v) 1440 local pd = PlayerData:getInstanse() 1441 pd:BuildTimeOverFresh(v, StringRes[gBuilding[v.templateId].name]) 1442 if v.templateId == 1 then 1443 gWorldScene:BaseQuest() 1444 end 1445 end, true) 1446 end) 1447 end 1448 end 1449 1450 if v.time > 0 and v.allTime > 0 and Common:getSpendByTime(v.time) <= g_SpeedUpFree then 1451 btn_Free:setVisible(true) 1452 --Common:setBtnTouchEnable(btn_Free, true) 1453 else 1454 btn_Free:setVisible(false) 1455 --Common:setBtnTouchEnable(btn_Free, false) 1456 end 1457 1458 end 1459 1460 end 1461 end 1462 1463 --充值特效 1464 if self.monthCard_data then 1465 if self.monthCard_data.showState ~= true and self.monthCard_data.remainDay == 0 and SaveDataManager:isTick_DayChangeed("MonthCardTick") then 1466 --Animation:playAnimation(rechargebtn, gUIeffect[9].effect, true, 15) 1467 Animation:playAnimation4(rechargebtn, gUIeffect[7].effect,1,0.45,0.65) 1468 self.monthCard_data.showState = true 1469 elseif self.monthCard_data.showState == true and (self.monthCard_data.remainDay > 0 or not SaveDataManager:isTick_DayChangeed("MonthCardTick")) then 1470 Animation:stopAnimation(rechargebtn, gUIeffect[7].effect) 1471 self.monthCard_data.showState = false 1472 end 1473 end 1474 1475 1476 end 1477 1478 self.isPauseUpdate = false 1479 1480 local testNum = 0 1481 local function update(parameters) 1482 1483 if not self.isPauseUpdate then 1484 --更新页面 1485 self:FreshTopPage() 1486 self:FreshBGPage() 1487 1488 1489 --动画 1490 self:doAnimation() 1491 1492 --刷新活动图标显示状态 1493 self:RefreshActivityIcon() 1494 end 1495 1496 1497 1498 --test 1499 -- testNum = testNum + 1 1500 -- 1501 -- local data = {} 1502 -- data.channel = 1 1503 -- data.fromName = "tt" 1504 -- data.fromId = 455 1505 -- data.toName = 1 1506 -- data.content = "tyyyj fdsf ds fdsa"..testNum 1507 -- data.warLv = 1 1508 -- data.vip = 1 1509 ---- data.channel = 1 1510 ---- data.channel = 1 1511 -- ChatMainView:getInstanse():pushWords(data) 1512 1513 end 1514 1515 pd.FriendTroop = {} 1516 --敌方来袭推送 1517 local function registerEnemyIncoming() 1518 Connect:register("notifyAtkWorld", function(data) 1519 pd.EnemyIncoming[#(pd.EnemyIncoming) + 1] = data 1520 self:freshEnemyIncoming() 1521 MyAudio:PlayEffect( "res/sound/background_Warning.mp3" ) 1522 1523 print("111111111") 1524 end) 1525 end 1526 registerEnemyIncoming() 1527 self:freshEnemyIncoming() 1528 1529 --WorldScene:freshTroop() 1530 1531 --通知将领派遣状态 1532 local function registerNotifyCommander() 1533 Connect:register("notifyCommanderSend", function(data) 1534 GeneralData:reset(data.recruitCommanderVOs) 1535 end) 1536 end 1537 registerNotifyCommander() 1538 1539 1540 --朋友驻军 1541 local function registerFriendTroop() 1542 Connect:register("notifyGarrisonInfo", function(data) 1543 1544 pd.FriendTroop = {} 1545 1546 for key, var in pairs(data) do 1547 pd.FriendTroop[var.playerId .. var.armyId] = var 1548 end 1549 1550 self:freshTroop() 1551 end) 1552 end 1553 registerFriendTroop() 1554 self:freshTroop() 1555 1556 --支付成功推送 1557 local function registerPaySuccessNotification() 1558 Connect:register("notifyTradeFinished", function(data) 1559 if data.state == 1 then 1560 local pd = PlayerData:getInstanse().basicData 1561 pd.vipExp = data.vipExp 1562 pd.vipLv = data.vipLv 1563 pd.firstPay = data.firstPay 1564 --Yangjie 修改 2016-11-4 1565 --PlayerData:AddGold(data.gold - pd.gold, "Pay") 1566 pd.gold = data.gold 1567 --end 1568 PromptView:type1(nil,StringRes.pay_success,StringRes.ok) 1569 1570 app:dispatchEvent({name="onTradeFinished"}) 1571 end 1572 1573 end) 1574 end 1575 registerPaySuccessNotification() 1576 1577 --空降物质推送 1578 local function registerAirborneRes() 1579 Connect:register("notifyAirborneRes", function(data) 1580 require("src/app/unit/Airborne"):updateParachute(data.airborneResId) 1581 end) 1582 end 1583 registerAirborneRes() 1584 1585 --升级特效推送 1586 local pic_texts = { StringRes.pic_commandup, StringRes.pic_skillup, StringRes.pic_lvup } 1587 local function registerLvUp() 1588 Connect:register("notifyLvUp", function(data) 1589 -- debug(data) 1590 if data.type == 3 then 1591 local node = CCUILoader:load("csd/startup/startup_dengjitisheng.csb") 1592 self:addChild(node) 1593 --local UIGround = node:getChildByName("Panel_2") 1594 local DialogUtil = require("src.app.util.DialogUtil") 1595 DialogUtil:addClickEvent(node:getChildByName("Panel_2"),function() 1596 node:removeFromParent() 1597 end) 1598 local curLv = node:getChildByName("content"):getChildByName("Image_108"):getChildByName("Text_52") 1599 local nextLv = node:getChildByName("content"):getChildByName("Image_108"):getChildByName("Text_53") 1600 local reward = node:getChildByName("content"):getChildByName("Panel_4") 1601 local list = node:getChildByName("content"):getChildByName("ListView_1") 1602 curLv:setString((data.lv-1).."级") 1603 nextLv:setString(data.lv.."级") 1604 for index,var in pairs(data.lvUpReward.resMap) do 1605 local item = reward:clone() 1606 item:getChildByName("text_drop1"):setString(StringRes[index]) 1607 item:getChildByName("num_drop1"):setString(var) 1608 item:getChildByName("icon_drop1"):loadTexture(ResIconCfg[index]) 1609 item:getChildByName("Image_76"):setOpacity(102) 1610 list:pushBackCustomItem(item) 1611 end 1612 1613 if NoviceGuide:getState() then 1614 local NodeTranslator = require("src/app/util/NodeTranslator") 1615 NodeTranslator:deltaDo(1.5,function() 1616 node:removeFromParent() 1617 end) 1618 1619 end 1620 else 1621 local node = CCUILoader:load("csd/common/layer_popout_player_upgrade.csb") 1622 Common:changePic(node:getChildByName("panel_upgrade"), pic_texts[data.type]) 1623 gWorldScene:addChild(node, 999) 1624 local action = cc.CSLoader:createTimeline("csd/common/layer_popout_player_upgrade.csb") 1625 node:runAction(action) 1626 action:setLastFrameCallFunc(function() 1627 node:removeFromParent() 1628 end) 1629 action:gotoFrameAndPlay(0, false) 1630 MyAudio:PlayEffect(MusicAndEffect.levelup) 1631 end 1632 end) 1633 end 1634 registerLvUp() 1635 1636 -- 1637 local function registerGarrisonArmyBack() 1638 Connect:register("notifyGarrisonArmyBack", function(data) 1639 1640 pd.FriendTroop[data.playerId .. data.armyId] = nil 1641 self:freshTroop() 1642 end) 1643 end 1644 registerGarrisonArmyBack() 1645 1646 1647 --踢下线通知 1648 local function registerLeaveOnline() 1649 Connect:register("leaveOnline", function(data) 1650 if data.type == 1 then 1651 PromptView:type1(StringRes.notice, 1652 StringRes.leaveOnline_1 1653 , StringRes.ok, function() 1654 gWorldScene = nil 1655 app:enterScene("LoginScene") 1656 end) 1657 elseif data.type == 2 then 1658 PromptView:type1(StringRes.notice, 1659 StringRes.leaveOnline_2 1660 , StringRes.ok, function() 1661 gWorldScene = nil 1662 app:enterScene("LoginScene") 1663 1664 end) 1665 elseif data.type == 3 then 1666 PromptView:type1(StringRes.notice, 1667 StringRes.kickaccount 1668 , StringRes.ok, function() 1669 gWorldScene = nil 1670 app:enterScene("LoginScene") 1671 1672 end) 1673 1674 end 1675 end) 1676 end 1677 registerLeaveOnline() 1678 1679 --世界保护盾通知 1680 local function registerProtected() 1681 Connect:register("notifyWorldProtect", function(data) 1682 self.Feild:setProtected(data.haveProtect) 1683 end) 1684 end 1685 registerProtected() 1686 1687 1688 --更新部队推送 1689 local function registerTroops() 1690 Connect:register("notifyRefTroops", function(data) 1691 pd.tanks = data.troops 1692 end) 1693 end 1694 registerTroops() 1695 1696 --跟新playerinfo 1697 local function registerPlayerInfo() 1698 Connect:register("notifyGuildState", function(data) 1699 --Yangjie 更换统一接口 2016-11-2 1700 pd:setBasicData(data) 1701 --pd.basicData = data 1702 --end Yangjie 1703 end) 1704 end 1705 registerPlayerInfo() 1706 1707 1708 --战斗部队附加属性 1709 local function registerwarUnitAddAttrs() 1710 Connect:register("notifyWarUnitAddAttr", function(data) 1711 pd.warUnitAddAttrs = data.warUnitAddAttrs 1712 end) 1713 end 1714 registerwarUnitAddAttrs() 1715 1716 --小提示 1717 local function registernotifyGameTips() 1718 Connect:register("notifyGameTips", function(data) 1719 pd.getGametipsVO = data 1720 self:freshGametips() 1721 self:freshTroop() 1722 app:dispatchEvent({ name = "FreshOnGetGameTips" }) 1723 end) 1724 end 1725 registernotifyGameTips() 1726 1727 1728 --活动公告 1729 local function registernotifyNotice() 1730 Connect:register("notifyNotice", function(data) 1731 --更新数据 1732 pd.noticeVOs = data.noticeVOs 1733 self:freshGametips() 1734 1735 end) 1736 end 1737 registernotifyNotice() 1738 1739 --活动公告 1740 local function registernotifyPlayerAddition() 1741 Connect:register("notifyPlayerAddition", function(data) 1742 --更新数据 1743 pd.PlayerAddition = data 1744 1745 1746 end) 1747 end 1748 registernotifyPlayerAddition() 1749 1750 --背包有新物品提示推送 1751 local function registernotifyItesmCount() 1752 Connect:register("notifyItesmCount", function(data) 1753 --更新数据 1754 pd.notifyItesmCountVO = data 1755 pd.notifyItesmCountVO.changed = true 1756 1757 self:freshNewTaskNum() 1758 1759 end) 1760 end 1761 registernotifyItesmCount() 1762 1763 1764 -- 1765 --跟新PlayerSimpleInfo 1766 local function registerPlayerSimpleInfo() 1767 Connect:register("notifyPlayerSimpleInfo", function(data) 1768 pd.basicData.comat = data.combat 1769 pd.basicData.energy = data.energy 1770 pd.basicData.vipLv = data.vipLv 1771 --Yangjie 修改 2016-11-4 1772 if data.gold - pd.basicData.gold > 0 then 1773 if TDstatistics.GetAddGoldType() ~= nil then 1774 PlayerData:AddGold(data.gold - pd.basicData.gold, TDstatistics.GetAddGoldType()) 1775 TDstatistics.SetAddGoldType(nil) 1776 else 1777 PlayerData:AddGold(data.gold - pd.basicData.gold, "用户数据更新") 1778 end 1779 elseif data.gold - pd.basicData.gold < 0 then 1780 if TDstatistics.GetUseGoldType() ~= nil then 1781 PlayerData:UseGold(TDstatistics.GetUseGoldType(), 1, pd.basicData.gold - data.gold) 1782 TDstatistics.SetUseGoldType(nil) 1783 else 1784 PlayerData:UseGold("用户数据更新", 1, pd.basicData.gold - data.gold) 1785 end 1786 end 1787 --pd.basicData.gold = data.gold 1788 --end 1789 pd.basicData.commandBook = data.commbooks 1790 end) 1791 end 1792 registerPlayerSimpleInfo() 1793 1794 1795 --战斗力变化 1796 local function registerCombatChanged() 1797 Connect:register("notifyCombatChange", function(data) 1798 local pd = PlayerData:getInstanse() 1799 pd.basicData.comat = data.combat 1800 ManyDialogInfo:combatAddAnim(data.change) 1801 1802 end) 1803 end 1804 registerCombatChanged() 1805 1806 self:taskQuickNotice() 1807 1808 1809 1810 RegisterCleanUp:register(function() 1811 gChatMainView = nil 1812 PlayerData:Relese() 1813 ChatServer:disconect() 1814 end, true) 1815 loadingbarScheduler() 1816 local function onNodeEvent(tag) 1817 if tag == "enter" then 1818 1819 self.loadingbarScheduler = Scheduler:scheduleScriptFunc(loadingbarScheduler, 1.0, false) 1820 self.update = Scheduler:scheduleScriptFunc(update, 1.0, false) 1821 self.Autobuilt = Scheduler:scheduleScriptFunc(AutobuiltTimer, 1.0, false) 1822 1823 --self.updateScroll = Scheduler:scheduleScriptFunc(updateScroll, 0.1, false) 1824 1825 MyAudio:PlayBgMusic("res/music/background_music.mp3") 1826 gWorldScene = self 1827 gWorldScene:freshQuick() 1828 gWorldScene:getGametips() 1829 gWorldScene:getAnnouncement() 1830 local sc = self.BaseBg:getChildByName("ScrollView_1") 1831 sc:jumpToPercentBothDirection(cc.p(-420, 20)) 1832 1833 1834 --限时礼包二选一 1835 require("src/app/views/activity/LimitTimeFirstPayIcon").new(self.MiddleUI:getChildByName("Button_LimitTimeFirstPay")) 1836 self.MiddleUIVisible = true; 1837 1838 -- self.MiddleUI:getChildByName("Button_33"):setVisible(false) 1839 -- 18小时奖励 1840 require("src/app/views/activity/LimitTime18Hour"):show() 1841 self.MiddleUIVisible18 = true; 1842 1843 --在线奖励 1844 TopbarUtils.clear() 1845 TopbarUtils.addIcon(self.MiddleUI:getChildByName("Button_L5")) 1846 local OnlineRewardIcon = require("src/app/views/activity/OnlineRewardIcon").new(self.MiddleUI:getChildByName("btn_time_reward")) 1847 TopbarUtils.addIcon(OnlineRewardIcon) 1848 local FirstRechargeIcon = require("src/app/views/activity/FirstRechargeIcon").new(self.MiddleUI:getChildByName("btn_first_recharge")) 1849 self.FirstRechargeIcon = FirstRechargeIcon 1850 TopbarUtils.addIcon(FirstRechargeIcon) 1851 local ArmyGroupNoticeIcon = require("src/app/views/armygroup/ArmyGroupNoticeIcon").new(self.MiddleUI:getChildByName("Button_06")) 1852 TopbarUtils.addIcon(ArmyGroupNoticeIcon) 1853 local FixTimeFirstPayIcon = require("src/app/views/activity/FixTimeFirstPayIcon").new(self.MiddleUI:getChildByName("Button_FixTimeFirstPay")) 1854 TopbarUtils.addIcon(FixTimeFirstPayIcon) 1855 self.FixTimeFirstPayIcon = FixTimeFirstPayIcon 1856 local Gift_rmb3_Icon = require("src/app/views/activity/Gift_rmb3_Icon").new(self.MiddleUI:getChildByName("Button_Gift_rmb3")) 1857 TopbarUtils.addIcon(Gift_rmb3_Icon) 1858 self.Gift_rmb3_Icon = Gift_rmb3_Icon 1859 TopbarUtils.update() 1860 1861 1862 elseif tag == "exit" then 1863 Scheduler:unscheduleScriptEntry(self.loadingbarScheduler) 1864 Scheduler:unscheduleScriptEntry(self.update) 1865 Scheduler:unscheduleScriptEntry(self.Autobuilt) 1866 1867 --Scheduler:unscheduleScriptEntry(self.updateScroll) 1868 MyAudio:StopBgMusic() 1869 gWorldScene = nil 1870 --日志 1871 statistics:sendExit() 1872 end 1873 end 1874 self:registerScriptHandler(onNodeEvent) 1875 1876 ChatServer:showLittle(self) 1877 --冠军推送 1878 Connect:register("refreshChampion", function(data) 1879 pd.globalPVPNO1Name = data.playerName; 1880 self:doDiaoxiang(); 1881 end) 1882 1883 --军团升级 1884 local function registerGuildLvUp() 1885 Connect:register("updateGuildTech", function(data) 1886 local pd = PlayerData:getInstanse() 1887 if pd.basicData.guildId == data.guildId then 1888 pd.basicData.guildLv = data.techLv 1889 end 1890 end) 1891 end 1892 registerGuildLvUp() 1893 1894 1895 --军需卡信息 1896 Connect:sendMsg("PayAction", "getMonthCardInfo", {}, function(data) 1897 self:setMonthCard_data(data) 1898 end) 1899 1900 self:setVipPackageInfo() 1901 1902 self:RefreshGroupRedPoint() 1903 -- 军团红点信息 1904 Connect:register("notifyGuildTips", function(data) 1905 self.groupRP = data 1906 self:UpdateRPControl() 1907 end) 1908 --self:initSolider() 1909 end 1910 1911 function WorldScene:setMonthCard_data(data) 1912 local state = false 1913 if self.monthCard_data and self.monthCard_data.showState then 1914 state = true 1915 end 1916 self.monthCard_data = data 1917 self.monthCard_data.showState = state 1918 end 1919 1920 function WorldScene:initSolider() 1921 local carSpeed = 60 1922 local soliderSpeed = 13 1923 local map = self.BaseBg:getChildByName("ScrollView_1"):getChildByName("homeMap_mi") 1924 -- 院子内走动的士兵 1925 local manLayer1 = map:getChildByName("man1") 1926 manLayer1:removeAllChildren() 1927 local walkMan1 = require("app.views.worldScene.WalkSoldier").new() 1928 manLayer1:addChild(walkMan1) 1929 walkMan1:walkPingPang({ cc.p(165, 380), cc.p(745, 84) }, soliderSpeed, 1) 1930 1931 -- 聊天的将军 1932 local talk1Layer = map:getChildByName("Button_Champion") 1933 local talkMan = require("app.views.worldScene.TalkTogetherSoldier").new() 1934 talkMan:setPosition(cc.p(170, 0)) 1935 talk1Layer:addChild(talkMan) 1936 1937 -- 总部的巡逻兵 1938 local manLayer3 = map:getChildByName("Button_9"):getChildByName("man") 1939 manLayer3:removeAllChildren() 1940 local walkMan3 = require("app.views.worldScene.WalkSoldier").new() 1941 manLayer3:addChild(walkMan3) 1942 walkMan3:walkPingPang({ cc.p(295, 10), cc.p(62, 125) }, soliderSpeed, 1) 1943 1944 -- 野外巡逻的士兵 1945 local manLayer2 = map:getChildByName("man2") 1946 manLayer2:removeAllChildren() 1947 local walkMan2 = require("app.views.worldScene.WalkSoldier").new() 1948 manLayer2:addChild(walkMan2) 1949 walkMan2:walkPingPang({ cc.p(721, 380), cc.p(195, 135) }, soliderSpeed, 2) 1950 1951 --野外聊天的将军 1952 local talkMan2 = require("app.views.worldScene.TalkTogetherSoldier").new() 1953 talkMan2:setPosition(cc.p(135, 295)) 1954 manLayer2:addChild(talkMan2) 1955 1956 -- 城内的汽车 1957 local car1Layer = map:getChildByName("car1") 1958 car1Layer:removeAllChildren() 1959 local car1 = require("app.views.worldScene.WalkCar").new() 1960 car1:walkPingPang({ cc.p(969, 28), cc.p(96, 474), cc.p(595, 728), cc.p(716, 670) }, carSpeed) 1961 car1Layer:addChild(car1) 1962 1963 -- 城外的汽车 1964 local car2Layer = map:getChildByName("car2") 1965 car2Layer:removeAllChildren() 1966 local car2 = require("app.views.worldScene.WalkCar").new() 1967 car2:walkPingPang({ 1968 cc.p(2465, -47), 1969 cc.p(1311, 547), 1970 cc.p(1035, 537), 1971 cc.p(179, 980), 1972 cc.p(578, 1183) 1973 }, carSpeed) 1974 car2Layer:addChild(car2) 1975 end 1976 function WorldScene:setVipPackageInfo(data) 1977 --获取VIP礼包 1978 if data then 1979 self.vipPackages = data 1980 self:updataVipAnimation() 1981 else 1982 Connect:sendMsg("VipAction", "getVipPackagesInfo", {}, function(data) 1983 self.vipPackages = data.packages 1984 self:updataVipAnimation() 1985 end) 1986 end 1987 end 1988 1989 function WorldScene:updataVipAnimation() 1990 --VIP特效 1991 local playerVipButton = self.topUI:getChildByName("Button_3") 1992 1993 local vipLv = PlayerData:getInstanse().basicData.vipLv 1994 local count = 0 1995 for k, v in pairs(self.vipPackages) do 1996 1997 local desInfo = gVIPPackage[v.id] 1998 1999 if desInfo == nil or desInfo.viplv > vipLv then 2000 break 2001 end 2002 2003 if desInfo.got == 0 then 2004 count = count + 1 2005 end 2006 end 2007 2008 self.VipGiftCount = count 2009 if count > 0 then 2010 Animation:playAnimation4(playerVipButton, gUIeffect[9].effect, 1, 0.5,0.5) 2011 else 2012 Animation:stopAnimation(playerVipButton, gUIeffect[9].effect) 2013 end 2014 end 2015 2016 2017 local path = { 2018 ["enemy"] = "res/pic/mainmap/ui_middle/btn_warn.png", 2019 ["friend"] = "res/pic/common/btn/battle/btn_occupy.png", 2020 ["stopbuild"] = "res/pic/mainmap/ui_middle/btn_fire.png", 2021 } 2022 local RightBtnPic = { 2023 "res/pic/mainmap/ui_middle/btn_prop.png", --装置车间 2024 "res/pic/mainmap/ui_middle/btn_research.png", --科技中心 2025 "res/pic/mainmap/ui_middle/btn_build_buy.png", --建筑 2026 "res/pic/mainmap/ui_middle/btn_production.png", --坦克中心 2027 "res/pic/mainmap/ui_middle/btn_build.png", --建筑队列 2028 2029 "res/pic/mainmap_right/btn/btn_battle_attack.png", --队伍攻击 2030 "res/pic/mainmap_right/btn/btn_battle_occupy.png", --队伍采集 2031 "res/pic/mainmap_right/btn/btn_battle_return.png", --队伍返回 2032 2033 "res/pic/common/btn/battle/btn_occupy.png", --驻防 2034 } 2035 2036 2037 function WorldScene:NoviceGuideWomenshow() 2038 if not NoviceGuide:getState() then 2039 gWorldScene.MiddleUI:getChildByName("panel_women"):setVisible(true) 2040 else 2041 gWorldScene.MiddleUI:getChildByName("panel_women"):setVisible(false) 2042 end 2043 end 2044 2045 2046 function WorldScene:freshNewTaskNum( ) 2047 -- body 2048 --列表 2049 local list = self.BottomUI:getChildByName("ListView_1") 2050 local budui = self.BottomUI:getChildByName("Button_6") 2051 local pd = PlayerData:getInstanse() 2052 local num = pd.notifyItesmCountVO.itemsType1 + pd.notifyItesmCountVO.itemsType2 + pd.notifyItesmCountVO.itemsType3 + pd.notifyItesmCountVO.itemsType4 2053 if num > 0 then 2054 Animation:showNum(budui, gLittleUi:getChildByName("Image_7"):clone(), num) 2055 else 2056 Animation:hideNum(budui, gLittleUi:getChildByName("Image_7")) 2057 end 2058 end 2059 2060 2061 function WorldScene:freshBattleQuick() 2062 2063 local pd = PlayerData:getInstanse() 2064 2065 2066 --隐藏3个按钮 2067 for var = 7, 9 do 2068 local r = self.MiddleUI:getChildByName("Button_0" .. var) 2069 local levelImage = r:getChildByName("Image_10") 2070 if levelImage ~= nil then 2071 r:removeChild(levelImage) 2072 end 2073 r:setVisible(false) 2074 end 2075 2076 2077 local num = 7 2078 2079 --驻防 2080 local btn = self.MiddleUI:getChildByName("Button_0" .. num) 2081 if Common:getTableLen(pd.FriendTroop) > 0 then 2082 2083 num = num + 1 2084 2085 btn:loadTextures(path["friend"], path["friend"], "", ResType) 2086 btn:addTouchEventListener(function(e, t) 2087 if t == ccui.TouchEventType.ended then 2088 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 2089 local ei = ManyDialogInfo:FriendTroop() 2090 self:addChild(ei) 2091 end 2092 end) 2093 2094 btn:setVisible(true) 2095 2096 --显示等级 2097 local levelImage = btn:getChildByName("Image_10") 2098 if levelImage == nil then 2099 levelImage = gLittleUi:getChildByName("Image_10"):clone() 2100 2101 local size = btn:getContentSize() 2102 levelImage:setPosition( cc.p(size.width * 0.5, 11) ) 2103 2104 2105 --更新时间 2106 local function update(delta) 2107 2108 local numPic = levelImage:getChildByName("Text_num") 2109 2110 if Common:getTableLen(pd.FriendTroop) > 0 then 2111 2112 local t = nil 2113 for key, var in pairs(pd.FriendTroop) do 2114 if var.time > 0 then 2115 t = var 2116 break 2117 end 2118 end 2119 if t ~= nil then 2120 numPic:setString(StringTemp:toTime(t.time)) 2121 local size = numPic:getContentSize() 2122 local size1 = levelImage:getContentSize() 2123 levelImage:setContentSize(cc.size(size.width + 20, size1.height)) 2124 levelImage:setVisible(true) 2125 else 2126 levelImage:setVisible(false) 2127 end 2128 2129 else 2130 self:freshBattleQuick() 2131 end 2132 2133 2134 end 2135 local function onNodeEvent(tag) 2136 if tag == "enter" then 2137 update(0) 2138 levelImage.update = Scheduler:scheduleScriptFunc(update, 0.9, false) 2139 2140 elseif tag == "exit" then 2141 Scheduler:unscheduleScriptEntry(levelImage.update) 2142 end 2143 end 2144 levelImage:registerScriptHandler(onNodeEvent) 2145 2146 btn:addChild(levelImage, 10) 2147 end 2148 2149 2150 end 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 --队伍出任务 2161 -- gField.TaskExeBar:setVis(pd.ShortcutVO ~= nil and pd.ShortcutVO.ts ~= nil) 2162 2163 2164 2165 --警告 2166 local btn = self.MiddleUI:getChildByName("Button_0" .. num) 2167 if #(pd.EnemyIncoming) > 0 then 2168 2169 num = num + 1 2170 2171 2172 btn:setVisible(true) 2173 btn:loadTextures(path["enemy"], path["enemy"], "", ResType) 2174 btn:addTouchEventListener(function(e, t) 2175 if t == ccui.TouchEventType.ended then 2176 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 2177 local ei = ManyDialogInfo:EnemyIncoming() 2178 self:addChild(ei) 2179 end 2180 end) 2181 2182 --显示等级 2183 local levelImage = btn:getChildByName("Image_10") 2184 if levelImage == nil then 2185 levelImage = gLittleUi:getChildByName("Image_10"):clone() 2186 2187 local size = btn:getContentSize() 2188 levelImage:setPosition( cc.p(size.width * 0.5, 11) ) 2189 2190 2191 --更新时间 2192 local function update(delta) 2193 2194 local numPic = levelImage:getChildByName("Text_num") 2195 2196 if #(pd.EnemyIncoming) > 0 then 2197 numPic:setString(StringTemp:toTime(pd.EnemyIncoming[1].time)) 2198 local size = numPic:getContentSize() 2199 local size1 = levelImage:getContentSize() 2200 levelImage:setContentSize(cc.size(size.width + 20, size1.height)) 2201 else 2202 self:freshBattleQuick() 2203 end 2204 2205 2206 end 2207 local function onNodeEvent(tag) 2208 if tag == "enter" then 2209 update(0) 2210 levelImage.update = Scheduler:scheduleScriptFunc(update, 0.9, false) 2211 2212 elseif tag == "exit" then 2213 Scheduler:unscheduleScriptEntry(levelImage.update) 2214 end 2215 end 2216 levelImage:registerScriptHandler(onNodeEvent) 2217 2218 btn:addChild(levelImage, 10) 2219 end 2220 2221 end 2222 2223 2224 --停产 2225 --警告 2226 local btn = self.MiddleUI:getChildByName("Button_0" .. num) 2227 if pd.getGametipsVO == nil or pd.getGametipsVO.deBuffId == nil or pd.getGametipsVO.deBuffTime == nil then 2228 return 2229 end 2230 if pd.getGametipsVO.deBuffId > 0 and pd.getGametipsVO.deBuffTime > 0 then 2231 2232 num = num + 1 2233 2234 2235 btn:setVisible(true) 2236 btn:loadTextures(path["stopbuild"], path["stopbuild"], "", ResType) 2237 btn:addTouchEventListener(function(e, t) 2238 if t == ccui.TouchEventType.ended then 2239 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 2240 local ei = ManyDialogInfo:resStop(pd.getGametipsVO.deBuffTime) 2241 self:addChild(ei) 2242 end 2243 end) 2244 2245 --显示等级 2246 local levelImage = btn:getChildByName("Image_10") 2247 if levelImage == nil then 2248 levelImage = gLittleUi:getChildByName("Image_10"):clone() 2249 2250 local size = btn:getContentSize() 2251 levelImage:setPosition( cc.p(size.width * 0.5, 11) ) 2252 2253 2254 --更新时间 2255 local function update(delta) 2256 2257 local numPic = levelImage:getChildByName("Text_num") 2258 pd.getGametipsVO.deBuffTime = pd.getGametipsVO.deBuffTime - delta 2259 if pd.getGametipsVO.deBuffId > 0 and pd.getGametipsVO.deBuffTime > 0 then 2260 numPic:setString(StringTemp:toTime(pd.getGametipsVO.deBuffTime)) 2261 local size = numPic:getContentSize() 2262 local size1 = levelImage:getContentSize() 2263 levelImage:setContentSize(cc.size(size.width + 20, size1.height)) 2264 else 2265 gField:freshResShow() 2266 self:freshBattleQuick() 2267 end 2268 2269 2270 end 2271 local function onNodeEvent(tag) 2272 if tag == "enter" then 2273 2274 levelImage.update = Scheduler:scheduleScriptFunc(update, 0.9, false) 2275 update(0) 2276 elseif tag == "exit" then 2277 Scheduler:unscheduleScriptEntry(levelImage.update) 2278 end 2279 end 2280 levelImage:registerScriptHandler(onNodeEvent) 2281 2282 btn:addChild(levelImage, 10) 2283 gField:freshResShow() 2284 end 2285 2286 end 2287 2288 2289 end 2290 2291 2292 function WorldScene:freshTroop() 2293 self:freshBattleQuick() 2294 -- local pd = PlayerData:getInstanse() 2295 -- 2296 -- 2297 -- local btn = self.MiddleUI:getChildByName("Button_L7") 2298 -- if #(pd.EnemyIncoming) > 0 then 2299 -- btn = self.MiddleUI:getChildByName("Button_L8") 2300 -- else 2301 -- self.MiddleUI:getChildByName("Button_L8"):setVisible(false) 2302 -- end 2303 -- 2304 -- -- 2305 -- btn:loadTextures(path["friend"],path["friend"],"",ResType) 2306 -- btn:addTouchEventListener(function(e, t) 2307 -- if t == ccui.TouchEventType.ended then MyAudio:PlayEffect(MusicAndEffect.btnEffect) 2308 -- local ei = ManyDialogInfo:FriendTroop() 2309 -- self:addChild(ei) 2310 -- end 2311 -- end) 2312 -- 2313 -- --pd.FriendTroop = {} 2314 -- --显示 2315 -- --table.maxn(table) 2316 -- if Common:getTableLen(pd.FriendTroop) > 0 then 2317 -- btn:setVisible(true) 2318 -- 2319 -- --显示等级 2320 -- local levelImage = btn:getChildByName("Image_10") 2321 -- if levelImage == nil then 2322 -- levelImage = gLittleUi:getChildByName("Image_10"):clone() 2323 -- 2324 -- local size = btn:getContentSize() 2325 -- levelImage:setPosition( cc.p(size.width*0.5,11) ) 2326 -- 2327 -- 2328 -- --更新时间 2329 -- local function update(delta) 2330 -- 2331 -- local numPic = levelImage:getChildByName("Text_num") 2332 -- 2333 -- if Common:getTableLen(pd.FriendTroop) > 0 then 2334 -- 2335 -- local t = nil 2336 -- for key, var in pairs(pd.FriendTroop) do 2337 -- if var.time > 0 then 2338 -- t = var 2339 -- break 2340 -- end 2341 -- end 2342 -- if t ~= nil then 2343 -- numPic:setString(StringTemp:toTime(t.time)) 2344 -- local size = numPic:getContentSize() 2345 -- local size1 = levelImage:getContentSize() 2346 -- levelImage:setContentSize(cc.size(size.width+20,size1.height)) 2347 -- levelImage:setVisible(true) 2348 -- else 2349 -- levelImage:setVisible(false) 2350 -- end 2351 -- 2352 -- else 2353 -- self:freshTroop() 2354 -- end 2355 -- 2356 -- 2357 -- 2358 -- 2359 -- end 2360 -- local function onNodeEvent(tag) 2361 -- if tag == "enter" then 2362 -- update(0) 2363 -- levelImage.update = Scheduler:scheduleScriptFunc(update, 0.9, false) 2364 -- 2365 -- elseif tag == "exit" then 2366 -- Scheduler:unscheduleScriptEntry(levelImage.update) 2367 -- end 2368 -- end 2369 -- levelImage:registerScriptHandler(onNodeEvent) 2370 -- 2371 -- btn:addChild(levelImage,10) 2372 -- end 2373 -- else 2374 -- -- 2375 -- btn:setVisible(false) 2376 -- local levelImage = btn:getChildByName("Image_10") 2377 -- if levelImage ~= nil then 2378 -- btn:removeChild(levelImage) 2379 -- end 2380 -- 2381 -- end 2382 2383 2384 end 2385 2386 2387 --敌军来袭 2388 function WorldScene:freshEnemyIncoming() 2389 self:freshBattleQuick() 2390 -- local pd = PlayerData:getInstanse() 2391 -- 2392 -- local btn = self.MiddleUI:getChildByName("Button_L7") 2393 -- btn:loadTextures(path["enemy"],path["enemy"],"",ResType) 2394 -- btn:addTouchEventListener(function(e, t) 2395 -- if t == ccui.TouchEventType.ended then MyAudio:PlayEffect(MusicAndEffect.btnEffect) 2396 -- local ei = ManyDialogInfo:EnemyIncoming() 2397 -- self:addChild(ei) 2398 -- end 2399 -- end) 2400 -- 2401 -- if #(pd.EnemyIncoming) > 0 then 2402 -- btn:setVisible(true) 2403 -- 2404 -- --显示等级 2405 -- local levelImage = btn:getChildByName("Image_10") 2406 -- if levelImage == nil then 2407 -- levelImage = gLittleUi:getChildByName("Image_10"):clone() 2408 -- 2409 -- local size = btn:getContentSize() 2410 -- levelImage:setPosition( cc.p(size.width*0.5,11) ) 2411 -- 2412 -- 2413 -- --更新时间 2414 -- local function update(delta) 2415 -- 2416 -- local numPic = levelImage:getChildByName("Text_num") 2417 -- 2418 -- if #(pd.EnemyIncoming) > 0 then 2419 -- numPic:setString(StringTemp:toTime(pd.EnemyIncoming[1].time)) 2420 -- local size = numPic:getContentSize() 2421 -- local size1 = levelImage:getContentSize() 2422 -- levelImage:setContentSize(cc.size(size.width+20,size1.height)) 2423 -- else 2424 -- self:freshEnemyIncoming() 2425 -- end 2426 -- 2427 -- 2428 -- 2429 -- 2430 -- end 2431 -- local function onNodeEvent(tag) 2432 -- if tag == "enter" then 2433 -- update(0) 2434 -- levelImage.update = Scheduler:scheduleScriptFunc(update, 0.9, false) 2435 -- 2436 -- elseif tag == "exit" then 2437 -- Scheduler:unscheduleScriptEntry(levelImage.update) 2438 -- end 2439 -- end 2440 -- levelImage:registerScriptHandler(onNodeEvent) 2441 -- 2442 -- btn:addChild(levelImage,10) 2443 -- end 2444 -- else 2445 -- -- 2446 -- btn:setVisible(false) 2447 -- local levelImage = btn:getChildByName("Image_10") 2448 -- if levelImage ~= nil then 2449 -- btn:removeChild(levelImage) 2450 -- end 2451 -- 2452 -- end 2453 -- 2454 -- 2455 -- 2456 -- 2457 -- 2458 -- 2459 -- 2460 -- --刷新部队 2461 -- self:freshTroop() 2462 end 2463 2464 2465 2466 2467 2468 2469 2470 2471 local RightBtn = { 2472 "Button_R2", "Button_R3", "Button_R4", "Button_R5", "Button_R6", 2473 } 2474 local RightBtnPos = { 2475 cc.p(600, 868), cc.p(600, 788), cc.p(600, 708), cc.p(600, 628), cc.p(600, 548), 2476 } 2477 2478 2479 --刷新快捷按钮 2480 function WorldScene:freshQuick() 2481 local pd = PlayerData:getInstanse() 2482 2483 Connect:sendMsg("InterfaceAction", "getShortcutInfo", nil, 2484 function(data) 2485 --更新数据 2486 pd.ShortcutVO = data 2487 self:freshRightBtn() 2488 end, false) 2489 end 2490 2491 --空闲总数 2492 local Count_Sce = 0 --科技 2493 local Count_build = 0 -- 建筑 2494 local Count_Dev = 0 --装置 2495 local Count_Tank = 0 --坦克 2496 local Count_buyBuild = 0 --建造位 2497 2498 --右侧按钮刷新 2499 function WorldScene:freshRightBtn() 2500 2501 -- if true then 2502 -- return 2503 -- end 2504 2505 2506 2507 local pd = PlayerData:getInstanse() 2508 if pd.ShortcutVO == nil or pd.basicData == nil then 2509 return 2510 end 2511 --刷新快捷按钮信息 2512 local numPos = 2 2513 2514 Count_Sce = 0 --科技 2515 Count_build = 0 -- 建筑 2516 Count_Dev = 0 --装置 2517 Count_Tank = 0 --坦克 2518 Count_buyBuild = 0 --可购买的建筑队列 2519 2520 --隐藏6个按钮 2521 for var = 2, 6 do 2522 local r = self.MiddleUI:getChildByName("Button_R" .. var) 2523 local levelImage = r:getChildByName("Image_10") 2524 if levelImage ~= nil then 2525 r:removeChild(levelImage) 2526 end 2527 2528 --r:setVisible(false) 2529 end 2530 2531 if pd.ShortcutVO == nil then 2532 return 2533 end 2534 2535 --排行榜 2536 -- local ranks = self.MiddleUI:getChildByName:getChildByName("Button_53") 2537 -- ranks:addTouchEventListener(function(e, t) 2538 -- if t == ccui.TouchEventType.ended then 2539 -- MyAudio:PlayEffect(MusicAndEffect.btnEffect) 2540 -- local t1 = Ranks.new(self) 2541 -- self:addChild(t1) 2542 -- end 2543 -- end) 2544 local R1 = self.MiddleUI:getChildByName("Button_R1") 2545 --更新时间 2546 local function update_R1(delta) 2547 --空闲红点 2548 local redPoint = R1:getChildByName("icon_redPoint") 2549 local text_num = redPoint:getChildByName("Text_num") 2550 local count = Count_Sce + Count_build + Count_Dev + Count_Tank + Count_buyBuild 2551 if count > 0 then 2552 text_num:setString(tostring(count)) 2553 redPoint:setVisible(true) 2554 else 2555 redPoint:setVisible(false) 2556 end 2557 end 2558 2559 2560 if R1.updateID == nil then 2561 update_R1(0) 2562 R1.updateID = Scheduler:scheduleScriptFunc(update_R1, 0.9, false) 2563 end 2564 local function onNodeEvent_R1(tag) 2565 if tag == "exit" and R1.updateID ~= nil then 2566 Scheduler:unscheduleScriptEntry(R1.updateID) 2567 end 2568 end 2569 R1:registerScriptHandler(onNodeEvent_R1) 2570 2571 --装置车间 2572 if pd.ShortcutVO.df ~= nil then 2573 local r = self.MiddleUI:getChildByName("Button_R" .. numPos) 2574 if r ~= nil then 2575 --设置回调 2576 --装置车间 生产道具 2577 r:addTouchEventListener(function(e, t) 2578 if t == ccui.TouchEventType.ended then 2579 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 2580 local layer = require("src/app/views/buildings/DeviceFactory").new(self, pd:getBaseBuildData(8)) 2581 self:addChild(layer) 2582 layer:setTabSelect(1) 2583 NodeTranslator:transUp(layer, nil) 2584 end 2585 end) 2586 2587 --显示等级 2588 local levelImage = r:getChildByName("Image_10") 2589 if levelImage == nil then 2590 levelImage = gLittleUi:getChildByName("Image_10"):clone() 2591 2592 local size = r:getContentSize() 2593 levelImage:setPosition( cc.p(size.width * 0.5, 11) ) 2594 2595 2596 local FreeAnimate = r:getChildByName("FreeAnimate") 2597 2598 --更新时间 2599 local function update(delta) 2600 if pd.ShortcutVO.df ~= nil then 2601 if pd.ShortcutVO.df.remainTime > 0 and pd.ShortcutVO.df.remainTime < delta then 2602 --刷新 2603 NodeTranslator:deltaDo(0.8, 2604 function() 2605 self:freshQuick() 2606 self:getGametips() 2607 end 2608 ) 2609 end 2610 pd.ShortcutVO.df.remainTime = pd.ShortcutVO.df.remainTime - delta 2611 2612 2613 2614 local numPic = levelImage:getChildByName("Text_num") 2615 --空闲红点 2616 local redPoint = r:getChildByName("icon_redPoint") 2617 local text_num = redPoint:getChildByName("Text_num") 2618 if pd.ShortcutVO.df.baseId <= 0 then 2619 r:loadTextures(RightBtnPic[1], RightBtnPic[1], "", ResType) 2620 numPic:setString("0/1") 2621 2622 local size = numPic:getContentSize() 2623 local size1 = levelImage:getContentSize() 2624 levelImage:setContentSize(cc.size(size.width + 20, size1.height)) 2625 text_num:setString("1") 2626 redPoint:setVisible(true) 2627 2628 Count_Dev = 1 2629 else 2630 Count_Dev = 0 2631 redPoint:setVisible(false) 2632 2633 r:loadTextures(gItem[pd.ShortcutVO.df.baseId].icon, gItem[pd.ShortcutVO.df.baseId].icon, "", ResType) 2634 numPic:setString(StringTemp:toTime(pd.ShortcutVO.df.remainTime)) 2635 2636 local size = numPic:getContentSize() 2637 local size1 = levelImage:getContentSize() 2638 levelImage:setContentSize(cc.size(size.width + 20, size1.height)) 2639 2640 end 2641 2642 if FreeAnimate and FreeAnimate:isVisible() then 2643 FreeAnimate:setVisible(false) 2644 end 2645 end 2646 end 2647 local function onNodeEvent(tag) 2648 if tag == "enter" then 2649 update(0) 2650 levelImage.update = Scheduler:scheduleScriptFunc(update, 0.9, false) 2651 2652 elseif tag == "exit" then 2653 Scheduler:unscheduleScriptEntry(levelImage.update) 2654 end 2655 end 2656 levelImage:registerScriptHandler(onNodeEvent) 2657 r:addChild(levelImage, 10) 2658 end 2659 2660 2661 end 2662 2663 -- r:setVisible(true) 2664 numPos = numPos + 1 2665 end 2666 2667 --科研中心 2668 if pd.ShortcutVO.tc ~= nil then 2669 local r = self.MiddleUI:getChildByName("Button_R" .. numPos) 2670 if r ~= nil then 2671 --设置回调 2672 --装置车间 生产道具 2673 r:addTouchEventListener(function(e, t) 2674 if t == ccui.TouchEventType.ended then 2675 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 2676 local ScienceCenterView = require("src/app/views/study/ScienceCenterView") 2677 ScienceCenterView:open(self, pd:getBaseBuildData(5), 2) 2678 end 2679 end) 2680 2681 --显示等级 2682 local levelImage = r:getChildByName("Image_10") 2683 if levelImage == nil then 2684 levelImage = gLittleUi:getChildByName("Image_10"):clone() 2685 2686 local size = r:getContentSize() 2687 levelImage:setPosition( cc.p(size.width * 0.5, 11) ) 2688 2689 2690 local FreeAnimate = r:getChildByName("FreeAnimate") 2691 2692 --更新时间 2693 local function update(delta) 2694 if pd.ShortcutVO.tc ~= nil then 2695 if pd.ShortcutVO.tc.remainTime > 0 and pd.ShortcutVO.tc.remainTime < delta then 2696 --刷新 2697 NodeTranslator:deltaDo(0.8, 2698 function() 2699 self:freshQuick() 2700 self:getGametips() 2701 end 2702 ) 2703 end 2704 pd.ShortcutVO.tc.remainTime = pd.ShortcutVO.tc.remainTime - delta 2705 2706 2707 2708 local numPic = levelImage:getChildByName("Text_num") 2709 --空闲红点 2710 local redPoint = r:getChildByName("icon_redPoint") 2711 local text_num = redPoint:getChildByName("Text_num") 2712 if pd.ShortcutVO.tc.type <= 0 then 2713 r:loadTextures(RightBtnPic[2], RightBtnPic[2], "", ResType) 2714 numPic:setString("0/1") 2715 2716 local size = numPic:getContentSize() 2717 local size1 = levelImage:getContentSize() 2718 levelImage:setContentSize(cc.size(size.width + 20, size1.height)) 2719 2720 text_num:setString("1") 2721 redPoint:setVisible(true) 2722 Count_Sce = 1 2723 else 2724 Count_Sce = 0 2725 redPoint:setVisible(false) 2726 2727 r:loadTextures(ScienceStudyCfg[pd.ShortcutVO.tc.type].icon, ScienceStudyCfg[pd.ShortcutVO.tc.type].icon, "", ResType) 2728 numPic:setString(StringTemp:toTime(pd.ShortcutVO.tc.remainTime)) 2729 2730 local size = numPic:getContentSize() 2731 local size1 = levelImage:getContentSize() 2732 levelImage:setContentSize(cc.size(size.width + 20, size1.height)) 2733 end 2734 2735 if FreeAnimate and FreeAnimate:isVisible() then 2736 FreeAnimate:setVisible(false) 2737 end 2738 2739 end 2740 end 2741 local function onNodeEvent(tag) 2742 if tag == "enter" then 2743 update(0) 2744 levelImage.update = Scheduler:scheduleScriptFunc(update, 0.9, false) 2745 2746 elseif tag == "exit" then 2747 Scheduler:unscheduleScriptEntry(levelImage.update) 2748 end 2749 end 2750 levelImage:registerScriptHandler(onNodeEvent) 2751 r:addChild(levelImage, 10) 2752 end 2753 2754 2755 end 2756 2757 --r:setVisible(true) 2758 numPos = numPos + 1 2759 end 2760 2761 2762 --建筑队列 2763 if true then 2764 local r = self.MiddleUI:getChildByName("Button_R" .. numPos) 2765 if r ~= nil then 2766 --设置回调 2767 --建筑队列 2768 r:addTouchEventListener(function(e, t) 2769 if t == ccui.TouchEventType.ended then 2770 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 2771 self.PlayerInfo = PlayerInfo.new(self) 2772 self:addChild(self.PlayerInfo) 2773 self.PlayerInfo:setTabSelect(3) 2774 end 2775 end) 2776 2777 --显示等级 2778 local levelImage = r:getChildByName("Image_10") 2779 if levelImage == nil then 2780 levelImage = gLittleUi:getChildByName("Image_10"):clone() 2781 2782 local size = r:getContentSize() 2783 levelImage:setPosition( cc.p(size.width * 0.5, 11) ) 2784 2785 2786 local FreeAnimate = r:getChildByName("FreeAnimate") 2787 2788 --更新时间 2789 local function update(delta) 2790 if true then 2791 -- if pd.ShortcutVO.tc.remainTime > 0 and pd.ShortcutVO.tc.remainTime < delta then 2792 -- --刷新 2793 -- end 2794 -- pd.ShortcutVO.tc.remainTime = pd.ShortcutVO.tc.remainTime - delta 2795 2796 2797 2798 local numPic = levelImage:getChildByName("Text_num") 2799 --空闲红点 2800 local redPoint = r:getChildByName("icon_redPoint") 2801 local text_num = redPoint:getChildByName("Text_num") 2802 if pd:getBuildingNum() < pd.basicData.buildCount then 2803 r:loadTextures(RightBtnPic[3], RightBtnPic[3], "", ResType) 2804 numPic:setString(pd:getBuildingNum() .. "/" .. pd.basicData.buildCount) 2805 2806 local size = numPic:getContentSize() 2807 local size1 = levelImage:getContentSize() 2808 levelImage:setContentSize(cc.size(size.width + 20, size1.height)) 2809 2810 redPoint:setVisible(true) 2811 Count_build = pd.basicData.buildCount - pd:getBuildingNum() 2812 text_num:setString(tostring(Count_build)) 2813 2814 local FreeAnimate = r:getChildByName("FreeAnimate") 2815 if FreeAnimate and FreeAnimate:isVisible() then 2816 FreeAnimate:setVisible(false) 2817 FreeAnimate:stopAllActions() 2818 end 2819 levelImage:setVisible(true) 2820 else 2821 Count_build = 0 2822 redPoint:setVisible(false) 2823 2824 2825 local t1 = pd:getNearestBuildOver() 2826 r:loadTextures(gBuilding[t1.templateId].icon, gBuilding[t1.templateId].icon, "", ResType) 2827 if Common:getSpendByTime(t1.time) > g_SpeedUpFree then 2828 levelImage:setVisible(true) 2829 2830 numPic:setString(StringTemp:toTime(t1.time)) 2831 2832 local size = numPic:getContentSize() 2833 local size1 = levelImage:getContentSize() 2834 levelImage:setContentSize(cc.size(size.width + 20, size1.height)) 2835 2836 if FreeAnimate and FreeAnimate:isVisible() then 2837 FreeAnimate:setVisible(false) 2838 end 2839 2840 levelImage:setVisible(true) 2841 2842 else 2843 levelImage:setVisible(false) 2844 2845 if FreeAnimate and not FreeAnimate:isVisible() then 2846 FreeAnimate:setVisible(true) 2847 end 2848 end 2849 2850 2851 end 2852 2853 end 2854 end 2855 local function onNodeEvent(tag) 2856 if tag == "enter" then 2857 update(0) 2858 levelImage.update = Scheduler:scheduleScriptFunc(update, 0.9, false) 2859 2860 elseif tag == "exit" then 2861 Scheduler:unscheduleScriptEntry(levelImage.update) 2862 end 2863 end 2864 levelImage:registerScriptHandler(onNodeEvent) 2865 r:addChild(levelImage, 10) 2866 end 2867 2868 2869 end 2870 2871 --r:setVisible(true) 2872 numPos = numPos + 1 2873 end 2874 2875 --坦克 2876 if pd.ShortcutVO.tf ~= nil and #pd.ShortcutVO.tf > 0 then 2877 local r = self.MiddleUI:getChildByName("Button_R" .. numPos) 2878 if r ~= nil then 2879 --设置回调 2880 2881 2882 --显示等级 2883 local levelImage = r:getChildByName("Image_10") 2884 if levelImage == nil then 2885 levelImage = gLittleUi:getChildByName("Image_10"):clone() 2886 2887 local size = r:getContentSize() 2888 levelImage:setPosition( cc.p(size.width * 0.5, 11) ) 2889 2890 2891 local FreeAnimate = r:getChildByName("FreeAnimate") 2892 2893 --更新时间 2894 local function update(delta) 2895 if pd.ShortcutVO.tf ~= nil then 2896 2897 local activitynum = 0--有坦克正在建造的数量 2898 local idleFactory = nil--等级最高的空闲坦克工厂 2899 local timeShort = nil--时间最短的活动坦克工厂 2900 local time = 1000000000 2901 for key, var in pairs(pd.ShortcutVO.tf) do 2902 2903 if var.remainTime > 0 and var.remainTime < delta then 2904 --刷新 2905 NodeTranslator:deltaDo(0.8, 2906 function() 2907 self:freshQuick() 2908 self:getGametips() 2909 end 2910 ) 2911 end 2912 var.remainTime = var.remainTime - delta 2913 2914 if var.baseId > 0 then 2915 activitynum = activitynum + 1 2916 2917 if time > var.remainTime then 2918 time = var.remainTime 2919 timeShort = var 2920 end 2921 2922 2923 else 2924 if idleFactory == nil then 2925 idleFactory = pd:getBaseBuildData(var.templateId) 2926 else 2927 local t1 = pd:getBaseBuildData(var.templateId) 2928 if idleFactory.buildLv < t1.buildLv then 2929 idleFactory = t1 2930 end 2931 end 2932 end 2933 end 2934 2935 2936 local numPic = levelImage:getChildByName("Text_num") 2937 --空闲红点 2938 local redPoint = r:getChildByName("icon_redPoint") 2939 local text_num = redPoint:getChildByName("Text_num") 2940 if activitynum < #pd.ShortcutVO.tf then 2941 r:loadTextures(RightBtnPic[4], RightBtnPic[4], "", ResType) 2942 numPic:setString(activitynum .. "/" .. #pd.ShortcutVO.tf) 2943 2944 local size = numPic:getContentSize() 2945 local size1 = levelImage:getContentSize() 2946 levelImage:setContentSize(cc.size(size.width + 20, size1.height)) 2947 2948 2949 2950 --坦克 2951 r:addTouchEventListener(function(e, t) 2952 if t == ccui.TouchEventType.ended then 2953 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 2954 local layer = require("src/app/views/buildings/TankFactory").new(self, idleFactory) 2955 self:addChild(layer) 2956 layer:setTabSelect(2) 2957 NodeTranslator:transUp(layer, nil) 2958 end 2959 end) 2960 2961 redPoint:setVisible(true) 2962 Count_Tank = #pd.ShortcutVO.tf - activitynum 2963 text_num:setString(tostring(Count_Tank)) 2964 else 2965 Count_Tank = 0 2966 redPoint:setVisible(false) 2967 2968 r:loadTextures(Tank[timeShort.baseId].icon, Tank[timeShort.baseId].icon, "", ResType) 2969 numPic:setString(StringTemp:toTime(timeShort.remainTime)) 2970 2971 local size = numPic:getContentSize() 2972 local size1 = levelImage:getContentSize() 2973 levelImage:setContentSize(cc.size(size.width + 20, size1.height)) 2974 2975 --坦克 2976 r:addTouchEventListener(function(e, t) 2977 if t == ccui.TouchEventType.ended then 2978 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 2979 local layer = require("src/app/views/buildings/TankFactory").new(self, pd:getBaseBuildData(timeShort.templateId)) 2980 self:addChild(layer) 2981 layer:setTabSelect(2) 2982 NodeTranslator:transUp(layer, nil) 2983 end 2984 end) 2985 r:setContentSize(cc.size(100, 100)) 2986 end 2987 2988 end 2989 2990 if FreeAnimate and FreeAnimate:isVisible() then 2991 FreeAnimate:setVisible(false) 2992 end 2993 end 2994 local function onNodeEvent(tag) 2995 if tag == "enter" then 2996 update(0) 2997 levelImage.update = Scheduler:scheduleScriptFunc(update, 0.9, false) 2998 2999 elseif tag == "exit" then 3000 Scheduler:unscheduleScriptEntry(levelImage.update) 3001 end 3002 end 3003 levelImage:registerScriptHandler(onNodeEvent) 3004 r:addChild(levelImage, 10) 3005 end 3006 3007 3008 end 3009 3010 -- r:setVisible(true) 3011 numPos = numPos + 1 3012 end 3013 3014 3015 --建造队列 3016 local pre = 0 3017 local vip_builder = { 1, 3, 5, 7, 9, 11 } 3018 for key, var in ipairs(vip_builder) do 3019 if pd.basicData.vipLv < var then 3020 --PromptView:type1(title,content,btnText,btnFun,floor) 3021 --提示 3022 local DataTick = "BuildingCount_RedPoint" 3023 local r = self.MiddleUI:getChildByName("Button_R" .. numPos) 3024 if r ~= nil then 3025 r:loadTextures(RightBtnPic[5], RightBtnPic[5], "", ResType) 3026 3027 r:addTouchEventListener(function(e, t) 3028 if t == ccui.TouchEventType.ended then 3029 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 3030 if gWorldScene.ActivityRedPoint == nil then 3031 gWorldScene.ActivityRedPoint = {} 3032 end 3033 gWorldScene.ActivityRedPoint[DataTick] = true 3034 self:freshRightBtn() 3035 3036 if pre == pd.basicData.buyBuild then 3037 if key == #vip_builder then 3038 --vip9和vip10时特殊处理,显示无法购买 3039 PromptView:type1(StringRes.notice, StringRes.vip_builder_max, StringRes.ok) 3040 else 3041 PromptView:type1(StringRes.notice, 3042 string.format(StringRes.vip_builder, var) 3043 , StringRes.ok) 3044 end 3045 else 3046 PromptView:type2(StringRes.notice, string.format(StringRes.buy_build, 100), 3047 StringRes.ok, StringRes.cancel, function() 3048 local pd = PlayerData:getInstanse() 3049 3050 Connect:sendMsg("PlayerAction", "buyBuildCount", nil, 3051 function(data) 3052 --Yangjie 修改 2016-11-4 3053 PlayerData:UseGold("购买建造队列-" .. data.buyBuild, 1, pd.basicData.gold - data.gold) 3054 --pd.basicData.gold = data.gold 3055 --end 3056 pd.basicData.buyBuild = data.buyBuild 3057 self:BaseQuest() 3058 FlyWordPrompt:prompt(StringRes.prompt_buycreatNum) 3059 end, false) 3060 3061 3062 end, nil) 3063 end 3064 3065 3066 3067 3068 --测试 3069 -- pd.basicData.vipLv = pd.basicData.vipLv +1 3070 -- 3071 -- self:freshRightBtn() 3072 end 3073 end) 3074 3075 3076 end 3077 --r:setVisible(true) 3078 numPos = numPos + 1 3079 3080 local FreeAnimate = r:getChildByName("FreeAnimate") 3081 if FreeAnimate and FreeAnimate:isVisible() then 3082 FreeAnimate:setVisible(false) 3083 end 3084 3085 3086 if gWorldScene.ActivityRedPoint and gWorldScene.ActivityRedPoint[DataTick] then 3087 Count_buyBuild = 0 3088 else 3089 Count_buyBuild = 1 + key - pd.basicData.buildCount 3090 end 3091 --空闲红点 3092 local redPoint = r:getChildByName("icon_redPoint") 3093 if Count_buyBuild > 0 then 3094 redPoint:getChildByName("Text_num"):setString(tonumber(Count_buyBuild)) 3095 redPoint:setVisible(true) 3096 else 3097 redPoint:setVisible(false) 3098 end 3099 break 3100 else 3101 pre = var 3102 end 3103 end 3104 3105 -- --队伍出任务 3106 -- if pd.ShortcutVO.ts ~= nil then 3107 -- local r = self.MiddleUI:getChildByName("Button_R"..numPos) 3108 -- if r ~= nil then 3109 -- --设置回调 3110 -- --部队 3111 -- r:addTouchEventListener(function(e, t) 3112 -- if t == ccui.TouchEventType.ended then MyAudio:PlayEffect(MusicAndEffect.btnEffect) 3113 -- local TroopsView = require("src/app/views/troops/TroopsView") 3114 -- TroopsView:open(self,1,nil,2) 3115 -- end 3116 -- end) 3117 -- 3118 -- --显示等级 3119 -- local levelImage = r:getChildByName("Image_10") 3120 -- if levelImage == nil then 3121 -- levelImage = gLittleUi:getChildByName("Image_10"):clone() 3122 -- 3123 -- local size = r:getContentSize() 3124 -- levelImage:setPosition( cc.p(size.width*0.5,11) ) 3125 -- 3126 -- 3127 -- 3128 -- --更新时间 3129 -- local function update(delta) 3130 -- if pd.ShortcutVO.ts ~= nil then 3131 -- if pd.ShortcutVO.ts.remainTime < 0 and pd.ShortcutVO.ts.remainTime < delta then 3132 -- --刷新 3133 -- NodeTranslator:deltaDo(0.8, 3134 -- function () 3135 -- self:freshQuick() 3136 -- self:getGametips() 3137 -- end 3138 -- ) 3139 -- end 3140 -- pd.ShortcutVO.ts.remainTime = pd.ShortcutVO.ts.remainTime - delta 3141 -- 3142 -- 3143 -- 3144 -- local numPic = levelImage:getChildByName("Text_num") 3145 -- levelImage:setVisible(true) 3146 -- if pd.ShortcutVO.ts.type == 1 then 3147 -- r:loadTextures(RightBtnPic[6],RightBtnPic[6],"",ResType) 3148 -- r:setContentSize(cc.size(100,100)) 3149 -- numPic:setString(StringTemp:toTime(pd.ShortcutVO.ts.remainTime)) 3150 -- 3151 -- local size = numPic:getContentSize() 3152 -- local size1 = levelImage:getContentSize() 3153 -- levelImage:setContentSize(cc.size(size.width+20,size1.height)) 3154 -- elseif pd.ShortcutVO.ts.type == 2 then 3155 -- r:loadTextures(RightBtnPic[7],RightBtnPic[7],"",ResType) 3156 -- r:setContentSize(cc.size(100,100)) 3157 -- local t1 = (1-pd.ShortcutVO.ts.remainTime/pd.ShortcutVO.ts.totalTime)*100 3158 -- if t1 >= 100 then 3159 -- t1 = 100 3160 -- end 3161 -- numPic:setString( string.format("%.1f%%",t1) ) 3162 -- 3163 -- local size = numPic:getContentSize() 3164 -- local size1 = levelImage:getContentSize() 3165 -- levelImage:setContentSize(cc.size(size.width+20,size1.height)) 3166 -- elseif pd.ShortcutVO.ts.type == 3 then 3167 -- r:loadTextures(RightBtnPic[8],RightBtnPic[8],"",ResType) 3168 -- r:setContentSize(cc.size(100,100)) 3169 -- numPic:setString(StringTemp:toTime(pd.ShortcutVO.ts.remainTime)) 3170 -- 3171 -- local size = numPic:getContentSize() 3172 -- local size1 = levelImage:getContentSize() 3173 -- levelImage:setContentSize(cc.size(size.width+20,size1.height)) 3174 -- elseif pd.ShortcutVO.ts.type == 4 then 3175 -- r:loadTextures(RightBtnPic[9],RightBtnPic[9],"",ResType) 3176 -- r:setContentSize(cc.size(100,100)) 3177 -- levelImage:setVisible(false) 3178 -- end 3179 -- 3180 -- end 3181 -- end 3182 -- local function onNodeEvent(tag) 3183 -- if tag == "enter" then 3184 -- 3185 -- if pd.ShortcutVO.ts.type == 2 then 3186 -- pd.ShortcutVO.ts.totalTime = pd.ShortcutVO.ts.maxRes/pd.ShortcutVO.ts.resGather 3187 -- pd.ShortcutVO.ts.remainTime = (pd.ShortcutVO.ts.maxRes-pd.ShortcutVO.ts.nowRes)/pd.ShortcutVO.ts.resGather 3188 -- end 3189 -- 3190 -- 3191 -- update(0) 3192 -- levelImage.update = Scheduler:scheduleScriptFunc(update, 0.9, false) 3193 -- 3194 -- elseif tag == "exit" then 3195 -- Scheduler:unscheduleScriptEntry(levelImage.update) 3196 -- end 3197 -- end 3198 -- levelImage:registerScriptHandler(onNodeEvent) 3199 -- 3200 -- r:addChild(levelImage,10) 3201 -- end 3202 -- 3203 -- 3204 -- 3205 -- 3206 -- 3207 -- end 3208 -- 3209 -- r:setVisible(true) 3210 -- numPos = numPos+1 3211 -- end 3212 3213 3214 3215 self:freshBattleQuick() 3216 3217 end 3218 3219 3220 function WorldScene:freshRBtn() 3221 local r1 = self.MiddleUI:getChildByName("Button_R1") 3222 local offset = 0 3223 if not NoviceGuide:CheckOpen("mainUI") then 3224 offset = -1000 3225 end 3226 r1:setVisible(offset == 0) 3227 if self.RightBtnOpen then 3228 r1:loadTextures(openBtn[1].normal, openBtn[1].down, "", ResType) 3229 3230 --右侧按钮 3231 for i, v in pairs(RightBtn) do 3232 local rBtn = self.MiddleUI:getChildByName(v) 3233 if rBtn ~= nil then 3234 local action1 = cc.MoveTo:create(0.05 + 0.05 * i, cc.p(rBtn.openPostionX+offset, rBtn.openPostionY)) 3235 rBtn:stopAllActions() 3236 rBtn:runAction(action1) 3237 rBtn:setVisible(true) 3238 end 3239 end 3240 3241 else 3242 r1:loadTextures(openBtn[2].normal, openBtn[2].down, "", ResType) 3243 3244 local rPositionx = r1:getPositionX() 3245 local rPositiony = r1:getPositionY() 3246 3247 --右侧按钮 3248 for i, v in pairs(RightBtn) do 3249 local rBtn = self.MiddleUI:getChildByName(v) 3250 if rBtn ~= nil then 3251 if rBtn.openPostionY == nil then 3252 rBtn.openPostionX = rBtn:getPositionX() 3253 rBtn.openPostionY = rBtn:getPositionY() 3254 end 3255 rBtn:setVisible(false) 3256 local action1 = cc.MoveTo:create(0.05 + 0.05 * i, cc.p(rPositionx+offset, rPositiony)) 3257 rBtn:stopAllActions() 3258 rBtn:runAction(action1) 3259 end 3260 end 3261 end 3262 end 3263 3264 function WorldScene:R1Hide() 3265 self.RightBtnOpen = false 3266 self:freshRBtn() 3267 end 3268 3269 function WorldScene:rigesterR1() 3270 --右侧按钮展开 3271 local r1 = self.MiddleUI:getChildByName("Button_R1") 3272 3273 r1:addTouchEventListener(function(e, t) 3274 if t == ccui.TouchEventType.ended then 3275 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 3276 3277 self.RightBtnOpen = not self.RightBtnOpen 3278 3279 self:freshRBtn() 3280 end 3281 end ) 3282 end 3283 3284 -- 更新郊外矿产信息 3285 function WorldScene:refreshOutSide(...) 3286 -- 统计铁矿数量 3287 local pd = PlayerData:getInstanse() 3288 if pd ~= nil then 3289 --local table = pd:getBuildNumById(14, 15, 16) 3290 self.BtnOutSide.BtnOutSide_iron.txt:setString(pd:getBuildNumById(14)) 3291 self.BtnOutSide.BtnOutSide_oil.txt:setString(pd:getBuildNumById(15)) 3292 self.BtnOutSide.BtnOutSide_Al.txt:setString(pd:getBuildNumById(16)) 3293 end 3294 end 3295 3296 -- 郊外矿产 3297 function WorldScene:rigesterBtnOutSide() 3298 -- 右侧按钮展开 3299 self.BtnOutSide.BtnOutSide_Switch:addTouchEventListener( function(e, t) 3300 if t == ccui.TouchEventType.ended then 3301 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 3302 self:freshBtnOutSide(e.state) 3303 end 3304 end) 3305 end 3306 3307 -- 郊外矿产动画 3308 function WorldScene:freshBtnOutSide(state) 3309 3310 local width = self.BtnOutSide:getContentSize().width 3311 if state then 3312 local action1 = cc.MoveTo:create(0.3, self.BtnOutSide.startPos) 3313 local action = cc.Sequence:create(action1, cc.CallFunc:create( function() 3314 self.BtnOutSide.BtnOutSide_Switch:loadTextures(openBtn[3].normal, openBtn[3].down, "", ResType) 3315 end )) 3316 self.BtnOutSide:stopAllActions() 3317 self.BtnOutSide:runAction(action) 3318 else 3319 local action1 = cc.MoveTo:create(0.3, self.BtnOutSide.endPos) 3320 local action = cc.Sequence:create(action1, cc.CallFunc:create( function() 3321 self.BtnOutSide.BtnOutSide_Switch:loadTextures(openBtn[4].normal, openBtn[4].down, "", ResType) 3322 end )) 3323 self.BtnOutSide:stopAllActions() 3324 self.BtnOutSide:runAction(action) 3325 end 3326 self.BtnOutSide.BtnOutSide_Switch.state = not state 3327 3328 end 3329 3330 3331 --我也不晓得是啥子函数Tank[var.tankTemplateId].icon 3332 function WorldScene:dontKnow(node1, path, t, sca) 3333 if t then 3334 --local scale = 1 3335 local numnode = node1:getChildByName("Image_8") 3336 if numnode == nil then 3337 numnode = gLittleUi:getChildByName("Image_8"):clone() 3338 scale = numnode:getChildByName("Image_icon"):getScale() 3339 3340 node1:addChild(numnode) 3341 local size = node1:getContentSize() 3342 numnode:setPosition( cc.p(size.width * 0.5, size.height * 0.5 + 20) ) 3343 3344 end 3345 Common:changePic(numnode:getChildByName("Image_icon"), path) 3346 --numnode:getChildByName("Image_icon"):loadTexture(path,ResType) 3347 if sca ~= nil then 3348 --numnode:getChildByName("Image_icon"):setScale(sca) 3349 end 3350 3351 else 3352 local numnode = node1:getChildByName("Image_8") 3353 if numnode ~= nil then 3354 node1:removeChild(numnode) 3355 end 3356 end 3357 end 3358 3359 3360 function WorldScene:freshGametips() 3361 local pd = PlayerData:getInstanse() 3362 if pd.getGametipsVO ~= nil then 3363 --抽奖 3364 local rewardButton = self.MiddleUI:getChildByName("Button_L2") 3365 --rewardButton:setVisible(false) 3366 if pd.getGametipsVO.normalDraw + pd.getGametipsVO.seniorDraw > 0 or pd.getGametipsVO.luckgold > 0 then 3367 Animation:playAnimation2(rewardButton, gUIeffect[34].effect, 1) 3368 else 3369 Animation:stopAnimation(rewardButton, gUIeffect[34].effect) 3370 end 3371 3372 --签到/7天 3373 local signButton = self.MiddleUI:getChildByName("Button_L3") 3374 if pd.getGametipsVO.have7dayGift + pd.getGametipsVO.haveSignGift > 0 then 3375 Animation:playAnimation2(signButton, gUIeffect[34].effect, 1) 3376 else 3377 Animation:stopAnimation(signButton, gUIeffect[34].effect) 3378 end 3379 3380 --任务数量 3381 --刷新主界面提示信息 3382 local taskIcon = { 3383 task = "res/pic/mainmap/ui_botton/btn_task.png", 3384 task1 = "res/pic/mainmap/ui_botton/btn_taskPress.png", 3385 taskdone = "res/pic/mainmap/ui_botton/btn_taskdone.png", 3386 taskdone1 = "res/pic/mainmap/ui_botton/btn_taskdonePress.png", 3387 } 3388 local list = self.BottomUI:getChildByName("ListView_1") 3389 local taskButton = self.BottomUI:getChildByName("Button_task") 3390 if pd.getGametipsVO.taskTips > 0 then 3391 taskButton:loadTextures(taskIcon.taskdone, taskIcon.taskdone1, "", ResType) 3392 3393 local anim = Animation:playAnimation2(taskButton, gUIeffect[34].effect, 1) 3394 if anim ~= nil then 3395 local x, y = anim:getPosition() 3396 anim:setPosition(cc.p(x,y+5)) 3397 end 3398 3399 else 3400 3401 taskButton:loadTextures(taskIcon.task,taskIcon.task1,"",ResType) 3402 Animation:stopAnimation(taskButton,gUIeffect[34].effect) 3403 end 3404 3405 --活动 3406 local activityButton = self.MiddleUI:getChildByName("Button_L5") 3407 3408 3409 --每日福利红点 3410 3411 local MainActivity = require("src/app/views/activity/MainActivity.lua") 3412 MainActivity:getActivityTips(function(count) 3413 local num1 = 0 3414 if pd.noticeVOs ~= nil then 3415 for key, var in pairs(pd.noticeVOs) do 3416 if Common:getJsonData("Announcement",var.id) == 0 then 3417 num1 = num1 + 1 3418 end 3419 end 3420 end 3421 3422 local activityNum = count + MainActivity:getEveryDayRedPoint() + num1 3423 if activityNum > 0 then 3424 Animation:showNum(activityButton,gLittleUi:getChildByName("Image_7"):clone(),activityNum) 3425 Animation:playAnimation2(activityButton, gUIeffect[34].effect, 1) 3426 else 3427 Animation:hideNum(activityButton, gLittleUi:getChildByName("Image_7")) 3428 Animation:stopAnimation(activityButton, gUIeffect[34].effect) 3429 end 3430 end) 3431 3432 --for key, var in pairs(pd.noticeVOs) do 3433 --for key, var in pairs(pd.openActivityTypes) do 3434 3435 3436 --部队提示 3437 --列表 3438 local list = self.BottomUI:getChildByName("ListView_1") 3439 local budui = self.BottomUI:getChildByName("Button_4") 3440 if pd.getGametipsVO.troopTips > 0 then 3441 Animation:showNum(budui, gLittleUi:getChildByName("Image_7"):clone(), pd.getGametipsVO.troopTips) 3442 else 3443 Animation:hideNum(budui, gLittleUi:getChildByName("Image_7")) 3444 end 3445 3446 --邮件提示 3447 local budui = self.BottomUI:getChildByName("Button_6") 3448 if pd.getGametipsVO.mailTips > 0 then 3449 Animation:showNum(budui, gLittleUi:getChildByName("Image_7"):clone(), pd.getGametipsVO.mailTips) 3450 else 3451 Animation:hideNum(budui, gLittleUi:getChildByName("Image_7")) 3452 end 3453 3454 --坦克工厂 3455 --建筑提示 3456 for key, var in pairs(pd.getGametipsVO.tankFactoryTipss) do 3457 3458 local btnKey = self.BaseBgButton:getChildByName(BuildId2Button[var.buildId]) 3459 local btnBuildFree = btnKey:getChildByName("Button_Free") 3460 3461 if var.tankTemplateId > 0 and (btnBuildFree == nil or not btnBuildFree:isVisible()) then 3462 WorldScene:dontKnow(btnKey, Tank[var.tankTemplateId].icon, true, 0.4) 3463 3464 --动画 3465 --fdasfda 3466 if btnKey:getChildByName("c_art") == nil then 3467 local an = Animation:createAnimation(gBuilding[var.buildId].c_art) 3468 if an ~= nil then 3469 btnKey:addChild(an, 1) 3470 an:setName("c_art") 3471 3472 if btnKey:getChildByName("Image_Base") ~= nil then 3473 btnKey:getChildByName("Image_Base"):setVisible(false) 3474 end 3475 end 3476 end 3477 else 3478 WorldScene:dontKnow(btnKey, "", false) 3479 if btnKey:getChildByName("c_art") ~= nil then 3480 btnKey:removeChild(btnKey:getChildByName("c_art")) 3481 if btnKey:getChildByName("Image_Base") ~= nil then 3482 btnKey:getChildByName("Image_Base"):setVisible(true) 3483 end 3484 end 3485 end 3486 3487 3488 end 3489 3490 --红警演习,补给线,领地战 3491 local btnKey = self.BaseBgButton:getChildByName(BuildId2Button[13]) 3492 if btnKey.buildVo and btnKey.buildVo.buildLv > 0 and (pd.getGametipsVO.arenaTips > 0 or (pd.getGametipsVO.supplyTips > 0 and SaveDataManager:GetTimePass("SupplyLine") > 3600) or pd.getGametipsVO.guildWarTips > 0) then 3493 --WorldScene:dontKnow(btnKey,"pic/accessory/btn/btn_supply_line.png",true) 3494 PublicMethod:showBanshouAnimation(btnKey, true) 3495 else 3496 --WorldScene:dontKnow(btnKey,"",false) 3497 PublicMethod:showBanshouAnimation(btnKey, false) 3498 end 3499 3500 3501 --配件工厂 3502 local btnKey = self.BaseBgButton:getChildByName(BuildId2Button[12]) 3503 if pd.getGametipsVO.partTips > 0 then 3504 PublicMethod:showBanshouAnimation(btnKey, true) 3505 else 3506 PublicMethod:showBanshouAnimation(btnKey, false) 3507 end 3508 3509 --[[ 3510 if pd.getGametipsVO.partTips > 0 then 3511 --WorldScene:dontKnow(btnKey,Tank[pd.getGametipsVO.reformFactoryTips].icon,true,0.4) 3512 3513 3514 --动画 3515 --fdasfda 3516 if btnKey:getChildByName("c_art") == nil then 3517 local an = Animation:createAnimation(gBuilding[8].c_art) 3518 if an ~= nil then 3519 btnKey:addChild(an,1) 3520 an:setName("c_art") 3521 3522 if btnKey:getChildByName("Image_Base") ~= nil then 3523 btnKey:getChildByName("Image_Base"):setVisible(false) 3524 end 3525 end 3526 end 3527 3528 else 3529 --WorldScene:dontKnow(btnKey,"",false) 3530 if btnKey:getChildByName("c_art") ~= nil then 3531 btnKey:removeChild(btnKey:getChildByName("c_art")) 3532 if btnKey:getChildByName("Image_Base") ~= nil then 3533 btnKey:getChildByName("Image_Base"):setVisible(true) 3534 end 3535 end 3536 end 3537 --]] 3538 3539 3540 --改装车间 3541 local btnKey = self.BaseBgButton:getChildByName(BuildId2Button[11]) 3542 local btnBuildFree = btnKey:getChildByName("Button_Free") 3543 3544 if pd.getGametipsVO.reformFactoryTips > 0 and (btnBuildFree == nil or not btnBuildFree:isVisible()) then 3545 WorldScene:dontKnow(btnKey, Tank[pd.getGametipsVO.reformFactoryTips].icon, true, 0.4) 3546 3547 3548 --动画 3549 --fdasfda 3550 if btnKey:getChildByName("c_art") == nil then 3551 local an = Animation:createAnimation(gBuilding[11].c_art) 3552 if an ~= nil then 3553 btnKey:addChild(an, 1) 3554 an:setName("c_art") 3555 if btnKey:getChildByName("Image_Base") ~= nil then 3556 btnKey:getChildByName("Image_Base"):setVisible(false) 3557 end 3558 end 3559 end 3560 3561 else 3562 WorldScene:dontKnow(btnKey, "", false) 3563 if btnKey:getChildByName("c_art") ~= nil then 3564 btnKey:removeChild(btnKey:getChildByName("c_art")) 3565 if btnKey:getChildByName("Image_Base") ~= nil then 3566 btnKey:getChildByName("Image_Base"):setVisible(true) 3567 end 3568 end 3569 end 3570 3571 --装置车间 3572 local btnKey = self.BaseBgButton:getChildByName(BuildId2Button[8]) 3573 if pd.getGametipsVO.deviceFactoryTips > 0 then 3574 WorldScene:dontKnow(btnKey, gItem[pd.getGametipsVO.deviceFactoryTips].icon, true) 3575 3576 --动画 3577 --fdasfda 3578 if btnKey:getChildByName("c_art") == nil then 3579 local an = Animation:createAnimation(gBuilding[8].c_art) 3580 if an ~= nil then 3581 btnKey:addChild(an, 1) 3582 an:setName("c_art") 3583 if btnKey:getChildByName("Image_Base") ~= nil then 3584 btnKey:getChildByName("Image_Base"):setVisible(false) 3585 end 3586 end 3587 end 3588 3589 else 3590 WorldScene:dontKnow(btnKey, "", false) 3591 if btnKey:getChildByName("c_art") ~= nil then 3592 btnKey:removeChild(btnKey:getChildByName("c_art")) 3593 if btnKey:getChildByName("Image_Base") ~= nil then 3594 btnKey:getChildByName("Image_Base"):setVisible(true) 3595 end 3596 end 3597 end 3598 3599 --科技中心 3600 local btnKey = self.BaseBgButton:getChildByName(BuildId2Button[5]) 3601 local btnBuildFree = btnKey:getChildByName("Button_Free") 3602 3603 if pd.getGametipsVO.techCenterTips > 0 and (btnBuildFree == nil or not btnBuildFree:isVisible()) then 3604 3605 3606 --动画 3607 --fdasfda 3608 if btnKey:getChildByName("c_art") == nil then 3609 local an = Animation:createAnimation(gBuilding[5].c_art) 3610 if an ~= nil then 3611 btnKey:addChild(an) 3612 an:setName("c_art") 3613 if btnKey:getChildByName("Image_Base") ~= nil then 3614 btnKey:getChildByName("Image_Base"):setVisible(false) 3615 end 3616 end 3617 end 3618 WorldScene:dontKnow(btnKey, ScienceStudyCfg[pd.getGametipsVO.techCenterTips].icon, true) 3619 else 3620 WorldScene:dontKnow(btnKey, "", false) 3621 if btnKey:getChildByName("c_art") ~= nil then 3622 btnKey:removeChild(btnKey:getChildByName("c_art")) 3623 if btnKey:getChildByName("Image_Base") ~= nil then 3624 btnKey:getChildByName("Image_Base"):setVisible(true) 3625 end 3626 end 3627 end 3628 3629 --军团 3630 local btnKey = self.BaseBgButton:getChildByName(BuildId2Button[4]) 3631 if pd.basicData.guildId ~= 0 then 3632 3633 -- todo 去掉军团的动画 3634 --if btnKey:getChildByName("c_art") == nil then 3635 -- local an = Animation:createAnimation(gBuilding[4].c_art) 3636 -- if an ~= nil then 3637 -- btnKey:addChild(an,1) 3638 -- an:setName("c_art") 3639 -- if btnKey:getChildByName("Image_Base") ~= nil then 3640 -- btnKey:getChildByName("Image_Base"):setVisible(false) 3641 -- end 3642 -- end 3643 --end 3644 else 3645 if btnKey:getChildByName("c_art") ~= nil then 3646 btnKey:removeChild(btnKey:getChildByName("c_art")) 3647 if btnKey:getChildByName("Image_Base") ~= nil then 3648 btnKey:getChildByName("Image_Base"):setVisible(true) 3649 end 3650 end 3651 end 3652 3653 3654 3655 --战斗学院 3656 local btnKey = self.BaseBgButton:getChildByName(BuildId2Button[9]) 3657 if btnKey.buildVo and btnKey.buildVo.buildLv > 0 and pd.getGametipsVO.commanderRecruit > 0 then 3658 --WorldScene:dontKnow(btnKey,"res/pic/academy/manage/skill/icon_skill_31.png",true) 3659 PublicMethod:showBanshouAnimation(btnKey, true) 3660 else 3661 --WorldScene:dontKnow(btnKey,"",false) 3662 PublicMethod:showBanshouAnimation(btnKey, false) 3663 end 3664 3665 3666 --buff 3667 local bufflist = self.MiddleUI:getChildByName("ListView_1") 3668 bufflist:removeAllItems() 3669 local res = { 3670 [1] = "pic/mainmap_left/icon/icon_protect.png", 3671 [2] = "pic/mainmap_left/icon/icon_attack.png", 3672 [3] = "pic/mainmap_left/icon/icon_resource.png", 3673 } 3674 local t = "0,0,0" 3675 local bufs = StringTemp:Split(pd.getGametipsVO.buffTips, ",") 3676 for key, var in pairs(bufs) do 3677 if var == "1" then 3678 local mode = self.MiddleUI:getChildByName("buff_mode"):clone() 3679 mode:loadTexture(res[key], ResType) 3680 3681 mode:addTouchEventListener(function(e, t) 3682 if t == ccui.TouchEventType.ended then 3683 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 3684 require("src/app/views/buff/BuffInfo"):show(self) 3685 end 3686 end) 3687 3688 bufflist:pushBackCustomItem(mode) 3689 end 3690 end 3691 3692 --奖励中心 3693 self.MiddleUI:getChildByName("Buttonjiangli_10"):setVisible(pd.getGametipsVO.haveRewardGift and pd.getGametipsVO.haveRewardGift == 1) 3694 require("src/app/unit/Airborne"):updateBox(pd.getGametipsVO.airborneId) 3695 end 3696 3697 end 3698 3699 3700 3701 --处理刚获取的公告 3702 function WorldScene:doAnnouncement() 3703 local pd = PlayerData:getInstanse() 3704 --local t = {1,2,3} 3705 --UserDefault:setStringForKey("Announcement",cjson.encode(t)) 3706 local annou = cjson.decode(UserDefault:getStringForKey("Announcement")) 3707 3708 for key, var in pairs(pd.noticeVOs) do 3709 if annou ~= nil and annou[var.id] == 1 then 3710 var.state = 1 3711 else 3712 var.state = 0 3713 end 3714 end 3715 3716 --local tt = 0 3717 end 3718 3719 3720 --WorldScene:doAnnouncement() 3721 3722 --拉取公告 3723 function WorldScene:getAnnouncement() 3724 local pd = PlayerData:getInstanse() 3725 3726 Connect:sendMsg("PlayerAction", "getNotice", nil, 3727 function(data) 3728 --更新数据 3729 pd.noticeVOs = data.noticeVOs 3730 self:freshGametips() 3731 end, false) 3732 end 3733 3734 3735 --拉取活动 3736 function WorldScene:getActivity() 3737 local pd = PlayerData:getInstanse() 3738 3739 Connect:sendMsg("ActivityAction", "openActivityList", nil, 3740 function(data) 3741 --更新数据 3742 pd.openActivityTypes = data.openActivityTypes 3743 self:freshGametips() 3744 end, false) 3745 end 3746 3747 3748 3749 --拉去提示信息gWorldScene:getGametips() 3750 function WorldScene:getGametips() 3751 local pd = PlayerData:getInstanse() 3752 3753 Connect:sendMsg("InterfaceAction", "getGametips", nil, 3754 function(data) 3755 --更新数据 3756 pd.getGametipsVO = data 3757 self:freshGametips() 3758 app:dispatchEvent({ name = "FreshOnGetGameTips" }) 3759 end, false) 3760 end 3761 3762 3763 function WorldScene:removeMission() 3764 local mission = gWorldScene:getChildByName("Mission") 3765 gWorldScene:removeChild(mission) 3766 end 3767 3768 --底部按钮初始化 3769 function WorldScene:initBottomBtn() 3770 3771 local pd = PlayerData:getInstanse() 3772 3773 --背景切换 3774 local turnBg = self.BottomUI:getChildByName("Button_1") 3775 turnBg:addTouchEventListener(function(e, t) 3776 if t == ccui.TouchEventType.ended then 3777 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 3778 self:TurnToNextBg() 3779 end 3780 end) 3781 --列表 3782 local list = self.BottomUI:getChildByName("ListView_1") 3783 3784 3785 --关卡 3786 local guanqia = self.BottomUI:getChildByName("Button_2") 3787 guanqia:addTouchEventListener(function(e, t) 3788 if t == ccui.TouchEventType.ended then 3789 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 3790 Animation:stopAnimation(guanqia, gUIeffect[34].effect) 3791 self:gotoPve() 3792 end 3793 end) 3794 --邮件 3795 local guanqia = self.BottomUI:getChildByName("Button_6") 3796 local MailMainView = require("src/app/views/mail/MailMainView") 3797 -- local v= MailMainView:open(self) --緩存 3798 --v:close() 3799 guanqia:addTouchEventListener(function(e, t) 3800 if t == ccui.TouchEventType.ended then 3801 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 3802 NoviceGuide:complete("_CustomAction", "ClickMailBtn") 3803 MailMainView:open(self) 3804 end 3805 end) 3806 --设置 3807 local guanqia = list:getChildByName("Button_12") 3808 guanqia:addTouchEventListener(function(e, t) 3809 if t == ccui.TouchEventType.ended then 3810 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 3811 local SystemSetView = require("src/app/views/system/SystemSetView") 3812 SystemSetView:open(self) 3813 3814 end 3815 end) 3816 if SDKPlatform:getSDKId() == "109" then 3817 list:removeLastItem() 3818 end 3819 3820 --guanqia:setVisible(true) 3821 --好友 3822 local guanqia = list:getChildByName("Button_11") 3823 guanqia:addTouchEventListener(function(e, t) 3824 if t == ccui.TouchEventType.ended then 3825 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 3826 local FriendMainView = require("src/app/views/friend/FriendMainView") 3827 FriendMainView:open(self) 3828 end 3829 end) 3830 3831 --部队 3832 local guanqia = self.BottomUI:getChildByName("Button_4") 3833 guanqia:addTouchEventListener(function(e, t) 3834 if t == ccui.TouchEventType.ended then 3835 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 3836 local TroopsView = require("src/app/views/troops/TroopsView") 3837 TroopsView:open(self, 1) 3838 end 3839 end) 3840 3841 --兑换 3842 if device.platform == "ios" then 3843 Connect:sendMsg("PayAction", "isSpecialMonthCard", nil, 3844 function(newdata) 3845 local exchange = list:getChildByName("Button_9") 3846 if newdata.haveExchange == 1 then 3847 exchange:addTouchEventListener(function(e, t) 3848 if t == ccui.TouchEventType.ended then 3849 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 3850 local ExchangeView = require("src/app/views/activity/ExchangeView") 3851 ExchangeView:open(self) 3852 end 3853 end) 3854 else 3855 exchange:getChildByName("Text_9"):setString(StringRes.Ios_Exchange_Text) 3856 end 3857 end) 3858 else 3859 local exchange = list:getChildByName("Button_9") 3860 exchange:addTouchEventListener(function(e, t) 3861 if t == ccui.TouchEventType.ended then 3862 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 3863 local ExchangeView = require("src/app/views/activity/ExchangeView") 3864 ExchangeView:open(self) 3865 end 3866 end) 3867 end 3868 3869 3870 if gExchange_btn == 0 then 3871 list:removeItem(list:getIndex(exchange)) 3872 --exchange:removeFromParent() 3873 end 3874 3875 --背包 3876 local beibao = self.BottomUI:getChildByName("Button_7") 3877 beibao:addTouchEventListener(function(e, t) 3878 if t == ccui.TouchEventType.ended then 3879 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 3880 --NodeTranslator:changeColor(beibao,function() 3881 local bb = BagAndStore.new(self, 1) 3882 self:addChild(bb) 3883 --end) 3884 3885 3886 end 3887 end) 3888 --商店 3889 local store = list:getChildByName("Button_5") 3890 store:addTouchEventListener(function(e, t) 3891 if t == ccui.TouchEventType.ended then 3892 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 3893 local bb = BagAndStore.new(self, 2) 3894 self:addChild(bb) 3895 end 3896 end) 3897 3898 3899 --帮助 3900 local ranks = list:getChildByName("Button_10") 3901 ranks:addTouchEventListener(function(e, t) 3902 if t == ccui.TouchEventType.ended then 3903 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 3904 require("src/app/views/help/Help"):show(self) 3905 end 3906 end) 3907 3908 end 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 local bgBtnPic = { 3920 [1] = { normal = "res/pic/mainmap/ui_botton/btn_resource.png", down = "res/pic/mainmap/ui_botton/btn_resourcePress.png", words = "btnword_skirts" }, 3921 [2] = { normal = "res/pic/mainmap/ui_botton/btn_world.png", down = "res/pic/mainmap/ui_botton/btn_worldPress.png", words = "btnword_world" }, 3922 [3] = { normal = "res/pic/mainmap/ui_botton/btn_main.png", down = "res/pic/mainmap/ui_botton/btn_mainPress.png", words = "btnword_base" }, 3923 } 3924 --切换按钮 3925 function WorldScene:ChangeTurnBtn() 3926 local turnBg = self.BottomUI:getChildByName("Button_1") 3927 --turnBg:getChildByName("Text_left"):setString(StringRes.btnword_goto) 3928 if PlayerData:getInstanse().basicData.lv < 3 and self.BgPage == 2 then 3929 --turnBg:loadTextures(bgBtnPic[3].normal, bgBtnPic[3].down, "", ResType) 3930 3931 -- turnBg:getChildByName("Text_1"):setString(StringRes[bgBtnPic[3].words]) 3932 else 3933 --turnBg:loadTextures(bgBtnPic[self.BgPage].normal, bgBtnPic[self.BgPage].down, "", ResType) 3934 if self.BgPage == 1 then 3935 Animation:stopAnimation(turnBg,gUIeffect[38].effect) 3936 Animation:playAnimation4(turnBg, gUIeffect[37].effect,1,0.5,0.5) 3937 else 3938 Animation:stopAnimation(turnBg,gUIeffect[37].effect) 3939 Animation:playAnimation4(turnBg, gUIeffect[38].effect,1,0.5,0.5) 3940 end 3941 -- turnBg:getChildByName("Text_1"):setString(StringRes[bgBtnPic[self.BgPage].words]) 3942 end 3943 end 3944 3945 --背景切换 3946 function WorldScene:TurnToNextBg() 3947 self.BgPage = self.BgPage + 1 3948 -- 基地和郊外合并后的处理发上来 3949 if self.BgPage == 2 then 3950 self.BgPage = 3 3951 end 3952 if self.BgPage > 3 then 3953 self.BgPage = 1 3954 end 3955 3956 3957 local pd = PlayerData:getInstanse() 3958 --等级小于3不开放世界 3959 if pd.basicData == nil then 3960 3961 self:TurnBgQuest() 3962 return 3963 end 3964 3965 --测试 3966 --pd.basicData.lv = 10 3967 3968 if pd.basicData.lv < 3 then 3969 if self.BgPage > 2 then 3970 FlyWordPrompt:prompt(StringRes.world_unlock_info) 3971 self.BgPage = 1 3972 end 3973 end 3974 self:TurnBgQuest() 3975 3976 end 3977 3978 --跳转世界界面并移动到指定坐标() yangjie 2017-4-26 3979 function WorldScene:TurnToPosition(PosX, PosY) 3980 3981 local pd = PlayerData:getInstanse() 3982 --等级小于3不开放世界 3983 3984 if not pd.basicData or pd.basicData.lv < 3 then 3985 FlyWordPrompt:prompt(StringRes.world_unlock_info) 3986 return false 3987 end 3988 3989 gField.isFirstPos = false 3990 gField:setCurCenterCell(PosX + 1, PosY + 1) 3991 gField:showCoordinateEx(PosX, PosY) 3992 self:toField() 3993 return true 3994 end 3995 3996 --切换到基地 3997 function WorldScene:toBase() 3998 self.BgPage = 1 3999 self:TurnBgQuest() 4000 end 4001 4002 --切换到世界地图 4003 function WorldScene:toField() 4004 self.BgPage = 2 4005 self:TurnToNextBg() 4006 end 4007 4008 --处理雕像 4009 function WorldScene:doDiaoxiang() 4010 local pd = PlayerData:getInstanse() 4011 local name = pd.arenaNO1Name 4012 local name_PVP = pd.globalPVPNO1Name; 4013 if name == nil then 4014 name = "" 4015 end 4016 4017 if name == "" then 4018 name = StringRes.text_world00032 4019 end 4020 4021 if name_PVP == nil then 4022 name_PVP = ""; 4023 end 4024 if name_PVP == "" then 4025 name_PVP = StringRes.text_world00032; 4026 end 4027 4028 local diaoxiang = gWorldScene.BaseBg:getChildByName("ScrollView_1"):getChildByName("homeMap_mi"):getChildByName("Button_arena_top") 4029 diaoxiang:getChildByName("text_name"):setString(name) 4030 4031 local t1 = diaoxiang:getChildByName("text_name"):getContentSize() 4032 local t2 = diaoxiang:getChildByName("panel_name_bg"):getContentSize() 4033 diaoxiang:getChildByName("panel_name_bg"):setScaleX((t1.width + 50) / t2.width) 4034 4035 4036 --膜拜 4037 gWorldScene.btn_Worship = gWorldScene.BaseBg:getChildByName("ScrollView_1"):getChildByName("homeMap_mi"):getChildByName("Button_Champion") 4038 gWorldScene.btn_Worship:addTouchEventListener(function(e, t) 4039 if t == ccui.TouchEventType.ended then 4040 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 4041 require("src/app/views/Competition/CompetitionMain.lua"):open(self) 4042 end 4043 end) 4044 gWorldScene.text_Name_PVP = gWorldScene.BaseBg:getChildByName("ScrollView_1"):getChildByName("homeMap_mi"):getChildByName("Button_Champion"):getChildByName("text_name_Champion"); 4045 gWorldScene.text_Name_PVP:setString(name_PVP); 4046 end 4047 4048 4049 function WorldScene:BaseQuest(b) 4050 local pd = PlayerData:getInstanse() 4051 Connect:sendMsg("InterfaceAction", "loadInterface", nil, 4052 function(data) 4053 --更新数据 4054 --基本数据 4055 --Yangjie 更换统一接口 2016-11-2 4056 pd:setBasicData(data.playerInfoVO) 4057 pd:setmaxCharId(data.maxCharId) 4058 --pd.basicData = data.playerInfoVO 4059 --Yangjie end 4060 --基础建筑 4061 pd.baseBuild = data.middleInterfaceVOs 4062 4063 --坦克 4064 pd.tanks = data.troops 4065 4066 --坦克附加属性 4067 pd.warUnitAddAttrs = data.warUnitAddAttrs 4068 4069 --郊外建筑 4070 pd.outSideBuild = data.outskirtsInterfaceVO.outskirtsBlockVOs 4071 4072 --敌军来袭 4073 pd.EnemyIncoming = data.atkWorldInfoVOs 4074 self:freshEnemyIncoming() 4075 4076 pd.FriendTroop = {} 4077 for key, var in pairs(data.garrisonTroopVOs) do 4078 pd.FriendTroop[var.playerId .. var.armyId] = var 4079 end 4080 self:freshTroop() 4081 4082 --更新数据 4083 pd.ShortcutVO = data.shortcutInfo 4084 self:freshRightBtn() 4085 4086 --更新页面 4087 self:FreshTopPage() 4088 self:FreshBGPage() 4089 4090 self:ChangeTurnBtn() 4091 4092 -- 4093 --更新数据 4094 pd.notifyItesmCountVO = data.notifyItesmCountVO 4095 pd.notifyItesmCountVO.changed = true 4096 self:freshNewTaskNum() 4097 4098 4099 4100 --连接聊天服务器 4101 ChatServer:conect(function() 4102 --ChatServer:sendchat(1,"fds fseeds fessss sss fdsa","") 4103 end) 4104 4105 --日志 4106 statistics:sendLogin() 4107 4108 --检测礼包 4109 pd.newGiftVOs = data.newGiftVOs 4110 pd.combatGiftVOs = data.combatGiftVOs 4111 pd.timeGiftVO = data.timeGiftVO 4112 pd.timeGiftVO.canAttach = false 4113 pd.combatGiftTotalTime = data.combatGiftTotalTime 4114 pd.combatGiftRemainingTime = data.combatGiftRemainingTime 4115 4116 self:refreshSignIcon(data.signOr7day) 4117 4118 require("app/util/MainMapPopoutUtils"):checkPopout(self) 4119 4120 4121 4122 self:showName(false) 4123 pd.arenaNO1Name = data.arenaNO1Name 4124 pd.globalPVPNO1Name = data.globalPVPNO1Name; 4125 self:doDiaoxiang() 4126 NoviceGuide:start(gWorldScene) 4127 end, b) 4128 end 4129 4130 function WorldScene:refreshSignIcon(state) 4131 local pd = PlayerData:getInstanse() 4132 pd.signOr7day = state 4133 local battleTest = self.MiddleUI:getChildByName("Button_L3") 4134 if battleTest then 4135 if state == 1 then 4136 battleTest:loadTextureNormal(ResIconCfg.icon7days) 4137 battleTest:loadTexturePressed(ResIconCfg.icon7days) 4138 elseif state == 2 then 4139 battleTest:loadTextureNormal(ResIconCfg.icon30days) 4140 battleTest:loadTexturePressed(ResIconCfg.icon30days) 4141 end 4142 end 4143 end 4144 4145 4146 --弹出空地提示 4147 function WorldScene:CheckSpaceOutSide() 4148 local pd = PlayerData:getInstanse() 4149 local outsidedata = pd:getSpaceOutSide() 4150 if outsidedata ~= nil and not NoviceGuide:getState() then 4151 self.MiddleUI:getChildByName("panel_prompt"):setVisible(false) 4152 4153 local iknow = self.MiddleUI:getChildByName("panel_prompt"):getChildByName("text_01") 4154 iknow:addTouchEventListener(function(e, t) 4155 if t == ccui.TouchEventType.ended then 4156 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 4157 self.MiddleUI:getChildByName("panel_prompt"):setVisible(false) 4158 4159 end 4160 end) 4161 4162 local gotooutside = self.MiddleUI:getChildByName("panel_prompt"):getChildByName("text_02") 4163 gotooutside:addTouchEventListener(function(e, t) 4164 if t == ccui.TouchEventType.ended then 4165 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 4166 self.BgPage = 2 4167 self:TurnBgQuest() 4168 4169 self.MiddleUI:getChildByName("panel_prompt"):setVisible(false) 4170 4171 local btnKey = gBlock[outsidedata.blockId].position 4172 local btn = self.OutSideGbButton:getChildByName(btnKey) 4173 4174 -- 节点层级少了ScrollView 4175 local sv = self.OutSideBg:getChildByName("ScrollView_1") 4176 if sv then 4177 local x, y = btn:getPosition() 4178 local inner = sv:getInnerContainer():setPosition(cc.p(0, 0)) 4179 --sv:jumpToPercentBothDirection(cc.p(-x,y)) 4180 sv:jumpToPercentBothDirection(cc.p(-x + 640 / 2, -y)) 4181 end 4182 --btn:setColor(cc.c3b(250,50,50)) 4183 4184 --btn:runAction(cc.Sequence:create(cc.ScaleTo:create(1.2,1.2),cc.ScaleTo:create(1.2,1.0),nil)) 4185 NodeTranslator:bigchangeColor(btn, nil) 4186 4187 -- NodeTranslator:changeColor(btn,function() 4188 -- 4189 -- end) 4190 4191 4192 end 4193 end) 4194 4195 else 4196 self.MiddleUI:getChildByName("panel_prompt"):setVisible(false) 4197 end 4198 end 4199 4200 function WorldScene:SetMiddleVisible(visible, state) 4201 4202 if state == 1 then 4203 visible = true 4204 elseif state == 2 then 4205 visible = false 4206 elseif state == 2 then 4207 visible = false 4208 end 4209 4210 if self.MiddleUIVisible ~= nil then 4211 self.MiddleUIVisible = visible 4212 self.MiddleUIVisible18 = visible 4213 app:dispatchEvent({ name = "18HourRefresh" }) 4214 end 4215 4216 4217 if visible == false then 4218 self.MiddleUI:getChildByName("Button_LimitTimeFirstPay"):setVisible(false) 4219 self.MiddleUI:getChildByName("Button_33_Copy"):setVisible(visible) 4220 end 4221 4222 local children = self.MiddleUI:getChildren() 4223 for key, var in pairs(children) do 4224 if var:getName() ~= "Button_07" 4225 and var:getName() ~= "Button_08" 4226 and var:getName() ~= "Button_09" 4227 and var:getName() ~= "Image_20" then 4228 if state == 1 then 4229 if var.sx ~= nil then 4230 var:setScale(var.sx) 4231 var.sx = nil 4232 end 4233 else 4234 if var.sx == nil then 4235 var.sx = var:getScale() 4236 end 4237 var:setScale(0) 4238 end 4239 end 4240 end 4241 4242 -- todo state 改变,已经没有2了 4243 if state == 1 then 4244 self.BtnOutSide:setVisible(false) 4245 else 4246 self.BtnOutSide:setVisible(false) 4247 end 4248 4249 end 4250 4251 function WorldScene:TurnBgQuest() 4252 4253 local pd = PlayerData:getInstanse() 4254 if self.BgPage == 1 then 4255 4256 self.topUI:setVisible(true) 4257 self:SetMiddleVisible(true, self.BgPage) 4258 4259 self:BaseQuest() 4260 self:CheckSpaceOutSide() 4261 PromptView:sceneNotice(self, StringRes.chenge_3) 4262 NoviceGuide:complete("_CustomAction", "changeIntoBase"); 4263 --elseif self.BgPage == 2 then 4264 --更新页面 4265 self.topUI:setVisible(true) 4266 4267 Connect:sendMsg("InterfaceAction", "changeOutskirtsInterface", nil, 4268 function(data) 4269 --更新数据 4270 pd.outSideBuild = data.outskirtsBlockVOs 4271 4272 self:FreshTopPage() 4273 self:FreshBGPage() 4274 4275 self:ChangeTurnBtn() 4276 self:showName(false) 4277 end) 4278 PromptView:sceneNotice(self, StringRes.chenge_1) 4279 self:SetMiddleVisible(false, self.BgPage) 4280 elseif self.BgPage == 3 then 4281 self.topUI:setVisible(false) 4282 self:SetMiddleVisible(false, self.BgPage) 4283 4284 self.Feild:getData(true) 4285 4286 self:FreshBGPage() 4287 self:ChangeTurnBtn() 4288 4289 PromptView:sceneNotice(self, StringRes.chenge_2) 4290 4291 --重新拉TaskExeBar队列 4292 gField.TaskExeBar:serverUpdateAll() 4293 end 4294 end 4295 4296 4297 function WorldScene:TaskQuest() 4298 Connect:sendMsg("TaskAction", "openTaskItem", nil, 4299 function(data) 4300 local pd = PlayerData:getInstanse() 4301 --更新数据 4302 pd.task = {} 4303 pd.task.mainTaskShowVO = data.mainTaskShowVO 4304 pd.task.playerTasks = data.playerTasks 4305 pd.task.buildingTasks = data.buildingTasks 4306 pd.task.resourceTasks = data.resourceTasks 4307 4308 pd.task.taskDailyShowVOs = data.taskDailyShowVOs 4309 4310 pd.task.task1DailyVOs = data.task1DailyVOs 4311 pd.task.task2DailyVOs = data.task2DailyVOs 4312 pd.task.task3DailyVOs = data.task3DailyVOs 4313 pd.task.task4DailyVOs = data.task4DailyVOs 4314 4315 self.TaskInfo = TaskInfo:open() 4316 self:addChild(self.TaskInfo) 4317 end) 4318 end 4319 4320 function WorldScene:FreshTopPage() 4321 local pd = PlayerData:getInstanse() 4322 if pd.basicData == nil then 4323 return 4324 end 4325 4326 4327 --icon 4328 self.topUI:getChildByName("photo"):loadTexture(gRoleHeadIcon[pd.basicData.icon]) 4329 4330 self.topUI:getChildByName("Text_Name"):setString(pd.basicData.name) 4331 4332 self.topUI:getChildByName("Text_23"):setString(pd.basicData.lv) 4333 self.topUI:getChildByName("Text_comat"):setString( StringTemp:toNum(pd.basicData.comat)) 4334 4335 local warlvIcon = self.topUI:getChildByName("Image_2") 4336 warlvIcon:loadTexture(gMilitary_rank[pd.basicData.warLv].icon, ResType) 4337 warlvIcon:setScale(0.3) 4338 --pd.basicData.gold = 1000*1000 4339 4340 self.topUI:getChildByName("Text_gold"):setString( StringTemp:toNum(pd.basicData.gold)) 4341 4342 local function getColor(value) 4343 if pd.basicData.protect > value then 4344 return CommonColor.White 4345 else 4346 return CommonColor.Yellow 4347 end 4348 end 4349 4350 --动画 4351 4352 4353 4354 4355 4356 4357 4358 self.topUI:getChildByName("Text_crystal"):setString( StringTemp:toNum(pd.basicData.crystal)) 4359 self.topUI:getChildByName("Text_crystal"):setColor(getColor(pd.basicData.crystal)) 4360 4361 self.topUI:getChildByName("Text_ferrum"):setString( StringTemp:toNum(pd.basicData.ferrum)) 4362 self.topUI:getChildByName("Text_ferrum"):setColor(getColor(pd.basicData.crystal)) 4363 4364 self.topUI:getChildByName("Text_oil"):setString( StringTemp:toNum(pd.basicData.oil)) 4365 self.topUI:getChildByName("Text_oil"):setColor(getColor(pd.basicData.crystal)) 4366 4367 self.topUI:getChildByName("Text_lead"):setString( StringTemp:toNum(pd.basicData.lead)) 4368 self.topUI:getChildByName("Text_lead"):setColor(getColor(pd.basicData.crystal)) 4369 4370 self.topUI:getChildByName("Text_titanium"):setString( StringTemp:toNum(pd.basicData.titanium)) 4371 self.topUI:getChildByName("Text_titanium"):setColor(getColor(pd.basicData.crystal)) 4372 4373 -- local vipImage = self.topUI:getChildByName("Button_3"):getChildByName("Image_4") 4374 -- vipImage:loadTexture("res/pic/vip/icon/icon_vip_medal_" .. (pd.basicData.vipLv + 1) .. ".png", ResType) 4375 self.topUI:getChildByName("Text_vip"):setString("VIP:"..pd.basicData.vipLv) 4376 4377 --进度条 4378 self.topUI:getChildByName("LoadingBar_11"):setPercent(pd.basicData.exp / pd.basicData.expMax * 100) 4379 4380 self.topUI:getChildByName("LoadingBar_12"):setPercent(pd.basicData.energy / gMaxEnergy * 100) 4381 4382 self.topUI:getChildByName("LoadingBar_1"):setPercent(pd.basicData.crystal / pd.basicData.crystalMax * 100) 4383 4384 self.topUI:getChildByName("LoadingBar_2"):setPercent(pd.basicData.oil / pd.basicData.oilMax * 100) 4385 4386 self.topUI:getChildByName("LoadingBar_3"):setPercent(pd.basicData.ferrum / pd.basicData.ferrumMax * 100) 4387 4388 self.topUI:getChildByName("LoadingBar_4"):setPercent(pd.basicData.lead / pd.basicData.leadMax * 100) 4389 4390 self.topUI:getChildByName("LoadingBar_5"):setPercent(pd.basicData.titanium / pd.basicData.titaniumMax * 100) 4391 4392 end 4393 4394 --隐藏等级一定时间 4395 function WorldScene:hideBuildLv(time) 4396 self:BuildLvShow(false) 4397 end 4398 4399 local nodesName = { "Button_11", "icon_basement" } --军团 、地库 4400 4401 function WorldScene:showName(b) 4402 local pd = PlayerData:getInstanse() 4403 4404 if pd.baseBuild ~= nil then 4405 4406 if self.BaseBgButton ~= nil then 4407 for i, v in ipairs(nodesName) do 4408 local btn = self.BaseBgButton:getChildByName(v) 4409 if btn ~= nil then 4410 if b then 4411 local levelImage = btn:getChildByName("Image_1") 4412 if levelImage ~= nil then 4413 levelImage:setScale(0) 4414 end 4415 local nameLv = btn:getChildByName("Image_12") 4416 if nameLv ~= nil then 4417 if UserDefault:getBoolForKey("buildingname") == true then 4418 nameLv:setScale(1) 4419 end 4420 end 4421 else 4422 local levelImage = btn:getChildByName("Image_1") 4423 if levelImage ~= nil then 4424 levelImage:setScale(1) 4425 end 4426 local nameLv = btn:getChildByName("Image_12") 4427 if nameLv ~= nil then 4428 nameLv:setScale(0) 4429 end 4430 end 4431 end 4432 end 4433 4434 end 4435 4436 4437 4438 4439 --建筑 4440 for i, v in pairs(pd.baseBuild) do 4441 local btnKey = self:BuildIdAndDbId2Button(v.templateId, v.dbId) 4442 4443 if self.BaseBgButton == nil then 4444 break 4445 end 4446 4447 local btn = self.BaseBgButton:getChildByName(btnKey) 4448 4449 if btn ~= nil then 4450 if b then 4451 local levelImage = btn:getChildByName("Image_1") 4452 if levelImage ~= nil then 4453 levelImage:setScale(0) 4454 end 4455 local nameLv = btn:getChildByName("Image_12") 4456 if nameLv ~= nil then 4457 if UserDefault:getBoolForKey("buildingname") == true then 4458 nameLv:setScale(1) 4459 end 4460 end 4461 else 4462 local levelImage = btn:getChildByName("Image_1") 4463 if levelImage ~= nil then 4464 levelImage:setScale(1) 4465 end 4466 local nameLv = btn:getChildByName("Image_12") 4467 if nameLv ~= nil then 4468 nameLv:setScale(0) 4469 end 4470 end 4471 end 4472 4473 4474 end 4475 -- 4476 end 4477 4478 4479 if pd.outSideBuild == nil then 4480 return 4481 end 4482 4483 4484 for i, v in pairs(pd.outSideBuild) do 4485 local btnKey = gBlock[v.blockId].position 4486 4487 if self.OutSideGbButton == nil then 4488 break 4489 end 4490 4491 local btn = self.OutSideGbButton:getChildByName(btnKey) 4492 4493 if v.templateId ~= 0 then 4494 --显示等级 4495 --在新版本中等级用label代替, 以下代码不会执行 4496 if btn ~= nil then 4497 if b then 4498 local levelImage = btn:getChildByName("Image_1") 4499 if levelImage ~= nil then 4500 levelImage:setScale(0) 4501 end 4502 local nameLv = btn:getChildByName("Image_12") 4503 if nameLv ~= nil then 4504 if UserDefault:getBoolForKey("buildingname") == true then 4505 nameLv:setScale(1) 4506 end 4507 end 4508 else 4509 local levelImage = btn:getChildByName("Image_1") 4510 if levelImage ~= nil then 4511 levelImage:setScale(1) 4512 end 4513 local nameLv = btn:getChildByName("Image_12") 4514 if nameLv ~= nil then 4515 nameLv:setScale(0) 4516 end 4517 end 4518 end 4519 4520 4521 end 4522 end 4523 4524 4525 end 4526 4527 function WorldScene:BuildLvShow(b) 4528 local pd = PlayerData:getInstanse() 4529 4530 if pd.baseBuild ~= nil then 4531 --建筑 4532 for i, v in pairs(pd.baseBuild) do 4533 local btnKey = self:BuildIdAndDbId2Button(v.templateId, v.dbId) 4534 4535 local btn = self.BaseBgButton:getChildByName(btnKey) 4536 4537 4538 if b then 4539 local levelImage = btn:getChildByName("Image_1") 4540 if levelImage ~= nil then 4541 levelImage:setScale(1) 4542 end 4543 local nameLv = btn:getChildByName("Image_12") 4544 if nameLv ~= nil then 4545 nameLv:setScale(0) 4546 end 4547 else 4548 local levelImage = btn:getChildByName("Image_1") 4549 if levelImage ~= nil then 4550 levelImage:setScale(0) 4551 end 4552 local nameLv = btn:getChildByName("Image_12") 4553 if nameLv ~= nil then 4554 nameLv:setScale(1) 4555 end 4556 end 4557 4558 4559 -- --显示等级 4560 -- local levelImage = btn:getChildByName("Image_1") 4561 -- if levelImage ~= nil then 4562 -- levelImage:setVisible(b) 4563 -- end 4564 -- local nameLv = btn:getChildByName("Image_12") 4565 -- if nameLv ~= nil then 4566 -- nameLv:setVisible(b) 4567 -- end 4568 4569 end 4570 -- 4571 end 4572 4573 4574 if pd.outSideBuild == nil then 4575 return 4576 end 4577 4578 4579 for i, v in pairs(pd.outSideBuild) do 4580 local btnKey = gBlock[v.blockId].position 4581 4582 local btn = self.OutSideGbButton:getChildByName(btnKey) 4583 4584 if v.templateId ~= 0 then 4585 --显示等级 4586 local levelImage = btn:getChildByName("Image_1") 4587 if levelImage ~= nil then 4588 levelImage:setVisible(b) 4589 end 4590 local nameLv = btn:getChildByName("Image_12") 4591 if nameLv ~= nil then 4592 nameLv:setVisible(b) 4593 end 4594 end 4595 end 4596 end 4597 4598 local function getGuildName() 4599 local pd = PlayerData:getInstanse() 4600 --guildName 4601 if pd.basicData.guildId ~= 0 then 4602 return StringRes.guildname_999 .. pd.basicData.guildName 4603 else 4604 return StringRes[gBuilding[4].name] 4605 end 4606 end 4607 4608 4609 4610 4611 function WorldScene:FreshBGPage() 4612 local pd = PlayerData:getInstanse() 4613 if pd.basicData == nil then 4614 return 4615 end 4616 4617 self.BaseBg:setVisible(false) 4618 --self.OutSideBg:setVisible(false) 4619 self.Feild:setVisible(false) 4620 local pd = PlayerData:getInstanse() 4621 --地库 4622 local btn = self.BaseBgButton:getChildByName("icon_basement") 4623 local nameLv = btn:getChildByName("Image_12") 4624 if nameLv == nil then 4625 nameLv = gLittleUi:getChildByName("Image_12"):clone() 4626 btn:addChild(nameLv, 10) 4627 local size = btn:getContentSize() 4628 nameLv:setPosition( cc.p(size.width / 2, size.height+20) ) 4629 nameLv:setVisible(true) 4630 end 4631 nameLv:getChildByName("Text_level"):setString(StringRes[gBuilding[18].name]) 4632 --军团 4633 local btn = self.BaseBgButton:getChildByName("Button_11") 4634 if PlayerData:getInstanse():getBaseBuildLv(1) < gBuilding[4].unlock then 4635 showShader:toGray(btn) 4636 else 4637 showShader:toNormal(btn) 4638 end 4639 --有军团 4640 local pd = PlayerData:getInstanse() 4641 if pd.basicData.guildId ~= 0 then 4642 --名字加等级 4643 local nameLv = btn:getChildByName("Image_12") 4644 if nameLv == nil then 4645 nameLv = gLittleUi:getChildByName("Image_12"):clone() 4646 btn:addChild(nameLv, 10) 4647 local size = btn:getContentSize() 4648 nameLv:setPosition( cc.p(size.width / 2, size.height+20) ) 4649 nameLv:setScale(0) 4650 end 4651 local nl = getGuildName() 4652 -- if pd.basicData.guildLv > 0 then 4653 -- nl = nl.."Lv."..pd.basicData.guildLv 4654 -- end 4655 nameLv:getChildByName("Text_level"):setString(nl) 4656 4657 --显示等级 4658 local levelImage = btn:getChildByName("Image_1") 4659 if levelImage == nil then 4660 levelImage = gLittleUi:getChildByName("Image_1"):clone() 4661 btn:addChild(levelImage, 10) 4662 local size = btn:getContentSize() 4663 levelImage:setPosition( StringTemp:toPosition(gBuilding[4].lvposition) ) 4664 end 4665 levelImage:setVisible(true) 4666 levelImage:getChildByName("Text_level"):setString(pd.basicData.guildLv) 4667 4668 -- if UserDefault:getBoolForKey("buildingname") == true then 4669 -- --if false then 4670 -- levelImage:setVisible(false) 4671 -- nameLv:setVisible(true) 4672 -- else 4673 -- levelImage:setVisible(true) 4674 -- nameLv:setVisible(false) 4675 -- end 4676 4677 else 4678 --名字加等级 4679 local nameLv = btn:getChildByName("Image_12") 4680 if nameLv == nil then 4681 nameLv = gLittleUi:getChildByName("Image_12"):clone() 4682 btn:addChild(nameLv, 10) 4683 local size = btn:getContentSize() 4684 nameLv:setPosition( cc.p(size.width / 2, size.height+20) ) 4685 nameLv:setScale(0) 4686 end 4687 local nl = getGuildName() 4688 -- if pd.basicData.guildLv > 0 then 4689 -- nl = nl.."Lv."..pd.basicData.guildLv 4690 -- end 4691 nameLv:getChildByName("Text_level"):setString(nl) 4692 4693 local levelImage = btn:getChildByName("Image_1") 4694 if levelImage then 4695 levelImage:setVisible(false) 4696 end 4697 local nameLv = btn:getChildByName("Image_12") 4698 if nameLv then 4699 nameLv:getChildByName("Text_level"):setString(getGuildName()) 4700 nameLv:setVisible(true) 4701 end 4702 end 4703 4704 btn:addTouchEventListener(function(e, t) 4705 if t == ccui.TouchEventType.ended then 4706 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 4707 if PlayerData:getInstanse():getBaseBuildLv(1) < gBuilding[4].unlock then 4708 PromptView:type1(StringRes.notice, 4709 string.format( StringRes[gBuilding[4].unlockdes], gBuilding[4].unlock) 4710 , StringRes.ok) 4711 else 4712 --判断是否有军团 4713 if pd.basicData.guildId == 0 then 4714 local ArmyGroupApply = require("src/app/views/armygroup/ArmyGroupApply") 4715 ArmyGroupApply:show(self) 4716 else 4717 local ArmyGroupMain = require("src/app/views/armygroup/ArmyGroupMain") 4718 ArmyGroupMain:show(self) 4719 end 4720 end 4721 end 4722 end) 4723 4724 if self.BgPage == 1 then 4725 --基地 4726 self.BaseBg:setVisible(true) 4727 local pd = PlayerData:getInstanse() 4728 4729 if pd.baseBuild ~= nil then 4730 --建筑 4731 for i, v in pairs(pd.baseBuild) do 4732 local btnKey = self:BuildIdAndDbId2Button(v.templateId, v.dbId) 4733 4734 local btn = self.BaseBgButton:getChildByName(btnKey) 4735 4736 --名字加等级 4737 local nameLv = btn:getChildByName("Image_12") 4738 if nameLv == nil then 4739 nameLv = gLittleUi:getChildByName("Image_12"):clone() 4740 btn:addChild(nameLv, 10) 4741 local size = btn:getContentSize() 4742 nameLv:setPosition( cc.p(size.width / 2, size.height+20) ) 4743 nameLv:setScale(0) 4744 end 4745 local nl = StringRes[gBuilding[v.templateId].name] 4746 -- if v.buildLv > 0 then 4747 -- nl = nl.."Lv."..v.buildLv 4748 -- end 4749 nameLv:getChildByName("Text_level"):setString(nl) 4750 4751 4752 --显示等级 4753 local levelImage = btn:getChildByName("Image_1") 4754 if levelImage == nil then 4755 levelImage = gLittleUi:getChildByName("Image_1"):clone() 4756 btn:addChild(levelImage, 10) 4757 local size = btn:getContentSize() 4758 levelImage:setPosition( StringTemp:toPosition(gBuilding[v.templateId].lvposition) ) 4759 end 4760 levelImage:getChildByName("Text_level"):setString(v.buildLv) 4761 4762 4763 if pd:getBaseBuildLv(1) < gBuilding[v.templateId].unlock - 5 then 4764 btn:setVisible(false) 4765 else 4766 btn:setVisible(true) 4767 end 4768 if v.buildLv <= 0 then 4769 levelImage:setVisible(false) 4770 nameLv:setVisible(false) 4771 4772 --未解锁建筑隐藏,解锁前5级显示灰色,解锁后正常显示 4773 if v.canBuild == true then 4774 btn:setOpacity(150) 4775 4776 Animation:playChuiziAnimation(btn:getParent(), btn:getName() .. "chuizi", cc.p(btn:getPositionX(), btn:getPositionY())) 4777 --Animation:playChuiziAnimation(btn, btn:getName() .. "chuizi", StringTemp:toPosition(gBuilding[v.templateId].lvposition)) 4778 else 4779 showShader:AlltoGray(btn) 4780 Animation:stopAnimation(btn:getParent(), btn:getName() .. "chuizi") 4781 end 4782 4783 else 4784 Animation:stopAnimation(btn:getParent(), btn:getName() .. "chuizi") 4785 4786 levelImage:setVisible(true) 4787 nameLv:setVisible(true) 4788 -- if UserDefault:getBoolForKey("buildingname") == true then 4789 -- --if false then 4790 -- levelImage:setVisible(false) 4791 -- nameLv:setVisible(true) 4792 -- else 4793 -- levelImage:setVisible(true) 4794 -- nameLv:setVisible(false) 4795 -- end 4796 4797 4798 btn:setOpacity(255) 4799 showShader:AlltoNormal(btn) 4800 4801 --动画 todo 主城建筑的动画先不做 4802 --if btn:getChildByName("Anim") == nil then 4803 -- local an = Animation:createAnimation(gBuilding[v.templateId].art) 4804 -- if an ~= nil then 4805 -- btn:addChild(an,1) 4806 -- an:setName("Anim") 4807 -- local btn_Free = btn:getChildByName("Button_Free") 4808 -- if btn_Free then 4809 -- btn_Free:setLocalZOrder(2) 4810 -- end 4811 -- if btn:getChildByName("Image_Base") ~= nil then 4812 -- btn:getChildByName("Image_Base"):setVisible(false) 4813 -- end 4814 -- end 4815 --end 4816 end 4817 4818 --是否显示等级 4819 if gBuilding[v.templateId].lv == 0 then 4820 levelImage:setVisible(false) 4821 nameLv:getChildByName("Text_level"):setString(StringRes[gBuilding[v.templateId].name]) 4822 --nameLv:setVisible(false) 4823 else 4824 4825 end 4826 4827 btn.buildVo = v 4828 btn:addTouchEventListener(function(e, t) 4829 if t == ccui.TouchEventType.ended then 4830 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 4831 NodeTranslator:changeColor(btn, function() 4832 local vo = e.buildVo 4833 Buildings:enter(vo, self) 4834 end) 4835 end 4836 end) 4837 4838 --v.time = 20 4839 --v.allTime = 120 4840 4841 end 4842 end 4843 4844 4845 --把所有坦克隐藏 4846 for i, v in pairs(tankId2Button) do 4847 local btn = self.BaseBgButton:getChildByName(v) 4848 btn:setVisible(false) 4849 end 4850 4851 if pd.tanks ~= nil then 4852 --坦克 4853 for i, v in pairs(pd.tanks) do 4854 if v.num > 0 then 4855 if v.baseId <= NUM_OF_TANK_IN_BASE then 4856 --主界面只显示前24种坦克 4857 local btn = self.BaseBgButton:getChildByName(tankId2Button[v.baseId]) 4858 btn:setVisible(true) 4859 btn:loadTexture(Tank[v.baseId].pic, ResType) 4860 --更换图片 4861 --local tankAnim = btn:getChildByName("Image_Anim") 4862 4863 -- if tankAnim == nil then 4864 -- tankAnim = Animation:createAnimation(Tank[v.baseId].anim_base) 4865 -- tankAnim:setName("Image_Anim") 4866 -- btn:addChild(tankAnim) 4867 -- 4868 -- tankAnim:setAnchorPoint(cc.p(0.5,0.5)) 4869 -- local size = btn:getContentSize() 4870 -- tankAnim:setPosition( cc.p(size.width*0.5,size.height*0.5) ) 4871 -- end 4872 4873 4874 4875 --显示数量 4876 local levelImage = btn:getChildByName("Image_4") 4877 if levelImage == nil then 4878 levelImage = gLittleUi:getChildByName("Image_4"):clone() 4879 btn:addChild(levelImage) 4880 local size = btn:getContentSize() 4881 levelImage:setPosition( cc.p(size.width * 0.5, size.height * 0.5 + 50) ) 4882 end 4883 levelImage:getChildByName("Text_level"):setString(v.num) 4884 4885 4886 btn:addTouchEventListener(function(e, t) 4887 if t == ccui.TouchEventType.ended then 4888 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 4889 require("src/app/views/prompt/TankInfoPanel"):show(self, v.baseId) 4890 end 4891 end) 4892 4893 4894 end 4895 4896 else 4897 table.remove(pd.tanks, i) 4898 end 4899 4900 4901 end 4902 end 4903 4904 --elseif self.BgPage == 2 then --郊外 4905 self.OutSideBg:setVisible(true) 4906 local pd = PlayerData:getInstanse() 4907 4908 4909 --回基地按钮 4910 local goHome = self.OutSideBg:getChildByName("Button_1") 4911 goHome:addTouchEventListener(function(e, t) 4912 if t == ccui.TouchEventType.ended then 4913 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 4914 NodeTranslator:changeColor(goHome, function() 4915 self.BgPage = 1 4916 self:TurnBgQuest() 4917 NoviceGuide:complete("InterfaceAction", "changeOutskirtsInterface"); 4918 end) 4919 end 4920 end) 4921 goHome:setVisible(false) 4922 local outSideTestBg = self.OutSideBg:getChildByName("Panel_1") 4923 if outSideTestBg then 4924 outSideTestBg:setVisible(false) 4925 end 4926 4927 --把所有地块隐藏 4928 for i, v in pairs(gBlock) do 4929 local btn = self.OutSideGbButton:getChildByName(v.position) 4930 if btn ~= nil then 4931 btn:setVisible(false) 4932 end 4933 end 4934 if pd.outSideBuild == nil or NoviceGuide:CheckOpen("resBuilding") == false then 4935 return 4936 end 4937 4938 self:refreshOutSide("2", "3", "4", "1") 4939 4940 for i, v in pairs(pd.outSideBuild) do 4941 local btnKey = gBlock[v.blockId].position 4942 local btn = self.OutSideGbButton:getChildByName(btnKey) 4943 4944 if btn ~= nil then 4945 -- todo 越是靠下的建筑层级越高 4946 local btnPosY = btn:getPositionY() 4947 btn:setLocalZOrder(99999-btnPosY) 4948 end 4949 4950 --v.templateId = 1 4951 4952 if v.templateId ~= 0 then 4953 --建筑物 4954 if btn.nilPos == nil then 4955 btn.nilPos = {} 4956 btn.nilPos.x, btn.nilPos.y = btn:getPosition() 4957 end 4958 4959 --坐标调整 4960 local t1 = StringTemp:Split(gBuilding[v.templateId].position, ",") 4961 if #t1 >= 2 then 4962 local pos = btn.nilPos 4963 btn:setPosition( cc.p(pos.x + tonumber(t1[1]), pos.y + tonumber(t1[2]))) 4964 end 4965 4966 4967 if gBuilding[v.templateId].stand ~= nil and gBuilding[v.templateId].stand ~= "0.png" then 4968 btn:loadTexture(gBuilding[v.templateId].stand, ResType) 4969 else 4970 btn:loadTexture(gBuilding[v.templateId].pic, ResType) 4971 end 4972 4973 -- local buildImage = btn:getChildByName("Image_build") 4974 -- if buildImage == nil then 4975 -- local pic = gBuilding[v.templateId] 4976 -- --buildImage = ccs.Armature:create(pic) 4977 -- buildImage = ccui.ImageView:create("pic/resources/resource_map/icon_iron.png",ResType) 4978 -- buildImage:setName("Image_build") 4979 -- btn:addChild(buildImage) 4980 -- local size = btn:getContentSize() 4981 -- buildImage:setPosition( cc.p(size.width*0.5,size.height*0.5) ) 4982 -- --buildImage:getAnimation():play(pic,durationTo,loop) 4983 -- end 4984 4985 4986 --名字加等级 4987 local nameLv = btn:getChildByName("Image_12") 4988 if nameLv == nil then 4989 nameLv = gLittleUi:getChildByName("Image_12"):clone() 4990 btn:addChild(nameLv, 10) 4991 local size = btn:getContentSize() 4992 nameLv:setPosition( cc.p(size.width / 2, size.height+20) ) 4993 nameLv:setScale(0) 4994 end 4995 local nl = StringRes[gBuilding[v.templateId].name] 4996 -- if v.buildLv > 0 then 4997 -- nl = nl.."Lv."..v.buildLv 4998 -- end 4999 nameLv:getChildByName("Text_level"):setString(nl) 5000 nameLv:setVisible(true) 5001 5002 --显示等级 5003 --local levelImage = btn:getChildByName("Image_1") 5004 --if levelImage == nil then 5005 -- levelImage = gLittleUi:getChildByName("Image_1"):clone() 5006 -- btn:addChild(levelImage, 10) 5007 -- local size = btn:getContentSize() 5008 -- levelImage:setPosition( StringTemp:toPosition(gBuilding[v.templateId].lvposition) ) 5009 --end 5010 --levelImage:getChildByName("Text_level"):setString(v.buildLv) 5011 --levelImage:setVisible(true) 5012 5013 -- 新版本等级label 5014 local lvLabel = btn:getChildByName("lvLabel") 5015 if lvLabel == nil then 5016 lvLabel = display.newTTFLabel({ 5017 text = v.buildLv .. "", 5018 --font = "fonts/TankGroup.ttf", 5019 size = 20, 5020 align = cc.TEXT_ALIGNMENT_CENTER -- 文字内部居中对齐 5021 }) 5022 btn:addChild(lvLabel,1000) 5023 lvLabel:setSkewY(-30) 5024 lvLabel:setName("lvLabel") 5025 end 5026 lvLabel:setString(v.buildLv.. "") 5027 lvLabel:setPosition(StringTemp:toPosition(gBuilding[v.templateId].lvposition)) 5028 5029 5030 5031 5032 --btn:setTouchEnabled(false) 5033 btn:setVisible(true) 5034 5035 -- if UserDefault:getBoolForKey("buildingname") == true then 5036 -- --if false then 5037 -- levelImage:setVisible(false) 5038 -- nameLv:setVisible(true) 5039 -- else 5040 -- levelImage:setVisible(true) 5041 -- nameLv:setVisible(false) 5042 -- end 5043 5044 --动画 5045 if btn:getChildByName("Anim") == nil then 5046 local an = Animation:createAnimationWithCsb(gBuilding[v.templateId].art) 5047 if an ~= nil then 5048 btn:addChild(an, 1) 5049 an:setName("Anim") 5050 local size = btn:getContentSize() 5051 end 5052 -- else 5053 -- local an = Animation:createAnimation(gBuilding[v.templateId].art) 5054 -- if an == nil then 5055 -- btn:getChildByName("Anim"):removeFromParent() 5056 -- end 5057 end 5058 if btn:getChildByName("Anim") ~= nil then 5059 5060 btn:getChildByName("Anim"):setVisible(true) 5061 end 5062 5063 5064 --btn:setTouchEnabled(true) 5065 btn:addTouchEventListener(function(e, t) 5066 if t == ccui.TouchEventType.ended then 5067 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 5068 NodeTranslator:changeColor(btn, function() 5069 if v.buildLv > 0 then 5070 local layer = require("src/app/views/buildings/ResBuilding").new(self, v) 5071 self:addChild(layer) 5072 require("app.util.NodeTranslator"):transUp(layer, nil) 5073 MyAudio:PlayEffect(gBuilding[v.templateId].openAudio) 5074 end 5075 end) 5076 end 5077 end) 5078 5079 5080 else --只有地块 5081 btn:setVisible(true) 5082 5083 5084 --坐标调整 5085 if btn.nilPos ~= nil then 5086 local pos = btn.nilPos 5087 btn:setPosition( cc.p(pos.x, pos.y)) 5088 end 5089 5090 5091 if btn:getChildByName("Anim") ~= nil then 5092 5093 btn:getChildByName("Anim"):removeFromParent() 5094 end 5095 5096 if btn:getChildByName("lvLabel") ~= nil then 5097 btn:getChildByName("lvLabel"):removeFromParent() 5098 end 5099 5100 5101 local t = StringTemp:Split(v.canBuild, ",") 5102 if #t == 1 then 5103 btn:loadTexture("res/pic/resources/resource_map/icon_ore_ready.png", ResType) 5104 else 5105 btn:loadTexture("res/pic/resources/resource_map/icon_build_ready.png", ResType) 5106 end 5107 5108 --btn:setColor(cc.c3b(250,50,50)) 5109 5110 local levelImage = btn:getChildByName("Image_1") 5111 if levelImage ~= nil then 5112 levelImage:setVisible(false) 5113 end 5114 5115 5116 5117 --btn:setTouchEnabled(true) 5118 --btn:removeAllChildren(true) 5119 5120 5121 btn:addTouchEventListener(function(e, t) 5122 if t == ccui.TouchEventType.ended then 5123 MyAudio:PlayEffect(MusicAndEffect.btnEffect) 5124 5125 NodeTranslator:changeColor(btn, function() 5126 local layer = require("src/app/views/buildings/ResBuild").new(self, v) 5127 -- local layer = require("src/app/views/buildings/TankFactory.lua").new(self) 5128 self:addChild(layer) 5129 require("app.util.NodeTranslator"):transUp(layer, nil) 5130 5131 end) 5132 end 5133 end) 5134 5135 --btn:loadTextures("tie_kuang_building_1.png","tie_kuang_building_1.png","",1) 5136 5137 --local buildImage = ccui.ImageView:create("tie_kuang_building_1.png",1) 5138 5139 end 5140 5141 5142 5143 --显示建筑 5144 5145 5146 5147 5148 --v.time = 20 5149 --v.allTime = 120 5150 5151 end 5152 5153 elseif self.BgPage == 3 then 5154 --世界 5155 self.Feild:setVisible(true) 5156 end 5157 5158 5159 end 5160 5161 function WorldScene:resetBottomList() 5162 --下面的listview还原 5163 local bc = self.BottomUI:getChildByName("ListView_1") 5164 bc:jumpToLeft() 5165 end 5166 5167 function WorldScene:moveMainCity(time, percent) 5168 --设置成默认比例 5169 local sc, newPercent = nil, nil 5170 if self.BgPage == 1 then 5171 sc = self.BaseBg:getChildByName("ScrollView_1") 5172 newPercent = { x = percent.x * self._moveSceneScaleX, y = self._moveSceneScaleY * percent.y } 5173 elseif self.BgPage == 2 then 5174 sc = self.OutSideBg:getChildByName("ScrollView_1") 5175 newPercent = { x = percent.x * (1186 / (1186 - 640)), y = percent.y * (1174 / (1174 - 1010)) } 5176 end 5177 sc:setZoomScale(1) 5178 sc:scrollToPercentBothDirection(newPercent, time, true) --做个特殊处理 5179 end 5180 5181 function WorldScene:setMainCityPos(percent) 5182 --设置成默认比例 5183 local sc, newPercent = nil, nil 5184 if self.BgPage == 1 then 5185 sc = self.BaseBg:getChildByName("ScrollView_1") 5186 elseif self.BgPage == 2 then 5187 sc = self.OutSideBg:getChildByName("ScrollView_1") 5188 end 5189 sc:setZoomScale(1) 5190 --sc:jumpToPercentHorizontal(0) 5191 local _innerContainer = sc:getInnerContainer() 5192 local size = sc:getContentSize() 5193 local size_inner = _innerContainer:getContentSize() 5194 local minY = size.height - size_inner.height; 5195 local h = minY; 5196 local w = size_inner.width - size.width; 5197 --startAutoScrollChildrenWithDestination(cc.p(-(percent.x * w / 100.0f), minY + percent.y * h / 100.0f), time, attenuated); 5198 _innerContainer:setPosition(cc.p(-(percent.x * w / 100), percent.y * h / 100)) --做个特殊处理 5199 end 5200 5201 -- 聚焦到节点 5202 function WorldScene:LookAtNode(node) 5203 if tolua.isnull(node) then 5204 return 5205 end 5206 --设置成默认比例 5207 local sc = self.BaseBg:getChildByName("ScrollView_1") 5208 sc:setZoomScale(1) 5209 5210 local _innerContainer = sc:getInnerContainer() 5211 local size = sc:getContentSize() 5212 local size_inner = _innerContainer:getContentSize() 5213 local h = size_inner.height - size.height - 150 5214 local w = size_inner.width - size.width 5215 5216 local nodePos = node:convertToWorldSpaceAR(cc.p(0, 0)) 5217 local vec = cc.pSub(cc.p(display.cx, display.cy), nodePos) 5218 5219 local lookPos = cc.pAdd(cc.p(_innerContainer:getPosition()), vec) 5220 5221 if lookPos.x > 0 then lookPos.x = 0 end 5222 if lookPos.y < 0 then lookPos.y = 0 end 5223 if lookPos.x < -w then lookPos.x = -w end 5224 if lookPos.y > h then lookPos.y = h end 5225 5226 _innerContainer:setPosition(lookPos) 5227 end 5228 5229 function WorldScene:gotoPve() 5230 5231 --NoviceGuide:complete("ActionPass","EnterUiPass"); 5232 Connect:sendMsg("PveAction", "openPve", nil, 5233 function(data) 5234 --更新数据 5235 5236 --PVE buf 5237 PlayerData:getInstanse():SetPveBuff(data) 5238 5239 local mission = Mission.new() 5240 5241 self:addChild(mission) 5242 end) 5243 end 5244 5245 function WorldScene:onEnter() 5246 end 5247 5248 function WorldScene:onExit() 5249 5250 --Scheduler:unscheduleScriptEntry(self.loadingbarScheduler) 5251 --Scheduler:unscheduleScriptEntry(self.update) 5252 5253 end 5254 5255 --杨杰 2017-2-14 添加更新活动图标状态。在ctor的update函数中调用 5256 function WorldScene:RefreshActivityIcon() 5257 local pd = PlayerData:getInstanse().basicData; 5258 local visible = pd and (pd.limittimeactive ~= 1) 5259 --抽奖 5260 self.MiddleUI:getChildByName("Button_L2"):setVisible(visible) 5261 --签到/7天 5262 self.MiddleUI:getChildByName("Button_L3"):setVisible(visible) 5263 --活动 5264 self.MiddleUI:getChildByName("Button_L5"):setVisible(NoviceGuide:CheckOpen("mainUI")) 5265 end 5266 5267 --获取离线数据报告 场景新建(重新上线,包含长时间掉线后的重连)时请求 5268 function WorldScene:getOfflineReport() 5269 if NoviceGuide:getState() then 5270 --新手引导中 5271 return 5272 end 5273 5274 Connect:sendMsg("InterfaceAction", "getRifferenceInfo", nil, function(data) 5275 if data then 5276 require("app/views/OfflineReport/OfflineReportMainView"):open(self, data) 5277 end 5278 end, false) 5279 end 5280 5281 -- 刷新军团红点 5282 function WorldScene:RefreshGroupRedPoint() 5283 Connect:sendMsg("GuildAction", "showGuildTips", nil, function(data) 5284 self.groupRP = data 5285 self:UpdateRPControl() 5286 end) 5287 end 5288 5289 -- 军团红点监控控件 5290 function WorldScene:RegisterRPControl(node, t_keys, t_data) 5291 if not t_data then t_data = self.groupRP end 5292 5293 if not self.RPMonitor then self.RPMonitor = {} end 5294 self.RPMonitor[node]={data = t_data, keys = t_keys} 5295 5296 self:UpdateRPControl() 5297 end 5298 5299 -- 更新红点状态 5300 function WorldScene:UpdateRPControl() 5301 -- 更新军团建筑状态 5302 local guildBtn = self.BaseBgButton:getChildByName("Button_11") 5303 local isShow = self:getGroupRedPoint() 5304 PublicMethod:showBanshouAnimation(guildBtn, isShow, cc.p(0.56, 1)) 5305 5306 if not self.RPMonitor then return end 5307 for node, condition in pairs(self.RPMonitor) do 5308 if tolua.isnull(node) then 5309 self.RPMonitor[node] = nil 5310 else 5311 local rp = false 5312 for _, key in pairs(condition.keys) do 5313 if self.groupRP[key] > 0 and self:checkClientCondition(key) then 5314 rp = true 5315 break 5316 end 5317 end 5318 5319 if rp then 5320 PublicMethod:createRedPoint(node) 5321 print("createRedPoint") 5322 else 5323 PublicMethod:removeRedPoint(node) 5324 print("removeRedPoint") 5325 end 5326 end 5327 end 5328 end 5329 5330 -- 主界面是否显示军团红点 5331 function WorldScene:getGroupRedPoint() 5332 if not self.groupRP then return false end 5333 for k, v in pairs(self.groupRP) do 5334 if v > 0 and self:checkClientCondition(k) then 5335 return true 5336 end 5337 end 5338 return false 5339 end 5340 5341 -- 设置红点状态 5342 function WorldScene:setClientCondition(key, condition, value) 5343 if self.RPOnce[key] then 5344 if not self.RPOnce[key][condition] then 5345 self.RPOnce[key][condition] = value 5346 else 5347 if value == false then 5348 self.RPOnce[key][condition] = false 5349 end 5350 end 5351 else 5352 self.RPOnce[key] = {[condition]=value} 5353 end 5354 self:UpdateRPControl() 5355 end 5356 5357 -- 获取红点状态 5358 function WorldScene:getClientCondition(key, condition) 5359 if self.RPOnce[key] and self.RPOnce[key][condition] == false then 5360 return false 5361 else 5362 return true 5363 end 5364 end 5365 5366 -- 检查客户端红点条件 5367 function WorldScene:checkClientCondition(key) 5368 if self.RPOnce[key] then 5369 for k, v in pairs(self.RPOnce[key]) do 5370 if v then 5371 return true 5372 end 5373 end 5374 5375 return false 5376 else 5377 return true 5378 end 5379 end 5380 5381 5382 -- 获取空闲资源建造位 5383 function WorldScene:GetEmptyResPos(isOre) 5384 local pd = PlayerData:getInstanse() 5385 local node = nil 5386 for k, v in pairs(pd.outSideBuild) do 5387 local btnKey = gBlock[v.blockId].position 5388 local btn = self.OutSideGbButton:getChildByName(btnKey) 5389 5390 if v.templateId == 0 then 5391 if not node or node:getPositionX() > btn:getPositionX() then 5392 local t = StringTemp:Split(v.canBuild, ",") 5393 -- 合金位 5394 if isOre and #t == 1 then 5395 node = btn 5396 -- 普通位 5397 elseif not isOre and #t > 1 then 5398 node = btn 5399 end 5400 end 5401 end 5402 end 5403 return node 5404 end 5405 5406 return WorldScene