Suggested topics

This forum describes how to spade various things in the game. Go here to find helpful tips and tricks.

Suggested topics

Postby RoyalTonberry » Fri Mar 26, 2010 12:34 am

If you would like to see a topic about how to spade a specific thing, post in this thread, and someone will hopefully get around to writing up a nice tutorial on it.

Please note that a lot of the time, if the topic does not already exist here, the response you may receive is "We don't know, help us spade it!" or "Spade it yourself!" (meant as encouragement, not criticism). Becoming a good spade involves practice, and the best practice is often by doing. If you are making an honest effort, even if you're getting some things wrong, we will understand. We were in the same position once (maybe even quite recently!)

Good luck!
User avatar
RoyalTonberry
 
Posts: 568
Joined: Thu Mar 25, 2010 10:34 pm

Re: Suggested topics

Postby top1214 » Sun Jun 06, 2010 6:38 pm

Basic probability i.e.:
Calculations of average, standard deviation, and 95% confidence intervals (for binary data)
Independence

Or is this sort of stuff best left to wikipedia?
IGN: whore_moans
top1214
 
Posts: 336
Joined: Wed Mar 31, 2010 2:21 pm

Re: Suggested topics

Postby Deandra » Sun Jun 06, 2010 7:39 pm

I vote for leaving it to wikipedia, since none of that is specific to KoL.
User avatar
Deandra
 
Posts: 29
Joined: Fri Mar 26, 2010 2:02 am

Re: Suggested topics

Postby suinoq » Fri Jun 18, 2010 3:59 pm

It seems that something should be said about extracting your data from logs. It's a burdensome task to do manually - I can testify that it's kept me from working on projects before. What's the state-of-the-art for performing the extraction? Or maybe better: What's the recommended method for would-be spades to go about it?
suinoq
 
Posts: 26
Joined: Sun Apr 04, 2010 2:16 am

Re: Suggested topics

Postby RoyalTonberry » Fri Jun 18, 2010 9:07 pm

suinoq wrote:It seems that something should be said about extracting your data from logs. It's a burdensome task to do manually - I can testify that it's kept me from working on projects before. What's the state-of-the-art for performing the extraction? Or maybe better: What's the recommended method for would-be spades to go about it?

I build programs to parse the information out when I need it. Often previously written programs only need slight (or zero) modification to pull data out of logs.
User avatar
RoyalTonberry
 
Posts: 568
Joined: Thu Mar 25, 2010 10:34 pm

Re: Suggested topics

Postby suinoq » Thu Jul 08, 2010 4:05 am

RoyalTonberry wrote:
suinoq wrote:It seems that something should be said about extracting your data from logs. It's a burdensome task to do manually - I can testify that it's kept me from working on projects before. What's the state-of-the-art for performing the extraction? Or maybe better: What's the recommended method for would-be spades to go about it?

I build programs to parse the information out when I need it. Often previously written programs only need slight (or zero) modification to pull data out of logs.


Any chance of sharing the parser? If not, could you share some experiences with what text strings to key on, etc?
suinoq
 
Posts: 26
Joined: Sun Apr 04, 2010 2:16 am

Re: Suggested topics

Postby top1214 » Mon Jul 12, 2010 2:03 pm

It really depends on what you're looking for. I shared the parser I used to determine how the BBB was acting in non-CLEESHed fights over in the BBB thread.

This one:
Code: Select all
#!usr/bin/perl -w
use strict;
if (@ARGV != 1){
    die "\nUsage: perl (whateveryounamethething).pl <log file>";
}
my$fin=shift;
my$kneebutt=0;
my$stun=0;
open(IN, "$fin") or die "Couldn't open $fin\n";

