私設SoS2オーナー応援BBS

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

スレッド

└◇1570:
副業追加について [rien] 12/27 15:25

 └◇1571:Re:副業追加について [moon] 12/27 20:40
  └◇1572:Re[2]:副業追加について [rien] 12/27 22:58
   └◇1573:Re[3]:副業追加について [moon] 12/27 23:56
    └◇1575:Re[4]:副業追加について [rien] 12/28 10:31
     └◇1576:Re[5]:副業追加について [moon] 12/28 14:03
      └◇1577:Re[6]:副業追加について [rien] 12/28 15:17
       └◇1578:Re[7]:副業追加について [moon] 12/28 16:04
        └◇1579:Re[8]:副業追加について [rien] 12/28 17:24
         └◇1580:Re[9]:副業追加について [moon] 12/28 19:12
          └◇1581:Re[10]:副業追加について [rien] 12/28 19:43
           └◇1582:Re[11]:副業追加について [moon] 12/28 21:18
            └◇1583:Re[12]:副業追加について [rien] 12/28 21:52
             └◇1584:Re[13]:副業追加について [moon] 12/28 22:17
              └◇1585:Re[14]:副業追加について [rien] 12/29 00:15<-last


1570● 副業追加について[ rien ] 2008 12/27 15:25
度々すみません・・。
先日レティさんの副業を追加してみたのですが
設定はできているようなのですが・・
時間がたっても収入成功や失敗のメッセージが出ません。
うまく実行できていないのかもしれません・・。
今のところ他のエラーはでていないようなのですが・・。
文法のエラーも出ていません。

それで
Sub Make Continue
の記述がおかしいのだと思うのですけど
自分なりに試してみましたが
うまくいきません・・・。

SOSはマシマロさんの分割版を使用しています。
よろしくお願いします。
スレッド一覧


1571● Re:副業追加について[ moon ] 2008 12/27 20:40
> 度々すみません・・。
> 先日レティさんの副業を追加してみたのですが
> 設定はできているようなのですが・・
> 時間がたっても収入成功や失敗のメッセージが出ません。
> うまく実行できていないのかもしれません・・。
> 今のところ他のエラーはでていないようなのですが・・。
> 文法のエラーも出ていません。
>
> それで
> Sub Make Continue
> の記述がおかしいのだと思うのですけど
> 自分なりに試してみましたが
> うまくいきません・・・。
>
> SOSはマシマロさんの分割版を使用しています。
> よろしくお願いします。

処理を追加する位置が問題なのではないでしょうか?
オリジナル版では「$Fm{'ps'} = $Fm{'pass'};」の下に追加するようなので「$now = int((time - $tm) / 3600);」の上になります。
スレッド一覧


1572● Re[2]:副業追加について[ rien ] 2008 12/27 22:58
> 処理を追加する位置が問題なのではないでしょうか?
> オリジナル版では「$Fm{'ps'} = $Fm{'pass'};」の下に追加するようなので「$now = int((time - $tm) / 3600);」の上になります。

お返事ありがとうございます。
確認してみると
$now = int((time - $tm) / 3600);
の上に記述はしてありました。
もう一度収入の期間を短くして動作確認をしてみましたが
表示はされていませんでした。
就業レベルは上がっているようなのですが・・

他に直すべきところがあるとしたら
どこを直したらよいのでしょうか??
スレッド一覧


1573● Re[3]:副業追加について[ moon ] 2008 12/27 23:56
> > 処理を追加する位置が問題なのではないでしょうか?
> > オリジナル版では「$Fm{'ps'} = $Fm{'pass'};」の下に追加するようなので「$now = int((time - $tm) / 3600);」の上になります。
>
> お返事ありがとうございます。
> 確認してみると
> $now = int((time - $tm) / 3600);
> の上に記述はしてありました。
> もう一度収入の期間を短くして動作確認をしてみましたが
> 表示はされていませんでした。
> 就業レベルは上がっているようなのですが・・
>
> 他に直すべきところがあるとしたら
> どこを直したらよいのでしょうか??

