Compare commits

...

3 commits

Author SHA1 Message Date
b9c8995daa v1.03 2025-03-22 13:07:47 -05:00
07b9b5df70 Convert files to LF 2025-03-22 13:07:02 -05:00
a4c65a9c55 Initial Commit 2025-03-22 12:40:10 -05:00
60 changed files with 175823 additions and 95819 deletions

62
.gitignore vendored
View file

@ -1,32 +1,32 @@
# Ignore all files
*.*
# Except
!*.json
!*.js
!*.zip
!*.7z
!*.csv
!*.ain
!*.fnl
!*.ks
!*.tjs
!*.yaml
!Data/*
!*.rb
!.gitignore
!README.md
!game.ini
# Images
!NE_0.rpgmvp
!NE_e2.rpgmvp
!NE_e3.rpgmvp
!NE_e4.rpgmvp
!NE_e5.rpgmvp
!NE_e6.rpgmvp
!NE_s2.rpgmvp
!NE_s3.rpgmvp
!NE_s4.rpgmvp
!NE_s5.rpgmvp
# Ignore all files
*.*
# Except
!*.json
!*.js
!*.zip
!*.7z
!*.csv
!*.ain
!*.fnl
!*.ks
!*.tjs
!*.yaml
!Data/*
!*.rb
!.gitignore
!README.md
!game.ini
# Images
!NE_0.rpgmvp
!NE_e2.rpgmvp
!NE_e3.rpgmvp
!NE_e4.rpgmvp
!NE_e5.rpgmvp
!NE_e6.rpgmvp
!NE_s2.rpgmvp
!NE_s3.rpgmvp
!NE_s4.rpgmvp
!NE_s5.rpgmvp
!NE_s6.rpgmvp

View file

@ -1,49 +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. ![image](https://github.com/DazedMTL/Dungeon-With-Girl/assets/96628874/7a84b624-32fe-4845-a0f6-2b9f39795070)
* 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.
![image](https://github.com/DazedMTL/Dungeon-With-Girl/assets/96628874/61e818e6-11f9-450d-9d7d-263d109dbf56)
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.
![image](https://github.com/DazedMTL/Dungeon-With-Girl/assets/96628874/c19787a0-172d-4a08-a37a-e3b56e70e86a)
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.
![image](https://github.com/DazedMTL/Dungeon-With-Girl/assets/96628874/589eccaf-7f86-43f7-a917-7e6e477b381a)
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.
![image](https://github.com/DazedMTL/Dungeon-With-Girl/assets/96628874/a9a8973b-bc01-4184-bea9-63a925d961a2)
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.
# 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. ![image](https://github.com/DazedMTL/Dungeon-With-Girl/assets/96628874/7a84b624-32fe-4845-a0f6-2b9f39795070)
* 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.
![image](https://github.com/DazedMTL/Dungeon-With-Girl/assets/96628874/61e818e6-11f9-450d-9d7d-263d109dbf56)
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.
![image](https://github.com/DazedMTL/Dungeon-With-Girl/assets/96628874/c19787a0-172d-4a08-a37a-e3b56e70e86a)
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.
![image](https://github.com/DazedMTL/Dungeon-With-Girl/assets/96628874/589eccaf-7f86-43f7-a917-7e6e477b381a)
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.
![image](https://github.com/DazedMTL/Dungeon-With-Girl/assets/96628874/a9a8973b-bc01-4184-bea9-63a925d961a2)
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.

View file

@ -883,13 +883,6 @@
5
]
},
{
"code": 117,
"indent": 0,
"parameters": [
9
]
},
{
"code": 0,
"indent": 0,
@ -8949,13 +8942,65 @@
{
"id": 33,
"list": [
{
"code": 121,
"indent": 0,
"parameters": [
181,
181,
0
]
},
{
"code": 250,
"indent": 0,
"parameters": [
{
"name": "Item3",
"volume": 90,
"pitch": 100,
"pan": 0
}
]
},
{
"code": 101,
"indent": 0,
"parameters": [
"",
0,
0,
2
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"追加シナリオが開放されました!"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
""
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"※メメリスとティーナの家から遊べます。"
]
},
{
"code": 0,
"indent": 0,
"parameters": []
}
],
"name": "",
"name": "追加シナリオ",
"switchId": 1,
"trigger": 0
},

View file

@ -3067,7 +3067,7 @@
"conditionParam1": 0,
"conditionParam2": 0,
"conditionType": 0,
"rating": 6,
"rating": 5,
"skillId": 25
},
{
@ -3121,7 +3121,7 @@
"params": [
3300,
100,
130,
125,
80,
80,
65,
@ -4382,16 +4382,16 @@
"conditionParam2": 0,
"conditionType": 0,
"rating": 5,
"skillId": 1
"skillId": 9
}
],
"battlerHue": 0,
"battlerName": "",
"battlerHue": 175,
"battlerName": "Firespirit",
"dropItems": [
{
"dataId": 1,
"denominator": 1,
"kind": 0
"kind": 1,
"dataId": 61,
"denominator": 2
},
{
"dataId": 1,
@ -4404,7 +4404,7 @@
"kind": 0
}
],
"exp": 0,
"exp": 1000,
"traits": [
{
"code": 22,
@ -4422,17 +4422,17 @@
"value": 0
}
],
"gold": 0,
"name": "",
"note": "",
"gold": 1000,
"name": "怨念がおんねん",
"note": "<PosY:350>\n",
"params": [
600,
100,
0,
10,
10,
10,
10,
10,
60,
100,
60,
70,
10
]
},
@ -4443,12 +4443,12 @@
"conditionParam1": 0,
"conditionParam2": 0,
"conditionType": 0,
"rating": 5,
"skillId": 1
"rating": 6,
"skillId": 53
}
],
"battlerHue": 0,
"battlerName": "",
"battlerHue": 230,
"battlerName": "Ghost",
"dropItems": [
{
"dataId": 1,
@ -4466,7 +4466,7 @@
"kind": 0
}
],
"exp": 0,
"exp": 30000,
"traits": [
{
"code": 22,
@ -4482,20 +4482,30 @@
"code": 31,
"dataId": 1,
"value": 0
},
{
"code": 14,
"dataId": 13,
"value": 1
},
{
"code": 61,
"dataId": 0,
"value": 0.3
}
],
"gold": 0,
"name": "",
"note": "",
"gold": 30000,
"name": "兄者",
"note": "<PosX:160>\n<PosY:370>",
"params": [
100,
0,
10,
10,
10,
10,
10,
10
3000,
2000,
130,
75,
120,
75,
40,
5
]
},
{
@ -4506,11 +4516,25 @@
"conditionParam2": 0,
"conditionType": 0,
"rating": 5,
"skillId": 1
"skillId": 52
},
{
"conditionParam1": 1,
"conditionParam2": 0.7,
"conditionType": 2,
"rating": 5,
"skillId": 15
},
{
"conditionParam1": 0,
"conditionParam2": 0.6,
"conditionType": 2,
"rating": 5,
"skillId": 8
}
],
"battlerHue": 0,
"battlerName": "",
"battlerHue": 36,
"battlerName": "Ghost",
"dropItems": [
{
"dataId": 1,
@ -4528,7 +4552,7 @@
"kind": 0
}
],
"exp": 0,
"exp": 30000,
"traits": [
{
"code": 22,
@ -4544,20 +4568,30 @@
"code": 31,
"dataId": 1,
"value": 0
},
{
"code": 14,
"dataId": 12,
"value": 1
},
{
"code": 61,
"dataId": 0,
"value": 0.3
}
],
"gold": 0,
"name": "",
"note": "",
"gold": 30000,
"name": "弟者",
"note": "<PosX:360>\n<PosY:370>",
"params": [
100,
0,
10,
10,
10,
10,
10,
10
4500,
2000,
120,
75,
125,
75,
40,
5
]
},
{

View file

@ -2211,17 +2211,17 @@
"type": 0,
"variance": 20
},
"description": "",
"description": "二つに割れたエンブレムの欠片。\nどこかの病院ではドアを開ける為に使われてるらしい。",
"effects": [],
"hitType": 0,
"iconIndex": 0,
"iconIndex": 197,
"itypeId": 1,
"name": "",
"name": "エンブレムの欠片1",
"note": "",
"occasion": 0,
"occasion": 3,
"price": 0,
"repeats": 1,
"scope": 7,
"scope": 0,
"speed": 0,
"successRate": 100,
"tpGain": 0
@ -2237,25 +2237,25 @@
"type": 0,
"variance": 20
},
"description": "",
"description": "二つに割れたエンブレムの欠片。\nどこかの病院ではドアを開ける為に使われてるらしい。",
"effects": [],
"hitType": 0,
"iconIndex": 0,
"iconIndex": 197,
"itypeId": 1,
"name": "",
"name": "エンブレムの欠片2",
"note": "",
"occasion": 0,
"occasion": 3,
"price": 0,
"repeats": 1,
"scope": 7,
"scope": 0,
"speed": 0,
"successRate": 100,
"tpGain": 0
},
{
"id": 64,
"animationId": 0,
"consumable": true,
"animationId": 116,
"consumable": false,
"damage": {
"critical": false,
"elementId": 0,
@ -2263,25 +2263,32 @@
"type": 0,
"variance": 20
},
"description": "",
"effects": [],
"description": "廃墟からパクってきた高そうな鏡。\n戦闘で使うと、相手モンスターを全て破壊する。",
"effects": [
{
"code": 21,
"dataId": 1,
"value1": 1,
"value2": 0
}
],
"hitType": 0,
"iconIndex": 0,
"iconIndex": 222,
"itypeId": 1,
"name": "",
"name": "聖なる鏡ミラーフォース",
"note": "",
"occasion": 0,
"occasion": 1,
"price": 0,
"repeats": 1,
"scope": 7,
"speed": 0,
"scope": 2,
"speed": 1000,
"successRate": 100,
"tpGain": 0
},
{
"id": 65,
"animationId": 0,
"consumable": true,
"consumable": false,
"damage": {
"critical": false,
"elementId": 0,
@ -2289,17 +2296,24 @@
"type": 0,
"variance": 20
},
"description": "",
"effects": [],
"description": "使用すると本編クリア後のおまけストーリーが追加されます。\n出現場所はメメリスとティーナの家。",
"effects": [
{
"code": 44,
"dataId": 33,
"value1": 1,
"value2": 0
}
],
"hitType": 0,
"iconIndex": 0,
"itypeId": 1,
"name": "",
"iconIndex": 244,
"itypeId": 2,
"name": "おまけストーリー",
"note": "",
"occasion": 0,
"occasion": 2,
"price": 0,
"repeats": 1,
"scope": 7,
"scope": 0,
"speed": 0,
"successRate": 100,
"tpGain": 0

View file

@ -15009,6 +15009,16 @@
1
]
},
{
"code": 605,
"indent": 1,
"parameters": [
0,
65,
1,
1
]
},
{
"code": 121,
"indent": 1,

View file

@ -14434,6 +14434,42 @@
"ガチャを回しましょう!"
]
},
{
"code": 250,
"indent": 0,
"parameters": [
{
"name": "Item1",
"volume": 90,
"pitch": 100,
"pan": 0
}
]
},
{
"code": 101,
"indent": 0,
"parameters": [
"",
0,
0,
2
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"追加シナリオがアップデートされました!"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"ガチャの景品から開放可能です!!"
]
},
{
"code": 101,
"indent": 0,
@ -15606,6 +15642,783 @@
],
"x": 14,
"y": 6
}
},
{
"id": 23,
"name": "EV023",
"note": "",
"pages": [
{
"conditions": {
"actorId": 1,
"actorValid": false,
"itemId": 1,
"itemValid": false,
"selfSwitchCh": "A",
"selfSwitchValid": false,
"switch1Id": 181,
"switch1Valid": true,
"switch2Id": 1,
"switch2Valid": false,
"variableId": 1,
"variableValid": false,
"variableValue": 0
},
"directionFix": true,
"image": {
"tileId": 0,
"characterName": "!Door2",
"direction": 8,
"pattern": 2,
"characterIndex": 0
},
"list": [
{
"code": 250,
"indent": 0,
"parameters": [
{
"name": "Item1",
"volume": 90,
"pitch": 100,
"pan": 0
}
]
},
{
"code": 101,
"indent": 0,
"parameters": [
"",
0,
0,
2
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"ここはクリア後の後日談のストーリーです。"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"先に進みますか?"
]
},
{
"code": 102,
"indent": 0,
"parameters": [
[
"はい",
"いいえ"
],
1,
0,
2,
0
]
},
{
"code": 402,
"indent": 0,
"parameters": [
0,
"はい"
]
},
{
"code": 221,
"indent": 1,
"parameters": []
},
{
"code": 250,
"indent": 1,
"parameters": [
{
"name": "Magic4",
"volume": 90,
"pitch": 100,
"pan": 0
}
]
},
{
"code": 201,
"indent": 1,
"parameters": [
0,
92,
15,
20,
8,
0
]
},
{
"code": 101,
"indent": 1,
"parameters": [
"",
0,
0,
2
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"・・・。"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"・・・・・・。"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"・・・・・・・・・。"
]
},
{
"code": 222,
"indent": 1,
"parameters": []
},
{
"code": 101,
"indent": 1,
"parameters": [
"memerisu1",
1,
0,
2
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"ここが幽霊が出るって噂のお屋敷かー!"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"大きいな~。"
]
},
{
"code": 101,
"indent": 1,
"parameters": [
"thina2",
2,
0,
2
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"ダンジョンの冒険を終えた私達は、"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"ギルドの依頼を受けて"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"この古いお屋敷の調査にやってきました。"
]
},
{
"code": 101,
"indent": 1,
"parameters": [
"thina1",
4,
0,
2
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"人が住まない大きなお屋敷の廃墟だけあって"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"ホラースポットとしても有名です。"
]
},
{
"code": 101,
"indent": 1,
"parameters": [
"thina2",
1,
0,
2
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"そんな場所にここ最近、幽霊が出ると"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"ギルドに報告が相次いでいるそうです。"
]
},
{
"code": 101,
"indent": 1,
"parameters": [
"thina2",
1,
0,
2
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"実際に幽霊に襲われたという"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"冒険者が何人もいるとか・・・。"
]
},
{
"code": 101,
"indent": 1,
"parameters": [
"thina2",
2,
0,
2
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"困ったギルドは、ちょうど時間が空いており、"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"なおかつお金に困っていた私達に"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"お屋敷の調査を依頼したというわけです。"
]
},
{
"code": 101,
"indent": 1,
"parameters": [
"memerisu1",
7,
0,
2
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"ティーナちゃん、どうした急に。"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"今の状況を説明しだすなんて・・・。"
]
},
{
"code": 101,
"indent": 1,
"parameters": [
"thina1",
2,
0,
2
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"いえ、なんとなくしておかないと"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"いけない気がしまして・・・。"
]
},
{
"code": 101,
"indent": 1,
"parameters": [
"memerisu1",
7,
0,
2
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"そ、そう・・・?"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"まぁ、いいか。"
]
},
{
"code": 101,
"indent": 1,
"parameters": [
"thina1",
5,
0,
2
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"結局ダンジョンを探索したけど財宝がなくて"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"根本的な金銭問題は何も解決していない"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"現状を打破すべく依頼を頑張りましょう♪"
]
},
{
"code": 101,
"indent": 1,
"parameters": [
"memerisu2",
3,
0,
2
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"幽霊なんぞ怖くねぇ!"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"もし実在したとしてもボクが除霊してやらー!"
]
},
{
"code": 121,
"indent": 1,
"parameters": [
168,
168,
0
]
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 402,
"indent": 0,
"parameters": [
1,
"いいえ"
]
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 404,
"indent": 0,
"parameters": []
},
{
"code": 0,
"indent": 0,
"parameters": []
}
],
"moveFrequency": 3,
"moveRoute": {
"list": [
{
"code": 0,
"parameters": []
}
],
"repeat": true,
"skippable": false,
"wait": false
},
"moveSpeed": 3,
"moveType": 0,
"priorityType": 1,
"stepAnime": true,
"through": false,
"trigger": 0,
"walkAnime": false
},
{
"conditions": {
"actorId": 1,
"actorValid": false,
"itemId": 1,
"itemValid": false,
"selfSwitchCh": "A",
"selfSwitchValid": false,
"switch1Id": 168,
"switch1Valid": true,
"switch2Id": 1,
"switch2Valid": false,
"variableId": 1,
"variableValid": false,
"variableValue": 0
},
"directionFix": true,
"image": {
"tileId": 0,
"characterName": "!Door2",
"direction": 8,
"pattern": 2,
"characterIndex": 0
},
"list": [
{
"code": 250,
"indent": 0,
"parameters": [
{
"name": "Item1",
"volume": 90,
"pitch": 100,
"pan": 0
}
]
},
{
"code": 101,
"indent": 0,
"parameters": [
"",
0,
0,
2
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"幽霊屋敷に行きますか?"
]
},
{
"code": 102,
"indent": 0,
"parameters": [
[
"はい",
"いいえ"
],
1,
0,
2,
0
]
},
{
"code": 402,
"indent": 0,
"parameters": [
0,
"はい"
]
},
{
"code": 250,
"indent": 1,
"parameters": [
{
"name": "Magic4",
"volume": 90,
"pitch": 100,
"pan": 0
}
]
},
{
"code": 201,
"indent": 1,
"parameters": [
0,
92,
15,
20,
8,
0
]
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 402,
"indent": 0,
"parameters": [
1,
"いいえ"
]
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 404,
"indent": 0,
"parameters": []
},
{
"code": 0,
"indent": 0,
"parameters": []
}
],
"moveFrequency": 3,
"moveRoute": {
"list": [
{
"code": 0,
"parameters": []
}
],
"repeat": true,
"skippable": false,
"wait": false
},
"moveSpeed": 3,
"moveType": 0,
"priorityType": 1,
"stepAnime": true,
"through": false,
"trigger": 0,
"walkAnime": false
}
],
"x": 2,
"y": 8
},
{
"id": 24,
"name": "EV024",
"note": "",
"pages": [
{
"conditions": {
"actorId": 1,
"actorValid": false,
"itemId": 1,
"itemValid": false,
"selfSwitchCh": "A",
"selfSwitchValid": false,
"switch1Id": 181,
"switch1Valid": true,
"switch2Id": 1,
"switch2Valid": false,
"variableId": 1,
"variableValid": false,
"variableValue": 0
},
"directionFix": false,
"image": {
"characterIndex": 0,
"characterName": "",
"direction": 2,
"pattern": 0,
"tileId": 0
},
"list": [
{
"code": 213,
"indent": 0,
"parameters": [
23,
1,
true
]
},
{
"code": 230,
"indent": 0,
"parameters": [
10
]
},
{
"code": 0,
"indent": 0,
"parameters": []
}
],
"moveFrequency": 3,
"moveRoute": {
"list": [
{
"code": 0,
"parameters": []
}
],
"repeat": true,
"skippable": false,
"wait": false
},
"moveSpeed": 3,
"moveType": 0,
"priorityType": 1,
"stepAnime": false,
"through": false,
"trigger": 4,
"walkAnime": true
},
{
"conditions": {
"actorId": 1,
"actorValid": false,
"itemId": 1,
"itemValid": false,
"selfSwitchCh": "A",
"selfSwitchValid": false,
"switch1Id": 168,
"switch1Valid": true,
"switch2Id": 1,
"switch2Valid": false,
"variableId": 1,
"variableValid": false,
"variableValue": 0
},
"directionFix": false,
"image": {
"characterIndex": 0,
"characterName": "",
"direction": 2,
"pattern": 0,
"tileId": 0
},
"list": [
{
"code": 0,
"indent": 0,
"parameters": []
}
],
"moveFrequency": 3,
"moveRoute": {
"list": [
{
"code": 0,
"parameters": []
}
],
"repeat": true,
"skippable": false,
"wait": false
},
"moveSpeed": 3,
"moveType": 0,
"priorityType": 0,
"stepAnime": false,
"through": false,
"trigger": 0,
"walkAnime": true
}
],
"x": 1,
"y": 11
},
null
]
}

View file

@ -6230,10 +6230,299 @@
"through": false,
"trigger": 0,
"walkAnime": false
},
{
"conditions": {
"actorId": 1,
"actorValid": false,
"itemId": 1,
"itemValid": false,
"selfSwitchCh": "A",
"selfSwitchValid": false,
"switch1Id": 142,
"switch1Valid": true,
"switch2Id": 1,
"switch2Valid": false,
"variableId": 1,
"variableValid": false,
"variableValue": 0
},
"directionFix": false,
"image": {
"tileId": 0,
"characterName": "!Door2",
"direction": 2,
"pattern": 1,
"characterIndex": 3
},
"list": [
{
"code": 101,
"indent": 0,
"parameters": [
"memerisu1",
1,
0,
2
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"ありゃ、まだゴミがいっぱい入ってる・・・。"
]
},
{
"code": 101,
"indent": 0,
"parameters": [
"memerisu1",
6,
0,
2
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"そうだ!"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"ゴミを持って帰ってまたゴミ箱に捨てて"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"願いをかなえて貰おう!!"
]
},
{
"code": 101,
"indent": 0,
"parameters": [
"thina1",
4,
0,
2
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"ゴミのロンダリングですか!?"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"社会の闇を見てしまった気分です・・・。"
]
},
{
"code": 250,
"indent": 0,
"parameters": [
{
"name": "Item3",
"volume": 90,
"pitch": 100,
"pan": 0
}
]
},
{
"code": 126,
"indent": 0,
"parameters": [
49,
0,
0,
1
]
},
{
"code": 101,
"indent": 0,
"parameters": [
"",
0,
0,
2
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"ゴミを手に入れた!"
]
},
{
"code": 0,
"indent": 0,
"parameters": []
}
],
"moveFrequency": 3,
"moveRoute": {
"list": [
{
"code": 0,
"parameters": []
}
],
"repeat": true,
"skippable": false,
"wait": false
},
"moveSpeed": 3,
"moveType": 0,
"priorityType": 1,
"stepAnime": false,
"through": false,
"trigger": 0,
"walkAnime": false
}
],
"x": 15,
"y": 6
},
{
"id": 30,
"name": "EV030",
"note": "",
"pages": [
{
"conditions": {
"actorId": 1,
"actorValid": false,
"itemId": 1,
"itemValid": false,
"selfSwitchCh": "A",
"selfSwitchValid": false,
"switch1Id": 142,
"switch1Valid": true,
"switch2Id": 1,
"switch2Valid": false,
"variableId": 1,
"variableValid": false,
"variableValue": 0
},
"directionFix": false,
"image": {
"characterIndex": 0,
"characterName": "",
"direction": 2,
"pattern": 0,
"tileId": 0
},
"list": [
{
"code": 213,
"indent": 0,
"parameters": [
29,
1,
true
]
},
{
"code": 230,
"indent": 0,
"parameters": [
10
]
},
{
"code": 0,
"indent": 0,
"parameters": []
}
],
"moveFrequency": 3,
"moveRoute": {
"list": [
{
"code": 0,
"parameters": []
}
],
"repeat": true,
"skippable": false,
"wait": false
},
"moveSpeed": 3,
"moveType": 0,
"priorityType": 1,
"stepAnime": false,
"through": false,
"trigger": 4,
"walkAnime": true
},
{
"conditions": {
"actorId": 1,
"actorValid": false,
"itemId": 1,
"itemValid": false,
"selfSwitchCh": "A",
"selfSwitchValid": false,
"switch1Id": 167,
"switch1Valid": true,
"switch2Id": 1,
"switch2Valid": false,
"variableId": 1,
"variableValid": false,
"variableValue": 0
},
"directionFix": false,
"image": {
"characterIndex": 0,
"characterName": "",
"direction": 2,
"pattern": 0,
"tileId": 0
},
"list": [
{
"code": 0,
"indent": 0,
"parameters": []
}
],
"moveFrequency": 3,
"moveRoute": {
"list": [
{
"code": 0,
"parameters": []
}
],
"repeat": true,
"skippable": false,
"wait": false
},
"moveSpeed": 3,
"moveType": 0,
"priorityType": 0,
"stepAnime": false,
"through": false,
"trigger": 0,
"walkAnime": true
}
],
"x": 12,
"y": 4
}
]
}

File diff suppressed because it is too large Load diff

View file

@ -10578,8 +10578,8 @@
"code": 122,
"indent": 6,
"parameters": [
16,
16,
8,
8,
1,
0,
5

View file

@ -1793,6 +1793,30 @@
"indent": 0,
"parameters": []
},
{
"code": 101,
"indent": 1,
"parameters": [
"thina2",
2,
0,
2
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"確かウタゲの村にニンジンを持っている方が"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"いるとか噂で聞いたような・・・。"
]
},
{
"code": 0,
"indent": 1,

View file

@ -8416,8 +8416,8 @@
"code": 122,
"indent": 3,
"parameters": [
3,
3,
11,
11,
1,
0,
3

View file

@ -16806,7 +16806,7 @@
"indent": 0,
"parameters": [
0,
49,
48,
true,
false
]

6315
www/data/Map092.json Normal file

File diff suppressed because it is too large Load diff

21628
www/data/Map093.json Normal file

File diff suppressed because it is too large Load diff

3514
www/data/Map094.json Normal file

File diff suppressed because it is too large Load diff

4652
www/data/Map095.json Normal file

File diff suppressed because it is too large Load diff

3928
www/data/Map096.json Normal file

File diff suppressed because it is too large Load diff

4567
www/data/Map097.json Normal file

File diff suppressed because it is too large Load diff

8413
www/data/Map098.json Normal file

File diff suppressed because it is too large Load diff

View file

@ -6,8 +6,8 @@
"name": "MAP001",
"order": 1,
"parentId": 0,
"scrollX": 803.3333333333334,
"scrollY": 532
"scrollX": 860,
"scrollY": 714
},
{
"id": 2,
@ -15,8 +15,8 @@
"name": "街",
"order": 2,
"parentId": 1,
"scrollX": 803.3333333333334,
"scrollY": 532
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 3,
@ -24,8 +24,8 @@
"name": "フィールド1",
"order": 3,
"parentId": 2,
"scrollX": 803.3333333333334,
"scrollY": 521.3333333333334
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 4,
@ -33,8 +33,8 @@
"name": "街2",
"order": 4,
"parentId": 3,
"scrollX": 792.6666666666666,
"scrollY": 586.6666666666666
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 5,
@ -42,8 +42,8 @@
"name": "宿屋内部",
"order": 5,
"parentId": 4,
"scrollX": 803.3333333333334,
"scrollY": 532
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 6,
@ -51,8 +51,8 @@
"name": "武器屋",
"order": 6,
"parentId": 5,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 7,
@ -60,8 +60,8 @@
"name": "道具屋内部",
"order": 7,
"parentId": 6,
"scrollX": 803.3333333333334,
"scrollY": 532
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 8,
@ -69,8 +69,8 @@
"name": "酒場",
"order": 8,
"parentId": 7,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 9,
@ -78,8 +78,8 @@
"name": "民家2",
"order": 9,
"parentId": 8,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 10,
@ -87,8 +87,8 @@
"name": "廃墟の民家",
"order": 10,
"parentId": 9,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 11,
@ -96,8 +96,8 @@
"name": "ギルド",
"order": 11,
"parentId": 10,
"scrollX": 944.6666666666666,
"scrollY": 1142.6666666666667
"scrollX": 917.3333333333334,
"scrollY": 1123.3333333333333
},
{
"id": 12,
@ -105,8 +105,8 @@
"name": "メメリスとティーナのお家",
"order": 16,
"parentId": 13,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 13,
@ -114,8 +114,8 @@
"name": "ダンジョン タワー",
"order": 15,
"parentId": 1,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 14,
@ -123,8 +123,8 @@
"name": "ダンジョン1 マップ1",
"order": 17,
"parentId": 12,
"scrollX": 1175.3333333333333,
"scrollY": 641.3333333333334
"scrollX": 1108,
"scrollY": 722
},
{
"id": 15,
@ -132,8 +132,8 @@
"name": "ダンジョン1 マップ3",
"order": 18,
"parentId": 14,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 16,
@ -141,8 +141,8 @@
"name": "ダンジョン1 マップ",
"order": 19,
"parentId": 15,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 17,
@ -150,8 +150,8 @@
"name": "ゴロツキアジト",
"order": 28,
"parentId": 1,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 18,
@ -159,8 +159,8 @@
"name": "アジト内部",
"order": 29,
"parentId": 17,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 19,
@ -168,8 +168,8 @@
"name": "ダンジョン2階層",
"order": 20,
"parentId": 16,
"scrollX": 1328.6666666666667,
"scrollY": 641.3333333333334
"scrollX": 1310.6666666666667,
"scrollY": 714
},
{
"id": 20,
@ -177,8 +177,8 @@
"name": "ダンジョン2階層 その1",
"order": 21,
"parentId": 19,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 21,
@ -186,8 +186,8 @@
"name": "ダンジョン2階層 その2",
"order": 22,
"parentId": 20,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 22,
@ -195,8 +195,8 @@
"name": "ダンジョン2階層 その3",
"order": 23,
"parentId": 21,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 724
},
{
"id": 23,
@ -204,8 +204,8 @@
"name": "森",
"order": 30,
"parentId": 18,
"scrollX": 792.6666666666666,
"scrollY": 586.6666666666666
"scrollX": 849.3333333333334,
"scrollY": 724.6666666666666
},
{
"id": 24,
@ -213,8 +213,8 @@
"name": "ダンジョン3階層目その1",
"order": 24,
"parentId": 22,
"scrollX": 1127.3333333333333,
"scrollY": 997.3333333333334
"scrollX": 1070.6666666666667,
"scrollY": 998
},
{
"id": 25,
@ -222,8 +222,8 @@
"name": "ダンジョン3階層目その2",
"order": 25,
"parentId": 24,
"scrollX": 792.6666666666666,
"scrollY": 997.3333333333334
"scrollX": 849.3333333333334,
"scrollY": 711.3333333333334
},
{
"id": 26,
@ -240,8 +240,8 @@
"name": "回想部屋",
"order": 12,
"parentId": 11,
"scrollX": 803.3333333333334,
"scrollY": 532
"scrollX": 860,
"scrollY": 714
},
{
"id": 28,
@ -250,7 +250,7 @@
"order": 27,
"parentId": 26,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollY": 532
},
{
"id": 29,
@ -258,8 +258,8 @@
"name": "転移魔法陣",
"order": 32,
"parentId": 31,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 30,
@ -267,8 +267,8 @@
"name": "都会",
"order": 33,
"parentId": 31,
"scrollX": 792.6666666666666,
"scrollY": 864
"scrollX": 1022.6666666666666,
"scrollY": 1206.6666666666667
},
{
"id": 31,
@ -276,8 +276,8 @@
"name": "第2の島",
"order": 31,
"parentId": 0,
"scrollX": 792.6666666666666,
"scrollY": 640
"scrollX": 849.3333333333334,
"scrollY": 724
},
{
"id": 32,
@ -285,8 +285,8 @@
"name": "ギルド支部",
"order": 55,
"parentId": 42,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 724
},
{
"id": 33,
@ -294,8 +294,8 @@
"name": "カジノ",
"order": 34,
"parentId": 30,
"scrollX": 947.3333333333334,
"scrollY": 1305.3333333333333
"scrollX": 948,
"scrollY": 1207.3333333333333
},
{
"id": 34,
@ -303,8 +303,8 @@
"name": "娼婦館",
"order": 35,
"parentId": 33,
"scrollX": 792.6666666666666,
"scrollY": 906.6666666666666
"scrollX": 860,
"scrollY": 724
},
{
"id": 35,
@ -312,8 +312,8 @@
"name": "アイテムショップ",
"order": 36,
"parentId": 34,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 724
},
{
"id": 36,
@ -321,8 +321,8 @@
"name": "小さな村",
"order": 45,
"parentId": 31,
"scrollX": 792.6666666666666,
"scrollY": 666.6666666666666
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 37,
@ -348,8 +348,8 @@
"name": "検問所",
"order": 53,
"parentId": 31,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 731.3333333333334
},
{
"id": 40,
@ -357,8 +357,8 @@
"name": "村の民家1F",
"order": 46,
"parentId": 36,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 41,
@ -367,7 +367,7 @@
"order": 47,
"parentId": 40,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollY": 532
},
{
"id": 42,
@ -376,7 +376,7 @@
"order": 54,
"parentId": 31,
"scrollX": 792.6666666666666,
"scrollY": 666.6666666666666
"scrollY": 668
},
{
"id": 43,
@ -384,8 +384,8 @@
"name": "スラム街(夜)",
"order": 60,
"parentId": 0,
"scrollX": 792.6666666666666,
"scrollY": 586.6666666666666
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 44,
@ -393,8 +393,8 @@
"name": "宿屋",
"order": 56,
"parentId": 32,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 45,
@ -402,8 +402,8 @@
"name": "宿屋",
"order": 61,
"parentId": 43,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 46,
@ -411,8 +411,8 @@
"name": "ギルド支部",
"order": 62,
"parentId": 45,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 47,
@ -429,8 +429,8 @@
"name": "酒場",
"order": 63,
"parentId": 46,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 724
},
{
"id": 49,
@ -438,8 +438,8 @@
"name": "アナルほじりスライムの森2",
"order": 49,
"parentId": 37,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 50,
@ -447,8 +447,8 @@
"name": "ガレージ",
"order": 37,
"parentId": 35,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 51,
@ -456,8 +456,8 @@
"name": "チェルン村",
"order": 71,
"parentId": 0,
"scrollX": 792.6666666666666,
"scrollY": 1217.3333333333333
"scrollX": 849.3333333333334,
"scrollY": 772.6666666666666
},
{
"id": 52,
@ -465,8 +465,8 @@
"name": "道具屋",
"order": 72,
"parentId": 51,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 53,
@ -475,7 +475,7 @@
"order": 38,
"parentId": 50,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollY": 532
},
{
"id": 54,
@ -484,7 +484,7 @@
"order": 39,
"parentId": 53,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollY": 532
},
{
"id": 55,
@ -492,8 +492,8 @@
"name": "コスプレショップ",
"order": 40,
"parentId": 54,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 56,
@ -502,7 +502,7 @@
"order": 41,
"parentId": 55,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollY": 532
},
{
"id": 57,
@ -519,8 +519,8 @@
"name": "教会",
"order": 73,
"parentId": 52,
"scrollX": 792.6666666666666,
"scrollY": 666.6666666666666
"scrollX": 860,
"scrollY": 731.3333333333334
},
{
"id": 59,
@ -528,8 +528,8 @@
"name": "トイレ(夜)",
"order": 42,
"parentId": 56,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 60,
@ -546,8 +546,8 @@
"name": "ダンジョン2 一層目2",
"order": 78,
"parentId": 60,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 62,
@ -555,8 +555,8 @@
"name": "ダンジョン2 一層目3",
"order": 79,
"parentId": 61,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 63,
@ -574,7 +574,7 @@
"order": 58,
"parentId": 47,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollY": 532
},
{
"id": 65,
@ -591,8 +591,8 @@
"name": "ダンジョン2 2層目1",
"order": 80,
"parentId": 62,
"scrollX": 887.3333333333334,
"scrollY": 650.6666666666666
"scrollX": 849.3333333333334,
"scrollY": 956
},
{
"id": 67,
@ -600,8 +600,8 @@
"name": "ダンジョン2 2層目2",
"order": 81,
"parentId": 66,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 715.3333333333334
},
{
"id": 68,
@ -609,8 +609,8 @@
"name": "サキュ子の家",
"order": 52,
"parentId": 57,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 69,
@ -627,8 +627,8 @@
"name": "ダンジョン2 3層目1",
"order": 82,
"parentId": 67,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 715.3333333333334
},
{
"id": 71,
@ -636,8 +636,8 @@
"name": "ダンジョン2 3層目2",
"order": 83,
"parentId": 70,
"scrollX": 1607.3333333333333,
"scrollY": 1366.6666666666667
"scrollX": 1434.6666666666667,
"scrollY": 1064.6666666666667
},
{
"id": 72,
@ -645,8 +645,8 @@
"name": "ダンジョン2 3層目3",
"order": 84,
"parentId": 71,
"scrollX": 792.6666666666666,
"scrollY": 906.6666666666666
"scrollX": 849.3333333333334,
"scrollY": 724.6666666666666
},
{
"id": 73,
@ -654,8 +654,8 @@
"name": "ダンジョン2 3層目",
"order": 85,
"parentId": 72,
"scrollX": 792.6666666666666,
"scrollY": 906.6666666666666
"scrollX": 849.3333333333334,
"scrollY": 724.6666666666666
},
{
"id": 74,
@ -663,8 +663,8 @@
"name": "ダンジョン2 4層目",
"order": 86,
"parentId": 73,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 731.3333333333334
},
{
"id": 75,
@ -672,8 +672,8 @@
"name": "ラストダンジョン1",
"order": 87,
"parentId": 60,
"scrollX": 792.6666666666666,
"scrollY": 746.6666666666666
"scrollX": 860,
"scrollY": 724
},
{
"id": 76,
@ -681,8 +681,8 @@
"name": "ラストダンジョン2",
"order": 88,
"parentId": 75,
"scrollX": 792.6666666666666,
"scrollY": 1002.6666666666666
"scrollX": 849.3333333333334,
"scrollY": 806
},
{
"id": 77,
@ -690,8 +690,8 @@
"name": "ラストダンジョン3",
"order": 89,
"parentId": 76,
"scrollX": 1175.3333333333333,
"scrollY": 1366.6666666666667
"scrollX": 1118.6666666666667,
"scrollY": 1367.3333333333333
},
{
"id": 78,
@ -699,8 +699,8 @@
"name": "ラストダンジョン4",
"order": 90,
"parentId": 77,
"scrollX": 1175.3333333333333,
"scrollY": 1366.6666666666667
"scrollX": 1118.6666666666667,
"scrollY": 1200.6666666666667
},
{
"id": 79,
@ -708,8 +708,8 @@
"name": "ラストダンジョン5",
"order": 91,
"parentId": 78,
"scrollX": 792.6666666666666,
"scrollY": 906.6666666666666
"scrollX": 849.3333333333334,
"scrollY": 724.6666666666666
},
{
"id": 80,
@ -718,7 +718,7 @@
"order": 43,
"parentId": 59,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollY": 532
},
{
"id": 81,
@ -726,8 +726,8 @@
"name": "スラム民家",
"order": 65,
"parentId": 65,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 711.3333333333334
},
{
"id": 82,
@ -744,8 +744,8 @@
"name": "奴隷競売入口",
"order": 66,
"parentId": 81,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 731.3333333333334
},
{
"id": 84,
@ -762,8 +762,8 @@
"name": "牢屋1",
"order": 68,
"parentId": 84,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 731.3333333333334
},
{
"id": 86,
@ -780,8 +780,8 @@
"name": "牢屋3",
"order": 70,
"parentId": 86,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 731.3333333333334
},
{
"id": 88,
@ -789,8 +789,8 @@
"name": "ホテル",
"order": 44,
"parentId": 80,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 724
},
{
"id": 89,
@ -798,8 +798,8 @@
"name": "バッドエンド回想",
"order": 13,
"parentId": 27,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 714
},
{
"id": 90,
@ -816,7 +816,70 @@
"name": "トイレ",
"order": 14,
"parentId": 89,
"scrollX": 803.3333333333334,
"scrollY": 533.3333333333334
"scrollX": 860,
"scrollY": 714
},
{
"id": 92,
"expanded": true,
"name": "草原の廃墟",
"order": 92,
"parentId": 75,
"scrollX": 860,
"scrollY": 714
},
{
"id": 93,
"expanded": true,
"name": "大きな民家2F",
"order": 93,
"parentId": 92,
"scrollX": 849.3333333333334,
"scrollY": 724.6666666666666
},
{
"id": 94,
"expanded": true,
"name": "廃墟の民家",
"order": 94,
"parentId": 93,
"scrollX": 860,
"scrollY": 714
},
{
"id": 95,
"expanded": true,
"name": "廃墟の民家",
"order": 95,
"parentId": 94,
"scrollX": 860,
"scrollY": 714
},
{
"id": 96,
"expanded": true,
"name": "廃墟部屋1",
"order": 96,
"parentId": 95,
"scrollX": 860,
"scrollY": 714
},
{
"id": 97,
"expanded": true,
"name": "廃墟部屋2",
"order": 97,
"parentId": 96,
"scrollX": 860,
"scrollY": 714
},
{
"id": 98,
"expanded": false,
"name": "廃墟2階",
"order": 98,
"parentId": 97,
"scrollX": 860,
"scrollY": 714
}
]

View file

@ -1945,24 +1945,31 @@
},
{
"id": 52,
"animationId": 0,
"animationId": 102,
"damage": {
"critical": false,
"elementId": 0,
"formula": "0",
"type": 0,
"elementId": 9,
"formula": "100 + a.mat * 4 - b.mdf * 2",
"type": 1,
"variance": 20
},
"description": "",
"effects": [],
"description": "初級の上ぐらいの魔法。\n聖なる光を一点集中して敵単体に攻撃する。",
"effects": [
{
"code": 21,
"dataId": 5,
"value1": 0.35,
"value2": 0
}
],
"hitType": 0,
"iconIndex": 0,
"message1": "",
"iconIndex": 71,
"message1": "は%1を放った",
"message2": "",
"mpCost": 0,
"name": "",
"mpCost": 10,
"name": "怨念玉",
"note": "",
"occasion": 0,
"occasion": 1,
"repeats": 1,
"requiredWtypeId1": 0,
"requiredWtypeId2": 0,
@ -1975,28 +1982,28 @@
},
{
"id": 53,
"animationId": 0,
"animationId": 104,
"damage": {
"critical": false,
"elementId": 0,
"formula": "0",
"type": 0,
"elementId": 8,
"formula": "100 + a.mat * 2 - b.mdf * 2",
"type": 1,
"variance": 20
},
"description": "",
"description": "中級魔法。小さなセクルを連射して攻撃する。\n敵単体に3回ランダムでダメージを与える。",
"effects": [],
"hitType": 0,
"iconIndex": 0,
"message1": "",
"iconIndex": 10,
"message1": "は%1を放った",
"message2": "",
"mpCost": 0,
"name": "",
"mpCost": 15,
"name": "オプーナ",
"note": "",
"occasion": 0,
"occasion": 1,
"repeats": 1,
"requiredWtypeId1": 0,
"requiredWtypeId2": 0,
"scope": 1,
"scope": 6,
"speed": 0,
"stypeId": 1,
"successRate": 100,

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -2684,8 +2684,21 @@
},
{
"id": 61,
"members": [],
"name": "",
"members": [
{
"enemyId": 60,
"x": 328,
"y": 436,
"hidden": false
},
{
"enemyId": 60,
"x": 489,
"y": 436,
"hidden": false
}
],
"name": "怨念がおんねん*2",
"pages": [
{
"conditions": {
@ -2715,8 +2728,21 @@
},
{
"id": 62,
"members": [],
"name": "",
"members": [
{
"enemyId": 61,
"x": 250,
"y": 436,
"hidden": false
},
{
"enemyId": 62,
"x": 567,
"y": 436,
"hidden": false
}
],
"name": "兄者, 弟者",
"pages": [
{
"conditions": {

View file

@ -1,207 +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;
})();
/*! 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;
})();

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -3968,7 +3968,7 @@ var $plugins = [
status: true,
description:
"シンボルエンカウント作成の補助を行います。\r\n詳しい使い方はヘルプを参照してください。",
parameters: { situationVariables: "1" },
parameters: { situationVariables: "40" },
},
{
name: "MNKR_MaxSave",

View file

@ -1,90 +1,90 @@
//=============================================================================
// AltMenuScreen.js
//=============================================================================
/*:
* @plugindesc Alternative menu screen layout.
* @author Yoji Ojima
*
* @help This plugin does not provide plugin commands.
*/
/*:ja
* @plugindesc メニュー画面のレイアウトを変更します
* @author Yoji Ojima
*
* @help このプラグインにはプラグインコマンドはありません
*/
(function () {
var _Scene_Menu_create = Scene_Menu.prototype.create;
Scene_Menu.prototype.create = function () {
_Scene_Menu_create.call(this);
this._statusWindow.x = 0;
this._statusWindow.y = this._commandWindow.height;
this._goldWindow.x = Graphics.boxWidth - this._goldWindow.width;
};
Window_MenuCommand.prototype.windowWidth = function () {
return Graphics.boxWidth;
};
Window_MenuCommand.prototype.maxCols = function () {
return 4;
};
Window_MenuCommand.prototype.numVisibleRows = function () {
return 2;
};
Window_MenuStatus.prototype.windowWidth = function () {
return Graphics.boxWidth;
};
Window_MenuStatus.prototype.windowHeight = function () {
var h1 = this.fittingHeight(1);
var h2 = this.fittingHeight(2);
return Graphics.boxHeight - h1 - h2;
};
Window_MenuStatus.prototype.maxCols = function () {
return 4;
};
Window_MenuStatus.prototype.numVisibleRows = function () {
return 1;
};
Window_MenuStatus.prototype.drawItemImage = function (index) {
var actor = $gameParty.members()[index];
var rect = this.itemRectForText(index);
var w = Math.min(rect.width, 144);
var h = Math.min(rect.height, 144);
var lineHeight = this.lineHeight();
this.changePaintOpacity(actor.isBattleMember());
this.drawActorFace(actor, rect.x, rect.y + lineHeight * 2.5, w, h);
this.changePaintOpacity(true);
};
Window_MenuStatus.prototype.drawItemStatus = function (index) {
var actor = $gameParty.members()[index];
var rect = this.itemRectForText(index);
var x = rect.x;
var y = rect.y;
var width = rect.width;
var bottom = y + rect.height;
var lineHeight = this.lineHeight();
this.drawActorName(actor, x, y + lineHeight * 0, width);
this.drawActorLevel(actor, x, y + lineHeight * 1, width);
this.drawActorClass(actor, x, bottom - lineHeight * 4, width);
this.drawActorHp(actor, x, bottom - lineHeight * 3, width);
this.drawActorMp(actor, x, bottom - lineHeight * 2, width);
this.drawActorIcons(actor, x, bottom - lineHeight * 1, width);
};
var _Window_MenuActor_initialize = Window_MenuActor.prototype.initialize;
Window_MenuActor.prototype.initialize = function () {
_Window_MenuActor_initialize.call(this);
this.y = this.fittingHeight(2);
};
})();
//=============================================================================
// AltMenuScreen.js
//=============================================================================
/*:
* @plugindesc Alternative menu screen layout.
* @author Yoji Ojima
*
* @help This plugin does not provide plugin commands.
*/
/*:ja
* @plugindesc メニュー画面のレイアウトを変更します
* @author Yoji Ojima
*
* @help このプラグインにはプラグインコマンドはありません
*/
(function () {
var _Scene_Menu_create = Scene_Menu.prototype.create;
Scene_Menu.prototype.create = function () {
_Scene_Menu_create.call(this);
this._statusWindow.x = 0;
this._statusWindow.y = this._commandWindow.height;
this._goldWindow.x = Graphics.boxWidth - this._goldWindow.width;
};
Window_MenuCommand.prototype.windowWidth = function () {
return Graphics.boxWidth;
};
Window_MenuCommand.prototype.maxCols = function () {
return 4;
};
Window_MenuCommand.prototype.numVisibleRows = function () {
return 2;
};
Window_MenuStatus.prototype.windowWidth = function () {
return Graphics.boxWidth;
};
Window_MenuStatus.prototype.windowHeight = function () {
var h1 = this.fittingHeight(1);
var h2 = this.fittingHeight(2);
return Graphics.boxHeight - h1 - h2;
};
Window_MenuStatus.prototype.maxCols = function () {
return 4;
};
Window_MenuStatus.prototype.numVisibleRows = function () {
return 1;
};
Window_MenuStatus.prototype.drawItemImage = function (index) {
var actor = $gameParty.members()[index];
var rect = this.itemRectForText(index);
var w = Math.min(rect.width, 144);
var h = Math.min(rect.height, 144);
var lineHeight = this.lineHeight();
this.changePaintOpacity(actor.isBattleMember());
this.drawActorFace(actor, rect.x, rect.y + lineHeight * 2.5, w, h);
this.changePaintOpacity(true);
};
Window_MenuStatus.prototype.drawItemStatus = function (index) {
var actor = $gameParty.members()[index];
var rect = this.itemRectForText(index);
var x = rect.x;
var y = rect.y;
var width = rect.width;
var bottom = y + rect.height;
var lineHeight = this.lineHeight();
this.drawActorName(actor, x, y + lineHeight * 0, width);
this.drawActorLevel(actor, x, y + lineHeight * 1, width);
this.drawActorClass(actor, x, bottom - lineHeight * 4, width);
this.drawActorHp(actor, x, bottom - lineHeight * 3, width);
this.drawActorMp(actor, x, bottom - lineHeight * 2, width);
this.drawActorIcons(actor, x, bottom - lineHeight * 1, width);
};
var _Window_MenuActor_initialize = Window_MenuActor.prototype.initialize;
Window_MenuActor.prototype.initialize = function () {
_Window_MenuActor_initialize.call(this);
this.y = this.fittingHeight(2);
};
})();

