[PR]ÃÚËÞ”Ô‘g•\
¡–é‚̔ԑgÁª¯¸

ÉÔ¶ñ¹ç¤Î½¤Àµ - Ver b2.0

ÀßÃÖ»Ù±ç¥Ú¡¼¥¸¤Ø

[Ver b1.4]¡¡ [Ver b1.3]¡¡ [Ver b1.2.1]¡¡ [Ver b1.1]¡¡ [Ver b1.0]¡¡

  1. ÀïÆ®´ØÏ¢¤ÎÉÔ¶ñ¹ç½¤Àµ
  2. ²Ùʪ´ØÏ¢¤ÎÉÔ¶ñ¹ç½¤Àµ
  3. ¥¢¥¤¥Æ¥à¥Ç¡¼¥¿¤ÎÀßÄê¤ÎÉÔ¶ñ¹ç½¤Àµ
  4. °Üư´ØÏ¢¤ÎÉÔ¶ñ¹ç½¤Àµ
  5. ¤½¤Î¾¤ÎÉÔ¶ñ¹ç½¤Àµ
  6. ¤Á¤ç¤Ã¤È¤·¤¿¤³¤È


  1. ÀïÆ®´ØÏ¢¤ÎÉÔ¶ñ¹ç½¤Àµ
    1. ÂпÍÀï°Ê³°¤Ç¤â¤É¤Á¤é¤«¤¬²ø²æ¤ò¤¹¤ë¤È¾¡ÇÔ¤¬·è¤·¤Æ¤·¤Þ¤¦
    2. ÅêÚ³Éð´ï¤ÇÀèÀ©¹¶·â¤ò¤¹¤ë¤È¥Þ¥¤¥Ê¥¹¥À¥á¡¼¥¸¤¬½Ð¤ë¤³¤È¤¬¤¢¤ë
    3. º¸¼êÉð´ï¡¦Êä½õÁõÈ÷¤¬²õ¤ì¤ë¤È¤­¡¢Âå¤ï¤ê¤Ë¼çÁõÈ÷¤¬²õ¤ì¤ë
    4. ¥¹¥­¥ë¡Ö¥¸¥ã¥°¥ê¥ó¥°¡×¤¬µ¡Ç½¤·¤Æ¤¤¤Ê¤¤
    5. ÅêÚ³Éð´ï¤Ç¤ÎÀèÀ©¤ÇÁê¼ê¤ÎÁõÈ÷¡¦¥¹¥­¥ë¤¬¤Û¤È¤ó¤É̵»ë¤µ¤ì¤Æ¤·¤Þ¤¦
    6. Éð´ï¤¬¤Ê¤¯¤Æ¤â¥¹¥­¥ë¡ÖϢ³ÀÚ¤ê¡×¤¬È¯À¸¤¹¤ë

    ÂпÍÀï°Ê³°¤Ç¤â¤É¤Á¤é¤«¤¬²ø²æ¤ò¤¹¤ë¤È¾¡ÇÔ¤¬·è¤·¤Æ¤·¤Þ¤¦ÉÔ¶ñ¹ç¤ò½¤Àµ¤·¤Þ¤¹¡£

    library/fight.cgi¤ò³«¤¯
    sub injury_check:
        $battleisover = 1 if !$F{dg};
    ¢­
        $battleisover = 1 if $F{md} eq 'fight_player';
    

    ²ø²æ¤Î¾õÂÖ¤¬¾¡ÇԤ˱ƶÁ¤¹¤ë¤Î¤Ïº£¤Î¤È¤³¤íÂпÍÀï¤À¤±¤ß¤¿¤¤¤Ê¤Î¤ÇÂпÍÀï¤Ç¤À¤±over

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ÅêÚ³Éð´ï¤ÇÀèÀ©¹¶·â¤ò¤¹¤ë¤È¥Þ¥¤¥Ê¥¹¥À¥á¡¼¥¸¤¬½Ð¤ë¤³¤È¤¬¤¢¤ëÉÔ¶ñ¹ç¤ò½¤Àµ¤·¤Þ¤¹¡£

    library/fight.cgi¤ò³«¤¯
    sub throw_weapon:
        $ADM -= $DGD;
    ¢­
        $ADM -= $DGD;
        $ADM = 0 if $ADM < 0;
    

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    º¸¼êÉð´ï¡¦Êä½õÁõÈ÷¤¬²õ¤ì¤ë¤È¤­¡¢Âå¤ï¤ê¤Ë¼çÁõÈ÷¤¬²õ¤ì¤ëÉÔ¶ñ¹ç¤ò½¤Àµ¤·¤Þ¤¹¡£

    ¤Ä¤¤¤Ç¤ËÁõÈ÷¤¬²õ¤ì¤Æ¤â½â¡¦³õ¥Ü¡¼¥Ê¥¹¤¬¾Ã¤¨¤Ê¤¤ÉÔ¶ñ¹ç¤â½¤Àµ¤·¤Þ¤¹¡£

    library/fight.cgi¤ò³«¤¯
    sub destruction_check:
    my  $V;
    ¢­
    my  $V;
    my  $T;
    
        $T = $e eq 'rh' && $S->{WO} == 3 ? 'lh' :
             $e eq 'rh' && $S->{WO} == 5 ? 'sb' : $e;
    
    sub destruction_check:
        return if $S->{$e} eq '';
    ¢­
        return if $S->{$T} eq '';
    
    sub destruction_check:
            undef %{$S->{$E}};
            $S->{$e} = '';
    ¤òºï½ü
    
    sub destruction_check:
            $S->{BI}{$e} = 1;
    ¢­
            undef %{$S->{$E}};
            $S->{$T} = '';
            $S->{BI}{$T} = 1;
    

    ¤¢¤ó¤Þ¤ê¥¹¥Þ¡¼¥È¤¸¤ã¤Ê¤¤¤«¤â¡£&get_equipment¤Ç$S->{Rh}{eq} = 'rh'¤ß¤¿¤¤¤Ê¤³¤È¤¹¤ë¤È¤«¡£

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ¥¹¥­¥ë¡Ö¥¸¥ã¥°¥ê¥ó¥°¡×¤¬µ¡Ç½¤·¤Æ¤¤¤Ê¤¤ÉÔ¶ñ¹ç¤ò½¤Àµ¤·¤Þ¤¹¡£

    library/fight.cgi¤ò³«¤¯
    sub change_weapon:
        elsif ($S->{WO} == 1 && $S->{Rh}{ql}{Th} && !$S->{SK}{Jg}) {
    ¢­
        elsif ($S->{WO} == 1 && $S->{Rh}{ql}{Th} && !$S->{Sk}{Jg}) {
    

    '{SK}' ¢ª '{Sk}'

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ÅêÚ³Éð´ï¤Ç¤ÎÀèÀ©¤ÇÁê¼ê¤ÎÁõÈ÷¡¦¥¹¥­¥ë¤¬¤Û¤È¤ó¤É̵»ë¤µ¤ì¤Æ¤·¤Þ¤¦ÉÔ¶ñ¹ç?¤ò½¤Àµ¤·¤Þ¤¹¡£

    Missing Link¤Ë¤ÆÆ±Íͤν¤Àµ¤¬¤¢¤ê¤Þ¤·¤¿¤Î¤Ç¤½¤Á¤é¤ò¡¼

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    Éð´ï¤¬¤Ê¤¯¤Æ¤â¥¹¥­¥ë¡ÖϢ³ÀÚ¤ê¡×¤¬È¯À¸¤¹¤ëÉÔ¶ñ¹ç¤ò½¤Àµ¤·¤Þ¤¹¡£

    library/fight.cgi¤ò³«¤¯
    sub concrete_battle:
            if ($A->{Sk}{Ss} && &skill_roll($A,$set::sSs,$A->{in} * 4)) {
    ¢­
            if ($A->{Sk}{Ss} && $A->{Rh}{nm} && $A->{WP} && &skill_roll($A,$set::sSs,$A->{in} * 4)) {
    

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ¡Ú¥È¥Ã¥×¤ØÌá¤ë¡Û



  2. ²Ùʪ´ØÏ¢¤ÎÉÔ¶ñ¹ç½¤Àµ
    1. ºîÀ®¤Ç¡¢¿åÉÓ¤ò»È¤Ã¤Æ¤âºîÀ®²ó¿ôʬ¸º¤é¤Ê¤¤
    2. ºîÀ®¤Ç¡¢¥°¥ì¡¼¥É¤ÎÀßÄꤵ¤ì¤Æ¤¤¤ëºîÀ®ÉʤΥ°¥ì¡¼¥É¤¬1¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦

    ºîÀ®¤Ç¡¢¿åÉÓ¤ò»È¤Ã¤Æ¤âºîÀ®²ó¿ôʬ¸º¤é¤Ê¤¤ÉÔ¶ñ¹ç?¤ò½¤Àµ¤·¤Þ¤¹¡£

    library/consumption.cgi¤ò³«¤¯
    sub consumption_check:
            if (--$Si->{db} <= 0) {
    ¢­
            $V ||= 1;
            $Si->{db} -= $V;
            if ($Si->{db} <= 0) {
    

    »ÅÍͤ«¤É¤¦¤«¤è¤¯¤ï¤«¤ó¤Ê¤¤¤Î¤ÇÊüÃÖ¤·¤Æ¤¿¤±¤ÉËâË¡ÉӤߤ¿¤¤¤Ê¤Î¤Ç°ì±þ

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ºîÀ®¤Ç¡¢¥°¥ì¡¼¥É¤ÎÀßÄꤵ¤ì¤Æ¤¤¤ëºîÀ®ÉʤΥ°¥ì¡¼¥É¤¬1¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦ÉÔ¶ñ¹ç¤ò½¤Àµ¤·¤Þ¤¹¡£

    library/compose.cgi¤ò³«¤¯
    sub compose_after:
        $I->{Gd} ||= 1;
    ¢­
        $I->{Gd} ||= $Ui->{dt}{gd};
        $I->{Gd} ||= 1;
    

    ¥°¥ì¡¼¥É¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤ÏÀßÄêÃͤ¬²¼¸Â¤Ë¤Ê¤ë¤è¤¦¤Ë
    ¢¨ Missing Link¤ÎÀ÷ÎÁ¤ò»È¤Ã¤ÆÉÛ¤ò¿¥¤Ã¤Æ¤â¥°¥ì¡¼¥É¤¬ÊѲ½¤·¤Ê¤¤ÉÔ¶ñ¹ç¤Î½¤Àµ ¤ÈÈï¤Ã¤Æ¤Þ¤¹¤¬¡¢Ä´ºÞ¤È¼£ÎŤνàÈ÷¤Ë¤âƱ¤¸ÌäÂ꤬¤¢¤ë¤Î¤Ç¤³¤Î½¤Àµ¤â¤¢¤ï¤»¤Æ¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡£

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ¡Ú¥È¥Ã¥×¤ØÌá¤ë¡Û



  3. ¥¢¥¤¥Æ¥à¥Ç¡¼¥¿¤ÎÀßÄê¤ÎÉÔ¶ñ¹ç½¤Àµ
    1. ÀßÄê¥ß¥¹¤È»×¤ï¤ì¤ë²Õ½ê¤ò½¤Àµ

    ÀßÄê¥ß¥¹¤È»×¤ï¤ì¤ë²Õ½ê¤ò½¤Àµ¤·¤Þ¤¹¡£

    item/roastedfood.cgi¤ò³«¤¯

    ¥í¡¼¥¹¥È¥Á¥­¥ó¤Î²èÁü¤¬É½¼¨¤µ¤ì¤Ê¤¤¡£¤Ä¤¤¤Ç¤ËÅý°ì¡£Èù̯¤ÊÌäÂê?
    Missing Link¤Ë¤Æ¤è¤ê¾ÜºÙ¤Ê½¤Àµ¤¬¤¢¤ê¤Þ¤·¤¿¤Î¤Ç¤½¤Á¤é¤ò¡¼

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ¡Ú¥È¥Ã¥×¤ØÌá¤ë¡Û



  4. °Üư´ØÏ¢¤ÎÉÔ¶ñ¹ç½¤Àµ½¤Àµ
    1. ¾ë¤Ç¡¢¥¯¥é¥¹¥Á¥§¥ó¥¸¤Î¥Ü¡¼¥Ê¥¹¤ÇǽÎÏÃͤξå¸Â°Ê¾å¤Ë¥¹¥Æ¡¼¥¿¥¹¤ò¥¢¥Ã¥×¤Ç¤­¤ë
    2. °Ç»Ô¤Ç¡¢ºß¸Ë¤¬¤Ê¤¤¤È¤­¤ËÂçÎ̤˥¢¥¤¥Æ¥à¤òÇä¤ë¤Èºß¸Ë¾å¸Â¤òͤ¨¤Æ¤·¤Þ¤¦
    3. Àî¤Ç¡¢¿å¤òµâ¤à¤È¤­¶õ¤Î¿åÉÓ¤¬²õ¤ì¤Ê¤¤

    ¾ë¤Ç¡¢¥¯¥é¥¹¥Á¥§¥ó¥¸¤Î¥Ü¡¼¥Ê¥¹¤ÇǽÎÏÃͤξå¸Â°Ê¾å¤Ë¥¹¥Æ¡¼¥¿¥¹¤ò¥¢¥Ã¥×¤Ç¤­¤ëÉÔ¶ñ¹ç¤ò½¤Àµ¤·¤Þ¤¹¡£

    library/castle.cgi¤ò³«¤¯
    sub castle_after:
                $I->{$_} += $L->{$_};
                &reload_gage($_,'F');
                &M("$set::lab{$_}¤¬ $L->{$_} Áý²Ã¤·¤Þ¤·¤¿¡£");
    ¢­
                $Y = $I->{tc} + $I->{st} + $I->{dx} + $I->{in} + $I->{cn};
                if ($Y >= $set::tsx) {
                    $M += $L->{$_};
                    next;
                }
                $Y = $I->{$_} + $L->{$_} > $set::stx ? $I->{$_} + $L->{$_} - $set::stx : 0;
                $L->{$_} -= $Y; 
                if ($L->{$_}) {
                    $I->{$_} += $L->{$_};
                    &reload_gage($_,'F');
                    &M("$set::lab{$_}¤¬ $L->{$_} Áý²Ã¤·¤Þ¤·¤¿¡£");
                }
                if ($Y) {
                    $I->{lb} += $Y;
                    &M("$set::lab{$_}¤ÏºÇÂç¤Ë㤷¤Æ¤¤¤ë¤¿¤á¡¢Âå¤ï¤ê¤Ë¥Ü¡¼¥Ê¥¹¥Ý¥¤¥ó¥È¤¬ $Y Áý²Ã¤·¤Þ¤·¤¿¡£");
                }
    
    sub castle_after:
            if ($L->{st}) {
                $I->{Mbg} += $L->{st};
                &M("»ý¤Æ¤ë¥¢¥¤¥Æ¥à¤Î½ÅÎ̤¬ $L->{st}$set::wgt Áý²Ã¤·¤Þ¤·¤¿¡£");
            }
    ¢­
            if ($L->{st}) {
                $I->{Mbg} += $L->{st};
                &M("»ý¤Æ¤ë¥¢¥¤¥Æ¥à¤Î½ÅÎ̤¬ $L->{st}$set::wgt Áý²Ã¤·¤Þ¤·¤¿¡£");
            }
            if ($M) {
                $I->{lb} += $M;
                &M("Á´ÂÎǽ\ÎÏÃͤ¬¾å¸Â¤Ë㤷¤Æ¤¤¤ë¤¿¤á¡¢Âå¤ï¤ê¤Ë¥Ü¡¼¥Ê¥¹¥Ý¥¤¥ó¥È¤¬ $M Áý²Ã¤·¤Þ¤·¤¿¡£");
            }
    

    ÀÚ¤ê¼Î¤Æ¤ë¤Î¤Ï¤â¤Ã¤¿¤¤¤Ê¤¤¤«¤È»×¤¤¡¢¾å¸Â¤òͤ¨¤¿Ê¬¤Ï¥Ü¡¼¥Ê¥¹¥Ý¥¤¥ó¥È¤Ë¿¶¤êʬ¤±¤Æ¤ß¤Þ¤·¤¿¡£

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    °Ç»Ô¤Ç¡¢ºß¸Ë¤¬¤Ê¤¤¤È¤­¤ËÂçÎ̤˥¢¥¤¥Æ¥à¤òÇä¤ë¤Èºß¸Ë¾å¸Â¤òͤ¨¤Æ¤·¤Þ¤¦ÉÔ¶ñ¹ç¤ò½¤Àµ¤·¤Þ¤¹¡£

    library/sell.cgi¤ò³«¤¯
    sub sell_after:
                $Ii->{sp} = $Ii->{rs} = '';
       		    $UI{$id} = {%$Ii};
    ¢­
                $Ii->{sp} = $Ii->{rs} = '';
       		    $UI{$id} = {%$Ii};
                &change_status($UI{$id},'qn',0,0,$set::mix);
    

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    Àî¤Ç¡¢¿å¤òµâ¤à¤È¤­¶õ¤Î¿åÉÓ¤¬²õ¤ì¤Ê¤¤ÉÔ¶ñ¹ç¤ò½¤Àµ¤·¤Þ¤¹¡£

    library/water.cgi¤ò³«¤¯
    sub water:
            &M("$Ii->{nm}¤¬²õ¤ì¤Þ¤·¤¿¡£");
    ¢­
            &M("$Ii->{nm}¤¬²õ¤ì¤Þ¤·¤¿¡£");
            $Ii = $I->{Bg}[$F{wt}];
    

    $I->{Bg}[$F{wt}] = $FI{$Ii->{id}};¤Ç¥ê¥Õ¥¡¥ì¥ó¥¹¤¬²õ¤ì¤ë¤Î¤Ç¤³¤³¤Ç·Ò¤®¤Ê¤ª¤·¡¼¡£
    ¤³¤³¤Ç²õ¤ì¤ë¤Î¤Ç¥á¥Ã¥»¡¼¥¸¤­¤ì¤¤¤Ëɽ¼¨¤µ¤ì¤ë¤Î¤Ç¤³¤ó¤Ê´¶¤¸¤Ç¡£

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ¡Ú¥È¥Ã¥×¤ØÌá¤ë¡Û



  5. ¥Þ¥Ë¥å¥¢¥ë¤Î½¤Àµ
    1. ¥¢¥¤¥Æ¥à¤Î½¤Àµ

    ¥¢¥¤¥Æ¥à¤Î½¤Àµ

    manual/weapon.html¤ò³«¤¯
      <tr> 
        <td nowrap>¥Ö¡¼¥á¥é¥ó</td>
          :
          :
        <td nowrap>ÌÚ¤ÎËÀ</td>
    ¢­
      <tr> 
        <td nowrap>¥Ö¡¼¥á¥é¥ó</td>
          :
          :
        <td nowrap>ÌÚ¤ÎÈÄ</td>
    
    manual/item01.html¤ò³«¤¯
      <tr> 
        <td nowrap>¥µ¥È¥¦¥­¥Ó</td>
          :
          :
        <td></td>
      </tr>
    ¢­
      <tr> 
        <td nowrap>¾®Çþ</td>
        <td><img src="../itemimage/wheat.gif" width=16 height=16></td>
        <td nowrap>Mt</td>
        <td nowrap>Wheat</td>
        <td nowrap>&nbsp;</td>
        <td>ÀᱤÇÈÔ¤¤¤Æ¾®ÇþÊ´¤Ë¤¹¤ë¡£</td>
      </tr>
      <tr>
        <td nowrap>¥µ¥È¥¦¥­¥Ó</td>
          :
          :
        <td></td>
      </tr>
    
      <tr> 
        <td nowrap>¥µ¥½¥ê</td>
        <td><img src="../itemimage/scorpion.gif" width=16 height=16></td>
        <td nowrap>Mt</td>
        <td nowrap>Scorpion</td>
        <td nowrap></td>
        <td></td>
      </tr>
    ¢­
      <tr>
        <td nowrap>¥Ü¥¿¥ó</td>
        <td><img src="../itemimage/buttons.gif" width=16 height=16></td>
        <td nowrap>Mt</td>
        <td nowrap>Buttons</td>
        <td></td>
      </tr>
      <tr>
        <td nowrap>·¿»æ</td>
        <td><img src="../itemimage/dresspattern.gif" width=16 height=16></td>
        <td nowrap>Mt</td>
        <td nowrap>Dresspattern</td>
        <td></td>
      </tr>
      <tr> 
        <td nowrap>ÉÛÀÚ¤ì</td>
        <td><img src="../itemimage/cutofcloth.gif" width=16 height=16></td>
        <td nowrap>Mt</td>
        <td nowrap>Pieceofcloth</td>
        <td nowrap></td>
        <td></td>
      </tr>
    
      <tr> 
        <td nowrap>¥¤¡¼¥¹¥È¶Ý</td>
          :
          :
        <td></td>
      </tr>
    ¢­
      <tr> 
        <td nowrap>¥¤¡¼¥¹¥È¶Ý</td>
          :
          :
        <td></td>
      </tr>
      <tr> 
        <td nowrap>ÀÖ¤¤ÈëÌô</td>
        <td><img src="../itemimage/redliquid.gif" width=16 height=16></td>
        <td nowrap>Mt</td>
        <td nowrap>Redpotion</td>
        <td nowrap>ÀÖ¤¤±ÕÂÎ+¥¾¥ó¥Ó¤Î¿´Â¡</td>
        <td></td>
      </tr>
    

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ¡Ú¥È¥Ã¥×¤ØÌá¤ë¡Û



  6. ¤½¤Î¾¤Î½¤Àµ
    1. ¥¤¥á¡¼¥¸²èÁü¤ÎÊѹ¹¤ÇÊѹ¹ÎÁ¶â¤¬É½¼¨¤µ¤ì¤Ê¤¤
    2. ¥ª¡¼¥Ö¤Î¥È¥ì¡¼¥É¤Ç¡¢¥È¥ì¡¼¥É¸å¤Î¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Ê¤¤
    3. Äê´üÁ¥¤ÎͽÌó¼Ô¤¬2¿Í°Ê¾å¤¤¤ë¤È¹Ò³¤¤Ç¤­¤Ê¤¤
    4. ¾¤ÎÃÏ¤Ø°ÜÆ°¤Ç¡¢¥É¥ì¥¹¤¬²õ¤ì¤Æ¤â²Ùʪ¤«¤é¾Ã¤¨¤Ê¤¤
    5. ³¤Â±¤ÎÅç¤Çõº÷¤¬½ÐÍè¤Ê¤¤¤¿¤á¡¢¹Ò³¤¤Î°Ù¤Î½ê»ý¶â¤¬ÉÔ­¤¹¤ë¤È¿Èư¤­¤¬¼è¤ì¤Ê¤¯¤Ê¤ë
    6. rand(x)+y¤Î¥À¥¤¥¹·×»»¤Ç¡¢x¤¬1°Ê²¼¤Î¾ì¹ç¤Ë+y¤¬Äɲ䵤ì¤Ê¤¤
    7. ¥ì¥Ù¥ë¥¢¥Ã¥×¥Ü¡¼¥Ê¥¹¤Ç¡¢Á´ÂÎǽÎÏÃͤξå¸Â¤Ë㤷¤Æ¤¤¤ë¤È¥Ü¡¼¥Ê¥¹¥Ý¥¤¥ó¥È¤ò´¹¶â¤Ç¤­¤Ê¤¤
    8. ¥ì¥Ù¥ë¥¢¥Ã¥×¥Ü¡¼¥Ê¥¹¤Ç¤Îɽ¼¨½¤Àµ
    9. ¥¹¥Æ¡¼¥¿¥¹¤òÊÑÆ°¤µ¤»¤¿¸å¤Î¥Ð¡¼¤ÎŤµ¤¬Àµ¤·¤¯¤Ê¤¤
    10. ¥Õ¥ì¥ó¥ÉÀßÄê¤Ç¤Îɽ¼¨½¤Àµ
    11. ̵µ¤ÎϾõÂÖ¤ÇVIT¾ÃÈñÎ̤¬1Áý¤¨¤º¤Ë1¸º¤Ã¤Æ¤·¤Þ¤¦

    ¥¤¥á¡¼¥¸²èÁü¤ÎÊѹ¹¤ÇÊѹ¹ÎÁ¶â¤¬É½¼¨¤µ¤ì¤Ê¤¤ÉÔ¶ñ¹ç¤ò½¤Àµ¤·¤Þ¤¹¡£

    library/set.cgi¤ò³«¤¯
    # ¤½¤Î¾ Others ###################################### #
    $fcp = 500;                  # ¥¤¥á¡¼¥¸²èÁü¤ÎÊѹ¹ÎÁ¶â
    

    ÄɲÃ

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ¥ª¡¼¥Ö¤Î¥È¥ì¡¼¥É¤Ç¡¢¥È¥ì¡¼¥É¸å¤Î¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Ê¤¤ÉÔ¶ñ¹ç¤ò½¤Àµ¤·¤Þ¤¹¡£

    library/trade.cgi¤ò³«¤¯
        &partner('',"$set::orb{x}¤ò¥È¥ì¡¼¥É¤·¤Þ¤·¤¿");
    ¢­
        &get_words($U);
        &partner($U->{w10},"$set::orb{x}¤ò¥È¥ì¡¼¥É¤·¤Þ¤·¤¿");
    

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    Äê´üÁ¥¤ÎͽÌó¼Ô¤¬2¿Í°Ê¾å¤¤¤ë¤È¹Ò³¤¤Ç¤­¤Ê¤¤ÉÔ¶ñ¹ç¤ò½¤Àµ¤·¤Þ¤¹¡£

    library/main.cgi¤ò³«¤¯

    Missing Link¤Ë¤Æ¤è¤ê¾ÜºÙ¤Ê½¤Àµ¤¬¤¢¤ê¤Þ¤·¤¿¤Î¤Ç¤½¤Á¤é¤ò¡¼

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ¾¤ÎÃÏ¤Ø°ÜÆ°¤Ç¡¢¥É¥ì¥¹¤¬²õ¤ì¤Æ¤â²Ùʪ¤«¤é¾Ã¤¨¤Ê¤¤ÉÔ¶ñ¹ç¤ò½¤Àµ¤·¤Þ¤¹¡£

    library/transfer.cgi¤ò³«¤¯
    sub dress_bonus:
        &break_check($I,'bd');
    ¢­
        &get_item($I);
        &set_item($I) if &break_check($I,'bd');
    

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ³¤Â±¤ÎÅç¤Çõº÷¤¬½ÐÍè¤Ê¤¤¤¿¤á¡¢¹Ò³¤¤Î°Ù¤Î½ê»ý¶â¤¬ÉÔ­¤¹¤ë¤È¿Èư¤­¤¬¼è¤ì¤Ê¤¯¤Ê¤ëÉÔ¶ñ¹ç¤ò½¤Àµ¤·¤Þ¤¹¡£

    data/find_item_catalog.cgi¤ò³«¤¯

    ¥È¥ë¥à¥É¥¢¸ø¹ñ¤Îõº÷¥Ç¡¼¥¿¤òÄɲà Missing Link¤Ë¤ÆÆ±Íͤν¤Àµ¤¬¤¢¤ê¤Þ¤·¤¿¤Î¤Ç¤½¤Á¤é¤ò¡¼

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    rand(x)+y¤Î¥À¥¤¥¹·×»»¤Ç¡¢x¤¬1°Ê²¼¤Î¾ì¹ç¤Ë+y¤¬Äɲ䵤ì¤Ê¤¤ÉÔ¶ñ¹ç¤ò½¤Àµ¤·¤Þ¤¹¡£

    library/base.cgi¤ò³«¤¯
    sub roll_dice:
        if ($dice < 2) { return 1 }
        while ($roll--) {
            $V += int(rand($dice)) + 1;
        }
    ¢­
        if ($dice < 2) { $V = 1 }
        else {
            while ($roll--) {
                $V += int(rand($dice)) + 1;
            }
        }
    

    »ÅÍͤ«¤Ê¡¼¤È»×¤Ã¤Æ¤Þ¤·¤¿¤¬¡¢ÀïÆ®»þsub basic_offense¤Ç$S->{AT}¤¬$S->{tc}¤è¤ê1Â礭¤¤¤È¤­¤Ë¡¢¤³¤ÎÉÔ¶ñ¹ç¤¬±Æ¶Á¤·¤Æ¹¶·âÎÏ1¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤Î¤Ç½¤Àµ¡£

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ¥ì¥Ù¥ë¥¢¥Ã¥×¥Ü¡¼¥Ê¥¹¤Ç¡¢Á´ÂÎǽÎÏÃͤξå¸Â¤Ë㤷¤Æ¤¤¤ë¤È¥Ü¡¼¥Ê¥¹¥Ý¥¤¥ó¥È¤ò´¹¶â¤Ç¤­¤Ê¤¤ÉÔ¶ñ¹ç¤ò½¤Àµ¤·¤Þ¤¹¡£

    library/lebelup.cgi¤ò³«¤¯
    sub levelup_after:
        if ($V >= $set::tsx) {
            if ($set::xvu) {
                $I->{Mvt} += $set::xvu;
                &reload_gage('vt','V');
                &M("Á´ÂÎǽÎÏÃͤ¬¾å¸Â¤Ë㤷¤¿°Ù¡¢¤³¤ì°Ê¾åǽÎÏÃͤò¾å¤²¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£Âå¤ï¤ê¤Ë$set::lab{vt}¤¬$set::xvuÁý²Ã¤·¤Þ¤¹¡£");
            }
            else {
                &say("Á´ÂÎǽÎÏÃͤ¬¾å¸Â¤Ë㤷¤Þ¤·¤¿¡£¤³¤ì°Ê¾å¤Ï¾å¤²¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£",'levelup_before');
            }
        }
        elsif ($F{tp} eq 'gl') {
            $I->{gl} += $set::xmu;
            &reload_data('gl');
            &M("$set::lab{gl}¤¬$set::xmuÁý²Ã¤·¤Þ¤·¤¿¡£");
        }
    ¢­
        if ($F{tp} eq 'gl') {
            $I->{gl} += $set::xmu;
            &reload_data('gl');
            &M("$set::lab{gl}¤¬$set::xmuÁý²Ã¤·¤Þ¤·¤¿¡£");
        }
        elsif ($V >= $set::tsx) {
            if ($set::xvu) {
                $I->{Mvt} += $set::xvu;
                &reload_gage('vt','V');
                &M("Á´ÂÎǽÎÏÃͤ¬¾å¸Â¤Ë㤷¤¿°Ù¡¢¤³¤ì°Ê¾åǽÎÏÃͤò¾å¤²¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£Âå¤ï¤ê¤Ë$set::lab{vt}¤¬$set::xvuÁý²Ã¤·¤Þ¤¹¡£");
            }
            else {
                &say("Á´ÂÎǽÎÏÃͤ¬¾å¸Â¤Ë㤷¤Þ¤·¤¿¡£¤³¤ì°Ê¾å¤Ï¾å¤²¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£",'levelup_before');
            }
        }
    

    ¾ò·ïʬ´ô¤Î½ç½ø¤òÆþ¤ìÂØ¤¨¡£

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ¥ì¥Ù¥ë¥¢¥Ã¥×¥Ü¡¼¥Ê¥¹¤Ç¤Îɽ¼¨¤ò½¤Àµ¤·¤Þ¤¹¡£

    library/lebelup.cgi¤ò³«¤¯
    sub levelup_before:
        <tt>¸½ºß¤Î¥Ý¡¼¥Ê¥¹¥Ý¥¤¥ó¥È¡§$I->{lb}</tt><br>
    ¢­
        <tt>¸½ºß¤Î¥Ü¡¼¥Ê¥¹¥Ý¥¤¥ó¥È¡§$I->{lb}</tt><br>
    

    ¥Ý¡¼¥Ê¥¹¥Ý¥¤¥ó¥È ¢ª ¥Ü¡¼¥Ê¥¹¥Ý¥¤¥ó¥È

    sub levelup_before:
        <input type=radio class=radio name=tp value=gl> $set::lab{gl}¤ò$set::xmuÁý¤ä¤¹<br>
    ¢­
        <input type=radio class=radio name=tp value=gl> $set::lab{gl}¤ò $set::xmu$set::mny Áý¤ä¤¹<br>
    
    sub levelup_after:
            &M("$set::lab{gl}¤¬$set::xmuÁý²Ã¤·¤Þ¤·¤¿¡£");
    ¢­
            &M("$set::lab{gl}¤¬ $set::xmu$set::mny Áý²Ã¤·¤Þ¤·¤¿¡£");
    

    ¤»¤Ã¤«¤¯Ä̲ߤÎÀßÄê($set::mny)¤¬¤¢¤ë¤Î¤Ç¡£

    sub levelup_after:
    ǽÎÏ
    ¢­
    ǽ\ÎÏ
    

    ʸ»ú²½¤±¤·¤Æ¤·¤Þ¤¦¡£3²Õ½êÁ´¤ÆÃÖ¤­´¹¤¨¡£

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ¥¹¥Æ¡¼¥¿¥¹¤òÊÑÆ°¤µ¤»¤¿¸å¤Î¥Ð¡¼¤ÎŤµ¤¬Àµ¤·¤¯¤Ê¤¤ÉÔ¶ñ¹ç¤ò½¤Àµ¤·¤Þ¤¹¡£

    javascript/Reload.js¤ò³«¤¯
    function FixedGage:
            val *= 2;
    ¢­
            val *= 3;
    

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ¥Õ¥ì¥ó¥ÉÀßÄê¤Ç¤Îɽ¼¨¤ò½¤Àµ¤·¤Þ¤¹¡£

    library/friends.cgi¤ò³«¤¯
    sub friends_after:
                &say('ÅÐÏ¿¤ÏºÇÂç$set::frx̾¤Þ¤Ç¤Ç¤¹','friends_before');
    ¢­
                &say("ÅÐÏ¿¤ÏºÇÂç$set::frx̾¤Þ¤Ç¤Ç¤¹",'friends_before');
    

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ̵µ¤ÎϾõÂÖ¤ÇVIT¾ÃÈñÎ̤¬1Áý¤¨¤º¤Ë1¸º¤Ã¤Æ¤·¤Þ¤¦ÉÔ¶ñ¹ç¤ò½¤Àµ¤·¤Þ¤¹¡£

    library/base.cgi¤ò³«¤¯
    sub friends_after:
        $V += 1 if $T eq 'vt' && $S->{Cd}{En} && $V < 0;
    ¢­
        $V -= 1 if $T eq 'vt' && $S->{Cd}{En} && $V < 0;
    

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ¡Ú¥È¥Ã¥×¤ØÌá¤ë¡Û



  7. ¤Á¤ç¤Ã¤È¤·¤¿¤³¤È
    1. ¥¤¥ó¥Õ¥©¥á¡¼¥·¥ç¥óºîÀ®¤Çʸ»ú¼ÂÂλ²¾È¤¬»È¤¨¤ë¤è¤¦¤Ë
    2. ¥Û¡¼¥à¥Ú¡¼¥¸¤ËÌá¤ë¥ê¥ó¥¯
    3. Spetial Thanks¤Î¥¢¥ó¥«¡¼¤ò̵¸ú¤Ë
    4. »àË´¤·¤Æ¤¤¤ë¤È¤­¤ÏVIT¤ò²óÉü¤·¤Ê¤¤¤è¤¦¤Ë
    5. ÀïÆ®»þ¤Î¥á¥Ã¥»¡¼¥¸¤ò¤Á¤ç¤Ã¤ÈÀ°·Á
    6. ÀÜ¿¨¤·¤¿Áê¼ê¤¬¥í¥°¥¤¥óÃæ¤Î¾ì¹ç¤ËÌá¤ë¥Ü¥¿¥ó
    7. ¥â¥ó¥¹¥¿¡¼¤Î½Ð¤ëÃϰè¤Ç¤ª¶â¤ò½¦¤¨¤ë¤è¤¦¤Ë
    8. Âѵ×Îϸº¾¯
    9. ¶ä¹Ô¤Ë»ØÄê¸Ä¿ô¼è°ú/¶ä¹Ô¼«Æ°À°Íýµ¡Ç½ÄɲÃ
    10. ¥¢¥¤¥Æ¥à¤Î¹ØÆþ¥Õ¥©¡¼¥à¤òÅý°ì
    11. »þ´Ö·Ð²á¤ÇºÆÀï²Äǽ¤Ë
    12. ÇÀ¾ì¤Ç¤âAPP¤Ë¤è¤Ã¤ÆÈÎÇä²Á³Ê¤¬ÊÑÆ°¤¹¤ë¤è¤¦¤Ë
    13. ¥ª¡¼¥Ö¤Î½ê»ý¸Ä¿ô¤È­¤ê¤Ê¤¤¥ª¡¼¥Ö¤òɽ¼¨
    14. Ëɶñ¥ê¥¹¥È¤ËÁõÈ÷¡¦ºîÀ®¤ÎɬÍ×ǽÎÏÃͤò·ÇºÜ
    15. Ê£¿ô¥ª¡¼¥Ö¥È¥ì¡¼¥É
    16. ¤¤¤Ä¤â¤Î2ÇܺîÀ®¤ËÀ®¸ù¤·¤¿¤é³ÍÆÀ·Ð¸³Ãͤâ2ÇܤË
    17. ÅêÚ³Éð´ï¤Ç¤ÎÀèÀ©¹¶·â¤Î¥À¥á¡¼¥¸¤ò¸º¾¯
    18. ¥À¥ó¥¸¥ç¥ó¤Ç¡¢²ÙʪÂÞ¤«¤é¡ÖÁ´¤Æ¤ò¥Ñ¥Ã¥¯¤¹¤ë¡×¤òÁªÂò¤Ç¤­¤ë¤è¤¦¤Ë
    19. ¥Õ¥ì¥ó¥É¤Î¸½ºßÃϤòÃϿޤËɽ¼¨
    20. ¥°¥ì¡¼¥É¤òʸ»ú¤Çɽ¼¨
    ÉÔ¶ñ¹ç¤Ç¤Ï¤Ê¤¤¤±¤É¤ä¤Ã¤Æ¤ß¤¿¤³¤È¤Ç¤¹¡£

    ¥¤¥ó¥Õ¥©¥á¡¼¥·¥ç¥óºîÀ®¤Çʸ»ú¼ÂÂλ²¾È¤¬»È¤¨¤ë¤è¤¦¤Ë(ÌäÂ꤬µ¯¤³¤ê¤½¤¦¤Ê¤Î¤Ç¤ä¤é¤Ê¤¤¤Û¤¦¤¬¤¤¤¤¤«¤â)

    master.cgi¤ò³«¤¯
    sub edit_information:
        $t1 =~ s/<br>/\n/g;
    ¢­
        $t1 =~ s/<br>/\n/g;
        $t1 =~ s/&/&amp;/g;
    
    sub make_information:
        $F{in} =~ s/&lt;/</g;
        $F{in} =~ s/&gt;/>/g;
    ¢­
        $F{in} =~ s/&lt;/</g;
        $F{in} =~ s/&gt;/>/g;
        $F{in} =~ s/&amp;/&/g;
    
    library/base.cgi¤ò³«¤¯
    sub decode:
            $V =~ s/</&lt;/g;
            $V =~ s/>/&gt;/g;
    ¢­
            $V =~ s/&/&amp;/g;
            $V =~ s/</&lt;/g;
            $V =~ s/>/&gt;/g;
    

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ¥Û¡¼¥à¥Ú¡¼¥¸¤ËÌá¤ë¥ê¥ó¥¯¤¬¤Ê¤¤¤è¤¦¤Êµ¤¤¬¤·¤¿¤Î¤Ç¡£

    library/rights.cgi¤ò³«¤¯
    sub rights:
        print qq|<br>Edit¡§$set::edt\n| if $set::edt;
    ¢­
        print qq|<br><a href="$set::rtn">Edit¡§$set::edt</a>\n| if $set::edt;
    

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    Spetial Thanks¤Î¥¢¥ó¥«¡¼¤ò̵¸ú¤Ë¡£

    library/rights.cgi¤ò³«¤¯
    sub rights:
        print qq|<a href="#" onClick="GetView('creators')">$creators_label</a>\n| if !$set::stv;
    ¢­
        print qq|<a href="#" onClick="GetView('creators');return false">$creators_label</a>\n| if !$set::stv;
    

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    »àË´¤·¤Æ¤¤¤ë¤È¤­¤ÏVIT¤ò²óÉü¤·¤Ê¤¤¤è¤¦¤Ë¡£

    library/main.cgi¤ò³«¤¯
    sub main:
        # VIT¤Î²óÉü
        $I->{Vt}  = int((time - $precode) / $set::rcv) / 10;
        $I->{vt} += $I->{Vt};
        $I->{vt}  = $I->{Mvt} if $I->{vt} > $I->{Mvt};
    ¢­
        # VIT¤Î²óÉü
        if ($I->{da} ne 'Dd' && $set::rcv) {
            $I->{Vt}  = int((time - $precode) / $set::rcv) / 10;
            $I->{vt} += $I->{Vt};
            $I->{vt}  = $I->{Mvt} if $I->{vt} > $I->{Mvt};
        }
    

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ÀïÆ®»þ¤Î¥á¥Ã¥»¡¼¥¸¤ò¤Á¤ç¤Ã¤ÈÀ°·Á¤·¤Æ¤ß¤ë¡£

    library/fight.cgi¤ò³«¤¯
    sub fight_player:
            &M("$I->{Nm}¤¬Ë½\Áö¤·¤¿¡ª");
    ¢­
            &M("$I->{Nm}¤¬Ë½\Áö¤·¤¿¡ª");
            &M();
    
    sub fight_player:
            &concrete_battle($A,$D,'¤Î¹¶·â¡£');
            &concrete_battle($D,$A,'¤Î¹¶·â¡£');
    ¢­
            &concrete_battle($A,$D,'¤Î¹¶·â¡£');
            &concrete_battle($D,$A,'¤Î¹¶·â¡£');
            &M();
    
    sub fight_player:
            &concrete_battle($A,$D,'¤Î¥«¥¦¥ó¥¿¡¼¡ª');
    ¢­
            &concrete_battle($A,$D,'¤Î¥«¥¦¥ó¥¿¡¼¡ª');
            &M();
    
    sub first_battle:
        if ($S->{Sk}{Sa}) {
            &concrete_battle($S,$O,'¤Ë¤è¤ë°ÇƤ¤Á¡ª',1);
        }
        elsif ($V1) {
            &initiative($V1);
            if ($A->{Rh}{cl} eq 'Bo') {
                &concrete_battle($A,$D,'¤ÎÀèÀ©¹¶·â¡ª',1);
            }
        }
        elsif ($V2) {
            &initiative($V2);
            &throw_weapon($A,$D,"¤Ï$A->{Rh}{nm}¤òÅꤲ¤¿¡ª",1);
        }
        elsif ($V3) {
            &initiative($V3);
            if (&skill_roll($A,$set::sQg,$A->{in} * 3)) {
                &concrete_battle($A,$D,"¤Ï$SK{Qg}¤òÊü¤Ã¤¿¡ª",1);
            }
        }
        elsif ($V4) {
            &initiative($V4);
            if (&skill_roll($A,$set::sQd,$A->{in} * 3)) {
                &concrete_battle($A,$D,"¤Î$SK{Qd}¡ª",1);
                $V5 = $V4 * -1;
                $set::frd--;
            }
        }
    ¢­
        if ($S->{Sk}{Sa}) {
            &concrete_battle($S,$O,'¤Ë¤è¤ë°ÇƤ¤Á¡ª',1);
            &M();
        }
        elsif ($V1) {
            &initiative($V1);
            if ($A->{Rh}{cl} eq 'Bo') {
                &concrete_battle($A,$D,'¤ÎÀèÀ©¹¶·â¡ª',1);
                &M();
            }
        }
        elsif ($V2) {
            &initiative($V2);
            &throw_weapon($A,$D,"¤Ï$A->{Rh}{nm}¤òÅꤲ¤¿¡ª",1);
            &M();
        }
        elsif ($V3) {
            &initiative($V3);
            if (&skill_roll($A,$set::sQg,$A->{in} * 3)) {
                &concrete_battle($A,$D,"¤Ï$SK{Qg}¤òÊü¤Ã¤¿¡ª",1);
                &M();
            }
        }
        elsif ($V4) {
            &initiative($V4);
            if (&skill_roll($A,$set::sQd,$A->{in} * 3)) {
                &concrete_battle($A,$D,"¤Î$SK{Qd}¡ª",1);
                &M();
                $V5 = $V4 * -1;
                $set::frd--;
            }
        }
    

    ¸òÀï¤Î¸å¤Ë &M() ¤Ç²þ¹Ô¤òÆþ¤ì¤Þ¤·¤¿

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ÀÜ¿¨¤·¤¿Áê¼ê¤¬¥í¥°¥¤¥óÃæ¤Î¾ì¹ç¤ËÌá¤ë¥Ü¥¿¥ó¤òɽ¼¨¤·¤Æ¤ß¤ë¡£

    library/base.cgi¤ò³«¤¯
    sub login_check:
    my  $T = shift; # true -> return true, false -> error
    ¢­
    my  $T = shift; # mode -> say, true -> return true, false -> error
    
    sub login_check:
            if ($T) { return 1 }
    ¢­
            if ($T =~ /\D/) { &say("$S->{nm}¤Ï¸½ºß¥í¥°¥¤¥óÃæ¤Ç¤¹",$T) }
            if ($T) { return 1 }
    
    library/bounty.cgi¤ò³«¤¯
    sub bounty_after:
        &login_check($U);
    ¢­
        &login_check($U,'bounty_before');
    
    library/buy.cgi¤ò³«¤¯
    sub buy_before:
        &login_check($U);
    ¢­
        &login_check($U,'contact_before');
    
    sub buy_after:
        &login_check($U);
    ¢­
        &login_check($U,'contact_before');
    
    library/contact.cgi¤ò³«¤¯
    sub contact_after:
        &login_check($U);
    ¢­
        &login_check($U,'contact_before');
    
    library/cure.cgi¤ò³«¤¯
    sub cure_before:
        &login_check($U);
    ¢­
        &login_check($U,'contact_before');
    
    sub cure_after:
        &login_check($U);
    ¢­
        &login_check($U,'contact_before');
    
    library/destone.cgi¤ò³«¤¯
    sub destone:
        &login_check($U);
    ¢­
        &login_check($U,'contact_before');
    
    library/fight.cgi¤ò³«¤¯
    sub fight_player:
        &login_check($U);
    ¢­
        &login_check($U,'contact_before');
    
    library/trade.cgi¤ò³«¤¯
    sub trade_before:
        &login_check($U);
    ¢­
        &login_check($U,'contact_before');
    

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ¥â¥ó¥¹¥¿¡¼¤Î½Ð¤ëÃϰè¤Ç¤ª¶â¤ò½¦¤¨¤ë¤è¤¦¤Ë¤·¤Æ¤ß¤ë¡£

    library/find.cgi¤ò³«¤¯
    sub find:
            &found($I,"monster_$I->{pl}",$set::fvt,'õº÷','¤Ä¼ê¤ËÆþ¤ì¤Þ¤·¤¿',0,'monster');
    ¢­
            &found($I,"monster_$I->{pl}",$set::fvt,'õº÷','¤Ä¼ê¤ËÆþ¤ì¤Þ¤·¤¿',1,'monster');
    
    sub find:
        &reload_data('gl') if !$I->{Pl}{ev}{Ms};
    ¢­
        &reload_data('gl');
    

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    Âѵ×ÎϤò¸º¾¯¤µ¤»¤Æ¤ß¤ë¡£

    ÀïÆ®¡¦À¸»º»þ¤Ë°ìÄê¤Î³ÎΨ¤ÇÁõÈ÷¤ÎÂѵ×ÎϤò¸º¾¯¤µ¤»¤Þ¤¹¡£
    ÀïÆ®»þ¤ÏÁõÈ÷¤·¤Æ¤¤¤ëÁ´¤Æ¤Î¥¢¥¤¥Æ¥à¤ÎÂѵ×ÎϤ¬¸º¾¯¤·¤Þ¤¹¡£
    À¸»º»þ¤Ï»ÈÍѤ·¤¿ÁõÈ÷ÉʤÎÂѵ×ÎϤ¬¸º¾¯¤·¤Þ¤¹¡£

    set.cgi¤ò³«¤¯
    # ¤½¤Î¾ Others ###################################### #
    $edb = 10;                   # À¸»º»þ¤ÎÁõÈ÷Âѵ×ÅÙ¸º¾¯³ÎΨ(n%)
    $fdb = 10;                   # ÀïÆ®»þ¤ÎÁõÈ÷Âѵ×ÅÙ¸º¾¯³ÎΨ(n%)
    
    library/base.cgi¤ò³«¤¯
    # Sub Set Equipment #
    sub set_equipment {
    my  $S = shift;
    my  $Si = shift;
    
        $S->{$Si->{eq}} = "$Si->{nm}/$Si->{cl}/$Si->{ql}/$Si->{ef}/$Si->{db}/$Si->{im}/$Si->{gd}/$Si->{pl}/$Si->{cr}";
    }
    
    ¤òÄɲá£
    
    library/break.cgi¤ò³«¤¯
    sub break_check:
            undef $S->{$E};
            &reload_data($e);
            return 1;
        }
    ¢­
            undef $S->{$E};
            &reload_data($e);
            return 1;
        }
        elsif (&roll_dice(100) <= $set::edb) {
            foreach $Ii (@{$S->{Bg}}) {
                if ($Ii->{eq} eq $e) {
                    &M("$S->{$E}{nm}¤ÎÂѵ×ÎϤ¬²¼¤¬¤ê¤Þ¤·¤¿¡£");
                    $Ii->{db}--;
                    &set_equipment($S,$Ii);
                    last;
                }
            }
            return 1;
        }
    
    library/consumption.cgi¤ò³«¤¯
    sub consumption_check:
                else {
                    &change_status($I,'bg',-$Si->{wt});
                    $Si->{qn} = 0;
                }
                $I->{$Si->{eq}} = '';
                &reload_data($Si->{eq});
            }
    ¢­
                else {
                    &change_status($I,'bg',-$Si->{wt});
                    $Si->{qn} = 0;
                }
                $I->{$Si->{eq}} = '';
                &reload_data($Si->{eq});
            }
            elsif (&roll_dice(100) <= $set::edb) {
                &M("$Si->{nm}¤ÎÂѵ×ÎϤ¬²¼¤¬¤ê¤Þ¤·¤¿¡£");
                $Si->{db}--;
                &set_equipment($I,$Si);
            }
    
    library/equip.cgi¤ò³«¤¯
    sub fitting_room:
        $I->{$E} = "$Si->{nm}/$Si->{cl}/$Si->{ql}/$Si->{ef}/$Si->{db}/$Si->{im}/$Si->{gd}/$Si->{pl}/$Si->{cr}";
        $Si->{sp} = $Si->{rs} = '';
        $Si->{eq} = $E;
    ¢­
        $Si->{sp} = $Si->{rs} = '';
        $Si->{eq} = $E;
        &set_equipment($I,$Si);
    
    library/fight.cgi¤ò³«¤¯
    sub fight_player:
        # Ã¥¼è¥Á¥§¥Ã¥¯ #
        &steal_check($I) if !$U->{Op}{Sc};
    ¢­
        # Ã¥¼è¥Á¥§¥Ã¥¯ #
        &steal_check($I) if !$U->{Op}{Sc};
    
        # ÁõÈ÷Âѵ×ÅÙ¸º¾¯¥Á¥§¥Ã¥¯ #
        &equip_wear_check($I);
        &equip_wear_check($U);
        &M();
    
    sub fight_creature:
        &baggage_check($I) if ref $I->{BI};
    ¢­
        &equip_wear_check($I);
        &baggage_check($I) if ref $I->{BI};
    
    sub baggage_check:
            next if !$F;
    ¢­
            next if !$F;
            if ($F == 2) {
                if (--$Ii->{db} > 0) {
                    &set_equipment($S,$Ii);
                }
                else {
                    $S->{ucfirst($Ii->{eq})}{db}--;
                    &destruction_check($S,$Ii->{eq});
                    $F = 1;
                }
            }
            next if $F == 2;
    
    # Sub Equip Wear Check #
    sub equip_wear_check {
    my  $S = shift;
    my ($e,$E);
    
        return if !$set::fdb;
        return if $S->{Op}{Ub};
    
        undef $S->{WO};
    
        foreach $e (keys %set::eqp) {
            $E = ucfirst($e);
            next if $S->{$e} eq '';
            next if $S->{BI}{$e};
    
            if (&roll_dice(100) <= $set::fdb) {
                $S->{BI}{$e} = 2;
                &get_equipment($S,$e);
                &M("$S->{Nm}¤Î$S->{$E}{nm}¤ÎÂѵ×ÎϤ¬¸º¾¯¤·¤¿¡£");
            }
        }
    }
    
    ¤òÄɲÃ
    

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ¶ä¹Ô¤Ë»ØÄê¸Ä¿ô¼è°ú/¶ä¹Ô¼«Æ°À°Íýµ¡Ç½Äɲá£

    javascript/GetCookie.js¤ò³«¤¯
    function GetValue:
    	document.loginform.ps.value = GetCookie("ps");
    ¢­
    	document.loginform.ps.value = GetCookie("ps");
    	document.loginform.bk.value = GetCookie("bk");
    
    function BankAutoCheck() {
    	document.bank.bk.checked = GetCookie("bk") != "" ? true : false;
    }
    
    ¤òÄɲÃ
    
    library/base.cgi¤ò³«¤¯
    sub set_cookie:
        $ck = "id\:$F{id}\,ps\:$F{ps}\,";
    ¢­
        $ck = "id\:$F{id}\,ps\:$F{ps}\,bk\:$F{bk}\,";
    
    library/bank.cgi¤ò³«¤¯
    sub bank_before:
            $t1 .= qq|<input type=checkbox name=o$i class=checkbox> |;
            $t1 .= &decorate_item($Ii);
    ¢­
            $t1 .= qq|<tr>\n<td>\n|;
            $t1 .= qq|<input type=checkbox name=o$i class=checkbox> |;
            $t1 .= &decorate_item($Ii);
            $t1 .= qq|</td>\n<td class=r>|;
            $Ii->{qn} ||= 1;
            $t1 .= qq|<input type=textbox name=ot$i class=textbox size=5 value=$Ii->{qn}>|;
            $t1 .= qq|</td>\n</tr>\n|;
    
    sub bank_before:
            $t2 .= qq|<input type=checkbox name=$i class=checkbox> |;
            $t2 .= &decorate_item($Ii);
    ¢­
            $t2 .= qq|<tr>\n<td>\n|;
            $t2 .= qq|<input type=checkbox name=$i class=checkbox> |;
            $t2 .= &decorate_item($Ii);
            $t2 .= qq|</td>\n<td class=r>|;
            $Ii->{qn} ||= 1;
            $t2 .= qq|<input type=textbox name=it$i class=textbox size=5 value=$Ii->{qn}>|;
            $t2 .= qq|</td>\n</tr>\n|;
    
    sub bank_before:
        &header(CSS=>'sub',JavaScript=>'GetView');
    ¢­
        &header(CSS=>'sub',JavaScript=>'GetCookie,GetView',Body=>' onLoad="BankAutoCheck();"');
    
    sub bank_before:
        <form method=post action=$set::cgi_url>
    ¢­
        <form name=bank method=post action=$set::cgi_url>
    
    sub bank_before:
        $I->{Sp}{Bk}{nm}¤«¤é¥¢¥¤¥Æ¥à¤ò½Ð¤¹<br>
        <br>
        $t1
    ¢­
        <table class=item>
        <tr class=first>
        <td>$I->{Sp}{Bk}{nm}¤«¤é¥¢¥¤¥Æ¥à¤ò½Ð¤¹</td>
        <td class=r>°ú½Ð¸Ä¿ô</td>
        </tr>
        $t1
        </table>
    
    sub bank_before:
        $I->{Sp}{Bk}{nm}¤Ë¥¢¥¤¥Æ¥à¤òÊݴɤ¹¤ë<br>
        <br>
        $t2
    ¢­
        <table class=item>
        <tr class=first>
        <td>$I->{Sp}{Bk}{nm}¤Ë¥¢¥¤¥Æ¥à¤òÊݴɤ¹¤ë</td>
        <td class=r>ÍÂÆþ¸Ä¿ô</td>
        </tr>
        $t2
        </table>
    
    sub bank_before:
        <tt>²Ùʪ¥¹¥í¥Ã¥È¡§$I->{bs}</tt><br>
    ¢­
        <tt>²Ùʪ¥¹¥í¥Ã¥È¡§$I->{bs}</tt><br>
        <tt>¥Ñ¥Ã¥¯¥¹¥­¥ë¡§$I->{pc}</tt>
    
    sub bank_before:
        <select id=mode name=md class=select onChange="DisableObject('input','o','mode','bank_after','normal');">
    ¢­
        <tt>¶ä¹Ô¼«Æ°À°Íý¡§<input type=checkbox name=bk class=checkbox></tt><br>
        <br>
        <select id=mode name=md class=select onChange="DisableObject('input','o','mode','bank_after','normal');">
    
    sub bank_after:
    my  $Ui;
    ¢­
    my  $Ui;
    my  $Si;
    
    sub bank_after:
            &say("$Ii->{nm}¤ÏÁõÈ÷Ãæ¤Ç¤¹¡£",'bank_before') if $Ii->{eq};
    ¢­
            &say("$Ii->{nm}¤ÏÁõÈ÷Ãæ¤Ç¤¹¡£",'bank_before') if $Ii->{eq};
            &say("$Ii->{nm}¡§¿ôÃͰʳ°¤Ï»ÈÍѽÐÍè¤Þ¤»¤ó¡£",'bank_before') if $F{"it$i"} =~ /\D/;
    
    sub bank_after:
            $I->{bg} -= $Ii->{qn} * $Ii->{wt};
            $Ii->{sp} = $Ii->{rs} = '';
            push(@{$U->{Bg}},$Ii);
            undef $Ii;
    ¢­
            $F{"it$i"} = $Ii->{qn} if $F{"it$i"} > $Ii->{qn};
            $F{"it$i"} = 1         if $F{"it$i"} <= 0;
            $I->{bg} -= $F{"it$i"} * $Ii->{wt};
            $Ii->{sp} = $Ii->{rs} = '';
            $Ii->{qn} -= $F{"it$i"};
    
            $Si = {%$Ii};
            $Si->{qn} = $F{"it$i"};
            push(@{$U->{Bg}},$Si);
            if (!$Ii->{qn}) { undef $Ii }
    
    sub bank_after:
            $U->{Sl}--;
            $I->{bg} += $Ui->{qn} * $Ui->{wt};
            push(@{$I->{Bg}},$Ui);
            undef $Ui;
    ¢­
            &say("$Ui->{nm}¡§¿ôÃͰʳ°¤Ï»ÈÍѽÐÍè¤Þ¤»¤ó¡£",'bank_before') if $F{"ot$i"} =~ /\D/;
            $F{"ot$i"} = $Ui->{qn} if $F{"ot$i"} > $Ui->{qn};
            $F{"ot$i"} = 1         if $F{"ot$i"} <= 0;
            $I->{bg} += $F{"ot$i"} * $Ui->{wt};
            $Ui->{qn} -= $F{"ot$i"};
    
            $Si = {%$Ui};
            $Si->{qn} = $F{"ot$i"};
            push(@{$I->{Bg}},$Si);
            if (!$Ui->{qn}) { undef $Ui; $U->{Sl}-- }
    
    sub bank_after:
        &say("$I->{Sp}{Bk}{nm}¥¹¥í¥Ã¥È¤¬¤¤¤Ã¤Ñ¤¤¤Ç¤¹¡£",'bank_before') if $U->{Sl} > $I->{bk};
    ¢­
        if ($F{bk}) {
            require "$set::lib_dir/pack.cgi";
            &auto_pack($I,$U->{Bg},$U);
        }
    
        &say("$I->{Sp}{Bk}{nm}¥¹¥í¥Ã¥È¤¬¤¤¤Ã¤Ñ¤¤¤Ç¤¹¡£",'bank_before') if $U->{Sl} > $I->{bk};
    
    sub bank_after:
        &set_user($I);
    ¢­
        &set_user($I);
    
        &set_cookie;
    
    library/top.cgi¤ò³«¤¯
    sub top:
    <input type=hidden name=md value="main">
    ¢­
    <input type=hidden name=md value="main">
    <input type=hidden name=bk>
    
    sub.css¤ò³«¤¯
    /* ¥¢¥¤¥Æ¥à */
    .item {
      width: 100%;
    }
    .item .first td {
      padding-bottom: 5px;
      font-size: 11px;
      font-family: monospace;
      color: #005533;
    }
    .item td {
      margin: 0;
      padding: 0;
      font-size: 12px;
    }
    .item td.r {
      vertical-align: bottom;
    }
    
    
    ¤òÄɲÃ
    

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ¥¢¥¤¥Æ¥à¤Î¹ØÆþ¥Õ¥©¡¼¥à¤òÅý°ì¤·¤Æ¤ß¤ë¡£

    »Ô¾ì¡¦°Ç»Ô¡¦ÇÀ¾ì¡¦¥Ñ¡¼¥È¥Ê¡¼¤Ç¡¢¹ØÆþ¥Õ¥©¡¼¥à¤Î»ÅÍͤòÅý°ì¤·¤Þ¤¹¡£
    Ç㤤¤¿¤¤¥¢¥¤¥Æ¥à¤Ë¥Á¥§¥Ã¥¯¤òÆþ¤ì¡¢Íߤ·¤¤¿ô¤ò»ØÄꤷ¤Æ¹ØÆþ¤·¤Þ¤¹¡£
    Ê£¿ô¤Î¼ïÎà¤Î¥¢¥¤¥Æ¥à¤òƱ»þ¤Ë¹ØÆþ¤¹¤ë¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

    ¥Ñ¥Ã¥¯¥¹¥­¥ë¤òͤ¨¤¿¥Ñ¥Ã¥¯¤òµö²Ä¤¹¤ë¤«¤ÎÀßÄ꤬½ÐÍè¤Þ¤¹¡£
    ¹ØÆþ¸Ä¿ô¤ò»ØÄê¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¤«¤ÎÀßÄ꤬½ÐÍè¤Þ¤¹¡£
    ¡ÖÃÍÃʤòÀßÄꤹ¤ë¡×¤Çñ²Á¤òÆþÎϤ¹¤ë¤«Á´ÂβÁ³Ê¤òÆþÎϤ¹¤ë¤«¤ÎÀßÄ꤬½ÐÍè¤Þ¤¹¡£

    set.cgi¤ò³«¤¯
    # »Ô¾ì Market ######################################## #
    $uop = 1;                    # ÃÍÃʤòÀßÄꤹ¤ë¤Çñ²Á¤òÆþÎϤ¹¤ë(yes=1,no=0)
    %mpc = (Mk=>0,Fm=>0,         # »Ô¾ì,ÇÀ¾ì,°Ç»Ô,ÂÐ¿Í¤Ç¤Î¹ØÆþ¤Ç¥Ñ¥Ã¥¯¥¹¥­¥ë¤òͤ¨¤Æ¤Î¥Ñ¥Ã¥¯¤òµö²Ä¤¹¤ë(yes=1,no=0)
            Bm=>0,Xx=>0);
    %mif = (Mk=>1,Fm=>1,         # »Ô¾ì,ÇÀ¾ì,°Ç»Ô,ÂÐ¿Í¤Ç¤Î¹ØÆþ¤Ç¹ØÆþ¸Ä¿ô¤ò»ØÄê½ÐÍè¤ë¤è¤¦¤Ë¤¹¤ë(yes=1,no=0)
            Bm=>1,Xx=>1);
    
    data/place.cgi¤ò³«¤¯
        'Bm' => { 'nm' => '°Ç»Ô'},
    ¢­
        'Bm' => { 'md' => 'blackmarket_before',
                  'nm' => '°Ç»Ô'},
    
    library/purchase.cgi¤òºîÀ®¤¹¤ë
    # --------------------------------------------------- #
    # Script of Saga III Purchase.cgi Version 2 (2.0)
    # 
    # --------------------------------------------------- #
    
    # Sub Purchase Item #
    sub purchase_item {
    my  $V1 = shift; # item ref [catalog]
    my  $V2 = shift; # item ref
    my  $P = shift; # place
    my  $R = shift; # return mode
    my  $T;
    my  $G;
    my  $M;
    my  $Ii;
    my  $Ui;
    my  $buyitemflag;
    my ($i,$n);
    my ($keychck,$keytext);
    
        $I->{Ap} ||= 1;
    
        $R ||= $I->{Sp}{$P}{md};
    
        $T = $P eq 'Xx' ? 2 :
             $P eq 'Bm' ? 1 : 0;
    
        $G = !$T || $T == 2 && !$set::mif{$P} ? 1 : 0;
    
        foreach $Ui (@$V1) {
            $Ui = $V2->{$Ui} if $V2;
            $i++;
            $keychck = $T == 2 ?   "$i-$Ui->{id}-$Ui->{sp}" :   "$Ui->{id}_$Ui->{gd}";
            $keytext = $T == 2 ? "t-$i-$Ui->{id}-$Ui->{sp}" : "t_$Ui->{id}_$Ui->{gd}";
    
            $F{$keytext} = !$set::mif{$P} ? $T == 2 ? $Ui->{qn} : 1 : $F{$keytext};
    
            next if !$F{$keychck} || !$F{$keytext};
    
            if ($T == 1 && $F{dl}) {
                $Ui->{qn} = 0;
                $buyitemflag = 1;
                $M .= "´ÉÍý¼Ô¸¢¸Â¤Ë¤è¤ê$Ui->{nm}¤òºï½ü¤·¤Þ¤·¤¿<br>\n";
                &M("´ÉÍý¼Ô¸¢¸Â¤Ë¤è¤ê$Ui->{nm}¤òºï½ü¤·¤Þ¤·¤¿") && next;
            }
    
            &error('Price Error') if $T == 2 && !$Ui->{sp};
            &error('Quantity Error') if !$Ui->{qn};
    
    
            if ($F{$keytext} =~ /\D/) {
                $T == 2 && &M("$Ui->{nm}¡§¿ôÃͰʳ°¤Ï»ÈÍѽÐÍè¤Þ¤»¤ó") && next;
                &say("$Ui->{nm}¡§¿ôÃͰʳ°¤Ï»ÈÍѽÐÍè¤Þ¤»¤ó",$R);
            }
            $F{$keytext} = $Ui->{qn} if $T && $F{$keytext} > $Ui->{qn};
    
            $Ui->{Qn} = $T ? $F{$keytext} : $Ui->{qn} * $F{$keytext};
            $Ui->{Wt} = $Ui->{wt} * $Ui->{Qn};
            $Ui->{sp} = $T != 2 ? $T == 1 ? $Ui->{bp} * $set::mtp + $set::mpp : $Ui->{bp} : $Ui->{sp};
            $Ui->{sp}/= $Ui->{qn} if $T == 2 && !$set::uop;
            $Ui->{sP} = int($Ui->{sp});
            $Ui->{Sp} = $Ui->{sP} * $Ui->{Qn};
            $Ui->{SP} = $G ? int($Ui->{sP} * $Ui->{qn} * $I->{Ap})
                           : int($Ui->{sP} * $I->{Ap}) * $Ui->{Qn};
            $Ui->{SP}*= $F{$keytext} if !$T;
    
    
            if ($Ui->{rs} && $Ui->{rs} ne $I->{id}) {
                $T == 2 && &M("$Ui->{nm}¤Ï¾¤Î¿Í¤Ëͽ\Ìó¤µ¤ì¤Æ¤¤¤Þ¤¹¡£") && next;
                &say("$Ui->{nm}¤Ï¾¤Î¿Í¤Ëͽ\Ìó¤µ¤ì¤Æ¤¤¤Þ¤¹",$R);
            }
            elsif ($I->{bg} + $Ui->{Wt} > $I->{Mbg}) {
                $T == 2 && &M("¤³¤ì°Ê¾å¤Ï½Å¤¯¤Æ»ý¤Æ¤Þ¤»¤ó¡£") && next;
                &say('¤³¤ì°Ê¾å¤Ï½Å¤¯¤Æ»ý¤Æ¤Þ¤»¤ó',$R);
            }
            elsif ($Ui->{SP} > $I->{gl}) {
                $T == 2 && &M("$Ui->{nm}¤òÇ㤦¤ª¶â¤¬¤¢¤ê¤Þ¤»¤ó¡£") && next;
                &say('¤ª¶â¤¬Â­¤ê¤Þ¤»¤ó',$R);
            }
    
    
            undef $I->{BG};
    
            # ¥Ñ¥Ã¥¯ÉԲĥ¢¥¤¥Æ¥à¤Î¾ì¹ç¥Ð¥é¤ÇÄɲà #
            if (&item_class_check($Ui) ne 'M') {
                $Ii = {%$Ui};
                $Ii->{sp} = '';
                $Ii->{rs} = '';
                push (@{$I->{BG}},$Ii) foreach 1 .. $F{$keytext};
            }
            # ¥Ñ¥Ã¥¯¥¹¥­¥ë¤òͤ¨¤Æ¤Î¥Ñ¥Ã¥¯¤¬µö²Ä¤µ¤ì¤Æ¤¤¤ë¾ì¹ç #
            elsif ($set::mpc{$P}) {
                $Ii = {%$Ui};
                $Ii->{qn} = $Ui->{Qn};
                $Ii->{sp} = '';
                $Ii->{rs} = '';
                push (@{$I->{BG}},$Ii);
            }
            # ¥Ñ¥Ã¥¯¥¹¥­¥ë¤òͤ¨¤Æ¤Î¥Ñ¥Ã¥¯¤¬µö²Ä¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç #
            else {
                $Ui->{QN} = $Ui->{Qn};
                $Ui->{qN} = !$T ? $Ui->{qn} : 1; # ¥Õ¥é¥°¤¬¤Ê¤±¤ì¤Ð¥Ñ¥Ã¥¯¤Î¾õÂÖ¤ò¤Ò¤È¤Ä¤È¤·¤Æ¡¢¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¥Ð¥é¤ÇȽÄê
    
                # ¹ØÆþ¸Ä¿ô¤Ö¤ó²Ùʪ¤Ë¼ý¤Þ¤ë¤Þ¤ÇÄɲà #
                while ($Ui->{QN} > 0) {
                    # ¥Ñ¥Ã¥¯¥¹¥­¥ë¤ò¥Á¥§¥Ã¥¯¤·¡¢¤Ç¤­¤ë¤À¤±¥Ñ¥Ã¥¯ #
                    foreach (1 .. $F{$keytext}) {
                        $n = $_;
                        $n-- && last if $Ui->{qN} * $n > $I->{pc};
                    }
                    $n = 1 if $n < 1;
    
                    $Ii = {%$Ui};
                    $Ii->{qn} = $Ui->{qN} * $n;
                    $Ii->{sp} = '';
                    $Ii->{rs} = '';
                    push (@{$I->{BG}},$Ii);
    
                    $F{$keytext} -= $n;
                    $Ui->{QN} -= $Ii->{qn};
                }
            }
    
    
            if (@{$I->{Bg}} + @{$I->{BG}} > $I->{bs}) {
                $T == 2 && &M("²Ùʪ¥¹¥í¥Ã¥È¤¬°ìÇդǤ¹¡£") && next;
                &say("²Ùʪ¥¹¥í¥Ã¥È¤¬°ìÇդǤ¹",$R);
            }
            push (@{$I->{Bg}},@{$I->{BG}});
    
            $M .= &beat_price($Ui) if $T == 2;
    
            &change_status($U,'gl',$Ui->{Sp});
            &change_status($I,'bg',$Ui->{Wt});
            &change_status($I,'gl',-$Ui->{SP});
            &change_status($U,'bg',-$Ui->{Wt});
    
            $Ui->{qn}-= $Ui->{Qn};
            $Ui->{sp}*= $Ui->{qn} if $T == 2 && !$set::uop;
            $Ui->{Im} = &item_image($Ui);
    
            $M .= "$Ui->{Im}$I->{nm}¤Ï$Ui->{nm}¤ò$Ui->{Qn}¤Ä¡¢$Ui->{Sp} $set::mny¤Ç¹ØÆþ¤·¤Þ¤·¤¿¡£<br>\n";
            &M("$Ui->{Im}$Ui->{nm}¤ò$Ui->{Qn}¤Ä¡¢$Ui->{SP} $set::mny¤Ç¹ØÆþ¤·¤Þ¤·¤¿¡£");
    
            $buyitemflag = 1;
        }
    
        return $buyitemflag ? $M : '';
    }
    
    # Sub Purchase Pet #
    sub purchase_pet {
    my  $V1 = shift; # item ref [catalog]
    my  $V2 = shift; # item ref
    my  $P = shift; # place
    my  $R = shift; # return mode
    my  $T;
    my  $Q;
    my  $Ii;
    my  $Ui;
    my  $buypetsflag;
    my ($i,$n);
    my ($keychck,$keytext);
    
        $I->{Ap} ||= 1;
    
        $R ||= $I->{Sp}{$P}{md};
    
        $T = $P eq 'Xx' ? 2 :
             $P eq 'Bm' ? 1 : 0;
    
        $Q = $T == 2 || !$set::mif{$P} ? 1 : 0;
    
        foreach $Up (@$V1) {
            $Up = $V2->{$Up} if $V2;
            $i++;
            $keychck = $T == 2 ?   "$i-$Up->{id}-$Up->{sp}" :   "$Up->{id}_$Up->{gd}";
            $keytext = $T == 2 ? "t-$i-$Up->{id}-$Up->{sp}" : "t_$Up->{id}_$Up->{gd}";
            $F{$keytext} = 1 if $Q;
            next if !$F{$keychck} || !$F{$keytext};
            &error('Price Error') if $T == 2 && !$Up->{sp};
    
            if ($T == 1 && $F{dl}) {
                $Up->{id} = '';
                $buypetsflag = 1;
                $M .= "´ÉÍý¼Ô¸¢¸Â¤Ë¤è¤ê$Up->{nm}¤òºï½ü¤·¤Þ¤·¤¿<br>\n";
                &M("´ÉÍý¼Ô¸¢¸Â¤Ë¤è¤ê$Up->{nm}¤òºï½ü¤·¤Þ¤·¤¿") && next;
            }
    
            if ($F{$keytext} =~ /\D/) {
                $T == 2 && &M("$Ui->{nm}¡§¿ôÃͰʳ°¤Ï»ÈÍѽÐÍè¤Þ¤»¤ó") && next;
                &say("$Ui->{nm}¡§¿ôÃͰʳ°¤Ï»ÈÍѽÐÍè¤Þ¤»¤ó",$R);
            }
    
            $Up->{Qn} = $F{$keytext};
            $Up->{Sl} = $Up->{sl} * $Up->{Qn};
            $Up->{sp} = $T != 2 ? $T == 1 ? $Ui->{bp} * $set::mtp + $set::mpp : $Up->{bp} : $Up->{sp};
            $Up->{Sp} = $Up->{sp} * $Up->{Qn};
            $Up->{SP} = int($Up->{sp} * $I->{Ap}) * $Up->{Qn};
    
            if ($Up->{rs} && $Up->{rs} ne $I->{id}) {
                $T == 2 && &M("$Up->{nm}¤Ï¾¤Î¿Í¤Ëͽ\Ìó¤µ¤ì¤Æ¤¤¤Þ¤¹¡£") && next;
                &say("$Up->{nm}¤Ï¾¤Î¿Í¤Ëͽ\Ìó¤µ¤ì¤Æ¤¤¤Þ¤¹",$R);
            }
            elsif ($I->{px} + $Up->{Sl} > $I->{Mpx}) {
                &M("$Up->{nm}¤Î¤¿¤á¤Î¥¹¥í¥Ã¥È¤¬¶õ¤¤¤Æ¤¤¤Þ¤»¤ó¡£") && next;
                &say("¥¹¥í¥Ã¥È¤Î¶õ¤­¤¬Â­¤ê¤Þ¤»¤ó",$R);
            }
            elsif ($Up->{SP} > $I->{gl}) {
                $T == 2 && &M("$Up->{nm}¤òÇ㤦¤ª¶â¤¬¤¢¤ê¤Þ¤»¤ó¡£") && next;
                &say('¤ª¶â¤¬Â­¤ê¤Þ¤»¤ó',$R);
            }
    
            $M .= &beat_price($Up);
    
            &change_status($U,'gl',$Up->{Sp});
            &change_status($I,'px',$Up->{Sl});
            &change_status($I,'gl',-$Up->{SP});
            &change_status($U,'px',-$Up->{Sl});
    
            $Up->{Im} = &item_image($Up);
    
            $M .= "$Up->{Im}$I->{nm}¤Ï$Up->{nm}¤ò$Up->{Sp} $set::mny¤Ç¹ØÆþ¤·¤Þ¤·¤¿¡£<br>\n";
            &M("$Up->{Im}$Up->{nm}¤ò$Up->{Qn}ɤ¡¢$Up->{SP} $set::mny¤Ç¹ØÆþ¤·¤Þ¤·¤¿¡£");
    
            $Up->{sp} = '';
            $Up->{rs} = '';
            foreach (1 .. $F{$keytext}) {
                if ($T != 2) {
                    $Up->{up} = $Up->{bt} = time;
                    $Up->{pd} = time if $Up->{pd};
                    $Up->{ch} = &roll_dice(4) - 1;
                }
                push (@{$I->{Pt}},{%$Up});
            }
            $Up->{id} = '';
            $buypetsflag = 1;
        }
    
        return $buypetsflag ? $M : '';
    }
    
    # Beat the Price #
    sub beat_price {
    my  $Si = shift;
    
        # ÃÍÀÚ¤ê #
        if ($I->{Sk}{Bp} && &roll_dice(100 + $I->{Map} - $I->{ap}) <= $set::sBp) {
            $Si->{sp} -= int($Si->{sp} * $set::uBp / 100);
            $Si->{Sp} -= int($Si->{Sp} * $set::uBp / 100);
            &M("$U->{nm}¤Ï$Si->{nm}¤ò$set::uBp%°ú¤­¤Î$Si->{Sp} $set::mny¤Ë¤·¤Æ¤¯¤ì¤Þ¤·¤¿¡£");
            return "$Si->{nm}¤ò$set::uBp%°ú¤­¤Ë¤·¤Æ¤¢¤²¤Þ¤·¤¿¡£<br>\n";
        }
        return '';
    }
    
    # --------------------------------------------------- #
    1;
    

    ¾å¤ò purchase.cgi ¤È¤¤¤¦Ì¾Á°¤ÇÊݸ¡£library¤Ë¼ýǼ

    library/base.cgi¤ò³«¤¯
    sub decorate_item:
    my  $T = shift; # Blackmarket = 1
    ¢­
    my  $T = shift; # Buy, Blackmarket = 1, Market = 2
    
    sub decorate_item:
        $Z = $Si->{wt} if $T;
    ¢­
        $Z = $Si->{wt} if $T == 1;
    
    sub decorate_item:
        $V .= " x $W" if $W > 1 && !$T
    ¢­
        $V .= " x $W" if $W > 1 && (!$Y || $T == 2);
    
    sub decorate_item:
        $V .= " ¡Ê$Z$set::wgt¡Ë" if $Z;
        $V .= "¡¦¡¦¡¦ºß¸Ë $W" if $T;
    ¢­
        $V .= "¡¦¡¦¡¦ºß¸Ë $W" if $Y && $W && $T != 2;
        $V .= " ¡Ê$Z$set::wgt¡Ë" if $Z;
    
    library/blackmarket.cgi¤ò³«¤¯
    sub blackmarket_before:
        &say("¤á¤Ü¤·¤¤¾¦ÉʤϤʤ¤¤è¤¦¤Ç¤¹¡¦¡¦¡¦",'market') if !@{$U->{Bg}};
    ¢­
        &say("¤á¤Ü¤·¤¤¾¦ÉʤϤʤ¤¤è¤¦¤Ç¤¹¡¦¡¦¡¦",'market') if !@{$U->{Bg}};
    
        $t1 .= <<"    END_OF_HTML" if $set::mif{Bm};
        <tr class=first>
        <td colspan=2 class=r>¹ØÆþ¸Ä¿ô</td>
        </tr>
        END_OF_HTML
    
    sub blackmarket_before:
            $t1 .= qq|<input type=radio name=ui class=radio value="$Ui->{id}_$Ui->{gd}"> |;
            $t1 .= &decorate_item($Ui,1);
    ¢­
            $t1 .= qq|<tr>\n<td>\n|;
            $t1 .= qq|<input type=checkbox name=$Ui->{id}_$Ui->{gd} class=checkbox> |;
            $t1 .= &decorate_item($Ui,1);
            $t1 .= qq|</td>\n<td class=r>|;
            $t1 .= qq|<input type=textbox name=t_$Ui->{id}_$Ui->{gd} class=textbox size=5 value=1>| if $set::mif{Bm};
            $t1 .= qq|</td>\n</tr>\n|;
    
    sub blackmarket_before:
        $t1 .= qq|<p><input type=checkbox name=dl class=checkbox> Çã¤ï¤º¤Ëºï½ü¤¹¤ë</p>\n| if $I->{Sk}{Rm};
    ¢­
        $t1 .= qq|<tr><td colspan=2><br><input type=checkbox name=dl class=checkbox> Çã¤ï¤º¤Ëºï½ü¤¹¤ë</td></tr>\n| if $I->{Sk}{Rm};
    
        &get_item($I);
    
    sub blackmarket_before:
        $t1
    ¢­
        <table class=item>
        $t1
        </table>
    
    sub blackmarket_before:
        ¸Ä¿ô¡§<input type=textbox name=hm class=textbox size=2 value="1"><br>
    
    ¤òºï½ü
    
    sub blackmarket_before:
        ¥¢¥¤¥Æ¥àÁí½ÅÎÌ¡§$I->{bg}/$I->{Mbg} $set::wgt<br>
    ¢­
        ¥¢¥¤¥Æ¥àÁí½ÅÎÌ¡§$I->{bg}/$I->{Mbg} $set::wgt<br>
        ²Ùʪ¥¹¥í¥Ã¥È¡§$I->{Bs}/$I->{bs}<br>
        ¥Ñ¥Ã¥¯¥¹¥­¥ë¡§$I->{pc}<br>
    
    sub blackmarket_after:
    my  $Ii;
    my  $Ui;
    
        &say("¸Ä¿ô¤Ë¤Ï¿ôÃͰʳ°»ÈÍѤǤ­¤Þ¤»¤ó",'blackmarket_before') if $F{hm} =~ /[^\d]/;
        &say("¸Ä¿ô¤òÀßÄꤷ¤Æ²¼¤µ¤¤",'blackmarket_before') if !$F{hm};
        &say("¾¦Éʤ¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó",'blackmarket_before') if !$F{ui};
    
        $F{hm} = int($F{hm});
    
    ¤òºï½ü
    
    sub blackmarket_after:
        &lock($I->{Pl}{bm});
    
        &get_item($I);
        &get_item($U,1);
    
        foreach $Ui (@{$U->{Bg}}) {
            if ($F{ui} eq "$Ui->{id}_$Ui->{gd}") {
                if ($F{dl}) { $Ui->{qn} = 0; last }
                $F{hm} = $Ui->{qn} if $F{hm} > $Ui->{qn};
                $Ui->{Sp} = int(($Ui->{bp} * $set::mtp + $set::mpp) * $I->{Ap}) * $F{hm};
    
                &say('¤³¤ì°Ê¾å¤Ï½Å¤¯¤Æ»ý¤Æ¤Þ¤»¤ó','blackmarket_before') if $I->{bg} + $Ui->{wt} * $F{hm} > $I->{Mbg};
                &say('¤ª¶â¤¬Â­¤ê¤Þ¤»¤ó','blackmarket_before') if $Ui->{Sp} > $I->{gl};
    
                &change_status($I,'gl',-$Ui->{Sp});
                &change_status($I,'bg',$Ui->{wt} * $F{hm});
    
                $Ui->{Im} = &item_image($Ui);
    
                &M("$Ui->{Im}$Ui->{nm}¤ò$F{hm}¤Ä¹ØÆþ¤·¤Þ¤·¤¿¡£");
    
                $Ii = {%$Ui};
    
                $Ui->{qn}-= $F{hm};
                $Ii->{qn} = $F{hm};
    
                push (@{$I->{Bg}},$Ii);
    
                undef $F{ui};
                last;
            }
        }
    
    #    &say('Çä¤êÀÚ¤ì¤Ç¤¹','blackmarket_before') if !$F{ui};
    
        &sort_item($I);
    
        &set_item($I);
        &set_item($U,1);
    ¢­
        require "$set::lib_dir/purchase.cgi";
    
        &lock($I->{Pl}{bm});
    
        &get_item($I);
        &get_item($U,1);
    
        if (&purchase_item($U->{Bg},'','Bm')) {
            &sort_item($I);
            &set_item($I);
            &set_item($U,1);
        }
    
    library/buy.cgi¤ò³«¤¯
    sub buy_before:
            $t1 .= "<input type=checkbox name=$i-$Ui->{id}-$Ui->{sp} class=checkbox> ";
            $t1 .= &decorate_item($Ui);
    ¢­
            $t1 .= qq|<tr>\n<td>\n|;
            $t1 .= qq|<input type=checkbox name=$i-$Ui->{id}-$Ui->{sp} class=checkbox> |;
            if ($set::mif{Xx}) {
                $Ui->{Sp} = $set::uop ? $Ui->{sp} : int($Ui->{sp} / $Ui->{qn});
                $t1 .= &decorate_item($Ui,1);
                $t1 .= qq|</td>\n<td class=r>|;
                $t1 .= qq|<input type=textbox name=t-$i-$Ui->{id}-$Ui->{sp} class=textbox size=5 value=1>|;
            }
            else {
                $Ui->{Sp} = $set::uop ? $Ui->{sp} * $Ui->{qn} : $Ui->{sp};
                $t1 .= &decorate_item($Ui,2);
            }
            $t1 .= qq|</td>\n</tr>\n|;
    
    sub buy_before:
            $t2 .= "<input type=checkbox name=$i-$Up->{id}-$Up->{sp} class=checkbox> ";
            $t2 .= &decorate_item($Up);
    ¢­
            $t2 .= qq|<tr>\n<td>\n|;
            $t2 .= qq|<input type=checkbox name=$i-$Up->{id}-$Up->{sp} class=checkbox> |;
            $t2 .= &decorate_item($Up,1);
            $t2 .= qq|</td>\n</tr>\n|;
    
    sub buy_before:
        &get_code;
    ¢­
        $t1 = <<"    END_OF_HTML" if $t1 && $set::mif{Xx};
        <tr class=first>
        <td colspan=2 class=r>¹ØÆþ¸Ä¿ô</td>
        </tr>
        $t1
        END_OF_HTML
    
        &get_code;
        &get_item($I);
    
    sub buy_before:
        $t1
    ¢­
        <table class=item>
        $t1
        </table>
    
    sub buy_before:
        ¥¢¥¤¥Æ¥àÁí½ÅÎÌ¡§$I->{bg}/$I->{Mbg} $set::wgt<br>
    ¢­
        ¥¢¥¤¥Æ¥àÁí½ÅÎÌ¡§$I->{bg}/$I->{Mbg} $set::wgt<br>
        ²Ùʪ¥¹¥í¥Ã¥È¡§$I->{Bs}/$I->{bs}<br>
        ¥Ñ¥Ã¥¯¥¹¥­¥ë¡§$I->{pc}<br>
    
    sub buy_before:
        $t2
    ¢­
        <br>
        <table class=item>
        $t2
        </table>
    
    sub buy_after:
    my  $i;
    my ($Ii,$Ui,$Ip,$Up,$V);
    my  $buyitemflag;
    my  $buypetsflag;
    ¢­
    my  $M;
    
    sub buy_after:
        &get_item($I);
        &get_item($U);
    
        &set_code;
    
        foreach $Ui (@{$U->{Bg}}) {
            $i++;
            $Ui->{sp} ||= $Ui->{bp} * $Ui->{qn} + $set::lip if $U->{Sk}{Vm};
            next if !$F{"$i-$Ui->{id}-$Ui->{sp}"};
            &error('Price Error') if !$Ui->{sp};
            $Ui->{Wt} = $Ui->{wt} * $Ui->{qn};
            $Ui->{Sp} = int($Ui->{sp} * $I->{Ap});
            if (@{$I->{Bg}} >= $I->{bs}) {
                &M("²Ùʪ¥¹¥í¥Ã¥È¤¬°ìÇդǤ¹¡£") && last;
            }
            elsif ($Ui->{rs} && $Ui->{rs} ne $I->{id}) {
                &M("$Ui->{nm}¤Ï¾¤Î¿Í¤Ëͽ\Ìó¤µ¤ì¤Æ¤¤¤Þ¤¹¡£") && next;
            }
            elsif ($I->{bg} + $Ui->{Wt} > $I->{Mbg}) {
                &M("¤³¤ì°Ê¾å¤Ï½Å¤¯¤Æ»ý¤Æ¤Þ¤»¤ó¡£") && next;
            }
            elsif ($Ui->{Sp} > $I->{gl}) {
                &M("$Ui->{nm}¤òÇ㤦¤ª¶â¤¬¤¢¤ê¤Þ¤»¤ó¡£") && next;
            }
    
            $M .= &beat_price($Ui);
    
            &change_status($U,'gl',$Ui->{sp});
            &change_status($I,'bg',$Ui->{Wt});
            &change_status($I,'gl',-$Ui->{Sp});
            &change_status($U,'bg',-$Ui->{Wt});
    
            $Ui->{Im} = &item_image($Ui);
    
            $M .= "$Ui->{Im}$I->{nm}¤Ï$Ui->{nm}¤ò$Ui->{qn}¤Ä¡¢$Ui->{sp} $set::mny¤Ç¹ØÆþ¤·¤Þ¤·¤¿¡£<br>\n";
            &M("$Ui->{Im}$Ui->{nm}¤ò$Ui->{qn}¤Ä¹ØÆþ¤·¤Þ¤·¤¿¡£");
    
            $Ui->{sp} = '';
            $Ui->{rs} = '';
    
            $Ii = {%{$Ui}};
            push (@{$I->{Bg}},$Ii);
            $Ui->{qn} = 0;
            $buyitemflag = 1;
        }
    
        if ($buyitemflag) {
            &sort_item($I);
            &set_item($I);
            &set_item($U) if !$U->{Sk}{Ms}; # Mass Selling
        }
    
        &get_pet($I);
        &get_pet($U);
    
        undef $i;
    
        foreach $Up (@{$U->{Pt}}) {
            $i++;
            next if !$F{"$i-$Up->{id}-$Up->{sp}"};
            &error('Price Error') if !$Up->{sp};
            $Up->{Sp} = int($Up->{sp} * $I->{Ap});
            if ($Up->{rs} && $Up->{rs} ne $I->{id}) {
                &M("$Up->{nm}¤Ï¾¤Î¿Í¤Ëͽ\Ìó¤µ¤ì¤Æ¤¤¤Þ¤¹¡£") && next;
            }
            elsif ($I->{px} + $Up->{sl} > $I->{Mpx}) {
                &M("$Up->{nm}¤Î¤¿¤á¤Î¥¹¥í¥Ã¥È¤¬¶õ¤¤¤Æ¤¤¤Þ¤»¤ó¡£") && next;
            }
            elsif ($Up->{Sp} > $I->{gl}) {
                &M("$Up->{nm}¤òÇ㤦¤ª¶â¤¬¤¢¤ê¤Þ¤»¤ó¡£") && next;
            }
    
            $M .= &beat_price($Up);
    
            &change_status($U,'gl',$Up->{sp});
            &change_status($I,'px',$Up->{sl});
            &change_status($I,'gl',-$Up->{Sp});
            &change_status($U,'px',-$Up->{sl});
    
            $Up->{Im} = &item_image($Up);
    
            $M .= "$Up->{Im}$I->{nm}¤Ï$Up->{nm}¤ò$Up->{sp} $set::mny¤Ç¹ØÆþ¤·¤Þ¤·¤¿¡£<br>\n";
            &M("$Up->{Im}$Up->{nm}¤ò¹ØÆþ¤·¤Þ¤·¤¿¡£");
    
            $Up->{sp} = '';
            $Up->{rs} = '';
    
            $Ip = {%{$Up}};
            push (@{$I->{Pt}},$Ip);
            $Up->{id} = '';
            $buypetsflag = 1;
        }
    
        if ($buypetsflag) {
            &sort_pet($I);
            &set_pet($I);
            &set_pet($U);
        }
    ¢­
        &set_code;
    
        require "$set::lib_dir/purchase.cgi";
    
        &get_item($I);
        &get_item($U);
    
        if ($M .= &purchase_item($U->{Bg},'','Xx')) {
            &sort_item($I);
            &set_item($I);
            &set_item($U) if !$U->{Sk}{Ms}; # Mass Selling
        }
    
        &get_pet($I);
        &get_pet($U);
    
        if ($M .= &purchase_pet($U->{Pt},'','Xx')) {
            &sort_pet($I);
            &set_pet($I);
            &set_pet($U);
        }
    
    # Beat the Price #
    sub beat_price {
    my  $Si = shift;
    
        # ÃÍÀÚ¤ê #
        if ($I->{Sk}{Bp} && &roll_dice(100 + $I->{Map} - $I->{ap}) <= $set::sBp) {
            $Si->{sp} -= int($Si->{sp} * $set::uBp / 100);
            $Si->{Sp} -= int($Si->{Sp} * $set::uBp / 100);
            &M("$U->{nm}¤Ï$Si->{nm}¤ò$set::uBp%°ú¤­¤Î$Si->{Sp} $set::mny¤Ë¤·¤Æ¤¯¤ì¤Þ¤·¤¿¡£");
            return "$Si->{nm}¤ò$set::uBp%°ú¤­¤Ë¤·¤Æ¤¢¤²¤Þ¤·¤¿¡£<br>\n";
        }
        return '';
    }
    
    ¤òºï½ü
    

    library/purchase.cgi¤Î¤Û¤¦¤Ë°Üư¤·¤Þ¤·¤¿

    library/farm.cgi¤ò³«¤¯
    sub farm_before:
            $t1 .= qq|<input type=checkbox name=$Ui->{id} class=checkbox> |;
            $t1 .= &decorate_item($Ui);
    ¢­
            $t1 .= qq|<tr>\n<td>\n|;
            $t1 .= qq|<input type=checkbox name=$Ui->{id}_$Ui->{gd} class=checkbox> |;
            $t1 .= &decorate_item($Ui,2);
            if ($set::mif{Fm}) {
                $t1 .= qq|</td>\n<td class=r>|;
                $t1 .= qq|x <input type=textbox name=t_$Ui->{id}_$Ui->{gd} class=textbox size=5 value=1>|;
            }
            $t1 .= qq|</td>\n</tr>\n|;
    
    sub farm_before:
        foreach $Up (@{$LC{$I->{pl}}}) {
    ¢­
        $t1 = $t1 && $set::mif{Fm} ? qq|<td class=r>¹ØÆþ¸Ä¿ô</td>\n</tr>\n$t1| : qq|</tr>\n$t1|;
    
        $t1 = <<"    END_OF_HTML";
        <tr class=first>
        <td>ÇÀ¾ì¤ÇÈÎÇ䤷¤Æ¤¤¤ë¥¢¥¤¥Æ¥à</td>
        $t1
        END_OF_HTML
    
        foreach $Up (@{$LC{$I->{pl}}}) {
    
    sub farm_before:
            $t2 .= qq|<input type=checkbox name=$Up->{id} class=checkbox> |;
            $t2 .= &decorate_item($Up);
    ¢­
            $t2 .= qq|<tr>\n<td>\n|;
            $t2 .= qq|<input type=checkbox name=$Up->{id}_$Ui->{gd} class=checkbox> |;
            $t2 .= &decorate_item($Up,2);
            if ($set::mif{Fm}) {
                $t2 .= qq|</td>\n<td class=r>|;
                $t2 .= qq|x <input type=textbox name=t_$Up->{id}_$Up->{gd} class=textbox size=5 value=1>|;
            }
            $t2 .= qq|</td>\n</tr>\n|;
    
    sub farm_before:
        &get_code;
    ¢­
        $t2 = $t2 && $set::mif{Fm} ? qq|<td class=r>¹ØÆþƬ¿ô</td>\n</tr>\n$t2| : qq|</tr>\n$t2|;
    
        $t2 = <<"    END_OF_HTML";
        <tr class=first>
        <td>ÇÀ¾ì¤ÇÈÎÇ䤷¤Æ¤¤¤ëưʪ</td>
        $t2
        END_OF_HTML
    
        &get_code;
        &get_item($I);
    
    sub farm_before:
        <tt>ÇÀ¾ì¤ÇÈÎÇ䤷¤Æ¤¤¤ë¥¢¥¤¥Æ¥à</tt><br>
        $t1
    ¢­
        <table class=item>
        $t1
        </table>
    
    sub farm_before:
        <div class=r><tt>¥¢¥¤¥Æ¥àÁí½ÅÎÌ¡§$I->{bg}/$I->{Mbg} $set::wgt</tt></div>
    ¢­
        <div class=r><tt>
        ¥¢¥¤¥Æ¥àÁí½ÅÎÌ¡§$I->{bg}/$I->{Mbg} $set::wgt<br>
        ²Ùʪ¥¹¥í¥Ã¥È¡§$I->{Bs}/$I->{bs}<br>
        ¥Ñ¥Ã¥¯¥¹¥­¥ë¡§$I->{pc}
        </tt></div>
    
    sub farm_before:
        <tt>ÇÀ¾ì¤ÇÈÎÇ䤷¤Æ¤¤¤ëưʪ</tt><br>
        $t2
    ¢­
        <table class=item>
        $t2
        </table>
    
    sub farm_after:
    my  $Ii;
    my  $Ui;
    my  $Up;
    my  $buyitemflag;
    my  $buypetsflag;
    
    ¤òºï½ü
    
    sub farm_after:
        &get_appearance($I);
    ¢­
        &get_appearance($I);
    
        &get_place($I);
    
    sub farm_after:
        &get_item($I);
    
        foreach $Ui (@{$IC{$I->{pl}}}) {
            $Ui = $FI{$Ui};
            next if !$F{$Ui->{id}};
    #        $Ui->{Sp} = $Ui->{bp} * $Ui->{qn};
            $Ui->{Sp} = int($Ui->{bp} * $Ui->{qn} * $I->{Ap});
    
            &say('¤³¤ì°Ê¾å¤Ï½Å¤¯¤Æ»ý¤Æ¤Þ¤»¤ó','farm_before') if $I->{bg} + $Ui->{wt} * $Ui->{qn} > $I->{Mbg};
            &say('¤ª¶â¤¬Â­¤ê¤Þ¤»¤ó','farm_before') if $Ui->{Sp} > $I->{gl};
            &say("²Ùʪ¥¹¥í¥Ã¥È¤¬°ìÇդǤ¹",'farm_before') if @{$I->{Bg}} >= $I->{bs};
    
            &change_status($I,'gl',-$Ui->{Sp});
            &change_status($I,'bg',$Ui->{wt} * $Ui->{qn});
    
            $Ui->{Im} = &item_image($Ui);
    
            &M("$Ui->{Im}$Ui->{nm}¤ò$Ui->{qn}¤Ä¹ØÆþ¤·¤Þ¤·¤¿¡£");
    
            push (@{$I->{Bg}},$Ui);
            $buyitemflag = 1;
        }
    
        if ($buyitemflag) {
            &sort_item($I);
            &set_item($I);
        }
    
        &get_pet($I);
    
        foreach $Up (@{$LC{$I->{pl}}}) {
            $Up = $FL{$Up};
            next if !$F{$Up->{id}};
            $Up->{Sp} = $Up->{bp};
    
            &say('¥¹¥í¥Ã¥È¤¬¶õ¤¤¤Æ¤¤¤Þ¤»¤ó','farm_before') if $I->{px} + $Up->{sl} > $I->{Mpx};
            &say('¤ª¶â¤¬Â­¤ê¤Þ¤»¤ó','farm_before') if $Up->{Sp} > $I->{gl};
    
            &change_status($I,'gl',-$Up->{Sp});
            &change_status($I,'px',$Up->{sl});
    
            $Up->{Im} = &item_image($Up);
    
            &M("$Up->{Im}$Up->{nm}¤ò¹ØÆþ¤·¤Þ¤·¤¿¡£");
    
            $Up->{up} = $Up->{bt} = time;
            $Up->{pd} = time if $Up->{pd};
            $Up->{ch} = &roll_dice(5) - 1;
            push (@{$I->{Pt}},$Up);
            $buypetsflag = 1;
        }
    
        if ($buypetsflag) {
            &sort_pet($I);
            &set_pet($I);
        }
    ¢­
        require "$set::lib_dir/purchase.cgi";
    
        &get_item($I);
    
        if (&purchase_item($IC{$I->{pl}},\%FI,'Fm')) {
            &sort_item($I);
            &set_item($I);
        }
    
        &get_pet($I);
    
        if (&purchase_pet($LC{$I->{pl}},\%FL,'Fm')) {
            &sort_pet($I);
            &set_pet($I);
        }
    
    library/shopping.cgi¤ò³«¤¯
    sub shopping_before:
            $Ui->{Sp} = $Ui->{bp};
            $t1 .= qq|<input type=radio name=ui class=radio value="$Ui->{id}"> |;
            $t1 .= &decorate_item($Ui);
    ¢­
            $Ui->{Sp} = $Ui->{bp} * $Ui->{qn};
            $t1 .= qq|<tr>\n<td>\n|;
            $t1 .= qq|<input type=checkbox name=$Ui->{id}_$Ui->{gd} class=checkbox> |;
            $t1 .= &decorate_item($Ui,2);
            if ($set::mif{Mk}) {
                $t1 .= qq|</td>\n<td class=r>|;
                $t1 .= qq|x <input type=textbox name=t_$Ui->{id}_$Ui->{gd} class=textbox size=5 value=1>|;
            }
            $t1 .= qq|</td>\n</tr>\n|;
    
    sub shopping_before:
        &get_code;
    ¢­
        $t1 = <<"    END_OF_HTML" if $t1 && $set::mif{Bm};
        <tr class=first>
        <td colspan=2 class=r>¹ØÆþ¸Ä¿ô</td>
        </tr>
        $t1
        END_OF_HTML
    
        &get_code;
        &get_item($I);
    
    sub shopping_before:
        $t1
    ¢­
        <table class=item>
        $t1
        </table>
    
    sub shopping_before:
        ¸Ä¿ô¡§<input type=textbox name=hm class=textbox size=2 value="1"><br>
    
    ¤òºï½ü
    
    sub shopping_before:
        ¥¢¥¤¥Æ¥àÁí½ÅÎÌ¡§$I->{bg}/$I->{Mbg} $set::wgt<br>
    ¢­
        ¥¢¥¤¥Æ¥àÁí½ÅÎÌ¡§$I->{bg}/$I->{Mbg} $set::wgt<br>
        ²Ùʪ¥¹¥í¥Ã¥È¡§$I->{Bs}/$I->{bs}<br>
        ¥Ñ¥Ã¥¯¥¹¥­¥ë¡§$I->{pc}<br>
    
    sub shopping_after:
    my  $Ii;
    my  $Ui;
    
        &say("¸Ä¿ô¤Ë¤Ï¿ôÃͰʳ°»ÈÍѤǤ­¤Þ¤»¤ó",'shopping_before') if $F{hm} =~ /[^\d]/;
        &say("¸Ä¿ô¤òÀßÄꤷ¤Æ²¼¤µ¤¤",'shopping_before') if !$F{hm};
        &say("¾¦Éʤ¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó",'shopping_before') if !$F{ui};
    
        $F{hm} = int($F{hm});
    
    ¤òºï½ü
    
    sub shopping_after:
        foreach $Ui (@{$IC{$I->{pl}}}) {
            $Ui = $FI{$Ui};
            if ($F{ui} eq $Ui->{id}) {
                $Ui->{Sp} = int($Ui->{bp} * $I->{Ap}) * $F{hm};
    
                &say('¤³¤ì°Ê¾å¤Ï½Å¤¯¤Æ»ý¤Æ¤Þ¤»¤ó','shopping_before') if $I->{bg} + $Ui->{wt} * $F{hm} > $I->{Mbg};
                &say('¤ª¶â¤¬Â­¤ê¤Þ¤»¤ó','shopping_before') if $Ui->{Sp} > $I->{gl};
    
                &change_status($I,'gl',-$Ui->{Sp});
                &change_status($I,'bg',$Ui->{wt} * $F{hm});
    
                $Ui->{Im} = &item_image($Ui);
    
                &M("$Ui->{Im}$Ui->{nm}¤ò$F{hm}¤Ä¹ØÆþ¤·¤Þ¤·¤¿¡£");
    
                # ¥Ð¥é¤ÇÄɲÃ
                if (&item_class_check($Ui) ne 'M') {
                    $Ui->{qn} = 1;
                    for (1..$F{hm}) { push(@{$I->{Bg}},$Ui) }
                }
                # ¥Ñ¥Ã¥¯¤ÇÄɲÃ
                else {
                    $Ui->{qn} = $F{hm};
                    push(@{$I->{Bg}},$Ui);
                }
                &say("²Ùʪ¥¹¥í¥Ã¥È¤¬°ìÇդǤ¹",'shopping_before') if @{$I->{Bg}} > $I->{bs};
                last;
            }
        }
    
        &sort_item($I);
    
        &set_item($I);
    ¢­
        require "$set::lib_dir/purchase.cgi";
    
        if (&purchase_item($IC{$I->{pl}},\%FI,'Mk','shopping_before')) {
            &sort_item($I);
            &set_item($I);
        }
    
    library/bag.cgi¤ò³«¤¯
            $t1 .= &decorate_item($Ii);
    ¢­
            if ($set::mif{Xx}) {
                $Ii->{Sp} = $set::uop ? $Ii->{sp} : int($Ii->{sp} / $Ii->{qn});
                $t1 .= &decorate_item($Ii);
            }
            else {
                $Ii->{Sp} = $set::uop ? $Ii->{sp} * $Ii->{qn} : $Ii->{sp};
                $t1 .= &decorate_item($Ii,2);
            }
    
    library/compose.cgi¤ò³«¤¯
            $t1 .= &decorate_item($Ii);
    ¢­
            if ($set::mif{Xx}) {
                $Ii->{Sp} = $set::uop ? $Ii->{sp} : int($Ii->{sp} / $Ii->{qn});
                $t1 .= &decorate_item($Ii);
            }
            else {
                $Ii->{Sp} = $set::uop ? $Ii->{sp} * $Ii->{qn} : $Ii->{sp};
                $t1 .= &decorate_item($Ii,2);
            }
    
    library/playerlist.cgi¤ò³«¤¯
    sub playerlist:
                $t2 .= "x$Ui->{qn}" if $Ui->{qn} > 1;
                push(@T,"$t2=$Ui->{sp}$set::mny");
    ¢­
                $t2  = "[$t2=$Ui->{sp}$set::mny]" if $set::mif{Xx};
                $t2 .= "x$Ui->{qn}" if $Ui->{qn} > 1;
                $t2 .= "=$Ui->{sp}$set::mny" if !$set::mif{Xx};
                push(@T,$t2);
    
    sub sales_information:
            &playerlist_decorate_item($T);
    ¢­
            &playerlist_decorate_item($T);
            $T->{qn} ||= 1;
            $T->{sp} = $set::mif{Xx} && !$set::uop ? int($T->{sp} / $T->{qn}) :
                       !$set::mif{Xx} && $set::uop ? $T->{sp} * $T->{qn} : $T->{sp};
    
    library/price.cgi¤ò³«¤¯
    sub price_before:
    my ($t1,$t2);
    ¢­
    my ($t1,$t2,$t3);
    
        $t3 = $set::uop ? '¤Ò¤È¤ÄÅö¤¿¤ê¤Î' : '';
    
    sub price_before:
                $Ii->{qn} = 1 if $F{fl} eq 'pet';
                $Ii->{Sp} = $Ii->{bp} * $Ii->{qn} + $set::lip;
                $t1 .= qq|<input type=textbox name=$i class=textbox size=5 value="$Ii->{Sp}"> |;
                $t1 .= &decorate_item($Ii);
    ¢­
                if ($set::uop) {
                    $Ii->{Sp} = $Ii->{bp} + $set::lip;
                    $t1 .= qq|<input type=textbox name=$i class=textbox size=5 value="$Ii->{Sp}"> |;
                    $t1 .= &decorate_item($Ii,1);
                }
                else {
                    $Ii->{qn} = 1 if $F{fl} eq 'pet';
                    $Ii->{Sp} = $Ii->{bp} * $Ii->{qn} + $set::lip;
                    $t1 .= qq|<input type=textbox name=$i class=textbox size=5 value="$Ii->{Sp}"> |;
                    $t1 .= &decorate_item($Ii,2);
                }
    
    sub price_before:
        <tt>¿ôÃͤòÆþÎϤ·¤ÆÃÍÃʤòÀßÄꤷ¤Æ²¼¤µ¤¤¡£<br>ɽ\¼¨¤µ¤ì¤ëÃÍÃʤϺÇÄãÈÎÇä²Á³Ê</tt><br>
    ¢­
        <tt>¿ôÃͤòÆþÎϤ·¤Æ$t3ÃÍÃʤòÀßÄꤷ¤Æ²¼¤µ¤¤¡£<br>ɽ\¼¨¤µ¤ì¤ëÃÍÃʤϺÇÄãÈÎÇä²Á³Ê</tt><br>
    
    sub price_after:
                next if !$F{$i};
    ¢­
                next if !$F{$i};
                $Ii->{Bp} = $set::uop ? $Ii->{bp} : $Ii->{bp} * $Ii->{qn};
    
    sub price_after:
                elsif ($F{$i} < $Ii->{bp} * $Ii->{qn} + $set::lip) {
    ¢­
                elsif ($F{$i} < $Ii->{Bp} + $set::lip) {
    
    library/sell.cgi¤ò³«¤¯
    sub sell_before:
            $t1 .= &decorate_item($Ii);
    ¢­
            $t1 .= &decorate_item($Ii,2);
    
    sub.css¤ò³«¤¯
    /* ¥¢¥¤¥Æ¥à */
    .item {
      width: 100%;
    }
    .item .first td {
      padding-bottom: 5px;
      font-size: 11px;
      font-family: monospace;
      color: #005533;
    }
    .item td {
      margin: 0;
      padding: 0;
      font-size: 12px;
    }
    .item td.r {
      vertical-align: bottom;
    }
    
    ¤òÄɲÃ
    

    ¶ä¹Ô¤Ë»ØÄê¸Ä¿ô¼è°ú/¶ä¹Ô¼«Æ°À°Íýµ¡Ç½ÄɲäÇÄɲä·¤¿¤â¤Î¤ÈƱ¤¸¤Ç¤¹

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ÂÐÀïÁê¼ê¤ÎÍúÎò¤Ë¼«Ê¬¤¬ºÜ¤Ã¤Æ¤¤¤Æ¤â»þ´Ö·Ð²á¤·¤Æ¤¤¤ì¤ÐºÆÀï²Äǽ¤Ë¤·¤Æ¤ß¤ë¡£

    set.cgi¤ò³«¤¯
    # ÀïÆ® Fight ######################################### #
    $elt = 24;                   # ÀïÆ®Áê¼ê¤ÎÍúÎò¤Ë¤¢¤Ã¤Æ¤ân»þ´Ö·Ð²á¤·¤Æ¤¤¤ì¤ÐÀïÆ®²Äǽ¤Ë¤¹¤ë(yes=»þ´Ö,no=0)
    
    library/fight.cgi¤ò³«¤¯
    sub fight_player:
        @Den = grep { $_ eq $I->{id} } @Uen;
    ¢­
        @Den = grep { $_->[0] eq $I->{id} &&
                    (!$set::elt || time - $_->[1] < $set::elt * 3600) } map  { [split /:/] } @Uen;
    
    sub fight_player:
        $U->{en} = join(',',$I->{id},@Uen);
    ¢­
        $U->{en} = join(',',"$I->{id}:".time,@Uen);
    

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ÇÀ¾ì¤Ç¤âAPP¤Ë¤è¤Ã¤ÆÈÎÇä²Á³Ê¤¬ÊÑÆ°¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤ß¤ë¡£

    library/farm.cgi¤ò³«¤¯
    # Sub Farm Before #
    ¢­
    require "$set::lib_dir/status.cgi";
    
    # Sub Farm Before #
    
    sub farm_before:
        &dead_check($I,'CLOSE');
    ¢­
        &dead_check($I,'CLOSE');
    
        &get_appearance($I);
    
    sub farm_after:
        $I = &get_user('I');
    ¢­
        $I = &get_user('I');
    
        &get_appearance($I);
    
    sub farm_after:
            $Ui->{Sp} = $Ui->{bp} * $Ui->{qn};
    ¢­
            $Ui->{Sp} = int($Ui->{bp} * $Ui->{qn} * $I->{Ap});
    

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ¥ª¡¼¥Ö¤Î½ê»ý¸Ä¿ô¤È­¤ê¤Ê¤¤¥ª¡¼¥Ö¤òɽ¼¨¤·¤Æ¤ß¤ë¡£

    library/orb.cgi¤ò³«¤¯
    sub orb_before:
    my ($t1,$t2);
    ¢­
    my ($t1,$t2,$t3);
    
    sub orb_before:
        @{$I->{Ob}} = split(//,$I->{ob});
    ¢­
        @{$I->{Ob}} = split(//,$I->{ob});
    
        $total = @{$I->{Ob}};
    
    sub orb_before:
        &get_code;
    ¢­
        foreach ('a' .. 'l') {
            $t3 .= &orb_image($_) if $I->{ob} !~ s/$_//i;
        }
    
        $t3 ||= '¤Ê¤·';
    
        &get_code;
    
    sub orb_before:
        $t1
        <br>
    ¢­
        $t1
        <br>
        <tt>½ê»ý¤·¤Æ¤¤¤ë$set::orb{x}</tt>
        $total/$set::mob<br>
        <tt>ÉÔ­¤·¤Æ¤¤¤ë$set::orb{x}</tt>
        $t3<br>
        <br>
    

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    Ëɶñ¥ê¥¹¥È¤ËÁõÈ÷¡¦ºîÀ®¤ÎɬÍ×ǽÎÏÃͤò·ÇºÜ¡£

    armor.lzh¡§¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¤ª»È¤¤¤¯¤À¤µ¤¤

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    Ê£¿ô¥ª¡¼¥Ö¥È¥ì¡¼¥É¤ò¼ÂÁõ¤·¤Æ¤ß¤ë¡£

    library/trade.cgi¤ò³«¤¯
    sub trade_before:
    my  $checked;
    ¤È
        $checked = ' checked';
    ¤È
                $checked = '';
    ¤òÁ´¤Æºï½ü
    
    sub trade_before:
                $t1 .= qq|<input type=radio name=Iob class=radio value="$_"$checked> |;
    ¢­
                $t1 .= "<input type=checkbox name=I$_ class=checkbox> ";
                $t1 .= "<input type=text size=2 name=tI$_ class=textbox value=1> ";
    
    sub trade_before:
                $t2 .= qq|<input type=radio name=Uob class=radio value="$_"$checked> |;
    ¢­
                $t2 .= "<input type=checkbox name=U$_ class=checkbox> ";
                $t2 .= "<input type=text size=2 name=tU$_ class=textbox value=1> ";
    
    sub trade_before:
        <tt>¤½¤ì¤¾¤ì¥È¥ì¡¼¥É¤¹¤ë$set::orb{x}¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£</tt><br>
    ¢­
        <tt>¤½¤ì¤¾¤ì¥È¥ì¡¼¥É¤¹¤ë$set::orb{x}¤Ë¥Á¥§¥Ã¥¯¤òÆþ¤ì¡¢¸Ä¿ô¤ò¤¢¤ï¤»¤Æ$set::okb¥Ü¥¿¥ó¤ò²¡¤·¤Æ¤·¤Æ¤¯¤À¤µ¤¤¡£</tt><br>
    
    sub trade_after:
    sub trade_after {
    ¢­
    sub trade_after {
    my ($t1,$t2);
    my ($Itc,$Utc,$count);
    
    sub trade_after:
        unless ($I->{ob} =~ s/$F{Iob}// || $I->{ob} =~ s/$F{Iob}//i) { &say('¥È¥ì¡¼¥É¤Ë¼ºÇÔ¤·¤Þ¤·¤¿','trade_before') }
        else { @{$I->{Ob}} = split(//,$I->{ob}.uc($F{Uob})) }
        &set_orb($I);
    
        unless ($U->{ob} =~ s/$F{Uob}//) { &say('¥È¥ì¡¼¥É¤Ë¼ºÇÔ¤·¤Þ¤·¤¿','trade_before') }
        else { @{$U->{Ob}} = split(//,$U->{ob}.uc($F{Iob})) }
        &set_orb($U);
    ¢­
        foreach ('a' .. 'l') {
            $count = 0;
            while ($F{"I$_"} && $count < $F{"tI$_"}) {
                $I->{ob} =~ s/$_// || $I->{ob} =~ s/$_//i || &say("$U->{nm}¤ËÅϤ¹$set::orb{$_}$set::orb{x}¤¬Â­¤ê¤Þ¤»¤ó",'trade_before');
    
                $t1 .= &orb_image($_);
                $U->{ob} .= uc($_);
    
                $Itc++;
                $count++;
            }
    
            $count = 0;
            while ($F{"U$_"} && $count < $F{"tU$_"}) {
                $U->{ob} =~ s/$_// || &say("$I->{nm}¤ËÅϤ¹$set::orb{$_}$set::orb{x}¤¬Â­¤ê¤Þ¤»¤ó",'trade_before');
    
                $t2 .= &orb_image($_);
                $I->{ob} .= uc($_);
    
                $Utc++;
                $count++;
            }
        }
    
        &say("¥È¥ì¡¼¥É¤¹¤ë$set::orb{x}¤Î¿ô¤¬°ìÃפ·¤Þ¤»¤ó",'trade_before') if $Itc != $Utc;
    
        @{$I->{Ob}} = split(//,$I->{ob});
        @{$U->{Ob}} = split(//,$U->{ob});
    
        &set_orb($I);
        &set_orb($U);
    
    sub trade_after:
        lc $F{Iob};
        lc $F{Uob};
    
        &set_record("$I->{nm}¤¬$set::orb{$F{Iob}}$set::orb{x}¤ò$U->{nm}¤Î$set::orb{$F{Uob}}$set::orb{x}¤È¥È¥ì¡¼¥É¤·¤Þ¤·¤¿¡£");
        &partner('',"$set::orb{x}¤ò¥È¥ì¡¼¥É¤·¤Þ¤·¤¿");
    ¢­
        &set_record("$I->{nm}¤¬$set::orb{x}¤Î¥È¥ì¡¼¥É¤ËÍè¤Þ¤·¤¿¡£<br>\n$t1¡§$I->{nm}¤Î½Ð¤·¤¿$set::orb{x}<br>\n$t2¡§$U->{nm}¤Î½Ð¤·¤¿$set::orb{x}");
        &partner($U->{w10},"$set::orb{x}¤ò¥È¥ì¡¼¥É¤·¤Þ¤·¤¿¡£<br>\n$t1¡§$I->{nm}¤Î½Ð¤·¤¿$set::orb{x}<br>\n$t2¡§$U->{nm}¤Î½Ð¤·¤¿$set::orb{x}");
    

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ¤¤¤Ä¤â¤Î2ÇܺîÀ®¤ËÀ®¸ù¤·¤¿¤é³ÍÆÀ·Ð¸³Ãͤâ2Çܤˤ·¤Æ¤ß¤ë¡£

    set.cgi¤ò³«¤¯
    # ¹çÀ® Compose ####################################### #
    $dex = 2;                    # ¥À¥Ö¥ë¥í¡¼¥ë¤ËÀ®¸ù¤·¤¿¤È¤­¤Ï³ÍÆÀ·Ð¸³ÃͤònÇܤˤ¹¤ë
    
    library/compose.cgi¤ò³«¤¯
    sub compose_after:
            &double_roll($I,$Ui->{dt}) if $Ui->{dt}{cl} =~ /(Fd|Mt)/;
    ¢­
            &double_roll($I,$Ui->{dt}) if $Ui->{dt}{cl} =~ /(Fd|Mt)/;
            $Ui->{ex} = int($Ui->{ex} * $set::dex) if $I->{DB};
    
    sub double_roll:
            $Si->{qn} *= $set::ddu;
    ¢­
            $S->{DB} = 1;
    

    ±þÍѤǥ¨¥¯¥»¥ì¥ó¥È¥í¡¼¥ë¤Î¤È¤­¤â½ÐÍè¤Þ¤¹¤Í¡£

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ÅêÚ³Éð´ï¤Ç¤ÎÀèÀ©¹¶·â¤Î¥À¥á¡¼¥¸¤ò¸º¾¯¤µ¤»¤Æ¤ß¤ë¡£

    ¡ÖÅêÚ³Éð´ï¤Ç¤ÎÀèÀ©¤ÇÁê¼ê¤ÎÁõÈ÷¡¦¥¹¥­¥ë¤¬¤Û¤È¤ó¤É̵»ë¤µ¤ì¤Æ¤·¤Þ¤¦¡×¤Î½¤Àµ¤òÀè¤Ë¹Ô¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡£

    library/fight.cgi¤ò³«¤¯
    sub concrete_battle:
            $ADM += $A->{tc} if $F == 2;
    ¢­
            $ADM += &roll_dice($A->{tc}) if $F == 2;
    

    $A->{tc}¤Î¥×¥é¥¹Ãͤò¥é¥ó¥À¥à¤Ë¡£
    ¥é¥ó¥À¥à¤Ê¤Î¤ÇÅêÚ³Éð´ï¤Ç¤ÎÀèÀ©¤Ï¤«¤Ê¤ê¥à¥é¤Î¤¢¤ë¥¢¥¯¥·¥ç¥ó¤Ë¤Ê¤ê¤Þ¤¹¡£¥Ð¥é¥ó¥¹·ë¹½ÊѤï¤ë¤Ï¤º¤Ê¤Î¤ÇÃí°Õ¡£

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ¥À¥ó¥¸¥ç¥ó¤Ç¡¢²ÙʪÂÞ¤«¤é¡ÖÁ´¤Æ¤ò¥Ñ¥Ã¥¯¤¹¤ë¡×¤òÁªÂò¤Ç¤­¤ë¤è¤¦¤Ë¤·¤Æ¤ß¤ë¡£

    library/dungeon.cgi¤ò³«¤¯
    sub dungeon_bag:
        <option value="pack">¥Ñ¥Ã¥¯¤Ë¤¹¤ë</option>
    ¢­
        <option value="pack_all">Á´¤Æ¤ò¥Ñ¥Ã¥¯¤Ë¤¹¤ë</option>
    

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ¥Õ¥ì¥ó¥É¤Î¸½ºßÃϤòÃϿޤËɽ¼¨¤·¤Æ¤ß¤ë¡£

    ¥Õ¥ì¥ó¥É¤Î¸½ºßÃϤòÃϿޤËɽ¼¨¤·¤Þ¤¹¡£
    ¼«Ê¬¤ò¥Õ¥ì¥ó¥ÉÅÐÏ¿¤·¤Æ¤¤¤ë¥×¥ì¥¤¥ä¡¼¤ÎÃϿޤ˼«Ê¬¤Î¸½ºßÃϤòɽ¼¨¤¹¤ë¤«¤ÎÀßÄê¤â¤Ç¤­¤Þ¤¹¡£

    library/main.cgi¤ò³«¤¯
    sub main:
        <input type=hidden name=x value="$X">
        <input type=hidden name=y value="$Y">
        <input type=hidden name=sx value="$I->{sx}">
    ¢­
        <input type=hidden name=id value="$F{id}">
        <input type=hidden name=ps value="$F{ps}">
    
    library/map.cgi¤ò³«¤¯

    sub map¤ò°Ê²¼¤ËÃÖ¤­´¹¤¨

    # Sub Map #
    sub map {
    my  $V;
    my ($X,$Y,$Z);
    my  %V;
    my  @FR;
    
        $I = &get_user('I');
    
        @FR = split(/,/,$I->{fr});
        shift @FR;
    
        push(@{$V{$I->{pl}}},[$I->{id},$I->{nm},$I->{sx}]);
        foreach (@FR) {
            ($U->{id},$U->{nm}) = split(/\//);
            next unless -e "$set::Udt_dir/$U->{id}.cgi";
            $U = &get_user('U',$U->{id},'unlocked') or next;
            $Z = (split(/,/,$U->{fr},2))[0];
            push(@{$V{$U->{pl}}},[$U->{id},$U->{nm},$U->{sx}]) if $Z eq 'on' || $Z eq 'only' && grep { (split /\//)[0] eq $U->{id} } @FR;
        }
    
        &header(CSS=>'map',JavaScript=>'Set,MapProgram,MapInformation,MapData',Body=>' onLoad="SetMap()"');
        print qq|<div id=box class=map style="visibility:hidden"></div>\n|;
        print qq|<span id=map></span>\n|;
    
        require "$set::dat_dir/place.cgi";
        foreach $V (keys %V) {
            ($X,$Y) = split(/,/,$PL{$V}{lc});
            print qq|<span style="position:absolute;top:$Y;left:$X">|;
            foreach $Z (@{$V{$V}}) {
                print qq|<img src=$set::mim_dir/$Z->[2].gif id="$Z->[0]" onMouseOver="Information(this.id,event,'$Z->[0]/$Z->[1]')" onMouseOut="Information(0)">| if $Z->[2];
            }
            print qq|</span>\n|;
        }
        &footer;
    }
    
    library/mail.cgi¤ò³«¤¯
    sub mail_before:
            ($U->{id},$U->{nm}) = split(/\//);
    ¢­
            next unless /\//;
            ($U->{id},$U->{nm}) = split(/\//);
    
    library/friends.cgi¤ò³«¤¯
    sub friends_before:
    my  $t1;
    ¢­
    my ($t1,$t2);
    my ($V,$T);
    my  @FR;
    
    sub friends_before:
        $I = &get_user('I');
    ¢­
        $I = &get_user('I');
    
        ($T,@FR) = split(/,/,$I->{fr});
    
    sub friends_before:
        $t1 = "¸½ºß¤Ïï¤â¤¤¤Þ¤»¤ó¡£" if !$t1;
    ¢­
        $t1 = "¸½ºß¤Ïï¤â¤¤¤Þ¤»¤ó¡£<br>" if !$t1;
    
        $V = $T eq 'on'   ? ' checked' : '';
        $t2 .= "<input type=radio class=radio name=map value=on$V>Á´¤Æ¤Î¥×¥ì¥¤¥ä¡¼¤ËÄÌÃÎ<br>";
        $V = $T eq 'only' ? ' checked' : '';
        $t2 .= "<input type=radio class=radio name=map value=only$V>¥Õ¥ì¥ó¥ÉÅÐÏ¿¼Ô¤Ë¤Î¤ßÄÌÃÎ<br>";
        $V = $T eq 'off'  ? ' checked' : '';
        $t2 .= "<input type=radio class=radio name=map value=off$V>ÄÌÃΤ·¤Ê¤¤<br>";
    
    sub friends_before:
        $t1
        <br>
    ¢­
        $t1
        <br>
        ¸½ºßÃÏÄÌÃÎÀßÄê<br>
        <tt>¼«Ê¬¤ò¥Õ¥ì¥ó¥ÉÅÐÏ¿¤·¤Æ¤¤¤ë¥×¥ì¥¤¥ä¡¼¤ÎÃϿޤ˸½ºßÃϤòɽ\¼¨¤¹¤ë¤«¤ÎÀßÄê¤òÊѹ¹¤·¤Þ¤¹¡£</tt><br>
        $t2
        <br>
    
    sub friends_after:
    my  $FR;
    my  @FR;
    
        $I = &get_user('I');
        @FR = map  { $_->[0] }
              grep { $F{$_->[1]} }
              map  { [$_,(split(/\//))] } split(/,/,$I->{fr});
    ¢­
    my  $FR;
    my  @FR;
    my  $T;
    
        $I = &get_user('I');
        ($T,@FR) = split(/,/,$I->{fr});
        @FR = map  { $_->[0] }
              grep { $F{$_->[1]} }
              map  { [$_,(split(/\//))] } @FR;
    
    sub friends_after:
        $I->{fr} = join(',',@FR);
    ¢­
        $T = $F{map} eq 'on'   ? 'on'   :
             $F{map} eq 'only' ? 'only' : 'off';
    
        $I->{fr} = join(',',$T,@FR);
    
    javascript/MapProgram.js¤ò³«¤¯
    function Information:
    function Information(index,e) {
    ¢­
    function Information(index,e,text) {
    
    function Information:
            target.innerHTML  = msg[index];
    ¢­
            target.innerHTML  = text ? text : msg[index];
    
    function Information:
    	        target.innerHTML  = msg[index];
    ¢­
    	        target.innerHTML  = text ? text : msg[index];
    
    function Information:
    	        target.document.write(msg[index]);
    ¢­
    	        target.document.write(text ? text : msg[index]);
    

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ¥°¥ì¡¼¥É¤òʸ»ú¤Çɽ¼¨¤·¤Æ¤ß¤ë¡£

    ¥°¥ì¡¼¥É2°Ê¾å¤Î¥¢¥¤¥Æ¥à¤ò¡ÖÌÚ¤ÎÈÄ:G2¡×¤Î¤è¤¦¤Ëɽ¼¨¤·¤Þ¤¹¡£
    ¿§Ê¬¤±¤µ¤ì¤Æ¤¤¤Æ¤âʬ¤«¤ê¤Ë¤¯¤¤»þ¤Ë¤ä¤Ã¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£

    library/base.cgi¤ò³«¤¯
    sub decorate_item:
        $V = $Si->{Nm} ? $Si->{Nm} : $Si->{nm};
    ¢­
        $V = $Si->{Nm} ? $Si->{Nm} : $Si->{nm};
        $V .= ":G$Si->{gd}" if $Si->{gd} > 1;
    

    ¡Ú¥ê¥¹¥È¤ØÌá¤ë¡Û

    ¡Ú¥È¥Ã¥×¤ØÌá¤ë¡Û