忍者ブログ

しいたけサイクロン

主にRPGツクールVXAceを扱うブログです。 ここに公開してあるスクリプトは全部自由に使用してもらってかまいません。 改造なり何なりして好きに使ってください。

アイテムなどの説明を加えるスクリプトの製作

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

1. 無題

こ、これは…
アイテムウィンドウバージョンも作ってくださるとは…
実は当方別のショップ定義入りのスクリプトを入れていたため
ショップバージョンは競合してしまい、軽く落ち込んでました。
アイテムなら平気そうなので楽しみにしています!!

2. 返信

まるさん、こんばんは。期待していただいてうれしいです。
もう少し改良をしてキャラクターが持つ時間によってセリフが変化することもできるようにしようと考えています。
あともし他所のスクリプトと競合して上手くいかない場合はそのスクリプトを教えていただいたら対処できるかもしれないので遠慮なくコメントしてください。

3. 無題

実は経緯的にも、スクリプト的にもややこしいスクリプトでして
ひきも記は閉鎖しました tomoaky様のVX版スクリプト、ローグライクβを
点線上の文字の羅列 faida様がVXA版に移植し、機能追加していたものです。

ローグライクパートと通常RPGパートで分かれており、RPGパートでtentako様のこのスクリプトを使用したいのですが…
スクリプト知識の浅い素人にはやや難解のようです…

4. 返信

こんばんは。
ちょっと時間がかかりましたがそのスクリプトを見つけました。
まだちょっとスクリプトの全容を把握できていないのですが
一応強引なやり方でそれっぽくできたのですが、あまりにもスマートなやり方じゃないのでもう少し考えてみます。
たぶん土曜の晩にはなんらかのやり方を提示できると思います。


5. 無題

本当ですか!うれしいです!
お時間をいただいてしまいすみません!
全然急がないので、気が向いたときにでもしていただければありがたいです!

6. 返信(エラーに引っかかるので分割して投稿)

まるさん、こんばんは。完全にテストできたわけではないのですが一応上手くいってるような方法を挙げてみます。
まず、次のスクリプトを私のスクリプトたちの下に加えます。
http://blog.cnobi.jp/v1/blog/user/3d98d60619f35633a8bcdbe904a90e7c/1572709933
次に、私のスクリプトのScene_Shopの startのcreate_command_windowの下にcreate_dummy_windowを挿入してください。もしよくわからなければ、次のスクリプトを私のスクリプトたちの下のほうに追加しておいてください。
http://blog.cnobi.jp/v1/blog/user/3d98d60619f35633a8bcdbe904a90e7c/1572708190
「追加プラグイン:持ち込みショップ」におけるScene_DItemShopのcreate_gold_windowにおいて
@gold_window.y = @help_window.heightを
@gold_window.y = @sales_window.heightと書き換えてください。

7. 返信続き

また同じScene_DItemShop内にあるcreate_buy_windowにおいて
@buy_window.sales_window = @sales_windowを
@buy_window.status_window = @status_windowの下に挿入してください。

「追加プラグイン:持ち込みショップ」よりも下に次のスクリプトを導入してください。
http://blog.cnobi.jp/v1/blog/user/3d98d60619f35633a8bcdbe904a90e7c/1572708188

これらを操作をした後にGame_InterpreterのVarShopSwitchの値をIDとする変数が2種類のショップの切替スイッチになります。その変数値が0のときはDItemのショップ、それ以外は通常ショップになります。
下の例のようにしてショップを区別します。
http://blog.cnobi.jp/v1/blog/user/3d98d60619f35633a8bcdbe904a90e7c/1572710246

少々夜遅くなり眠いこともあって説明が抜け落ちている場面もあるかも知れません。それからバグもあるかもしれないのです。
その他、細かい調整などの質問を含めて遠慮なくコメントしてください。
私自身後でまた確認してみます。

8. 無題

夜分遅くまでありがとうございます!
さっそく導入してみました!
今のところ問題なく動作しております!感激です!
これからツクりつつ、エラーが起きないか見ていきます

これで選択肢式ショップみたいなことしないで済みます!
本当にありがとうございます!

9. 返信

まるさん、こんばんは。
とりあえず上手くいっているようでほっと一安心しました。
もし何かあったら遠慮なくコメントしてください。

10. 無題

tentako様、いつもお世話になっております。
先日の競合対策の件なのですが、
どうやら[:thanks_buy],[:thanks_sell],[:select_buy],[:select_sell]
をしゃべっていないみたいです。
もちろんtentako様のサンプルプロジェクトでは正常に動作しております。

それから細かくて申し訳ないのですが、
サンプルプロジェクトの方でもなのですが、
「購入する」や「売却する」を一度、選択しアイテムウィンドウ遷移後、
キャンセルし、購入・売却・やめるに戻った際のセリフなのですが、
直前のセリフのままなので、[:greeting]か[:select_buy]あたりに切り替わると
ベストなのかな、と思いました

11. 返信

まるさん、こんばんは。
調べてみると確かにいくつかの言葉を思い通りに話してくれませんね。
これからちょっと調整してみます。

