[
板情報
|
カテゴリランキング
]
したらばTOP
■掲示板に戻る■
全部
1-100
最新50
|
1-
101-
201-
この機能を使うにはJavaScriptを有効にしてください
|
製作お助け掲示板2
1
:
blank
:2012/09/12(水) 22:10:24
>>前スレ999
Var(58)の初期化忘れはこっちのミスだね
10000のHelperとNullの間にVarSetのTrigger1=1のvar(58)=0を追加で。
>>前スレ997で「PlayerIDに使ってるのは8までって」ことなら
VarRangeSetはFirst=8-Var(59)とLast=8になるハズだけど…
本体のVerはそんなに影響してこないと思う。
「:=」を使った代入も使ってるステコンも昔からの共通仕様の範囲内だし。
2
:
ケットシー
:2012/09/13(木) 01:14:28
>10000のHelperとNullの間にVarSetのTrigger1=1のvar(58)=0を追加で。
[state ]
type = varset
trigger1 = 1
v = var(58)
value = 0
を指定の場所に追加しましたがvar(58)がそのままです。
相手のヘルパーが出っ放しでもvar(1)が0に戻るんですが仕様上これであってますか?
3
:
blank
:2012/09/14(金) 01:20:34
ごめん、Var(59)の初期化も忘れてる
>>2
のVarSetの代わりにVarRangeSetのFirst=58のLast=59のValue=0にしてみて
それかV=Var(58)をV=58に変えて、VarSetのV=59のValue=0を追加するか
ヘルパー出しっぱなしならVar(1)が0に戻ることはない予定だから
↑の変更しても駄目なら実際の記述見ないと何が原因か分からないかも
4
:
ケットシー
:2012/09/14(金) 22:16:13
>↑の変更しても駄目なら実際の記述見ないと何が原因か分からないかも
var(1)がすぐ消えるので変数管理の記述はります。
[State ]
Type = Helper
Trigger1 = 1
StateNo = 10011
[state ]
type = varrangeset
trigger1 = 1
First = 58
Last = 59
Value = 0
[State ];VarにIDを格納した敵ヘルパーがいなくなった場合、Var(59)にいなくなった数を格納しつつ番号の若いVarへ詰め、Var(58)にはMoveTypeがAの敵ヘルパー数を格納
Type = Null
Trigger1 = !PlayerIDExist(Var(1))
Trigger1 = Var(59) := 1
Trigger1 = 0
Trigger2 = PlayerIDExist(Var(1))
Trigger2 = PlayerID(Var(1)),MoveType = A
Trigger2 = Var(58) := 1
Trigger2 = 0
Trigger3 = !PlayerIDExist(Var(2))
Trigger3 = Var(59) := Var(59)+1
Trigger3 = 0
Trigger4 = PlayerIDExist(Var(2))
Trigger4 = Var(2-Var(59)) := Var(2) || 1
Trigger4 = PlayerID(Var(2)),MoveType = A
Trigger4 = Var(58) := Var(58)+1
Trigger4 = 0
(中略)
[State ];いなくなった数だけVarを初期化
Type = VarrangeSet
Trigger1 = Var(59) > 0
First = 8-Var(59)
Last = 8
Value = 0
5
:
ケットシー
:2012/09/14(金) 22:19:32
続きです
[State ];1F前に出したヘルパーのIDを自分のVar(0)に記憶しつつ親のVar(0)に自分のIDを格納
Type = ParentVarSet
Trigger1 = Var(0) := Parent,Var(0)
Trigger2 = 1
V = 0
Value = ID
[State ];親ヘルパーの未使用Varのうち最も番号の若いVarを取得(Var(0)を除く)なぜか8まで入れるとばぐる
Type = Null
Trigger1 = Var(1) := !!Parent,Var(1)
Trigger1 = Var(1) := Var(1)+!!Parent,Var(2)
Trigger1 = Var(1) := Var(1)+!!Parent,Var(3)
Trigger1 = Var(1) := Var(1)+!!Parent,Var(4)
Trigger1 = Var(1) := Var(1)+!!Parent,Var(5)
Trigger1 = Var(1) := Var(1)+!!Parent,Var(6)
Trigger1 = Var(1) := Var(1)+!!Parent,Var(7)
Trigger1 = Var(1) := Var(1)+!!Parent,Var(8)
[State ];自分の直前に呼び出されたヘルパーが敵のものだった場合、上で取得した親ヘルパーの空きVarにそのIDを格納し、Var(1)を1増やす
Type = ParentVarSet
Trigger1 = ID-Var(0) > 1
Trigger1 = PlayerIDExist(ID-1)
Trigger1 = PlayerID(ID-1),TeamSide != TeamSide
Trigger1 = Var(1) := Var(1)+1
V = Var(1)
Value = ID-1
[State ];自分の2つ前に呼び出されたヘルパーが敵のものだった場合、上で取得した親ヘルパーの空きVarにそのIDを格納し、Var(1)を1増やす
Type = ParentVarSet
Trigger1 = ID-Var(0) > 2
Trigger1 = PlayerIDExist(ID-2)
Trigger1 = PlayerID(ID-2),TeamSide != TeamSide
Trigger1 = Var(1) := Var(1)+1
V = Var(1)
Value = ID-2
(中略)
[State ];呼び出したFのうちに削除
Type = DestroySelf
Trigger1 = 1
6
:
blank
:2012/09/15(土) 00:07:56
あー
親ヘルパーの1F目でPlayerIDExist(0)がいないからVar(59)に1が入っちゃうのか
子ヘルパーのParentVarSetでID格納する前にPlayerIDExist(Var(1))とか読ませちゃ上手くいくわけないな
なんか見落とし多くてスマソ
[State ];VarにIDを格納した敵ヘルパーがいなくなった場合、Var(59)にいなくなった数を格納しつつ番号の若いVarへ詰め、Var(58)にはMoveTypeがAの敵ヘルパー数を格納
Type = Null
Trigger1 = Var(1) > 0
Trigger1 = !PlayerIDExist(Var(1))
Trigger1 = Var(59) := 1
Trigger1 = 0
Trigger2 = Var(1) > 0
Trigger2 = PlayerIDExist(Var(1))
Trigger2 = PlayerID(Var(1)),MoveType = A
Trigger2 = Var(58) := 1
Trigger2 = 0
Trigger3 = Var(2) > 0
Trigger3 = !PlayerIDExist(Var(2))
Trigger3 = Var(59) := Var(59)+1
Trigger3 = 0
Trigger4 = Var(2) > 0
Trigger4 = PlayerIDExist(Var(2))
Trigger4 = Var(2-Var(59)) := Var(2) || 1
Trigger4 = PlayerID(Var(2)),MoveType = A
Trigger4 = Var(58) := Var(58)+1
Trigger4 = 0
(中略)
↑こんな風に各トリガーの1行目を追加で。
あとはVar(9)以降にID格納しちゃわないように
[State ];自分の直前に呼び出されたヘルパーが敵のものだった場合、上で取得した親ヘルパーの空きVarにそのIDを格納し、Var(1)を1増やす
Type = ParentVarSet
Trigger1 = ID-Var(0) > 1
Trigger1 = PlayerIDExist(ID-1)
Trigger1 = PlayerID(ID-1),TeamSide != TeamSide
Trigger1 = Var(1) := Var(1)+1
Trigger1 = Var(1) <= 8
V = Var(1)
Value = ID-1
↑こんな風にトリガーの5行目を追加した方がいいかな
8までじゃないとバグる理由はよく分からない
7
:
ケットシー
:2012/09/16(日) 00:00:07
var(58) とvar(59)の初期化は成功していますが。
なぜか敵ヘルパーが消えた際var(4)は0になるのにvar(5)はそのままという自体が。
それと
trigger1 = PlayerID(Var(1)),HitDefAttr = SCA,AA
trigger2 = PlayerID(Var(2)),HitDefAttr = SCA,AA
中略
trigger8 = PlayerID(Var(2)),HitDefAttr = SCA,AA
v= var(57)
value = 1
という記述を入れるとvar(4)以降が全部埋まりvar(58)=5という結果になりました。
ちなみにみやかか同士のテストなのでvar(1)からvar(3)はstate10010のヘルパーとそれ以前に実装したヘルパー飛び道具感知用
ヘルパーが消えずに出続けているので埋まっていると思われます。
8
:
blank
:2012/09/16(日) 02:27:37
まず、Var(4)を0にする記述は
[State ]
Type = VarrangeSet
Trigger1 = Var(59) > 0
First = 9-Var(59);8-Var(59)じゃなかった、ごめん
Last = 8
Value = 0
↑これのVar(59)が5以上だった場合のみだから一緒にVar(5)も0になるハズ
Var(4)が0になってVar(5)がそのままってことは他のVar弄りが働いてるからそれをチェック
もしかしたら常時監視のVarSet読んでるかもしれない
で、Var(4)に格納したIDのヘルパーが消えてVar(5)に格納したIDのヘルパーが残っている場合は
[State ];VarにIDを格納した敵ヘルパーがいなくなった場合、Var(59)にいなくなった数を格納しつつ番号の若いVarへ詰め、Var(58)にはMoveTypeがAの敵ヘルパー数を格納
Type = Null
Trigger1 = Var(1) > 0
Trigger1 = !PlayerIDExist(Var(1));敵の常駐ヘルパーがいるから満たさず。これ以降のTrigger1を読み飛ばしてTrigger2を読み始める。Var(59)は0のまま
Trigger1 = Var(59) := 1
Trigger1 = 0
Trigger2 = Var(1) > 0
Trigger2 = PlayerIDExist(Var(1))
Trigger2 = PlayerID(Var(1)),MoveType = A
Trigger2 = Var(58) := 1
Trigger2 = 0;絶対に満たさず。Trigger3を読み始める。
Trigger3 = Var(2) > 0
Trigger3 = !PlayerIDExist(Var(2));敵の常駐ヘルパーがいるから満たさず。これ以降のTrigger3を読み飛ばす。Var(59)は0のまま
Trigger3 = Var(59) := Var(59)+1
Trigger3 = 0
Trigger4 = Var(2) > 0
Trigger4 = PlayerIDExist(Var(2))
Trigger4 = Var(2-Var(59)) := Var(2) || 1;Var(59)が0なのでVar(2)に現在のVar(2)を代入、つまり変化なし
Trigger4 = PlayerID(Var(2)),MoveType = A
Trigger4 = Var(58) := Var(58)+1
Trigger4 = 0
Trigger5 = Var(3) > 0
Trigger5 = !PlayerIDExist(Var(3));敵の常駐ヘルパーがいるから満たさず。これ以降のTrigger5を読み飛ばす。Var(59)は0のまま
Trigger5 = Var(59) := Var(59)+1
Trigger5 = 0
Trigger6 = Var(3) > 0
Trigger6 = PlayerIDExist(Var(3))
Trigger6 = Var(3-Var(59)) := Var(3) || 1;Var(59)が0なのでVar(3)に現在のVar(3)を代入、つまり変化なし
Trigger6 = PlayerID(Var(3)),MoveType = A
Trigger6 = Var(58) := Var(58)+1
Trigger6 = 0
Trigger7 = Var(4) > 0
Trigger7 = !PlayerIDExist(Var(4));敵のヘルパーがいなくなったから満たす。
Trigger7 = Var(59) := Var(59)+1;Var(59)に1を足す。Var(59)が1になる
Trigger7 = 0
Trigger8 = Var(4) > 0
Trigger8 = PlayerIDExist(Var(4));敵のヘルパーがいなくなったから満たさず。これ以降のTrigger8を読み飛ばす。
Trigger8 = Var(4-Var(59)) := Var(4) || 1
Trigger8 = PlayerID(Var(4)),MoveType = A
Trigger8 = Var(58) := Var(58)+1
Trigger8 = 0
Trigger9 = Var(5) > 0
Trigger9 = !PlayerIDExist(Var(5));敵のヘルパーが残っているから満たさず。これ以降のTrigger9を読み飛ばす。Var(59)は1のまま
Trigger9 = Var(59) := Var(59)+1
Trigger9 = 0
Trigger10 = Var(5) > 0
Trigger10 = PlayerIDExist(Var(5))
Trigger10 = Var(5-Var(59)) := Var(5) || 1;Var(59)が1なのでVar(4)に現在のVar(5)を代入、2行前を満たしているから代入する数値は0より大きい
Trigger10 = PlayerID(Var(5)),MoveType = A
Trigger10 = Var(58) := Var(58)+1
Trigger10 = 0
いなくなった敵ヘルパーがVar(4)の1つだけだった場合はVar(59)が1のまま最後まで実行されて
Var(5)にVar(6)を、Var(6)にVar(7)を、Var(7)にVar(8)を代入してVarRangeSetでVar(8)〜Var(8)を0に、って仕組みなんだけど…
追加する記述に関してはv = var(57)という書き方じゃVar(57)に格納されている数字に対応するVarを弄ることになるからVar(0)が変わっちゃうよ
Var(57)は一度も弄ってないから0になってるだろうし
trigger8のVar(2)はVar(8)の書き換え忘れかな
9
:
ケットシー
:2012/09/16(日) 22:49:37
本体の-2ステートのvarsetがヘルパーの変数にも影響する場合ってありましたっけ?
10
:
blank
:2012/09/16(日) 23:01:46
常時監視は本体用って訳じゃないよ
-2ならHelperType=Playerのヘルパーも実行する
11
:
ケットシー
:2012/09/19(水) 16:40:15
var(5)がそのままな理由はわかりませんが打撃ヘルパーの検出には成功しました。
親ヘルパーに
[State ];打撃、投げヘルパー検知
Type = ParentVarSet
trigger1 = PlayerID(Var(1)),hitdefattr = SCA,AA,AT
trigger2 = PlayerID(Var(2)),hitdefattr = SCA,AA,AT
trigger3 = PlayerID(Var(3)),hitdefattr = SCA,AA,AT
trigger4 = PlayerID(Var(4)),hitdefattr = SCA,AA,AT
trigger5 = PlayerID(Var(5)),hitdefattr = SCA,AA,AT
trigger6 = PlayerID(Var(6)),hitdefattr = SCA,AA,AT
trigger7 = PlayerID(Var(7)),hitdefattr = SCA,AA,AT
trigger8 = PlayerID(Var(8)),hitdefattr = SCA,AA,AT
var(27) = 1
[State ]
Type = ParentVarSet
trigger1 = (PlayerID(Var(1)),hitdefattr = SCA,AP)||!PlayerIDExist(Var(1))||PlayerID(Var(1)),MoveType!= A
trigger1 = (PlayerID(Var(2)),hitdefattr = SCA,AP)||!PlayerIDExist(Var(2))||PlayerID(Var(2)),MoveType!= A
trigger1 = (PlayerID(Var(3)),hitdefattr = SCA,AP)||!PlayerIDExist(Var(3))||PlayerID(Var(3)),MoveType!= A
trigger1 = (PlayerID(Var(4)),hitdefattr = SCA,AP)||!PlayerIDExist(Var(4))||PlayerID(Var(4)),MoveType!= A
trigger1 = (PlayerID(Var(5)),hitdefattr = SCA,AP)||!PlayerIDExist(Var(5))||PlayerID(Var(5)),MoveType!= A
trigger1 = (PlayerID(Var(6)),hitdefattr = SCA,AP)||!PlayerIDExist(Var(6))||PlayerID(Var(6)),MoveType!= A
trigger1 = (PlayerID(Var(7)),hitdefattr = SCA,AP)||!PlayerIDExist(Var(7))||PlayerID(Var(7)),MoveType!= A
trigger1 = (PlayerID(Var(8)),hitdefattr = SCA,AP)||!PlayerIDExist(Var(8))||PlayerID(Var(8)),MoveType!= A
trigger2 = helper(10010),var(58) = 0
trigger2 = var(27) = 1
var(27) = 0
の記述で上手くいきました。
次は設置対策だ!
12
:
ケットシー
:2012/09/19(水) 17:33:21
っと↑の
trigger2 = var(27) = 1
は
trigger2 = root,var(27) = 1
に修正
13
:
ケットシー
:2012/09/19(水) 22:31:49
設置?の大雑把な認識はできました。
[State ];打撃判定の設置足元にある
Type = ParentVarSet
trigger1 = (PlayerID(Var(1)),hitdefattr = SCA,AA,AT)&&PlayerID(Var(1)),vel X = 0
trigger1 = (PlayerID(Var(1)),pos Y > -50)||((PlayerID(Var(1)),CONST(size.height) < 50)&&(PlayerID(Var(1)),statetype!=A))
trigger2 = (PlayerID(Var(2)),hitdefattr = SCA,AA,AT)&&PlayerID(Var(2)),vel X = 0
trigger2 = (PlayerID(Var(2)),pos y > -50)||((PlayerID(Var(2)),CONST(size.height) < 50)&&(PlayerID(Var(1)),statetype!=A))
trigger3 = PlayerID(Var(3)),hitdefattr = SCA,AA,AT&&PlayerID(Var(3)),vel X = 0
trigger3 = (PlayerID(Var(3)),pos y > -50)||((PlayerID(Var(3)),CONST(size.height) < 50)&&(PlayerID(Var(1)),statetype!=A))
trigger4 = PlayerID(Var(4)),hitdefattr = SCA,AA,AT&&PlayerID(Var(4)),vel X = 0
trigger4 = (PlayerID(Var(4)),pos y > -50)||((PlayerID(Var(4)),CONST(size.height) < 50)&&(PlayerID(Var(1)),statetype!=A))
trigger5 = PlayerID(Var(5)),hitdefattr = SCA,AA,AT&&PlayerID(Var(5)),vel X = 0
trigger5 = (PlayerID(Var(5)),pos y > -50)||((PlayerID(Var(5)),CONST(size.height) < 50)&&(PlayerID(Var(1)),statetype!=A))
trigger6 = PlayerID(Var(6)),hitdefattr = SCA,AA,AT&&PlayerID(Var(6)),vel X = 0
trigger6 = (PlayerID(Var(6)),pos y > -50)||((PlayerID(Var(6)),CONST(size.height) < 50)&&(PlayerID(Var(1)),statetype!=A))
trigger7 = PlayerID(Var(7)),hitdefattr = SCA,AA,AT&&PlayerID(Var(7)),vel X = 0
trigger7 = (PlayerID(Var(7)),pos y > -50)||((PlayerID(Var(7)),CONST(size.height) < 50)&&(PlayerID(Var(1)),statetype!=A))
trigger8 = PlayerID(Var(8)),hitdefattr = SCA,AA,AT&&PlayerID(Var(8)),vel X = 0
trigger8 = (PlayerID(Var(8)),pos y > -50)||((PlayerID(Var(8)),CONST(size.height) < 50)&&(PlayerID(Var(1)),statetype!=A))
var(25) = 2
[State ];打撃判定の設置空中にある
Type = ParentVarSet
trigger1 = PlayerID(Var(1)),hitdefattr = SCA,AA,AT&&PlayerID(Var(1)),vel X = 0
trigger1 = PlayerID(Var(1)),pos Y < -50
trigger2 = PlayerID(Var(2)),hitdefattr = SCA,AA,AT&&PlayerID(Var(2)),vel X = 0
trigger2 = PlayerID(Var(2)),pos y< -50
trigger3 = PlayerID(Var(3)),hitdefattr = SCA,AA,AT&&PlayerID(Var(3)),vel X = 0
trigger3 = PlayerID(Var(3)),pos Y< -50
trigger4 = PlayerID(Var(4)),hitdefattr = SCA,AA,AT&&PlayerID(Var(4)),vel X = 0
trigger4 = PlayerID(Var(4)),pos Y < -50
trigger5 = PlayerID(Var(5)),hitdefattr = SCA,AA,AT&&PlayerID(Var(5)),vel X = 0
trigger5 = PlayerID(Var(5)),pos Y< -50
trigger6 = PlayerID(Var(6)),hitdefattr = SCA,AA,AT&&PlayerID(Var(6)),vel X = 0
trigger6 = PlayerID(Var(6)),pos Y< -50
trigger7 = PlayerID(Var(7)),hitdefattr = SCA,AA,AT&&PlayerID(Var(7)),vel X = 0
trigger7= PlayerID(Var(7)),pos Y < -50
trigger8 = PlayerID(Var(8)),hitdefattr = SCA,AA,AT&&PlayerID(Var(8)),vel X = 0
trigger8 = PlayerID(Var(8)),pos Y < -50
var(24) = 2
が、足元の設置を消して空中の設置を出してもvar(25)が2のままという事態が発生しました。(var(24)とvar(25)が一つの設置で同時に2になりといことはありませんでした)
14
:
ケットシー
:2012/09/19(水) 22:32:46
var(25)の初期化に関する記述は
[State ];打撃判定の設置足元にある初期化
Type = ParentVarSet
triggerall = root,var(25) = 2
trigger1 = (PlayerID(Var(1)),pos y < -50)||PlayerID(Var(1)),hitdefattr!= SCA,AA,AT||PlayerID(Var(1)),vel X!= 0
trigger1 = (PlayerID(Var(2)),pos y < -50)||PlayerID(Var(2)),hitdefattr!= SCA,AA,AT||PlayerID(Var(2)),vel X!= 0
trigger1 = (PlayerID(Var(3)),pos y < -50)||PlayerID(Var(3)),hitdefattr!= SCA,AA,AT||PlayerID(Var(3)),vel X!= 0
trigger1 = (PlayerID(Var(4)),pos y < -50)||PlayerID(Var(4)),hitdefattr!= SCA,AA,AT||PlayerID(Var(4)),vel X!= 0
trigger1 = (PlayerID(Var(5)),pos y < -50)||PlayerID(Var(5)),hitdefattr!= SCA,AA,AT||PlayerID(Var(5)),vel X!= 0
trigger1 = (PlayerID(Var(6)),pos y < -50)||PlayerID(Var(6)),hitdefattr!= SCA,AA,AT||PlayerID(Var(6)),vel X!= 0
trigger1 = (PlayerID(Var(7)),pos y < -50)||PlayerID(Var(7)),hitdefattr!= SCA,AA,AT||PlayerID(Var(7)),vel X!= 0
trigger1 = (PlayerID(Var(8)),pos y < -50)||PlayerID(Var(8)),hitdefattr!= SCA,AA,AT||PlayerID(Var(8)),vel X!= 0
trigger2 = helper(10010),var(58) = 0
var(25) = 0
という風になっています。
新着レスの表示
名前:
E-mail
(省略可)
:
※書き込む際の注意事項は
こちら
※画像アップローダーは
こちら
(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板