あいすもなかさん!ソース発掘ありがとうございます!
ぺ・・・perlが全然わからん\(^o^)/
8/17 22:00解読追記
投資上限
武器・防具開発
・威力・・・1550万Gold
・重さ・・・1300万God
・耐久・・・2000万Gold
アクセ
・威力・・・525万Gold
・重さ・・・525万God
・耐久・・・1000万Gold
開発の仕組み
<武器・防具>
威力:
rand( 投資額÷5 )
300以上は300に修正 ※最大0~310の乱数
重さ:
威力 - rand( 投資額÷5 ) + rand(30)
※最大重さが威力から-260しかされない(0~260の乱数)
重さが20未満であれば、 10 + rand(10)で再抽選
重さ>威力になったら、重さ=威力
→ 威力300の防具ができた場合は、重さは最低でも40
威力が10以上あれば、重さは最低でも10
耐久:
rand( 投資額÷2 )
最高999 ※ 0~1000の乱数
最低50
<アクセサリー>
威力:
rand( 投資額÷5 )
100以上は100に修正 ※最大0~105の乱数
重さ:
威力 - rand( 投資額÷5 )
重さが10未満であれば、 rand(10)で再抽選
重さ>威力になったら、重さ=威力
耐久:
rand( 投資額÷2 )
最高500 ※ 0~500の乱数
最低50
以下ソース ---------------------------
#_/_/_/_/_/_/_/_/_/#
#_/ 武器作成 _/#
#_/_/_/_/_/_/_/_/_/#
sub TOWN_ARM2 {
&CHARA_MAIN_OPEN;
&COUNTRY_DATA_OPEN( "$ kcon");
$date = time();
$s_time = $date - $kdate;
if($s_time < $BATTLE_TIME){$s_time = $BATTLE_TIME - $s_time;&ERR("次のアクションまで $s_time 秒お待ちください。");}
if($in{'wei'} eq "" || $in{'dmg'} eq "" || $in{'tai'} eq "" || $in{'se_id'} eq ""){
&ERR( "金額、種類が入力されていません。");
}
if($in{'newname'} eq "" || length($in{'newname'}) < 4 || length($in{'newname'}) > 16) { &ERR("アイテム名が誤って入力されています。」); }
if ( ($in{'dmg'} =~ m/[^0-9]/) || ($in{'tai'} =~ m/[^0-9]/) || ($in{ 'wei'} =~ m/[^0-9]/) ) {&ERR("金額に数字以外の文字が含まれています。"); }
$c_poi = $COUNTRY_POINT*4;
if($kcex < $c_poi){&ERR("国への貢献度が足りません。 ($c_poi 以上)");}
if($xxind <= 0){&ERR("これ以上作成できません。");}
if($in{'town'} ne $xxins){&ERR("マークがなければ開発できません。");}
$item_id = $in{'se_id'};
$wei = $in{'wei'};
$dmg = $in{'dmg'};
$tai = $in{'tai'};
$azuke = $wei+$dmg+$tai;
if($azuke < 0) { &ERR("負の数は入力できません。"); }
else { $azukeru = int($azuke) * 10000; }
if($azukeru > $xxgold) { &ERR("お金が足りません。"); }
else { $xxgold -= $azukeru; }
$wei /= 5;
$dmg /= 5;
$tai /= 2;
if($item_id eq "2"){
if($wei>105){$wei=105;}
if($dmg>105){$dmg=105;}
if($tai>500){$tai=500;}
$new_dmg = int(rand($dmg));
if($new_dmg > 100){$new_dmg=100;}
$new_wei = int(rand($wei));
$new_wei = $new_dmg - $new_wei;
if($new_wei < 10){$new_wei=int(rand(10));}
if($new_wei > $new_dmg){$new_wei=$new_dmg;}
}else{
if($wei>260){$wei=260;}
if($dmg>310){$dmg=310;}
if($tai>1000){$tai=1000;}
$new_dmg = int(rand($dmg));
if($new_dmg > 300){$new_dmg=300;}
$new_wei = int(rand($wei));
$new_wei = $new_dmg - $new_wei+int(rand(30));
if($new_wei < 20){$new_wei=10+int(rand(10));}
if($new_wei>$new_dmg){$new_wei=$new_dmg;}
}
$new_tai = int(rand($tai));
if($new_tai > 999){$new_tai=999;}
if($new_tai < 50){$new_tai=50;}
if($item_id eq "0"){
open(IN,"$ARM_LIST");@ARM_DATA = <IN>;close(IN);
push(@ARM_DATA,"$in{'newname'}<>$new_tai<>$new_dmg<>$new_wei<>$xxele<>0<>0<>$xxins<>\n");
open(OUT,">$ARM_LIST") or &ERR2('ARM 新しいデータを書き込めません。');
print OUT @ARM_DATA;
close(OUT);
$ mess = "武器";
}elsif($item_id eq "1"){
open(IN,"$PRO_LIST");@PRO_DATA = <IN>;close(IN);
push(@PRO_DATA,"$in{'newname'}<>$new_tai<>$new_dmg<>$new_wei<>$xxele<>0<>0<>$xxins<>\n");
open(OUT,">$PRO_LIST") or &ERR2('PRO 新しいデータを書き込めません。');
print OUT @PRO_DATA;
close(OUT);
$ mess = "防具";
}elsif($item_id eq "2"){
open(IN,"$ACC_LIST");@ACC_DATA = <IN>;close(IN);
if($new_dmg > 100){$new_dmg = 100;}
push(@ACC_DATA,"$in{'newname'}<>$new_tai<>$new_dmg<>$new_wei<>$xxele<>0<>0<>$xxins<>\n");
open(OUT,">$ACC_LIST") or &ERR2('ACC 新しいデータを書き込めません。');
print OUT @ACC_DATA;
close(OUT);
$ mess = "アクセサリー";
}else{
$new_tai=1;
open(IN,"$ITEM_LIST");@ITEM_DATA = <IN>;close(IN);
push(@ITEM_DATA,"$in{'newname'}<>1<>$new_dmg<>$new_wei<>$xxele<>99<>0<>$xxins<>\n");
open(OUT,">$ITEM_LIST") or &ERR2('ITEM 新しいデータを書き込めません。');
print OUT @ITEM_DATA;
close(OUT);
$ mess = "アイテム";
}
$ xxind--;
&COUNTRY_DATA_INPUT;
if($ lockkey){&F_LOCK; }
&MAP_LOG("<font color=orange><B>\[開発\]</B></font>$xxname局は新しい $mess"<font color=red>$in{'newname'}</font> 「威力(<font color = red> $ new_dmg </font>)、重量(<font color = red> $ new_wei </font>)を開発しました。」);
#かっこいい
if(-e $ lockfile){unlink($ lockfile); }
&HEADER;
print << "EOM";
<h1>新しい$mess「<font color=red>$in{'newname'}</font>」威力(<font color=red>$new_dmg</font>)、重量(<font color=green>$ new_wei</font>)、耐久度(<font color=blue>$new_tai</font>)を開発しました。</h1>
<hr size=0>
<p>
<form action="$FILE_STATUS" method="post">
<input type=hidden name=id value=$kid>
<input type=hidden name=pass value=$kpass>
<input type=hidden name=mode value=STATUS>
<input type=submit value="村に戻る"></form>
EOM
&FOOTER;
exit;
}
1;