From The Mana World
< User:Jaxad0127
Revision as of 18:48, 24 March 2009 by Jaxad0127 (talk | contribs) (Add remaining functions our eA supports)

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()
  • Quit()

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

Guild

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

Storage

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

"Cart"

  • Put(slotId, ammount)
  • Remove(slotId, ammount)
  • Change(...)

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?
  • sn_explosionspirits