では、どこに問題があるのかを特定するために以下のことを試してみてください。
1. $onedayを1にしてから7秒以降後にコンティニューする。
    → 副業のメッセージが表示されればOK。
2. 以下のような確認用のメッセージ表示処理を加えてから1.を試す。(公開したくない情報が含まれる場合は改造方法に記述されている副業のデータを使用すれば良いです。)
  ($lt,$pt,$sjn,$sjp,$sjc) = split(/△/,$sj);
  push(@msg, "sj=$sj,av=$av"); # ここ
  if($av ne 'dead' && $sp =~/Tf/ && $sp !~ /Ng/){
    $daynow = int((time - $lt) / ($oneday*7));
    $pay = int($daynow * $sjp);
    push(@msg, "oneday=$oneday,daynow=$daynow,pay=$pay"); # ここ
    if($pay > 0){ $rnd = int(rand(100)+1);
      if($rnd < $sjc){ $mn += $pay;
        push (@msg,"$sjnの仕事により、$pay\Gの収入を得ました");
      }else{push (@msg,"$sjnの仕事を失敗。給料は出ませんでした・・・");}
    }
  }
  $lt = time;
  $sj = "$lt△$pt△$sjn△$sjp△$sjc";
→ 表示されたメッセージを確認する。
スレッド一覧


1575● Re[4]:副業追加について[ rien ] 2008 12/28 10:31
> では、どこに問題があるのかを特定するために以下のことを試してみてください。
> 1. $onedayを1にしてから7秒以降後にコンティニューする。
>     → 副業のメッセージが表示されればOK。
> 2. 以下のような確認用のメッセージ表示処理を加えてから1.を試す。(公開したくない情報が含まれる場合は改造方法に記述されている副業のデータを使用すれば良いです。)
>   ($lt,$pt,$sjn,$sjp,$sjc) = split(/△/,$sj);
>   push(@msg, "sj=$sj,av=$av"); # ここ
>   if($av ne 'dead' && $sp =~/Tf/ && $sp !~ /Ng/){
>     $daynow = int((time - $lt) / ($oneday*7));
>     $pay = int($daynow * $sjp);
>     push(@msg, "oneday=$oneday,daynow=$daynow,pay=$pay"); # ここ
>     if($pay > 0){ $rnd = int(rand(100)+1);
>       if($rnd < $sjc){ $mn += $pay;
>         push (@msg,"$sjnの仕事により、$pay\Gの収入を得ました");
>       }else{push (@msg,"$sjnの仕事を失敗。給料は出ませんでした・・・");}
>     }
>   }
>   $lt = time;
>   $sj = "$lt△$pt△$sjn△$sjp△$sjc";
> → 表示されたメッセージを確認する。

お返事ありがとうございます。
今試してみましたら

sj=,av=
このようなメッセージになるのですが
何か私の記述に間違いがあったのでしょうか・・・。

よろしくお願いいたします。

昨晩書き込みしたのですが
追加でお聞きしたいことがあり追記します。

副業がきっかけではないと思うのですが
保存しても回復が出来ていないことがわかりました。
前回導入した保存状態では回復してることが確認できているのですが・・ログインすると体力が1のままとなってしまっています。

