[Crossfire-wiki] [Crossfire DokuWiki] page added: user:mhoram:scripts:level_up
no-reply_wiki at metalforge.org
no-reply_wiki at metalforge.org
Thu Dec 28 16:28:47 CST 2006
A page in your DokuWiki was added or changed. Here are the details:
Date : 2006/12/28 16:28
User : mhoram
Edit Summary: created
====== Introduction ======
This is a client-side perl script for Crossfire, which reports which
skills are nearing the next level. It reports any (including overall
player level) that are within 10% of the next level, and that
percentage can be changed in the code on line 6. I thought this would
be handy for determining which skills to concentrate on for fastest
improvement.
====== Requirements ======
* Perl
====== Code ======
<code perl>
#!/usr/bin/perl
use warnings;
use strict;
$| = 1;
my $percent = 10; # percentage of points needed to level up
print "request stat xp\n";
my @stats;
my $line = <STDIN>;
chomp $line;
@stats = split ' ', $line;
shift @stats for (1..3);
print STDERR join ' ', @stats, "\n";
my @xp_for = ( 0,0,2000,4000, 8000, 16000,32000,64000,125000,250000, 500000,
900000,1400000,2000000,2600000,
3300000,4100000,4900000,5700000,6600000, 7500000,
8500000, 9500000, 10600000, 11800000, 13000000,
14300000, 15600000, 17000000, 18500000, 20000000,
21700000, 23400000, 25200000, 27000000, 29000000,
31100000, 33300000, 35600000, 38000000, 40500000,
43200000, 46000000, 48900000, 52000000, 55200000,
58600000, 62100000, 65900000, 69800000, 73900000,
78200000, 82700000, 87500000, 92500000, 97800000,
103300000, 109100000, 115200000, 121500000, 128200000,
135300000, 142700000, 150400000, 158600000, 167100000,
176100000, 185600000, 195500000, 205900000, 216800000,
228300000, 240300000, 252900000, 266200000, 280200000,
294800000, 310200000, 326300000, 343200000, 361000000,
379700000, 399300000, 419900000, 441500000, 464200000,
488100000, 513100000, 539400000, 567000000, 596000000,
626400000, 658300000, 691900000, 727100000, 764100000,
802900000, 843700000, 886500000, 931500000, 978700000,
1028200000, 1080300000, 1134900000, 1192300000, 1252500000,
1315800000, 1382200000, 1451900000, 1525100000, 2100000000,
4200000000, 8400000000, 16800000000,
33600000000, 67200000000,
);
my @skills = qw(
overall
null
lockpicking
hide
smithery
bowyer
jeweler
alchemist
stealing
literacy
bargaining
jumping
sense_magic
oratory
singing
sense_curse
find_traps
meditation
punching
flame_touch
karate
climbing
woodsman
inscription
one_handed_weapons
missile_weap
throwing
use_magic_item
disarm_traps
set_trap
thaumaturgy
praying
clawing
levitation
summoning
pyromancy
evocation
sorcery
two_handed_weapons
);
print "draw 4 Skills within $percent\% of leveling up:\n";
for my $skill (@skills){
my $level = shift @stats;
my $xp = shift @stats;
next if $xp == 0;
$level++;
my $needed = $xp_for[$level] - $xp;
print STDERR "$skill : $level : $xp : $needed\n";
if( $needed < ( $xp_for[$level] * $percent/100 )){
print "draw 5 $skill: $needed for level $level\n";
}
}
</code>
====== Notes & Comments ======
I've hardcoded the XP tables and skill list as it exists as of
2006-12-28, so future changes in the XP table or rearranging the order
of the skills reported by the client will break it. It's not possible
(as far as I know) for a client-side script to get those thing from
the server, so the only choices are to hard-code them, or to build
them dynamically from the source code, which many people may not have.
====== References =======
* [[:user:mhoram|Mhoram's Page]]
* [[:Client Side Scripting]]
IP-Address : 206.71.197.56
Old Revision: none
New Revision: http://wiki.metalforge.net/doku.php/user:mhoram:scripts:level_up
--
This mail was generated by DokuWiki at
http://wiki.metalforge.net/
More information about the crossfire-wiki
mailing list