From The Mana World
Line 111: Line 111:
#The gameserver informs the client about these actions using the already implemented mechanics
#The gameserver informs the client about these actions using the already implemented mechanics
#When the item is a piece of equipment its unique properties have to be stored in the SQL database. Netcode for communicating the unique properties of unique items have to be implemented between database, gameserver and client. (Maybe the size of item IDs has to be increased from two bytes to four bytes where the IDs 0x00000001 - 0x0000FFFF are reserved for generic items without individual properties whichs properties are stored in the client-sided items.xml while the higher ID numbers from 0x00010000 - 0xFFFFFFFF are unique items whichs properties are stored in the SQL database).
#When the item is a piece of equipment its unique properties have to be stored in the SQL database. Netcode for communicating the unique properties of unique items have to be implemented between database, gameserver and client. (Maybe the size of item IDs has to be increased from two bytes to four bytes where the IDs 0x00000001 - 0x0000FFFF are reserved for generic items without individual properties whichs properties are stored in the client-sided items.xml while the higher ID numbers from 0x00010000 - 0xFFFFFFFF are unique items whichs properties are stored in the SQL database).
==Lists==
*Material list: [[User:Crush/Crafting/Materials]]
*Formula list: [[User:Crush/Crafting/Formulas]]

Revision as of 18:43, 2 May 2008

Just some notes.

Premise

  • Every equipment piece is unique.
  • Weapons affect attack mechanics.
  • Armors affect received damage.
  • All items can optionally affect every basic and computed attribute positive or negative, percentual or absolute.


Weapons

Properties by formula:

  • Weapon family and thus the skill used
  • Attack Zone
  • Attack speed
  • Penetration
  • Ratio between strength and dexterity required

Properties by material:

  • Damage
  • Durability
  • Attribute requirements
  • Weight

Armors (Including headgear, pants, gloves and shoes)

Armors require level because they are the status symbols #1 in MMORPGs.

Properties by formula:

  • Used sprite
  • Used slot

Properties by material:

  • Default coloration of sprite
  • Physical defence
  • Magical defence
  • Elemental modifier
  • Level requirement
  • Weight

Jewlery

Properties by formula:

  • Equipment slot used

Properties by material:

  • Attribute boni

Potions

Properties by formula:

  • Weight

Properties by material:

  • Effect

Material

Crafting an item requires, depending on the item, a fixed number of batches of normal materials of a certain type (like wood or metal) which can be filled with materials of different quality and optionally allows to add a limited number of special materials.

Normal materials
  • Rating: Multiplier to craft challenge rating and attribute requirements
  • Stability: Durability
  • Power: Damage/Defence
  • Mysticality: Enhances special properties of other materials in the same item, magical defence, magical attack.
Crystals
Elemental modifier in armor, Elemental damage in weapons, Element-specific magic skill bonus in rods.
Gemstones
Attribute bonus
Broken weapon essence
Weapon skill bonus (crafters can extract the "memories" of a weapon which has done its duty)

Material naming

Materials exist in different quality grades. Each grade has a different material name. Using materials which exist in the real world would be boring. Making up fantasy names would give a much better flair.

Wacky idea to come up with names: What works for elements of the periodic table should also work for us. So how about naming materials after people who played an important role in the development of TMW? When we disguise it well enough noone would notice.

  • This is exactly the theme I was about to suggest to you, to increase our fictional material names.. The first one that came to mind was "Rotonium".. and though I totally agree that we need to bulk out our material list with fictional names, I would like to keep some a bit of the familiarity, by keeping a good handful of the real names. So long as there is a steady blend of fictional and non-fictional material names, I think it's acceptable to reference the real world a little bit. Using only real names might be boring, but using only fictional names might at times be a tad confusing. -Dabe

Crafting Mechanics

  1. Player says what items and tools he want to use to craft an item
  2. The game checks if the combination is valid for any item formula and if so checks what crafting skill is used for making an item with this formula and the challenge rating of the combination.
    • The challenge rating is the sum of the challenge rating of all used materials multiplied with the challenge rating of the formula.
  3. 10 skill check of the users crafting skill vs. the challenge rating of the item are made (two random numbers are rolled, one between 0 and skill level and one between 0 and challenge rating, when the first roll is equal or higher the check is successful). For equipment the number of successful skill checks determines the quality. For consumable items 6 or more wins is success, 5 or less is failure and the steps 4-7 are skipped.
    • 0-3 failed (The character receives no item, the materials are lost)
    • 4 rubbish
    • 5 crude
    • 6 average
    • 7 fine
    • 8 excellent
    • 9 flawless
    • 10 masterpiece
  4. Every equipment formula has a range for each stat of the finished items. The damage-min modifier of a long sword could, for example, be listed as 10-20 in items.xml. These values are multiplied with the average quality grade of the used materials. When the items used for crafting said sword are two metal chunks of quality 2 and two of quality 3 the result would be a multiplier of (2 + 2 + 3 + 3) / 4 = 2.5 and thus the range of the damage-min stat of the item between 25 and 50.
  5. For each stat of the item 7 random numbers in this range are calculated. The quality level determines which of these numbers is used (rubbish = worst is used, crude = second worst is used, ... masterpiece = best is used)
  6. Special materials add new attribute boni to the item. The procedure is the same as for the basic item stats (7 random rolls and which one is used depends on the quality grade) but the range depends only on the special material and is not multiplied with the quality of the other materials. Thus it is easier to craft an item with powerful special properties with low-tier basic materials than with high-tier basic materials.
  7. Item naming: <quality grade> <main material> <formula name> [of <special property>]. Examples (tools are omitted, material names are provisorical):
    • sword hilt + 4 iron (flawless) = Flawless Iron Longsword
    • axe handle + 2 iron + 4 steel (crude) = Crude Steel Battleaxe
    • axe handle + 3 iron + 3 steel (crude) = Crude Iron/Steel Battleaxe
    • knife hilt + 2 bronze + fire crystal (fine) = Fine Bronze Dagger of Fire
    • armor straps + 6 iron + strength-enhancing gemstone + fire crystal (excellent) = Excellent Iron Platemail of Strength and Fire
  8. Character receives the finished item.

Client-sided

  1. The player opens a "craft" window, which is a GUI window with some item slots and a "OK" button.
  2. The player drags materials and tools from its inventory to its craft window.
  3. The player presses the OK button
  4. Server processes the crafting

Server-sided

  1. The client sends PGMSG_ITEM_COMBINE W item1, W item2 ... W itemN
  2. The gameserver checks if the client possesses these items
  3. if yes the gameserver forwards the crafting request to the script engine
  4. The script engine checks if the combination is valid
  5. if yes the script engine processes the crafting action and does things like
    • skill check (if necessary)
    • removes items which are not kept after the crafting process
    • gives the character the new item(s)
    • gives the character the skill exp (if applicable)
  6. The gameserver informs the client about these actions using the already implemented mechanics
  7. When the item is a piece of equipment its unique properties have to be stored in the SQL database. Netcode for communicating the unique properties of unique items have to be implemented between database, gameserver and client. (Maybe the size of item IDs has to be increased from two bytes to four bytes where the IDs 0x00000001 - 0x0000FFFF are reserved for generic items without individual properties whichs properties are stored in the client-sided items.xml while the higher ID numbers from 0x00010000 - 0xFFFFFFFF are unique items whichs properties are stored in the SQL database).

Lists