From The Mana World
m (add some stuff) |
m (Increase/DecreaseStat -> Increase/DecreaseAttribute) |
||
(9 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
This is my plan for centralizing the net code under the merged client. | 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 | |||
*Login | *Load | ||
*Char | *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) | ||
*Chat | *Unload | ||
* | |||
*Player | Login | ||
* | *Login(username, password) | ||
** | *Logout() (TMWServ protocol detail?) | ||
** | *ChangeEmail(email) | ||
*NPC | *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) | ||
**Use | *DeleteChar(number) (conformation, which is technically needed by eAthena, can be done here using a dialog that calls a back end specific function) | ||
Chat | |||
**AddItem | *Connect() (TMWServ protocol detail) | ||
*Logout() (TMWServ protocol detail) | |||
*Talk(text) | |||
*Me(text) | |||
*PrivateMsg(recipient, text) | |||
*ChannelList() | |||
*EnterChannel(channelId, password) | |||
*QuitChannel(channelId) | |||
** | *SendToChannel(channelId, text) | ||
**Leave | *UserList(channelName) | ||
*SetChannelTopic(channelId, text) | |||
** | *SetUserMode(channelId, name, mode) | ||
*Guild | *KickUser(channelId, name) | ||
Map | |||
** | *Connect() | ||
* | *MapLoaded() (eAthena protocol detail?) | ||
** | *ClientPing(time) (eAthena protocol detail?) | ||
** | *CharNameRequest(beingId) (eAthena protocol detail) | ||
** | *Who() | ||
* | *Quit() | ||
** | Player | ||
**Kick | *Attack(being) | ||
**Ban | *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 |
Latest revision as of 19:51, 14 July 2009
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