data

package
v0.0.0-...-525a05c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 1, 2021 License: GPL-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Load

func Load(filesPath string, shn interface{}) error

func SHBDToImage

func SHBDToImage(s *SHBD) (*image.RGBA, error)

func SaveBmpFile

func SaveBmpFile(img *image.RGBA, path, fileName string) error

SaveBmpFile for debugging purposes

func SaveSHBDFile

func SaveSHBDFile(s *SHBD, path, fileName string) error

SaveSHBDFile for debugging purposes

func ValidPath

func ValidPath(path string) (string, error)

check if path is correct and return absolute path

Types

type AbState

type AbState struct {
	ID                 uint16
	InxName            string `struct:"[32]byte"`
	AbStateIndex       AbStateIndex
	KeepTimeRatio      uint32
	KeepTimePower      byte
	StateGrade         byte
	PartyState1        string `struct:"[32]byte"`
	PartyState2        string `struct:"[32]byte"`
	PartyState3        string `struct:"[32]byte"`
	PartyState4        string `struct:"[32]byte"`
	PartyState5        string `struct:"[32]byte"`
	PartyRange         uint32
	PartyEnchantNumber uint32
	SubAbState         string `struct:"[32]byte"`
	DispelInx          DispelAttr
	SubDispelAttr      SubDispelAttr
	AbStateSaveType    AbStateSaveTypeEnum
	MainStateInx       string `struct:"[32]byte"`
	Duplicate          byte
	// contains filtered or unexported fields
}

type AbStateIndex

