長文での悩み(大規模ゲームにて)(質問掲示板

投稿: User icon mini 退会したユーザー 投稿:2011/10/16 13:11:16(最新:2011/10/16 18:26:16)
giveItem(8657)
case speakWithSelect(5,"このゲーム","家がほしい!","家を増築したい!","gc72について","なにもない",
"gc72「こんにちは\n何か質問でもありますか?」")
when 0
speak("「このゲームは、マップを作っていただき、\nこの島に住まわせる、というゲームです。\n\n\n\n家関係は、僕に行ってください。\nちなみに、家関係のアクティビティフォードを送るのを拒否すると\n家を建てる、増築は認めません。")
speak("ちなみに、イベントが定期的に行われるのですが、\nそのイベントで、プレイヤーはレベルアップでき、\n魔王を倒しに行くこともできる、そんな斬新なゲームです。\n作者のプロフィールを見ると分かるように、\n忙しいので、イベントは、だいたい日曜日だと思われます。」")
speak("これからもこのゲームを楽しんでください。")
when 1
n=getItemIndexWithId(8662)
getFlag("家")
speak("カードがないじゃないですか!\n家は僕からあげますよ。")
if n==-1
speak("カードを持ってないじゃないですか。")
speak("家を建てるには、カードが必要なんですよ。\n最初にもらえる1枚きりですよ。")
speak("これからもこのゲームを楽しんでください。")
else
removeItemWithIndex(n)
speak("家を建ててあげましょう!")
case speakWithSelect(4,"平地","夜の地","雨の地","やっぱり建てない",
"どこらへんに建てますか?\n細かくは指定できませんが。")
when 0
openActivityFeedWindow("~平地~")
setFlag("家", true)
speak("これからもこのゲームを楽しんでください。")
when 1
openActivityFeedWindow("~夜の地~")
setFlag("家", true)
speak("これからもこのゲームを楽しんでください。")
when 2
openActivityFeedWindow("~雨の地~")
setFlag("家", true)
speak("これからもこのゲームを楽しんでください。")
when 3
speak("これからもこのゲームを楽しんでください。")
end

when 2
m=getItemIndexWithId(8657)
getFlag("家")
speak("家がないじゃないですか!\n家は僕からあげますよ。")
if m==-1
speak("カードを持ってないじゃないですか。")
speak("増築には、カードが必要なんですよ。\nカードはショップで買えますよ。")
speak("これからもこのゲームを楽しんでください。")
else
removeItemWithIndex(m)
speak("増築OKです!")
openActivityFeedWindow("増築をする!")
speak("これからもこのゲームを楽しんでください。")
end
when 3
speak("この『みんなの島』の運営者です。\nよろしくお願いします。")
speak("これからもこのゲームを楽しんでください。")
when 4
speak("これからもこのゲームを楽しんでください。")
end



と書くと

(gc72 31, 7) action : syntax error, コードに文法的な間違いがあります。 line(行): 37

(()はキャラと座標)

と出ました。
どうすればいいでしょう?
そして、この後エラー等が出そうなところはありますか?
よろしくお願いします。

コメントする

コメントするには、ログインする必要があります。

コメント一覧

User icon mini 退会したユーザー(投稿日:2011/10/16 18:26, 履歴)
すいません、自分で解決できました(笑)
ありがとうございました。
User icon mini 退会したユーザー(投稿日:2011/10/16 17:34, 履歴)
いえ、タクミ2310号さんのものをコピーしたら、申した通りになりました。
Nyan mini rurun9(投稿日:2011/10/16 17:31, 履歴)
>どうすればいい

そもそもend忘れただけの文法エラーでしょ
分岐させた筈のspeakが繋がって表示されるなら、最初と同じで修正していないだけなのでは?
User icon mini 退会したユーザー(投稿日:2011/10/16 15:31, 履歴)
ありがとうございます。
家がほしい!と増築したい!のところで、専用のアイテムがないとできないようにしたいのです。が
「カードを持ってないじゃないですか。
家を建てるには、カードが必要なんですよ。
最初にもらえる1枚きりですよ。」
がでたあと、
「家を建ててあげましょう! どこらへんに建てますか?
細かくは指定できませんが。」
と出てきます。(増築を選んだ時も同じように)
どうすればいいでしょう?
User icon mini 退会したユーザー(投稿日:2011/10/16 13:56, 履歴)
とりあえず整頓。
giveItem(8657) 
case speakWithSelect(5,"このゲーム","家がほしい!","家を増築したい!","gc72について","なにもない", 
"gc72「こんにちは\n何か質問でもありますか?」") 
  when 0 
    speak("「このゲームは、マップを作っていただき、\nこの島に住まわせる、というゲームです。\n\n\n\n家関係は、僕に行ってください。\nちなみに、家関係のアクティビティフォードを送るのを拒否すると\n家を建てる、増築は認めません。") 
    speak("ちなみに、イベントが定期的に行われるのですが、\nそのイベントで、プレイヤーはレベルアップでき、\n魔王を倒しに行くこともできる、そんな斬新なゲームです。\n作者のプロフィールを見ると分かるように、\n忙しいので、イベントは、だいたい日曜日だと思われます。」") 
    speak("これからもこのゲームを楽しんでください。") 
  when 1 
    n=getItemIndexWithId(8662) 
    getFlag("家") 
    speak("カードがないじゃないですか!\n家は僕からあげますよ。") 
    if n==-1 
      speak("カードを持ってないじゃないですか。") 
      speak("家を建てるには、カードが必要なんですよ。\n最初にもらえる1枚きりですよ。") 
      speak("これからもこのゲームを楽しんでください。") 
    else 
      removeItemWithIndex(n) 
      speak("家を建ててあげましょう!") 
      case speakWithSelect(4,"平地","夜の地","雨の地","やっぱり建てない", 
      "どこらへんに建てますか?\n細かくは指定できませんが。") 
        when 0 
          openActivityFeedWindow("~平地~") 
          setFlag("家", true) 
          speak("これからもこのゲームを楽しんでください。") 
        when 1 
          openActivityFeedWindow("~夜の地~") 
          setFlag("家", true) 
          speak("これからもこのゲームを楽しんでください。") 
        when 2 
          openActivityFeedWindow("~雨の地~") 
          setFlag("家", true) 
          speak("これからもこのゲームを楽しんでください。") 
        when 3 
          speak("これからもこのゲームを楽しんでください。") 
      end 

  when 2 
    m=getItemIndexWithId(8657) 
    getFlag("家") 
    speak("家がないじゃないですか!\n家は僕からあげますよ。") 
    if m==-1 
      speak("カードを持ってないじゃないですか。") 
      speak("増築には、カードが必要なんですよ。\nカードはショップで買えますよ。") 
      speak("これからもこのゲームを楽しんでください。") 
    else 
      removeItemWithIndex(m) 
      speak("増築OKです!") 
      openActivityFeedWindow("増築をする!") 
      speak("これからもこのゲームを楽しんでください。") 
    end 
  when 3 
    speak("この『みんなの島』の運営者です。\nよろしくお願いします。") 
    speak("これからもこのゲームを楽しんでください。") 
  when 4 
    speak("これからもこのゲームを楽しんでください。") 
end 

・・・end足りてないと思います。

修正版。
giveItem(8657) 
case speakWithSelect(5,"このゲーム","家がほしい!","家を増築したい!","gc72について","なにもない", 
"gc72「こんにちは\n何か質問でもありますか?」") #case文1
  when 0 
    speak("「このゲームは、マップを作っていただき、\nこの島に住まわせる、というゲームです。\n\n\n\n家関係は、僕に行ってください。\nちなみに、家関係のアクティビティフォードを送るのを拒否すると\n家を建てる、増築は認めません。") 
    speak("ちなみに、イベントが定期的に行われるのですが、\nそのイベントで、プレイヤーはレベルアップでき、\n魔王を倒しに行くこともできる、そんな斬新なゲームです。\n作者のプロフィールを見ると分かるように、\n忙しいので、イベントは、だいたい日曜日だと思われます。」") 
    speak("これからもこのゲームを楽しんでください。") 
  when 1 
    n=getItemIndexWithId(8662) 
    getFlag("家") 
    speak("カードがないじゃないですか!\n家は僕からあげますよ。") 
    if n==-1 #if文1
      speak("カードを持ってないじゃないですか。") 
      speak("家を建てるには、カードが必要なんですよ。\n最初にもらえる1枚きりですよ。") 
      speak("これからもこのゲームを楽しんでください。") 
    else 
      removeItemWithIndex(n) 
      speak("家を建ててあげましょう!") 
      case speakWithSelect(4,"平地","夜の地","雨の地","やっぱり建てない", 
      "どこらへんに建てますか?\n細かくは指定できませんが。") #case文2
        when 0 
          openActivityFeedWindow("~平地~") 
          setFlag("家", true) 
          speak("これからもこのゲームを楽しんでください。") 
        when 1 
          openActivityFeedWindow("~夜の地~") 
          setFlag("家", true) 
          speak("これからもこのゲームを楽しんでください。") 
        when 2 
          openActivityFeedWindow("~雨の地~") 
          setFlag("家", true) 
          speak("これからもこのゲームを楽しんでください。") 
        when 3 
          speak("これからもこのゲームを楽しんでください。") 
      end #case文2end
    end #if文1end(これがなかったからエラーになった)
  when 2 
    m=getItemIndexWithId(8657) 
    getFlag("家") 
    speak("家がないじゃないですか!\n家は僕からあげますよ。") 
    if m==-1 #if文2
      speak("カードを持ってないじゃないですか。") 
      speak("増築には、カードが必要なんですよ。\nカードはショップで買えますよ。") 
      speak("これからもこのゲームを楽しんでください。") 
    else 
      removeItemWithIndex(m) 
      speak("増築OKです!") 
      openActivityFeedWindow("増築をする!") 
      speak("これからもこのゲームを楽しんでください。") 
    end #if文2end
  when 3 
    speak("この『みんなの島』の運営者です。\nよろしくお願いします。") 
    speak("これからもこのゲームを楽しんでください。") 
  when 4 
    speak("これからもこのゲームを楽しんでください。") 
end #case文1end

あと、
getFlag("家")

↑これだけだと意味ないですよ。
if getFlag("家")
  #フラグ「家」がtrueのときの処理
else
  #フラグ「家」がfalseのときの処理
end 

↑こんな感じで使ってください。
Nyan mini rurun9(投稿日:2011/10/16 13:41, 履歴)
>どうすれば

文法エラーを直せば良いだけ
スクリプト/コツ/バグの見つけ方