あとコマンドウィンドウ(購入・売却・やめるのウィンドウ)へ戻った際のセリフの件ですが
新しくそれ専用のセリフを設定できるようにすることにしました。
もうすでにテストでやってみて上手くいってるのですが
機能をいくつか追加したショップスクリプトver.2を近いうちにアップする予定なのでそのときに一緒に公開します。

12. 調整しました

調整することができました。

追加プラグインのScene_DItemShopのcommand_sellにおいて末尾に
@sales_window.phase = :normal
@sales_window.message_type = :select_sell
@sales_window.refresh
を追加してください。
同じくdo_buyの末尾に
@sales_window.message_type = :thanks_buy
@sales_window.refresh
を追加してください。
同じくdo_sellの末尾に
@sales_window.message_type = :thanks_sell
@sales_window.refresh
を追加してください。

上がわかりにくい場合は下のスクリプトを追加プラグインより下に入れると上手くいくと思います。
http://blog.cnobi.jp/v1/blog/user/3d98d60619f35633a8bcdbe904a90e7c/1572970192

13. 上手くいきました!

いつも迅速な対応ありがとうございます!
試してみたところ うまくいきました!
ver2も制作中ということでソワソワしてますw
お身体には気を付けて!

14. 返信

まるさん、こんばんは。
無事に動いたようでよかったです。
何か見落としたバグなどがあったら遠慮なく連絡してください。

ショップver.2で時間によってセリフを変えることができるようにしようと思ったのですが
同じ店員のデータを複数個作って変数で切り替えれば今のままでもできそうなので、
店員データを複製する機能を追加してみました。
もう少し機能を追加したらアップするので楽しみにしていてください。

もし何かこんな機能がほしいって要望があれば遠慮なく言ってください。

15. 無題

ショップへの追加機能ですか。
累計購入額でセリフが変わるとかも変数で行けそうですしね…
あれいけるのかな?分からなくなってきた。
そもそもそういう機能は使う予定今のところないしなぁ…

また思いついたら提案させて頂きます!

それにしてもスクリプトを自由に操れてうらやましいです
自分は見よう見まねでコピペしてはノーメソッドエラー連発するような素人なので…

16. 返信

累計購入額は普通では難しいですね。
店は買うだけの設定にすれば、購入の前後の所持金の変化を変数に入れて加算すればできますが
売り買いの両方できる場合はできないと思います。
ただ累計購入額はショップのスクリプトに組み込むよりは、購入額を指定した変数へ入れるスクリプトにしたほうが汎用性がありそうです。
それから関係することではゲームの統計情報(戦闘回数、戦闘勝利回数、ゲームオーバー回数、etc. )をゲーム中に記録して、その記録を呼び出せるようなスクリプトをそのうち作ろうかなと考えていたところです。

ちなみに私もプログラミングに関しては結構な素人だと思います。
いくつかのプログラミング言語をちょっとだけ触った状態から
RubyをツクールVxAceのヘルプで学んで、スクリプトいじりながら覚えた感じです。
ただ長いこといじり続けているおかげでツクールのスクリプトの全体像が大体把握できているので
こういうことがしたいならこうすればいいんだろうとか、
こういうエラーが出たということはここがおかしいんだろうなというのが割りと分かるので
スクリプトが作るのもだいぶ早くなりました。
あとは数学が得意なのもたまに役に立つかな。
まぁでもツクールのスクリプトをいじってるだけでもそのうち作れるようになると思いますよ。

17. 無題

うーむ、確かに一番最初の自分よりはスクリプトが少しわかるようになった気がしますが
tentakoさんレベルまでなるのには相当時間と根気が要りそうです…。
私の問題は活字嫌いでヘルプを見ても頭に入ってこないとこです。

そういえばこのスクリプトで
あると嬉しい機能ですが、表情を変えるために顔グラを指定できると助かります。

それと別件でパズルやリバーシ等のスクリプトもお借りさせてくださいませ

18. 返信

私もヘルプを読むといっても、軽く読んでなんとなく分かったらすぐスクリプトいじりをやっていて、詰まったらその箇所を真面目に読むみたいにしていたので、基本的に慣れだと思います。

顔グラの変更ですね。ver.2で入れておきます。
実はver.1で顔グラの変更機能も入れようと思いながら、その機能を入れずに公開していて
店員の定義のところで顔グラの指定が配列になっているのもそのせいです。
だからすぐに実装できると思います。

>それと別件でパズルやリバーシ等のスクリプトもお借りさせてくださいませ
どうぞ自由に使ってください。
ただしリバーシはスクリプト公開後も結構いじっていてゲーム製作のカテゴリーで公開しているリバーシver1.3が
最新なのですがスクリプトとしては公開していません。
もし最新版を希望されるなら、スクリプトして使えるように改造して公開しますのでコメントしてください。(ただしAI部分はゲーム版から抜くかもしれません)

余談ですが前回言っていた宿の累計ですが上手くできました。
これも近いうちにスクリプトとして公開すると思います。
http://blog.cnobi.jp/v1/blog/user/3d98d60619f35633a8bcdbe904a90e7c/1573312071

