|   | 

非数

8/21-22
22:35 (Momizi) うわ、なんだこれ
22:35 (Momizi) fvar変数に30桁ほどの数字が入ってる(
22:37 (Momizi) fvar(1)の値が超きもいhttp://blog-imgs-66.fc2.com/a/w/m/awmm/20140821223734d95.png
22:37 (vesper) [script] <107KB>
22:38 (blue-eyes) きやあああああああ’
22:38 (Momizi) オーバーフローとはいったい・・・
22:39 (Momizi) お、fvar(1)が1.#QNAN0返してきた。なにこれ楽しい
22:48 (Momizi) ふむ
22:49 (Momizi) 1.#QNAN0ってfvar(1)=0&&fvar(1)<0を満たすのか(
22:50 (Momizi) 魔法の数字と違うのはfvar(1)>0は満たさない点かなぁ
22:53 (Momizi) fvar(1)>=0も満たさない。不思議すぎる
22:54 (Momizi) fvar(1)>-1も満たさない。となると, 単純に>だと満たさないのかな
22:55 (Momizi) !=も満たさない、と
23:44 (Momizi) よし、-1.#QNAN0,1.#QNAN0,-1.INF00,1.#INF00全部作れた
23:45 (Momizi) (私は一体何を目指しているのだろうか・・・)
23:45 (Ryusei_) 撃破条件
23:46 (Momizi) でも#QNAN0とかってトリガーで判断つくんかね(

00:20 (Momizi) んー
00:20 (Momizi) #QNAN0と#INF00の判断はできたけど-1と1との違いがいまいち判断できぬ。。。
00:21 (Momizi) あ、できた
00:29 (Momizi) ふむ
00:31 (Momizi) 速度と位置にはNANも∞も使えると・・・
00:32 (Momizi) んー?正確にはyだけか・・?Xには使えないのかな

02:28 (Momizi) とりあえずvar(60)とfvar(40)関係を撃破条件に組み込むために簡易的に作ってみた条件
02:29 (Momizi) [State ]
02:29 (Momizi) type=VarSet
02:29 (Momizi) trigger1=1||fvar(40):=fvar(5)
02:29 (Momizi) var(0)=sysvar(0)
02:29 (Momizi) ignorehitpause=1
02:29 (Momizi) [State ]
02:29 (Momizi) type=LifeSet
02:29 (Momizi) trigger1=fvar(1)>256*256*256*128-1
02:29 (Momizi) trigger1=256*256*256*128>fvar(2)
02:29 (Momizi) trigger1=fvar(3)=0&&fvar(3)=1&&fvar(3)=-1&&fvar(3)!=[256*256*256*128,256*256*256*128-1]
02:29 (Momizi) trigger1=fvar(4)!=0&&fvar(4)!=1&&fvar(4)!=-1&&fvar(4)!=[256*256*256*128,256*256*256*128-1]
02:29 (Momizi) trigger1=var(0)=256*256*256*128-1
02:29 (Momizi) value=0
02:29 (Momizi) ignorehitpause=1
02:29 (Momizi) ヘルパー奪える&親本体
02:30 (Momizi) 本体干渉不可(ヘルパーからの親変更のみ可)
02:30 (Ryusei_) 変数弄りって言ってよ!
02:30 (Momizi) やばいな
02:30 (Momizi) 完全に頭が回ってない(
02:30 (Momizi) 半分寝てたからぬ
02:31 (Ryusei_) ヘルパーの親変更のみ可・・・・本体に親変更みたいなことしないといけないのか・・・(困惑
02:31 (Momizi) fvar(1)>256*256*256*128-1って魔法の数字じゃ満たせないらしい
02:31 (Ryusei_) まじか~
02:32 (Momizi) 魔法の数字(#IND00)は>の条件式は0を返す
02:32 (Momizi) 後!=ね
02:32 (Ryusei_) なんかややこしいな
02:32 (Momizi) つまるところ、オーバーフローさせずに頑張って満たしてねってこと(
02:34 (Ryusei_) (´・ω・`)ほむ
02:34 (Momizi) ちなみに魔法の数字(#IND00)と#!NAN0はどちらも非数値でおそらくほぼ同じもの
02:34 (Momizi) #QNAN0
02:34 (Ryusei_) とりあえずコピペしよ
02:35 (Momizi) #INF00(∞)は#IND00と#QNAN0と真っ反対の性質を持つらしい。>と!=の条件式で1を返し, =,<,<=の条件式で0を返す
02:35 (Ryusei_) 思ったんだがこれって%nなんだっけ?
02:35 (Momizi) いや?
02:35 (Momizi) parentvarsetだけで貫通できるよ
02:35 (Ryusei_) ふむ
02:37 (Momizi) あ、ちなみに#INF00も#IND00も#QNAN0も!=[256*256*256*128,256*256*256*128-1]を満たして=[256*256*256*128,256*256*256*128-1]を満たさなかった
02:39 (Momizi) #IND00は魔法の数字だからわかると思うけど、#QNAN0の非数値と#INF00の求め方が分かれば多分最後の条件以外は解ける
02:40 (Momizi) というか、現状#IND00=#QNAN0だから実際求めるのは#INF00だけかな
02:40 (Ryusei_) まあ、頑張ってみるか
02:40 (Momizi) 十徳ナイフのデバッグで変数感知したらちゃんと∞って出て感動した
02:41 (Ryusei_) おめ~
02:41 (Momizi) あ、ごめんよく考えたら
02:41 (Momizi) fvar(1)>256*256*256*128-1も256*256*256*128>fvar(2)も#INF00求めても解けないわ(
02:42 (Ryusei_) 凡人だましいいいい
02:42 (Momizi) まぁ、多分#INF00求めてるうちに解ける

varとfvarの相互変換

8/21
00:38 (Awamizu) fvarってどのあたりから狂うんだっけ。
00:39 (Awamizu) あー・・・・
00:40 (Awamizu) 鈴々に親変更積む事考えるとめんどくさくなってくる(
00:40 (DRM) 16777216から狂うんだったかな?
00:41 (Awamizu) お、どもども
00:41 (DRM) 2の何乗だっけね
00:41 (Awamizu) 意外と早いのね
00:41 (Awamizu) 24乗かな
00:42 (DRM) http://kyoakumugenirc.blog61.fc2.com/blog-entry-2127.html
00:42 (vesper) [URL] 凶悪MUGEN_IRC_ログ倉庫 小数
00:42 (Awamizu) おう、めるちゃん久し振り・・・・(
00:43 (DRM) 私はよく分からない(゚ω゚)
00:43 (Ryusei_) めるちゃん・・・うう
00:43 (Awamizu) 私の癒し成分だったのに(
00:44 (Awamizu) んー、bit関係は疎いんだよなあ・・・
00:47 (Awamizu) こういう会話みてすげーって思う私は製作者としてどうなのか(
00:49 (Awamizu) んー、これ見るとfvarでのbit演算も24桁目までなら使えそうだけどどうなんかね。
01:03 (DRM) 出来たはず
01:04 (Awamizu) ふむ
01:04 (Awamizu) オキ氏くらいしか見たことないんだけどね。fvarでのbit演算なんて(
01:05 (DRM) http://kyoakumugenirc.blog61.fc2.com/blog-entry-2721.html
01:05 (vesper) [URL] 凶悪MUGEN_IRC_ログ倉庫 varとfvarの相互変換
01:05 (DRM) でも最近はこんなのもある
01:05 (DRM) (らしい)
01:07 (Awamizu) なんだぁ・・・これはぁ・・・・
01:08 (Awamizu) 話の9割が理解できません
01:08 (DRM) 00:25 (hitachi) floatとして解釈するとNaNになる数値でもちゃんと変換できる
01:09 (DRM) ってあるから、恐らく16777216以上でも狂わないってことだと思う
01:09 (Awamizu) んだね
01:09 (Awamizu) ふむ
01:10 (Awamizu) 事の発端はfvar(40):=Xの代入式がsysvar(0):=Xになるってことから?
01:11 (Awamizu) これ試さないとよくわからんなぁ。ちょっと試そう
01:13 (DRM) SysVar(0)にFVar(40)で代入するとfloatで保存出来るなら、FVar(0)にVar(60)で代入をするとintで保存出来るかもってことだったと思う
01:14 (DRM) 日本語が若干おかしくなったマン
01:14 (Awamizu) sysvar(0)=fvar(40)=floatになるってことなんかね
01:16 (DRM) 多分
01:21 (Awamizu) なるほど
01:25 (Awamizu) あーできた
01:25 (Awamizu) なるほど
01:26 (Awamizu) とりあえずfvar(40):=1でsysvar(0)=1073741824になるのは確認できた
01:30 (Awamizu) fvar(40):=2だった(今更
01:31 (Awamizu) んー、var(60)の方がよくわからぬ
01:32 (DRM) 16777216より上の値を代入してみて誤差が出なければ良いんじゃない?
01:33 (Awamizu) うーむ
01:33 (Awamizu) fvar(0)が変わらんのよねぇ
01:34 (Awamizu) あ?
01:34 (Awamizu) 違うな、内部的に変わってるなこれ・・・
01:35 (DRM) (゚ω゚)?
01:35 (Awamizu) いやね
01:36 (Awamizu) var(60):=Xってやって、デバッグでfvar(0)を見ても0だったんだけど
01:36 (Awamizu) 十徳ナイフでfvar(0)見ると値違うのよ
01:36 (DRM) おおなるほど
01:37 (Awamizu) var(60):=1でfvar(0)=1.401298E-45になった
01:40 (Awamizu) お、できた
01:40 (Awamizu) なるほど
01:42 (Awamizu) [State ]
01:42 (Awamizu) type=Null
01:42 (Awamizu) trigger1=1||var(60):=16777218
01:42 (Awamizu) trigger1=1||fvar(10):=16777218
01:42 (Awamizu) trigger1=1||fvar(1):=fvar(0)
01:42 (Awamizu) trigger1=1||fvar(40):=fvar(1)
01:42 (Awamizu) ignorehitpause=1
01:42 (Awamizu) [State ]
01:42 (Awamizu) type=DisplayToClipboard
01:42 (Awamizu) trigger1=!IsHelper
01:42 (Awamizu) text="sv(0):%d fvar(10)%d"
01:42 (Awamizu) params=sysvar(0),fvar(10)
01:42 (Awamizu) ignorehitpause=1
01:42 (Awamizu) 多分こういうこと
01:43 (Awamizu) fvar(10)は単純にfloat値で見るとどうなるか見てるだけ
01:45 (Awamizu) んで最初に戻ると
01:46 (Awamizu) これの応用でfvar代入時全てにvar(60)を使って代入して
01:46 (Awamizu) 読み込みにfvar(40)とsysvar(0)使えばfvarをすべてint値で管理できる
01:47 (DRM) うむ
01:47 (Awamizu) やっと理解できたーw
01:48 (Awamizu) これ確かに実用的だし使えるなぁ
01:52 (Awamizu) んー
01:52 (Awamizu) これ応用して何か作ってみるか
01:53 (Awamizu) あ、それはそうと
01:53 (Awamizu) DRM氏どうもありがとうございました
01:53 (DRM) ワイ将、頭がパンクしそうだった
01:53 (Awamizu) ww
01:53 (Awamizu) 私もだけどw
01:53 (Awamizu) 大抵巡追っていけばなんとかなるもんね
01:53 (Awamizu) 順
01:55 (Awamizu) しかし、int変数98個使えるとして、何に使うべきか・・・
01:55 (DRM) せやねw
01:55 (Awamizu) fvar有り余ってるよりはint変数の方がありがたいけど・・・
01:56 (Awamizu) ヘルパーIDとかをfvarに保存しても問題ないとかそのくらいしか思いつかぬ・・・
01:56 (emeru) ceilやfloor使えばfvarもintとして扱えるのでは・・
01:56 (Awamizu) いや、それはそうなんだけど・・・以下無限ループ
01:56 (DRM) HAHA
01:58 (DRM) もう寝るンゴ。明日早いし!
01:58 (Awamizu) おつー
01:58 (blue-eyes) おやすみです
01:58 (emeru) おつつーっ
01:58 (Awamizu) んっと
01:59 (Awamizu) fvar(10):=16777217 Floor(fvar(10))=16777216
01:59 (Awamizu) これがfvarの仕様
01:59 (Awamizu) この誤差をなくすのが上。以上(
02:00 (emeru) fvarは代入できる数がvarより少ないんだっけ
02:00 (emeru) 正確には微妙に違うけど
02:00 (Awamizu) 16777216以上の数字を代入するとずれが生じるっぽい
02:01 (emeru) もしかしたらそれ応用してfvarのgametime貫通とか
02:02 (Awamizu) fvarのgametimeかぁ・・・
02:03 (emeru) 今の所は貫通させる方法といったら魔法の数字くらいしか思いつかぬぅ・・
02:05 (Awamizu) あらやばい
02:06 (Awamizu) 魔法の数字忘れた(
02:06 (Awamizu) IRC読み漁ってると私結構使ってる=知ってたはずなんだが・・・(
02:07 (emeru) fvar限定だけど、全ての数字に等しくなる魔法の数字
02:07 (Awamizu) あーfvar(0)=1&&fvar(0)=2が満たせるんだっけ
02:07 (emeru) 確かそうだった記憶
02:08 (emeru) これを応用して、fvar(x)=y*gametime+zが楽に貫通できる
02:09 (Awamizu) 用はfvar(X)!=y*gametime+zを満たさなくなると
02:10 (Awamizu) 魔法の数字対策自体は簡単やね
02:11 (Awamizu) fvar(X)=1&&fvar(X)=2が満たせるなこれのNOTでいいわけだし
02:11 (emeru) 全部満たしちゃうからねぇw
02:12 (Awamizu) しかしこれ、全部ってのは語弊あるのか?!=は満たさないわけだし(
02:12 (blue-eyes) たしかこれの逆で全ての数字と異なる謎の数値もあったはず
02:13 (Awamizu) !=を満たして=を満たさないってこと?w
02:13 (blue-eyes) ・・・なんですけど、どうでしたっけ(
02:13 (emeru) あー、それ 後の検証で魔法の数字と同じ効果だったはず
02:13 (blue-eyes) 私も詳しいことは忘れました(
02:13 (blue-eyes) あーそうだったんですか
02:14 (blue-eyes) ま、全てと異なる数字なんててきとーな意味不明の数字を代入しときゃ万事解決なんですけど(
02:14 (emeru) http://lunatic284.blog90.fc2.com/blog-entry-7063.html 多分これのことだと思う
02:14 (vesper) [URL] lunaの倉庫 // 結局のところMUGENでの1.#QNAN0って
02:14 (blue-eyes) あー
02:15 (Awamizu) 1.#QNAN0か
02:18 (Awamizu) んー
02:18 (Awamizu) var(60)の使い道・・・変数保存とかには向いてるんだろうけど・・・
02:19 (emeru) 使い道が分かりませぬ・・・(
02:19 (Awamizu) いや、どうなんだこれ
02:20 (Awamizu) 参照するのにどうしてもfvar(40)通してsysvar(0)で確認する必要あるはずだけど・・・
02:20 (blue-eyes) というか・・・var(60)?(今更)
02:20 (Awamizu) おう、無限ループやめぇや(
02:20 (blue-eyes) え(
02:21 (Awamizu) http://kyoakumugenirc.blog61.fc2.com/blog-entry-2721.html
02:21 (vesper) [URL] 凶悪MUGEN_IRC_ログ倉庫 varとfvarの相互変換
02:22 (blue-eyes) でも普通にやればV60への保存、っていう記述は不可能であってますよね?言いたいことは大方分かりましたけど
02:23 (Awamizu) んーと、var(60)というものは存在しないので不可能ではありますね
02:24 (Awamizu) ただ、なぜかvar(60):=Xとやると,fvar(0)=Xになる
02:24 (blue-eyes) ということは、これは実質%nとかの専用のやり方、っていう解釈でいいんですね?ひたち氏が書いてるって時点で隔離技術併用確定でしょうけど
02:24 (Awamizu) そう思うやろ?
02:24 (blue-eyes) ファッ
02:25 (Awamizu) [State ]
02:25 (Awamizu) type=Null
02:25 (Awamizu) trigger1=1||var(60):=58585858
02:25 (Awamizu) trigger1=1||fvar(1):=fvar(0)
02:25 (Awamizu) trigger1=1||fvar(40):=fvar(1)
02:25 (Awamizu) ignorehitpause=1
02:25 (Awamizu) [State ]
02:25 (Awamizu) type=DisplayToClipboard
02:25 (Awamizu) trigger1=!IsHelper
02:25 (Awamizu) text="sv(0):%d"
02:25 (Awamizu) params=sysvar(0)
02:25 (Awamizu) ignorehitpause=1
02:25 (Awamizu) これがすべて
02:25 (blue-eyes) 確かにvar(59)のすぐ隣の領域はFvar(0)ですけど・・・こんなことがあり得るんですねぇ・・・
02:26 (Awamizu) fvar(40)=sysvar(0)ってのも同じくなんですよね
02:26 (blue-eyes) ですね、確かに魔横です
02:26 (blue-eyes) 真横
02:26 (Awamizu) これ、不思議なのが
02:27 (Awamizu) fvar(1)を普通にデバッグで表示しても0なんですよね(
02:27 (blue-eyes) おろ
02:27 (Awamizu) あ、%dのceil無しで違う値が返ってきた
02:28 (blue-eyes) あれですかねぇ、V領域とFV領域で数値の保存形式が違うのかも?
02:28 (Awamizu) %dのCeilだと何故か1になった(
02:28 (Awamizu) んーそれは確実に違うと思われ
02:28 (blue-eyes) ふむぅ・・・
02:29 (Awamizu) んー
02:29 (Awamizu) さらに使い道が分からなくなってきた・・・
02:30 (Awamizu) これfvarにどんな値入れてもおそらく敵からは0とかにしか見られないという利点はありそうだけど(
02:30 (Awamizu) それか、デバッグ表示特有でおかしなことになるのか・・
02:30 (blue-eyes) 難しいですねぇ・・・
02:32 (emeru) ますます使い道が分からなくなってきた(
02:32 (Awamizu) ふむ
02:33 (Awamizu) fvar(1)にint値で58585858を入れてtrigger1=fvar(1)=58585858をfloor,ceil色々試したけど1つも満たさなかった(
02:34 (blue-eyes) うーん・・・
02:34 (emeru) これってさ、複数のfvarに同時に代入させる事ってできるのかな
02:35 (Awamizu) var(60)に任意値代入->fvar(0)に任意値が代入される->fvar(X)にfvar(0)を代入する
02:35 (Awamizu) この流れに乗ってってればいけるかな
02:36 (Awamizu) ちなみにこのときのfvar(1)を十徳ナイフで監視すると
02:36 (emeru) うーむ・・
02:36 (Awamizu) fvar(1)=7.462898E-37になる
02:37 (emeru) 面白そうな技術ではあるけど
02:37 (Awamizu) んーどうやってもfvar(40)からのsysvar(0)通さないと中身が見れない
02:37 (Awamizu) floorだと0ceilだと1にしかならない
02:38 (blue-eyes) やっぱり保存形式が違うのではありません?
02:38 (Awamizu) そうだろうね
02:38 (blue-eyes) 2147483648まで対応のintから30桁以上のfloorに移し替える際に、
02:39 (blue-eyes) 下の桁から揃えてるとしたら、以上に低い数値になることに説明がつきますし
02:40 (Awamizu) おっと
02:40 (blue-eyes) でも、そうだとしたらなんで超即死においての領域感覚がVとFVで違わないのかが謎ですねぇ
02:43 (Awamizu) ふーむ
02:43 (Awamizu) ceilもfloorも使わず%dで値見るとどっから出てきたか知らん値が出てきた(
02:43 (blue-eyes) えー(
02:45 (Awamizu) 混乱してきた
02:45 (Awamizu) 一先ずいえることは
02:45 (blue-eyes) ややこい(
02:45 (Awamizu) var(60)を使ってfvar(0)にint値(25桁以上の整数を誤差無しで)保存できる
02:46 (Awamizu) fvar(0)の正しい値を参照できない(
02:46 (blue-eyes) ww
02:46 (Awamizu) 参照するためにはfvar(40)に値を代入してsysvar(0)を通す必要がある
02:47 (Awamizu) ちなみにvar変数に代入してもダメだった
02:47 (blue-eyes) SVに飛ばさないとだめなんですねぇ
02:47 (emeru) sysvar何て殆んど埋まってるンゴ
02:48 (Awamizu) ちなみにvarsetでsysvar(2)とかに代入してもおんなじ
02:48 (blue-eyes) なるほど
02:48 (blue-eyes) あ
02:48 (blue-eyes) trigger1=1||fvar(1):=fvar(0)
02:49 (blue-eyes) この記述法って、parentvarsetみたいな使い方はできないんですよね?たしか
02:49 (Awamizu) 自分にしかできないはずですね
02:49 (blue-eyes) ですよね、ありがとうです
02:51 (Awamizu) ふむ
02:51 (Awamizu) fvar(40):=enemy,fvar(1)でsysvar(0)通したらやっぱり正確な値出るのか
02:52 (Awamizu) んー
02:52 (Awamizu) なんだろ
02:52 (Awamizu) 面白い撃破条件思いついてきた(
02:53 (blue-eyes) やめて!SV0使ってるキャラじゃ撃破できなくなっちゃう!(
02:53 (Awamizu) あ、ちなみにだけど
02:54 (Awamizu) 最初にsysvar(0)の値通常変数に入れて終わったらsysvar(0)に戻せばええんやで?
02:54 (blue-eyes) いやいやいや(
02:54 (blue-eyes) そんなに贅沢に変数使えない(
02:54 (Awamizu) int変数98個もあるのに?(
02:54 (blue-eyes) もう全て埋まってますよとっくの昔に(
02:55 (Awamizu) fvarまで全部埋まってるのか・・・
02:55 (blue-eyes) ヘルパーの変数領域も追加で何個も借りてて変数が本気で足りないんです(
02:55 (Awamizu) 普通に尊敬するレベル
02:56 (Awamizu) あ、てぃんと北
02:56 (blue-eyes) なのでヘルパーが召喚すると挙動の一部が狂ったり(
02:56 (Awamizu) 来た
02:56 (blue-eyes) ↑ヘルパーの召喚に失敗すると、ですね
02:56 (Awamizu) これやっぱ便利だわ
02:56 (Awamizu) 是非使わせてもらおう
02:56 (blue-eyes) 嫌な予感がする(
02:57 (Awamizu) んでは、いつの間にか3時なので寝ます
02:57 (blue-eyes) おやすみですー
02:57 (Awamizu) 頭使ったから疲れた・・・

リンク1:FVarの仕様[skeletonの雑記]
リンク2:varとfvarの相互変換[@ひたちがゆく!]

varとfvarの相互変換

5/3
00:11 (hitachi) http://hitachi5300.blog.fc2.com/blog-entry-288.html
00:11 (vesper0) [URL] 変数の垣根を取り払う画期的な技術? ?@ひたちがゆく!
00:11 (hitachi) これは凶悪どころかMUGENの革命だと思うの
00:18 (lunatic__) ほう、これは面白いな
00:24 (Oracle) んー・・・?
00:24 (Oracle) fvar(0)にint記憶できるとして
00:24 (Oracle) それをfvar(1)に移すとそのまま?
00:24 (hitachi) うん
00:25 (Oracle) 16777217って数値を代入したとして
00:25 (hitachi) floatとして解釈するとNaNになる数値でもちゃんと変換できる
00:25 (lunatic__) fvar(1):=fvar(0)って感じに移動させておいて使うときはfvar(40):=fvar(1)でsysvar(0)読み込みって感じかな
00:25 (hitachi) そうですね
00:26 (lunatic__) 一応sysvar(0)の保存用変数がほしいから通常変数として使えるのは98かな(それでも多いけど
00:26 (Oracle) 十分ですね
00:27 (Oracle) int値で保存されるから参照しても正しく16777217って出てくるのね
00:27 (hitachi) です
00:27 (hitachi) 2^23とか関係なしにできます
00:27 (Oracle) わぁ
00:28 (hitachi) -1(INTなら32ビット全部1)とかでもできたんで
00:28 (Oracle) 面白い記述が出来上がりそうですね
00:30 (Oracle) ビット演算の記述をそれで行う場合
00:30 (Oracle) どうやればできるだろう・・・悩んでる
00:31 (hitachi) fvar(40):=fvar(0)とやって
00:31 (hitachi) sysvar(0)&xxxと
00:31 (hitachi) やればfvar(0)に保存した値のビット演算ができる
00:32 (Oracle) var(60):=(sysvar(0)|2)って感じかなあ
00:32 (hitachi) そですね
00:33 (Oracle) ビット弄る前にsysvarにfvar(40)を移して
00:33 (Oracle) そいつを元に弄るか
00:36 (Oracle) 一手間かかるけどいいね。
00:36 (hitachi) ええ
00:36 (Oracle) AIとかの救いにもなるんじゃないかな
00:37 (hitachi) ただこれを先に見つけてたら変数圧縮を開発しなかったかもしれない
00:37 (Oracle) えーと、これを使えるようになるってことは
00:38 (Oracle) ひたちさんの親変更変数記憶も完璧にできて、変数余る・・・?
00:38 (hitachi) そですねえ
00:38 (Oracle) かなり実用的になってきたなあ
00:39 (hitachi) さすがにfvar含めて100個全部使われたら保存しきれませんけど
00:39 (Oracle) fvarは無理だと思います・・・
00:40 (Oracle) varだけでも戻せるのは大きい
00:40 (hitachi) 番号保存用変数にfvarの番号であるというフラグを作ってやればfvarもカバーできますね
00:41 (Oracle) できるのかー
00:41 (Oracle) ふーむ、ネロ完成したらテスト兼撃破挑戦キャラを作りましょうかね
00:42 (Oracle) 勉強しよう
00:42 (hitachi) まあ変数60個分くらいまでならgametime貫通用変数と両立しつつ復元できますかね
00:46 (hitachi) というか
00:46 (hitachi) varだけ復元するなら60個分の領域が確保できるからわざわざ圧縮なんてしなくてもいい
00:48 (hitachi) 私のやり方で保存すると相手の変数1つあたり1.2個の保存用領域が必要なので
00:49 (hitachi) 相手がvar全部使うことはそうそうないということを利用して対象の変数が0ならそれを飛ばすという処理をやってるので
00:50 (Oracle) 確かにその条件なら圧縮は無駄ですね
00:58 (Oracle) fvar(40)のときにvar(60)も出てたけど
00:59 (Oracle) fvar(40)の話が%nFvar弄りくらいしか使えないもんだと思って宝、全然意識してなかったなあ
01:00 (hitachi) 私もこれさっきtwitter見て気づいた
01:02 (hitachi) https://twitter.com/hitachi_5300/statuses/462236696453476353
01:02 (vesper0) [URL] Twitter / hitachi_5300: そうかfvar(60)とvar(40)も使えばsysfvar ...
01:03 (Oracle) IRCでvar(60)がうんたらって誰か言ってた気がするんだよなあ
01:03 (hitachi) それも俺
01:04 (Oracle) 最初そのツイートみてもよく分からなかった。
01:04 (Oracle) あ、そうでございましたか
01:04 (Oracle) 具体例を提示されてやっと処理が分かったよ
01:06 (hitachi) 最初に見つけた時は自分でも流してたんだけどねえ

リンク:var(60)によるint→float変換[lunaの倉庫]

エラー:デバッグ、:=

5/2
19:22 (emeru) fvarとvarは同時に計算できないのかしら
19:23 (YANMAR) 七紙氏が記事にしてなかったっけ
19:24 (YANMAR) http://0saft.blog.fc2.com/blog-entry-4657.html
19:24 (vesperAFK) [URL] [MUGEN]1.0*Life/LifeMax ネームレスゼロ ~MUGEN島~
19:26 (emeru) ふむふむ・・・
19:29 (emeru) んー、上手く行かないなぁ
19:30 (emeru) var(59):=floor(fvar(39)+1.0*var(58))だとどんな数を入れても0しか返さない
19:31 (emeru) floor外しても同じだった
19:34 (emeru) けどおかしいなぁシステム変数だとfvarとvar計算してもチャンと返してくれるのに
19:35 (emeru) ああん? ナニコレ
19:36 (emeru) マジ意味わかんないww
19:36 (emeru) var(59):=floor(fvar(39)+var(58))だと0しか返さないのに
19:37 (emeru) [state ]
19:37 (emeru) type=Varset
19:37 (emeru) trigger1=!ishelper
19:37 (emeru) var(59)=floor(fvar(39)+var(58))
19:37 (emeru) ignorehitpause=1
19:37 (emeru) だとチャンと数字を返してくれた
19:37 (macbeth) そもそもトリガーちゃんと読み込んでるの?
19:37 (emeru) 全部同じトリガーでやってるから間違いは・・
19:38 (emeru) type=null
19:38 (emeru) triggerall=!ishelper
19:38 (emeru) あとはtrigger1で変数の計算のみ
19:45 (emeru) 試しにKFMで試したけど
19:47 (emeru) [State ]
19:47 (emeru) type=null
19:47 (emeru) trigger1=!ishelper
19:47 (emeru) trigger1=var(0):=ID
19:47 (emeru) trigger1=fvar(0):=enemy,PalNo
19:47 (emeru) trigger1=var(1):=floor(var(0)+fvar(0))
19:47 (emeru) ignorehitpause=1
19:47 (emeru) var(1)が0しか返さなかった・・・
19:50 (qeg) [State ]
19:50 (qeg) type=null
19:50 (qeg) trigger1=!ishelper
19:50 (qeg) trigger1=var(30):=ID
19:50 (qeg) trigger1=var(31):=enemy,PalNo
19:50 (qeg) trigger1=var(32):=floor(var(30)+var(31))
19:50 (qeg) ignorehitpause=1
19:50 (qeg) にしたところ57を返した
19:50 (qeg) 敵palnoは1
19:50 (emeru) var同士、fvar同士だと問題ないんです
19:51 (emeru) var+fvarで代入させると0しか返してくれません
19:51 (qeg) あれ
19:51 (qeg) [State ]
19:51 (qeg) type=null
19:51 (qeg) trigger1=!ishelper
19:51 (qeg) trigger1=var(30):=ID
19:51 (qeg) trigger1=fvar(31):=enemy,PalNo
19:51 (qeg) trigger1=var(32):=floor(var(30)+fvar(31))
19:51 (qeg) ignorehitpause=1
19:52 (qeg) 返せない筈なのに返せた
19:52 (emeru) んん?
19:52 (qeg) ちょっと見比べてみます
19:53 (emeru) あれ、57て表示された・・
19:55 (emeru) var(30)をvar(0) fvat(31)をfvar(0) var(32)をvar(1) にしてみてください
19:55 (qeg) その変数を使ってないか調べてみます
19:55 (qeg) var(0)、var(1)を、被ってたらキャラ変える
19:57 (qeg) アルェ
19:57 (qeg) [State ]
19:57 (qeg) type=null
19:57 (qeg) trigger1=!ishelper
19:57 (qeg) trigger1=var(0):=ID
19:57 (qeg) trigger1=fvar(0):=enemy,PalNo
19:57 (qeg) trigger1=var(1):=floor(var(0)+fvar(0))
19:57 (qeg) ignorehitpause=1
19:57 (qeg) 普通に返した(
19:58 (emeru) 私のところだと0しか返さないですねぇ
19:59 (DRM) ~Clipboardをちゃんと代入式のあるステコンの直下に置いていますか?
19:59 (qeg) 19:50 (emeru) var同士、fvar同士だと問題ないんです
19:59 (qeg) つまり真下に置いてるっぽい
19:59 (emeru) 真下に置いてますが0しか返してくれないです
19:59 (DRM) では、%dとか%fを間違えてませんか?
20:00 (emeru) %dですねぇ
20:00 (emeru) あ、
20:00 (emeru) みしかし
20:00 (emeru) %fだったら返すかなーと思ったらそんな事無かった
20:01 (emeru) varだしなぁ
20:02 (emeru) コピペしたけど0しか返してくれない´・ω・`
20:02 (qeg) ワケワカメすぎる、キャラ送ってくれい、こっちで見たい
20:03 (emeru) はいー
20:05 (emeru) http://
20:05 (emeru) これですー
20:07 (DRM) デバッグ真下じゃなくて真上じゃねぇか!w
20:07 (qeg) 真下に置いてないw
20:08 (DRM) 飯食ってくる・・・
20:12 (emeru) デバッグ真上、に置いても0しか返さない時が・・
20:16 (qeg) それとvar(1)が1ズレてるっぽい
20:16 (qeg) 2p側限定で
20:17 (qeg) お互い1Pだというのに58を返した
20:17 (emeru) なん・・・だと・・ コレは一体・・・
20:17 (emeru) 全く同じ条件化で、正常に返すキャラと0しか返さないキャラが出てきた
20:18 (qeg) 0しか返さないのは処理順のせいですね
20:19 (qeg) 入れ替えたら直り、↑の状況に至りました
20:19 (emeru) 記述はデバッグまでコピペ&1P側で検査いたしました
20:21 (qeg) 1P側なら大丈夫ですなぁ
20:21 (emeru) さっきのキャラだとキチンと正常値でしたけど自キャラだと0しか返してくれなかった
20:22 (qeg) 変数被りの疑い
20:22 (qeg) ちゃんと変えて使ってるならやはり処理順の疑い
20:25 (emeru) statedef -3の一番最初でやっても0ですなぁ・・なんだろ・・
20:29 (emeru) んー、何でか分からないけどvarsetで代入させると上手く行く・・ まぁ、コレでいいかぁ
20:29 (Rick) たぶんその原因が分からないと同じことを繰り返すでしょう
20:32 (emeru) nullでダメでvarsetだと上手く行く不思議・・・
20:32 (Rick) 不思議ではなくミスです
20:33 (DRM) 不思議で片づけてはならぬ・・・
20:33 (emeru) んん?別のステコンでnullで代入させたら上手く行く
20:34 (DRM) 因みにqegさんが58になったっていうのはIDが57だからですよ
20:35 (g-meru) 俺バカスwwwwwwwww
20:37 (emeru) 変数の計算させているステコン所でtrigger1=var(59):=floor(fvar(39)+var(58))させると0
20:38 (emeru) その真下のステコンでnullで代入させるとキチンと返してくれる
20:38 (Rick) ステコン1個全部見せてくれませんかね?
20:38 (Rick) 1個じゃないか 2個ですかね
20:39 (emeru) ちょっと長めですがご了承を
20:42 (emeru) (ステコン貼るよ
20:42 (Rick) はいなぁ
20:42 (emeru) [state ];全変数参照
20:42 (emeru) type=null
20:42 (emeru) trigger1=!ishelper
20:42 (emeru) trigger1=var(21):=(var(0)+var(1)+var(2)+var(3)+var(4)+var(5)+var(6)+var(7)+var(8)+var(9)+var(10)+var(11)+var
20:42 (emeru) (12)+var(13)+var(14)+var(15)+var(16)+var(17)+var(18)+var(19)+var(20))
20:42 (emeru) trigger1=var(41):=(var(21)+var(22)+var(23)+var(24)+var(25)+var(26)+var(27)+var(28)+var(29)+var(30)+var(31)+var
20:42 (emeru) (32)+var(33)+var(34)+var(35)+var(36)+var(37)+var(38)+var(39)+var(40))
20:42 (emeru) trigger1=var(58):=(var(41)+var(42)+var(43)+var(44)+var(45)+var(46)+var(47)+var(48)+var(49)+var(50)+var(51)+var
20:42 (emeru) (52)+var(53)+var(54)+var(55)+var(56)+var(57))
20:42 (emeru) trigger1=fvar(20):=floor(fvar(0)+fvar(1)+fvar(2)+fvar(3)+fvar(4)+fvar(5)+fvar(6)+fvar(7)+fvar(8)+fvar(9)+fvar
20:42 (emeru) (10)+fvar(11)+fvar(12)+fvar(13)+fvar(14)+fvar(15)+fvar(16)+fvar(17)+fvar(18)+fvar(19))
20:42 (emeru) trigger1=fvar(39):=floor(fvar(20)+fvar(21)+fvar(22)+fvar(23)+fvar(24)+fvar(25)+fvar(26)+fvar(27)+fvar(28)+fvar
20:42 (emeru) (29)+fvar(30)+fvar(31)+fvar(32)+fvar(33)+fvar(34)+fvar(35)+fvar(36)+fvar(37)+fvar(38))
20:43 (emeru) ignorehitpause=1
20:43 (emeru) [state ]
20:43 (emeru) type=null
20:43 (emeru) trigger1=!ishelper
20:43 (emeru) trigger1=var(59):=floor(fvar(39)+var(58))
20:43 (emeru) ignorehitpause=1
20:43 (Rick) え、なにこれ
20:45 (emeru) name変更の変わり考えた結果がコレしか・・w
20:45 (Rick) この記述だと0になるのですか?
20:45 (emeru) いえ
20:45 (emeru) var(59):=floor(fvar(39)+var(58))を一番目のステコンの一番下に置くと0しか返してくれませんでした
20:46 (Rick) トリガー成立してないのでしょう
20:46 (Rick) trigger1=var(x):=y||1が普通ですよ?
20:46 (emeru) 因みに他のキャラだとキチンと返してくれますデバッグの位置、記述ともにコピペです
20:47 (Rick) var(x):=yの計算結果が0だとそのトリガーは不成立、以降のトリガーを読みません
20:47 (Rick) そのせいで最後の方にあるトリガーが読まれず0になったのだと思います
20:48 (emeru) なるほど・・・
20:48 (Rick) 代入式を使う時は||1を入れる癖をつけましょう
20:49 (emeru) 分かりました!
20:49 (emeru) ありがとうございます!
20:51 (emeru) おお、キチンと返してくれた!
20:52 (Rick) おめでとうです
20:52 (emeru) ありがとうございます!

fvar(X)=var(X)とvar(x):=fvar(y)

4/3
01:40 (Melt) fvar(X)=var(X)ってエラー出るよね?
01:40 (ni-san) 小数入れたら出そう
01:41 (Melt) 整数のみだよー
01:41 (Rick__) エラーも警告メッセージも出ないですよ
01:41 (Melt) あ、大丈夫なんだ。よかったよかった・・・。
01:41 (ni-san) 勝手に処理されるんでしたっけ?
01:42 (Rick__) そうじゃないとfvar(x)=10もできないじゃないですか
01:42 (Melt) なるほどー
01:42 (Rick__) 警告メッセージが出るのはvar(x):=fvar(y)みたいなのです
01:42 (Melt) りっくさん、にーさんありがとうですー
01:43 (Rick__) 一致を見るvar(x)=fvar(y)でも警告メッセージは出ません
01:44 (Melt) あ、あと、みなさん色々教えて下さってありがとうございます。

サバイバル時変数リセット

11/19
14:57 (YANMAR) あー・・
14:57 (YANMAR) [State 190, サバイバル時変数リセット]
14:57 (YANMAR) type = Varrangeset
14:57 (YANMAR) triggerall = roundstate < 1
14:57 (YANMAR) trigger1 = enemy,roundsexisted = 0
14:57 (YANMAR) value = 0
14:57 (YANMAR) ignorehitpause = 1
14:57 (Rick_) 早いとこ
14:57 (YANMAR) これってもう1個トリガー無いとやばいのか
14:57 (YANMAR) triggerall=roundsexisted=0
14:58 (Rick_) それは駄目w
14:58 (YANMAR) ぬぬぅ
14:58 (Rick_) それだと2試合目からトリガー満たされませんからね
14:58 (YANMAR) あー、そっか、こっちが2R目だと駄目になっちゃうのか
14:58 (YANMAR) とするとこれでいいのか
14:59 (Rick_) たとえばビット1つ使って最初の1F目を算出してもいいです
14:59 (YANMAR) roundstate=0感知、かしら
14:59 (Rick_) Statedef -1で常にビットをセットすれば1回だけリセットできますね

変数リセット

11/19
14:36 (YANMAR) var(gametime%60) = 0でvar(0~59)ってことだよね
14:36 (YANMAR) fvarの場合だとfvar(gametime%40)でいいのかな
14:36 (DRM) ですね
14:37 (YANMAR) おー、どもです
14:37 (YANMAR) 変数リセくらい個別にやる必要なかったのでこれで統括やー
14:38 (DRM) でも一気にリセットできませんぬ
14:38 (YANMAR) roundstate=4の相手側のリセなのでこれでおkかなと
14:38 (DRM) ふむ
14:38 (YANMAR) 流石に試合後は一括する必要ないだろーってことで
14:38 (YANMAR) 試合中のは流石に個別です

変数代入

11/18
21:42 (Melt) バルコマの汎用はきっついと思うなあ・・・
21:43 (Rick_) えっ そうなのですか?
21:43 (Melt) え、だってアーマーつけてステートに還さないといけないから
21:43 (macbeth) バルコマ?
21:43 (macbeth) 鬼塚じゃなくて?
21:43 (ni-san) 鬼塚じゃね(
21:43 (Melt) そのステートをどうやって渡すのか・・・。鬼塚ですねー
21:44 (macbeth) あれよ
21:44 (macbeth) 色々実験して気づいた
21:44 (macbeth) hitoverrideのステート移動のタイミングの関係で
21:44 (macbeth) 逆混線で回収しても問題ない
21:44 (Rick_) 鬼塚は次の更新で確実に倒せるようになってますに
21:44 (macbeth) 偽装ヘルパーにhitoverride付けて殴ればいい
21:44 (Rick_) 現行版はちょっと不安定だけど
21:45 (Melt) むー?
21:50 (Melt) ヘブンズさんがばっちり倒してましたね~
21:51 (Rick_) 良かったです
21:51 (Rick_) ちなみに次の更新だと高速削りはできないですけど、確実性は高くなるはずですね
21:53 (Melt) すごいなあ・・・
21:54 (Rick_) まあStateNo指定しているキャラなんてめったにいないですし、ある程度露骨に狙うのもありだと思いますw
21:54 (macbeth) 準汎用?
21:57 (Rick_) そういうのではないですね
21:58 (macbeth) ふむ
21:58 (Rick_) でも何気にやってることは単純なのですが変数代入のところで結構テクいことやってるなぁと自画自賛
21:59 (ni-san) さすがリック氏は格が違った
21:59 (Rick_) 複数の変数から特定の変数をrandomで選ぶ方法ですね
21:59 (Rick_) しかも途中に選んではいけない空白の変数がある場合
21:59 (macbeth) あー
21:59 (macbeth) それは気になるね
22:00 (Rick_) var(0)、var(1)、var(2)、var(3)から1つ選ぶのは簡単ですけどねー
22:00 (Rick_) var(0)、var(1)、var(3)から1つ選ぶのは結構めんどい
22:00 (Melt) うんうん
22:00 (macbeth) 0をチェックしてスキップする形になるのかな?
22:00 (Rick_) ちょっと違いますねー
22:00 (macbeth) ふむ
22:01 (Melt) 私はそれとは違うけど、ステート返しでやってるかなあ
22:01 (Rick_) ほう・・・
22:01 (Rick_) まあ変数のソートをしない場合は必要になる技術でしょうねー
22:02 (Melt) ただ、間が抜けても正常に選択するのは出来ないですけどねー・・・。
22:02 (Rick_) もしかして選び直しですかね?
22:02 (Melt) なので、最初から綺麗に並べてOKな状態にしてるです。
22:02 (Rick_) なるほどw
22:02 (Rick_) まあそれが一番無難ですね
22:02 (Melt) p1stateno=playerid(sysvar(1)+1),sysvar(random%(!!playerid(sysvar(1)+1),sysvar(0)+!!playerid(sysvar(1)+1),sysvar(1)+!!playerid(sysvar(1)+1),sysvar(2)+!!playerid(sysvar(1)+1),sysvar(3)+!!playerid(sysvar(1)+1),sysvar(4)))
22:02 (Melt) こんなのですねー
22:03 (Rick_) 1行でやるのかーw
22:03 (Melt) だってp1statenoだもん(
22:03 (Rick_) 私は変数に記憶している数を割り出してそれで剰余してますね
22:04 (Rick_) まあやってることは同じですが、見やすいということでw
22:04 (Melt) ほむほむ・・・
22:04 (Rick_) enemyステートを「返すステートの選択」で検索すると出ますね

変数節約

4/17
16:09 (Rel) 変数を多く使う演出ってどんなのがあるんでしょう?
16:09 (macbeth) んー
16:09 (macbeth) 例えば
16:10 (macbeth) うちの子が今入れようとしてる演出は
16:10 (macbeth) 時間経過で拡大縮小するんだけど
16:10 (macbeth) 本体を準ステ固定してるからtimeが動かないんだよね
16:10 (macbeth) だから時間を管理する変数が欲しい
16:10 (Sance) つpausetime
16:10 (Sance) とかだめ?
16:11 (macbeth) んー…
16:11 (macbeth) 時止め解除で上書きされちゃうんじゃないかな…
16:11 (Sance) あー、間違えた
16:12 (Sance) hitpausetimeですw
16:12 (macbeth) 自分を凍結させるのは怖いなー
16:12 (macbeth) あーでも
16:12 (simotsuki) hitpause中はアニメ進みませんよw
16:12 (Sance) そーなのかー
16:12 (Rel) 進みませんね
16:12 (macbeth) いや
16:13 (Rel) ChangeAnimで
16:13 (macbeth) 例えば30フレーム間同じanimとかなら
16:13 (Rel) elem=AnimElemNo(0)+1
16:13 (Rel) こういうのなら
16:13 (macbeth) hitpausetimeを30にしてhitpausetimeが終わったら次に移るようにするとか
16:13 (simotsuki) sysvarは使えないのですか?
16:14 (macbeth) sysvarは使えるんだけど
16:14 (Sance) 後は・・・powerとかlifeとかを弄るとか
16:14 (Sance) いや・・・だめか
16:14 (macbeth) 一応他に方法はないのかってことで
16:14 (simotsuki) explodとか
16:14 (macbeth) あー
16:15 (Rel) Projを出し続けてその個数で、とか
16:15 (macbeth) 時間経過でexplod出して
16:15 (macbeth) その個数でか
16:15 (macbeth) ちょっとやってみよう
16:15 (simotsuki) 秒数多い場合は面倒ですけどIDで制御した方がいいかも
16:15 (Sance) 埋まって出せなくなったら完全に狂うけどね
16:16 (macbeth) あー
16:16 (Sance) 殆ど無いと思うけど
16:16 (macbeth) Explod埋まるってあるのかな
16:16 (simotsuki) というか
16:16 (Sance) ジェネラナイとか埋めてなかった?
16:16 (simotsuki) animelemtimeで良い気もw
16:16 (Sance) 思ったw
16:16 (Rel) AnimTime
16:17 (Rel) ていうか時間経過で拡大縮小だったら
16:17 (macbeth) animelemtimeだと何故か上手くいかなかったっていう
16:17 (simotsuki) -1にしないで膨大な値にすればtimeと何も変わらず使えるはず
16:17 (Rel) Sin(GameTime * N)とか
16:17 (macbeth) あー
16:17 (macbeth) そういうのではなくてw
16:17 (Rel) 周期性はないのですか
16:17 (macbeth) 周期的に縮小拡大したいわけではないのですw
16:18 (macbeth) scale = abs(0.07*(var(1)-35)),abs(0.07*(var(1)-35))
16:18 (macbeth) こんな感じ
16:20 (Sance) hitcountなどは?
16:20 (Rel) AnimTime安定かも...
16:20 (Sance) まぁ、animtimeが一番安定しますがw
16:21 (macbeth) Animtimeかー
16:21 (Rel) 1枚目を-1にして、AnimElemTime(2)でやると上手くいかなかったはず
16:23 (macbeth) えーっと
16:24 (macbeth) さっきのやつをanimtimeに変えるなら
16:24 (macbeth) scale = abs(0.07*(-animtime-35)),abs(0.07*(-animtime-35)) でいいのかな
16:25 (Sance) それで良いね
16:25 (Sance) -いらない気もするけど
16:25 (Rel) どうせプラスになるので要らないですね
16:25 (macbeth) ふむ
16:27 (macbeth) あれ…
16:27 (macbeth) ダメっぽい
16:27 (Sance) animtime+35?
16:28 (macbeth) んー
16:29 (Sance) animが問題なのかなぁ、
16:29 (Rel) Time = 0とした時の固定AnimTime値も入れないとダメかな
16:30 (Rel) AnimElemTime(1)=0時というか
16:30 (macbeth) おぉ
16:30 (macbeth) 上手くいった
16:30 (macbeth) scale = abs(0.07*(215+animtime-35)),abs(0.07*(215+animtime-35))
16:30 (nyorochi) おめです
16:30 (macbeth) これでいいっぽい
16:31 (macbeth) あぁそうか
16:31 (macbeth) 初期値は-215か
16:31 (macbeth) animの合計フレームを足してやればいいのね
16:31 (simotsuki) animelemtime(1)の方が使いやすかったかもしれませんねぃ
16:32 (simotsuki) そのままtimeですし

sysvar

3/30
21:41 (Rel) VarSet系ステコンで var(X) = AAA と書く以外に v = X value = AAAと書く書式がありますけどsysvarにもありますっけ
21:42 (YANMAR) sysvar(x)=AAAとか出来ますよ
21:42 (Rel) あー、いや、sysvar(x) = AAA以外に
21:43 (Rick___) sysv = XXX value = YYYと分けて書くことができるかという意味ですか?
21:43 (YANMAR) 逆のパターンかぁ・・そっちはやったことなかったorz
21:43 (Rel) ええ、そういう書式があるのかなと
21:47 (Rel) うーん、無いみたいだ...
21:47 (Rick___) 試してみたところエラー落ちはしないですが、無効なのかもしれないです。
21:49 (Rel) value=があるのでエラー落ちはしませんけど代入されもしないみたいですね...どうもありがとうございました
21:50 (Rick___) いえいえ。しかしVarSetのv = の書式は使ったことがないなぁ・・・w
21:50 (Rick___) 文字数制限にかかる時は使えるのですが。
21:51 (Rel) その通りなんですよねぇ、これがsysvarの方でも使えたらステコンを分けずに済んだのですが...

数値の各位の値を確認

11/6
22:39 (Rel_) 数値の各位の数値を確認するのって 1の位の場合:a-floor(a/100)*100-floor(a/10)*10 で良かったかしら
22:40 (Rel_) ツクールの時と仕様が違うから悩んだわ...
22:40 (SuperMechSuika) オメガのcns見てそこらへん学習した
22:40 (SAIKEI) %を駆使した
22:44 (Rel_) 小数点第一位以下の数値を出すのが整数位に比べてめんどくさそうでそれほどでもなかった

変数引継ぎ

5/25
23:07 (paprika_) varのラウンド引き継ぎはどうやるんでしたっけ・・
23:11 (Rel_) dataのところの
23:11 (Rel_) IntPersistIndex
23:12 (Rel_) これを0にすると全部引き継げます
23:13 (paprika_) なんと
23:14 (Rel_) FloatPersistIndexも0にするとFVarも全部引き継げます
23:14 (Rel_) ちなみに例えば20にしますと
23:14 (Rel_) 19までの変数がリセットされます
23:15 (paprika_) だからいくら記述しても引き継がれなかったのかorz
23:15 (Rel_) 0にすることで-1までの変数をリセット・・・負の数の変数はないので、全部引継ぎということになります
23:17 (paprika_) できました。・゜・(ノε`)・゜・。
23:17 (paprika_) ありがとうございます
23:18 (Rel_) おめでとうございます&どういたしまして
23:21 (paprika_) 無限小学校中退の私にとって分からないことだらけだw
23:25 (paprika_) varとか使い方分からないし・・・
23:26 (Rel_) 確かに最初の内はほとんど使わないかも知れない
23:26 (beta_) varは変動する数字が入ると認識している
23:27 (paprika_) varは0か1を入れればどうにかなるんじゃね と認識してる
23:27 (Rel_) KFMだって使ってるの1つぐらいだしそれも別にただの置き換えだから実質的に一例を見せてるようなものだし
23:27 (kamase) 最初は使わないが慣れてくるとvarが足りないと思ってしまうw

:=

5/21
22:12 (Rel_) んっふ、1 != [0,1] の因果に巻き込まれて頭がおかしくなって死にそうなので天則開始
22:13 (Rel_) 1≠1ってどういうことなのよ・・・
22:13 (LANCEL) なにそれこわい
22:18 (kamase) 1 != [0,1] 1は1ですので[0,1]の条件を満たしますが!で非定形になってるので実行できませんと俺のMUGENで出た
22:19 (Rel_th123) 正確にはVar(X)=1の状態で
22:19 (Rel_th123) Var(X) != [0,1] && Var(X) := 0とやったら
22:19 (_Alice_) ちょ
22:19 (Rel_th123) Var(X)に0が代入されてしまったという
22:19 (_Alice_) []つかう場合は
22:20 (_Alice_) Varを()でくぐってやらんと(
22:20 (Rel_th123) いや、括弧はめんどかったので省略しただけです
22:20 (_Alice_) (Var(X) != [0,1]) && Var(X) := 0
22:20 (_Alice_) いやメンドイんじゃなくて、エラーになるから(
22:20 (Rel_th123) いや、実際に使うときは使ってますけど居間は(
22:20 (kamase) &&は同時に読み込むと考えていいよ。トリガーを別々にしないと
22:21 (Rel_th123) 二行に分けてかかなあかんのか・・・
22:22 (kamase) 逆に考えるんだ。 (var(X):=0)&&(var(Y):=0)&&(var(Z):=0) とかで一気に三つも代入できるという(ry
22:28 (SAIKEI) 同時に読み込むっていう仕様のせいで
22:28 (SAIKEI) numtarget && target,~~は
22:28 (SAIKEI) エラメ吐くというね
22:28 (_Alice_) だね(
22:28 (Rel_th123) ですねぇ
22:29 (xxxppp_Pro) そーなのかー
22:29 (SAIKEI) そういえば
22:29 (SAIKEI) ifelse(numtarget, target,~~,0) はエラメ吐くのかな
22:29 (SAIKEI) 試してみよう
22:29 (_Alice_) でるかもね
22:31 (SAIKEI) デシタネー
22:32 (SAIKEI) どうにかしてその行にあるリダイレクトを完全に無視できる記述方法ないかなーとか思ったけど
22:32 (SAIKEI) まあ無理ぽいですな
22:32 (SAIKEI) 素直に改行
22:32 (_Alice_) 改行すれば澄むしね(
22:32 (Rel_th123) target()はないですからねぇ
22:32 (_Alice_) 済む・・・
22:33 (SAIKEI) ただ式にtarget,~~とかを入れるとなると
22:33 (Rel_th123) ・・・いや、あるか
22:33 (SAIKEI) 改行がちと邪魔くさくなる
22:33 (SAIKEI) 同じような式を複数作ることになるからね
22:33 (Rel_th123) ヘルパーリダイレクトみたいにNumTarget(900) && Target(900*(NumTarget(900) > 0)),~ならあるいは・・・
22:33 (_Alice_) まぁでも
22:34 (_Alice_) Var(X) := nは
22:34 (_Alice_) どんな状況下でも最優先で実行されますしのぅ
22:34 (SAIKEI) いんにゃ
22:34 (SAIKEI) 普通に上から順番ですお
22:34 (SAIKEI) 直前のトリガーが0なら
22:34 (SAIKEI) :=はもちろん処理されない
22:35 (_Alice_) Trigget1 = 0 && Var(X) := n
22:37 (kamase) &&というか同じ行にある奴は全て同時に読み込むから0は意味無いじぇ
22:37 (SAIKEI) それ最優先というか並列処理な気が
22:37 (SAIKEI) 自分が言ったのは
22:37 (SAIKEI) trigger1=numtarget
22:37 (SAIKEI) trigger1=var(x):=target,~~
22:38 (SAIKEI) のときは処理されない以下略

:=を使うときの注意

4/30-5/1
23:53 (Rel) :=を使うときの注意って何かあります?
00:07 (kamase) trigger1=var(X):=0にするとtrigger1=0と同じなのでトリガーの条件を満たさないということかな
00:09 (Rel) なるほど
00:09 (Sance) あー、だから ||1とかついてるのかぁ
00:09 (Rel) 1||Var(X):=0なら他の変数も同時に代入できるってことですね
00:13 (kamase) それを逆に利用して一度に色々な条件の代入ができたりしますけどね trigger1=条件 trigger1=(var(X):=YY)*0 trigger2=…
00:14 (Rel) なるほど、varsetステコンを使わず他の無関係なステコンで代入できるわけですか
00:16 (kamase) 敵のanim習得では重宝してるね。ループ使わないで一度にたくさん検索できるから
00:19 (Rel) ふむふむ

変数リセット

12/15
19:26 (nyorochi) とりあえず死星2は変数リセで死ぬからそこからだのぅ
19:27 (Yanmar) 変数弄りは即死返しよりもずっと簡単
19:27 (Yanmar) 記述が面倒なだけかと
19:27 (nyorochi) 0にするだけじゃダメなのか
19:27 (Yanmar) 0にするだけですよ
19:27 (Yanmar) ただ、全てのvar書くのが面倒
19:28 (nyorochi) 適当にリセットすれば死ぬかな
19:35 (nyorochi) ヒャッハー。死なないぜー
19:35 (nyorochi) 適当はやはりダメか・・・
19:35 (Yanmar) デススタはなかなかヘルパー出さないししににくいから
19:37 (nyorochi) あぁぁ。氏のやつコピペだと死ぬ・・・やはりリセットが問題か・・

イントロ前の変数セット

11/23
20:12 (mosa) イントロ前の変数セットって
20:12 (mosa) イントロ飛ばされると本体の変数もリセットされちゃうんだっけ
20:19 (lunatic__) リセットはされないはず。ステコン追加して自分でリセットしてるなら分からないけど
20:19 (Yanmar) varrangeset次第でしたっけ

sysvar(1)

11/1
23:24 (TxxxpppT) sysvar(1)って何の管理してる?(デフォで
23:24 (SAIKEI) 主に空中ステート
23:25 (SAIKEI) 空中から地上に移行するさいの処理に使われている ガードステートの155とか

:=

9/21
14:10(marukyu) :=ってどういう意味持つんでしょうか?
14:10(xxxppp) 俺も知りたい
14:10(xxxppp) 説明読んでも分かんなかった
14:11(xxxppp) := :変数専用。『そのステート内でならこの演算子を使った値を最優先する』演算命令。
14:11(xxxppp)     常時監視で実行するとどんな状況でも常に最優先される。
14:11(xxxppp)     トリガーに設定しただけでも、他のトリガーの条件が無効でも、
14:11(xxxppp)     お構いなく効果があるので注意。
14:11(xxxppp) と書いてあるが和漢にゃい
14:11(kamase) 代入って意味でふ
14:12(marukyu) なるほど
14:12(xxxppp) どんな条件で?
14:13(kamase) trigger1=var(XX) := YY でvar(XX)にYYという値を入れるということ
14:14(xxxppp) varsetとどう違うんだ?
14:15(kamase) 意味合い的にはほぼ一緒ですが、こっちはvarsetと違って色々と応用が利くので便利です
14:23(xxxppp) つまりトリガーに入れとくとそのステコンでvarsetが発動ってことか
14:24(kamase) その上、ステコン自体はちゃんと機能するから上手く使えばvarsetは要らなりますw

上下運動する変数

9/5
01:40(okihaito) 変数の値を上下運動させるのって簡単な指定方法ないかなぁ・・・ 知ってるやり方だと変数2つ使ってしまう
01:40(SAIKEI) 無理やり敵のplayerヘルパーを全部normalにすりかえてるからまあ失敗もほとんどない
01:41[SAIKEI] trigger1=var(15):=var(15)+ifelse(gametime%90>45,1,-1)||1
01:41[SAIKEI] trigger1=var(15):=ifelse(var(15)<0,0,ifelse(var(15)>45,45,var(15)))||1
01:41(nanagami0) つ[Sin() or Cos()]
01:42(SAIKEI) こんな感じ? 45フレームかけて0~90に運動
01:42(SAIKEI) 往復で90フレームかな
01:43(okihaito) ふむふむ・・・ メモって後で試行しよう
01:44(lunatic) 100-abs(100-var(0)%200)とか?
01:45(okihaito) SinとCosまだ扱えないんだよなぁ・・・w 弾幕で何度も試行したけど思い通りにするのにかなり手間取った
01:46(okihaito) absだとマイナス値使え・・・ 変数を増減の基準値にすれば使えるか
01:54(nanagami0) fvar(15):=fvar(15) + Sin(GameTime%360*pi/180) [Sin戻り値 -1~1] Sinは整数に使いづらかったorz
01:55(okihaito) ceil使えば使えそう
01:55(SAIKEI) なるほどそういう記述があるのか 使ってみよう

:=、sysvar、sysfvay

8/16
23:26 [mosa__] [State 10000, End]
23:26 [mosa__] type = ChangeState
23:26 [mosa__] trigger1 = AnimTime = 0
23:26 [mosa__] trigger1 = sysvar(3):=0||1
23:26 (mosa) :=の使い方ってこれで合ってるよね
23:26 (SAIKEI) ですね
23:26 (Len_chan) sysvarには確か使えませんでしたよ
23:26 (mosa) /(^o^)\ ・・・・
23:26 (mosa) 聞いておいて良かった
23:26 (mosa) ありがとうございます(´・ω・`)
23:26 (SAIKEI) sysvarってそういえばそんな仕様があったのか
23:27 (Len_chan) チガッタッケ
23:27 (Len_chan) シラベテミマス
23:27 (SAIKEI) ってluna氏がそういってたような
23:27 (lunatic__) そう、使いたかったのに働いてくれない
23:28 (mosa) あぶねー・・・
23:28 (SAIKEI) かゆいところに手が届かない仕様ですね
23:28 (mosa) mugen基本あまり動かせないからこういうの先に理解してないと大変な事になるんだよね
23:28 (lunatic__) だから直前で同じ条件でvarsetしかないわけだね
23:29 (okihaito) sysvarだけ面倒だよねぇ・・・
23:29 (mosa) とりあえずその方式にスイッチします
23:30 (lunatic__) だがparentvarsetが使えないという混線食らう者にとってはありがたい仕様がある
23:31 (SAIKEI) 個数制限付き10個でしたっけ
23:31 (nanagami0) 整数5の小数5だったかな
23:32 (okihaito) デフォルトのコモンで2つほど勝手に使われてるよね・・・
23:32 (Len_chan) ですね
23:32 (SAIKEI) 全部で10個だとAI作るのが厳しいかな?本体管理にも使うわけだし
23:32 (Len_chan) あや。3個だった
23:33 (Len_chan) 本体と共有してましたっけ?
23:33 (Len_chan) システム変数
23:33 (mosa) え
23:33 (mosa) ヘルパーと別個だよ・・・ね?
23:33 (SAIKEI) 別個だと思いますよ
23:33 (mosa) 別っていってよバーニィ・・・
23:33 (mosa) 良かった
23:33 (okihaito) ヘルパーと別個ですよ デバックで何回か確認したし
23:34 (lunatic__) 別じゃなかったらヘルパーも基本sysvarなシステマーは・・・
23:34 (SAIKEI) sysvarは半ばコモン用ですよね
23:34 (okihaito) というか共有だったらCC蛟に不具合出るわ
23:36 (SAIKEI) だめだ 自分のキャラだときりつめてもAI用にvvarを8個使ってるからsysvarだけなんて荒業はできぬ
23:36 (SAIKEI) fvar入れたら11個だったorz
23:39 (nanagami0) 変数を湯水のように使う自分じゃ20個でも収まりそうに無い
23:40 (mosa) 当身取られないhitdefってpausetime自分にかけると駄目なのか
23:41 (okihaito) 被弾時にhitpausetimeが発生した気がする・・・
23:42 (lunatic__) 実際sysvar使う利点ってシステマーみたいにヘルパーのステート普通に奪われる場合くらいだと思う
23:42 (mosa) 搭載しようと思ったがちと敷居が高いのう
23:42 (mosa) 擬似projと同じような処理せねばあかんみたいだし

:=の変数代入での||1

7/15
22:43 (okihaito) :=の代入でよく||1とか見かけるんだけど何でだろ?
22:44 (SAIKEI) var(1):=で
22:44 (mosa) triggerが0にならないようにする為みたいです
22:44 (SAIKEI) 0を代入してしまうとステコンが実行されない
22:44 (okihaito) つまり実行されなくなる恐れがあるのか
22:44 (oreichalk) 成る程・・・
22:45 (SAIKEI) 逆にそれを利用する手もあります

 |   | 

 検索フォーム


 全記事表示リンク

 全記事表示(500件ずつ)


 プロフィール

vesper

Author:vesper

IRCチャンネルの
#凶悪MUGEN
#凶悪MUGEN_雑談
のログからMUGENに関するものを編集・公開しています。
修正した方が良い箇所があった場合は知らせてもらえると助かります。
MUGEN界隈からはリンクフリーです。
その他からのリンクはご遠慮ください。
このブログをリンクに追加

IRCへの入り方などは
IRCに関する記事
をご覧ください。

簡易凶悪MUGEN IRC情報
・ホスト名
 [irc.friend-chat.jp]
・ポート番号
 [6664]
・チャンネル名
 [#凶悪MUGEN]
 [#凶悪MUGEN_雑談]
 (以下はお好みで)
 [#凶悪MUGEN_艦これ]
 [#凶悪MUGEN_スマブラ]
 [#凶悪MUGEN_麻雀]
 [#凶悪MUGEN_緋想天]
 [#凶悪MUGEN_アカツキ]
 [#凶悪MUGEN_小説]
 [#凶悪MUGEN_絵チャ]

・推奨IRCクライアント
 LimeChat2


 カテゴリ

記述の子カテゴリは目安程度に考えてください。

 最新コメント


 最新記事


 カウンター

累計の閲覧者数:

現在の閲覧者数:

 RSSリンクの表示


他ブログ更新情報(最新70件)

仕様上、下記のリンク一覧でサイトリンクにあるサイトはこの一覧に出ません。

Twitter


基礎リンク集


リンク

サイトに断り書きがない限りリンクさせてもらっています。
リンクしてほしくない場合はお気軽におっしゃってください。