SRPGStudio総合スレ その1 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
!extend:checked:vvvvv:1000:512 !extend:checked:vvvvv:1000:512 !extend:checked:vvvvv:1000:512 シミュレーションゲーム制作ソフト、 SRPGStudioについて語るスレです ■公式 http://srpgstudio.com/ ■SRPG Studio wiki http://www8.atwiki.jp/srpg_studio/ 関連スレ 【同人ゲーム板】 - SRPG_Studio Part6 http://hayabusa6.2ch.net/test/read.cgi/gameama/1491309082/ 【ゲーム製作技術】 - 製作者スレ SRPG Studio 24章 http://mevius.2ch.net/test/read.cgi/gamedev/1495252696/ ◆注意事項◆ ・次スレは>>950 がワッチョイ形式で立ててください ・制作に関する質問や、作品・素材の投稿は自由です ・ほのぼの会話推奨。荒らしはスルー。NG機能を有効に利用しましょう VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured 👀 Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
特定のアイテムの耐久値だけを増減させるアイテムって作成は無理? 例えば「伽石」ってアイテムがあったとしてこれを使うと剣の耐久値だけを1アップさせるだとか(傷薬には使えない) 「水」というアイテムを使うと剣の耐久値が1下がるだとか これができれば俺の独自のシステムがなんとか擬似的には実現できそうなんだ…… 頼む、誰か教えてくれないか? >>795 耐久変化アイテムをカスタマイズすればできる 1.対象アイテムを限定させる事はできるか? MiscellaneousのisDurabilityChangeAllowedでできる このメソッドはitemが耐久変化アイテム,targetItemが対象アイテムを示していて 返り値がtrueならば選択可、falseならば選択不可になる仕組みになっている この中でカスパラをうまく使えば特定のアイテムやタイプだけに限定させることは可能 2.耐久を1増減のように全回復、半減、破壊以外で設定可能か? DurabilityChangeItemUseのenterMainUseCycleでできる このメソッドのdurabilityという変数の中に変化後の耐久値を格納している 例えば耐久18/30の武器で全回復なら30、半減なら9が入る itemTargetInfo.itemが耐久変化アイテム, itemTargetInfo.targetItemが対象アイテムを示しているから ここもカスパラをうまく使ってやれば特定の値だけ増減させる事は可能 1増減にこだわらず全修復でのもいいなら既存の機能だけでもいけそうな気がする どこまで自分で試したのか知らないから、なんとも言えないけど >>796 ありがとう カスパラを持ってるかどうかでif文を打てばいいんだね? すまないがどんな感じに打ち込めばいいのか教えてくれるとありがたい >>798 特定のアイテム"だけ"でいいならこんな感じ。剣全般とかになるともう少し工夫しないと駄目 targetItem:{id:<対象のID>, isWeapon: <対象が武器ならtrue, アイテムならfalse>} extraRecoveryValue: <耐久変化値、減らすなら負の値、増やすなら正の値> の2つを耐久変化アイテムに入れれば動く。行数制限きついから結構見辛くしてしまった (function(){ var alias1 = Miscellaneous.isDurabilityChangeAllowed; Miscellaneous.isDurabilityChangeAllowed = function(item, targetItem) { if (item && targetItem && typeof item.custom.targetItem === 'object') { if (item.custom.targetItem.id === targetItem.getId() && item.custom.targetItem.isWeapon === targetItem.isWeapon()) { return true; } else { return false; } } return alias1.call(this, item, targetItem); }; var alias2 = DurabilityChangeItemUse.enterMainUseCycle; DurabilityChangeItemUse.enterMainUseCycle = function(itemUseParent) { var durability, generator; var itemTargetInfo = itemUseParent.getItemTargetInfo(); if (typeof itemTargetInfo.item.custom.extraRecoveryValue !== 'number') { return alias2.call(this, itemUseParent); } durability = itemTargetInfo.targetItem.getLimit() + itemTargetInfo.item.custom.extraRecoveryValue; if (durability > itemTargetInfo.targetItem.getLimitMax()) { durability = itemTargetInfo.targetItem.getLimitMax(); } else if (durability <= 0) { durability = -1; } this._dynamicEvent = createObject(DynamicEvent); generator = this._dynamicEvent.acquireEventGenerator(); generator.itemDurabilityChange(itemTargetInfo.targetUnit, itemTargetInfo.targetItem, durability, IncreaseType.ASSIGNMENT, itemUseParent.isItemSkipMode()); return this._dynamicEvent.executeDynamicEvent(); }; })(); >>799 おお……神が降臨なさったか! 有り難く使わせてもらいます! 戦闘時に会話イベントが発生する際は 会話中だけ「戦闘上部」や「戦闘下部」等の画像を全て消して 要するに背景と待機モーションだけの状態にして 会話が済んでから元通りに表示させて戦闘を開始したいです これは公式に要望を出した方が早いでしょうか それともスクリプトで比較的手軽に実現できますか? コードの長さ自体は大した事ないだろうけど studioのコードの中身よく把握できてないとどう手つけていいか検討つかないと思う さすがに一箇所だけ書き換えればいいってわけじゃないですね やはり難しいですよね あと、会話だけではなく死亡時のセリフも同様なので まとめて要望を出してきます やはり難しいですよね あと、会話だけではなく死亡時のセリフも同様なので まとめて要望を出してきます >>806 死亡台詞や戦闘台詞の処理を行うクラスとUIフレームを描画するクラスの間に2つぐらい別のクラスが挟まっていて どうやって連動させていいのかわかり辛いってだけでやる事自体は難しくない 徐々にフェードアウトするわけでもなく本当にただ消えるだけならこれ https://www.axfc.net/u/3855897 キュウブさん製作の「耐久の分だけパラメータアップ」のスクリプト改造してアイテムでも働くようにしようと思ったんだけど 自分の知識じゃ「weapon」のところを「item」に置き換えするくらいの事しかできなくて、それだと機能しなくなってしまうらしい 分かる人いたら教えてください >>807 誰だろうと思ったらキュウブさんじゃないですか! 望み通りの結果となりました どうもありがとうございました 完成したらスタッフロールに必ずお名前を載せさせて頂きます 「カスタムパラメータlimitCorrectionIndex:Param Type.○○○を持っている使用不可能アイテムを所持していると そのアイテムの耐久値に応じて○○○の中に入っているステータスが上昇する」というスクリプトを作ろうと思ったんだけど これを入力すると「Line 106 識別子、文字列または数字がありません」というエラーが出て強制終了してしまう 対策が分かる人がいたら教えてくれないかな? http://www.axfc.net/u/3856348 特定のアイテムを使うと装備してる武器の耐久が減る、みたいなスクリプト無いかな 古事記くん向こうのスレで相手にされないからこっちに来たのか >>811 ないなら作ればいいじゃない(マリーアントワネット並感) 前から思ってたけどさ。戦闘アニメ作成で間接攻撃作るとき 一括変換でキースプライトを変更しても、X軸だけ一緒の数字にならないよね? 直接攻撃や待機とかならX軸もコピーされるけど 恐らく間接攻撃だと投げた武器が徐々にX軸を移動していくから 仕様でX軸はコピーされないようになってると思うけど 武器を投げる方でX軸を移動しないキースプライトまでX軸がコピーされないのは不便だと思う 戦闘準備画面でプレイヤーがユニットの配置を自分なりのものに入れかえる前の状態の配置と それと対応するユニットを製作者側で指定する事ってできませんか? 初期配置の数字が1の所にはAというユニット、2の所にはBというユニット…みたいな感じで マップ情報の強制出撃で出撃位置固定できるけど、それとは違うの? >>816 はい 強制出撃で位置を完全に固定したいのではなくて あくまで初期位置だけ思うような配置にして 戦闘に入る時にどういう配置にするかはプレイヤーの自由にさせたいんです 遠回りでややこしいけど既存の機能だけでできると思う できなかったらすまん あと初期固定したいのが何十人にもなると、凄く手間がかかることに 実際にやったわけじゃないから、煮詰めればもっと簡単にできるかもしれん ・やり方のヒント:初期配置の順は法則性があるよね? 一旦全ユニットを消去して並べたい順に登場させればいけるか? みなさん色々真剣に答えてくださって本当にありがたいんですが そういうやり方(順番を利用する)だとプレイヤーがそのマップに至るまでに どれだけユニットを仲間にしたとかに柔軟に対処できなくないでしょうか? 柔軟に対処するためのやり方なんだけど、理解出来てないということは もしかしてこのツールはまだ触ったばっか。もしくは体験版だけの状態とか? 仲間加入時にスイッチ入れれば仲間の状況をスイッチ管理するのはできるだろうね >>819 でやれるならOP前のマップ共有イベント1個作るだけで出撃順固定にはなりそう ステージ別に対応したいならOPの最初で共有のを上書きするって感じになるのかな >>821 すいません理解していたつもりだったんですが試しに作っていたマップが 同じマップで色々いじってたのが悪かったのか消したはずのイベントのコマンドが 干渉してか不具合が起きてたみたいで思うような効果が得られていませんでした 新しく別のマップで最初から改めてやってみたところ何とかなりそうだったので頑張ってみますが また何かありましたらご質問させてください 協力してくださった皆さん本当にありがとうございました >>823 ああ、初心者には敷居の高い組みかたになりそうだったから、もし初心者だったら他のやり方を探そうかと思ったんだけど 理解してたのね、すまんかった ダメージイベントがver1.160で色々変わったけど さらにダメージの効果音入れたり ダメージの数値とエフェクトを同時に表示させたり 戦闘時みたいにHPバーを減らしてみたり と手を加えてみた https://www.axfc.net/u/3859091 つまるところこうなる https://youtu.be/kmOMkDEZSFI ver 1.160自体がここらへんの処理で色々バグありそうで修正が入りそうな気配がぷんぷんするので 161になったらいきなり動かなくなるかもしれないです 戦闘アニメのモーションタイプの件で質問なんだけど ずっと前から自分で追加した弓兵系モーションタイプ・砲撃ってのがあって (要は相手に命中する瞬間爆風を巻き起こすエフェクトをつけたモーションタイプ) アップデートで武器エフェクトを使えば命中時に爆発アニメをいれることができるようになったから モーションタイプを指定してあってバズーカ系の武器のモーション指定を通常に変えて モーションタイプ・砲撃を根本的に消したいんだけど、これってあとあとエラーでたりしないかな? なんか昔、モーションタイプ消したら、知らない間に戦闘アニメがおかしくなってるところがあって苦労した記憶が とりあえず試しにやってざっと見た所、一応大丈夫に見えるんだけど、誰か最近消したこととかある? 関係ない話だけど、このアイテムデータの武器エフェクトを最初に調べた時、右側の項目触って効果音しか変更できなかったから、 こういった爆発のエフェクトをいれたりはできないかと思って今更ようやく気づいた 左側の項目はちゃんとカットインを挿入できるのね このツール、削除したい項目が、他の場所から読み込まれるように設定されていると 解除してから削除しないとだいたいの場合読み込めなくなってバグるよ 例えば武器タイプの相性で長弓が暗黒魔法に対して命中+15 回避+15とか設定してから 暗黒魔法消して弓のタイプ相性の暗黒魔法の設定したところのタブ開くとフリーズしたりとか アニメでも、武器にエフェクト設定とかモーション固有にしてれば削除するとなるのかも たぶん全部の対象武器から設定を解除しておけばモーションタイプ削除しても大丈夫 クラスのやつは前に不具合メール出したんだけどな >>830 なるほど。直接データを指定した部分は修正したけど そういった間接的にデータを参照にする場合も考えないとあかんかったか サンキュー 指定したユニットが所持できないアイテムって作れる? 使えないのではなく持つ事もできないようにしたい マップ共通イベントでそのユニットがそのアイテムを持っていたら即死するようにすればOK もしかして、イベント開始条件に『アイテムAを○個持っている』ってできないんでしょうか 俺も似たようなことを色々試したけど結局無理だったな 上から何番目のアイテムの個数(耐久)か、しか不可能 公式に要望出せば受け入れてくれるかもよ Wizさんが今年の1月くらいに作ってた特定のアイテムや武器の所持個数を制限する WizItemLimitってPluginでそのアイテムタイプをリミット1にして 持たせたくないユニットに1つ交換不可のリミット枠埋めアイテム持たせれば 一応実現できるけど公式に要望出したほうがスムーズかもしれんね リミットが1なら現状の所持、不所持の判定で良いんでは? 手間だけど現状でいけるっしょ アイテムAが存在したら削除して変数に放り込んでそれをアイテムAがなくなるまで繰り返せばいい 後は変数を条件にすればいい 最後に変数の分アイテムAを復活 しかしこれブックマーク機能だとツクールのコモンイベントのように呼び出すことはできないんだよな そのままコピペするしか 回想イベントだと使える必要条件がしょぼすぎるし まあコピペでもいいだろうけど ああ一応念のため補足しとくけど、変数に放り込むっていうのは+1していくってことで みなさん色々ありがとうございます とりあえず要望出してそれまでは変数でやってみます クラスチェンジや蘇生の画面をイベントコマンドで呼び出して実行できるようにしたくて 色々見よう見真似で取り合えず下みたいなのを書いてみたんだが(全く機能しない出来損ないだけど) 書き方の方向性としては合っているんだろうか? 何となく_prepareEventCommandMemberDataと_completeEventCommandMemberDataに何を入れるかが 重要なんじゃないかとは思っているんだけど具体的に何を入れればいいのかがよく分からない ttps://dotup.org/uploda/dotup.org1379307.txt.html >>841 そんな感じで改変していけばいけるはず 最初のvar alias1の行と ScriptExecuteEventCommand._configureOriginalEventCommandは 即時関数の中に入れておかないと alias1 = ScriptExecuteEventCommand〜っていう変数の値が 他でも使えてしまう 他のスクリプトでよく見るけど 最初の行に(function(){ 最後の行に})();って書いてあるやつ 最初と最後の行である必要は全く無いんだけど1-6行目は含めておいた方が無難 _prepareEventCommandMemberDataと_completeEventCommandMemberDataは 単に初期設定だけしとけばいい 二つの使い方に関して俺もあんま区別できてない _complete〜の返り値次第ではコマンド実行しないって使い方をしているぐらい それよりも enterEventCommandCycle コマンド実行後一番最初に呼び出されて返り値がEnterResult.OKなら処理開始、EnterResult.NOTENTERなら開始前に処理終了 moveEventCommandCycle 毎フレーム呼び出してMoveResult.CONTINUEを返す限り処理続行、MoveResult.ENDで処理終了 drawEventCommandCycle コマンドが実行される間、毎フレーム呼び出される(だからこの中に実際にゲーム画面に出てくるような描画処理などを仕込んでおく) 一番意識しなきゃいけないのはこの3つぐらいだと思う おそらくユニット一覧のクラスチェンジを参考にしてると思うけど、あれは一覧からユニット選ぶ操作を挟んでるからそのままはアカン 画面呼び出すだけのイベントならeventcommand-savecall.jsが参考になる あとイベントで呼び出すからには対象のユニットをどう決めるか考えておく必要がある フレアボムとか結界みたいなマップに設置するトラップってどうやって作るんだろ それだけじゃどういう処理で実現したいのかがわからんよ マップチップ変更でダメージ地形判定持たせたいのか 操作不可の同盟キャラチップ配置でオートで攻撃させたいのかにもよる ちなみにどっちも既存のプラグインやツールのデフォルトで出来るけど 独自の処理させたいんならスクリプト詳しい人に、実装したい仕様説明しないと 移動中に発動する地雷や 進路妨害系機能は作った事あるけどめちゃ苦労した記憶はある マップチップ変更で対応する地形に変更させることでトラップを再現したんだ 侵入不可の結界マップチップをアイテムを使ってグローバルスイッチをオンにすることで出現させる所までは出来たんだけど ターン経過で結界が消滅する処理が出来なくて困ってしまった OTさんの範囲攻撃スクリプトも確か範囲攻撃アイテムで地形変更できて 透過チップなら配置するように出来た気がするけどスイッチ使ってるのかー でもターン経過で消える処理はやったことないからわからんな… 一応、OTさんのスクリプトは再使用で消せたけどターン経過でオートではないしな ターン経過でマップチップ変更はいくらでもやり方あると思うけど ツールで変化前の地形を取得する方法ってあったっけ 特定地形にしか使えないようにしないとなかなか難しそう >>849 変化前を記憶しておく手段は無い、自分でスクリプト書いてどうにかするしかないはず でも単に侵入不可地形へのマップチップ変更しようとしても 変化前が上に重ねるタイプのマップチップだった場合は画像が消失して見た目がおかしくなると思う 見た目も違和感ないようにするなら 毎フレーム移動範囲関連の計算している間だけ侵入不可地形に切り替えて描画が実行される前に元に戻す それとは別に結界の画像をベタっと直接貼っておくとかやるしかないかなあ ZOCスクリプトを改変すればできると思う 色んなスキルの詰め合わせです ・俊敏 隣接する敵から攻撃された時、回避+20 ・清流の一撃 自分から攻撃した時、回避+20 ・冷静沈着 相手より攻速が8以上遅い時、命中+20 ・先手必勝 自分から攻撃した時、必殺+20 ・怒り 相手から攻撃された時、必殺+30 ・カウンター 相手から攻撃された時、必殺+100 https://www.axfc.net/u/3861712?key=srpg 怒り、カウンターは発動化スキル無効化で無効化できません 必殺無効では消えます 本プラグインはスケルトンの人氏の動体視力を改変したものです >>851 HitCalculator.calculateAvoidは ver1.160から地形ダメージなどのイベントでも呼び出すようになったわけだけど その時activeはnullになっているからエラーになっちゃうよ メッセージの文字の表示速度を遅くしたいです デフォルトの速度が速すぎる印象があるので 全てのメッセージをもう少し遅くしたいです コンフィグ等には設定するところが見当たらないので スクリプトをいじるしかないのでしょうけど どうすればいいのでしょうか コンフィグでもメッセージスピードは設定できるけど、それでもまだ早いってことなのか? ゲーム内のコンフィグにメッセージ速度の項目はあるよ >>856-857 エディターばかり見ていてゲーム内にあるのを忘れていました しかし低速でやっと丁度いい速さに感じますね カスパラやプラグインに変数の値を呼び出してそれに応じて武器攻撃力を変動させるってのがやりたいんだけど ゲーム中で確認したら文字が\va5[0]とかになってしまって読み出すことができない 制御文字使ってva変数を数字として出力する事ってもしかしてできない? 制御文字はヘルプのところに書いてあるけどメッセージ系のイベントにしか使えないぞ カスパラで変数のグループ番号やIDを指定して プラグイン側でその変数の値を取り出して武器攻撃力に設定するってやり方になる カスパラに「{number}indexva5[0]」みたいに入れて プラグインにunit.custom.numberみたいに入力すればいいのかな 例えばva5[0]の値を使いたいならカスパラを{group:5, id:0}として var group = unit.custom.group; var id = unit.custom.id; var value = root.getMetaSession().getVariableTable(group).getVariable(id); みたいな感じになる ↑はカスパラのチェックとかしてないからそのままは危ないけど >>862 カスパラに{group:5,id:0}を突っ込んだら 「","がありません」ってエラーが出てしまう 原因は既に他のカスパラを入れてるからだったけどこれはなぜ競合してしまうんだろう? ないとは思うけど {group:5,id:0}{hokano:100} みたいにやってるとか {group:5,id:0,hokano:100} にしてる? うん。ない ちゃんと{}文を下に改行してから改めて{}文を記述してる ごめん、理解できた 要するに他のプラグインと競合する場合には{}と{}の間に,を入れなきゃならないんだな で次の問題だけど「指定した変数の値だけ指定したステータスが強化される(この場合は変数+力)」プラグインを作ろうと思ったけど (function() { var alias1 = AbilityCalculator.getPower; var group = unit.custom.group; var id = unit.custom.id; var value = root.getMetaSession().getVariableTable(group).getVariable(id); AbilityCalculator.getPower = function(unit, weapon) { var pow = alias1.call(this, unit, weapon); if (unit.custom){pow += value;} return pow; }; })(); と宣言させたら「line3: 'unit'は宣言されていません」と出てエラー落ちしてしまう 何か宣言させなきゃならない? ううむ、まず宣言とか競合の意味ちゃんと分かってる? とりあえずvar group以下の3行をvar powの下にでも移せばエラーは出なくなると思うけど あと武器の表示上の攻撃力も変動させたいならItemSentenceだかも変えなきゃダメかも 確かにグローバルでは宣言されていないからunitなんて変数使えんって言われているわけだけど 他でAbilityCalculator.getPowerを呼び出した時のunitの部分にユニットデータを入れているんだから メソッド内でunitに関する処理を書かないと攻撃力計算時のユニットデータを取り扱う事ができないよ >>868-869 すまん、正直な話その処理の書き方が分からない…… ここまでの流れ全然読んでないけどunitがnullならunitにまつわる処理飛ばすようにすればいいんじゃないの if(unit !== null){ 以下略 とでも付ければいい >>870 ざっくりな説明になるから正確ではないけど var group = unit.custom.group;っていうのが groupって変数を作るよ 中にはunitって変数のカスタムパラメータのgroupの値を入れるよって意味な訳 でもエラー出るのはunitなんて変数教えてもらってないから知らねえよって怒られてんのよ で、AbilityCalculator.getPower = function(unit, weapon) { ってのが他所からunitとweaponって変数持ってきてAbilityCalculator.getPowerをやるよ って意味だから、unitが書いてある行をその下に移してみて ぶっちゃけるとgroup, id, valueの部分を全部getPower内に書けばいい 違いがわからない時は ローカル変数(局所変数)やグローバル変数(大域変数)についてググりなされ AbilityCalculator.getPower = function(unit, weapon) { var pow = alias1.call(this, unit, weapon); var group = ... var id = ... var value = ... ... スクリプトで倒せなかった時の経験値の部分をいじらないとダメージ分の経験値入ってきたはず もしかして反撃してこないで攻撃だけの敵って作れない? 全キャラの反撃オンオフや反撃するスキルはあるけどキャラ単体をしない設定は見つからなくて… これスクリプト案件なんでしょうか 一方向だと反撃しないだけじゃなくて反撃されないもついちゃうからなぁ スクリプトいじれば簡単だけどこれは普通に要望出してもいい気がする まぁスキルでいけるな。パッと思いつく限りでもステート攻撃と有効相手を利用するとか やり方は色々あるだろうから、もっとスマートにもできるだろうけど 皆さんありがとうございます とりあえずスキル色々いじってみます 一方向って地味に使いにくいよな。デフォ機能だけどほぼ使わない まぁマニアックな要望もたくさん取り入れてるみたいだから、人によってそんな機能は沢山あるんだろうな >>872-873 ありがとう、おかげでエラー落ち自体は消えたよ でも該当のカスパラ持ちの武器持たせて変数も調整して動作を確認してみたら 機能していない…… もう機能の搭載を諦めた方がいいのかもしれないな…… いや、そりゃユニットじゃなくて武器にカスパラ書くならunit.custom.じゃなくて weapon.custom.にしなきゃダメだよ 作りは少し違うけど変数の値が武器攻撃力に加算されるスクリプトなら 俺も2年前くらいに作ってずっと現役で使ってるから出来るのは間違いない >>886 (function() { var alias1 = AbilityCalculator.getPower; AbilityCalculator.getPower = function(unit, weapon) { var pow = alias1.call(this, unit, weapon); var group = weapon.custom.group; var id = weapon.custom.id; var value = root.getMetaSession().getVariableTable(group).getVariable(id); if (weapon.custom){pow += value;} return pow; }; })(); これに変更してみたけどやっぱり機能しない 変数には10とか入れて絶対に変更がわかるようにしたけどやっぱりダメ 上でも言ったけど「武器の攻撃力を上げる」じゃなくて「攻撃力を上げる」 スクリプトだけどそれは大丈夫? それそのまま新規プロジェクトに入れて変数に1000突っ込むとこうなったよ https://i.gyazo.com/cce67e02adc87351e7ccc2b0bf93c6ce.png あと連レスになるけど変数の指定の仕方が制御文字と少し違うから気を付けて どっちも0から始まるから例えば最初の変数なら{group:0,id:0}の指定になるよ >>888 ご指摘ありがとう 確かに新規プロジェクトではそういう風になるというのを確認したよ でも製作中のプロジェクトだと機能しないから恐らく何かと競合してるらしかった こっちでも色々やってみるよ協力ありがとね 本体更新したらなぜか魔法キャラ数人のモーションが動かなくなったんですがここ1,2ヶ月で何か規格変わったりしました? 実際に更新してないから断言はできんが 更新履歴見てた限り規格そのものは変わってないはずだけど どれくらいのバージョンから更新したん? ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる