From The Mana World
Notes for implementing special actions like special attacks, magic or other special actions a player character can perform (emoticons?).
specials.xml
An XML file which maps special action ids to corresponding client-sided effects (particle, sound, sprite animation etc.) and server-sided effects (execute script, inflict damage in an area).
<specials> <action id="1"> <particlefx>graphics/particles/heal.particle.xml</particlefx> <soundfx>sounds/heal.ogg</soundfx> <saytext>HEAL!!</saytext> <gameeffect area="point" position-forward="32" position-sideways="0" effect-type="heal" effect-factor="10" /> </action> <action id="2"> <particlefx>graphics/particles/firebolt.particle.xml</particlefx> <soundfx>sounds/fire.ogg</soundfx> <saytext>FIREBOLT!!</saytext> <gameeffect area="projectile" range="256" effect-type="damage" effect-element="fire" effect-factor="5" /> </action> </specials>
Protocol:
- Client sends PGMSG_ATTACK B direction W type ("type" is the ID number of the special attack. No number is interpreted as a normal attack)
- Server checks if the character may perform this special action right now.
- If yes the server does whatever the special action requires it to do (damage beings in attack zone or whatever)
- Server sends GPMSG_BEING_ATTACK W being id, B direction, W type to all clients nearby
- Clients respond with displaying the corresponding effects
Hi Crush, I can see you change a bit the protocol in here: In those, I can see you're making the client send the direction, which remains to be dicussed. I can also see that the packets PGMSG_USE_SPECIAL and GPMSG_SPECIAL_STATUS were added. So, which modifications will prevail? Best regards. Bertramk, 2 august 2010