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