View file

@ -1,132 +1,132 @@
//=============================================================================
// AltSaveScreen.js
//=============================================================================
/*:
* @plugindesc Alternative save/load screen layout.
* @author Yoji Ojima
*
* @help This plugin does not provide plugin commands.
*/
/*:ja
* @plugindesc セーブロード画面のレイアウトを変更します
* @author Yoji Ojima
*
* @help このプラグインにはプラグインコマンドはありません
*/
(function () {
var _Scene_File_create = Scene_File.prototype.create;
Scene_File.prototype.create = function () {
_Scene_File_create.call(this);
this._listWindow.height = this._listWindow.fittingHeight(8);
var x = 0;
var y = this._listWindow.y + this._listWindow.height;
var width = Graphics.boxWidth;
var height = Graphics.boxHeight - y;
this._statusWindow = new Window_SavefileStatus(x, y, width, height);
this._statusWindow.setMode(this.mode());
this._listWindow.statusWindow = this._statusWindow;
this._listWindow.callUpdateHelp();
this.addWindow(this._statusWindow);
};
var _Scene_File_start = Scene_File.prototype.start;
Scene_File.prototype.start = function () {
_Scene_File_start.call(this);
this._listWindow.ensureCursorVisible();
this._listWindow.callUpdateHelp();
};
Window_SavefileList.prototype.windowWidth = function () {
return Graphics.boxWidth;
};
Window_SavefileList.prototype.maxCols = function () {
return 4;
};
Window_SavefileList.prototype.numVisibleRows = function () {
return 5;
};
Window_SavefileList.prototype.spacing = function () {
return 8;
};
Window_SavefileList.prototype.itemHeight = function () {
return this.lineHeight() * 2;
};
var _Window_SavefileList_callUpdateHelp =
Window_SavefileList.prototype.callUpdateHelp;
Window_SavefileList.prototype.callUpdateHelp = function () {
_Window_SavefileList_callUpdateHelp.call(this);
if (this.active && this.statusWindow) {
this.statusWindow.setId(this.index() + 1);
}
};
function Window_SavefileStatus() {
this.initialize.apply(this, arguments);
}
Window_SavefileStatus.prototype = Object.create(Window_Base.prototype);
Window_SavefileStatus.prototype.constructor = Window_SavefileStatus;
Window_SavefileStatus.prototype.initialize = function (x, y, width, height) {
Window_Base.prototype.initialize.call(this, x, y, width, height);
this._id = 1;
};
Window_SavefileStatus.prototype.setMode = function (mode) {
this._mode = mode;
};
Window_SavefileStatus.prototype.setId = function (id) {
this._id = id;
this.refresh();
};
Window_SavefileStatus.prototype.refresh = function () {
this.contents.clear();
var id = this._id;
var valid = DataManager.isThisGameFile(id);
var info = DataManager.loadSavefileInfo(id);
var rect = this.contents.rect;
this.resetTextColor();
if (this._mode === "load") {
this.changePaintOpacity(valid);
}
this.drawFileId(id, rect.x, rect.y);
if (info) {
this.changePaintOpacity(valid);
this.drawContents(info, rect, valid);
this.changePaintOpacity(true);
}
};
Window_SavefileStatus.prototype.drawFileId = function (id, x, y) {
this.drawText(TextManager.file + " " + id, x, y, 180);
};
Window_SavefileStatus.prototype.drawContents = function (info, rect, valid) {
var bottom = rect.y + rect.height;
var playtimeY = bottom - this.lineHeight();
this.drawText(info.title, rect.x + 192, rect.y, rect.width - 192);
if (valid) {
this.drawPartyfaces(info, rect.x, bottom - 144);
}
this.drawText(info.playtime, rect.x, playtimeY, rect.width, "right");
};
Window_SavefileStatus.prototype.drawPartyfaces = function (info, x, y) {
if (info && info.faces) {
for (var i = 0; i < info.faces.length; i++) {
var data = info.faces[i];
this.drawFace(data[0], data[1], x + i * 150, y);
}
}
};
})();
//=============================================================================
// AltSaveScreen.js
//=============================================================================
/*:
* @plugindesc Alternative save/load screen layout.
* @author Yoji Ojima
*
* @help This plugin does not provide plugin commands.
*/
/*:ja
* @plugindesc セーブロード画面のレイアウトを変更します
* @author Yoji Ojima
*
* @help このプラグインにはプラグインコマンドはありません
*/
(function () {
var _Scene_File_create = Scene_File.prototype.create;
Scene_File.prototype.create = function () {
_Scene_File_create.call(this);
this._listWindow.height = this._listWindow.fittingHeight(8);
var x = 0;
var y = this._listWindow.y + this._listWindow.height;
var width = Graphics.boxWidth;
var height = Graphics.boxHeight - y;
this._statusWindow = new Window_SavefileStatus(x, y, width, height);
this._statusWindow.setMode(this.mode());
this._listWindow.statusWindow = this._statusWindow;
this._listWindow.callUpdateHelp();
this.addWindow(this._statusWindow);
};
var _Scene_File_start = Scene_File.prototype.start;
Scene_File.prototype.start = function () {
_Scene_File_start.call(this);
this._listWindow.ensureCursorVisible();
this._listWindow.callUpdateHelp();
};
Window_SavefileList.prototype.windowWidth = function () {
return Graphics.boxWidth;
};
Window_SavefileList.prototype.maxCols = function () {
return 4;
};
Window_SavefileList.prototype.numVisibleRows = function () {
return 5;
};
Window_SavefileList.prototype.spacing = function () {
return 8;
};
Window_SavefileList.prototype.itemHeight = function () {
return this.lineHeight() * 2;
};
var _Window_SavefileList_callUpdateHelp =
Window_SavefileList.prototype.callUpdateHelp;
Window_SavefileList.prototype.callUpdateHelp = function () {
_Window_SavefileList_callUpdateHelp.call(this);
if (this.active && this.statusWindow) {
this.statusWindow.setId(this.index() + 1);
}
};
function Window_SavefileStatus() {
this.initialize.apply(this, arguments);
}
Window_SavefileStatus.prototype = Object.create(Window_Base.prototype);
Window_SavefileStatus.prototype.constructor = Window_SavefileStatus;
Window_SavefileStatus.prototype.initialize = function (x, y, width, height) {
Window_Base.prototype.initialize.call(this, x, y, width, height);
this._id = 1;
};
Window_SavefileStatus.prototype.setMode = function (mode) {
this._mode = mode;
};
Window_SavefileStatus.prototype.setId = function (id) {
this._id = id;
this.refresh();
};
Window_SavefileStatus.prototype.refresh = function () {
this.contents.clear();
var id = this._id;
var valid = DataManager.isThisGameFile(id);
var info = DataManager.loadSavefileInfo(id);
var rect = this.contents.rect;
this.resetTextColor();
if (this._mode === "load") {
this.changePaintOpacity(valid);
}
this.drawFileId(id, rect.x, rect.y);
if (info) {
this.changePaintOpacity(valid);
this.drawContents(info, rect, valid);
this.changePaintOpacity(true);
}
};
Window_SavefileStatus.prototype.drawFileId = function (id, x, y) {
this.drawText(TextManager.file + " " + id, x, y, 180);
};
Window_SavefileStatus.prototype.drawContents = function (info, rect, valid) {
var bottom = rect.y + rect.height;
var playtimeY = bottom - this.lineHeight();
this.drawText(info.title, rect.x + 192, rect.y, rect.width - 192);
if (valid) {
this.drawPartyfaces(info, rect.x, bottom - 144);
}
this.drawText(info.playtime, rect.x, playtimeY, rect.width, "right");
};
Window_SavefileStatus.prototype.drawPartyfaces = function (info, x, y) {
if (info && info.faces) {
for (var i = 0; i < info.faces.length; i++) {
var data = info.faces[i];
this.drawFace(data[0], data[1], x + i * 150, y);
}
}
};
})();

