伺か向けのフォーラム。自由に使ってください。ユーザアカウント登録なしで閲覧できます。
共有アカウント: 774user / 774user
YAYAの関数のオプションにnonoverlapがありますが
ダブルクリック0Head : nonoverlap
{
PokeHead++
if (PokeHead == 1){
<<"
テスト1
">>
<<"
テスト2
">>
<<"
テスト3
">>
}
elseif (PokeHead >= 3){
<<"
テスト4
">>
<<"
テスト5
">>
<<"
テスト6
">>
}
else{
<<"
テスト7
">>
<<"
テスト8
">>
<<"
テスト9
">>
}
}
と記述しても、連続して同じ文章が出力される場合があります。
条件分岐が入るとnonoverlapの動作が変わったりするのでしょうか?
編集者 Nao (2017-01-07 21:38:45)
オフライン
あまりYAYAには詳しくないのですが、nonoverlapは分岐があると正しく動きません。
関数呼び出し時に出力候補が変わると、今までの抽選結果を破棄しているような気がします。
これが仕様かバグかは申し訳ないですが分かりません。
この場合、条件分岐の後にnonoverlapをつけた関数を用意するしかないと思います。
ダブルクリック0Head
{
PokeHead++
if (PokeHead == 1){
ダブルクリック0Head1()
}
elseif (PokeHead >= 3){
ダブルクリック0Head2()
}
else{
ダブルクリック0Head3()
}
}
ダブルクリック0Head1 : nonoverlap
{
<<"
テスト1
">>
<<"
テスト2
">>
<<"
テスト3
">>
}
// 以下略
オフライン
I want to make a list to know which ghost is in started,but the On_otherghostname and ghostexlist is not working, That only can get ghostexcount to know how many are there.
how can I get the list for the starting ghost's name?
オフライン
ベースウェア「SSP」でのみ動作します。
関数「OnEventName」を呼び出すと、グローバル変数「ghostbootinglist」に現在起動しているゴーストの名前が配列で取得出来ます。
「さくらスクリプト」については、ukadocを参照してください。
OnFetchBootingGhostNameList
{
_talk = ''
_talk += '\![get,property,OnGetBootingGhostNameByPropertySystem'
for _i = 0; _i < 100; _i++
{
_talk += ',activeghostlist.index(' + _i + ').name'
}
_talk += ']'
_talk
}
OnGetBootingGhostNameByPropertySystem
{
ghostbootinglist = IARRAY
for _i = 0; _i < 100; _i++
{
if ( STRLEN(reference[_i]) > 0 )
{
ghostbootinglist ,= reference[_i]
}
}
}
「さくらスクリプト」を使うため、トークとして出力するので、注意してください。
起動と同時にゴースト名リストを取得したい場合、以下のような処理が必要です。
OnBoot
{
_talk = ''
_talk += OnFetchBootingGhostNameList()
_talk += '\![embed,OnBootTalk]'
_talk
}
OnBootTalk
{
_talk = ''
_talk += 'Hallo!\n'
_talk += ANY(ghostbootinglist) + ' is booting.'
_talk
}
オフライン
誤
関数「OnEventName」を呼び出す
正
関数「OnFetchBootingGhostNameList」を呼び出す
オフライン
誤
関数「OnEventName」を呼び出す正
関数「OnFetchBootingGhostNameList」を呼び出す
thank's at all!it's work!
オフライン
Hi is me again!
I want to know the sakura and kero coordinate (X, Y) in the screen, how do I get that?
I want the kero follow the sakura's moving, and the kero just can move around the sakura.
And also I want to know how far they from each other
編集者 akizawa230 (2017-08-02 22:31:06)
オフライン
#31
get,propetyを使います。
何が取得出来るのかは、ukadocを参照してください。
getCoordinate
{
_ret = ''
_ret += '\![get,property,OnGetCoordinate,'
_ret += 'currentghost.scope(0).x,currentghost.scope(0).y,'
_ret += 'currentghost.scope(1).x,currentghost.scope(1).y
_ret += ']'
_ret
}
OnGetCoordinate
{
sakuraPosX = reference[0]
sakuraPosY = reference[1]
keroPosX = reference[2]
keroPosX = reference[3]
}
// any event
OnRandomTalk
{
_talk = ''
_talk += getCoordinate()
_talk += '\![embed,OnCoodinateTalk]'
_talk
}
OnCoodinateTalk
{
_talk = ''
_talk = '\0My X is ' + sakuraPosX + '.'
_talk = '\1My Y is ' + keroPosY + '.'
_talk
}
オフライン
#31
get,propetyを使います。
何が取得出来るのかは、ukadocを参照してください。getCoordinate { _ret = '' _ret += '\![get,property,OnGetCoordinate,' _ret += 'currentghost.scope(0).x,currentghost.scope(0).y,' _ret += 'currentghost.scope(1).x,currentghost.scope(1).y _ret += ']' _ret } OnGetCoordinate { sakuraPosX = reference[0] sakuraPosY = reference[1] keroPosX = reference[2] keroPosX = reference[3] } // any event OnRandomTalk { _talk = '' _talk += getCoordinate() _talk += '\![embed,OnCoodinateTalk]' _talk } OnCoodinateTalk { _talk = '' _talk = '\0My X is ' + sakuraPosX + '.' _talk = '\1My Y is ' + keroPosY + '.' _talk }
I have try this one, but that only can get the coord for last time, like
The first time X = 100, Y = 200, that show nothing.
Second time X = 150, Y = 200, that show X = 100, Y = 200
The third time X = 200, Y = 250, that show X = 150, Y = 200 etc.
オフライン