SRC質問掲示板Mk2
(現在 過去ログ39 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 検索 掲示板新着情報RSS配信新着情報 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■7308 / inTopicNo.1)  毎回変わる番号の一時保存
  
□投稿者/ クロ -(2003/03/01(Sat) 08:38:21)
http://kuroro32ad.infoseek.ne.jp/
    どうも、ひさびさのクロです。
    ちょっと問題に突き当たったので質問したんですけど
    
    
    *攻撃後 敵 味方:
    If Info(対象ユニットID,武器,(対象ユニット使用武器),属性所有,ラ) = 1 Then
      For g = 1 to Info(対象ユニットID,武器数)
      If 対象ユニット使用武器 = Info(対象ユニットID,武器,g) Then
        If IsEquiped(相手ユニットID,(対象ユニット使用武器)) = Info(対象ユニットID,武器,g) Then
          RemoveItem 相手ユニットID Info(対象ユニットID,武器,g)
          c = g
        EndIf
      EndIf
      Next
      Equip 相手ユニットID Info(対象ユニットID,武器,c)
    EndIf
    Exit
    
    こんな感じのインクルを作っています。
    開発版のラーニングをアイテム交換で再現してみようかなと思いまして、
    テストプレイしてみたところ、
    
    For g = 1 to Info(対象ユニットID,武器数)
    If 対象ユニット使用武器 = Info(対象ユニットID,武器,g) Then
     If IsEquiped(相手ユニットID,(対象ユニット使用武器)) = Info(対象ユニットID,武器,g) Then
        RemoveItem 相手ユニットID Info(対象ユニットID,武器,g)
        c = g
    
    の部分で取得した番号(変数を取得したg)の値が変わってしまい、
    アイテムが装備できないのです。
    ちなみに、アイテムは武器と同名にして、
    属性に「ラ」がついているものだけをやります。
    
    どうしたら、Forなどで使い、すぐ番号が変わるものを保存できるようになるか、
    教えていただきたいと思います。
    このばあいは、
    
    Equip 相手ユニットID Info(対象ユニットID,武器,c)
    
    という使った武器と同じ名前のアイテムの番号を取得して保存したいわけです。

引用返信/返信 削除キー/
■7309 / inTopicNo.2)  Re[1]: 毎回変わる番号の一時保存
□投稿者/ TomTom -(2003/03/01(Sat) 10:04:53)
    TomTomです

    If IsEquiped(相手ユニットID,(対象ユニット使用武器)) = Info(対象ユニットID,武器,g) Then

    ここがおかしいのでないでしょうか?
    IsEquipedは、
    「ユニットが指定したアイテムを装備していれば 1 を、装備していなければ 0 を返します。」
    という関数です。対してInfo(ユニット,武器,番号)は、
    「指定した番目の武器の名称を返す」
    関数です。ですから全然違う値を比較していることになります。
    比較がおかしく、その結果「c = g」の部分を通っていないため、
    cの値が変わっていない、ということですね。


    正しくは、
     If IsEquiped(相手ユニットID,Info(対象ユニットID,武器,g)) Then
    となるわけですが…
    そもそもForでループさせる必要はなく
     If IsEquiped(相手ユニットID,対象ユニット使用武器) Then
    だけで、同名のアイテムを装備しているかどうかが確認できます。

    よって、
     *攻撃後 敵 味方:
      If Info(対象ユニットID,武器,(対象ユニット使用武器),属性所有,ラ) = 1 Then
       If IsEquiped(相手ユニットID,対象ユニット使用武器) Then
        RemoveItem 相手ユニットID 対象ユニット使用武器
       Else
        Equip 相手ユニットID 対象ユニット使用武器
       EndIf
      EndIf
     Exit
    これでお望みの処理が出来ると思います。
    (テストはしていないので、細かいエラーはあるかもしれません)

    それでは。
解決済み!
引用返信/返信 削除キー/
■7311 / inTopicNo.3)  Re[2]: 毎回変わる番号の一時保存
□投稿者/ クロ -(2003/03/01(Sat) 11:20:14)
http://kuroro32ad.infoseek.ne.jp/
    早速返信してもらい、どうもです。

    TomTomさんがやったのを試したところうまくいきました。
    ちゃんとアイテムも装備されていたし、エラーも出ずにちゃんととおりました。
解決済み!
引用返信/返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Pass/

HOME HELP 新規作成 新着記事 トピック表示 検索 掲示板新着情報RSS配信新着情報 過去ログ

- Child Tree -
- Antispam Version -