--- deliantra/server/ext/jeweler.ext 2009/08/17 08:50:54 1.17 +++ deliantra/server/ext/jeweler.ext 2010/05/10 15:42:06 1.25 @@ -82,7 +82,7 @@ my $ch = $ring->get_chance_perc ($sk); my $succ = 0; - my $r = cf::random_roll (0, 100, $pl, cf::PREFER_HIGH); + my $r = cf::random_roll (0, 100, $pl, cf::PREFER_LOW); my $make_status; my $exp; @@ -90,11 +90,12 @@ if ($r <= $ch or $pl->flag (cf::FLAG_WIZ)) { $exp = $ring->projected_exp ($input_level); - $pl->change_exp ($exp, "jeweler", cf::SK_EXP_SKILL_ONLY); - $pl->message ("You succeed and get $exp experience points."); + $pl->change_exp ($exp, "jeweler"); + $pl->message ( + "You succeed and get " . int ($exp) . " experience points."); $make_status = "succeeded"; - $ring->set_value ($value * 0.8); # 20% of the input values will vanish + $ring->set_value ($value); } else { $pl->message ("You fail!"); @@ -105,6 +106,8 @@ my $ring_ob = $ring->to_object; + $ring_ob->kv_set (ext_jeweler_maker => $pl->name); + { # some audit info calculation my $sklvl = cf::exp_to_level ($sk->stats->exp); @@ -113,7 +116,8 @@ $pl->name, $ring->to_string, $ring_ob->uuid, $sklvl, $ring->power_to_level, $exp, $make_status; - warn "$make_info\n" if $make_status eq 'succeeded'; + cf::debug "$make_info\n" + if $make_status eq 'succeeded'; } $chdl->put ($ring_ob); @@ -129,7 +133,7 @@ $pl->message ("There are unidentified items in the workbench, identify them before you do anything."). return } elsif ($@) { - warn "error in jeweler ingredient extraction: $@"; + cf::error "error in jeweler ingredient extraction: $@"; return; } $ingred; @@ -196,7 +200,9 @@ return } - Jeweler::simple_converter ($player, $ingred, $chdl, $1); + Jeweler::simple_converter ( + $player, $ingred, $chdl, $1, + cf::exp_to_level ($sk->stats->exp)); } elsif ($msg =~ m/^\s*merge\s*analy[sz]e\s*$/i) { merge ($chdl, $sk, $pl, 1); @@ -268,9 +274,9 @@ } } }; - $@ and warn "ERROR: $@\n"; + $@ and cf::error "$@\n"; } ); -Jeweler::read_config "res/jeweler.yaml"; +Jeweler::load_config;