19. 累計

なんと店?商人?ごとに変数を指定できている??とは
これだと同じ商品でも…たとえ値段が高くても…
いつものお店で買いたくなる仕様とかできそうでいいですね…
あるいは常連さんだと価格が下がるとか…オマケがもらえるとか…

ああ、これはまた人間味あふれる演出ができそうで素晴らしいですね!

ところでリバーシのAI部分を抜くとはどういうことでしょう?
最新版のAIはミカンなので、とかでしょうか?

20. 返信

まるさん、こんばんは。
私も常連に対してサービスが受けられるのを考えたので店ごとに累計を出すようにしました。
ショップの累計購入額の件ですがショップ前に変数を指定することでショップの購入金額をその変数に加算する仕様になっています。
ですから店ごとの累計額が変数に記録されることになります。
すべての購入総額を出したいときでも各変数値を加算することで求められます。
ただショップの割引はスクリプトなしにできましたっけ?
もしできない場合でも誰かがスクリプトを作ってそうですが、とりあえず割引スクリプトも作ってみます。
このあたりのスクリプトたちもまとめてショップ関連のスクリプト集として公開します。
ちなみにこの記事のテストゲームにも売り専門ショップがあって、これもスクリプトで追加したものです。

リバーシの件は続きで。



21. 返信

リバーシのAIの件ですが、一応私もゲームとして作っているものなので、同じAIが量産されてしまうのもどうかなぁという感じでして、少しシンプルな形にして公開して
マニアックな手筋は各自設定してもらうかもしれないということです。
以前のリバーシのスクリプトと同じように,まず基本的な動作をするAIを積んだものがベースで、オプション的にAIを強化するスクリプトを追加するという形式になっています。
それで現在ゲームに使ってる追加されたAIは序盤、中盤、終盤に分かれていて、
序盤が定石に従って進めて、
定石に無い展開になると中盤に移り評価値に従って進めて、
残りの空白地の数が一定以下になると終盤に移り完全読みします。
中盤と終盤はいじりにくいのですが、序盤は定石データ次第なので変更が簡単ですので、
公開する追加AIでは序盤の定石データを基本的なものに絞って、追加したい定石や手筋がある場合は各自追加してもらうようにしようかなと考えています。

22. 無題

確か割引ではなく、ショップの価格が通常の機能で直接記入できる部分があった気がしますが、
一品一品価格直接指定なので、初期機能を使うと電卓片手に結構な仕事を要求されそうですよ。

リバーシのAIは難しいのですね。ある意味それだけで一本のゲームになり得ますからね…
難度もどこまでが一般レベルなのか、ハイレベルなのかもルールを知っているだけの私には判断が難しそうです。自分が勝てるかが唯一の判断基準になりそうです。
おそらくAIだと最善の一手が計算できそうな気もするのですが、確率でヘマする…とかも加味するのでしょうか?

23. 返信

まるさん、こんばんは。
確かに価格を個別に設定できますね。気づいてませんでした。
一応割引スクリプトも作ったので、いずれアップします。

リバーシのAIの件ですが、
有名なオセロソフトにWZebraというのがあるのですが、最新版のAIはあれの2手読みといい勝負をします。
ですから一般の人が対戦するには強すぎるので弱体化する必要があるかと思います。

以下現状のAIで設定できることを説明します。
まず最後の完全読みは開始し始める空きの個数を変更させることができます。
開始する空きの数を0にすれば完全読みはしなくなりますし、
理論上は最初から完全読みをすることも可能ですが、1000年単位で時間がかかりそうなので実際は残り12~13手くらいが完全読みの現実的な最大でしょうか。
中盤も読みの深さを変えることができます。最新版だと4手読みです。
ただ現状AIを4手読みに最適化しちゃったので、1手読みだとたまに変な手を打つため少し修正が要ります。
また中盤において最善選択の緩さも設定できます。厳しくすると、AI評価における最善以外はほぼ打たなくなりますが、緩くすると、いろいろな手を打ちますが悪手を打つこともあります。
序盤は定石次第なので、定石データなしだといきなり中盤のように評価に従って打ってきます。

というわけで一応弱体化は可能です。
もう少しいろいろレベルを調整できるように修正してみます。

24. 無題

WZebra知らなかったので調べてみましたがすごいですね…
AI同士を戦わせるとか自分には立ち入れない領域だと思っていましたが…
やはりゲームとして作っている方だったとは

ちなみに私の場合はミニゲーム的な
弱いけど戦意だけは感じられるようなAIレベルを考えておりますw
戦意の部分はver1.3のセリフとかで演出できそうですね
ちなみにボロ負けでした。
3回連続パスさせられて…打てる場所も1か所しかなかったりとか…

25. 返信

まるさん、こんばんは。
このリバーシは、もともと自分自身のjavascirptの勉強用に作っていて、
AIに拘っているうちにやたらに強くなってしまったので
途中からゲーム製作に切り替えたものなんですよね。
javascriptで作ったものをrubyに移植したのが(ただしAI以外のリバーシの動作の大半は以前公開したスクリプトを利用)、ver.2以降になります。

