| 
|  |  |  |  |  | 投稿者:Deathworks 2006/05/30(火) 00:09 
 今日は、Deathworksです。
 2 0.213でテストしても、同じ結果になりました。以下はルーチンの「大丈夫」のVersionですけど、問題を直ってくれたら嬉しいです。
 ルーチンA(メインが「GOSUB」で呼び出すルーチンです。自分のファイルに入っています。)
 
 
 LABEL[#="DW_Item_Distributor01"]
 //
 // アイテムの管理
 //
 INT[@DW_Number_Length=0]
 LABEL[#="DW_Item_Dist_Display01"]
 IF[@DW_Item_Current_Item<1]
 @DW_Item_Current_Item=1
 ELSE[@DW_Item_Current_Item>=\[Item_Index_Size]]
 @DW_Item_Current_Item=\[Item_Index_Size] -1
 IFEND[]
 $DW_Item_Curr_Item=$@DW_Item_Current_Item
 VARINFO[LET=@DW_Number_Length SET=$DW_Item_Curr_Item LENGTH=1]
 LOOP[SET=3-@DW_Number_Length]
 $DW_Item_Curr_Item="0"+$DW_Item_Curr_Item
 LOOPEND[]
 \[p]アイテムを選んで下さい。\[r]
 IF[@DW_Item_Index(@DW_Item_Current_Item,\[Item_Index_Type])==\[Item_Type_None]]
 GOSUB[#="DW_Item_Ov_None01"]
 ELSE[@DW_Item_Index(@DW_Item_Current_Item,\[Item_Index_Type])==\[Item_Type_Special]]
 GOSUB[#="DW_Item_Ov_Special01"]
 ELSE[@DW_Item_Index(@DW_Item_Current_Item,\[Item_Index_Type])==\[Item_Type_Weapon]]
 GOSUB[#="DW_Item_Ov_Weapon01"]
 ELSE[@DW_Item_Index(@DW_Item_Current_Item,\[Item_Index_Type])==\[Item_Type_Armor_Torso]]
 GOSUB[#="DW_Item_Ov_A_Torso01"]
 ELSE[@DW_Item_Index(@DW_Item_Current_Item,\[Item_Index_Type])==\[Item_Type_Armor_Head]]
 GOSUB[#="DW_Item_Ov_A_Head01"]
 ELSE[@DW_Item_Index(@DW_Item_Current_Item,\[Item_Index_Type])==\[Item_Type_Armor_Feet]]
 GOSUB[#="DW_Item_Ov_A_Feet01"]
 ELSE[@DW_Item_Index(@DW_Item_Current_Item,\[Item_Index_Type])==\[Item_Type_Shield]]
 GOSUB[#="DW_Item_Ov_Shield01"]
 ELSE[@DW_Item_Index(@DW_Item_Current_Item,\[Item_Index_Type])==\[Item_Type_Neck]]
 GOSUB[#="DW_Item_Ov_Neck01"]
 ELSE[@DW_Item_Index(@DW_Item_Current_Item,\[Item_Index_Type])==\[Item_Type_Ring]]
 GOSUB[#="DW_Item_Ov_Ring01"]
 ELSE[@DW_Item_Index(@DW_Item_Current_Item,\[Item_Index_Type])==\[Item_Type_Ammunition]]
 GOSUB[#="DW_Item_Ov_Ammu01"]
 ELSE[@DW_Item_Index(@DW_Item_Current_Item,\[Item_Index_Type])==\[Item_Type_One_Shot]]
 GOSUB[#="DW_Item_Ov_Once01"]
 ELSE[@DW_Item_Index(@DW_Item_Current_Item,\[Item_Index_Type])==\[Item_Type_Reusable]]
 GOSUB[#="DW_Item_Ov_Reusable01"]
 ELSE[@DW_Item_Index(@DW_Item_Current_Item,\[Item_Index_Type])==\[Item_Type_Event]]
 GOSUB[#="DW_Item_Ov_Event01"]
 IFEND[]
 @DW_Changes=0
 GO[#="DW_Dist_Loop01"]
 LABEL[#="DW_Dist_Loop01"]
 \[r]_
 IF[(@DW_DOWN == 0) && ((@_PAD_DOWN(@DW_Pad_Number) > 0) || (@_KEY_DOWN > 0))]
 @DW_DOWN=1
 @DW_Changes=1
 @DW_Item_Current_Item+=1
 ELSE[(@DW_UP == 0) && ((@_PAD_UP(@DW_Pad_Number) > 0) || (@_KEY_UP > 0))]
 @DW_UP=1
 @DW_Changes=1
 @DW_Item_Current_Item-=1
 ELSE[(@DW_MARU == 0)&&((\[Button_Maru] > 0)||(\[Key_Maru] > 0))]
 @DW_MARU = 1
 ELSE[(@DW_BATU == 0)&&((\[Button_Batu] > 0)||(\[Key_Batu] > 0))]
 @DW_BATU = 1
 GO[#="DW_Item_Distributor_End"]
 IFEND[]
 IF[(@DW_LEFT != 0) && ((@_PAD_LEFT(@DW_Pad_Number) < 0)&&(@_KEY_LEFT < 0))]
 @DW_LEFT=0
 IFEND[]
 IF[(@DW_RIGHT != 0) && ((@_PAD_RIGHT(@DW_Pad_Number) < 0)&&(@_KEY_RIGHT < 0))]
 @DW_RIGHT=0
 IFEND[]
 IF[(@DW_DOWN != 0) && ((@_PAD_DOWN(@DW_Pad_Number) < 0)&&(@_KEY_DOWN < 0))]
 @DW_DOWN=0
 IFEND[]
 IF[(@DW_UP != 0) && ((@_PAD_UP(@DW_Pad_Number) < 0)&&(@_KEY_UP < 0))]
 @DW_UP=0
 IFEND[]
 IF[(@DW_MARU != 0) && ((\[Button_Maru] < 0)&&(\[Key_Maru] < 0))]
 @DW_MARU=0
 IFEND[]
 IF[(@DW_BATU != 0) && ((\[Button_Batu] < 0)&&(\[Key_Batu] < 0))]
 @DW_BATU=0
 IFEND[]
 IF[@DW_Changes!=0]
 GO[#="DW_Item_Dist_Display01"]
 ELSE[]
 GO[#="DW_Dist_Loop01"]
 IFEND[]
 GO[#="DW_Dist_Loop01"]
 LABEL[#="DW_Item_Distributor_End"]
 _\[p]
 RETURN[]
 
 
 そして、呼び出したルーチンは以下のようになります(こちらも別のファイルになりますね。)。
 
 
 LABEL[#="DW_Item_Ov_None01"]
 \[r]ID番号:_[$DW_Item_Curr_Item]
 \[r]まだ作られていない。
 RETURN[]
 LABEL[#="DW_Item_Ov_Special01"]
 \[r]ID番号:_[$DW_Item_Curr_Item]
 \[r]名前:_[$DW_Item_Name_Index(@DW_Item_Current_Item)]
 \[r]タイプ:_[$DW_Item_Type_Name(\[Item_Type_Special])]
 \[r]これ以上のデータが必要ではありません。\[r]
 RETURN[]
 LABEL[#="DW_Item_Ov_Weapon01"]
 INT[@I=0]
 \[r]ID番号:_[$DW_Item_Curr_Item]
 \[r]名前:_[$DW_Item_Name_Index(@DW_Item_Current_Item)]
 \[r]タイプ:_[$DW_Item_Type_Name(\[Item_Type_Weapon])]
 LOOP[SET=\[Item_Data_Weapon_Size]]
 \[r]_[$DW_Weapon_Data_Name(@I)] _[@DW_Weapon_Data(@I)]
 @I+=1
 LOOPEND[]
 \[r]
 RETURN[]
 LABEL[#="DW_Item_Ov_A_Torso01"]
 INT[@I=0]
 \[r]ID番号:_[$DW_Item_Curr_Item]
 \[r]名前:_[$DW_Item_Name_Index(@DW_Item_Current_Item)]
 \[r]タイプ:_[$DW_Item_Type_Name(\[Item_Type_Armor_Torso])]
 \[r]
 RETURN[]
 LABEL[#="DW_Item_Ov_A_Head01"]
 INT[@I=0]
 \[r]ID番号:_[$DW_Item_Curr_Item]
 \[r]名前:_[$DW_Item_Name_Index(@DW_Item_Current_Item)]
 \[r]タイプ:_[$DW_Item_Type_Name(\[Item_Type_Armor_Head])]
 \[r]
 RETURN[]
 LABEL[#="DW_Item_Ov_A_Feet01"]
 INT[@I=0]
 \[r]ID番号:_[$DW_Item_Curr_Item]
 \[r]名前:_[$DW_Item_Name_Index(@DW_Item_Current_Item)]
 \[r]タイプ:_[$DW_Item_Type_Name(\[Item_Type_Armor_Feet])]
 \[r]
 RETURN[]
 LABEL[#="DW_Item_Ov_Shield01"]
 INT[@I=0]
 \[r]ID番号:_[$DW_Item_Curr_Item]
 \[r]名前:_[$DW_Item_Name_Index(@DW_Item_Current_Item)]
 \[r]タイプ:_[$DW_Item_Type_Name(\[Item_Type_Shield])]
 \[r]
 RETURN[]
 LABEL[#="DW_Item_Ov_Neck01"]
 INT[@I=0]
 \[r]ID番号:_[$DW_Item_Curr_Item]
 \[r]名前:_[$DW_Item_Name_Index(@DW_Item_Current_Item)]
 \[r]タイプ:_[$DW_Item_Type_Name(\[Item_Type_Neck])]
 \[r]
 RETURN[]
 LABEL[#="DW_Item_Ov_Ring01"]
 INT[@I=0]
 \[r]ID番号:_[$DW_Item_Curr_Item]
 \[r]名前:_[$DW_Item_Name_Index(@DW_Item_Current_Item)]
 \[r]タイプ:_[$DW_Item_Type_Name(\[Item_Type_Ring])]
 \[r]
 RETURN[]
 LABEL[#="DW_Item_Ov_Ammu01"]
 INT[@I=0]
 \[r]ID番号:_[$DW_Item_Curr_Item]
 \[r]名前:_[$DW_Item_Name_Index(@DW_Item_Current_Item)]
 \[r]タイプ:_[$DW_Item_Type_Name(\[Item_Type_Ammunition])]
 \[r]
 RETURN[]
 LABEL[#="DW_Item_Ov_Once01"]
 INT[@I=0]
 \[r]ID番号:_[$DW_Item_Curr_Item]
 \[r]名前:_[$DW_Item_Name_Index(@DW_Item_Current_Item)]
 \[r]タイプ:_[$DW_Item_Type_Name(\[Item_Type_One_Shot])]
 \[r]
 RETURN[]
 LABEL[#="DW_Item_Ov_Reusable01"]
 INT[@I=0]
 \[r]ID番号:_[$DW_Item_Curr_Item]
 \[r]名前:_[$DW_Item_Name_Index(@DW_Item_Current_Item)]
 \[r]タイプ:_[$DW_Item_Type_Name(\[Item_Type_Reusable])]
 \[r]
 RETURN[]
 LABEL[#="DW_Item_Ov_Event01"]
 INT[@I=0]
 \[r]ID番号:_[$DW_Item_Curr_Item]
 \[r]名前:_[$DW_Item_Name_Index(@DW_Item_Current_Item)]
 \[r]タイプ:_[$DW_Item_Type_Name(\[Item_Type_Event])]
 \[r]
 RETURN[]
 
 
 Globalでの関係のものは
 
 
 G_INT[@DW_Changes=0]
 
 G_INT[@DW_Item_Index(\[Item_Index_Size],\[Item_Index_Dimension])]
 G_STR[$DW_Item_Name_Index(\[Item_Index_Size])]
 G_INT[@DW_Item_Current_Item=1]
 G_STR[$DW_Item_Curr_Item="001"]
 G_INT[@DW_Weapon_Data(\[Item_Data_Weapon_Size])]
 
 G_STR[$DW_Item_Type_Name(\[Item_Types])]
 G_STR[$DW_Weapon_Data_Name(\[Item_Data_Weapon_Size])]
 
 
 Initでの準備は
 
 $DW_Item_Type_Name(\[Item_Type_None])="未決定"
 $DW_Item_Type_Name(\[Item_Type_Special])="ダミー"
 $DW_Item_Type_Name(\[Item_Type_Weapon])="武器"
 $DW_Item_Type_Name(\[Item_Type_Armor_Torso])="鎧"
 $DW_Item_Type_Name(\[Item_Type_Armor_Head])="兜"
 $DW_Item_Type_Name(\[Item_Type_Armor_Feet])="靴"
 $DW_Item_Type_Name(\[Item_Type_Shield])="盾"
 $DW_Item_Type_Name(\[Item_Type_Neck])="首輪"
 $DW_Item_Type_Name(\[Item_Type_Ring])="指輪"
 $DW_Item_Type_Name(\[Item_Type_Ammunition])="弾"
 $DW_Item_Type_Name(\[Item_Type_One_Shot])="使い捨て"
 $DW_Item_Type_Name(\[Item_Type_Reusable])="再使い"
 $DW_Item_Type_Name(\[Item_Type_Event])="イベント"
 $DW_Weapon_Data_Name(\[Weapon_Data_Subtype])="細かいタイプ"
 $DW_Weapon_Data_Name(\[Weapon_Data_Min_STR])="必要な強さ"
 $DW_Weapon_Data_Name(\[Weapon_Data_Min_DEX])="必要な器用さ"
 $DW_Weapon_Data_Name(\[Weapon_Data_Damage])="ダメージ"
 $DW_Weapon_Data_Name(\[Weapon_Data_Element])="属"
 $DW_Weapon_Data_Name(\[Weapon_Data_Easiness])="難しさ"
 
 そして、新しいMACROは
 //
 // アイテムリスト用の便利な
 // 「Constant」
 //
 MACRO[NAME="Item_Index_Type" STR="0"]
 MACRO[NAME="Item_Index_Disposition" STR="1"]
 MACRO[NAME="Item_Index_Price" STR="2"]
 MACRO[NAME="Item_Index_Icon_Number" STR="3"]
 //
 MACRO[NAME="Item_Index_Size" STR="500"]
 MACRO[NAME="Item_Index_Digits" STR="3"]
 MACRO[NAME="Item_Index_Dimension" STR="4"]
 //
 MACRO[NAME="Item_Type_None" STR="0"]
 MACRO[NAME="Item_Type_Special" STR="1"]
 MACRO[NAME="Item_Type_Weapon" STR="2"]
 MACRO[NAME="Item_Type_Armor_Torso" STR="3"]
 MACRO[NAME="Item_Type_Armor_Head" STR="4"]
 MACRO[NAME="Item_Type_Armor_Feet" STR="5"]
 MACRO[NAME="Item_Type_Shield" STR="6"]
 MACRO[NAME="Item_Type_Neck" STR="7"]
 MACRO[NAME="Item_Type_Ring" STR="8"]
 MACRO[NAME="Item_Type_Ammunition" STR="9"]
 MACRO[NAME="Item_Type_One_Shot" STR="10"]
 MACRO[NAME="Item_Type_Reusable" STR="11"]
 MACRO[NAME="Item_Type_Event" STR="12"]
 //
 MACRO[NAME="Item_Types" STR="13"]
 //
 MACRO[NAME="Weapon_Data_Subtype" STR="0"]
 MACRO[NAME="Weapon_Data_Min_STR" STR="1"]
 MACRO[NAME="Weapon_Data_Min_DEX" STR="2"]
 MACRO[NAME="Weapon_Data_Damage" STR="3"]
 MACRO[NAME="Weapon_Data_Element" STR="4"]
 MACRO[NAME="Weapon_Data_Easiness" STR="5"]
 //
 MACRO[NAME="Item_Data_Weapon_Size" STR="6"]
 //
 
 
 使っているアイテムリストはまだ全て「0」(=未決定)になります
 
 ルーチンAの中の
 
 \[p]アイテムを選んで下さい。\[r]
 
 というラインを消せば、スクリーンの変更が行わなくなりますけど、KEYの仕業をちゃんと聞きます。
 でも、LABEL[#="DW_Dist_Loop01"]の後の
 
 \[r]_
 
 がなくなりますと、Freezeになります。
 
 \[r]
 
 だけならも駄目です。テキストがなければ、\[r]が無視されるらしいです。
 
 AUTOCLICKもAUTOPAGEもAUTORETURNがOFFになります。
 
 どうか確かめて下さい。
 
 Deathworks
 |  |   |  |  | |  |  |  |  |