File diff suppressed because it is too large Load diff

View file

@ -1,128 +1,128 @@
/*:
* @plugindesc メダルや貝殻など特定のアイテムをお金の代わりに使えるショップを作成することができます
*
* @author シトラス
*
* @param tradeShopSwitchId
* @text 交換ショップスイッチID
* @desc このスイッチがONの時にショップを起動すると
* 交換ショップになります
* @default 1
*
* @param tradeItemId
* @text 交換アイテムID
* @desc この番号のIDを持つアイテムを交換に使用します
* @default 1
*
* @param tradeItemTanni
* @text 交換アイテム単位
* @desc アイテムの単位枚などアイテムをどう数えるかです
* @default
*
* @help
* 注意点
* 交換ショップのスイッチはイベントが終わった後に自分でOFFしてください
*
*/
var hoge = PluginManager.parameters("CTRS_TradeShop");
//このスイッチがONになっていれば、交換ショップとして扱う
var tradeShopSwitchId = Number(hoge.tradeShopSwitchId);
//交換に使うアイテムのID
var tradeItemId = Number(hoge.tradeItemId);
//交換に使うアイテムの単位
var tradeItemTanni = hoge.tradeItemTanni;
Scene_Shop.prototype.prepare = function (goods, purchaseOnly) {
this._goods = goods;
if ($gameSwitches.value(tradeShopSwitchId)) {
this._purchaseOnly = true;
} else {
this._purchaseOnly = purchaseOnly;
}
this._item = null;
};
//購入を実行
Scene_Shop.prototype.doBuy = function (number) {
if ($gameSwitches.value(tradeShopSwitchId)) {
$gameParty.gainItem(
$dataItems[tradeItemId],
-1 * number * this.buyingPrice()
);
} else {
$gameParty.loseGold(number * this.buyingPrice());
}
$gameParty.gainItem(this._item, number);
};
//-----------------------------------------------------------------------------
// Window_Gold
//
// The window for displaying the party's gold.
// ゴールドの表示ウィンドウを司るスクリプト
function Window_Gold() {
this.initialize.apply(this, arguments);
}
Window_Gold.prototype = Object.create(Window_Base.prototype);
Window_Gold.prototype.constructor = Window_Gold;
Window_Gold.prototype.initialize = function (x, y) {
var width = this.windowWidth();
var height = this.windowHeight();
Window_Base.prototype.initialize.call(this, x, y, width, height);
this.refresh();
};
Window_Gold.prototype.windowWidth = function () {
return 240;
};
Window_Gold.prototype.windowHeight = function () {
return this.fittingHeight(1);
};
Window_Gold.prototype.refresh = function () {
var x = this.textPadding();
var width = this.contents.width - this.textPadding() * 2;
this.contents.clear();
if ($gameSwitches.value(tradeShopSwitchId)) {
this.drawCurrencyValue(this.value(), tradeItemTanni, x, 0, width);
} else {
this.drawCurrencyValue(this.value(), this.currencyUnit(), x, 0, width);
}
};
Window_Gold.prototype.value = function () {
if ($gameSwitches.value(tradeShopSwitchId)) {
return $gameParty.numItems($dataItems[tradeItemId]);
} else {
return $gameParty.gold();
}
};
Window_Gold.prototype.currencyUnit = function () {
return TextManager.currencyUnit;
};
Window_Gold.prototype.open = function () {
this.refresh();
Window_Base.prototype.open.call(this);
};
Window_ShopNumber.prototype.drawTotalPrice = function () {
var total = this._price * this._number;
var width = this.contentsWidth() - this.textPadding();
if ($gameSwitches.value(tradeShopSwitchId)) {
this.drawCurrencyValue(total, tradeItemTanni, 0, this.priceY(), width);
} else {
this.drawCurrencyValue(total, this._currencyUnit, 0, this.priceY(), width);
}
};
/*:
* @plugindesc メダルや貝殻など特定のアイテムをお金の代わりに使えるショップを作成することができます
*
* @author シトラス
*
* @param tradeShopSwitchId
* @text 交換ショップスイッチID
* @desc このスイッチがONの時にショップを起動すると
* 交換ショップになります
* @default 1
*
* @param tradeItemId
* @text 交換アイテムID
* @desc この番号のIDを持つアイテムを交換に使用します
* @default 1
*
* @param tradeItemTanni
* @text 交換アイテム単位
* @desc アイテムの単位枚などアイテムをどう数えるかです
* @default
*
* @help
* 注意点
* 交換ショップのスイッチはイベントが終わった後に自分でOFFしてください
*
*/
var hoge = PluginManager.parameters("CTRS_TradeShop");
//このスイッチがONになっていれば、交換ショップとして扱う
var tradeShopSwitchId = Number(hoge.tradeShopSwitchId);
//交換に使うアイテムのID
var tradeItemId = Number(hoge.tradeItemId);
//交換に使うアイテムの単位
var tradeItemTanni = hoge.tradeItemTanni;
Scene_Shop.prototype.prepare = function (goods, purchaseOnly) {
this._goods = goods;
if ($gameSwitches.value(tradeShopSwitchId)) {
this._purchaseOnly = true;
} else {
this._purchaseOnly = purchaseOnly;
}
this._item = null;
};
//購入を実行
Scene_Shop.prototype.doBuy = function (number) {
if ($gameSwitches.value(tradeShopSwitchId)) {
$gameParty.gainItem(
$dataItems[tradeItemId],
-1 * number * this.buyingPrice()
);
} else {
$gameParty.loseGold(number * this.buyingPrice());
}
$gameParty.gainItem(this._item, number);
};
//-----------------------------------------------------------------------------
// Window_Gold
//
// The window for displaying the party's gold.
// ゴールドの表示ウィンドウを司るスクリプト
function Window_Gold() {
this.initialize.apply(this, arguments);
}
Window_Gold.prototype = Object.create(Window_Base.prototype);
Window_Gold.prototype.constructor = Window_Gold;
Window_Gold.prototype.initialize = function (x, y) {
var width = this.windowWidth();
var height = this.windowHeight();
Window_Base.prototype.initialize.call(this, x, y, width, height);
this.refresh();
};
Window_Gold.prototype.windowWidth = function () {
return 240;
};
Window_Gold.prototype.windowHeight = function () {
return this.fittingHeight(1);
};
Window_Gold.prototype.refresh = function () {
var x = this.textPadding();
var width = this.contents.width - this.textPadding() * 2;
this.contents.clear();
if ($gameSwitches.value(tradeShopSwitchId)) {
this.drawCurrencyValue(this.value(), tradeItemTanni, x, 0, width);
} else {
this.drawCurrencyValue(this.value(), this.currencyUnit(), x, 0, width);
}
};
Window_Gold.prototype.value = function () {
if ($gameSwitches.value(tradeShopSwitchId)) {
return $gameParty.numItems($dataItems[tradeItemId]);
} else {
return $gameParty.gold();
}
};
Window_Gold.prototype.currencyUnit = function () {
return TextManager.currencyUnit;
};
Window_Gold.prototype.open = function () {
this.refresh();
Window_Base.prototype.open.call(this);
};
Window_ShopNumber.prototype.drawTotalPrice = function () {
var total = this._price * this._number;
var width = this.contentsWidth() - this.textPadding();
if ($gameSwitches.value(tradeShopSwitchId)) {
this.drawCurrencyValue(total, tradeItemTanni, 0, this.priceY(), width);
} else {
this.drawCurrencyValue(total, this._currencyUnit, 0, this.priceY(), width);
}
};

View file

@ -1,135 +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);
}
};
})();
/*:
* @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);
}
};
})();

File diff suppressed because it is too large Load diff

View file

@ -1,108 +1,108 @@
//===================================================================
//DecisionDisable.js
//決定ボタン無効プラグイン
//===================================================================
//Copyright (c) 2017 蔦森くいな
//Released under the MIT license.
//http://opensource.org/licenses/mit-license.php
//-------------------------------------------------------------------
//blog : http://paradre.com/
//Twitter: https://twitter.com/Kuina_T
//===================================================================
//<更新情報>
// ver1.0.0 2017/06/26 初版
//===================================================================
/*:
* @plugindesc 決定ボタンでのイベント実行や乗り物の乗降をスイッチで無効化
* @author 蔦森くいな
*
* @help マップ上のイベントや乗り物に対して
* 決定ボタンを押したときタッチした時の動作を無効化できます
*
* イベントだけ乗り物だけもしくはその両方を無効化する事ができます
* それぞれの無効化機能をONOFFするために使用するスイッチ番号を
* プラグイン管理画面のパラメータから設定して下さい
*
* なおイベントトリガーが決定ボタン以外の場合
* たとえばプレイヤーから接触などは無効化されません
*
* @param Event_SwitchNumber
* @desc イベント禁止の有効無効化に使用するスイッチ番号を指定します
* @default 1
*
* @param Vehicle_SwitchNumber
* @desc 乗り物禁止の有効無効化に使用するスイッチ番号を指定します
* @default 1
*
*
*
* 利用規約
* このプラグインは商用非商用を問わず無料でご利用いただけます
* どのようなゲームに使ってもどのように加工していただいても構いません
* MIT Licenseにつき著作権表示とライセンスURLは残しておいて下さい
*/
(function () {
"use strict";
var pd_DD_eventNum = Number(
PluginManager.parameters("DecisionDisable")["Event_SwitchNumber"]
);
var pd_DD_vehicleNum = Number(
PluginManager.parameters("DecisionDisable")["Vehicle_SwitchNumber"]
);
var pd_DD_Game_Player_triggerAction = Game_Player.prototype.triggerAction;
Game_Player.prototype.triggerAction = function () {
if (
!$gameSwitches.value(pd_DD_eventNum) ||
!$gameSwitches.value(pd_DD_vehicleNum)
) {
pd_DD_Game_Player_triggerAction.call(this);
}
return false;
};
var pd_DD_Game_Player_getOnOffVehicle = Game_Player.prototype.getOnOffVehicle;
Game_Player.prototype.getOnOffVehicle = function () {
if (!$gameSwitches.value(pd_DD_vehicleNum)) {
pd_DD_Game_Player_getOnOffVehicle.call(this);
}
return false;
};
var pd_DD_Game_Player_getOnVehicle = Game_Player.prototype.getOnVehicle;
Game_Player.prototype.getOnVehicle = function () {
if (!$gameSwitches.value(pd_DD_vehicleNum)) {
pd_DD_Game_Player_getOnVehicle.call(this);
}
return false;
};
var pd_DD_Game_Player_getOffVehicle = Game_Player.prototype.getOffVehicle;
Game_Player.prototype.getOffVehicle = function () {
if (!$gameSwitches.value(pd_DD_vehicleNum)) {
pd_DD_Game_Player_getOffVehicle.call(this);
}
return false;
};
var pd_DD_Game_Player_checkEventTriggerHere =
Game_Player.prototype.checkEventTriggerHere;
Game_Player.prototype.checkEventTriggerHere = function (triggers) {
if (!$gameSwitches.value(pd_DD_eventNum)) {
pd_DD_Game_Player_checkEventTriggerHere.apply(this, arguments);
}
return false;
};
var pd_DD_Game_Player_checkEventTriggerThere =
Game_Player.prototype.checkEventTriggerThere;
Game_Player.prototype.checkEventTriggerThere = function (triggers) {
if (!$gameSwitches.value(pd_DD_eventNum)) {
pd_DD_Game_Player_checkEventTriggerThere.apply(this, arguments);
}
return false;
};
})();
//===================================================================
//DecisionDisable.js
//決定ボタン無効プラグイン
//===================================================================
//Copyright (c) 2017 蔦森くいな
//Released under the MIT license.
//http://opensource.org/licenses/mit-license.php
//-------------------------------------------------------------------
//blog : http://paradre.com/
//Twitter: https://twitter.com/Kuina_T
//===================================================================
//<更新情報>
// ver1.0.0 2017/06/26 初版
//===================================================================
/*:
* @plugindesc 決定ボタンでのイベント実行や乗り物の乗降をスイッチで無効化
* @author 蔦森くいな
*
* @help マップ上のイベントや乗り物に対して
* 決定ボタンを押したときタッチした時の動作を無効化できます
*
* イベントだけ乗り物だけもしくはその両方を無効化する事ができます
* それぞれの無効化機能をONOFFするために使用するスイッチ番号を
* プラグイン管理画面のパラメータから設定して下さい
*
* なおイベントトリガーが決定ボタン以外の場合
* たとえばプレイヤーから接触などは無効化されません
*
* @param Event_SwitchNumber
* @desc イベント禁止の有効無効化に使用するスイッチ番号を指定します
* @default 1
*
* @param Vehicle_SwitchNumber
* @desc 乗り物禁止の有効無効化に使用するスイッチ番号を指定します
* @default 1
*
*
*
* 利用規約
* このプラグインは商用非商用を問わず無料でご利用いただけます
* どのようなゲームに使ってもどのように加工していただいても構いません
* MIT Licenseにつき著作権表示とライセンスURLは残しておいて下さい
*/
(function () {
"use strict";
var pd_DD_eventNum = Number(
PluginManager.parameters("DecisionDisable")["Event_SwitchNumber"]
);
var pd_DD_vehicleNum = Number(
PluginManager.parameters("DecisionDisable")["Vehicle_SwitchNumber"]
);
var pd_DD_Game_Player_triggerAction = Game_Player.prototype.triggerAction;
Game_Player.prototype.triggerAction = function () {
if (
!$gameSwitches.value(pd_DD_eventNum) ||
!$gameSwitches.value(pd_DD_vehicleNum)
) {
pd_DD_Game_Player_triggerAction.call(this);
}
return false;
};
var pd_DD_Game_Player_getOnOffVehicle = Game_Player.prototype.getOnOffVehicle;
Game_Player.prototype.getOnOffVehicle = function () {
if (!$gameSwitches.value(pd_DD_vehicleNum)) {
pd_DD_Game_Player_getOnOffVehicle.call(this);
}
return false;
};
var pd_DD_Game_Player_getOnVehicle = Game_Player.prototype.getOnVehicle;
Game_Player.prototype.getOnVehicle = function () {
if (!$gameSwitches.value(pd_DD_vehicleNum)) {
pd_DD_Game_Player_getOnVehicle.call(this);
}
return false;
};
var pd_DD_Game_Player_getOffVehicle = Game_Player.prototype.getOffVehicle;
Game_Player.prototype.getOffVehicle = function () {
if (!$gameSwitches.value(pd_DD_vehicleNum)) {
pd_DD_Game_Player_getOffVehicle.call(this);
}
return false;
};
var pd_DD_Game_Player_checkEventTriggerHere =
Game_Player.prototype.checkEventTriggerHere;
Game_Player.prototype.checkEventTriggerHere = function (triggers) {
if (!$gameSwitches.value(pd_DD_eventNum)) {
pd_DD_Game_Player_checkEventTriggerHere.apply(this, arguments);
}
return false;
};
var pd_DD_Game_Player_checkEventTriggerThere =
Game_Player.prototype.checkEventTriggerThere;
Game_Player.prototype.checkEventTriggerThere = function (triggers) {
if (!$gameSwitches.value(pd_DD_eventNum)) {
pd_DD_Game_Player_checkEventTriggerThere.apply(this, arguments);
}
return false;
};
})();

View file

