したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

製作お助け掲示板2

1blank: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に戻るんですが仕様上これであってますか?

3blank: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

6blank: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までじゃないとバグる理由はよく分からない


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板