type AbStateIndex uint32
const (
	StaSeverBone AbStateIndex = iota
	StaRedSlash
	StaBattleBlowStun
	StaMightySoulMain
	StaMightySoul
	StaMoraleDecreaseWc
	StaSpeedShield
	StaHarmDefect
	StaBerserkFrenzy
	StaShockBladeStun
	StaMightySoul2
	StaMightySoul3
	StaMightySoul4
	StaMightySoul5
	StaViolence
	StaBuckler
	StaNeglect
	StaBreak
	StaBlessingMain
	StaBlessing
	StaSafeProtection
	StaPsychicBluntStun
	StaPsychicChopBlood
	StaDarknessProtection
	StaRestore
	StaHitProtection
	StaMentalShoutMain
	StaMentalShout
	StaDivineShield
	StaDivineWeaponWcMain
	StaDivineWeaponWc
	StaSacrifice
	StaCrossCastingCoolTime
	StaPanicForceMr
	StaReverseOrder
	StaHorrorForceStr
	StaBlessing2
	StaBlessing3
	StaBlessing4
	StaBlessing5
	StaMentalShout2
	StaMentalShout3
	StaMentalShout4
	StaMentalShout5
	StaDivineWeaponWc2
	StaDivineWeaponWc3
	StaDivineWeaponWc4
	StaDivineWeaponWc5
	StaRebirth
	StaDeadlyBlessing
	StaDodge
	StaFuryImpactStun
	StaForestWind
	StaWindChargeMain
	StaWindCharge
	StaBoneArrow
	StaSpiritThornEntangle
	// ooof x.x i wonder if i should respect golang conventions
	StaPoisonshot
	StaBiteArrow
	StaMistChargeMain
	StaMistCharge
	StaSpiritFog
	StaHawkTalonAtkSpeed
	StaNaturecastingcooltime
	StaPiercingguard
	StaShockscreamwc
	StaStingeruptionslow
	StaWindcharge2
	StaWindcharge3
	StaWindCharge4
	StaWindCharge5
	StaMistCharge2
	StaMistCharge3
	StaMistCharge4
	StaMistCharge5
	StaHide
	StaBlind
	StaEntraphide
	StaIcebolt
	StaLightningbolt
	StaBlur
	StaSoulEdge
	STA_RINGSHIELD
	STA_ICEBLASTSTUN
	STA_CHAINLIGHTNINGSTUN
	STA_DRAINMINDFEAR
	STA_CHAINCASTINGCOOLTIME
	STA_CURSEMAGICCASTIME
	STA_FROSTNOVA
	STA_THUNDERBOLT
	STA_SOULEDGEMAIN
	STA_SOULEDGE2
	STA_SOULEDGE3
	STA_SOULEDGE4
	STA_SOULEDGE5
	STA_DEEPER
	STA_MESMERIZE
	STA_POLYMORPH
	STA_ICEFIELD
	STA_MARASTUN
	STA_KINGSLIMEBLOODING
	STA_MARLONEENTANGLE
	STA_NOXENTANGLE
	STA_SKELKNIGHTBLOODING
	STA_ROBOACPLUS
	STA_GOKINGSTUN
	STA_GOKINGSTRRATE
	STA_KINGCALLACPLUS
	STA_GHKNIGHTENTANGLE
	STA_HUNGRYWOLFBLOODING
	STA_KQSKELKNIGHTENTANGLE
	STA_MARLONECAPTAINATKSPD
	STA_ARCHMAGEBOOKSTUN
	STA_GHOSTFEAR
	STA_KQ_BOSSROBOFEAR
	STA_KQ_BOSSROBO2FEAR
	STA_NOXSK2BLOODING
	STA_KQ_G_TBRAIDERCURSE
	STA_ELFKNIGHTSOULDEXCURSE
	STA_JOKERTRUMPYTHCURSE
	STA_KEBINGCURSE
	STA_KINGCRABCURSE
	STA_NAVARCURSE
	STA_MARACURSE
	STA_SKELWARRIORCURSE
	STA_ARCHMAGEBOOKCURSE
	STA_KARATEMPLERCURSE
	STA_SMARTPHINOCURSE
	STA_MARLONESOLDIERCURSE
	STA_OLDFOXCURSE
	STA_GOBLINMAGECURSE
	STA_HARKANCURSE
	STA_DISHARKANCURSE
	STA_STONIECURSE
	STA_OGRECURSE
	STA_MARASAILORCURSE
	STA_OLDARCHONCURSE
	STA_KINGMUSHROOMCURSE
	STA_BCTRUMPYCURSE
	STA_KQ_K_BOSSPHINOCURSE
	STA_KQ_K_PHINOFLIECURSE
	STA_TORTURERBLOODING
	STA_SHARPBOARBLOODING
	STA_FOBLOODING
	STA_BABYWEREBEARBLOODING
	STA_SENIORTORTURERBLOODING
	STA_JEWELKEEPERBLOODING
	STA_SHYLPHBLOODING
	STA_SGTRUMPYBLOODING
	STA_KQ_K_SOLIDERBLOODING
	STA_SKELKNIGHTDISEASE
	STA_MOB1SLOW
	STA_MOB2SLOW
	STA_MOB3SLOW
	STA_MOB4SLOW
	STA_MOB5SLOW
	STA_MOB1STUN
	STA_MOB2STUN
	STA_MOB3STUN
	STA_MOB4STUN
	STA_MOB5STUN
	STA_KQMARASTUN
	STA_KQGOBLEKINGSTUN
	STA_DIAMASTERSTUN
	STA_ANCIENTSTONIESTUN
	STA_MOB1ENTANGLE
	STA_MOB2ENTANGLE
	STA_MOB3ENTANGLE
	STA_MOB4ENTANGLE
	STA_MOB5ENTANGLE
	STA_KQMARLONEENTANGLE
	STA_LEGENDARYTREEENTANGLE
	STA_GIANTELVENTREEENTANGLE
	STA_MOB1POISON
	STA_MOB2POISON
	STA_MOB3POISON
	STA_MOB4POISON
	STA_MOB5POISON
	STA_MOB6POISON
	STA_DIATRUMPYPOISON
	STA_MOB1DISEASE1
	STA_MOB2DISEASE1
	STA_MOB3DISEASE1
	STA_MOB4DISEASE1
	STA_MOB5DISEASE1
	STA_MOB6DISEASE1
	STA_MOB1DISEASE2
	STA_MOB2DISEASE2
	STA_MOB3DISEASE2
	STA_MOB4DISEASE2
	STA_MOB5DISEASE2
	STA_MOB6DISEASE2
	STA_MOB1DISEASE3
	STA_MOB2DISEASE3
	STA_MOB3DISEASE3
	STA_MOB4DISEASE3
	STA_MOB5DISEASE3
	STA_MOB6DISEASE3
	STA_MOBIMMORTAL
	STA_MOBINVISIBLE
	STA_MOBMRPLUS
	STA_ACMODE
	STA_MRMODE
	STA_HELGAACMINUS
	STA_BESTLOWCONHPPOTION
	STA_LOWCONHPPOTION
	STA_NORCONHPPOTION
	STA_HIGHCONHPPOTION
	STA_BESTHIGHCONHPPOTION
	STA_BESTLOWCONSPPOTION
	STA_LOWCONSPPOTION
	STA_NORCONSPPOTION
	STA_HIGHCONSPPOTION
	STA_BESTHIGHCONSPPOTION
	STA_BESTLOWTHSCROLL
	STA_LOWTHSCROLL
	STA_NORTHSCROLL
	STA_HIGHTHSCROLL
	STA_BESTHIGHTHSCROLL
	STA_BESTLOWTBSCROLL
	STA_LOWTBSCROLL
	STA_NORTBSCROLL
	STA_HIGHTBSCROLL
	STA_BESTHIGHTBSCROLL
	STA_BESTLOWMRSCROLL
	STA_LOWMRSCROLL
	STA_NORMRSCROLL
	STA_HIGHMRSCROLL
	STA_BESTHIGHMRSCROLL
	STA_BESTLOWACSCROLL
	STA_LOWACSCROLL
	STA_NORACSCROLL
	STA_HIGHACSCROLL
	STA_BESTHIGHACSCROLL
	STA_BESTLOWCRISCROLL
	STA_LOWCRISCROLL
	STA_NORCRISCROLL
	STA_HIGHCRISCROLL
	STA_BESTHIGHCRISCROLL
	STA_BESTLOWMAXHPSCROLL
	STA_LOWMAXHPSCROLL
	STA_NORMAXHPSCROLL
	STA_HIGHMAXHPSCROLL
	STA_BESTHIGHMAXHPSCROLL
	STA_BESTLOWMAXSPSCROLL
	STA_LOWMAXSPSCROLL
	STA_NORMAXSPSCROLL
	STA_HIGHMAXSPSCROLL
	STA_BESTHIGHMAXSPSCROLL
	STA_BESTLOWSTRCRISCROLL
	STA_LOWSTRCRISCROLL
	STA_NORSTRCRISCROLL
	STA_HIGHSTRCRISCROLL
	STA_BESTHIGHSTRCRISCROLL
	STA_BESTLOWDEXSCROLL
	STA_LOWDEXSCROLL
	STA_NORDEXSCROLL
	STA_HIGHDEXSCROLL
	STA_BESTHIGHDEXSCROLL
	STA_BESTLOWACMRSCROLL
	STA_LOWACMRSCROLL
	STA_NORACMRSCROLL
	STA_HIGHACMRSCROLL
	STA_BESTHIGHACMRSCROLL
	STA_NORMSSCROLL
	STA_LOWPSNRESIPOTION
	STA_NORPSNRESIPOTION
	STA_HIGHPSNRESIPOTION
	STA_LOWDSSRESIPOTION
	STA_NORDSSRESIPOTION
	STA_HIGHDSSRESIPOTION
	STA_LOWCURRESIPOTION
	STA_NORCURRESIPOTION
	STA_HIGHCURRESIPOTION
	STA_ALLCURRESIPOTION
	STA_ALLDSSRESIPOTION
	STA_ALLPSNRESIPOTION
	STA_LOWMSSCROLL
	STA_HIGHMSSCROLL
	STA_BESTMSSCROLL
	STA_BESTLOWMSSCROLL
	STA_RAMAPOTION01
	STA_RAMAPOTION02
	STA_RAMAPOTION03
	STA_RAMAPOTION04
	STA_RAMAPOTION05
	STA_RAMAPOTION06
	STA_RAMAPOTION07
	STA_GMHIDEMODE
	STA_OBSERVERHIDEMODE
	STA_QUESTENTANGLE
	STA_IMMORTAL
	STA_KEEPFROMCHAT
	STA_WEDDINGBUFF
	STA_WEDDINGSUB01
	STA_WEDDINGSUB02
	STA_SOLEFIRE
	STA_ACAMSBUF10PMAIN
	STA_ACAMSBUF10P
	STA_ACAMSBUF7PMAIN
	STA_ACAMSBUF7P
	STA_ACAGENALBUF
	STA_NATURALENEMY
	STA_KALBANPOISON
	STA_KALBANDISEASE
	STA_KALBANSTUN
	STA_COMMONSTUN01
	STA_COMMONSTUN02
	STA_COMMONSTUN03
	STA_COMMONSTUN04
	STA_COMMONSTUN05
	STA_COMMONSTUN06
	STA_COMMONSTUN07
	STA_COMMONSTUN08
	STA_COMMONSTUN09
	STA_COMMONSTUN10
	STA_COMMONFEAR01
	STA_COMMONFEAR02
	STA_COMMONFEAR03
	STA_COMMONFEAR04
	STA_COMMONFEAR05
	STA_COMMONFEAR06
	STA_COMMONFEAR07
	STA_COMMONFEAR08
	STA_COMMONFEAR09
	STA_COMMONFEAR10
	STA_ETHEREAL
	STA_GLDRESTORE
	STA_GLDMOVESPEEDUP
	STA_GLDACMINUS
	STA_GLDSLOW
	STA_GLDSTUN
	STA_KARENDOT
	STA_KARENDIVINE
	STA_KARENSTATIC
	STA_KARENCAPTIVATE
	STA_ROCKCANTHEAL
	STA_ROCKCANTCHAT
	STA_ROCKDASHSTUN
	STA_KARENDOTHEAL
	STA_KARENSTUN
	STA_MRMINUS
	STA_SILBERKBLOODING
	STA_BLOODFEAR
	STA_GLDATKUP
	STA_RESTEXP
	STA_KNOCKBACK
	STA_KNOCKBACKFLY
	STA_KNOCKBACKROLL
	STA_FATALKNOCKBACK
	STA_CANNOTCONTROL
	STA_EVENTHPUP
	STA_EVENTSPUP
	STA_EVENTALLSTATSUP
	STA_EVENTSPEED
	STA_EVENTACUP
	STA_EVENTMRUP
	STA_ANGRY
	STA_PARALYSIS
	STA_SPIRIT
	STA_TIMEATTACK
	STA_STAACREDDRAGON
	STA_STAMRBLUEDRAGON
	STA_TIMEATTACKMINI
	STA_MONKEYSTUN
	STA_MONKEYDEFENSE
	STA_GTIRATEPOINT
	STA_GTISPEED
	STA_GTIRESISTALL
	STA_GTIREFLECT
	STA_GTIBLIND
	STA_GTICONFUSION
	STA_GTIMETASLIME
	STA_GTIHIDE
	STA_GTISCAN
	STA_GTIBINDING
	STA_GTIBOMB1
	STA_GTIBOMB2
	STA_GTIBOMBDIE
	STA_GTIREVERSEORDER
	STA_GTIVIRUSRT
	STA_GTIVIRUSMOVE
	STA_GTIMOBSUICIDE
	STA_GTIKNOCKBACKROLL
	STA_CRACKERACDOWN
	STA_CRACKERWCDOWN
	STA_CRACKERDISEASE
	STA_CRACKERCURSE
	STA_CRACKERWCUPRATE
	STA_CRACKERACUPRATE
	STA_HUMARACDOWNRATE
	STA_BODYFORCE
	STA_CANNOTCHANGETARGET
	STA_SHADOWBINDING
	STA_SOULFREE
	STA_NORTHPOISON
	STA_FITBLOOD
	STA_FITMOVEDOWN
	STA_NORTFBURN
	STA_RANGEEVASIONUP
	STA_POISONDMGADD
	STA_POISONDMGDOWN
	STA_BLOODDMGDOWN
	STA_USESPADD
	STA_DOTDMGDOWN
	STA_EVASIONDOWN
	STA_SHOCKSTUN
	STA_DOTDMGADDALL
	STA_SHOCKRUN
	STA_KQSKELKNIGHTBLOODING
	STA_MOBBURNTYPE01
	STA_MOBSTUNTYPE01
	STA_VACANT
	STA_WOLFCLAWTBUPRATE
	STA_ENTRAPBLN
	STA_ENTRAPMSD
	STA_ENTRAPBLD
	STA_ENTRAPPLS
	STA_QUESTENTANGLE2
	STA_GBGAMEMEMBERFULL
	STA_MULTIBLOOD
	STA_CHRTITLEWCUPRATE
	STA_CHRTITLEWCDOWNRATE
	STA_CHRTITLEMAUPRATE
	STA_CHRTITLEMADOWNRATE
	STA_CHRTITLEACUPRATE
	STA_CHRTITLEACDOWNRATE
	STA_CHRTITLEMRUPRATE
	STA_CHRTITLEMRDOWNRATE
	STA_CHRTITLEHPUPRATE
	STA_CHRTITLEHPDOWNRATE
	STA_CHRTITLEHPRESTORE
	STA_CHRTITLESPUPRATE
	STA_CHRTITLESPRESTORE
	STA_CHRTITLETHUPRATE
	STA_CHRTITLETHDOWNRATE
	STA_CHRTITLETBUPRATE
	STA_CHRTITLETBDOWNRATE
	STA_CHRTITLESPEEDUPRATE
	STA_CHRTITLESPEEDDOWNRATE
	STA_CHRTITLECRITICALUPRATE
	STA_CHRTITLEBLOODING
	STA_MOBAPU01
	STA_BH_HELGA_NONE
	STA_HELGBALL
	STA_BH_KARATEMPLER_NONE
	STA_BH_HELGAAPU01
	STA_BH_HELGADRT01
	STA_BH_HELGA_IDLE01
	STA_MOBACPLUS
	STA_MOBSTN01
	STA_MOBPSN01
	STA_MOBOPU01
	STA_MOBMSD02
	STA_MOBSLC01
	STA_MOBBLD01
	STA_MOBMTS01
	STA_MOBBRN01
	STA_MOBMSD01
	STA_ADLUBAUP
	STA_ADLUBADOWN
	STA_BURNPAINME
	STA_BURNPAINFOE
	STA_GROUNDSTRIKE
	STA_BOMBSHOT
	STA_CROSSDROP
	STA_METEOR
	STA_MAGICDANCEUSESPDOWN
	STA_DEEPFEARMENDOWNRATE
	STA_MENDOWNRATE
	STA_SHAMECRIUP
	STA_MOBMRS01
	STA_MOBACS01
	STA_NOTTARGET
	STA_MAGICDANCEUSESPDOWN02
	STA_MAGICDANCEUSESPDOWN03
	STA_MAGICDANCEUSESPDOWN04
	STA_MAGICDANCEUSESPDOWN05
	STA_MENDOWNRATE02
	STA_MENDOWNRATE03
	STA_MENDOWNRATE04
	STA_MENDOWNRATE05
	STA_SHAMECRIUP02
	STA_SHAMECRIUP03
	STA_SHAMECRIUP04
	STA_SHAMECRIUP05
	STA_SNSATKUP
	STA_SNSCRIUP
	STA_SNSDEFENSEUP
	STA_SNSHPUP
	STA_SNSSPUP
	STA_SNSSPEEDUP
	STA_MULTIHEAL
	STA_HIDEWC
	STA_EGLACK04
	STA_EGLACKMAD05
	STA_SALARE04
	STA_SALARE00
	STA_ADLFLOUSSIER
	STA_ADLFLOUSSIERIMT
	STA_ADLFSTUN
	STA_EGLACKMAD04
	STA_MINEICE
	STA_MINESTUN
	STA_MINEFIREVIVI
	STA_MINEICEVIVI
	STA_MINEREWARD
	STA_SETF2WCUP
	STA_SETF2ACUP
	STA_SETF4HPUP
	STA_SETF4ACDOWN
	STA_SETF4ACUP
	STA_SETF4WCUPRATE
	STA_SETF4ACUPRATE
	STA_SETA2WCUP
	STA_SETA4SPEEDUP
	STA_SETA4SPEEDDOWN
	STA_SETA4ATKSPEEDUP
	STA_SETM2MAUP
	STA_SETM2MRUP
	STA_SETM3SPUP
	STA_SETM4MAUP
	STA_SETM4MRDOWN
	STA_SETM4SPUP
	STA_SETM4MRUP
	STA_SETC2WCUP
	STA_SETC2MAUP
	STA_SETC3MRUP
	STA_SETC4MRUP
	STA_SETC4WCUP
	STA_SETC4ATKDOWN
	STA_SETC4ACUP
	STA_SETC4ACDOWN
	STA_SETC4MAUP
	STA_SETJ2WCUP
	STA_SETJ2HPUP
	STA_SETJ3SPUP
	STA_SETJ4ACDOWN
	STA_SETJ4ATKSPPEUP
	STA_SETJ4CRLUP
	STA_SETJ4WCUP
	STA_ENWCUP
	STA_ENMAUP
	STA_ENATKSPEED
	STA_ENWCRATE
	STA_ENADDDMGRATE
	STA_ENKNOCKBACKRATE
	STA_ENBINDINGRATE
	STA_ENMOVEDOWNRATE
	STA_QDAYWCUP
	STA_QDAYMAUP
	STA_QDAYEXPUP
	STA_QDAYDROPUP
	STA_SWICEWARN
	STA_SURPRISE
	STA_SWPLSWARN
	STA_SWSTNWARN
	STA_SWBRN01WARN
	STA_SWLVTWARN
	STA_AWAYBACKSPOT
	STA_RADIONBUFF
	STA_AIRIBUFF
	STA_WARLBRAINWASH
	STA_WARLBRN01
	STA_STUNCANATTACK
	STA_TRANSFORM
	STA_BALLSNOW
	STA_SNOWMAN
	STA_WARNSETBUFF
	STA_SET_VALEN_STN
	STA_SET_VALEN_Heal
	STA_VALEN_REWARD
	STA_KQEGG_SPDW
	STA_KQEGG_REWARD
	STA_KQEGG_SPUP
	STA_KQSPRING_FEAR
	STA_KQSPRING_SLOW
	STA_KQ_SPUP_BUFF
	STA_KQ_SPIM_BUFF
	STA_KQ_SPUP_RATE_BUFF
	STA_KQSPRING_ARROW
	STA_WARHBRN01
	STA_WARHBRN
	STA_STRONGER_RANGEATTACK
	STA_STRONGER_MELEEATTACK
	STA_FLAMINGBODY
	STA_COUNT30
	STA_WARHWPNBRN
	STA_ORBATKRATEUP
	STA_RECOUP
	STA_LIGHTTOUCH
	STA_TREAT
	STA_LIGHTMARK
	STA_MINHP
	STA_MOONLIGHT
	STA_LPDOTPLUS
	STA_DMGSHIELD
	STA_DELCASTTIME
	STA_SETS2WCMAUP
	STA_SETS2ACMRUP
	STA_SETS4WCMAUP
	STA_SETS4ACMRUP
	STA_SENPARTYHPUPMAIN
	STA_SENPARTYHPUP
	STA_SENPARTYHPUP1
	STA_SENEVENTEXPUP
	STA_SENEVENTDROPUP
	STA_PZL_HIDE
	STA_PZL_OCCUPY
	STA_PZL_REWARD_S
	STA_PZL_REWARD_H
	STA_PZL_REWARD_SH1
	STA_PZL_REWARD_SH2
	STA_ROUTMAGEATKUP
	STA_ARK_STN
	STA_ARK_BLD01
	STA_ARK_BLD02
	STA_ARK_BLD03
	STA_ARK_BRN01
	STA_ARK_BRN02
	STA_ARK_BRN03
	STA_ARK_THDOWN01
	STA_ARK_THDOWN02
	STA_KAHAL_STN
	STA_KAHAL_BLD
	STA_KAHAL_FEAR01
	STA_KAHAL_FEAR02
	STA_KAHAL_SHOUT
	STA_KAHAL_SPDDOWN
	STA_KAHAL_ICE
	STA_SIREN_STN1
	STA_SIREN_STN2
	STA_SIREN_NOMOVE
	STA_SIREN_KNOCKBACK1
	STA_SIREN_KNOCKBACK2
	STA_SIREN_HEAL
	STA_SIREN_LVT1
	STA_SIREN_LVT2
	STA_SIREN_BLD01
	STA_SIREN_FEAR
	STA_SIREN_BLD02
	STA_CONHPPOTION_T6
	STA_CONSPPOTION_T6
	STA_DEXPOTION_T6
	STA_ACMRPOTION_T6
	STA_STRCRIPOTION_T6
	STA_PSNRESIPOTION_T6
	STA_DSSRESIPOTION_T6
	STA_CURRESIPOTION_T6
	STA_THSCROLL_T6
	STA_TBSCROLL_T6
	STA_MRSCROLL_T6
	STA_ACSCROLL_T6
	STA_CRISCROLL_T6
	STA_MAXHPSCROLL_T6
	STA_MAXSPSCROLL_T6
	STA_MSSCROLL_T6
	STA_BERVALE_ICE01
	STA_BERVALE_ICE02
	STA_BERVALE_BLD01
	STA_BERVALE_BLD02
	STA_B_ALBI_BRN
	STA_B_ALBI_KNOCK
	STA_B_ALBI_STN
	STA_B_ALBI_FEAR
	STA_B_ALBI_DOT
	STA_B_ALBI_REFLECT
	STA_B_ALBI_ACMRUP
	STA_ADLFGCRAZY
	STA_FCITRIEDOT
	STA_LCWCMAUP
	STA_E_SLIME
	STA_E_HONEYING
	STA_E_PHINO
	STA_E_LIZARDMAN
	STA_E_KINGCRAB
	STA_E_SPARKDOG
	STA_E_LAVAVIVI
	STA_E_PHINOFLIE
	STA_E_MUSHROOM
	STA_E_SPIDER
	STA_E_B_CRACKERHUMAR
	STA_E_HELGA
	STA_EMP_STUN
	STA_EMP_KINGBLOODING
	STA_EMP_EMPBLOODING
	STA_EMP_LVT
	STA_LCACMRUP
	STA_E_FIREWORKS
	STA_ARENA_SPDUP
	STA_ARENA_STUN
	STA_ARENA_DRAGOUT
	STA_ARENA_DEFDW
	STA_ARENA_SPDDW
	STA_ARENA_ALLDW
	STA_ARENA_REWARD
	STA_ARENA_FLAG_RED
	STA_ARENA_FLAG_BLUE
	STA_ARENA_MINHP
	STA_X_ICE
	STA_X_SNOWMAN
	STA_X_REWARD01
	STA_X_REWARD02
	STA_X_REWARD03
	STA_X_REWARD04
	STA_E_SKI_ICE
	STA_E_SKI_SPEEDUP
	STA_E_SKI_REWARD
	STA_E_SKI_STUN
	STA_LAB_PURYIMPACTSTUN
	STA_C_PURYIMPACTSTUN
	STA_E_EGG2014_HOSHEMING
	STA_E_EGG2014_SELFREVIVE
	STA_E_EGG2014_EXPUP
	STA_E_EGG2014_DROPRATEUP
	STA_MOVERSTATUPSINGLE
	STA_MOVERSTATUPPARTY
	STA_MOVERSTATUP
	STA_KDSOCCER_SPEED_UP
	STA_KDSOCCER_INVINCIBLE
	STA_KQWATER_ARROW_BLUE
	STA_KQWATER_ARROW_RED
	STA_E_JACKO
	STA_E_KEBING
	STA_E_FORASCHIEF
	STA_E_H_WIN_SPEEDUP
	STA_E_H_WIN_SPEEDDOWN
	STA_ADLFLOUSSIER_H
	STA_E_USER_NEWBIE01
	STA_E_USER_NEWBIE02
	STA_E_USER_NEWBIE03
	STA_E_USER_NEWBIE04
	STA_E_USER_NEWBIE05
	STA_E_USER_COMEBACK_MAIN01
	STA_E_USER_COMEBACK_MAIN02
	STA_E_USER_COMEBACK_MAIN03
	STA_E_USER_COMEBACK_MAIN04
	STA_E_USER_COMEBACK_MAIN05
	STA_E_USER_COMEBACK01
	STA_E_USER_COMEBACK02
	STA_E_USER_COMEBACK03
	STA_E_USER_COMEBACK04
	STA_E_USER_COMEBACK05
	STA_XMAS_STATUP
	STA_IDBUFF_100
	STA_IDBUFF_80
	STA_IDBUFF_60
	STA_IDBUFF_40
	STA_IDBUFF_20
	STA_E_SNOWMANR
	STA_E_SNOWMANB
	STA_KDFARGELS_BLOOD01
	STA_KDFARGELS_BLOOD02
	STA_KDFARGELS_BLOOD03
	STA_KDFARGELS_MRDOWNRATE
	STA_KDFARGELS_AIRBORNE
	STA_KDFARGELS_ACMRDOWN
	STA_KDFARGELS_DMGNEGLECT
	STA_KDFARGELS_DOTHEAL
	STA_SDVALE01_STN
	STA_SDVALE01_WHEEL
	STA_SDVALE01_SPDUP
	STA_SDVALE01_SPDDOWN
	STA_SDVALE01_BLIND
	STA_SDVALE01_PSN
	STA_SDVALE01_ICEFIELD
	STA_SDVALE01_BRN
	STA_SDVALE01_WCMAUP
	STA_SDVALE01_KNOCK
	STA_COSMUSAACRATE
	STA_COSMUSACRI
	STA_COSMUSAALLSTAT
	STA_BH_ALBI_REFLECT
	STA_BH_ALBI_ACMRUP
	STA_E_ZOMBIE
	STA_E_MARACREW
	STA_E_MARAELITE
	STA_E_MARASAILOR
	STA_E_PSYKEN
	STA_E_PSYKENDOG
	STA_E_MEGAN
	STA_E_YETI
	STA_E_IMP
	STA_E_ROBO
	STA_E_HOB
	STA_E_PINKY
	STA_E_WARH_DEVILDOM
	STA_E_ARKNOVICE
	STA_E_ARKTECH
	STA_E_MANDRAGORA
	STA_E_S_HAYREDDIN
	STA_E_MARA
	STA_BHKARENDOT
	STA_BHKARENDIVINE
	STA_BHKARENSTATIC
	STA_BHKARENCAPTIVATE
	STA_BHKARENDOTHEAL
	STA_BHKARENSTUN
	STA_BHKARENREF
	STA_GCGCAST
	STA_SCGATK
	STA_STONEATK
	STA_COLL_BLOOD
	STA_COLL_ACID
	STA_COLL_KNOCK_01
	STA_COLL_AIRBORNE
	STA_COLL_STUN_01
	STA_COLL_STUN_02
	STA_COLL_FEAR
	STA_COLL_HEAL
	STA_COLL_STUN_03
	STA_BLA_ACMDOWN
	STA_BLA_DOT
	STA_BLA_KNOCK
	STA_BLA_FEAR
	STA_BLA_LVT
	STA_BLA_STN
	STA_BLA_ACRATE
	STA_TGGUARDIANBALL
	STA_TGHAMMER
	STA_TGROAR
	STA_TGDOT
	MAX_ABSTATEINDEX
)

noinspection ALL

type AbStateSaveTypeEnum

type AbStateSaveTypeEnum uint32
const (
	AstNone AbStateSaveTypeEnum = iota
	AstLinkLogoff
	AstLinkLogoffDie
	AstLinkDie
	MaxAbStateSaveTypeEnum
)

type ArmorTypeEnum

type ArmorTypeEnum uint32
const (
	AtCloth ArmorTypeEnum = iota
	AtLeather
	AtScale
	AtPlate
	AtBone
	AtHardSkin
	AtWeakSkin
	AtBartSkin
	AtGelSkin
	AtFurSkin
	AtSpecial
	MaxArmorTypeEnum
)

type Attributes

type Attributes struct {
	ID               int    `struct:"int32"`
	MapInfoIndex     string `struct:"[12]byte"`
	ShineMapName     string `struct:"[32]byte"`
	SectorX          int    `struct:"int32"`
	SectorY          int    `struct:"int32"`
	IdleDuration     int    `struct:"int32"`
	ScriptFile       string `struct:"[64]byte"`
	PKPoints         bool   `struct:"byte"`
	HideName         bool   `struct:"byte"`
	TeleportTo       bool   `struct:"byte"`
	TeleportFrom     bool   `struct:"byte"`
	RegenMapIndex    string `struct:"[12]byte"`
	RegenXA          int    `struct:"int32"`
	RegenYA          int    `struct:"int32"`
	RegenXB          int    `struct:"int32"`
	RegenYB          int    `struct:"int32"`
	RegenXC          int    `struct:"int32"`
	RegenYC          int    `struct:"int32"`
	RegenXD          int    `struct:"int32"`
	RegenYD          int    `struct:"int32"`
	RegenSpots       int    `struct:"int8"`
	CanTrade         bool   `struct:"byte"`
	CanRest          bool   `struct:"byte"`
	UseItem          bool   `struct:"byte"`
	CastSkill        bool   `struct:"byte"`
	UseChat          bool   `struct:"byte"`
	UseShout         bool   `struct:"byte"`
	OpenBooth        bool   `struct:"byte"`
	Produce          bool   `struct:"byte"`
	UseMount         bool   `struct:"byte"`
	UseStones        bool   `struct:"byte"`
	PartyType        int    `struct:"int8"`
	MobExpPenalty    int    `struct:"int32"`
	PlayerExpPenalty int    `struct:"int32"`
}

type AuctionGroup

type AuctionGroup uint32
const (
	AgAll AuctionGroup = iota
	AgMWeapon
	AgMArmor
	AgMAccessory
	AgMProduce
	AgMEnchant
	AgMRaw
	AgMEtc
	AgSOneHandSword
	AgSTwoHandSword
	AgSAxe
	AgSMace
	AgSHammer
	AgSBow
	AgSCBow
	AgSStaff
	AgSWand
	AgSClaw
	AgSDSword
	AgSFighter
	AgSCleric
	AgSArcher
	AgSMage
	AgSJoker
	AgSNeck
	AgSEarring
	AgSRing
	AgSScroll
	AgSPotion
	AgSStone
	AgSFood
	AgSEnchant
	AgSProdRaw
	AgSFarm
	AgSMover
	AgSMiniHouse
	AgSCostume
	AgSAbility
	AgSEmotion
	AgSEtc
	AgSBlade
	AgSSentinel
	AgSBracelet
	MaxAuctionGroup
)

type ChargedEffect

type ChargedEffect struct {
	Handle       uint16
	ItemIndex    string `struct:"[32]byte"`
	KeepTimeHour uint16
	EffectEnum   EffectEnumerate
	EffectValue  uint16
	StaStrength  byte
	// contains filtered or unexported fields
}