強すぎないAIを作るのならば完全に新規に思考ルーチンを組んでもそんなに手間がかからないと思うので、新しく作るかもしれません。

とりあえず、パンダオセロ(panda reverse)というネットでできるオセロゲームが昔からあるのですが、それと戦わせて互角くらいのAiを作って見ます。

26. 無題

パンダオセロ探してみました。
最弱らしきAIで何度かやってみましたが惜しいところで負けるというのを繰り返し…
rubyより前にオセロを勉強しないとダメかもしれない…

javascriptといえばツクールMVもそうじゃありませんでしたっけ?

27. 返信

まるさん、こんばんは。

オセロは将棋よりルールを把握している人が多そうなのですが、
オセロを勉強している人は将棋を勉強している人より少なそうですので
オセロに関しては、結構弱めに作った方がいいかもしれませんね。
それかレベル形式でいくつかのAIを用意するようにするという手もありますね。
ちなみに複数Aiを用意するのは現段階でもできます。

私もそこまでオセロに強いわけではないのですが、
AIを作っている際に色々調べたり、考えたりしているうちに以前よりは大分強くなりました。
オセロをちゃんと学んでいる人たちを相手にすると勝てないと思いますが
パンダオセロ(PAPAパンダ)ならほぼ勝てるくらいの強さではあります。

MVはjavascriptらしいですね。
私も結構興味があるのですが、いまだに買っていない状態です。
とりあえず近いうちにPCを買い換えるのでそれまでは買わないのですが(買い換えると認証とかがめんどくさそうですし)
買い換えたら、MVを買ってスクリプトを作ってみるかもしれません。
ただMVが販売されてしばらくたっているのでそろそろMVAceとか出てきそうでそれを待った方がいいのかなぁとも思ったりして、手をつけづらい状態です。

リバーシのAIの思考を変えてみました。ですがまだ強めかもしれません。
http://blog.cnobi.jp/v1/blog/user/3d98d60619f35633a8bcdbe904a90e7c/1574090775
ショップのver.2は大体できたので明日か明後日にアップします。

28. 無題

上記のリバーシやってみましたが…10回くらいやって一回だけ勝てました…
大体が前半~中盤まで押せてて、後半一気に巻き返される、という展開でした…。
絶望したあとで「まだ強めかもしれません。」を読み落としたのに気づき
落ち着きを取り戻しました…。
強さ的にはどのくらいなんでしょうか?

ショップの方も楽しみにしてます。

29. 返信

まるさん、こんばんは。
上のリバーシは、wzebraの評価では微妙な手が多いのですが、ただ適切に打たないと
うまくゲームを進められてしまいます。
中盤はなるべく自分の打てる手を増やして、なるべく相手の打てる手を減らすという思考がベースになっています。
終盤は残り8手以下から完全読みしてくるので、終盤までにきっちり優勢に進めていないと厳しいかもしれません。
強さははっきりわからないのですがパンダオセロ(PAPA)と1度だけですが対戦させてみたところ
このAIが勝ってしまったので、それなりの強さがあるかもしれません。
もっとシンプルなAIを作ってみることにします。

ショップなんですが、ふと店員のバストアップ画像(全身画像でもOK)を表示させるのも面白そうかなと思ったので、
標準は今まで通りの表示でオプション的にバストアップ用のスクリプトを追加するようにします。
ですから明日にはアップする予定だったのですが、もう1日延びるかもしれません。

30. 無題

バストアップ面白そうですね!
ただ画像を用意できない人にはつらそうなので、おっしゃる通りオプション的なのが良いと思います。
絵が描けるようになりたい…。

31. 返信

まるさん、こんばんは。
バストアップ画像はどう演出するかもう少し検討したいので
とりあえず、バストアップじゃない標準のver.2をアップすることにします。
本当は今日アップする予定だったのですが、週末に思わぬ予定ができてしまったため
少し遅れてしまいましたが明日(正確には今日)にアップすることにします。
それから例のローグライクスクリプトとの競合問題も新しいverだと新たに調整する必要があると思いますので、それもコメント欄のほうでアップします。

32. 返信

すみません。スクリプトはできているのですが公開するページを作るのに時間がかかっているため、公開はもう1日延期します。
テストゲームはこんな感じです。

https://cyclone.siitake-alacarte.com/files/Shop_ver2.0.zip

33. 無題

全然急がないので大丈夫です!どうか気負わずにやっちゃってください!
テストゲームやってみました。
表情差分入れないとこうなりますよねw
いきなりおっさんが出てくると笑ってしまう

34. 返信

まるさん、こんばんは。
少し遅れましたがアップしてみました。
バストアップ版もいずれアップします。
不具合や質問などがあれば遠慮なくコメントしてください。

ただいまコメントを受けつけておりません。

アイテムなどの説明を加えるスクリプトの製作


以前アップしたショップスクリプトと同じ感じでアイテムの対して説明をするスクリプトを製作中です。ショップスクリプトのコメント欄にアップしたスクリプトをもう少し進めてみました。