@ -1,345 +1,345 @@
//=============================================================================
// EnemyBook.js
//=============================================================================
/*:
* @plugindesc Displays detailed statuses of enemies.
* @author Yoji Ojima
*
* @param Unknown Data
* @desc The index name for an unknown enemy.
* @default ??????
*
* @help
*
* Plugin Command:
* EnemyBook open # Open the enemy book screen
* EnemyBook add 3 # Add enemy #3 to the enemy book
* EnemyBook remove 4 # Remove enemy #4 from the enemy book
* EnemyBook complete # Complete the enemy book
* EnemyBook clear # Clear the enemy book
*
* Enemy Note:
* <desc1:foobar> # Description text in the enemy book, line 1
* <desc2:blahblah> # Description text in the enemy book, line 2
* <book:no> # This enemy does not appear in the enemy book
*/
/*:ja
* @plugindesc モンスター図鑑です敵キャラの詳細なステータスを表示します
* @author Yoji Ojima
*
* @param Unknown Data
* @desc 未確認の敵キャラの索引名です
* @default
*
* @help
*
* プラグインコマンド:
* EnemyBook open # 図鑑画面を開く
* EnemyBook add 3 # 敵キャラ3番を図鑑に追加
* EnemyBook remove 4 # 敵キャラ4番を図鑑から削除
* EnemyBook complete # 図鑑を完成させる
* EnemyBook clear # 図鑑をクリアする
*
* 敵キャラのメモ:
* <desc1:なんとか> # 説明1行目
* <desc2:かんとか> # 説明2行目
* <book:no> # 図鑑に載せない場合
*/
(function () {
var parameters = PluginManager.parameters("EnemyBook");
var unknownData = String(parameters["Unknown Data"] || "??????");
var _Game_Interpreter_pluginCommand =
Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function (command, args) {
_Game_Interpreter_pluginCommand.call(this, command, args);
if (command === "EnemyBook") {
switch (args[0]) {
case "open":
SceneManager.push(Scene_EnemyBook);
break;
case "add":
$gameSystem.addToEnemyBook(Number(args[1]));
break;
case "remove":
$gameSystem.removeFromEnemyBook(Number(args[1]));
break;
case "complete":
$gameSystem.completeEnemyBook();
break;
case "clear":
$gameSystem.clearEnemyBook();
break;
}
}
};
Game_System.prototype.addToEnemyBook = function (enemyId) {
if (!this._enemyBookFlags) {
this.clearEnemyBook();
}
this._enemyBookFlags[enemyId] = true;
};
Game_System.prototype.removeFromEnemyBook = function (enemyId) {
if (this._enemyBookFlags) {
this._enemyBookFlags[enemyId] = false;
}
};
Game_System.prototype.completeEnemyBook = function () {
this.clearEnemyBook();
for (var i = 1; i < $dataEnemies.length; i++) {
this._enemyBookFlags[i] = true;
}
};
Game_System.prototype.clearEnemyBook = function () {
this._enemyBookFlags = [];
};
Game_System.prototype.isInEnemyBook = function (enemy) {
if (this._enemyBookFlags && enemy) {
return !!this._enemyBookFlags[enemy.id];
} else {
return false;
}
};
var _Game_Troop_setup = Game_Troop.prototype.setup;
Game_Troop.prototype.setup = function (troopId) {
_Game_Troop_setup.call(this, troopId);
this.members().forEach(function (enemy) {
if (enemy.isAppeared()) {
$gameSystem.addToEnemyBook(enemy.enemyId());
}
}, this);
};
var _Game_Enemy_appear = Game_Enemy.prototype.appear;
Game_Enemy.prototype.appear = function () {
_Game_Enemy_appear.call(this);
$gameSystem.addToEnemyBook(this._enemyId);
};
var _Game_Enemy_transform = Game_Enemy.prototype.transform;
Game_Enemy.prototype.transform = function (enemyId) {
_Game_Enemy_transform.call(this, enemyId);
$gameSystem.addToEnemyBook(enemyId);
};
function Scene_EnemyBook() {
this.initialize.apply(this, arguments);
}
Scene_EnemyBook.prototype = Object.create(Scene_MenuBase.prototype);
Scene_EnemyBook.prototype.constructor = Scene_EnemyBook;
Scene_EnemyBook.prototype.initialize = function () {
Scene_MenuBase.prototype.initialize.call(this);
};
Scene_EnemyBook.prototype.create = function () {
Scene_MenuBase.prototype.create.call(this);
this._indexWindow = new Window_EnemyBookIndex(0, 0);
this._indexWindow.setHandler("cancel", this.popScene.bind(this));
var wy = this._indexWindow.height;
var ww = Graphics.boxWidth;
var wh = Graphics.boxHeight - wy;
this._statusWindow = new Window_EnemyBookStatus(0, wy, ww, wh);
this.addWindow(this._indexWindow);
this.addWindow(this._statusWindow);
this._indexWindow.setStatusWindow(this._statusWindow);
};
function Window_EnemyBookIndex() {
this.initialize.apply(this, arguments);
}
Window_EnemyBookIndex.prototype = Object.create(Window_Selectable.prototype);
Window_EnemyBookIndex.prototype.constructor = Window_EnemyBookIndex;
Window_EnemyBookIndex.lastTopRow = 0;
Window_EnemyBookIndex.lastIndex = 0;
Window_EnemyBookIndex.prototype.initialize = function (x, y) {
var width = Graphics.boxWidth;
var height = this.fittingHeight(6);
Window_Selectable.prototype.initialize.call(this, x, y, width, height);
this.refresh();
this.setTopRow(Window_EnemyBookIndex.lastTopRow);
this.select(Window_EnemyBookIndex.lastIndex);
this.activate();
};
Window_EnemyBookIndex.prototype.maxCols = function () {
return 3;
};
Window_EnemyBookIndex.prototype.maxItems = function () {
return this._list ? this._list.length : 0;
};
Window_EnemyBookIndex.prototype.setStatusWindow = function (statusWindow) {
this._statusWindow = statusWindow;
this.updateStatus();
};
Window_EnemyBookIndex.prototype.update = function () {
Window_Selectable.prototype.update.call(this);
this.updateStatus();
};
Window_EnemyBookIndex.prototype.updateStatus = function () {
if (this._statusWindow) {
var enemy = this._list[this.index()];
this._statusWindow.setEnemy(enemy);
}
};
Window_EnemyBookIndex.prototype.refresh = function () {
this._list = [];
for (var i = 1; i < $dataEnemies.length; i++) {
var enemy = $dataEnemies[i];
if (enemy.name && enemy.meta.book !== "no") {
this._list.push(enemy);
}
}
this.createContents();
this.drawAllItems();
};
Window_EnemyBookIndex.prototype.drawItem = function (index) {
var enemy = this._list[index];
var rect = this.itemRectForText(index);
var name;
if ($gameSystem.isInEnemyBook(enemy)) {
name = enemy.name;
} else {
name = unknownData;
}
this.drawText(name, rect.x, rect.y, rect.width);
};
Window_EnemyBookIndex.prototype.processCancel = function () {
Window_Selectable.prototype.processCancel.call(this);
Window_EnemyBookIndex.lastTopRow = this.topRow();
Window_EnemyBookIndex.lastIndex = this.index();
};
function Window_EnemyBookStatus() {
this.initialize.apply(this, arguments);
}
Window_EnemyBookStatus.prototype = Object.create(Window_Base.prototype);
Window_EnemyBookStatus.prototype.constructor = Window_EnemyBookStatus;
Window_EnemyBookStatus.prototype.initialize = function (x, y, width, height) {
Window_Base.prototype.initialize.call(this, x, y, width, height);
this._enemy = null;
this._enemySprite = new Sprite();
this._enemySprite.anchor.x = 0.5;
this._enemySprite.anchor.y = 0.5;
this._enemySprite.x = width / 2 - 20;
this._enemySprite.y = height / 2;
this.addChildToBack(this._enemySprite);
this.refresh();
};
Window_EnemyBookStatus.prototype.setEnemy = function (enemy) {
if (this._enemy !== enemy) {
this._enemy = enemy;
this.refresh();
}
};
Window_EnemyBookStatus.prototype.update = function () {
Window_Base.prototype.update.call(this);
if (this._enemySprite.bitmap) {
var bitmapHeight = this._enemySprite.bitmap.height;
var contentsHeight = this.contents.height;
var scale = 1;
if (bitmapHeight > contentsHeight) {
scale = contentsHeight / bitmapHeight;
}
this._enemySprite.scale.x = scale;
this._enemySprite.scale.y = scale;
}
};
Window_EnemyBookStatus.prototype.refresh = function () {
var enemy = this._enemy;
var x = 0;
var y = 0;
var lineHeight = this.lineHeight();
this.contents.clear();
if (!enemy || !$gameSystem.isInEnemyBook(enemy)) {
this._enemySprite.bitmap = null;
return;
}
var name = enemy.battlerName;
var hue = enemy.battlerHue;
var bitmap;
if ($gameSystem.isSideView()) {
bitmap = ImageManager.loadSvEnemy(name, hue);
} else {
bitmap = ImageManager.loadEnemy(name, hue);
}
this._enemySprite.bitmap = bitmap;
this.resetTextColor();
this.drawText(enemy.name, x, y);
x = this.textPadding();
y = lineHeight + this.textPadding();
for (var i = 0; i < 8; i++) {
this.changeTextColor(this.systemColor());
this.drawText(TextManager.param(i), x, y, 160);
this.resetTextColor();
this.drawText(enemy.params[i], x + 160, y, 60, "right");
y += lineHeight;
}
var rewardsWidth = 280;
x = this.contents.width - rewardsWidth;
y = lineHeight + this.textPadding();
this.resetTextColor();
this.drawText(enemy.exp, x, y);
x += this.textWidth(enemy.exp) + 6;
this.changeTextColor(this.systemColor());
this.drawText(TextManager.expA, x, y);
x += this.textWidth(TextManager.expA + " ");
this.resetTextColor();
this.drawText(enemy.gold, x, y);
x += this.textWidth(enemy.gold) + 6;
this.changeTextColor(this.systemColor());
this.drawText(TextManager.currencyUnit, x, y);
x = this.contents.width - rewardsWidth;
y += lineHeight;
for (var j = 0; j < enemy.dropItems.length; j++) {
var di = enemy.dropItems[j];
if (di.kind > 0) {
var item = Game_Enemy.prototype.itemObject(di.kind, di.dataId);
this.drawItemName(item, x, y, rewardsWidth);
y += lineHeight;
}
}
var descWidth = 480;
x = this.contents.width - descWidth;
y = this.textPadding() + lineHeight * 7;
this.drawTextEx(enemy.meta.desc1, x, y + lineHeight * 0, descWidth);
this.drawTextEx(enemy.meta.desc2, x, y + lineHeight * 1, descWidth);
};
})();
//=============================================================================
// EnemyBook.js
//=============================================================================
/*:
* @plugindesc Displays detailed statuses of enemies.
* @author Yoji Ojima
*
* @param Unknown Data
* @desc The index name for an unknown enemy.
* @default ??????
*
* @help
*
* Plugin Command:
* EnemyBook open # Open the enemy book screen
* EnemyBook add 3 # Add enemy #3 to the enemy book
* EnemyBook remove 4 # Remove enemy #4 from the enemy book
* EnemyBook complete # Complete the enemy book
* EnemyBook clear # Clear the enemy book
*
* Enemy Note:
* <desc1:foobar> # Description text in the enemy book, line 1
* <desc2:blahblah> # Description text in the enemy book, line 2
* <book:no> # This enemy does not appear in the enemy book
*/
/*:ja
* @plugindesc モンスター図鑑です敵キャラの詳細なステータスを表示します
* @author Yoji Ojima
*
* @param Unknown Data
* @desc 未確認の敵キャラの索引名です
* @default
*
* @help
*
* プラグインコマンド:
* EnemyBook open # 図鑑画面を開く
* EnemyBook add 3 # 敵キャラ3番を図鑑に追加
* EnemyBook remove 4 # 敵キャラ4番を図鑑から削除
* EnemyBook complete # 図鑑を完成させる
* EnemyBook clear # 図鑑をクリアする
*
* 敵キャラのメモ:
* <desc1:なんとか> # 説明1行目
* <desc2:かんとか> # 説明2行目
* <book:no> # 図鑑に載せない場合
*/
(function () {
var parameters = PluginManager.parameters("EnemyBook");
var unknownData = String(parameters["Unknown Data"] || "??????");
var _Game_Interpreter_pluginCommand =
Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function (command, args) {
_Game_Interpreter_pluginCommand.call(this, command, args);
if (command === "EnemyBook") {
switch (args[0]) {
case "open":
SceneManager.push(Scene_EnemyBook);
break;
case "add":
$gameSystem.addToEnemyBook(Number(args[1]));
break;
case "remove":
$gameSystem.removeFromEnemyBook(Number(args[1]));
break;
case "complete":
$gameSystem.completeEnemyBook();
break;
case "clear":
$gameSystem.clearEnemyBook();
break;
}
}
};
Game_System.prototype.addToEnemyBook = function (enemyId) {
if (!this._enemyBookFlags) {
this.clearEnemyBook();
}
this._enemyBookFlags[enemyId] = true;
};
Game_System.prototype.removeFromEnemyBook = function (enemyId) {
if (this._enemyBookFlags) {
this._enemyBookFlags[enemyId] = false;
}
};
Game_System.prototype.completeEnemyBook = function () {
this.clearEnemyBook();
for (var i = 1; i < $dataEnemies.length; i++) {
this._enemyBookFlags[i] = true;
}
};
Game_System.prototype.clearEnemyBook = function () {
this._enemyBookFlags = [];
};
Game_System.prototype.isInEnemyBook = function (enemy) {
if (this._enemyBookFlags && enemy) {
return !!this._enemyBookFlags[enemy.id];
} else {
return false;
}
};
var _Game_Troop_setup = Game_Troop.prototype.setup;
Game_Troop.prototype.setup = function (troopId) {
_Game_Troop_setup.call(this, troopId);
this.members().forEach(function (enemy) {
if (enemy.isAppeared()) {
$gameSystem.addToEnemyBook(enemy.enemyId());
}
}, this);
};
var _Game_Enemy_appear = Game_Enemy.prototype.appear;
Game_Enemy.prototype.appear = function () {
_Game_Enemy_appear.call(this);
$gameSystem.addToEnemyBook(this._enemyId);
};
var _Game_Enemy_transform = Game_Enemy.prototype.transform;
Game_Enemy.prototype.transform = function (enemyId) {
_Game_Enemy_transform.call(this, enemyId);
$gameSystem.addToEnemyBook(enemyId);
};
function Scene_EnemyBook() {
this.initialize.apply(this, arguments);
}
Scene_EnemyBook.prototype = Object.create(Scene_MenuBase.prototype);
Scene_EnemyBook.prototype.constructor = Scene_EnemyBook;
Scene_EnemyBook.prototype.initialize = function () {
Scene_MenuBase.prototype.initialize.call(this);
};
Scene_EnemyBook.prototype.create = function () {
Scene_MenuBase.prototype.create.call(this);
this._indexWindow = new Window_EnemyBookIndex(0, 0);
this._indexWindow.setHandler("cancel", this.popScene.bind(this));
var wy = this._indexWindow.height;
var ww = Graphics.boxWidth;
var wh = Graphics.boxHeight - wy;
this._statusWindow = new Window_EnemyBookStatus(0, wy, ww, wh);
this.addWindow(this._indexWindow);
this.addWindow(this._statusWindow);
this._indexWindow.setStatusWindow(this._statusWindow);
};
function Window_EnemyBookIndex() {
this.initialize.apply(this, arguments);
}
Window_EnemyBookIndex.prototype = Object.create(Window_Selectable.prototype);
Window_EnemyBookIndex.prototype.constructor = Window_EnemyBookIndex;
Window_EnemyBookIndex.lastTopRow = 0;
Window_EnemyBookIndex.lastIndex = 0;
Window_EnemyBookIndex.prototype.initialize = function (x, y) {
var width = Graphics.boxWidth;
var height = this.fittingHeight(6);
Window_Selectable.prototype.initialize.call(this, x, y, width, height);
this.refresh();
this.setTopRow(Window_EnemyBookIndex.lastTopRow);
this.select(Window_EnemyBookIndex.lastIndex);
this.activate();
};
Window_EnemyBookIndex.prototype.maxCols = function () {
return 3;
};
Window_EnemyBookIndex.prototype.maxItems = function () {
return this._list ? this._list.length : 0;
};
Window_EnemyBookIndex.prototype.setStatusWindow = function (statusWindow) {
this._statusWindow = statusWindow;
this.updateStatus();
};
Window_EnemyBookIndex.prototype.update = function () {
Window_Selectable.prototype.update.call(this);
this.updateStatus();
};
Window_EnemyBookIndex.prototype.updateStatus = function () {
if (this._statusWindow) {
var enemy = this._list[this.index()];
this._statusWindow.setEnemy(enemy);
}
};
Window_EnemyBookIndex.prototype.refresh = function () {
this._list = [];
for (var i = 1; i < $dataEnemies.length; i++) {
var enemy = $dataEnemies[i];
if (enemy.name && enemy.meta.book !== "no") {
this._list.push(enemy);
}
}
this.createContents();
this.drawAllItems();
};
Window_EnemyBookIndex.prototype.drawItem = function (index) {
var enemy = this._list[index];
var rect = this.itemRectForText(index);
var name;
if ($gameSystem.isInEnemyBook(enemy)) {
name = enemy.name;
} else {
name = unknownData;
}
this.drawText(name, rect.x, rect.y, rect.width);
};
Window_EnemyBookIndex.prototype.processCancel = function () {
Window_Selectable.prototype.processCancel.call(this);
Window_EnemyBookIndex.lastTopRow = this.topRow();
Window_EnemyBookIndex.lastIndex = this.index();
};
function Window_EnemyBookStatus() {
this.initialize.apply(this, arguments);
}
Window_EnemyBookStatus.prototype = Object.create(Window_Base.prototype);
Window_EnemyBookStatus.prototype.constructor = Window_EnemyBookStatus;
Window_EnemyBookStatus.prototype.initialize = function (x, y, width, height) {
Window_Base.prototype.initialize.call(this, x, y, width, height);
this._enemy = null;
this._enemySprite = new Sprite();
this._enemySprite.anchor.x = 0.5;
this._enemySprite.anchor.y = 0.5;
this._enemySprite.x = width / 2 - 20;
this._enemySprite.y = height / 2;
this.addChildToBack(this._enemySprite);
this.refresh();
};
Window_EnemyBookStatus.prototype.setEnemy = function (enemy) {
if (this._enemy !== enemy) {
this._enemy = enemy;
this.refresh();
}
};
Window_EnemyBookStatus.prototype.update = function () {
Window_Base.prototype.update.call(this);
if (this._enemySprite.bitmap) {
var bitmapHeight = this._enemySprite.bitmap.height;
var contentsHeight = this.contents.height;
var scale = 1;
if (bitmapHeight > contentsHeight) {
scale = contentsHeight / bitmapHeight;
}
this._enemySprite.scale.x = scale;
this._enemySprite.scale.y = scale;
}
};
Window_EnemyBookStatus.prototype.refresh = function () {
var enemy = this._enemy;
var x = 0;
var y = 0;
var lineHeight = this.lineHeight();
this.contents.clear();
if (!enemy || !$gameSystem.isInEnemyBook(enemy)) {
this._enemySprite.bitmap = null;
return;
}
var name = enemy.battlerName;
var hue = enemy.battlerHue;
var bitmap;
if ($gameSystem.isSideView()) {
bitmap = ImageManager.loadSvEnemy(name, hue);
} else {
bitmap = ImageManager.loadEnemy(name, hue);
}
this._enemySprite.bitmap = bitmap;
this.resetTextColor();
this.drawText(enemy.name, x, y);
x = this.textPadding();
y = lineHeight + this.textPadding();
for (var i = 0; i < 8; i++) {
this.changeTextColor(this.systemColor());
this.drawText(TextManager.param(i), x, y, 160);
this.resetTextColor();
this.drawText(enemy.params[i], x + 160, y, 60, "right");
y += lineHeight;
}
var rewardsWidth = 280;
x = this.contents.width - rewardsWidth;
y = lineHeight + this.textPadding();
this.resetTextColor();
this.drawText(enemy.exp, x, y);
x += this.textWidth(enemy.exp) + 6;
this.changeTextColor(this.systemColor());
this.drawText(TextManager.expA, x, y);
x += this.textWidth(TextManager.expA + " ");
this.resetTextColor();
this.drawText(enemy.gold, x, y);
x += this.textWidth(enemy.gold) + 6;
this.changeTextColor(this.systemColor());
this.drawText(TextManager.currencyUnit, x, y);
x = this.contents.width - rewardsWidth;
y += lineHeight;
for (var j = 0; j < enemy.dropItems.length; j++) {
var di = enemy.dropItems[j];
if (di.kind > 0) {
var item = Game_Enemy.prototype.itemObject(di.kind, di.dataId);
this.drawItemName(item, x, y, rewardsWidth);
y += lineHeight;
}
}
var descWidth = 480;
x = this.contents.width - descWidth;
y = this.textPadding() + lineHeight * 7;
this.drawTextEx(enemy.meta.desc1, x, y + lineHeight * 0, descWidth);
this.drawTextEx(enemy.meta.desc2, x, y + lineHeight * 1, descWidth);
};
})();

View file

@ -1,36 +1,36 @@
//=============================================================================
// Escape100.js
//=============================================================================
/*:
* @plugindesc 逃げる成功率を100%にする
* @author みこと
*
* @param escapeSwitche
* @desc 逃げる成功率を100%にするスイッチの番号
* @default 10
*
* @help 指定のスイッチがONになっている間戦闘コマンド逃げるを必ず成功させます
* ただしバトルの処理で逃走可能にチェックが入っていない場合は逃げられません
*
* このプラグインにはプラグインコマンドはありません
*/
(function () {
var parameters = PluginManager.parameters("Escape100");
BattleManager.processEscape = function () {
$gameParty.performEscape();
SoundManager.playEscape();
var success = this._preemptive ? true : Math.random() < this._escapeRatio;
if (success || $gameSwitches.value(parameters["escapeSwitche"])) {
this.displayEscapeSuccessMessage();
this._escaped = true;
this.processAbort();
} else {
this.displayEscapeFailureMessage();
this._escapeRatio += 0.1;
$gameParty.clearActions();
this.startTurn();
}
return success;
};
})();
//=============================================================================
// Escape100.js
//=============================================================================
/*:
* @plugindesc 逃げる成功率を100%にする
* @author みこと
*
* @param escapeSwitche
* @desc 逃げる成功率を100%にするスイッチの番号
* @default 10
*
* @help 指定のスイッチがONになっている間戦闘コマンド逃げるを必ず成功させます
* ただしバトルの処理で逃走可能にチェックが入っていない場合は逃げられません
*
* このプラグインにはプラグインコマンドはありません
*/
(function () {
var parameters = PluginManager.parameters("Escape100");
BattleManager.processEscape = function () {
$gameParty.performEscape();
SoundManager.playEscape();
var success = this._preemptive ? true : Math.random() < this._escapeRatio;
if (success || $gameSwitches.value(parameters["escapeSwitche"])) {
this.displayEscapeSuccessMessage();
this._escaped = true;
this.processAbort();
} else {
this.displayEscapeFailureMessage();
this._escapeRatio += 0.1;
$gameParty.clearActions();
this.startTurn();
}
return success;
};
})();

View file

@ -1,19 +1,19 @@
/*:ja
* @plugindesc 放置していると画面がフリーズするのを修正
* @author kido
*
* @help
* このコアスクリプトの修正を取り込みます
* https://github.com/rpgtkoolmv/corescript/pull/191
*
*/
(function () {
var _render = Graphics.render;
Graphics.render = function (stage) {
if (this._skipCount < 0) {
this._skipCount = 0;
}
_render.call(this, stage);
};
})();
/*:ja
* @plugindesc 放置していると画面がフリーズするのを修正
* @author kido
*
* @help
* このコアスクリプトの修正を取り込みます
* https://github.com/rpgtkoolmv/corescript/pull/191
*
*/
(function () {
var _render = Graphics.render;
Graphics.render = function (stage) {
if (this._skipCount < 0) {
this._skipCount = 0;
}
_render.call(this, stage);
};
})();

View file

