Initial Commit
This commit is contained in:
commit
01574447fa
84 changed files with 625014 additions and 0 deletions
34
.gitignore
vendored
Normal file
34
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
# Ignore all files
|
||||
*.*
|
||||
|
||||
# Except
|
||||
!*.json
|
||||
!*.js
|
||||
!*.zip
|
||||
!*.7z
|
||||
!*.csv
|
||||
!.gitignore
|
||||
!README.md
|
||||
|
||||
# Images
|
||||
!title.rpgmvp
|
||||
!10000Hステート_0000.rpgmvp
|
||||
!10000Hステート_0001.rpgmvp
|
||||
!10000Hステート_0002.rpgmvp
|
||||
!10000Hステート_0003.rpgmvp
|
||||
!10000Hステート_0004.rpgmvp
|
||||
!10000Hステート_0005.rpgmvp
|
||||
!10000Hステート_0006.rpgmvp
|
||||
!10000Hステート_0007.rpgmvp
|
||||
!10000Hステート_0008.rpgmvp
|
||||
!10000Hステート_0009.rpgmvp
|
||||
!10000Hステート_0010.rpgmvp
|
||||
!10000Hステート_0011.rpgmvp
|
||||
!10000Hステート_0012.rpgmvp
|
||||
!10000Hステート_0013.rpgmvp
|
||||
!10000Hステート_0014.rpgmvp
|
||||
!10000Hステート_0015.rpgmvp
|
||||
!10000Hステート_0016.rpgmvp
|
||||
!10000Hステート_0017.rpgmvp
|
||||
!10000Hステート_0018.rpgmvp
|
||||
!10000Hステート_0019.rpgmvp
|
||||
49
README.md
Normal file
49
README.md
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
# Apply Patch
|
||||
1. Click Code
|
||||
2. Click Download ZIP
|
||||
3. Extract to game folder and Replace All.
|
||||
|
||||
# How To Contribute
|
||||
TLDR 3 steps.
|
||||
|
||||
Fork the repository.
|
||||
Make the changes.
|
||||
Submit a pull request to the project owner.
|
||||
|
||||
If everything looks good and doesn't break things I'll merge it in.
|
||||
|
||||
Longer Version:
|
||||
|
||||
Things that are needed:
|
||||
* [VSCode](https://code.visualstudio.com/) Make sure you check all the boxes for context menus. 
|
||||
* The Game
|
||||
* [Git](https://git-scm.com/downloads) (Use the default for everything. Just keep clicking Next)
|
||||
* Motivation to learn
|
||||
|
||||
Installation:
|
||||
1. Fork the repo using the fork button at the top. Click Code > HTTPS > Copy URL.
|
||||
2. Right click on the game folder and click 'Open with VSCode' (Shift+Right_Click if you are on Windows 11)
|
||||
3. Click on the Source Control Button and click initialize repository.
|
||||
|
||||

|
||||
|
||||
4. At the top click on Terminal > New Terminal. Enter the following: `git clone [URL_YOU_COPIED_ABOVE]`.
|
||||
5. Copy the contents of the new folder created with git clone into the game folder and replace all.
|
||||
6. Your source control menu should be good to go and look like this.
|
||||
|
||||

|
||||
|
||||
Now you are all setup, all you need to do is play the game and look for any changes that need to be made. Stuff like spelling errors, wrong names, inconsistencies, spacing issues, etc.
|
||||
|
||||
7. Use the FIND functionality to search for what you are trying to fix. For example if a character's name is wrong, type that into the search menu and start looking, then make the change. Try not to mess with any scripts or variables you might see.
|
||||
|
||||

|
||||
|
||||
8. After you are satisfied with your changes it's time to put in a PR. Go to source control to see all your changes. Add a message and click the `Commit` button to save them all.
|
||||
|
||||

|
||||
|
||||
8. Click Sync to push your changes to your fork. Now all that's left is to put in a pull request.
|
||||
9. Go to Pull Requests > New Pull Requests. Look at the arrow, your fork should be pointing to the original repo (mine). Add in details on what you fixed and Submit. If everything looks good I'll merge it in and you would have successfully contributed.
|
||||
|
||||
Got questions? Just shoot me a message, more than happy to walk you through any of the tools.
|
||||
12
package.json
Normal file
12
package.json
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"name": "",
|
||||
"main": "www/index.html",
|
||||
"js-flags": "--expose-gc",
|
||||
"window": {
|
||||
"title": "",
|
||||
"toolbar": false,
|
||||
"width": 816,
|
||||
"height": 624,
|
||||
"icon": "www/icon/icon.png"
|
||||
}
|
||||
}
|
||||
217
www/data/Actors.json
Normal file
217
www/data/Actors.json
Normal file
|
|
@ -0,0 +1,217 @@
|
|||
[
|
||||
null,
|
||||
{
|
||||
"id": 1,
|
||||
"battlerName": "",
|
||||
"characterIndex": 0,
|
||||
"characterName": "$player",
|
||||
"classId": 6,
|
||||
"equips": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"faceIndex": 0,
|
||||
"faceName": "charaf0a",
|
||||
"traits": [],
|
||||
"initialLevel": 10,
|
||||
"maxLevel": 99,
|
||||
"name": "ルース",
|
||||
"nickname": "",
|
||||
"note": "",
|
||||
"profile": "触手の魔物。犯した女を洗脳することが出来る。\nしかし、戦闘能力は普通の村人男性未満。"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"battlerName": "",
|
||||
"characterIndex": 0,
|
||||
"characterName": "",
|
||||
"classId": 2,
|
||||
"equips": [
|
||||
5,
|
||||
0,
|
||||
0,
|
||||
5,
|
||||
0
|
||||
],
|
||||
"faceIndex": 4,
|
||||
"faceName": "charaf2",
|
||||
"traits": [
|
||||
{
|
||||
"code": 53,
|
||||
"dataId": 1,
|
||||
"value": 1
|
||||
},
|
||||
{
|
||||
"code": 53,
|
||||
"dataId": 4,
|
||||
"value": 1
|
||||
}
|
||||
],
|
||||
"initialLevel": 50,
|
||||
"maxLevel": 99,
|
||||
"name": "リーザ",
|
||||
"nickname": "",
|
||||
"note": "",
|
||||
"profile": "かなり強い女戦士。見た目より幼稚な性格している。"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"battlerName": "",
|
||||
"characterIndex": 0,
|
||||
"characterName": "",
|
||||
"classId": 4,
|
||||
"equips": [
|
||||
6,
|
||||
0,
|
||||
7,
|
||||
6,
|
||||
8
|
||||
],
|
||||
"faceIndex": 4,
|
||||
"faceName": "charaf4",
|
||||
"traits": [
|
||||
{
|
||||
"code": 53,
|
||||
"dataId": 1,
|
||||
"value": 1
|
||||
},
|
||||
{
|
||||
"code": 53,
|
||||
"dataId": 3,
|
||||
"value": 1
|
||||
},
|
||||
{
|
||||
"code": 53,
|
||||
"dataId": 4,
|
||||
"value": 1
|
||||
},
|
||||
{
|
||||
"code": 53,
|
||||
"dataId": 5,
|
||||
"value": 1
|
||||
}
|
||||
],
|
||||
"initialLevel": 20,
|
||||
"maxLevel": 99,
|
||||
"name": "エリル",
|
||||
"nickname": "",
|
||||
"note": "",
|
||||
"profile": "優しいシスター。\n戦闘は苦手だが神聖魔法を使う事ができる。"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"battlerName": "",
|
||||
"characterIndex": 0,
|
||||
"characterName": "",
|
||||
"classId": 3,
|
||||
"equips": [
|
||||
7,
|
||||
0,
|
||||
10,
|
||||
9,
|
||||
11
|
||||
],
|
||||
"faceIndex": 4,
|
||||
"faceName": "charaf3",
|
||||
"traits": [
|
||||
{
|
||||
"code": 53,
|
||||
"dataId": 1,
|
||||
"value": 1
|
||||
},
|
||||
{
|
||||
"code": 53,
|
||||
"dataId": 3,
|
||||
"value": 1
|
||||
},
|
||||
{
|
||||
"code": 53,
|
||||
"dataId": 4,
|
||||
"value": 1
|
||||
},
|
||||
{
|
||||
"code": 53,
|
||||
"dataId": 5,
|
||||
"value": 1
|
||||
}
|
||||
],
|
||||
"initialLevel": 40,
|
||||
"maxLevel": 99,
|
||||
"name": "シアン",
|
||||
"nickname": "",
|
||||
"note": "",
|
||||
"profile": "冷静沈着な錬金術師。攻撃魔法なども使うことが出来る。\n見た目より年齢を重ねている。"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"battlerName": "",
|
||||
"characterIndex": 0,
|
||||
"characterName": "",
|
||||
"classId": 1,
|
||||
"equips": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"faceIndex": 0,
|
||||
"faceName": "",
|
||||
"traits": [],
|
||||
"initialLevel": 1,
|
||||
"maxLevel": 99,
|
||||
"name": "",
|
||||
"nickname": "",
|
||||
"note": "",
|
||||
"profile": ""
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"battlerName": "",
|
||||
"characterIndex": 0,
|
||||
"characterName": "",
|
||||
"classId": 1,
|
||||
"equips": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"faceIndex": 0,
|
||||
"faceName": "",
|
||||
"traits": [],
|
||||
"initialLevel": 1,
|
||||
"maxLevel": 99,
|
||||
"name": "",
|
||||
"nickname": "",
|
||||
"note": "",
|
||||
"profile": ""
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"battlerName": "",
|
||||
"characterIndex": 0,
|
||||
"characterName": "$player",
|
||||
"classId": 5,
|
||||
"equips": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"faceIndex": 0,
|
||||
"faceName": "",
|
||||
"traits": [],
|
||||
"initialLevel": 1,
|
||||
"maxLevel": 99,
|
||||
"name": "トリス",
|
||||
"nickname": "",
|
||||
"note": "",
|
||||
"profile": ""
|
||||
}
|
||||
]
|
||||
129762
www/data/Animations.json
Normal file
129762
www/data/Animations.json
Normal file
File diff suppressed because it is too large
Load diff
543
www/data/Armors.json
Normal file
543
www/data/Armors.json
Normal file
|
|
@ -0,0 +1,543 @@
|
|||
[
|
||||
null,
|
||||
{
|
||||
"id": 1,
|
||||
"atypeId": 5,
|
||||
"description": "",
|
||||
"etypeId": 2,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 128,
|
||||
"name": "盾",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 300
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"atypeId": 1,
|
||||
"description": "",
|
||||
"etypeId": 3,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 130,
|
||||
"name": "帽子",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 300
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"atypeId": 1,
|
||||
"description": "",
|
||||
"etypeId": 4,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 135,
|
||||
"name": "服",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 300
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"atypeId": 1,
|
||||
"description": "",
|
||||
"etypeId": 5,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 145,
|
||||
"name": "指輪",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 300
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"atypeId": 1,
|
||||
"description": "",
|
||||
"etypeId": 4,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 137,
|
||||
"name": "魔法のビキニアーマー",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 300
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"atypeId": 1,
|
||||
"description": "",
|
||||
"etypeId": 4,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 138,
|
||||
"name": "神官のローブ",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 300
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"atypeId": 1,
|
||||
"description": "",
|
||||
"etypeId": 3,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 149,
|
||||
"name": "聖なるベール",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 300
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"atypeId": 1,
|
||||
"description": "",
|
||||
"etypeId": 5,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 145,
|
||||
"name": "聖印",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 300
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"atypeId": 1,
|
||||
"description": "",
|
||||
"etypeId": 4,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 138,
|
||||
"name": "魔女のドレス",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 300
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"atypeId": 1,
|
||||
"description": "",
|
||||
"etypeId": 3,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 130,
|
||||
"name": "三角帽子",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 300
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"atypeId": 1,
|
||||
"description": "",
|
||||
"etypeId": 5,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 139,
|
||||
"name": "魔術師のケープ",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 300
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"atypeId": 0,
|
||||
"description": "",
|
||||
"etypeId": 2,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 0,
|
||||
"name": "",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"atypeId": 0,
|
||||
"description": "",
|
||||
"etypeId": 2,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 0,
|
||||
"name": "",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"atypeId": 0,
|
||||
"description": "",
|
||||
"etypeId": 2,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 0,
|
||||
"name": "",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0
|
||||
},
|
||||
{
|
||||
"id": 15,
|
||||
"atypeId": 0,
|
||||
"description": "",
|
||||
"etypeId": 2,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 0,
|
||||
"name": "",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0
|
||||
},
|
||||
{
|
||||
"id": 16,
|
||||
"atypeId": 0,
|
||||
"description": "",
|
||||
"etypeId": 2,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 0,
|
||||
"name": "",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0
|
||||
},
|
||||
{
|
||||
"id": 17,
|
||||
"atypeId": 0,
|
||||
"description": "",
|
||||
"etypeId": 2,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 0,
|
||||
"name": "",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0
|
||||
},
|
||||
{
|
||||
"id": 18,
|
||||
"atypeId": 0,
|
||||
"description": "",
|
||||
"etypeId": 2,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 0,
|
||||
"name": "",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0
|
||||
},
|
||||
{
|
||||
"id": 19,
|
||||
"atypeId": 0,
|
||||
"description": "",
|
||||
"etypeId": 2,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 0,
|
||||
"name": "",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0
|
||||
},
|
||||
{
|
||||
"id": 20,
|
||||
"atypeId": 0,
|
||||
"description": "",
|
||||
"etypeId": 2,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 0,
|
||||
"name": "",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0
|
||||
}
|
||||
]
|
||||
5351
www/data/Classes.json
Normal file
5351
www/data/Classes.json
Normal file
File diff suppressed because it is too large
Load diff
116732
www/data/CommonEvents.json
Normal file
116732
www/data/CommonEvents.json
Normal file
File diff suppressed because it is too large
Load diff
251
www/data/Enemies.json
Normal file
251
www/data/Enemies.json
Normal file
|
|
@ -0,0 +1,251 @@
|
|||
[
|
||||
null,
|
||||
{
|
||||
"id": 1,
|
||||
"actions": [
|
||||
{
|
||||
"conditionParam1": 0,
|
||||
"conditionParam2": 0,
|
||||
"conditionType": 0,
|
||||
"rating": 5,
|
||||
"skillId": 1
|
||||
}
|
||||
],
|
||||
"battlerHue": 0,
|
||||
"battlerName": "",
|
||||
"dropItems": [
|
||||
{
|
||||
"dataId": 1,
|
||||
"denominator": 1,
|
||||
"kind": 0
|
||||
},
|
||||
{
|
||||
"dataId": 1,
|
||||
"denominator": 1,
|
||||
"kind": 0
|
||||
},
|
||||
{
|
||||
"dataId": 1,
|
||||
"denominator": 1,
|
||||
"kind": 0
|
||||
}
|
||||
],
|
||||
"exp": 0,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0.95
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0.05
|
||||
},
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"gold": 0,
|
||||
"name": "",
|
||||
"note": "",
|
||||
"params": [
|
||||
100,
|
||||
0,
|
||||
10,
|
||||
10,
|
||||
10,
|
||||
10,
|
||||
10,
|
||||
10
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"actions": [
|
||||
{
|
||||
"conditionParam1": 0,
|
||||
"conditionParam2": 0,
|
||||
"conditionType": 0,
|
||||
"rating": 5,
|
||||
"skillId": 1
|
||||
}
|
||||
],
|
||||
"battlerHue": 0,
|
||||
"battlerName": "",
|
||||
"dropItems": [
|
||||
{
|
||||
"dataId": 1,
|
||||
"denominator": 1,
|
||||
"kind": 0
|
||||
},
|
||||
{
|
||||
"dataId": 1,
|
||||
"denominator": 1,
|
||||
"kind": 0
|
||||
},
|
||||
{
|
||||
"dataId": 1,
|
||||
"denominator": 1,
|
||||
"kind": 0
|
||||
}
|
||||
],
|
||||
"exp": 0,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0.95
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0.05
|
||||
},
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"gold": 0,
|
||||
"name": "",
|
||||
"note": "",
|
||||
"params": [
|
||||
100,
|
||||
0,
|
||||
10,
|
||||
10,
|
||||
10,
|
||||
10,
|
||||
10,
|
||||
10
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"actions": [
|
||||
{
|
||||
"conditionParam1": 0,
|
||||
"conditionParam2": 0,
|
||||
"conditionType": 0,
|
||||
"rating": 5,
|
||||
"skillId": 1
|
||||
}
|
||||
],
|
||||
"battlerHue": 0,
|
||||
"battlerName": "",
|
||||
"dropItems": [
|
||||
{
|
||||
"dataId": 1,
|
||||
"denominator": 1,
|
||||
"kind": 0
|
||||
},
|
||||
{
|
||||
"dataId": 1,
|
||||
"denominator": 1,
|
||||
"kind": 0
|
||||
},
|
||||
{
|
||||
"dataId": 1,
|
||||
"denominator": 1,
|
||||
"kind": 0
|
||||
}
|
||||
],
|
||||
"exp": 0,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0.95
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0.05
|
||||
},
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"gold": 0,
|
||||
"name": "",
|
||||
"note": "",
|
||||
"params": [
|
||||
100,
|
||||
0,
|
||||
10,
|
||||
10,
|
||||
10,
|
||||
10,
|
||||
10,
|
||||
10
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"actions": [
|
||||
{
|
||||
"conditionParam1": 0,
|
||||
"conditionParam2": 0,
|
||||
"conditionType": 0,
|
||||
"rating": 5,
|
||||
"skillId": 1
|
||||
}
|
||||
],
|
||||
"battlerHue": 0,
|
||||
"battlerName": "",
|
||||
"dropItems": [
|
||||
{
|
||||
"dataId": 1,
|
||||
"denominator": 1,
|
||||
"kind": 0
|
||||
},
|
||||
{
|
||||
"dataId": 1,
|
||||
"denominator": 1,
|
||||
"kind": 0
|
||||
},
|
||||
{
|
||||
"dataId": 1,
|
||||
"denominator": 1,
|
||||
"kind": 0
|
||||
}
|
||||
],
|
||||
"exp": 0,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0.95
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0.05
|
||||
},
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"gold": 0,
|
||||
"name": "",
|
||||
"note": "",
|
||||
"params": [
|
||||
100,
|
||||
0,
|
||||
10,
|
||||
10,
|
||||
10,
|
||||
10,
|
||||
10,
|
||||
10
|
||||
]
|
||||
}
|
||||
]
|
||||
1431
www/data/Items.json
Normal file
1431
www/data/Items.json
Normal file
File diff suppressed because it is too large
Load diff
1612
www/data/Map001.json
Normal file
1612
www/data/Map001.json
Normal file
File diff suppressed because it is too large
Load diff
2515
www/data/Map002.json
Normal file
2515
www/data/Map002.json
Normal file
File diff suppressed because it is too large
Load diff
30593
www/data/Map003.json
Normal file
30593
www/data/Map003.json
Normal file
File diff suppressed because it is too large
Load diff
4092
www/data/Map004.json
Normal file
4092
www/data/Map004.json
Normal file
File diff suppressed because it is too large
Load diff
41329
www/data/Map005.json
Normal file
41329
www/data/Map005.json
Normal file
File diff suppressed because it is too large
Load diff
9490
www/data/Map006.json
Normal file
9490
www/data/Map006.json
Normal file
File diff suppressed because it is too large
Load diff
3338
www/data/Map007.json
Normal file
3338
www/data/Map007.json
Normal file
File diff suppressed because it is too large
Load diff
8243
www/data/Map008.json
Normal file
8243
www/data/Map008.json
Normal file
File diff suppressed because it is too large
Load diff
4811
www/data/Map009.json
Normal file
4811
www/data/Map009.json
Normal file
File diff suppressed because it is too large
Load diff
11950
www/data/Map010.json
Normal file
11950
www/data/Map010.json
Normal file
File diff suppressed because it is too large
Load diff
2880
www/data/Map011.json
Normal file
2880
www/data/Map011.json
Normal file
File diff suppressed because it is too large
Load diff
1539
www/data/Map012.json
Normal file
1539
www/data/Map012.json
Normal file
File diff suppressed because it is too large
Load diff
1484
www/data/Map013.json
Normal file
1484
www/data/Map013.json
Normal file
File diff suppressed because it is too large
Load diff
10464
www/data/Map014.json
Normal file
10464
www/data/Map014.json
Normal file
File diff suppressed because it is too large
Load diff
5574
www/data/Map015.json
Normal file
5574
www/data/Map015.json
Normal file
File diff suppressed because it is too large
Load diff
2232
www/data/Map016.json
Normal file
2232
www/data/Map016.json
Normal file
File diff suppressed because it is too large
Load diff
6489
www/data/Map017.json
Normal file
6489
www/data/Map017.json
Normal file
File diff suppressed because it is too large
Load diff
2974
www/data/Map018.json
Normal file
2974
www/data/Map018.json
Normal file
File diff suppressed because it is too large
Load diff
3622
www/data/Map019.json
Normal file
3622
www/data/Map019.json
Normal file
File diff suppressed because it is too large
Load diff
2223
www/data/Map020.json
Normal file
2223
www/data/Map020.json
Normal file
File diff suppressed because it is too large
Load diff
2195
www/data/Map021.json
Normal file
2195
www/data/Map021.json
Normal file
File diff suppressed because it is too large
Load diff
7171
www/data/Map022.json
Normal file
7171
www/data/Map022.json
Normal file
File diff suppressed because it is too large
Load diff
1992
www/data/Map023.json
Normal file
1992
www/data/Map023.json
Normal file
File diff suppressed because it is too large
Load diff
5722
www/data/Map024.json
Normal file
5722
www/data/Map024.json
Normal file
File diff suppressed because it is too large
Load diff
4558
www/data/Map025.json
Normal file
4558
www/data/Map025.json
Normal file
File diff suppressed because it is too large
Load diff
19143
www/data/Map026.json
Normal file
19143
www/data/Map026.json
Normal file
File diff suppressed because it is too large
Load diff
6675
www/data/Map027.json
Normal file
6675
www/data/Map027.json
Normal file
File diff suppressed because it is too large
Load diff
3869
www/data/Map028.json
Normal file
3869
www/data/Map028.json
Normal file
File diff suppressed because it is too large
Load diff
1733
www/data/Map029.json
Normal file
1733
www/data/Map029.json
Normal file
File diff suppressed because it is too large
Load diff
4638
www/data/Map030.json
Normal file
4638
www/data/Map030.json
Normal file
File diff suppressed because it is too large
Load diff
273
www/data/MapInfos.json
Normal file
273
www/data/MapInfos.json
Normal file
|
|
@ -0,0 +1,273 @@
|
|||
[
|
||||
null,
|
||||
{
|
||||
"id": 1,
|
||||
"expanded": true,
|
||||
"name": "ゲーム開始前ページ",
|
||||
"order": 1,
|
||||
"parentId": 0,
|
||||
"scrollX": 1092,
|
||||
"scrollY": 614.6666666666666
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"expanded": false,
|
||||
"name": "実験マップ",
|
||||
"order": 2,
|
||||
"parentId": 1,
|
||||
"scrollX": 1092,
|
||||
"scrollY": 614.6666666666666
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"expanded": false,
|
||||
"name": "シーン&CG回想",
|
||||
"order": 3,
|
||||
"parentId": 0,
|
||||
"scrollX": 1092,
|
||||
"scrollY": 614.6666666666666
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"expanded": true,
|
||||
"name": "OP用",
|
||||
"order": 4,
|
||||
"parentId": 0,
|
||||
"scrollX": 1092,
|
||||
"scrollY": 614.6666666666666
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"expanded": true,
|
||||
"name": "村",
|
||||
"order": 6,
|
||||
"parentId": 0,
|
||||
"scrollX": 1081.3333333333333,
|
||||
"scrollY": 604
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"expanded": true,
|
||||
"name": "宿屋1F",
|
||||
"order": 8,
|
||||
"parentId": 0,
|
||||
"scrollX": 1092,
|
||||
"scrollY": 614.6666666666666
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"expanded": false,
|
||||
"name": "宿屋2F",
|
||||
"order": 9,
|
||||
"parentId": 6,
|
||||
"scrollX": 1092,
|
||||
"scrollY": 614.6666666666666
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"expanded": false,
|
||||
"name": "道具屋",
|
||||
"order": 13,
|
||||
"parentId": 0,
|
||||
"scrollX": 1092,
|
||||
"scrollY": 614.6666666666666
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"expanded": true,
|
||||
"name": "魔術士宅",
|
||||
"order": 14,
|
||||
"parentId": 0,
|
||||
"scrollX": 1092,
|
||||
"scrollY": 614.6666666666666
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"expanded": true,
|
||||
"name": "お屋敷2F",
|
||||
"order": 15,
|
||||
"parentId": 0,
|
||||
"scrollX": 1092,
|
||||
"scrollY": 614.6666666666666
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"expanded": false,
|
||||
"name": "お屋敷1F",
|
||||
"order": 16,
|
||||
"parentId": 10,
|
||||
"scrollX": 1092,
|
||||
"scrollY": 614.6666666666666
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"expanded": false,
|
||||
"name": "お屋敷左",
|
||||
"order": 17,
|
||||
"parentId": 10,
|
||||
"scrollX": 1092,
|
||||
"scrollY": 614.6666666666666
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"expanded": false,
|
||||
"name": "お屋敷右",
|
||||
"order": 18,
|
||||
"parentId": 10,
|
||||
"scrollX": 1092,
|
||||
"scrollY": 614.6666666666666
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"expanded": false,
|
||||
"name": "エンディング",
|
||||
"order": 5,
|
||||
"parentId": 0,
|
||||
"scrollX": 1092,
|
||||
"scrollY": 614.6666666666666
|
||||
},
|
||||
{
|
||||
"id": 15,
|
||||
"expanded": true,
|
||||
"name": "教会",
|
||||
"order": 19,
|
||||
"parentId": 0,
|
||||
"scrollX": 1092,
|
||||
"scrollY": 614.6666666666666
|
||||
},
|
||||
{
|
||||
"id": 16,
|
||||
"expanded": false,
|
||||
"name": "教会奥私室",
|
||||
"order": 20,
|
||||
"parentId": 15,
|
||||
"scrollX": 1092,
|
||||
"scrollY": 614.6666666666666
|
||||
},
|
||||
{
|
||||
"id": 17,
|
||||
"expanded": false,
|
||||
"name": "エルフ母娘宅",
|
||||
"order": 21,
|
||||
"parentId": 0,
|
||||
"scrollX": 1092,
|
||||
"scrollY": 614.6666666666666
|
||||
},
|
||||
{
|
||||
"id": 18,
|
||||
"expanded": false,
|
||||
"name": "牧場の倉庫",
|
||||
"order": 22,
|
||||
"parentId": 0,
|
||||
"scrollX": 1092,
|
||||
"scrollY": 614.6666666666666
|
||||
},
|
||||
{
|
||||
"id": 19,
|
||||
"expanded": false,
|
||||
"name": "武器屋",
|
||||
"order": 24,
|
||||
"parentId": 0,
|
||||
"scrollX": 1092,
|
||||
"scrollY": 614.6666666666666
|
||||
},
|
||||
{
|
||||
"id": 20,
|
||||
"expanded": false,
|
||||
"name": "一般家庭1",
|
||||
"order": 25,
|
||||
"parentId": 0,
|
||||
"scrollX": 1092,
|
||||
"scrollY": 614.6666666666666
|
||||
},
|
||||
{
|
||||
"id": 21,
|
||||
"expanded": false,
|
||||
"name": "一般家庭2",
|
||||
"order": 26,
|
||||
"parentId": 0,
|
||||
"scrollX": 1092,
|
||||
"scrollY": 614.6666666666666
|
||||
},
|
||||
{
|
||||
"id": 22,
|
||||
"expanded": false,
|
||||
"name": "宿屋覗いた時",
|
||||
"order": 10,
|
||||
"parentId": 6,
|
||||
"scrollX": 1092,
|
||||
"scrollY": 614.6666666666666
|
||||
},
|
||||
{
|
||||
"id": 23,
|
||||
"expanded": false,
|
||||
"name": "牛小屋",
|
||||
"order": 23,
|
||||
"parentId": 0,
|
||||
"scrollX": 1092,
|
||||
"scrollY": 614.6666666666666
|
||||
},
|
||||
{
|
||||
"id": 24,
|
||||
"expanded": true,
|
||||
"name": "裏口から入った宿屋1F",
|
||||
"order": 11,
|
||||
"parentId": 6,
|
||||
"scrollX": 1092,
|
||||
"scrollY": 614.6666666666666
|
||||
},
|
||||
{
|
||||
"id": 25,
|
||||
"expanded": false,
|
||||
"name": "宿屋2F夜",
|
||||
"order": 12,
|
||||
"parentId": 6,
|
||||
"scrollX": 1092,
|
||||
"scrollY": 614.6666666666666
|
||||
},
|
||||
{
|
||||
"id": 26,
|
||||
"expanded": true,
|
||||
"name": "夜の村",
|
||||
"order": 7,
|
||||
"parentId": 5,
|
||||
"scrollX": 1318.6666666666667,
|
||||
"scrollY": 692
|
||||
},
|
||||
{
|
||||
"id": 27,
|
||||
"expanded": false,
|
||||
"name": "エルフのお友達",
|
||||
"order": 27,
|
||||
"parentId": 0,
|
||||
"scrollX": 1092,
|
||||
"scrollY": 614.6666666666666
|
||||
},
|
||||
{
|
||||
"id": 28,
|
||||
"expanded": false,
|
||||
"name": "一人暮らし女",
|
||||
"order": 28,
|
||||
"parentId": 0,
|
||||
"scrollX": 1092,
|
||||
"scrollY": 614.6666666666666
|
||||
},
|
||||
{
|
||||
"id": 29,
|
||||
"expanded": false,
|
||||
"name": "一般家庭3",
|
||||
"order": 29,
|
||||
"parentId": 0,
|
||||
"scrollX": 1092,
|
||||
"scrollY": 614.6666666666666
|
||||
},
|
||||
{
|
||||
"id": 30,
|
||||
"expanded": false,
|
||||
"name": "牧場娘の家",
|
||||
"order": 30,
|
||||
"parentId": 0,
|
||||
"scrollX": 1092,
|
||||
"scrollY": 614.6666666666666
|
||||
}
|
||||
]
|
||||
3045
www/data/Skills.json
Normal file
3045
www/data/Skills.json
Normal file
File diff suppressed because it is too large
Load diff
295
www/data/States.json
Normal file
295
www/data/States.json
Normal file
|
|
@ -0,0 +1,295 @@
|
|||
[
|
||||
null,
|
||||
{
|
||||
"id": 1,
|
||||
"autoRemovalTiming": 0,
|
||||
"chanceByDamage": 100,
|
||||
"iconIndex": 1,
|
||||
"maxTurns": 1,
|
||||
"message1": "は倒れた!",
|
||||
"message2": "を倒した!",
|
||||
"message3": "",
|
||||
"message4": "は立ち上がった!",
|
||||
"minTurns": 1,
|
||||
"motion": 3,
|
||||
"name": "戦闘不能",
|
||||
"note": "ステート1番はHPが0になったときに\n自動的に付加されます。",
|
||||
"overlay": 0,
|
||||
"priority": 100,
|
||||
"releaseByDamage": false,
|
||||
"removeAtBattleEnd": false,
|
||||
"removeByDamage": false,
|
||||
"removeByRestriction": false,
|
||||
"removeByWalking": false,
|
||||
"restriction": 4,
|
||||
"stepsToRemove": 100,
|
||||
"traits": [
|
||||
{
|
||||
"code": 23,
|
||||
"dataId": 9,
|
||||
"value": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"autoRemovalTiming": 2,
|
||||
"chanceByDamage": 100,
|
||||
"description": "",
|
||||
"iconIndex": 0,
|
||||
"maxTurns": 1,
|
||||
"message1": "",
|
||||
"message2": "",
|
||||
"message3": "",
|
||||
"message4": "",
|
||||
"minTurns": 1,
|
||||
"motion": 0,
|
||||
"name": "防御",
|
||||
"note": "",
|
||||
"overlay": 0,
|
||||
"priority": 0,
|
||||
"removeAtBattleEnd": true,
|
||||
"removeByDamage": false,
|
||||
"removeByRestriction": true,
|
||||
"removeByWalking": false,
|
||||
"restriction": 0,
|
||||
"stepsToRemove": 100,
|
||||
"traits": [
|
||||
{
|
||||
"code": 62,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"autoRemovalTiming": 0,
|
||||
"chanceByDamage": 100,
|
||||
"description": "",
|
||||
"iconIndex": 0,
|
||||
"maxTurns": 1,
|
||||
"message1": "",
|
||||
"message2": "",
|
||||
"message3": "",
|
||||
"message4": "",
|
||||
"minTurns": 1,
|
||||
"motion": 0,
|
||||
"name": "不死身",
|
||||
"note": "",
|
||||
"overlay": 0,
|
||||
"priority": 0,
|
||||
"removeAtBattleEnd": true,
|
||||
"removeByDamage": false,
|
||||
"removeByRestriction": false,
|
||||
"removeByWalking": false,
|
||||
"restriction": 0,
|
||||
"stepsToRemove": 100,
|
||||
"traits": [
|
||||
{
|
||||
"code": 14,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"autoRemovalTiming": 0,
|
||||
"chanceByDamage": 100,
|
||||
"iconIndex": 2,
|
||||
"maxTurns": 1,
|
||||
"message1": "は毒にかかった!",
|
||||
"message2": "に毒をかけた!",
|
||||
"message3": "",
|
||||
"message4": "の毒が消えた!",
|
||||
"minTurns": 1,
|
||||
"motion": 1,
|
||||
"overlay": 1,
|
||||
"name": "毒",
|
||||
"note": "",
|
||||
"priority": 50,
|
||||
"releaseByDamage": false,
|
||||
"removeAtBattleEnd": false,
|
||||
"removeByDamage": false,
|
||||
"removeByRestriction": false,
|
||||
"removeByWalking": false,
|
||||
"restriction": 0,
|
||||
"stepsToRemove": 100,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 7,
|
||||
"value": -0.1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"autoRemovalTiming": 1,
|
||||
"chanceByDamage": 100,
|
||||
"iconIndex": 3,
|
||||
"maxTurns": 5,
|
||||
"message1": "は暗闇に閉ざされた!",
|
||||
"message2": "を暗闇に閉ざした!",
|
||||
"message3": "",
|
||||
"message4": "の暗闇が消えた!",
|
||||
"minTurns": 3,
|
||||
"motion": 1,
|
||||
"name": "暗闇",
|
||||
"note": "",
|
||||
"overlay": 2,
|
||||
"priority": 60,
|
||||
"releaseByDamage": false,
|
||||
"removeAtBattleEnd": true,
|
||||
"removeByDamage": false,
|
||||
"removeByRestriction": false,
|
||||
"removeByWalking": false,
|
||||
"restriction": 0,
|
||||
"stepsToRemove": 100,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": -0.5
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"autoRemovalTiming": 1,
|
||||
"chanceByDamage": 100,
|
||||
"iconIndex": 4,
|
||||
"maxTurns": 5,
|
||||
"message1": "は沈黙した!",
|
||||
"message2": "を沈黙させた!",
|
||||
"message3": "",
|
||||
"message4": "の沈黙が解けた!",
|
||||
"minTurns": 3,
|
||||
"motion": 1,
|
||||
"name": "沈黙",
|
||||
"note": "",
|
||||
"overlay": 3,
|
||||
"priority": 65,
|
||||
"releaseByDamage": false,
|
||||
"removeAtBattleEnd": true,
|
||||
"removeByDamage": false,
|
||||
"removeByRestriction": false,
|
||||
"removeByWalking": false,
|
||||
"restriction": 0,
|
||||
"stepsToRemove": 100,
|
||||
"traits": [
|
||||
{
|
||||
"code": 42,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"autoRemovalTiming": 1,
|
||||
"chanceByDamage": 50,
|
||||
"iconIndex": 5,
|
||||
"maxTurns": 4,
|
||||
"message1": "は激昂した!",
|
||||
"message2": "を激昂させた!",
|
||||
"message3": "",
|
||||
"message4": "は我に返った!",
|
||||
"minTurns": 2,
|
||||
"motion": 1,
|
||||
"name": "激昂",
|
||||
"note": "",
|
||||
"overlay": 4,
|
||||
"priority": 70,
|
||||
"releaseByDamage": false,
|
||||
"removeAtBattleEnd": true,
|
||||
"removeByDamage": true,
|
||||
"removeByRestriction": false,
|
||||
"removeByWalking": false,
|
||||
"restriction": 1,
|
||||
"stepsToRemove": 100,
|
||||
"traits": []
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"autoRemovalTiming": 1,
|
||||
"chanceByDamage": 50,
|
||||
"iconIndex": 6,
|
||||
"maxTurns": 4,
|
||||
"message1": "は混乱した!",
|
||||
"message2": "を混乱させた!",
|
||||
"message3": "",
|
||||
"message4": "は我に返った!",
|
||||
"minTurns": 2,
|
||||
"motion": 1,
|
||||
"name": "混乱",
|
||||
"note": "",
|
||||
"overlay": 5,
|
||||
"priority": 75,
|
||||
"releaseByDamage": false,
|
||||
"removeAtBattleEnd": true,
|
||||
"removeByDamage": true,
|
||||
"removeByRestriction": false,
|
||||
"removeByWalking": false,
|
||||
"restriction": 2,
|
||||
"stepsToRemove": 100,
|
||||
"traits": []
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"autoRemovalTiming": 1,
|
||||
"chanceByDamage": 50,
|
||||
"iconIndex": 7,
|
||||
"maxTurns": 4,
|
||||
"message1": "は魅了された!",
|
||||
"message2": "を魅了した!",
|
||||
"message3": "",
|
||||
"message4": "は我に返った!",
|
||||
"minTurns": 2,
|
||||
"motion": 1,
|
||||
"name": "魅了",
|
||||
"note": "",
|
||||
"overlay": 6,
|
||||
"priority": 80,
|
||||
"releaseByDamage": false,
|
||||
"removeAtBattleEnd": true,
|
||||
"removeByDamage": true,
|
||||
"removeByRestriction": false,
|
||||
"removeByWalking": false,
|
||||
"restriction": 3,
|
||||
"stepsToRemove": 100,
|
||||
"traits": []
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"autoRemovalTiming": 1,
|
||||
"chanceByDamage": 100,
|
||||
"iconIndex": 8,
|
||||
"maxTurns": 5,
|
||||
"message1": "は眠った!",
|
||||
"message2": "を眠らせた!",
|
||||
"message3": "は眠っている。",
|
||||
"message4": "は目を覚ました!",
|
||||
"minTurns": 3,
|
||||
"motion": 2,
|
||||
"name": "睡眠",
|
||||
"note": "",
|
||||
"overlay": 7,
|
||||
"priority": 90,
|
||||
"releaseByDamage": true,
|
||||
"removeAtBattleEnd": true,
|
||||
"removeByDamage": true,
|
||||
"removeByRestriction": false,
|
||||
"removeByWalking": false,
|
||||
"restriction": 4,
|
||||
"stepsToRemove": 100,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": -1
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
926
www/data/System.json
Normal file
926
www/data/System.json
Normal file
|
|
@ -0,0 +1,926 @@
|
|||
{
|
||||
"airship": {
|
||||
"bgm": {
|
||||
"name": "Ship3",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
"characterIndex": 3,
|
||||
"characterName": "",
|
||||
"startMapId": 0,
|
||||
"startX": 0,
|
||||
"startY": 0
|
||||
},
|
||||
"armorTypes": [
|
||||
"",
|
||||
"一般防具",
|
||||
"魔法防具",
|
||||
"軽装防具",
|
||||
"重装防具",
|
||||
"小型盾",
|
||||
"大型盾"
|
||||
],
|
||||
"attackMotions": [
|
||||
{
|
||||
"type": 0,
|
||||
"weaponImageId": 0
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"weaponImageId": 1
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"weaponImageId": 2
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"weaponImageId": 3
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"weaponImageId": 4
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"weaponImageId": 5
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"weaponImageId": 6
|
||||
},
|
||||
{
|
||||
"type": 2,
|
||||
"weaponImageId": 7
|
||||
},
|
||||
{
|
||||
"type": 2,
|
||||
"weaponImageId": 8
|
||||
},
|
||||
{
|
||||
"type": 2,
|
||||
"weaponImageId": 9
|
||||
},
|
||||
{
|
||||
"type": 0,
|
||||
"weaponImageId": 10
|
||||
},
|
||||
{
|
||||
"type": 0,
|
||||
"weaponImageId": 11
|
||||
},
|
||||
{
|
||||
"type": 0,
|
||||
"weaponImageId": 12
|
||||
}
|
||||
],
|
||||
"battleBgm": {
|
||||
"name": "Battle1",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
"battleback1Name": "Grassland",
|
||||
"battleback2Name": "Grassland",
|
||||
"battlerHue": 0,
|
||||
"battlerName": "Dragon",
|
||||
"boat": {
|
||||
"bgm": {
|
||||
"name": "Ship1",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
"characterIndex": 0,
|
||||
"characterName": "",
|
||||
"startMapId": 0,
|
||||
"startX": 0,
|
||||
"startY": 0
|
||||
},
|
||||
"currencyUnit": "G",
|
||||
"defeatMe": {
|
||||
"name": "Defeat1",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
"editMapId": 5,
|
||||
"elements": [
|
||||
"",
|
||||
"物理",
|
||||
"炎",
|
||||
"氷",
|
||||
"雷",
|
||||
"水",
|
||||
"土",
|
||||
"風",
|
||||
"光",
|
||||
"闇"
|
||||
],
|
||||
"equipTypes": [
|
||||
"",
|
||||
"武器",
|
||||
"盾",
|
||||
"頭",
|
||||
"鎧",
|
||||
"装飾品"
|
||||
],
|
||||
"gameTitle": "触手で洗脳R Ver.1.01",
|
||||
"gameoverMe": {
|
||||
"name": "Gameover1",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
"locale": "ja_JP",
|
||||
"magicSkills": [
|
||||
1,
|
||||
2
|
||||
],
|
||||
"menuCommands": [
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
false,
|
||||
true
|
||||
],
|
||||
"optDisplayTp": false,
|
||||
"optDrawTitle": false,
|
||||
"optExtraExp": false,
|
||||
"optFloorDeath": false,
|
||||
"optFollowers": false,
|
||||
"optSideView": false,
|
||||
"optSlipDeath": true,
|
||||
"optTransparent": true,
|
||||
"partyMembers": [
|
||||
1
|
||||
],
|
||||
"ship": {
|
||||
"bgm": {
|
||||
"name": "Ship2",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
"characterIndex": 1,
|
||||
"characterName": "",
|
||||
"startMapId": 0,
|
||||
"startX": 0,
|
||||
"startY": 0
|
||||
},
|
||||
"skillTypes": [
|
||||
"",
|
||||
"魔法",
|
||||
"スキル"
|
||||
],
|
||||
"sounds": [
|
||||
{
|
||||
"name": "Cursor2",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
{
|
||||
"name": "Decision1",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
{
|
||||
"name": "Cancel2",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
{
|
||||
"name": "Buzzer1",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
{
|
||||
"name": "Equip1",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
{
|
||||
"name": "Save",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
{
|
||||
"name": "Load",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
{
|
||||
"name": "Battle1",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
{
|
||||
"name": "Run",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
{
|
||||
"name": "Attack3",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
{
|
||||
"name": "Damage4",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
{
|
||||
"name": "Collapse1",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
{
|
||||
"name": "Collapse2",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
{
|
||||
"name": "Collapse3",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
{
|
||||
"name": "Damage5",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
{
|
||||
"name": "Collapse4",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
{
|
||||
"name": "Recovery",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
{
|
||||
"name": "Miss",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
{
|
||||
"name": "Evasion1",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
{
|
||||
"name": "Evasion2",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
{
|
||||
"name": "Reflection",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
{
|
||||
"name": "Shop1",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
{
|
||||
"name": "Item3",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
{
|
||||
"name": "Item3",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
}
|
||||
],
|
||||
"startMapId": 1,
|
||||
"startX": 7,
|
||||
"startY": 3,
|
||||
"switches": [
|
||||
"",
|
||||
"回想モード",
|
||||
"回想サムネ表示完了",
|
||||
"ゲームクリア",
|
||||
"ゲーム開始",
|
||||
"戦闘開始",
|
||||
"",
|
||||
"回想モードの選択中",
|
||||
"回想モードキー操作中",
|
||||
"CGモード",
|
||||
"キー操作での回想実行",
|
||||
"シーン&CG回想実行中",
|
||||
"ページダウンで簡易メニュ",
|
||||
"過去ログ保存開始",
|
||||
"既読スキップ許可",
|
||||
"オートメッセージ実行",
|
||||
"メニューボタンの表示",
|
||||
"ウィンドウ消去無効",
|
||||
"イベントの再生",
|
||||
"ピクチャーボタン無効",
|
||||
"ノベルメニュー実行可能",
|
||||
"滑る床がマップにある",
|
||||
"滑る床判定",
|
||||
"滑る床実行",
|
||||
"",
|
||||
"人妻宅覗いた",
|
||||
"本に集中してる!?",
|
||||
"夜の街徘徊中",
|
||||
"",
|
||||
"",
|
||||
"犬威嚇",
|
||||
"牧場娘攻略した",
|
||||
"宿屋娘攻略した",
|
||||
"宿屋の裏口発見",
|
||||
"",
|
||||
"ヒントモード",
|
||||
"",
|
||||
"倍速モードの状態",
|
||||
"倍速モードの監視",
|
||||
"倍速モード切り替え",
|
||||
"倍速モード",
|
||||
"道具屋倉庫へ",
|
||||
"道具屋正面から外へ",
|
||||
"道具屋H終了",
|
||||
"魔術師の荷物確認",
|
||||
"魔術師の家確認",
|
||||
"魔術士宅潜入",
|
||||
"魔術師H終了",
|
||||
"邪魔な犬退く",
|
||||
"宿屋の窓を見た",
|
||||
"エルフ母娘帰宅",
|
||||
"裏口から宿屋潜入脱出",
|
||||
"宿屋で追いかけられる",
|
||||
"お屋敷の左窓確認",
|
||||
"ハシゴを置いた",
|
||||
"お嬢様H終了",
|
||||
"宝物庫確認",
|
||||
"メイドH終了",
|
||||
"お屋敷正面から潜入",
|
||||
"シスターH終了",
|
||||
"魔術師に首飾り確認",
|
||||
"くまちゃんの話",
|
||||
"エルフH終了",
|
||||
"エルフ母宿屋へ",
|
||||
"睡眠薬飲ませた",
|
||||
"リーザ差し出しED",
|
||||
"シスター仲間に",
|
||||
"魔術師仲間に",
|
||||
"宿屋の窓",
|
||||
"一人暮らし女H終了",
|
||||
"エルフの友達H終了",
|
||||
"一人暮らしの女の窓",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"武器屋の親父",
|
||||
"武器屋の親父2",
|
||||
"武器屋の親父3",
|
||||
"",
|
||||
"",
|
||||
"村から逃げる?",
|
||||
"リーザH後",
|
||||
"",
|
||||
"シスターの情報",
|
||||
"",
|
||||
"会話中",
|
||||
"",
|
||||
"道具屋逃げた後、穴から出る",
|
||||
"",
|
||||
"宿屋の娘攻略",
|
||||
"",
|
||||
"正面から入って逃げ切った",
|
||||
"",
|
||||
"屋敷の右窓確認",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"探索者1発見",
|
||||
"武器屋の親父1発見",
|
||||
"武器屋の親父2発見",
|
||||
"子ども発見",
|
||||
"探索者2発見",
|
||||
"探索者3発見",
|
||||
"探索者4発見",
|
||||
"探索者5発見",
|
||||
"探索者6発見",
|
||||
"",
|
||||
"女戦士発見",
|
||||
"",
|
||||
"OP中",
|
||||
"",
|
||||
"",
|
||||
"牧場娘の家の窓覗く",
|
||||
"",
|
||||
"正面から道具に入る",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"ラストのデバック用",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"オートメッセージの切り替え",
|
||||
"イベントの自律移動停止",
|
||||
"操作説明表示中",
|
||||
"操作説明の表示",
|
||||
"アニメ鑑賞モード",
|
||||
"動画モード",
|
||||
"戦闘背景の自動変更",
|
||||
"イベント1を見た",
|
||||
"イベント2を見た",
|
||||
"イベント3を見た",
|
||||
"イベント4を見た",
|
||||
"イベント5を見た",
|
||||
"イベント6を見た",
|
||||
"イベント7を見た",
|
||||
"イベント8を見た",
|
||||
"イベント9を見た",
|
||||
"イベント10を見た",
|
||||
"イベント11を見た",
|
||||
"イベント12を見た",
|
||||
"イベント13を見た",
|
||||
"イベント14を見た",
|
||||
"イベント15を見た",
|
||||
"イベント16を見た",
|
||||
"イベント17を見た",
|
||||
"イベント18を見た",
|
||||
"イベント19を見た",
|
||||
"イベント20を見た",
|
||||
"イベント21を見た",
|
||||
"イベント22を見た",
|
||||
"イベント23を見た",
|
||||
"イベント24を見た",
|
||||
"イベント25を見た",
|
||||
"イベント26を見た",
|
||||
"イベント27を見た",
|
||||
"イベント28を見た",
|
||||
"イベント29を見た",
|
||||
"イベント30を見た",
|
||||
"イベント31を見た",
|
||||
"イベント32を見た",
|
||||
"イベント33を見た",
|
||||
"イベント34を見た",
|
||||
"イベント35を見た",
|
||||
"イベント36を見た",
|
||||
"イベント37を見た",
|
||||
"イベント38を見た",
|
||||
"イベント39を見た",
|
||||
"イベント40を見た",
|
||||
"イベント41を見た",
|
||||
"イベント42を見た",
|
||||
"イベント43を見た",
|
||||
"イベント44を見た",
|
||||
"イベント45を見た",
|
||||
"イベント46を見た",
|
||||
"イベント47を見た",
|
||||
"イベント48を見た",
|
||||
"イベント49を見た",
|
||||
"イベント50を見た",
|
||||
"イベント51を見た",
|
||||
"イベント52を見た",
|
||||
"イベント53を見た",
|
||||
"イベント54を見た",
|
||||
"イベント55を見た",
|
||||
"イベント56を見た",
|
||||
"イベント57を見た",
|
||||
"イベント58を見た",
|
||||
"イベント59を見た",
|
||||
"イベント60を見た",
|
||||
"イベント61を見た",
|
||||
"イベント62を見た",
|
||||
"イベント63を見た",
|
||||
"イベント64を見た",
|
||||
"イベント65を見た",
|
||||
"イベント66を見た",
|
||||
"イベント67を見た",
|
||||
"イベント68を見た",
|
||||
"イベント69を見た",
|
||||
"イベント70を見た",
|
||||
"イベント71を見た",
|
||||
"イベント72を見た",
|
||||
"イベント73を見た",
|
||||
"イベント74を見た",
|
||||
"イベント75を見た",
|
||||
"イベント76を見た",
|
||||
"イベント77を見た",
|
||||
"イベント78を見た",
|
||||
"イベント79を見た",
|
||||
"イベント80を見た"
|
||||
],
|
||||
"terms": {
|
||||
"basic": [
|
||||
"レベル",
|
||||
"Lv",
|
||||
"HP",
|
||||
"HP",
|
||||
"MP",
|
||||
"MP",
|
||||
"TP",
|
||||
"TP",
|
||||
"経験値",
|
||||
"EXP"
|
||||
],
|
||||
"commands": [
|
||||
"戦う",
|
||||
"逃げる",
|
||||
"攻撃",
|
||||
"防御",
|
||||
"アイテム",
|
||||
"スキル",
|
||||
"装備",
|
||||
"ステータス",
|
||||
"並び替え",
|
||||
"セーブ",
|
||||
"ゲーム終了",
|
||||
"オプション",
|
||||
"武器",
|
||||
"防具",
|
||||
"大事なもの",
|
||||
"装備",
|
||||
"最強装備",
|
||||
"全て外す",
|
||||
"ニューゲーム",
|
||||
"コンティニュー",
|
||||
null,
|
||||
"タイトルへ",
|
||||
"やめる",
|
||||
null,
|
||||
"作成する",
|
||||
""
|
||||
],
|
||||
"params": [
|
||||
"最大HP",
|
||||
"最大SP",
|
||||
"攻撃力",
|
||||
"防御力",
|
||||
"魔法力",
|
||||
"魔法防御",
|
||||
"敏捷性",
|
||||
"運",
|
||||
"命中率",
|
||||
"回避率"
|
||||
],
|
||||
"messages": {
|
||||
"actionFailure": "%1には効かなかった!",
|
||||
"actorDamage": "%1は %2 のダメージを受けた!",
|
||||
"actorDrain": "%1は%2を %3 奪われた!",
|
||||
"actorGain": "%1の%2が %3 増えた!",
|
||||
"actorLoss": "%1の%2が %3 減った!",
|
||||
"actorNoDamage": "%1はダメージを受けていない!",
|
||||
"actorNoHit": "ミス! %1はダメージを受けていない!",
|
||||
"actorRecovery": "%1の%2が %3 回復した!",
|
||||
"alwaysDash": "常時ダッシュ",
|
||||
"bgmVolume": "BGM 音量",
|
||||
"bgsVolume": "BGS 音量",
|
||||
"buffAdd": "%1の%2が上がった!",
|
||||
"buffRemove": "%1の%2が元に戻った!",
|
||||
"commandRemember": "コマンド記憶",
|
||||
"counterAttack": "%1の反撃!",
|
||||
"criticalToActor": "痛恨の一撃!!",
|
||||
"criticalToEnemy": "会心の一撃!!",
|
||||
"debuffAdd": "%1の%2が下がった!",
|
||||
"defeat": "%1は戦いに敗れた。",
|
||||
"emerge": "%1が出現!",
|
||||
"enemyDamage": "%1に %2 のダメージを与えた!",
|
||||
"enemyDrain": "%1の%2を %3 奪った!",
|
||||
"enemyGain": "%1の%2が %3 増えた!",
|
||||
"enemyLoss": "%1の%2が %3 減った!",
|
||||
"enemyNoDamage": "%1にダメージを与えられない!",
|
||||
"enemyNoHit": "ミス! %1にダメージを与えられない!",
|
||||
"enemyRecovery": "%1の%2が %3 回復した!",
|
||||
"escapeFailure": "しかし逃げることはできなかった!",
|
||||
"escapeStart": "%1は逃げ出した!",
|
||||
"evasion": "%1は攻撃をかわした!",
|
||||
"expNext": "次の%1まで",
|
||||
"expTotal": "現在の%1",
|
||||
"file": "ファイル",
|
||||
"levelUp": "%1は%2 %3 に上がった!",
|
||||
"loadMessage": "どのファイルをロードしますか?",
|
||||
"magicEvasion": "%1は魔法を打ち消した!",
|
||||
"magicReflection": "%1は魔法を跳ね返した!",
|
||||
"meVolume": "ME 音量",
|
||||
"obtainExp": "%1 の%2を獲得!",
|
||||
"obtainGold": "%1\\G 手に入れた!",
|
||||
"obtainItem": "%1を手に入れた!",
|
||||
"obtainSkill": "%1を覚えた!",
|
||||
"partyName": "%1たち",
|
||||
"possession": "持っている数",
|
||||
"preemptive": "%1は先手を取った!",
|
||||
"saveMessage": "どのファイルにセーブしますか?",
|
||||
"seVolume": "SE 音量",
|
||||
"substitute": "%1が%2をかばった!",
|
||||
"surprise": "%1は不意をつかれた!",
|
||||
"useItem": "%1は%2を使った!",
|
||||
"victory": "%1の勝利!"
|
||||
}
|
||||
},
|
||||
"testBattlers": [
|
||||
{
|
||||
"actorId": 5,
|
||||
"equips": [
|
||||
6,
|
||||
51,
|
||||
48,
|
||||
49,
|
||||
50,
|
||||
33
|
||||
],
|
||||
"level": 21
|
||||
},
|
||||
{
|
||||
"actorId": 0,
|
||||
"equips": [
|
||||
6,
|
||||
47,
|
||||
48,
|
||||
0,
|
||||
0,
|
||||
15
|
||||
],
|
||||
"level": 11
|
||||
},
|
||||
{
|
||||
"actorId": 0,
|
||||
"equips": [
|
||||
6,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
15
|
||||
],
|
||||
"level": 1
|
||||
},
|
||||
{
|
||||
"actorId": 0,
|
||||
"equips": [
|
||||
4,
|
||||
0,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
],
|
||||
"level": 1
|
||||
}
|
||||
],
|
||||
"testTroopId": 83,
|
||||
"title1Name": "title",
|
||||
"title2Name": "",
|
||||
"titleBgm": {
|
||||
"name": "0A96",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
"variables": [
|
||||
"",
|
||||
"回想再生コモンイベント変数",
|
||||
"現在の回想ページ番号",
|
||||
"回想シーンモードの必要ページ数",
|
||||
"回想CGモードの必要ページ数",
|
||||
"CGや回想のマップID",
|
||||
"回想の移動場所X",
|
||||
"回想の移動場所Y",
|
||||
"ポインタの座標X",
|
||||
"ポインタの座標Y",
|
||||
"ボタン用ピクチャ番号変数",
|
||||
"",
|
||||
"",
|
||||
"CG回想モードの判別",
|
||||
"シーン数",
|
||||
"基本CG枚数",
|
||||
"ボタン用シーン数",
|
||||
"ボタン用CG数",
|
||||
"",
|
||||
"自動文章速度(トリアコン)",
|
||||
"オートメッセージの速度",
|
||||
"プレイヤーの位置X",
|
||||
"プレイヤーの位置Y",
|
||||
"右キャラ位置X",
|
||||
"右キャラ位置Y",
|
||||
"中央キャラX",
|
||||
"中央キャラY",
|
||||
"左キャラ位置X",
|
||||
"左キャラ位置Y",
|
||||
"プレイヤーの最大HP",
|
||||
"プレイヤーのHP",
|
||||
"所持金",
|
||||
"現在地の地形タグ",
|
||||
"新しい地形タグ",
|
||||
"現在地のリージョン",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"PL移動前の位置X",
|
||||
"PL移動前の位置Y",
|
||||
"即席変数1",
|
||||
"即席変数2",
|
||||
"即席変数3",
|
||||
"",
|
||||
"",
|
||||
"メインストーリー",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"すべるカウント",
|
||||
"回想:Y1段目の数値",
|
||||
"回想:Y2段目の数値",
|
||||
"回想:Y3段目の数値",
|
||||
"回想:Y4段目の数値",
|
||||
"回想:X1列目の数値",
|
||||
"回想:X2列目の数値",
|
||||
"回想:X3列目の数値",
|
||||
"回想:X4列目の数値",
|
||||
"女剣士",
|
||||
"ギャル",
|
||||
"内気少女",
|
||||
"メイド",
|
||||
"眼鏡女",
|
||||
"酒場の娘",
|
||||
"爆乳女",
|
||||
"宿屋母娘",
|
||||
"美人姉妹",
|
||||
"人妻",
|
||||
"無口女",
|
||||
"バニーガール",
|
||||
"兵士の女",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"現在のモード",
|
||||
"探索者1の追う時間",
|
||||
"武器屋の親父1の追う時間",
|
||||
"武器屋の親父2の追う時間",
|
||||
"探索者2の追う時間",
|
||||
"探索者3の追う時間",
|
||||
"探索者4の追う時間",
|
||||
"探索者5の追う時間",
|
||||
"探索者6の追う時間",
|
||||
"子どもの逃げる時間",
|
||||
"女戦士の追う時間",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"versionId": 35731070,
|
||||
"victoryMe": {
|
||||
"name": "Victory1",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 90
|
||||
},
|
||||
"weaponTypes": [
|
||||
"",
|
||||
"短剣",
|
||||
"剣",
|
||||
"フレイル",
|
||||
"斧",
|
||||
"ムチ",
|
||||
"杖",
|
||||
"弓",
|
||||
"クロスボウ",
|
||||
"銃",
|
||||
"爪",
|
||||
"グローブ",
|
||||
"槍"
|
||||
],
|
||||
"windowTone": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
]
|
||||
}
|
||||
49269
www/data/Tilesets.json
Normal file
49269
www/data/Tilesets.json
Normal file
File diff suppressed because it is too large
Load diff
134
www/data/Troops.json
Normal file
134
www/data/Troops.json
Normal file
|
|
@ -0,0 +1,134 @@
|
|||
[
|
||||
null,
|
||||
{
|
||||
"id": 1,
|
||||
"members": [
|
||||
{
|
||||
"enemyId": 1,
|
||||
"x": 408,
|
||||
"y": 436,
|
||||
"hidden": false
|
||||
}
|
||||
],
|
||||
"name": "a",
|
||||
"pages": [
|
||||
{
|
||||
"conditions": {
|
||||
"actorHp": 50,
|
||||
"actorId": 1,
|
||||
"actorValid": false,
|
||||
"enemyHp": 50,
|
||||
"enemyIndex": 0,
|
||||
"enemyValid": false,
|
||||
"switchId": 1,
|
||||
"switchValid": false,
|
||||
"turnA": 0,
|
||||
"turnB": 0,
|
||||
"turnEnding": false,
|
||||
"turnValid": false
|
||||
},
|
||||
"list": [
|
||||
{
|
||||
"code": 0,
|
||||
"indent": 0,
|
||||
"parameters": []
|
||||
}
|
||||
],
|
||||
"span": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"members": [],
|
||||
"name": "",
|
||||
"pages": [
|
||||
{
|
||||
"conditions": {
|
||||
"actorHp": 50,
|
||||
"actorId": 1,
|
||||
"actorValid": false,
|
||||
"enemyHp": 50,
|
||||
"enemyIndex": 0,
|
||||
"enemyValid": false,
|
||||
"switchId": 1,
|
||||
"switchValid": false,
|
||||
"turnA": 0,
|
||||
"turnB": 0,
|
||||
"turnEnding": false,
|
||||
"turnValid": false
|
||||
},
|
||||
"list": [
|
||||
{
|
||||
"code": 0,
|
||||
"indent": 0,
|
||||
"parameters": []
|
||||
}
|
||||
],
|
||||
"span": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"members": [],
|
||||
"name": "",
|
||||
"pages": [
|
||||
{
|
||||
"conditions": {
|
||||
"actorHp": 50,
|
||||
"actorId": 1,
|
||||
"actorValid": false,
|
||||
"enemyHp": 50,
|
||||
"enemyIndex": 0,
|
||||
"enemyValid": false,
|
||||
"switchId": 1,
|
||||
"switchValid": false,
|
||||
"turnA": 0,
|
||||
"turnB": 0,
|
||||
"turnEnding": false,
|
||||
"turnValid": false
|
||||
},
|
||||
"list": [
|
||||
{
|
||||
"code": 0,
|
||||
"indent": 0,
|
||||
"parameters": []
|
||||
}
|
||||
],
|
||||
"span": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"members": [],
|
||||
"name": "",
|
||||
"pages": [
|
||||
{
|
||||
"conditions": {
|
||||
"actorHp": 50,
|
||||
"actorId": 1,
|
||||
"actorValid": false,
|
||||
"enemyHp": 50,
|
||||
"enemyIndex": 0,
|
||||
"enemyValid": false,
|
||||
"switchId": 1,
|
||||
"switchValid": false,
|
||||
"turnA": 0,
|
||||
"turnB": 0,
|
||||
"turnEnding": false,
|
||||
"turnValid": false
|
||||
},
|
||||
"list": [
|
||||
{
|
||||
"code": 0,
|
||||
"indent": 0,
|
||||
"parameters": []
|
||||
}
|
||||
],
|
||||
"span": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
663
www/data/Weapons.json
Normal file
663
www/data/Weapons.json
Normal file
|
|
@ -0,0 +1,663 @@
|
|||
[
|
||||
null,
|
||||
{
|
||||
"id": 1,
|
||||
"animationId": 6,
|
||||
"description": "",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 97,
|
||||
"name": "剣",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 500,
|
||||
"wtypeId": 2
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"animationId": 6,
|
||||
"description": "",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 99,
|
||||
"name": "斧",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 500,
|
||||
"wtypeId": 4
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"animationId": 1,
|
||||
"description": "",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 101,
|
||||
"name": "杖",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 500,
|
||||
"wtypeId": 6
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"animationId": 11,
|
||||
"description": "",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 102,
|
||||
"name": "弓",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 500,
|
||||
"wtypeId": 7
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"animationId": 6,
|
||||
"description": "",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 97,
|
||||
"name": "上質な剣",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 500,
|
||||
"wtypeId": 2
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"animationId": 1,
|
||||
"description": "",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 101,
|
||||
"name": "聖なる杖",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 500,
|
||||
"wtypeId": 6
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"animationId": 1,
|
||||
"description": "",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 101,
|
||||
"name": "魔術の杖",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 500,
|
||||
"wtypeId": 6
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"animationId": 0,
|
||||
"description": "",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 0,
|
||||
"name": "",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0,
|
||||
"wtypeId": 0
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"animationId": 0,
|
||||
"description": "",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 0,
|
||||
"name": "",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0,
|
||||
"wtypeId": 0
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"animationId": 0,
|
||||
"description": "",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 0,
|
||||
"name": "",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0,
|
||||
"wtypeId": 0
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"animationId": 0,
|
||||
"description": "",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 0,
|
||||
"name": "",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0,
|
||||
"wtypeId": 0
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"animationId": 0,
|
||||
"description": "",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 0,
|
||||
"name": "",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0,
|
||||
"wtypeId": 0
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"animationId": 0,
|
||||
"description": "",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 0,
|
||||
"name": "",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0,
|
||||
"wtypeId": 0
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"animationId": 0,
|
||||
"description": "",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 0,
|
||||
"name": "",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0,
|
||||
"wtypeId": 0
|
||||
},
|
||||
{
|
||||
"id": 15,
|
||||
"animationId": 0,
|
||||
"description": "",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 0,
|
||||
"name": "",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0,
|
||||
"wtypeId": 0
|
||||
},
|
||||
{
|
||||
"id": 16,
|
||||
"animationId": 0,
|
||||
"description": "",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 0,
|
||||
"name": "",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0,
|
||||
"wtypeId": 0
|
||||
},
|
||||
{
|
||||
"id": 17,
|
||||
"animationId": 0,
|
||||
"description": "",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 0,
|
||||
"name": "",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0,
|
||||
"wtypeId": 0
|
||||
},
|
||||
{
|
||||
"id": 18,
|
||||
"animationId": 0,
|
||||
"description": "",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 0,
|
||||
"name": "",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0,
|
||||
"wtypeId": 0
|
||||
},
|
||||
{
|
||||
"id": 19,
|
||||
"animationId": 0,
|
||||
"description": "",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 0,
|
||||
"name": "",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0,
|
||||
"wtypeId": 0
|
||||
},
|
||||
{
|
||||
"id": 20,
|
||||
"animationId": 0,
|
||||
"description": "",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 0,
|
||||
"name": "",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0,
|
||||
"wtypeId": 0
|
||||
}
|
||||
]
|
||||
445
www/js/libs/fpsmeter.js
Normal file
445
www/js/libs/fpsmeter.js
Normal file
|
|
@ -0,0 +1,445 @@
|
|||
/*! FPSMeter 0.3.1 - 9th May 2013 | https://github.com/Darsain/fpsmeter */
|
||||
(function (m, j) {
|
||||
function s(a, e) {
|
||||
for (var g in e)
|
||||
try {
|
||||
a.style[g] = e[g];
|
||||
} catch (j) {}
|
||||
return a;
|
||||
}
|
||||
function H(a) {
|
||||
return null == a
|
||||
? String(a)
|
||||
: "object" === typeof a || "function" === typeof a
|
||||
? Object.prototype.toString
|
||||
.call(a)
|
||||
.match(/\s([a-z]+)/i)[1]
|
||||
.toLowerCase() || "object"
|
||||
: typeof a;
|
||||
}
|
||||
function R(a, e) {
|
||||
if ("array" !== H(e)) return -1;
|
||||
if (e.indexOf) return e.indexOf(a);
|
||||
for (var g = 0, j = e.length; g < j; g++) if (e[g] === a) return g;
|
||||
return -1;
|
||||
}
|
||||
function I() {
|
||||
var a = arguments,
|
||||
e;
|
||||
for (e in a[1])
|
||||
if (a[1].hasOwnProperty(e))
|
||||
switch (H(a[1][e])) {
|
||||
case "object":
|
||||
a[0][e] = I({}, a[0][e], a[1][e]);
|
||||
break;
|
||||
case "array":
|
||||
a[0][e] = a[1][e].slice(0);
|
||||
break;
|
||||
default:
|
||||
a[0][e] = a[1][e];
|
||||
}
|
||||
return 2 < a.length
|
||||
? I.apply(null, [a[0]].concat(Array.prototype.slice.call(a, 2)))
|
||||
: a[0];
|
||||
}
|
||||
function N(a) {
|
||||
a = Math.round(255 * a).toString(16);
|
||||
return 1 === a.length ? "0" + a : a;
|
||||
}
|
||||
function S(a, e, g, j) {
|
||||
if (a.addEventListener)
|
||||
a[j ? "removeEventListener" : "addEventListener"](e, g, !1);
|
||||
else if (a.attachEvent) a[j ? "detachEvent" : "attachEvent"]("on" + e, g);
|
||||
}
|
||||
function D(a, e) {
|
||||
function g(a, b, d, c) {
|
||||
return y[0 | a][Math.round(Math.min(((b - d) / (c - d)) * J, J))];
|
||||
}
|
||||
function r() {
|
||||
f.legend.fps !== q &&
|
||||
((f.legend.fps = q), (f.legend[T] = q ? "FPS" : "ms"));
|
||||
K = q ? b.fps : b.duration;
|
||||
f.count[T] = 999 < K ? "999+" : K.toFixed(99 < K ? 0 : d.decimals);
|
||||
}
|
||||
function m() {
|
||||
z = A();
|
||||
L < z - d.threshold &&
|
||||
((b.fps -= b.fps / Math.max(1, (60 * d.smoothing) / d.interval)),
|
||||
(b.duration = 1e3 / b.fps));
|
||||
for (c = d.history; c--; )
|
||||
(E[c] = 0 === c ? b.fps : E[c - 1]),
|
||||
(F[c] = 0 === c ? b.duration : F[c - 1]);
|
||||
r();
|
||||
if (d.heat) {
|
||||
if (w.length)
|
||||
for (c = w.length; c--; )
|
||||
w[c].el.style[h[w[c].name].heatOn] = q
|
||||
? g(h[w[c].name].heatmap, b.fps, 0, d.maxFps)
|
||||
: g(h[w[c].name].heatmap, b.duration, d.threshold, 0);
|
||||
if (f.graph && h.column.heatOn)
|
||||
for (c = u.length; c--; )
|
||||
u[c].style[h.column.heatOn] = q
|
||||
? g(h.column.heatmap, E[c], 0, d.maxFps)
|
||||
: g(h.column.heatmap, F[c], d.threshold, 0);
|
||||
}
|
||||
if (f.graph)
|
||||
for (p = 0; p < d.history; p++)
|
||||
u[p].style.height =
|
||||
(q
|
||||
? E[p]
|
||||
? Math.round((O / d.maxFps) * Math.min(E[p], d.maxFps))
|
||||
: 0
|
||||
: F[p]
|
||||
? Math.round((O / d.threshold) * Math.min(F[p], d.threshold))
|
||||
: 0) + "px";
|
||||
}
|
||||
function k() {
|
||||
20 > d.interval
|
||||
? ((x = M(k)), m())
|
||||
: ((x = setTimeout(k, d.interval)), (P = M(m)));
|
||||
}
|
||||
function G(a) {
|
||||
a = a || window.event;
|
||||
a.preventDefault
|
||||
? (a.preventDefault(), a.stopPropagation())
|
||||
: ((a.returnValue = !1), (a.cancelBubble = !0));
|
||||
b.toggle();
|
||||
}
|
||||
function U() {
|
||||
d.toggleOn && S(f.container, d.toggleOn, G, 1);
|
||||
a.removeChild(f.container);
|
||||
}
|
||||
function V() {
|
||||
f.container && U();
|
||||
h = D.theme[d.theme];
|
||||
y = h.compiledHeatmaps || [];
|
||||
if (!y.length && h.heatmaps.length) {
|
||||
for (p = 0; p < h.heatmaps.length; p++) {
|
||||
y[p] = [];
|
||||
for (c = 0; c <= J; c++) {
|
||||
var b = y[p],
|
||||
e = c,
|
||||
g;
|
||||
g = (0.33 / J) * c;
|
||||
var j = h.heatmaps[p].saturation,
|
||||
m = h.heatmaps[p].lightness,
|
||||
n = void 0,
|
||||
k = void 0,
|
||||
l = void 0,
|
||||
t = (l = void 0),
|
||||
v = (n = k = void 0),
|
||||
v = void 0,
|
||||
l = 0.5 >= m ? m * (1 + j) : m + j - m * j;
|
||||
0 === l
|
||||
? (g = "#000")
|
||||
: ((t = 2 * m - l),
|
||||
(k = (l - t) / l),
|
||||
(g *= 6),
|
||||
(n = Math.floor(g)),
|
||||
(v = g - n),
|
||||
(v *= l * k),
|
||||
0 === n || 6 === n
|
||||
? ((n = l), (k = t + v), (l = t))
|
||||
: 1 === n
|
||||
? ((n = l - v), (k = l), (l = t))
|
||||
: 2 === n
|
||||
? ((n = t), (k = l), (l = t + v))
|
||||
: 3 === n
|
||||
? ((n = t), (k = l - v))
|
||||
: 4 === n
|
||||
? ((n = t + v), (k = t))
|
||||
: ((n = l), (k = t), (l -= v)),
|
||||
(g = "#" + N(n) + N(k) + N(l)));
|
||||
b[e] = g;
|
||||
}
|
||||
}
|
||||
h.compiledHeatmaps = y;
|
||||
}
|
||||
f.container = s(document.createElement("div"), h.container);
|
||||
f.count = f.container.appendChild(
|
||||
s(document.createElement("div"), h.count)
|
||||
);
|
||||
f.legend = f.container.appendChild(
|
||||
s(document.createElement("div"), h.legend)
|
||||
);
|
||||
f.graph = d.graph
|
||||
? f.container.appendChild(s(document.createElement("div"), h.graph))
|
||||
: 0;
|
||||
w.length = 0;
|
||||
for (var q in f) f[q] && h[q].heatOn && w.push({ name: q, el: f[q] });
|
||||
u.length = 0;
|
||||
if (f.graph) {
|
||||
f.graph.style.width =
|
||||
d.history * h.column.width +
|
||||
(d.history - 1) * h.column.spacing +
|
||||
"px";
|
||||
for (c = 0; c < d.history; c++)
|
||||
(u[c] = f.graph.appendChild(
|
||||
s(document.createElement("div"), h.column)
|
||||
)),
|
||||
(u[c].style.position = "absolute"),
|
||||
(u[c].style.bottom = 0),
|
||||
(u[c].style.right =
|
||||
c * h.column.width + c * h.column.spacing + "px"),
|
||||
(u[c].style.width = h.column.width + "px"),
|
||||
(u[c].style.height = "0px");
|
||||
}
|
||||
s(f.container, d);
|
||||
r();
|
||||
a.appendChild(f.container);
|
||||
f.graph && (O = f.graph.clientHeight);
|
||||
d.toggleOn &&
|
||||
("click" === d.toggleOn && (f.container.style.cursor = "pointer"),
|
||||
S(f.container, d.toggleOn, G));
|
||||
}
|
||||
"object" === H(a) && a.nodeType === j && ((e = a), (a = document.body));
|
||||
a || (a = document.body);
|
||||
var b = this,
|
||||
d = I({}, D.defaults, e || {}),
|
||||
f = {},
|
||||
u = [],
|
||||
h,
|
||||
y,
|
||||
J = 100,
|
||||
w = [],
|
||||
W = 0,
|
||||
B = d.threshold,
|
||||
Q = 0,
|
||||
L = A() - B,
|
||||
z,
|
||||
E = [],
|
||||
F = [],
|
||||
x,
|
||||
P,
|
||||
q = "fps" === d.show,
|
||||
O,
|
||||
K,
|
||||
c,
|
||||
p;
|
||||
b.options = d;
|
||||
b.fps = 0;
|
||||
b.duration = 0;
|
||||
b.isPaused = 0;
|
||||
b.tickStart = function () {
|
||||
Q = A();
|
||||
};
|
||||
b.tick = function () {
|
||||
z = A();
|
||||
W = z - L;
|
||||
B += (W - B) / d.smoothing;
|
||||
b.fps = 1e3 / B;
|
||||
b.duration = Q < L ? B : z - Q;
|
||||
L = z;
|
||||
};
|
||||
b.pause = function () {
|
||||
x && ((b.isPaused = 1), clearTimeout(x), C(x), C(P), (x = P = 0));
|
||||
return b;
|
||||
};
|
||||
b.resume = function () {
|
||||
x || ((b.isPaused = 0), k());
|
||||
return b;
|
||||
};
|
||||
b.set = function (a, c) {
|
||||
d[a] = c;
|
||||
q = "fps" === d.show;
|
||||
-1 !== R(a, X) && V();
|
||||
-1 !== R(a, Y) && s(f.container, d);
|
||||
return b;
|
||||
};
|
||||
b.showDuration = function () {
|
||||
b.set("show", "ms");
|
||||
return b;
|
||||
};
|
||||
b.showFps = function () {
|
||||
b.set("show", "fps");
|
||||
return b;
|
||||
};
|
||||
b.toggle = function () {
|
||||
b.set("show", q ? "ms" : "fps");
|
||||
return b;
|
||||
};
|
||||
b.hide = function () {
|
||||
b.pause();
|
||||
f.container.style.display = "none";
|
||||
return b;
|
||||
};
|
||||
b.show = function () {
|
||||
b.resume();
|
||||
f.container.style.display = "block";
|
||||
return b;
|
||||
};
|
||||
b.destroy = function () {
|
||||
b.pause();
|
||||
U();
|
||||
b.tick = b.tickStart = function () {};
|
||||
};
|
||||
V();
|
||||
k();
|
||||
}
|
||||
var A,
|
||||
r = m.performance;
|
||||
A =
|
||||
r && (r.now || r.webkitNow)
|
||||
? r[r.now ? "now" : "webkitNow"].bind(r)
|
||||
: function () {
|
||||
return +new Date();
|
||||
};
|
||||
for (
|
||||
var C = m.cancelAnimationFrame || m.cancelRequestAnimationFrame,
|
||||
M = m.requestAnimationFrame,
|
||||
r = ["moz", "webkit", "o"],
|
||||
G = 0,
|
||||
k = 0,
|
||||
Z = r.length;
|
||||
k < Z && !C;
|
||||
++k
|
||||
)
|
||||
M =
|
||||
(C =
|
||||
m[r[k] + "CancelAnimationFrame"] ||
|
||||
m[r[k] + "CancelRequestAnimationFrame"]) &&
|
||||
m[r[k] + "RequestAnimationFrame"];
|
||||
C ||
|
||||
((M = function (a) {
|
||||
var e = A(),
|
||||
g = Math.max(0, 16 - (e - G));
|
||||
G = e + g;
|
||||
return m.setTimeout(function () {
|
||||
a(e + g);
|
||||
}, g);
|
||||
}),
|
||||
(C = function (a) {
|
||||
clearTimeout(a);
|
||||
}));
|
||||
var T =
|
||||
"string" === H(document.createElement("div").textContent)
|
||||
? "textContent"
|
||||
: "innerText";
|
||||
D.extend = I;
|
||||
window.FPSMeter = D;
|
||||
D.defaults = {
|
||||
interval: 100,
|
||||
smoothing: 10,
|
||||
show: "fps",
|
||||
toggleOn: "click",
|
||||
decimals: 1,
|
||||
maxFps: 60,
|
||||
threshold: 100,
|
||||
position: "absolute",
|
||||
zIndex: 10,
|
||||
left: "5px",
|
||||
top: "5px",
|
||||
right: "auto",
|
||||
bottom: "auto",
|
||||
margin: "0 0 0 0",
|
||||
theme: "dark",
|
||||
heat: 0,
|
||||
graph: 0,
|
||||
history: 20,
|
||||
};
|
||||
var X = ["toggleOn", "theme", "heat", "graph", "history"],
|
||||
Y = "position zIndex left top right bottom margin".split(" ");
|
||||
})(window);
|
||||
(function (m, j) {
|
||||
j.theme = {};
|
||||
var s = (j.theme.base = {
|
||||
heatmaps: [],
|
||||
container: {
|
||||
heatOn: null,
|
||||
heatmap: null,
|
||||
padding: "5px",
|
||||
minWidth: "95px",
|
||||
height: "30px",
|
||||
lineHeight: "30px",
|
||||
textAlign: "right",
|
||||
textShadow: "none",
|
||||
},
|
||||
count: {
|
||||
heatOn: null,
|
||||
heatmap: null,
|
||||
position: "absolute",
|
||||
top: 0,
|
||||
right: 0,
|
||||
padding: "5px 10px",
|
||||
height: "30px",
|
||||
fontSize: "24px",
|
||||
fontFamily: "Consolas, Andale Mono, monospace",
|
||||
zIndex: 2,
|
||||
},
|
||||
legend: {
|
||||
heatOn: null,
|
||||
heatmap: null,
|
||||
position: "absolute",
|
||||
top: 0,
|
||||
left: 0,
|
||||
padding: "5px 10px",
|
||||
height: "30px",
|
||||
fontSize: "12px",
|
||||
lineHeight: "32px",
|
||||
fontFamily: "sans-serif",
|
||||
textAlign: "left",
|
||||
zIndex: 2,
|
||||
},
|
||||
graph: {
|
||||
heatOn: null,
|
||||
heatmap: null,
|
||||
position: "relative",
|
||||
boxSizing: "padding-box",
|
||||
MozBoxSizing: "padding-box",
|
||||
height: "100%",
|
||||
zIndex: 1,
|
||||
},
|
||||
column: { width: 4, spacing: 1, heatOn: null, heatmap: null },
|
||||
});
|
||||
j.theme.dark = j.extend({}, s, {
|
||||
heatmaps: [{ saturation: 0.8, lightness: 0.8 }],
|
||||
container: {
|
||||
background: "#222",
|
||||
color: "#fff",
|
||||
border: "1px solid #1a1a1a",
|
||||
textShadow: "1px 1px 0 #222",
|
||||
},
|
||||
count: { heatOn: "color" },
|
||||
column: { background: "#3f3f3f" },
|
||||
});
|
||||
j.theme.light = j.extend({}, s, {
|
||||
heatmaps: [{ saturation: 0.5, lightness: 0.5 }],
|
||||
container: {
|
||||
color: "#666",
|
||||
background: "#fff",
|
||||
textShadow:
|
||||
"1px 1px 0 rgba(255,255,255,.5), -1px -1px 0 rgba(255,255,255,.5)",
|
||||
boxShadow: "0 0 0 1px rgba(0,0,0,.1)",
|
||||
},
|
||||
count: { heatOn: "color" },
|
||||
column: { background: "#eaeaea" },
|
||||
});
|
||||
j.theme.colorful = j.extend({}, s, {
|
||||
heatmaps: [{ saturation: 0.5, lightness: 0.6 }],
|
||||
container: {
|
||||
heatOn: "backgroundColor",
|
||||
background: "#888",
|
||||
color: "#fff",
|
||||
textShadow: "1px 1px 0 rgba(0,0,0,.2)",
|
||||
boxShadow: "0 0 0 1px rgba(0,0,0,.1)",
|
||||
},
|
||||
column: { background: "#777", backgroundColor: "rgba(0,0,0,.2)" },
|
||||
});
|
||||
j.theme.transparent = j.extend({}, s, {
|
||||
heatmaps: [{ saturation: 0.8, lightness: 0.5 }],
|
||||
container: {
|
||||
padding: 0,
|
||||
color: "#fff",
|
||||
textShadow: "1px 1px 0 rgba(0,0,0,.5)",
|
||||
},
|
||||
count: { padding: "0 5px", height: "40px", lineHeight: "40px" },
|
||||
legend: { padding: "0 5px", height: "40px", lineHeight: "42px" },
|
||||
graph: { height: "40px" },
|
||||
column: {
|
||||
width: 5,
|
||||
background: "#999",
|
||||
heatOn: "backgroundColor",
|
||||
opacity: 0.5,
|
||||
},
|
||||
});
|
||||
})(window, FPSMeter);
|
||||
207
www/js/libs/iphone-inline-video.browser.js
Normal file
207
www/js/libs/iphone-inline-video.browser.js
Normal file
|
|
@ -0,0 +1,207 @@
|
|||
/*! npm.im/iphone-inline-video */
|
||||
var makeVideoPlayableInline = (function () {
|
||||
"use strict"; /*! npm.im/intervalometer */
|
||||
function e(e, n, r, i) {
|
||||
function t(r) {
|
||||
(d = n(t, i)), e(r - (a || r)), (a = r);
|
||||
}
|
||||
var d, a;
|
||||
return {
|
||||
start: function () {
|
||||
d || t(0);
|
||||
},
|
||||
stop: function () {
|
||||
r(d), (d = null), (a = 0);
|
||||
},
|
||||
};
|
||||
}
|
||||
function n(n) {
|
||||
return e(n, requestAnimationFrame, cancelAnimationFrame);
|
||||
}
|
||||
function r(e, n, r, i) {
|
||||
function t(n) {
|
||||
Boolean(e[r]) === Boolean(i) && n.stopImmediatePropagation(), delete e[r];
|
||||
}
|
||||
return e.addEventListener(n, t, !1), t;
|
||||
}
|
||||
function i(e, n, r, i) {
|
||||
function t() {
|
||||
return r[n];
|
||||
}
|
||||
function d(e) {
|
||||
r[n] = e;
|
||||
}
|
||||
i && d(e[n]), Object.defineProperty(e, n, { get: t, set: d });
|
||||
}
|
||||
function t(e, n, r) {
|
||||
r.addEventListener(n, function () {
|
||||
return e.dispatchEvent(new Event(n));
|
||||
});
|
||||
}
|
||||
function d(e, n) {
|
||||
Promise.resolve().then(function () {
|
||||
e.dispatchEvent(new Event(n));
|
||||
});
|
||||
}
|
||||
function a(e) {
|
||||
var n = new Audio();
|
||||
return (
|
||||
t(e, "play", n),
|
||||
t(e, "playing", n),
|
||||
t(e, "pause", n),
|
||||
(n.crossOrigin = e.crossOrigin),
|
||||
(n.src = e.src || e.currentSrc || "data:"),
|
||||
n
|
||||
);
|
||||
}
|
||||
function o(e, n, r) {
|
||||
(m || 0) + 200 < Date.now() && ((e[g] = !0), (m = Date.now())),
|
||||
r || (e.currentTime = n),
|
||||
(A[++k % 3] = (100 * n) | 0);
|
||||
}
|
||||
function u(e) {
|
||||
return e.driver.currentTime >= e.video.duration;
|
||||
}
|
||||
function s(e) {
|
||||
var n = this;
|
||||
n.video.readyState >= n.video.HAVE_FUTURE_DATA
|
||||
? (n.hasAudio ||
|
||||
((n.driver.currentTime =
|
||||
n.video.currentTime + (e * n.video.playbackRate) / 1e3),
|
||||
n.video.loop && u(n) && (n.driver.currentTime = 0)),
|
||||
o(n.video, n.driver.currentTime))
|
||||
: n.video.networkState !== n.video.NETWORK_IDLE ||
|
||||
n.video.buffered.length ||
|
||||
n.video.load(),
|
||||
n.video.ended && (delete n.video[g], n.video.pause(!0));
|
||||
}
|
||||
function c() {
|
||||
var e = this,
|
||||
n = e[b];
|
||||
return e.webkitDisplayingFullscreen
|
||||
? void e[E]()
|
||||
: ("data:" !== n.driver.src &&
|
||||
n.driver.src !== e.src &&
|
||||
(o(e, 0, !0), (n.driver.src = e.src)),
|
||||
void (
|
||||
e.paused &&
|
||||
((n.paused = !1),
|
||||
e.buffered.length || e.load(),
|
||||
n.driver.play(),
|
||||
n.updater.start(),
|
||||
n.hasAudio ||
|
||||
(d(e, "play"),
|
||||
n.video.readyState >= n.video.HAVE_ENOUGH_DATA && d(e, "playing")))
|
||||
));
|
||||
}
|
||||
function v(e) {
|
||||
var n = this,
|
||||
r = n[b];
|
||||
r.driver.pause(),
|
||||
r.updater.stop(),
|
||||
n.webkitDisplayingFullscreen && n[T](),
|
||||
(r.paused && !e) ||
|
||||
((r.paused = !0),
|
||||
r.hasAudio || d(n, "pause"),
|
||||
n.ended && ((n[g] = !0), d(n, "ended")));
|
||||
}
|
||||
function p(e, r) {
|
||||
var i = (e[b] = {});
|
||||
(i.paused = !0),
|
||||
(i.hasAudio = r),
|
||||
(i.video = e),
|
||||
(i.updater = n(s.bind(i))),
|
||||
r
|
||||
? (i.driver = a(e))
|
||||
: (e.addEventListener("canplay", function () {
|
||||
e.paused || d(e, "playing");
|
||||
}),
|
||||
(i.driver = {
|
||||
src: e.src || e.currentSrc || "data:",
|
||||
muted: !0,
|
||||
paused: !0,
|
||||
pause: function () {
|
||||
i.driver.paused = !0;
|
||||
},
|
||||
play: function () {
|
||||
(i.driver.paused = !1), u(i) && o(e, 0);
|
||||
},
|
||||
get ended() {
|
||||
return u(i);
|
||||
},
|
||||
})),
|
||||
e.addEventListener(
|
||||
"emptied",
|
||||
function () {
|
||||
var n = !i.driver.src || "data:" === i.driver.src;
|
||||
i.driver.src &&
|
||||
i.driver.src !== e.src &&
|
||||
(o(e, 0, !0),
|
||||
(i.driver.src = e.src),
|
||||
n ? i.driver.play() : i.updater.stop());
|
||||
},
|
||||
!1
|
||||
),
|
||||
e.addEventListener("webkitbeginfullscreen", function () {
|
||||
e.paused
|
||||
? r && !i.driver.buffered.length && i.driver.load()
|
||||
: (e.pause(), e[E]());
|
||||
}),
|
||||
r &&
|
||||
(e.addEventListener("webkitendfullscreen", function () {
|
||||
i.driver.currentTime = e.currentTime;
|
||||
}),
|
||||
e.addEventListener("seeking", function () {
|
||||
A.indexOf((100 * e.currentTime) | 0) < 0 &&
|
||||
(i.driver.currentTime = e.currentTime);
|
||||
}));
|
||||
}
|
||||
function l(e) {
|
||||
var n = e[b];
|
||||
(e[E] = e.play),
|
||||
(e[T] = e.pause),
|
||||
(e.play = c),
|
||||
(e.pause = v),
|
||||
i(e, "paused", n.driver),
|
||||
i(e, "muted", n.driver, !0),
|
||||
i(e, "playbackRate", n.driver, !0),
|
||||
i(e, "ended", n.driver),
|
||||
i(e, "loop", n.driver, !0),
|
||||
r(e, "seeking"),
|
||||
r(e, "seeked"),
|
||||
r(e, "timeupdate", g, !1),
|
||||
r(e, "ended", g, !1);
|
||||
}
|
||||
function f(e, n, r) {
|
||||
void 0 === n && (n = !0),
|
||||
void 0 === r && (r = !0),
|
||||
(r && !h) ||
|
||||
e[b] ||
|
||||
(p(e, n),
|
||||
l(e),
|
||||
e.classList.add("IIV"),
|
||||
!n && e.autoplay && e.play(),
|
||||
/iPhone|iPod|iPad/.test(navigator.platform) ||
|
||||
console.warn(
|
||||
"iphone-inline-video is not guaranteed to work in emulated environments"
|
||||
));
|
||||
}
|
||||
var m,
|
||||
y =
|
||||
"undefined" == typeof Symbol
|
||||
? function (e) {
|
||||
return "@" + (e || "@") + Math.random();
|
||||
}
|
||||
: Symbol,
|
||||
h =
|
||||
"object-fit" in document.head.style &&
|
||||
/iPhone|iPod/i.test(navigator.userAgent) &&
|
||||
!matchMedia("(-webkit-video-playable-inline)").matches,
|
||||
b = y(),
|
||||
g = y(),
|
||||
E = y("nativeplay"),
|
||||
T = y("nativepause"),
|
||||
A = [],
|
||||
k = 0;
|
||||
return (f.isWhitelisted = h), f;
|
||||
})();
|
||||
629
www/js/libs/lz-string.js
Normal file
629
www/js/libs/lz-string.js
Normal file
|
|
@ -0,0 +1,629 @@
|
|||
var LZString = {
|
||||
_keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
|
||||
_f: String.fromCharCode,
|
||||
compressToBase64: function (e) {
|
||||
if (e == null) return "";
|
||||
var t = "";
|
||||
var n, r, i, s, o, u, a;
|
||||
var f = 0;
|
||||
e = LZString.compress(e);
|
||||
while (f < e.length * 2) {
|
||||
if (f % 2 == 0) {
|
||||
n = e.charCodeAt(f / 2) >> 8;
|
||||
r = e.charCodeAt(f / 2) & 255;
|
||||
if (f / 2 + 1 < e.length) i = e.charCodeAt(f / 2 + 1) >> 8;
|
||||
else i = NaN;
|
||||
} else {
|
||||
n = e.charCodeAt((f - 1) / 2) & 255;
|
||||
if ((f + 1) / 2 < e.length) {
|
||||
r = e.charCodeAt((f + 1) / 2) >> 8;
|
||||
i = e.charCodeAt((f + 1) / 2) & 255;
|
||||
} else r = i = NaN;
|
||||
}
|
||||
f += 3;
|
||||
s = n >> 2;
|
||||
o = ((n & 3) << 4) | (r >> 4);
|
||||
u = ((r & 15) << 2) | (i >> 6);
|
||||
a = i & 63;
|
||||
if (isNaN(r)) {
|
||||
u = a = 64;
|
||||
} else if (isNaN(i)) {
|
||||
a = 64;
|
||||
}
|
||||
t =
|
||||
t +
|
||||
LZString._keyStr.charAt(s) +
|
||||
LZString._keyStr.charAt(o) +
|
||||
LZString._keyStr.charAt(u) +
|
||||
LZString._keyStr.charAt(a);
|
||||
}
|
||||
return t;
|
||||
},
|
||||
decompressFromBase64: function (e) {
|
||||
if (e == null) return "";
|
||||
var t = "",
|
||||
n = 0,
|
||||
r,
|
||||
i,
|
||||
s,
|
||||
o,
|
||||
u,
|
||||
a,
|
||||
f,
|
||||
l,
|
||||
c = 0,
|
||||
h = LZString._f;
|
||||
e = e.replace(/[^A-Za-z0-9\+\/\=]/g, "");
|
||||
while (c < e.length) {
|
||||
u = LZString._keyStr.indexOf(e.charAt(c++));
|
||||
a = LZString._keyStr.indexOf(e.charAt(c++));
|
||||
f = LZString._keyStr.indexOf(e.charAt(c++));
|
||||
l = LZString._keyStr.indexOf(e.charAt(c++));
|
||||
i = (u << 2) | (a >> 4);
|
||||
s = ((a & 15) << 4) | (f >> 2);
|
||||
o = ((f & 3) << 6) | l;
|
||||
if (n % 2 == 0) {
|
||||
r = i << 8;
|
||||
if (f != 64) {
|
||||
t += h(r | s);
|
||||
}
|
||||
if (l != 64) {
|
||||
r = o << 8;
|
||||
}
|
||||
} else {
|
||||
t = t + h(r | i);
|
||||
if (f != 64) {
|
||||
r = s << 8;
|
||||
}
|
||||
if (l != 64) {
|
||||
t += h(r | o);
|
||||
}
|
||||
}
|
||||
n += 3;
|
||||
}
|
||||
return LZString.decompress(t);
|
||||
},
|
||||
compressToUTF16: function (e) {
|
||||
if (e == null) return "";
|
||||
var t = "",
|
||||
n,
|
||||
r,
|
||||
i,
|
||||
s = 0,
|
||||
o = LZString._f;
|
||||
e = LZString.compress(e);
|
||||
for (n = 0; n < e.length; n++) {
|
||||
r = e.charCodeAt(n);
|
||||
switch (s++) {
|
||||
case 0:
|
||||
t += o((r >> 1) + 32);
|
||||
i = (r & 1) << 14;
|
||||
break;
|
||||
case 1:
|
||||
t += o(i + (r >> 2) + 32);
|
||||
i = (r & 3) << 13;
|
||||
break;
|
||||
case 2:
|
||||
t += o(i + (r >> 3) + 32);
|
||||
i = (r & 7) << 12;
|
||||
break;
|
||||
case 3:
|
||||
t += o(i + (r >> 4) + 32);
|
||||
i = (r & 15) << 11;
|
||||
break;
|
||||
case 4:
|
||||
t += o(i + (r >> 5) + 32);
|
||||
i = (r & 31) << 10;
|
||||
break;
|
||||
case 5:
|
||||
t += o(i + (r >> 6) + 32);
|
||||
i = (r & 63) << 9;
|
||||
break;
|
||||
case 6:
|
||||
t += o(i + (r >> 7) + 32);
|
||||
i = (r & 127) << 8;
|
||||
break;
|
||||
case 7:
|
||||
t += o(i + (r >> 8) + 32);
|
||||
i = (r & 255) << 7;
|
||||
break;
|
||||
case 8:
|
||||
t += o(i + (r >> 9) + 32);
|
||||
i = (r & 511) << 6;
|
||||
break;
|
||||
case 9:
|
||||
t += o(i + (r >> 10) + 32);
|
||||
i = (r & 1023) << 5;
|
||||
break;
|
||||
case 10:
|
||||
t += o(i + (r >> 11) + 32);
|
||||
i = (r & 2047) << 4;
|
||||
break;
|
||||
case 11:
|
||||
t += o(i + (r >> 12) + 32);
|
||||
i = (r & 4095) << 3;
|
||||
break;
|
||||
case 12:
|
||||
t += o(i + (r >> 13) + 32);
|
||||
i = (r & 8191) << 2;
|
||||
break;
|
||||
case 13:
|
||||
t += o(i + (r >> 14) + 32);
|
||||
i = (r & 16383) << 1;
|
||||
break;
|
||||
case 14:
|
||||
t += o(i + (r >> 15) + 32, (r & 32767) + 32);
|
||||
s = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return t + o(i + 32);
|
||||
},
|
||||
decompressFromUTF16: function (e) {
|
||||
if (e == null) return "";
|
||||
var t = "",
|
||||
n,
|
||||
r,
|
||||
i = 0,
|
||||
s = 0,
|
||||
o = LZString._f;
|
||||
while (s < e.length) {
|
||||
r = e.charCodeAt(s) - 32;
|
||||
switch (i++) {
|
||||
case 0:
|
||||
n = r << 1;
|
||||
break;
|
||||
case 1:
|
||||
t += o(n | (r >> 14));
|
||||
n = (r & 16383) << 2;
|
||||
break;
|
||||
case 2:
|
||||
t += o(n | (r >> 13));
|
||||
n = (r & 8191) << 3;
|
||||
break;
|
||||
case 3:
|
||||
t += o(n | (r >> 12));
|
||||
n = (r & 4095) << 4;
|
||||
break;
|
||||
case 4:
|
||||
t += o(n | (r >> 11));
|
||||
n = (r & 2047) << 5;
|
||||
break;
|
||||
case 5:
|
||||
t += o(n | (r >> 10));
|
||||
n = (r & 1023) << 6;
|
||||
break;
|
||||
case 6:
|
||||
t += o(n | (r >> 9));
|
||||
n = (r & 511) << 7;
|
||||
break;
|
||||
case 7:
|
||||
t += o(n | (r >> 8));
|
||||
n = (r & 255) << 8;
|
||||
break;
|
||||
case 8:
|
||||
t += o(n | (r >> 7));
|
||||
n = (r & 127) << 9;
|
||||
break;
|
||||
case 9:
|
||||
t += o(n | (r >> 6));
|
||||
n = (r & 63) << 10;
|
||||
break;
|
||||
case 10:
|
||||
t += o(n | (r >> 5));
|
||||
n = (r & 31) << 11;
|
||||
break;
|
||||
case 11:
|
||||
t += o(n | (r >> 4));
|
||||
n = (r & 15) << 12;
|
||||
break;
|
||||
case 12:
|
||||
t += o(n | (r >> 3));
|
||||
n = (r & 7) << 13;
|
||||
break;
|
||||
case 13:
|
||||
t += o(n | (r >> 2));
|
||||
n = (r & 3) << 14;
|
||||
break;
|
||||
case 14:
|
||||
t += o(n | (r >> 1));
|
||||
n = (r & 1) << 15;
|
||||
break;
|
||||
case 15:
|
||||
t += o(n | r);
|
||||
i = 0;
|
||||
break;
|
||||
}
|
||||
s++;
|
||||
}
|
||||
return LZString.decompress(t);
|
||||
},
|
||||
compressToUint8Array: function (e) {
|
||||
var t = LZString.compress(e);
|
||||
var n = new Uint8Array(t.length * 2);
|
||||
for (var r = 0, i = t.length; r < i; r++) {
|
||||
var s = t.charCodeAt(r);
|
||||
n[r * 2] = s >>> 8;
|
||||
n[r * 2 + 1] = s % 256;
|
||||
}
|
||||
return n;
|
||||
},
|
||||
decompressFromUint8Array: function (e) {
|
||||
if (e === null || e === undefined) {
|
||||
return LZString.decompress(e);
|
||||
} else {
|
||||
var t = new Array(e.length / 2);
|
||||
for (var n = 0, r = t.length; n < r; n++) {
|
||||
t[n] = e[n * 2] * 256 + e[n * 2 + 1];
|
||||
}
|
||||
return LZString.decompress(String.fromCharCode.apply(null, t));
|
||||
}
|
||||
},
|
||||
compressToEncodedURIComponent: function (e) {
|
||||
return LZString.compressToBase64(e).replace(/=/g, "$").replace(/\//g, "-");
|
||||
},
|
||||
decompressFromEncodedURIComponent: function (e) {
|
||||
if (e) e = e.replace(/$/g, "=").replace(/-/g, "/");
|
||||
return LZString.decompressFromBase64(e);
|
||||
},
|
||||
compress: function (e) {
|
||||
if (e == null) return "";
|
||||
var t,
|
||||
n,
|
||||
r = {},
|
||||
i = {},
|
||||
s = "",
|
||||
o = "",
|
||||
u = "",
|
||||
a = 2,
|
||||
f = 3,
|
||||
l = 2,
|
||||
c = "",
|
||||
h = 0,
|
||||
p = 0,
|
||||
d,
|
||||
v = LZString._f;
|
||||
for (d = 0; d < e.length; d += 1) {
|
||||
s = e.charAt(d);
|
||||
if (!Object.prototype.hasOwnProperty.call(r, s)) {
|
||||
r[s] = f++;
|
||||
i[s] = true;
|
||||
}
|
||||
o = u + s;
|
||||
if (Object.prototype.hasOwnProperty.call(r, o)) {
|
||||
u = o;
|
||||
} else {
|
||||
if (Object.prototype.hasOwnProperty.call(i, u)) {
|
||||
if (u.charCodeAt(0) < 256) {
|
||||
for (t = 0; t < l; t++) {
|
||||
h = h << 1;
|
||||
if (p == 15) {
|
||||
p = 0;
|
||||
c += v(h);
|
||||
h = 0;
|
||||
} else {
|
||||
p++;
|
||||
}
|
||||
}
|
||||
n = u.charCodeAt(0);
|
||||
for (t = 0; t < 8; t++) {
|
||||
h = (h << 1) | (n & 1);
|
||||
if (p == 15) {
|
||||
p = 0;
|
||||
c += v(h);
|
||||
h = 0;
|
||||
} else {
|
||||
p++;
|
||||
}
|
||||
n = n >> 1;
|
||||
}
|
||||
} else {
|
||||
n = 1;
|
||||
for (t = 0; t < l; t++) {
|
||||
h = (h << 1) | n;
|
||||
if (p == 15) {
|
||||
p = 0;
|
||||
c += v(h);
|
||||
h = 0;
|
||||
} else {
|
||||
p++;
|
||||
}
|
||||
n = 0;
|
||||
}
|
||||
n = u.charCodeAt(0);
|
||||
for (t = 0; t < 16; t++) {
|
||||
h = (h << 1) | (n & 1);
|
||||
if (p == 15) {
|
||||
p = 0;
|
||||
c += v(h);
|
||||
h = 0;
|
||||
} else {
|
||||
p++;
|
||||
}
|
||||
n = n >> 1;
|
||||
}
|
||||
}
|
||||
a--;
|
||||
if (a == 0) {
|
||||
a = Math.pow(2, l);
|
||||
l++;
|
||||
}
|
||||
delete i[u];
|
||||
} else {
|
||||
n = r[u];
|
||||
for (t = 0; t < l; t++) {
|
||||
h = (h << 1) | (n & 1);
|
||||
if (p == 15) {
|
||||
p = 0;
|
||||
c += v(h);
|
||||
h = 0;
|
||||
} else {
|
||||
p++;
|
||||
}
|
||||
n = n >> 1;
|
||||
}
|
||||
}
|
||||
a--;
|
||||
if (a == 0) {
|
||||
a = Math.pow(2, l);
|
||||
l++;
|
||||
}
|
||||
r[o] = f++;
|
||||
u = String(s);
|
||||
}
|
||||
}
|
||||
if (u !== "") {
|
||||
if (Object.prototype.hasOwnProperty.call(i, u)) {
|
||||
if (u.charCodeAt(0) < 256) {
|
||||
for (t = 0; t < l; t++) {
|
||||
h = h << 1;
|
||||
if (p == 15) {
|
||||
p = 0;
|
||||
c += v(h);
|
||||
h = 0;
|
||||
} else {
|
||||
p++;
|
||||
}
|
||||
}
|
||||
n = u.charCodeAt(0);
|
||||
for (t = 0; t < 8; t++) {
|
||||
h = (h << 1) | (n & 1);
|
||||
if (p == 15) {
|
||||
p = 0;
|
||||
c += v(h);
|
||||
h = 0;
|
||||
} else {
|
||||
p++;
|
||||
}
|
||||
n = n >> 1;
|
||||
}
|
||||
} else {
|
||||
n = 1;
|
||||
for (t = 0; t < l; t++) {
|
||||
h = (h << 1) | n;
|
||||
if (p == 15) {
|
||||
p = 0;
|
||||
c += v(h);
|
||||
h = 0;
|
||||
} else {
|
||||
p++;
|
||||
}
|
||||
n = 0;
|
||||
}
|
||||
n = u.charCodeAt(0);
|
||||
for (t = 0; t < 16; t++) {
|
||||
h = (h << 1) | (n & 1);
|
||||
if (p == 15) {
|
||||
p = 0;
|
||||
c += v(h);
|
||||
h = 0;
|
||||
} else {
|
||||
p++;
|
||||
}
|
||||
n = n >> 1;
|
||||
}
|
||||
}
|
||||
a--;
|
||||
if (a == 0) {
|
||||
a = Math.pow(2, l);
|
||||
l++;
|
||||
}
|
||||
delete i[u];
|
||||
} else {
|
||||
n = r[u];
|
||||
for (t = 0; t < l; t++) {
|
||||
h = (h << 1) | (n & 1);
|
||||
if (p == 15) {
|
||||
p = 0;
|
||||
c += v(h);
|
||||
h = 0;
|
||||
} else {
|
||||
p++;
|
||||
}
|
||||
n = n >> 1;
|
||||
}
|
||||
}
|
||||
a--;
|
||||
if (a == 0) {
|
||||
a = Math.pow(2, l);
|
||||
l++;
|
||||
}
|
||||
}
|
||||
n = 2;
|
||||
for (t = 0; t < l; t++) {
|
||||
h = (h << 1) | (n & 1);
|
||||
if (p == 15) {
|
||||
p = 0;
|
||||
c += v(h);
|
||||
h = 0;
|
||||
} else {
|
||||
p++;
|
||||
}
|
||||
n = n >> 1;
|
||||
}
|
||||
while (true) {
|
||||
h = h << 1;
|
||||
if (p == 15) {
|
||||
c += v(h);
|
||||
break;
|
||||
} else p++;
|
||||
}
|
||||
return c;
|
||||
},
|
||||
decompress: function (e) {
|
||||
if (e == null) return "";
|
||||
if (e == "") return null;
|
||||
var t = [],
|
||||
n,
|
||||
r = 4,
|
||||
i = 4,
|
||||
s = 3,
|
||||
o = "",
|
||||
u = "",
|
||||
a,
|
||||
f,
|
||||
l,
|
||||
c,
|
||||
h,
|
||||
p,
|
||||
d,
|
||||
v = LZString._f,
|
||||
m = { string: e, val: e.charCodeAt(0), position: 32768, index: 1 };
|
||||
for (a = 0; a < 3; a += 1) {
|
||||
t[a] = a;
|
||||
}
|
||||
l = 0;
|
||||
h = Math.pow(2, 2);
|
||||
p = 1;
|
||||
while (p != h) {
|
||||
c = m.val & m.position;
|
||||
m.position >>= 1;
|
||||
if (m.position == 0) {
|
||||
m.position = 32768;
|
||||
m.val = m.string.charCodeAt(m.index++);
|
||||
}
|
||||
l |= (c > 0 ? 1 : 0) * p;
|
||||
p <<= 1;
|
||||
}
|
||||
switch ((n = l)) {
|
||||
case 0:
|
||||
l = 0;
|
||||
h = Math.pow(2, 8);
|
||||
p = 1;
|
||||
while (p != h) {
|
||||
c = m.val & m.position;
|
||||
m.position >>= 1;
|
||||
if (m.position == 0) {
|
||||
m.position = 32768;
|
||||
m.val = m.string.charCodeAt(m.index++);
|
||||
}
|
||||
l |= (c > 0 ? 1 : 0) * p;
|
||||
p <<= 1;
|
||||
}
|
||||
d = v(l);
|
||||
break;
|
||||
case 1:
|
||||
l = 0;
|
||||
h = Math.pow(2, 16);
|
||||
p = 1;
|
||||
while (p != h) {
|
||||
c = m.val & m.position;
|
||||
m.position >>= 1;
|
||||
if (m.position == 0) {
|
||||
m.position = 32768;
|
||||
m.val = m.string.charCodeAt(m.index++);
|
||||
}
|
||||
l |= (c > 0 ? 1 : 0) * p;
|
||||
p <<= 1;
|
||||
}
|
||||
d = v(l);
|
||||
break;
|
||||
case 2:
|
||||
return "";
|
||||
}
|
||||
t[3] = d;
|
||||
f = u = d;
|
||||
while (true) {
|
||||
if (m.index > m.string.length) {
|
||||
return "";
|
||||
}
|
||||
l = 0;
|
||||
h = Math.pow(2, s);
|
||||
p = 1;
|
||||
while (p != h) {
|
||||
c = m.val & m.position;
|
||||
m.position >>= 1;
|
||||
if (m.position == 0) {
|
||||
m.position = 32768;
|
||||
m.val = m.string.charCodeAt(m.index++);
|
||||
}
|
||||
l |= (c > 0 ? 1 : 0) * p;
|
||||
p <<= 1;
|
||||
}
|
||||
switch ((d = l)) {
|
||||
case 0:
|
||||
l = 0;
|
||||
h = Math.pow(2, 8);
|
||||
p = 1;
|
||||
while (p != h) {
|
||||
c = m.val & m.position;
|
||||
m.position >>= 1;
|
||||
if (m.position == 0) {
|
||||
m.position = 32768;
|
||||
m.val = m.string.charCodeAt(m.index++);
|
||||
}
|
||||
l |= (c > 0 ? 1 : 0) * p;
|
||||
p <<= 1;
|
||||
}
|
||||
t[i++] = v(l);
|
||||
d = i - 1;
|
||||
r--;
|
||||
break;
|
||||
case 1:
|
||||
l = 0;
|
||||
h = Math.pow(2, 16);
|
||||
p = 1;
|
||||
while (p != h) {
|
||||
c = m.val & m.position;
|
||||
m.position >>= 1;
|
||||
if (m.position == 0) {
|
||||
m.position = 32768;
|
||||
m.val = m.string.charCodeAt(m.index++);
|
||||
}
|
||||
l |= (c > 0 ? 1 : 0) * p;
|
||||
p <<= 1;
|
||||
}
|
||||
t[i++] = v(l);
|
||||
d = i - 1;
|
||||
r--;
|
||||
break;
|
||||
case 2:
|
||||
return u;
|
||||
}
|
||||
if (r == 0) {
|
||||
r = Math.pow(2, s);
|
||||
s++;
|
||||
}
|
||||
if (t[d]) {
|
||||
o = t[d];
|
||||
} else {
|
||||
if (d === i) {
|
||||
o = f + f.charAt(0);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
u += o;
|
||||
t[i++] = f + o.charAt(0);
|
||||
r--;
|
||||
f = o;
|
||||
if (r == 0) {
|
||||
r = Math.pow(2, s);
|
||||
s++;
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
if (typeof module !== "undefined" && module != null) {
|
||||
module.exports = LZString;
|
||||
}
|
||||
524
www/js/libs/pixi-picture.js
Normal file
524
www/js/libs/pixi-picture.js
Normal file
|
|
@ -0,0 +1,524 @@
|
|||
var __extends =
|
||||
(this && this.__extends) ||
|
||||
function (d, b) {
|
||||
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
|
||||
function __() {
|
||||
this.constructor = d;
|
||||
}
|
||||
d.prototype =
|
||||
b === null ? Object.create(b) : ((__.prototype = b.prototype), new __());
|
||||
};
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var extras;
|
||||
(function (extras) {
|
||||
var shaderLib = [
|
||||
{
|
||||
vertUniforms: "",
|
||||
vertCode: "vTextureCoord = aTextureCoord;",
|
||||
fragUniforms: "uniform vec4 uTextureClamp;",
|
||||
fragCode:
|
||||
"vec2 textureCoord = clamp(vTextureCoord, uTextureClamp.xy, uTextureClamp.zw);",
|
||||
},
|
||||
{
|
||||
vertUniforms: "uniform mat3 uTransform;",
|
||||
vertCode: "vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;",
|
||||
fragUniforms: "",
|
||||
fragCode: "vec2 textureCoord = vTextureCoord;",
|
||||
},
|
||||
{
|
||||
vertUniforms: "uniform mat3 uTransform;",
|
||||
vertCode: "vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;",
|
||||
fragUniforms:
|
||||
"uniform mat3 uMapCoord;\nuniform vec4 uClampFrame;\nuniform vec2 uClampOffset;",
|
||||
fragCode:
|
||||
"vec2 textureCoord = mod(vTextureCoord - uClampOffset, vec2(1.0, 1.0)) + uClampOffset;" +
|
||||
"\ntextureCoord = (uMapCoord * vec3(textureCoord, 1.0)).xy;" +
|
||||
"\ntextureCoord = clamp(textureCoord, uClampFrame.xy, uClampFrame.zw);",
|
||||
},
|
||||
];
|
||||
var PictureShader = (function (_super) {
|
||||
__extends(PictureShader, _super);
|
||||
function PictureShader(gl, vert, frag, tilingMode) {
|
||||
var lib = shaderLib[tilingMode];
|
||||
_super.call(
|
||||
this,
|
||||
gl,
|
||||
vert
|
||||
.replace(/%SPRITE_UNIFORMS%/gi, lib.vertUniforms)
|
||||
.replace(/%SPRITE_CODE%/gi, lib.vertCode),
|
||||
frag
|
||||
.replace(/%SPRITE_UNIFORMS%/gi, lib.fragUniforms)
|
||||
.replace(/%SPRITE_CODE%/gi, lib.fragCode)
|
||||
);
|
||||
this.bind();
|
||||
this.tilingMode = tilingMode;
|
||||
this.tempQuad = new PIXI.Quad(gl);
|
||||
this.tempQuad.initVao(this);
|
||||
this.uniforms.uColor = new Float32Array([1, 1, 1, 1]);
|
||||
this.uniforms.uSampler = [0, 1];
|
||||
}
|
||||
PictureShader.blendVert =
|
||||
"\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec4 aColor;\n\nuniform mat3 projectionMatrix;\nuniform mat3 mapMatrix;\n\nvarying vec2 vTextureCoord;\nvarying vec2 vMapCoord;\n%SPRITE_UNIFORMS%\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n %SPRITE_CODE%\n vMapCoord = (mapMatrix * vec3(aVertexPosition, 1.0)).xy;\n}\n";
|
||||
return PictureShader;
|
||||
})(PIXI.Shader);
|
||||
extras.PictureShader = PictureShader;
|
||||
})((extras = PIXI.extras || (PIXI.extras = {})));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var extras;
|
||||
(function (extras) {
|
||||
var overlayFrag =
|
||||
"\nvarying vec2 vTextureCoord;\nvarying vec2 vMapCoord;\nvarying vec4 vColor;\n\nuniform sampler2D uSampler[2];\nuniform vec4 uColor;\n%SPRITE_UNIFORMS%\n\nvoid main(void)\n{\n %SPRITE_CODE%\n vec4 source = texture2D(uSampler[0], textureCoord) * uColor;\n vec4 target = texture2D(uSampler[1], vMapCoord);\n\n //reverse hardlight\n if (source.a == 0.0) {\n gl_FragColor = vec4(0, 0, 0, 0);\n return;\n }\n //yeah, premultiplied\n vec3 Cb = source.rgb/source.a, Cs;\n if (target.a > 0.0) {\n Cs = target.rgb / target.a;\n }\n vec3 multiply = Cb * Cs * 2.0;\n vec3 Cs2 = Cs * 2.0 - 1.0;\n vec3 screen = Cb + Cs2 - Cb * Cs2;\n vec3 B;\n if (Cb.r <= 0.5) {\n B.r = multiply.r;\n } else {\n B.r = screen.r;\n }\n if (Cb.g <= 0.5) {\n B.g = multiply.g;\n } else {\n B.g = screen.g;\n }\n if (Cb.b <= 0.5) {\n B.b = multiply.b;\n } else {\n B.b = screen.b;\n }\n vec4 res;\n res.xyz = (1.0 - source.a) * Cs + source.a * B;\n res.a = source.a + target.a * (1.0-source.a);\n gl_FragColor = vec4(res.xyz * res.a, res.a);\n}\n";
|
||||
var HardLightShader = (function (_super) {
|
||||
__extends(HardLightShader, _super);
|
||||
function HardLightShader(gl, tilingMode) {
|
||||
_super.call(
|
||||
this,
|
||||
gl,
|
||||
extras.PictureShader.blendVert,
|
||||
overlayFrag,
|
||||
tilingMode
|
||||
);
|
||||
}
|
||||
return HardLightShader;
|
||||
})(extras.PictureShader);
|
||||
extras.HardLightShader = HardLightShader;
|
||||
})((extras = PIXI.extras || (PIXI.extras = {})));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var extras;
|
||||
(function (extras) {
|
||||
function mapFilterBlendModesToPixi(gl, array) {
|
||||
if (array === void 0) {
|
||||
array = [];
|
||||
}
|
||||
array[PIXI.BLEND_MODES.OVERLAY] = [
|
||||
new extras.OverlayShader(gl, 0),
|
||||
new extras.OverlayShader(gl, 1),
|
||||
new extras.OverlayShader(gl, 2),
|
||||
];
|
||||
array[PIXI.BLEND_MODES.HARD_LIGHT] = [
|
||||
new extras.HardLightShader(gl, 0),
|
||||
new extras.HardLightShader(gl, 1),
|
||||
new extras.HardLightShader(gl, 2),
|
||||
];
|
||||
return array;
|
||||
}
|
||||
extras.mapFilterBlendModesToPixi = mapFilterBlendModesToPixi;
|
||||
})((extras = PIXI.extras || (PIXI.extras = {})));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var extras;
|
||||
(function (extras) {
|
||||
var normalFrag =
|
||||
"\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nuniform sampler2D uSampler[2];\nuniform vec4 uColor;\n%SPRITE_UNIFORMS%\n\nvoid main(void)\n{\n %SPRITE_CODE%\n\n vec4 sample = texture2D(uSampler[0], textureCoord);\n gl_FragColor = sample * uColor;\n}\n";
|
||||
var normalVert =
|
||||
"\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec4 aColor;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n%SPRITE_UNIFORMS%\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n %SPRITE_CODE%\n}\n";
|
||||
var NormalShader = (function (_super) {
|
||||
__extends(NormalShader, _super);
|
||||
function NormalShader(gl, tilingMode) {
|
||||
_super.call(this, gl, normalVert, normalFrag, tilingMode);
|
||||
}
|
||||
return NormalShader;
|
||||
})(extras.PictureShader);
|
||||
extras.NormalShader = NormalShader;
|
||||
})((extras = PIXI.extras || (PIXI.extras = {})));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var extras;
|
||||
(function (extras) {
|
||||
var overlayFrag =
|
||||
"\nvarying vec2 vTextureCoord;\nvarying vec2 vMapCoord;\nvarying vec4 vColor;\n\nuniform sampler2D uSampler[2];\nuniform vec4 uColor;\n%SPRITE_UNIFORMS%\n\nvoid main(void)\n{\n %SPRITE_CODE%\n vec4 source = texture2D(uSampler[0], textureCoord) * uColor;\n vec4 target = texture2D(uSampler[1], vMapCoord);\n\n //reverse hardlight\n if (source.a == 0.0) {\n gl_FragColor = vec4(0, 0, 0, 0);\n return;\n }\n //yeah, premultiplied\n vec3 Cb = source.rgb/source.a, Cs;\n if (target.a > 0.0) {\n Cs = target.rgb / target.a;\n }\n vec3 multiply = Cb * Cs * 2.0;\n vec3 Cb2 = Cb * 2.0 - 1.0;\n vec3 screen = Cb2 + Cs - Cb2 * Cs;\n vec3 B;\n if (Cs.r <= 0.5) {\n B.r = multiply.r;\n } else {\n B.r = screen.r;\n }\n if (Cs.g <= 0.5) {\n B.g = multiply.g;\n } else {\n B.g = screen.g;\n }\n if (Cs.b <= 0.5) {\n B.b = multiply.b;\n } else {\n B.b = screen.b;\n }\n vec4 res;\n res.xyz = (1.0 - source.a) * Cs + source.a * B;\n res.a = source.a + target.a * (1.0-source.a);\n gl_FragColor = vec4(res.xyz * res.a, res.a);\n}\n";
|
||||
var OverlayShader = (function (_super) {
|
||||
__extends(OverlayShader, _super);
|
||||
function OverlayShader(gl, tilingMode) {
|
||||
_super.call(
|
||||
this,
|
||||
gl,
|
||||
extras.PictureShader.blendVert,
|
||||
overlayFrag,
|
||||
tilingMode
|
||||
);
|
||||
}
|
||||
return OverlayShader;
|
||||
})(extras.PictureShader);
|
||||
extras.OverlayShader = OverlayShader;
|
||||
})((extras = PIXI.extras || (PIXI.extras = {})));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var extras;
|
||||
(function (extras) {
|
||||
function nextPow2(v) {
|
||||
v += v === 0 ? 1 : 0;
|
||||
--v;
|
||||
v |= v >>> 1;
|
||||
v |= v >>> 2;
|
||||
v |= v >>> 4;
|
||||
v |= v >>> 8;
|
||||
v |= v >>> 16;
|
||||
return v + 1;
|
||||
}
|
||||
var PictureRenderer = (function (_super) {
|
||||
__extends(PictureRenderer, _super);
|
||||
function PictureRenderer(renderer) {
|
||||
_super.call(this, renderer);
|
||||
}
|
||||
PictureRenderer.prototype.onContextChange = function () {
|
||||
var gl = this.renderer.gl;
|
||||
this.drawModes = extras.mapFilterBlendModesToPixi(gl);
|
||||
this.normalShader = [
|
||||
new extras.NormalShader(gl, 0),
|
||||
new extras.NormalShader(gl, 1),
|
||||
new extras.NormalShader(gl, 2),
|
||||
];
|
||||
this._tempClamp = new Float32Array(4);
|
||||
this._tempColor = new Float32Array(4);
|
||||
this._tempRect = new PIXI.Rectangle();
|
||||
this._tempRect2 = new PIXI.Rectangle();
|
||||
this._tempRect3 = new PIXI.Rectangle();
|
||||
this._tempMatrix = new PIXI.Matrix();
|
||||
this._tempMatrix2 = new PIXI.Matrix();
|
||||
this._bigBuf = new Uint8Array(1 << 20);
|
||||
this._renderTexture = new PIXI.BaseRenderTexture(1024, 1024);
|
||||
};
|
||||
PictureRenderer.prototype.start = function () {};
|
||||
PictureRenderer.prototype.flush = function () {};
|
||||
PictureRenderer.prototype._getRenderTexture = function (
|
||||
minWidth,
|
||||
minHeight
|
||||
) {
|
||||
if (
|
||||
this._renderTexture.width < minWidth ||
|
||||
this._renderTexture.height < minHeight
|
||||
) {
|
||||
minHeight = nextPow2(minWidth);
|
||||
minHeight = nextPow2(minHeight);
|
||||
this._renderTexture.resize(minWidth, minHeight);
|
||||
}
|
||||
return this._renderTexture;
|
||||
};
|
||||
PictureRenderer.prototype._getBuf = function (size) {
|
||||
var buf = this._bigBuf;
|
||||
if (buf.length < size) {
|
||||
size = nextPow2(size);
|
||||
buf = new Uint8Array(size);
|
||||
this._bigBuf = buf;
|
||||
}
|
||||
return buf;
|
||||
};
|
||||
PictureRenderer.prototype.render = function (sprite) {
|
||||
if (!sprite.texture.valid) {
|
||||
return;
|
||||
}
|
||||
var tilingMode = 0;
|
||||
if (sprite.tileTransform) {
|
||||
tilingMode = this._isSimpleSprite(sprite) ? 1 : 2;
|
||||
}
|
||||
var blendShader = this.drawModes[sprite.blendMode];
|
||||
if (blendShader) {
|
||||
this._renderBlend(sprite, blendShader[tilingMode]);
|
||||
} else {
|
||||
this._renderNormal(sprite, this.normalShader[tilingMode]);
|
||||
}
|
||||
};
|
||||
PictureRenderer.prototype._renderNormal = function (sprite, shader) {
|
||||
var renderer = this.renderer;
|
||||
renderer.bindShader(shader);
|
||||
renderer.state.setBlendMode(sprite.blendMode);
|
||||
this._renderInner(sprite, shader);
|
||||
};
|
||||
PictureRenderer.prototype._renderBlend = function (sprite, shader) {
|
||||
var renderer = this.renderer;
|
||||
var spriteBounds = sprite.getBounds();
|
||||
var renderTarget = renderer._activeRenderTarget;
|
||||
var matrix = renderTarget.projectionMatrix;
|
||||
var flipX = matrix.a < 0;
|
||||
var flipY = matrix.d < 0;
|
||||
var resolution = renderTarget.resolution;
|
||||
var screen = this._tempRect;
|
||||
var fr = renderTarget.sourceFrame || renderTarget.destinationFrame;
|
||||
screen.x = 0;
|
||||
screen.y = 0;
|
||||
screen.width = fr.width;
|
||||
screen.height = fr.height;
|
||||
var bounds = this._tempRect2;
|
||||
var fbw = fr.width * resolution,
|
||||
fbh = fr.height * resolution;
|
||||
bounds.x =
|
||||
(spriteBounds.x + matrix.tx / matrix.a) * resolution + fbw / 2;
|
||||
bounds.y =
|
||||
(spriteBounds.y + matrix.ty / matrix.d) * resolution + fbh / 2;
|
||||
bounds.width = spriteBounds.width * resolution;
|
||||
bounds.height = spriteBounds.height * resolution;
|
||||
if (flipX) {
|
||||
bounds.y = fbw - bounds.width - bounds.x;
|
||||
}
|
||||
if (flipY) {
|
||||
bounds.y = fbh - bounds.height - bounds.y;
|
||||
}
|
||||
var screenBounds = this._tempRect3;
|
||||
var x_1 = Math.floor(Math.max(screen.x, bounds.x));
|
||||
var x_2 = Math.ceil(
|
||||
Math.min(screen.x + screen.width, bounds.x + bounds.width)
|
||||
);
|
||||
var y_1 = Math.floor(Math.max(screen.y, bounds.y));
|
||||
var y_2 = Math.ceil(
|
||||
Math.min(screen.y + screen.height, bounds.y + bounds.height)
|
||||
);
|
||||
var pixelsWidth = x_2 - x_1;
|
||||
var pixelsHeight = y_2 - y_1;
|
||||
if (pixelsWidth <= 0 || pixelsHeight <= 0) {
|
||||
return;
|
||||
}
|
||||
var rt = this._getRenderTexture(pixelsWidth, pixelsHeight);
|
||||
renderer.bindTexture(rt, 1, true);
|
||||
var gl = renderer.gl;
|
||||
if (renderer.renderingToScreen && renderTarget.root) {
|
||||
var buf = this._getBuf(pixelsWidth * pixelsHeight * 4);
|
||||
gl.readPixels(
|
||||
x_1,
|
||||
y_1,
|
||||
pixelsWidth,
|
||||
pixelsHeight,
|
||||
gl.RGBA,
|
||||
gl.UNSIGNED_BYTE,
|
||||
this._bigBuf
|
||||
);
|
||||
gl.texSubImage2D(
|
||||
gl.TEXTURE_2D,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
pixelsWidth,
|
||||
pixelsHeight,
|
||||
gl.RGBA,
|
||||
gl.UNSIGNED_BYTE,
|
||||
this._bigBuf
|
||||
);
|
||||
} else {
|
||||
gl.copyTexSubImage2D(
|
||||
gl.TEXTURE_2D,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
x_1,
|
||||
y_1,
|
||||
pixelsWidth,
|
||||
pixelsHeight
|
||||
);
|
||||
}
|
||||
renderer.bindShader(shader);
|
||||
renderer.state.setBlendMode(PIXI.BLEND_MODES.NORMAL);
|
||||
if (shader.uniforms.mapMatrix) {
|
||||
var mapMatrix = this._tempMatrix;
|
||||
mapMatrix.a = bounds.width / rt.width / spriteBounds.width;
|
||||
if (flipX) {
|
||||
mapMatrix.a = -mapMatrix.a;
|
||||
mapMatrix.tx =
|
||||
(bounds.x - x_1) / rt.width -
|
||||
(spriteBounds.x + spriteBounds.width) * mapMatrix.a;
|
||||
} else {
|
||||
mapMatrix.tx =
|
||||
(bounds.x - x_1) / rt.width - spriteBounds.x * mapMatrix.a;
|
||||
}
|
||||
mapMatrix.d = bounds.height / rt.height / spriteBounds.height;
|
||||
if (flipY) {
|
||||
mapMatrix.d = -mapMatrix.d;
|
||||
mapMatrix.ty =
|
||||
(bounds.y - y_1) / rt.height -
|
||||
(spriteBounds.y + spriteBounds.height) * mapMatrix.d;
|
||||
} else {
|
||||
mapMatrix.ty =
|
||||
(bounds.y - y_1) / rt.height - spriteBounds.y * mapMatrix.d;
|
||||
}
|
||||
shader.uniforms.mapMatrix = mapMatrix.toArray(true);
|
||||
}
|
||||
this._renderInner(sprite, shader);
|
||||
};
|
||||
PictureRenderer.prototype._renderInner = function (sprite, shader) {
|
||||
var renderer = this.renderer;
|
||||
if (shader.tilingMode > 0) {
|
||||
this._renderWithShader(sprite, shader.tilingMode === 1, shader);
|
||||
} else {
|
||||
this._renderSprite(sprite, shader);
|
||||
}
|
||||
};
|
||||
PictureRenderer.prototype._renderWithShader = function (
|
||||
ts,
|
||||
isSimple,
|
||||
shader
|
||||
) {
|
||||
var quad = shader.tempQuad;
|
||||
var renderer = this.renderer;
|
||||
renderer.bindVao(quad.vao);
|
||||
var vertices = quad.vertices;
|
||||
var _width = ts._width;
|
||||
var _height = ts._height;
|
||||
var _anchorX = ts._anchor._x;
|
||||
var _anchorY = ts._anchor._y;
|
||||
var w0 = _width * (1 - _anchorX);
|
||||
var w1 = _width * -_anchorX;
|
||||
var h0 = _height * (1 - _anchorY);
|
||||
var h1 = _height * -_anchorY;
|
||||
var wt = ts.transform.worldTransform;
|
||||
var a = wt.a;
|
||||
var b = wt.b;
|
||||
var c = wt.c;
|
||||
var d = wt.d;
|
||||
var tx = wt.tx;
|
||||
var ty = wt.ty;
|
||||
vertices[0] = a * w1 + c * h1 + tx;
|
||||
vertices[1] = d * h1 + b * w1 + ty;
|
||||
vertices[2] = a * w0 + c * h1 + tx;
|
||||
vertices[3] = d * h1 + b * w0 + ty;
|
||||
vertices[4] = a * w0 + c * h0 + tx;
|
||||
vertices[5] = d * h0 + b * w0 + ty;
|
||||
vertices[6] = a * w1 + c * h0 + tx;
|
||||
vertices[7] = d * h0 + b * w1 + ty;
|
||||
vertices = quad.uvs;
|
||||
vertices[0] = vertices[6] = -ts.anchor.x;
|
||||
vertices[1] = vertices[3] = -ts.anchor.y;
|
||||
vertices[2] = vertices[4] = 1.0 - ts.anchor.x;
|
||||
vertices[5] = vertices[7] = 1.0 - ts.anchor.y;
|
||||
quad.upload();
|
||||
var tex = ts._texture;
|
||||
var lt = ts.tileTransform.localTransform;
|
||||
var uv = ts.uvTransform;
|
||||
var mapCoord = uv.mapCoord;
|
||||
var uClampFrame = uv.uClampFrame;
|
||||
var uClampOffset = uv.uClampOffset;
|
||||
var w = tex.width;
|
||||
var h = tex.height;
|
||||
var W = _width;
|
||||
var H = _height;
|
||||
var tempMat = this._tempMatrix2;
|
||||
tempMat.set(
|
||||
(lt.a * w) / W,
|
||||
(lt.b * w) / H,
|
||||
(lt.c * h) / W,
|
||||
(lt.d * h) / H,
|
||||
lt.tx / W,
|
||||
lt.ty / H
|
||||
);
|
||||
tempMat.invert();
|
||||
if (isSimple) {
|
||||
tempMat.append(mapCoord);
|
||||
} else {
|
||||
shader.uniforms.uMapCoord = mapCoord.toArray(true);
|
||||
shader.uniforms.uClampFrame = uClampFrame;
|
||||
shader.uniforms.uClampOffset = uClampOffset;
|
||||
}
|
||||
shader.uniforms.uTransform = tempMat.toArray(true);
|
||||
var color = this._tempColor;
|
||||
var alpha = ts.worldAlpha;
|
||||
PIXI.utils.hex2rgb(ts.tint, color);
|
||||
color[0] *= alpha;
|
||||
color[1] *= alpha;
|
||||
color[2] *= alpha;
|
||||
color[3] = alpha;
|
||||
shader.uniforms.uColor = color;
|
||||
renderer.bindTexture(tex, 0, true);
|
||||
quad.vao.draw(this.renderer.gl.TRIANGLES, 6, 0);
|
||||
};
|
||||
PictureRenderer.prototype._renderSprite = function (sprite, shader) {
|
||||
var renderer = this.renderer;
|
||||
var quad = shader.tempQuad;
|
||||
renderer.bindVao(quad.vao);
|
||||
var uvs = sprite.texture._uvs;
|
||||
var vertices = quad.vertices;
|
||||
var vd = sprite.vertexData;
|
||||
for (var i = 0; i < 8; i++) {
|
||||
quad.vertices[i] = vd[i];
|
||||
}
|
||||
quad.uvs[0] = uvs.x0;
|
||||
quad.uvs[1] = uvs.y0;
|
||||
quad.uvs[2] = uvs.x1;
|
||||
quad.uvs[3] = uvs.y1;
|
||||
quad.uvs[4] = uvs.x2;
|
||||
quad.uvs[5] = uvs.y2;
|
||||
quad.uvs[6] = uvs.x3;
|
||||
quad.uvs[7] = uvs.y3;
|
||||
quad.upload();
|
||||
var frame = sprite.texture.frame;
|
||||
var base = sprite.texture.baseTexture;
|
||||
var clamp = this._tempClamp;
|
||||
var eps = 0.5 / base.resolution;
|
||||
clamp[0] = (frame.x + eps) / base.width;
|
||||
clamp[1] = (frame.y + eps) / base.height;
|
||||
clamp[2] = (frame.x + frame.width - eps) / base.width;
|
||||
clamp[3] = (frame.y + frame.height - eps) / base.height;
|
||||
shader.uniforms.uTextureClamp = clamp;
|
||||
var color = this._tempColor;
|
||||
PIXI.utils.hex2rgb(sprite.tint, color);
|
||||
var alpha = sprite.worldAlpha;
|
||||
color[0] *= alpha;
|
||||
color[1] *= alpha;
|
||||
color[2] *= alpha;
|
||||
color[3] = alpha;
|
||||
shader.uniforms.uColor = color;
|
||||
renderer.bindTexture(base, 0, true);
|
||||
quad.vao.draw(this.renderer.gl.TRIANGLES, 6, 0);
|
||||
};
|
||||
PictureRenderer.prototype._isSimpleSprite = function (ts) {
|
||||
var renderer = this.renderer;
|
||||
var tex = ts._texture;
|
||||
var baseTex = tex.baseTexture;
|
||||
var isSimple =
|
||||
baseTex.isPowerOfTwo &&
|
||||
tex.frame.width === baseTex.width &&
|
||||
tex.frame.height === baseTex.height;
|
||||
if (isSimple) {
|
||||
if (!baseTex._glTextures[renderer.CONTEXT_UID]) {
|
||||
if (baseTex.wrapMode === PIXI.WRAP_MODES.CLAMP) {
|
||||
baseTex.wrapMode = PIXI.WRAP_MODES.REPEAT;
|
||||
}
|
||||
} else {
|
||||
isSimple = baseTex.wrapMode !== PIXI.WRAP_MODES.CLAMP;
|
||||
}
|
||||
}
|
||||
return isSimple;
|
||||
};
|
||||
return PictureRenderer;
|
||||
})(PIXI.ObjectRenderer);
|
||||
extras.PictureRenderer = PictureRenderer;
|
||||
PIXI.WebGLRenderer.registerPlugin("picture", PictureRenderer);
|
||||
PIXI.CanvasRenderer.registerPlugin("picture", PIXI.CanvasSpriteRenderer);
|
||||
})((extras = PIXI.extras || (PIXI.extras = {})));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var extras;
|
||||
(function (extras) {
|
||||
var PictureSprite = (function (_super) {
|
||||
__extends(PictureSprite, _super);
|
||||
function PictureSprite(texture) {
|
||||
_super.call(this, texture);
|
||||
this.pluginName = "picture";
|
||||
}
|
||||
return PictureSprite;
|
||||
})(PIXI.Sprite);
|
||||
extras.PictureSprite = PictureSprite;
|
||||
})((extras = PIXI.extras || (PIXI.extras = {})));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var extras;
|
||||
(function (extras) {
|
||||
var PictureTilingSprite = (function (_super) {
|
||||
__extends(PictureTilingSprite, _super);
|
||||
function PictureTilingSprite(texture) {
|
||||
_super.call(this, texture);
|
||||
this.pluginName = "picture";
|
||||
}
|
||||
return PictureTilingSprite;
|
||||
})(extras.TilingSprite);
|
||||
extras.PictureTilingSprite = PictureTilingSprite;
|
||||
})((extras = PIXI.extras || (PIXI.extras = {})));
|
||||
})(PIXI || (PIXI = {}));
|
||||
//# sourceMappingURL=pixi-picture.js.map
|
||||
1113
www/js/libs/pixi-tilemap.js
Normal file
1113
www/js/libs/pixi-tilemap.js
Normal file
File diff suppressed because it is too large
Load diff
48989
www/js/libs/pixi.js
Normal file
48989
www/js/libs/pixi.js
Normal file
File diff suppressed because it is too large
Load diff
9
www/js/main.js
Normal file
9
www/js/main.js
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
//=============================================================================
|
||||
// main.js
|
||||
//=============================================================================
|
||||
|
||||
PluginManager.setup($plugins);
|
||||
|
||||
window.onload = function () {
|
||||
SceneManager.run(Scene_Boot);
|
||||
};
|
||||
280
www/js/plugins.js
Normal file
280
www/js/plugins.js
Normal file
|
|
@ -0,0 +1,280 @@
|
|||
// Generated by RPG Maker.
|
||||
// Do not edit this file directly.
|
||||
var $plugins = [
|
||||
{
|
||||
name: "PictureCallCommon",
|
||||
status: true,
|
||||
description: "ピクチャのボタン化プラグイン",
|
||||
parameters: {
|
||||
透明色を考慮: "true",
|
||||
ピクチャ番号の変数番号: "10",
|
||||
ポインタX座標の変数番号: "8",
|
||||
ポインタY座標の変数番号: "9",
|
||||
タッチ操作抑制: "false",
|
||||
タッチ操作抑制スイッチ: "0",
|
||||
戦闘中常にコモン実行: "false",
|
||||
並列処理として実行: "false",
|
||||
無効スイッチ: "19",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "UTA_MessageSkip",
|
||||
status: true,
|
||||
description: "特定キーを押す事でメッセージをスキップできるようにします。",
|
||||
parameters: { "Skip Key": "control", "Show Trace": "false" },
|
||||
},
|
||||
{
|
||||
name: "NovelGameBasicSystem",
|
||||
status: true,
|
||||
description: "ノベルゲームのような機能を提供するプラグイン",
|
||||
parameters: {
|
||||
maxMessageLogNum: "30",
|
||||
saveMessageLogSwitchId: "13",
|
||||
autoMessageSwitchID: "15",
|
||||
skipReadMessageSwitchID: "14",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "MessageWindowHidden",
|
||||
status: true,
|
||||
description: "メッセージウィンドウ一時消去プラグイン",
|
||||
parameters: {
|
||||
triggerButton: '["右クリック","pageup"]',
|
||||
triggerSwitch: "0",
|
||||
linkPictureNumbers: '["100"]',
|
||||
linkShowPictureNumbers: "[]",
|
||||
disableLinkSwitchId: "0",
|
||||
disableSwitchId: "0",
|
||||
disableInBattle: "false",
|
||||
disableInChoice: "true",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "MessageSkip",
|
||||
status: true,
|
||||
description: "メッセージスキッププラグイン",
|
||||
parameters: {
|
||||
スキップキー: "",
|
||||
オートキー: "A",
|
||||
スキップスイッチ: "0",
|
||||
オートスイッチ: "15",
|
||||
スキップアイコン: "140",
|
||||
オートアイコン: "90",
|
||||
アイコンX: "975",
|
||||
アイコンY: "675",
|
||||
押し続けスキップ: "false",
|
||||
オート待機フレーム: "10 + textSize * (2 + \\v[20])",
|
||||
終了解除スイッチID: "0",
|
||||
スキップピクチャ: "",
|
||||
スキップピクチャX: "200",
|
||||
スキップピクチャY: "0",
|
||||
オートピクチャ: "",
|
||||
オートピクチャX: "400",
|
||||
オートピクチャY: "0",
|
||||
スイッチピクチャ: "novelMenuButton",
|
||||
スイッチピクチャトリガー: "20",
|
||||
スイッチピクチャX: "975",
|
||||
スイッチピクチャY: "725",
|
||||
ボタン原点: "0",
|
||||
ボタン表示スイッチID: "16",
|
||||
ピクチャ座標タイプ: "absolute",
|
||||
無効化スイッチ: "0",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "CustomizeConfigDefault",
|
||||
status: true,
|
||||
description: "オプションデフォルト値設定プラグイン",
|
||||
parameters: {
|
||||
常時ダッシュ: "on",
|
||||
コマンド記憶: "OFF",
|
||||
BGM音量: "40",
|
||||
BGS音量: "60",
|
||||
ME音量: "60",
|
||||
SE音量: "60",
|
||||
常時ダッシュ消去: "on",
|
||||
コマンド記憶消去: "on",
|
||||
BGM音量消去: "OFF",
|
||||
BGS音量消去: "OFF",
|
||||
ME音量消去: "OFF",
|
||||
SE音量消去: "OFF",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "CustomizeConfigItem",
|
||||
status: true,
|
||||
description: "オプション任意項目作成プラグイン",
|
||||
parameters: {
|
||||
数値項目:
|
||||
'["{\\"Name\\":\\"オートメッセージの待機時間\\",\\"DefaultValue\\":\\"10\\",\\"VariableID\\":\\"20\\",\\"HiddenFlag\\":\\"false\\",\\"Script\\":\\"\\",\\"NumberMin\\":\\"0\\",\\"NumberMax\\":\\"20\\",\\"NumberStep\\":\\"2\\",\\"AddPosition\\":\\"\\"}"]',
|
||||
文字項目: "",
|
||||
スイッチ項目: "[]",
|
||||
音量項目: "",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "MasterVolumeOption",
|
||||
status: true,
|
||||
description: "マスターボリューム設定プラグイン",
|
||||
parameters: { 項目名称: "全体 音量", 初期値: "40", 音量の増減量: "10" },
|
||||
},
|
||||
{
|
||||
name: "AnotherNewGame",
|
||||
status: true,
|
||||
description: "アナザーニューゲーム追加プラグイン",
|
||||
parameters: {
|
||||
name: "CG&シーン回想",
|
||||
map_id: "3",
|
||||
map_x: "16",
|
||||
map_y: "1",
|
||||
hidden: "OFF",
|
||||
disable: "OFF",
|
||||
file_load: "OFF",
|
||||
no_fadeout: "OFF",
|
||||
manage_number: "",
|
||||
add_position: "3",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Community_Basic",
|
||||
status: true,
|
||||
description: "基本的なパラメーターを設定するプラグインです。",
|
||||
parameters: {
|
||||
cacheLimit: "10",
|
||||
screenWidth: "1024",
|
||||
screenHeight: "768",
|
||||
changeWindowWidthTo: "",
|
||||
changeWindowHeightTo: "",
|
||||
renderingMode: "auto",
|
||||
alwaysDash: "off",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "KMS_AccelerateFileScene",
|
||||
status: true,
|
||||
description: "[v0.1.0] セーブ/ロード画面の描画を高速化します。",
|
||||
parameters: {},
|
||||
},
|
||||
{
|
||||
name: "KMS_SaveWithSnap",
|
||||
status: true,
|
||||
description: "[v0.1.0] セーブ/ロード画面にスクリーンショットを追加します。",
|
||||
parameters: { "Image scale": "0.20", "Enable JPEG": "1" },
|
||||
},
|
||||
{
|
||||
name: "MadeWithMv",
|
||||
status: true,
|
||||
description:
|
||||
'メイン画面へ進む前に、"Made with MV"のスプラッシュ画面もしくはカスタマイズされたスプラッシュ画面を表示します。',
|
||||
parameters: {
|
||||
"Show Made With MV": "true",
|
||||
"Made with MV Image": "logo",
|
||||
"Show Custom Splash": "false",
|
||||
"Custom Image": "",
|
||||
"Fade Out Time": "30",
|
||||
"Fade In Time": "30",
|
||||
"Wait Time": "60",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "TitleCommandPosition",
|
||||
status: true,
|
||||
description: "タイトルコマンドウィンドウの位置を変更します。",
|
||||
parameters: {
|
||||
"Offset X": "0",
|
||||
"Offset Y": "50",
|
||||
Width: "240",
|
||||
Background: "0",
|
||||
},
|
||||
},
|
||||
{ name: "savenottitle", status: true, description: "", parameters: {} },
|
||||
{
|
||||
name: "UTA_CommonSave",
|
||||
status: true,
|
||||
description:
|
||||
"共有のセーブデータを作成し、指定したスイッチ・変数の状態をセーブデータ間で共有します。",
|
||||
parameters: {
|
||||
"Target Switches": "3,13,161-196",
|
||||
"Target Variables": "",
|
||||
"Is Auto": "true",
|
||||
"Auto on Gameover": "true",
|
||||
"Show Trace": "false",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "MKR_PlayerSensor",
|
||||
status: true,
|
||||
description: "(v3.0.0) プレイヤー探索プラグイン",
|
||||
parameters: {
|
||||
探索設定: "====================================",
|
||||
Sensor_Switch: "D",
|
||||
Lost_Sensor_Switch: "",
|
||||
Both_Sensor: "OFF",
|
||||
Terrain_Decision: "ON",
|
||||
Auto_Sensor: "true",
|
||||
Event_Decision: "ON",
|
||||
Region_Decision: "[]",
|
||||
Real_Range_X: "0.000",
|
||||
Real_Range_Y: "0.000",
|
||||
視界設定: "====================================",
|
||||
Range_Visible: "OFF",
|
||||
Range_Color: "white",
|
||||
Range_Opacity: "80",
|
||||
Range_Position: "1",
|
||||
Player_Found:
|
||||
'{"Ballon":"1","Se":"{\\"Name\\":\\"\\",\\"Volume\\":\\"90\\",\\"Pitch\\":\\"100\\",\\"Pan\\":\\"0\\"}","Common_Event":"0","Delay":"0"}',
|
||||
Player_Lost:
|
||||
'{"Ballon":"0","Se":"{\\"Name\\":\\"\\",\\"Volume\\":\\"90\\",\\"Pitch\\":\\"100\\",\\"Pan\\":\\"0\\"}","Common_Event":"0","Delay":"180"}',
|
||||
マップ設定: "====================================",
|
||||
Tracking_Priority: "false",
|
||||
Follower_Through: "false",
|
||||
Location_Reset: "false",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "SimpleVoice",
|
||||
status: true,
|
||||
description: "簡易ボイスプラグイン",
|
||||
parameters: {
|
||||
フォルダ名: "voice",
|
||||
オプション名称: "ボイス 音量",
|
||||
オプション初期値: "100",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "MoviePicture",
|
||||
status: true,
|
||||
description: "動画のピクチャ表示プラグイン",
|
||||
parameters: {
|
||||
動画音量種別: "none",
|
||||
終了時自動削除: "true",
|
||||
動画取得フォルダ: "",
|
||||
webm偽装拡張子: "",
|
||||
mp4偽装拡張子: "",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "dashBan",
|
||||
status: true,
|
||||
description: "ダッシュを禁止するプラグインです",
|
||||
parameters: {},
|
||||
},
|
||||
{
|
||||
name: "TMCommonCommand",
|
||||
status: true,
|
||||
description: "メインメニューにコモンイベント実行用のコマンドを追加します。",
|
||||
parameters: {
|
||||
command1: '{"name":"","commonEventId":"0"}',
|
||||
command2: '{"name":"モード選択","commonEventId":"47"}',
|
||||
command3: '{"name":"操作説明","commonEventId":"39"}',
|
||||
command4: '{"name":"アニメ設定","commonEventId":"25"}',
|
||||
command5: '{"name":"ロード","commonEventId":"46"}',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "NRP_StopSelfMovement",
|
||||
status: true,
|
||||
description: "v1.00 イベント実行中の自律移動を停止します。",
|
||||
parameters: { StopSwitch: "155", StopParallelMessage: "true" },
|
||||
},
|
||||
];
|
||||
346
www/js/plugins/AnotherNewGame.js
Normal file
346
www/js/plugins/AnotherNewGame.js
Normal file
|
|
@ -0,0 +1,346 @@
|
|||
//=============================================================================
|
||||
// AnotherNewGame.js
|
||||
// ----------------------------------------------------------------------------
|
||||
// Copyright (c) 2015 Triacontane
|
||||
// This plugin is released under the MIT License.
|
||||
// http://opensource.org/licenses/mit-license.php
|
||||
// ----------------------------------------------------------------------------
|
||||
// Version
|
||||
// 1.4.0 2017/06/18 アナザーニューゲームの追加位置を指定できる機能を追加
|
||||
// 1.3.0 2017/05/27 ニューゲームを非表示にできる機能を追加
|
||||
// 1.2.4 2017/05/23 プラグインコマンドのヘルプを修正
|
||||
// 1.2.3 2017/01/25 同一サーバで同プラグインを適用した複数のゲームを公開する際に、設定が重複するのを避けるために管理番号を追加
|
||||
// 1.2.2 2016/12/10 アナザーニューゲームをロードした際に、ロード元でイベントが実行中だった場合に続きが実行されてしまう現象を修正
|
||||
// 1.2.1 2016/11/23 遠景タイトルプラグイン(ParallaxTitle.js)と連携する設定を追加
|
||||
// 1.2.0 2016/11/22 アナザーニューゲームを選択した際に、フェードアウトしなくなる設定を追加
|
||||
// 1.1.0 2016/03/29 fftfanttさんからご提供いただいたコードを反映させ、アナザーニューゲーム選択時に
|
||||
// 既存のセーブファイルをロードする機能を追加
|
||||
// 1.0.1 2015/11/10 プラグイン適用中にセーブできなくなる不具合を修正
|
||||
// 1.0.0 2015/11/07 初版
|
||||
// ----------------------------------------------------------------------------
|
||||
// [Blog] : http://triacontane.blogspot.jp/
|
||||
// [Twitter]: https://twitter.com/triacontane/
|
||||
// [GitHub] : https://github.com/triacontane/
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc アナザーニューゲーム追加プラグイン
|
||||
* @author トリアコンタン
|
||||
*
|
||||
* @param name
|
||||
* @desc タイトル画面に表示されるコマンド名です。(文字列)
|
||||
* @default Another New Game
|
||||
*
|
||||
* @param map_id
|
||||
* @desc 移動先のマップIDです。(自然数)
|
||||
* @default 1
|
||||
*
|
||||
* @param map_x
|
||||
* @desc 移動先のX座標です。(自然数)
|
||||
* @default 1
|
||||
*
|
||||
* @param map_y
|
||||
* @desc 移動先のY座標です。(自然数)
|
||||
* @default 1
|
||||
*
|
||||
* @param hidden
|
||||
* @desc デフォルトで選択肢を非表示にします。プラグインコマンドで有効化できます。(ON/OFF)
|
||||
* @default OFF
|
||||
*
|
||||
* @param disable
|
||||
* @desc デフォルトで選択肢を選択禁止にします。プラグインコマンドで有効化できます。(ON/OFF)
|
||||
* @default OFF
|
||||
*
|
||||
* @param file_load
|
||||
* @desc アナザーニューゲーム選択時に、ロード画面に遷移して既存セーブデータをロードできるようになります。(ON/OFF)
|
||||
* @default OFF
|
||||
*
|
||||
* @param no_fadeout
|
||||
* @desc アナザーニューゲーム選択時に、オーディオや画面がフェードアウトしなくなります。(ON/OFF)
|
||||
* @default OFF
|
||||
*
|
||||
* @param manage_number
|
||||
* @desc 同一サーバ内に複数のゲームを配布する場合のみ、ゲームごとに異なる値を設定してください。(RPGアツマールは対象外)
|
||||
* @default
|
||||
*
|
||||
* @param add_position
|
||||
* @desc アナザーニューゲームのコマンド追加位置です。(1:ニューゲームの上、2:コンティニューの上、3:オプションの上)
|
||||
* @default 0
|
||||
*
|
||||
* @help タイトル画面のウィンドウの一番下に、もう一つのニューゲームを追加します。
|
||||
* 選択すると、ニューゲームとは別に指定したマップに遷移します。
|
||||
* クリア後のおまけやCG回想モード、スタッフクレジット、ミニゲーム、隠し要素など
|
||||
* 使い手次第で様々な用途に使えます。
|
||||
*
|
||||
* 選択肢は、あらかじめ非表示あるいは選択禁止にしておくことができます。
|
||||
* これらはプラグインコマンドから解除でき、解除状態はセーブファイルを
|
||||
* 超えてゲーム全体で共有されます。解除した状態を再度、禁止にすることもできます。
|
||||
*
|
||||
* プラグインコマンド詳細
|
||||
* イベントコマンド「プラグインコマンド」から実行。
|
||||
*
|
||||
* ANG_VISIBLE # アナザーニューゲームを表示にする。
|
||||
* ANG_ENABLE # アナザーニューゲームを選択可能にする。
|
||||
* ANG_HIDDEN # アナザーニューゲームを非表示にする。
|
||||
* ANG_DISABLE # アナザーニューゲームを選択禁止にする。
|
||||
* ANG_NEWGAME_HIDDEN # ニューゲームを非表示にする。
|
||||
* ANG_NEWGAME_VISIBLE # ニューゲームを表示にする。
|
||||
*
|
||||
* 使用例(アナザーニューゲームを「表示」にする場合)
|
||||
* ANG_VISIBLE
|
||||
*
|
||||
* ニューゲームを非表示にする機能は、ゲームが開始できなくなる場合が
|
||||
* あるので注意して使用してください。
|
||||
*
|
||||
* 利用規約:
|
||||
* 作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)
|
||||
* についても制限はありません。
|
||||
* このプラグインはもうあなたのものです。
|
||||
*/
|
||||
(function () {
|
||||
var parameters = PluginManager.parameters("AnotherNewGame");
|
||||
var localExtraStage = false;
|
||||
|
||||
var getArgBoolean = function (arg) {
|
||||
return arg.toUpperCase() === "ON";
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Game_Interpreter
|
||||
// プラグインコマンド[ANG_VISIBLE]などを追加定義します。
|
||||
//=============================================================================
|
||||
var _Game_Interpreter_pluginCommand =
|
||||
Game_Interpreter.prototype.pluginCommand;
|
||||
Game_Interpreter.prototype.pluginCommand = function (command, args) {
|
||||
_Game_Interpreter_pluginCommand.call(this, command, args);
|
||||
switch (command.toUpperCase()) {
|
||||
case "ANG_VISIBLE":
|
||||
ANGSettingManager.visible = true;
|
||||
ANGSettingManager.save();
|
||||
break;
|
||||
case "ANG_ENABLE":
|
||||
ANGSettingManager.enable = true;
|
||||
ANGSettingManager.save();
|
||||
break;
|
||||
case "ANG_HIDDEN":
|
||||
ANGSettingManager.visible = false;
|
||||
ANGSettingManager.save();
|
||||
break;
|
||||
case "ANG_DISABLE":
|
||||
ANGSettingManager.enable = false;
|
||||
ANGSettingManager.save();
|
||||
break;
|
||||
case "ANG_NEWGAME_HIDDEN":
|
||||
ANGSettingManager.newGameHidden = true;
|
||||
ANGSettingManager.save();
|
||||
break;
|
||||
case "ANG_NEWGAME_VISIBLE":
|
||||
ANGSettingManager.newGameHidden = false;
|
||||
ANGSettingManager.save();
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Game_Map
|
||||
// アナザーニューゲームのロード時に実行していたイベントを中断します。
|
||||
//=============================================================================
|
||||
Game_Map.prototype.abortInterpreter = function () {
|
||||
if (this.isEventRunning()) {
|
||||
this._interpreter.command115();
|
||||
}
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Scene_Title
|
||||
// アナザーニューゲームの選択時の処理を追加定義します。
|
||||
//=============================================================================
|
||||
var _Scene_Title_create = Scene_Title.prototype.create;
|
||||
Scene_Title.prototype.create = function () {
|
||||
this.loadAngSetting();
|
||||
_Scene_Title_create.call(this);
|
||||
};
|
||||
|
||||
var _Scene_Title_commandContinue = Scene_Title.prototype.commandContinue;
|
||||
Scene_Title.prototype.commandContinue = function () {
|
||||
_Scene_Title_commandContinue.call(this);
|
||||
localExtraStage = false;
|
||||
};
|
||||
|
||||
Scene_Title.prototype.loadAngSetting = function () {
|
||||
ANGSettingManager.loadData();
|
||||
};
|
||||
|
||||
var _Scene_Title_commandNewGameSecond =
|
||||
Scene_Title.prototype.commandNewGameSecond;
|
||||
Scene_Title.prototype.commandNewGameSecond = function () {
|
||||
if (_Scene_Title_commandNewGameSecond)
|
||||
_Scene_Title_commandNewGameSecond.apply(this, arguments);
|
||||
if (getArgBoolean(parameters["no_fadeout"] || "")) {
|
||||
this._noFadeout = true;
|
||||
}
|
||||
if (!getArgBoolean(parameters["file_load"] || "")) {
|
||||
var preMapId = $dataSystem.startMapId;
|
||||
var preStartX = $dataSystem.startX;
|
||||
var preStartY = $dataSystem.startY;
|
||||
$dataSystem.startMapId = parseInt(parameters["map_id"], 10) || 1;
|
||||
$dataSystem.startX = parseInt(parameters["map_x"], 10) || 1;
|
||||
$dataSystem.startY = parseInt(parameters["map_y"], 10) || 1;
|
||||
this.commandNewGame();
|
||||
$dataSystem.startMapId = preMapId;
|
||||
$dataSystem.startX = preStartX;
|
||||
$dataSystem.startY = preStartY;
|
||||
} else {
|
||||
this.commandContinue();
|
||||
localExtraStage = true;
|
||||
}
|
||||
};
|
||||
|
||||
var _Scene_Title_createCommandWindow =
|
||||
Scene_Title.prototype.createCommandWindow;
|
||||
Scene_Title.prototype.createCommandWindow = function () {
|
||||
_Scene_Title_createCommandWindow.call(this);
|
||||
if (ANGSettingManager.visible)
|
||||
this._commandWindow.setHandler(
|
||||
"nameGame2",
|
||||
this.commandNewGameSecond.bind(this)
|
||||
);
|
||||
};
|
||||
|
||||
Scene_Title.prototype.fadeOutAll = function () {
|
||||
if (!this._noFadeout) {
|
||||
Scene_Base.prototype.fadeOutAll.apply(this, arguments);
|
||||
}
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Scene_Load
|
||||
// ロード成功時にアナザーポイントに移動します。
|
||||
//=============================================================================
|
||||
var _Scene_Load_onLoadSuccess = Scene_Load.prototype.onLoadSuccess;
|
||||
Scene_Load.prototype.onLoadSuccess = function () {
|
||||
_Scene_Load_onLoadSuccess.call(this);
|
||||
if (localExtraStage) {
|
||||
var mapId = parseInt(parameters["map_id"], 10) || 1;
|
||||
var x = parseInt(parameters["map_x"], 10) || 1;
|
||||
var y = parseInt(parameters["map_y"], 10) || 1;
|
||||
$gamePlayer.reserveTransfer(mapId, x, y);
|
||||
$gameMap.abortInterpreter();
|
||||
DataManager.selectSavefileForNewGame();
|
||||
}
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Window_TitleCommand
|
||||
// アナザーニューゲームの選択肢を追加定義します。
|
||||
//=============================================================================
|
||||
var _Window_TitleCommand_makeCommandList =
|
||||
Window_TitleCommand.prototype.makeCommandList;
|
||||
Window_TitleCommand.prototype.makeCommandList = function () {
|
||||
_Window_TitleCommand_makeCommandList.call(this);
|
||||
if (ANGSettingManager.visible) {
|
||||
this.addCommand(
|
||||
parameters["name"],
|
||||
"nameGame2",
|
||||
ANGSettingManager.enable
|
||||
);
|
||||
var addPosition = parseInt(parameters["add_position"], 10);
|
||||
if (addPosition > 0) {
|
||||
var anotherCommand = this._list.pop();
|
||||
this._list.splice(addPosition - 1, 0, anotherCommand);
|
||||
}
|
||||
}
|
||||
if (ANGSettingManager.newGameHidden) {
|
||||
this.eraseCommandNewGame();
|
||||
}
|
||||
};
|
||||
|
||||
Window_TitleCommand.prototype.eraseCommandNewGame = function () {
|
||||
this._list = this._list.filter(function (command) {
|
||||
return command.symbol !== "newGame";
|
||||
});
|
||||
};
|
||||
|
||||
var _Window_TitleCommand_updatePlacement =
|
||||
Window_TitleCommand.prototype.updatePlacement;
|
||||
Window_TitleCommand.prototype.updatePlacement = function () {
|
||||
_Window_TitleCommand_updatePlacement.call(this);
|
||||
if (ANGSettingManager.visible) this.y += this.height / 8;
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// ANGManager
|
||||
// アナザーニューゲームの設定ファイルのセーブとロードを定義します。
|
||||
//=============================================================================
|
||||
function ANGSettingManager() {
|
||||
throw new Error("This is a static class");
|
||||
}
|
||||
ANGSettingManager._fileId = -1001;
|
||||
|
||||
ANGSettingManager.visible = false;
|
||||
ANGSettingManager.enable = false;
|
||||
ANGSettingManager.newGameHidden = false;
|
||||
|
||||
ANGSettingManager.make = function () {
|
||||
var info = {};
|
||||
info.visible = this.visible;
|
||||
info.enable = this.enable;
|
||||
info.newGameHidden = this.newGameHidden;
|
||||
return info;
|
||||
};
|
||||
|
||||
ANGSettingManager.loadData = function () {
|
||||
var info = this.load();
|
||||
this.visible =
|
||||
info["visible"] !== undefined
|
||||
? info["visible"]
|
||||
: !getArgBoolean(parameters["hidden"]);
|
||||
this.enable =
|
||||
info["enable"] !== undefined
|
||||
? info["enable"]
|
||||
: !getArgBoolean(parameters["disable"]);
|
||||
this.newGameHidden = info["newGameHidden"] || false;
|
||||
};
|
||||
|
||||
ANGSettingManager.load = function () {
|
||||
var json;
|
||||
try {
|
||||
json = StorageManager.load(this._fileId);
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
return [];
|
||||
}
|
||||
if (json) {
|
||||
return JSON.parse(json);
|
||||
} else {
|
||||
return [];
|
||||
}
|
||||
};
|
||||
|
||||
ANGSettingManager.save = function () {
|
||||
var info = ANGSettingManager.make();
|
||||
StorageManager.save(this._fileId, JSON.stringify(info));
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// StorageManager
|
||||
// アナザーニューゲームの設定ファイルのパス取得処理を追加定義します。
|
||||
//=============================================================================
|
||||
var _StorageManager_localFilePath = StorageManager.localFilePath;
|
||||
StorageManager.localFilePath = function (savefileId) {
|
||||
if (savefileId === ANGSettingManager._fileId) {
|
||||
return this.localFileDirectoryPath() + "AnotherNewGame.rpgsave";
|
||||
} else {
|
||||
return _StorageManager_localFilePath.call(this, savefileId);
|
||||
}
|
||||
};
|
||||
|
||||
var _StorageManager_webStorageKey = StorageManager.webStorageKey;
|
||||
StorageManager.webStorageKey = function (savefileId) {
|
||||
if (savefileId === ANGSettingManager._fileId) {
|
||||
return "RPG AnotherNewGame" + parameters["manage_number"];
|
||||
} else {
|
||||
return _StorageManager_webStorageKey.call(this, savefileId);
|
||||
}
|
||||
};
|
||||
})();
|
||||
135
www/js/plugins/Community_Basic.js
Normal file
135
www/js/plugins/Community_Basic.js
Normal file
|
|
@ -0,0 +1,135 @@
|
|||
/*:
|
||||
* @plugindesc Plugin used to set basic parameters.
|
||||
* @author RM CoreScript team
|
||||
*
|
||||
* @help This plugin does not provide plugin commands.
|
||||
*
|
||||
* @param cacheLimit
|
||||
* @desc For setting the upper limit of image memory cache. (MPix)
|
||||
* @default 10
|
||||
*
|
||||
* @param screenWidth
|
||||
* @desc For setting the screen width.
|
||||
* @default 816
|
||||
*
|
||||
* @param screenHeight
|
||||
* @desc For setting the screen height.
|
||||
* @default 624
|
||||
*
|
||||
* @param changeWindowWidthTo
|
||||
* @desc If set, change window width to this value
|
||||
*
|
||||
* @param changeWindowHeightTo
|
||||
* @desc If set, change window height to this value
|
||||
*
|
||||
* @param renderingMode
|
||||
* @desc Rendering mode (canvas/webgl/auto)
|
||||
* @default auto
|
||||
*
|
||||
* @param alwaysDash
|
||||
* @desc To set initial value as to whether the player always dashes. (on/off)
|
||||
* @default off
|
||||
*/
|
||||
|
||||
/*:ja
|
||||
* @plugindesc 基本的なパラメーターを設定するプラグインです。
|
||||
* @author RM CoreScript team
|
||||
*
|
||||
* @help このプラグインにはプラグインコマンドはありません。
|
||||
*
|
||||
* @param cacheLimit
|
||||
* @desc 画像のメモリへのキャッシュの上限値 (MPix)
|
||||
* @default 10
|
||||
*
|
||||
* @param screenWidth
|
||||
* @desc 画面サイズの幅
|
||||
* @default 816
|
||||
*
|
||||
* @param screenHeight
|
||||
* @desc 画面サイズの高さ
|
||||
* @default 624
|
||||
*
|
||||
* @param changeWindowWidthTo
|
||||
* @desc 値が設定された場合、ウインドウの幅を指定した値に変更
|
||||
*
|
||||
* @param changeWindowHeightTo
|
||||
* @desc 値が設定された場合、ウインドウの高さを指定した値に変更
|
||||
*
|
||||
* @param renderingMode
|
||||
* @desc レンダリングモード (canvas/webgl/auto)
|
||||
* @default auto
|
||||
*
|
||||
* @param alwaysDash
|
||||
* @desc プレイヤーが常時ダッシュするかどうかの初期値 (on/off)
|
||||
* @default off
|
||||
*/
|
||||
|
||||
(function () {
|
||||
function toNumber(str, def) {
|
||||
return isNaN(str) ? def : +(str || def);
|
||||
}
|
||||
|
||||
var parameters = PluginManager.parameters("Community_Basic");
|
||||
var cacheLimit = toNumber(parameters["cacheLimit"], 10);
|
||||
var screenWidth = toNumber(parameters["screenWidth"], 816);
|
||||
var screenHeight = toNumber(parameters["screenHeight"], 624);
|
||||
var renderingMode = parameters["renderingMode"].toLowerCase();
|
||||
var alwaysDash = parameters["alwaysDash"].toLowerCase() === "on";
|
||||
var windowWidthTo = toNumber(parameters["changeWindowWidthTo"], 0);
|
||||
var windowHeightTo = toNumber(parameters["changeWindowHeightTo"], 0);
|
||||
|
||||
var windowWidth;
|
||||
var windowHeight;
|
||||
|
||||
if (windowWidthTo) {
|
||||
windowWidth = windowWidthTo;
|
||||
} else if (screenWidth !== SceneManager._screenWidth) {
|
||||
windowWidth = screenWidth;
|
||||
}
|
||||
|
||||
if (windowHeightTo) {
|
||||
windowHeight = windowHeightTo;
|
||||
} else if (screenHeight !== SceneManager._screenHeight) {
|
||||
windowHeight = screenHeight;
|
||||
}
|
||||
|
||||
ImageCache.limit = cacheLimit * 1000 * 1000;
|
||||
SceneManager._screenWidth = screenWidth;
|
||||
SceneManager._screenHeight = screenHeight;
|
||||
SceneManager._boxWidth = screenWidth;
|
||||
SceneManager._boxHeight = screenHeight;
|
||||
|
||||
SceneManager.preferableRendererType = function () {
|
||||
if (Utils.isOptionValid("canvas")) {
|
||||
return "canvas";
|
||||
} else if (Utils.isOptionValid("webgl")) {
|
||||
return "webgl";
|
||||
} else if (renderingMode === "canvas") {
|
||||
return "canvas";
|
||||
} else if (renderingMode === "webgl") {
|
||||
return "webgl";
|
||||
} else {
|
||||
return "auto";
|
||||
}
|
||||
};
|
||||
|
||||
var _ConfigManager_applyData = ConfigManager.applyData;
|
||||
ConfigManager.applyData = function (config) {
|
||||
_ConfigManager_applyData.apply(this, arguments);
|
||||
if (config["alwaysDash"] === undefined) {
|
||||
this.alwaysDash = alwaysDash;
|
||||
}
|
||||
};
|
||||
|
||||
var _SceneManager_initNwjs = SceneManager.initNwjs;
|
||||
SceneManager.initNwjs = function () {
|
||||
_SceneManager_initNwjs.apply(this, arguments);
|
||||
|
||||
if (Utils.isNwjs() && windowWidth && windowHeight) {
|
||||
var dw = windowWidth - window.innerWidth;
|
||||
var dh = windowHeight - window.innerHeight;
|
||||
window.moveBy(-dw / 2, -dh / 2);
|
||||
window.resizeBy(dw, dh);
|
||||
}
|
||||
};
|
||||
})();
|
||||
233
www/js/plugins/CustomizeConfigDefault.js
Normal file
233
www/js/plugins/CustomizeConfigDefault.js
Normal file
|
|
@ -0,0 +1,233 @@
|
|||
//=============================================================================
|
||||
// CustomizeConfigDefault.js
|
||||
// ----------------------------------------------------------------------------
|
||||
// Copyright (c) 2015 Triacontane
|
||||
// This plugin is released under the MIT License.
|
||||
// http://opensource.org/licenses/mit-license.php
|
||||
// ----------------------------------------------------------------------------
|
||||
// Version
|
||||
// 1.1.0 2016/08/01 項目自体を非表示にする機能を追加しました。
|
||||
// 1.0.3 2016/06/22 多言語対応
|
||||
// 1.0.2 2016/01/17 競合対策
|
||||
// 1.0.1 2015/11/01 既存コードの再定義方法を修正(内容に変化なし)
|
||||
// 1.0.0 2015/11/01 初版
|
||||
// ----------------------------------------------------------------------------
|
||||
// [Blog] : http://triacontane.blogspot.jp/
|
||||
// [Twitter]: https://twitter.com/triacontane/
|
||||
// [GitHub] : https://github.com/triacontane/
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc Setting default value for Options
|
||||
* @author triacontane
|
||||
*
|
||||
* @param AlwaysDash
|
||||
* @desc Always dash(ON/OFF)
|
||||
* @default OFF
|
||||
*
|
||||
* @param CommandRemember
|
||||
* @desc Command remember(ON/OFF)
|
||||
* @default OFF
|
||||
*
|
||||
* @param BgmVolume
|
||||
* @desc BGM Volume(0-100)
|
||||
* @default 100
|
||||
*
|
||||
* @param BgsVolume
|
||||
* @desc BGS Volume(0-100)
|
||||
* @default 100
|
||||
*
|
||||
* @param MeVolume
|
||||
* @desc ME Volume(0-100)
|
||||
* @default 100
|
||||
*
|
||||
* @param SeVolume
|
||||
* @desc SE Volume(0-100)
|
||||
* @default 100
|
||||
*
|
||||
* @param EraseAlwaysDash
|
||||
* @desc Erase AlwaysDash Option(ON/OFF)
|
||||
* @default OFF
|
||||
*
|
||||
* @param EraseCommandRemember
|
||||
* @desc Erase CommandRemember Option(ON/OFF)
|
||||
* @default OFF
|
||||
*
|
||||
* @param EraseBgmVolume
|
||||
* @desc Erase BgmVolume Option(ON/OFF)
|
||||
* @default OFF
|
||||
*
|
||||
* @param EraseBgsVolume
|
||||
* @desc Erase BgsVolume Option(ON/OFF)
|
||||
* @default OFF
|
||||
*
|
||||
* @param EraseMeVolume
|
||||
* @desc Erase MeVolume Option(ON/OFF)
|
||||
* @default OFF
|
||||
*
|
||||
* @param EraseSeVolume
|
||||
* @desc Erase SeVolume Option(ON/OFF)
|
||||
* @default OFF
|
||||
*
|
||||
* @help Setting default value for Options.
|
||||
*
|
||||
* This plugin is released under the MIT License.
|
||||
*/
|
||||
/*:ja
|
||||
* @plugindesc オプションデフォルト値設定プラグイン
|
||||
* @author トリアコンタン
|
||||
*
|
||||
* @param 常時ダッシュ
|
||||
* @desc 常にダッシュする。(Shiftキーを押している場合のみ歩行)(ON/OFF)
|
||||
* @default OFF
|
||||
*
|
||||
* @param コマンド記憶
|
||||
* @desc 選択したコマンドを記憶する。(ON/OFF)
|
||||
* @default OFF
|
||||
*
|
||||
* @param BGM音量
|
||||
* @desc BGMの音量。0-100
|
||||
* @default 100
|
||||
*
|
||||
* @param BGS音量
|
||||
* @desc BGSの音量。0-100
|
||||
* @default 100
|
||||
*
|
||||
* @param ME音量
|
||||
* @desc MEの音量。0-100
|
||||
* @default 100
|
||||
*
|
||||
* @param SE音量
|
||||
* @desc SEの音量。0-100
|
||||
* @default 100
|
||||
*
|
||||
* @param 常時ダッシュ消去
|
||||
* @desc 常時ダッシュの項目を非表示にする。(ON/OFF)
|
||||
* @default OFF
|
||||
*
|
||||
* @param コマンド記憶消去
|
||||
* @desc コマンド記憶の項目を非表示にする。(ON/OFF)
|
||||
* @default OFF
|
||||
*
|
||||
* @param BGM音量消去
|
||||
* @desc BGM音量の項目を非表示にする。(ON/OFF)
|
||||
* @default OFF
|
||||
*
|
||||
* @param BGS音量消去
|
||||
* @desc BGS音量の項目を非表示にする。(ON/OFF)
|
||||
* @default OFF
|
||||
*
|
||||
* @param ME音量消去
|
||||
* @desc ME音量の項目を非表示にする。(ON/OFF)
|
||||
* @default OFF
|
||||
*
|
||||
* @param SE音量消去
|
||||
* @desc SE音量の項目を非表示にする。(ON/OFF)
|
||||
* @default OFF
|
||||
*
|
||||
* @help オプション画面で設定可能な項目のデフォルト値を指定した値に変更します。
|
||||
* 例えば、初回から常時ダッシュをONにしておけば
|
||||
* プレイヤーが設定を変更する手間を省くことができます。
|
||||
* この処理はconfig.rpgsaveが未作成の場合にのみ実行されます。
|
||||
*
|
||||
* また、項目そのものを消去することもできます。
|
||||
* 例えば、戦闘がないゲームでは「コマンド記憶」等は不要なので消去できます。
|
||||
*
|
||||
* このプラグインにはプラグインコマンドはありません。
|
||||
*
|
||||
* 利用規約:
|
||||
* 作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)
|
||||
* についても制限はありません。
|
||||
* このプラグインはもうあなたのものです。
|
||||
*/
|
||||
(function () {
|
||||
"use strict";
|
||||
var pluginName = "CustomizeConfigDefault";
|
||||
|
||||
var getParamNumber = function (paramNames, min, max) {
|
||||
var value = getParamOther(paramNames);
|
||||
if (arguments.length < 2) min = -Infinity;
|
||||
if (arguments.length < 3) max = Infinity;
|
||||
return (parseInt(value, 10) || 0).clamp(min, max);
|
||||
};
|
||||
|
||||
var getParamBoolean = function (paramNames) {
|
||||
var value = getParamOther(paramNames);
|
||||
return (value || "").toUpperCase() === "ON";
|
||||
};
|
||||
|
||||
var getParamOther = function (paramNames) {
|
||||
if (!Array.isArray(paramNames)) paramNames = [paramNames];
|
||||
for (var i = 0; i < paramNames.length; i++) {
|
||||
var name = PluginManager.parameters(pluginName)[paramNames[i]];
|
||||
if (name) return name;
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// パラメータの取得と整形
|
||||
//=============================================================================
|
||||
var paramAlwaysDash = getParamBoolean(["AlwaysDash", "常時ダッシュ"]);
|
||||
var paramCommandRemember = getParamBoolean([
|
||||
"CommandRemember",
|
||||
"コマンド記憶",
|
||||
]);
|
||||
var paramBgmVolume = getParamNumber(["BgmVolume", "BGM音量"], 0, 100);
|
||||
var paramBgsVolume = getParamNumber(["BgsVolume", "BGS音量"], 0, 100);
|
||||
var paramMeVolume = getParamNumber(["MeVolume", "ME音量"], 0, 100);
|
||||
var paramSeVolume = getParamNumber(["SeVolume", "SE音量"], 0, 100);
|
||||
var paramEraseAlwaysDash = getParamBoolean([
|
||||
"EraseAlwaysDash",
|
||||
"常時ダッシュ消去",
|
||||
]);
|
||||
var paramEraseCommandRemember = getParamBoolean([
|
||||
"EraseCommandRemember",
|
||||
"コマンド記憶消去",
|
||||
]);
|
||||
var paramEraseBgmVolume = getParamBoolean(["EraseBgmVolume", "BGM音量消去"]);
|
||||
var paramEraseBgsVolume = getParamBoolean(["EraseBgsVolume", "BGS音量消去"]);
|
||||
var paramEraseMeVolume = getParamBoolean(["EraseMeVolume", "ME音量消去"]);
|
||||
var paramEraseSeVolume = getParamBoolean(["EraseSeVolume", "SE音量消去"]);
|
||||
|
||||
//=============================================================================
|
||||
// ConfigManager
|
||||
// それぞれの項目に初期値を与えます。
|
||||
//=============================================================================
|
||||
var _ConfigManagerApplyData = ConfigManager.applyData;
|
||||
ConfigManager.applyData = function (config) {
|
||||
_ConfigManagerApplyData.apply(this, arguments);
|
||||
if (config.alwaysDash == null) this.alwaysDash = paramAlwaysDash;
|
||||
if (config.commandRemember == null)
|
||||
this.commandRemember = paramCommandRemember;
|
||||
if (config.bgmVolume == null) this.bgmVolume = paramBgmVolume;
|
||||
if (config.bgsVolume == null) this.bgsVolume = paramBgsVolume;
|
||||
if (config.meVolume == null) this.meVolume = paramMeVolume;
|
||||
if (config.seVolume == null) this.seVolume = paramSeVolume;
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Window_Options
|
||||
// パラメータを空白にした項目を除去します。
|
||||
//=============================================================================
|
||||
var _Window_Options_makeCommandList =
|
||||
Window_Options.prototype.makeCommandList;
|
||||
Window_Options.prototype.makeCommandList = function () {
|
||||
_Window_Options_makeCommandList.apply(this, arguments);
|
||||
if (paramEraseAlwaysDash) this.eraseOption("alwaysDash");
|
||||
if (paramEraseCommandRemember) this.eraseOption("commandRemember");
|
||||
if (paramEraseBgmVolume) this.eraseOption("bgmVolume");
|
||||
if (paramEraseBgsVolume) this.eraseOption("bgsVolume");
|
||||
if (paramEraseMeVolume) this.eraseOption("meVolume");
|
||||
if (paramEraseSeVolume) this.eraseOption("seVolume");
|
||||
};
|
||||
|
||||
Window_Options.prototype.eraseOption = function (symbol) {
|
||||
for (var i = 0; i < this._list.length; i++) {
|
||||
if (this._list[i].symbol === symbol) {
|
||||
this._list.splice(i, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
})();
|
||||
783
www/js/plugins/CustomizeConfigItem.js
Normal file
783
www/js/plugins/CustomizeConfigItem.js
Normal file
|
|
@ -0,0 +1,783 @@
|
|||
//=============================================================================
|
||||
// CustomizeConfigItem.js
|
||||
// ----------------------------------------------------------------------------
|
||||
// Copyright (c) 2015 Triacontane
|
||||
// This software is released under the MIT License.
|
||||
// http://opensource.org/licenses/mit-license.php
|
||||
// ----------------------------------------------------------------------------
|
||||
// Version
|
||||
// 2.1.0 2017/12/15 追加項目のデフォルト項目を含めた並び順を自由に設定できる機能を追加
|
||||
// 項目名称を日本語化
|
||||
// 2.0.1 2017/10/15 2.0.0の修正によりスイッチ項目を有効にしたときにゲーム開始するとエラーになる問題を修正
|
||||
// 2.0.0 2017/09/10 ツクールの型指定機能に対応し、各オプション項目を任意の数だけ追加できる機能を追加
|
||||
// 1.2.3 2017/06/08 1.2.2の修正により起動できなくなっていた問題を修正
|
||||
// 1.2.2 2017/05/27 競合の可能性のある記述(Objectクラスへのプロパティ追加)をリファクタリング
|
||||
// 1.2.1 2016/12/08 1.2.0の機能追加以降、デフォルト項目で決定ボタンを押すとエラーになっていた現象を修正
|
||||
// 1.2.0 2016/12/02 各項目で決定ボタンを押したときに実行されるスクリプトを設定できる機能を追加
|
||||
// 1.1.1 2016/08/14 スイッチ項目、音量項目の初期値が無効になっていた問題を修正
|
||||
// 1.1.0 2016/04/29 項目をクリックしたときに項目値が循環するよう修正
|
||||
// 1.0.0 2016/01/17 初版
|
||||
// ----------------------------------------------------------------------------
|
||||
// [Blog] : http://triacontane.blogspot.jp/
|
||||
// [Twitter]: https://twitter.com/triacontane/
|
||||
// [GitHub] : https://github.com/triacontane/
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc オプション任意項目作成プラグイン
|
||||
* @author トリアコンタン
|
||||
*
|
||||
* @param 数値項目
|
||||
* @desc 追加する数値項目のオプション項目情報です。
|
||||
* @default
|
||||
* @type struct<NumberData>[]
|
||||
*
|
||||
* @param 文字項目
|
||||
* @desc 追加する文字項目のオプション項目情報です。
|
||||
* @default
|
||||
* @type struct<StringData>[]
|
||||
*
|
||||
* @param スイッチ項目
|
||||
* @desc 追加するスイッチ項目のオプション項目情報です。
|
||||
* @default
|
||||
* @type struct<BooleanData>[]
|
||||
*
|
||||
* @param 音量項目
|
||||
* @desc 追加する音量項目のオプション項目情報です。
|
||||
* @default
|
||||
* @type struct<VolumeData>[]
|
||||
*
|
||||
* @help オプション画面に任意の項目を追加します。
|
||||
* 項目の種類は、以下の四種類があります。
|
||||
* 不要な項目は値を空に設定してください。
|
||||
*
|
||||
* ・スイッチ項目:
|
||||
* ON/OFFを選択する項目です。指定した番号のスイッチと値が同期されます。
|
||||
* オプションから値を設定すれば、それがスイッチに反映され、
|
||||
* スイッチを変更すれば、オプションの値に反映されます。
|
||||
* さらに、値はセーブデータ間で共有されます。
|
||||
* 隠しフラグを設定すると、オプション画面に表示されなくなります。
|
||||
* ゲームを進めないと出現しない項目などに利用できます。
|
||||
* 隠しフラグはプラグインコマンドから解除できます。
|
||||
*
|
||||
* スクリプトは上級者向け項目です。対象にカーソルを合わせて決定ボタンを
|
||||
* 押下すると指定したJavaScriptを実行できます。
|
||||
* 主に専用の設定画面などの遷移に使用します。
|
||||
*
|
||||
* ・数値項目:
|
||||
* 数値を選択する項目です。指定した番号の変数と値が同期されます。
|
||||
* スイッチ項目で指定した内容に加えて、
|
||||
* 最小値と最大値および一回の入力で変化する値を指定します。
|
||||
*
|
||||
* ・音量項目:
|
||||
* 音量を選択する項目です。BGMボリュームなどと同じ仕様で
|
||||
* キャラクターごとのボイス音量等に使ってください。
|
||||
*
|
||||
* ・文字項目:
|
||||
* 文字を選択する項目です。指定した文字の配列から項目を選択します。
|
||||
* 選択した文字のインデックス(開始位置は0)が変数に設定されます。
|
||||
* 初期値に設定する値もインデックスです。
|
||||
*
|
||||
* プラグインコマンド詳細
|
||||
* イベントコマンド「プラグインコマンド」から実行。
|
||||
* (パラメータの間は半角スペースで区切る)
|
||||
*
|
||||
* CC_UNLOCK or
|
||||
* オプション任意項目の隠し解除 [項目名]
|
||||
* 指定した項目の隠しフラグを解除します。
|
||||
* 使用例:CC_UNLOCK 数値項目1
|
||||
*
|
||||
* 利用規約:
|
||||
* 作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)
|
||||
* についても制限はありません。
|
||||
* このプラグインはもうあなたのものです。
|
||||
*/
|
||||
|
||||
/*~struct~NumberData:
|
||||
* @param Name
|
||||
* @text 項目名称
|
||||
* @desc 項目の名称です。
|
||||
* @default 数値項目1
|
||||
*
|
||||
* @param DefaultValue
|
||||
* @text 初期値
|
||||
* @desc 項目の初期値です。
|
||||
* @default 0
|
||||
* @type number
|
||||
*
|
||||
* @param VariableID
|
||||
* @text 変数番号
|
||||
* @desc 項目の設定内容が格納される変数番号です。
|
||||
* @default 0
|
||||
* @type variable
|
||||
*
|
||||
* @param HiddenFlag
|
||||
* @text 隠しフラグ
|
||||
* @desc 項目がデフォルトで隠されるようになります。プラグインコマンドの実行で表示されます。
|
||||
* @default false
|
||||
* @type boolean
|
||||
*
|
||||
* @param Script
|
||||
* @text スクリプト
|
||||
* @desc 項目を決定したときに実行されるスクリプトです。
|
||||
* @default
|
||||
*
|
||||
* @param NumberMin
|
||||
* @text 最小値
|
||||
* @desc 項目の最小値です。
|
||||
* @default 0
|
||||
* @type number
|
||||
*
|
||||
* @param NumberMax
|
||||
* @text 最大値
|
||||
* @desc 項目の最大値です。
|
||||
* @default 100
|
||||
* @type number
|
||||
*
|
||||
* @param NumberStep
|
||||
* @text 変化値
|
||||
* @desc 項目を操作したときの数値の変化量です。
|
||||
* @default 20
|
||||
* @type number
|
||||
*
|
||||
* @param AddPosition
|
||||
* @text 追加位置
|
||||
* @desc 項目を追加する位置です。指定した項目の上に追加されます。
|
||||
* @default
|
||||
* @type select
|
||||
* @option 末尾に追加
|
||||
* @value
|
||||
* @option 常時ダッシュ
|
||||
* @value alwaysDash
|
||||
* @option コマンド記憶
|
||||
* @value commandRemember
|
||||
* @option BGM 音量
|
||||
* @value bgmVolume
|
||||
* @option BGS 音量
|
||||
* @value bgsVolume
|
||||
* @option ME 音量
|
||||
* @value meVolume
|
||||
* @option SE 音量
|
||||
* @value seVolume
|
||||
*/
|
||||
/*~struct~BooleanData:
|
||||
* @param Name
|
||||
* @text 項目名称
|
||||
* @desc 項目の名称です。
|
||||
* @default スイッチ項目1
|
||||
*
|
||||
* @param DefaultValue
|
||||
* @text 初期値
|
||||
* @desc 項目の初期値です。
|
||||
* @default false
|
||||
* @type boolean
|
||||
*
|
||||
* @param SwitchID
|
||||
* @text スイッチ番号
|
||||
* @desc 項目の設定内容が格納されるスイッチ番号です。
|
||||
* @default 0
|
||||
* @type switch
|
||||
*
|
||||
* @param HiddenFlag
|
||||
* @text 隠しフラグ
|
||||
* @desc 項目がデフォルトで隠されるようになります。プラグインコマンドの実行で表示されます。
|
||||
* @default false
|
||||
* @type boolean
|
||||
*
|
||||
* @param Script
|
||||
* @text スクリプト
|
||||
* @desc 項目を決定したときに実行されるスクリプトです。
|
||||
* @default
|
||||
*
|
||||
* @param AddPosition
|
||||
* @text 追加位置
|
||||
* @desc 項目を追加する位置です。指定した項目の上に追加されます。
|
||||
* @default
|
||||
* @type select
|
||||
* @option 末尾に追加
|
||||
* @value
|
||||
* @option 常時ダッシュ
|
||||
* @value alwaysDash
|
||||
* @option コマンド記憶
|
||||
* @value commandRemember
|
||||
* @option BGM 音量
|
||||
* @value bgmVolume
|
||||
* @option BGS 音量
|
||||
* @value bgsVolume
|
||||
* @option ME 音量
|
||||
* @value meVolume
|
||||
* @option SE 音量
|
||||
* @value seVolume
|
||||
*/
|
||||
/*~struct~StringData:
|
||||
* @param Name
|
||||
* @text 項目名称
|
||||
* @desc 項目の名称です。
|
||||
* @default 文字列項目1
|
||||
*
|
||||
* @param DefaultValue
|
||||
* @text 初期値
|
||||
* @desc 項目の初期値です。インデックスの数値を指定します。
|
||||
* @default 0
|
||||
* @type number
|
||||
*
|
||||
* @param VariableID
|
||||
* @text 変数番号
|
||||
* @desc 項目の設定内容が格納される変数番号です。
|
||||
* @default 0
|
||||
* @type variable
|
||||
*
|
||||
* @param HiddenFlag
|
||||
* @text 隠しフラグ
|
||||
* @desc 項目がデフォルトで隠されるようになります。プラグインコマンドの実行で表示されます。
|
||||
* @default false
|
||||
* @type boolean
|
||||
*
|
||||
* @param Script
|
||||
* @text スクリプト
|
||||
* @desc 項目を決定したときに実行されるスクリプトです。
|
||||
* @default
|
||||
*
|
||||
* @param StringItems
|
||||
* @text 内容の配列
|
||||
* @desc 項目の設定内容の配列です。
|
||||
* @default
|
||||
* @type string[]
|
||||
*
|
||||
* @param AddPosition
|
||||
* @text 追加位置
|
||||
* @desc 項目を追加する位置です。指定した項目の上に追加されます。
|
||||
* @default
|
||||
* @type select
|
||||
* @option 末尾に追加
|
||||
* @value
|
||||
* @option 常時ダッシュ
|
||||
* @value alwaysDash
|
||||
* @option コマンド記憶
|
||||
* @value commandRemember
|
||||
* @option BGM 音量
|
||||
* @value bgmVolume
|
||||
* @option BGS 音量
|
||||
* @value bgsVolume
|
||||
* @option ME 音量
|
||||
* @value meVolume
|
||||
* @option SE 音量
|
||||
* @value seVolume
|
||||
*/
|
||||
/*~struct~VolumeData:
|
||||
* @param Name
|
||||
* @text 項目名称
|
||||
* @desc 項目の名称です。
|
||||
* @default 音量項目1
|
||||
*
|
||||
* @param DefaultValue
|
||||
* @text 初期値
|
||||
* @desc 項目の初期値です。
|
||||
* @default 0
|
||||
* @type number
|
||||
*
|
||||
* @param VariableID
|
||||
* @text 変数番号
|
||||
* @desc 項目の設定内容が格納される変数番号です。
|
||||
* @default 0
|
||||
* @type variable
|
||||
*
|
||||
* @param HiddenFlag
|
||||
* @text 隠しフラグ
|
||||
* @desc 項目がデフォルトで隠されるようになります。プラグインコマンドの実行で表示されます。
|
||||
* @default false
|
||||
* @type boolean
|
||||
*
|
||||
* @param Script
|
||||
* @text スクリプト
|
||||
* @desc 項目を決定したときに実行されるスクリプトです。
|
||||
* @default
|
||||
*
|
||||
* @param AddPosition
|
||||
* @text 追加位置
|
||||
* @desc 項目を追加する位置です。指定した項目の上に追加されます。
|
||||
* @default
|
||||
* @type select
|
||||
* @option 末尾に追加
|
||||
* @value
|
||||
* @option 常時ダッシュ
|
||||
* @value alwaysDash
|
||||
* @option コマンド記憶
|
||||
* @value commandRemember
|
||||
* @option BGM 音量
|
||||
* @value bgmVolume
|
||||
* @option BGS 音量
|
||||
* @value bgsVolume
|
||||
* @option ME 音量
|
||||
* @value meVolume
|
||||
* @option SE 音量
|
||||
* @value seVolume
|
||||
*/
|
||||
|
||||
(function () {
|
||||
"use strict";
|
||||
var pluginName = "CustomizeConfigItem";
|
||||
|
||||
var getParamString = function (paramNames) {
|
||||
var value = getParamOther(paramNames);
|
||||
return value == null ? "" : value;
|
||||
};
|
||||
|
||||
var getParamOther = function (paramNames) {
|
||||
if (!Array.isArray(paramNames)) paramNames = [paramNames];
|
||||
for (var i = 0; i < paramNames.length; i++) {
|
||||
var name = PluginManager.parameters(pluginName)[paramNames[i]];
|
||||
if (name) return name;
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
var getParamArrayJson = function (paramNames, defaultValue) {
|
||||
var value = getParamString(paramNames) || null;
|
||||
try {
|
||||
value = JSON.parse(value);
|
||||
if (value === null) {
|
||||
value = defaultValue;
|
||||
} else {
|
||||
value = value.map(function (valueData) {
|
||||
return JSON.parse(valueData);
|
||||
});
|
||||
}
|
||||
} catch (e) {
|
||||
alert(
|
||||
`!!!Plugin param is wrong.!!!\nPlugin:${pluginName}.js\nName:[${paramNames}]\nValue:${value}`
|
||||
);
|
||||
value = defaultValue;
|
||||
}
|
||||
return value;
|
||||
};
|
||||
|
||||
var getCommandName = function (command) {
|
||||
return (command || "").toUpperCase();
|
||||
};
|
||||
|
||||
var getArgNumber = function (arg, min, max) {
|
||||
if (arguments.length < 2) min = -Infinity;
|
||||
if (arguments.length < 3) max = Infinity;
|
||||
return (parseInt(arg) || 0).clamp(min, max);
|
||||
};
|
||||
|
||||
var getArgBoolean = function (arg) {
|
||||
return (arg || "").toUpperCase() === "TRUE";
|
||||
};
|
||||
|
||||
var getArgJson = function (arg, defaultValue) {
|
||||
try {
|
||||
arg = JSON.parse(arg || null);
|
||||
if (arg === null) {
|
||||
arg = defaultValue;
|
||||
}
|
||||
} catch (e) {
|
||||
alert(
|
||||
`!!!Plugin param is wrong.!!!\nPlugin:${pluginName}.js\nValue:${arg}`
|
||||
);
|
||||
arg = defaultValue;
|
||||
}
|
||||
return arg;
|
||||
};
|
||||
|
||||
var iterate = function (that, handler) {
|
||||
Object.keys(that).forEach(function (key, index) {
|
||||
handler.call(that, key, that[key], index);
|
||||
});
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// パラメータの取得と整形
|
||||
//=============================================================================
|
||||
var param = {};
|
||||
param.numberOptions = getParamArrayJson(["NumberOptions", "数値項目"], []);
|
||||
param.stringOptions = getParamArrayJson(["StringOptions", "文字項目"], []);
|
||||
param.switchOptions = getParamArrayJson(
|
||||
["SwitchOptions", "スイッチ項目"],
|
||||
[]
|
||||
);
|
||||
param.volumeOptions = getParamArrayJson(["VolumeOptions", "音量項目"], []);
|
||||
|
||||
var localOptionWindowIndex = 0;
|
||||
|
||||
//=============================================================================
|
||||
// Game_Interpreter
|
||||
// プラグインコマンドを追加定義します。
|
||||
//=============================================================================
|
||||
var _Game_Interpreter_pluginCommand =
|
||||
Game_Interpreter.prototype.pluginCommand;
|
||||
Game_Interpreter.prototype.pluginCommand = function (command, args) {
|
||||
_Game_Interpreter_pluginCommand.call(this, command, args);
|
||||
this.pluginCommandCustomizeConfigItem(command, args);
|
||||
};
|
||||
|
||||
Game_Interpreter.prototype.pluginCommandCustomizeConfigItem = function (
|
||||
command,
|
||||
args
|
||||
) {
|
||||
switch (getCommandName(command)) {
|
||||
case "CC_UNLOCK":
|
||||
case "オプション任意項目の隠し解除":
|
||||
ConfigManager.customParamUnlock(args[0]);
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// ConfigManager
|
||||
// 追加項目の設定値や初期値を管理します。
|
||||
//=============================================================================
|
||||
ConfigManager.customParams = null;
|
||||
ConfigManager.hiddenInfo = {};
|
||||
ConfigManager._symbolNumber = "Number";
|
||||
ConfigManager._symbolBoolean = "Boolean";
|
||||
ConfigManager._symbolString = "String";
|
||||
ConfigManager._symbolVolume = "Volume";
|
||||
|
||||
ConfigManager.getCustomParams = function () {
|
||||
if (this.customParams) {
|
||||
return this.customParams;
|
||||
}
|
||||
this.customParams = {};
|
||||
param.numberOptions.forEach(function (optionItem, index) {
|
||||
this.makeNumberOption(optionItem, index);
|
||||
}, this);
|
||||
param.stringOptions.forEach(function (optionItem, index) {
|
||||
this.makeStringOption(optionItem, index);
|
||||
}, this);
|
||||
param.switchOptions.forEach(function (optionItem, index) {
|
||||
this.makeSwitchOption(optionItem, index);
|
||||
}, this);
|
||||
param.volumeOptions.forEach(function (optionItem, index) {
|
||||
this.makeVolumeOption(optionItem, index);
|
||||
}, this);
|
||||
return this.customParams;
|
||||
};
|
||||
|
||||
ConfigManager.makeNumberOption = function (optionItem, index) {
|
||||
var data = this.makeCommonOption(optionItem, index, this._symbolNumber);
|
||||
data.min = getArgNumber(optionItem.NumberMin);
|
||||
data.max = getArgNumber(optionItem.NumberMax);
|
||||
data.offset = getArgNumber(optionItem.NumberStep);
|
||||
this.pushOptionData(data);
|
||||
};
|
||||
|
||||
ConfigManager.makeStringOption = function (optionItem, index) {
|
||||
var data = this.makeCommonOption(optionItem, index, this._symbolString);
|
||||
data.values = getArgJson(optionItem.StringItems, ["no item"]);
|
||||
data.min = 0;
|
||||
data.max = data.values.length - 1;
|
||||
this.pushOptionData(data);
|
||||
};
|
||||
|
||||
ConfigManager.makeSwitchOption = function (optionItem, index) {
|
||||
var data = this.makeCommonOption(optionItem, index, this._symbolBoolean);
|
||||
data.initValue = getArgBoolean(optionItem.DefaultValue);
|
||||
data.variable = getArgNumber(optionItem.SwitchID);
|
||||
this.pushOptionData(data);
|
||||
};
|
||||
|
||||
ConfigManager.makeVolumeOption = function (optionItem, index) {
|
||||
var data = this.makeCommonOption(optionItem, index, this._symbolVolume);
|
||||
this.pushOptionData(data);
|
||||
};
|
||||
|
||||
ConfigManager.makeCommonOption = function (optionItem, index, type) {
|
||||
var data = {};
|
||||
data.symbol = `${type}${index + 1}`;
|
||||
data.name = optionItem.Name;
|
||||
data.hidden = getArgBoolean(optionItem.HiddenFlag);
|
||||
data.script = optionItem.Script;
|
||||
data.initValue = getArgNumber(optionItem.DefaultValue);
|
||||
data.variable = getArgNumber(optionItem.VariableID, 0);
|
||||
data.addPotion = optionItem.AddPosition;
|
||||
return data;
|
||||
};
|
||||
|
||||
ConfigManager.pushOptionData = function (data) {
|
||||
this.customParams[data.symbol] = data;
|
||||
};
|
||||
|
||||
var _ConfigManager_makeData = ConfigManager.makeData;
|
||||
ConfigManager.makeData = function () {
|
||||
var config = _ConfigManager_makeData.apply(this, arguments);
|
||||
config.hiddenInfo = {};
|
||||
iterate(
|
||||
this.getCustomParams(),
|
||||
function (symbol) {
|
||||
config[symbol] = this[symbol];
|
||||
config.hiddenInfo[symbol] = this.hiddenInfo[symbol];
|
||||
}.bind(this)
|
||||
);
|
||||
return config;
|
||||
};
|
||||
|
||||
var _ConfigManager_applyData = ConfigManager.applyData;
|
||||
ConfigManager.applyData = function (config) {
|
||||
_ConfigManager_applyData.apply(this, arguments);
|
||||
iterate(
|
||||
this.getCustomParams(),
|
||||
function (symbol, item) {
|
||||
if (symbol.contains(this._symbolBoolean)) {
|
||||
this[symbol] = this.readFlagCustom(config, symbol, item);
|
||||
} else if (symbol.contains(this._symbolVolume)) {
|
||||
this[symbol] = this.readVolumeCustom(config, symbol, item);
|
||||
} else {
|
||||
this[symbol] = this.readOther(config, symbol, item);
|
||||
}
|
||||
this.hiddenInfo[symbol] = config.hiddenInfo
|
||||
? config.hiddenInfo[symbol]
|
||||
: item.hidden;
|
||||
}.bind(this)
|
||||
);
|
||||
};
|
||||
|
||||
ConfigManager.customParamUnlock = function (name) {
|
||||
iterate(
|
||||
this.getCustomParams(),
|
||||
function (symbol, item) {
|
||||
if (item.name === name) this.hiddenInfo[symbol] = false;
|
||||
}.bind(this)
|
||||
);
|
||||
this.save();
|
||||
};
|
||||
|
||||
ConfigManager.readOther = function (config, name, item) {
|
||||
var value = config[name];
|
||||
if (value !== undefined) {
|
||||
return Number(value).clamp(item.min, item.max);
|
||||
} else {
|
||||
return item.initValue;
|
||||
}
|
||||
};
|
||||
|
||||
ConfigManager.readFlagCustom = function (config, name, item) {
|
||||
if (config[name] !== undefined) {
|
||||
return this.readFlag(config, name);
|
||||
} else {
|
||||
return item.initValue;
|
||||
}
|
||||
};
|
||||
|
||||
ConfigManager.readVolumeCustom = function (config, name, item) {
|
||||
if (config[name] !== undefined) {
|
||||
return this.readVolume(config, name);
|
||||
} else {
|
||||
return item.initValue;
|
||||
}
|
||||
};
|
||||
|
||||
ConfigManager.exportCustomParams = function () {
|
||||
if (!$gameVariables || !$gameSwitches) return;
|
||||
iterate(
|
||||
this.getCustomParams(),
|
||||
function (symbol, item) {
|
||||
if (item.variable > 0) {
|
||||
if (symbol.contains(this._symbolBoolean)) {
|
||||
$gameSwitches.setValue(item.variable, !!this[symbol]);
|
||||
} else {
|
||||
$gameVariables.setValue(item.variable, this[symbol]);
|
||||
}
|
||||
}
|
||||
}.bind(this)
|
||||
);
|
||||
};
|
||||
|
||||
ConfigManager.importCustomParams = function () {
|
||||
if (!$gameVariables || !$gameSwitches) return;
|
||||
iterate(
|
||||
this.getCustomParams(),
|
||||
function (symbol, item) {
|
||||
if (item.variable > 0) {
|
||||
if (symbol.contains(this._symbolBoolean)) {
|
||||
this[symbol] = $gameSwitches.value(item.variable);
|
||||
} else if (symbol.contains(this._symbolVolume)) {
|
||||
this[symbol] = $gameVariables.value(item.variable).clamp(0, 100);
|
||||
} else {
|
||||
this[symbol] = $gameVariables
|
||||
.value(item.variable)
|
||||
.clamp(item.min, item.max);
|
||||
}
|
||||
}
|
||||
}.bind(this)
|
||||
);
|
||||
};
|
||||
|
||||
var _ConfigManager_save = ConfigManager.save;
|
||||
ConfigManager.save = function () {
|
||||
_ConfigManager_save.apply(this, arguments);
|
||||
this.exportCustomParams();
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Game_Map
|
||||
// リフレッシュ時にオプション値を同期します。
|
||||
//=============================================================================
|
||||
var _Game_Map_refresh = Game_Map.prototype.refresh;
|
||||
Game_Map.prototype.refresh = function () {
|
||||
_Game_Map_refresh.apply(this, arguments);
|
||||
ConfigManager.importCustomParams();
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// DataManager
|
||||
// セーブ時とロード時にオプション値を同期します。
|
||||
//=============================================================================
|
||||
var _DataManager_setupNewGame = DataManager.setupNewGame;
|
||||
DataManager.setupNewGame = function () {
|
||||
_DataManager_setupNewGame.apply(this, arguments);
|
||||
ConfigManager.exportCustomParams();
|
||||
};
|
||||
|
||||
var _DataManager_loadGameWithoutRescue = DataManager.loadGameWithoutRescue;
|
||||
DataManager.loadGameWithoutRescue = function (savefileId) {
|
||||
var result = _DataManager_loadGameWithoutRescue.apply(this, arguments);
|
||||
ConfigManager.exportCustomParams();
|
||||
return result;
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Window_Options
|
||||
// 追加項目を描画します。
|
||||
//=============================================================================
|
||||
var _Window_Options_initialize = Window_Options.prototype.initialize;
|
||||
Window_Options.prototype.initialize = function () {
|
||||
this._customParams = ConfigManager.getCustomParams();
|
||||
_Window_Options_initialize.apply(this, arguments);
|
||||
this.select(localOptionWindowIndex);
|
||||
localOptionWindowIndex = 0;
|
||||
};
|
||||
|
||||
var _Window_Options_makeCommandList =
|
||||
Window_Options.prototype.makeCommandList;
|
||||
Window_Options.prototype.makeCommandList = function () {
|
||||
_Window_Options_makeCommandList.apply(this, arguments);
|
||||
this.addCustomOptions();
|
||||
};
|
||||
|
||||
Window_Options.prototype.addCustomOptions = function () {
|
||||
iterate(
|
||||
this._customParams,
|
||||
function (key, item) {
|
||||
if (!ConfigManager.hiddenInfo[key]) {
|
||||
this.addCommand(item.name, key);
|
||||
if (item.addPotion) {
|
||||
this.shiftCustomOptions(item.addPotion);
|
||||
}
|
||||
}
|
||||
}.bind(this)
|
||||
);
|
||||
};
|
||||
|
||||
Window_Options.prototype.shiftCustomOptions = function (addPotion) {
|
||||
var targetCommand = this._list.filter(function (command) {
|
||||
return command.symbol === addPotion;
|
||||
})[0];
|
||||
if (!targetCommand) {
|
||||
return;
|
||||
}
|
||||
var targetIndex = this._list.indexOf(targetCommand);
|
||||
var newCommand = this._list.pop();
|
||||
this._list.splice(targetIndex, 0, newCommand);
|
||||
};
|
||||
|
||||
var _Window_Options_statusText = Window_Options.prototype.statusText;
|
||||
Window_Options.prototype.statusText = function (index) {
|
||||
var result = _Window_Options_statusText.apply(this, arguments);
|
||||
var symbol = this.commandSymbol(index);
|
||||
var value = this.getConfigValue(symbol);
|
||||
if (this.isNumberSymbol(symbol)) {
|
||||
result = this.numberStatusText(value);
|
||||
} else if (this.isStringSymbol(symbol)) {
|
||||
result = this.stringStatusText(value, symbol);
|
||||
}
|
||||
return result;
|
||||
};
|
||||
|
||||
Window_Options.prototype.isNumberSymbol = function (symbol) {
|
||||
return symbol.contains(ConfigManager._symbolNumber);
|
||||
};
|
||||
|
||||
Window_Options.prototype.isStringSymbol = function (symbol) {
|
||||
return symbol.contains(ConfigManager._symbolString);
|
||||
};
|
||||
|
||||
Window_Options.prototype.isCustomSymbol = function (symbol) {
|
||||
return !!this._customParams[symbol];
|
||||
};
|
||||
|
||||
Window_Options.prototype.numberStatusText = function (value) {
|
||||
return value;
|
||||
};
|
||||
|
||||
Window_Options.prototype.stringStatusText = function (value, symbol) {
|
||||
return this._customParams[symbol].values[value];
|
||||
};
|
||||
|
||||
var _Window_Options_processOk = Window_Options.prototype.processOk;
|
||||
Window_Options.prototype.processOk = function () {
|
||||
if (!this._shiftValue(1, true))
|
||||
_Window_Options_processOk.apply(this, arguments);
|
||||
this.execScript();
|
||||
};
|
||||
|
||||
var _Window_Options_cursorRight = Window_Options.prototype.cursorRight;
|
||||
Window_Options.prototype.cursorRight = function (wrap) {
|
||||
if (!this._shiftValue(1, false))
|
||||
_Window_Options_cursorRight.apply(this, arguments);
|
||||
};
|
||||
|
||||
var _Window_Options_cursorLeft = Window_Options.prototype.cursorLeft;
|
||||
Window_Options.prototype.cursorLeft = function (wrap) {
|
||||
if (!this._shiftValue(-1, false))
|
||||
_Window_Options_cursorLeft.apply(this, arguments);
|
||||
};
|
||||
|
||||
Window_Options.prototype._shiftValue = function (sign, loopFlg) {
|
||||
var symbol = this.commandSymbol(this.index());
|
||||
var value = this.getConfigValue(symbol);
|
||||
if (this.isNumberSymbol(symbol)) {
|
||||
value += this.numberOffset(symbol) * sign;
|
||||
this.changeValue(symbol, this._clampValue(value, symbol, loopFlg));
|
||||
return true;
|
||||
}
|
||||
if (this.isStringSymbol(symbol)) {
|
||||
value += sign;
|
||||
this.changeValue(symbol, this._clampValue(value, symbol, loopFlg));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
Window_Options.prototype.execScript = function () {
|
||||
var symbol = this.commandSymbol(this.index());
|
||||
if (!this.isCustomSymbol(symbol)) return;
|
||||
var script = this._customParams[symbol].script;
|
||||
if (script) eval(script);
|
||||
localOptionWindowIndex = this.index();
|
||||
};
|
||||
|
||||
Window_Options.prototype._clampValue = function (value, symbol, loopFlg) {
|
||||
var maxValue = this._customParams[symbol].max;
|
||||
var minValue = this._customParams[symbol].min;
|
||||
if (loopFlg) {
|
||||
if (value > maxValue) value = minValue;
|
||||
if (value < minValue) value = maxValue;
|
||||
}
|
||||
return value.clamp(
|
||||
this._customParams[symbol].min,
|
||||
this._customParams[symbol].max
|
||||
);
|
||||
};
|
||||
|
||||
Window_Options.prototype.numberOffset = function (symbol) {
|
||||
var value = this._customParams[symbol].offset;
|
||||
if (Input.isPressed("shift")) value *= 10;
|
||||
return value;
|
||||
};
|
||||
|
||||
Window_Options.prototype.windowHeight = function () {
|
||||
return this.fittingHeight(Math.min(this.numVisibleRows(), 14));
|
||||
};
|
||||
})();
|
||||
53
www/js/plugins/KMS_AccelerateFileScene.js
Normal file
53
www/js/plugins/KMS_AccelerateFileScene.js
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
//=============================================================================
|
||||
// KMS_AccelerateFileScene.js
|
||||
// Last update: 2015/12/05
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc
|
||||
* [v0.1.0] Accelerate drawing save/load scene.
|
||||
*
|
||||
* @author TOMY (Kamesoft)
|
||||
*
|
||||
* @help This plugin does not provide plugin commands.
|
||||
*/
|
||||
|
||||
/*:ja
|
||||
* @plugindesc
|
||||
* [v0.1.0] セーブ/ロード画面の描画を高速化します。
|
||||
*
|
||||
* @author TOMY (Kamesoft)
|
||||
*
|
||||
* @help このプラグインには、プラグインコマンドはありません。
|
||||
*/
|
||||
|
||||
var KMS = KMS || {};
|
||||
|
||||
(function () {
|
||||
KMS.imported = KMS.imported || {};
|
||||
KMS.imported["AccelerateFileScene"] = true;
|
||||
|
||||
//var pluginParams = PluginManager.parameters('KMS_AccelerateFileScene');
|
||||
//var Params = {};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// DataManager
|
||||
|
||||
var _KMS_AccelerateFileScene_DataManager_loadGlobalInfo =
|
||||
DataManager.loadGlobalInfo;
|
||||
DataManager.loadGlobalInfo = function () {
|
||||
if (!this._globalInfoCache) {
|
||||
this._globalInfoCache =
|
||||
_KMS_AccelerateFileScene_DataManager_loadGlobalInfo.call(this);
|
||||
}
|
||||
|
||||
return this._globalInfoCache;
|
||||
};
|
||||
|
||||
var _KMS_AccelerateFileScene_DataManager_saveGlobalInfo =
|
||||
DataManager.saveGlobalInfo;
|
||||
DataManager.saveGlobalInfo = function (info) {
|
||||
this._globalInfoCache = null;
|
||||
_KMS_AccelerateFileScene_DataManager_saveGlobalInfo.call(this, info);
|
||||
};
|
||||
})();
|
||||
195
www/js/plugins/KMS_SaveWithSnap.js
Normal file
195
www/js/plugins/KMS_SaveWithSnap.js
Normal file
|
|
@ -0,0 +1,195 @@
|
|||
//=============================================================================
|
||||
// KMS_SaveWithSnap.js
|
||||
// Last update: 2015/12/04
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc
|
||||
* [v0.1.0] Add captured image on save/load scene.
|
||||
*
|
||||
* @author TOMY (Kamesoft)
|
||||
*
|
||||
* @param Image scale
|
||||
* @default 0.15
|
||||
* @desc Scale for snap images.
|
||||
*
|
||||
* @param Enable JPEG
|
||||
* @default 1
|
||||
* @desc Uses JPEG format if JPEG size is smaller than PNG size.
|
||||
*
|
||||
* @help This plugin does not provide plugin commands.
|
||||
*/
|
||||
|
||||
/*:ja
|
||||
* @plugindesc
|
||||
* [v0.1.0] セーブ/ロード画面にスクリーンショットを追加します。
|
||||
*
|
||||
* @author TOMY (Kamesoft)
|
||||
*
|
||||
* @param Image scale
|
||||
* @default 0.15
|
||||
* @desc セーブ時の画像データのサイズ倍率です。
|
||||
*
|
||||
* @param Enable JPEG
|
||||
* @default 1
|
||||
* @desc JPEG 形式が使用可能で、かつ PNG よりサイズが小さくなる場合は JPEG を使用します。
|
||||
*
|
||||
* @help このプラグインには、プラグインコマンドはありません。
|
||||
*/
|
||||
|
||||
var KMS = KMS || {};
|
||||
|
||||
(function () {
|
||||
KMS.imported = KMS.imported || {};
|
||||
KMS.imported["SaveWithSnap"] = true;
|
||||
|
||||
var pluginParams = PluginManager.parameters("KMS_SaveWithSnap");
|
||||
var Params = {};
|
||||
Params.savefileBitmapScale = Number(pluginParams["Image scale"] || 0.15);
|
||||
Params.enableJpeg = Number(pluginParams["Enable JPEG"] || 1);
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Bitmap
|
||||
|
||||
if (!Bitmap.prototype.save) {
|
||||
/*
|
||||
* ビットマップを URL 表現に変換
|
||||
*/
|
||||
Bitmap.prototype.toDataURL = function () {
|
||||
if (Params.enableJpeg) {
|
||||
// サイズが小さくなる方を返す
|
||||
// ※ サポート外の形式が指定されたら PNG になる仕様なので、
|
||||
// 変換結果が null 等になることはない
|
||||
var png = this._canvas.toDataURL("image/png");
|
||||
var jpeg = this._canvas.toDataURL("image/jpeg");
|
||||
return png.length < jpeg.length ? png : jpeg;
|
||||
} else {
|
||||
return this._canvas.toDataURL("image/png");
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// DataManager
|
||||
|
||||
var _KMS_SaveWithSnap_DataManager_loadSavefileImages =
|
||||
DataManager.loadSavefileImages;
|
||||
DataManager.loadSavefileImages = function (info) {
|
||||
_KMS_SaveWithSnap_DataManager_loadSavefileImages.call(this, info);
|
||||
|
||||
if (info.snapUrl) {
|
||||
ImageManager.loadNormalBitmap(info.snapUrl);
|
||||
}
|
||||
};
|
||||
|
||||
var _KMS_SaveWithSnap_DataManager_makeSavefileInfo =
|
||||
DataManager.makeSavefileInfo;
|
||||
DataManager.makeSavefileInfo = function () {
|
||||
var info = _KMS_SaveWithSnap_DataManager_makeSavefileInfo.call(this);
|
||||
|
||||
var bitmap = this.makeSavefileBitmap();
|
||||
if (bitmap) {
|
||||
info.snapUrl = bitmap.toDataURL();
|
||||
}
|
||||
|
||||
return info;
|
||||
};
|
||||
|
||||
/*
|
||||
* セーブファイル用のビットマップを作成
|
||||
*/
|
||||
DataManager.makeSavefileBitmap = function () {
|
||||
var bitmap = $gameTemp.getSavefileBitmap();
|
||||
if (!bitmap) {
|
||||
return null;
|
||||
}
|
||||
|
||||
var scale = Params.savefileBitmapScale;
|
||||
var newBitmap = new Bitmap(bitmap.width * scale, bitmap.height * scale);
|
||||
newBitmap.blt(
|
||||
bitmap,
|
||||
0,
|
||||
0,
|
||||
bitmap.width,
|
||||
bitmap.height,
|
||||
0,
|
||||
0,
|
||||
newBitmap.width,
|
||||
newBitmap.height
|
||||
);
|
||||
|
||||
return newBitmap;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Game_Temp
|
||||
|
||||
var _KMS_SaveWithSnap_Game_Temp_initialize = Game_Temp.prototype.initialize;
|
||||
Game_Temp.prototype.initialize = function () {
|
||||
_KMS_SaveWithSnap_Game_Temp_initialize.call(this);
|
||||
this._savefileBitmap = null;
|
||||
};
|
||||
|
||||
Game_Temp.prototype.setSavefileBitmap = function (bitmap) {
|
||||
this._savefileBitmap = bitmap;
|
||||
};
|
||||
|
||||
Game_Temp.prototype.getSavefileBitmap = function () {
|
||||
if (this._savefileBitmap) {
|
||||
return this._savefileBitmap;
|
||||
} else {
|
||||
return SceneManager._backgroundBitmap;
|
||||
}
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Window_SavefileList
|
||||
|
||||
var _KMS_SaveWithSnap_Window_SavefileList_drawItem =
|
||||
Window_SavefileList.prototype.drawItem;
|
||||
Window_SavefileList.prototype.drawItem = function (index) {
|
||||
var id = index + 1;
|
||||
var info = DataManager.loadSavefileInfo(id);
|
||||
if (info) {
|
||||
var valid = DataManager.isThisGameFile(id);
|
||||
var rect = this.itemRectForText(index);
|
||||
this.drawSnappedImage(info, rect, valid);
|
||||
}
|
||||
|
||||
_KMS_SaveWithSnap_Window_SavefileList_drawItem.call(this, index);
|
||||
|
||||
console.log(KMS.imported["AccelerateFileScene"]);
|
||||
};
|
||||
|
||||
/*
|
||||
* セーブファイルの画像を表示
|
||||
*/
|
||||
Window_SavefileList.prototype.drawSnappedImage = function (
|
||||
info,
|
||||
rect,
|
||||
valid
|
||||
) {
|
||||
if (!(valid && info.snapUrl)) {
|
||||
return;
|
||||
}
|
||||
|
||||
var bitmap = ImageManager.loadNormalBitmap(info.snapUrl);
|
||||
var dh = this.itemHeight() - 8;
|
||||
var dw = (bitmap.width * dh) / bitmap.height;
|
||||
var dx = rect.x + Math.max(rect.width - dw - 160, 0);
|
||||
var dy = rect.y + 4;
|
||||
|
||||
this.changePaintOpacity(true);
|
||||
this.contents.blt(
|
||||
bitmap,
|
||||
0,
|
||||
0,
|
||||
bitmap.width,
|
||||
bitmap.height,
|
||||
dx,
|
||||
dy,
|
||||
dw,
|
||||
dh
|
||||
);
|
||||
};
|
||||
})();
|
||||
4206
www/js/plugins/MKR_PlayerSensor.js
Normal file
4206
www/js/plugins/MKR_PlayerSensor.js
Normal file
File diff suppressed because it is too large
Load diff
324
www/js/plugins/MadeWithMv.js
Normal file
324
www/js/plugins/MadeWithMv.js
Normal file
|
|
@ -0,0 +1,324 @@
|
|||
/*:
|
||||
* NOTE: Images are stored in the img/system folder.
|
||||
*
|
||||
* @plugindesc Show a Splash Screen "Made with MV" and/or a Custom Splash Screen before going to main screen.
|
||||
* @author Dan "Liquidize" Deptula
|
||||
*
|
||||
* @help This plugin does not provide plugin commands.
|
||||
*
|
||||
* @param Show Made With MV
|
||||
* @desc Enabled/Disables showing the "Made with MV" splash screen.
|
||||
* OFF - false ON - true
|
||||
* Default: ON
|
||||
* @default true
|
||||
*
|
||||
* @param Made with MV Image
|
||||
* @desc The image to use when showing "Made with MV"
|
||||
* Default: MadeWithMv
|
||||
* @default MadeWithMv
|
||||
* @require 1
|
||||
* @dir img/system/
|
||||
* @type file
|
||||
*
|
||||
* @param Show Custom Splash
|
||||
* @desc Enabled/Disables showing the "Made with MV" splash screen.
|
||||
* OFF - false ON - true
|
||||
* Default: OFF
|
||||
* @default false
|
||||
*
|
||||
* @param Custom Image
|
||||
* @desc The image to use when showing "Made with MV"
|
||||
* Default:
|
||||
* @default
|
||||
* @require 1
|
||||
* @dir img/system/
|
||||
* @type file
|
||||
*
|
||||
* @param Fade Out Time
|
||||
* @desc The time it takes to fade out, in frames.
|
||||
* Default: 120
|
||||
* @default 120
|
||||
*
|
||||
* @param Fade In Time
|
||||
* @desc The time it takes to fade in, in frames.
|
||||
* Default: 120
|
||||
* @default 120
|
||||
*
|
||||
* @param Wait Time
|
||||
* @desc The time between fading in and out, in frames.
|
||||
* Default: 160
|
||||
* @default 160
|
||||
*
|
||||
*/
|
||||
/*:ja
|
||||
* メモ: イメージはimg/systemフォルダ内に保存されます。
|
||||
*
|
||||
* @plugindesc メイン画面へ進む前に、"Made with MV"のスプラッシュ画面もしくはカスタマイズされたスプラッシュ画面を表示します。
|
||||
* @author Dan "Liquidize" Deptula
|
||||
*
|
||||
* @help このプラグインにはプラグインコマンドはありません。
|
||||
*
|
||||
* @param Show Made With MV
|
||||
* @desc "Made with MV"のスプラッシュ画面を表示できる/できないようにします。
|
||||
* OFF - false ON - true
|
||||
* デフォルト: ON
|
||||
* @default true
|
||||
*
|
||||
* @param Made with MV Image
|
||||
* @desc "Made with MV"を表示する際に使用する画像
|
||||
* デフォルト: MadeWithMv
|
||||
* @default MadeWithMv
|
||||
* @require 1
|
||||
* @dir img/system/
|
||||
* @type file
|
||||
*
|
||||
* @param Show Custom Splash
|
||||
* @desc "Made with MV"のスプラッシュ画面を表示できる/できないようにします。
|
||||
* OFF - false ON - true
|
||||
* デフォルト: OFF
|
||||
* @default false
|
||||
*
|
||||
* @param Custom Image
|
||||
* @desc "Made with MV"を表示する際に使用する画像
|
||||
* デフォルト:
|
||||
* @default
|
||||
* @require 1
|
||||
* @dir img/system/
|
||||
* @type file
|
||||
*
|
||||
* @param Fade Out Time
|
||||
* @desc フェードアウトに要する時間(フレーム数)
|
||||
* デフォルト: 120
|
||||
* @default 120
|
||||
*
|
||||
* @param Fade In Time
|
||||
* @desc フェードインに要する時間(フレーム数)
|
||||
* デフォルト: 120
|
||||
* @default 120
|
||||
*
|
||||
* @param Wait Time
|
||||
* @desc フェードインからフェードアウトまでに要する時間(フレーム数)
|
||||
* デフォルト: 160
|
||||
* @default 160
|
||||
*
|
||||
*/
|
||||
var Liquidize = Liquidize || {};
|
||||
Liquidize.MadeWithMV = {};
|
||||
Liquidize.MadeWithMV.Parameters = PluginManager.parameters("MadeWithMv");
|
||||
|
||||
Liquidize.MadeWithMV.ShowMV = JSON.parse(
|
||||
Liquidize.MadeWithMV.Parameters["Show Made With MV"]
|
||||
);
|
||||
Liquidize.MadeWithMV.MVImage = String(
|
||||
Liquidize.MadeWithMV.Parameters["Made with MV Image"]
|
||||
);
|
||||
Liquidize.MadeWithMV.ShowCustom = JSON.parse(
|
||||
Liquidize.MadeWithMV.Parameters["Show Custom Splash"]
|
||||
);
|
||||
Liquidize.MadeWithMV.CustomImage = String(
|
||||
Liquidize.MadeWithMV.Parameters["Custom Image"]
|
||||
);
|
||||
Liquidize.MadeWithMV.FadeOutTime =
|
||||
Number(Liquidize.MadeWithMV.Parameters["Fade Out Time"]) || 120;
|
||||
Liquidize.MadeWithMV.FadeInTime =
|
||||
Number(Liquidize.MadeWithMV.Parameters["Fade In Time"]) || 120;
|
||||
Liquidize.MadeWithMV.WaitTime =
|
||||
Number(Liquidize.MadeWithMV.Parameters["Wait Time"]) || 160;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Scene_Splash
|
||||
//
|
||||
// This is a constructor, implementation is done in the inner scope.
|
||||
|
||||
function Scene_Splash() {
|
||||
this.initialize.apply(this, arguments);
|
||||
}
|
||||
|
||||
(function () {
|
||||
//-----------------------------------------------------------------------------
|
||||
// Scene_Boot
|
||||
//
|
||||
// The scene class for dealing with the game boot.
|
||||
|
||||
var _Scene_Boot_loadSystemImages = Scene_Boot.prototype.loadSystemImages;
|
||||
Scene_Boot.prototype.loadSystemImages = function () {
|
||||
_Scene_Boot_loadSystemImages.call(this);
|
||||
if (Liquidize.MadeWithMV.ShowMV) {
|
||||
ImageManager.loadSystem(Liquidize.MadeWithMV.MVImage);
|
||||
}
|
||||
if (Liquidize.MadeWithMV.ShowCustom) {
|
||||
ImageManager.loadSystem(Liquidize.MadeWithMV.CustomImage);
|
||||
}
|
||||
};
|
||||
|
||||
var _Scene_Boot_start = Scene_Boot.prototype.start;
|
||||
Scene_Boot.prototype.start = function () {
|
||||
if (
|
||||
(Liquidize.MadeWithMV.ShowMV || Liquidize.MadeWithMV.ShowCustom) &&
|
||||
!DataManager.isBattleTest() &&
|
||||
!DataManager.isEventTest()
|
||||
) {
|
||||
SceneManager.goto(Scene_Splash);
|
||||
} else {
|
||||
_Scene_Boot_start.call(this);
|
||||
}
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Scene_Splash
|
||||
//
|
||||
// The scene class for dealing with the splash screens.
|
||||
|
||||
Scene_Splash.prototype = Object.create(Scene_Base.prototype);
|
||||
Scene_Splash.prototype.constructor = Scene_Splash;
|
||||
|
||||
Scene_Splash.prototype.initialize = function () {
|
||||
Scene_Base.prototype.initialize.call(this);
|
||||
this._mvSplash = null;
|
||||
this._customSplash = null;
|
||||
this._mvWaitTime = Liquidize.MadeWithMV.WaitTime;
|
||||
this._customWaitTime = Liquidize.MadeWithMV.WaitTime;
|
||||
this._mvFadeOut = false;
|
||||
this._mvFadeIn = false;
|
||||
this._customFadeOut = false;
|
||||
this._customFadeIn = false;
|
||||
};
|
||||
|
||||
Scene_Splash.prototype.create = function () {
|
||||
Scene_Base.prototype.create.call(this);
|
||||
this.createSplashes();
|
||||
};
|
||||
|
||||
Scene_Splash.prototype.start = function () {
|
||||
Scene_Base.prototype.start.call(this);
|
||||
SceneManager.clearStack();
|
||||
if (this._mvSplash != null) {
|
||||
this.centerSprite(this._mvSplash);
|
||||
}
|
||||
if (this._customSplash != null) {
|
||||
this.centerSprite(this._customSplash);
|
||||
}
|
||||
};
|
||||
|
||||
Scene_Splash.prototype.update = function () {
|
||||
if (Liquidize.MadeWithMV.ShowMV) {
|
||||
if (!this._mvFadeIn) {
|
||||
this.startFadeIn(Liquidize.MadeWithMV.FadeInTime, false);
|
||||
this._mvFadeIn = true;
|
||||
} else {
|
||||
if (this._mvWaitTime > 0 && this._mvFadeOut == false) {
|
||||
this._mvWaitTime--;
|
||||
} else {
|
||||
if (this._mvFadeOut == false) {
|
||||
this._mvFadeOut = true;
|
||||
this.startFadeOut(Liquidize.MadeWithMV.FadeOutTime, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (Liquidize.MadeWithMV.ShowCustom) {
|
||||
if (Liquidize.MadeWithMV.ShowMV && this._mvFadeOut == true) {
|
||||
if (!this._customFadeIn && this._fadeDuration == 0) {
|
||||
this._customSplash.opacity = 255;
|
||||
this._customWaitTime = Liquidize.MadeWithMV.WaitTime;
|
||||
this.startFadeIn(Liquidize.MadeWithMV.FadeInTime, false);
|
||||
this._customFadeIn = true;
|
||||
} else {
|
||||
if (this._customWaitTime > 0 && this._customFadeOut == false) {
|
||||
this._customWaitTime--;
|
||||
} else {
|
||||
if (this._customFadeOut == false) {
|
||||
this._customFadeOut = true;
|
||||
this.startFadeOut(Liquidize.MadeWithMV.FadeOutTime, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (!Liquidize.MadeWithMV.ShowMV) {
|
||||
if (!this._customFadeIn) {
|
||||
this._customSplash.opacity = 255;
|
||||
this.startFadeIn(Liquidize.MadeWithMV.FadeInTime, false);
|
||||
this._customFadeIn = true;
|
||||
} else {
|
||||
if (this._customWaitTime > 0 && this._customFadeOut == false) {
|
||||
this._customWaitTime--;
|
||||
} else {
|
||||
if (this._customFadeOut == false) {
|
||||
this._customFadeOut = true;
|
||||
this.startFadeOut(Liquidize.MadeWithMV.FadeOutTime, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (Liquidize.MadeWithMV.ShowCustom) {
|
||||
if (
|
||||
Liquidize.MadeWithMV.ShowMV &&
|
||||
this._mvFadeOut == true &&
|
||||
this._customFadeOut == true
|
||||
) {
|
||||
this.gotoTitleOrTest();
|
||||
} else if (!Liquidize.MadeWithMV.ShowMV && this._customFadeOut == true) {
|
||||
this.gotoTitleOrTest();
|
||||
}
|
||||
} else {
|
||||
if (this._mvFadeOut == true) {
|
||||
this.gotoTitleOrTest();
|
||||
}
|
||||
}
|
||||
|
||||
Scene_Base.prototype.update.call(this);
|
||||
};
|
||||
|
||||
Scene_Splash.prototype.createSplashes = function () {
|
||||
if (Liquidize.MadeWithMV.ShowMV) {
|
||||
this._mvSplash = new Sprite(
|
||||
ImageManager.loadSystem(Liquidize.MadeWithMV.MVImage)
|
||||
);
|
||||
this.addChild(this._mvSplash);
|
||||
}
|
||||
if (Liquidize.MadeWithMV.ShowCustom) {
|
||||
this._customSplash = new Sprite(
|
||||
ImageManager.loadSystem(Liquidize.MadeWithMV.CustomImage)
|
||||
);
|
||||
this._customSplash.opacity = 0;
|
||||
this.addChild(this._customSplash);
|
||||
}
|
||||
};
|
||||
|
||||
Scene_Splash.prototype.centerSprite = function (sprite) {
|
||||
sprite.x = Graphics.width / 2;
|
||||
sprite.y = Graphics.height / 2;
|
||||
sprite.anchor.x = 0.5;
|
||||
sprite.anchor.y = 0.5;
|
||||
};
|
||||
|
||||
Scene_Splash.prototype.gotoTitleOrTest = function () {
|
||||
Scene_Base.prototype.start.call(this);
|
||||
SoundManager.preloadImportantSounds();
|
||||
if (DataManager.isBattleTest()) {
|
||||
DataManager.setupBattleTest();
|
||||
SceneManager.goto(Scene_Battle);
|
||||
} else if (DataManager.isEventTest()) {
|
||||
DataManager.setupEventTest();
|
||||
SceneManager.goto(Scene_Map);
|
||||
} else {
|
||||
this.checkPlayerLocation();
|
||||
DataManager.setupNewGame();
|
||||
SceneManager.goto(Scene_Title);
|
||||
Window_TitleCommand.initCommandPosition();
|
||||
}
|
||||
this.updateDocumentTitle();
|
||||
};
|
||||
|
||||
Scene_Splash.prototype.updateDocumentTitle = function () {
|
||||
document.title = $dataSystem.gameTitle;
|
||||
};
|
||||
|
||||
Scene_Splash.prototype.checkPlayerLocation = function () {
|
||||
if ($dataSystem.startMapId === 0) {
|
||||
throw new Error("Player's starting position is not set");
|
||||
}
|
||||
};
|
||||
})();
|
||||
165
www/js/plugins/MasterVolumeOption.js
Normal file
165
www/js/plugins/MasterVolumeOption.js
Normal file
|
|
@ -0,0 +1,165 @@
|
|||
//=============================================================================
|
||||
// MasterVolumeOption.js
|
||||
// ----------------------------------------------------------------------------
|
||||
// Copyright (c) 2015-2017 Triacontane
|
||||
// This software is released under the MIT License.
|
||||
// http://opensource.org/licenses/mit-license.php
|
||||
// ----------------------------------------------------------------------------
|
||||
// Version
|
||||
// 1.1.2 2018/01/15 RPGアツマールのマスターボリューム調整機能と競合する旨をヘルプに追記
|
||||
// 1.1.1 2017/06/29 マスターボリュームの増減値を変更したときに計算誤差が表示される場合がある問題を修正
|
||||
// 1.1.0 2017/06/26 ボリュームの変化量を変更できる機能を追加(byツミオさん)
|
||||
// 1.0.0 2017/06/24 初版
|
||||
// ----------------------------------------------------------------------------
|
||||
// [Blog] : https://triacontane.blogspot.jp/
|
||||
// [Twitter]: https://twitter.com/triacontane/
|
||||
// [GitHub] : https://github.com/triacontane/
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc MasterVolumePlugin
|
||||
* @author triacontane (Tsumio altered a portion.)
|
||||
*
|
||||
* @param ItemName
|
||||
* @type string
|
||||
* @desc It is a setting item name displayed on Options.
|
||||
* @default Master Volume
|
||||
*
|
||||
* @param DefaultValue
|
||||
* @type number
|
||||
* @desc Default value of the master volume.
|
||||
* @default 100
|
||||
*
|
||||
* @param OffsetValue
|
||||
* @type number
|
||||
* @desc Offset value of the all volume(including other volume).
|
||||
* @default 20
|
||||
*
|
||||
* @help Add the master volume to the option screen using the master volume API
|
||||
* added in RPG Maker version 1.5.0.
|
||||
* You can adjust the volume of all BGM / BGS / ME / SE at once.
|
||||
*
|
||||
* Of course, it can not be used on main body version 1.5.0 or earlier.
|
||||
*
|
||||
* This plugin is released under the MIT License.
|
||||
*/
|
||||
/*:ja
|
||||
* @plugindesc マスターボリューム設定プラグイン
|
||||
* @author トリアコンタン (ツミオが一部改変)
|
||||
*
|
||||
* @param 項目名称
|
||||
* @type string
|
||||
* @desc オプション画面に表示される設定項目名称です。
|
||||
* @default 全体 音量
|
||||
*
|
||||
* @param 初期値
|
||||
* @type number
|
||||
* @desc マスターボリュームの初期値です。
|
||||
* @default 100
|
||||
*
|
||||
* @param 音量の増減量
|
||||
* @type number
|
||||
* @desc マスターボリュームと、その他全ての音量値を含めた音量の増減量です。
|
||||
* @default 20
|
||||
*
|
||||
* @help 注意!
|
||||
* 本プラグインは、RPGアツマールのサービス側で提供している
|
||||
* マスターボリューム調整機能と競合します。
|
||||
* よってRPGアツマールでは使用できません。
|
||||
*
|
||||
* 本体バージョン1.5.0で追加されたマスターボリュームAPIを利用して
|
||||
* オプション画面にマスターボリュームを追加します。
|
||||
* BGM/BGS/ME/SE全ての音量を一括調整できます。
|
||||
*
|
||||
* 本体バージョン1.5.0以前では使用できません。
|
||||
*
|
||||
* このプラグインにはプラグインコマンドはありません。
|
||||
*
|
||||
* 利用規約:
|
||||
* 作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)
|
||||
* についても制限はありません。
|
||||
* このプラグインはもうあなたのものです。
|
||||
*/
|
||||
|
||||
(function () {
|
||||
"use strict";
|
||||
var pluginName = "MasterVolumeOption";
|
||||
|
||||
//=============================================================================
|
||||
// ローカル関数
|
||||
// プラグインパラメータやプラグインコマンドパラメータの整形やチェックをします
|
||||
//=============================================================================
|
||||
var getParamString = function (paramNames) {
|
||||
if (!Array.isArray(paramNames)) paramNames = [paramNames];
|
||||
for (var i = 0; i < paramNames.length; i++) {
|
||||
var name = PluginManager.parameters(pluginName)[paramNames[i]];
|
||||
if (name) return name;
|
||||
}
|
||||
return "";
|
||||
};
|
||||
|
||||
var getParamNumber = function (paramNames, min, max) {
|
||||
var value = getParamString(paramNames);
|
||||
if (arguments.length < 2) min = -Infinity;
|
||||
if (arguments.length < 3) max = Infinity;
|
||||
return (parseInt(value) || 0).clamp(min, max);
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// パラメータの取得と整形
|
||||
//=============================================================================
|
||||
var param = {};
|
||||
param.itemName = getParamString(["ItemName", "項目名称"]);
|
||||
param.defaultValue = getParamNumber(["DefaultValue", "初期値"]);
|
||||
param.offsetValue = getParamNumber(["OffsetValue", "音量の増減量"]); //ツミオ加筆
|
||||
|
||||
//=============================================================================
|
||||
// ConfigManager
|
||||
// マスターボリュームの設定機能を追加します。
|
||||
//=============================================================================
|
||||
Object.defineProperty(ConfigManager, "masterVolume", {
|
||||
get: function () {
|
||||
return Math.floor(AudioManager._masterVolume * 100);
|
||||
},
|
||||
set: function (value) {
|
||||
AudioManager.masterVolume = value.clamp(0, 100) / 100;
|
||||
},
|
||||
});
|
||||
|
||||
var _ConfigManager_makeData = ConfigManager.makeData;
|
||||
ConfigManager.makeData = function () {
|
||||
var config = _ConfigManager_makeData.apply(this, arguments);
|
||||
config.masterVolume = this.masterVolume;
|
||||
return config;
|
||||
};
|
||||
|
||||
var _ConfigManager_applyData = ConfigManager.applyData;
|
||||
ConfigManager.applyData = function (config) {
|
||||
_ConfigManager_applyData.apply(this, arguments);
|
||||
var symbol = "masterVolume";
|
||||
this.masterVolume = config.hasOwnProperty(symbol)
|
||||
? this.readVolume(config, symbol)
|
||||
: param.defaultValue;
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Window_Options
|
||||
// マスターボリュームの設定項目を追加します。
|
||||
//=============================================================================
|
||||
var _Window_Options_addVolumeOptions =
|
||||
Window_Options.prototype.addVolumeOptions;
|
||||
Window_Options.prototype.addVolumeOptions = function () {
|
||||
this.addCommand(param.itemName, "masterVolume");
|
||||
_Window_Options_addVolumeOptions.apply(this, arguments);
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Window_Options
|
||||
// バーの移動量の設定を付け加えます(ツミオ加筆)
|
||||
//=============================================================================
|
||||
var _Window_Options_volumeOffset = Window_Options.prototype.volumeOffset;
|
||||
Window_Options.prototype.volumeOffset = function () {
|
||||
_Window_Options_volumeOffset.call(this);
|
||||
return param.offsetValue;
|
||||
};
|
||||
})();
|
||||
1068
www/js/plugins/MessageSkip.js
Normal file
1068
www/js/plugins/MessageSkip.js
Normal file
File diff suppressed because it is too large
Load diff
383
www/js/plugins/MessageWindowHidden.js
Normal file
383
www/js/plugins/MessageWindowHidden.js
Normal file
|
|
@ -0,0 +1,383 @@
|
|||
//=============================================================================
|
||||
// MessageWindowHidden.js
|
||||
// ----------------------------------------------------------------------------
|
||||
// (C)2015 Triacontane
|
||||
// This software is released under the MIT License.
|
||||
// http://opensource.org/licenses/mit-license.php
|
||||
// ----------------------------------------------------------------------------
|
||||
// Version
|
||||
// 2.6.1 2020/05/21 トリガースイッチと連動無効スイッチの状態によってエラーが起きうる記述を修正
|
||||
// 2.6.0 2020/05/20 ピクチャの連動を無効にできるスイッチを追加
|
||||
// 2.5.1 2020/05/19 2.3.0の仕様変更で連動表示ピクチャの透明度が復元できない問題を修正
|
||||
// 2.5.0 2020/05/17 指定したスイッチに連動させてウィンドウの表示/非表示を切り替える機能を追加
|
||||
// 2.4.0 2020/05/08 選択肢表示中でもウィンドウを隠せるよう設定を追加
|
||||
// 2.3.0 2019/10/22 ウィンドウを表示状態にもどしたとき、連動ピクチャは、もともと表示していた不透明度を復元するよう仕様変更
|
||||
// 2.2.0 2019/06/09 メッセージウィンドウと逆に連動して指定したピクチャの表示/非表示が自動で切り替わる機能を追加
|
||||
// 2.1.0 2018/10/10 戦闘中にプラグインを無効化できる機能を追加。
|
||||
// 2.0.0 2018/03/31 消去するトリガーを複数指定できる機能を追加。パラメータの指定方法を見直し。
|
||||
// 1.4.0 2018/03/10 指定したスイッチがONの間はウィンドウ消去を無効化できる機能を追加
|
||||
// 1.3.2 2017/08/02 ponidog_BackLog_utf8.jsとの競合を解消
|
||||
// 1.3.1 2017/07/03 古いYEP_MessageCore.jsのネーム表示ウィンドウが再表示できない不具合の修正(by DarkPlasmaさま)
|
||||
// 1.3.0 2017/03/16 連動して非表示にできるピクチャを複数指定できる機能を追加
|
||||
// 1.2.1 2017/02/07 端末依存の記述を削除
|
||||
// 1.2.0 2016/01/02 メッセージウィンドウと連動して指定したピクチャの表示/非表示が自動で切り替わる機能を追加
|
||||
// 1.1.0 2016/08/25 選択肢の表示中はウィンドウを非表示にできないよう仕様変更
|
||||
// 1.0.4 2016/07/22 YEP_MessageCore.jsのネーム表示ウィンドウと連携する機能を追加
|
||||
// 1.0.3 2016/01/24 メッセージウィンドウが表示されていないときも非表示にできてしまう現象の修正
|
||||
// 1.0.2 2016/01/02 競合対策
|
||||
// 1.0.1 2015/12/31 コメント追加+英語対応(仕様に変化なし)
|
||||
// 1.0.0 2015/12/30 初版
|
||||
// ----------------------------------------------------------------------------
|
||||
// [Blog] : https://triacontane.blogspot.jp/
|
||||
// [Twitter]: https://twitter.com/triacontane/
|
||||
// [GitHub] : https://github.com/triacontane/
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc Erase message window
|
||||
* @author triacontane
|
||||
*
|
||||
* @param triggerButton
|
||||
* @desc Trigger buttons
|
||||
* (light_click or shift or control)
|
||||
* @default ["light_click"]
|
||||
* @type combo[]
|
||||
* @option light_click
|
||||
* @option shift
|
||||
* @option control
|
||||
* @option tab
|
||||
* @option pageup
|
||||
* @option pagedown
|
||||
* @option debug
|
||||
*
|
||||
* @param triggerSwitch
|
||||
* @desc The window will be erased in conjunction with the specified switch.
|
||||
* @default 0
|
||||
* @type switch
|
||||
*
|
||||
* @param linkPictureNumbers
|
||||
* @desc Picture number of window show/hide
|
||||
* @default []
|
||||
* @type number[]
|
||||
*
|
||||
* @param linkShowPictureNumbers
|
||||
* @desc Picture number of window show/hide
|
||||
* @default []
|
||||
* @type number[]
|
||||
*
|
||||
* @param disableLinkSwitchId
|
||||
* @desc 指定した番号のスイッチがONのとき、ピクチャの連動が無効になります。
|
||||
* @default 0
|
||||
* @type switch
|
||||
*
|
||||
* @param disableSwitchId
|
||||
* @desc 指定した番号のスイッチがONのとき、プラグインの機能が無効になります。
|
||||
* @default 0
|
||||
* @type switch
|
||||
*
|
||||
* @param disableInBattle
|
||||
* @desc trueのとき、戦闘中にプラグインの機能を無効にします。
|
||||
* @default false
|
||||
* @type boolean
|
||||
*
|
||||
* @param disableInChoice
|
||||
* @desc 選択肢の表示中はウィンドウを非表示にできなくなります。
|
||||
* @default true
|
||||
* @type boolean
|
||||
*
|
||||
* @help Erase message window (and restore) when triggered
|
||||
*
|
||||
* This plugin is released under the MIT License.
|
||||
*/
|
||||
/*:ja
|
||||
* @plugindesc メッセージウィンドウ一時消去プラグイン
|
||||
* @author トリアコンタン
|
||||
*
|
||||
* @param triggerButton
|
||||
* @text ボタン名称
|
||||
* @desc ウィンドウを消去するボタンです。(複数登録可能) プラグイン等で入力可能なボタンを追加した場合は直接入力
|
||||
* @default ["右クリック"]
|
||||
* @type combo[]
|
||||
* @option 右クリック
|
||||
* @option shift
|
||||
* @option control
|
||||
* @option tab
|
||||
* @option pageup
|
||||
* @option pagedown
|
||||
* @option debug
|
||||
*
|
||||
* @param triggerSwitch
|
||||
* @text トリガースイッチ
|
||||
* @desc 指定したスイッチに連動させてウィンドウを消去します。並列処理などを使ってON/OFFを適切に管理してください。
|
||||
* @default 0
|
||||
* @type switch
|
||||
*
|
||||
* @param linkPictureNumbers
|
||||
* @text 連動ピクチャ番号
|
||||
* @desc ウィンドウ消去時に連動して不透明度を[0]にするピクチャの番号です。
|
||||
* @default []
|
||||
* @type number[]
|
||||
*
|
||||
* @param linkShowPictureNumbers
|
||||
* @text 連動表示ピクチャ番号
|
||||
* @desc ウィンドウ消去時に連動して不透明度を[255]にするピクチャの番号です。
|
||||
* @default []
|
||||
* @type number[]
|
||||
*
|
||||
* @param disableLinkSwitchId
|
||||
* @text 連動ピクチャ無効スイッチ
|
||||
* @desc 指定した番号のスイッチがONのとき、ピクチャの連動が無効になります。
|
||||
* @default 0
|
||||
* @type switch
|
||||
*
|
||||
* @param disableSwitchId
|
||||
* @text 無効スイッチ
|
||||
* @desc 指定した番号のスイッチがONのとき、プラグイン全体の機能が無効になります。
|
||||
* @default 0
|
||||
* @type switch
|
||||
*
|
||||
* @param disableInBattle
|
||||
* @text 戦闘中無効化
|
||||
* @desc trueのとき、戦闘中にプラグインの機能を無効にします。
|
||||
* @default false
|
||||
* @type boolean
|
||||
*
|
||||
* @param disableInChoice
|
||||
* @text 選択肢表示中は無効
|
||||
* @desc 選択肢の表示中はウィンドウを非表示にできなくなります。
|
||||
* @default true
|
||||
* @type boolean
|
||||
*
|
||||
* @help メッセージウィンドウを表示中に指定したボタンを押下することで
|
||||
* メッセージウィンドウを消去します。もう一度押すと戻ります。
|
||||
*
|
||||
* ウィンドウ消去時に連動して不透明度を[0]にするピクチャを指定することができます。
|
||||
* 背景に特定のピクチャを使用している場合などに指定してください。
|
||||
* 再表示すると不透明度は、ウィンドウ非表示まえの不透明度で復元されます。
|
||||
*
|
||||
* ver2.0.0よりパラメータの指定方法が一部変更になりました。
|
||||
* 以前のバージョンを使っていた方は再設定をお願いします。
|
||||
*
|
||||
* このプラグインにはプラグインコマンドはありません。
|
||||
*
|
||||
* 利用規約:
|
||||
* 作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)
|
||||
* についても制限はありません。
|
||||
* このプラグインはもうあなたのものです。
|
||||
*/
|
||||
(function () {
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* Create plugin parameter. param[paramName] ex. param.commandPrefix
|
||||
* @param pluginName plugin name(EncounterSwitchConditions)
|
||||
* @returns {Object} Created parameter
|
||||
*/
|
||||
var createPluginParameter = function (pluginName) {
|
||||
var paramReplacer = function (key, value) {
|
||||
if (value === "null") {
|
||||
return value;
|
||||
}
|
||||
if (value[0] === '"' && value[value.length - 1] === '"') {
|
||||
return value;
|
||||
}
|
||||
try {
|
||||
return JSON.parse(value);
|
||||
} catch (e) {
|
||||
return value;
|
||||
}
|
||||
};
|
||||
var parameter = JSON.parse(
|
||||
JSON.stringify(PluginManager.parameters(pluginName), paramReplacer)
|
||||
);
|
||||
PluginManager.setParameters(pluginName, parameter);
|
||||
return parameter;
|
||||
};
|
||||
var param = createPluginParameter("MessageWindowHidden");
|
||||
|
||||
//=============================================================================
|
||||
// Game_Picture
|
||||
// メッセージウィンドウの表示可否と連動します。
|
||||
//=============================================================================
|
||||
Game_Picture.prototype.linkWithMessageWindow = function (opacity) {
|
||||
this._opacity = opacity;
|
||||
this._targetOpacity = opacity;
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Window_Message
|
||||
// 指定されたボタン押下時にウィンドウとサブウィンドウを非表示にします。
|
||||
//=============================================================================
|
||||
var _Window_Message_updateWait = Window_Message.prototype.updateWait;
|
||||
Window_Message.prototype.updateWait = function () {
|
||||
if (
|
||||
!this.isClosed() &&
|
||||
this.isTriggeredHidden() &&
|
||||
this.isEnableInChoice()
|
||||
) {
|
||||
if (!this.isHidden()) {
|
||||
this.hideAllWindow();
|
||||
} else {
|
||||
this.showAllWindow();
|
||||
}
|
||||
}
|
||||
var wait = _Window_Message_updateWait.apply(this, arguments);
|
||||
if (this.isHidden() && this.visible) {
|
||||
this.hideAllWindow();
|
||||
}
|
||||
return wait;
|
||||
};
|
||||
|
||||
Window_Message.prototype.isEnableInChoice = function () {
|
||||
return !(param.disableInChoice && $gameMessage.isChoice());
|
||||
};
|
||||
|
||||
Window_Message.prototype.hideAllWindow = function () {
|
||||
this.hide();
|
||||
this.subWindows().forEach(
|
||||
function (subWindow) {
|
||||
this.hideSubWindow(subWindow);
|
||||
}.bind(this)
|
||||
);
|
||||
if (this.hasNameWindow() && !this.nameWindowIsSubWindow())
|
||||
this.hideSubWindow(this._nameWindow);
|
||||
this._originalPictureOpacities = {};
|
||||
this.linkPictures(0, param.linkPictureNumbers);
|
||||
this.linkPictures(255, param.linkShowPictureNumbers);
|
||||
this._hideByMessageWindowHidden = true;
|
||||
};
|
||||
|
||||
Window_Message.prototype.showAllWindow = function () {
|
||||
this.show();
|
||||
this.subWindows().forEach(
|
||||
function (subWindow) {
|
||||
this.showSubWindow(subWindow);
|
||||
}.bind(this)
|
||||
);
|
||||
if (this.hasNameWindow() && !this.nameWindowIsSubWindow())
|
||||
this.showSubWindow(this._nameWindow);
|
||||
this.linkPictures(null, param.linkShowPictureNumbers);
|
||||
this.linkPictures(null, param.linkPictureNumbers);
|
||||
this._hideByMessageWindowHidden = false;
|
||||
};
|
||||
|
||||
Window_Message.prototype.isHidden = function () {
|
||||
return this._hideByMessageWindowHidden;
|
||||
};
|
||||
|
||||
Window_Message.prototype.linkPictures = function (opacity, pictureNumbers) {
|
||||
if (!pictureNumbers || $gameSwitches.value(param.disableLinkSwitchId)) {
|
||||
return;
|
||||
}
|
||||
pictureNumbers.forEach(function (pictureId) {
|
||||
this.linkPicture(opacity, pictureId);
|
||||
}, this);
|
||||
};
|
||||
|
||||
Window_Message.prototype.linkPicture = function (opacity, pictureId) {
|
||||
var picture = $gameScreen.picture(pictureId);
|
||||
if (!picture) {
|
||||
return;
|
||||
}
|
||||
if (opacity === null) {
|
||||
if (!this._originalPictureOpacities.hasOwnProperty(pictureId)) {
|
||||
return;
|
||||
}
|
||||
opacity = this._originalPictureOpacities[pictureId];
|
||||
} else {
|
||||
this._originalPictureOpacities[pictureId] = picture.opacity();
|
||||
}
|
||||
picture.linkWithMessageWindow(opacity);
|
||||
};
|
||||
|
||||
Window_Message.prototype.hideSubWindow = function (subWindow) {
|
||||
subWindow.prevVisible = subWindow.visible;
|
||||
subWindow.hide();
|
||||
};
|
||||
|
||||
Window_Message.prototype.showSubWindow = function (subWindow) {
|
||||
if (subWindow.prevVisible) subWindow.show();
|
||||
subWindow.prevVisible = undefined;
|
||||
};
|
||||
|
||||
Window_Message.prototype.hasNameWindow = function () {
|
||||
return this._nameWindow && typeof Window_NameBox !== "undefined";
|
||||
};
|
||||
|
||||
// 古いYEP_MessageCore.jsでは、ネーム表示ウィンドウはsubWindowsに含まれる
|
||||
Window_Message.prototype.nameWindowIsSubWindow = function () {
|
||||
return (
|
||||
this.subWindows().filter(function (subWindow) {
|
||||
return subWindow === this._nameWindow;
|
||||
}, this).length > 0
|
||||
);
|
||||
};
|
||||
|
||||
Window_Message.prototype.disableWindowHidden = function () {
|
||||
return (
|
||||
(param.disableSwitchId > 0 &&
|
||||
$gameSwitches.value(param.disableSwitchId)) ||
|
||||
(param.disableInBattle && $gameParty.inBattle())
|
||||
);
|
||||
};
|
||||
|
||||
Window_Message.prototype.isTriggeredHidden = function () {
|
||||
if (this.disableWindowHidden()) {
|
||||
return false;
|
||||
}
|
||||
if (param.triggerSwitch > 0 && this.isTriggeredHiddenSwitch()) {
|
||||
return true;
|
||||
}
|
||||
return param.triggerButton.some(function (button) {
|
||||
switch (button) {
|
||||
case "":
|
||||
case "右クリック":
|
||||
case "light_click":
|
||||
return TouchInput.isCancelled();
|
||||
case "ok":
|
||||
return false;
|
||||
default:
|
||||
return Input.isTriggered(button);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
Window_Message.prototype.isTriggeredHiddenSwitch = function () {
|
||||
var triggerSwitch = $gameSwitches.value(param.triggerSwitch);
|
||||
if (triggerSwitch && !this.isHidden()) {
|
||||
return true;
|
||||
}
|
||||
if (!triggerSwitch && this.isHidden()) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
var _Window_Message_updateInput = Window_Message.prototype.updateInput;
|
||||
Window_Message.prototype.updateInput = function () {
|
||||
if (this.isHidden()) return true;
|
||||
return _Window_Message_updateInput.apply(this, arguments);
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Window_ChoiceList、Window_NumberInput、Window_EventItem
|
||||
// 非表示の間は更新を停止します。
|
||||
//=============================================================================
|
||||
var _Window_ChoiceList_update = Window_ChoiceList.prototype.update;
|
||||
Window_ChoiceList.prototype.update = function () {
|
||||
if (!this.visible) return;
|
||||
_Window_ChoiceList_update.apply(this, arguments);
|
||||
};
|
||||
|
||||
var _Window_NumberInput_update = Window_NumberInput.prototype.update;
|
||||
Window_NumberInput.prototype.update = function () {
|
||||
if (!this.visible) return;
|
||||
_Window_NumberInput_update.apply(this, arguments);
|
||||
};
|
||||
|
||||
var _Window_EventItem_update = Window_EventItem.prototype.update;
|
||||
Window_EventItem.prototype.update = function () {
|
||||
if (!this.visible) return;
|
||||
_Window_EventItem_update.apply(this, arguments);
|
||||
};
|
||||
})();
|
||||
1043
www/js/plugins/MoviePicture.js
Normal file
1043
www/js/plugins/MoviePicture.js
Normal file
File diff suppressed because it is too large
Load diff
238
www/js/plugins/NRP_StopSelfMovement.js
Normal file
238
www/js/plugins/NRP_StopSelfMovement.js
Normal file
|
|
@ -0,0 +1,238 @@
|
|||
//=============================================================================
|
||||
// NRP_StopSelfMovement.js
|
||||
//=============================================================================
|
||||
/*:
|
||||
* @target MV MZ
|
||||
* @plugindesc v1.00 Stops the self-movement during event execution.
|
||||
* @author Takeshi Sunagawa (http://newrpg.seesaa.net/)
|
||||
* @url http://newrpg.seesaa.net/article/486149145.html
|
||||
*
|
||||
* @help Stops self-movement for each event during event execution.
|
||||
*
|
||||
* If an event is running in parallel, it is not eligible.
|
||||
* However, only message display processing is exceptionally eligible.
|
||||
*
|
||||
* This function is equivalent to
|
||||
* the existing "StopSelfMovementWithPlayer.js",
|
||||
* but addresses the problem that the load increases dramatically
|
||||
* in proportion to the square of the number of events.
|
||||
*
|
||||
* -------------------------------------------------------------------
|
||||
* [Usage]
|
||||
* -------------------------------------------------------------------
|
||||
* Just apply the plugin and it will take effect.
|
||||
*
|
||||
* If you want to switch depending on the situation,
|
||||
* specify the plugin parameter "StopSwitch".
|
||||
* Only when the switch is on,
|
||||
* self-movement during event execution will stop.
|
||||
*
|
||||
* -------------------------------------------------------------------
|
||||
* [Note of Events]
|
||||
* -------------------------------------------------------------------
|
||||
* <ForceSelfMovement>
|
||||
* Forces self-movement to be performed regardless of the situation.
|
||||
* This is applicable, for example, to objects that are animated
|
||||
* by self-movement and would feel uncomfortable
|
||||
* if stopped during an event.
|
||||
*
|
||||
* -------------------------------------------------------------------
|
||||
* [Reference]
|
||||
* -------------------------------------------------------------------
|
||||
* The following plugin was used as references
|
||||
* in the creation of this plugin.
|
||||
*
|
||||
* StopSelfMovementWithPlayer.js (Sasuke KANNAZUKI)
|
||||
* https://forum.tkool.jp/index.php?threads/189/
|
||||
*
|
||||
* -------------------------------------------------------------------
|
||||
* [Terms]
|
||||
* -------------------------------------------------------------------
|
||||
* There are no restrictions.
|
||||
* Modification, redistribution freedom, commercial availability,
|
||||
* and rights indication are also optional.
|
||||
* The author is not responsible,
|
||||
* but will deal with defects to the extent possible.
|
||||
*
|
||||
* @------------------------------------------------------------------
|
||||
* @ [Plugin Parameters]
|
||||
* @------------------------------------------------------------------
|
||||
*
|
||||
* @param StopSwitch
|
||||
* @type switch
|
||||
* @desc Switch to stop self-movement during event execution.
|
||||
* Always enabled if not specified.
|
||||
*
|
||||
* @param StopParallelMessage
|
||||
* @type boolean
|
||||
* @default true
|
||||
* @desc Self-movement is also stopped during message display by parallel processing.
|
||||
*/
|
||||
|
||||
/*:ja
|
||||
* @target MV MZ
|
||||
* @plugindesc v1.00 イベント実行中の自律移動を停止します。
|
||||
* @author 砂川赳(http://newrpg.seesaa.net/)
|
||||
* @url http://newrpg.seesaa.net/article/486149145.html
|
||||
*
|
||||
* @help イベント実行中に、各イベントの自律移動を停止します。
|
||||
*
|
||||
* 並列処理でイベントが実行されている場合は、対象外となります。
|
||||
* ただし、メッセージ表示処理のみ例外的に対象となります。
|
||||
*
|
||||
* 既存の『StopSelfMovementWithPlayer.js』と同等の機能ですが、
|
||||
* イベント数の二乗に比例して負荷が激増する問題に対処しています。
|
||||
*
|
||||
* -------------------------------------------------------------------
|
||||
* ■使用方法
|
||||
* -------------------------------------------------------------------
|
||||
* プラグインを適用するだけで有効になります。
|
||||
*
|
||||
* 状況によって切り替えたい場合は、
|
||||
* プラグインパラメータの『停止スイッチ』を指定してください。
|
||||
* スイッチがオンの場合のみ、イベント実行中の自律移動が停止します。
|
||||
*
|
||||
* -------------------------------------------------------------------
|
||||
* ■イベントのメモ欄
|
||||
* -------------------------------------------------------------------
|
||||
* <ForceSelfMovement>
|
||||
* 状況に関わらず、強制的に自律移動を実行させます。
|
||||
* 例えば、自律移動でアニメーションさせているオブジェクトなど、
|
||||
* イベント中に停止しては違和感があるものに活用できます。
|
||||
*
|
||||
* -------------------------------------------------------------------
|
||||
* ■参考
|
||||
* -------------------------------------------------------------------
|
||||
* このプラグインの制作に当たって、
|
||||
* 以下のプラグインを参考にさせていただきました。
|
||||
*
|
||||
* StopSelfMovementWithPlayer.js(神無月サスケ様)
|
||||
* https://forum.tkool.jp/index.php?threads/189/
|
||||
*
|
||||
* -------------------------------------------------------------------
|
||||
* ■利用規約
|
||||
* -------------------------------------------------------------------
|
||||
* 特に制約はありません。
|
||||
* 改変、再配布自由、商用可、権利表示も任意です。
|
||||
* 作者は責任を負いませんが、不具合については可能な範囲で対応します。
|
||||
*
|
||||
* @------------------------------------------------------------------
|
||||
* @ プラグインパラメータ
|
||||
* @------------------------------------------------------------------
|
||||
*
|
||||
* @param StopSwitch
|
||||
* @text 停止スイッチ
|
||||
* @type switch
|
||||
* @desc イベント実行中の自律移動を停止するスイッチです。
|
||||
* 未指定の場合は常に有効とします。
|
||||
*
|
||||
* @param StopParallelMessage
|
||||
* @text 並列メッセージ中も停止
|
||||
* @type boolean
|
||||
* @default true
|
||||
* @desc 並列処理によるメッセージ表示中も自律移動を停止します。
|
||||
*/
|
||||
|
||||
(function () {
|
||||
"use strict";
|
||||
|
||||
function toBoolean(str, def) {
|
||||
if (str === true || str === "true") {
|
||||
return true;
|
||||
} else if (str === false || str === "false") {
|
||||
return false;
|
||||
}
|
||||
return def;
|
||||
}
|
||||
function toNumber(str, def) {
|
||||
if (str == undefined || str == "") {
|
||||
return def;
|
||||
}
|
||||
return isNaN(str) ? def : +(str || def);
|
||||
}
|
||||
function setDefault(str, def) {
|
||||
if (str == undefined || str == "") {
|
||||
return def;
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
const PLUGIN_NAME = "NRP_StopSelfMovement";
|
||||
const parameters = PluginManager.parameters(PLUGIN_NAME);
|
||||
const pStopSwitch = toNumber(parameters["StopSwitch"]);
|
||||
const pStopParallelMessage = toBoolean(
|
||||
parameters["StopParallelMessage"],
|
||||
true
|
||||
);
|
||||
|
||||
// イベントを停止するかどうかの判定
|
||||
let mIsEventsStop = false;
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Game_Map
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* ●イベントの更新
|
||||
*/
|
||||
const _Game_Map_updateEvents = Game_Map.prototype.updateEvents;
|
||||
Game_Map.prototype.updateEvents = function () {
|
||||
// 動作軽量化のため判定は一度だけ
|
||||
// ※特に$gameMap.isEventRunning()は非常に重いので毎回実行しない。
|
||||
mIsEventsStop = isStop();
|
||||
|
||||
_Game_Map_updateEvents.apply(this, arguments);
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Game_Event
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* ●初期化
|
||||
*/
|
||||
const _Game_Event_initialize = Game_Event.prototype.initialize;
|
||||
Game_Event.prototype.initialize = function (mapId, eventId) {
|
||||
_Game_Event_initialize.apply(this, arguments);
|
||||
|
||||
// 強制実行フラグ
|
||||
this._forceSelfMovement = this.event().meta.ForceSelfMovement;
|
||||
};
|
||||
|
||||
/**
|
||||
* ●自律移動更新
|
||||
*/
|
||||
const _Game_Event_updateSelfMovement =
|
||||
Game_Event.prototype.updateSelfMovement;
|
||||
Game_Event.prototype.updateSelfMovement = function () {
|
||||
// 停止条件を満たしている。
|
||||
// かつ、イベントが強制実行状態ではない。
|
||||
if (mIsEventsStop && !this._forceSelfMovement) {
|
||||
return;
|
||||
}
|
||||
_Game_Event_updateSelfMovement.apply(this, arguments);
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// 共通関数
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* ●停止判定
|
||||
*/
|
||||
function isStop() {
|
||||
// イベント実行中またはメッセージ表示中の場合が対象
|
||||
if ($gameMap.isEventRunning() || isMessage()) {
|
||||
// 停止スイッチが未指定、または停止スイッチを満たしている。
|
||||
return !pStopSwitch || $gameSwitches.value(pStopSwitch);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* ●メッセージ表示中かつ停止処理を行うかどうか?
|
||||
*/
|
||||
function isMessage() {
|
||||
// メッセージウィンドウが開かれているかどうか?
|
||||
return pStopParallelMessage && SceneManager._scene._messageWindow.isOpen();
|
||||
}
|
||||
})();
|
||||
505
www/js/plugins/NovelGameBasicSystem.js
Normal file
505
www/js/plugins/NovelGameBasicSystem.js
Normal file
|
|
@ -0,0 +1,505 @@
|
|||
//=============================================================================
|
||||
// NovelGameBasicSystem.js
|
||||
// Copyright (c) 2020- 村人A
|
||||
//=============================================================================
|
||||
|
||||
/*:ja
|
||||
* @target MV
|
||||
* @plugindesc ノベルゲームのような機能を提供するプラグイン
|
||||
* @author 村人A
|
||||
*
|
||||
* @help
|
||||
* *このプラグインはかぐらみずき様専用に作られたプラグインです。
|
||||
* *その他の方の無断の使用を禁止します。
|
||||
* *上記注意書きの名前はサークル名などに変更してください。この注意書きは削除して
|
||||
* ください。
|
||||
*
|
||||
* _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
|
||||
*
|
||||
* バージョン情報
|
||||
*
|
||||
* 21/01/07 ver1.03リリース
|
||||
* ノベルメニューを呼び出した後にコモンイベントとプラグインコマンドは実行しないよう修正
|
||||
* ログが最大になった際に細心のログが削除されてしまう不具合を修正
|
||||
* 20/12/21 ver1.02リリース
|
||||
* メニュープラグインを呼び出すコモンイベント以外を呼び出すと発生する不具合修正
|
||||
* 20/11/26 ver1.01リリース
|
||||
* メッセージ中にメニューを開いた際にログが再記録されてしまう不具合修正
|
||||
* 20/11/25 ver1.0リリース
|
||||
* 不具合修正
|
||||
* 20/11/23 試作品リリース
|
||||
*
|
||||
* _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
|
||||
*
|
||||
* ヘルプ
|
||||
*
|
||||
* ・ログに保存するメッセージは指定したスイッチをONにした時のみとなります。
|
||||
* プラグインパラメータ「ログメッセージ保存スイッチID」にて指定してください。
|
||||
*
|
||||
* ・メッセージを上限なくログとして保存した場合、クラッシュや動作が重くなる原因と
|
||||
* なりますので上限が作られています。
|
||||
* プラグインパラメータ「ログの上限数」にて指定してください。
|
||||
*
|
||||
* ・オートメッセージ、既読スキップは融通が利くようにするため、ゲームスイッチにて
|
||||
* 有効になるようにしました。
|
||||
* プラグインパラメータ「オートメッセージスイッチID」「既読スキップスイッチID」に
|
||||
* てスイッチのIDを指定してください。
|
||||
* ノベルメニューにてON/OFFにするとスイッチもON/OFFとなります。
|
||||
*
|
||||
* ・オートメッセージの進む速度は変数にて指定します。
|
||||
* プラグインパラメータ「オートメッセージの速度に使用する変数ID」にて指定した数値
|
||||
* のフレーム数でメッセージが進みます。
|
||||
*
|
||||
* ・既読メッセージスキップは「UTA_MessageSkip.js」の機能を借りていますので、この
|
||||
* プラグインを使用する際はUTA_MessageSkipを有効にするようにしてください。
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
* @param maxMessageLogNum
|
||||
* @text ログの上限数
|
||||
* @desc ログとして保存するメッセージの最大の数を指定します。
|
||||
* @default 30
|
||||
*
|
||||
* @param saveMessageLogSwitchId
|
||||
* @text ログメッセージ保存スイッチID
|
||||
* @desc ログとしてメッセージを保存する時のスイッチIDを指定します。このスイッチがONの時にメッセージが表示された際にログとして保存します。
|
||||
* @default 1
|
||||
* @type switch
|
||||
*
|
||||
* @param autoMessageSwitchID
|
||||
* @text オートメッセージスイッチID
|
||||
* @desc オートメッセージにする際にONにするスイッチのIDを指定します。
|
||||
* @default 2
|
||||
* @type switch
|
||||
*
|
||||
* @param skipReadMessageSwitchID
|
||||
* @text 既読スキップスイッチID
|
||||
* @desc 既読メッセージスキップする際にONにするスイッチのIDを指定します。
|
||||
* @default 3
|
||||
* @type switch
|
||||
*
|
||||
*/
|
||||
|
||||
{
|
||||
("use strict");
|
||||
|
||||
String.prototype.toNumArray = function () {
|
||||
return this.split(",").map((str) => Number(str));
|
||||
};
|
||||
|
||||
const param = PluginManager.parameters("NovelGameBasicSystem");
|
||||
const maxMessageLogNum = Number(param.maxMessageLogNum);
|
||||
const saveMessageLogSwitchId = Number(param.saveMessageLogSwitchId);
|
||||
const autoMessageSwitchID = Number(param.autoMessageSwitchID);
|
||||
const skipReadMessageSwitchID = Number(param.skipReadMessageSwitchID);
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Game_Message
|
||||
//
|
||||
|
||||
const _alias_Game_Message_initialize = Game_Message.prototype.initialize;
|
||||
Game_Message.prototype.initialize = function () {
|
||||
_alias_Game_Message_initialize.call(this);
|
||||
this.messageLog = [];
|
||||
this.readMessageHash = {};
|
||||
this.canUTASkip = false;
|
||||
};
|
||||
|
||||
Game_Message.prototype.withCommand101 = function (m, e, p, i) {
|
||||
this.saveMessageLog();
|
||||
this.saveReadMessageData(m, e, p, i);
|
||||
};
|
||||
|
||||
Game_Message.prototype.saveMessageLog = function () {
|
||||
if (!$gameSwitches.value(saveMessageLogSwitchId)) {
|
||||
return;
|
||||
}
|
||||
this.messageLog.push(this._texts);
|
||||
if (this.messageLog.length > maxMessageLogNum) {
|
||||
this.messageLog.shift();
|
||||
}
|
||||
};
|
||||
|
||||
Game_Message.prototype.saveReadMessageData = function (m, e, p, i) {
|
||||
const num = this.readMessageHash[[m, e, p]];
|
||||
const isAdd = !num || num < i;
|
||||
this.canUTASkip = !isAdd;
|
||||
if (isAdd) {
|
||||
this.readMessageHash[[m, e, p]] = i;
|
||||
}
|
||||
};
|
||||
|
||||
if (typeof utakata !== "undefined" && utakata.MessageSkip) {
|
||||
const uTAparam = PluginManager.parameters("UTA_MessageSkip");
|
||||
const skipKey = String(uTAparam["Skip Key"]) || null;
|
||||
utakata.MessageSkip.isPressedMsgSkipButton = function () {
|
||||
if ($gameSwitches.value(skipReadMessageSwitchID)) {
|
||||
return $gameMessage.canUTASkip || Input.isPressed(skipKey);
|
||||
}
|
||||
return Input.isPressed(skipKey);
|
||||
};
|
||||
} else {
|
||||
console.log(
|
||||
"既読メッセージスキップを有効にする場合はUTA_MessageSkipを有効にしてください。"
|
||||
);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Game_Interpreter
|
||||
//
|
||||
|
||||
const _alias_Game_Interpreter_pluginCommand =
|
||||
Game_Interpreter.prototype.pluginCommand;
|
||||
Game_Interpreter.prototype.pluginCommand = function (command, args) {
|
||||
_alias_Game_Interpreter_pluginCommand.call(this, command, args);
|
||||
if (command == "ノベルゲームメニュー") {
|
||||
SceneManager._scene._messageWindow.onEndOfText();
|
||||
$gameMessage.clear();
|
||||
if (SceneManager._scene._messageWindow.isOpen()) {
|
||||
$gameMessage.nVLinstantOpen = true;
|
||||
}
|
||||
SceneManager.snapForBackground();
|
||||
SceneManager.push(Scene_NovelMenu);
|
||||
}
|
||||
};
|
||||
|
||||
// Show Text
|
||||
const _alias_Game_Interpreter_command101 =
|
||||
Game_Interpreter.prototype.command101;
|
||||
Game_Interpreter.prototype.command101 = function () {
|
||||
_alias_Game_Interpreter_command101.call(this);
|
||||
|
||||
const gEvent = $gameMap.event(this._eventId);
|
||||
if (gEvent && !$gameMessage.nVLinstantOpen) {
|
||||
$gameMessage.withCommand101(
|
||||
this._mapId,
|
||||
this._eventId,
|
||||
gEvent._pageIndex,
|
||||
this._index
|
||||
);
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
Game_Interpreter.prototype.repreatPreCommond = function () {
|
||||
this._index = this._preIndex;
|
||||
};
|
||||
|
||||
const _alias_Game_Interpreter_executeCommand =
|
||||
Game_Interpreter.prototype.executeCommand;
|
||||
Game_Interpreter.prototype.executeCommand = function () {
|
||||
if (
|
||||
this.isBackFromNovelMenu &&
|
||||
![117, 356].includes(this._list[this._preIndex].code)
|
||||
) {
|
||||
this.repreatPreCommond();
|
||||
}
|
||||
this.isBackFromNovelMenu = false;
|
||||
this._preIndex = this._index;
|
||||
return _alias_Game_Interpreter_executeCommand.call(this);
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Scene_NovelMenu
|
||||
//
|
||||
|
||||
function Scene_NovelMenu() {
|
||||
this.initialize.apply(this, arguments);
|
||||
}
|
||||
|
||||
Scene_NovelMenu.prototype = Object.create(Scene_Base.prototype);
|
||||
Scene_NovelMenu.prototype.constructor = Scene_NovelMenu;
|
||||
|
||||
Scene_NovelMenu.prototype.initialize = function () {
|
||||
Scene_Base.prototype.initialize.call(this);
|
||||
this.createBackground();
|
||||
this.createWindowLayer();
|
||||
this.createCommandWindow();
|
||||
if ($gameMap._interpreter._list != null) {
|
||||
$gameMap._interpreter.isBackFromNovelMenu = true;
|
||||
}
|
||||
};
|
||||
|
||||
Scene_NovelMenu.prototype.createBackground = function () {
|
||||
this._backgroundSprite = new Sprite();
|
||||
this._backgroundSprite.bitmap = SceneManager.backgroundBitmap();
|
||||
this.addChild(this._backgroundSprite);
|
||||
};
|
||||
|
||||
Scene_NovelMenu.prototype.createCommandWindow = function () {
|
||||
this._commandWindow = new Window_NovelMenuCommand();
|
||||
this._commandWindow.setHandler("save", this.commandSave.bind(this));
|
||||
this._commandWindow.setHandler("load", this.commandLoad.bind(this));
|
||||
this._commandWindow.setHandler("options", this.commandOptions.bind(this));
|
||||
this._commandWindow.setHandler("auto", this.commandAuto.bind(this));
|
||||
this._commandWindow.setHandler("log", this.commandLog.bind(this));
|
||||
this._commandWindow.setHandler(
|
||||
"backTitle",
|
||||
this.commandbackTitle.bind(this)
|
||||
);
|
||||
this._commandWindow.setHandler("gameExit", this.commandGameExit.bind(this));
|
||||
this._commandWindow.setHandler("cancel", this.popScene.bind(this));
|
||||
this.addWindow(this._commandWindow);
|
||||
};
|
||||
|
||||
Scene_NovelMenu.prototype.commandCancel = function () {
|
||||
SceneManager.pop();
|
||||
};
|
||||
|
||||
Scene_NovelMenu.prototype.commandSave = function () {
|
||||
SceneManager.push(Scene_Save);
|
||||
};
|
||||
|
||||
Scene_NovelMenu.prototype.commandLoad = function () {
|
||||
SceneManager.push(Scene_Load);
|
||||
};
|
||||
|
||||
Scene_NovelMenu.prototype.commandOptions = function () {
|
||||
SceneManager.push(Scene_Options);
|
||||
};
|
||||
|
||||
Scene_NovelMenu.prototype.commandAuto = function () {
|
||||
SoundManager.playOk();
|
||||
$gameSwitches.setValue(
|
||||
autoMessageSwitchID,
|
||||
!$gameSwitches.value(autoMessageSwitchID)
|
||||
);
|
||||
this._commandWindow.refresh();
|
||||
this._commandWindow.activate();
|
||||
};
|
||||
|
||||
Scene_NovelMenu.prototype.commandLog = function () {
|
||||
SceneManager.push(Scene_MessageLog);
|
||||
};
|
||||
|
||||
Scene_NovelMenu.prototype.commandbackTitle = function () {
|
||||
SceneManager.push(Scene_GameEnd);
|
||||
};
|
||||
|
||||
Scene_NovelMenu.prototype.commandGameExit = function () {
|
||||
SceneManager.push(Scene_GameExit);
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Scene_MessageLog
|
||||
//
|
||||
|
||||
function Scene_MessageLog() {
|
||||
this.initialize.apply(this, arguments);
|
||||
}
|
||||
|
||||
Scene_MessageLog.prototype = Object.create(Scene_Base.prototype);
|
||||
Scene_MessageLog.prototype.constructor = Scene_MessageLog;
|
||||
|
||||
Scene_MessageLog.prototype.initialize = function () {
|
||||
Scene_Base.prototype.initialize.call(this);
|
||||
this.createWindowLayer();
|
||||
this.createLogWindow();
|
||||
};
|
||||
|
||||
Scene_MessageLog.prototype.createLogWindow = function () {
|
||||
this.logWindow = new Window_MessageLog();
|
||||
this.addWindow(this.logWindow);
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Window_MessageLog
|
||||
//
|
||||
|
||||
function Window_MessageLog() {
|
||||
this.initialize.apply(this, arguments);
|
||||
}
|
||||
|
||||
Window_MessageLog.prototype = Object.create(Window_Base.prototype);
|
||||
Window_MessageLog.prototype.constructor = Window_MessageLog;
|
||||
|
||||
Window_MessageLog.prototype.initialize = function () {
|
||||
Window_Base.prototype.initialize.call(
|
||||
this,
|
||||
0,
|
||||
0,
|
||||
Graphics.width,
|
||||
Graphics.height
|
||||
);
|
||||
this.maxLine = Math.floor(this.contents.height / this.lineHeight()) + 1;
|
||||
this.sumTextlineNum = 0;
|
||||
$gameMessage.messageLog.forEach((textArr) => {
|
||||
this.sumTextlineNum += textArr.length + 1;
|
||||
});
|
||||
this._index = -(this.sumTextlineNum - this.maxLine);
|
||||
this.refresh();
|
||||
};
|
||||
|
||||
Window_MessageLog.prototype.refresh = function () {
|
||||
this.drawMessageLog();
|
||||
};
|
||||
|
||||
Window_MessageLog.prototype.drawMessageLog = function () {
|
||||
this.contents.clear();
|
||||
let lineNum = this._index;
|
||||
$gameMessage.messageLog.forEach((textArr) => {
|
||||
const y = lineNum * this.lineHeight();
|
||||
this.drawTextEx(textArr.join("\n"), 0, y);
|
||||
lineNum += textArr.length + 1;
|
||||
});
|
||||
};
|
||||
|
||||
Window_MessageLog.prototype.update = function () {
|
||||
Window_Base.prototype.update.call(this);
|
||||
this.processInputKeys();
|
||||
this.processWheel();
|
||||
};
|
||||
|
||||
Window_MessageLog.prototype.processInputKeys = function () {
|
||||
if (TouchInput.isCancelled()) {
|
||||
SoundManager.playCancel();
|
||||
SceneManager.pop();
|
||||
}
|
||||
if (Input.isTriggered("cancel")) {
|
||||
SoundManager.playCancel();
|
||||
SceneManager.pop();
|
||||
}
|
||||
if (Input.isTriggered("down")) {
|
||||
this.processTextsDown();
|
||||
}
|
||||
if (Input.isRepeated("down")) {
|
||||
this.processTextsDown();
|
||||
}
|
||||
if (Input.isTriggered("up")) {
|
||||
this.processTextsUp();
|
||||
}
|
||||
if (Input.isRepeated("up")) {
|
||||
this.processTextsUp();
|
||||
}
|
||||
};
|
||||
|
||||
Window_MessageLog.prototype.processTextsDown = function () {
|
||||
if (-this._index > this.sumTextlineNum - this.maxLine - 1) {
|
||||
return;
|
||||
}
|
||||
this._index--;
|
||||
this.refresh();
|
||||
};
|
||||
|
||||
Window_MessageLog.prototype.processTextsUp = function () {
|
||||
if (this._index == 0) {
|
||||
return;
|
||||
}
|
||||
this._index++;
|
||||
this.refresh();
|
||||
};
|
||||
|
||||
Window_MessageLog.prototype.processWheel = function () {
|
||||
const threshold = 20;
|
||||
if (TouchInput.wheelY >= threshold) {
|
||||
this.processTextsDown();
|
||||
}
|
||||
if (TouchInput.wheelY <= -threshold) {
|
||||
this.processTextsUp();
|
||||
}
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Window_Message
|
||||
//
|
||||
|
||||
const _alias_Window_Message_initialize = Window_Message.prototype.initialize;
|
||||
Window_Message.prototype.initialize = function () {
|
||||
_alias_Window_Message_initialize.call(this);
|
||||
};
|
||||
|
||||
const _alias_Window_Message_open = Window_Message.prototype.open;
|
||||
Window_Message.prototype.open = function () {
|
||||
if ($gameMessage.nVLinstantOpen) {
|
||||
this.openness = 255;
|
||||
$gameMessage.nVLinstantOpen = false;
|
||||
} else {
|
||||
_alias_Window_Message_open.call(this);
|
||||
}
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Scene_GameExit
|
||||
//
|
||||
|
||||
function Scene_GameExit() {
|
||||
this.initialize.apply(this, arguments);
|
||||
}
|
||||
|
||||
Scene_GameExit.prototype = Object.create(Scene_GameEnd.prototype);
|
||||
Scene_GameExit.prototype.constructor = Scene_GameExit;
|
||||
|
||||
Scene_GameExit.prototype.createCommandWindow = function () {
|
||||
this._commandWindow = new Window_GameExit();
|
||||
this._commandWindow.setHandler("gameEnd", this.commandGameExit.bind(this));
|
||||
this._commandWindow.setHandler("cancel", this.popScene.bind(this));
|
||||
this.addWindow(this._commandWindow);
|
||||
};
|
||||
|
||||
Scene_GameExit.prototype.commandGameExit = function () {
|
||||
SceneManager.exit();
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Window_GameExit
|
||||
//
|
||||
|
||||
function Window_GameExit() {
|
||||
this.initialize.apply(this, arguments);
|
||||
}
|
||||
|
||||
Window_GameExit.prototype = Object.create(Window_GameEnd.prototype);
|
||||
Window_GameExit.prototype.constructor = Window_GameExit;
|
||||
|
||||
Window_GameExit.prototype.makeCommandList = function () {
|
||||
this.addCommand("ゲーム終了", "gameEnd");
|
||||
this.addCommand(TextManager.cancel, "cancel");
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Window_NovelMenuCommand
|
||||
//
|
||||
|
||||
function Window_NovelMenuCommand() {
|
||||
this.initialize.apply(this, arguments);
|
||||
}
|
||||
|
||||
Window_NovelMenuCommand.prototype = Object.create(
|
||||
Window_MenuCommand.prototype
|
||||
);
|
||||
Window_NovelMenuCommand.prototype.constructor = Window_NovelMenuCommand;
|
||||
|
||||
Window_NovelMenuCommand.prototype.initialize = function () {
|
||||
Window_MenuCommand.prototype.initialize.call(this, 0, 0);
|
||||
this.x = (Graphics.width - this.width) / 2;
|
||||
this.y = (Graphics.height - this.height) / 2;
|
||||
};
|
||||
|
||||
Window_NovelMenuCommand.prototype.addMainCommands = function () {
|
||||
const autoText = $gameSwitches.value(autoMessageSwitchID)
|
||||
? "オートメッセージON"
|
||||
: "オートメッセージOFF";
|
||||
const skipText = $gameSwitches.value(skipReadMessageSwitchID)
|
||||
? "既読スキップON"
|
||||
: "既読スキップOFF";
|
||||
this.addCommand(TextManager.save, "save", this.isSaveEnabled());
|
||||
this.addCommand("ロード", "load", true);
|
||||
this.addCommand(TextManager.options, "options", true);
|
||||
this.addCommand(autoText, "auto", true);
|
||||
this.addCommand("ログ", "log", true);
|
||||
this.addCommand("タイトルに戻る", "backTitle", true);
|
||||
this.addCommand("ゲームの終了", "gameExit", true);
|
||||
};
|
||||
|
||||
Window_NovelMenuCommand.prototype.addFormationCommand = function () {};
|
||||
|
||||
Window_NovelMenuCommand.prototype.addOriginalCommands = function () {};
|
||||
|
||||
Window_NovelMenuCommand.prototype.addOptionsCommand = function () {};
|
||||
|
||||
Window_NovelMenuCommand.prototype.addSaveCommand = function () {};
|
||||
|
||||
Window_NovelMenuCommand.prototype.addGameEndCommand = function () {};
|
||||
}
|
||||
1289
www/js/plugins/PictureCallCommon.js
Normal file
1289
www/js/plugins/PictureCallCommon.js
Normal file
File diff suppressed because it is too large
Load diff
381
www/js/plugins/SimpleVoice.js
Normal file
381
www/js/plugins/SimpleVoice.js
Normal file
|
|
@ -0,0 +1,381 @@
|
|||
//=============================================================================
|
||||
// SimpleVoice.js
|
||||
// ----------------------------------------------------------------------------
|
||||
// (C)2017 Triacontane
|
||||
// This software is released under the MIT License.
|
||||
// http://opensource.org/licenses/mit-license.php
|
||||
// ----------------------------------------------------------------------------
|
||||
// Version
|
||||
// 1.2.1 2023/02/11 再生中ボイス有無判定用メソッドを追加 by Rice Construction
|
||||
// 1.2.0 2021/03/04 演奏ファイルをサブフォルダから指定できる機能を追加
|
||||
// 1.1.3 2020/04/15 1.1.2の修正で同時再生したボイスの停止が動作しない問題を修正
|
||||
// 1.1.2 2020/04/08 異なるチャンネルで短い間隔で複数のボイスを再生した場合に、先に再生したボイスが演奏されない問題を修正
|
||||
// 1.1.1 2019/01/22 イベント高速化で再生したとき、SV_STOP_VOICEが効かなくなる場合がある問題を修正
|
||||
// 1.1.0 2017/07/16 ボイスのチャンネル指定機能を追加。同一チャンネルのボイスが同時再生されないようになります。
|
||||
// 1.0.1 2017/06/26 英語表記のプラグインコマンドの指定方法を変更
|
||||
// 1.0.0 2017/06/25 初版
|
||||
// ----------------------------------------------------------------------------
|
||||
// [Blog] : https://triacontane.blogspot.jp/
|
||||
// [Twitter]: https://twitter.com/triacontane/
|
||||
// [GitHub] : https://github.com/triacontane/
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc SimpleVoicePlugin
|
||||
* @author triacontane
|
||||
*
|
||||
* @param FolderName
|
||||
* @type string
|
||||
* @desc ボイスファイルが格納されているフォルダ名です。
|
||||
* @default voice
|
||||
*
|
||||
* @param OptionName
|
||||
* @type string
|
||||
* @desc オプション画面に表示されるボイス音量の設定項目名称です。
|
||||
* @default ボイス 音量
|
||||
*
|
||||
* @param OptionValue
|
||||
* @type number
|
||||
* @desc ボイス音量の初期値です。
|
||||
* @default 100
|
||||
*
|
||||
* @help ボイス演奏を簡易サポートします。
|
||||
* 通常の効果音とは格納フォルダを分けられるほか、オプション画面で
|
||||
* 別途音量指定が可能になります。
|
||||
*
|
||||
* 演奏及びループ演奏はプラグインコマンドから行います。
|
||||
*
|
||||
* プラグインコマンド詳細
|
||||
* イベントコマンド「プラグインコマンド」から実行。
|
||||
* (パラメータの間は半角スペースで区切る)
|
||||
*
|
||||
* SV_ボイスの演奏 aaa 90 100 0 2 # 指定したボイスを演奏します。
|
||||
* SV_PLAY_VOICE aaa 90 100 0 2 # 同上
|
||||
* ※具体的な引数は以下の通りです。
|
||||
* 0 : ファイル名(拡張子不要)
|
||||
* 1 : 音量(省略した場合は90)
|
||||
* 2 : ピッチ(省略した場合は100)
|
||||
* 3 : 位相(省略した場合は0)
|
||||
* 4 : チャンネル番号
|
||||
*
|
||||
* チャンネル番号(数値)を指定すると、停止するときに指定したチャンネルと一致する
|
||||
* すべてのボイスを一度に停止することができます。
|
||||
* これにより同一のチャンネルのボイスが重なって演奏されないようになります。
|
||||
*
|
||||
* SV_ボイスのループ演奏 aaa 90 100 0 # 指定したボイスをループ演奏します。
|
||||
* SV_PLAY_LOOP_VOICE aaa 90 100 0 # 同上
|
||||
*
|
||||
* SV_ボイスの停止 aaa # ボイスaaaの演奏を停止します。
|
||||
* SV_STOP_VOICE aaa # 同上
|
||||
* SV_ボイスの停止 1 # チャンネル[1]で再生した全てのボイスの演奏を停止します。
|
||||
* SV_STOP_VOICE 1 # 同上
|
||||
* ※引数を省略した場合は全てのボイスを停止します。
|
||||
*
|
||||
* This plugin is released under the MIT License.
|
||||
*/
|
||||
/*:ja
|
||||
* @plugindesc 簡易ボイスプラグイン
|
||||
* @author トリアコンタン
|
||||
*
|
||||
* @param フォルダ名
|
||||
* @type string
|
||||
* @desc ボイスファイルが格納されているフォルダ名です。
|
||||
* @default voice
|
||||
*
|
||||
* @param オプション名称
|
||||
* @type string
|
||||
* @desc オプション画面に表示されるボイス音量の設定項目名称です。
|
||||
* @default ボイス 音量
|
||||
*
|
||||
* @param オプション初期値
|
||||
* @type number
|
||||
* @desc ボイス音量の初期値です。
|
||||
* @default 100
|
||||
*
|
||||
* @help ボイス演奏を簡易サポートします。
|
||||
* 通常の効果音とは格納フォルダを分けられるほか、オプション画面で
|
||||
* 別途音量指定が可能になります。
|
||||
*
|
||||
* 演奏及びループ演奏はプラグインコマンドから行います。
|
||||
*
|
||||
* プラグインコマンド詳細
|
||||
* イベントコマンド「プラグインコマンド」から実行。
|
||||
* (パラメータの間は半角スペースで区切る)
|
||||
*
|
||||
* SV_ボイスの演奏 aaa 90 100 0 2 # 指定したボイスを演奏します。
|
||||
* SV_PLAY_VOICE aaa 90 100 0 2 # 同上
|
||||
* ※具体的な引数は以下の通りです。
|
||||
* 0 : ファイル名(拡張子不要)
|
||||
* 1 : 音量(省略した場合は90)
|
||||
* 2 : ピッチ(省略した場合は100)
|
||||
* 3 : 位相(省略した場合は0)
|
||||
* 4 : チャンネル番号
|
||||
* ※ファイル名にパスを指定するとサブフォルダの効果音を演奏できます。
|
||||
* 例:SV_PLAY_VOICE sub/aaa 90 100 0 2
|
||||
*
|
||||
* チャンネル番号(数値)を指定すると、停止するときに指定したチャンネルと一致する
|
||||
* すべてのボイスを一度に停止することができます。
|
||||
* これにより同一のチャンネルのボイスが重なって演奏されないようになります。
|
||||
*
|
||||
* SV_ボイスのループ演奏 aaa 90 100 0 # 指定したボイスをループ演奏します。
|
||||
* SV_PLAY_LOOP_VOICE aaa 90 100 0 # 同上
|
||||
*
|
||||
* SV_ボイスの停止 aaa # ボイスaaaの演奏を停止します。
|
||||
* SV_STOP_VOICE aaa # 同上
|
||||
* SV_ボイスの停止 1 # チャンネル[1]で再生した全てのボイスの演奏を停止します。
|
||||
* SV_STOP_VOICE 1 # 同上
|
||||
* ※引数を省略した場合は全てのボイスを停止します。
|
||||
*
|
||||
* 利用規約:
|
||||
* 作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)
|
||||
* についても制限はありません。
|
||||
* このプラグインはもうあなたのものです。
|
||||
*/
|
||||
(function () {
|
||||
"use strict";
|
||||
var pluginName = "SimpleVoice";
|
||||
var metaTagPrefix = "SV_";
|
||||
|
||||
//=============================================================================
|
||||
// ローカル関数
|
||||
// プラグインパラメータやプラグインコマンドパラメータの整形やチェックをします
|
||||
//=============================================================================
|
||||
var getParamString = function (paramNames) {
|
||||
if (!Array.isArray(paramNames)) paramNames = [paramNames];
|
||||
for (var i = 0; i < paramNames.length; i++) {
|
||||
var name = PluginManager.parameters(pluginName)[paramNames[i]];
|
||||
if (name) return name;
|
||||
}
|
||||
return "";
|
||||
};
|
||||
|
||||
var getParamNumber = function (paramNames, min, max) {
|
||||
var value = getParamString(paramNames);
|
||||
if (arguments.length < 2) min = -Infinity;
|
||||
if (arguments.length < 3) max = Infinity;
|
||||
return (parseInt(value) || 0).clamp(min, max);
|
||||
};
|
||||
|
||||
var getArgNumber = function (arg, min, max) {
|
||||
if (arguments.length < 2) min = -Infinity;
|
||||
if (arguments.length < 3) max = Infinity;
|
||||
return (parseInt(arg) || 0).clamp(min, max);
|
||||
};
|
||||
|
||||
var convertEscapeCharacters = function (text) {
|
||||
if (isNotAString(text)) text = "";
|
||||
var windowLayer = SceneManager._scene._windowLayer;
|
||||
return windowLayer
|
||||
? windowLayer.children[0].convertEscapeCharacters(text)
|
||||
: text;
|
||||
};
|
||||
|
||||
var isNotAString = function (args) {
|
||||
return String(args) !== args;
|
||||
};
|
||||
|
||||
var convertAllArguments = function (args) {
|
||||
for (var i = 0; i < args.length; i++) {
|
||||
args[i] = convertEscapeCharacters(args[i]);
|
||||
}
|
||||
return args;
|
||||
};
|
||||
|
||||
var setPluginCommand = function (commandName, methodName) {
|
||||
pluginCommandMap.set(metaTagPrefix + commandName, methodName);
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// パラメータの取得と整形
|
||||
//=============================================================================
|
||||
var param = {};
|
||||
param.folderName = getParamString(["FolderName", "フォルダ名"]);
|
||||
param.optionName = getParamString(["OptionName", "オプション名称"]);
|
||||
param.optionValue = getParamNumber(["OptionValue", "オプション初期値"]);
|
||||
|
||||
var pluginCommandMap = new Map();
|
||||
setPluginCommand("ボイスの演奏", "execPlayVoice");
|
||||
setPluginCommand("PLAY_VOICE", "execPlayVoice");
|
||||
setPluginCommand("ボイスのループ演奏", "execPlayLoopVoice");
|
||||
setPluginCommand("PLAY_LOOP_VOICE", "execPlayLoopVoice");
|
||||
setPluginCommand("ボイスの停止", "execStopVoice");
|
||||
setPluginCommand("STOP_VOICE", "execStopVoice");
|
||||
|
||||
//=============================================================================
|
||||
// Game_Interpreter
|
||||
// プラグインコマンドを追加定義します。
|
||||
//=============================================================================
|
||||
var _Game_Interpreter_pluginCommand =
|
||||
Game_Interpreter.prototype.pluginCommand;
|
||||
Game_Interpreter.prototype.pluginCommand = function (command, args) {
|
||||
_Game_Interpreter_pluginCommand.apply(this, arguments);
|
||||
var pluginCommandMethod = pluginCommandMap.get(command.toUpperCase());
|
||||
if (pluginCommandMethod) {
|
||||
this[pluginCommandMethod](convertAllArguments(args));
|
||||
}
|
||||
};
|
||||
|
||||
Game_Interpreter.prototype.execPlayVoice = function (args, loop) {
|
||||
var voice = {};
|
||||
voice.name = args.length >= 1 ? args[0] : "";
|
||||
voice.volume = args.length >= 2 ? getArgNumber(args[1], 0, 100) : 90;
|
||||
voice.pitch = args.length >= 3 ? getArgNumber(args[2], 50, 150) : 100;
|
||||
voice.pan = args.length >= 4 ? getArgNumber(args[3], -100, 100) : 0;
|
||||
var channel = args.length >= 5 ? getArgNumber(args[4], 1) : undefined;
|
||||
AudioManager.playVoice(voice, loop || false, channel);
|
||||
};
|
||||
|
||||
Game_Interpreter.prototype.execPlayLoopVoice = function (args) {
|
||||
this.execPlayVoice(args, true);
|
||||
};
|
||||
|
||||
Game_Interpreter.prototype.execStopVoice = function (args) {
|
||||
var channel = Number(args[0]);
|
||||
if (isNaN(channel)) {
|
||||
AudioManager.stopVoice(args[0], null);
|
||||
} else {
|
||||
AudioManager.stopVoice(null, channel);
|
||||
}
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// ConfigManager
|
||||
// ボイスボリュームの設定機能を追加します。
|
||||
//=============================================================================
|
||||
Object.defineProperty(ConfigManager, "voiceVolume", {
|
||||
get: function () {
|
||||
return AudioManager._voiceVolume;
|
||||
},
|
||||
set: function (value) {
|
||||
AudioManager.voiceVolume = value;
|
||||
},
|
||||
});
|
||||
|
||||
var _ConfigManager_makeData = ConfigManager.makeData;
|
||||
ConfigManager.makeData = function () {
|
||||
var config = _ConfigManager_makeData.apply(this, arguments);
|
||||
config.voiceVolume = this.voiceVolume;
|
||||
return config;
|
||||
};
|
||||
|
||||
var _ConfigManager_applyData = ConfigManager.applyData;
|
||||
ConfigManager.applyData = function (config) {
|
||||
_ConfigManager_applyData.apply(this, arguments);
|
||||
var symbol = "voiceVolume";
|
||||
this.voiceVolume = config.hasOwnProperty(symbol)
|
||||
? this.readVolume(config, symbol)
|
||||
: param.optionValue;
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Window_Options
|
||||
// ボイスボリュームの設定項目を追加します。
|
||||
//=============================================================================
|
||||
var _Window_Options_addVolumeOptions =
|
||||
Window_Options.prototype.addVolumeOptions;
|
||||
Window_Options.prototype.addVolumeOptions = function () {
|
||||
_Window_Options_addVolumeOptions.apply(this, arguments);
|
||||
this.addCommand(param.optionName, "voiceVolume");
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// AudioManager
|
||||
// ボイスの演奏機能を追加定義します。
|
||||
//=============================================================================
|
||||
Object.defineProperty(AudioManager, "voiceVolume", {
|
||||
get: function () {
|
||||
return this._voiceVolume;
|
||||
},
|
||||
set: function (value) {
|
||||
this._voiceVolume = value;
|
||||
},
|
||||
});
|
||||
|
||||
AudioManager.updateVoiceParameters = function (buffer, voice) {
|
||||
this.updateBufferParameters(buffer, this._voiceVolume, voice);
|
||||
};
|
||||
|
||||
AudioManager._voiceBuffers = [];
|
||||
AudioManager._voiceVolume = 100;
|
||||
AudioManager.playVoice = function (voice, loop, channel) {
|
||||
if (voice.name) {
|
||||
this.stopVoice(voice.name, channel);
|
||||
var realPath = this.getRealVoicePath(param.folderName, voice.name);
|
||||
var realName = this.getRealVoiceName(voice.name);
|
||||
var buffer = this.createBuffer(realPath, realName);
|
||||
this.updateVoiceParameters(buffer, voice);
|
||||
buffer.play(loop);
|
||||
buffer.name = voice.name;
|
||||
buffer.channel = channel;
|
||||
this._voiceBuffers.push(buffer);
|
||||
}
|
||||
};
|
||||
|
||||
AudioManager.getRealVoicePath = function (path1, path2) {
|
||||
if (path2.includes("/")) {
|
||||
return (
|
||||
path1 +
|
||||
"/" +
|
||||
path2.replace(/(.*)\/.*/, function () {
|
||||
return arguments[1];
|
||||
})
|
||||
);
|
||||
} else {
|
||||
return path1;
|
||||
}
|
||||
};
|
||||
|
||||
AudioManager.getRealVoiceName = function (path) {
|
||||
if (path.includes("/")) {
|
||||
return path.replace(/.*\/(.*)/, function () {
|
||||
return arguments[1];
|
||||
});
|
||||
} else {
|
||||
return path;
|
||||
}
|
||||
};
|
||||
|
||||
AudioManager.stopVoice = function (name, channel) {
|
||||
this._voiceBuffers.forEach(function (buffer) {
|
||||
if (
|
||||
(!name && !channel) ||
|
||||
buffer.name === name ||
|
||||
buffer.channel === channel
|
||||
) {
|
||||
buffer.stop();
|
||||
}
|
||||
});
|
||||
this.filterPlayingVoice();
|
||||
};
|
||||
|
||||
AudioManager.filterPlayingVoice = function () {
|
||||
this._voiceBuffers = this._voiceBuffers.filter(function (buffer) {
|
||||
var playing = buffer.isPlaying() || !buffer.isReady();
|
||||
if (!playing) {
|
||||
buffer.stop();
|
||||
}
|
||||
return playing;
|
||||
});
|
||||
};
|
||||
|
||||
var _AudioManager_stopAll = AudioManager.stopAll;
|
||||
AudioManager.stopAll = function () {
|
||||
_AudioManager_stopAll.apply(this, arguments);
|
||||
this.stopVoice();
|
||||
};
|
||||
|
||||
AudioManager.hasPlayingVoice = function () {
|
||||
this.filterPlayingVoice();
|
||||
return this._voiceBuffers.length > 0;
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// Scene_Base
|
||||
// フェードアウト時にSEの演奏も停止します。
|
||||
//=============================================================================
|
||||
var _Scene_Base_fadeOutAll = Scene_Base.prototype.fadeOutAll;
|
||||
Scene_Base.prototype.fadeOutAll = function () {
|
||||
_Scene_Base_fadeOutAll.apply(this, arguments);
|
||||
AudioManager.stopVoice();
|
||||
};
|
||||
})();
|
||||
127
www/js/plugins/TMCommonCommand.js
Normal file
127
www/js/plugins/TMCommonCommand.js
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
//=============================================================================
|
||||
// TMPlugin - コモンコマンド
|
||||
// バージョン: 1.0.0
|
||||
// 最終更新日: 2018/09/21
|
||||
// 配布元 : https://hikimoki.sakura.ne.jp/
|
||||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2018 tomoaky
|
||||
// Released under the MIT license.
|
||||
// http://opensource.org/licenses/mit-license.php
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc メインメニューにコモンイベント実行用のコマンドを追加します。
|
||||
*
|
||||
* @author tomoaky (https://hikimoki.sakura.ne.jp/)
|
||||
*
|
||||
* @param command1
|
||||
* @type struct<CommonCommand>
|
||||
* @desc コモンコマンドその1
|
||||
* @default {"name":"","commonEventId":"0"}
|
||||
*
|
||||
* @param command2
|
||||
* @type struct<CommonCommand>
|
||||
* @desc コモンコマンドその2
|
||||
* @default {"name":"","commonEventId":"0"}
|
||||
*
|
||||
* @param command3
|
||||
* @type struct<CommonCommand>
|
||||
* @desc コモンコマンドその3
|
||||
* @default {"name":"","commonEventId":"0"}
|
||||
*
|
||||
* @param command4
|
||||
* @type struct<CommonCommand>
|
||||
* @desc コモンコマンドその4
|
||||
* @default {"name":"","commonEventId":"0"}
|
||||
*
|
||||
* @param command5
|
||||
* @type struct<CommonCommand>
|
||||
* @desc コモンコマンドその5
|
||||
* @default {"name":"","commonEventId":"0"}
|
||||
*
|
||||
* @help
|
||||
* TMPlugin - コモンコマンド ver1.0.0
|
||||
*
|
||||
* 使い方:
|
||||
*
|
||||
* プラグインパラメータのコマンド名と実行するコモンイベントを設定すれば
|
||||
* メインメニューに新しいコマンドが追加されます。
|
||||
*
|
||||
* このプラグインは RPGツクールMV Version 1.6.1 で動作確認をしています。
|
||||
*
|
||||
* このプラグインはMITライセンスのもとに配布しています、商用利用、
|
||||
* 改造、再配布など、自由にお使いいただけます。
|
||||
*/
|
||||
/*~struct~CommonCommand:
|
||||
*
|
||||
* @param name
|
||||
* @desc コマンド名
|
||||
* @default
|
||||
*
|
||||
* @param commonEventId
|
||||
* @type common_event
|
||||
* @desc 実行するコモンイベント
|
||||
* @default 0
|
||||
*
|
||||
*/
|
||||
|
||||
var Imported = Imported || {};
|
||||
Imported.TMCommonCommand = true;
|
||||
|
||||
(function () {
|
||||
var parameters = PluginManager.parameters("TMCommonCommand");
|
||||
var CommonCommands = [
|
||||
JSON.parse(parameters["command1"] || "{}"),
|
||||
JSON.parse(parameters["command2"] || "{}"),
|
||||
JSON.parse(parameters["command3"] || "{}"),
|
||||
JSON.parse(parameters["command4"] || "{}"),
|
||||
JSON.parse(parameters["command5"] || "{}"),
|
||||
];
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Window_MenuCommand
|
||||
//
|
||||
|
||||
var _Window_MenuCommand_addOriginalCommands =
|
||||
Window_MenuCommand.prototype.addOriginalCommands;
|
||||
Window_MenuCommand.prototype.addOriginalCommands = function () {
|
||||
_Window_MenuCommand_addOriginalCommands.call(this);
|
||||
CommonCommands.forEach(function (command) {
|
||||
if (command.commonEventId > 0) {
|
||||
this.addCommand(command.name, command.name, true);
|
||||
}
|
||||
}, this);
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Scene_Menu
|
||||
//
|
||||
|
||||
var _Scene_Menu_createCommandWindow =
|
||||
Scene_Menu.prototype.createCommandWindow;
|
||||
Scene_Menu.prototype.createCommandWindow = function () {
|
||||
_Scene_Menu_createCommandWindow.call(this);
|
||||
CommonCommands.forEach(function (command) {
|
||||
if (command.commonEventId > 0) {
|
||||
this._commandWindow.setHandler(
|
||||
command.name,
|
||||
this.commandCommonCommand.bind(this)
|
||||
);
|
||||
}
|
||||
}, this);
|
||||
};
|
||||
|
||||
Scene_Menu.prototype.commandCommonCommand = function () {
|
||||
var symbol = this._commandWindow.currentSymbol();
|
||||
CommonCommands.forEach(function (command) {
|
||||
if (command.name === symbol) {
|
||||
$gameTemp.reserveCommonEvent(command.commonEventId);
|
||||
}
|
||||
}, this);
|
||||
if ($gameTemp.isCommonEventReserved()) {
|
||||
SceneManager.goto(Scene_Map);
|
||||
} else {
|
||||
this._commandWindow.activate();
|
||||
}
|
||||
};
|
||||
})();
|
||||
70
www/js/plugins/TitleCommandPosition.js
Normal file
70
www/js/plugins/TitleCommandPosition.js
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
//=============================================================================
|
||||
// TitleCommandPosition.js
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc Changes the position of the title command window.
|
||||
* @author Yoji Ojima
|
||||
*
|
||||
* @param Offset X
|
||||
* @desc The offset value for the x coordinate.
|
||||
* @default 0
|
||||
*
|
||||
* @param Offset Y
|
||||
* @desc The offset value for the y coordinate.
|
||||
* @default 0
|
||||
*
|
||||
* @param Width
|
||||
* @desc The width of the command window.
|
||||
* @default 240
|
||||
*
|
||||
* @param Background
|
||||
* @desc The background type. 0: Normal, 1: Dim, 2: Transparent
|
||||
* @default 0
|
||||
*
|
||||
* @help This plugin does not provide plugin commands.
|
||||
*/
|
||||
|
||||
/*:ja
|
||||
* @plugindesc タイトルコマンドウィンドウの位置を変更します。
|
||||
* @author Yoji Ojima
|
||||
*
|
||||
* @param Offset X
|
||||
* @desc X座標のオフセット値です。
|
||||
* @default 0
|
||||
*
|
||||
* @param Offset Y
|
||||
* @desc Y座標のオフセット値です。
|
||||
* @default 0
|
||||
*
|
||||
* @param Width
|
||||
* @desc コマンドウィンドウの幅です。
|
||||
* @default 240
|
||||
*
|
||||
* @param Background
|
||||
* @desc 背景タイプです。0: 通常、1: 暗くする、2: 透明
|
||||
* @default 0
|
||||
*
|
||||
* @help このプラグインには、プラグインコマンドはありません。
|
||||
*/
|
||||
|
||||
(function () {
|
||||
var parameters = PluginManager.parameters("TitleCommandPosition");
|
||||
var offsetX = Number(parameters["Offset X"] || 0);
|
||||
var offsetY = Number(parameters["Offset Y"] || 0);
|
||||
var width = Number(parameters["Width"] || 240);
|
||||
var background = Number(parameters["Background"] || 0);
|
||||
|
||||
var _Window_TitleCommand_updatePlacement =
|
||||
Window_TitleCommand.prototype.updatePlacement;
|
||||
Window_TitleCommand.prototype.updatePlacement = function () {
|
||||
_Window_TitleCommand_updatePlacement.call(this);
|
||||
this.x += offsetX;
|
||||
this.y += offsetY;
|
||||
this.setBackgroundType(background);
|
||||
};
|
||||
|
||||
Window_TitleCommand.prototype.windowWidth = function () {
|
||||
return width;
|
||||
};
|
||||
})();
|
||||
626
www/js/plugins/UTA_CommonSave.js
Normal file
626
www/js/plugins/UTA_CommonSave.js
Normal file
|
|
@ -0,0 +1,626 @@
|
|||
//=============================================================================
|
||||
// UTA_CommonSave.js
|
||||
//=============================================================================
|
||||
// Version : 1.20
|
||||
// LastUpdate : 2016.05.11
|
||||
// Author : T.Akatsuki
|
||||
// Website : http://utakata-no-yume.net/
|
||||
// License : MIT License(http://opensource.org/licenses/mit-license.php)
|
||||
//=============================================================================
|
||||
|
||||
//=============================================================================
|
||||
/*:
|
||||
* @plugindesc Create a share save data. Share state of game switch and variables between each save data.
|
||||
* @author T.Akatsuki
|
||||
*
|
||||
* @param Target Switches
|
||||
* @desc Set target switch index number.
|
||||
* If you want to set multiple, put comma between indexes.
|
||||
* Using "-", the range can be specified.
|
||||
* (ex) 1-3,11,12,13,20,21
|
||||
* @default
|
||||
*
|
||||
* @param Target Variables
|
||||
* @desc Set target variable index number.
|
||||
* If you want to set multiple, put comma between indexes.
|
||||
* Using "-", the range can be specified.
|
||||
* (ex) 1-5,11,12,13,23,24
|
||||
* @default
|
||||
*
|
||||
* @param Is Auto
|
||||
* @desc Automatically to set save / load common save data on save / load timing.
|
||||
* true : Automatically common save data is saved/loaded on save / load timing.
|
||||
* false : Save and load of common save data you do manually.
|
||||
* @default true
|
||||
*
|
||||
* @param Auto on Gameover
|
||||
* @desc If auto saving common save data is enabled , it automatically saves common save data on gameover.
|
||||
* true : It save common save data on game over.
|
||||
* false : It do nothing on game over.
|
||||
* @default false
|
||||
*
|
||||
* @param Show Trace
|
||||
* @desc Set state traces display.
|
||||
* true : Show trace., false : Don't show trace.
|
||||
* @default false
|
||||
*
|
||||
* @help # Overview
|
||||
* Create a share save data. Share state of game switch and variables between each save data.
|
||||
* If you use plugin command, you can operate common save data at any time.
|
||||
*
|
||||
* Common save data will be saved with a name "common.rpgsave" below save directory.
|
||||
*
|
||||
* # Parameters
|
||||
* Target Switches [Switch No, ...]
|
||||
* Set target switch index number.
|
||||
* If you want to set multiple, put comma between indexes.
|
||||
* Using "-", the range can be specified.
|
||||
* (Ex) 1-3,11,12,13,20,21
|
||||
* => number 1,2,3,11,12,13,20,21 switches are target.
|
||||
*
|
||||
* Target Variables [Valiable No, ...]
|
||||
* Set target variable index number.
|
||||
* If you want to set multiple, put comma between indexes.
|
||||
* Using "-", the range can be specified.
|
||||
* (Ex) 1-3,11,12,13,14,15
|
||||
* => number 1,2,3,11,12,13,14,15 variables are target.
|
||||
*
|
||||
* Is Auto [true|false]
|
||||
* Automatically to set save / load common save data on save / load timing.
|
||||
*
|
||||
* Auto on Gameover [true|false]
|
||||
* If auto saving common save data is enabled , it automatically saves common save data on gameover.
|
||||
*
|
||||
* Show Trace [true|false]
|
||||
* Set whether the issue a trace for debugging.
|
||||
*
|
||||
* # Plugin Command
|
||||
* CommonSave load # Read GameSwitches and GameVariables from common save data and apply game data.
|
||||
* # This command is used when you want to load common save data at any time.
|
||||
* CommonSave save # Save target GameSwitches and GameVariables common save data.
|
||||
* # This command is used when you want to save in common save data at any time.
|
||||
* CommonSave remove # Remove common save data file.
|
||||
*
|
||||
* CommonSave setTrace [true|false] # Setting to enabled trace on console.
|
||||
*
|
||||
* CommonSave check # Show sharing target switches and variables to console.
|
||||
*
|
||||
* # Change Log
|
||||
* ver 1.20 (2016.05.11)
|
||||
* Using "-", the range can be specified.
|
||||
* Add setTrace plugin command.
|
||||
* Add check plugin command.
|
||||
*
|
||||
* ver 1.10 (Fed 17, 2016)
|
||||
* Rename to UTA_CommonSave.js.
|
||||
* To be able to set trace in the parameter.
|
||||
*
|
||||
* ver1.01 (Jan 14, 2016)
|
||||
* Fixed bug where could not share variables.
|
||||
*
|
||||
* ver1.00 (Dec 31, 2015)
|
||||
* To ver1.00 according to the Japanese version of RPG Maker MV.
|
||||
*
|
||||
* ver0.01 (Nov 05, 2015)
|
||||
* Initial release.
|
||||
*/
|
||||
|
||||
/*:ja
|
||||
* @plugindesc 共有のセーブデータを作成し、指定したスイッチ・変数の状態をセーブデータ間で共有します。
|
||||
* @author 赤月 智平
|
||||
*
|
||||
* @param Target Switches
|
||||
* @desc 対象となるスイッチの番号を指定します。
|
||||
* カンマ区切りで複数指定、ハイフンで範囲指定が可能です。
|
||||
* (例) 1-3,11,12,13,20,21
|
||||
* @default
|
||||
*
|
||||
* @param Target Variables
|
||||
* @desc 対象となる変数の番号を指定します。
|
||||
* カンマ区切りで複数指定、ハイフンで範囲指定が可能です。
|
||||
* (例) 1-5,11,12,13,23,24
|
||||
* @default
|
||||
*
|
||||
* @param Is Auto
|
||||
* @desc セーブ・ロード時に自動的に共通セーブデータのセーブ・ロードを行うかを設定します。
|
||||
* true : セーブ・ロード時に自動的に共有セーブデータにデータのセーブ・ロードを行う。
|
||||
* false : 共通セーブデータのセーブ・ロードは手動で行う。
|
||||
* @default true
|
||||
*
|
||||
* @param Auto on Gameover
|
||||
* @desc 自動セーブ設定がONの時にゲームオーバー時に共有セーブデータの自動セーブを行うかを設定します。
|
||||
* true : ゲームオーバー時に自動共有セーブを行う。
|
||||
* false : ゲームオーバー時は自動共有セーブを行わない。
|
||||
* @default false
|
||||
*
|
||||
* @param Show Trace
|
||||
* @desc デバッグ用のトレースを出すかを設定します。
|
||||
* true: トレースを表示, false: トレースを表示しない
|
||||
* @default false
|
||||
*
|
||||
* @help ■概要
|
||||
* CommonSaveプラグインは共有セーブデータを作成し、指定したスイッチ・変数の状態をセーブデータ間で共有する事ができます。
|
||||
* 基本的にはセーブ・ロード時に設定に応じて自動的に処理してくれます。
|
||||
* プラグインコマンドを利用すると、任意のタイミングで共有セーブデータの操作を行う事ができます。
|
||||
*
|
||||
* 共有セーブデータはsaveディレクトリ以下に「common.rpgsave」という名前で保存されます。
|
||||
*
|
||||
* ■パラメータの説明
|
||||
* Target Switches [スイッチ番号, ...]
|
||||
* 共有したいスイッチの番号を指定します。「,」で区切り複数の値を指定する事ができます。
|
||||
* 「-」で数値の範囲を指定する事も可能です。
|
||||
* (例) 1-3,11,12,13,20,21
|
||||
* => 1,2,3,11,12,13,20,21番のスイッチが対象になる。
|
||||
*
|
||||
* Target Variables [変数番号, ...]
|
||||
* 共有したい変数の番号を指定します。「,」で区切り複数の値を指定する事ができます。
|
||||
* 「-」で数値の範囲を指定する事も可能です。
|
||||
* (例) 1-3,11,12,13,14,15
|
||||
* => 1,2,3,11,12,13,14,15番の変数が対象になる。
|
||||
*
|
||||
* Is Auto [true|false]
|
||||
* セーブ・ロード時に自動的に共通セーブデータのセーブ・ロードを行うかを設定します。
|
||||
* デフォルトではtrue(セーブ・ロード時に自動的に共有セーブ・ロードを行う)になっています。
|
||||
*
|
||||
* Auto on Gameover [true|false]
|
||||
* 自動セーブ設定がONの時にゲームオーバー時に共有セーブデータの自動セーブを行うかを設定します。
|
||||
* デフォルトではfalse(ゲームオーバー時に自動共有セーブを行わない)になっています。
|
||||
*
|
||||
* Show Trace [true|false]
|
||||
* デバッグ用のトレースを出すかを設定します。
|
||||
*
|
||||
* ■プラグインコマンド
|
||||
* CommonSave load # 共有セーブデータからスイッチ・変数を読み込み反映させます。
|
||||
* # 任意のタイミングで共有セーブデータのロードを行いたい場合に使用します。
|
||||
* CommonSave save # 共有セーブデータにスイッチ・変数の状態を記録します。
|
||||
* # 任意のタイミングで共有セーブデータのセーブを行いたい場合に使用します。
|
||||
* CommonSave remove # 共有セーブデータを削除します。
|
||||
* # 共有セーブデータをリセットしたい場合に使用します。
|
||||
* CommonSave setTrace [true|false] # コンソールにトレースを出力するかを設定します。
|
||||
* # ゲーム実行中にトレース状態を切り替えたい場合に使用します。
|
||||
* CommonSave check # 共有状態になっているスイッチ・変数番号をコンソールに表示し確認します。
|
||||
*
|
||||
* ■更新履歴
|
||||
* ver 1.20 (2016.05.11)
|
||||
* スイッチ・変数の指定の際に「-」を使う事で範囲指定を可能に。
|
||||
* トレース状態を動的に変えられるように setTrace プラグインコマンドを追加。
|
||||
* 共有対象になっているスイッチ・変数を確認できる check プラグインコマンドを追加。
|
||||
*
|
||||
* ver 1.10 (2016.02.17)
|
||||
* ファイル名をUTA_CommonSave.jsに変更。
|
||||
* トレース出力の有無をパラメータで設定できるように。
|
||||
*
|
||||
* ver 1.01 (2016.01.14)
|
||||
* 変数の共有が上手くできていないバグの修正。
|
||||
*
|
||||
* ver 1.00 (2015.12.31)
|
||||
* 日本語版RPGツクールMVの発売に合わせver1.00に。
|
||||
*
|
||||
* ver 0.01 (2015.11.05)
|
||||
* 初版。
|
||||
*/
|
||||
//=============================================================================
|
||||
|
||||
//name space
|
||||
var utakata = utakata || (utakata = {});
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// class CommonSaveManager
|
||||
//-----------------------------------------------------------------------------
|
||||
(function (utakata) {
|
||||
var CommonSaveManager = (function () {
|
||||
//constructor
|
||||
function CommonSaveManager() {
|
||||
//member variables
|
||||
this._targetSwitchList = [];
|
||||
this._targetVariableList = [];
|
||||
|
||||
this._showTrace = false;
|
||||
this._tr = null;
|
||||
|
||||
this.initialize();
|
||||
}
|
||||
|
||||
//private methods
|
||||
CommonSaveManager.prototype.initialize = function () {
|
||||
this.parameters = PluginManager.parameters("UTA_CommonSave");
|
||||
|
||||
this._showTrace = String(this.parameters["Show Trace"]) === "true";
|
||||
|
||||
this._tr = function (s) {
|
||||
if (!this._showTrace) {
|
||||
return;
|
||||
}
|
||||
var str = "CommonSaveManager: " + s;
|
||||
console.log(str);
|
||||
};
|
||||
|
||||
var targetSwitchStr = String(this.parameters["Target Switches"]);
|
||||
var targetVariableStr = String(this.parameters["Target Variables"]);
|
||||
|
||||
this._targetSwitchList = this._parseTargetNumber(targetSwitchStr);
|
||||
this._targetVariableList = this._parseTargetNumber(targetVariableStr);
|
||||
};
|
||||
|
||||
CommonSaveManager.prototype._parseTargetNumber = function (str) {
|
||||
if (typeof str === "undefined" || str === "undefined") {
|
||||
return [];
|
||||
}
|
||||
|
||||
str = str.replace(/\s+/g, "");
|
||||
|
||||
var split_str = ",";
|
||||
var rgn_split_str = "-";
|
||||
|
||||
var indexes = str.split(split_str, -1);
|
||||
var ret = [];
|
||||
|
||||
var parseTargetNumbersFromRegion = function (rgn_target) {
|
||||
var ret = [];
|
||||
var target_number = rgn_target.split(rgn_split_str, -1);
|
||||
if (
|
||||
typeof target_number[0] === "undefined" ||
|
||||
typeof target_number[1] === "undefined"
|
||||
) {
|
||||
return [];
|
||||
}
|
||||
|
||||
var s_number = parseInt(target_number[0]);
|
||||
if (s_number !== s_number) {
|
||||
this._tr(
|
||||
"_parseTargetNumber getTargetNumbersFromRegion: Setting parameter is invalid."
|
||||
);
|
||||
return [];
|
||||
}
|
||||
|
||||
var e_number = parseInt(target_number[1]);
|
||||
if (e_number !== e_number) {
|
||||
this._tr(
|
||||
"_parseTargetNumber getTargetNumbersFromRegion: Setting parameter is invalid."
|
||||
);
|
||||
return [];
|
||||
}
|
||||
|
||||
for (var i = s_number; i <= e_number; i++) {
|
||||
ret.push(i);
|
||||
}
|
||||
|
||||
return ret;
|
||||
};
|
||||
|
||||
for (var i = 0; i < indexes.length; i++) {
|
||||
var rgn_target = indexes[i].match(/\d+-\d+/g);
|
||||
if (!!rgn_target) {
|
||||
var parseIndexes = parseTargetNumbersFromRegion(rgn_target[0]);
|
||||
if (parseIndexes.length <= 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
ret = ret.concat(parseIndexes);
|
||||
} else {
|
||||
var parseIndex = parseInt(indexes[i]);
|
||||
if (parseIndex !== parseIndex) {
|
||||
this._tr("_parseTargetNumber: Setting parameter is invalid.");
|
||||
continue;
|
||||
}
|
||||
ret.push(parseIndex);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
};
|
||||
|
||||
CommonSaveManager.prototype._getTargetSwitchJson = function () {
|
||||
var json = {};
|
||||
|
||||
for (var i = 0; i < this._targetSwitchList.length; i++) {
|
||||
var idx = this._targetSwitchList[i].toString();
|
||||
var value = $gameSwitches.value(idx);
|
||||
json[idx] = value;
|
||||
}
|
||||
|
||||
return json;
|
||||
};
|
||||
|
||||
CommonSaveManager.prototype._getTargetVariableJson = function () {
|
||||
var json = {};
|
||||
|
||||
for (var i = 0; i < this._targetVariableList.length; i++) {
|
||||
var idx = this._targetVariableList[i].toString();
|
||||
var value = $gameVariables.value(idx);
|
||||
json[idx] = value;
|
||||
}
|
||||
|
||||
return json;
|
||||
};
|
||||
|
||||
CommonSaveManager.prototype.setLoadSwitches = function (switches) {
|
||||
for (var key in switches) {
|
||||
var idx = parseInt(key);
|
||||
var value = switches[key];
|
||||
$gameSwitches.setValue(idx, value);
|
||||
}
|
||||
};
|
||||
|
||||
CommonSaveManager.prototype.setLoadVariables = function (variables) {
|
||||
for (var key in variables) {
|
||||
var idx = parseInt(key);
|
||||
var value = variables[key];
|
||||
$gameVariables.setValue(idx, value);
|
||||
}
|
||||
};
|
||||
|
||||
//public methods
|
||||
CommonSaveManager.prototype.load = function () {
|
||||
this._tr("load common save data.");
|
||||
|
||||
if (!this.exists()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var loadData = DataManager.loadCommonSave();
|
||||
|
||||
if ("gameSwitches" in loadData) {
|
||||
this.setLoadSwitches(loadData["gameSwitches"]);
|
||||
}
|
||||
if ("gameVariables" in loadData) {
|
||||
this.setLoadVariables(loadData["gameVariables"]);
|
||||
}
|
||||
};
|
||||
|
||||
CommonSaveManager.prototype.save = function () {
|
||||
this._tr("save common save data.");
|
||||
|
||||
var switchesJson = this._getTargetSwitchJson();
|
||||
var variablesJson = this._getTargetVariableJson();
|
||||
|
||||
var json = { gameSwitches: switchesJson, gameVariables: variablesJson };
|
||||
|
||||
DataManager.saveCommonSave(json);
|
||||
};
|
||||
|
||||
CommonSaveManager.prototype.exists = function () {
|
||||
this._tr("check exists common save data.");
|
||||
return StorageManager.existsCommonSave();
|
||||
};
|
||||
|
||||
CommonSaveManager.prototype.remove = function () {
|
||||
this._tr("remove common save data.");
|
||||
StorageManager.removeCommonSave();
|
||||
};
|
||||
|
||||
CommonSaveManager.prototype.setShowTrace = function (args) {
|
||||
if (!args) {
|
||||
return;
|
||||
}
|
||||
var enabled = String(args[1]) === "true" ? true : false;
|
||||
this._tr("setShowTrace: " + this._showTrace);
|
||||
this._showTrace = enabled;
|
||||
};
|
||||
|
||||
CommonSaveManager.prototype.check = function () {
|
||||
var str = "CommonSaveManager: \n";
|
||||
str += " # Share switch targets : \n";
|
||||
str += JSON.stringify(this._targetSwitchList);
|
||||
|
||||
str += "\n # Share variable targets : \n";
|
||||
str += JSON.stringify(this._targetVariableList);
|
||||
|
||||
console.log(str);
|
||||
};
|
||||
|
||||
CommonSaveManager.prototype.isAuto = function () {
|
||||
return String(this.parameters["Is Auto"]) === "true";
|
||||
};
|
||||
|
||||
CommonSaveManager.prototype.isAutoOnGameOver = function () {
|
||||
return String(this.parameters["Auto on Gameover"]) === "true";
|
||||
};
|
||||
|
||||
return CommonSaveManager;
|
||||
})();
|
||||
utakata.CommonSaveManager = new CommonSaveManager();
|
||||
})(utakata || (utakata = {}));
|
||||
|
||||
(function () {
|
||||
//parse and dispatch plugin command
|
||||
var _Game_Interpreter_pluginCommand =
|
||||
Game_Interpreter.prototype.pluginCommand;
|
||||
Game_Interpreter.prototype.pluginCommand = function (command, args) {
|
||||
_Game_Interpreter_pluginCommand.call(this, command, args);
|
||||
if (command === "CommonSave") {
|
||||
switch (args[0]) {
|
||||
case "load":
|
||||
utakata.CommonSaveManager.load();
|
||||
break;
|
||||
case "save":
|
||||
utakata.CommonSaveManager.save();
|
||||
break;
|
||||
case "exists":
|
||||
utakata.CommonSaveManager.exists();
|
||||
break;
|
||||
case "remove":
|
||||
utakata.CommonSaveManager.remove();
|
||||
break;
|
||||
case "setTrace":
|
||||
utakata.CommonSaveManager.setShowTrace(args);
|
||||
break;
|
||||
case "check":
|
||||
utakata.CommonSaveManager.check();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// DataManager
|
||||
//-----------------------------------------------------------------------------
|
||||
// # extension
|
||||
var _Data_Manager_loadGame = DataManager.loadGame;
|
||||
DataManager.loadGame = function (savefileId) {
|
||||
var ret = _Data_Manager_loadGame.call(this, savefileId);
|
||||
|
||||
if (utakata.CommonSaveManager.isAuto()) {
|
||||
utakata.CommonSaveManager.load();
|
||||
}
|
||||
return ret;
|
||||
};
|
||||
|
||||
var _Data_Manager_saveGame = DataManager.saveGame;
|
||||
DataManager.saveGame = function (savefileId) {
|
||||
var ret = _Data_Manager_saveGame.call(this, savefileId);
|
||||
|
||||
if (utakata.CommonSaveManager.isAuto()) {
|
||||
utakata.CommonSaveManager.save();
|
||||
}
|
||||
return ret;
|
||||
};
|
||||
|
||||
var _Data_Manager_setupNewGame = DataManager.setupNewGame;
|
||||
DataManager.setupNewGame = function () {
|
||||
_Data_Manager_setupNewGame.call(this);
|
||||
if (utakata.CommonSaveManager.isAuto()) {
|
||||
utakata.CommonSaveManager.load();
|
||||
}
|
||||
};
|
||||
|
||||
// # add methods
|
||||
DataManager.loadCommonSave = function () {
|
||||
var json;
|
||||
try {
|
||||
json = StorageManager.loadCommonSave();
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
return [];
|
||||
}
|
||||
if (json) {
|
||||
var commonInfo = JSON.parse(json);
|
||||
return commonInfo;
|
||||
} else {
|
||||
return [];
|
||||
}
|
||||
};
|
||||
|
||||
DataManager.saveCommonSave = function (json) {
|
||||
var jsonStr = JsonEx.stringify(json);
|
||||
if (jsonStr.length >= 200000) {
|
||||
console.warn("Common Save too big!");
|
||||
}
|
||||
StorageManager.saveCommonSave(jsonStr);
|
||||
return true;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// StorageManager
|
||||
//-----------------------------------------------------------------------------
|
||||
//load methods ----------------------------------------------------------------
|
||||
StorageManager.loadCommonSave = function () {
|
||||
if (this.isLocalMode()) {
|
||||
return this.loadFromLocalFileCommonSave();
|
||||
} else {
|
||||
return this.loadFromWebStorageCommonSave();
|
||||
}
|
||||
};
|
||||
|
||||
StorageManager.loadFromLocalFileCommonSave = function () {
|
||||
var data = null;
|
||||
var fs = require("fs");
|
||||
var filePath = this.localFilePathCommonSave();
|
||||
if (fs.existsSync(filePath)) {
|
||||
data = fs.readFileSync(filePath, { encoding: "utf8" });
|
||||
}
|
||||
return LZString.decompressFromBase64(data);
|
||||
};
|
||||
|
||||
StorageManager.loadFromWebStorageCommonSave = function () {
|
||||
var key = this.webStorageKeyCommonSave();
|
||||
var data = localStorage.getItem(key);
|
||||
return LZString.decompressFromBase64(data);
|
||||
};
|
||||
|
||||
// save methods ---------------------------------------------------------------
|
||||
StorageManager.saveCommonSave = function (json) {
|
||||
if (this.isLocalMode()) {
|
||||
this.saveToLocalFileCommonSave(json);
|
||||
} else {
|
||||
this.saveToWebStorageCommonSave(json);
|
||||
}
|
||||
};
|
||||
|
||||
StorageManager.saveToLocalFileCommonSave = function (json) {
|
||||
var data = LZString.compressToBase64(json);
|
||||
var fs = require("fs");
|
||||
var dirPath = this.localFileDirectoryPath();
|
||||
var filePath = this.localFilePathCommonSave();
|
||||
if (!fs.existsSync(dirPath)) {
|
||||
fs.mkdirSync(dirPath);
|
||||
}
|
||||
fs.writeFileSync(filePath, data);
|
||||
};
|
||||
|
||||
StorageManager.saveToWebStorageCommonSave = function (json) {
|
||||
var key = this.webStorageKeyCommonSave();
|
||||
var data = LZString.compressToBase64(json);
|
||||
localStorage.setItem(key, data);
|
||||
};
|
||||
|
||||
//check exists ----------------------------------------------------------------
|
||||
StorageManager.existsCommonSave = function () {
|
||||
if (this.isLocalMode()) {
|
||||
return this.localFileExistsCommonSave();
|
||||
} else {
|
||||
return this.webStorageExistsCommonSave();
|
||||
}
|
||||
};
|
||||
|
||||
StorageManager.localFileExistsCommonSave = function () {
|
||||
var fs = require("fs");
|
||||
return fs.existsSync(this.localFilePathCommonSave());
|
||||
};
|
||||
|
||||
StorageManager.webStorageExistsCommonSave = function () {
|
||||
var key = this.webStorageKeyCommonSave();
|
||||
return !!localStorage.getItem(key);
|
||||
};
|
||||
|
||||
//remove ----------------------------------------------------------------------
|
||||
StorageManager.removeCommonSave = function () {
|
||||
if (this.isLocalMode()) {
|
||||
this.removeLocalFileCommonSave();
|
||||
} else {
|
||||
this.removeWebStorageCommonSave();
|
||||
}
|
||||
};
|
||||
|
||||
StorageManager.removeLocalFileCommonSave = function () {
|
||||
var fs = require("fs");
|
||||
var filePath = this.localFilePathCommonSave();
|
||||
if (fs.existsSync(filePath)) {
|
||||
fs.unlinkSync(filePath);
|
||||
}
|
||||
};
|
||||
|
||||
StorageManager.removeWebStorageCommonSave = function () {
|
||||
var key = this.webStorageKeyCommonSave();
|
||||
localStorage.removeItem(key);
|
||||
};
|
||||
|
||||
StorageManager.localFilePathCommonSave = function () {
|
||||
return this.localFileDirectoryPath() + "common.rpgsave";
|
||||
};
|
||||
StorageManager.webStorageKeyCommonSave = function () {
|
||||
return "RPG Common";
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Scene_Gameover
|
||||
//-----------------------------------------------------------------------------
|
||||
var _Scene_Gameover_Start = Scene_Gameover.prototype.start;
|
||||
Scene_Gameover.prototype.start = function () {
|
||||
if (utakata.CommonSaveManager.isAutoOnGameOver()) {
|
||||
utakata.CommonSaveManager.save();
|
||||
}
|
||||
_Scene_Gameover_Start.call(this);
|
||||
};
|
||||
})();
|
||||
203
www/js/plugins/UTA_MessageSkip.js
Normal file
203
www/js/plugins/UTA_MessageSkip.js
Normal file
|
|
@ -0,0 +1,203 @@
|
|||
//=============================================================================
|
||||
// UTA_MessageSkip.js
|
||||
//=============================================================================
|
||||
// Version : 1.00
|
||||
// LastUpdate : 2016.02.17
|
||||
// Author : T.Akatsuki
|
||||
// Website : http://utakata-no-yume.net/
|
||||
// License : MIT License(http://opensource.org/licenses/mit-license.php)
|
||||
//=============================================================================
|
||||
|
||||
//=============================================================================
|
||||
/*:
|
||||
* @plugindesc Skip message on pressing a particular key.
|
||||
* @author T.Akatsuki
|
||||
*
|
||||
* @param Skip Key
|
||||
* @desc Set the message skip key. The value has been defined in the Input.KeyMapper is valid.
|
||||
* @default control
|
||||
*
|
||||
* @param Show Trace
|
||||
* @desc Set state traces display.
|
||||
* true : Show trace., false : Don't show trace.
|
||||
* @default false
|
||||
*
|
||||
* @help # Overview
|
||||
* MessageSkip plugin can be done to skip in that continue to press a specfic key in a message display.
|
||||
* Well there is a message skip functions in such Novel games.
|
||||
* Skip if choice window will be temporarily supended.
|
||||
*
|
||||
* # Parameters
|
||||
* Skip Key [any key]
|
||||
* Set the message skip key.
|
||||
* The value that has been defined in Input.keyMapper is valid.
|
||||
* Initial value is in 'control'.
|
||||
*
|
||||
* Show Trace [true|false]
|
||||
* Set whether the issue a trace for debugging.
|
||||
*
|
||||
* # Plugin Commands
|
||||
* There is no plugin command.
|
||||
*
|
||||
* # Change Log
|
||||
* ver 1.00 (Feb 17, 2016)
|
||||
* Initial release.
|
||||
*/
|
||||
|
||||
/*:ja
|
||||
* @plugindesc 特定キーを押す事でメッセージをスキップできるようにします。
|
||||
* @author 赤月 智平
|
||||
*
|
||||
* @param Skip Key
|
||||
* @desc メッセージスキップキーを設定します。Input.keyMapperに定義された値が有効です。
|
||||
* @default control
|
||||
*
|
||||
* @param Show Trace
|
||||
* @desc デバッグ用のトレースを出すかを設定します。
|
||||
* true: トレースを表示, false: トレースを表示しない
|
||||
* @default false
|
||||
*
|
||||
* @help ■概要
|
||||
* MessageSkipプラグインではメッセージ表示中に特定のキーを押し続ける事で
|
||||
* スキップ処理を行う事ができます。
|
||||
* ADV等で良くあるメッセージスキップの機能です。
|
||||
* 選択肢を挟む場合は選択肢が表示されるタイミングでスキップが中断されます。
|
||||
*
|
||||
* ■パラメータの説明
|
||||
* Skip Key [任意のキー]
|
||||
* メッセージスキップキーを設定します。Input.keyMapperに定義された値が有効です。
|
||||
* 初期値はcontrolになっています。他にもshift等が使いやすそうです。
|
||||
*
|
||||
* Show Trace [true|false]
|
||||
* デバッグ用のトレースを出すかを設定します。
|
||||
*
|
||||
* ■プラグインコマンド
|
||||
* プラグインコマンドはありません。
|
||||
*
|
||||
* ■更新履歴
|
||||
* ver 1.00 (2016.02.17)
|
||||
* 初版。
|
||||
*/
|
||||
//=============================================================================
|
||||
|
||||
//name space
|
||||
var utakata = utakata || (utakata = {});
|
||||
|
||||
(function (utakata) {
|
||||
//-----------------------------------------------------------------------------
|
||||
// class MessageSkip
|
||||
//-----------------------------------------------------------------------------
|
||||
var MessageSkip = (function () {
|
||||
//constructor
|
||||
function MessageSkip() {
|
||||
this._skipKey = ""; //bind target key
|
||||
|
||||
//trace
|
||||
this._showTrace = false;
|
||||
this._tr = null;
|
||||
|
||||
this.initialize();
|
||||
}
|
||||
|
||||
//private methods
|
||||
MessageSkip.prototype.initialize = function () {
|
||||
var parameters = PluginManager.parameters("UTA_MessageSkip");
|
||||
|
||||
this._skipKey = String(parameters["Skip Key"]) || null;
|
||||
|
||||
var _show_tr = String(parameters["Show Trace"]) === "true";
|
||||
this._tr = _show_tr
|
||||
? function (s) {
|
||||
var str = "MessageSkip: " + s;
|
||||
console.log(str);
|
||||
}
|
||||
: function (s) {};
|
||||
|
||||
this._tr("skip key bind: " + this._skipKey);
|
||||
};
|
||||
|
||||
//protected methods
|
||||
MessageSkip.prototype.isPressedMsgSkipButton = function () {
|
||||
return Input.isPressed(this._skipKey);
|
||||
};
|
||||
|
||||
return MessageSkip;
|
||||
})();
|
||||
utakata.MessageSkip = new MessageSkip();
|
||||
})(utakata || (utakata = {}));
|
||||
|
||||
(function () {
|
||||
//-----------------------------------------------------------------------------
|
||||
// PluginCommands
|
||||
//-----------------------------------------------------------------------------
|
||||
var _Game_Interpreter_pluginCommand =
|
||||
Game_Interpreter.prototype.pluginCommand;
|
||||
Game_Interpreter.prototype.pluginCommand = function (command, args) {
|
||||
_Game_Interpreter_pluginCommand.call(this, command, args);
|
||||
|
||||
//UT_MessageSkip don't have plugin commands.
|
||||
if (command === "UT_MessageSkip") {
|
||||
switch (args[0]) {
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Window_Message
|
||||
//-----------------------------------------------------------------------------
|
||||
//文章表示途中にskipキーが入力された場合は即全表示
|
||||
var _Window_Message_updateShowFast = Window_Message.prototype.updateShowFast;
|
||||
Window_Message.prototype.updateShowFast = function () {
|
||||
_Window_Message_updateShowFast.call(this);
|
||||
|
||||
if (utakata.MessageSkip.isPressedMsgSkipButton()) {
|
||||
this._showFast = true;
|
||||
this._pauseSkip = true;
|
||||
}
|
||||
};
|
||||
|
||||
//文章が表示されkey入力待ちの際もskipキーの入力を監視しておく
|
||||
var _Window_Message_updateInput = Window_Message.prototype.updateInput;
|
||||
Window_Message.prototype.updateInput = function () {
|
||||
var ret = _Window_Message_updateInput.call(this);
|
||||
|
||||
if (this.pause && utakata.MessageSkip.isPressedMsgSkipButton()) {
|
||||
this.pause = false;
|
||||
if (!this._textState) {
|
||||
this.terminateMessage();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
return ret;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Window_ScrollText
|
||||
//-----------------------------------------------------------------------------
|
||||
//スクロールメッセージは更に爆速で流れるように
|
||||
var Window_ScrollText_scrollSpeed = Window_ScrollText.prototype.scrollSpeed;
|
||||
Window_ScrollText.prototype.scrollSpeed = function () {
|
||||
var ret = Window_ScrollText_scrollSpeed.call(this);
|
||||
|
||||
if (utakata.MessageSkip.isPressedMsgSkipButton()) {
|
||||
ret *= 100;
|
||||
}
|
||||
return ret;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Window_BattleLog
|
||||
//-----------------------------------------------------------------------------
|
||||
//バトルログを超高速に
|
||||
var _Window_BattleLog_messageSpeed = Window_BattleLog.prototype.messageSpeed;
|
||||
Window_BattleLog.prototype.messageSpeed = function () {
|
||||
var ret = _Window_BattleLog_messageSpeed.call(this);
|
||||
if (utakata.MessageSkip.isPressedMsgSkipButton()) {
|
||||
ret = 1;
|
||||
}
|
||||
return ret;
|
||||
};
|
||||
})();
|
||||
53
www/js/plugins/dashBan.js
Normal file
53
www/js/plugins/dashBan.js
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
//=============================================================================
|
||||
// ダッシュ禁止プラグイン
|
||||
// dashBan.js
|
||||
// Copyright (c) 2018 村人A
|
||||
//=============================================================================
|
||||
|
||||
/*:ja
|
||||
* @plugindesc ダッシュを禁止するプラグインです
|
||||
* @author 村人A
|
||||
*
|
||||
* @help
|
||||
* =======================================
|
||||
*
|
||||
* バージョン管理
|
||||
* 2019/3/7 バージョン1.01 リリース
|
||||
* セーブ・ロード後もダッシュ禁止・許可が反映されているようにしました。
|
||||
* 2018/1/2 バージョン1.00 リリース
|
||||
*
|
||||
* =======================================
|
||||
*
|
||||
* プレイヤーのダッシュをコマンドで禁止するプラグインです
|
||||
* ダッシュが許可されているマップに移動してもダッシュ禁止は
|
||||
* 継続されます。
|
||||
*
|
||||
* プラグインコマンド:
|
||||
* ダッシュ禁止 # ダッシュを禁止
|
||||
* ダッシュ許可 # ダッシュを許可
|
||||
*/
|
||||
|
||||
(function () {
|
||||
villaA_dashBan = false;
|
||||
|
||||
var _Game_Interpreter_pluginCommand =
|
||||
Game_Interpreter.prototype.pluginCommand;
|
||||
Game_Interpreter.prototype.pluginCommand = function (command, args) {
|
||||
_Game_Interpreter_pluginCommand.call(this, command, args);
|
||||
if (command === "ダッシュ禁止") {
|
||||
$gamePlayer.villaA_dashBan = true;
|
||||
}
|
||||
|
||||
if (command === "ダッシュ許可") {
|
||||
$gamePlayer.villaA_dashBan = false;
|
||||
}
|
||||
};
|
||||
|
||||
Game_Player.prototype.isDashing = function () {
|
||||
if ($gamePlayer.villaA_dashBan) {
|
||||
return false;
|
||||
} else {
|
||||
return this._dashing;
|
||||
}
|
||||
};
|
||||
})();
|
||||
5
www/js/plugins/savenottitle.js
Normal file
5
www/js/plugins/savenottitle.js
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
(function () {
|
||||
Window_SavefileList.prototype.drawGameTitle = function (info, x, y, width) {
|
||||
this.drawText("", x, y, width);
|
||||
};
|
||||
})();
|
||||
9982
www/js/rpg_core.js
Normal file
9982
www/js/rpg_core.js
Normal file
File diff suppressed because it is too large
Load diff
2930
www/js/rpg_managers.js
Normal file
2930
www/js/rpg_managers.js
Normal file
File diff suppressed because it is too large
Load diff
11241
www/js/rpg_objects.js
Normal file
11241
www/js/rpg_objects.js
Normal file
File diff suppressed because it is too large
Load diff
2718
www/js/rpg_scenes.js
Normal file
2718
www/js/rpg_scenes.js
Normal file
File diff suppressed because it is too large
Load diff
2716
www/js/rpg_sprites.js
Normal file
2716
www/js/rpg_sprites.js
Normal file
File diff suppressed because it is too large
Load diff
6651
www/js/rpg_windows.js
Normal file
6651
www/js/rpg_windows.js
Normal file
File diff suppressed because it is too large
Load diff
12
www/package.json
Normal file
12
www/package.json
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"name": "",
|
||||
"main": "index.html",
|
||||
"js-flags": "--expose-gc",
|
||||
"window": {
|
||||
"title": "",
|
||||
"toolbar": false,
|
||||
"width": 816,
|
||||
"height": 624,
|
||||
"icon": "icon/icon.png"
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue