constant

package
v0.0.38 Latest Latest
Warning

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

Go to latest
Published: Dec 30, 2025 License: MIT Imports: 0 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MapleVersion          = 28
	ClientHeaderSize      = 4
	InterserverHeaderSize = 4
	OpcodeLength          = 1
)

Generic Constants

View Source
const (
	MaxItemStack = 200

	SkinID  = 0x01
	FaceID  = 0x02 // Eyes
	HairID  = 0x04
	PetID   = 0x08
	LevelID = 0x10
	JobID   = 0x20
	StrID   = 0x40
	DexID   = 0x80
	IntID   = 0x100
	LukID   = 0x200
	HpID    = 0x400
	MaxHpID = 0x800
	MpID    = 0x1000
	MaxMpID = 0x2000
	ApID    = 0x4000
	SpID    = 0x8000
	ExpID   = 0x10000
	FameID  = 0x20000
	MesosID = 0x40000

	BeginnerHpAdd = int16(12)
	BeginnerMpAdd = int16(10)

	WarriorHpAdd = int16(24)
	WarriorMpAdd = int16(4)

	MagicianHpAdd = int16(10)
	MagicianMpAdd = int16(6)

	BowmanHpAdd = int16(20)
	BowmanMpAdd = int16(14)

	ThiefHpAdd = int16(20)
	ThiefMpAdd = int16(14)

	AdminHpAdd = 150
	AdminMpAdd = 150

	BeginnerJobID = 0

	WarriorJobID      = 100
	FighterJobID      = 110
	CrusaderJobID     = 111
	PageJobID         = 120
	WhiteKnightJobID  = 121
	SpearmanJobID     = 130
	DragonKnightJobID = 131

	MagicianJobID         = 200
	FirePoisonWizardJobID = 210
	FirePoisonMageJobID   = 211
	IceLightWizardJobID   = 220
	IceLightMageJobID     = 221
	ClericJobID           = 230
	PriestJobID           = 231

	BowmanJobID      = 300
	HunterJobID      = 310
	RangerJobID      = 311
	CrossbowmanJobID = 320
	SniperJobID      = 321

	ThiefJobID       = 400
	AssassinJobID    = 410
	HermitJobID      = 411
	BanditJobID      = 420
	ChiefBanditJobID = 421

	GmJobID      = 500
	SuperGmJobID = 510

	// Weapon type constants (itemID / 10000)
	WeaponType1HSword  = 130
	WeaponType1HAxe    = 131
	WeaponType1HBW     = 132
	WeaponTypeDagger   = 133
	WeaponTypeWand     = 137
	WeaponTypeStaff    = 138
	WeaponType2HSword  = 140
	WeaponType2HAxe    = 141
	WeaponType2HBW     = 142
	WeaponTypeSpear    = 143
	WeaponTypePolearm  = 144
	WeaponTypeBow      = 145
	WeaponTypeCrossbow = 146
	WeaponTypeClaw     = 147

	// Equipment slot constants
	WeaponSlot = -11

	// Stat gain constants for manual AP allocation
	BeginnerApHpGain = 8
	BeginnerApMpGain = 6
	WarriorApHpGain  = 20
	WarriorApMpGain  = 4
	MagicianApHpGain = 8
	MagicianApMpGain = 18
	BowmanApHpGain   = 16
	BowmanApMpGain   = 10
	ThiefApHpGain    = 16
	ThiefApMpGain    = 10
	DefaultApHpGain  = 10
	DefaultApMpGain  = 10

	// INT multipliers for MP calculation
	IntMpMultiplierNormal   = 1
	IntMpMultiplierMagician = 2
	IntMpDivisor            = 200

	// Job class divisors
	JobClassDivisor  = 100
	JobBranchDivisor = 10

	// Mastery constants
	MasteryDisplayDivisor = 2

	// Recharge bonus constants
	ClawMasteryRechargeMultiplier = 10

	MaxHpValue = 32767
	MaxMpValue = 32767

	MaxPartySize = 6
	MaxGuildSize = 255

	GuildCreateDialogue   byte = 0x02
	GuildInvite           byte = 0x05
	GuildAcceptInvite     byte = 0x06
	GuildLeave            byte = 0x07
	GuildExpel            byte = 0x08
	GuildNoticeChange     byte = 0x10
	GuildUpdateTitleNames byte = 0x0D
	GuildRankChange       byte = 0x0E
	GuildEmblemChange     byte = 0x0F
	GuildContractSign     byte = 0x1E
	GuildRejectInvite     byte = 0x37

	QuestLostItem  = 0x00
	QuestStarted   = 0x01
	QuestCompleted = 0x02
	QuestForfeit   = 0x03

	QuestActionSuccess                    byte = 4
	QuestActionUnknownError               byte = 5
	QuestActionInventoryFull              byte = 6
	QuestActionNotEnoughMesos             byte = 7
	QuestActionFailedRetrieveEquippedItem byte = 8
	QuestActionCannotCarryMoreThanOne     byte = 9

	FameNotifySource  = 0x00
	FameIncorrectUser = 0x01
	FameUnderLevel    = 0x02
	FameThisDay       = 0x03
	FameThisMonth     = 0x04
	FameNotifyTarget  = 0x05

	SummonRemoveReasonCancel   = 0x01
	SummonRemoveReasonKeepBuff = 0x02
	SummonRemoveReasonReplaced = 0x04
	SummonAttackMob            = 0x06
	SummonTakeDamage           = 0xFF

	StorageEquipTab = 0x04
	StorageUseTab   = 0x08
	StorageSetupTab = 0x10
	StorageEtcTab   = 0x20
	StorageCashTab  = 0x40

	MessengerEnter        byte = 0x00
	MessengerEnterResult  byte = 0x01
	MessengerLeave        byte = 0x02
	MessengerInvite       byte = 0x03
	MessengerInviteResult byte = 0x04
	MessengerBlocked      byte = 0x05
	MessengerChat         byte = 0x06
	MessengerAvatar       byte = 0x07
	MessengerMigrated     byte = 0x08

	ReactorWarp      = 0
	ReactorSpawn     = 1
	ReactorDrop      = 2
	ReactorSpawnNPC  = 6
	ReactorRunScript = 10

	PlayerEffectLevelUp          = 0
	PlayerEffectSkillOnSelf      = 1
	PlayerEffectSkillOnOther     = 2
	PlayerEffectQuestEffect      = 3
	PlayerEffectInventoryChanged = 3
	PlayerEffectPet              = 4
	PlayerEffectExpCharm         = 6
	PlayerEffectPortal           = 7
	PlayerEffectJobChange        = 8

	PetRemoveNone   byte = 0
	PetRemoveHungry byte = 1
	PetRemoveExpire byte = 2
)
View Source
const (
	MiniRoomCreate        byte = 0
	MiniRoomInvite        byte = 2
	MiniRoomDeclineInvite byte = 3
	MiniRoomEnter         byte = 4
	MiniRoomEnterResult   byte = 5
	MiniRoomChat          byte = 6
	MiniRoomAvatar        byte = 9
	MiniRoomLeave         byte = 10
	MiniRoomOpen          byte = 11

	MiniRoomTradePutItem  byte = 13
	MiniRoomTradePutMesos byte = 14
	MiniRoomTradeAccept   byte = 15

	MiniRoomAddShopItem          byte = 18
	MiniRoomBuyShopItem          byte = 19
	MiniRoomPlayerShopItemResult byte = 0x14
	MiniRoomPlayerShopSoldItem   byte = 0x16
	MiniRoomMoveItemShopToInv    byte = 23
)
View Source
const (
	MiniRoomTypeNone          byte = 0
	MiniRoomTypeOmok          byte = 1
	MiniRoomTypeMatchCards    byte = 2
	MiniRoomTypeTrade         byte = 3
	MiniRoomTypePlayerShop    byte = 4
	MiniRoomTypeEntrustedShop byte = 5
)
View Source
const (
	MiniRoomEnterRoomAlreadyClosed     byte = 0x01
	MiniRoomEnterFullCapacity          byte = 0x02
	MiniRoomEnterOtherRequests         byte = 0x03
	MiniRoomEnterCantWhileDead         byte = 0x04
	MiniRoomEnterCantInMiddleEvent     byte = 0x05
	MiniRoomEnterUnableToDoIt          byte = 0x06
	MiniRoomEnterOtherItemsAtPoint     byte = 0x07
	MiniRoomEnterCantEstablishRoom     byte = 0x0A
	MiniRoomEnterTradeOnSameMap        byte = 0x09
	MiniRoomEnterNotEnoughMesos        byte = 0x0F
	MiniRoomEnterCantStartGameHere     byte = 0x0B
	MiniRoomEnterBuiltAtMainTown       byte = 0x0C
	MiniRoomEnterUnableEnterTournament byte = 0x0D
	MiniRoomEnterIncorrectPassword     byte = 0x10
)
View Source
const (
	PlayerShopNotEnoughInStock       byte = 1
	PlayerShopNotEnoughMesos         byte = 2
	PlayerShopPriceTooHighForTrade   byte = 3
	PlayerShopBuyerNotEnoughMoney    byte = 4
	PlayerShopCannotCarryMoreThanOne byte = 5
	PlayerShopInventoryFull          byte = 6
)
View Source
const (
	MiniRoomLeaveReason          byte = 0
	MiniRoomCantEstablish        byte = 1
	MiniRoomCancel               byte = 2
	MiniRoomClosed               byte = 3
	MiniRoomExpelled             byte = 4
	MiniRoomForcedLeave          byte = 5
	MiniRoomTradeSuccess         byte = 6
	MiniRoomTradeFail            byte = 7
	MiniRoomTradeInventoryFull   byte = 8
	MiniRoomTradeWrongMap        byte = 9
	MiniRoomPlayerShopOutOfStock byte = 10
)
View Source
const (
	GameWin     byte = 0
	GameTie     byte = 1
	GameForfeit byte = 2
)
View Source
const (
	MatchCardsSizeSmall  byte = 0
	MatchCardsSizeMedium byte = 1
	MatchCardsSizeLarge  byte = 2
)
View Source
const (
	RoomMaxPlayers = 2

	OmokBoardSize = 15

	MatchCardsPairsSmall  = 6
	MatchCardsPairsMedium = 10
	MatchCardsPairsLarge  = 15

	RoomOwnerSlot = 0
	RoomGuestSlot = 1

	RoomLeaveTradeCancelled    = 0x02
	RoomYellowChatExpelled     = 0
	RoomYellowChatMatchedCards = 9
	RoomChatTypeChat           = 8
	RoomChatTypeNotice         = 7
	RoomPacketShowWindow       = 0x05
	RoomPacketJoin             = 0x04
	RoomPacketLeave            = 0x0A
	RoomEnterClosed            = 0x01
	RoomEnterFull              = 0x02
	RoomEnterBusy              = 0x03
	RoomEnterNotAllowedDead    = 0x04
	RoomEnterNotAllowedEvent   = 0x05
	RoomEnterThisCharNotAllow  = 0x06
	RoomEnterNoTradeATM        = 0x07
	RoomEnterTradeSameMap      = 0x09
	RoomEnterCannotCreateHere  = 0x0A
	RoomEnterCannotStartHere   = 0x0B
	RoomEnterStoreFMOnly       = 0x0C
	RoomEnterGarbageFloorFM    = 0x0D
	RoomEnterMayNotEnterStore  = 0x0E
	RoomEnterStoreMaint        = 0x0F
	RoomEnterGarbageTradeMsg   = 0x11
	RoomPacketInvite           = 0x02
	RoomPacketInviteResult     = 0x03
	RoomPacketShowAccept       = 0x0F
	RoomPacketMemoryStart      = 0x0C

	RoomRequestTie            byte = 42
	RoomRequestTieResult      byte = 43
	RoomForfeit               byte = 44
	RoomRequestUndo           byte = 46
	RoomRequestUndoResult     byte = 47
	RoomRequestExitDuringGame byte = 48
	RoomUndoRequestExit       byte = 49
	RoomReadyButtonPressed    byte = 50
	RoomUnready               byte = 51
	RoomOwnerExpell           byte = 52
	RoomGameStart             byte = 53
	RoomGameResult            byte = 54
	RoomChangeTurn            byte = 55
	RoomPlacePiece            byte = 56
	RoomInvalidPlace          byte = 57
	RoomSelectCard            byte = 60
)
View Source
const (
	// Broadcast message types
	BroadcastNotice         byte = 0x00 // Blue text no highlight
	BroadcastPopupBox       byte = 0x01 // Pop-up text window
	BroadcastMegaphone      byte = 0x02 // Blue text with highlight
	BroadcastSuperMegaphone byte = 0x03 // Red text with bright pink highlight
	BroadcastHeader         byte = 0x04 // Scrolling header
	BroadcastRedText        byte = 0x05 // Red text with no highlight
	BroadcastBlue           byte = 0x06 // Blue text without [Notice]
)
View Source
const (
	ItemMesoMagnet        = 1812000
	ItemItemPouch         = 1812001
	ItemRegTeleportRock   = 5040000
	ItemVIPTeleportRock   = 5041000
	ItemAPReset           = 5050000
	ItemSPResetFirstJob   = 5050001
	ItemSPResetSecondJob  = 5050002
	ItemSPResetThirdJob   = 5050003
	ItemMegaphone         = 5071000
	ItemSuperMegaphone    = 5072000
	ItemHeartSMegaphone   = 5073000
	ItemSkullSMegaphone   = 5074000
	ItemWeatherSnow       = 5120000
	ItemWeatherFlowers    = 5120001
	ItemWeatherSoap       = 5120002
	ItemWeatherSnowFlakes = 5120003
	ItemWeatherPresents   = 5120004
	ItemWeatherChocolate  = 5120005
	ItemWeatherFlower     = 5120006
	ItemWeatherCandy      = 5120007
	ItemWeatherLeaves     = 5120008
	ItemWeatherFireworks  = 5120009
	ItemSafetyCharm       = 5130000
	ItemPetNameTag        = 5170000
	ItemWaterOfLife       = 5180000
)
View Source
const (
	TeleportRockRegSlots      = 5    // Regular teleport rocks have 5 slots
	TeleportRockVIPSlots      = 10   // VIP teleport rocks have 10 slots
	TeleportRockVIPFlag  byte = 0x01 // VIP flag in packet
	TeleportRockRegFlag  byte = 0x00 // Regular flag in packet
	TeleportRockModeAdd  byte = 0x03 // Server response mode for add
	TeleportRockModeDel  byte = 0x02 // Server response mode for delete
)