@ -1,381 +1,381 @@
//=============================================================================
// ItemBook.js
//=============================================================================
/*:
* @plugindesc Displays detailed statuses of items.
* @author Yoji Ojima
*
* @param Unknown Data
* @desc The index name for an unknown item.
* @default ??????
*
* @param Price Text
* @desc The text for "Price".
* @default Price
*
* @param Equip Text
* @desc The text for "Equip".
* @default Equip
*
* @param Type Text
* @desc The text for "Type".
* @default Type
*
* @help
*
* Plugin Command:
* ItemBook open # Open the item book screen
* ItemBook add weapon 3 # Add weapon #3 to the item book
* ItemBook add armor 4 # Add armor #4 to the item book
* ItemBook remove armor 5 # Remove armor #5 from the item book
* ItemBook remove item 6 # Remove item #6 from the item book
* ItemBook complete # Complete the item book
* ItemBook clear # Clear the item book
*
* Item (Weapon, Armor) Note:
* <book:no> # This item does not appear in the item book
*/
/*:ja
* @plugindesc アイテム図鑑ですアイテムの詳細なステータスを表示します
* @author Yoji Ojima
*
* @param Unknown Data
* @desc 未確認のアイテムの索引名です
* @default
*
* @param Price Text
* @desc 価格の文字列です
* @default 価格
*
* @param Equip Text
* @desc 装備の文字列です
* @default 装備
*
* @param Type Text
* @desc タイプの文字列です
* @default タイプ
*
* @help
*
* プラグインコマンド:
* ItemBook open # 図鑑画面を開く
* ItemBook add weapon 3 # 武器3番を図鑑に追加
* ItemBook add armor 4 # 防具4番を図鑑に追加
* ItemBook remove armor 5 # 防具5番を図鑑から削除
* ItemBook remove item 6 # アイテム6番を図鑑から削除
* ItemBook complete # 図鑑を完成させる
* ItemBook clear # 図鑑をクリアする
*
* アイテム武器防具のメモ:
* <book:no> # 図鑑に載せない場合
*/
(function () {
var parameters = PluginManager.parameters("ItemBook");
var unknownData = String(parameters["Unknown Data"] || "??????");
var priceText = String(parameters["Price Text"] || "Price");
var equipText = String(parameters["Equip Text"] || "Equip");
var typeText = String(parameters["Type Text"] || "Type");
var _Game_Interpreter_pluginCommand =
Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function (command, args) {
_Game_Interpreter_pluginCommand.call(this, command, args);
if (command === "ItemBook") {
switch (args[0]) {
case "open":
SceneManager.push(Scene_ItemBook);
break;
case "add":
$gameSystem.addToItemBook(args[1], Number(args[2]));
break;
case "remove":
$gameSystem.removeFromItemBook(args[1], Number(args[2]));
break;
case "complete":
$gameSystem.completeItemBook();
break;
case "clear":
$gameSystem.clearItemBook();
break;
}
}
};
Game_System.prototype.addToItemBook = function (type, dataId) {
if (!this._ItemBookFlags) {
this.clearItemBook();
}
var typeIndex = this.itemBookTypeToIndex(type);
if (typeIndex >= 0) {
this._ItemBookFlags[typeIndex][dataId] = true;
}
};
Game_System.prototype.removeFromItemBook = function (type, dataId) {
if (this._ItemBookFlags) {
var typeIndex = this.itemBookTypeToIndex(type);
if (typeIndex >= 0) {
this._ItemBookFlags[typeIndex][dataId] = false;
}
}
};
Game_System.prototype.itemBookTypeToIndex = function (type) {
switch (type) {
case "item":
return 0;
case "weapon":
return 1;
case "armor":
return 2;
default:
return -1;
}
};
Game_System.prototype.completeItemBook = function () {
var i;
this.clearItemBook();
for (i = 1; i < $dataItems.length; i++) {
this._ItemBookFlags[0][i] = true;
}
for (i = 1; i < $dataWeapons.length; i++) {
this._ItemBookFlags[1][i] = true;
}
for (i = 1; i < $dataArmors.length; i++) {
this._ItemBookFlags[2][i] = true;
}
};
Game_System.prototype.clearItemBook = function () {
this._ItemBookFlags = [[], [], []];
};
Game_System.prototype.isInItemBook = function (item) {
if (this._ItemBookFlags && item) {
var typeIndex = -1;
if (DataManager.isItem(item)) {
typeIndex = 0;
} else if (DataManager.isWeapon(item)) {
typeIndex = 1;
} else if (DataManager.isArmor(item)) {
typeIndex = 2;
}
if (typeIndex >= 0) {
return !!this._ItemBookFlags[typeIndex][item.id];
} else {
return false;
}
} else {
return false;
}
};
var _Game_Party_gainItem = Game_Party.prototype.gainItem;
Game_Party.prototype.gainItem = function (item, amount, includeEquip) {
_Game_Party_gainItem.call(this, item, amount, includeEquip);
if (item && amount > 0) {
var type;
if (DataManager.isItem(item)) {
type = "item";
} else if (DataManager.isWeapon(item)) {
type = "weapon";
} else if (DataManager.isArmor(item)) {
type = "armor";
}
$gameSystem.addToItemBook(type, item.id);
}
};
function Scene_ItemBook() {
this.initialize.apply(this, arguments);
}
Scene_ItemBook.prototype = Object.create(Scene_MenuBase.prototype);
Scene_ItemBook.prototype.constructor = Scene_ItemBook;
Scene_ItemBook.prototype.initialize = function () {
Scene_MenuBase.prototype.initialize.call(this);
};
Scene_ItemBook.prototype.create = function () {
Scene_MenuBase.prototype.create.call(this);
this._indexWindow = new Window_ItemBookIndex(0, 0);
this._indexWindow.setHandler("cancel", this.popScene.bind(this));
var wy = this._indexWindow.height;
var ww = Graphics.boxWidth;
var wh = Graphics.boxHeight - wy;
this._statusWindow = new Window_ItemBookStatus(0, wy, ww, wh);
this.addWindow(this._indexWindow);
this.addWindow(this._statusWindow);
this._indexWindow.setStatusWindow(this._statusWindow);
};
function Window_ItemBookIndex() {
this.initialize.apply(this, arguments);
}
Window_ItemBookIndex.prototype = Object.create(Window_Selectable.prototype);
Window_ItemBookIndex.prototype.constructor = Window_ItemBookIndex;
Window_ItemBookIndex.lastTopRow = 0;
Window_ItemBookIndex.lastIndex = 0;
Window_ItemBookIndex.prototype.initialize = function (x, y) {
var width = Graphics.boxWidth;
var height = this.fittingHeight(6);
Window_Selectable.prototype.initialize.call(this, x, y, width, height);
this.refresh();
this.setTopRow(Window_ItemBookIndex.lastTopRow);
this.select(Window_ItemBookIndex.lastIndex);
this.activate();
};
Window_ItemBookIndex.prototype.maxCols = function () {
return 3;
};
Window_ItemBookIndex.prototype.maxItems = function () {
return this._list ? this._list.length : 0;
};
Window_ItemBookIndex.prototype.setStatusWindow = function (statusWindow) {
this._statusWindow = statusWindow;
this.updateStatus();
};
Window_ItemBookIndex.prototype.update = function () {
Window_Selectable.prototype.update.call(this);
this.updateStatus();
};
Window_ItemBookIndex.prototype.updateStatus = function () {
if (this._statusWindow) {
var item = this._list[this.index()];
this._statusWindow.setItem(item);
}
};
Window_ItemBookIndex.prototype.refresh = function () {
var i, item;
this._list = [];
for (i = 1; i < $dataItems.length; i++) {
item = $dataItems[i];
if (item.name && item.itypeId === 1 && item.meta.book !== "no") {
this._list.push(item);
}
}
for (i = 1; i < $dataWeapons.length; i++) {
item = $dataWeapons[i];
if (item.name && item.meta.book !== "no") {
this._list.push(item);
}
}
for (i = 1; i < $dataArmors.length; i++) {
item = $dataArmors[i];
if (item.name && item.meta.book !== "no") {
this._list.push(item);
}
}
this.createContents();
this.drawAllItems();
};
Window_ItemBookIndex.prototype.drawItem = function (index) {
var item = this._list[index];
var rect = this.itemRect(index);
var width = rect.width - this.textPadding();
if ($gameSystem.isInItemBook(item)) {
this.drawItemName(item, rect.x, rect.y, width);
} else {
var iw = Window_Base._iconWidth + 4;
this.drawText(unknownData, rect.x + iw, rect.y, width - iw);
}
};
Window_ItemBookIndex.prototype.processCancel = function () {
Window_Selectable.prototype.processCancel.call(this);
Window_ItemBookIndex.lastTopRow = this.topRow();
Window_ItemBookIndex.lastIndex = this.index();
};
function Window_ItemBookStatus() {
this.initialize.apply(this, arguments);
}
Window_ItemBookStatus.prototype = Object.create(Window_Base.prototype);
Window_ItemBookStatus.prototype.constructor = Window_ItemBookStatus;
Window_ItemBookStatus.prototype.initialize = function (x, y, width, height) {
Window_Base.prototype.initialize.call(this, x, y, width, height);
};
Window_ItemBookStatus.prototype.setItem = function (item) {
if (this._item !== item) {
this._item = item;
this.refresh();
}
};
Window_ItemBookStatus.prototype.refresh = function () {
var item = this._item;
var x = 0;
var y = 0;
var lineHeight = this.lineHeight();
this.contents.clear();
if (!item || !$gameSystem.isInItemBook(item)) {
return;
}
this.drawItemName(item, x, y);
x = this.textPadding();
y = lineHeight + this.textPadding();
var price = item.price > 0 ? item.price : "-";
this.changeTextColor(this.systemColor());
this.drawText(priceText, x, y, 120);
this.resetTextColor();
this.drawText(price, x + 120, y, 120, "right");
y += lineHeight;
if (DataManager.isWeapon(item) || DataManager.isArmor(item)) {
var etype = $dataSystem.equipTypes[item.etypeId];
this.changeTextColor(this.systemColor());
this.drawText(equipText, x, y, 120);
this.resetTextColor();
this.drawText(etype, x + 120, y, 120, "right");
y += lineHeight;
var type;
if (DataManager.isWeapon(item)) {
type = $dataSystem.weaponTypes[item.wtypeId];
} else {
type = $dataSystem.armorTypes[item.atypeId];
}
this.changeTextColor(this.systemColor());
this.drawText(typeText, x, y, 120);
this.resetTextColor();
this.drawText(type, x + 120, y, 120, "right");
x = this.textPadding() + 300;
y = lineHeight + this.textPadding();
for (var i = 2; i < 8; i++) {
this.changeTextColor(this.systemColor());
this.drawText(TextManager.param(i), x, y, 160);
this.resetTextColor();
this.drawText(item.params[i], x + 160, y, 60, "right");
y += lineHeight;
}
}
x = 0;
y = this.textPadding() * 2 + lineHeight * 7;
this.drawTextEx(item.description, x, y);
};
})();
//=============================================================================
// ItemBook.js
//=============================================================================
/*:
* @plugindesc Displays detailed statuses of items.
* @author Yoji Ojima
*
* @param Unknown Data
* @desc The index name for an unknown item.
* @default ??????
*
* @param Price Text
* @desc The text for "Price".
* @default Price
*
* @param Equip Text
* @desc The text for "Equip".
* @default Equip
*
* @param Type Text
* @desc The text for "Type".
* @default Type
*
* @help
*
* Plugin Command:
* ItemBook open # Open the item book screen
* ItemBook add weapon 3 # Add weapon #3 to the item book
* ItemBook add armor 4 # Add armor #4 to the item book
* ItemBook remove armor 5 # Remove armor #5 from the item book
* ItemBook remove item 6 # Remove item #6 from the item book
* ItemBook complete # Complete the item book
* ItemBook clear # Clear the item book
*
* Item (Weapon, Armor) Note:
* <book:no> # This item does not appear in the item book
*/
/*:ja
* @plugindesc アイテム図鑑ですアイテムの詳細なステータスを表示します
* @author Yoji Ojima
*
* @param Unknown Data
* @desc 未確認のアイテムの索引名です
* @default
*
* @param Price Text
* @desc 価格の文字列です
* @default 価格
*
* @param Equip Text
* @desc 装備の文字列です
* @default 装備
*
* @param Type Text
* @desc タイプの文字列です
* @default タイプ
*
* @help
*
* プラグインコマンド:
* ItemBook open # 図鑑画面を開く
* ItemBook add weapon 3 # 武器3番を図鑑に追加
* ItemBook add armor 4 # 防具4番を図鑑に追加
* ItemBook remove armor 5 # 防具5番を図鑑から削除
* ItemBook remove item 6 # アイテム6番を図鑑から削除
* ItemBook complete # 図鑑を完成させる
* ItemBook clear # 図鑑をクリアする
*
* アイテム武器防具のメモ:
* <book:no> # 図鑑に載せない場合
*/
(function () {
var parameters = PluginManager.parameters("ItemBook");
var unknownData = String(parameters["Unknown Data"] || "??????");
var priceText = String(parameters["Price Text"] || "Price");
var equipText = String(parameters["Equip Text"] || "Equip");
var typeText = String(parameters["Type Text"] || "Type");
var _Game_Interpreter_pluginCommand =
Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function (command, args) {
_Game_Interpreter_pluginCommand.call(this, command, args);
if (command === "ItemBook") {
switch (args[0]) {
case "open":
SceneManager.push(Scene_ItemBook);
break;
case "add":
$gameSystem.addToItemBook(args[1], Number(args[2]));
break;
case "remove":
$gameSystem.removeFromItemBook(args[1], Number(args[2]));
break;
case "complete":
$gameSystem.completeItemBook();
break;
case "clear":
$gameSystem.clearItemBook();
break;
}
}
};
Game_System.prototype.addToItemBook = function (type, dataId) {
if (!this._ItemBookFlags) {
this.clearItemBook();
}
var typeIndex = this.itemBookTypeToIndex(type);
if (typeIndex >= 0) {
this._ItemBookFlags[typeIndex][dataId] = true;
}
};
Game_System.prototype.removeFromItemBook = function (type, dataId) {
if (this._ItemBookFlags) {
var typeIndex = this.itemBookTypeToIndex(type);
if (typeIndex >= 0) {
this._ItemBookFlags[typeIndex][dataId] = false;
}
}
};
Game_System.prototype.itemBookTypeToIndex = function (type) {
switch (type) {
case "item":
return 0;
case "weapon":
return 1;
case "armor":
return 2;
default:
return -1;
}
};
Game_System.prototype.completeItemBook = function () {
var i;
this.clearItemBook();
for (i = 1; i < $dataItems.length; i++) {
this._ItemBookFlags[0][i] = true;
}
for (i = 1; i < $dataWeapons.length; i++) {
this._ItemBookFlags[1][i] = true;
}
for (i = 1; i < $dataArmors.length; i++) {
this._ItemBookFlags[2][i] = true;
}
};
Game_System.prototype.clearItemBook = function () {
this._ItemBookFlags = [[], [], []];
};
Game_System.prototype.isInItemBook = function (item) {
if (this._ItemBookFlags && item) {
var typeIndex = -1;
if (DataManager.isItem(item)) {
typeIndex = 0;
} else if (DataManager.isWeapon(item)) {
typeIndex = 1;
} else if (DataManager.isArmor(item)) {
typeIndex = 2;
}
if (typeIndex >= 0) {
return !!this._ItemBookFlags[typeIndex][item.id];
} else {
return false;
}
} else {
return false;
}
};
var _Game_Party_gainItem = Game_Party.prototype.gainItem;
Game_Party.prototype.gainItem = function (item, amount, includeEquip) {
_Game_Party_gainItem.call(this, item, amount, includeEquip);
if (item && amount > 0) {
var type;
if (DataManager.isItem(item)) {
type = "item";
} else if (DataManager.isWeapon(item)) {
type = "weapon";
} else if (DataManager.isArmor(item)) {
type = "armor";
}
$gameSystem.addToItemBook(type, item.id);
}
};
function Scene_ItemBook() {
this.initialize.apply(this, arguments);
}
Scene_ItemBook.prototype = Object.create(Scene_MenuBase.prototype);
Scene_ItemBook.prototype.constructor = Scene_ItemBook;
Scene_ItemBook.prototype.initialize = function () {
Scene_MenuBase.prototype.initialize.call(this);
};
Scene_ItemBook.prototype.create = function () {
Scene_MenuBase.prototype.create.call(this);
this._indexWindow = new Window_ItemBookIndex(0, 0);
this._indexWindow.setHandler("cancel", this.popScene.bind(this));
var wy = this._indexWindow.height;
var ww = Graphics.boxWidth;
var wh = Graphics.boxHeight - wy;
this._statusWindow = new Window_ItemBookStatus(0, wy, ww, wh);
this.addWindow(this._indexWindow);
this.addWindow(this._statusWindow);
this._indexWindow.setStatusWindow(this._statusWindow);
};
function Window_ItemBookIndex() {
this.initialize.apply(this, arguments);
}
Window_ItemBookIndex.prototype = Object.create(Window_Selectable.prototype);
Window_ItemBookIndex.prototype.constructor = Window_ItemBookIndex;
Window_ItemBookIndex.lastTopRow = 0;
Window_ItemBookIndex.lastIndex = 0;
Window_ItemBookIndex.prototype.initialize = function (x, y) {
var width = Graphics.boxWidth;
var height = this.fittingHeight(6);
Window_Selectable.prototype.initialize.call(this, x, y, width, height);
this.refresh();
this.setTopRow(Window_ItemBookIndex.lastTopRow);
this.select(Window_ItemBookIndex.lastIndex);
this.activate();
};
Window_ItemBookIndex.prototype.maxCols = function () {
return 3;
};
Window_ItemBookIndex.prototype.maxItems = function () {
return this._list ? this._list.length : 0;
};
Window_ItemBookIndex.prototype.setStatusWindow = function (statusWindow) {
this._statusWindow = statusWindow;
this.updateStatus();
};
Window_ItemBookIndex.prototype.update = function () {
Window_Selectable.prototype.update.call(this);
this.updateStatus();
};
Window_ItemBookIndex.prototype.updateStatus = function () {
if (this._statusWindow) {
var item = this._list[this.index()];
this._statusWindow.setItem(item);
}
};
Window_ItemBookIndex.prototype.refresh = function () {
var i, item;
this._list = [];
for (i = 1; i < $dataItems.length; i++) {
item = $dataItems[i];
if (item.name && item.itypeId === 1 && item.meta.book !== "no") {
this._list.push(item);
}
}
for (i = 1; i < $dataWeapons.length; i++) {
item = $dataWeapons[i];
if (item.name && item.meta.book !== "no") {
this._list.push(item);
}
}
for (i = 1; i < $dataArmors.length; i++) {
item = $dataArmors[i];
if (item.name && item.meta.book !== "no") {
this._list.push(item);
}
}
this.createContents();
this.drawAllItems();
};
Window_ItemBookIndex.prototype.drawItem = function (index) {
var item = this._list[index];
var rect = this.itemRect(index);
var width = rect.width - this.textPadding();
if ($gameSystem.isInItemBook(item)) {
this.drawItemName(item, rect.x, rect.y, width);
} else {
var iw = Window_Base._iconWidth + 4;
this.drawText(unknownData, rect.x + iw, rect.y, width - iw);
}
};
Window_ItemBookIndex.prototype.processCancel = function () {
Window_Selectable.prototype.processCancel.call(this);
Window_ItemBookIndex.lastTopRow = this.topRow();
Window_ItemBookIndex.lastIndex = this.index();
};
function Window_ItemBookStatus() {
this.initialize.apply(this, arguments);
}
Window_ItemBookStatus.prototype = Object.create(Window_Base.prototype);
Window_ItemBookStatus.prototype.constructor = Window_ItemBookStatus;
Window_ItemBookStatus.prototype.initialize = function (x, y, width, height) {
Window_Base.prototype.initialize.call(this, x, y, width, height);
};
Window_ItemBookStatus.prototype.setItem = function (item) {
if (this._item !== item) {
this._item = item;
this.refresh();
}
};
Window_ItemBookStatus.prototype.refresh = function () {
var item = this._item;
var x = 0;
var y = 0;
var lineHeight = this.lineHeight();
this.contents.clear();
if (!item || !$gameSystem.isInItemBook(item)) {
return;
}
this.drawItemName(item, x, y);
x = this.textPadding();
y = lineHeight + this.textPadding();
var price = item.price > 0 ? item.price : "-";
this.changeTextColor(this.systemColor());
this.drawText(priceText, x, y, 120);
this.resetTextColor();
this.drawText(price, x + 120, y, 120, "right");
y += lineHeight;
if (DataManager.isWeapon(item) || DataManager.isArmor(item)) {
var etype = $dataSystem.equipTypes[item.etypeId];
this.changeTextColor(this.systemColor());
this.drawText(equipText, x, y, 120);
this.resetTextColor();
this.drawText(etype, x + 120, y, 120, "right");
y += lineHeight;
var type;
if (DataManager.isWeapon(item)) {
type = $dataSystem.weaponTypes[item.wtypeId];
} else {
type = $dataSystem.armorTypes[item.atypeId];
}
this.changeTextColor(this.systemColor());
this.drawText(typeText, x, y, 120);
this.resetTextColor();
this.drawText(type, x + 120, y, 120, "right");
x = this.textPadding() + 300;
y = lineHeight + this.textPadding();
for (var i = 2; i < 8; i++) {
this.changeTextColor(this.systemColor());
this.drawText(TextManager.param(i), x, y, 160);
this.resetTextColor();
this.drawText(item.params[i], x + 160, y, 60, "right");
y += lineHeight;
}
}
x = 0;
y = this.textPadding() * 2 + lineHeight * 7;
this.drawTextEx(item.description, x, y);
};
})();

View file