while(<IN>){
   
    if(/groin-analogue/){

   $kneebutt++;
    }

    if (/\(nyah/){
   $stun++;
    }

}
close(IN);

$kneebutt=$kneebutt/2;

$stun=$stun/2;

print "You had $kneebutt/2 kneebutts.  They stunned $stun/2 times.";
was for calculating kneebutt stunning chance (notice '(nyah' and 'groin-analogue' were the strings I keyed on), and this one:

Code: Select all
#!usr/bin/perl -w
use strict;
if (@ARGV != 1){
    die "\nUsage: perl (whateveryounamethething).pl <log file>";
}
my$fin=shift;
my$fightend=0;
my$count=0;
my$famactions=0;
my$sanity=0;
my$line;
my$location=0;
my$adventure=0;
my$fumbles=0;
my$crits=0;
my$hits=0;
my$round=0;
my$turns=0;
my$done=0;
my$percentage=0;
my$chances=0;
open(IN, "$fin") or die "Couldn't open $fin\n";

while(<IN>){
   
   
    if(/\[(\d+)\]/){
        $adventure=$1;
    }
    if($adventure> 4403 && /\].*Warren/){
   $location=1;
    }
   
    if($adventure==3360 && $done==0){
   $chances=$turns-$crits-$fumbles;
   $percentage=$hits/$chances;
   print "\nYou had a $percentage % of hitting.  For muscle -10 there were $count rounds.  You had $crits critical hits.  You had a maximum of $fumbles fumbles. You had $hits hits. You spent $turns turns.\n";
   $crits=0;
   $count=0;
   $hits=0;
   $turns=0;
   $done=1;
   $fumbles=0;
    }
    if($location==1){
   if(/Round (\d*)/){
       $round=$1;
   #    print "\n********\n$round\n*********\n";
       if($round>31){
      $round=31;
       }
   }
   if(/Round 32: w/){
       $fightend=1;
       $count+=$round;
       $turns++;
       $location=0;
   }elsif(/After Battle/){
       $round--;
       $fightend=1;
       $count+=$round;
       $turns++;
       $location=0;
   }
#   if(3336<$adventure && $adventure<3371){
      
#       if(/You lose/){
   #   $fumbles++;
    #   }
       if(/takes 2 damage/ || /takes 5 damage/){
      $crits++;
       }
       if(/takes 1 damage/ || /takes 4 damage/){
      $hits++;
       }
#   }
    }
}
close IN;
$chances=$count-$crits-$fumbles;
$percentage=$hits/$chances;
print "\nYou hit $percentage % of the time.  There were $count rounds.  You had $crits critical hits.  You had a maximum of $fumbles fumbles.  You had $hits hits. You spent $turns turns.\n";