Teleport rock constants

View Source
const (
	LoginResultSuccess           byte = 0x00
	LoginResultBanned            byte = 0x02
	LoginResultDeletedOrBlocked  byte = 0x03
	LoginResultInvalidPassword   byte = 0x04
	LoginResultNotRegistered     byte = 0x05
	LoginResultSystemError       byte = 0x06
	LoginResultAlreadyOnline     byte = 0x07
	LoginResultSystemError9      byte = 0x09
	LoginResultTooManyRequests   byte = 0x0A
	LoginResultOlderThan20       byte = 0x0B
	LoginResultValidLogin        byte = 0x0C
	LoginResultMasterCannotLogin byte = 0x0D
	LoginResultWrongGatewayKR    byte = 0x0E
	LoginResultProcessingKR      byte = 0x0F
	LoginResultVerifyEmail       byte = 0x10
	LoginResultGatewayEN         byte = 0x17
	LoginResultVerifyEmail21     byte = 0x15
	LoginResultEULA              byte = 0x17
)

Login result codes

View Source
const (
	AutoRegisterDefaultGender      byte   = 0
	AutoRegisterDefaultDOB         int    = 11111111
	AutoRegisterDefaultEULA        byte   = 0
	AutoRegisterDefaultAdminLevel  int    = 0
	AutoRegisterDefaultIsBanned    int    = 0
	AutoRegisterDefaultNX          int    = 0
	AutoRegisterDefaultMaplePoints int    = 0
	AutoRegisterDefaultIsLoggedIn  int    = 0
	AutoRegisterDefaultPIN         string = "1111"
)

