私設SoS2オーナー応援BBS

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

No.509  Re:追加の質問です
発言者: moon
発言日: 2003 04/24 20:10
変更が必要な箇所などはデフォルトのソースだとして話を進めますね。

> 1. アイテムの攻撃値と防御値をそれぞれ3桁に

データで3桁ずつにしただけでは正常な処理は行われません。
変更が必要な箇所は、
  変数
    $def_bn1 = '0200';
    $def_bn2 = '0002';
    $def_bn3 = '0002';
    $def_bn4 = '0101';
  use_after
    $iak = substr($sts,4,2); $idd = substr($sts,6,2);
  judge_after
    $iak = int(substr($sts,4,2)); $idd = int(substr($sts,6,2));
  fight
    $ab -= substr($sts,4,2); $db -= substr($sts,6,2);
    $pab -= substr($sts,4,2); $pdb -= substr($sts,6,2)
  food
    $iak = 99 if $iak > 99; $iak = -9 if $iak < -9;
    $sts = sprintf("%04d%02d%02d",0,$iak,0) . "FdWi";
  blacksmith
    $sts = sprintf("%04d%04d",$def_pc1,$def_bn1);
    $sts = sprintf("%04d%04d",$def_pc2,$def_bn2);
    $sts = sprintf("%04d%04d",$def_pc3,$def_bn3);
    $sts = sprintf("%04d%04d",$def_pc4,$def_bn4);
などを3桁対応に修正しないといけません。
上記はざっと検索して見つけただけなので漏れがあるかもしれません。(検索はsprintf、substr、99、-9などの単語でやると良いです。)

> 2. randについて

rand(EXPR)は0からEXPRまでの値を返す関数です。(返される値xは0<=x<EXPR)
ここでEXPRを指定していしないと1が指定されたものとなります。

一度の探索に体力を10必要にするのには、find_itemのif ($hp <= 1)     { push (@msg,'ヒットポイントが足りません');return }の1を10にし、$hp--;を$hp -= 10;にします。

ちなみに、PerlのドキュメントにはEXPRが正の値でなければいけないと書かれてありますが実際は負の値でも動作します。(何か問題があるのかもしれませんが・・・)

---- 巻末リファレンス(笑) ----
・substr : 文字列の部分文字列を取得する関数
・sprintf : 文字列を指定した形式で整形する関数
・$hp--; : $hp = $hp - 1;の省略した書き方
・$hp -= 10; : $hp = $hp - 10;の省略した書き方

▼関連発言

507:アイテムデータ [akira] 04/24 11:08
 └508:追加の質問です [akira] 04/24 13:46
  └509:Re:追加の質問です [moon] 04/24 20:10
   └510:出直します [akira] 04/25 06:51
    └511:Re:出直します [moon] 04/25 09:05
     └514:Re[2]:出直します [akira] 04/25 13:39
      └515:Re[3]:出直します [moon] 04/25 19:36
       └516:Re[4]:出直します [akira] 04/25 23:33<-last

Pass 保存


CGIROOM