横から失礼致します。
ecf5DTTzl6h6lJi02 さん
詳細にご説明頂きありがとうございます。
有効ターン数はbuffTurnsなのですね。
全く不明な状態でしたので、理解が進みました。
重ねて御礼申し上げます。
あのにー さん
トピックに対し、横からの発言失礼致しました。
引用、解説頂いた内容に対し御礼を申し上げたく…ご容赦頂けますと幸いです。
これ以上は混線してしまうので、発言を控えさせて頂きます。
それでは、横から失礼いたしました。
【解決済】標準で実装されている強化と弱化の変換を行うスキルを作りたい
Re: 標準で実装されている強化と弱化の変換を行うスキルを作りたい
皆様方へ
お返事等、遅れてしまい申し訳ありません。
本日12月17日、ツクールを起動する時間を作れたので、報告いたします。
ecf5DTTzl6h6lJi02様
ありがとうございます!
【コード書き換えの為削除】
ですが、このままでは(当然ながら)スキルのターゲットがわからず、アクターID 1のキャラクターにしかスキルがかからない状態であります。
ターゲットのアクターIDや、モンスターのインデックスを特定する方法はありますでしょうか。
重ね重ね、よろしくお願いいたします。
お返事等、遅れてしまい申し訳ありません。
本日12月17日、ツクールを起動する時間を作れたので、報告いたします。
ecf5DTTzl6h6lJi02様
スキルとコモンイベントを作成し、スキルを実行してみたところ、うまくいきました!ecf5DTTzl6h6lJi02 さんが書きました: この配列には、強化であれば正の数、弱体であれば負の数が入っているので、符号を反転してしまえば、
そのまま、逆の効果となります。
ありがとうございます!
【コード書き換えの為削除】
ですが、このままでは(当然ながら)スキルのターゲットがわからず、アクターID 1のキャラクターにしかスキルがかからない状態であります。
ターゲットのアクターIDや、モンスターのインデックスを特定する方法はありますでしょうか。
重ね重ね、よろしくお願いいたします。
最後に編集したユーザー あのにー [ 2020年12月17日(木) 22:06 ], 累計 2 回
Re: 標準で実装されている強化と弱化の変換を行うスキルを作りたい
あのにー さんが書きました:皆様方へ
お返事等、遅れてしまい申し訳ありません。
本日12月17日、ツクールを起動する時間を作れたので、報告いたします。
ecf5DTTzl6h6lJi02様スキルとコモンイベントを作成し、スキルを実行してみたところ、うまくいきました!ecf5DTTzl6h6lJi02 さんが書きました: この配列には、強化であれば正の数、弱体であれば負の数が入っているので、符号を反転してしまえば、
そのまま、逆の効果となります。
ありがとうございます!
スクリーンショット 2020-12-17 211439.pngスクリーンショット 2020-12-17 211511.pngコード: 全て選択
for (var i = 0; i < 8; i++){ if ($gameActors.actor(x)._buffs[i] < 0){ $gameActors.actor(x)._buffs[i] = $gameActors.actor(1)._buffs[i] * -1 } } SceneManager._scene._statusWindow.refresh()
ですが、このままでは(当然ながら)スキルのターゲットがわからず、アクターID 1のキャラクターにしかスキルがかからない状態であります。
ターゲットのアクターIDや、モンスターのインデックスを特定する方法はありますでしょうか。
重ね重ね、よろしくお願いいたします。
どこかで、対象を得るスクリプトを調べて書いた記憶はあるのですが、直ぐ出てきません…
とりあえず、下記のプラグインで変数に代入してしまってはいかがでしょうか?
▼発動前コモン(やな様作) - BeforeCommon.js
https://plugin.fungamemake.com/archives/2033
スキルやアイテムの発動前に、スキルやアイテムに設定されたコモンイベントを発生させます。
このプラグインのメインの動作は、スキル発動前にコモンイベントを実行することですが、同時に対象のIDを変数に代入してくれます。
空のコモンイベントを実行させ、今回のスキルのスクリプトに変数値を使用することが出来るんじゃないか?と思いました。
(このプラグインの中を読んだら、対象のID取得方法も分かるような気がしますが…)
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
Re: 標準で実装されている強化と弱化の変換を行うスキルを作りたい
ムノクラ様ムノクラ さんが書きました: どこかで、対象を得るスクリプトを調べて書いた記憶はあるのですが、直ぐ出てきません…
とりあえず、下記のプラグインで変数に代入してしまってはいかがでしょうか?
▼発動前コモン(やな様作) - BeforeCommon.js
https://plugin.fungamemake.com/archives/2033
スキルやアイテムの発動前に、スキルやアイテムに設定されたコモンイベントを発生させます。
このプラグインのメインの動作は、スキル発動前にコモンイベントを実行することですが、同時に対象のIDを変数に代入してくれます。
空のコモンイベントを実行させ、今回のスキルのスクリプトに変数値を使用することが出来るんじゃないか?と思いました。
(このプラグインの中を読んだら、対象のID取得方法も分かるような気がしますが…)
ヘルプを読んだところエネミーが今回のスキルを使うと、Indexが-1になってしまうようですね……
とりあえずは、このプラグインで動作確認してみたいと思います、ありがとうございます
(追記)
アクターを対象にスキルを発動したときに、きちんと理想通りの動きをしたので、ご報告いたします。
また、コモンイベントを書き換えたのでスクショを貼りなおします。
コード: 全て選択
for (var i = 0; i < 8; i++){
if ($gameParty.battleMembers()[$gameVariables.value(4)]._buffs[i] < 0){
$gameParty.battleMembers()[$gameVariables.value(4)]._buffs[i] = $gameParty.battleMembers()[$gameVariables.value(4)]._buffs[i] * -1
}
}
SceneManager._scene._statusWindow.refresh()
-
- 記事: 715
- 登録日時: 2018年12月23日(日) 13:55
Re: 標準で実装されている強化と弱化の変換を行うスキルを作りたい
こんばんは。
そういえば、ターゲットの取得に関して書いてませんでした…。
対象が単体であれば、ターゲットは 発動前コモンを使わずに
を使って取得することができます。
ただし、アクター・エネミーどちらのインデックスが入っているのかは判別できないので、使用者がアクターかエネミーかを調べて、分岐する処理を書く必要があります。
で、使用者がアクターかどうか調べられます。isActor を isEnemy に置き換えればエネミーかどうかを調べる処理になります。
試作して、動作しそうだと確認した、コモンイベントの内容をコードで上げます。
行数を縮めるのに、複数行のコマンドを1行にまとめて書いてたりして、読みにくく、あまり参考にならないかもしれませんが。
(強化を弱体に反転させるコモンイベントです)
そういえば、ターゲットの取得に関して書いてませんでした…。
対象が単体であれば、ターゲットは 発動前コモンを使わずに
コード: 全て選択
BattleManager._subjdct._lastTargetIndex
ただし、アクター・エネミーどちらのインデックスが入っているのかは判別できないので、使用者がアクターかエネミーかを調べて、分岐する処理を書く必要があります。
コード: 全て選択
BattleManager._subject.isActor()
試作して、動作しそうだと確認した、コモンイベントの内容をコードで上げます。
行数を縮めるのに、複数行のコマンドを1行にまとめて書いてたりして、読みにくく、あまり参考にならないかもしれませんが。
(強化を弱体に反転させるコモンイベントです)
コード: 全て選択
◆変数の操作:#0023 対象者ID = BattleManager._subject._lastTargetIndex
◆条件分岐:スクリプト:BattleManager._subject.isActor()
◆スクリプト:target = $gameTroop.members()[$gameVariables.value(23)];
: :logWindow = SceneManager._scene._logWindow;
: :if(target._buffs.some(buff => buff > 0)){
: :logWindow.push('addText', "%1への祝福の力が邪悪な気に侵されていく!".format(target.name()));
: :target._buffs.forEach(function(value,index){
: :if (value > 0) { target._buffs[index] *= -1;
: :logWindow.push('popBaseLine'); logWindow.push('pushBaseLine'); logWindow.push('addText', "%1の強化が弱体に変化した".format(TextManager.param(index))); logWindow.push('waitForNewLine'); } });
: :target.refresh(); logWindow.push('clear');
: :} else{
: :logWindow.push('addText', "しかし、%1には効果がなかった。".format(target.name())); logWindow.push('waitForNewLine'); logWindow.push('clear');
: :}
◆
:それ以外のとき
◆注釈:念のため使用者がエネミーか確認
◆条件分岐:スクリプト:BattleManager._subject.isEnemy()
◆スクリプト:target = $gameParty.battleMembers()[$gameVariables.value(23)];
: :logWindow = SceneManager._scene._logWindow;
: :if(target._buffs.some(buff => buff > 0)){
: :logWindow.push('addText', "%1への祝福の力が邪悪な気に侵されていく!".format(target.name()));
: :target._buffs.forEach(function(value,index){
: :if (value > 0) { target._buffs[index] *= -1;
: :logWindow.push('popBaseLine'); logWindow.push('pushBaseLine'); logWindow.push('addText', "%1の強化が弱体に変化した".format(TextManager.param(index))); logWindow.push('waitForNewLine'); } });
: :target.refresh(); logWindow.push('clear');
: :} else{
: :logWindow.push('addText', "しかし、%1には効果がなかった。".format(target.name())); logWindow.push('waitForNewLine'); logWindow.push('clear');
: :}
◆
:分岐終了
◆
:分岐終了
-
- 記事: 715
- 登録日時: 2018年12月23日(日) 13:55
Re: 標準で実装されている強化と弱化の変換を行うスキルを作りたい
ecf5DTTzl6h6lJj02様のプラグインにより、今回やりたいことを実現することができました!ecf5DTTzl6h6lJj02 さんが書きました:こんにちは。
コモンイベントの作例とか書いておいてなんですが、
プラグインを作成して、リクエスト版(viewtopic.php?t=10465)のほうに上げましたので、お試しいただければと思います。
こちらのスレッドと、プラグイン作成依頼スレッドを解決済とさせていただきます。
皆様方のご協力、誠にありがとうございました!!