☆ベルトアクション作成 Beats of rageスレッド☆at GAMEDEV☆ベルトアクション作成 Beats of rageスレッド☆ - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト279:名前は開発中のものです。 22/02/27 03:32:35.68 BVcqNQ44.net 掴み技からレバガチャで脱出みたいなのってできます? 280:名前は開発中のものです。 22/02/27 20:33:11.90 ofDNDNVo.net >>279 mod レスキューコマンド2やトラブルインサウスタウンなどで 使われてますね、仕組みとしては 掴み側の敵の攻撃が成功したら、レバガチャ用のentityを喰らったプレイヤーにbindしてます。 レバガチャentityはプレイヤーのレバーとボタン入力をスクリプトで検知して 自身のhealthを減らし、0になったら消滅するので脱出成功。 掴んだ側の敵は、delayなどで一定時間待ち時間を 281:名前は開発中のものです。 22/02/27 20:37:32.32 ofDNDNVo.net 経過したら、攻撃コマンドを実行させるというもの。 プレイヤーを掴むときはスクリプトのslamstart〜positionコマンドで拘束します。 実際にmodをプレイしたほうがわかり易いかもw 282:名前は開発中のものです。 22/02/27 21:01:29.27 ofDNDNVo.net script @script void main() { void self = getlocalvar("self"); void attacker = getentityproperty(self,"parent"); void victim2 = getentityproperty(attacker, "opponent"); void victim = getentityproperty(victim2, "playerindex"); int HP = getentityproperty(self,"health"), HPmax = getentityproperty(self,"maxhealth"); int x1 = getentityproperty(attacker,"x"), z1 = getentityproperty(attacker,"z"); if(HP>=HPmax){ changeentityproperty(victim2, "position", x1, z1); performattack(victim2, openborconstant("ANI_FREESPECIAL")); setidle(attacker, openborconstant("ANI_IDLE")); bindentity(victim2, NULL()); performattack(attacker, openborconstant("ANI_PAIN")); setentityvar(self, "madjon", NULL()); killentity(self); } else if(playerkeys(victim, 2, "moveleft")){ // Left is pressed? changeentityproperty(self, "health", HP+4); } else if(playerkeys(victim, 2, "moveright")){ // Right is pressed? changeentityproperty(self, "health", HP+4); } else if(playerkeys(victim, 2, "attack")){ // Attack is pressed? changeentityproperty(self, "health", HP+2); } else if(playerkeys(victim, 2, "jump")){ // Jump is pressed? changeentityproperty(self, "health", HP+6); } } @end_script これが心臓部で、レバガチャEntityのヘッダー部に記述すると、このEntityが存在しているあいだ実行され続けます。 で、Anim Idleにレバガチャの画像を表示させればOK、上のスクリプトだと、Healthを増やしてMaxHealthまで行ったら脱出ですね。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch