One-Click Wossname -- automatic level 12 quest completion

Chipacabra

New member
I'm having a weird problem, I can't tell if it's with the script or with KolMafia.

When I try to load the script I get:
Code:
> call scripts\Wossname.ash

[of lavender] does not match anything in the status effect database.
Bad effect value: "heart of lavender" (Wossname.ash, line 357)

This happens even if I leave wossname.ash unedited. I'm using mafia 12.5, and I snagged the statuseffects.txt from the sourceforge site. I don't really know where to go from here.
 

Ethelred

Member
Try getting rid of the statuseffects.txt file. It could be that it's formatted for a part of the program that has changed since 12.5. That may or may not solve your problem, but it's worth a try.
 
Hi,

I used this script to get my Wossname for a multi having done it at least semi manually the first time around. Its a great script, works really well, although I have still managed to screw up the Guy made of bees every time so far, first time I had the wrong type of flier in the custom combat script second time I think I had the items in the wrong order.

I've been trying to modify my warplan just to automatically go through the quest the way I normally do and I hit a weird thing. I don't know if it is to do with the script itself or just Mafia but as soon as I completed the Orchard quest, with the Hippy side of the battlefield only on image 7, I was able to go to the Barn and start going through the duck quest. It definitely isn't changing my outfit in secret or anything since I can still go there through the 'last adventure' link wearing my Frat warrior gear. However, I can't get there through the Farm link on the island map it gives me the usual message about not killing enough hippies,

I had my warplan written a bit badly as ...


1 false sidequestLighthouseCompleted fratboy
2 false hippiesDefeated 64
3 false sidequestOrchardCompleted fratboy
4 false hippiesDefeated 458
5 false sidequestFarmCompleted fratboy
6 false hippiesDefeated 1000


but it seemed to run through the lighthouse quest, the first round of hippies, and the Orchard well enough. I handed the filthworm queen's heart in manually and when I restarted the script it skipped step 4 altogether and went straight to the barn.

Can you always get to the barn before it should really be open if you use kolmafia, or the right snarfblat address, or is the script doing something unusual?

Any answers gratefully appreciated.

Thanks,

Boris

P.S. I just noticed an extra couple of spaces in front of 'hippiesDefeated 458' in line 4 of my warplan, would this make the line unreadable and explain why it was skipped?
 

zarqon

Well-known member
Interesting news about the duck thing. You may have discovered a chink in the KoL code.

The warplan issue is easy enough to solve. There should be no spaces anywhere in the warplan files. Mafia's data files are tab-delimited (data separated by tabs, not spaces), so spaces will definitely screw things up.

Hope that gets it working for you.
 

dj_d

Member
OCW is fantastc! I just got my Wossname.

One problem: the junkard locations are now snarfblats, not subsnarfblats. Here's a fixed version of the junkard subquest code. It also fixes a problem where you could use over-use purple snowcones (and waste money) if you run out of adventures or otherwise abort while in the middle of the quest.