@ -1,425 +1,425 @@
//=============================================================================
// RPGツクールMV - LL_MenuScreenBaseMV.js v1.1.0
//-----------------------------------------------------------------------------
// ルルの教会 (Lulu's Church)
// https://nine-yusha.com/
//
// URL below for license details.
// https://nine-yusha.com/plugin/
//=============================================================================
/*:
* @target MV
* @plugindesc メニュー画面立ち絵設定の共通ベースプラグインです
* @author ルルの教会
* @url https://nine-yusha.com/plugin-menuscreen/
*
* @help LL_MenuScreenBaseMV.js
*
* メニュー画面立ち絵設定の共通ベースプラグインです
* このプラグインでアクター毎の立ち絵リストを定義します
*
* 下記のようにステートスイッチ変数条件で表示する立ち絵を複数定義できます
* スイッチ1がONかつ毒状態の立ち絵
* 変数1が10以上かつ毒状態の立ち絵
* スイッチ1がONの時の立ち絵
* 毒状態の立ち絵
* スイッチステート変数条件なしの通常立ち絵 (最低限必要)
*
* 残りHPで立ち絵を切り替える:
* まず残りHP100に設定した立ち絵リストを作成します
* 上記をコピーして残りHP50に変更し立ち絵リストを複製します
* これでHPが半分以下になった場合50に設定した立ち絵が呼ばれます
* 残りHP毎に複数立ち絵を定義することも可能です
*
* 画像ファイルの表示優先順:
* 1. ステートIDスイッチID変数条件全てに一致するもの
* 2. ステートIDスイッチID両方に一致するもの
* 3. ステートID変数条件両方に一致するもの
* 4. ステートIDのみ一致するもの
* 5. スイッチID変数条件両方に一致するもの
* 6. スイッチIDのみ一致するもの
* 7. 変数条件のみ一致するもの
* 8. 条件なし (ステートIDスイッチID変数条件全て設定なし)
* (上記の中で残りHPが最も低いものが優先して表示されます)
*
* 戦闘中立ち絵プラグイン連携:
* LL_StandingPictureBattleMV が導入されている場合は
* 戦闘中の立ち絵リストとそのまま連携させることも可能です
*
* プラグインコマンドはありません
*
* 利用規約:
* 著作権表記は必要ございません
* 利用するにあたり報告の必要は特にございません
* 商用非商用問いません
* R18作品にも使用制限はありません
* ゲームに合わせて自由に改変していただいて問題ございません
* プラグイン素材としての再配布改変後含むは禁止させていただきます
*
* 作者: ルルの教会
* 作成日: 2022/3/7
*
* @param menuPictures
* @text 立ち絵リスト
* @desc メニュー画面に表示する立ち絵を定義します
* 特定ステート時スイッチON時の立ち絵を複数定義できます
* @default []
* @type struct<menuPictures>[]
*
* @param onSpbPlugin
* @text 戦闘中立ち絵プラグイン連携
* @desc この項目は使用しません
*
* @param onSpbPluginEnable
* @text 立ち絵リストを連携
* @desc LL_StandingPictureBattle の立ち絵リストと連携させます
* ONにするとこのプラグインの立ち絵リスト設定は無視されます
* @default false
* @type boolean
* @parent onSpbPlugin
*/
/*~struct~menuPictures:
*
* @param actorId
* @text アクターID
* @desc アクターIDです立ち絵を定義するアクターを選択してください
* @type actor
*
* @param stateId
* @text ステートID
* @desc 特定ステートで立ち絵を変更したい場合に使用します
* 通常時の立ち絵は空白(なし)で設定ください
* @type state
*
* @param switchId
* @text スイッチID
* @desc スイッチONで立ち絵を変更したい場合に使用します
* 通常時の立ち絵は空白(なし)で設定ください
* @type switch
*
* @param variableCase
* @text 変数条件
* @desc 変数条件で立ち絵を変更したい場合に使用します
* @default
* @type struct<variableCase>
*
* @param hpPercentage
* @text 残りHP
* @desc 残りHPで立ち絵を変更したい場合に使用します
* 通常時の立ち絵は100で設定してください
* @default 100
* @min 0
* @max 100
* @type number
*
* @param imageName
* @text 画像ファイル名
* @desc 立ち絵として表示する画像ファイルを選択してください
* @dir img/pictures
* @type file
* @require 1
*
* @param x
* @text X座標
* @desc 立ち絵の表示位置(X)の調整値です
* で右へで左へ調整します (初期値: 0)
* @default 0
* @min -9999
* @max 9999
* @type number
*
* @param y
* @text Y座標
* @desc 立ち絵の表示位置(Y)の調整値です
* で下へで上へ調整します (初期値: 0)
* @default 0
* @min -9999
* @max 9999
* @type number
*
* @param scaleX
* @text X拡大率
* @desc 立ち絵の拡大率(X)です
* @default 100
* @min -2000
* @max 2000
* @type number
*
* @param scaleY
* @text Y拡大率
* @desc 立ち絵の拡大率(Y)です
* @default 100
* @min -2000
* @max 2000
* @type number
*/
/*~struct~variableCase:
*
* @param id
* @text 変数ID
* @desc 条件に使用する変数IDです
* @type variable
*
* @param type
* @text 変数条件
* @desc 変数IDとの比較条件です
* @default equal
* @type select
* @option 一致する
* @value equal
* @option 以上
* @value higher
* @option 以下
* @value lower
*
* @param value
* @text 変数比較数値
* @desc 変数IDと比較する数値です
* @default 0
* @min -99999999
* @max 99999999
* @type number
*/
(function () {
"use strict";
var pluginName = "LL_MenuScreenBaseMV";
var parameters = PluginManager.parameters(pluginName);
var paramJsonParse = function (key, value) {
try {
return JSON.parse(value);
} catch (e) {
return value;
}
};
var menuPictures = String(parameters["menuPictures"] || "[]");
var onSpbPluginEnable = eval(parameters["onSpbPluginEnable"] || "true");
var menuPictureLists = JSON.parse(
JSON.stringify(menuPictures, paramJsonParse)
);
//-----------------------------------------------------------------------------
// 戦闘中立ち絵プラグインの立ち絵リストを取得
// On LL_StandingPictureBattle Plugin
//-----------------------------------------------------------------------------
var spbPluginName = "LL_StandingPictureBattleMV";
var spbParameters = PluginManager.parameters(spbPluginName);
var spbCommandPictures = String(spbParameters["sbCommandPictures"] || "[]");
var spbCommandPictureLists = JSON.parse(
JSON.stringify(spbCommandPictures, paramJsonParse)
);
//-----------------------------------------------------------------------------
// Ex Menu Screen Base Class
//
// メニュー画面立ち絵設定の独自クラスを追加定義します。
class ExMenuScreenBase {
//-----------------------------------------------------------------------------
// 画像ファイル名を取得
//-----------------------------------------------------------------------------
static getImageName(actorId) {
// 立ち絵リストを取得
var pictureLists = this.getPictureLists();
if (!pictureLists) return;
// アクターのステート情報を取得
var actorStates = [];
if (actorId) actorStates = $gameActors.actor(actorId)._states;
var specificPicture = null;
// アクターIDが一致する立ち絵を検索
pictureLists = pictureLists.filter(function (item) {
if (Number(item.actorId) == actorId) {
return true;
}
});
// ステートにかかっているか?
if (actorStates.length) {
// ステートID・スイッチID・変数IDが有効な立ち絵リストを検索
specificPicture = pictureLists.filter(function (item) {
if (item.variableCase) {
if (
actorStates.indexOf(Number(item.stateId)) !== -1 &&
$gameSwitches.value(Number(item.switchId)) &&
((String(item.variableCase.type) == "equal" &&
$gameVariables.value(Number(item.variableCase.id)) ==
Number(item.variableCase.value)) ||
(String(item.variableCase.type) == "higher" &&
$gameVariables.value(Number(item.variableCase.id)) >=
Number(item.variableCase.value)) ||
(String(item.variableCase.type) == "lower" &&
$gameVariables.value(Number(item.variableCase.id)) <=
Number(item.variableCase.value)))
) {
return true;
}
}
});
if (specificPicture.length)
return this.checkHpPercentage(actorId, specificPicture);
// ステートID・スイッチIDが有効な立ち絵リストを検索
specificPicture = pictureLists.filter(function (item) {
if (
actorStates.indexOf(Number(item.stateId)) !== -1 &&
$gameSwitches.value(Number(item.switchId)) &&
!item.variableCase
) {
return true;
}
});
if (specificPicture.length)
return this.checkHpPercentage(actorId, specificPicture);
// ステートID・変数IDが有効な立ち絵リストを検索
specificPicture = pictureLists.filter(function (item) {
if (item.variableCase) {
if (
actorStates.indexOf(Number(item.stateId)) !== -1 &&
(Number(item.switchId) === 0 || !item.switchId) &&
((String(item.variableCase.type) == "equal" &&
$gameVariables.value(Number(item.variableCase.id)) ==
Number(item.variableCase.value)) ||
(String(item.variableCase.type) == "higher" &&
$gameVariables.value(Number(item.variableCase.id)) >=
Number(item.variableCase.value)) ||
(String(item.variableCase.type) == "lower" &&
$gameVariables.value(Number(item.variableCase.id)) <=
Number(item.variableCase.value)))
) {
return true;
}
}
});
if (specificPicture.length)
return this.checkHpPercentage(actorId, specificPicture);
// ステートIDが有効な立ち絵リストを検索
specificPicture = pictureLists.filter(function (item) {
if (
actorStates.indexOf(Number(item.stateId)) !== -1 &&
(Number(item.switchId) === 0 || !item.switchId) &&
!item.variableCase
) {
return true;
}
});
if (specificPicture.length)
return this.checkHpPercentage(actorId, specificPicture);
}
// スイッチID・変数IDが有効な立ち絵リストを検索
specificPicture = pictureLists.filter(function (item) {
if (item.variableCase) {
if (
(Number(item.stateId) === 0 || !item.stateId) &&
$gameSwitches.value(Number(item.switchId)) &&
((String(item.variableCase.type) == "equal" &&
$gameVariables.value(Number(item.variableCase.id)) ==
Number(item.variableCase.value)) ||
(String(item.variableCase.type) == "higher" &&
$gameVariables.value(Number(item.variableCase.id)) >=
Number(item.variableCase.value)) ||
(String(item.variableCase.type) == "lower" &&
$gameVariables.value(Number(item.variableCase.id)) <=
Number(item.variableCase.value)))
) {
return true;
}
}
});
if (specificPicture.length)
return this.checkHpPercentage(actorId, specificPicture);
// スイッチIDが有効な立ち絵リストを検索
specificPicture = pictureLists.filter(function (item) {
if (
(Number(item.stateId) === 0 || !item.stateId) &&
$gameSwitches.value(Number(item.switchId)) &&
!item.variableCase
) {
return true;
}
});
if (specificPicture.length)
return this.checkHpPercentage(actorId, specificPicture);
// 変数IDが有効な立ち絵リストを検索
specificPicture = pictureLists.filter(function (item) {
if (item.variableCase) {
if (
(Number(item.stateId) === 0 || !item.stateId) &&
(Number(item.switchId) === 0 || !item.switchId) &&
((String(item.variableCase.type) == "equal" &&
$gameVariables.value(Number(item.variableCase.id)) ==
Number(item.variableCase.value)) ||
(String(item.variableCase.type) == "higher" &&
$gameVariables.value(Number(item.variableCase.id)) >=
Number(item.variableCase.value)) ||
(String(item.variableCase.type) == "lower" &&
$gameVariables.value(Number(item.variableCase.id)) <=
Number(item.variableCase.value)))
) {
return true;
}
}
});
if (specificPicture.length)
return this.checkHpPercentage(actorId, specificPicture);
// 上記で見つからなかった場合、通常の立ち絵を検索
var normalPicture = pictureLists.filter(function (item) {
if (
(Number(item.stateId) === 0 || !item.stateId) &&
(Number(item.switchId) === 0 || !item.switchId) &&
!item.variableCase
)
return true;
});
if (normalPicture.length)
return this.checkHpPercentage(actorId, normalPicture);
}
static checkHpPercentage(actorId, pictureLists) {
// アクターの残HPを取得
var hpRate = this.getHpRate(actorId);
// 最もHP%が低い立ち絵を適用する
var minHpRate = 100;
var result = null;
pictureLists.forEach(function (item) {
if (
hpRate <= Number(item.hpPercentage) &&
minHpRate >= Number(item.hpPercentage)
) {
result = item;
minHpRate = Number(item.hpPercentage);
} else if (!item.hpPercentage && minHpRate >= 100) {
// プラグインパラメータが更新されていない場合、便宜的に100として扱う
result = item;
minHpRate = Number(item.hpPercentage);
}
});
return result;
}
static getPictureLists() {
return onSpbPluginEnable ? spbCommandPictureLists : menuPictureLists;
}
static onSpbPluginEnable() {
return onSpbPluginEnable;
}
// アクターのHPレートを取得
static getHpRate(actorId) {
if (!$gameActors.actor(actorId)) return 0;
return $gameActors.actor(actorId).mhp > 0
? ($gameActors.actor(actorId).hp / $gameActors.actor(actorId).mhp) * 100
: 0;
}
}
window.ExMenuScreenBase = ExMenuScreenBase;
})();
//=============================================================================
// RPGツクールMV - LL_MenuScreenBaseMV.js v1.1.0
//-----------------------------------------------------------------------------
// ルルの教会 (Lulu's Church)
// https://nine-yusha.com/
//
// URL below for license details.
// https://nine-yusha.com/plugin/
//=============================================================================
/*:
* @target MV
* @plugindesc メニュー画面立ち絵設定の共通ベースプラグインです
* @author ルルの教会
* @url https://nine-yusha.com/plugin-menuscreen/
*
* @help LL_MenuScreenBaseMV.js
*
* メニュー画面立ち絵設定の共通ベースプラグインです
* このプラグインでアクター毎の立ち絵リストを定義します
*
* 下記のようにステートスイッチ変数条件で表示する立ち絵を複数定義できます
* スイッチ1がONかつ毒状態の立ち絵
* 変数1が10以上かつ毒状態の立ち絵
* スイッチ1がONの時の立ち絵
* 毒状態の立ち絵
* スイッチステート変数条件なしの通常立ち絵 (最低限必要)
*
* 残りHPで立ち絵を切り替える:
* まず残りHP100に設定した立ち絵リストを作成します
* 上記をコピーして残りHP50に変更し立ち絵リストを複製します
* これでHPが半分以下になった場合50に設定した立ち絵が呼ばれます
* 残りHP毎に複数立ち絵を定義することも可能です
*
* 画像ファイルの表示優先順:
* 1. ステートIDスイッチID変数条件全てに一致するもの
* 2. ステートIDスイッチID両方に一致するもの
* 3. ステートID変数条件両方に一致するもの
* 4. ステートIDのみ一致するもの
* 5. スイッチID変数条件両方に一致するもの
* 6. スイッチIDのみ一致するもの
* 7. 変数条件のみ一致するもの
* 8. 条件なし (ステートIDスイッチID変数条件全て設定なし)
* (上記の中で残りHPが最も低いものが優先して表示されます)
*
* 戦闘中立ち絵プラグイン連携:
* LL_StandingPictureBattleMV が導入されている場合は
* 戦闘中の立ち絵リストとそのまま連携させることも可能です
*
* プラグインコマンドはありません
*
* 利用規約:
* 著作権表記は必要ございません
* 利用するにあたり報告の必要は特にございません
* 商用非商用問いません
* R18作品にも使用制限はありません
* ゲームに合わせて自由に改変していただいて問題ございません
* プラグイン素材としての再配布改変後含むは禁止させていただきます
*
* 作者: ルルの教会
* 作成日: 2022/3/7
*
* @param menuPictures
* @text 立ち絵リスト
* @desc メニュー画面に表示する立ち絵を定義します
* 特定ステート時スイッチON時の立ち絵を複数定義できます
* @default []
* @type struct<menuPictures>[]
*
* @param onSpbPlugin
* @text 戦闘中立ち絵プラグイン連携
* @desc この項目は使用しません
*
* @param onSpbPluginEnable
* @text 立ち絵リストを連携
* @desc LL_StandingPictureBattle の立ち絵リストと連携させます
* ONにするとこのプラグインの立ち絵リスト設定は無視されます
* @default false
* @type boolean
* @parent onSpbPlugin
*/
/*~struct~menuPictures:
*
* @param actorId
* @text アクターID
* @desc アクターIDです立ち絵を定義するアクターを選択してください
* @type actor
*
* @param stateId
* @text ステートID
* @desc 特定ステートで立ち絵を変更したい場合に使用します
* 通常時の立ち絵は空白(なし)で設定ください
* @type state
*
* @param switchId
* @text スイッチID
* @desc スイッチONで立ち絵を変更したい場合に使用します
* 通常時の立ち絵は空白(なし)で設定ください
* @type switch
*
* @param variableCase
* @text 変数条件
* @desc 変数条件で立ち絵を変更したい場合に使用します
* @default
* @type struct<variableCase>
*
* @param hpPercentage
* @text 残りHP
* @desc 残りHPで立ち絵を変更したい場合に使用します
* 通常時の立ち絵は100で設定してください
* @default 100
* @min 0
* @max 100
* @type number
*
* @param imageName
* @text 画像ファイル名
* @desc 立ち絵として表示する画像ファイルを選択してください
* @dir img/pictures
* @type file
* @require 1
*
* @param x
* @text X座標
* @desc 立ち絵の表示位置(X)の調整値です
* で右へで左へ調整します (初期値: 0)
* @default 0
* @min -9999
* @max 9999
* @type number
*
* @param y
* @text Y座標
* @desc 立ち絵の表示位置(Y)の調整値です
* で下へで上へ調整します (初期値: 0)
* @default 0
* @min -9999
* @max 9999
* @type number
*
* @param scaleX
* @text X拡大率
* @desc 立ち絵の拡大率(X)です
* @default 100
* @min -2000
* @max 2000
* @type number
*
* @param scaleY
* @text Y拡大率
* @desc 立ち絵の拡大率(Y)です
* @default 100
* @min -2000
* @max 2000
* @type number
*/
/*~struct~variableCase:
*
* @param id
* @text 変数ID
* @desc 条件に使用する変数IDです
* @type variable
*
* @param type
* @text 変数条件
* @desc 変数IDとの比較条件です
* @default equal
* @type select
* @option 一致する
* @value equal
* @option 以上
* @value higher
* @option 以下
* @value lower
*
* @param value
* @text 変数比較数値
* @desc 変数IDと比較する数値です
* @default 0
* @min -99999999
* @max 99999999
* @type number
*/
(function () {
"use strict";
var pluginName = "LL_MenuScreenBaseMV";
var parameters = PluginManager.parameters(pluginName);
var paramJsonParse = function (key, value) {
try {
return JSON.parse(value);
} catch (e) {
return value;
}
};
var menuPictures = String(parameters["menuPictures"] || "[]");
var onSpbPluginEnable = eval(parameters["onSpbPluginEnable"] || "true");
var menuPictureLists = JSON.parse(
JSON.stringify(menuPictures, paramJsonParse)
);
//-----------------------------------------------------------------------------
// 戦闘中立ち絵プラグインの立ち絵リストを取得
// On LL_StandingPictureBattle Plugin
//-----------------------------------------------------------------------------
var spbPluginName = "LL_StandingPictureBattleMV";
var spbParameters = PluginManager.parameters(spbPluginName);
var spbCommandPictures = String(spbParameters["sbCommandPictures"] || "[]");
var spbCommandPictureLists = JSON.parse(
JSON.stringify(spbCommandPictures, paramJsonParse)
);
//-----------------------------------------------------------------------------
// Ex Menu Screen Base Class
//
// メニュー画面立ち絵設定の独自クラスを追加定義します。
class ExMenuScreenBase {
//-----------------------------------------------------------------------------
// 画像ファイル名を取得
//-----------------------------------------------------------------------------
static getImageName(actorId) {
// 立ち絵リストを取得
var pictureLists = this.getPictureLists();
if (!pictureLists) return;
// アクターのステート情報を取得
var actorStates = [];
if (actorId) actorStates = $gameActors.actor(actorId)._states;
var specificPicture = null;
// アクターIDが一致する立ち絵を検索
pictureLists = pictureLists.filter(function (item) {
if (Number(item.actorId) == actorId) {
return true;
}
});
// ステートにかかっているか?
if (actorStates.length) {
// ステートID・スイッチID・変数IDが有効な立ち絵リストを検索
specificPicture = pictureLists.filter(function (item) {
if (item.variableCase) {
if (
actorStates.indexOf(Number(item.stateId)) !== -1 &&
$gameSwitches.value(Number(item.switchId)) &&
((String(item.variableCase.type) == "equal" &&
$gameVariables.value(Number(item.variableCase.id)) ==
Number(item.variableCase.value)) ||
(String(item.variableCase.type) == "higher" &&
$gameVariables.value(Number(item.variableCase.id)) >=
Number(item.variableCase.value)) ||
(String(item.variableCase.type) == "lower" &&
$gameVariables.value(Number(item.variableCase.id)) <=
Number(item.variableCase.value)))
) {
return true;
}
}
});
if (specificPicture.length)
return this.checkHpPercentage(actorId, specificPicture);
// ステートID・スイッチIDが有効な立ち絵リストを検索
specificPicture = pictureLists.filter(function (item) {
if (
actorStates.indexOf(Number(item.stateId)) !== -1 &&
$gameSwitches.value(Number(item.switchId)) &&
!item.variableCase
) {
return true;
}
});
if (specificPicture.length)
return this.checkHpPercentage(actorId, specificPicture);
// ステートID・変数IDが有効な立ち絵リストを検索
specificPicture = pictureLists.filter(function (item) {
if (item.variableCase) {
if (
actorStates.indexOf(Number(item.stateId)) !== -1 &&
(Number(item.switchId) === 0 || !item.switchId) &&
((String(item.variableCase.type) == "equal" &&
$gameVariables.value(Number(item.variableCase.id)) ==
Number(item.variableCase.value)) ||
(String(item.variableCase.type) == "higher" &&
$gameVariables.value(Number(item.variableCase.id)) >=
Number(item.variableCase.value)) ||
(String(item.variableCase.type) == "lower" &&
$gameVariables.value(Number(item.variableCase.id)) <=
Number(item.variableCase.value)))
) {
return true;
}
}
});
if (specificPicture.length)
return this.checkHpPercentage(actorId, specificPicture);
// ステートIDが有効な立ち絵リストを検索
specificPicture = pictureLists.filter(function (item) {
if (
actorStates.indexOf(Number(item.stateId)) !== -1 &&
(Number(item.switchId) === 0 || !item.switchId) &&
!item.variableCase
) {
return true;
}
});
if (specificPicture.length)
return this.checkHpPercentage(actorId, specificPicture);
}
// スイッチID・変数IDが有効な立ち絵リストを検索
specificPicture = pictureLists.filter(function (item) {
if (item.variableCase) {
if (
(Number(item.stateId) === 0 || !item.stateId) &&
$gameSwitches.value(Number(item.switchId)) &&
((String(item.variableCase.type) == "equal" &&
$gameVariables.value(Number(item.variableCase.id)) ==
Number(item.variableCase.value)) ||
(String(item.variableCase.type) == "higher" &&
$gameVariables.value(Number(item.variableCase.id)) >=
Number(item.variableCase.value)) ||
(String(item.variableCase.type) == "lower" &&
$gameVariables.value(Number(item.variableCase.id)) <=
Number(item.variableCase.value)))
) {
return true;
}
}
});
if (specificPicture.length)
return this.checkHpPercentage(actorId, specificPicture);
// スイッチIDが有効な立ち絵リストを検索
specificPicture = pictureLists.filter(function (item) {
if (
(Number(item.stateId) === 0 || !item.stateId) &&
$gameSwitches.value(Number(item.switchId)) &&
!item.variableCase
) {
return true;
}
});
if (specificPicture.length)
return this.checkHpPercentage(actorId, specificPicture);
// 変数IDが有効な立ち絵リストを検索
specificPicture = pictureLists.filter(function (item) {
if (item.variableCase) {
if (
(Number(item.stateId) === 0 || !item.stateId) &&
(Number(item.switchId) === 0 || !item.switchId) &&
((String(item.variableCase.type) == "equal" &&
$gameVariables.value(Number(item.variableCase.id)) ==
Number(item.variableCase.value)) ||
(String(item.variableCase.type) == "higher" &&
$gameVariables.value(Number(item.variableCase.id)) >=
Number(item.variableCase.value)) ||
(String(item.variableCase.type) == "lower" &&
$gameVariables.value(Number(item.variableCase.id)) <=
Number(item.variableCase.value)))
) {
return true;
}
}
});
if (specificPicture.length)
return this.checkHpPercentage(actorId, specificPicture);
// 上記で見つからなかった場合、通常の立ち絵を検索
var normalPicture = pictureLists.filter(function (item) {
if (
(Number(item.stateId) === 0 || !item.stateId) &&
(Number(item.switchId) === 0 || !item.switchId) &&
!item.variableCase
)
return true;
});
if (normalPicture.length)
return this.checkHpPercentage(actorId, normalPicture);
}
static checkHpPercentage(actorId, pictureLists) {
// アクターの残HPを取得
var hpRate = this.getHpRate(actorId);
// 最もHP%が低い立ち絵を適用する
var minHpRate = 100;
var result = null;
pictureLists.forEach(function (item) {
if (
hpRate <= Number(item.hpPercentage) &&
minHpRate >= Number(item.hpPercentage)
) {
result = item;
minHpRate = Number(item.hpPercentage);
} else if (!item.hpPercentage && minHpRate >= 100) {
// プラグインパラメータが更新されていない場合、便宜的に100として扱う
result = item;
minHpRate = Number(item.hpPercentage);
}
});
return result;
}
static getPictureLists() {
return onSpbPluginEnable ? spbCommandPictureLists : menuPictureLists;
}
static onSpbPluginEnable() {
return onSpbPluginEnable;
}
// アクターのHPレートを取得
static getHpRate(actorId) {
if (!$gameActors.actor(actorId)) return 0;
return $gameActors.actor(actorId).mhp > 0
? ($gameActors.actor(actorId).hp / $gameActors.actor(actorId).mhp) * 100
: 0;
}
}
window.ExMenuScreenBase = ExMenuScreenBase;
})();

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,324 +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
* メモ: イメージはimgsystemフォルダ内に保存されます
*
* @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");
}
};
})();
/*:
* 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
* メモ: イメージはimgsystemフォルダ内に保存されます
*
* @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");
}
};
})();

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,56 +1,56 @@
//=============================================================================
// MenuCallCommon.js
//=============================================================================
/*:
* @plugindesc Xボタンorマウスの右クリックでメニュー画面を開くかわりにコモンイベントを動作させるプラグイン
* @author のん Twitter : non_non_cha
*
* @param ComEvent
* @desc 開くためのコモンイベント
* @default 1
*
* @param ComCloseEvent
* @desc 閉じるためのコモンイベント
* @default 1
*
* @param ComSwitch
* @desc 開閉するために使うスイッチ番号
* @default 1
*
* @help
*
* Xボタンorマウスの右クリックでメニュー画面を
* 開くかわりにコモンイベントを動作させるプラグイン
* 自作メニューとか作成したい場合にすごく便利
* 閉じたいときはスイッチをONに
* そうじゃない場合はOFFにしてください
* メニューアイテムの時のようなメニューからサブメニューに転移するときは
* メニュー禁止を押してもらえればいけるはず
*/
(function () {
var parameters = PluginManager.parameters("MenuCallCommon");
var Noncha_ComEvent = Number(parameters["ComEvent"] || 1);
var Noncha_ComCloseEvent = Number(parameters["ComCloseEvent"] || 1);
var Noncha_ComSwitch = Number(parameters["ComSwitch"] || 1);
Scene_Map.prototype.updateCallMenu = function () {
if (this.isMenuEnabled()) {
if (this.isMenuCalled()) {
this.menuCalling = true;
}
if (this.menuCalling && !$gamePlayer.isMoving()) {
if (!$gameSwitches._data[Noncha_ComSwitch] == true) {
$gameTemp.reserveCommonEvent(Noncha_ComEvent);
this.menuCalling = false;
} else if (!$gameSwitches._data[Noncha_ComSwitch] == false) {
$gameTemp.reserveCommonEvent(Noncha_ComCloseEvent);
this.menuCalling = false;
}
}
} else {
this.menuCalling = false;
}
};
})();
//=============================================================================
// MenuCallCommon.js
//=============================================================================
/*:
* @plugindesc Xボタンorマウスの右クリックでメニュー画面を開くかわりにコモンイベントを動作させるプラグイン
* @author のん Twitter : non_non_cha
*
* @param ComEvent
* @desc 開くためのコモンイベント
* @default 1
*
* @param ComCloseEvent
* @desc 閉じるためのコモンイベント
* @default 1
*
* @param ComSwitch
* @desc 開閉するために使うスイッチ番号
* @default 1
*
* @help
*
* Xボタンorマウスの右クリックでメニュー画面を
* 開くかわりにコモンイベントを動作させるプラグイン
* 自作メニューとか作成したい場合にすごく便利
* 閉じたいときはスイッチをONに
* そうじゃない場合はOFFにしてください
* メニューアイテムの時のようなメニューからサブメニューに転移するときは
* メニュー禁止を押してもらえればいけるはず
*/
(function () {
var parameters = PluginManager.parameters("MenuCallCommon");
var Noncha_ComEvent = Number(parameters["ComEvent"] || 1);
var Noncha_ComCloseEvent = Number(parameters["ComCloseEvent"] || 1);
var Noncha_ComSwitch = Number(parameters["ComSwitch"] || 1);
Scene_Map.prototype.updateCallMenu = function () {
if (this.isMenuEnabled()) {
if (this.isMenuCalled()) {
this.menuCalling = true;
}
if (this.menuCalling && !$gamePlayer.isMoving()) {
if (!$gameSwitches._data[Noncha_ComSwitch] == true) {
$gameTemp.reserveCommonEvent(Noncha_ComEvent);
this.menuCalling = false;
} else if (!$gameSwitches._data[Noncha_ComSwitch] == false) {
$gameTemp.reserveCommonEvent(Noncha_ComCloseEvent);
this.menuCalling = false;
}
}
} else {
this.menuCalling = false;
}
};
})();

