☆ベルトアクション作成 Beats of rageスレッド☆ (654レス)
☆ベルトアクション作成 Beats of rageスレッド☆ http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
164: 名前は開発中のものです。 [sage] 2021/06/17(木) 02:47:33.77 ID:1MwPeeuR DOT {Index} {Time} {Mode} {Force} {Rate} {Index} defines DOT index. Entity may have up to 10 DOT effects at one time. An entity can be hit by more than one DOT effect at once. If entity is hit by same indexed DOT effects, only the latest one will be applied. {Time} defines how long DOT effect active in centiseconds. {Mode} defines how DOT effect is applied to hit entity. HP damage is same type as original attack and affected by damage mitigation. 1 = Nonlethal HP (can reduce to 1 but not below). 2 = MP. 3 = MP and nonlethal HP. 4 = HP. 5 = MP and HP. {Force} defines amount of damage per tick. {Rate} defines delay between each tick in centisecond. DROPVと同じように Attack コマンドと一緒に記述することで 一定時間、ダメージを与え続けるというもの、 Indexは特に気にしなくてOK(DOTが重複して掛かるかどうか)、Timeは持続時間(600で6秒) ModeはHPにダメージ、MPにダメージか双方か、ダメージによって消滅するか Forceは一回あたりのダメージ。Rateは総時間(Time)中、何回ダメージを与えるか Timeが600でRateが100なら、1秒ごとに6秒間Forceダメージ与えるというもの。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/164
165: 名前は開発中のものです。 [sage] 2021/06/17(木) 02:55:24.76 ID:1MwPeeuR スクリプトで同じような事をしようと思うと anim idle @script if(frame==1) { void self = getlocalvar("self"); setlocalvar("BT"+self, findtarget(self)); if(getlocalvar("BT"+self)!=NULL()) { void target = getlocalvar("BT"+self); void PDir = getentityproperty(self, "direction"); int tx = getentityproperty(target, "x"), px = getentityproperty(self, "x"); int tz = getentityproperty(target, "z"), pz = getentityproperty(self, "z"); if(PDir) { if( tz - pz < 10 && tz - pz > -10 && tx - px > 30 && tx - px <240) { changeentityproperty(target, "lifespancountdown", 600 ); // openborvariant("elapsed_time")+300); changedrawmethod(target, "reset", 1); setlocalvar("BT"+self, NULL()); changedrawmethod(target,"tintmode",3); changedrawmethod(target,"tintcolor",rgbcolor(255, 64, 32)); } } else { if( tz - pz < 10 && tz - pz > -10 && tx - px > -240 && tx - px <-30) { changeentityproperty(target, "lifespancountdown", 600 ); // openborvariant("elapsed_time")+300); changedrawmethod(target, "reset", 1); setlocalvar("BT"+self, NULL()); changedrawmethod(target,"tintmode",3); changedrawmethod(target,"tintcolor",rgbcolor(255, 64, 32)); } } } } @end_script 余計なことたくさんしてるんで長くなってますが、 自分の進行方向の敵を標的に選んで、縦軸にずれが10ドット、横軸30〜240ドットにいる 一番近い敵の色をちょっと赤っぽくして6秒後に即お陀仏というもの DOTと同じような事をしようとするとスクリプトでは結構な手間がかかります。 いかにOpenBoRの基本コマンドが良くできているかということですね。 http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/165
166: 名前は開発中のものです。 [sage] 2021/06/17(木) 07:47:06.34 ID:1MwPeeuR 上の例は、こんなことできたらいいなで、ざっと記述し動作確認します。 動作確認できたら、同じ処理をフラグで簡略化したりして @script void self = getlocalvar("self"); setlocalvar("BT"+self, findtarget(self)); if(getlocalvar("BT"+self)!=NULL()) { void target = getlocalvar("BT"+self); int tx = getentityproperty(target, "x"), px = getentityproperty(self, "x"); int tz = getentityproperty(target, "z"), pz = getentityproperty(self, "z"), IR=0; if(tz - pz < 10 && tz - pz >-10) { if(getentityproperty(self, "direction")) { if(tx - px > 30 && tx - px < 240) { IR = 1; } } else { if(tx - px >-240 && tx - px <-30) { IR = 1; } } } if(IR) { changeentityproperty(target, "lifespancountdown", 600); changedrawmethod(target, "reset", 1); setlocalvar("BT"+self, NULL()); changedrawmethod(target,"tintmode",3); changedrawmethod(target,"tintcolor",rgbcolor(255, 64, 0)); } } @end_script こんな感じに直します。動作は一緒なんで、別にやらなくても良いのですが、なんとなくw http://mevius.5ch.net/test/read.cgi/gamedev/1547405874/166
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.024s