type DispelAttr

type DispelAttr uint32
const (
	DaNone DispelAttr = iota
	DaGood
	DaDeBuff
	DaDisease
	DaPoison
	DaCurse
	DaStun
	DaFear
	DaDeeper
	DaHide
	DaBomb
	DaCharged
	MaxDispelAttr
)

type EBelongType

type EBelongType uint32

E_BelongType

const (
	BtCommon EBelongType = iota
	BtNoSell
	BtNoDrop
	BtNoSellDrop
	BtAcc
	BtChr
	BtOnlyDel
	BtNoDel
	BtPutOnAcc
	BtPutOnChr
	BtNoStorage
	MaxEBelongType
)

type EffectEnumerate

type EffectEnumerate uint32
const (
	EE_SILVERWINGCOOLTIME EffectEnumerate = iota
	EE_NOLOSTINKILLED
	EE_MOREINVENTORY
	EE_MORESTORAGE
	EE_MOREBOOTHSLOT
	EE_FASTMINING
	EE_MOREHPSTONE
	EE_MORESPSTONE
	EE_MOREHSPSTONE
	EE_COSTUM
	EE_AKPOWER
	EE_DPPOWER
	EE_ALLPOWER
	EE_HPINCREASE
	EE_SPINCREASE
	EE_ALLINCREASE
	EE_DROP_RATE
	EE_FEED
	EE_EXP_RATE
	EE_STATUS
	EE_ITEMAT_RATE
	EE_ITENDF_RATE
	EE_ITEMAL_RATE
	EE_PRODUCTSPEEDRATE
	EE_PRODUCTMASTERYRATE
	EE_PRODUCTALLRATE
	EE_JUSTREVIVE_HP
	EE_ENDURE_KIT
	EE_WEAPON_MAXENDURE
	EE_ADDPRODSKILL
	EE_JUSTRREVIVAL
	EE_SETABSTATE
	EE_GBCOIN
	EE_STORAGE_ANYWHERE
	EE_LPINCREASE
	EE_AUTOPATHFIND
	EE_CHATCOLOR
	EE_TERMEXTEND
	EE_EXPHOLD
	EE_CLASSCHANGE
	EE_QEXP_RATE
	MAX_EFFECTENUMERATE
)

type EnemyDetect

type EnemyDetect uint32
const (
	ED_BOUT EnemyDetect = iota
	ED_AGGRESSIVE
	ED_NOBRAIN
	ED_AGGRESSIVE2
	ED_AGGREESIVEALL
	ED_ENEMYALLDETECT
	MAX_ENEMYDETECT
)

type FileDependency

type FileDependency interface {

	// e.g:
	// ItemInfoServer.shn => { "missingIDs": [1234,1235,1236]  }
	MissingIdentifiers(string) (Files, error)
}

Some files have linked data in other files Related data is linked using an identifier (ID, InxName, ItemID, ItemOptions, MobID, etc..) Every file may have a dependency in 0-N files The given Type should implement a method where dependencies on related files are checked against

type Files

type Files map[string]Identifiers

type GradeItemOption

type GradeItemOption struct {
	ItemIndex          string `struct:"[32]byte"`
	Strength           uint16
	Endurance          uint16
	Dexterity          uint16
	Intelligence       uint16
	Spirit             uint16
	PoisonResistance   uint16
	DiseaseResistance  uint16
	CurseResistance    uint16
	MobilityResistance uint16
	AimRate            uint16
	EvasionRate        uint16
	MaxHP              uint16
	MaxSP              uint16
	PDamageIncrease    uint16
	MDamageIncrease    uint16
	// contains filtered or unexported fields
}

type GradeType

type GradeType uint32
const (
	GtNormal GradeType = iota
	GtNamed
	GtRare
	GtUnique
	GtCharge
	GtSet
	GtLegendary
	GtMythic
	MaxGradeType
)

type ISEType

type ISEType uint32
const (
	ISET_NONEEQUIP ISEType = iota
	ISET_MINIMON
	ISET_MINIMON_R
	ISET_MINIMON_BOTH
	ISET_COS_TAIL
	ISET_COS_BACK
	ISET_COS_RIGHT
	ISET_COS_LEFT
	ISET_COS_TWOHAND
	ISET_COS_HEAD
	ISET_COS_EYE
	ISET_COS_3PIECE_AMOR
	ISET_COS_3PIECE_PANTS
	ISET_COS_3PIECE_BOOTS
	ISET_COS_2PIECE_PANTS
	ISET_COS_1PIECE
	ISET_NORMAL_BOOTS
	ISET_NORMAL_PANTS
	ISET_RING
	ISET_SHIELD
	ISET_NORMAL_AMOR
	ISET_WEAPON_RIGHT
	ISET_WEAPON_TWOHAND
	ISET_WEAPON_LEFT
	ISET_EARRING
	ISET_NORMAL_HAT
	ISET_NECK
	ISET_COS_MASK
	ISET_INVINCIBLEHAMMER
	ISET_COS_MASK_EYE
	ISET_COS_HIDE_HEAD
	ISET_COS_EFF
	ISET_COS_SHIELD
	ISET_BRACELET
	MAX_ISETYPE
)

type Identifiers

type Identifiers map[string][]interface{}

type ItemClassEnum

type ItemClassEnum uint32
const (
	ItemClassByteLot ItemClassEnum = iota
	ItemClassWordLot
	ItemClassDwrdLot
	ItemClassQuestItem
	ItemClassAmulet
	ItemClassWeapon
	ItemClassArmor
	ItemClassShield
	ItemClassBoot
	ItemClassFurniture
	ItemClassDecoration
	ItemClassSkillScroll
	ItemClassRecallScroll
	ItemClassBindItem
	ItemClassUpsource
	ItemClassItemChest
	ItemClassWtLicence
	ItemKq
	ItemHouseSkin
	ItemUpRed
	ItemUpBlue
	ItemKqStep
	ItemFeed
	ItemRiding
	ItemAmount
	ItemUpGold
	ItemCosWeapon
	ItemActionItem
	ItemGbCoin
	ItemCapsule
	ItemClosedCard
	ItemOpenCard
	ItemMoney
	ItemNoEffect
	ItemEnchant
	ItemActiveSkill
	ItemPup
	ItemCosShield
	ItemBracelet
	MaxItemEnum
)