・テストゲーム
ダウンロード


手に入れたことのあるアイテムを記録してそれをリスト化してそれに説明をする場合と現在所有しているアイテムの説明をする場合の2通りができるようにしました。
今回のテストゲームでは「所有しているアイテムの説明」をメニューコマンドの”分析”で行うことができます。
また手に入れたことのあるアイテムの説明はバニーガールに話しかけることでできます
PR

コメント

1. 無題

こ、これは…
アイテムウィンドウバージョンも作ってくださるとは…
実は当方別のショップ定義入りのスクリプトを入れていたため
ショップバージョンは競合してしまい、軽く落ち込んでました。
アイテムなら平気そうなので楽しみにしています!!

2. 返信

まるさん、こんばんは。期待していただいてうれしいです。
もう少し改良をしてキャラクターが持つ時間によってセリフが変化することもできるようにしようと考えています。
あともし他所のスクリプトと競合して上手くいかない場合はそのスクリプトを教えていただいたら対処できるかもしれないので遠慮なくコメントしてください。

3. 無題

実は経緯的にも、スクリプト的にもややこしいスクリプトでして
ひきも記は閉鎖しました tomoaky様のVX版スクリプト、ローグライクβを
点線上の文字の羅列 faida様がVXA版に移植し、機能追加していたものです。

ローグライクパートと通常RPGパートで分かれており、RPGパートでtentako様のこのスクリプトを使用したいのですが…
スクリプト知識の浅い素人にはやや難解のようです…

4. 返信

こんばんは。
ちょっと時間がかかりましたがそのスクリプトを見つけました。
まだちょっとスクリプトの全容を把握できていないのですが
一応強引なやり方でそれっぽくできたのですが、あまりにもスマートなやり方じゃないのでもう少し考えてみます。
たぶん土曜の晩にはなんらかのやり方を提示できると思います。


5. 無題

本当ですか!うれしいです!
お時間をいただいてしまいすみません!
全然急がないので、気が向いたときにでもしていただければありがたいです!

6. 返信(エラーに引っかかるので分割して投稿)

まるさん、こんばんは。完全にテストできたわけではないのですが一応上手くいってるような方法を挙げてみます。
まず、次のスクリプトを私のスクリプトたちの下に加えます。
http://blog.cnobi.jp/v1/blog/user/3d98d60619f35633a8bcdbe904a90e7c/1572709933
次に、私のスクリプトのScene_Shopの startのcreate_command_windowの下にcreate_dummy_windowを挿入してください。もしよくわからなければ、次のスクリプトを私のスクリプトたちの下のほうに追加しておいてください。
http://blog.cnobi.jp/v1/blog/user/3d98d60619f35633a8bcdbe904a90e7c/1572708190
「追加プラグイン:持ち込みショップ」におけるScene_DItemShopのcreate_gold_windowにおいて
@gold_window.y = @help_window.heightを
@gold_window.y = @sales_window.heightと書き換えてください。

7. 返信続き

また同じScene_DItemShop内にあるcreate_buy_windowにおいて
@buy_window.sales_window = @sales_windowを
@buy_window.status_window = @status_windowの下に挿入してください。

「追加プラグイン:持ち込みショップ」よりも下に次のスクリプトを導入してください。
http://blog.cnobi.jp/v1/blog/user/3d98d60619f35633a8bcdbe904a90e7c/1572708188

これらを操作をした後にGame_InterpreterのVarShopSwitchの値をIDとする変数が2種類のショップの切替スイッチになります。その変数値が0のときはDItemのショップ、それ以外は通常ショップになります。
下の例のようにしてショップを区別します。
http://blog.cnobi.jp/v1/blog/user/3d98d60619f35633a8bcdbe904a90e7c/1572710246

少々夜遅くなり眠いこともあって説明が抜け落ちている場面もあるかも知れません。それからバグもあるかもしれないのです。
その他、細かい調整などの質問を含めて遠慮なくコメントしてください。
私自身後でまた確認してみます。

8. 無題

夜分遅くまでありがとうございます!
さっそく導入してみました!
今のところ問題なく動作しております!感激です!
これからツクりつつ、エラーが起きないか見ていきます

これで選択肢式ショップみたいなことしないで済みます!
本当にありがとうございます!

9. 返信

まるさん、こんばんは。
とりあえず上手くいっているようでほっと一安心しました。
もし何かあったら遠慮なくコメントしてください。

10. 無題

tentako様、いつもお世話になっております。
先日の競合対策の件なのですが、
どうやら[:thanks_buy],[:thanks_sell],[:select_buy],[:select_sell]
をしゃべっていないみたいです。
もちろんtentako様のサンプルプロジェクトでは正常に動作しております。

それから細かくて申し訳ないのですが、
サンプルプロジェクトの方でもなのですが、
「購入する」や「売却する」を一度、選択しアイテムウィンドウ遷移後、
キャンセルし、購入・売却・やめるに戻った際のセリフなのですが、
直前のセリフのままなので、[:greeting]か[:select_buy]あたりに切り替わると
ベストなのかな、と思いました

