Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Big Bang] Adventurer Skill Tables/Notes
#54
Devil Wrote:Shield Mastery
"100% increased physical and magical defense"

Does Shield Mastery double the total wdef/mdef now? Or only the mere shield and is it still useless?

Venom
"Venom's effects do not stack"

Doesn't Venom stack 3 times anymore? Then Venom has become a very weak skill... :o 140% per second... that's a mere 10k dmg / sec... Sad

Anyway, GL with the BB skill tables! :+)

Shield Mastery multiplies total defense, and the description says Venom does not stack. I don't have a 4th job Thief in KMS to test it, but I'd be willing to bet it doesn't.

Instead of getting work done, I just wasted a good 2 hours improving my script and adding range/notes functionality. Posting shortly.

Edit: Updated. My script, if anyone's curious:

Code:
[noparse]
#!usr/bin/perl
#Converts a skill data file to a formatted BBcode table.
#skill data format:
#
#!Class Name
#Skill ID    Skill Name    Skill Description    Max Level    Skill Detail    Formula    Notes    Range
#1001003    Iron Body    Temporarily increases your weapon defense.    20    MP %s; Weapon def. +%s for %s seconds    6+2*u(x/5), 10*x, 100+10*x
#@

use warnings;
use strict;
use POSIX qw(ceil floor);

die "Usage: perl $0 file" unless (@ARGV);

my $file = shift(@ARGV);

open (FILE, $file);
while (<FILE>)
{
    next unless (/^[0-9\!\@]/);
#    clean excel data a bit
    chomp;
    tr/"//d;
    
    if (/^!([^\t]+)/) { print "[spoiler=\"", $1, "\"]\n\n"; }
    elsif (/@/) { print "[\/spoiler]\n\n"; }
    else { printTable(); }
}
close $file;

sub calc #(@f,$lvl) converts functions in skill strings to ones that perl can evaluate
{
    my ($f, $lvl) = @_;
    $f =~ s/x/$lvl/;
    $f =~ s/d/floor/;
    $f =~ s/u/ceil/;
    return eval($f);
}

sub rangeURL #($range) gets a display URL for the given coordinates
{
    my ($ltx, $lty, $rbx, $rby) = split(/, /, shift(@_));
    my $rangeURL = sprintf('http://www.southperry.net/maplerange.php?ltx=%s&lty=%s&rbx=%s&rby=%s&size=1024', $ltx, $lty, $rbx, $rby);

    my $nameRange;
    if ($ltx == 0) { $nameRange = abs($rbx); }
    else { $nameRange = abs($ltx); }

    return '[url=.$rangeURL.]'.$nameRange.'% Range[/url]';
}

sub printTable #prints table for each line of data
{
    my @data = split /\t/;
    my ($id, $name, $desc, $maxlvl, $detail, $formula, $notes, $range) = @data;
    my @formula = split(/, /, $formula);
    $desc =~ s/\\n/\n/ while ($desc =~ /\\n/);
    if ($notes) { $notes =~ s/\\n/\n/ while ($notes =~ /\\n/); }

    my $is4th = (($id/10000)%10 == 2?1:0);

print    '[img]http://www.happychinchilla.info/Southperry/skills/', $id, '.png[/img][b][u]', $name, '[/u][/b]', "\n",
    '[b]Description[/b] ', $desc, "\n",
    '[b]Max Level:[/b] ', $maxlvl, "\n";
    if ($range) { print rangeURL($range), "\n"; }
    if ($notes) { print '[b]Notes:[/b] ', $notes, "\n"; }
print    "\n", '[table=autonum=1]';

    for (my $i = 1; $i <= $maxlvl + 2*$is4th; $i++)
    {
        my @fvalues;
        foreach (@formula) {push(@fvalues, calc($_, $i)); }
        my $lvldetail = sprintf($detail, @fvalues);

        if ($i == $maxlvl) { print '[b]', $lvldetail, '[/b]'; }
        else { print "$lvldetail"; }
        
        if ($i != $maxlvl+2*$is4th) { print "\n"; }
    }

print    "[\/table]\n\n";
}
[/noparse]

I'm pasting all the data into an Excel file and saving it as a tab-delimited text file to parse.
Reply


Messages In This Thread
[Big Bang] Adventurer Skill Tables/Notes - by Dusk - 2010-10-05, 08:04 PM
[Big Bang] Adventurer Skill Tables/Notes - by 0^2 - 2010-10-13, 09:48 PM
[Big Bang] Adventurer Skill Tables/Notes - by 0^2 - 2010-10-14, 11:04 AM

Forum Jump:


Users browsing this thread: 1 Guest(s)