改造の際にどこか削除してしまったのでしょうか・・・
パソコンの前でうなっておりましたが・・
(前のデータに戻したりと・・
それでも変わらないようなのでよかったら教えてください。
よろしくお願いします。
スレッド一覧


1576● Re[5]:副業追加について[ moon ] 2008 12/28 14:03
> お返事ありがとうございます。
> 今試してみましたら
>
> sj=,av=
> このようなメッセージになるのですが
> 何か私の記述に間違いがあったのでしょうか・・・。
>
> よろしくお願いいたします。
>
> 昨晩書き込みしたのですが
> 追加でお聞きしたいことがあり追記します。
>
> 副業がきっかけではないと思うのですが
> 保存しても回復が出来ていないことがわかりました。
> 前回導入した保存状態では回復してることが確認できているのですが・・ログインすると体力が1のままとなってしまっています。
>
> 改造の際にどこか削除してしまったのでしょうか・・・
> パソコンの前でうなっておりましたが・・
> (前のデータに戻したりと・・
> それでも変わらないようなのでよかったら教えてください。
> よろしくお願いします。

$sjと$avが空で体力が回復しないということはget_userが行われていない可能性がありますので、その点も含めておかしなところがないかどうかを分割版のオリジナルmake_conと比較してみたほうが良いかもしれません。
また、単純にget_userが行われていない場合はユーザーデータの保存フォルダに".dat"というファイルができてしまっている可能性があります。
スレッド一覧


1577● Re[6]:副業追加について[ rien ] 2008 12/28 15:17
度々すみません・・・。

オリジナルのと比べてみると
@rcdlines = &get_user("$Fm{'id'}");
この場所がおかしかったようです。
改造する際に一緒に切り取ってしまった・・みたいです。

その後メッセージを出してみると
このようになりました。

sj=1230444543△733△掃除夫△0.05△90,av=alive
oneday=120,daynow=1,pay=0
スレッド一覧


1578● Re[7]:副業追加について[ moon ] 2008 12/28 16:04
> 度々すみません・・・。
>
> オリジナルのと比べてみると
> @rcdlines = &get_user("$Fm{'id'}");
> この場所がおかしかったようです。
> 改造する際に一緒に切り取ってしまった・・みたいです。
>
> その後メッセージを出してみると
> このようになりました。
>
> sj=1230444543△733△掃除夫△0.05△90,av=alive
> oneday=120,daynow=1,pay=0

このデータですと、ゲーム内の1週間(120*7秒)あたり0.05Gの収入となりますが、1週間しか副業していないため切り捨てで0Gになっています。
時間の設定か収入金額のデータを変更して1G以上になる状態で再度試してみてください。
スレッド一覧


1579● Re[8]:副業追加について[ rien ] 2008 12/28 17:24
> このデータですと、ゲーム内の1週間(120*7秒)あたり0.05Gの収入となりますが、1週間しか副業していないため切り捨てで0Gになっています。
> 時間の設定か収入金額のデータを変更して1G以上になる状態で再度試してみてください。


お返事ありがとうございます。
なるほど・・そうだったのですね
7日間ごとに追加されるのかと・・
デフォルトのままにしてました・・。
もらえる金額の桁を変えてみたらメッセージは表示されました。

お手数おかけしました。
助かりました^^ありがとうございます。

それと追加でお聞きしたいことがありまして・・
いつもすみません・・・。
まだ導入はしていないのですが
魔法をMPというデータで消費していくようなシステムで
これを魔法だけでなく他の戦闘スキルもこのMPを消費して
いくようにしたいと思っているのですが
可能でしょうか???

それと
大和さんの街移動についてなのですが
どこの街でもある特定の戦闘NPCに会えるようにするには
どうしたらよいでしょうか??
どこを直してよいのか分からず・・・

初歩的な質問ばかりですみません・・・。
スレッド一覧


1580● Re[9]:副業追加について[ moon ] 2008 12/28 19:12
> それと追加でお聞きしたいことがありまして・・
> いつもすみません・・・。
> まだ導入はしていないのですが
> 魔法をMPというデータで消費していくようなシステムで
> これを魔法だけでなく他の戦闘スキルもこのMPを消費して
> いくようにしたいと思っているのですが
> 可能でしょうか???

どのようなものなのか詳細がわかりませんが、単純にMPを表すパラメータを用意して必要MP以上の場合だけスキル発動を判定する、ということであれば魔法以外のスキルへの対応も容易だと思います。(こういうものでない場合でも容易かどうかはともかく可能ではあるはずです。)
この場合、fight_subにMPパラメータを渡してスキル発動を判定している箇所で必要MPと比較しMPを減少、最後にreturnの時に使用後のMP値も一緒に返すことで実現できます。

> それと
> 大和さんの街移動についてなのですが
> どこの街でもある特定の戦闘NPCに会えるようにするには
> どうしたらよいでしょうか??
> どこを直してよいのか分からず・・・
>
> 初歩的な質問ばかりですみません・・・。

NPCのスキルで判定する場合、改造方法の番外編2を以下のように変更すれば良いと思います。
  if ($tw ne $ptw) { push (@msg,"$pnmは現在ここには居ません"); $notfound = 1; return }
    ↓
  if ($tw ne $ptw && index($psp, 'Am') == -1) { push (@msg,"$pnmは現在ここには居ません"); $notfound = 1; return } # スキルを"Am"とした場合
スレッド一覧


1581● Re[10]:副業追加について[ rien ] 2008 12/28 19:43
> どのようなものなのか詳細がわかりませんが、単純にMPを表すパラメータを用意して必要MP以上の場合だけスキル発動を判定する、ということであれば魔法以外のスキルへの対応も容易だと思います。(こういうものでない場合でも容易かどうかはともかく可能ではあるはずです。)
> この場合、fight_subにMPパラメータを渡してスキル発動を判定している箇所で必要MPと比較しMPを減少、最後にreturnの時に使用後のMP値も一緒に返すことで実現できます。
>

MPとして導入しようとしているのは純金の広場様の改造です。
まだ未導入なので、わからないことばかりではありますが・・
自分に対応できそうでしたらMPでスキルを消費という形を作りたいと思いました。
> この場合、fight_subにMPパラメータを渡してスキル発動を判定している箇所で必要MPと比較しMPを減少、最後にreturnの時に使用後のMP値も一緒に返すことで実現できます

ここの後半部分はあまりよくわからなくて・・
すみません・・・。

> NPCのスキルで判定する場合、改造方法の番外編2を以下のように変更すれば良いと思います。
>   if ($tw ne $ptw) { push (@msg,"$pnmは現在ここには居ません"); $notfound = 1; return }
>     ↓
>   if ($tw ne $ptw && index($psp, 'Am') == -1) { push (@msg,"$pnmは現在ここには居ません"); $notfound = 1; return } # スキルを"Am"とした場合

こちらの導入は接触はどの街でもできました。
ありがとうございます。
ここではかりん様配布の街移動判別オプションを導入していて
○×の番外編の方なのですが・・・
ここを直すにはどうしたらよいのでしょうか・・。
×になったまま会えるので○にするにはどの辺を直せばよいですか??
スレッド一覧


1582● Re[11]:副業追加について[ moon ] 2008 12/28 21:18
> > どのようなものなのか詳細がわかりませんが、単純にMPを表すパラメータを用意して必要MP以上の場合だけスキル発動を判定する、ということであれば魔法以外のスキルへの対応も容易だと思います。(こういうものでない場合でも容易かどうかはともかく可能ではあるはずです。)
> > この場合、fight_subにMPパラメータを渡してスキル発動を判定している箇所で必要MPと比較しMPを減少、最後にreturnの時に使用後のMP値も一緒に返すことで実現できます。
> >
>
> MPとして導入しようとしているのは純金の広場様の改造です。
> まだ未導入なので、わからないことばかりではありますが・・
> 自分に対応できそうでしたらMPでスキルを消費という形を作りたいと思いました。
> > この場合、fight_subにMPパラメータを渡してスキル発動を判定している箇所で必要MPと比較しMPを減少、最後にreturnの時に使用後のMP値も一緒に返すことで実現できます
>
> ここの後半部分はあまりよくわからなくて・・
> すみません・・・。

改造方法に従うとfight_subの$Wmpと$Lmpがそれぞれ勝者のMPと敗者のMPとなり、これらがreturnで返されています。
そして、発動するかどうかの判定条件とMP減少は各スキルに対して以下のように変更します。
・sub fight内
  $sp =~ /スキル/
    ↓
  $sp =~ /スキル/ && $mp >= 必要MP
  MP減少: $mp -= 必要MP;
  --------
  $psp =~ /スキル/
    ↓
  $psp =~ /スキル/ && $pmp >= 必要MP
  MP減少: $pmp -= 必要MP;
・sub fight_sub内
  $Ws =~ /スキル/
    ↓
  $Ws =~ /スキル/ && $Wmp >= 必要MP
  MP減少: $Wmp -= 必要MP;
  --------
  $Ls =~ /スキル/
    ↓
  $Ls =~ /スキル/ && $Lmp >= 必要MP
  MP減少: $Lmp -= 必要MP;

盗むスキル(Si)に関しては、MPの減少処理は「$Sidice -= $def_td」を行うときではなく「if ($sts !~ /Ns/) {〜}」の〜部分で行うほうが良いと思います。

> > NPCのスキルで判定する場合、改造方法の番外編2を以下のように変更すれば良いと思います。
> >   if ($tw ne $ptw) { push (@msg,"$pnmは現在ここには居ません"); $notfound = 1; return }
> >     ↓
> >   if ($tw ne $ptw && index($psp, 'Am') == -1) { push (@msg,"$pnmは現在ここには居ません"); $notfound = 1; return } # スキルを"Am"とした場合
>
> こちらの導入は接触はどの街でもできました。
> ありがとうございます。
> ここではかりん様配布の街移動判別オプションを導入していて
> ○×の番外編の方なのですが・・・
> ここを直すにはどうしたらよいのでしょうか・・。
> ×になったまま会えるので○にするにはどの辺を直せばよいですか??

ifの条件で「$tw eq $ptw」としていると思いますが、これを「$tw eq $ptw || index($psp, 'Am') != -1」にすれば良いはずです。
スレッド一覧


1583● Re[12]:副業追加について[ rien ] 2008 12/28 21:52
お返事ありがとうございます。
助かります。

スキルの方の詳しい説明ありがとうございます。
このとおりにやってみようと思います。
少し自分の力量以上なのかも・・と思ってはいるのですが
頑張ってやってみます。

街移動のほうは表示がきちんとされていました。
ほんとにありがとうございました。
このような初歩的な質問にいつも答えていただき感謝です。

今気づいたというか・・いつからそうなっていたのか
よく分からないエラーが出ていまして・・・
Sub Sagaの部分のBest Playerの部分で
IDも記載してたのですがこれが全部ID:0001となってしまっていて・・

■大富豪■
りえん☆[ID:0001]
所持金【48524G】

↑例えばこのような感じなのですが・・・
別のIDのキャラも0001になっているのですが・・・

print qq|<br>■$ricnam■<br><B>$rich</B>[ID:$id]<br>所持金【$bestmoneyG】| if $rich;

↑だと何か足りないですか??
すみません・・重ね重ね質問ばかりしてしまって・・。
スレッド一覧


1584● Re[13]:副業追加について[ moon ] 2008 12/28 22:17
> 今気づいたというか・・いつからそうなっていたのか
> よく分からないエラーが出ていまして・・・
> Sub Sagaの部分のBest Playerの部分で
> IDも記載してたのですがこれが全部ID:0001となってしまっていて・・
>
> ■大富豪■
> りえん☆[ID:0001]
> 所持金【48524G】
>
> ↑例えばこのような感じなのですが・・・
> 別のIDのキャラも0001になっているのですが・・・
>
> print qq|<br>■$ricnam■<br><B>$rich</B>[ID:$id]<br>所持金【$bestmoneyG】| if $rich;
>
> ↑だと何か足りないですか??
> すみません・・重ね重ね質問ばかりしてしまって・・。

$idをそのまま使用すると最後のIDが表示されます。
sub find_bestに大富豪などのIDを代入している箇所(例えば$hero_id = $id;と$rich_id = $id;のような処理)があると思いますのでその変数を$idの代わりに表示させれば良いです。
スレッド一覧


1585● Re[14]:副業追加について[ rien ] 2008 12/29 00:15
> $idをそのまま使用すると最後のIDが表示されます。
> sub find_bestに大富豪などのIDを代入している箇所(例えば$hero_id = $id;と$rich_id = $id;のような処理)があると思いますのでその変数を$idの代わりに表示させれば良いです。

お返事ありがとうございます。
ということは設置してからずっとIDは同じだったということですよね・・・
無事に表示させることができました。
自分で追加した分は表示がなかなかうまくできなくて
時間かかっちゃいましたけど
なんとかできました!
いつもありがとうございます。
スレッド一覧

CGIROOM