11. 返信

まるさん、こんばんは。
調べてみると確かにいくつかの言葉を思い通りに話してくれませんね。
これからちょっと調整してみます。

あとコマンドウィンドウ(購入・売却・やめるのウィンドウ)へ戻った際のセリフの件ですが
新しくそれ専用のセリフを設定できるようにすることにしました。
もうすでにテストでやってみて上手くいってるのですが
機能をいくつか追加したショップスクリプトver.2を近いうちにアップする予定なのでそのときに一緒に公開します。

12. 調整しました

調整することができました。

追加プラグインのScene_DItemShopのcommand_sellにおいて末尾に
@sales_window.phase = :normal
@sales_window.message_type = :select_sell
@sales_window.refresh
を追加してください。
同じくdo_buyの末尾に
@sales_window.message_type = :thanks_buy
@sales_window.refresh
を追加してください。
同じくdo_sellの末尾に
@sales_window.message_type = :thanks_sell
@sales_window.refresh
を追加してください。

上がわかりにくい場合は下のスクリプトを追加プラグインより下に入れると上手くいくと思います。
http://blog.cnobi.jp/v1/blog/user/3d98d60619f35633a8bcdbe904a90e7c/1572970192

13. 上手くいきました!

いつも迅速な対応ありがとうございます!
試してみたところ うまくいきました!
ver2も制作中ということでソワソワしてますw
お身体には気を付けて!

14. 返信

まるさん、こんばんは。
無事に動いたようでよかったです。
何か見落としたバグなどがあったら遠慮なく連絡してください。

ショップver.2で時間によってセリフを変えることができるようにしようと思ったのですが
同じ店員のデータを複数個作って変数で切り替えれば今のままでもできそうなので、
店員データを複製する機能を追加してみました。
もう少し機能を追加したらアップするので楽しみにしていてください。

もし何かこんな機能がほしいって要望があれば遠慮なく言ってください。

15. 無題

ショップへの追加機能ですか。
累計購入額でセリフが変わるとかも変数で行けそうですしね…
あれいけるのかな?分からなくなってきた。
そもそもそういう機能は使う予定今のところないしなぁ…

また思いついたら提案させて頂きます!

それにしてもスクリプトを自由に操れてうらやましいです
自分は見よう見まねでコピペしてはノーメソッドエラー連発するような素人なので…

16. 返信

累計購入額は普通では難しいですね。
店は買うだけの設定にすれば、購入の前後の所持金の変化を変数に入れて加算すればできますが
売り買いの両方できる場合はできないと思います。
ただ累計購入額はショップのスクリプトに組み込むよりは、購入額を指定した変数へ入れるスクリプトにしたほうが汎用性がありそうです。
それから関係することではゲームの統計情報(戦闘回数、戦闘勝利回数、ゲームオーバー回数、etc. )をゲーム中に記録して、その記録を呼び出せるようなスクリプトをそのうち作ろうかなと考えていたところです。

ちなみに私もプログラミングに関しては結構な素人だと思います。
いくつかのプログラミング言語をちょっとだけ触った状態から
RubyをツクールVxAceのヘルプで学んで、スクリプトいじりながら覚えた感じです。
ただ長いこといじり続けているおかげでツクールのスクリプトの全体像が大体把握できているので
こういうことがしたいならこうすればいいんだろうとか、
こういうエラーが出たということはここがおかしいんだろうなというのが割りと分かるので
スクリプトが作るのもだいぶ早くなりました。
あとは数学が得意なのもたまに役に立つかな。
まぁでもツクールのスクリプトをいじってるだけでもそのうち作れるようになると思いますよ。

17. 無題

うーむ、確かに一番最初の自分よりはスクリプトが少しわかるようになった気がしますが
tentakoさんレベルまでなるのには相当時間と根気が要りそうです…。
私の問題は活字嫌いでヘルプを見ても頭に入ってこないとこです。

そういえばこのスクリプトで
あると嬉しい機能ですが、表情を変えるために顔グラを指定できると助かります。

それと別件でパズルやリバーシ等のスクリプトもお借りさせてくださいませ

18. 返信

私もヘルプを読むといっても、軽く読んでなんとなく分かったらすぐスクリプトいじりをやっていて、詰まったらその箇所を真面目に読むみたいにしていたので、基本的に慣れだと思います。

顔グラの変更ですね。ver.2で入れておきます。
実はver.1で顔グラの変更機能も入れようと思いながら、その機能を入れずに公開していて
店員の定義のところで顔グラの指定が配列になっているのもそのせいです。
だからすぐに実装できると思います。

>それと別件でパズルやリバーシ等のスクリプトもお借りさせてくださいませ
どうぞ自由に使ってください。
ただしリバーシはスクリプト公開後も結構いじっていてゲーム製作のカテゴリーで公開しているリバーシver1.3が
最新なのですがスクリプトとしては公開していません。
もし最新版を希望されるなら、スクリプトして使えるように改造して公開しますのでコメントしてください。(ただしAI部分はゲーム版から抜くかもしれません)