type ItemData

type ItemData struct {
	ItemInfo          ShineItemInfo
	ItemInfoServer    ShineItemInfoServer
	GradeItemOptions  ShineGradeItemOption
	RandomOption      ShineRandomOption
	RandomOptionCount ShineRandomOptionCount
}

func LoadItemData

func LoadItemData(path string) (*ItemData, error)

TODO: make loader with routines and channels, its too slow right now

type ItemEquipEnum

type ItemEquipEnum uint32
const (
	ItemEquipNone ItemEquipEnum = iota
	ItemEquipHat
	ItemEquipNoUse03
	ItemEquipNoUse01
	ItemEquipNoUse02
	ItemEquipFaceTattoo
	ItemEquipNecklace
	ItemEquipBody
	ItemEquipBodyAcc
	ItemEquipBack
	ItemEquipLeftHand
	ItemEquipLeftHandAcc
	ItemEquipRightHand
	ItemEquipRightHandAcc
	ItemEquipBracelet
	ItemEquipLeftRing
	ItemEquipRightRing
	ItemEquipCosEff
	ItemEquipTail
	ItemEquipLeg
	ItemEquipLegAcc
	ItemEquipShoes
	ItemEquipShoesAcc
	ItemEquipEarRing
	ItemEquipMouth
	ItemEquipMinimon
	ItemEquipEye
	ItemEquipHatAcc
	ItemEquipMinimonR
	ItemEquipShieldAcc
	MaxItemEquipEnum
)

type ItemFuncEnum

type ItemFuncEnum uint32
const (
	ItemFuncNone ItemFuncEnum = iota
	ItemFuncEndureKitWc
	ItemFuncEndureKitF
	ItemFuncJustRevival
	ItemFuncChangeName
	ItemFuncChangeRelation
	ItemFuncPutOnClear
	MaxItemFuncEnum
)

type ItemInfo

type ItemInfo struct {
	ID               uint16
	InxName          string `struct:"[32]byte"`
	Name             string `struct:"[64]byte"`
	Type             ItemTypeEnum
	Class            ItemClassEnum
	MaxLot           uint32
	Equip            ItemEquipEnum
	ItemAuctionGroup AuctionGroup
	ItemGradeType    GradeType
	TwoHand          byte
	AtkSpeed         uint32
	DemandLv         uint32
	Grade            uint32
	MinWC            uint32
	MaxWC            uint32
	AC               uint32
	MinMA            uint32
	MaxMA            uint32
	MR               uint32
	TH               uint32
	TB               uint32
	WCRate           uint32
	MARate           uint32
	ACRate           uint32
	MRRate           uint32
	CriRate          uint32
	CriMinWc         uint32
	CriMaxWc         uint32
	CriMinMa         uint32
	CriMaxMa         uint32
	CrlTB            uint32
	UseClass         UseClassType
	BuyPrice         uint32
	SellPrice        uint32
	BuyDemandLv      byte
	BuyFame          uint32
	BuyGToken        uint32
	BuyGBCoin        uint32
	WeaponType       WeaponTypeEnum
	ArmorType        ArmorTypeEnum
	UpLimit          byte
	BasicUpInx       uint16
	UpSucRatio       uint16
	UpLuckRatio      uint16
	UpResource       byte
	AddUpInx         uint16
	ShieldAC         uint32
	HitRatePlus      uint32
	EvaRatePlus      uint32
	MACriPlus        uint32
	CriDamPlus       uint32
	MagCriDamPlus    uint32
	BTInx            EBelongType
	TitleName        string `struct:"[32]byte"`
	ItemUseSkill     string `struct:"[32]byte"`
	SetItemIndex     string `struct:"[32]byte"`
	ItemFunc         ItemFuncEnum
	// contains filtered or unexported fields
}

type ItemInfoServer

type ItemInfoServer struct {
	ID                     uint32
	InxName                string `struct:"[32]byte"`
	MarketIndex            string `struct:"[20]byte"`
	City                   byte
	DropGroupA             string `struct:"[40]byte"`
	DropGroupB             string `struct:"[40]byte"`
	RandomOptionDropGroup  string `struct:"[33]byte"`
	Vanish                 uint32
	Looting                uint32
	DropRateKilledByMob    uint16
	DropRateKilledByPlayer uint16
	ISETIndex              ISEType
	ItemSortIndex          string `struct:"[32]byte"`
	KQITem                 byte
	PkKqUse                byte
	KqItemDrop             byte
	PreventAttack          byte
	// contains filtered or unexported fields
}

type ItemTypeEnum

type ItemTypeEnum uint32
const (
	ItemTypeEqu ItemTypeEnum = iota
	ItemTypeExh
	ItemTypeEtc
	ItemTypeQuest
	ItemTypeStartQuest
	ItemTypeVip
	ItemTypeConfirm
	MaxItemTypeEnum
)

type Map

type Map struct {
	ID int `struct:"int32"`
	*Attributes
	Info *MapInfo
	SHBD *SHBD
}

type MapData

type MapData struct {
	Maps map[int]*Map
}

func LoadMapData

func LoadMapData(shineFolder string) (*MapData, error)

type MapInfo

type MapInfo struct {
	ID            uint16
	MapName       structs.Name3
	Name          string `struct:"[32]byte"`
	IsWMLink      WMLink
	RegenX        uint32
	RegenY        uint32
	KingdomMap    byte
	MapFolderName structs.Name3
	InSide        byte
	Sight         uint32
	// contains filtered or unexported fields
}

struct MapInfo

{
 unsigned __int16 ID;
 Name3 MapName;
 char Name[32];
 WM_Link IsWMLink;
 unsigned int RegenX;
 unsigned int RegenY;
 char KingdomMap;
 Name3 MapFolderName;
 char InSide;
 unsigned int Sight;
};

type MiniHouse

type MiniHouse struct {
	Handle       uint16
	ItemID       string `struct:"[32]byte"`
	DummyType    string `struct:"[32]byte"`
	BackImage    string `struct:"[32]byte"`
	KeepTimeHour uint16
	HPTick       uint16
	SPTick       uint16
	HPRecovery   uint16
	SPRecovery   uint16
	Casting      uint16
	Slot         byte
	// contains filtered or unexported fields
}

struct MiniHouse

{
 unsigned __int16 Handle;
 char ItemID[32];
 char DummyType[32];
 char Backimage[32];
 unsigned __int16 KeepTime_Hour;
 unsigned __int16 HPTick;
 unsigned __int16 SPTick;
 unsigned __int16 HPRecovery;
 unsigned __int16 SPRecovery;
 unsigned __int16 Casting;
 char Slot;
};

type MobGradeType

type MobGradeType uint32
const (
	MGT_NORMAL MobGradeType = iota
	MGT_CHIEF
	MGT_BOSS
	MGT_HERO
	MGT_ELITE
	MGT_NONE
	MAX_MOBGRADETYPE
)

type MobInfo

type MobInfo struct {
	ID        uint16
	InxName   string `struct:"[32]byte"`
	Name      string `struct:"[32]byte"`
	Level     uint32
	MaxHP     uint32
	WalkSpeed uint32
	RunSpeed  uint32
	IsNPC     byte
	Size      uint32
	WeaponTypeEnum
	ArmorTypeEnum
	MobGradeType
	MobType
	IsPlayerSide byte
	AbsoluteSize uint32
	// contains filtered or unexported fields
}

type MobInfoServer

