How to create a skill that can be improved via training etc.

Chris H.'s Ultima / ACS-style game development system!

Moderators: Ice Cream Jonsey, Chris H

Post Reply
Biffsnot
Posts: 16
Joined: Sat May 31, 2008 6:36 pm
Contact:

How to create a skill that can be improved via training etc.

Post by Biffsnot » Fri Jun 13, 2008 9:41 pm

As far as the skill training, that is fairly simple with the use of a variable and some macros. However, making it REACT differently on more difficult objects is giving me trouble.

To specify what I mean, I am creating a 'lock pick' skill (what post-apoc is worth anything if it doesn't have lock pick :) ) that will pick open locked doors. I was aiming towards using a numeric value stored in the variable L to represent the lock-pick skill. However I dont see a way to use one skill to unlock a door based on your skill compared to the hardness of the lock. So if your lock-picking is 5 and the door is a hardness of 10, you cant do it, etc.

I tried the 'let player shoot weapon' idea, using a weapon of 0 damage called lockpick. Then I have a 'locked door' that turns to a 'door' when hit with said weapon. All good so far and works like a charm. But now the issue is how to make it only unlock the door if L is high enough....with different lock hardness on different doors. As it is the lock pick will always succeed, making it quite easy indeed. I tried to use a macro on the 'locked door' to interrupt the object-change to no avail (then I could just 'pin' one of several difficulty macros to the door using the OBSTACLE*).

The only other option I can readily think of is to make 3 or 4 different lock-pick skills (Lock-pick easy, Lock-pick medium, etc.) that each opens a door of a certain difficulty. Then a trainer or trainers could take you to the next level of lock picking goodness. Of course this is cumbersome and a little buggy (as a lock-pick hard wouldn't open an easy lock door).

Any ideas are appreciated. The answer might be simple but it is 12:40 am here and I have had 12h of sleep total in 3 days so I am a bit toasted.

Chris H
Posts: 272
Joined: Sun Dec 02, 2007 4:07 pm
Location: California, USA

Post by Chris H » Fri Jun 13, 2008 11:53 pm

Here's the first idea that comes to mind:

Let's say your lock pick skill is variable L, and ranges from 0 to 10.

Create an object "Lockpick" that runs a macro when used (I'll call it macro 1)

Macro 1:
1 SET B = L

Then make doors:

Door: easy
Passable to: B > 0
Action: Macro 2
Disappear: when action triggered
Replaced with: unlocked door

Door: medium
Same as above, but Passable to: B > 4

Door: hard
Same as above, but Passable to: B > 7

And finally, macro 2:

1 SET B = 0

The disadvantage is that you're tying up the B variable (doesn't have to be B, but must be in the A-D range for this to work) in addition to the skill variable (in this case L)

This is similar to how the climbing gear works in the Ultima kit, by the way.

If you also want to have an actual key to unlock that particular door, an action space in front of the door "triggered by passing/redeeming" could unlock the door when you step in front of it, if you're carrying the true key.

Garth's Equipment Shop
Posts: 634
Joined: Fri Dec 05, 2008 5:55 pm
Location: Festering Foothills
Contact:

Post by Garth's Equipment Shop » Tue Dec 16, 2008 1:34 pm

SET B = L
Hey Chris. I was wondering about how variables work in ACK macros. I see that in your example code there you set a new variable in the new lockpick object to equal the value of L. What I was wondering was why this was even necessary. Why not just use L without setting any new variable to equal the value of L? Is there a difference here between local and global variables? Or are all variables equal in ACK? If L is global then it should be able to be used locally as well without reassigning its value to a new local variable shouldn't it?

I mean if the object's macro can assign the value of L to B then it must already have access to the value of L to begin with right? So why then couldn't we just start using L as a variable in this new object right away without even declaring it or reassigning it first? Hopefully by asking questions like this I can gain a deeper understanding of how ACK coding works.
Such is sweet Eloquence, that does dispel Envy and Hate, that thirst for human gore ~Blake

Chris H
Posts: 272
Joined: Sun Dec 02, 2007 4:07 pm
Location: California, USA

Post by Chris H » Tue Dec 16, 2008 2:40 pm

There are 52 general-purpose variables (A-Z and A2-Z2), but they're not all identical:

* Macros can use them all.
* Dialogues can only directly use (via GOTO and SETV) the first set, A-Z.
* Objects can fully use only A-D (to do > < = comparisons) but they can use them all for equal/not equal zero comparisons. That was the reason for copying the variable to B for that earlier example, by the way.
* A-G and A2-G2 are one-byte values (can be 0-255) while the rest are two-byte values (0-65535) [I think its G, I don't have the manual in front of me... it might be H]

I found on my recent project that I had plenty of variables to work with but could never remember what I was using for what. :) Keeping organized w/ a spreadsheet will really, really help. The kits, of course, come with a bunch of macros that use some variables already... for example the Ultima kit has moongates that use I think D, D2, E, and E2... and may freak out if any other macro changes those variables.

Also, if you come from an object oriented world -- forget all that. :) In ACK all variables are global.

Garth's Equipment Shop
Posts: 634
Joined: Fri Dec 05, 2008 5:55 pm
Location: Festering Foothills
Contact:

Post by Garth's Equipment Shop » Wed Dec 17, 2008 9:13 am

Thanks Chris. Well that does simplify things a lot though it is also kind of limiting. I like the spreadsheet idea. I really like making spreadsheets for some reason even though I never really have a use for them in practical every day life. The most use I ever got out of them was for AD&D character sheets and DM stats [back when I had way too much time on my hands]. I am sure I could improve family savings and spending by structuring our lives around an almighty spreadsheet but I doubt I could ever get the rest of the family to go along with that - lol. Anyway, I've seen too many bad [but oh so good] 80's horror movies about the dangers of becoming too dependent upon technology so I figure I'm better off doing things the more old fashioned way. I spend quite enough time on the computer just for entertainment purposes. ;)
Such is sweet Eloquence, that does dispel Envy and Hate, that thirst for human gore ~Blake

GeraldJ880

Post by GeraldJ880 » Mon Jan 26, 2015 4:41 am

The extent that the aptitude preparing, that is genuinely basic with the utilization of a variable and a few macros. Then again, making it REACT contrastingly on more troublesome items is providing for me inconvenience.

To detail what I mean, I am making a 'lock pick' ability (what post-apoc is justified even despite anything in the event that it doesn't have lock pick :) ) that will pick open bolted entryways. I was pointing towards utilizing a numeric worth put away as a part of the variable L to speak to the lock-pick ability. Then again I dont see an approach to utilize one ability to open an entryway focused around your expertise contrasted with the hardness of the lock. So if your lock-picking is 5 and the entryway is a hardness of 10, you cant do it, and so on.

I attempted the 'let player shoot weapon' thought, utilizing a weapon of 0 harm called lockpick. At that point I have a 'bolted entryway' that turns to an "entryway" when hit with said weapon. All great so far and brings about the ideal result. Be that as it may now the issue is the way to make it just open the entryway if L is high enough....with distinctive lock hardness on diverse entryways. As it is the lock pick will constantly succeed, making it simple without a doubt. I attempted to utilize a macro on the 'bolted entryway' to intrude on the article change without much of any result (then I could simply "stick" one of a few trouble macros to the entryway utilizing the Obstacle*).

The main other choice I can promptly consider is to make 3 or 4 diverse lock-pick aptitudes (Lock-pick simple, Lock-pick medium, and so on.) that each one opens an entryway of a certain trouble. At that point a coach or mentors could take you to the following level of lock picking goodness. Obviously this is lumbering and somewhat surrey (as a lock-pick hard wouldn't open a simple lock entryway).




_____________________________
You can get score highest marks in a+ vce dumps exam using and test king security+ training which are prepared by certified professionals security+ exam cost ccna wireless Northwestern University both are marvelous
Last edited by GeraldJ880 on Tue Feb 10, 2015 10:52 pm, edited 1 time in total.

User avatar
Ice Cream Jonsey
Posts: 21054
Joined: Sat Apr 27, 2002 2:44 pm
Location: Colorado
Contact:

Post by Ice Cream Jonsey » Mon Jan 26, 2015 8:02 am

Welcome to the site! I hope you have a good time here. ACK is pretty great.
the dark and gritty...Ice Cream Jonsey!

Garth's Equipment Shop
Posts: 634
Joined: Fri Dec 05, 2008 5:55 pm
Location: Festering Foothills
Contact:

Post by Garth's Equipment Shop » Mon Apr 13, 2015 4:22 pm

:D You know your talking to some kind of bot right ICJ? Lol
The whole post was like a really poor mechanical rephrasing of what Biffsnot posted 7 years ago. Almost as if some kind of Eliza program chewed it up and spit it back out.

http://www.joltcountry.com/phpBB2/viewt ... 0102#50102
Such is sweet Eloquence, that does dispel Envy and Hate, that thirst for human gore ~Blake

joebonked

Post by joebonked » Thu Jun 11, 2015 7:49 pm

Bot? perhaps. Maybe something even stranger if you could imagine.
But the easiest way I can figure out success=1 or =0 is to have a variable for lock picking ability and then just have a random number generate to allow access. And use the lock picking variable as the gage to decide is success = 1. The better the skill or variable then the likelihood of the passage is presented. You can use mapset to change the actual tile that needs overcoming with a lock pick. And if you use a set tile later object, the object that is passable can replace it without changing the tile appearance if it is replaced with another object that is set tile late. You can always prevent passage if conditions are not met. No matter what the conditions.
Objects changing instead of what allows passable seems easier. You can tell a macro where on the map the change the object by finding out the last direction the character directed its move. N S E W. Then mapset (loc[x]+1 or -1) and so on.

Post Reply