トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

Rate拡張

  • 青色は、改造箇所を示します。ファイル名: ルーチン名: 行番号 を示します。
  • 黒色文字は、「改造前の状態」を示します。
  • テキストボックスの中のプログラムを、該当の場所に上書きして下さい。

Rate拡張 Ver 1.00 ★★★★☆☆☆☆

Rateの計算式を拡張し、実際の強さに応じたRateが算出される様に修正します。
※この 改造を取り入れる際には、併せて 【 改造者表示 】 の改造を取り入れて頂けると嬉しいです。(非強制)

履歴
2007/03/03 Wikiにて公開      
2003/09/01 Version 1.00 公開 


本家版をはじめ、現状では「勝数・負け数」などのデータからRateを計算する方法が取られています。
しかしこの方法では、「弱い敵とだけ戦う」人と、「強い人と戦う」人だと、前者の方がRateが高くなるわけですが、そうして出されたRateは実際の強さとは関係無くなります。さらに、「弱い物虐め」を助長することにもなります。

当改造では、Rateの差を元に、より高いRateの人に打ち勝てば大きくRateが上がり、より低いRateの人に負けると大きくRateが下がるという、
実際の強さを極力反映する手法を採用しました。

実際の採用時は、Rate計算部をそれぞれ扱いやすいよう微調整、又は改造の上でのご利用をお奨めします。
(別にそのままでも問題は無いと思いますが)

本家版改造ポイント

◆改造ポイント01 Rate を示すフラグ $rt を追加します。※これがポイント。


sos2.cgi # Sub Make New # Line:520
$line = join('<>',$id,$Fm{'name'},$Fm{'pass'},$jbn,$jig,$jsp,'','',$jak,$jdd,$jhp,$jhp,0,0,'alive',0,0,0,$jmn,'',$jxi,time,'','','???','',$host,'',0,0,"\n");




sos2.cgi # Sub Get User # Line:2146-2148

($id,$nm,$ps,$jb,$ig,$sp,$bp,$bn,$ak,$dd,$hp,$xp,$ab,$db,
$av,$wn,$lz,$dt,$mn,$bg,$xi,$tm,$lf,$fe,$cm,$is,$ht,$fg,$rw,$kl) = split(/<>/,$_[0]);



sos2.cgi # Sub Get Partner # Line:2163
($pid,$pnm,$pps,$pjb,$pig,$psp,$pbp,$pbn,$pak,$pdd,$php,$pxp,$pab,$pdb,
$pav,$pwn,$plz,$pdt,$pmn,$pbg,$pxi,$ptm,$plf,$pfe,$pcm,$pis,$pht,$pfg,$prw,$pkl) = split(/<>/,$_[0]);




sos2.cgi # Sub User Out # Line:2173

$line = join('<>',$id,$nm,$ps,$jb,$ig,$sp,$bp,$bn,$ak,$dd,$hp,$xp,$ab,$db,
$av,$wn,$lz,$dt,$mn,$bg,$xi,$tm,$lf,$fe,$cm,$is,$ht,$fg,$rw,$kl,"\n");





sos2.cgi # Sub Partner Out # Line:2181

$pline = join('<>',$pid,$pnm,$pps,$pjb,$pig,$psp,$pbp,$pbn,$pak,$pdd,$php,$pxp,$pab,$pdb,
$pav,$pwn,$plz,$pdt,$pmn,$pbg,$pxi,$ptm,$plf,$pfe,$pcm,$pis,$pht,$pfg,$prw,$pkl,"\n");


◆改造ポイント02 Rate の計算ルーチンを修正します。


sos2.cgi # Sub Rate # Line:1866
# Sub Rate # の全文

◆改造ポイント03 Rate の呼び出し部を修正します。


sos2.cgi # Sub Fight # Line:1610-1611
if ($wn) { $rt = &rate($wn,$lz,$kl,$dt) } else { $rt = 0 }
if ($pwn) { $prt = &rate($pwn,$plz,$pkl,$pdt) } else { $prt = 0 }





sos2.cgi # Sub List In Order # Line:1931-1933

($id,$nm,$ps,$jb,$ig,$sp,$bp,$bn,$ak,$dd,$hp,$xp,$ab,$db,
$av,$wn,$lz,$dt,$mn,$bg,$xi,$tm,$lf,$fe,$cm,$is,$ht,$fg,$rw,$kl) = split(/<>/,$lstlines[$_]);
if ($wn) { $rt = &rate($wn,$lz,$kl,$dt) } else { $rt = 0 }



◆改造ポイント04 既存キャラデータを修正します。


全てのユーザーデータにフラグ追加します。 1000<> を追加して下さい。

◆改造ポイント05 ufs2.cgi の修正です。

dollEx版改造ポイント


ufs2.cgi # Sub Made From # Line607
$line = join('<>',$id,$Fm{'name'},$Fm{'ps1'},$jbn,$jig,$jsp,'','',$jak,$jdd,$jhp,$jhp,0,0,'alive',0,0,0,$jmn,'',$jxi,time,'','','???','','','SS',0,0,"\n");



ufs2.cgi # Sub Made Free # Line649
$line = join('<>',$id,$Fm{'name'},$Fm{'ps1'},$Fm{'job'},$Fm{'ig'},$Fm{'sp'},'','',$Fm{'ak'},$Fm{'dd'},$Fm{'xp'},$Fm{'xp'},0,0,'alive',0,0,0,$Fm{'mn'},'',$Fm{'xi'},time,'','',$Fm{'cm'},$Fm{'is'},'','NS',0,0,"\n");



ufs2.cgi # Sub Get User # Line951-952
($id,$nm,$ps,$jb,$ig,$sp,$bp,$bn,$ak,$dd,$hp,$xp,$ab,$db,
$av,$wn,$lz,$dt,$mn,$bg,$xi,$tm,$lf,$fe,$cm,$is,$ht,$fg,$rw,$kl) = split(/<>/,$_[0]);




ufs2.cgi # Sub User Out # Line961-962
$line = join('<>',$id,$nm,$ps,$jb,$ig,$sp,$bp,$bn,$ak,$dd,$hp,$xp,$ab,$db,
$av,$wn,$lz,$dt,$mn,$bg,$xi,$tm,$lf,$fe,$cm,$is,$ht,$fg,$rw,$kl,"\n");