User:Jaxad0127/Net

From The Mana World

This is my plan for centralizing the net code under the merged client.

A new Net namespace with functions for returning the handlers described below.

ex: to use emote 1:

Net::getPlayerHandler()->emote(1);

General

  • Load
  • GuiWindowsLoaded (tells the netstack when it can start adding the hooks it needs in the GUI, like adding eAthena's party chat tab or changing the contents of the menu bar)
  • Unload

Login

  • Login(username, password)
  • Logout() (TMWServ protocol detail?)
  • ChangeEmail(email)
  • ChangePassword(username, oldPassword, newPassword)
  • ChooseServer(serverId)
  • Register(username, password, email)
  • Unregister(username, password)

Char

  • Connect() (eAthena protocol detail)
  • ChooseChar(number)
  • NewChar(name, gender, hairstyle, hair color) (more info can be done by calling the needed dialog and having it call a back end specific function)
  • DeleteChar(number) (conformation, which is technically needed by eAthena, can be done here using a dialog that calls a back end specific function)

Chat

  • Connect() (TMWServ protocol detail)
  • Logout() (TMWServ protocol detail)
  • Talk(text)
  • Me(text)
  • PrivateMsg(recipient, text)
  • ChannelList()
  • EnterChannel(channelId, password)
  • QuitChannel(channelId)
  • SendToChannel(channelId, text)
  • UserList(channelName)
  • SetChannelTopic(channelId, text)
  • SetUserMode(channelId, name, mode)
  • KickUser(channelId, name)

Map

  • Connect()
  • MapLoaded() (eAthena protocol detail?)
  • ClientPing(time) (eAthena protocol detail?)
  • CharNameRequest(beingId) (eAthena protocol detail)
  • Who()
  • Quit()

Player

  • Attack(being)
  • Emote(emoteId)
  • IncreaseAttribute(statId)
  • IncreaseAttribute(statId)
  • IncreaseSkill(skillId)
  • PickUp(floorItem)
  • SetDirection(direction)
  • SetDestination(x, y, direction)
  • Sit()
  • Respawn()
  • IgnorePlayer(player, ignore)
  • IgnoreAll(ignore)

Inventory

  • EquipItem(Item)
  • UnEquipItem(Item)
  • UseItem(slotNum, Item)
  • Drop(slotNum, amount)
  • Split(slotNum, amount)
  • OpenStorage()
  • CloseStorage()
  • ChangeCart(...)
  • MoveItem(source, slotId, amount, destination) (handles item movement between inventory, storage, cart, ...)

NPC

  • Talk(npcId)
  • NextDialog(npcId)
  • CloseDialog(npcId)
  • ListInput(npcId, value)
  • IntegerInput(npcId, value)
  • StringIntput(npcId, value)
  • SendLetter(npcId, recipient, text)
  • StartShoping(beingId)
  • Buy(beingId)
  • Sell(beingId)
  • BuyItem(beingId, itemId, ammount)
  • SellItem(beingId, itemId, ammount)
  • EndShoping(beingId)

Special

  • Use(id)
  • Use(id, level, target)
  • Use(id, level, x, y)
  • Use(id, map)

Trade

  • Request(beingId)
  • Respond(accept)
  • AddItem(slotNum, ammount)
  • RemoveItem(slotNum, ammount)
  • SetMoney(ammount)
  • Confirm() (eAthena trade complete)
  • Finish() (eAthena trade OK)
  • Cancel()

Party

  • Create()
  • Join(partyId)
  • Invite(playerId)
  • InviteResponse(requestId?, response)
  • Leave()
  • Kick(playerId)
  • Chat(text)
  • PartyMembers()
  • Options(...)
  • Message(...)

Guild

  • Create()
  • Join(guildId)
  • Invite(playerId)
  • InviteResponse(requestId?, response)
  • Leave()
  • Kick(playerId)
  • Chat(text)
  • MemberList(guildId)
  • ChangeMemberPosition(guildId, ...)
  • RequestAlliance(guildid, ...)
  • RequestAllianceReply(guildId, response, ...)
  • EndAlliance(guildid, ...)

Admin/GM

  • Announce(text)
  • LocalAnnounce(text)
  • Hide(hide)
  • Kick(id)
  • Kick(name)
  • Ban(id)
  • Ban(name)
  • MutePlayer(playerId, type, limit)
  • ResetPlayer(...)
  • WarpToPlayer(...)
  • RecallPlayer(...)
  • SpawnMonster(...)
  • CreateItem(...)
  • ...
  • GMCommand(...)?

Unsorted eAthena (names from parse function names)

  • RemoveOption
  • GuildCheckMaster
  • GuildRequestInfo
  • GuildRequestEmblem
  • GuildChangeEmplem
  • GuildBreak
  • GuildChangePositionInfo
  • GuildChangeNotice
  • ItemIdentify
  • UseCard
  • InsertCard
  • GuildOpposition
  • SolveCharName
  • AutoSpell
  • GMReqNoChatCount
  • sn_doridori
  • CreateParty2 (same as CreateParty in our eAthena)
  • sn_explosionspirits