From The Mana World
m (add () for public functions and add setDirection)
m (Add more eAthena functions)
Line 12: Line 12:


Char
Char
*Connect(...)
*ChooseChar(number)
*ChooseChar(number)
*NewChar(...)
*NewChar(...)
*DeleteChar(number, ...)
*DeleteChar(number, ...)
*Who()


Chat
Chat
*Connect(...)?
*Talk(text)
*Talk(text)
*Me(text)
*Me(text)
Line 23: Line 24:


Map
Map
*Connect(...)
*MapLoaded(mapName?)
*MapLoaded(mapName?)
*ClientPing(time)
*ClientPing(time)
*Who()


Being
Being
Line 43: Line 46:
*Sit()
*Sit()
*Respawn()
*Respawn()
*IgnorePlayer(playerID, ignore)
*IgnoreAll(ignore)


Inventory
Inventory
Line 69: Line 74:
Skill
Skill
*Up(skillId)
*Up(skillId)
*Use(skillId)
*Use(skillId, level, target)
*Use(skillId, level, x, y)


Trade
Trade
*Request(beingId)
*Request(beingId)
*Respond(accept)
*AddItem(slotNum, ammount)
*AddItem(slotNum, ammount)
*RemoveItem(slotNum, ammount)
*RemoveItem(slotNum, ammount)
Line 88: Line 95:
*Kick(playerId)
*Kick(playerId)
*Chat(text)
*Chat(text)
*Settings?
*Options(...)
*Message(...)


Guild
Guild
Line 112: Line 120:
*Ban(name)
*Ban(name)
*...
*...
*GMCommand(...)?

Revision as of 17:56, 24 March 2009

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

First, TMWServ's Net namespace needs to be changed (I vote for TMWserv as the new name). Then a new Net namespace would be created to store references to the specific network back-end needed.

Here are the functions the generic back end needs (organized by type)

Login

  • Login(...)
  • ChangeEmail(...)
  • ChangePassword(...)
  • ChooseServer(serverId)

Char

  • Connect(...)
  • ChooseChar(number)
  • NewChar(...)
  • DeleteChar(number, ...)

Chat

  • Connect(...)?
  • Talk(text)
  • Me(text)
  • Msg(recipient, text)

Map

  • Connect(...)
  • MapLoaded(mapName?)
  • ClientPing(time)
  • Who()

Being

  • Attack(beingId)
  • CharNameRequest - eAthena netcode detail (not public)

Player

  • (anything?)

LocalPlayer

  • Emote(emoteId)
  • IncStat(statId)
  • DecStat(statId)
  • SendLetter(recipient, text)
  • PickUp(floorItemId)
  • SetDirection(direction)
  • SetDestination(x, y, direction)
  • Sit()
  • Respawn()
  • IgnorePlayer(playerID, ignore)
  • IgnoreAll(ignore)

Inventory

  • EquipItem(Item)
  • UnEquipItem(Item)
  • UseItem(Item)
  • Drop(slotNum, ammount)
  • Split(slotNum, ammount)

NPC

  • Talk(npcId)
  • NextDialog(npcId)
  • CloseDialog(npcId)
  • ListInput(npcId, value)
  • IntegerInput(npcId, value)
  • StringIntput(npcId, value)

Shop

  • Start(beingId)
  • Buy(beingId)
  • Sell(beingId)
  • BuyItem(beingId, itemId, ammount)
  • SellItem(beingId, itemId, ammount)
  • End(beingId)

Skill

  • Up(skillId)
  • Use(skillId, level, target)
  • Use(skillId, level, x, y)

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)
  • Options(...)
  • Message(...)

Guild

  • Create()
  • Join(guildId)
  • Invite(playerId)
  • InviteResponse(requestId?, response)
  • Leave()
  • Kick(playerId)
  • Chat(text)

Storage

  • Open()
  • Close()
  • Store(slotId, ammount)
  • Retrieve(slotId, ammount)

Admin/GM

  • Announce(text)
  • Kick(id)
  • Kick(name)
  • Ban(id)
  • Ban(name)
  • ...
  • GMCommand(...)?