Auto-registration default values

View Source
const (
	MobSummonTypeFake     int8 = -4
	MobSummonTypeRevive   int8 = -3
	MobSummonTypeRegen    int8 = -2
	MobSummonTypeInstant  int8 = -1
	MobSummonTypeJrBalrog int8 = 0
	MobSummonTypePoof     int8 = 1
)
View Source
const (
	MobBalrog         int32 = 8130100
	MobCrimsonBalrog  int32 = 8150000
	MobPapalatusBall  int32 = 8500000
	MobPapalatus      int32 = 8500001
	MobPapalatusClock int32 = 8500002
	MobPianus         int32 = 8520000
	MobPianusAlt      int32 = 8510000
	MobMushmom        int32 = 6130101
	MobZombieMushmom  int32 = 6300005
	MobZakumArm1      int32 = 8800003
	MobZakumArm2      int32 = 8800004
	MobZakumArm3      int32 = 8800005
	MobZakumArm4      int32 = 8800006
	MobZakumArm5      int32 = 8800007
	MobZakumArm6      int32 = 8800008
	MobZakumArm7      int32 = 8800009
	MobZakumArm8      int32 = 8800010
	MobZakum1Body     int32 = 8800000
	MobZakum2Body     int32 = 8800001
	MobZakum3Body     int32 = 8800002
)
View Source
const (
	MapFreeMarket          int32 = 910000000
	MapBossPapulatus       int32 = 220080001
	MapBossPapulatusReturn int32 = 220080000
	MapBossPianus          int32 = 230040420
	MapBossZakum           int32 = 280030000
	MapBossZakumReturn     int32 = 211042300
	MapKerningPQ           int32 = 103000800
	MapLudiPQ              int32 = 922010100

	// Invalid map ID used for portal removal
	InvalidMap int32 = 999999999

	MapStationEllinia             int32 = 101000300
	MapStationOrbis               int32 = 200000100
	MapStationOrbisEllinaPlatform int32 = 200000111
	MapStationOrbisLudiPlatform   int32 = 200000121
	MapStationLudi                int32 = 220000100
	MapStationLudiOrbisPlatform   int32 = 220000110

	MapBoatElliniaDeparture   int32 = 101000301
	MapBoatElliniaFlight      int32 = 200090010
	MapBoatElliniaFlightCabin int32 = 200090011

	MapBoatOrbisElliniaDeparture   int32 = 200000112
	MapBoatOrbisElliniaFlight      int32 = 200090000
	MapBoatOrbisElliniaFlightCabin int32 = 200090001

	MapBoatOrbisLudiDeparture int32 = 200000122
	MapBoatOrbisLudiFlight    int32 = 200090100

	MapBoatLudiDeparture int32 = 220000111
	MapBoatLudiFlight    int32 = 200090110
)
View Source
const (
	PortalFreeMarketEnter = "market00"
	PortalFreeMarketLeave = "out00"
	PortalPapulatus       = "in00"
	PortalPianus          = "boss00"
	PortalZakum           = "ps00"
)
View Source
const (
	CashShopNX          byte = 0x00
	CashShopMaplePoints byte = 0x01

	CashShopErrorUnknown                            byte = 0x00
	CashShopErrorUnknownDC1                         byte = 80
	CashShopErrorTimeRanOutTryAgain                 byte = 81
	CashShopErrorUnknownDC2                         byte = 82
	CashShopErrorNotEnoughCash                      byte = 83
	CashShopErrorCantGiftUnder14                    byte = 84
	CashShopErrorExceededGiftPriceLimit             byte = 85
	CashShopErrorExceededNumberOfCashItems          byte = 86
	CashShopErrorCheckNameOrGenderRestrictions      byte = 87
	CashShopErrorCheckCouponNumber                  byte = 88
	CashShopErrorRegisterCouponAtWebsite            byte = 91
	CashShopErrorGenderRestrictionCoupon            byte = 92
	CashShopErrorCouponOnlyForRegularItemsNoGifting byte = 93
	CashShopErrorCheckFullInventory                 byte = 94
	CashShopErrorPremiumInternetCafeOnly            byte = 95
	CashShopErrorIneligibleRecipientNameOrGender    byte = 96
	CashShopErrorItemsNotAvailableAtThisHour        byte = 97
	CashShopErrorOutOfStock                         byte = 98
	CashShopErrorExceededSpendingLimit              byte = 99
	CashShopErrorNotEnoughMesos                     byte = 100
	CashShopErrorUnavailableDuringBeta              byte = 101
	CashShopErrorInvalidDateOfBirth                 byte = 102
)
View Source
const (
	InventoryEquip = 1
	InventoryUse   = 2
	InventorySetup = 3
	InventoryEtc   = 4
	InventoryCash  = 5

	InventoryBaseSlotSize = 24
	InventoryMaxSlotSize  = 255
)
View Source
const (
	PortalDeath  int32 = 0
	PortalNormal int32 = -1
)
View Source
const (
	TeleportToName = 0x01
)

Variables

View Source
var ExpTable = [...]int32{}/* 200 elements not displayed */
View Source
var WORLD_NAMES = [...]string{"Scania", "Bera", "Broa", "Windia", "Khaini", "Bellocan", "Mardia", "Kradia", "Yellonde", "Demethos", "Galicia", "El Nido", "Zenith", "Arcania", "Chaos", "Nova", "Renegates"}

Functions

This section is empty.

Types

type CureFlag

type CureFlag int16

CureFlag represents flags for debuffs that can be cured by items

const (
	CurePoison   CureFlag = 0x1
	CureWeakness CureFlag = 0x2
	CureCurse    CureFlag = 0x4
	CureDarkness CureFlag = 0x8
	CureSeal     CureFlag = 0x10
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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