View file

@ -1,238 +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();
}
})();
//=============================================================================
// 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();
}
})();

View file

@ -1,66 +1,66 @@
//=============================================================================
// NoGameover.js
//=============================================================================
/*:
* @plugindesc NoGameover
* @author yuwaka
*
* @param Switch ID
* @desc The ID of the switch to be turned ON when AllDead.
* @default 0
*
* @help This plugin does not provide plugin commands.
*I role model Tachi's plug-ins.
*Thank you very much.
*/
/*:ja
* @plugindesc ゲームオーバーにならないよ
* @author ゆわか
*
* @param Switch ID
* @desc 戦闘中でもマップでも全滅したときにONにするスイッチのIDです
* @default 0
*
* @help このプラグインにはプラグインコマンドはありません
*
* 自動的にフェードアウトするようにしています
* フェードインはスイッチで呼び出すコモンイベントへ入れて
* 好きなタイミングで行ってください
* フェードアウトしたくなければコメントアウトしてね
*
* このプラグインはもうあなたのものです
* お好きなように使ってください
*
* RPGツクールMVサンプルゲームシーピラートのプラグインを
* 参考にさせて頂きました
* ありがとうございます
*/
(function () {
var parameters = PluginManager.parameters("NoGameover");
var switchId = Number(parameters["Switch ID"] || 0);
//rpg_managers.jsより戦闘で全滅した場合
BattleManager.updateBattleEnd = function () {
if (this.isBattleTest()) {
AudioManager.stopBgm();
SceneManager.exit();
} else if ($gameParty.isAllDead()) {
if (this._canLose) {
$gameParty.reviveBattleMembers();
SceneManager.pop();
} else {
//SceneManager.goto(Scene_Gameover);//ゲームオーバーを表示するぜ
$gameScreen.startFadeOut(10); //フェードアウトするぜ
$gameSwitches.setValue(switchId, true); //全滅したぜ
$gameParty.reviveBattleMembers(); //みんな生き返るぜ
SceneManager.pop(); //マップ画面へ移動するぜ
}
} else {
SceneManager.pop();
}
this._phase = null;
};
})();
//=============================================================================
// NoGameover.js
//=============================================================================
/*:
* @plugindesc NoGameover
* @author yuwaka
*
* @param Switch ID
* @desc The ID of the switch to be turned ON when AllDead.
* @default 0
*
* @help This plugin does not provide plugin commands.
*I role model Tachi's plug-ins.
*Thank you very much.
*/
/*:ja
* @plugindesc ゲームオーバーにならないよ
* @author ゆわか
*
* @param Switch ID
* @desc 戦闘中でもマップでも全滅したときにONにするスイッチのIDです
* @default 0
*
* @help このプラグインにはプラグインコマンドはありません
*
* 自動的にフェードアウトするようにしています
* フェードインはスイッチで呼び出すコモンイベントへ入れて
* 好きなタイミングで行ってください
* フェードアウトしたくなければコメントアウトしてね
*
* このプラグインはもうあなたのものです
* お好きなように使ってください
*
* RPGツクールMVサンプルゲームシーピラートのプラグインを
* 参考にさせて頂きました
* ありがとうございます
*/
(function () {
var parameters = PluginManager.parameters("NoGameover");
var switchId = Number(parameters["Switch ID"] || 0);
//rpg_managers.jsより戦闘で全滅した場合
BattleManager.updateBattleEnd = function () {
if (this.isBattleTest()) {
AudioManager.stopBgm();
SceneManager.exit();
} else if ($gameParty.isAllDead()) {
if (this._canLose) {
$gameParty.reviveBattleMembers();
SceneManager.pop();
} else {
//SceneManager.goto(Scene_Gameover);//ゲームオーバーを表示するぜ
$gameScreen.startFadeOut(10); //フェードアウトするぜ
$gameSwitches.setValue(switchId, true); //全滅したぜ
$gameParty.reviveBattleMembers(); //みんな生き返るぜ
SceneManager.pop(); //マップ画面へ移動するぜ
}
} else {
SceneManager.pop();
}
this._phase = null;
};
})();

View file

@ -1,90 +1,90 @@
//=============================================================================
// SimpleMsgSideView.js
//=============================================================================
/*:
* @plugindesc at sideview battle, only display item/skill names.
* @author Sasuke KANNAZUKI
*
* @param displayAttack
* @desc Whether to display normal attack. 1:yes 0:no
* @default 0
*
* @param position
* @desc Skill name display position. 0:left, 1:center
* @default 1
*
* @help This plugin does not provide plugin commands.
*
* By not displaying the log and only displaying the skill name,
* the speed of battle will increase slightly.
*/
/*:ja
* @plugindesc サイドビューバトルで技/アイテムの名前のみ表示します
* @author 神無月サスケ
*
* @param displayAttack
* @desc 通常攻撃も表示するか (1:する 0:しない)
* @default 0
*
* @param position
* @desc 技名を表示する位置 (0:左寄せ, 1:中央)
* @default 1
*
* @help このプラグインにはプラグインコマンドはありません
*
* ログを表示せず技名のみを表示することで戦闘のテンポが若干高速になります
*/
(function () {
var parameters = PluginManager.parameters("SimpleMsgSideView");
var displayAttack = Number(parameters["displayAttack"]) != 0;
var position = Number(parameters["position"] || 1);
var _Window_BattleLog_addText = Window_BattleLog.prototype.addText;
Window_BattleLog.prototype.addText = function (text) {
if ($gameSystem.isSideView()) {
this.refresh();
this.wait();
return; // not display battle log
}
_Window_BattleLog_addText.call(this, text);
};
// for sideview battle only
Window_BattleLog.prototype.addItemNameText = function (itemName) {
this._lines.push(itemName);
this.refresh();
this.wait();
};
var _Window_BattleLog_displayAction =
Window_BattleLog.prototype.displayAction;
Window_BattleLog.prototype.displayAction = function (subject, item) {
if ($gameSystem.isSideView()) {
if (
displayAttack ||
!(DataManager.isSkill(item) && item.id == subject.attackSkillId())
) {
this.push("addItemNameText", item.name); // display item/skill name
} else {
this.push("wait");
}
return;
}
_Window_BattleLog_displayAction.call(this, subject, item);
};
// to put skill/item name at center
var _Window_BattleLog_drawLineText = Window_BattleLog.prototype.drawLineText;
Window_BattleLog.prototype.drawLineText = function (index) {
if ($gameSystem.isSideView() && position == 1) {
var rect = this.itemRectForText(index);
this.contents.clearRect(rect.x, rect.y, rect.width, rect.height);
this.drawText(this._lines[index], rect.x, rect.y, rect.width, "center");
return;
}
_Window_BattleLog_drawLineText.call(this, index);
};
})();
//=============================================================================
// SimpleMsgSideView.js
//=============================================================================
/*:
* @plugindesc at sideview battle, only display item/skill names.
* @author Sasuke KANNAZUKI
*
* @param displayAttack
* @desc Whether to display normal attack. 1:yes 0:no
* @default 0
*
* @param position
* @desc Skill name display position. 0:left, 1:center
* @default 1
*
* @help This plugin does not provide plugin commands.
*
* By not displaying the log and only displaying the skill name,
* the speed of battle will increase slightly.
*/
/*:ja
* @plugindesc サイドビューバトルで技/アイテムの名前のみ表示します
* @author 神無月サスケ
*
* @param displayAttack
* @desc 通常攻撃も表示するか (1:する 0:しない)
* @default 0
*
* @param position
* @desc 技名を表示する位置 (0:左寄せ, 1:中央)
* @default 1
*
* @help このプラグインにはプラグインコマンドはありません
*
* ログを表示せず技名のみを表示することで戦闘のテンポが若干高速になります
*/
(function () {
var parameters = PluginManager.parameters("SimpleMsgSideView");
var displayAttack = Number(parameters["displayAttack"]) != 0;
var position = Number(parameters["position"] || 1);
var _Window_BattleLog_addText = Window_BattleLog.prototype.addText;
Window_BattleLog.prototype.addText = function (text) {
if ($gameSystem.isSideView()) {
this.refresh();
this.wait();
return; // not display battle log
}
_Window_BattleLog_addText.call(this, text);
};
// for sideview battle only
Window_BattleLog.prototype.addItemNameText = function (itemName) {
this._lines.push(itemName);
this.refresh();
this.wait();
};
var _Window_BattleLog_displayAction =
Window_BattleLog.prototype.displayAction;
Window_BattleLog.prototype.displayAction = function (subject, item) {
if ($gameSystem.isSideView()) {
if (
displayAttack ||
!(DataManager.isSkill(item) && item.id == subject.attackSkillId())
) {
this.push("addItemNameText", item.name); // display item/skill name
} else {
this.push("wait");
}
return;
}
_Window_BattleLog_displayAction.call(this, subject, item);
};
// to put skill/item name at center
var _Window_BattleLog_drawLineText = Window_BattleLog.prototype.drawLineText;
Window_BattleLog.prototype.drawLineText = function (index) {
if ($gameSystem.isSideView() && position == 1) {
var rect = this.itemRectForText(index);
this.contents.clearRect(rect.x, rect.y, rect.width, rect.height);
this.drawText(this._lines[index], rect.x, rect.y, rect.width, "center");
return;
}
_Window_BattleLog_drawLineText.call(this, index);
};
})();

File diff suppressed because it is too large Load diff

View file

@ -1,167 +1,167 @@
/*:
* @plugindesc シンボルエンカウント作成の補助を行います
詳しい使い方はヘルプを参照してください
* @author 茶の助
*
* @help 敵シンボルにしたいイベントのメモ欄に<se>と入力し
自立移動のタイプを近づくにしてください
プレイヤーとそのイベントの向きに応じて
 先制攻撃不意打ちが起こるようになります
 設定した変数に数値が代入され
 0の場合は通常1の場合は先制攻撃2の場合は不意打ちになります
 変数は戦闘後にリセットされます
デフォルトの近づくではプレイヤーが20マス以内にいる場合に
 自動的に追尾するようになっていますが
 敵の背後にいる場合はプレイヤーを見失い近づかないようになります
*
* @param situationVariables
* @desc 使用する変数番号
* @default 1
*/
(function () {
var parameters = PluginManager.parameters("TYA_SymbolEncount");
var situationVariables = Number(parameters["situationVariables"]);
var _BattleManager_onEncounter = BattleManager.onEncounter;
BattleManager.onEncounter = function () {
_BattleManager_onEncounter.call(this);
switch ($gameVariables.value(situationVariables)) {
case 0:
this._preemptive = false;
this._surprise = false;
break;
case 1:
this._preemptive = true;
break;
case 2:
this._preemptive = false;
this._surprise = true;
break;
}
};
Game_Event.prototype.isNearThePlayer = function () {
var sx = Math.abs(this.deltaXFrom($gamePlayer.x));
var sy = Math.abs(this.deltaYFrom($gamePlayer.y));
var np = sx + sy < 20;
if (this.event().meta.se) {
var _player = $gamePlayer;
var _enemy = this;
switch (_enemy._direction) {
case 2:
if (_player.y < _enemy.y) {
np = false;
}
break;
case 8:
if (_player.y > _enemy.y) {
np = false;
}
break;
case 4:
if (_player.x > _enemy.x) {
np = false;
}
break;
case 6:
if (_player.x < _enemy.x) {
np = false;
}
break;
}
}
return np;
};
Game_Event.prototype.encountSituation = function () {
var _player = $gamePlayer;
var _enemy = this;
if (_player._direction == _enemy._direction) {
switch (_enemy._direction) {
case 2:
if (_player.y <= _enemy.y) {
$gameVariables.setValue(situationVariables, 1);
} else {
$gameVariables.setValue(situationVariables, 2);
}
break;
case 8:
if (_player.y >= _enemy.y) {
$gameVariables.setValue(situationVariables, 1);
} else {
$gameVariables.setValue(situationVariables, 2);
}
break;
case 4:
if (_player.x >= _enemy.x) {
$gameVariables.setValue(situationVariables, 1);
} else {
$gameVariables.setValue(situationVariables, 2);
}
break;
case 6:
if (_player.x <= _enemy.x) {
$gameVariables.setValue(situationVariables, 1);
} else {
$gameVariables.setValue(situationVariables, 2);
}
break;
}
} else {
$gameVariables.setValue(situationVariables, 0);
}
};
Game_Event.prototype.lock = function () {
if (!this._locked) {
var se = this.event().meta.se;
if (se) {
this.encountSituation();
}
this._prelockDirection = this.direction();
if (!se) {
this.turnTowardPlayer();
}
this._locked = true;
}
};
Game_Interpreter.prototype.command301 = function () {
if (!$gameParty.inBattle()) {
var troopId;
if (this._params[0] === 0) {
// Direct designation
troopId = this._params[1];
} else if (this._params[0] === 1) {
// Designation with a variable
troopId = $gameVariables.value(this._params[1]);
} else {
// Same as Random Encounter
troopId = $gamePlayer.makeEncounterTroopId();
}
if ($dataTroops[troopId]) {
BattleManager.setup(troopId, this._params[2], this._params[3]);
BattleManager.onEncounter(); //
BattleManager.setEventCallback(
function (n) {
this._branch[this._indent] = n;
}.bind(this)
);
$gamePlayer.makeEncounterCount();
SceneManager.push(Scene_Battle);
}
}
return true;
};
var _Scene_Battle_prototype_terminate = Scene_Battle.prototype.terminate;
Scene_Battle.prototype.terminate = function () {
_Scene_Battle_prototype_terminate.call(this);
$gameVariables.setValue(situationVariables, 0);
};
})();
/*:
* @plugindesc シンボルエンカウント作成の補助を行います
詳しい使い方はヘルプを参照してください
* @author 茶の助
*
* @help 敵シンボルにしたいイベントのメモ欄に<se>と入力し
自立移動のタイプを近づくにしてください
プレイヤーとそのイベントの向きに応じて
 先制攻撃不意打ちが起こるようになります
 設定した変数に数値が代入され
 0の場合は通常1の場合は先制攻撃2の場合は不意打ちになります
 変数は戦闘後にリセットされます
デフォルトの近づくではプレイヤーが20マス以内にいる場合に
 自動的に追尾するようになっていますが
 敵の背後にいる場合はプレイヤーを見失い近づかないようになります
*
* @param situationVariables
* @desc 使用する変数番号
* @default 1
*/
(function () {
var parameters = PluginManager.parameters("TYA_SymbolEncount");
var situationVariables = Number(parameters["situationVariables"]);
var _BattleManager_onEncounter = BattleManager.onEncounter;
BattleManager.onEncounter = function () {
_BattleManager_onEncounter.call(this);
switch ($gameVariables.value(situationVariables)) {
case 0:
this._preemptive = false;
this._surprise = false;
break;
case 1:
this._preemptive = true;
break;
case 2:
this._preemptive = false;
this._surprise = true;
break;
}
};
Game_Event.prototype.isNearThePlayer = function () {
var sx = Math.abs(this.deltaXFrom($gamePlayer.x));
var sy = Math.abs(this.deltaYFrom($gamePlayer.y));
var np = sx + sy < 20;
if (this.event().meta.se) {
var _player = $gamePlayer;
var _enemy = this;
switch (_enemy._direction) {
case 2:
if (_player.y < _enemy.y) {
np = false;
}
break;
case 8:
if (_player.y > _enemy.y) {
np = false;
}
break;
case 4:
if (_player.x > _enemy.x) {
np = false;
}
break;
case 6:
if (_player.x < _enemy.x) {
np = false;
}
break;
}
}
return np;
};
Game_Event.prototype.encountSituation = function () {
var _player = $gamePlayer;
var _enemy = this;
if (_player._direction == _enemy._direction) {
switch (_enemy._direction) {
case 2:
if (_player.y <= _enemy.y) {
$gameVariables.setValue(situationVariables, 1);
} else {
$gameVariables.setValue(situationVariables, 2);
}
break;
case 8:
if (_player.y >= _enemy.y) {
$gameVariables.setValue(situationVariables, 1);
} else {
$gameVariables.setValue(situationVariables, 2);
}
break;
case 4:
if (_player.x >= _enemy.x) {
$gameVariables.setValue(situationVariables, 1);
} else {
$gameVariables.setValue(situationVariables, 2);
}
break;
case 6:
if (_player.x <= _enemy.x) {
$gameVariables.setValue(situationVariables, 1);
} else {
$gameVariables.setValue(situationVariables, 2);
}
break;
}
} else {
$gameVariables.setValue(situationVariables, 0);
}
};
Game_Event.prototype.lock = function () {
if (!this._locked) {
var se = this.event().meta.se;
if (se) {
this.encountSituation();
}
this._prelockDirection = this.direction();
if (!se) {
this.turnTowardPlayer();
}
this._locked = true;
}
};
Game_Interpreter.prototype.command301 = function () {
if (!$gameParty.inBattle()) {
var troopId;
if (this._params[0] === 0) {
// Direct designation
troopId = this._params[1];
} else if (this._params[0] === 1) {
// Designation with a variable
troopId = $gameVariables.value(this._params[1]);
} else {
// Same as Random Encounter
troopId = $gamePlayer.makeEncounterTroopId();
}
if ($dataTroops[troopId]) {
BattleManager.setup(troopId, this._params[2], this._params[3]);
BattleManager.onEncounter(); //
BattleManager.setEventCallback(
function (n) {
this._branch[this._indent] = n;
}.bind(this)
);
$gamePlayer.makeEncounterCount();
SceneManager.push(Scene_Battle);
}
}
return true;
};
var _Scene_Battle_prototype_terminate = Scene_Battle.prototype.terminate;
Scene_Battle.prototype.terminate = function () {
_Scene_Battle_prototype_terminate.call(this);
$gameVariables.setValue(situationVariables, 0);
};
})();

View file

@ -1,70 +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;
};
})();
//=============================================================================
// 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;
};
})();

View file

