ascend_HC.ash (Work in Progress)

StDoodle

Minion
Please note that very little of this script has been written, and even less is being made available. For now, this if a discussion reference thread & a place to upload scripts for testing. Thanks!
 

Attachments

  • aHC_LIB.ash
    101 bytes · Views: 57
  • aHC_pirates.ash
    2.2 KB · Views: 59
  • ascend_HC.ash
    477 bytes · Views: 64
  • aHC_council_12.ash
    354 bytes · Views: 59
  • aHC_council_11.ash
    1.6 KB · Views: 60

Winterbay

Active member
Question: Will these be adapted to work under bad moon as well or only "normal" hardcore?
Just asking since if they are not BM-friendly I'll have to wait a while to help test them :)
 

StDoodle

Minion
My current plan is something useful for skill-farming in HCNP. While I'd like to extend it beyond that, it will be an even longer time coming. Of course, if I win the lottery, the timetable would change. ;)
 
I'll be doing the pirates tomorrow, would it help if I downloaded them pirate part and tried to give it a run? Would aHC_LIB.ash be the only other required script?
 

Bale

Minion
Code:
void farm_pirate_insults(int goal) {
	while (total_pirate_insults() < goal) {
		adventure(1, $location[Barrrney's Barrr]);
	}
}

Little things like that will cause you trouble if you run out of adventures. Don't forget to check for && my_adventures() > 0

Code:
void open_belowdecks() {

	while (! contains_text(visit_url("cove.php"), "snarfblat=160")) {
		adventure(1, $location[poop deck]);
	}
	
}
That's incredibly inefficient in terms of server hits.
Check for if(get_property("lastEncounter") != "It's Always Swordfish")

Code:
void open_belowdecks() {
   while (get_property("lastEncounter") != "It's Always Swordfish" && my_adventures() > 0) {
      adventure(1, $location[poop deck]);
   }
}

Just for the record, I prefer...

Code:
int total_pirate_insults() { 
	int total;
	for i from 1 to 8
		if(get_property("lastPirateInsult"+i) == "true")
			total = total + 1;
	return total;
}
 
Last edited:

StDoodle

Minion
Re: my_adventures()

I plan on having wrapper functions for these that do such checking, but I'm not sure. This thing is totally just "bear bones just-got-started" stuff, but I had an offer to test something and had to put it somewhere.

Re: lastEncounter

Oh geez, that's what I wanted and didn't realize it existed. Thank you! (It will also help with the hidden city part that I was getting an offer to test... ugh, the server hits on that one!)
 

Bale

Minion
Regarding the level 11 and 12 quests, are you planning to start from ground ZERO? Or are you going to ask zarqon to adapt his scripts as a starting point. Incidently the Hidden City is one of the few quests I automate. I've got this really nice script I use for it that I've adapted from zarqon. Take a look at it. It'll teach you a lot about how to handle the quest. You don't need to use regexes to search the map since mafia keeps that information in properties. It'll save you server hits if you use get_property("hiddenCityLayout") instead.

Here's the script I adapted from zarqon. I made a few changes. Take a look at it:
 

Attachments

  • HiddenCity.ash
    4.5 KB · Views: 58

StDoodle

Minion
Oh jeebus I never noticed that pref. either. *Headdesk* Argh. It's been one heck of a couple weeks for me; I wanted to come up with my plan & basics before posting any of this, then I got a request the other day in /clan. I really don't know how I plan to approach much of this, yet. All I know is that I find the process interesting, where I no longer find actually playing KoL to be so. A lot of that is lack of real life time; if I could go for speed, I'd get interested in ascension again. But until then I'd like to get more skills, but just can't bring myself to do so manually. Scripting it, however, is at least interesting. I'm not sure at this point how much I plan to borrow from others and how much I plan to do completely from scratch. It really depends on how everything in the planning stages comes along, and how those plans get along with the existing scripts.

I realize a lot of what I have thus far is horrid, which is why I was so hesitant to release anything yet. Ah well, it will probably get better once I can afford food again.
 

Bale

Minion
This was definitely pre-pre-pre-release. On the bright side, releasing this now is enabling you to learn from our criticisms. That's good, right?

PS. Good luck with eating. That tends to make things better.
 
Hey StDoodle. Don't forget to check out Rinn's Quest scripts which is on the first page. You might be able to use that to get a bit of lift.

You can also steal some code from the 1-click-wossname most likely to automate several of the battlefield quests.

The MacGuffin quest is also already done for you, probably twice over (once by Rinn and once by zarqon).


Instead of reinventing the wheel, surely you can save a bunch of time by using those. Ive used the Rinns quest scripts for opening spookyraven and doing several aspects of the run. The macguffin one is also really really nice, because that one is a big pain in the butt. Heck, even if I WANTED to do it manually (which I have in bad moon!), Im too lazy to reread all the wiki stuff for the Hidden Pyramid anyways. Ive bungled that one too many times when doing it before Mafia days.
 

slyz

Developer
I have been playing around with the idea of an ascension planning script, and more precisely a function that would return the number of turns needed to achieve a goal (an item, a noncombat adventure, a number of substats...) as well as update a player 'state' (stats, MP, HP, meat, important items etc...), depending on the available resources. It would be hard to take things like the queue into account, but it would be possible.

This might not be useful for you though, since I don't really know how much optimizing you would want your script to do.

Could you tell us a little more about the bigger picture you were considering? A linear script that plows through quests à la ascension.ash? What about MP/meat management?

Regarding fighting strategy, some kind of BatMan fork (once Zarqon releases it) would be very handy (to decide - before a fight and not during the fight - if you want to outmoxie, or maximize ML etc...).
 

heeheehee

Developer
Staff member
Doesn't that function appear in ZLib as the new form of has_goal()?

I'm pretty sure he provided an alias that displays all the locations from which you could get a goal and what your chances of getting it are.

Edit: Found a link.
 
Last edited:

slyz

Developer
I was thinking of something that would give you the number of turns it would take, depending on apparition rate, combat rate modifiers, olfaction, +item skills and equip etc etc...

It would also give you the number of turns needed to find a particular noncombat/superlikely, or gather enough of an item (stars, pixels...), or reach a certain stat.
 

heeheehee

Developer
Staff member
I think that's a future goal for has_goal(), but it's probably waiting on a choiceadv.txt map that includes all the noncombats.
 

slyz

Developer
has_goal() has goals!

One problem with the kind of things we can do with Mafia is that it's almost impossible to take the queue into account.

The best way to find out the average number of advs (and spread) getting reaching particular goal would take would be to do simulations, like RoyalTonberry does. I don't know if that's a good way to go in ASH.
 

StDoodle

Minion
Just to let everyone know, I'll give more comprehensive responses next week, when I get internet back (using my phone right now, it's a PITA).
 

zarqon

Well-known member
ZLib's has_goal() will eventually consider Olfaction and combat frequency, but I need to educate myself about that before implementing. As I'm terrifically occupied in RL these days, if someone beats me to it I will be pleased.
 

Bale

Minion
ZLib's has_goal() will eventually consider Olfaction and combat frequency, but I need to educate myself about that before implementing.

Quick primer to how olfaction affects encounter frequency: It adds one additional copy of that monster to the zone and ignores adventure queue rejection for that monster. In other words, if a zone has 3 monsters with equal appearance, let's call them A, B and C then they all have a 33% frequency. If you sniff monster A, then the monsters in that zone are A, A, B and C. Now A has a 50% appearance rate and the other two have 25%. Pretty simple, eh?

Olfaction also changes queue rejection. If a monster is in the queue, then it will be rejected 75% of the time if it is not olfacted. Olfacted monsters are immune to this.
 
Top