Skip to content

Latest commit

 

History

History
166 lines (157 loc) · 8.15 KB

RESOLVER.md

File metadata and controls

166 lines (157 loc) · 8.15 KB

Resolver

About this document

Details about how the resolver is looking up the resources to draw the sprite from the input variables.

Almost everything written here is taken directly from the source code resolver.d.

Sprite types

As of this writing there are the following sprite types that can be composed to a fully rendered image:

  • Job (or "Body", this includes Monsters, NPCs, Homunculus and Mercenaries)
  • Head
  • Headgear
  • Garment
  • Weapon
  • Weapon Slash
  • Shield
  • Shadow
  • Cart (Currently not supported)
  • Companion (e.g. Falcon) (Currently not supported)

Input to Sprite type mapping and resource resolving

Preface: Gender is used in a lot of places and is interpreted as following:

Gender (--gender) Name
0
1
Sprite type Inputs Resource
Job --job
--gender
--outfit
Player
jobname=job_names.txt (Line #<job>, if the job id is greater than 4000 then 3950 is subtracted)

Player: data/sprite/인간족/몸통/<gender>/<job>_<gender>.{spr,act}
Player (doram): data/sprite/도람족/몸통/<gender>/<jobname>_<gender>.{spr,act}
Player (outfit): data/sprite/인간족/몸통/<gender>/costume_<outfit>/<jobname>_<gender>_<outfit>.{spr,act}
Player (doram,outfit): data/sprite/도람족/몸통/<gender>/costume_<outfit>/<jobname>_<gender>_<outfit>.{spr,act}
Non player
jobname=data/luafiles514/lua files/datainfo/jobname_f.lub#ReqJobName(<job>) (function takes value from jobname.lub.

Monster: data/sprite/몬스터/<jobname>.{spr,act}
NPC: data/sprite/npc/<jobname>.{spr,act}
Mercenary: data/sprite/인간족/몸통/<jobname>.{spr,act}
Homunculus: data/sprite/homun/<jobname>.{spr,act}

Hint: For the differentiation between the nonplayer job ids have a look at resolver.d.
Head --job
--head
--gender
Human: data/sprite/인간족/머리통/<gender>/<head>_<gender>.{spr,act}
Doram: data/sprite/도람족/머리통/<gender>/<head>_<gender>.{spr,act}
Headgear --headgear
--gender
name=data/luafiles514/lua files/datainfo/accname_f.lub#ReqAccName(<headgear>) (function takes value from accname.lub.

Headgear: data/sprite/악세사리/<gender>/<gender><name>.{spr,act}

Hint: For a list of human readable ids take a look at the lua file accessoryid.lua
Garment --job
--gender
--garment
name=data/luafiles514/lua files/datainfo/spriterobename_f.lub#ReqRobSprName_V2(<garment>) (function takes value from spriterobename.lub.
jobname=job_names.txt (Line #<job>, if the job id is greater than 4000 then 3950 is subtracted)

Garment: data/sprite/로브/<name>/<gender>/<jobname>_<gender>.{spr,act}
Garment (fallback): data/sprite/로브/<name>/<name>.{spr,act}

Hint: For a list of human readable ids take a look at the lua file spriterobeid.lua
Weapon --job
--gender
--weapon
Player
name=data/luafiles514/lua files/datainfo/weapontable_f.lub#ReqWeaponName(<weapon>) (function takes value from weapontable.lub.
If no name is found then try again with a new weapon id: weapon=data/luafiles514/lua files/datainfo/weapontable_f.lub#GetRealWeaponId(<weapon>)
If there is still no name then just use the weapon id itself as name: name=_<weapon>
jobname=job_weapon_names.txt (Line #<job>, if the job id is greater than 4000 then 3950 is subtracted)

Human: data/sprite/인간족/<jobname>_<gender><name>.{spr,act}
Doram: data/sprite/도람족/<jobname>_<gender><name>.{spr,act}

Hint: For a list of human readable ids take a look at the lua file weapontable.lua
Mercenary
Archer: data/sprite/인간족/용병/활용병_활.{spr,act}
Lancer: data/sprite/인간족/용병/창용병_창.{spr,act}
Swordsman: data/sprite/인간족/용병/검용병_검.{spr,act}
Weapon Slash Same as Weapon but with a _검광 suffix.
Shield --job
--gender
--shield
name=shield_names.txt (Line #<shield>)
name(fallback)=_<shield>_방패
jobname=job_names.txt (Line #<job>, if the job id is greater than 4000 then 3950 is subtracted)

Shield: data/sprite/방패/<jobname>/<jobname>_<gender><name>.{spr,act}
Shadow --enableShadow Shadow: data/sprite/shadow.{spr,act}

Palettes

Body (+outfits) and head sprites can be colored via palettes. These are resolved as following.

Palette type Inputs Resource
Job --job
--gender
--bodyPalette
--outfit
jobname=job_pal_names.txt (Line #<bodyPalette>)

Human: data/palette/몸/<jobname>_<gender>_<bodyPalette>.pal
Doram: data/palette/도람족/body/<jobname>_<gender>_<bodyPalette>.pal
Human (outfit): data/palette/몸/costume_<outfit>/<jobname>_<gender>_<bodyPalette>_<outfit>.pal
Doram (outfit): data/palette/도람족/body/costume_<outfit>/<jobname>_<gender>_<bodyPalette>_<outfit>.pal
Head --job
--gender
--head
--headPalette
Human: data/palette/머리/머리<head>_<gender>_<headPalette>.pal
Doram: data/palette/도람족/머리/머리<head>_<gender>_<headPalette>.pal