余談ですが前回言っていた宿の累計ですが上手くできました。
これも近いうちにスクリプトとして公開すると思います。
http://blog.cnobi.jp/v1/blog/user/3d98d60619f35633a8bcdbe904a90e7c/1573312071

19. 累計

なんと店?商人?ごとに変数を指定できている??とは
これだと同じ商品でも…たとえ値段が高くても…
いつものお店で買いたくなる仕様とかできそうでいいですね…
あるいは常連さんだと価格が下がるとか…オマケがもらえるとか…

ああ、これはまた人間味あふれる演出ができそうで素晴らしいですね!

ところでリバーシのAI部分を抜くとはどういうことでしょう?
最新版のAIはミカンなので、とかでしょうか?

20. 返信

まるさん、こんばんは。
私も常連に対してサービスが受けられるのを考えたので店ごとに累計を出すようにしました。
ショップの累計購入額の件ですがショップ前に変数を指定することでショップの購入金額をその変数に加算する仕様になっています。
ですから店ごとの累計額が変数に記録されることになります。
すべての購入総額を出したいときでも各変数値を加算することで求められます。
ただショップの割引はスクリプトなしにできましたっけ?
もしできない場合でも誰かがスクリプトを作ってそうですが、とりあえず割引スクリプトも作ってみます。
このあたりのスクリプトたちもまとめてショップ関連のスクリプト集として公開します。
ちなみにこの記事のテストゲームにも売り専門ショップがあって、これもスクリプトで追加したものです。

リバーシの件は続きで。



21. 返信

リバーシのAIの件ですが、一応私もゲームとして作っているものなので、同じAIが量産されてしまうのもどうかなぁという感じでして、少しシンプルな形にして公開して
マニアックな手筋は各自設定してもらうかもしれないということです。
以前のリバーシのスクリプトと同じように,まず基本的な動作をするAIを積んだものがベースで、オプション的にAIを強化するスクリプトを追加するという形式になっています。
それで現在ゲームに使ってる追加されたAIは序盤、中盤、終盤に分かれていて、
序盤が定石に従って進めて、
定石に無い展開になると中盤に移り評価値に従って進めて、
残りの空白地の数が一定以下になると終盤に移り完全読みします。
中盤と終盤はいじりにくいのですが、序盤は定石データ次第なので変更が簡単ですので、
公開する追加AIでは序盤の定石データを基本的なものに絞って、追加したい定石や手筋がある場合は各自追加してもらうようにしようかなと考えています。

22. 無題

確か割引ではなく、ショップの価格が通常の機能で直接記入できる部分があった気がしますが、
一品一品価格直接指定なので、初期機能を使うと電卓片手に結構な仕事を要求されそうですよ。

リバーシのAIは難しいのですね。ある意味それだけで一本のゲームになり得ますからね…
難度もどこまでが一般レベルなのか、ハイレベルなのかもルールを知っているだけの私には判断が難しそうです。自分が勝てるかが唯一の判断基準になりそうです。
おそらくAIだと最善の一手が計算できそうな気もするのですが、確率でヘマする…とかも加味するのでしょうか?

23. 返信

まるさん、こんばんは。
確かに価格を個別に設定できますね。気づいてませんでした。
一応割引スクリプトも作ったので、いずれアップします。

リバーシのAIの件ですが、
有名なオセロソフトにWZebraというのがあるのですが、最新版のAIはあれの2手読みといい勝負をします。
ですから一般の人が対戦するには強すぎるので弱体化する必要があるかと思います。

以下現状のAIで設定できることを説明します。
まず最後の完全読みは開始し始める空きの個数を変更させることができます。
開始する空きの数を0にすれば完全読みはしなくなりますし、
理論上は最初から完全読みをすることも可能ですが、1000年単位で時間がかかりそうなので実際は残り12~13手くらいが完全読みの現実的な最大でしょうか。
中盤も読みの深さを変えることができます。最新版だと4手読みです。
ただ現状AIを4手読みに最適化しちゃったので、1手読みだとたまに変な手を打つため少し修正が要ります。
また中盤において最善選択の緩さも設定できます。厳しくすると、AI評価における最善以外はほぼ打たなくなりますが、緩くすると、いろいろな手を打ちますが悪手を打つこともあります。
序盤は定石次第なので、定石データなしだといきなり中盤のように評価に従って打ってきます。

というわけで一応弱体化は可能です。
もう少しいろいろレベルを調整できるように修正してみます。

24. 無題

WZebra知らなかったので調べてみましたがすごいですね…
AI同士を戦わせるとか自分には立ち入れない領域だと思っていましたが…
やはりゲームとして作っている方だったとは

ちなみに私の場合はミニゲーム的な
弱いけど戦意だけは感じられるようなAIレベルを考えておりますw
戦意の部分はver1.3のセリフとかで演出できそうですね
ちなみにボロ負けでした。
3回連続パスさせられて…打てる場所も1か所しかなかったりとか…

25. 返信

