mirror of
https://github.com/CPunch/gopenfusion.git
synced 2024-11-24 16:11:04 +00:00
updated README
This commit is contained in:
parent
5c7b9bf9fb
commit
bf1e9d1350
@ -2,6 +2,10 @@
|
||||
|
||||
A toy implementation of the [Fusionfall Packet Protocol](https://openpunk.com/pages/fusionfall-openfusion/) written in Go.
|
||||
|
||||
## Login Sever
|
||||
|
||||
An example login server implementation exists in `server/`. This implementation should be compatible with existing OpenFusion databases, however this only exists as an example and doesn't direct clients to a shard server (they're softlocked after the tutorial, or during character selection).
|
||||
|
||||
## Generating structures
|
||||
|
||||
Dump and decompile the `Assembly - CSharp.dll` assembly from the fusionfall main.unity3d, using a tool like [ilspycmd](https://www.nuget.org/packages/ilspycmd/). The full output source can then be passed to `genstructs.py` script located in `tools/`, which will handle scraping constants and calculating structure padding. See the script for details on usage.
|
@ -211,7 +211,7 @@ func (server *LoginServer) CharacterCreate(peer *Peer, pkt *protocol.Packet) {
|
||||
ILevel: int16(plr.Level),
|
||||
SPC_Style: PCStyle,
|
||||
SPC_Style2: PCStyle2,
|
||||
SOn_Item: charPkt.SOn_Item, // if the items were faked, we don't really care since the db only stores the sanitized fields
|
||||
SOn_Item: charPkt.SOn_Item, // if items were faked, we don't really care since the db only stores the sanitized fields
|
||||
}, protocol.P_LS2CL_REP_CHAR_CREATE_SUCC)
|
||||
}
|
||||
|
||||
|
@ -9,9 +9,9 @@ import (
|
||||
)
|
||||
|
||||
type LoginServer struct {
|
||||
listener net.Listener
|
||||
peers map[*Peer]bool
|
||||
lock sync.Mutex
|
||||
listener net.Listener
|
||||
peers map[*Peer]bool
|
||||
peersLock sync.Mutex
|
||||
}
|
||||
|
||||
func NewLoginServer() *LoginServer {
|
||||
@ -78,13 +78,13 @@ func (server *LoginServer) HandlePacket(peer *Peer, typeID uint32, pkt *protocol
|
||||
}
|
||||
|
||||
func (server *LoginServer) Disconnect(peer *Peer) {
|
||||
server.lock.Lock()
|
||||
server.peersLock.Lock()
|
||||
delete(server.peers, peer)
|
||||
server.lock.Unlock()
|
||||
server.peersLock.Unlock()
|
||||
}
|
||||
|
||||
func (server *LoginServer) Connect(peer *Peer) {
|
||||
server.lock.Lock()
|
||||
server.peersLock.Lock()
|
||||
server.peers[peer] = true
|
||||
server.lock.Unlock()
|
||||
server.peersLock.Unlock()
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user