Code:
// completes the junkyard sidequest
boolean junkyard_sq() {
  print("Step "+step+": Junkyard sidequest","blue");
 // returns the html from visiting yossarian
  string visit_yossarian() {
   print("Visiting Yossarian...");
   dress_apropos(plan[step].hippy_frat);
   return visit_url("bigisland.php?action=junkman&pwd=");
  }
 // converts currentJunkyardLocation into the adventuring number
  int which_place() {
   string loc = get_property("currentJunkyardLocation");
   if (contains_text(loc,"barrel")) return 182;
   if (contains_text(loc,"refrigerator")) return 183;
   if (contains_text(loc,"tires")) return 184;
   if (contains_text(loc,"rusted-out")) return 185;
   else die("Bizarro error, no junkyard sublocation."); return 0;
  }
	boolean attack;
	string url;

 // kick things off
  if (item_amount($item[molybdenum magnet]) == 0) visit_yossarian();
  if (item_amount(stasis_item) == 0)
   die("OCW is set to stasis using a '"+to_string(stasis_item)+"', which you lack. Get one or edit the 'stasis_item' variable.");
  if (have_effect($effect[purple tongue]) == 0) use_upto(1,$item[purple snowcone],true);
  if (have_effect($effect[purple tongue]) == 0) use_upto(1,$item[purple-frosted astral cupcake],true);
  if (get_property("currentJunkyardTool") != "") gearup_apropos();
 // main loop
  while (item_amount($item[molybdenum hammer]) + item_amount($item[molybdenum crescent wrench]) +
     item_amount($item[molybdenum pliers]) + item_amount($item[molybdenum screwdriver]) < 4) {
   if (my_adventures() == 0) die("You're fresh out of adventures.");
   if (get_property("currentJunkyardTool") == "") {
     url = visit_yossarian();
     if (contains_text(url,"the next shipment of cars")) return (check_step(step));
     print("getting "+get_property("currentJunkyardTool")+"...","blue");
     if (!gearup_apropos()) wait(5);
   }
   if (have_effect($effect[purple tongue]) == 0 && have_effect($effect[tiny bubbles in the cupcake]) == 0 &&
     have_effect($effect[heart of orange]) == 0)
     use_upto(1,$item[orange candy heart],true);
   // slay a gremlin!
   attack = false;
   url = visit_url("adventure.php?snarfblat="+which_place());
   print("visited url="+which_place());
   while(!contains_text(url,"You win the fight!") && my_hp() > 0) 
   {
     if (contains_text(url, "hammer") || contains_text(url, "wrench") ||
       contains_text(url, "pliers") || contains_text(url, "screwdriver")) 
     {
      print("Item detected! using magnet...","green");
      url = throw_item($item[molybdenum magnet]);   // use the magnet
     } 
     else 
     {
      if (!attack) attack = (contains_text(url,"A.M.C. gremlin") || contains_text(url,"does a bombing run") ||
	                contains_text(url,"picks a beet") || contains_text(url,"picks a radish") ||
                  contains_text(url,"bites you in the fibula") || contains_text(url,"make an automatic eyeball"));
      if ((attack) || (my_hp() <= hp_safety)) { run_combat(); url = "You win the fight!"; }
       else url = throw_item(stasis_item);
     }
   }
   // post-combat
   cli_execute("mood execute");
   restore_hp(0);
   cli_execute("burn extra mp");
   restore_mp(0);
  }
  visit_yossarian();
  return (check_step(step));
}
 

zarqon

Well-known member
1.4.1 Update: I still haven't had time to take a look at much of anything myself, but I figured it was about time to post an update that included some of the fixes y'all have submitted, to get the script functional again. Included in this update:

  • Rinn's junkyard location fix.
  • dj_d's check for snowcone effect before snowcone use.
  • A big content update: warplans for each reward! These warplans were submitted to me by someone via email. I looked through them briefly and they seem to be right on. Also, I'm still on the road and had to reformat my computer, so I don't know who it was. Please step forward, awesome person who submitted these warplans, to receive your proper credit!

Thanks to all who have posted fixes. Enjoy this latest update.
 

Sandiman

Member
For those interested, this code adds support for a nun-area familiar. It does NOT remove the previous functionality of "best meat" familiar, so it's entirely possible I was simply using the "best familiar" functionality incorrectly. In any case, this allows the hobo monkey to override the leprechaun.

Old code:
// ------ Familiars ------

boolean is_100_run = false; // IF TRUE: no familiar swapping
string f_default = "npzr"; // battlefield/default familiar to use

// sidequest familiars -- leave blank to use default
string f_arena = "";
string f_lighthouse = "jumpsuited hound";
string f_junkyard = ""; // non-combat familiar - don't kill the gremlins early
string f_farm = ""; // if blank, OCW will use your best fairy-type

...

if (plan[step].checkprop == "sidequestNunsCompleted")
{ if (nunspeed) { chosen_f = best_fam("meat"); } else chosen_f = best_fam("produce"); chosen_o = o_nuns; chosen_m = m_nuns; }

