sneazy
Clueless newb
Posts: 115
|
Post by sneazy on Feb 14, 2019 5:31:21 GMT -5
This is as easy as it gets. The only difficulty is installing Cygwin. Download the install program from Cygwin (I use 64 bit on windows 7). Select the following to install:
devel package: mingw64-x86_64-winpthreads devel package: cygwin-devel devel package: make utils package: dos2unix net package: inetutils net package: inetutils-server libs package: libexpat-devel interpreters package: libmozjs185-devel interpreters package: libmozjs185 (runtime) devel package: gcc devel package: g++
IN LINUX should have everything except spidermonkey 1.8.5 it's a very old version - search for mozilla spidermonkey
get ArmSolo.tbz and put on hard drive you want (make sure you have space!)
assume it is hard drive "k" run Cygwin Terminal (I'll show cygwin input after $) $cd /cygdrive/k/ $tar -xvf ArmSolo.tbz (uncompresses into the ArmSolo directory) $cd ArmSolo Now have to edit db.h windows text editor is fine I use Notepad++ change these lines to point to your drive letter #define MUD_DIR "/cygdrive/k/ArmSolo/armExe" #define DFLT_DIR "/cygdrive/k/ArmSolo/armExe/lib" #define LIB_DIR "/cygdrive/k/ArmSolo/armExe/lib"
be sure to save and close
back in the Cygwin terminal window: $make (if all the packages are installed should make $armSolo.exe) Now you have armSolo.exe - move it to the correct directory $cp armSolo.exe ./armExe $cd armExe
The mud is ready to run. You do not have to be connected to the internet. You can block the program from the internet with firewall. If you want to run this for multiple people, can't help you. Not going to try or test it.
To start just type: $./armSolo.exe The mud should start up, scrolling different things that are loading. When it finishes booting you will see the scroll of different mobs killing each other.
Open your favorite mud client or ANOTHER cygwin window telnet localhost 2000
Login to ArmSolo with user Moob, pwd aaaaaa (that is 6 a's) Your overlord is ready to play.
When you create a character the password is set to 7 a's "aaaaaaa" When you first login, you have to change the password so I just set it to 6 a's.
caveats Some login/char creation steps take 2 returns. Probably some file I set empty instead of a message. Have not tested all guilds/subguilds/races or commands. Have tested the common stuff. Sorceror does not work - the data is pre-nerf, the code is post-nerf. Have a fix but you can just change the "guilds" or "subguilds" file or assign skills with the Moob. Removed biographies.
When you logon as Moob try >goto 56007 (plains near tuluk) >goto 20082 (tuluk but it's old and a bit messed up) >goto 50937 (nak near meleth's circle) >goto 50617 (nak the gaj -> starting room for all mortals) >goto 61125 and "forage rock" (at span over north road near tuluk) >goto 64027 (tavern in luirs) >wizhelp (shows the imm commands for altering stats)
If you create a new character try ranger/acrobat or warrior/acrobat subguild acrobat has most skills set to master out of the box (cuts through gith like butter) You can only point to one home city - Allanak. Might post how to change this at some point.
I made up the subguilds and set most skills to master. I'll post how to edit these files later.
These are minor and I have other things to do so might not get around to them. TODO: Many of the special programs have hardcoded vnums for rooms/objects. These probably don't work. For example - the gates in Nak, that special box for one of the mages, fire seeds. These room numbers/item numbers might have changed over the years OR don't exist in the data. I will work through these at some point but I am not in any hurry.
Change the world files to a more current Nak/Luirs/Tuluk - a lot of building to do.
Final takeaway: the code works fine for most normal skills. Ranger/warrior will be fine. Crafter, no. Elementalists - sure but probably some spells won't work due to the items not existing (vividuan shield) or items not having their special code attached.
Enjoy. I'll post how to do some simple fixes later. I am not guaranteeing to update this project anymore though. This is as simple as it gets for running arm.
|
|
|
Post by lechuck on Feb 14, 2019 6:09:03 GMT -5
Am I missing a link somewhere? What/where is ArmSolo.tbz?
|
|
sneazy
Clueless newb
Posts: 115
|
Post by sneazy on Feb 14, 2019 7:10:19 GMT -5
Am I missing a link somewhere? What/where is ArmSolo.tbz? Discord.
should mention tbz is tar/bzipped file
|
|
sneazy
Clueless newb
Posts: 115
|
Post by sneazy on Feb 14, 2019 7:20:52 GMT -5
BOARDS
In game - to get them to work just go into the room with a board (using Moob) and type >write board Should say "saving board" Then you can >write board Test Notice
If that doesn't work, create an empty file/set of files in /ArmSolo/armExe/lib/data_files/board1.msg etc. up to however many boards are in the game. It's something I will remove at some point because who needs boards in a single player game?
CHARGE/TRAMPLE
These skills work but they don't show the messages. Use your windows editor (notepad++ for me) and edit /ArmSolo/armExe/lib/data_files/messages
The last line in the file is: $
Change to 415 Bones crack as you charge over $N - $E is dead!~ You're dead, broke your neck!~ $n charges over $N, and you hear bones snap!~ $N narrowly evades your charge.~ You narrowly evade a charge by $n.~ $n charges at $N who scrambles out of the way.~ You charge at $N and $r tramples over him.~ $n charges at you, trampling over you!~ $n charges at $N and $r tramples over him.~ $N is unaffected by your charge.~ $n attempts to charge at you to, fail!~ $n tries to charge $N, let the laughing commence.~ 500 Bones crack as you trample over $N - $E is dead!~ You're dead, broke your neck!~ $n tramples over $N with $r, and you hear bones snap!~ $N narrowly evades your trample.~ You narrowly evades an attempted trample by $n.~ $n moves $r to trample over $N who scrambles out of the way.~ You move $r and trample over $N.~ $n moves $r and tramples over you!~ $n moves $r to trample over $N and tramples over $E.~ $N is unaffected by your trample.~ $n attempts to trample over you with $r, fail!~ $n tries to move $r to trample $N, let the laughing commence.~ $
Save and close Go to your Cygwin terminal and cd to /data_files run "$dos2unix messages" Should be fixed.
Explanation - the numbers in the file are the skill numbers. Trample is skill number 500. The messages are 1. death to actor 2. death to room 3. death to victim Then 3 messages for fail, 3 for success, and 3 for going against an imm character
|
|
sneazy
Clueless newb
Posts: 115
|
Post by sneazy on Feb 14, 2019 8:41:23 GMT -5
FORAGE file
the file /ArmSolo/armExe/lib/data_files/forage tells what/where things can be foraged.
The top line is from the forage.c file search for "forage_list" and the text with ~ Some valid values: stones, wood, branches, cotton, salts, spice Second line is from the constants.c file search for "struct attribute_data room_sector[] =" end text with ~ Some valid values: mountains, hills, field, desert, silt. Third line is some keywords/values with spaces between VNUM: # <- the is the object number for the object you will find. Create the object with olc or edit an *.obj file in /lib/objects SHARES: # <- Not sure, just some counter for the number in the game? Unimportant for solo play. RARE: # <- 0 - none (?), 1 - common, 2 - uncommon, 4 - rare, 8 - ultra_rare ----------- stones~ hills~ VNUM: 19259 SHARES: 300 RARE: 1 stones~ mountains~ VNUM: 19260 SHARES: 300 RARE: 1 -----------
Edit the file with your windows editor. Save and close. Be sure to goto your cygwin terminal and "$dos2unix forage" to convert the file after editing.
For advanced users: You can add [CUSTOM_FORAGE] extra desc to a room to make a unique item/forage set for that room
SHOPS file - set to buy any material type in the code since this is a solo version
line of Shop owner vnum open hour close hour line of production object vnums MUST be 15 numbers so -1 for not using (infinite number to sell) line of new object vnums MUST be 15 numbers (one to sell at startup? not sure) line of buy percent (haven't played with these so not sure) line of sell percent (ditto) line of buy type line of sell type Strings for interactions
50448 0 0 1356 1365 1371 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.330000 1.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 17 19 0 0 0 Looking like you haven't got anything like that.~ None of those here, see.~ No handouts, see. You have to pay for the merchandise.~ Gar! I haven't that much money.~ Ho, there. I won't buy such things.~ That's not for sale, see.~ Go away or I'll call the soldiers.~ Ho, a very fine offer! I accept.~
RACES file This is an old file so last race in the file is RACE_ESCRU. The code file guilds.h has a list of current races (as of the code). Many are missing. If you really want them, just copy, reskin them. Here's how a race entry looks (most obvious):
Name abbrev obvious line of attributes offense base defense base natural armor damage dice race type maximum age attack type <- race type is in guilds.h 2 is RTYPE_MAMMALIAN attack type is in skills.h 310 is TYPE_BITE (just search on that) Next line is up to 5 items you get when you skin this race Then text lines describing what you skinned
----------- Escru~ Esc~ STRENGTH: 4d4+0 AGILITY: 1d4+3 WISDOM: 2d4+0 ENDURANCE: 2d3+16 0 0 0 1d3+1 2 24 310 56522 6138 6401 6401 -1 You carefully hack at the base of a small, ivory horn, until it's pried free.~ $n carefully hacks at the base of a small, ivory horn, until it's pried free.~ Working swiftly, you cut the remaining fleece from the fresh carcass.~ Working swiftly, $n cuts the remaining fleece from the fresh carcass.~ First slicing through the hide, you cut free a strip of juicy flesh.~ First slicing through the hide, $n cuts free a strip of juicy flesh.~ First slicing through the hide, you cut free a strip of juicy flesh.~ First slicing through the hide, $n cuts free a strip of juicy flesh.~ ----------
GUILDS file - don't have all the guilds, sorcerer code is for nerfed sorcs, guilds file has old sorc. Templars and noble, just made it up so edit those if you want an old sorc. Entries for a guild are simple.
Guild name abbrev stat bonus/penalties (str agi wis end - I think) offense/defense..some other bonuses (don't remember) forget this number (getting lazy) skill name~ <- these repeat for each skill in this guild find these in constants.c look for "hands of wind" branched from skill name~ <- "none" means you start with this skill max starting <- from below - max 90% start at 30% for hands of wind ------------- Sorcerer~ Sor~ -2 0 2 -2 10 20 0 0 1 hands of wind~ godspeed~ 90 30 sandstorm~ godspeed~ 90 30 ------------
SUBGUILDS file. This file did not exist so I pulled values out of my ass. It is the same format as the guilds file. Subguild acrobat is a nice cheat - it sets nearly all combat/hunting skills to 90%. Change these to whatever you want.
Two more to do later: how to fix it so you can select the old style defiler and a quick fix/example for crafting But you already have everything you need to test out/simulate combat.
|
|
sneazy
Clueless newb
Posts: 115
|
Post by sneazy on Feb 14, 2019 10:19:11 GMT -5
The easy way to add skills to your character is to login with the Moob in one window. Login with your character in another window. Then have Moob do this for whatever skill you want (text name of skill/spell is in constants.c)
>cset YourChar skill 90 hands of wind Do that for every spell/skill you want on your character.
But you aren't happy with that. You want to create a character that is an old school defiler. Make a backup copy of parser.c then edit the file parser.c The text below that has "//" in front are lines that have been commented out. Add the new lines to the text file. There are 2 places you have to change.
........ 1. ........ if (GET_GUILD(d->character) == GUILD_DEFILER) { // SEND_TO_Q("\n\r" // "As a Sorceror, you have learned some magicks after already having a \n\r" // "normal upbringing. Please choose you mundane profession.\n\r" // "\n\rCurrent professions are:\n\r\n\r" // "A) Ranger B) Merchant C) Pick-pocket\n\r" // "D) Burglar E) Warrior F) Assassin\n\r\n\r", d); SEND_TO_Q("Congrats, you are an old school defiler/preserver. \n\r" "Lazy rando's Sub guild choices:\n\r\n\r" "A) Acrobat B) Physician C) Forester\n\r" "D) Jeweler\n\r", d); SEND_TO_Q("\n\rWhat kind of sorcerer are you? ", d); // SEND_TO_Q // ("\n\rPlease type the letter of your character's mundane profession: ", // d);
STATE(d) = CON_SORC_SUB_CHOICE; break; #define PSI_SECOND_PROF TRUE #if PSI_SECOND_PROF
........ 2. ........
case CON_SORC_SUB_CHOICE: /* skip whitespaces */ for (; isspace(*arg); arg++);
*arg = LOWER(*arg); switch (*arg) { case 'a': /* Ranger */ d->character->player.sub_guild = SUB_GUILD_ACROBAT; // SUB_GUILD_SORC_RANGER; break; case 'b': /* Merchant */ d->character->player.sub_guild = SUB_GUILD_PHYSICIAN; // SUB_GUILD_SORC_MERCHANT; break;
........
While we are here, I will point out that many subguilds do not exist in the subguilds file so using them might crash the game. You can do the following for any subguild that does not exist (the noble subguild choices shown below) Take the non-existent subguild and comment it out and replace it with one that does exist. case 'a': /* Aesthete */ d->character->player.sub_guild = SUB_GUILD_ACROBAT; // SUB_GUILD_NOBLE_AESTHETE; break; case 'b': /* Athlete */ d->character->player.sub_guild = SUB_GUILD_ACROBAT; // SUB_GUILD_NOBLE_ATHLETE; break; After changing, save and in Cygwin do "$make" again. If you are not comfortable with changing code like above, then use the Moob to setup your character however you like - skills, stats You probably can change it to defiler guild as well (after creation with the Moob).
For a solo game, I don't think it is worth chasing down these subguilds.
|
|
sneazy
Clueless newb
Posts: 115
|
Post by sneazy on Feb 14, 2019 10:42:26 GMT -5
CRAFTING
There are no crafting recipes. If you look through the object files you'll find a lot of items are not there.
cygwin terminal: $cd /cygdrive/k/ArmSolo/armExe/lib/objects/ $ grep "leaf-patterned" *.obj z45.obj:armlet jade leaf-patterned cenyr_make~ z45.obj:a leaf-patterned jade armlet~
Common items like "a leaf-patterned, tembo-hide wrist-wrap" are not in the data. Neither is the burnt meat you get when you fail cooking!
Here's how to get crafting to work make a copy of object.c now edit object.c
........Add this: // crazy crap if (recipe.tool_type == 0) { // this is tool type none tool_found = TRUE; quality_found = TRUE; } ........Add above the code below if (FALSE == tool_found && FALSE == quality_found) { <- here and below exists in code. Search for "Crafting that requires a" cprintf(ch, "Crafting that requires a %s.\n\r", tool_name[recipe.tool_type]); goto restore_objs; } Save, go to cygwin and compile
To create a recipe edit the "lib/data_files/crafting.xml" file. Blanks might cause the game to crash so enter the data
<CRAFT> <ITEM> <NAME>charred meat</NAME> <- what you are making <DESC>You are cooking with gas.</DESC> <- what others see <FROM>39105</FROM> <- vnum of starting material (can be multiple items forget how to do that) This is tandu meat <INTO_SUCCESS>20908</INTO_SUCCESS> <- vnum of what you are making Some kind of cooked tandu <INTO_FAIL>28279</INTO_FAIL> <- vnum of what you make when it fails Some dried meat. <SKILL>cooking</SKILL> <- skill used for this craft <PERC_MIN>90</PERC_MIN> <- minimum skill level to do this recipe <PERC_MOD>10</PERC_MOD> <DELAY_MIN>1</DELAY_MIN> <DELAY_MAX>2</DELAY_MAX> <TO_CHAR_SUCCESS>Meh, what did you expect?</TO_CHAR_SUCCESS> <TO_ROOM_SUCCESS>There's a cook in the house.</TO_ROOM_SUCCESS> <TO_CHAR_FAIL>You suck.</TO_CHAR_FAIL> <TO_ROOM_FAIL>Hey everyone, no cooks here.</TO_ROOM_FAIL> <ONLY_TRIBE>0</ONLY_TRIBE> <- restricted to a clan/tribe <REQUIRE_FIRE>0</REQUIRE_FIRE> <- requires fire <TOOL_TYPE>none</TOOL_TYPE> <- tool type required or "none" <TOOL_QUALITY>0</TOOL_QUALITY> <- tool quality required or 0 </ITEM> </CRAFT>
As you can see it is a lot of work making new items to craft.
|
|
vulcan
staff puppet account
Posts: 28
|
Post by vulcan on Feb 14, 2019 10:47:59 GMT -5
This is as easy as it gets. The only difficulty is installing Cygwin. Download the install program from Cygwin (I use 64 bit on windows 7). Select the following to install:
devel package: mingw64-x86_64-winpthreads devel package: cygwin-devel devel package: make utils package: dos2unix net package: inetutils net package: inetutils-server libs package: libexpat-devel interpreters package: libmozjs185-devel interpreters package: libmozjs185 (runtime) devel package: gcc devel package: g++
IN LINUX should have everything except spidermonkey 1.8.5 it's a very old version - search for mozilla spidermonkey
get ArmSolo.tbz and put on hard drive you want (make sure you have space!)
assume it is hard drive "k" run Cygwin Terminal (I'll show cygwin input after $) $cd /cygdrive/k/ $tar -xvf ArmSolo.tbz (uncompresses into the ArmSolo directory) $cd ArmSolo Now have to edit db.h windows text editor is fine I use Notepad++ change these lines to point to your drive letter #define MUD_DIR "/cygdrive/k/ArmSolo/armExe" #define DFLT_DIR "/cygdrive/k/ArmSolo/armExe/lib" #define LIB_DIR "/cygdrive/k/ArmSolo/armExe/lib"
be sure to save and close
back in the Cygwin terminal window: $make (if all the packages are installed should make $armSolo.exe) Now you have armSolo.exe - move it to the correct directory $cp armSolo.exe ./armExe $cd armExe
The mud is ready to run. You do not have to be connected to the internet. You can block the program from the internet with firewall. If you want to run this for multiple people, can't help you. Not going to try or test it.
To start just type: $./armSolo.exe The mud should start up, scrolling different things that are loading. When it finishes booting you will see the scroll of different mobs killing each other.
Open your favorite mud client or ANOTHER cygwin window telnet localhost 2000
Login to ArmSolo with user Moob, pwd aaaaaa (that is 6 a's) Your overlord is ready to play.
When you create a character the password is set to 7 a's "aaaaaaa" When you first login, you have to change the password so I just set it to 6 a's.
caveats Some login/char creation steps take 2 returns. Probably some file I set empty instead of a message. Have not tested all guilds/subguilds/races or commands. Have tested the common stuff. Sorceror does not work - the data is pre-nerf, the code is post-nerf. Have a fix but you can just change the "guilds" or "subguilds" file or assign skills with the Moob. Removed biographies.
When you logon as Moob try >goto 56007 (plains near tuluk) >goto 20082 (tuluk but it's old and a bit messed up) >goto 50937 (nak near meleth's circle) >goto 50617 (nak the gaj -> starting room for all mortals) >goto 61125 and "forage rock" (at span over north road near tuluk) >goto 64027 (tavern in luirs) >wizhelp (shows the imm commands for altering stats)
If you create a new character try ranger/acrobat or warrior/acrobat subguild acrobat has most skills set to master out of the box (cuts through gith like butter) You can only point to one home city - Allanak. Might post how to change this at some point.
I made up the subguilds and set most skills to master. I'll post how to edit these files later.
These are minor and I have other things to do so might not get around to them. TODO: Many of the special programs have hardcoded vnums for rooms/objects. These probably don't work. For example - the gates in Nak, that special box for one of the mages, fire seeds. These room numbers/item numbers might have changed over the years OR don't exist in the data. I will work through these at some point but I am not in any hurry.
Change the world files to a more current Nak/Luirs/Tuluk - a lot of building to do.
Final takeaway: the code works fine for most normal skills. Ranger/warrior will be fine. Crafter, no. Elementalists - sure but probably some spells won't work due to the items not existing (vividuan shield) or items not having their special code attached.
Enjoy. I'll post how to do some simple fixes later. I am not guaranteeing to update this project anymore though. This is as simple as it gets for running arm. Armsolo, for when playing the game with staff has become so tedious and painful you rather just play it alone.
|
|
|
Post by shakes on Feb 14, 2019 12:02:54 GMT -5
Fuck all you guys. I'm gonna make my own Arm. With blackjack. And hookers.
|
|
|
Post by lechuck on Feb 14, 2019 20:41:13 GMT -5
Thanks for putting this together. I got it working, but unfortunately there are some major oddities in the combat code that made me question some of the tests I did. Here's a few examples:
- Two handed doesn't appear as a starting skill. I guess the class data is from before it was implemented. You can still give characters the skill but it disappears again if they gain a point in it.
- Couldn't get backstab to do more than like 40-50 damage even with max skill, AI strength and good weapons.
- Couldn't get poisons to trigger on arrows. I had one char shoot another 15 times with poisoned arrows and none worked.
- Set up a character with pretty moderate combat skills and he was able to kill a mekillot and a silt horror. Might have more to do with the outdated NPC database than with actual code.
It's still very interesting and there are things that can be experimented with, but you always have to measure it up against experience with the live game. If you're going to test something that you've never personally used before because you want to see if it'll be any good, you shouldn't take the results at face value. There aren't too many secrets that can be learned in ArmSolo because the worldfile is radically different, but it's fun to see things like the old Labyrinth and Allanak. The game was seriously barebones back then and full of typos and jarring shit like H&S descriptions. I believe the worldfile is from 1998, and it's interesting to find out that some of the original maps and skill lists that floated around when I started playing dated back that far. Anyone know when Allanak/Labyrinth was redesigned? It was definitely before 2003.
There's a number of rooms that have items in them, like various offices and such. Interesting to see what people had laying around back then. I found one office that seemed to have belonged to some Lirathuan templar and it was full of crazy shit like metal equipment, spell scrolls and magick items. There's also a Kuraci hideout under the rinth that seemingly anyone with pick could have accessed, filled with dozens upon dozens of potions. Potions weren't really part of the game anymore when I started playing, but they appear to have used the tint and taste code that was repurposed into the new brew code, e.g. "a blue bland potion."
|
|
jkarr
GDB Superstar
Posts: 2,030
|
Post by jkarr on Feb 15, 2019 0:03:31 GMT -5
It's still very interesting and there are things that can be experimented with, but you always have to measure it up against experience with the live game. If you're going to test something that you've never personally used before because you want to see if it'll be any good, you shouldn't take the results at face value. There aren't too many secrets that can be learned in ArmSolo because the worldfile is radically different, but it's fun to see things like the old Labyrinth and Allanak. The game was seriously barebones back then and full of typos and jarring shit like H&S descriptions. I believe the worldfile is from 1998, and it's interesting to find out that some of the original maps and skill lists that floated around when I started playing dated back that far. Anyone know when Allanak/Labyrinth was redesigned? It was definitely before 2003. nak and rinth have been resdesigned multi times but 98 rinth was when the biggest mass changes happened i think like the full rewrites of the alleys the rest like renaming and rewriting the westside bar more than once putting in the ashpit north of hathors and adding the body shop rooftops blockade entrance and new mobs happened in separate oneoffs over the last decade or more
|
|
|
Post by shakes on Feb 15, 2019 0:52:14 GMT -5
The rinth could still use yet another rewrite.
|
|
|
Post by lechuck on Feb 15, 2019 4:11:20 GMT -5
Despite my suspicions about the combat code, I did decide to run some thorough tests of strength vs. agility.
For the first test, I made two warriors with the same attributes except one had 19 strength and 14 agility while the other had 14 strength and 19 agility. Same weapon. Set their offense and weaponskill to max, gave both 1000hp and let them fight to the death. The strength character defeated the agility character with 532hp left. No dual wield or etwo in this test. This was to test the raw damage difference without RNG from misses, but this of course means that the offense/defense bonuses from agility meant nothing as neither character ever missed. It's not a terribly important test since no real characters have max offense and weaponskill with starting defense and parry, it's just a baseline to work from.
So next I reset their skills to the starting values for warriors and let them both dual wield. This fight took a long-ass time with 1000hp but agility narrowly won with 71hp left. I pretty much expected agility to win a long fight at starting skill values where 19 agility doubles your off/def but I didn't expect it to be so close that it could have gone either way. If the agility character had been an elf with 26, the margin would probably have been much bigger.
Then I set their skills to what I estimate the typical plateau is: 30 off/def, 40 weaponskill, 65 parry, 75 dual wield. Strength won by a landslide, finishing the fight with 680hp left. The fight took absolutely forever because of the 1000hp so I just glanced occasionally at the client, and at one point strength had 806hp left while agility had 463. A while later it was 729 and 190. It wasn't even a little bit close, strength destroyed agility. I might try with a human vs elf at some point but it took so long that I didn't feel like doing it in the same sitting.
I had initially meant to post the logs from these fights but they were far too long. That last fight took over 20 minutes.
Misc. notes from this experiment:
- Offense and defense gains are absurdly slow. In the first test, one of the characters took around 70 hits before gaining a point in defense. In the second test, one of the two characters didn't gain a point in offense at all despite what must have been upwards of a hundred whiffs. I suspect PCs walk around with way less off/def than players think they have. Some of the new classes have higher starting offense than their old counterparts, and I think this makes a bigger difference than we thought. Five points in defense could very well be a month worth of play.
- The agility character took so long to deal 100 damage that the only way they could possibly kill anyone in a real PvP situation is if the target was prevented from leaving for minutes. Throughout these fights there were segments where the strength character dealt 100 damage inside 20ish seconds. Highest damage that I saw by the agility character was 25 while the strength character scored a hit for 41 damage.
- Agility is pretty effective at starting skill levels and then tapers off steeply as skills surpass the agility bonuses. Looking at parts of the runlog, timestamps indicate that 19 agility got about 30% more attacks than 14, while 19 strength did about 100% more damage per attack on average (less on limb hits, more on head/neck hits). The damage percentage will vary depending on the type of weapon used; it'll be less if it's a hard-hitting weapon with a large damdice but could be as much as 200% more with a dagger. +4 damage will triple the average hit of a 1d4 weapon.
- I didn't use armor for these tests because there's no way to know if the armor in this database matches what exists in today's game. If I had given both characters the best armor their strength permitted, agility would have been even further behind.
- I didn't do any long tests with two handed because the skill is buggy due to no class getting it, which means it disappears again if the character gains a point in it. You can still give the skill to a character, though, and the code itself appears to work for it. I made an AI strength human with advanced two handed, wielded a massive club, and was able to land a 114 stun headshot on another human. That's kinda nuts.
- Pre-nerf stilt lizards had 75 defense lol.
- Weapon damdice was all over the place back when this item database was live. I had to carefully check the weapons to make sure the ones I used weren't fucked up. One weapon might have 1d6-1 and another similar-looking one could be 3d3. Game must have been a wild west of insider information back then.
- Agility bonus does not double-dip with weapon skills or parry/shield. It adds the react substat to defense and offense, as well as the manual combat skills (kick, bash, disarm etc.) Max human agility is +10. A decent mid-high agility roll gives +5. This means that the difference (for melee combat) between very good and AI agility is just five points in off/def and manual combat skills, plus a modest amount of attack speed. It's practically nothing. If you have less than VG agility, it starts to get more noticeable. I don't think attack speed starts to slow down considerably until you drop below good.
|
|
sneazy
Clueless newb
Posts: 115
|
Post by sneazy on Feb 15, 2019 7:54:40 GMT -5
Edit the guilds and/or subguilds files to add skills. As an example, here is how to add "two handed" to warriors and rangers. Edit guilds file, insert the following. Warrior~ War~ 1 0 -1 1 40 40 12 12 1 two handed~ none~ 80 15 kick~ none~ 80 15
Ranger~ Rng~ 0 0 1 1 35 50 5 15 1 two handed~ none~ 80 15 rescue~ none~ 95 15
save, close the file. goto Cygwin and get to the correct directory /cygdrive/k/ArmSolo/armExe/lib/data_files run dos2unix "$dos2unix guilds" Start the game and create a new warrior/ranger and they will have the skill. You can create whatever you want (give spells to warriors, change starting skill levels). In game (a quick warrior/bard): skills Psionic powers ----------------------------------------------------------------------------- contact (master) barrier (novice)
Combat skills ----------------------------------------------------------------------------- kick (novice) bash (novice) rescue (novice) disarm (novice) parry (novice) dual wield (novice) subdue (novice) shield use (novice) two handed (novice)
Weapon skills ----------------------------------------------------------------------------- piercing weapons (novice) slashing weapons (novice) chopping weapons (novice) bludgeoning weapons (novice)
Manipulation skills ----------------------------------------------------------------------------- steal (journeyman) sleight of hand (journeyman)
Perception skills
[MORE]
----------------------------------------------------------------------------- listen (journeyman) watch (journeyman)
Language skills ----------------------------------------------------------------------------- sirihish (master) southern accent
Craft skills ----------------------------------------------------------------------------- instrument making (journeyman)
Another note: to delete a character just delete the folder in ../lib/accounts Since two-handed did not exist in the old data, there can't be any appropriate two handed weapons. You can create one with OLC (see wizhelp) or get a current arm imm to pass you one My interests are in another direction - recreating the newer rooms from log files and then reconstructing the scripts (make gates open/close, carru bashing, stuff like that). After that, I am not sure if I want to recreate things like crafting items/recipes, forage items, or even the unique spell items (such as the vivaduan shield).
|
|
sneazy
Clueless newb
Posts: 115
|
Post by sneazy on Feb 15, 2019 8:04:43 GMT -5
And one more thing, then I'm done. There are no javascripts included but you can get them to work. in directory /cygdrive/k/ArmSolo/ Cygwin terminal: "$rm special_js.o" "$cp *.o ./CPP" "$cd CPP" "$make special_js.o" "$make" Should make armag.exe "$cp armag.exe ../armExe" Now go run armag.exe in the correct directory /ArmSolo/armExe and you have the javascript enabled version running There are pages about javascript in the wiki dump. Try there for learning how to use it.
For the coders: I do things a little different than the Arm coders. I prefer to link C object files to C++ rather than compile them with a C++ compiler. spidermonkey 1.8.5 is a very old version and I'm surprised it is still available for download. When it goes away, special_js.cpp will need to be updated. Or just make sure you don't ever lose your copy!
|
|