私設SoS2オーナー応援BBS

新規発言一覧最新記事過去一覧検索ダウンロードページHOME

スレッド

└◇178:
エラーが・・・。 [ナム〜ン] 11/18 09:44

 └◇179:Re:エラーが・・・。 [moon] 11/18 19:39
  └◇182:無事にできました〜☆ [ナム〜ン] 11/19 14:41<-last


178● エラーが・・・。[ ナム〜ン ] 2002 11/18 09:44
解答ありがとうございます。
で、早速やってみたのですがいまいち理解ができなくて
エラーを出してしまいます・・・。
ちなみにアイテムではなく特種能力(スキルとは別物)を
作ってそれを装備や順番入れ替えと言う命令を今作ってます。

# Sub Fsort After #
sub fsort_after {
    @rcdlines = &get_user("$Fm{'id'}");
    return if $fg ne 'FB';
    &splititem('f');
    foreach (0 .. $#fhoses) {
($fhose,$fkz,$flv,$fsk,$frd) = split(/△/,$fhoses[$_]);
if ($fsk =~ /Qs/) { $nomsg = 1 } else { $nomsg = 0 }
        $fsk =~ s/Qs//g;
        if ($Fm{$_}) {
            if (@tf_fshu && @tv_fshu) { &fhose_arm($1,'Qs') }
        }
        if ($Fm{'sort'}) {
if(@fhoses){
  my $change = -1;
  foreach(0..$#fhoses){
    if($Fm{"$_"}){
      if($change>=0){
        ($fhoses[$change],$fhoses[$_]) = ($fhoses[$_],$fhoses[$change]);
        $change = -1;
      }
      else{$change = $_;}
    }
  }
}
    $fg = ''; &userout;
    push (@msg,"フォースを並べ変えました。");
        }
if (!$gn) { $newitem = "$fhose△$fkz△$flv△$fsk"; $newitem .= "△$frd" if $frd; push(@we,$newitem) }
$gn = 0;
    }
    @fhoses = @we; &joinitem(f); $fg = ''; &userout;
}

というやつなんですが
sortをするとアイテムの入れ替えができるというものです。
ちなみに# Sub Fsort Before #でアイテムをチェックして
# Sub Fsort After #で入れ替えるというのなんですが
入れ方が悪いのでしょうか?
スレッド一覧


179● Re:エラーが・・・。[ moon ] 2002 11/18 19:39
> sortをするとアイテムの入れ替えができるというものです。
> ちなみに# Sub Fsort Before #でアイテムをチェックして
> # Sub Fsort After #で入れ替えるというのなんですが
> 入れ方が悪いのでしょうか?

場所が悪いですね。
以下、ソートを選んだ場合はソートしかしないと仮定して変更。(文法チェックなし)

# Sub Fsort After #
sub fsort_after {
  @rcdlines = &get_user("$Fm{'id'}");
  return if($fg ne 'FB');
  &splititem('f');
  if($Fm{'sort'}){
    if(@fhoses){
      my $change = -1;
      foreach(0..$#fhoses){
        if($Fm{"$_"}){
          if($change>=0){
            ($fhoses[$change],$fhoses[$_]) = ($fhoses[$_],$fhoses[$change]);
            $change = -1;
          }
          else{$change = $_;}
        }
      }
    }
    push(@msg,"フォースを並べ変えました。");
  }
  else{
    # こちらにもif(@fhoses)を書いたほうが良いはず
    foreach(0..$#fhoses){
      ($fhose,$fkz,$flv,$fsk,$frd) = split(/△/,$fhoses[$_]);
      if($fsk=~/Qs/){$nomsg = 1;}else{$nomsg = 0;}
      $fsk =~ s/Qs//g;
      if($Fm{$_}){
        &fhose_arm($1,'Qs') if(@tf_fshu && @tv_fshu); # $1は不適切?
      }
      # $gnは使用していないのでいらない
      if(!$gn){$newitem = "$fhose△$fkz△$flv△$fsk"; $newitem .= "△$frd" if($frd); push(@we,$newitem);}
      $gn = 0;
    }
    @fhoses = @we;
  }
  &joinitem('f'); # たぶんエラー原因だったところ f→'f'
  $fg = ''; &userout;
}
スレッド一覧


182● 無事にできました〜☆[ ナム〜ン ] 2002 11/19 14:41
ありがとうございました☆
スレッド一覧

CGIROOM