New code:
// ------ Familiars ------

boolean is_100_run = false; // IF TRUE: no familiar swapping
string f_default = "npzr"; // battlefield/default familiar to use

// sidequest familiars -- leave blank to use default
string f_arena = "";
string f_lighthouse = "jumpsuited hound";
string f_junkyard = ""; // non-combat familiar - don't kill the gremlins early
string f_farm = ""; // if blank, OCW will use your best fairy-type
string f_nuns = "hobo monkey";

...

if (plan[step].checkprop == "sidequestNunsCompleted")
{ if (f_nuns == "") { if (nunspeed) { chosen_f = best_fam("meat"); } else chosen_f = best_fam("produce"); } else chosen_f = to_familiar(f_nuns);
chosen_o = o_nuns; chosen_m = m_nuns; }
 

lego6245

New member
Hi. Im getting the error of "Warplan is corrupt. I mean, the file is."

How would i fix this?

Serching in the code, i found this

Code:
 if (count(plan) == 0) die("Warplan is corrupt. I mean, the file is.");

Does this mean that if the first number is zero, it breaks?
 

zarqon

Well-known member
That means that somehow there are NO steps in your warplan. In other words, the warplan is not loading correctly. Make sure the warplan variable is set to an existing file on your machine, including extension (example: "optimal.txt") and the warplan is in the correct directory. If you are running a Mac or Linux system, you may have to relocate this file and/or alter the warplan variable (see first page for further details, it's a few posts down under Additional Documentation).

Hope that helps you figure it out.
 

Braska

Member
I must just be trying to use this wrong.... but ya know... I haven't been able to get this to work once. The ocw for me has turned into the "keep pressing OCW, watch it burn through your daily turns, and never accomplish anything."

Part of this is my fault. I don't know how to change the variable to use the warplan I want to use. But, part of that is because I cannot even open the file anywhere outside of mafia. And in mafia, it runs as soon as clicked.

What I want to know is, why it keeps telling me I don't have the required outfit, when I do. And also, why it will be in the middle of adventuring when I get the message "OCW has stopped."

Anywho... any suggestions, at all? I can post whatever is needed, I just have to know what you all would need.
 

zarqon

Well-known member
OCW Mission Statement

I realized I've never said this, so I think I'll say it. This is not a response to any person or comment, it's just something that should be said.

OCW exists to help players get through the meticulous and repetitive Battlefield process without messing up their kill counts. As a result, the quest became automated, but players should not allow this automation to displace their game-playing experience. I don't want players to automate the quest without even knowing what it is. This concept has already been widely discussed on these forums, I just thought I would assert my agreement with the creators' purpose for mafia as a KoL facilitator, not replacement.)

That said, I highly recommend doing your first Wossname run manually! Then you have an experiential understanding of what is involved in getting the Wossname. Which will also give you a much clearer idea of what the script is doing as it runs.

---

@Braska: I'm glad you wrote rather than just stewing in frustration. :) I'll try to get you started towards a productive OCW run.

First, and possibly only, you really need to set those variables. If you're running Windows, find the script file (you can press WIN+E to open an explorer window). Right-click the script, then click "Open With..." You should be able to choose a text editor then (I'd recommend Notepad since you have it already... if you want to download a more powerful editor, I recommend tsWebEditor, which can be tweaked to work with ASH scripts). Then you will be able to edit OCW to set your warplan, familiars, and outfits. That should make a huge difference for you.

Once you get that figured out, you should probably make a habit of looking at scripts before you run them. Although the scripts presented on this forum are usually impressively functional, many are still works in progress (including this one). Not all scripts are retail-quality scripts that work "out of the box," and you'll get better mileage out of the scripts when you have the power to customize them.

If you have problems tweaking the script, or have other problems after tweaking it, pop in again and we'll try and get you a one-click Wossname.
 

Braska

Member
Ah, the power of notepad. Thank you for the reply, and I'll get started on that right away.