@ -1,383 +1,383 @@
/******************************************************************************/
//
// Wataridori_AddFileSystem.js
//
/******************************************************************************/
//プラグインの説明
//「修正パッチ追加プラグイン」
//
//更新履歴(ver1.0)
//
//2019_11_12 ver1.0 リリース
//2019_12_12 ver1.01 修正パッチを格納するフォルダ名を変更可能にしました。
// 出力するログファイルのファイル名を変更可能にしました。
// タイトルシーンにおける修正パッチを取り込むコマンドの名称を変更可能にしました。
// プラグインコマンドをADDからAPPLY_PATCHに変更しました。ADDも使用可能です。
//
/******************************************************************************/
//This software is released under the MIT License.
//http://opensource.org/licenses/mit-license.php
//
//Copyright(c) 渡り鳥の楽園
/******************************************************************************/
/*:
* @plugindesc 修正パッチ追加プラグイン
* @author 渡り鳥の楽園飯尾隼人
*
* @param name_folder
* @desc 修正パッチを格納するたフォルダの名称を変更可能です
* @default patch
*
* @param partition_string
* @desc フォルダ名を区切る際に使用する文字です必ず半角英数字 / . \ 以外にしてください日本語は不可です
* @default -
*
* @param name_log_text
* @desc 出力するログファイルの名称拡張子なしを変更可能です
* @default log
* @param name_command
* @desc タイトルシーンにて修正パッチを取り込むコマンドの名称を変更可能です
* @default APPLY PATCH
*
* @param make_log_text
* @desc ONの場合は修正パッチフォルダ内に取り込みに成功したデータを記載したログファイルを出力します
* @default true
* @type boolean
*
* @param make_title_command
* @desc ONの場合はタイトルシーンにて修正パッチ取り込みコマンドを追加します
* @default true
* @type boolean
*
* @param shutdown
* @desc ONの場合はタイトルシーンにて修正パッチ取り込み後自動的にシャットダウンを実施します
* @default true
* @type boolean
*
* @help
* 説明
* アップデートファイル修正パッチをゲームフォルダに取り込むためのプラグインです
* このプラグインを利用すると制作者側はアップデートファイルのみを配れば問題ありません
* ユーザー側はaddファイルにアップデートファイルをコピーしてタイトル画面でコマンドを選択すれば良く
* 非常に簡単に作品のアップデートが可能となります
*
* 取り込める拡張子は以下の通りです
* .js .json .rpgmvp .png .jpg .rpgmvo .ogg .m4a .woff .ttf .otf .eot
*
* 指定の場所に名前がaddのフォルダを作成してください
* Windows Game.exeと同じ階層
* Mac  Game.appと同じ階層
* テストプレイの場合はゲームデータがあるフォルダ内に作成してください
*
* データを取り込む際にフォルダの指定が可能です
* 取り込みたいファイルの名前をハイフン-を用いてフォルダ名で区切ってください
*
* 効果音Absorb1.rpgmvoをseフォルダに格納する場合
*   ファイル名をse-Absorb1.rpgmvoに変更してください
*
* 表情画像Actor1.rpgmvpをfacesフォルダに格納する場合
*   ファイル名をfaces-Actor1.rpgmvpに変更してください
*
* 修正パッチの適用後は必ずユーザーに再起動させてください
* 再起動をしないと修正パッチが反映されません
*
* プラグインコマンドAPPLY_PATCH
* 修正パッチの取り込みを実施します
*
* スクリプトで使用する場合StorageManager.addFile();
* 修正パッチの取り込みを実施します一つでも成功ならtrue全部失敗ならfalseを返します
*
* 注意事項
* 本プラグインの使用によって生じたいかなる損失損害トラブルについても
* 一切責任を負いかねます
*
* 利用規約
* 無断で改変再配布が可能で商用18禁利用等を問わずにご利用が可能です
* 改良して頂いた場合報告して頂けると喜びます
*
* 渡り鳥の楽園飯尾隼人
* Twitter: https://twitter.com/wataridori_raku
* Ci-en : https://ci-en.dlsite.com/creator/2449
*/
(function () {
/******************************************************************************/
//
// Plugin_Parameters
//
/******************************************************************************/
var p_parameters = PluginManager.parameters("Wataridori_AddFileSystem");
var p_make_log_text = p_parameters.make_log_text == "true";
var p_make_title_command = p_parameters.make_title_command == "true";
var p_shutdown = p_parameters.shutdown == "true";
var p_partition_string = p_parameters.partition_string || "_";
var p_name_folder = p_parameters.name_folder || "patch";
var p_name_log_text = p_parameters.name_log_text || "log";
var p_name_command = p_parameters.name_command || "APPLY PATCH";
/******************************************************************************/
//
// PluginCommand
//
/******************************************************************************/
var _Game_Interpreter_pluginCommand =
Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function (command, args) {
_Game_Interpreter_pluginCommand.call(this, command, args);
if (command == "ADD" || command == "APPLY_PATCH") {
StorageManager.addFile();
}
};
/******************************************************************************/
//
// Scene_Title
//
/******************************************************************************/
var Scene_Title_prototype_createCommandWindow =
Scene_Title.prototype.createCommandWindow;
Scene_Title.prototype.createCommandWindow = function () {
Scene_Title_prototype_createCommandWindow.call(this);
if (p_make_title_command) {
this._commandWindow.setHandler("add", this.commandAdd.bind(this));
}
};
Scene_Title.prototype.commandAdd = function () {
this._commandWindow.activate();
if (StorageManager.addFile()) {
if (p_shutdown) {
this.commandShutdown();
}
}
};
Scene_Title.prototype.commandShutdown = function () {
this._commandWindow.close();
this.fadeOutAll();
SceneManager.exit();
};
/******************************************************************************/
//
// Window_TitleCommand
//
/******************************************************************************/
var Window_TitleCommand_prototype_initialize =
Window_TitleCommand.prototype.initialize;
Window_TitleCommand.prototype.initialize = function () {
Window_TitleCommand_prototype_initialize.call(this);
this._count = 0;
this._commandFlag = false;
};
Window_TitleCommand.prototype.update = function () {
Window_Command.prototype.update.call(this);
this._count++;
if (p_make_title_command) {
if (this._count > 60) {
if (this.checkAddCommandEnable() != this._commandFlag) {
this.refresh();
}
this._count = 0;
}
}
};
var Window_TitleCommand_prototype_makeCommandList =
Window_TitleCommand.prototype.makeCommandList;
Window_TitleCommand.prototype.makeCommandList = function () {
Window_TitleCommand_prototype_makeCommandList.call(this);
if (p_make_title_command) {
this._commandFlag = this.checkAddCommandEnable();
this.addCommand(p_name_command, "add", this._commandFlag);
}
};
Window_TitleCommand.prototype.checkAddCommandEnable = function () {
// addフォルダ内にデータが有る場合のみ有効にする。
var path = require("path");
var fs = require("fs");
var base = path.dirname(process.mainModule.filename);
var win = path.join(base, "../" + p_name_folder + "/");
var mac = path.join(base, "../../../../" + p_name_folder + "/");
var test = path.join(base, p_name_folder + "/");
var filelist;
try {
if (Utils.isOptionValid("test")) {
// テストプレイの場合
filelist = fs.readdirSync(test);
return filelist.length != 0 && this.isNotLogFile(test);
} else if (fs.existsSync(win)) {
filelist = fs.readdirSync(win);
return filelist.length != 0 && this.isNotLogFile(win);
} else if (fs.existsSync(mac)) {
filelist = fs.readdirSync(mac);
return filelist.length != 0 && this.isNotLogFile(mac);
} else {
return false;
}
} catch (e) {
console.error(e);
return false;
}
};
Window_TitleCommand.prototype.isNotLogFile = function (path) {
try {
var fs = require("fs");
var filelist = fs.readdirSync(path);
return !(filelist.length == 1 && filelist[0] == p_name_log_text + ".txt");
} catch (e) {
console.error(e);
return false;
}
};
/******************************************************************************/
//
// StorageManager
//
/******************************************************************************/
StorageManager.addFile = function () {
var path = require("path");
var fs = require("fs");
var base = path.dirname(process.mainModule.filename);
var win = path.join(base, "../" + p_name_folder + "/");
var mac = path.join(base, "../../../../" + p_name_folder + "/");
var test = path.join(base, p_name_folder + "/");
try {
if (Utils.isOptionValid("test")) {
return StorageManager.addFileCheck(test);
} else if (fs.existsSync(win)) {
return StorageManager.addFileCheck(win);
} else if (fs.existsSync(mac)) {
return StorageManager.addFileCheck(mac);
} else {
return false;
}
} catch (e) {
console.error(e);
return false;
}
};
StorageManager.addFileCheck = function (pathAdd) {
var fs = require("fs");
var path = require("path");
var base = path.dirname(process.mainModule.filename);
var succes = false;
// 取り込むファイルの拡張しとパスを設定
// ファイルの種類を増やしたい場合はここで拡張してください。
var item = {
".js": "js/",
".json": "data/",
".rpgmvp": "img/",
".png": "img/",
".jpg": "img/",
".rpgmvo": "audio/",
".ogg": "audio/",
".m4a": "audio/",
".woff": "fonts/",
".ttf": "fonts/",
".otf": "fonts/",
".eot": "fonts/",
};
try {
var filelist = fs.readdirSync(pathAdd);
var InputList = [];
for (var i = 0; i < filelist.length; i++) {
var keys = Object.keys(item);
for (var j = 0; keys.length > j; j++) {
try {
fs.statSync(path.join(base, item[keys[j]]));
} catch (e) {
if (e.code === "ENOENT") {
// フォルダが存在しない場合は作成
fs.mkdirSync(path.join(base, item[keys[j]]));
} else {
console.error(e);
}
}
if (filelist[i].endsWith(keys[j])) {
var file = fs.readFileSync(path.join(pathAdd, filelist[i]));
var folder_name = filelist[i].split(p_partition_string);
var fpath = item[keys[j]];
for (var k = 0; k < folder_name.length; k++) {
fpath += folder_name[k];
if (!folder_name[k].endsWith(keys[j])) {
try {
fs.statSync(path.join(base, fpath));
} catch (e) {
if (e.code === "ENOENT") {
// フォルダが存在しない場合は作成
fs.mkdirSync(path.join(base, fpath));
} else {
console.error(e);
}
}
fpath += "/";
}
}
fs.writeFileSync(path.join(base, fpath), file);
InputList.push(filelist[i]);
fs.unlinkSync(path.join(pathAdd, filelist[i]));
succes = true;
}
}
}
// addフォルダ内に出力するログを作成
if (p_make_log_text) {
try {
var test = "以下のファイルのインポートに成功しました。";
fs.writeFileSync(
path.join(pathAdd, p_name_log_text + ".txt"),
test + "\n"
);
for (var l = 0; l < InputList.length; l++) {
fs.appendFileSync(
path.join(pathAdd, p_name_log_text + ".txt"),
InputList[l] + "\n"
);
}
} catch (e) {
console.error(e);
}
}
if (succes) {
// 効果音を変更する場合はここを変更してください。
SoundManager.playRecovery();
alert(
"ファイルの取り込みに成功しました。修正パッチの適用には再起動が必要です。"
);
} else {
SoundManager.playBuzzer();
alert(
"ファイルの取り込みに失敗しました。修正パッチの適用の方法に問題がある可能性があります。"
);
}
return succes;
} catch (e) {
alert("ファイルの取り込みの際にエラーが発生しました。");
console.error(e);
return false;
}
};
})();
/******************************************************************************/
//
// Wataridori_AddFileSystem.js
//
/******************************************************************************/
//プラグインの説明
//「修正パッチ追加プラグイン」
//
//更新履歴(ver1.0)
//
//2019_11_12 ver1.0 リリース
//2019_12_12 ver1.01 修正パッチを格納するフォルダ名を変更可能にしました。
// 出力するログファイルのファイル名を変更可能にしました。
// タイトルシーンにおける修正パッチを取り込むコマンドの名称を変更可能にしました。
// プラグインコマンドをADDからAPPLY_PATCHに変更しました。ADDも使用可能です。
//
/******************************************************************************/
//This software is released under the MIT License.
//http://opensource.org/licenses/mit-license.php
//
//Copyright(c) 渡り鳥の楽園
/******************************************************************************/
/*:
* @plugindesc 修正パッチ追加プラグイン
* @author 渡り鳥の楽園飯尾隼人
*
* @param name_folder
* @desc 修正パッチを格納するたフォルダの名称を変更可能です
* @default patch
*
* @param partition_string
* @desc フォルダ名を区切る際に使用する文字です必ず半角英数字 / . \ 以外にしてください日本語は不可です
* @default -
*
* @param name_log_text
* @desc 出力するログファイルの名称拡張子なしを変更可能です
* @default log
* @param name_command
* @desc タイトルシーンにて修正パッチを取り込むコマンドの名称を変更可能です
* @default APPLY PATCH
*
* @param make_log_text
* @desc ONの場合は修正パッチフォルダ内に取り込みに成功したデータを記載したログファイルを出力します
* @default true
* @type boolean
*
* @param make_title_command
* @desc ONの場合はタイトルシーンにて修正パッチ取り込みコマンドを追加します
* @default true
* @type boolean
*
* @param shutdown
* @desc ONの場合はタイトルシーンにて修正パッチ取り込み後自動的にシャットダウンを実施します
* @default true
* @type boolean
*
* @help
* 説明
* アップデートファイル修正パッチをゲームフォルダに取り込むためのプラグインです
* このプラグインを利用すると制作者側はアップデートファイルのみを配れば問題ありません
* ユーザー側はaddファイルにアップデートファイルをコピーしてタイトル画面でコマンドを選択すれば良く
* 非常に簡単に作品のアップデートが可能となります
*
* 取り込める拡張子は以下の通りです
* .js .json .rpgmvp .png .jpg .rpgmvo .ogg .m4a .woff .ttf .otf .eot
*
* 指定の場所に名前がaddのフォルダを作成してください
* Windows Game.exeと同じ階層
* Mac  Game.appと同じ階層
* テストプレイの場合はゲームデータがあるフォルダ内に作成してください
*
* データを取り込む際にフォルダの指定が可能です
* 取り込みたいファイルの名前をハイフン-を用いてフォルダ名で区切ってください
*
* 効果音Absorb1.rpgmvoをseフォルダに格納する場合
*   ファイル名をse-Absorb1.rpgmvoに変更してください
*
* 表情画像Actor1.rpgmvpをfacesフォルダに格納する場合
*   ファイル名をfaces-Actor1.rpgmvpに変更してください
*
* 修正パッチの適用後は必ずユーザーに再起動させてください
* 再起動をしないと修正パッチが反映されません
*
* プラグインコマンドAPPLY_PATCH
* 修正パッチの取り込みを実施します
*
* スクリプトで使用する場合StorageManager.addFile();
* 修正パッチの取り込みを実施します一つでも成功ならtrue全部失敗ならfalseを返します
*
* 注意事項
* 本プラグインの使用によって生じたいかなる損失損害トラブルについても
* 一切責任を負いかねます
*
* 利用規約
* 無断で改変再配布が可能で商用18禁利用等を問わずにご利用が可能です
* 改良して頂いた場合報告して頂けると喜びます
*
* 渡り鳥の楽園飯尾隼人
* Twitter: https://twitter.com/wataridori_raku
* Ci-en : https://ci-en.dlsite.com/creator/2449
*/
(function () {
/******************************************************************************/
//
// Plugin_Parameters
//
/******************************************************************************/
var p_parameters = PluginManager.parameters("Wataridori_AddFileSystem");
var p_make_log_text = p_parameters.make_log_text == "true";
var p_make_title_command = p_parameters.make_title_command == "true";
var p_shutdown = p_parameters.shutdown == "true";
var p_partition_string = p_parameters.partition_string || "_";
var p_name_folder = p_parameters.name_folder || "patch";
var p_name_log_text = p_parameters.name_log_text || "log";
var p_name_command = p_parameters.name_command || "APPLY PATCH";
/******************************************************************************/
//
// PluginCommand
//
/******************************************************************************/
var _Game_Interpreter_pluginCommand =
Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function (command, args) {
_Game_Interpreter_pluginCommand.call(this, command, args);
if (command == "ADD" || command == "APPLY_PATCH") {
StorageManager.addFile();
}
};
/******************************************************************************/
//
// Scene_Title
//
/******************************************************************************/
var Scene_Title_prototype_createCommandWindow =
Scene_Title.prototype.createCommandWindow;
Scene_Title.prototype.createCommandWindow = function () {
Scene_Title_prototype_createCommandWindow.call(this);
if (p_make_title_command) {
this._commandWindow.setHandler("add", this.commandAdd.bind(this));
}
};
Scene_Title.prototype.commandAdd = function () {
this._commandWindow.activate();
if (StorageManager.addFile()) {
if (p_shutdown) {
this.commandShutdown();
}
}
};
Scene_Title.prototype.commandShutdown = function () {
this._commandWindow.close();
this.fadeOutAll();
SceneManager.exit();
};
/******************************************************************************/
//
// Window_TitleCommand
//
/******************************************************************************/
var Window_TitleCommand_prototype_initialize =
Window_TitleCommand.prototype.initialize;
Window_TitleCommand.prototype.initialize = function () {
Window_TitleCommand_prototype_initialize.call(this);
this._count = 0;
this._commandFlag = false;
};
Window_TitleCommand.prototype.update = function () {
Window_Command.prototype.update.call(this);
this._count++;
if (p_make_title_command) {
if (this._count > 60) {
if (this.checkAddCommandEnable() != this._commandFlag) {
this.refresh();
}
this._count = 0;
}
}
};
var Window_TitleCommand_prototype_makeCommandList =
Window_TitleCommand.prototype.makeCommandList;
Window_TitleCommand.prototype.makeCommandList = function () {
Window_TitleCommand_prototype_makeCommandList.call(this);
if (p_make_title_command) {
this._commandFlag = this.checkAddCommandEnable();
this.addCommand(p_name_command, "add", this._commandFlag);
}
};
Window_TitleCommand.prototype.checkAddCommandEnable = function () {
// addフォルダ内にデータが有る場合のみ有効にする。
var path = require("path");
var fs = require("fs");
var base = path.dirname(process.mainModule.filename);
var win = path.join(base, "../" + p_name_folder + "/");
var mac = path.join(base, "../../../../" + p_name_folder + "/");
var test = path.join(base, p_name_folder + "/");
var filelist;
try {
if (Utils.isOptionValid("test")) {
// テストプレイの場合
filelist = fs.readdirSync(test);
return filelist.length != 0 && this.isNotLogFile(test);
} else if (fs.existsSync(win)) {
filelist = fs.readdirSync(win);
return filelist.length != 0 && this.isNotLogFile(win);
} else if (fs.existsSync(mac)) {
filelist = fs.readdirSync(mac);
return filelist.length != 0 && this.isNotLogFile(mac);
} else {
return false;
}
} catch (e) {
console.error(e);
return false;
}
};
Window_TitleCommand.prototype.isNotLogFile = function (path) {
try {
var fs = require("fs");
var filelist = fs.readdirSync(path);
return !(filelist.length == 1 && filelist[0] == p_name_log_text + ".txt");
} catch (e) {
console.error(e);
return false;
}
};
/******************************************************************************/
//
// StorageManager
//
/******************************************************************************/
StorageManager.addFile = function () {
var path = require("path");
var fs = require("fs");
var base = path.dirname(process.mainModule.filename);
var win = path.join(base, "../" + p_name_folder + "/");
var mac = path.join(base, "../../../../" + p_name_folder + "/");
var test = path.join(base, p_name_folder + "/");
try {
if (Utils.isOptionValid("test")) {
return StorageManager.addFileCheck(test);
} else if (fs.existsSync(win)) {
return StorageManager.addFileCheck(win);
} else if (fs.existsSync(mac)) {
return StorageManager.addFileCheck(mac);
} else {
return false;
}
} catch (e) {
console.error(e);
return false;
}
};
StorageManager.addFileCheck = function (pathAdd) {
var fs = require("fs");
var path = require("path");
var base = path.dirname(process.mainModule.filename);
var succes = false;
// 取り込むファイルの拡張しとパスを設定
// ファイルの種類を増やしたい場合はここで拡張してください。
var item = {
".js": "js/",
".json": "data/",
".rpgmvp": "img/",
".png": "img/",
".jpg": "img/",
".rpgmvo": "audio/",
".ogg": "audio/",
".m4a": "audio/",
".woff": "fonts/",
".ttf": "fonts/",
".otf": "fonts/",
".eot": "fonts/",
};
try {
var filelist = fs.readdirSync(pathAdd);
var InputList = [];
for (var i = 0; i < filelist.length; i++) {
var keys = Object.keys(item);
for (var j = 0; keys.length > j; j++) {
try {
fs.statSync(path.join(base, item[keys[j]]));
} catch (e) {
if (e.code === "ENOENT") {
// フォルダが存在しない場合は作成
fs.mkdirSync(path.join(base, item[keys[j]]));
} else {
console.error(e);
}
}
if (filelist[i].endsWith(keys[j])) {
var file = fs.readFileSync(path.join(pathAdd, filelist[i]));
var folder_name = filelist[i].split(p_partition_string);
var fpath = item[keys[j]];
for (var k = 0; k < folder_name.length; k++) {
fpath += folder_name[k];
if (!folder_name[k].endsWith(keys[j])) {
try {
fs.statSync(path.join(base, fpath));
} catch (e) {
if (e.code === "ENOENT") {
// フォルダが存在しない場合は作成
fs.mkdirSync(path.join(base, fpath));
} else {
console.error(e);
}
}
fpath += "/";
}
}
fs.writeFileSync(path.join(base, fpath), file);
InputList.push(filelist[i]);
fs.unlinkSync(path.join(pathAdd, filelist[i]));
succes = true;
}
}
}
// addフォルダ内に出力するログを作成
if (p_make_log_text) {
try {
var test = "以下のファイルのインポートに成功しました。";
fs.writeFileSync(
path.join(pathAdd, p_name_log_text + ".txt"),
test + "\n"
);
for (var l = 0; l < InputList.length; l++) {
fs.appendFileSync(
path.join(pathAdd, p_name_log_text + ".txt"),
InputList[l] + "\n"
);
}
} catch (e) {
console.error(e);
}
}
if (succes) {
// 効果音を変更する場合はここを変更してください。
SoundManager.playRecovery();
alert(
"ファイルの取り込みに成功しました。修正パッチの適用には再起動が必要です。"
);
} else {
SoundManager.playBuzzer();
alert(
"ファイルの取り込みに失敗しました。修正パッチの適用の方法に問題がある可能性があります。"
);
}
return succes;
} catch (e) {
alert("ファイルの取り込みの際にエラーが発生しました。");
console.error(e);
return false;
}
};
})();

View file

@ -1,80 +1,80 @@
//=============================================================================
// WeaponSkill.js
//=============================================================================
/*:
* @plugindesc Change skill id of attack for each weapon.
* @author Sasuke KANNAZUKI
*
* @help This plugin does not provide plugin commands.
*
* When <skill_id:3> is written in a weapon's note field,
* skill id # 3 is used for the weapon's attack.
* If nothing is written, default id(=1) is used.
*
* Check Points:
* - When multiple weapons are equipped, the skill id of the weapon
* held in the dominant hand (previously defined) is used.
* - It is most favorable for "skill type" to be "none"(=0),
* otherwise you cannot attack when your skill is blocked.
*
* Usage examples of this plugin:
* - to create all-range weapons
* - to create dual-attack or triple-attack weapons
* - If healing skill is set when actor attacks, you can choose a friend to heal.
* - It is possible to make a weapon that functions similar to a guard command.
*/
/*:ja
* @plugindesc 武器ごとに通常攻撃のスキルIDを変更します
* @author 神無月サスケ
*
* @help このプラグインにはプラグインコマンドはありません
*
* 武器のメモ欄に<skill_id:3> と書いた場合
* 通常攻撃の際3番のスキルが発動します
* 特に記述がなければ通常通り1番のスキルが採用されます
*
* チェックポイント:
* - 二刀流の場合利き腕(先に定義された方)に持っているスキルIDが採用されます
* - スキルタイプはなしにするのが望ましいです
* さもなくば技などを封じられたとき攻撃が出来なくなります
*
* 想定される用途:
* - 全体攻撃可能な武器
* - 2回攻撃3回攻撃する武器
* - 回復魔法をスキルに指定した場合
* 攻撃を選んだ際味方の選択が出来その仲間を回復します
* - 防御コマンドなどと同等になる武器も実現可能です
*/
(function () {
//
// set skill id for attack.
//
Game_Actor.prototype.attackSkillId = function () {
var normalId = Game_BattlerBase.prototype.attackSkillId.call(this);
if (this.hasNoWeapons()) {
return normalId;
}
var weapon = this.weapons()[0]; // at plural weapon, one's first skill.
var id = weapon.meta.skill_id;
return id ? Number(id) : normalId;
};
//
// for command at battle
//
var _Scene_Battle_commandAttack = Scene_Battle.prototype.commandAttack;
Scene_Battle.prototype.commandAttack = function () {
BattleManager.inputtingAction().setAttack();
// normal attack weapon (or other single attack weapon)
var action = BattleManager.inputtingAction();
if (action.needsSelection() && action.isForOpponent()) {
_Scene_Battle_commandAttack.call(this);
return;
}
// special skill weapon
this.onSelectAction();
};
})();
//=============================================================================
// WeaponSkill.js
//=============================================================================
/*:
* @plugindesc Change skill id of attack for each weapon.
* @author Sasuke KANNAZUKI
*
* @help This plugin does not provide plugin commands.
*
* When <skill_id:3> is written in a weapon's note field,
* skill id # 3 is used for the weapon's attack.
* If nothing is written, default id(=1) is used.
*
* Check Points:
* - When multiple weapons are equipped, the skill id of the weapon
* held in the dominant hand (previously defined) is used.
* - It is most favorable for "skill type" to be "none"(=0),
* otherwise you cannot attack when your skill is blocked.
*
* Usage examples of this plugin:
* - to create all-range weapons
* - to create dual-attack or triple-attack weapons
* - If healing skill is set when actor attacks, you can choose a friend to heal.
* - It is possible to make a weapon that functions similar to a guard command.
*/
/*:ja
* @plugindesc 武器ごとに通常攻撃のスキルIDを変更します
* @author 神無月サスケ
*
* @help このプラグインにはプラグインコマンドはありません
*
* 武器のメモ欄に<skill_id:3> と書いた場合
* 通常攻撃の際3番のスキルが発動します
* 特に記述がなければ通常通り1番のスキルが採用されます
*
* チェックポイント:
* - 二刀流の場合利き腕(先に定義された方)に持っているスキルIDが採用されます
* - スキルタイプはなしにするのが望ましいです
* さもなくば技などを封じられたとき攻撃が出来なくなります
*
* 想定される用途:
* - 全体攻撃可能な武器
* - 2回攻撃3回攻撃する武器
* - 回復魔法をスキルに指定した場合
* 攻撃を選んだ際味方の選択が出来その仲間を回復します
* - 防御コマンドなどと同等になる武器も実現可能です
*/
(function () {
//
// set skill id for attack.
//
Game_Actor.prototype.attackSkillId = function () {
var normalId = Game_BattlerBase.prototype.attackSkillId.call(this);
if (this.hasNoWeapons()) {
return normalId;
}
var weapon = this.weapons()[0]; // at plural weapon, one's first skill.
var id = weapon.meta.skill_id;
return id ? Number(id) : normalId;
};
//
// for command at battle
//
var _Scene_Battle_commandAttack = Scene_Battle.prototype.commandAttack;
Scene_Battle.prototype.commandAttack = function () {
BattleManager.inputtingAction().setAttack();
// normal attack weapon (or other single attack weapon)
var action = BattleManager.inputtingAction();
if (action.needsSelection() && action.isForOpponent()) {
_Scene_Battle_commandAttack.call(this);
return;
}
// special skill weapon
this.onSelectAction();
};
})();

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff