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

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

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

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

  1. ²Ùʪ´ØÏ¢¤ÎÉÔ¶ñ¹ç½¤Àµ
  2. ¤½¤Î¾¤ÎÉÔ¶ñ¹ç½¤Àµ
  3. ¤Á¤ç¤Ã¤È¤·¤¿¤³¤È


  1. ²Ùʪ´ØÏ¢¤ÎÉÔ¶ñ¹ç½¤Àµ
    1. ºîÀ®¤Ç¡¢ßîÀ½¤òºî¤ë¤³¤È¤¬½ÐÍè¤Ê¤¤
    2. ºîÀ®¤Ç¡¢ÉÔÀµ¤Ê¥Ç¡¼¥¿¤òÁ÷¤ë¤³¤È¤ÇËØ¤ÉÁ´¤Æ¤Î¥¢¥¤¥Æ¥à¤òºîÀ®¤Ç¤­¤ë

    ºîÀ®¤Ç¡¢ßîÀ½¤òºî¤ë¤³¤È¤¬½ÐÍè¤Ê¤¤ÉÔ¶ñ¹ç¤ò½¤Àµ¤·¤Þ¤¹¡£

    library/compose.cgi¤ò³«¤¯
        if ($I->{Sk}{Sm}) { $t2 .= qq|<option value="smokedfood=Sm">ßîÀ½¤òºî¤ë</option>\n| }
    ¢­
        if ($I->{Sk}{Sf}) { $t2 .= qq|<option value="smokedfood=Sf">ßîÀ½¤òºî¤ë</option>\n| }
    

    Sm ¢ª Sf

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

    ºîÀ®¤Ç¡¢ÉÔÀµ¤Ê¥Ç¡¼¥¿¤òÁ÷¤ë¤³¤È¤ÇËØ¤ÉÁ´¤Æ¤Î¥¢¥¤¥Æ¥à¤òºîÀ®¤Ç¤­¤ëÉÔ¶ñ¹ç¤ò½¤Àµ¤·¤Þ¤¹¡£

    library/compose.cgi¤ò³«¤¯
    # Sub Compose #
    sub compose {
    ¢­
    require "$set::dat_dir/compose.cgi";
    
    # Sub Compose #
    sub compose {
    
    sub compose:
        if ($I->{Sk}{Bs}) { $t2 .= qq|<option value="arms=Bs">ÃÃÌê¤ò¤¹¤ë</option>\n| }
        if ($I->{Sk}{Tk}) { $t2 .= qq|<option value="silverwork=Tk">Êõ¾þÉʤòºî¤ë</option>\n| }
        if ($I->{Sk}{Ck}) { $t2 .= qq|<option value="dish_soup=Ck">Ä´Íý¤¹¤ë¡Ê¥¹¡¼¥×¡Ë</option>\n| }
        if ($I->{Sk}{Ck}) { $t2 .= qq|<option value="dish_sandwich=Ck">Ä´Íý¤¹¤ë¡Ê¥µ¥ó¥É¥¤¥Ã¥Á¡Ë</option>\n| }
        if ($I->{Sk}{Ck}) { $t2 .= qq|<option value="dish_sweets=Ck">Ä´Íý¤¹¤ë¡Ê²Û»Ò¡Ë</option>\n| }
        if ($I->{Sk}{Ck}) { $t2 .= qq|<option value="dish_other=Ck">Ä´Íý¤¹¤ë¡Ê¤½¤Î¾¡Ë</option>\n| }
        if ($I->{Sk}{Bg}) { $t2 .= qq|<option value="liquor=Bg">°ûʪ¤òºî¤ë</option>\n| }
        if ($I->{Sk}{Wv}) { $t2 .= qq|<option value="cloth=Wv">ÉÛ¤ò¿¥¤ë</option>\n| }
        if ($I->{Sk}{Tl}) { $t2 .= qq|<option value="hat=Tl">˹»Ò¤òºî¤ë</option>\n| }
        if ($I->{Sk}{Tl}) { $t2 .= qq|<option value="clothes=Tl">Éþ¤òºî¤ë</option>\n| }
        if ($I->{Sk}{Tl}) { $t2 .= qq|<option value="leathercraft=Tl">³×À½Éʤòºî¤ë</option>\n| }
        if ($I->{Sk}{Pl}) { $t2 .= qq|<option value="crops=Pl">ÇÀºîʪ¤òºî¤ë</option>\n| }
        if ($I->{Sk}{Dp}) { $t2 .= qq|<option value="dairyproduct=Dp">ÆýÀ½Éʤòºî¤ë</option>\n| }
        if ($I->{Sk}{By}) { $t2 .= qq|<option value="bread=By">¥Ñ¥ó¤ò¾Æ¤¯</option>\n| }
        if ($I->{Sk}{Sm}) { $t2 .= qq|<option value="smokedfood=Sm">ßîÀ½¤òºî¤ë</option>\n| }
        if ($I->{Sk}{Ca}) { $t2 .= qq|<option value="woodwork=Ca">ÌÚ¹©À½Éʤòºî¤ë</option>\n| }
        if ($I->{Sk}{Vt}) { $t2 .= qq|<option value="animaldrug=Vt">ưʪÌô¤òºîÀ®¤¹¤ë</option>\n| }
        if ($I->{Sk}{Ph}) { $t2 .= qq|<option value="drug=Ph">Ä´ºÞ¤¹¤ë</option>\n| }
        if ($I->{Sk}{Cu}) { $t2 .= qq|<option value="preparation=Cu">¼£ÎŤνàÈ÷¤ò¤¹¤ë</option>\n| }
    ¢­
        foreach (sort { $CO{$a}{n} <=> $CO{$b}{n} } keys %CO) {
            $t2 .= qq|<option value="$_">$CO{$_}{lab}</option>\n| if $I->{Sk}{$CO{$_}{sk}};
        }
    
    sub compose:
        <select id=type style="visibility:visible" name=tp class=select>
    ¢­
        <select id=type style="visibility:visible" name=fi class=select>
    
    sub compose_before:
        ($K,$V) = split(/=/,$F{tp});
    
        &error('̤¼ÂÁõ') if ! -e "$set::itm_dir/$K.cgi";
        require "$set::itm_dir/$K.cgi";
    ¢­
        &error('ÉÔÀµ¤Ê¥¨¥é¡¼') if !$F{fi} || $F{fi} =~ /[^a-z_]/;
        &error('Compose Skill Error') if $CO{$F{fi}}{sk} && !$I->{Sk}{$CO{$F{fi}}{sk}};
        &error('̤¼ÂÁõ') if ! -e "$set::itm_dir/$F{fi}.cgi";
        require "$set::itm_dir/$F{fi}.cgi";
    
    sub compose_before:
        <input type=hidden name=fi value="$K">
        <input type=hidden name=sk value="$V">
    ¢­
        <input type=hidden name=fi value="$F{fi}">
    
    sub compose_after:
        &error('Compose Skill Error') if $F{sk} && !$I->{Sk}{$F{sk}};
    ¢­
        &error('Compose Skill Error') if $CO{$F{fi}}{sk} && !$I->{Sk}{$CO{$F{fi}}{sk}};
    
    sub compose_after:
        $Ui = $FI[$F{ci}-1];
        $Ui->{dt}{qn} ||= 1;
    ¢­
        $Ui = $FI[$F{ci}-1];
        $Ui->{dt}{qn} ||= 1;
    
        &error('ÉÔÀµ¤Ê¥¨¥é¡¼') unless &creativity_check($I,$Ui);
    
    °Ê²¼¤ò compose.cgi ¤È¤¤¤¦Ì¾Á°¤Ç data ¥Õ¥©¥ë¥À¤ËÊݸ
    
    # --------------------------------------------------- #
    # Script of Saga III Compose.cgi Version 1 (2.1)
    # 
    # --------------------------------------------------- #
    
    # ºîÀ®ÀßÄê
    # n   = ¥é¥Ù¥ë¤ÎÈֹ档1¤«¤é½ç¤Ëʤ֡£
    # sk  = ºîÀ®¤ËɬÍפʥ¹¥­¥ë¡£
    # lab = ¥ê¥¹¥È¤Î¥é¥Ù¥ë¡£
    
    %CO = (
        'arms'          => { n => 1,  sk => 'Bs', lab => 'ÃÃÌê¤ò¤¹¤ë' },
        'silverwork'    => { n => 2,  sk => 'Tk', lab => 'Êõ¾þÉʤòºî¤ë' },
        'dish_soup'     => { n => 3,  sk => 'Ck', lab => 'Ä´Íý¤¹¤ë¡Ê¥¹¡¼¥×¡Ë' },
        'dish_sandwich' => { n => 4,  sk => 'Ck', lab => 'Ä´Íý¤¹¤ë¡Ê¥µ¥ó¥É¥¤¥Ã¥Á¡Ë' },
        'dish_sweets'   => { n => 5,  sk => 'Ck', lab => 'Ä´Íý¤¹¤ë¡Ê²Û»Ò¡Ë' },
        'dish_other'    => { n => 6,  sk => 'Ck', lab => 'Ä´Íý¤¹¤ë¡Ê¤½¤Î¾¡Ë' },
        'liquor'        => { n => 7,  sk => 'Bg', lab => '°ûʪ¤òºî¤ë' },
        'cloth'         => { n => 8,  sk => 'Wv', lab => 'ÉÛ¤ò¿¥¤ë' },
        'hat'           => { n => 9,  sk => 'Tl', lab => '˹»Ò¤òºî¤ë' },
        'clothes'       => { n => 10, sk => 'Tl', lab => 'Éþ¤òºî¤ë' },
        'leathercraft'  => { n => 11, sk => 'Tl', lab => '³×À½Éʤòºî¤ë' },
        'crops'         => { n => 12, sk => 'Pl', lab => 'ÇÀºîʪ¤òºî¤ë' },
        'dairyproduct'  => { n => 13, sk => 'Dp', lab => 'ÆýÀ½Éʤòºî¤ë' },
        'bread'         => { n => 14, sk => 'By', lab => '¥Ñ¥ó¤ò¾Æ¤¯' },
        'smokedfood'    => { n => 15, sk => 'Sf', lab => 'ßîÀ½¤òºî¤ë' },
        'woodwork'      => { n => 16, sk => 'Ca', lab => 'ÌÚ¹©À½Éʤòºî¤ë' },
        'animaldrug'    => { n => 17, sk => 'Vt', lab => 'ưʪÌô¤òºîÀ®¤¹¤ë' },
        'drug'          => { n => 18, sk => 'Ph', lab => 'Ä´ºÞ¤¹¤ë' },
        'preparation'   => { n => 19, sk => 'Cu', lab => '¼£ÎŤνàÈ÷¤ò¤¹¤ë' },
    );
    
    # --------------------------------------------------- #
    1;
    

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

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



  2. ¤½¤Î¾¤Î½¤Àµ
    1. ÂпͤÎÇ㤤ʪ¤Ç¡¢¸Ä¿ô»ØÄêÈÎÇä¤Ç¤Ê¤¤¾ì¹ç¤Ë½ÅÎ̤Îɽ¼¨¤¬Àµ¤·¤¯¤Ê¤¤
    2. ÃϿޤǡ¢¸½ºßÃÏÄÌÃÎÀßÄê¤ò¡Ö¥Õ¥ì¥ó¥É¤Ë¤Î¤ßÄÌÃΡפˤ·¤Æ¤¤¤Æ¤âÁ´¤Æ¤Î¥×¥ì¥¤¥ä¡¼¤Ë¸½ºßÃϤòÃΤé¤ì¤Æ¤·¤Þ¤¦

    ÂпͤÎÇ㤤ʪ¤Ç¡¢¸Ä¿ô»ØÄêÈÎÇä¤Ç¤Ê¤¤¾ì¹ç¤Ë½ÅÎ̤Îɽ¼¨¤¬Àµ¤·¤¯¤Ê¤¤ÉÔ¶ñ¹ç¤ò½¤Àµ¤·¤Þ¤¹¡£

    library/base.cgi¤ò³«¤¯
    sub decorate_item:
            $Y *= $W if $F == 1;
    ¢­
            $Y *= $W if $F == 1;
            $Z *= $W if $T == 2;
    

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

    ÃϿޤǡ¢¸½ºßÃÏÄÌÃÎÀßÄê¤ò¡Ö¥Õ¥ì¥ó¥É¤Ë¤Î¤ßÄÌÃΡפˤ·¤Æ¤¤¤Æ¤âÁ´¤Æ¤Î¥×¥ì¥¤¥ä¡¼¤Ë¸½ºßÃϤòÃΤé¤ì¤Æ¤·¤Þ¤¦ÉÔ¶ñ¹ç¤ò½¤Àµ¤·¤Þ¤¹¡£

    library/map.cgi¤ò³«¤¯
    sub map:
            $Z = (split(/,/,$U->{fr},2))[0];
            push(@{$V{$U->{pl}}},[$U->{id},$U->{nm},$U->{sx}.'f']) if $Z eq 'on' || $Z eq 'only' && grep { (split /\//)[0] eq $U->{id} } @FR;
    ¢­
            ($Z,@{$U->{Fr}}) = split(/,/,$U->{fr});
            push(@{$V{$U->{pl}}},[$U->{id},$U->{nm},$U->{sx}.'f']) if $Z eq 'on' || $Z eq 'only' && grep { (split /\//)[0] eq $I->{id} } @{$U->{Fr}};
    

    Áê¼ê¤Î¥Õ¥ì¥ó¥É¥ê¥¹¥È¤Ë¼«Ê¬¤¬¤¤¤ë¤«¤òõ¤µ¤Ê¤¤¤È¤¤¤±¤Ê¤¤¤Î¤Ë¼«Ê¬¤Î¥ê¥¹¥È¤«¤éÁê¼ê¤òõ¤¹¤È¤¤¤¦¤Ü¤±¤¿¤³¤È¤ò¤·¤Æ¤Þ¤·¤¿¡Ä¤¹¤ß¤Þ¤»¤ó

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

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



  3. ¤Á¤ç¤Ã¤È¤·¤¿¤³¤È
    1. ¥¤¥ó¥Õ¥©¥á¡¼¥·¥ç¥óºîÀ®¤Çʸ»ú¼ÂÂλ²¾È¤¬»È¤¨¤ë¤è¤¦¤Ë
    2. Spetial Thanks¤Î¥¢¥ó¥«¡¼¤ò̵¸ú¤Ë
    3. ÀÜ¿¨¤·¤¿Áê¼ê¤¬¥í¥°¥¤¥óÃæ¤Î¾ì¹ç¤ËÌá¤ë¥Ü¥¿¥ó
    4. ¥â¥ó¥¹¥¿¡¼¤Î½Ð¤ëÃϰè¤Ç¤ª¶â¤ò½¦¤¨¤ë¤è¤¦¤Ë
    5. ÇÀ¾ì¤Ç¤âAPP¤Ë¤è¤Ã¤ÆÈÎÇä²Á³Ê¤¬ÊÑÆ°¤¹¤ë¤è¤¦¤Ë
    6. Ê£¿ô¥ª¡¼¥Ö¥È¥ì¡¼¥É
    7. ¤¤¤Ä¤â¤Î2ÇܺîÀ®¤ËÀ®¸ù¤·¤¿¤é³ÍÆÀ·Ð¸³Ãͤâ2ÇܤË
    8. ¥°¥ì¡¼¥É¤òʸ»ú¤Çɽ¼¨
    ÉÔ¶ñ¹ç¤Ç¤Ï¤Ê¤¤¤±¤É¤ä¤Ã¤Æ¤ß¤¿¤³¤È¤Ç¤¹¡£

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

    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;
    

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

    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;
    

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

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

    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');
    
    sub trade_after:
        &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');
    

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

    ÇÀ¾ì¤Ç¤â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);
    

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

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

    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}¤È¥È¥ì¡¼¥É¤·¤Þ¤·¤¿¡£");
        &get_words($U);
        &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}");
        &get_words($U);
        &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;
    ¢­
            $Si->{qn} *= $set::ddu;
            $S->{DB} = 1;
    

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

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

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

    ¥°¥ì¡¼¥É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;
    

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

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