And, just so ya know, I'm on my 13th ascension now, I already have a few wossname's, I'm just going through the getting the other awards now. Level 12 quest was only fun the first 10 times... now it is just repetitive. :p

Thanks again though, I never know what program to open something in without someone telling me. Got tired of messing stuff up by trial and error.
 

zarqon

Well-known member
Back home after touring the entire continental US! Tired, but happy.

And now that I'm home I can tell you that the person who made and submitted warplans for each individual reward was The_Tom777! (Who I'm pretty sure is on this forum as the_tom77.) Thanks Tom!

EDIT: Ha! Just wanted to mention that I just watched OCW complete the Orchard sidequest in 4 adventures!

Count them: 4.

Pretty sure having a 45-pound casagnova gnome didn't hurt.
 

noxious

New member
First of all, great script! I love the customization of the warplans, works great with my plan of getting all of the medals, wossname on down. So far, I've gotten the wossname, pink heart, copper alpha, and the orange star with no problems.

But when using the frat-5-beta warplan it stops at step 6.

Abridged output (if it helps):

(rebuilt from memory, gcli advanced past where I could see) sucessfully completed arena, filthworm part, junkyard, and mc's farm.

Unable to complete step 6
battle action => attack with weapon
OCW stopped.

Thanks for your help.

edit: i figured out the step 6 is it couldnt finish is the farm. The gcli lists I adventured in the barn, pond, back40 and the other back40 until it says 'nothing more to do here', but when I go to the relay browser to manually finish the farm, it says 'you cant fight your way thru hippies to get to the farm'. So needless to say, I am completely confused on how it spent 50ish advs where I cant adv...
 

zarqon

Well-known member
I didn't make or test the full complement of warplans, so I can't vouch for all of them. However, the plan does look okay (previous step is kill up to 192 hippies, which according to the wiki is what you need to unlock the Farm), so possibly you were the victim of Crimbo lag.

If you weren't, either a) there is a KoL chink in the code and you can adventure in the farm directly before it's been opened (this is known to happen with the Dungeons of Doom, I usually finish all my stuff in there before it's even visible), b) mafia thought it was adventuring there but it really wasn't...? or 3) there was some kind of gear glitch due to CDM inventory changes that threw things off.

Whichever it was, it looks like you'll have to kill another hippy or ten so you can get to the Farm, then see if it's already been completed or not. I'd be interested to know your results.
 

noxious