まるさん、こんばんは。
このリバーシは、もともと自分自身のjavascirptの勉強用に作っていて、
AIに拘っているうちにやたらに強くなってしまったので
途中からゲーム製作に切り替えたものなんですよね。
javascriptで作ったものをrubyに移植したのが(ただしAI以外のリバーシの動作の大半は以前公開したスクリプトを利用)、ver.2以降になります。

強すぎないAIを作るのならば完全に新規に思考ルーチンを組んでもそんなに手間がかからないと思うので、新しく作るかもしれません。

とりあえず、パンダオセロ(panda reverse)というネットでできるオセロゲームが昔からあるのですが、それと戦わせて互角くらいのAiを作って見ます。

26. 無題

パンダオセロ探してみました。
最弱らしきAIで何度かやってみましたが惜しいところで負けるというのを繰り返し…
rubyより前にオセロを勉強しないとダメかもしれない…

javascriptといえばツクールMVもそうじゃありませんでしたっけ?

27. 返信

まるさん、こんばんは。

オセロは将棋よりルールを把握している人が多そうなのですが、
オセロを勉強している人は将棋を勉強している人より少なそうですので
オセロに関しては、結構弱めに作った方がいいかもしれませんね。
それかレベル形式でいくつかのAIを用意するようにするという手もありますね。
ちなみに複数Aiを用意するのは現段階でもできます。

私もそこまでオセロに強いわけではないのですが、
AIを作っている際に色々調べたり、考えたりしているうちに以前よりは大分強くなりました。
オセロをちゃんと学んでいる人たちを相手にすると勝てないと思いますが
パンダオセロ(PAPAパンダ)ならほぼ勝てるくらいの強さではあります。

MVはjavascriptらしいですね。
私も結構興味があるのですが、いまだに買っていない状態です。
とりあえず近いうちにPCを買い換えるのでそれまでは買わないのですが(買い換えると認証とかがめんどくさそうですし)
買い換えたら、MVを買ってスクリプトを作ってみるかもしれません。
ただMVが販売されてしばらくたっているのでそろそろMVAceとか出てきそうでそれを待った方がいいのかなぁとも思ったりして、手をつけづらい状態です。

リバーシのAIの思考を変えてみました。ですがまだ強めかもしれません。
http://blog.cnobi.jp/v1/blog/user/3d98d60619f35633a8bcdbe904a90e7c/1574090775
ショップのver.2は大体できたので明日か明後日にアップします。

28. 無題

上記のリバーシやってみましたが…10回くらいやって一回だけ勝てました…
大体が前半~中盤まで押せてて、後半一気に巻き返される、という展開でした…。
絶望したあとで「まだ強めかもしれません。」を読み落としたのに気づき
落ち着きを取り戻しました…。
強さ的にはどのくらいなんでしょうか?

ショップの方も楽しみにしてます。

29. 返信

まるさん、こんばんは。
上のリバーシは、wzebraの評価では微妙な手が多いのですが、ただ適切に打たないと
うまくゲームを進められてしまいます。
中盤はなるべく自分の打てる手を増やして、なるべく相手の打てる手を減らすという思考がベースになっています。
終盤は残り8手以下から完全読みしてくるので、終盤までにきっちり優勢に進めていないと厳しいかもしれません。
強さははっきりわからないのですがパンダオセロ(PAPA)と1度だけですが対戦させてみたところ
このAIが勝ってしまったので、それなりの強さがあるかもしれません。
もっとシンプルなAIを作ってみることにします。

ショップなんですが、ふと店員のバストアップ画像(全身画像でもOK)を表示させるのも面白そうかなと思ったので、
標準は今まで通りの表示でオプション的にバストアップ用のスクリプトを追加するようにします。
ですから明日にはアップする予定だったのですが、もう1日延びるかもしれません。

30. 無題

バストアップ面白そうですね!
ただ画像を用意できない人にはつらそうなので、おっしゃる通りオプション的なのが良いと思います。
絵が描けるようになりたい…。

31. 返信

まるさん、こんばんは。
バストアップ画像はどう演出するかもう少し検討したいので
とりあえず、バストアップじゃない標準のver.2をアップすることにします。
本当は今日アップする予定だったのですが、週末に思わぬ予定ができてしまったため
少し遅れてしまいましたが明日(正確には今日)にアップすることにします。
それから例のローグライクスクリプトとの競合問題も新しいverだと新たに調整する必要があると思いますので、それもコメント欄のほうでアップします。

32. 返信

すみません。スクリプトはできているのですが公開するページを作るのに時間がかかっているため、公開はもう1日延期します。
テストゲームはこんな感じです。

https://cyclone.siitake-alacarte.com/files/Shop_ver2.0.zip

33. 無題

全然急がないので大丈夫です!どうか気負わずにやっちゃってください!
テストゲームやってみました。
表情差分入れないとこうなりますよねw
いきなりおっさんが出てくると笑ってしまう

34. 返信

まるさん、こんばんは。
少し遅れましたがアップしてみました。
バストアップ版もいずれアップします。
不具合や質問などがあれば遠慮なくコメントしてください。

プロフィール

HN:
tentako
性別:
非公開

P R

フリーエリア