---
# System prepended metadata

title: LunaRPGStoryPlugin

---

# LunaRPGStoryPlugin

## ToDoList
- PartyPluginの基礎
	- Partyの参加、離脱
	- APIとして使えるようにする
- ボス部屋の振り分け、設定
	- ボス部屋前の座標(落ちた人用)
	- 看板
- 倒した後のドロップ設定
	- チェストの設置
	- 中身はMythicMobのドロップ品
	- MythicMobのドロップを消す
- Partyチャットの作成

## 概要
#### ボス部屋の入る処理
ダンジョン最深部にある看板を殴る  
→キーアイテムがあればtp  
→なければキーアイテムがない表示


#### ボスの待ち問題
部屋を複数作っておいてそこに配置  
パーティのみ同じ部屋に入れる(後述)  

#### 経験値、ドロップ品問題
MythicMobsから倒したイベント受け取って経験値をプレイヤーにgiveする  
ドロップ品はMythic側で設定  

#### キーアテム
- アイテムの種類とDisplayNameと説明が一致すればよいものとする

# プラグインの仕様
### cmd (/lunastoryassistant)
- /lsa admin getItem \<name\>
	- MythicMobsのアイテムから\<name\>を1つ与える

### RoomConfig
roomName: たくさん部屋があるものの集合  
uniqueRoomName: roomName中のある特定(1つ)の部屋  
uniqueGateName: ゲートの固有名  
以下で言うと、`A`,`B`,`C`がroomName  
`one`, `twe`がuniqueRoomName  
`foo`がuniqueGateName  

roomlist.yml
```yml
roomlist:
  - A
  - B
  - C
```

A.yml
```yml
KeyItem: name
ReturnPoint: 
  foo: myLocation
Rooms:
  one: myLocation
  two: myLocation
  three: myLocation...
```

- プレイヤークリック時に、キーアイテムの所持と座標を照合を行う
	- パーティの場合はパーティメンバーのだれかがキーアイテムがあるかの照合を行う。(近くにいる人のみにする?)
- tp時、プレイヤーのcontainerにroomNameとreturnPointの固有名を保存(再ログイン時門の前に戻ってこれるように)
- RoomDiceManager.classに

### クエスト
1. 依頼を受ける(NPCと会話)
2. 条件を達成する
	- 特定のモンスターをn体倒す
	- 特定のアイテムをn個持った状態で特定のNPCと会話
	- 誰かと話した後、依頼主と会話
4. NPCに再度会話?


### The Elfin Knight
[Story概要](https://docs.google.com/document/d/1CrVl4nHQKKrrjjcH1WhOH4ojX3WIQal3429I9udv3M0/edit)  
1. 守樹の村にあるカンブリックを使い、クラフトをすることで手に入ります。クラフトは糸も針も一切使わずにシャツを作ることができます。  
2. そのシャツをゴーストタウンにもっていき、涸れた井戸のそこにある砂に対して右クリックします。つまり、「砂で洗う」ことをします。  
3. 砂漠のそこらにある「枯れた苗木」でシャツを右クリックします。花は咲いていませんが、イバラで乾かしたことになります。  
4. 月の門は次期アプデ内容です。ひとまずここまでを作ることを目標にします。  

特殊クラフト機能が必要



---  
## 以下ボツ案
- /lsa admin setdialog start
	1. 対象NPCを殴る  
	2. 会話等の設定 (会話はすべて半角スペースに対応)
		- `/lsa admin add <条件> 会話`で会話の表示(複数追加可)
			- 1回の追加で1回分の表示に対応
			- 会話は半角スペース対応
			- 条件について
				- `none` → なし(クエスト未受注&未完)
				- `notorder` → クエスト未受注状態
				- `order` → クエスト受注状態
				- `done` → クエスト完了状態
				- `story@管理番号` → storyの管理番号がtrueの時
					- ※`none`以外は`&&`で条件追加できる
					- 例：`/lsa admin add order&&done`
		- `/lsa admin quest <name>`でクエスト受注が表示
		- `/lsa admin finish`で設定終了
		- `/lsa admin cancel`で設定を途中キャンセルする
	3. `/lsa changedialog <条件> <番号>  `で、`<条件>`の`<番号>`番目の会話を変更できる
	4. `/lsa dialog` で殴ると、そのNPCの会話一覧を表示できる