1. このサイトではcookie (クッキー) を使用しています。サイトの利用を継続した場合、cookieの使用に同意したものとみなさせていただきます。 詳しくはこちらをご覧ください。

【解決済】スクリプトを2つ教えて下さい【連番ではない変数の同時処理、ドロップさせた事にする】

豆豆豆2018-12-21に開始した「ツクールMV」の中の討論

  1. 豆豆豆

    豆豆豆 ユーザー

    皆様、いつもお世話になっております
    この度、2つのスクリプトを教えていただけないでしょうか

    解決済/1つ目」
    連番の変数でしたらツクールMVの機能で同時に処理できるのですが
    連番ではない変数を同時に処理させるスクリプトを教えていただけないでしょうか・・・
    変数1.3.5.7から同時に同数を代入、加算、減算など教えていただきたいです。

    解決済/2つ目」
    こちらはスクリプトでどうにかなるか否か分からないのですが
    戦闘中でもアイテムを入手させる機能はツクールMVに付いているのですが
    戦闘中に処理させることで、エネミーを倒した際にアイテムをドロップしたとき同様に
    指定したアイテムをドロップさせた事にするスクリプトを教えていただけないでしょうか。
    ※追記
    アイテムIDから指定したアイテムや装備などを、戦闘中のエネミーに全く関係なくドロップした事にさせたいです。
    説明不足で申し訳ございませんでした。
     
    最後に編集: 2018-12-24
    #1
    ワタベ神無月サスケ がいいね!しています
  2. アストラル

    アストラル ユーザー

    こんばんは。

    ・変数リストから変数の操作
    指定した変数リストから計算させて、それを変数にセットさせるスクリプトです。
    計算式のid部分に、listの , 区切りの変数番号が順番にセットされています。
    サンプルは、単純に1を加算していく場合です。

    コード:
    var list = [1, 3, 5, 7]; // ,区切りで変数番号を必要な数だけ指定
    list.forEach(function(id, index) {
      var value = $gameVariables.value(id) + 1;  //計算式
      $gameVariables.setValue(id, value);  //計算結果を変数に代入
    }, this);
    ・戦闘中のドロップアイテム計算と入手
    詳しい条件がわからないので、
    生存死亡に関係なく、出現中の敵グループ全員のドロップアイテムを入手させる場合のスクリプトです。
    テストされる場合は、ランダムなので何度か試してください。
    コード:
    var items = $gameTroop.makeDropItems();  //戦闘不能敵キャラのドロップ品
    items = $gameTroop.aliveMembers().reduce(function(r, enemy) {  //生存中の敵キャラドロップの追加
      return r.concat(enemy.makeDropItems());
    }, items);
    items.forEach(function(item) {
      $gameParty.gainItem(item, 1);
    });
    
    戦闘不能のみ、生存のみ、出現中の特定の敵キャラのみとかも可能です。

    追記
    ドロップアイテムの入手スクリプトでは、直接アイテムボックスに追加することしか出来ません。
     
    最後に編集: 2018-12-22
    #2
    豆豆豆, ワタベ神無月サスケ がいいね!しています
  3. 豆豆豆

    豆豆豆 ユーザー

    アストラル様 お返事ありがとうございます

    「1つ目」
    教えていただいた方法にて上手くいきました!
    今まで連番ではない変数の場合は同数の処理なのに
    1個、1個処理をしており、どうしても行数が多くなっていたので
    教えていただいた方法で行数をスッキリさせる事ができました。

    「2つ目」
    当方の説明不足&文章能力の無さから申し訳ございません
    当方がやりたいのは
    「アイテムIDから指定したアイテムや装備などを、戦闘中のエネミーに全く関係なくドロップした事にさせたい」です。
    もっと具体的に書かせていただきますと
    「戦闘中にバトルorコモンイベント処理でスクリプトを用い、アイテムID0001のポーションを指定
     戦闘中の敵グループのエネミーにドロップアイテムにポーション設定していようがしてなかろうが
     戦闘経過でエネミーがポーションをドロップしようがしてなかろうが
     イベント処理で指定したポーションを、戦闘終了後のドロップアイテムが表示される欄に表示させ
     戦闘終了後に後に入手させたい」です。
    戦闘終了後のドロップアイテム入手欄は戦闘で倒したエネミーのドロップの結果を表示させることしか出来ず困っております
    製作者側の任意のタイミング、アイテムを強制的にドロップさせた事に出来ないかなと思い質問させていただきました。

    しかしアストラル様が教えて下さった
    >生存死亡に関係なく、出現中の敵グループ全員のドロップアイテムを入手させる場合のスクリプトです。
    これは素晴らしいスクリプトですね
    これを用いることで、エネミーから強制的にドロップさせるスキルやアイテムが作れますね!
    こんな事までスクリプトで出来るとは思いませんでした!

    スキル「かつあげ」
    敵からアイテムを強制的にドロップさせる
    とか、夢が広がります 笑
     
    最後に編集: 2018-12-22
    #3
    アストラル がいいね!しました
  4. アストラル

    アストラル ユーザー

    変数の操作がうまくいってよかったです。

    2つ目のドロップアイテムの詳細もありがとうございます。
    戦闘終了後のドロップアイテムの追加は難しいので、プラグイン化をしました。
    戦闘中のスクリプトから戦闘後の操作が出来ないのと、戦闘後動的にデータベースの設定を読み取って、ドロップ判定が行われている為です。

    プラグインでは戦闘中、イベントのプラグインコマンドで、指定したアイテム番号を強制ドロップさせる事が出来ます。
    敵キャラのドロップアイテム判定+指定したアイテムを追加ドロップ
    という処理にして、ドロップアイテム入手欄でも表示されるようにしています。
    他のプラグイン(ドロップアイテム拡張や戦闘後のリザルト画面変更するもの)とも併用可能です。

    このプラグインで追加されたものの反映されるよう、
    >出現中の敵グループ全員のドロップアイテムを入手させる場合のスクリプト
    も更新しました。

    プラグイン更新
    1.0.4へ更新しました。
    プラグインコマンド変更・制御文字に対応
    コード調整
    消去コマンド機能追加
    データベースドロップ品無効化機能追加
     

    添付ファイル:

    最後に編集: 2018-12-22
    #4
    豆豆豆, コテツMM, くろうど他1人 がいいね!しています
  5. 豆豆豆

    豆豆豆 ユーザー

    アストラル様
    お返事遅くなってしまい申し訳ございませんでした。
    お忙しい中、プラグインまで作っていただき本当にありがとうございます。
    確認をさせていただいたところ、理想の処理が出来ました!
    この度は2つも自分の質問、要望に答えていただきありがとうございました。
    またお世話になる事があるかもしれませんが
    その際には何卒、宜しくお願い致します。
     
    #5
    アストラル がいいね!しました

このページを共有