以前にも同じソースでご質問されていた方がいらっしゃいましたが、
その問題を克服した上で質問させてください。
以下のソースを実行しますと、まずデッキ編集画面になり、
その編集後バトル画面になるのですが、
「出す」ボタンを押してもカードがフィールドにセットされないのです。
また「終わり」ボタンを押しても応答がありません。
自分なりにここまで辿り着いたのですが、行き詰ってしまいました。
どうかご教授のほど、よろしくお願いします。
#define Game_Name "カードゲーム サンプル" ;<<<<<-- 初期設定 -->>>>> randomize sdim C_Data,5000 sdim Book,5000 sdim Dek,1000 sdim M_Dek,1000 sdim E_Dek,1000 sdim M_Hand,500 sdim E_Dek,500 sdim E_Hand,500 dim M_Mana,3 dim E_Mana,3 ;<<<<<-- カード情報読み取り -->>>>> bload "Card_game/Card_Data.txt",C_Data notesel C_Data C_Max=notemax sdim C_Name,20,C_Max dim C_Power,C_Max dim C_Cost,3,C_Max dim C_Type,C_Max dim C_Effect,C_Max repeat C_Max noteget get,cnt size=0 getstr C_Name.cnt,get,size,',':size=strsize getstr data,get,size,',':data=int(data):C_Cost.0.cnt=data:size+=strsize getstr data,get,size,',':data=int(data):C_Cost.1.cnt=data:size+=strsize getstr data,get,size,',':data=int(data):C_Cost.2.cnt=data:size+=strsize getstr data,get,size,',':data=int(data):C_Power.cnt=data:size+=strsize getstr data,get,size,',':data=int(data):C_Type.cnt=data:size+=strsize getstr data,get,size,',':data=int(data):C_Effect.cnt=data loop ;<<<<<-- 変数 -->>>>> Book={" 000-湖 000-湖 000-湖 001-砂 001-砂 001-砂 002-林 002-林 002-林 003-海 003-海 004-山 004-山 005-森 005-森 006-水戦士 006-水戦士 007-炎戦士 007-炎戦士 008-緑戦士 008-緑戦士 009-水の導師 009-水の導師 010-炎の騎士 010-炎の騎士 011-緑の勇者 011-緑の勇者 012-青魔術 012-青魔術 013-赤魔術 013-赤魔術 014-黒魔術 014-黒魔術 "} title Game_Name screen 0,640,480 *dek_make cls objsize 300,110 pos 10,20:mes "<所持カード>" listbox sel1,100,Book pos 330,20:mes "<デッキ>" listbox sel2,100,Dek pos 20,300:objsize 600,48 button ">",*right button "<",*left button "試合開始",*battle stop *right if sel1=-1:goto *dek_make notesel Book noteget get,sel1 notedel sel1 notesel Dek noteadd get,0 objprm 0,Book objprm 1,Dek stop *left if sel2=-1:goto *dek_make notesel Dek noteget get,sel2 notedel sel2 notesel Book noteadd get,0 objprm 0,Book objprm 1,Dek stop *battle cls ;<<<<<-- 戦闘変数初期化 -->>>>> M_Dek=Dek E_Dek="0\n0\n0\n0\n0\n0\n1\n1\n1\n1\n1\n3\n4\n6\n6\n7\n7\n9\n12\n12\n13\n13" M_Lp=10 : E_Lp=10 M_Field=-1 : E_Field=-1 M_Mana=0,0,0 : E_Mana=0,0,0 M_Hand="" : E_Hand="" ;<<<<<-- 試合開始(カードドロー) -->>>>> repeat 3 gosub *M_Card_Draw gosub *E_Card_Draw loop ;<<<<<-- メインループ -->>>>> *main_loop dialog "あなたのターン" gosub *M_Card_Draw gosub *map_draw gosub *M_Main if M_Lp<1:dialog "ライフが0あなたの負け":goto *dek_make if E_Lp<1:dialog "ライフが0あなたの勝ち":goto *dek_make dialog "敵のターン" gosub *E_Card_Draw gosub *map_draw gosub *E_Main if M_Lp<1:dialog "ライフが0あなたの負け":goto *dek_make if E_Lp<1:dialog "ライフが0あなたの勝ち":goto *dek_make goto *main_loop ;<<<<<-- プレイヤーのメインフェイズ -->>>>> *M_Main pos 20,360 : objsize 600,24 combox sel1,,M_Hand if M_Field!-1 : button gosub "攻撃",*M_Atack button gosub "出す",*M_Set button gosub "終わり",*M_End stop *M_Atack //直接攻撃 if E_Field=-1{ E_Lp-=C_Power.M_Field dialog "直接攻撃" return } //敵との戦闘 if C_Power.M_Field<C_Power.E_Field:dialog C_Name.E_Field+"の勝利":M_Field=-1:return if C_Power.M_Field>C_Power.E_Field:dialog C_Name.M_Field+"の勝利":E_Field=-1:return dialog "相打ち":M_Field=-1:E_Field=-1 return *M_set if sel1=-1:goto *M_Main notesel M_Hand noteget data,sel1 data=int(data) //選択したカードが土地以外の場合のマナチェック repeat 3 if (C_Type.data!0)&(M_Mana.cnt<C_Cost.cnt.data):dialog "マナがたりません":goto *M_Main loop notedel sel1 //土地の場合マナの増加 if C_Type.data=0{ repeat 3 M_Mana.cnt+=C_Cost.cnt.data loop } //その他の場合マナの減少 if C_Type.data!0{ repeat 3 M_Mana.cnt-=C_Cost.cnt.data loop } //兵士の場合場に出る if C_Type.data=1:M_Field=data //効果がある場合効果発動 gosub *M_Effect return *M_end //ターンエンド return *M_Effect //プレイヤー側カードによる効果 if C_Effect.data=1:dialog "特殊能力:2点の自己ダメージ!",,C_Name.data:M_Lp-=2 if (C_Effect.data=2)&(E_Field!0):dialog "特殊能力:敵の破壊",,C_Name.data:E_Field=-1 if C_Effect.data=3:dialog "特殊能力:3点のライフ回復",,C_Name.data:M_LP+=3 if C_Effect.data=4:dialog "特殊能力:敵に5点のダメージ",,C_Name.data:E_LP-=5 if C_Effect.data=5:dialog "特殊能力:8点のライフ回復",,C_Name.data:M_LP+=8 return *M_Card_Draw //プレイヤーのドロー notesel M_Dek max=notemax if max=0:dialog "あなたの山札が0枚\n負け":end ran=rnd(max) noteget get,ran notedel ran notesel M_Hand noteadd get return ;<<<<<-- 敵のメインフェイズ -->>>>> *E_Main //戦闘するか考える if E_Field!-1{ if M_Field=-1 : goto *E_Atack if C_Power.E_Field>=C_Power.M_Field : goto *E_Atack } //配置を考える notesel E_Hand max=notemax if max=0:return repeat max noteget data,cnt data=int(data) //土地の場合 if c_type.data=0{ notedel cnt dialog C_Name.data+"を配置" repeat 3 E_Mana.cnt+=C_Cost.cnt.data loop gosub *E_Effect break } //その他の場合 if c_type.data!0{ flag=0 : repeat 3 if E_Mana.cnt<C_Cost.cnt.data : flag=1 : break loop if flag=1 : continue notedel cnt dialog C_Name.data+"を配置" repeat 3 E_Mana.cnt-=C_Cost.cnt.data loop //兵士カードだった場合場に出る if C_Type.data=1 : E_Field=data gosub *E_Effect break } loop return *E_Atack //直接攻撃 if M_Field=-1{ M_Lp-=C_Power.E_Field dialog "直接攻撃" return } //敵との戦闘 if C_Power.M_Field<C_Power.E_Field:dialog C_Name.E_Field+"の勝利":M_Field=-1:return if C_Power.M_Field>C_Power.E_Field:dialog C_Name.M_Field+"の勝利":E_Field=-1:return dialog "相打ち":M_Field=-1:E_Field=-1 return *E_Effect //敵カードによる効果 if C_Effect.data=1:dialog "特殊能力:2点の自己ダメージ!",,C_Name.data:E_Lp-=2 if (C_Effect.data=2)&(E_Field!0):dialog "特殊能力:敵の破壊",,C_Name.data:M_Field=-1 if C_Effect.data=3:dialog "特殊能力:3点のライフ回復",,C_Name.data:E_LP+=3 if C_Effect.data=4:dialog "特殊能力:敵に5点のダメージ",,C_Name.data:M_LP-=5 if C_Effect.data=5:dialog "特殊能力:8点のライフ回復",,C_Name.data:E_LP+=8 return *E_Card_Draw //敵のドロー notesel E_Dek max=notemax if max=0:dialog "敵の山札が0枚\n勝ち":end ran=rnd(max) noteget data,ran notedel ran notesel E_Hand noteadd data return ;<<<<<-- 画面絵画 -->>>>> *map_draw cls pos 10,10 mes "LP "+M_LP+" / "+E_LP //プレイヤー側の兵士表示 if M_Field!-1{ pos 100,150 mes C_Name.M_Field+"("+C_Power.M_Field+")" } //敵側の兵士表示 if E_Field!-1{ pos 100,100 mes C_Name.E_Field+"("+C_Power.E_Field+")" } //プレイヤー側のマナ表示 s_x=0 : repeat 3 if cnt=0 : color 0,0,255 if cnt=1 : color 255,0,0 if cnt=2 : color 0,255,0 repeat M_Mana.cnt pos ((cnt+s_x)*30)+10,280 mes "口" loop : s_x+=M_Mana.cnt loop //敵側のマナ表示 s_x=0 : repeat 3 if cnt=0 : color 0,0,255 if cnt=1 : color 255,0,0 if cnt=2 : color 0,255,0 repeat E_Mana.cnt pos ((cnt+s_x)*30)+10,50 mes "口" loop : s_x+=E_Mana.cnt loop return
長文になりました。
申し訳ありません。