New member
[quote author=zarqon link=topic=1395.msg10409#msg10409 date=1229116310]
Whichever it was, it looks like you'll have to kill another hippy or ten so you can get to the Farm, then see if it's already been completed or not. I'd be interested to know your results.
[/quote]

Ach, the dooks are gone!

Ok, I had to go 17 more advs killing hippies (16 at a time) to unlock the farm, but the good news is, once the farm was available, the first adventure there was the farmer's thank you. At least advs weren't wasted.

[quote author=zarqon link=topic=1395.msg10409#msg10409 date=1229116310]
However, the plan does look okay (previous step is kill up to 192 hippies, which according to the wiki is what you need to unlock the Farm)
[/quote]

At the time the farm finally unlocked manually, the counter said 464 hippies defeated; 495-536 left (image 21). Is it possible the wiki could be wrong?
 

Veracity

Developer
Staff member
The second area unlocks at 192. The third area unlocks at 458. From the Fratboy viewpoint, the Farm is the third area.

Here are KoLmafia's internal tables for when to say "The <area> is now available in this uniform!"

Code:
	private static final int[] AREA_UNLOCK =
	{
		64,
		192,
		458
	};

	private static final String[] HIPPY_AREA_UNLOCK =
	{
		"Lighthouse",
		"Junkyard",
		"Arena"
	};

	private static final String[] FRATBOY_AREA_UNLOCK =
	{
		"Orchard",
		"Nunnery",
		"Farm"
	};
 

zarqon

Well-known member
Well there you have it. Interesting information that you can nearly complete the quest in the uniform that can't access the Farmer himself, but sadly, non-exploitable information. ;)

I've updated the warplan in the first post. Although it's nice to have completed the Farm as a fratboy in aftercore, the Nuns are the area that unlocks at 192 hippies slain, so I changed the fifth sidequest in the plan to the Nuns, for consistency. If you'd still rather complete the Farm, you'd have to change the number in the fifth step to 458.
 

noxious

New member
[quote author=zarqon link=topic=1395.msg10426#msg10426 date=1229203688]
so I changed the fifth sidequest in the plan to the Nuns, for consistency. If you'd still rather complete the Farm, you'd have to change the number in the fifth step to 458.
[/quote]

Kewl, that works out great! I was wondering why the nunnery was left out of a selection of 5. In my opinion, the nuns are one of the more important sidequests, especially as a frat with the mp restore. Thanks for the tech support!
 

morgad

Member
Hi, I am using the latest version of OCW with fastest.txt (for the first time i month's, I did my last two runs by hand)
Code:
0	true	fratboysDefeated	1
1	true	sidequestOrchardCompleted	hippy
2	true	fratboysDefeated	3
3	true	sidequestFarmCompleted	hippy
4	false	hippiesDefeated	1
5	false	sidequestLighthouseCompleted	fratboy
6	false	hippiesDefeated	3
7	false	sidequestArenaCompleted	fratboy
8	true	fratboysDefeated	7
9	true	sidequestNunsCompleted	hippy
10	false	hippiesDefeated	7
11	false	sidequestJunkyardCompleted	fratboy
12	true	fratboysDefeated	999
13	false	hippiesDefeated	999

and the top of wosname.ash
Code:
notify Zarqon;
string this_version = "1.4.2"; string[string] plan_for;
//               USER VARIABLES                //

 string warplan = "fastest.txt";    // filename of your default battle plan
 plan_for["zarqon"] = "fastest.txt"; // specify different warplans per characters.

//            ------ Familiars ------

 boolean is_100_run = false;      // IF TRUE: no familiar swapping
 string f_default = "hatrack";     // battlefield/default familiar to use

 // sidequest familiars -- leave blank to use default
 string f_arena = "";
 string f_lighthouse = "";
 string f_junkyard = "";        // non-combat familiar - don't kill the gremlins early
 string f_farm = "";          // if blank, OCW will use your best fairy-type

//             ------ Outfits ------

 string o_default = "current";     // default outfit to use

 // sidequest outfits -- leave blank to use default
 string o_orchard = "";
 string o_nuns = "";
 string o_arena = "";
 string o_lighthouse = "";
 string o_junkyard = "";
 string o_farm = "";

//             ------ Moods ------

 string m_default = "default";     // default mood to use

 // sidequest moods -- leave blank to use default
 string m_orchard = "";
 string m_nuns = "";
 string m_arena = "";
 string m_lighthouse = "";
 string m_farm = "";

//         ------ Post-war Variables ------

for some readon it has done the lighthouse and orchard as a Frat, the farm and the arena as a hippy (but I can't now get back into the arena) and it is now stuck untill the arena is opened
Checking for updates (running OCW ver. 1.4.2)...
battleAction => custom: default.ccs
Internal checkpoint created.
"fastest.txt" loaded (14 steps).
Verifying Wossname progress...
Current step: 7
Completing step 7 of 14...
Mood swing complete.
Mood swing complete.
Putting on current...
Equipment changed.
Putting on Frat Warrior Fatigues...
Equipment changed.
Countdown: 5 seconds...
Countdown: 4 seconds...
Countdown: 3 seconds...
Countdown: 2 seconds...
Countdown: 1 second...
Waiting completed.
Conditions list cleared.
Step 7: Mysterious Island Arena sidequest
You've already defeated the guy made of bees, so you're on your own for this sidequest.
Restoring initial settings...
battleAction => attack with weapon
OCW stopped.
327 frat boys defeated; 669-673 left (image 17). 3 hippies defeated; 992-997 left (image 1).
(i have been killing frats directly in Mafia waiting for the Arena to open)

any ideas?
Dave
 
Top