type MobInfoServer struct {
	ID      uint32
	InxName string `struct:"[32]byte"`
	Visible byte
	AC      uint16
	TB      uint16
	MR      uint16
	MB      uint16
	EnemyDetect
	MobKillType
	MonExp        uint32
	ExpRange      uint16
	DetectCha     uint16
	ResetInterval byte
	CutInterval   uint16
	CutNonAT      uint32
	FollowCha     uint32
	PceHPRcvDly   uint16
	PceHPRcv      uint16
	AtkHPRcvDly   uint16
	AtkHPRcv      uint16
	Str           uint16
	Dex           uint16
	End           uint16
	Int           uint16
	Spr           uint16
	MobRace
	Rank            byte
	FamilyArea      uint32
	FamilyRescArea  uint32
	FamilyRescCount byte
	BloodingResi    uint16
	StunResi        uint16
	MoveSpeedResi   uint16
	FearResi        uint16
	ResIndex        string `struct:"[32]byte"`
	KQKillPoint     uint16
	Return2Regen    byte
	IsRoaming       byte
	RoamingNumber   byte
	RoamingDistance uint16
	RoamingRestTime uint16
	MaxSP           uint16
	BroadAtDead     byte
	TurnSpeed       uint16
	WalkChase       uint16
	AllCanLoot      byte
	DmgByHealMin    uint16
	DmgByHealMax    uint16
	RegenInterval   uint16
	// contains filtered or unexported fields
}

type MobKillType

type MobKillType uint32
const (
	MKT_DEFAULT MobKillType = iota
	MKT_ONLYSCRIPT
	MKT_MOB
	MAX_MOBKILLTYPE
)

type MobRace

type MobRace uint32
const (
	MR_NONE MobRace = iota
	MR_PHINO
	MR_MARA
	MR_MARLONE
	MR_SKEL
	MR_CEM
	MR_GOBLIN
	MR_KARA
	MR_KEEPER
	MR_PI
	MR_LIZARD
	MR_TRUMPY
	MR_ORC
	MR_SLIME
	MR_BOAR
	MR_STAFF
	MR_ARCHON
	MR_STONIE
	MR_INCUBUS
	MR_TREE
	MR_IMP
	MR_VIVI
	MR_KEBING
	MR_GUARDIAN
	MR_MINER
	MR_BELLOW
	MR_CAIMAN
	MR_RHINOCE
	MR_MUD
	MR_SLUG
	MR_SHADOW
	MR_CHAR
	MR_STATUE
	MR_HELGA
	MR_SPIRIT
	MR_MAGRITE
	MR_WOLF
	MR_BEAR
	MR_SPIDER
	MR_MAND
	MR_LICH
	MR_POON
	MR_DEPRAVITY
	MR_WIND
	MR_SELF
	MR_ELF
	MR_HONEYING
	MR_BOOGY
	MR_CRAB
	MR_GUARD_NORMAL
	MR_DEVILDOM
	MR_SLAYER
	MR_DARKARMY
	MR_BKNIGHTS
	MAX_MOBRACE
)

type MobType

type MobType uint32
const (
	MT_HUMAN MobType = iota
	MT_MAGICLIFE
	MT_SPIRIT
	MT_BEAST
	MT_ELEMENTAL
	MT_UNDEAD
	MT_NPC
	MT_OBJECT
	MT_MINE
	MT_HERB
	MT_WOOD
	MT_NONAME
	MT_NOTARGET
	MT_NOTARGET2
	MT_GLDITEM
	MT_FLAG
	MT_DEVIL
	MT_META
	MT_NODAMAGE
	MT_NODAMAGE2
	MT_NONAMEGATE
	MT_BOX_HERB
	MT_BOX_MINE
	MT_GB_DICE
	MT_NODAMAGE3
	MT_FRIEND
	MT_GB_SLOTMACHINE
	MT_FRIENDDMGABSORB
	MT_DEVILDOM
	MT_NOTARGET3
	MT_META2
	MT_DWARF
	MT_MACHINE
	MAX_MOBTYPE
)

type MonsterData

type MonsterData struct {
	MapRegens     map[string]MonsterRegenTable
	MobInfo       ShineMobInfo
	MobInfoServer ShineMobInfoServer
}

func LoadMonsterData

func LoadMonsterData(shineFolder string) (*MonsterData, error)

load SHN files load into MonsterData persist monsterData

type MonsterRegenTable

type MonsterRegenTable struct {
	Groups map[string]*RegenEntry
}

type NpcData

type NpcData struct {
	MapNPCs    map[string][]*ShineNPC
	VendorNPCs map[string]*VendorItems
}

func LoadNPCData

func LoadNPCData(shineFolder string) (*NpcData, error)

type RandomOption

type RandomOption struct {
	DropItemIndex    string `struct:"[33]byte"`
	RandomOptionType RandomOptionType
	Min              uint32
	Max              uint32
	TypeDropRate     uint32
	// contains filtered or unexported fields
}

stats

type RandomOptionCount

type RandomOptionCount struct {
	DropItemIndex string `struct:"[33]byte"`
	LimitCount    uint16
	LimitDropRate uint16
	// contains filtered or unexported fields
}

Amount of stats that can drop and the drop rate

type RandomOptionType

type RandomOptionType uint32
const (
	ROT_STR RandomOptionType = iota
	ROT_CON
	ROT_DEX
	ROT_INT
	ROT_MEN
	ROT_TH
	ROT_CRI
	ROT_WC
	ROT_AC
	ROT_MA
	ROT_MR
	ROT_TB
	ROT_CRITICAL_TB
	ROT_DEMANDLVDOWN
	ROT_MAXHP
	MAX_RANDOMOPTIONTYPE
)

type RegenEntry

type RegenEntry struct {
	IsFamily                         bool
	X, Y, Width, Height, RangeDegree int
	Mobs                             []RegenEntryMob
}

type RegenEntryMob

type RegenEntryMob struct {
	Index                                                string
	Num                                                  uint16
	KillNumber                                           int
	RespawnSeconds, RespawnSecondsMin, RespawnSecondsMax int
	RespawnDeltas                                        [9]uint32
}

type SHBD

type SHBD struct {
	X    int    `struct:"int32"`
	Y    int    `struct:"int32"`
	Data []byte `struct-size:"X * Y"`
}

func ImageToSHBD

func ImageToSHBD(img *image.RGBA) SHBD

func LoadSHBDFile

func LoadSHBDFile(filesPath string) (*SHBD, error)

type ShineAbState

type ShineAbState struct {
	DataSize    uint32
	RowsCount   uint32
	FieldSize   uint32
	ColumnCount uint32
	Columns     []ShineColumn `struct:"sizefrom=ColumnCount"`
	ShineRow    []AbState     `struct:"sizefrom=RowsCount"`
}

type ShineChargedEffect

type ShineChargedEffect struct {
	DataSize    uint32
	RowsCount   uint32
	FieldSize   uint32
	ColumnCount uint32
	Columns     []ShineColumn   `struct:"sizefrom=ColumnCount"`
	ShineRow    []ChargedEffect `struct:"sizefrom=RowsCount"`
}

type ShineColumn

type ShineColumn struct {
	Name string `struct:"[48]byte"`
	Type ShineDataType
	Size uint32
}

type ShineDataMode

type ShineDataMode uint32
const (
	DataModeNormal ShineDataMode = iota
	DataModeEncryption
)

type ShineDataType

type ShineDataType uint32
const (
	TypeListEnd ShineDataType = iota
	TypeListByte
	TypeListWord
	TypeListDword
	TypeListQWord
	TypeListFloat
	TypeListFilename
	TypeListFileAuto
	TypeListRemark
	TypeListStr
	TypeListStrAuto
	TypeListInx
	TypeListInxByte
	TypeListInxWord
	TypeListInxDword
	TypeListInxQWord
	TypeListByteBit
	TypeListWordBit
	TypeListDwordBit
	TypeListQWordBit
	TypeListByteArray
	TypeListWordArray
	TypeListDWordArray
	TypeListQWordArray
	TypeListStrArray
	TypeListStrAutoArray
	TypeListVarStr
	TypeListInxStr
	TypeListUnknownEd
	TypeListTwoInx
)

type ShineGradeItemOption

type ShineGradeItemOption struct {
	DataSize    uint32
	RowsCount   uint32
	FieldSize   uint32
	ColumnCount uint32
	Columns     []ShineColumn     `struct:"sizefrom=ColumnCount"`
	ShineRow    []GradeItemOption `struct:"sizefrom=RowsCount"`
}

type ShineItemInfo

type ShineItemInfo struct {
	DataSize    uint32
	RowsCount   uint32
	FieldSize   uint32
	ColumnCount uint32
	Columns     []ShineColumn `struct:"sizefrom=ColumnCount"`
	ShineRow    []ItemInfo    `struct:"sizefrom=RowsCount"`
}

