Difference between revisions of "Run combat"

From Kolmafia
Jump to navigation Jump to search
imported>StDoodle
(Created page with '{{ #vardefine:name|run_combat}}{{ #vardefine:return_type|buffer}}{{ FunctionPage| name={{#var:name}}| function_category=Adventuring| function1={{Function| name={{#var:name}}| a…')
 
imported>Bale
(answered RFIs and provided AWESOME code sample that explains how and when to use it.)
Line 14: Line 14:
 
}}|
 
}}|
  
function_description=Proceeds to run a combat using your current KoLmafia settings. This function returns the text of every round of combat. For use with ''[[visit_url|visit_url()]]'' to handle combats that are initiated during a page load.|
+
function_description=Proceeds to run a combat using your current KoLmafia settings. This function returns the HTML from the final round of combat (not just what is displayed, but all markup). For use with ''[[visit_url|visit_url()]]'' to handle combats that are initiated during a page load.|
 +
 
 +
code1={{CodeSample|
 +
title=Code Sample|
 +
description=This is a personalized version of adv1() that is capable of returning information about which adventure is encountered so that you can look for a specific choice adventure. If a combat is encountered instead of a choice adventure, run_combat() is used.|
 +
code=
 +
<syntaxhighlight>
 +
int run_adv(location place) {
 +
  string page_text = to_url(place).visit_url();
 +
  string choiceAdventure = "-1";
 +
  matcher m_choice = create_matcher("whichchoice value=(\\d+)", page_text);
 +
  while(page_text.contains_text("choice.php")) {
 +
      m_choice.reset(page_text);
 +
      m_choice.find();
 +
      choiceAdventure = m_choice.group(1);
 +
      string choice_num = get_property("choiceAdventure"+ choiceAdventure);
 +
     
 +
      if(choice_num == "0") abort("Manual Control for "+ choiceAdventure);
 +
      if(choice_num == "") abort("Unsupported Choice Adventure!");
 +
     
 +
      page_text = visit_url("choice.php?pwd&whichchoice="+ choiceAdventure +"&option="+ choice_num);
 +
  }
 +
  if(page_text.contains_text("Combat"))
 +
      run_combat();
 +
  return choiceAdventure.to_int();
 +
}
 +
</syntaxhighlight>}}|
  
needscode=yes|
 
  
 
see_also={{SeeAlso|adventure|adv1|visit_url}}|
 
see_also={{SeeAlso|adventure|adv1|visit_url}}|
Line 22: Line 47:
 
special=Will return the text of the last combat encounter when called independently of a fight page.|
 
special=Will return the text of the last combat encounter when called independently of a fight page.|
 
}}
 
}}
{{RFI|Does it return all of the fight text, or just the last round?|Any further tips on how this should actually be used, and when?}}
 

Revision as of 06:37, 22 March 2010

Function Syntax

buffer run_combat()

Proceeds to run a combat using your current KoLmafia settings. This function returns the HTML from the final round of combat (not just what is displayed, but all markup). For use with visit_url() to handle combats that are initiated during a page load.

Code Sample

This is a personalized version of adv1() that is capable of returning information about which adventure is encountered so that you can look for a specific choice adventure. If a combat is encountered instead of a choice adventure, run_combat() is used.

int run_adv(location place) {
   string page_text = to_url(place).visit_url();
   string choiceAdventure = "-1";
   matcher m_choice = create_matcher("whichchoice value=(\\d+)", page_text);
   while(page_text.contains_text("choice.php")) {
      m_choice.reset(page_text);
      m_choice.find();
      choiceAdventure = m_choice.group(1);
      string choice_num = get_property("choiceAdventure"+ choiceAdventure);
      
      if(choice_num == "0") abort("Manual Control for "+ choiceAdventure);
      if(choice_num == "") abort("Unsupported Choice Adventure!");
      
      page_text = visit_url("choice.php?pwd&whichchoice="+ choiceAdventure +"&option="+ choice_num);
   }
   if(page_text.contains_text("Combat"))
      run_combat();
   return choiceAdventure.to_int();
}

See Also

adventure() | adv1() | visit_url()

Special

Will return the text of the last combat encounter when called independently of a fight page.