[Ver b2.0]¡¡
[Ver b1.4]¡¡
[Ver b1.3]¡¡
[Ver b1.2.1]¡¡
[Ver b1.1]¡¡
[Ver b1.0]¡¡
ºîÀ®¤Ç¡¢ßîÀ½¤òºî¤ë¤³¤È¤¬½ÐÍè¤Ê¤¤ÉÔ¶ñ¹ç¤ò½¤Àµ¤·¤Þ¤¹¡£
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
ºîÀ®¤Ç¡¢ÉÔÀµ¤Ê¥Ç¡¼¥¿¤òÁ÷¤ë¤³¤È¤ÇËØ¤ÉÁ´¤Æ¤Î¥¢¥¤¥Æ¥à¤òºîÀ®¤Ç¤¤ëÉÔ¶ñ¹ç¤ò½¤Àµ¤·¤Þ¤¹¡£
# 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;
ÂпͤÎÇ㤤ʪ¤Ç¡¢¸Ä¿ô»ØÄêÈÎÇä¤Ç¤Ê¤¤¾ì¹ç¤Ë½ÅÎ̤Îɽ¼¨¤¬Àµ¤·¤¯¤Ê¤¤ÉÔ¶ñ¹ç¤ò½¤Àµ¤·¤Þ¤¹¡£
sub decorate_item:
$Y *= $W if $F == 1;
¢
$Y *= $W if $F == 1;
$Z *= $W if $T == 2;
ÃϿޤǡ¢¸½ºßÃÏÄÌÃÎÀßÄê¤ò¡Ö¥Õ¥ì¥ó¥É¤Ë¤Î¤ßÄÌÃΡפˤ·¤Æ¤¤¤Æ¤âÁ´¤Æ¤Î¥×¥ì¥¤¥ä¡¼¤Ë¸½ºßÃϤòÃΤé¤ì¤Æ¤·¤Þ¤¦ÉÔ¶ñ¹ç¤ò½¤Àµ¤·¤Þ¤¹¡£
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}};
Áê¼ê¤Î¥Õ¥ì¥ó¥É¥ê¥¹¥È¤Ë¼«Ê¬¤¬¤¤¤ë¤«¤òõ¤µ¤Ê¤¤¤È¤¤¤±¤Ê¤¤¤Î¤Ë¼«Ê¬¤Î¥ê¥¹¥È¤«¤éÁê¼ê¤òõ¤¹¤È¤¤¤¦¤Ü¤±¤¿¤³¤È¤ò¤·¤Æ¤Þ¤·¤¿¡Ä¤¹¤ß¤Þ¤»¤ó
¥¤¥ó¥Õ¥©¥á¡¼¥·¥ç¥óºîÀ®¤Çʸ»ú¼ÂÂλ²¾È¤¬»È¤¨¤ë¤è¤¦¤Ë(ÌäÂ꤬µ¯¤³¤ê¤½¤¦¤Ê¤Î¤Ç¤ä¤é¤Ê¤¤¤Û¤¦¤¬¤¤¤¤¤«¤â)
sub edit_information:
$t1 =~ s/<br>/\n/g;
¢
$t1 =~ s/<br>/\n/g;
$t1 =~ s/&/&/g;
sub make_information:
$F{in} =~ s/</</g;
$F{in} =~ s/>/>/g;
¢
$F{in} =~ s/</</g;
$F{in} =~ s/>/>/g;
$F{in} =~ s/&/&/g;
sub decode:
$V =~ s/</</g;
$V =~ s/>/>/g;
¢
$V =~ s/&/&/g;
$V =~ s/</</g;
$V =~ s/>/>/g;
Spetial Thanks¤Î¥¢¥ó¥«¡¼¤ò̵¸ú¤Ë¡£
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;
ÀÜ¿¨¤·¤¿Áê¼ê¤¬¥í¥°¥¤¥óÃæ¤Î¾ì¹ç¤ËÌá¤ë¥Ü¥¿¥ó¤òɽ¼¨¤·¤Æ¤ß¤ë¡£
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 }
sub bounty_after:
&login_check($U);
¢
&login_check($U,'bounty_before');
sub buy_before:
&login_check($U);
¢
&login_check($U,'contact_before');
sub buy_after:
&login_check($U);
¢
&login_check($U,'contact_before');
sub contact_after:
&login_check($U);
¢
&login_check($U,'contact_before');
sub cure_before:
&login_check($U);
¢
&login_check($U,'contact_before');
sub cure_after:
&login_check($U);
¢
&login_check($U,'contact_before');
sub destone:
&login_check($U);
¢
&login_check($U,'contact_before');
sub fight_player:
&login_check($U);
¢
&login_check($U,'contact_before');
sub trade_before:
&login_check($U);
¢
&login_check($U,'contact_before');
sub trade_after:
&login_check($U);
¢
&login_check($U,'contact_before');
¥â¥ó¥¹¥¿¡¼¤Î½Ð¤ëÃϰè¤Ç¤ª¶â¤ò½¦¤¨¤ë¤è¤¦¤Ë¤·¤Æ¤ß¤ë¡£
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¤Ë¤è¤Ã¤ÆÈÎÇä²Á³Ê¤¬ÊÑÆ°¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤ß¤ë¡£
# 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 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Çܤˤ·¤Æ¤ß¤ë¡£
# ¹çÀ® Compose ####################################### # $dex = 2; # ¥À¥Ö¥ë¥í¡¼¥ë¤ËÀ®¸ù¤·¤¿¤È¤¤Ï³ÍÆÀ·Ð¸³ÃͤònÇܤˤ¹¤ë
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¡×¤Î¤è¤¦¤Ëɽ¼¨¤·¤Þ¤¹¡£
¿§Ê¬¤±¤µ¤ì¤Æ¤¤¤Æ¤âʬ¤«¤ê¤Ë¤¯¤¤»þ¤Ë¤ä¤Ã¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
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;