diff --git a/js/plugins.js b/js/plugins.js index 24ba485..1e6980b 100644 --- a/js/plugins.js +++ b/js/plugins.js @@ -38,6 +38,7 @@ var $plugins = {"name":"YEP_X_VisualATBGauge","status":true,"description":"v1.03 时间槽外观☁️","parameters":{"Show Gauges":"true","Minimum Gauge Width":"144","Always Show":"true","Gauge Position":"false","Y Buffer":"-32","Use Thick Gauges":"true"}}, {"name":"YEP_X_VisualHpGauge","status":true,"description":"v1.07 (Requires YEP_BattleEngineCore.js) Reveal HP Gauges\r\nwhen a battler is selected or takes damage in battle.","parameters":{"---General---":"","Display Actor":"false","Defeat First":"false","Always Visible":"true","---Appearance---":"","Minimum Gauge Width":"144","Gauge Height":"18","Back Color":"19","HP Color 1":"20","HP Color 2":"21","Gauge Duration":"30","Gauge Position":"false","Y Buffer":"-16","Use Thick Gauges":"false","---Text Display---":"","Show HP":"true","Show Value":"true","Show Max":"true"}}, {"name":"YEP_VictoryAftermath","status":true,"description":"v1.07 Display an informative window after a battle is over\ninstead of message box text stating what the party earned.","parameters":{"---General---":"","Victory Order":"exp custom drops","---BGM---":"","Victory BGM":"Ship","BGM Volume":"90","BGM Pitch":"100","BGM Pan":"0","---Battle Results---":"","Cheer Wait":"90","Battle Results Text":"Battle Results","Battle Drops Text":"Battle Spoils","---EXP Window---":"","Font Size":"28","Level Up Text":"LEVEL UP!","Max Level Text":"MAX LEVEL","Show Skills Learned":"false","Gained EXP Text":"Gained EXP","Gained EXP Format":"+%1","EXP Gauge Color 1":"30","EXP Gauge Color 2":"31","Level Gauge Color 1":"14","Level Gauge Color 2":"6","Gauge Ticks":"15","Tick SE":"Absorb2","Tick Volume":"90","Tick Pitch":"150","Tick Pan":"0"}}, +{"name":"SF_ReserveMemberExp","status":true,"description":"支持队伍中的预备队员在战斗时,按照比例获得经验值","parameters":{"Rate":"100"}}, {"name":"--------------------","status":true,"description":"------------------------------------------------------------","parameters":{}}, {"name":"YEP_EventChasePlayer","status":true,"description":"v1.05 事件追逐☁️","parameters":{"Sight Lock":"300","See Player":"true","Alert Timer":"120","Alert Balloon":"1","Alert Sound":"Attack1","Alert Common Event":"0","Return After":"true","Return Wait":"180"}}, {"name":"--------------------","status":true,"description":"------------------------------------------------------------","parameters":{}}, @@ -75,10 +76,12 @@ var $plugins = {"name":"ActorEquipSlots","status":true,"description":"Actor Equip Slots","parameters":{}}, {"name":"--------------------","status":true,"description":"------------------------------------------------------------","parameters":{}}, {"name":"YEP_X_Autosave","status":true,"description":"v1.00 (Req YEP_SaveCore.js) Adds Autosave functionality to your\nRPG Maker game.","parameters":{"---Automatic---":"","OnMapLoad":"true","OnMainMenu":"true","---Option Menu---":"","Show Option":"true","Option Name":"自动保存","Default":"true","---Visual---":"","ShowAutosave":"true","AutosaveMsgSave":"\\i[83]自动保存完成","AutosaveMsgLoad":"\\i[83]加载自动保存","MsgGradient1":"rgba(0, 0, 0, 0)","MsgGradient2":"rgba(0, 0, 0, 0.6)","MsgGradientCode":"\"var textWidth = this.textWidthEx(this.message());\\nvar half = this.textPadding() + Math.ceil(textWidth / 2);\\nvar height = this.lineHeight();\\nvar color1 = Yanfly.Param.AutosaveMsgColor1;\\nvar color2 = Yanfly.Param.AutosaveMsgColor2;\\nthis.contents.gradientFillRect(0, 0, half, height, color1, color2);\\nthis.contents.gradientFillRect(half, 0, this.width - half, height, color2, color1);\"","MsgX":"Graphics.boxWidth - 180","MsgY":"Graphics.boxHeight - this.fittingHeight(1) * 2","MsgDuration":"120","FadeSpeed":"16"}}, +{"name":"SF_ExportSaveFile","status":true,"description":"export save file by downloading file","parameters":{"Delete Command":"删除","Import Command":"导入","Export Command":"导出","Category Command":"其他"}}, {"name":"--------------------","status":true,"description":"------------------------------------------------------------","parameters":{}}, {"name":"YEP_QuestJournal","status":true,"description":"YEP任务日志系统-优","parameters":{"---Main Menu---":"","Quest Command":"任务","Show Command":"true","Enable Command":"true","Auto Place Command":"true","---Quest Menu---":"","Quest Category Window":"{\"---Categories---\":\"\",\"Category Order\":\"[\\\"available\\\",\\\"completed\\\",\\\"failed\\\",\\\"all\\\"]\",\"Available Text\":\"\\\\i[192]正进行任务 (%1)\",\"Completed Text\":\"\\\\i[191]已完成任务 (%1)\",\"Failed Text\":\"\\\\i[194]失败的任务 (%1)\",\"All Text\":\"\\\\i[189]所有的任务 (%1)\",\"Cancel Text\":\"\\\\i[161]取消\",\"---Window Settings---\":\"\",\"X\":\"0\",\"Y\":\"0\",\"Width\":\"Graphics.boxWidth / 3\",\"Height\":\"this.fittingHeight(this.numVisibleRows())\",\"Rows\":\"4\",\"Columns\":\"1\",\"Line Height\":\"36\",\"Font Face\":\"GameFont\",\"Font Size\":\"28\",\"Standard Padding\":\"18\",\"Text Padding\":\"6\",\"Text Alignment\":\"left\",\"Standard Opacity\":\"255\",\"Back Opacity\":\"192\",\"Window Skin\":\"Window\"}","Quest List Window":"{\"---Types---\":\"\",\"Show Types\":\"true\",\"Type Order\":\"[\\\"\\\\\\\\c[6]主线任务\\\",\\\"\\\\\\\\c[4]支线任务\\\",\\\"\\\\\\\\c[3]特殊任务\\\",\\\"\\\\\\\\c[5]教程任务\\\"]\",\"List Open Symbol\":\"-\",\"List Closed Symbol\":\"+\",\"Type Text Format\":\"%1%2 (%3)\",\"Quest Indent\":\"0\",\"Show Empty\":\"false\",\"Read Quest\":\"\\\\i[121]查看任务\",\"Cancel\":\"\\\\i[16]退出\",\"---Window Settings---\":\"\",\"X\":\"0\",\"Y\":\"Graphics.boxHeight - height\",\"Width\":\"Graphics.boxWidth / 3\",\"Height\":\"Graphics.boxHeight - this.fittingHeight(4)\",\"Line Height\":\"36\",\"Font Face\":\"GameFont\",\"Font Size\":\"28\",\"Standard Padding\":\"18\",\"Text Padding\":\"6\",\"Standard Opacity\":\"255\",\"Back Opacity\":\"192\",\"Type Alignment\":\"left\",\"Quest Alignment\":\"left\",\"Window Skin\":\"Window\"}","Quest Title Window":"{\"---Window Settings---\":\"\",\"No Quest Title\":\"\\\\c[4]❀ 任务日志 ❀\",\"X\":\"Graphics.boxWidth - width\",\"Y\":\"0\",\"Width\":\"Graphics.boxWidth * 2 / 3\",\"Height\":\"this.fittingHeight(1)\",\"Line Height\":\"36\",\"Font Face\":\"GameFont\",\"Font Size\":\"28\",\"Standard Padding\":\"18\",\"Text Padding\":\"6\",\"Text Alignment\":\"center\",\"Standard Opacity\":\"255\",\"Back Opacity\":\"192\",\"Window Skin\":\"Window\"}","Quest Data Window":"{\"---Data Settings---\":\"\",\"No Data Text\":\"\\\"欢迎来到 \\\\\\\\c[4]任务系统\\\\\\\\c[0].\\\\n\\\"\",\"Quest Data Format\":\"\\\"\\\\\\\\c[4]任务难度:\\\\\\\\c[0] %2\\\\n\\\\\\\\c[4]任务发布:\\\\\\\\c[0] %3\\\\n\\\\\\\\c[4]发布地点:\\\\\\\\c[0] %4\\\\n\\\\n\\\\\\\\c[4]任务描述:\\\\\\\\c[0]\\\\n%5\\\\n\\\\n\\\\\\\\c[4]任务目标:\\\\\\\\c[0]\\\\n%6\\\\n\\\\n\\\\\\\\c[4]任务奖励:\\\\\\\\c[0]\\\\n%7\\\\n\\\\n%8\\\"\",\"Uncleared Objective\":\"\\\\i[160]%1\",\"Completed Objective\":\"\\\\i[165]%1\",\"Failed Objective\":\"\\\\i[162]%1\",\"Unclaimed Reward\":\"\\\\i[160]%1\",\"Claimed Reward\":\"\\\\i[163]%1\",\"Denied Reward\":\"\\\\i[161]%1\",\"Load Delay\":\"30\",\"---Window Settings---\":\"\",\"X\":\"Graphics.boxWidth - width\",\"Y\":\"Graphics.boxHeight - height\",\"Width\":\"Graphics.boxWidth * 2 / 3\",\"Height\":\"Graphics.boxHeight - this.fittingHeight(1)\",\"Line Height\":\"36\",\"Font Face\":\"GameFont\",\"Font Size\":\"28\",\"Standard Padding\":\"18\",\"Text Padding\":\"6\",\"Standard Opacity\":\"255\",\"Back Opacity\":\"192\",\"Window Skin\":\"Window\",\"Scroll Speed\":\"4\"}","Lunatic Mode":"{\"---Quest Menu---\":\"\",\"Before Create Windows\":\"\\\"// Variables\\\\n// background - background image used for the menu\\\\n// windowLayer - sprite layer that contains all windows\\\\n//\\\\n// background.bitmap = ImageManager.loadTitle1(\\\\\\\"Book\\\\\\\");\\\\n// this.fitScreen(background);\\\"\",\"After Create Windows\":\"\\\"// Variables\\\\n// background - background image used for the menu\\\\n// windowLayer - sprite layer that contains all windows\\\"\",\"Close Quest Menu\":\"\\\"// Variables\\\\n// background - background image used for the menu\\\\n// windowLayer - sprite layer that contains all windows\\\"\",\"---Quest Status---\":\"\",\"Quest Add\":\"\\\"// Variables:\\\\n// questId - ID of the quest being added\\\\n//\\\\n// console.log('Quest ' + questId + ' successfully added!')\\\"\",\"Quest Remove\":\"\\\"// Variables:\\\\n// questId - ID of the quest being removed\\\\n//\\\\n// console.log('Quest ' + questId + ' successfully removed!')\\\"\",\"Quest Complete\":\"\\\"// Variables:\\\\n// questId - ID of the quest set to completed\\\\n//\\\\n// console.log('Quest ' + questId + ' status changed to Completed!')\\\"\",\"Quest Fail\":\"\\\"// Variables:\\\\n// questId - ID of the quest set to failed\\\\n//\\\\n// console.log('Quest ' + questId + ' status changed to Failed!')\\\"\",\"Quest Available\":\"\\\"// Variables:\\\\n// questId - ID of the quest set to available\\\\n//\\\\n// console.log('Quest ' + questId + ' status changed to Available!')\\\"\",\"---Description---\":\"\",\"Change Description\":\"\\\"// Variables:\\\\n// questId - ID of the quest whose description is changed\\\\n// index - Description index being changed to\\\\n//\\\\n// console.log('Quest ' + questId + ' description index changed to ' + index)\\\"\",\"---Objectives---\":\"\",\"Show Objective\":\"\\\"// Variables:\\\\n// questId - ID of the quest whose objectives are altered\\\\n// objectiveId - ID of the objective being shown\\\\n//\\\\n// console.log('Quest ' + questId + ' objective ' + objectiveId + ' changed to shown!')\\\"\",\"Hide Objective\":\"\\\"// Variables:\\\\n// questId - ID of the quest whose objectives are altered\\\\n// objectiveId - ID of the objective being hidden\\\\n//\\\\n// console.log('Quest ' + questId + ' objective ' + objectiveId + ' changed to hidden!')\\\"\",\"Complete Objective\":\"\\\"// Variables:\\\\n// questId - ID of the quest whose objectives are altered\\\\n// objectiveId - ID of the objective being completed\\\\n//\\\\n// console.log('Quest ' + questId + ' objective ' + objectiveId + ' changed to completed!')\\\"\",\"Fail Objective\":\"\\\"// Variables:\\\\n// questId - ID of the quest whose objectives are altered\\\\n// objectiveId - ID of the objective having failed\\\\n//\\\\n// console.log('Quest ' + questId + ' objective ' + objectiveId + ' changed to failed!')\\\"\",\"Normalize Objective\":\"\\\"// Variables:\\\\n// questId - ID of the quest whose objectives are altered\\\\n// objectiveId - ID of the objective normalized\\\\n//\\\\n// console.log('Quest ' + questId + ' objective ' + objectiveId + ' changed to normal!')\\\"\",\"---Rewards---\":\"\",\"Show Reward\":\"\\\"// Variables:\\\\n// questId - ID of the quest whose rewards are altered\\\\n// rewardId - ID of the reward being shown\\\\n//\\\\n// console.log('Quest ' + questId + ' reward ' + rewardId + ' becomes shown!')\\\"\",\"Hide Reward\":\"\\\"// Variables:\\\\n// questId - ID of the quest whose rewards are altered\\\\n// rewardId - ID of the reward being hidden\\\\n//\\\\n// console.log('Quest ' + questId + ' reward ' + rewardId + ' becomes hidden!')\\\"\",\"Claim Reward\":\"\\\"// Variables:\\\\n// questId - ID of the quest whose rewards are altered\\\\n// rewardId - ID of the reward becoming claimed\\\\n//\\\\n// console.log('Quest ' + questId + ' reward ' + rewardId + ' is now claimed!')\\\"\",\"Deny Reward\":\"\\\"// Variables:\\\\n// questId - ID of the quest whose rewards are altered\\\\n// rewardId - ID of the reward becoming denied\\\\n//\\\\n// console.log('Quest ' + questId + ' reward ' + rewardId + ' is now denied!')\\\"\",\"Normalize Reward\":\"\\\"// Variables:\\\\n// questId - ID of the quest whose rewards are altered\\\\n// rewardId - ID of the reward normalized\\\\n//\\\\n// console.log('Quest ' + questId + ' reward ' + rewardId + ' is normalized!')\\\"\",\"---Subtext---\":\"\",\"Change Subtext\":\"\\\"// Variables:\\\\n// questId - ID of the quest whose subtext is changed\\\\n// index - Subtext index being changed to\\\\n//\\\\n// console.log('Quest ' + questId + ' subtext index changed to ' + index)\\\"\"}","---Quest List---":"","Quest 1":"{\"Title\":\"\\\\i[87]研究长子\",\"Type\":\"主线任务\",\"Difficulty\":\"简单难度\",\"From\":\"\",\"Location\":\"晶核研究站\",\"Description\":\"[\\\"\\\\\\\"进入晶核研究站后向上走,穿过星港进入研究站\\\\\\\"\\\",\\\"\\\\\\\"从研究站向右进入实验室\\\\\\\"\\\",\\\"\\\\\\\"点击右边长子容器研究长子\\\\\\\"\\\"]\",\"Objectives List\":\"[\\\"\\\\\\\"进入晶核研究站\\\\\\\"\\\",\\\"\\\\\\\"进入实验室\\\\\\\"\\\",\\\"\\\\\\\"研究长子\\\\\\\"\\\"]\",\"Visible Objectives\":\"[\\\"1\\\"]\",\"Rewards List\":\"[\\\"\\\\\\\"\\\\\\\\\\\\\\\\i[176]Potion x5\\\\\\\"\\\",\\\"\\\\\\\"\\\\\\\\\\\\\\\\i[178]Ether x3\\\\\\\"\\\",\\\"\\\\\\\"To make other rewards appear,\\\\\\\\nenable them through the \\\\\\\\\\\\\\\\c[4]'Visible\\\\\\\\nRewards'\\\\\\\\\\\\\\\\c[0] plugin parameter or by\\\\\\\\nusing a plugin command to make\\\\\\\\nthem appear\\\\\\\"\\\"]\",\"Visible Rewards\":\"[\\\"1\\\"]\",\"Subtext\":\"[\\\"\\\\\\\"\\\\\\\"\\\",\\\"\\\\\\\"This is a subtext. It is used as\\\\\\\\nextra text that you may want to\\\\\\\\nplace on your quest journal that\\\\\\\\ndiffers from the description.\\\\\\\"\\\"]\"}","Quest 2":"","Quest 3":"","Quest 4":"","Quest 5":"","Quest 6":"","Quest 7":"","Quest 8":"","Quest 9":"","Quest 10":"","Quest 11":"","Quest 12":"","Quest 13":"","Quest 14":"","Quest 15":"","Quest 16":"","Quest 17":"","Quest 18":"","Quest 19":"","Quest 20":"","Quest 21":"","Quest 22":"","Quest 23":"","Quest 24":"","Quest 25":"","Quest 26":"","Quest 27":"","Quest 28":"","Quest 29":"","Quest 30":"","Quest 31":"","Quest 32":"","Quest 33":"","Quest 34":"","Quest 35":"","Quest 36":"","Quest 37":"","Quest 38":"","Quest 39":"","Quest 40":"","Quest 41":"","Quest 42":"","Quest 43":"","Quest 44":"","Quest 45":"","Quest 46":"","Quest 47":"","Quest 48":"","Quest 49":"","Quest 50":"","Quest 51":"","Quest 52":"","Quest 53":"","Quest 54":"","Quest 55":"","Quest 56":"","Quest 57":"","Quest 58":"","Quest 59":"","Quest 60":"","Quest 61":"","Quest 62":"","Quest 63":"","Quest 64":"","Quest 65":"","Quest 66":"","Quest 67":"","Quest 68":"","Quest 69":"","Quest 70":"","Quest 71":"","Quest 72":"","Quest 73":"","Quest 74":"","Quest 75":"","Quest 76":"","Quest 77":"","Quest 78":"","Quest 79":"","Quest 80":"","Quest 81":"","Quest 82":"","Quest 83":"","Quest 84":"","Quest 85":"","Quest 86":"","Quest 87":"","Quest 88":"","Quest 89":"","Quest 90":"","Quest 91":"","Quest 92":"","Quest 93":"","Quest 94":"","Quest 95":"","Quest 96":"","Quest 97":"","Quest 98":"","Quest 99":"","Quest 100":""}}, {"name":"YEP_X_MapQuestWindow","status":true,"description":"YEP任务活动窗口-扩展","parameters":{"---Main---":"","Window Settings":"{\"---General---\":\"\",\"Word Wrap Objectives\":\"true\",\"Default Show\":\"true\",\"---Window Settings---\":\"\",\"X\":\"Graphics.boxWidth - width\",\"Y\":\"Graphics.boxHeight - height\",\"Scale\":\"0.50\",\"Width\":\"Graphics.boxWidth / 3\",\"Line Height\":\"36\",\"Font Face\":\"GameFont\",\"Font Size\":\"28\",\"Standard Padding\":\"18\",\"Text Padding\":\"6\",\"Standard Opacity\":\"255\",\"Back Opacity\":\"192\",\"Window Skin\":\"Window\"}","Set Active":"\\i[189]开启展示","Currently Active":"\\i[189]已展示","Clear Active":"\\i[186]取消展示","---Options---":"","Options Command":"任务窗口","Options Enable":"true","---Automatic Updates---":"","Quest Add":"true","Quest Complete":"true","Quest Failed":"true","Change Objectives":"true","Event Update":"true"}}, {"name":"YEP_X_MoreQuests1","status":true,"description":"YEP任务扩展-任务数扩充1000","parameters":{"---Quests 101 to 200---":"","Category: 101 to 200":"主线任务","Difficulty: 101 to 200":"简单难度","From: 101 to 200":"系统","Location: 101 to 200":"系统","Quest 101":"","Quest 102":"","Quest 103":"","Quest 104":"","Quest 105":"","Quest 106":"","Quest 107":"","Quest 108":"","Quest 109":"","Quest 110":"","Quest 111":"","Quest 112":"","Quest 113":"","Quest 114":"","Quest 115":"","Quest 116":"","Quest 117":"","Quest 118":"","Quest 119":"","Quest 120":"","Quest 121":"","Quest 122":"","Quest 123":"","Quest 124":"","Quest 125":"","Quest 126":"","Quest 127":"","Quest 128":"","Quest 129":"","Quest 130":"","Quest 131":"","Quest 132":"","Quest 133":"","Quest 134":"","Quest 135":"","Quest 136":"","Quest 137":"","Quest 138":"","Quest 139":"","Quest 140":"","Quest 141":"","Quest 142":"","Quest 143":"","Quest 144":"","Quest 145":"","Quest 146":"","Quest 147":"","Quest 148":"","Quest 149":"","Quest 150":"","Quest 151":"","Quest 152":"","Quest 153":"","Quest 154":"","Quest 155":"","Quest 156":"","Quest 157":"","Quest 158":"","Quest 159":"","Quest 160":"","Quest 161":"","Quest 162":"","Quest 163":"","Quest 164":"","Quest 165":"","Quest 166":"","Quest 167":"","Quest 168":"","Quest 169":"","Quest 170":"","Quest 171":"","Quest 172":"","Quest 173":"","Quest 174":"","Quest 175":"","Quest 176":"","Quest 177":"","Quest 178":"","Quest 179":"","Quest 180":"","Quest 181":"","Quest 182":"","Quest 183":"","Quest 184":"","Quest 185":"","Quest 186":"","Quest 187":"","Quest 188":"","Quest 189":"","Quest 190":"","Quest 191":"","Quest 192":"","Quest 193":"","Quest 194":"","Quest 195":"","Quest 196":"","Quest 197":"","Quest 198":"","Quest 199":"","Quest 200":"","---Quests 201 to 300---":"","Category: 201 to 300":"支线任务","Difficulty: 201 to 300":"Kinda Easy","From: 201 to 300":"Ulrika","Location: 201 to 300":"RPG Maker World","Quest 201":"","Quest 202":"","Quest 203":"","Quest 204":"","Quest 205":"","Quest 206":"","Quest 207":"","Quest 208":"","Quest 209":"","Quest 210":"","Quest 211":"","Quest 212":"","Quest 213":"","Quest 214":"","Quest 215":"","Quest 216":"","Quest 217":"","Quest 218":"","Quest 219":"","Quest 220":"","Quest 221":"","Quest 222":"","Quest 223":"","Quest 224":"","Quest 225":"","Quest 226":"","Quest 227":"","Quest 228":"","Quest 229":"","Quest 230":"","Quest 231":"","Quest 232":"","Quest 233":"","Quest 234":"","Quest 235":"","Quest 236":"","Quest 237":"","Quest 238":"","Quest 239":"","Quest 240":"","Quest 241":"","Quest 242":"","Quest 243":"","Quest 244":"","Quest 245":"","Quest 246":"","Quest 247":"","Quest 248":"","Quest 249":"","Quest 250":"","Quest 251":"","Quest 252":"","Quest 253":"","Quest 254":"","Quest 255":"","Quest 256":"","Quest 257":"","Quest 258":"","Quest 259":"","Quest 260":"","Quest 261":"","Quest 262":"","Quest 263":"","Quest 264":"","Quest 265":"","Quest 266":"","Quest 267":"","Quest 268":"","Quest 269":"","Quest 270":"","Quest 271":"","Quest 272":"","Quest 273":"","Quest 274":"","Quest 275":"","Quest 276":"","Quest 277":"","Quest 278":"","Quest 279":"","Quest 280":"","Quest 281":"","Quest 282":"","Quest 283":"","Quest 284":"","Quest 285":"","Quest 286":"","Quest 287":"","Quest 288":"","Quest 289":"","Quest 290":"","Quest 291":"","Quest 292":"","Quest 293":"","Quest 294":"","Quest 295":"","Quest 296":"","Quest 297":"","Quest 298":"","Quest 299":"","Quest 300":"","---Quests 301 to 400---":"","Category: 301 to 400":"特殊任务","Difficulty: 301 to 400":"Easy to Normal","From: 301 to 400":"Bennett","Location: 301 to 400":"RPG Maker Kart","Quest 301":"","Quest 302":"","Quest 303":"","Quest 304":"","Quest 305":"","Quest 306":"","Quest 307":"","Quest 308":"","Quest 309":"","Quest 310":"","Quest 311":"","Quest 312":"","Quest 313":"","Quest 314":"","Quest 315":"","Quest 316":"","Quest 317":"","Quest 318":"","Quest 319":"","Quest 320":"","Quest 321":"","Quest 322":"","Quest 323":"","Quest 324":"","Quest 325":"","Quest 326":"","Quest 327":"","Quest 328":"","Quest 329":"","Quest 330":"","Quest 331":"","Quest 332":"","Quest 333":"","Quest 334":"","Quest 335":"","Quest 336":"","Quest 337":"","Quest 338":"","Quest 339":"","Quest 340":"","Quest 341":"","Quest 342":"","Quest 343":"","Quest 344":"","Quest 345":"","Quest 346":"","Quest 347":"","Quest 348":"","Quest 349":"","Quest 350":"","Quest 351":"","Quest 352":"","Quest 353":"","Quest 354":"","Quest 355":"","Quest 356":"","Quest 357":"","Quest 358":"","Quest 359":"","Quest 360":"","Quest 361":"","Quest 362":"","Quest 363":"","Quest 364":"","Quest 365":"","Quest 366":"","Quest 367":"","Quest 368":"","Quest 369":"","Quest 370":"","Quest 371":"","Quest 372":"","Quest 373":"","Quest 374":"","Quest 375":"","Quest 376":"","Quest 377":"","Quest 378":"","Quest 379":"","Quest 380":"","Quest 381":"","Quest 382":"","Quest 383":"","Quest 384":"","Quest 385":"","Quest 386":"","Quest 387":"","Quest 388":"","Quest 389":"","Quest 390":"","Quest 391":"","Quest 392":"","Quest 393":"","Quest 394":"","Quest 395":"","Quest 396":"","Quest 397":"","Quest 398":"","Quest 399":"","Quest 400":"","---Quests 401 to 500---":"","Category: 401 to 500":"教程任务","Difficulty: 401 to 500":"Interesting","From: 401 to 500":"Lawrence","Location: 401 to 500":"RPG Maker Sunshine","Quest 401":"","Quest 402":"","Quest 403":"","Quest 404":"","Quest 405":"","Quest 406":"","Quest 407":"","Quest 408":"","Quest 409":"","Quest 410":"","Quest 411":"","Quest 412":"","Quest 413":"","Quest 414":"","Quest 415":"","Quest 416":"","Quest 417":"","Quest 418":"","Quest 419":"","Quest 420":"","Quest 421":"","Quest 422":"","Quest 423":"","Quest 424":"","Quest 425":"","Quest 426":"","Quest 427":"","Quest 428":"","Quest 429":"","Quest 430":"","Quest 431":"","Quest 432":"","Quest 433":"","Quest 434":"","Quest 435":"","Quest 436":"","Quest 437":"","Quest 438":"","Quest 439":"","Quest 440":"","Quest 441":"","Quest 442":"","Quest 443":"","Quest 444":"","Quest 445":"","Quest 446":"","Quest 447":"","Quest 448":"","Quest 449":"","Quest 450":"","Quest 451":"","Quest 452":"","Quest 453":"","Quest 454":"","Quest 455":"","Quest 456":"","Quest 457":"","Quest 458":"","Quest 459":"","Quest 460":"","Quest 461":"","Quest 462":"","Quest 463":"","Quest 464":"","Quest 465":"","Quest 466":"","Quest 467":"","Quest 468":"","Quest 469":"","Quest 470":"","Quest 471":"","Quest 472":"","Quest 473":"","Quest 474":"","Quest 475":"","Quest 476":"","Quest 477":"","Quest 478":"","Quest 479":"","Quest 480":"","Quest 481":"","Quest 482":"","Quest 483":"","Quest 484":"","Quest 485":"","Quest 486":"","Quest 487":"","Quest 488":"","Quest 489":"","Quest 490":"","Quest 491":"","Quest 492":"","Quest 493":"","Quest 494":"","Quest 495":"","Quest 496":"","Quest 497":"","Quest 498":"","Quest 499":"","Quest 500":"","---Quests 501 to 600---":"","Category: 501 to 600":"Villain Quests","Difficulty: 501 to 600":"Normalish","From: 501 to 600":"Oscar","Location: 501 to 600":"RPG Maker Party","Quest 501":"","Quest 502":"","Quest 503":"","Quest 504":"","Quest 505":"","Quest 506":"","Quest 507":"","Quest 508":"","Quest 509":"","Quest 510":"","Quest 511":"","Quest 512":"","Quest 513":"","Quest 514":"","Quest 515":"","Quest 516":"","Quest 517":"","Quest 518":"","Quest 519":"","Quest 520":"","Quest 521":"","Quest 522":"","Quest 523":"","Quest 524":"","Quest 525":"","Quest 526":"","Quest 527":"","Quest 528":"","Quest 529":"","Quest 530":"","Quest 531":"","Quest 532":"","Quest 533":"","Quest 534":"","Quest 535":"","Quest 536":"","Quest 537":"","Quest 538":"","Quest 539":"","Quest 540":"","Quest 541":"","Quest 542":"","Quest 543":"","Quest 544":"","Quest 545":"","Quest 546":"","Quest 547":"","Quest 548":"","Quest 549":"","Quest 550":"","Quest 551":"","Quest 552":"","Quest 553":"","Quest 554":"","Quest 555":"","Quest 556":"","Quest 557":"","Quest 558":"","Quest 559":"","Quest 560":"","Quest 561":"","Quest 562":"","Quest 563":"","Quest 564":"","Quest 565":"","Quest 566":"","Quest 567":"","Quest 568":"","Quest 569":"","Quest 570":"","Quest 571":"","Quest 572":"","Quest 573":"","Quest 574":"","Quest 575":"","Quest 576":"","Quest 577":"","Quest 578":"","Quest 579":"","Quest 580":"","Quest 581":"","Quest 582":"","Quest 583":"","Quest 584":"","Quest 585":"","Quest 586":"","Quest 587":"","Quest 588":"","Quest 589":"","Quest 590":"","Quest 591":"","Quest 592":"","Quest 593":"","Quest 594":"","Quest 595":"","Quest 596":"","Quest 597":"","Quest 598":"","Quest 599":"","Quest 600":"","---Quests 601 to 700---":"","Category: 601 to 700":"Training Quests","Difficulty: 601 to 700":"Normal to Hard","From: 601 to 700":"Vera","Location: 601 to 700":"Paper RPG Maker","Quest 601":"","Quest 602":"","Quest 603":"","Quest 604":"","Quest 605":"","Quest 606":"","Quest 607":"","Quest 608":"","Quest 609":"","Quest 610":"","Quest 611":"","Quest 612":"","Quest 613":"","Quest 614":"","Quest 615":"","Quest 616":"","Quest 617":"","Quest 618":"","Quest 619":"","Quest 620":"","Quest 621":"","Quest 622":"","Quest 623":"","Quest 624":"","Quest 625":"","Quest 626":"","Quest 627":"","Quest 628":"","Quest 629":"","Quest 630":"","Quest 631":"","Quest 632":"","Quest 633":"","Quest 634":"","Quest 635":"","Quest 636":"","Quest 637":"","Quest 638":"","Quest 639":"","Quest 640":"","Quest 641":"","Quest 642":"","Quest 643":"","Quest 644":"","Quest 645":"","Quest 646":"","Quest 647":"","Quest 648":"","Quest 649":"","Quest 650":"","Quest 651":"","Quest 652":"","Quest 653":"","Quest 654":"","Quest 655":"","Quest 656":"","Quest 657":"","Quest 658":"","Quest 659":"","Quest 660":"","Quest 661":"","Quest 662":"","Quest 663":"","Quest 664":"","Quest 665":"","Quest 666":"","Quest 667":"","Quest 668":"","Quest 669":"","Quest 670":"","Quest 671":"","Quest 672":"","Quest 673":"","Quest 674":"","Quest 675":"","Quest 676":"","Quest 677":"","Quest 678":"","Quest 679":"","Quest 680":"","Quest 681":"","Quest 682":"","Quest 683":"","Quest 684":"","Quest 685":"","Quest 686":"","Quest 687":"","Quest 688":"","Quest 689":"","Quest 690":"","Quest 691":"","Quest 692":"","Quest 693":"","Quest 694":"","Quest 695":"","Quest 696":"","Quest 697":"","Quest 698":"","Quest 699":"","Quest 700":"","---Quests 701 to 800---":"","Category: 701 to 800":"Mastery Quests","Difficulty: 701 to 800":"Hard","From: 701 to 800":"Elmer","Location: 701 to 800":"RPG Maker Power Tennis","Quest 701":"","Quest 702":"","Quest 703":"","Quest 704":"","Quest 705":"","Quest 706":"","Quest 707":"","Quest 708":"","Quest 709":"","Quest 710":"","Quest 711":"","Quest 712":"","Quest 713":"","Quest 714":"","Quest 715":"","Quest 716":"","Quest 717":"","Quest 718":"","Quest 719":"","Quest 720":"","Quest 721":"","Quest 722":"","Quest 723":"","Quest 724":"","Quest 725":"","Quest 726":"","Quest 727":"","Quest 728":"","Quest 729":"","Quest 730":"","Quest 731":"","Quest 732":"","Quest 733":"","Quest 734":"","Quest 735":"","Quest 736":"","Quest 737":"","Quest 738":"","Quest 739":"","Quest 740":"","Quest 741":"","Quest 742":"","Quest 743":"","Quest 744":"","Quest 745":"","Quest 746":"","Quest 747":"","Quest 748":"","Quest 749":"","Quest 750":"","Quest 751":"","Quest 752":"","Quest 753":"","Quest 754":"","Quest 755":"","Quest 756":"","Quest 757":"","Quest 758":"","Quest 759":"","Quest 760":"","Quest 761":"","Quest 762":"","Quest 763":"","Quest 764":"","Quest 765":"","Quest 766":"","Quest 767":"","Quest 768":"","Quest 769":"","Quest 770":"","Quest 771":"","Quest 772":"","Quest 773":"","Quest 774":"","Quest 775":"","Quest 776":"","Quest 777":"","Quest 778":"","Quest 779":"","Quest 780":"","Quest 781":"","Quest 782":"","Quest 783":"","Quest 784":"","Quest 785":"","Quest 786":"","Quest 787":"","Quest 788":"","Quest 789":"","Quest 790":"","Quest 791":"","Quest 792":"","Quest 793":"","Quest 794":"","Quest 795":"","Quest 796":"","Quest 797":"","Quest 798":"","Quest 799":"","Quest 800":"","---Quests 801 to 900---":"","Category: 801 to 900":"Extra Quests","Difficulty: 801 to 900":"Very Hard","From: 801 to 900":"Ruby","Location: 801 to 900":"RPG Maker Strikers","Quest 801":"","Quest 802":"","Quest 803":"","Quest 804":"","Quest 805":"","Quest 806":"","Quest 807":"","Quest 808":"","Quest 809":"","Quest 810":"","Quest 811":"","Quest 812":"","Quest 813":"","Quest 814":"","Quest 815":"","Quest 816":"","Quest 817":"","Quest 818":"","Quest 819":"","Quest 820":"","Quest 821":"","Quest 822":"","Quest 823":"","Quest 824":"","Quest 825":"","Quest 826":"","Quest 827":"","Quest 828":"","Quest 829":"","Quest 830":"","Quest 831":"","Quest 832":"","Quest 833":"","Quest 834":"","Quest 835":"","Quest 836":"","Quest 837":"","Quest 838":"","Quest 839":"","Quest 840":"","Quest 841":"","Quest 842":"","Quest 843":"","Quest 844":"","Quest 845":"","Quest 846":"","Quest 847":"","Quest 848":"","Quest 849":"","Quest 850":"","Quest 851":"","Quest 852":"","Quest 853":"","Quest 854":"","Quest 855":"","Quest 856":"","Quest 857":"","Quest 858":"","Quest 859":"","Quest 860":"","Quest 861":"","Quest 862":"","Quest 863":"","Quest 864":"","Quest 865":"","Quest 866":"","Quest 867":"","Quest 868":"","Quest 869":"","Quest 870":"","Quest 871":"","Quest 872":"","Quest 873":"","Quest 874":"","Quest 875":"","Quest 876":"","Quest 877":"","Quest 878":"","Quest 879":"","Quest 880":"","Quest 881":"","Quest 882":"","Quest 883":"","Quest 884":"","Quest 885":"","Quest 886":"","Quest 887":"","Quest 888":"","Quest 889":"","Quest 890":"","Quest 891":"","Quest 892":"","Quest 893":"","Quest 894":"","Quest 895":"","Quest 896":"","Quest 897":"","Quest 898":"","Quest 899":"","Quest 900":"","---Quests 901 to 1000---":"","Category: 901 to 1000":"Post-Game Quests","Difficulty: 901 to 1000":"Super Hard","From: 901 to 1000":"Love","Location: 901 to 1000":"RPG Maker Galaxy","Quest 901":"","Quest 902":"","Quest 903":"","Quest 904":"","Quest 905":"","Quest 906":"","Quest 907":"","Quest 908":"","Quest 909":"","Quest 910":"","Quest 911":"","Quest 912":"","Quest 913":"","Quest 914":"","Quest 915":"","Quest 916":"","Quest 917":"","Quest 918":"","Quest 919":"","Quest 920":"","Quest 921":"","Quest 922":"","Quest 923":"","Quest 924":"","Quest 925":"","Quest 926":"","Quest 927":"","Quest 928":"","Quest 929":"","Quest 930":"","Quest 931":"","Quest 932":"","Quest 933":"","Quest 934":"","Quest 935":"","Quest 936":"","Quest 937":"","Quest 938":"","Quest 939":"","Quest 940":"","Quest 941":"","Quest 942":"","Quest 943":"","Quest 944":"","Quest 945":"","Quest 946":"","Quest 947":"","Quest 948":"","Quest 949":"","Quest 950":"","Quest 951":"","Quest 952":"","Quest 953":"","Quest 954":"","Quest 955":"","Quest 956":"","Quest 957":"","Quest 958":"","Quest 959":"","Quest 960":"","Quest 961":"","Quest 962":"","Quest 963":"","Quest 964":"","Quest 965":"","Quest 966":"","Quest 967":"","Quest 968":"","Quest 969":"","Quest 970":"","Quest 971":"","Quest 972":"","Quest 973":"","Quest 974":"","Quest 975":"","Quest 976":"","Quest 977":"","Quest 978":"","Quest 979":"","Quest 980":"","Quest 981":"","Quest 982":"","Quest 983":"","Quest 984":"","Quest 985":"","Quest 986":"","Quest 987":"","Quest 988":"","Quest 989":"","Quest 990":"","Quest 991":"","Quest 992":"","Quest 993":"","Quest 994":"","Quest 995":"","Quest 996":"","Quest 997":"","Quest 998":"","Quest 999":"","Quest 1000":""}}, {"name":"LiuYue_SeniorChest","status":true,"description":"v1.04 LiuYue_SeniorChest 高级箱子","parameters":{"---设置---":"","OverlapMode":"Overlap","ShowMode":"YuanShen","IsFilterText":"false","CoinIcon":"313","CountNumWidth":"4444","CountCoinWidth":"22222","---Chest模式窗口---":"","CMaxCols":"2","IsCAllTake":"true","CAllTakeText":"全部取走","IsCClose":"true","CCloseText":"关闭宝箱","IsCAutoLine":"true","---YuanShen模式窗口---":"","YMaxCols":"2","YMaxList":"5","YWindowWidth":"400","YWindowOp":"125","YTakeRange":"1","YColor1":"rgba(0, 0, 0, 0.6)","YColor2":"rgba(0, 0, 0, 0)","YOffsetX":"20","YOffsetY":"-180","YFadeFrame":"10","YDistance":"2","YIsHorShow":"true","YIsAutoOpen":"true","YIsLimitWindow":"true","---道具设置---":"","CoinColor":"#ffff00","---音效---":"","TakeSound":"Cursor1","TakeVolume":"100","TakePitch":"100","TakePan":"0","NoItemSound":"Cancel1","NoItemVolume":"100","NoItemPitch":"100","NoItemPan":"0","ChangeItemSound":"Knock","ChangeItemVolume":"100","ChangeItemPitch":"100","ChangeItemPan":"0","AllTakeSound":"Equip2","AllTakeVolume":"100","AllTakePitch":"100","AllTakePan":"0","CloseSound":"Chest2","CloseVolume":"100","ClosePitch":"100","ClosePan":"0"}}, -{"name":"VirtualButtons_OnlyForSelf","status":true,"description":"v3.0 Creates buttons on the screen for touch input","parameters":{"dPadSettings":"{\"rockerImage\":\"Directions\",\"pressedpointimage\":\"Points\",\"padImage\":\"4dir\",\"x\":\"40\",\"y\":\"Graphics.height-280\",\"soundEffect\":\"\",\"Use Dynamic roker\":\"true\",\"Dynamic rocker back img\":\"dynamic\",\"Rectangle X\":\"0\",\"Rectangle Y\":\"Graphics.height-450\"}","keyButtonSettings":"[\"{\\\"name\\\":\\\"ok\\\",\\\"inputMethod\\\":\\\"0\\\",\\\"inputTrigger\\\":\\\"ok\\\",\\\"image\\\":\\\"OK1\\\",\\\"hotImage\\\":\\\"OK2\\\",\\\"activeScenes\\\":\\\"[\\\\\\\"Scene_Title\\\\\\\",\\\\\\\"Scene_Map\\\\\\\"]\\\",\\\"x\\\":\\\"Graphics.width-180\\\",\\\"y\\\":\\\"Graphics.height-200\\\",\\\"soundEffect\\\":\\\"\\\",\\\"commonEvent\\\":\\\"0\\\",\\\"customCode\\\":\\\"\\\",\\\"vibratePattern\\\":\\\"0\\\"}\",\"{\\\"name\\\":\\\"menu\\\",\\\"inputMethod\\\":\\\"0\\\",\\\"inputTrigger\\\":\\\"escape\\\",\\\"image\\\":\\\"Menu1\\\",\\\"hotImage\\\":\\\"Menu2\\\",\\\"activeScenes\\\":\\\"[\\\\\\\"Scene_Title\\\\\\\",\\\\\\\"Scene_Map\\\\\\\"]\\\",\\\"x\\\":\\\"40\\\",\\\"y\\\":\\\"40\\\",\\\"soundEffect\\\":\\\"\\\",\\\"commonEvent\\\":\\\"0\\\",\\\"customCode\\\":\\\"\\\",\\\"vibratePattern\\\":\\\"0\\\"}\",\"{\\\"name\\\":\\\"debug\\\",\\\"inputMethod\\\":\\\"0\\\",\\\"inputTrigger\\\":\\\"\\\",\\\"image\\\":\\\"DEBUG1\\\",\\\"hotImage\\\":\\\"DEBUG2\\\",\\\"x\\\":\\\"Graphics.width/2-50\\\",\\\"y\\\":\\\"0\\\",\\\"soundEffect\\\":\\\"\\\",\\\"commonEvent\\\":\\\"0\\\",\\\"customCode\\\":\\\"\\\\\\\"window.DebugBaseButton=window.DebugBaseButton||{};\\\\\\\\nTouchInput.clear();\\\\\\\\nTouchInput.removeEventHandlers();\\\\\\\\nInput.clear();\\\\\\\\nInput.removeEventHandlers();\\\\\\\\nvar canvas=document.getElementById(\\\\\\\\\\\\\\\"UpperCanvas\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.debugDiv=DebugBaseButton.debugDiv||document.createElement(\\\\\\\\\\\\\\\"div\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.debugInput=DebugBaseButton.debugInput||document.createElement(\\\\\\\\\\\\\\\"textarea\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.enterInput=DebugBaseButton.enterInput||document.createElement(\\\\\\\\\\\\\\\"input\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.exitInput=DebugBaseButton.exitInput||document.createElement(\\\\\\\\\\\\\\\"input\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.resultDiv=DebugBaseButton.resultDiv||document.createElement(\\\\\\\\\\\\\\\"div\\\\\\\\\\\\\\\");\\\\\\\\n if(!DebugBaseButton.OpenedOnce){\\\\\\\\n DebugBaseButton.OpenedOnce=true;\\\\\\\\n DebugBaseButton.RunJavaScript=function(src,result){\\\\\\\\n try{\\\\\\\\n result.innerHTML=\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\";\\\\\\\\n var code=src.value;\\\\\\\\n var r=eval(code);\\\\\\\\n result.innerHTML+='[eval result:]'+r+'
';\\\\\\\\n } catch (e){\\\\\\\\n result.innerHTML+=\\\\\\\\\\\\\\\"[catch Error!]
\\\\\\\\\\\\\\\"+\\\\\\\\n \\\\\\\\\\\\\\\"[Error Name:]\\\\\\\\\\\\\\\"+e.name+'
'+\\\\\\\\n \\\\\\\\\\\\\\\"[Error Meaasge:]\\\\\\\\\\\\\\\"+e.message+\\\\\\\\\\\\\\\"
\\\\\\\\\\\\\\\";\\\\\\\\n }\\\\\\\\n };\\\\\\\\n\\\\\\\\n DebugBaseButton.clacTextWidth=function(text,fontSize){\\\\\\\\n DebugBaseButton.clacCanvas=DebugBaseButton.clacCanvas||document.createElement(\\\\\\\\\\\\\\\"canvas\\\\\\\\\\\\\\\");\\\\\\\\n var context=DebugBaseButton.clacCanvas.getContext(\\\\\\\\\\\\\\\"2d\\\\\\\\\\\\\\\");\\\\\\\\n context.font=context.font.replace(/\\\\\\\\\\\\\\\\d+px/, fontSize+\\\\\\\\\\\\\\\"px\\\\\\\\\\\\\\\");\\\\\\\\n return context.measureText(text).width;\\\\\\\\n }\\\\\\\\n\\\\\\\\n var console_log=console.log;\\\\\\\\n console.log=function(message){\\\\\\\\n var fontSize=parseInt(DebugBaseButton.resultDiv.style.fontSize);\\\\\\\\n if (typeof message == 'object') {\\\\\\\\n DebugBaseButton.resultDiv.innerHTML += ('[Console log:]'+\\\\\\\\n MakeObjectInnerHtmlIndent(message,DebugBaseButton.clacTextWidth('[Console log:]',fontSize),fontSize));\\\\\\\\n } else {\\\\\\\\n DebugBaseButton.resultDiv.innerHTML += '[Console log:]'+message + '
';\\\\\\\\n }\\\\\\\\n console_log(message);\\\\\\\\n };\\\\\\\\n\\\\\\\\n MakeObjectInnerHtmlIndent=function(object,indent,fontSize){\\\\\\\\n var innerHTML=\\\\\\\\\\\\\\\"
\\\\\\\\\\\\\\\";\\\\\\\\n for(var i in object){\\\\\\\\n innerHTML+=\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\"+i+\\\\\\\\\\\\\\\" :\\\\\\\\\\\\\\\";\\\\\\\\n if(typeof object[i] =='object'){\\\\\\\\n innerHTML+=MakeObjectInnerHtmlIndent(object[i],DebugBaseButton.clacTextWidth(i,fontSize),fontSize);\\\\\\\\n } else {\\\\\\\\n innerHTML+=\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\"+object[i]+\\\\\\\\\\\\\\\"
\\\\\\\\\\\\\\\"\\\\\\\\n }\\\\\\\\n }\\\\\\\\n innerHTML+=\\\\\\\\\\\\\\\"
\\\\\\\\\\\\\\\";\\\\\\\\n return innerHTML;\\\\\\\\n }\\\\\\\\n\\\\\\\\n DebugBaseButton.ExitDebug=function(Debug){\\\\\\\\n this.removeChild(Debug);\\\\\\\\n TouchInput._setupEventHandlers();\\\\\\\\n Input._setupEventHandlers();\\\\\\\\n DebugBaseButton.enterInput.removeEventListener(\\\\\\\\\\\\\\\"click\\\\\\\\\\\\\\\",DebugBaseButton.enterInput_bind);\\\\\\\\n DebugBaseButton.exitInput.removeEventListener(\\\\\\\\\\\\\\\"click\\\\\\\\\\\\\\\",DebugBaseButton.exitInput_bind);\\\\\\\\n };\\\\\\\\n\\\\\\\\n DebugBaseButton.debugDiv.setAttribute(\\\\\\\\\\\\\\\"style\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"position: absolute;margin: auto; top: 0px; left: 0px; right: 0px; bottom: 0px;z-index: 1000; height:\\\\\\\\\\\\\\\"+\\\\\\\\n canvas.offsetHeight+\\\\\\\\\\\\\\\"px; width:\\\\\\\\\\\\\\\"+canvas.offsetWidth+\\\\\\\\\\\\\\\"px; background-color: rgba(0, 0, 0, 0.3); color: #FFFFFF; user-select:text;\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.debugDiv.setAttribute(\\\\\\\\\\\\\\\"id\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"DebugDiv\\\\\\\\\\\\\\\");\\\\\\\\n document.body.appendChild(DebugBaseButton.debugDiv);\\\\\\\\n\\\\\\\\n //input.setAttribute(\\\\\\\\\\\\\\\"type\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"text\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.debugInput.setAttribute(\\\\\\\\\\\\\\\"style\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"width:\\\\\\\\\\\\\\\"+(canvas.offsetWidth-150*Graphics._realScale)+\\\\\\\\\\\\\\\"px; background-color: rgba(0,0,0,0.3);\\\\\\\\\\\\\\\"+\\\\\\\\n \\\\\\\\\\\\\\\"height: \\\\\\\\\\\\\\\"+(150*Graphics._realScale)+\\\\\\\\\\\\\\\"px; font-size: 30px; color: rgba(255,255,255,1); resize: none;\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.debugInput.setAttribute(\\\\\\\\\\\\\\\"cols\\\\\\\\\\\\\\\",canvas.offsetWidth-150*Graphics._realScale);\\\\\\\\n DebugBaseButton.debugInput.setAttribute(\\\\\\\\\\\\\\\"rows\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"10\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.debugDiv.appendChild(DebugBaseButton.debugInput);\\\\\\\\n\\\\\\\\n DebugBaseButton.enterInput.setAttribute(\\\\\\\\\\\\\\\"type\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"button\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.enterInput.setAttribute(\\\\\\\\\\\\\\\"value\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"执行\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.enterInput.setAttribute(\\\\\\\\\\\\\\\"style\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"position: absolute; left:\\\\\\\\\\\\\\\"+DebugBaseButton.debugInput.offsetWidth+\\\\\\\\\\\\\\\"px;\\\\\\\\\\\\\\\"+\\\\\\\\n \\\\\\\\\\\\\\\"width: \\\\\\\\\\\\\\\"+(canvas.offsetWidth-DebugBaseButton.debugInput.offsetWidth)+\\\\\\\\\\\\\\\"px; height:\\\\\\\\\\\\\\\"+(DebugBaseButton.debugInput.offsetHeight/2)+\\\\\\\\\\\\\\\"px;\\\\\\\\\\\\\\\"+\\\\\\\\n \\\\\\\\\\\\\\\"background-color: rgba(0,0,0,0.3); font-size: \\\\\\\\\\\\\\\"+40*Graphics._realScale+\\\\\\\\\\\\\\\"px; color: rgba(255,255,255,0.7);\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.enterInput_bind=DebugBaseButton.RunJavaScript.bind(DebugBaseButton.enterInput,DebugBaseButton.debugInput,DebugBaseButton.resultDiv)\\\\\\\\n DebugBaseButton.enterInput.addEventListener(\\\\\\\\\\\\\\\"click\\\\\\\\\\\\\\\",DebugBaseButton.enterInput_bind);\\\\\\\\n DebugBaseButton.debugDiv.appendChild(DebugBaseButton.enterInput);\\\\\\\\n\\\\\\\\n DebugBaseButton.exitInput.setAttribute(\\\\\\\\\\\\\\\"type\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"button\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.exitInput.setAttribute(\\\\\\\\\\\\\\\"value\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"退出\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.exitInput.setAttribute(\\\\\\\\\\\\\\\"style\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"position: absolute; left:\\\\\\\\\\\\\\\"+DebugBaseButton.debugInput.offsetWidth+\\\\\\\\\\\\\\\"px;\\\\\\\\\\\\\\\"+\\\\\\\\n \\\\\\\\\\\\\\\"width: \\\\\\\\\\\\\\\"+(canvas.offsetWidth-DebugBaseButton.debugInput.offsetWidth)+\\\\\\\\\\\\\\\"px; top:\\\\\\\\\\\\\\\"+(DebugBaseButton.debugInput.offsetHeight/2)+\\\\\\\\\\\\\\\"px; height:\\\\\\\\\\\\\\\"+(DebugBaseButton.debugInput.offsetHeight/2)+\\\\\\\\\\\\\\\"px;\\\\\\\\\\\\\\\"+\\\\\\\\n \\\\\\\\\\\\\\\"background-color: rgba(0,0,0,0.3); font-size: \\\\\\\\\\\\\\\"+40*Graphics._realScale+\\\\\\\\\\\\\\\"px; color: rgba(255,255,255,0.7);\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.exitInput_bind=DebugBaseButton.ExitDebug.bind(document.body,DebugBaseButton.debugDiv);\\\\\\\\n DebugBaseButton.exitInput.addEventListener(\\\\\\\\\\\\\\\"click\\\\\\\\\\\\\\\",DebugBaseButton.exitInput_bind);\\\\\\\\n DebugBaseButton.debugDiv.appendChild(DebugBaseButton.exitInput);\\\\\\\\n\\\\\\\\n DebugBaseButton.resultDiv.setAttribute(\\\\\\\\\\\\\\\"style\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"position: absolute; width: \\\\\\\\\\\\\\\"+canvas.offsetWidth+\\\\\\\\\\\\\\\"px; height:\\\\\\\\\\\\\\\"+(canvas.offsetHeight-DebugBaseButton.debugInput.offsetHeight)+\\\\\\\\\\\\\\\"px;\\\\\\\\\\\\\\\"+\\\\\\\\n \\\\\\\\\\\\\\\"top:\\\\\\\\\\\\\\\"+DebugBaseButton.debugInput.offsetHeight+\\\\\\\\\\\\\\\"px; font-size: 20px; overflow: scroll\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.resultDiv.innerHTML=\\\\\\\\\\\\\\\"输出结果在这,只在某种程度上支持console.log
\\\\\\\\\\\\\\\";\\\\\\\\n DebugBaseButton.debugDiv.appendChild(DebugBaseButton.resultDiv);\\\\\\\\n} else {\\\\\\\\n DebugBaseButton.enterInput_bind=DebugBaseButton.RunJavaScript.bind(DebugBaseButton.enterInput,DebugBaseButton.debugInput,DebugBaseButton.resultDiv)\\\\\\\\n DebugBaseButton.enterInput.addEventListener(\\\\\\\\\\\\\\\"click\\\\\\\\\\\\\\\",DebugBaseButton.enterInput_bind);\\\\\\\\n DebugBaseButton.exitInput_bind=DebugBaseButton.ExitDebug.bind(document.body,DebugBaseButton.debugDiv);\\\\\\\\n DebugBaseButton.exitInput.addEventListener(\\\\\\\\\\\\\\\"click\\\\\\\\\\\\\\\",DebugBaseButton.exitInput_bind);\\\\\\\\n DebugBaseButton.resultDiv.innerHTML=\\\\\\\\\\\\\\\"输出结果在这,只在某种程度上支持console.log
\\\\\\\\\\\\\\\";\\\\\\\\n document.body.appendChild(DebugBaseButton.debugDiv);\\\\\\\\n}\\\\\\\"\\\",\\\"vibratePattern\\\":\\\"0\\\"}\"]","controlButtonSettings":"{\"image\":\"Control\",\"activeScenes\":\"[\\\"Scene_Title\\\",\\\"Scene_Map\\\"]\",\"x\":\"10\",\"y\":\"260\",\"soundEffect\":\"\",\"buttonsToHide\":\"[]\",\"hideDPad\":\"true\",\"inputMethod\":\"0\"}","fadeDuration":"20","fadeDelay":"1","enableDiagonalInput":"false","hideButtonsDuringDialogue":"true","enableDPadDebugWindow":"false"}} +{"name":"VirtualButtons_OnlyForSelf","status":true,"description":"v3.0 Creates buttons on the screen for touch input","parameters":{"dPadSettings":"{\"rockerImage\":\"Directions\",\"pressedpointimage\":\"Points\",\"padImage\":\"4dir\",\"x\":\"40\",\"y\":\"Graphics.height-280\",\"soundEffect\":\"\",\"Use Dynamic roker\":\"true\",\"Dynamic rocker back img\":\"dynamic\",\"Rectangle X\":\"0\",\"Rectangle Y\":\"Graphics.height-450\"}","keyButtonSettings":"[\"{\\\"name\\\":\\\"ok\\\",\\\"inputMethod\\\":\\\"0\\\",\\\"inputTrigger\\\":\\\"ok\\\",\\\"image\\\":\\\"OK1\\\",\\\"hotImage\\\":\\\"OK2\\\",\\\"activeScenes\\\":\\\"[\\\\\\\"Scene_Title\\\\\\\",\\\\\\\"Scene_Map\\\\\\\"]\\\",\\\"x\\\":\\\"Graphics.width-180\\\",\\\"y\\\":\\\"Graphics.height-200\\\",\\\"soundEffect\\\":\\\"\\\",\\\"commonEvent\\\":\\\"0\\\",\\\"customCode\\\":\\\"\\\",\\\"vibratePattern\\\":\\\"0\\\"}\",\"{\\\"name\\\":\\\"menu\\\",\\\"inputMethod\\\":\\\"0\\\",\\\"inputTrigger\\\":\\\"escape\\\",\\\"image\\\":\\\"Menu1\\\",\\\"hotImage\\\":\\\"Menu2\\\",\\\"activeScenes\\\":\\\"[\\\\\\\"Scene_Title\\\\\\\",\\\\\\\"Scene_Map\\\\\\\"]\\\",\\\"x\\\":\\\"40\\\",\\\"y\\\":\\\"40\\\",\\\"soundEffect\\\":\\\"\\\",\\\"commonEvent\\\":\\\"0\\\",\\\"customCode\\\":\\\"\\\",\\\"vibratePattern\\\":\\\"0\\\"}\",\"{\\\"name\\\":\\\"debug\\\",\\\"inputMethod\\\":\\\"0\\\",\\\"inputTrigger\\\":\\\"\\\",\\\"image\\\":\\\"DEBUG1\\\",\\\"hotImage\\\":\\\"DEBUG2\\\",\\\"x\\\":\\\"Graphics.width/2-50\\\",\\\"y\\\":\\\"0\\\",\\\"soundEffect\\\":\\\"\\\",\\\"commonEvent\\\":\\\"0\\\",\\\"customCode\\\":\\\"\\\\\\\"window.DebugBaseButton=window.DebugBaseButton||{};\\\\\\\\nTouchInput.clear();\\\\\\\\nTouchInput.removeEventHandlers();\\\\\\\\nInput.clear();\\\\\\\\nInput.removeEventHandlers();\\\\\\\\nvar canvas=document.getElementById(\\\\\\\\\\\\\\\"UpperCanvas\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.debugDiv=DebugBaseButton.debugDiv||document.createElement(\\\\\\\\\\\\\\\"div\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.debugInput=DebugBaseButton.debugInput||document.createElement(\\\\\\\\\\\\\\\"textarea\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.enterInput=DebugBaseButton.enterInput||document.createElement(\\\\\\\\\\\\\\\"input\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.exitInput=DebugBaseButton.exitInput||document.createElement(\\\\\\\\\\\\\\\"input\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.resultDiv=DebugBaseButton.resultDiv||document.createElement(\\\\\\\\\\\\\\\"div\\\\\\\\\\\\\\\");\\\\\\\\n if(!DebugBaseButton.OpenedOnce){\\\\\\\\n DebugBaseButton.OpenedOnce=true;\\\\\\\\n DebugBaseButton.RunJavaScript=function(src,result){\\\\\\\\n try{\\\\\\\\n result.innerHTML=\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\";\\\\\\\\n var code=src.value;\\\\\\\\n var r=eval(code);\\\\\\\\n result.innerHTML+='[eval result:]'+r+'
';\\\\\\\\n } catch (e){\\\\\\\\n result.innerHTML+=\\\\\\\\\\\\\\\"[catch Error!]
\\\\\\\\\\\\\\\"+\\\\\\\\n \\\\\\\\\\\\\\\"[Error Name:]\\\\\\\\\\\\\\\"+e.name+'
'+\\\\\\\\n \\\\\\\\\\\\\\\"[Error Meaasge:]\\\\\\\\\\\\\\\"+e.message+\\\\\\\\\\\\\\\"
\\\\\\\\\\\\\\\";\\\\\\\\n }\\\\\\\\n };\\\\\\\\n\\\\\\\\n DebugBaseButton.clacTextWidth=function(text,fontSize){\\\\\\\\n DebugBaseButton.clacCanvas=DebugBaseButton.clacCanvas||document.createElement(\\\\\\\\\\\\\\\"canvas\\\\\\\\\\\\\\\");\\\\\\\\n var context=DebugBaseButton.clacCanvas.getContext(\\\\\\\\\\\\\\\"2d\\\\\\\\\\\\\\\");\\\\\\\\n context.font=context.font.replace(/\\\\\\\\\\\\\\\\d+px/, fontSize+\\\\\\\\\\\\\\\"px\\\\\\\\\\\\\\\");\\\\\\\\n return context.measureText(text).width;\\\\\\\\n }\\\\\\\\n\\\\\\\\n var console_log=console.log;\\\\\\\\n console.log=function(message){\\\\\\\\n var fontSize=parseInt(DebugBaseButton.resultDiv.style.fontSize);\\\\\\\\n if (typeof message == 'object') {\\\\\\\\n DebugBaseButton.resultDiv.innerHTML += ('[Console log:]'+\\\\\\\\n MakeObjectInnerHtmlIndent(message,DebugBaseButton.clacTextWidth('[Console log:]',fontSize),fontSize));\\\\\\\\n } else {\\\\\\\\n DebugBaseButton.resultDiv.innerHTML += '[Console log:]'+message + '
';\\\\\\\\n }\\\\\\\\n console_log(message);\\\\\\\\n };\\\\\\\\n\\\\\\\\n MakeObjectInnerHtmlIndent=function(object,indent,fontSize){\\\\\\\\n var innerHTML=\\\\\\\\\\\\\\\"
\\\\\\\\\\\\\\\";\\\\\\\\n for(var i in object){\\\\\\\\n innerHTML+=\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\"+i+\\\\\\\\\\\\\\\" :\\\\\\\\\\\\\\\";\\\\\\\\n if(typeof object[i] =='object'){\\\\\\\\n innerHTML+=MakeObjectInnerHtmlIndent(object[i],DebugBaseButton.clacTextWidth(i,fontSize),fontSize);\\\\\\\\n } else {\\\\\\\\n innerHTML+=\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\"+object[i]+\\\\\\\\\\\\\\\"
\\\\\\\\\\\\\\\"\\\\\\\\n }\\\\\\\\n }\\\\\\\\n innerHTML+=\\\\\\\\\\\\\\\"
\\\\\\\\\\\\\\\";\\\\\\\\n return innerHTML;\\\\\\\\n }\\\\\\\\n\\\\\\\\n DebugBaseButton.ExitDebug=function(Debug){\\\\\\\\n this.removeChild(Debug);\\\\\\\\n TouchInput._setupEventHandlers();\\\\\\\\n Input._setupEventHandlers();\\\\\\\\n DebugBaseButton.enterInput.removeEventListener(\\\\\\\\\\\\\\\"click\\\\\\\\\\\\\\\",DebugBaseButton.enterInput_bind);\\\\\\\\n DebugBaseButton.exitInput.removeEventListener(\\\\\\\\\\\\\\\"click\\\\\\\\\\\\\\\",DebugBaseButton.exitInput_bind);\\\\\\\\n };\\\\\\\\n\\\\\\\\n DebugBaseButton.debugDiv.setAttribute(\\\\\\\\\\\\\\\"style\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"position: absolute;margin: auto; top: 0px; left: 0px; right: 0px; bottom: 0px;z-index: 1000; height:\\\\\\\\\\\\\\\"+\\\\\\\\n canvas.offsetHeight+\\\\\\\\\\\\\\\"px; width:\\\\\\\\\\\\\\\"+canvas.offsetWidth+\\\\\\\\\\\\\\\"px; background-color: rgba(0, 0, 0, 0.3); color: #FFFFFF; user-select:text;\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.debugDiv.setAttribute(\\\\\\\\\\\\\\\"id\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"DebugDiv\\\\\\\\\\\\\\\");\\\\\\\\n document.body.appendChild(DebugBaseButton.debugDiv);\\\\\\\\n\\\\\\\\n //input.setAttribute(\\\\\\\\\\\\\\\"type\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"text\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.debugInput.setAttribute(\\\\\\\\\\\\\\\"style\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"width:\\\\\\\\\\\\\\\"+(canvas.offsetWidth-150*Graphics._realScale)+\\\\\\\\\\\\\\\"px; background-color: rgba(0,0,0,0.3);\\\\\\\\\\\\\\\"+\\\\\\\\n \\\\\\\\\\\\\\\"height: \\\\\\\\\\\\\\\"+(150*Graphics._realScale)+\\\\\\\\\\\\\\\"px; font-size: 30px; color: rgba(255,255,255,1); resize: none;\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.debugInput.setAttribute(\\\\\\\\\\\\\\\"cols\\\\\\\\\\\\\\\",canvas.offsetWidth-150*Graphics._realScale);\\\\\\\\n DebugBaseButton.debugInput.setAttribute(\\\\\\\\\\\\\\\"rows\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"10\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.debugDiv.appendChild(DebugBaseButton.debugInput);\\\\\\\\n\\\\\\\\n DebugBaseButton.enterInput.setAttribute(\\\\\\\\\\\\\\\"type\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"button\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.enterInput.setAttribute(\\\\\\\\\\\\\\\"value\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"执行\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.enterInput.setAttribute(\\\\\\\\\\\\\\\"style\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"position: absolute; left:\\\\\\\\\\\\\\\"+DebugBaseButton.debugInput.offsetWidth+\\\\\\\\\\\\\\\"px;\\\\\\\\\\\\\\\"+\\\\\\\\n \\\\\\\\\\\\\\\"width: \\\\\\\\\\\\\\\"+(canvas.offsetWidth-DebugBaseButton.debugInput.offsetWidth)+\\\\\\\\\\\\\\\"px; height:\\\\\\\\\\\\\\\"+(DebugBaseButton.debugInput.offsetHeight/2)+\\\\\\\\\\\\\\\"px;\\\\\\\\\\\\\\\"+\\\\\\\\n \\\\\\\\\\\\\\\"background-color: rgba(0,0,0,0.3); font-size: \\\\\\\\\\\\\\\"+40*Graphics._realScale+\\\\\\\\\\\\\\\"px; color: rgba(255,255,255,0.7);\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.enterInput_bind=DebugBaseButton.RunJavaScript.bind(DebugBaseButton.enterInput,DebugBaseButton.debugInput,DebugBaseButton.resultDiv)\\\\\\\\n DebugBaseButton.enterInput.addEventListener(\\\\\\\\\\\\\\\"click\\\\\\\\\\\\\\\",DebugBaseButton.enterInput_bind);\\\\\\\\n DebugBaseButton.debugDiv.appendChild(DebugBaseButton.enterInput);\\\\\\\\n\\\\\\\\n DebugBaseButton.exitInput.setAttribute(\\\\\\\\\\\\\\\"type\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"button\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.exitInput.setAttribute(\\\\\\\\\\\\\\\"value\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"退出\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.exitInput.setAttribute(\\\\\\\\\\\\\\\"style\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"position: absolute; left:\\\\\\\\\\\\\\\"+DebugBaseButton.debugInput.offsetWidth+\\\\\\\\\\\\\\\"px;\\\\\\\\\\\\\\\"+\\\\\\\\n \\\\\\\\\\\\\\\"width: \\\\\\\\\\\\\\\"+(canvas.offsetWidth-DebugBaseButton.debugInput.offsetWidth)+\\\\\\\\\\\\\\\"px; top:\\\\\\\\\\\\\\\"+(DebugBaseButton.debugInput.offsetHeight/2)+\\\\\\\\\\\\\\\"px; height:\\\\\\\\\\\\\\\"+(DebugBaseButton.debugInput.offsetHeight/2)+\\\\\\\\\\\\\\\"px;\\\\\\\\\\\\\\\"+\\\\\\\\n \\\\\\\\\\\\\\\"background-color: rgba(0,0,0,0.3); font-size: \\\\\\\\\\\\\\\"+40*Graphics._realScale+\\\\\\\\\\\\\\\"px; color: rgba(255,255,255,0.7);\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.exitInput_bind=DebugBaseButton.ExitDebug.bind(document.body,DebugBaseButton.debugDiv);\\\\\\\\n DebugBaseButton.exitInput.addEventListener(\\\\\\\\\\\\\\\"click\\\\\\\\\\\\\\\",DebugBaseButton.exitInput_bind);\\\\\\\\n DebugBaseButton.debugDiv.appendChild(DebugBaseButton.exitInput);\\\\\\\\n\\\\\\\\n DebugBaseButton.resultDiv.setAttribute(\\\\\\\\\\\\\\\"style\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"position: absolute; width: \\\\\\\\\\\\\\\"+canvas.offsetWidth+\\\\\\\\\\\\\\\"px; height:\\\\\\\\\\\\\\\"+(canvas.offsetHeight-DebugBaseButton.debugInput.offsetHeight)+\\\\\\\\\\\\\\\"px;\\\\\\\\\\\\\\\"+\\\\\\\\n \\\\\\\\\\\\\\\"top:\\\\\\\\\\\\\\\"+DebugBaseButton.debugInput.offsetHeight+\\\\\\\\\\\\\\\"px; font-size: 20px; overflow: scroll\\\\\\\\\\\\\\\");\\\\\\\\n DebugBaseButton.resultDiv.innerHTML=\\\\\\\\\\\\\\\"输出结果在这,只在某种程度上支持console.log
\\\\\\\\\\\\\\\";\\\\\\\\n DebugBaseButton.debugDiv.appendChild(DebugBaseButton.resultDiv);\\\\\\\\n} else {\\\\\\\\n DebugBaseButton.enterInput_bind=DebugBaseButton.RunJavaScript.bind(DebugBaseButton.enterInput,DebugBaseButton.debugInput,DebugBaseButton.resultDiv)\\\\\\\\n DebugBaseButton.enterInput.addEventListener(\\\\\\\\\\\\\\\"click\\\\\\\\\\\\\\\",DebugBaseButton.enterInput_bind);\\\\\\\\n DebugBaseButton.exitInput_bind=DebugBaseButton.ExitDebug.bind(document.body,DebugBaseButton.debugDiv);\\\\\\\\n DebugBaseButton.exitInput.addEventListener(\\\\\\\\\\\\\\\"click\\\\\\\\\\\\\\\",DebugBaseButton.exitInput_bind);\\\\\\\\n DebugBaseButton.resultDiv.innerHTML=\\\\\\\\\\\\\\\"输出结果在这,只在某种程度上支持console.log
\\\\\\\\\\\\\\\";\\\\\\\\n document.body.appendChild(DebugBaseButton.debugDiv);\\\\\\\\n}\\\\\\\"\\\",\\\"vibratePattern\\\":\\\"0\\\"}\"]","controlButtonSettings":"{\"image\":\"Control\",\"activeScenes\":\"[\\\"Scene_Title\\\",\\\"Scene_Map\\\"]\",\"x\":\"10\",\"y\":\"260\",\"soundEffect\":\"\",\"buttonsToHide\":\"[]\",\"hideDPad\":\"true\",\"inputMethod\":\"0\"}","fadeDuration":"20","fadeDelay":"1","enableDiagonalInput":"false","hideButtonsDuringDialogue":"true","enableDPadDebugWindow":"false"}}, +{"name":"--------------------","status":true,"description":"------------------------------------------------------------","parameters":{}} ]; diff --git a/js/plugins/SF_ExportSaveFile.js b/js/plugins/SF_ExportSaveFile.js new file mode 100755 index 0000000..167b1b0 --- /dev/null +++ b/js/plugins/SF_ExportSaveFile.js @@ -0,0 +1,209 @@ +//============================================================================= +// SF_ExportSaveFile.js +//============================================================================= +/*: + * @plugindesc export save file by downloading file + * @author SF + * + * @help + * try to export save file by downloading in Scene_File + * require Yep_SaveCore.js + * file name is the same as the name in localStorage + * try to support import save file + * + * @param Delete Command + * @desc Text for the delete command in the action window. + * @default Delete + * @type text + * + * @param Import Command + * @desc Text for the import command in the action window. + * @default Import + * @type text + * + * @param Export Command + * @desc Text for the export command in the action window. + * @default Export + * @type text + * + * @param Category Command + * @desc Text for the category command in the action window. + * @default Other + * @type text + */ +"use strict"; + +var Imported = Imported || {}; +Imported.SF_ExportSaveFile = true; + +var SF_Plugins = SF_Plugins || {}; +if (Imported.YEP_SaveCore) { + (function () { + var SF_ExportSaveFile = {}; + SF_Plugins.SF_ExportSaveFile = SF_ExportSaveFile; + + SF_ExportSaveFile.parameters = PluginManager.parameters("SF_ExportSaveFile"); + SF_ExportSaveFile.deleteCommandName = String(SF_ExportSaveFile.parameters["Delete Command"]); + SF_ExportSaveFile.importCommandName = String(SF_ExportSaveFile.parameters["Import Command"]); + SF_ExportSaveFile.exportCommandName = String(SF_ExportSaveFile.parameters["Export Command"]); + SF_ExportSaveFile.CategoryCommandName = String(SF_ExportSaveFile.parameters["Category Command"]); + + SF_ExportSaveFile.Window_SaveAction_makeCommandList = Window_SaveAction.prototype.makeCommandList; + Window_SaveAction.prototype.makeCommandList = function () { + var id = this.savefileId(); + var enabled = DataManager.isThisGameFile(id); + var valid = DataManager.loadSavefileInfo(id); + this.addCommand(this.getCommandName("load"), "load", valid); + this.addCommand(this.getCommandName("save"), "save", this.isSaveEnabled()); + this.addCommand(this.getCommandName("category"), "category"); + }; + + SF_ExportSaveFile.Window_SaveAction_getCommandName = Window_SaveAction.prototype.getCommandName; + Window_SaveAction.prototype.getCommandName = function (type) { + if (type === "category") { + return SF_ExportSaveFile.CategoryCommandName; + } else { + return SF_ExportSaveFile.Window_SaveAction_getCommandName.apply(this, arguments); + } + }; + + function Window_SF_SaveAction() { + this.initialize.apply(this, arguments); + } + + Window_SF_SaveAction.prototype = Object.create(Window_Command.prototype); + Window_SF_SaveAction.prototype.constructor = Window_SF_SaveAction; + + Window_SF_SaveAction.prototype.initialize = function () { + Window_Command.prototype.initialize.call(this, 0, 0); + this._currentFile = 0; + this.deactivate(); + this.deselect(); + this.close(); + this.openness = 0; + this.updatePosition(); + }; + + Window_SF_SaveAction.prototype.makeCommandList = function () { + var id = this.savefileId(); + var enabled = DataManager.isThisGameFile(id); + var valid = DataManager.loadSavefileInfo(id); + this.addCommand(SF_ExportSaveFile.deleteCommandName, "delete", enabled); + this.addCommand(SF_ExportSaveFile.importCommandName, "import"); + this.addCommand(SF_ExportSaveFile.exportCommandName, "export", enabled); + }; + + Window_SF_SaveAction.prototype.updatePosition = function () { + this.x = (Graphics.boxWidth - this.width) / 2; + this.y = (Graphics.boxHeight - this.height) / 2; + }; + + Window_SF_SaveAction.prototype.itemTextAlign = function () { + return "center"; + }; + + Window_SF_SaveAction.prototype.windowHeight = function () { + return this.fittingHeight(3); + }; + + Window_SF_SaveAction.prototype.savefileId = function () { + return SceneManager._scene._listWindow.index() + 1; + }; + + Window_SF_SaveAction.prototype.update = function () { + Window_Command.prototype.update.call(this); + if (this._currentFile != this.savefileId()) this.updateIndex(); + }; + + Window_SF_SaveAction.prototype.updateIndex = function () { + this._currentFile = this.savefileId(); + this.refresh(); + }; + + SF_ExportSaveFile.Scene_File_create = Scene_File.prototype.create; + Scene_File.prototype.create = function () { + SF_ExportSaveFile.Scene_File_create.call(this); + this.create_SF_ActionWindow(); + }; + + Scene_File.prototype.create_SF_ActionWindow = function () { + this._SF_actionWindow = new Window_SF_SaveAction(); + this._SF_actionWindow.setHandler("delete", this.onActionDelete.bind(this)); + this._SF_actionWindow.setHandler("import", this.onActionImport.bind(this)); + this._SF_actionWindow.setHandler("export", this.onActionExport.bind(this)); + this._SF_actionWindow.setHandler("cancel", this.on_SF_CategoryCancel.bind(this)); + this.addWindow(this._SF_actionWindow); + }; + + Scene_File.prototype.onActionExport = function () { + var id = this.savefileId(); + var data = {}; + data.globalinfo = DataManager.loadGlobalInfo()[id]; + data.savefile = StorageManager.load(id); + var str = "data:text/json;charset=utf-8," + encodeURIComponent(JsonEx.stringify(data)); + var download = document.createElement("a"); + download.setAttribute("href", str); + download.setAttribute("download", StorageManager.webStorageKey(id) + ".json"); + download.style.display = "none"; + document.body.appendChild(download); + download.click(); + document.body.removeChild(download); + this.on_SF_CategoryCancel(); + }; + + Scene_File.prototype.onActionImport = function () { + var input = document.createElement("input"); + input.setAttribute("type", "file"); + //input.setAttribute('accept','.json'); + input.addEventListener("change", function () { + var fr = new FileReader(); + fr.onload = function () { + var id = SceneManager._scene._listWindow.index() + 1; + var json = JsonEx.parse(decodeURIComponent(fr.result)); + var globalinfo = DataManager.loadGlobalInfo(); + if (!globalinfo) globalinfo = []; + globalinfo[id] = json.globalinfo; + DataManager.saveGlobalInfo(globalinfo); + StorageManager.save(id, json.savefile); + SceneManager._scene._infoWindow.updateIndex(); + SceneManager._scene._infoWindow.updateTimer(); + SceneManager._scene._actionWindow.refresh(); + SceneManager._scene._listWindow.refresh(); + SceneManager._scene._SF_actionWindow.refresh(); + }; + fr.readAsText(this.files[0]); + }); + input.click(); + this.on_SF_CategoryCancel(); + }; + + Scene_File.prototype.on_SF_CategoryCancel = function () { + var index = this._actionWindow.index(); + this._SF_actionWindow.deactivate(); + this._SF_actionWindow.close(); + this.onSavefileOk(); + this._actionWindow.select(index); + }; + + SF_ExportSaveFile.Scene_File_createActionWindow = Scene_File.prototype.createActionWindow; + Scene_File.prototype.createActionWindow = function () { + SF_ExportSaveFile.Scene_File_createActionWindow.apply(this, arguments); + this._actionWindow.setHandler("category", this.onActionCategory.bind(this)); + }; + + Scene_File.prototype.onActionCategory = function () { + this._SF_actionWindow.open(); + this._SF_actionWindow.activate(); + this._SF_actionWindow.select(0); + }; + + SF_ExportSaveFile.Scene_File_onActionDelete = Scene_File.prototype.onActionDelete; + Scene_File.prototype.onActionDelete = function () { + this.on_SF_CategoryCancel(); + this.performActionDelete(); + this._SF_actionWindow.refresh(); + }; + })(); +} else { + console.error("SF_ExportSaveFile require Yep Save Core"); +} diff --git a/js/plugins/SF_ReserveMemberExp.js b/js/plugins/SF_ReserveMemberExp.js new file mode 100644 index 0000000..b3a10ef --- /dev/null +++ b/js/plugins/SF_ReserveMemberExp.js @@ -0,0 +1,71 @@ +//============================================================================= +// SaltedFish Plugins - Exp For Reserve Member +// SF_ReserveMemberExp.js +//============================================================================= +"use strict"; + +var Imported = Imported || {}; +Imported.SF_ReserveMemberExp = true; + +var SF_Plugins = SF_Plugins || {}; + +//============================================================================= +/*: + * @plugindesc 支持队伍中的预备队员在战斗时,按照比例获得经验值 + * @version 1.0 + * @author SaltedFish + * + * @text 经验值比例 + * @param Rate + * @desc 预备队员获得经验值的比例,0-100 的整数,表示百分比 + * @default 50 + * @type number + * @min 0 + * @max 100 + * @decimals 0 + * + * @help + * ============================================================================ + * 介绍 + * ============================================================================ + * + * 这个插件支持队伍中的预备队员在战斗时,按照比例获得经验值 + * + * ============================================================================ + * 插件命令 + * ============================================================================ + * + * SF_ReserveMemberExp rate + * 设置预备队员获得经验值的比例,rate 为 0-100 的整数,表示百分比 + */ +//============================================================================= + +(function () { + var SF_ReserveMemberExp = SF_Plugins.SF_ReserveMemberExp || {}; + SF_Plugins.SF_ReserveMemberExp = SF_ReserveMemberExp; + + SF_ReserveMemberExp.parameters = PluginManager.parameters("SF_ReserveMemberExp"); + SF_ReserveMemberExp.rate = Number(SF_ReserveMemberExp.parameters["Rate"]); + + SF_ReserveMemberExp.Game_System_initialize = Game_System.prototype.initialize; + Game_System.prototype.initialize = function () { + SF_ReserveMemberExp.Game_System_initialize.call(this); + this._reserveMemberExpRate = SF_ReserveMemberExp.rate; + }; + + SF_ReserveMemberExp.BattleManager_benchMembersExpRate = BattleManager.benchMembersExpRate; + BattleManager.benchMembersExpRate = function () { + var rate = SF_ReserveMemberExp.BattleManager_benchMembersExpRate.call(this); + var systemRate = $gameSystem._reserveMemberExpRate / 100; + return rate * systemRate; + }; + + SF_ReserveMemberExp.Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand; + Game_Interpreter.prototype.pluginCommand = function (command, args) { + SF_ReserveMemberExp.Game_Interpreter_pluginCommand.call(this, command, args); + + if (command === "SF_ReserveMemberExp") { + $gameSystem._reserveMemberExpRate = Number(args[0]); + } + }; +})();