An Update on Morrowind Crafting 3.0

Discussions regarding the development of Morrowind Crafting 3.0 (Tamriel Rebuilt edition)

An Update on Morrowind Crafting 3.0

Postby Toccatta » Wed Dec 25, 2013 6:30 pm

Wishlist:
  • Eliminate changes to water plants
  • Include new armor, weapons, clothing, miscellaneous items, and containers from Tamriel Rebuilt
  • Eliminate random selection
  • Change pottery wheel to allow repeat crafting without re-selecting item
  • Allow installed items to be uninstalled and reused... except beds, which must use the default script in order to maintain NoM compatibility.
  • Upgrade some Morrowind Crafting meshes to higher quality
  • Allow creation of metal furniture and new lighting options (torches, lanterns, fixed lamps, paper lanterns, etc)
  • Possibly dismantling of armor and weapons (metal objects only - no chitin, cloth, or fur armors)
  • Additional wood sellers, trainers, and agents in new TR areas. Agents will have more money and possibly offer periodic "commisions" for crafted items.
  • Changes to some processes to include additional steps. (e.g. Horker tallow will be rendered from horker blubber as a cooking task rather than simply being found on horkers. The rendering will have both tallow and lamp oil as an end-product and allow for the creation of both candles and lanterns)
  • Addition of a new skill "Masonry", which covers all redware products previously covered by Crafting as well as addition of new stoneware, forges, and fireplaces.
  • New, higher-level "flawless" clothing with higher enchantability - but very difficult to create
  • Addition of new TR liquors (but not wines) to the brewing menu
  • Ability to create wooden mannequins via woodworking skill
  • Improvements to self-diagnostics to reset crafting scripts in the event of loss of synchronization
  • Change to furniture scripts to allow menu-based placement (x/y/z axis movement, x/y/z axis rotation, and scaling)
  • Modification of mining scripts to allow automated mining as well as "fast mining" which does a single success check and collects all the ore in a rock in a single click.
  • Addition of amulets to jewelry-making menu
  • Inclusion of daedric arrows, bolts, and darts into fletching menu - upon completion of daedric quest
  • Addition of a quest to teach the player how to create soul gems
  • New cooking/alchemy formulas to allow the player to brew game-standard potions that can be used in quests.
  • Change to sand/clay collecting to limit training of crafting skill (much as the training from smelting is currently limited)
  • Addition of a new wood type (Emperor Parasol wood) to allow the creation of some new TR items which clearly don't fall into the existing wood types.
  • New "reinforced" containers with higher than normal capacities.
  • Placement of new sand bars/clay banks within waterways of TR maps
  • Replacement of existing TR Iron Ore rocks and Iron ore with MC compatible rocks - note that iron ore on the mainland will be severely curtailed to maintain the significance of the TR ore mines. Silver mines may be added.
  • Creation of a few new animal remains to allow for crafting of certain types of armor (e.g. Dreugh Leather & Velk Silk)
  • Addition of new food recipes to take advantage of reagents added by TR.
  • New foods added by TR which have existing MC equivalents (e.g. cooked hound meat) will be replaced by MC version. Foods which do not have existing MC equivalents will not be changed.
  • Dwemer armor and weapons will be in the smithing menu this time, although it will need to be made directly from scrap metal Dwemer ingots rather than iron ingots (the idea is that the dwemer alloy has an ineffable quality which is lost when converted to iron ingots, so original un-smelted scrap metal or dwemer scrap must be melted into dwemer ingots and used instead)
  • Configuration menu available by talking to crafting merchants/agents added to woodworking kit allowing the player to:

      a) tweak MC to be strict or casual.
      b) adjust learning curve to easy/medium/hard (with "hard" being defined as the learning curve from MC 2.1)
      c) cap/uncap skills
      d) uninstall items
      e) view all crafting skill values in one window.
      f) select from three levels of feedback for project difficulty reporting (off/vague/specific)
  • Ability to use mining skill on Stalhrim
  • Creating silverware from silver ingots in addition to melting them down. Add TR silverware to melt script so they can be converted to ingots.
  • Two kinds of "active" torch-holders - just click one to put a torch from your inventory into it. Possibly add three mountable "active" lantern hooks.
  • Addition of chandelier mounts which can be used to install long or short chandeliers (metal or wood)
  • Task difficulty reassessment - Some tasks are too easy. Some are too hard. Cooking, for example, has few high difficulty skills which makes training very tough at high levels.
  • Add "shears" to miscellaneous tools the player can create - add TR cloth bolts to scissor script so shears can turn them into usable cloth.
  • Redistribute clothing amongst available materials so more hides/furs can be used. Allow armor padding to be made from furs as well as cloth.
  • Two possible expansion patches after mod is completed: 1) magic mining cart to increase ore carrying capacity and 2) tree replacer to allow chopping of wood (a common complaint in previous versions)
  • Place potato, onion, and garlic plants in the wild where they can be collected.
  • Miscellaneous anvil tasks - including breaking gears into scrap
  • Rebalance mining success algorithm to account for the possibility of uncapped mining skill (and institute a maximum cap on ore successfully mined from any single source).
  • Allow all mining to be performed with the Ancient Nordic mining pick if the player possesses it, so the player isn't required to carry both types.
  • Change recipes for all chitin items to use chitin strips instead of Shalk shells. Shears can cut chitin strips from shalk shells, but also from the various beetle shells added by TR.
  • Addition of stone seller to Thalotheran quarry to provide stone for stoneware and masonry projects.
  • Addition of pig farmer to Bahrammu to sell sow milk (for those that don't want to brave the wild sows in Solstheim before brewing Jagga)
  • Creation of "picture books": weaving for dummies & clothing for dummies... so players can cross-reference a less intuitive menu entry with an actual image of the finished product.
  • Add difficulty modifier based on intelligence and agility. Now you can literally (metaphorically) practice your crafting with one hand tied behind your back or while dizzy drunk to make it more challenging. Note that the amount learned from any successful task is dependent upon the difference between your current skill level and the task difficulty, so there will be times when intentionally making a task more difficult will speed your training. You now have the option to voluntarily (and temporarily) handicap yourself with potions, alcohol, or spells in order to speed your training.
  • Edit dialog to avoid death groans from merchants when they get reset at midnight.
  • Include code to allow NoM users to designate MC fires as harmful (suffer damage from running into/through them)
<To Be Continued...>

Legend
In progress
On Hold
Completed
Cancelled

Note that this list it tentative. I'm reasonably certain that everything on the list CAN be done, but a few items might end up left out or put off until a later revision. Also, more options may be added as discussion brings up features that v3.0 should have that v2.1 does not.

Currently no ETA on completion, but development is currently underway and many items on the wishlist are already partially/fully completed. There will be a discussion forum here on Fort Elder Scrolls during development/testing phase and the mod will be hosted here upon completion.
"All that is gold does not glitter; not all those who wander are lost.
The old that is strong does not wither; deep roots are not reached by the frost."
- Bilbo Baggins
User avatar
Toccatta
The Untitled
 
Joined: Wed Mar 13, 2013 4:37 am
Location: Somewhere in Vvardenfell

Re: An Update on Morrowind Crafting 3.0

Postby Toccatta » Wed Apr 30, 2014 6:20 pm

Geez! I had no idea how much of a scripting behemoth this was going to become with some of the changes I'm making. Just to allow items to be precisely positioned (a complaint re:v2.1 where items had to be picked up and put down multiple times to get them "just right") requires the following script - or one very like it - on virtually every container, tool, and piece of furniture the player can make:

Code: Select all
begin mc_conv_tap_ele10

short button
float xloc
float yloc
float zloc
float xdiff
float ydiff
float zrot
float scaler
short state
float timer
float scaletemp
long truncator
short doOnce
short lockstatus

if ( mc_move_complete == 99 )
   if ( doOnce == 0 )
      set xloc to getpos x
      set yloc to getpos y
      set scaler to mc_scaler
      setscale scaler
      if ( xloc == mc_move_x )
         if ( yloc == mc_move_y )
            set mc_move_complete to 0
            set mc_move_x to 0
            set mc_move_y to 0
            placeatme mc_relocator 1, 4, 1
            set state to 20
            return   
         endif
      endif
   endif
endif

if ( doOnce == 0 )
   if ( mc_uninstall == 2 )
      set mc_uninstall to 0
      set scaler to mc_scaler
      setscale scaler
   else
      set scaler to 1
      set mc_scaler to 1
   endif
   set DoOnce to 1
endif

if ( getdisabled == 1 )
   set timer to ( timer + GetSecondsPassed )
   if ( timer > 3 )
      setdelete 1
   endif
   return
endif

if ( OnActivate == 1 )
   if ( player -> GetItemCount, mc_carpentry_kit >= 1 )
      set state to 1
   elseif ( player -> GetItemCount, mc_sewing_kit >= 1 )
      set state to 1
   elseif ( lockstatus == 1 )
      return
   else
      activate
      return
   endif
endif

if ( state == 0 )
   return
endif

if ( state == 20 )
   if ( mc_move_complete == 0 )
      return
   else
      set xloc to getpos x
      set yloc to getpos y
      set xdiff to ( xloc - mc_move_x )
      set ydiff to ( yloc - mc_move_y )
      set mc_move_x to 0
      set mc_move_y to 0
      set mc_move_complete to 0
      set state to 6
   endif
endif

if ( state == 1 )
   set scaler to ( Getscale )
   set mc_scaler to scaler
   if ( lockstatus == 0 )
      messageBox "The tapestry is currently unlocked and can be moved freely. Do you wish to:", "Reposition tapestry", "Scale tapestry", "Special options", "Install it permanently", "Pick it up", "Lock it in place", "Cancel"
   else
      messageBox "This tapestry is currently locked and cannot be moved. Do you wish to:", "Reposition tapestry", "Scale tapestry", "Special options", "Install it permanently", "Pick it up", "Unlock tapestry", "Cancel"
   endif
   set state to 2
elseif ( state == 2 )
   set button to GetButtonPressed
   if ( button == -1 )
      return
   elseif ( button == 6 )
      set state to 0
      return
   elseif ( button == 5 )
      if ( lockstatus == 0 )
         set lockstatus to 1
      else
         set lockstatus to 0
      endif
      set state to 0
      return
   elseif ( button == 4 )
      set state to 99
      return
   elseif ( button == 3 )
      set state to 3
      return
   elseif ( button == 2 )
      set state to 8
      return
   elseif ( button == 1 )   
      set state to 10
      return
   elseif ( button == 0 )
      placeatme mc_relocator 1, 4, 1
      set state to 20
      return
   endif
elseif ( state == 3 )
   if ( mc_warning == 0 )
      startscript mc_replace_warning
      set mc_warning to 1
   elseif ( mc_warning == 1 )
      return
   elseif ( mc_warning == 2 )
      set state to 0
      set mc_warning to 3
      return
   elseif ( mc_warning == 3 )
      set state to 4
   endif
elseif ( state == 4 )
   disable
   set mc_scaler to scaler
   placeatme mc_tap_ele10_p 1,0,0
   return
elseif ( state == 6 )
   set xloc to getpos x
   set yloc to getpos y
   set zloc to getpos z
   set zrot to ( getangle z )
   messagebox "x: %.2f, y: %.2f, z: %.2f angle: %.2f", xloc, yloc, zloc, zrot, "Up", "Down", "Right", "Left", "Backward", "Forward", "Turn left", "Turn right", "Back"
   set state to 7
elseif ( state == 7 )
   set button to getbuttonpressed
   if ( button == -1 )
      return
   elseif ( button == 6 )
      set zrot to ( zrot - ( 5 * mc_mult ) )
      set mc_move_x to xloc
      set mc_move_y to yloc
      set mc_move_complete to 99
      set mc_uninstall to 2
      placeitem mc_tap_ele10 xloc, yloc, zloc, zrot
      disable
      return
   elseif ( button == 7 )
      set zrot to ( zrot + ( 5 * mc_mult ) )
      set mc_move_x to xloc
      set mc_move_y to yloc
      set mc_scaler to scaler
      set mc_move_complete to 99
      set mc_uninstall to 2
      placeitem mc_tap_ele10 xloc, yloc, zloc, zrot
      disable
      return
   elseif ( button == 8 )
      set state to 1
      return
   elseif ( button == 0 )
      set zloc to ( zloc + ( 4 * mc_mult ) )
   elseif ( button == 1 )
      set zloc to ( zloc - ( 4 * mc_mult ) )
   elseif ( button == 2 )
      set xloc to ( xloc + ( ydiff * mc_mult ) )
      set yloc to ( yloc - ( xdiff * mc_mult ) )
   elseif ( button == 3 )
      set xloc to ( xloc - ( ydiff * mc_mult ) )
      set yloc to ( yloc + ( xdiff * mc_mult ) )
   elseif ( button == 4 )
      set xloc to ( xloc + ( xdiff * mc_mult ) )
      set yloc to ( yloc + ( ydiff * mc_mult ) )
   elseif ( button == 5 )
      set xloc to ( xloc - ( xdiff * mc_mult ) )
      set yloc to ( yloc - ( ydiff * mc_mult ) )
   endif
   setpos x xloc
   setpos y yloc
   setpos z zloc
   set state to 6
   return
elseif ( state == 8 )
   messagebox "Options:", "Switch to coarse adjust", "Switch to medium adjust", "Switch to fine adjust", "Switch to super fine adjust", "Snap to grid", "Back"
   set state to 9
elseif ( state == 9 )
   set button to GetButtonPressed
   if ( button == -1 )
      return
   elseif ( button == 0 )
      set mc_mult to 3
      set state to 1
      return
   elseif ( button == 1 )
      set mc_mult to 1
      set state to 1
      return
   elseif ( button == 2 )
      set mc_mult to .2
      set state to 1
      return
   elseif ( button == 3 )
      set mc_mult to .04
      set state to 1
      return
   elseif ( button == 4 )
      set state to 12
      return
   elseif ( button == 5 )
      set state to 1
      return
   endif
elseif ( state == 10 )
   messagebox "Scaling: Currently set to %.2f", scaler, "Increase scale", "Reset Scale", "Decrease scale", "Back"
   set state to 11
   set scaletemp to ( 0.05 * mc_mult )
   if ( scaletemp < 0.01 )
      set scaletemp to 0.01
   endif
elseif ( state == 11 )
   set button to GetButtonPressed
   if ( button == -1 )
      return
   elseif ( button == 0 )
      set scaler to ( scaler + scaletemp )
      if ( scaler > 2 )
         set scaler to 2
      endif
      setscale scaler
      set state to 10
      return
   elseif ( button == 1 )
      set scaler to 1
      setscale scaler
      set state to 10
      return
   elseif ( button == 2 )
      set scaler to ( scaler - scaletemp )
      if ( scaler < 0.5 )
         set scaler to 0.5
      endif
      setscale scaler
      set state to 10
      return
   elseif ( button == 3 )
      set state to 1
      return
   endif
elseif ( state == 12 )
   set xloc to getpos x
   if ( xloc < 0 )
      set xloc to ( xloc - 0.5 )
   else
      set xloc to ( xloc + 0.5 )
   endif
   set yloc to getpos y
   if ( xloc < 0 )
      set yloc to ( yloc - 0.5 )
   else
      set yloc to ( yloc + 0.5 )
   endif
   set zloc to getpos z
   if ( zloc < 0 )
      set zloc to ( zloc - 0.5 )
   else
      set zloc to ( zloc + 0.5 )
   endif
   set zrot to getangle z
   if ( zrot < 0 )
      set zrot to ( zrot - 0.5 )
   else
      set zrot to ( zrot + 0.5 )
   endif

   set truncator to xloc
   set xloc to truncator

   set truncator to yloc
   set yloc to truncator
   
   set truncator to zloc
   set zloc to truncator

   set truncator to zrot
   set zrot to truncator
   
   set mc_move_x to xloc
   set mc_move_y to yloc
   set mc_move_complete to 99
   set mc_uninstall to 2
   placeitem mc_tap_ele10 xloc, yloc, zloc, zrot
   disable
   return
elseif ( state == 99 )
   set state to 0
   set scaler to 1
   set lockstatus to 0
   activate
   return
endif

end


I haven't even started on the new menu scripts yet and the mod is already larger than Tribunal.

There was a temporary break after Christmas when new computers were built and a big project that had been waiting on something with sufficient horsepower took precedence... but work on MC 3.0 has resumed and is continuing.
"All that is gold does not glitter; not all those who wander are lost.
The old that is strong does not wither; deep roots are not reached by the frost."
- Bilbo Baggins
User avatar
Toccatta
The Untitled
 
Joined: Wed Mar 13, 2013 4:37 am
Location: Somewhere in Vvardenfell

Re: An Update on Morrowind Crafting 3.0

Postby Toccatta » Tue May 20, 2014 4:41 am

In preparation to allow the player to brew Jagga in the MC kegstands, it's now possible to knock a bristleback unconscious and milk it for the necessary sow's milk. It isn't "official" lore, but we're considering that the rieklings ride the boars and the sows end up wandering around by themselves. So if you see a pig without a riekling... it's a sow. Each sow can be milked once a day, but has to be knocked out in order to do it. Hand-to-hand works, as do drain/damage fatigue spells.
"All that is gold does not glitter; not all those who wander are lost.
The old that is strong does not wither; deep roots are not reached by the frost."
- Bilbo Baggins
User avatar
Toccatta
The Untitled
 
Joined: Wed Mar 13, 2013 4:37 am
Location: Somewhere in Vvardenfell

Re: An Update on Morrowind Crafting 3.0

Postby Denina » Wed May 21, 2014 12:47 am

Are they going to be respawning because when they get back up, they're going to attack again or do calm spells make them forget they were ever hostile to begin with? I've never actually used that spell in game.
User avatar
Denina
Queen of Sarcasm
 
Joined: Mon Mar 04, 2013 10:57 pm
Location: Balmora, usually

Re: An Update on Morrowind Crafting 3.0

Postby Toccatta » Wed May 21, 2014 1:11 am

Well, I'm not adding any pigs to the game. They do respawn in solstheim over time, but they don't appear until you're a particular level. As to the spell, I think that calm spells only calm them for the duration of the spell, after which they return to being aggressive. On the other hand, it isn't currently possible to milk a sow when its calm... only when its unconscious. Also, there is a minor problem that I'm not sure exactly how to counter. The script checks for a fatigue value less than zero, which is what causes them to go unconscious. However, I'm not sure of any way of detecting the ACTUAL unconscious state, and they sometimes remain unconscious for a short while after their fatigue goes back above 0. When that happens, the pig will be laying down on the ground, but you won't be able to milk it. If I knew how to detect the unconscious state, that would be better than simply looking for a negative fatigue value.

But yes, they respawn. You'll never run out of the unridden bristlebacks (although you might wish you did).
"All that is gold does not glitter; not all those who wander are lost.
The old that is strong does not wither; deep roots are not reached by the frost."
- Bilbo Baggins
User avatar
Toccatta
The Untitled
 
Joined: Wed Mar 13, 2013 4:37 am
Location: Somewhere in Vvardenfell

Re: An Update on Morrowind Crafting 3.0

Postby Toccatta » Tue Jun 03, 2014 11:40 pm

Update: Drac is planning to add pigs to the game... a small pig farm on one of the northernmost islands on the eastern side of the mainland (Tusked bristleback are very cold-tolerant, and don't like the heat at all). I also fixed the problem with detecting the unconscious state with a little workaround. It's not as good as actually detecting the passed-out animation, but it's the best I could figure out after doing some research on the net and pouring over Morrowind Scripting for Dummies, so it'll have to do. The solution, while not perfect, is quite workable.

I redesigned the movement scripts so that the bulk of the work could be shifted onto a global script, cutting the workload of the local scripts to less than half, and reducing the amount of duplicated code tremendously. Not only does that seriously reduce the bloating I was talking about before, but the redesign also allowed me to correct a few minor errors from the original movement scripts. Pushing a container into a wall could break the old movement scripts when the origin of the object's mesh entered the unlivable portion of the interior cell due to the fact that the placeatme command refused to place an item in an area it deemed "unsafe". The new scripts use a different method to calculate movement values, and these "unsafe" locations no longer cause problems for the movement scripts.
"All that is gold does not glitter; not all those who wander are lost.
The old that is strong does not wither; deep roots are not reached by the frost."
- Bilbo Baggins
User avatar
Toccatta
The Untitled
 
Joined: Wed Mar 13, 2013 4:37 am
Location: Somewhere in Vvardenfell

Re: An Update on Morrowind Crafting 3.0

Postby Denina » Wed Jun 04, 2014 1:08 am

YAY! Glad you're making good progress.
User avatar
Denina
Queen of Sarcasm
 
Joined: Mon Mar 04, 2013 10:57 pm
Location: Balmora, usually

Re: An Update on Morrowind Crafting 3.0

Postby Toccatta » Tue Jun 10, 2014 9:26 pm

Toccatta wrote:Wishlist:
  • Allow installed items to be uninstalled and reused... except beds, which must use the default script in order to maintain NoM compatibility.


Edited the NOM-modified "bed standard" script to include resizing and uninstall features and placed on MC beds. Now, beds created by Morrowind Crafting can be uninstalled and reused. When installed, they act as a normal bed unless you have NoM installed, in which case they act as a fully functional NoM bed. Beds also have standard placement/scaling scripts prior to installation, making accurate placement amazingly easy - no more picking it up and dropping it a dozen times to get it where you want it.
"All that is gold does not glitter; not all those who wander are lost.
The old that is strong does not wither; deep roots are not reached by the frost."
- Bilbo Baggins
User avatar
Toccatta
The Untitled
 
Joined: Wed Mar 13, 2013 4:37 am
Location: Somewhere in Vvardenfell

Re: An Update on Morrowind Crafting 3.0

Postby Denina » Tue Jun 10, 2014 9:58 pm

To quote Clara Oswald, "You clever boy!"
User avatar
Denina
Queen of Sarcasm
 
Joined: Mon Mar 04, 2013 10:57 pm
Location: Balmora, usually

Re: An Update on Morrowind Crafting 3.0

Postby Drac » Thu Jun 12, 2014 3:37 am

T is naught if not clever. :}
User avatar
Drac
 
Joined: Wed Apr 17, 2013 11:35 pm
Location: Iowa

Next

Return to MC Development

Who is online

Users browsing this forum: No registered users and 1 guest

cron