was for hit % (here it was about doing 1 damage (regular hit) or 2 damage (critical). Also, notice I have my own errors in there while getting the program (and player!) to do it right.

Basically, parsers vary a lot based on what you're looking for and what the data looks like.
IGN: whore_moans
top1214
 
Posts: 336
Joined: Wed Mar 31, 2010 2:21 pm

Re: Suggested topics

Postby suinoq » Mon Jul 26, 2010 4:22 am

Is it possible to develop a method for simple, high-quality logging and parsing? It'd seem to be the greatest contribution a person could make to the spading community. A strong statement, maybe, but I don't think it's an exaggeration. There's so many open questions that require no real finesse to solve, just a compilation of data, that I can't help but think we would be well served by a better method. Familiar drop rates, burning up years to figure out - and yet these familiars are active daily for hundreds of people. Combat rates in zones, etc. Easy stuff.

I don't know what the best way forward would be, but I'm imagining a web tool for uploading text files. Parses, builds databases of logs. Maybe the logs don't show the necessary information yet - doesn't stamp the requisite data (current modifiers and equipment comes to mind). Well, ok, so maybe getting a better logging mechanism is the first step.
suinoq
 
Posts: 26
Joined: Sun Apr 04, 2010 2:16 am

Re: Suggested topics

Postby RoyalTonberry » Wed Jul 28, 2010 4:17 am

part of the problem with a general-purpose parser is that mafia logs are.. incomplete. They don't tell you if you won or lost a fight, or if you ran away successfully, or what. You can make at-best an educated guess based on receiving stats. There's also issues that you don't know what effects/buffs/whatever you had active for a certain adventure. You can, again, make a "best guess" that isn't guaranteed to be accurate.
User avatar
RoyalTonberry
 
Posts: 568
Joined: Thu Mar 25, 2010 10:34 pm

Re: Suggested topics

Postby Darzil » Wed Jul 28, 2010 10:01 am

RoyalTonberry wrote:part of the problem with a general-purpose parser is that mafia logs are.. incomplete. They don't tell you if you won or lost a fight, or if you ran away successfully, or what. You can make at-best an educated guess based on receiving stats. There's also issues that you don't know what effects/buffs/whatever you had active for a certain adventure. You can, again, make a "best guess" that isn't guaranteed to be accurate.


And of course recieving stats only counts as an indicator if there is a "Round 0" marker. Otherwise you couldn't easily tell the difference between a stat giving non-combat and a combat. Eg :

[828] Dungeons of Doom
Encounter: The Hunger
You gain 21 Sarcasm

and

[829] Dungeons of Doom
Encounter: swarm of killer bees
Round 0: darzil wins initiative!
Round 1: darzil tries to steal an item!
You acquire an item: royal jelly
Round 2: darzil attacks!
Round 3: darzil attacks!
You gain 4 Beefiness
You gain 4 Enchantedness
You gain 6 Roguishness

Personally, thus far, when I've been looking for number of combat turns with my rogue program to drop items, I've been doing it manually on my ascending character, and semi-automatically on my farming one (running via Mafia with +1 Game Grid Token as the goal, then manually counting the non-combats if in a non-combat zone, and subtracting that figure).
Darzil
 
Posts: 241
Joined: Sat Apr 24, 2010 6:12 pm

Re: Suggested topics

Postby philmasterplus » Tue Aug 10, 2010 1:00 am

Are there any locations other than the Dire Warren with a high combat% rate and only one monster (or multiples with the same ML and consistent behavior)? A full list of such zones would help people like me spading ML-related stuff. Right now, I can think of:

  • Dire Warren: 100% combat, fluffy bunnies are the weakest monster in-game.
  • The Knob Shaft: 80-85% combat, ghost miners have 100% physical resistance, which allows prolonging combat very easy.
  • The F'c'le: 80% combat, all monsters have 100 ML.
  • The Poop Deck: 80% combat, all monsters have 120 ML.
  • Belowdecks: 100% combat, all monsters have 140 ML.
We could also make a more expansive list of locations for spading other things.
Midnight snack guaranteed to inflame your organs and nourish your lipocytes!
User avatar
philmasterplus
 
Posts: 25
Joined: Mon Apr 05, 2010 6:08 am
Location: Seoul, South Korea

Re: Suggested topics

Postby Hellion » Wed Aug 11, 2010 3:13 pm

Two places that leap immediately to mind are the beanbat chamber and the Hedge Maze.
Hellion
 
Posts: 16
Joined: Thu Mar 25, 2010 6:08 pm

Re: Suggested topics

Postby IstariAsuka » Fri Aug 27, 2010 5:11 am

Keep in mind that a zone like the fluffy bunnies is often ideal since there is no monster variance, while in zones like the hedge maze there is.
IstariAsuka
 
Posts: 38
Joined: Fri Mar 26, 2010 2:56 am

Re: Suggested topics

Postby SilentKnight » Fri Oct 15, 2010 3:32 am

Is there a method to spading outfit effects?
SilentKnight
 
Posts: 18
Joined: Thu Oct 14, 2010 12:14 pm


Return to The Spade's Textbook: How to Spade

Who is online

Users browsing this forum: No registered users and 1 guest

cron
Install phpBB web hosting