func (*ShineItemInfo) MissingIdentifiers

func (s *ShineItemInfo) MissingIdentifiers(filesPath string) (Files, error)

type ShineItemInfoServer

type ShineItemInfoServer struct {
	DataSize    uint32
	RowsCount   uint32
	FieldSize   uint32
	ColumnCount uint32
	Columns     []ShineColumn    `struct:"sizefrom=ColumnCount"`
	ShineRow    []ItemInfoServer `struct:"sizefrom=RowsCount"`
}

type ShineMapInfo

type ShineMapInfo struct {
	DataSize    uint32
	RowsCount   uint32
	FieldSize   uint32
	ColumnCount uint32
	Columns     []ShineColumn `struct:"sizefrom=ColumnCount"`
	Rows        []MapInfo     `struct:"sizefrom=RowsCount"`
}

type ShineMiniHouse

type ShineMiniHouse struct {
	DataSize    uint32
	RowsCount   uint32
	FieldSize   uint32
	ColumnCount uint32
	Columns     []ShineColumn `struct:"sizefrom=ColumnCount"`
	ShineRow    []MiniHouse   `struct:"sizefrom=RowsCount"`
}

type ShineMobInfo

type ShineMobInfo struct {
	DataSize    uint32
	RowsCount   uint32
	FieldSize   uint32
	ColumnCount uint32
	Columns     []ShineColumn `struct:"sizefrom=ColumnCount"`
	ShineRow    []MobInfo     `struct:"sizefrom=RowsCount"`
}

type ShineMobInfoServer

type ShineMobInfoServer struct {
	DataSize    uint32
	RowsCount   uint32
	FieldSize   uint32
	ColumnCount uint32
	Columns     []ShineColumn   `struct:"sizefrom=ColumnCount"`
	ShineRow    []MobInfoServer `struct:"sizefrom=RowsCount"`
}

type ShineNPC

type ShineNPC struct {
	MobIndex string
	MapIndex string
	X, Y, D  int
	NPCMenu  bool
	Role     string
	RoleArg  string // if Gate then ShinePortal is not nil
	*ShinePortal
}

type ShinePortal

type ShinePortal struct {
	RoleArg        string // use it later to assign ShinePortal to ShineNPC
	ServerMapIndex string
	ClientMapIndex string
	X, Y, D        int // landing coordinates
	FromLevel      int
	Party          bool
}

type ShineRandomOption

type ShineRandomOption struct {
	DataSize    uint32
	RowsCount   uint32
	FieldSize   uint32
	ColumnCount uint32
	Columns     []ShineColumn  `struct:"sizefrom=ColumnCount"`
	ShineRow    []RandomOption `struct:"sizefrom=RowsCount"`
}

type ShineRandomOptionCount

type ShineRandomOptionCount struct {
	DataSize    uint32
	RowsCount   uint32
	FieldSize   uint32
	ColumnCount uint32
	Columns     []ShineColumn       `struct:"sizefrom=ColumnCount"`
	ShineRow    []RandomOptionCount `struct:"sizefrom=RowsCount"`
}

type ShineRawFile

type ShineRawFile struct {
	VersionKey uint32
	Version    [20]byte
	Reserved   uint32
	DataMode   ShineDataMode
	FileSize   int32
	// column, row data
	Data []byte `struct-while:"!_eof"`
}

type SubDispelAttr

type SubDispelAttr uint32
const (
	SdaNone SubDispelAttr = iota
	SdaStun
	SdaMovespeed
	SdaFear
	SdaBlooding
	SdaDeeper
	SdaBlind
	SdaReverse
	SdaBind
	SdaMesmerize
	SdaSeverBone
	SdaKnockBack
	SdaTBMinus
	SdaGtiResist
	MaxSubDispelAttr
)

type UseClassType

type UseClassType uint32
const (
	UctNone UseClassType = iota
	UctAll
	UctFighterAll
	UctCleverFighterAndOver
	UctWarriorAndOver
	UctWarriorOver
	UctGladiatorOnly
	UctKnightOnly
	UctClericAll
	UctHighClericAndOver
	UctPaladinAndOver
	UctGuardianOnly
	UctHolyKnightOnly
	UctPaladinOver
	UctArcherAll
	UctHawkArcherAndOver
	UctScoutAndOver
	UctRangerOnly
	UctSharpshooterOnly
	UctScoutOver
	UctMageAll
	UctWizMageAndOver
	UctEnchanterAndOver
	UctWizardOnly
	UctWarlockOnly
	UctEnchanterOver
	UctSentinelExclude
	UctJokerAll
	UctChaserAndOver
	UctCruelAndOver
	UctAssassinOnly
	UctCloserOnly
	UctCruelOver
	UctSentinelAll
	UctSaviorOnly
	UctDeeperSkill
	UctShield
	UctClassChange
	UctShieldNotGla
	MaxUseClassType
)

type VendorGrid

type VendorGrid [8][6]string

type VendorItems

type VendorItems struct {
	Tabs map[string]VendorTab
}

type VendorTab

type VendorTab struct {
	Pages []VendorGrid
}
type WMLink uint32

enum WM_Link

{
 WM_NONE = 0x0,
 WM_ROUN = 0x1,
 WM_ROUCOS01 = 0x2,
 WM_ROUCOS02 = 0x3,
 WM_ROUCOS03 = 0x4,
 WM_ROUVAL01 = 0x5,
 WM_ROUVAL02 = 0x6,
 WM_ELD = 0x7,
 WM_ELDCEM01 = 0x8,
 WM_ELDCEM02 = 0x9,
 WM_ELDGBL01 = 0xA,
 WM_ELDPRI01 = 0xB,
 WM_ELDFOR01 = 0xC,
 WM_ELDSLEEP01 = 0xD,
 WM_URG = 0xE,
 WM_ECHOCAVE = 0xF,
 WM_WINDYCAVE = 0x10,
 WM_GOLDCAVE = 0x11,
 WM_URGFIRE01 = 0x12,
 WM_URGSWA01 = 0x13,
 WM_ELDGBL02 = 0x14,
 WM_ELDPRI02 = 0x15,
 WM_LINKFIELD01 = 0x16,
 WM_LINKFIELD02 = 0x17,
 WM_URG_ALRUIN = 0x18,
 WM_ADLTHORN01 = 0x19,
 WM_URGDARK01 = 0x1A,
 WM_BERKAL01 = 0x1B,
 WM_BERA_ = 0x1C,
 WM_ADL = 0x1D,
 WM_BERFRZ01 = 0x1E,
 WM_BERVALE01 = 0x1F,
 WM_ADLVAL01 = 0x20,
 WM_TEVAL = 0x21,
 WM_BATTLEFIELD = 0x22,
 WM_TCAVE = 0x23,
 WM_SER = 0x24,
 MAX_WM_LINK = 0x25,
};
const (
	WmNone WMLink = iota
	WmRouN
	WmRouCos01
	WmRouCos02
	WmRouCos03
	WmRouVal01
	WmRouVal02
	WmEld
	WmEldCem01
	WmEldCem02
	WmEldGbl01
	WmEldPri01
	WmEldFor01
	WmEldSleep01
	WmUrg
	WmEchoCave
	WmWindyCave
	WmGoldCave
	WmUrgFire01
	WmUrgSwa01
	WmEldGbl02
	WmEldPri02
	WmLinkField01
	WmLinkField02
	WmUrgAlruin
	WmAdlThorn01
	WmUrgDark01
	WmBerKal01
	WmBera
	WmAdl
	WmBerFrz01
	WmBerVale01
	WmAdlVal01
	WmTeVal
	WmBattlefield
	WmTCave
	WmSer
	MaxWmLink
)

type WeaponTypeEnum

type WeaponTypeEnum uint32
const (
	WtNone WeaponTypeEnum = iota
	WtSword
	WtBow
	WtStaff
	WtAxe
	WtMace
	WtSpike
	WtFist
	WtBody
	WtStone
	WtCrossbow
	WtWand
	WtSpear
	WtHammer
	WtSpecial
	WtProductionTool
	WtInvincibleHammer
	WtDSword
	WtClaw
	WtBlade
	WtRangePy
	WtTSword
	MaxWeaponTypeEnum
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL