Giter VIP home page Giter VIP logo

feather_server's People

Contributors

blackphreak avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

feather_server's Issues

Rewrite PacketEncoder

[Not yet complete, wait until I have time to finish this thought ^_^ @ 2020-May-11 19:11 UTC+8]
To enhance the PacketEncoder efficiency and to provide packets sync to web packet parser
(pktParser), I have the following ideas:

  1. Rewrite PacketEncoder with memory stream
    • MemoryStream (ref: stackoverflow)
    • Add functions to append (/build/concat) packet to MemoryStream
  2. Write parser to parse packets from PacketEncoder from c# -> to WebPacketParser
    (additional info can be written using comment after each data in packet)
    Longer packet header must be placed at the beginning of the key-value database
    (Detail will be listed on 2nd floor of this thread)

Additional enhancement for parser:

  • Identify the format string format [See: Issues 17]
  • Auto gen _pkt.js after git push

Figure out the format string symbols

Current findings:
|: FS title, col1 ->> not sure
^: NPC name2, col2 ->> not sure
@: NPC name, col1 ->> not sure, NPC blue name?

Confirmed:y.

$: direct value (can be an int, can be a string)
||||: name newline

Capture & Analyze Skill Learning Packet

升技 (lv1 -> 2, xp: -40)
0d3d 28 0000 3e000000 8d 00000000
1353 30c807 0002000000000000000030c8070000
0737 76c807 000000
0737 6cc807 000000
0737 62c807 000000
0737 58c807 000000
0737 4ec807 000000
0737 44c807 000000
0737 3ac807 000000
2150 3ac807 000300000001000000000000000091b00a0064 3ac80700 64 0100000000
0e64 3ac807 0006000002020a050000
1c50 44c807 00000000000100000000000000006acb10006444c8070000
1c50 4ec807 00000000000100000000000000006acb1000644ec8070000
1c50 58c807 00000000000100000000000000006acb10006458c8070000
1c50 62c807 00000000000100000000000000006acb10006462c8070000
1c50 6cc807 00000000000100000000000000006acb1000646cc8070000
1c50 76c807 00000000000100000000000000006acb10006476c8070000
115d01be0a0000 64 30c807 00 64 02 000000 00 // new lv

升技 (lv1 -> 2, xp: -40) -- skill set: 94c807 (0x07C894)
0d3d 28 0000 3e000000 65 00000000
1353 94c807 00020000000000000000 94c807 0000
0737 bcc807 000000
0737 b2c807 000000
0737 a8c807 000000
0737 9ec807 000000
1c50 9ec807 00000000000100000000000000006acb1000649ec8070000
1c50 a8c807 00000000000100000000000000006acb100064a8c8070000
1c50 b2c807 00000000000100000000000000006acb100064b2c8070000
1c50 bcc807 00000000000100000000000000006acb100064bcc8070000
073d 177500000000
115d01be0a0000 64 94c807 00 64 02 00000000 // new lv

10 exp
1c 43 00 0a000000 009c08000064812700007306000000ccf0ccf0b5c400000000
升技 (lv2 -> 3, xp: -61) -- skill set: 94c807 (0x07C894)
0d3d 28 0000 4e000000 38 00000000
1353 94c807 00030000000000000000 94c807 0000
0737 bcc807 000000
1c50 bcc807 0000000000010000000000000000 6acb1000 64 bcc8070000
0737 b2c807 000000
1c50 b2c807 0000000000010000000000000000 6acb1000 64 b2c8070000
0737 a8c807 000000
1c50 a8c807 0000000000010000000000000000 6acb1000 64 a8c8070000
0737 9ec807 000000
1c50 9ec807 0000000000010000000000000000 6acb1000 64 9ec8070000
073d 177700000000
115d01be0a0000 64 94c807 00 64 03 00000000

升技 (lv3 -> 4, xp: -8_) -- skill set: 94c807 (0x07C894)
0d3d 28 0000 ed000000 82 00000000
1353 94c807 00 04 0000000000000000 94c8070000
0737bcc807000000
0737b2c807000000
0737a8c807000000
07379ec807000000
1c509ec8070000000000010000000000000000 6acb1000 64 9ec80700 00
1c50a8c8070000000000010000000000000000 6acb1000 64 a8c80700 00
1c50b2c8070000000000010000000000000000 6acb1000 64 b2c80700 00
1c50bcc8070000000000010000000000000000 6acb1000 64 bcc80700 00
073d 177900000000
115d01be0a0000 64 94c807 00 64 04 00000000

升技 (lv4 -> 5, xp: -1__) -- skill set: 94c807 (0x07C894)
0d3d 28 0000 ed000000 0d 00000000
1353 94c807 00 05 0000000000000000 94c807 0000
0737bcc807000000
0737b2c807000000
0737a8c807000000
07379ec807000000
21509ec8070001000000140000000000000000 91b00a00 64 9ec80700 64 01000000000e649ec807000a0001015e00090000 // new skill unlocked
1c50a8c8070000000000010000000000000000 6acb1000 64 a8c80700 00
1c50b2c8070000000000010000000000000000 6acb1000 64 b2c80700 00
1c50bcc8070000000000010000000000000000 6acb1000 64 bcc80700 00
073d 177b00000000
08b902019ec8070000
115d01be0a0000 64 94c807 00 64 05 00000000

Re-confirm/Capture Packets

Packets that we need to confirm

Packets in this section are needed to re-confirm the structure
Format:

[<packet delimeter>]: <desc of the packet>
[additional desc of the packet, e.g.: where it can be found, how to trigger this packet]
  • [b9a2??]: Update Player Act?
    • Trigger: SHIFT + Left Click (known as updating facing)
    • sometimes it works, maybe need some kind of combination?
  • ... TODO: add more ...

Packets that we want

Packets in this section are needed to capture from the official server
Format:
<desc of the packet ..., e.g.: where it can be found, how to trigger this packet>

  • Teacher NPC
    • Show teacher list's GUI
    • Teacher info on the teacher GUI (list item)
  • Pet NPC
    • Show pet warehouse GUI
    • Show pet training GUI
    • Info of the training pet on the training GUI
  • ... TODO: add more ...

Send message when a Hero is currently logged-in

1a_3e_01_1f_0f_00_00_73_0e_00_00_00_00

3871 +C0xff0000-C有人在 =C+C0x7f0000-C $1 =C+C0xff0000-C用您的帐号,您将他赶出了遊戏。=C 3872 +C0xff0000-C有人在 =C+C0x7f0000-C $1 =C+C0xff0000-C用您的帐号,将您 $2 赶出了遊戏。=C

Player Act is not actually the real ACT

As stated, the Player.act is not the real act with PacketEncoder.playerAct. Instead, seems Player.act is confused with PacketEncoder.playerUpdateState & PacketEncoder.spawnHero. (?)

Need to figure out which is which.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.