Jump to content
  • 0
ecrow

Developmet Files & Tools

Question

Would the Hercules team have a list of files & tools they use with their development? Such as simulators, dummy data for the database, packet replays, etc?

 

I'm working on getting a decent setup for source modification and testing. It would definitely be helpful to be aware of these, if in existence.

 

Much appreciated-

Share this post


Link to post
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Well for Scripting I use NPC Editor (it has a Syntax check so you can see if the script works without loading the map-server)

Share this post


Link to post
Share on other sites
  • 0

Thank you! That is useful. Is there a list of tools and their related links similar to this?

I'm also looking a bit on the c development side - perhaps files that will populate my database with ideal data so I don't have to create it myself.

Share this post


Link to post
Share on other sites
  • 0

Mhh I think there are several tools. For scripting I still prefer np++ with a custom syntax highlighter.

I think many databastools doesn't work atm due to the recent changes of db structures and libconfig format.

Replays I most check on divine pride or do them by myself. 4144 has a public packet comparing repo on gitlab (don't have the link on my phone)

Haru provides a script checker here http://haru.ws/scriptchecker/ but it is compiled to pre-renewal

Maybe one of our core devs can answer the remaining questions

Share this post


Link to post
Share on other sites
  • 0

We don't really have any archive of actual Ragnarok database data (it's quite unfortunate, yep). Since many Hercules developers have/had access/owned a private server at some point in our life, we have some private samples we can use for tests. I generally use a clean database though.

 

As for packet replays, it depends on what you're working on. I either gather it myself from official servers, if it's something I can access, or ask others if they can record something... There are also some packet structure/length tables available, and most stuff we implement comes from those (followed by test s with the actual client, where possible) - you can find some packet information here http://herc.ws/wiki/Packets (and if you google for some of those IDs, you can likely find more)

 

You can find various more or less useful tools around the Downloads area (http://herc.ws/board/files/) and the Support&Releases area (http://herc.ws/board/forum/13-support-releases/), but there isn't very much tailored to source development. My main friends are vim and the dozen of general purpose vim plugins I use, along with a gcc-compatible compiler and the almighty Z-shell. For in-game testing, I tend to either download a pre-hexed client if I'm testing a specific version that I haven't made on my own, or download a clean one and hex it with NEMO. That goes on a case by case basis

 

Probably not the kind of answer you expected, but I guess this is it at least for me

Share this post


Link to post
Share on other sites
  • 0

Hey Ridley, What is divine pride and how do you use it? Also, let me know when your able to send me the link to that public packet comparing repo. Sounds interesting! You might have to help me capture some packets, too. If you're able.

 

Haru, That packet information on the wiki is definitely helpful. Thank you for that! Would you also be willing to share your vim configurations & plugins? Would be cool if someone has keyword highlighting for herc scripts in vim.

 

Also what's the story on HMP Hooks dependency on Doxygen? I saw that in the README and found it a bit peculiar.

Edited by ecrow

Share this post


Link to post
Share on other sites
  • 0

Doxygen is a developer-only dependency. We use it (check the 'hooks' target in the top directory Makefile) only to re-generate the HPM Hooking definitions and the HPMDataCheck definitions. That operation is only needed when you edit something in the interfaces (and it's generally not needed to do manually if you push code to the repository or make a pull request, because the build-bot will take care of re-generating those after each push to the master branch)

It's not needed at all in order to run Hercules or to load HPM plugins (even if they use the HPM Hooking)

 

About vim plugins and configurations, this is a good start: https://github.com/HerculesWS/StaffPlugins/tree/master/Haru/vimsyntaxgen

it's a HPM plugin that will let you generate syntax definitions, filetype detectors, etc for Hercules scripts.

It also includes a syntax definition for Syntastic, in case you want to use the Hercules built-in script checker to test the syntax of your scripts every time you save the file. Note that this last part needs the syntastic vim plugin available at https://github.com/scrooloose/syntastic and some configuration (you'll need to tell it where your compiled Hercules is located:

" from my .vimrc
let g:syntastic_herc_compiler = '/usr/local/Hercules/script-checker'
Other noteworthy plugins that I use:

 

- airline - https://github.com/bling/vim-airline (a better status bar)

- commentary - https://github.com/tpope/vim-commentary.git (comment in/out code quickly with 'gc')

- DirDiff - https://github.com/grota/DirDiff.vim.git (diff directories)

- easy-align - https://github.com/junegunn/vim-easy-align.git (auto-align definition blocks, such as enum definitions)

- fugitive - https://github.com/tpope/vim-fugitive.git (git commands from inside vim)

- gitgutter - https://github.com/airblade/vim-gitgutter.git (show markers for added/removed/edited lines if a file is in a git repository)

- repeat - https://github.com/tpope/vim-repeat.git (extends the '.' repeat feature with support for more commands)

- signature - https://github.com/kshenoy/vim-signature.git (show visual hints for 'm' markers)

- unite - https://github.com/Shougo/unite.vim (a framework to search/show/select various kinds of things - advanced stuff, check their page for examples of use)

- YouCompleteMe - https://valloric.github.io/YouCompleteMe (very good autocompleter that actually works, even with Hercules)

Share this post


Link to post
Share on other sites
  • 0

Hey Ridley, What is divine pride and how do you use it? Also, let me know when your able to send me the link to that public packet comparing repo. Sounds interesting! You might have to help me capture some packets, too. If you're able.

 

Haru, That packet information on the wiki is definitely helpful. Thank you for that! Would you also be willing to share your vim configurations & plugins? Would be cool if someone has keyword highlighting for herc scripts in vim.

 

Also what's the story on HMP Hooks dependency on Doxygen? I saw that in the README and found it a bit peculiar.

https://gitlab.com/evol/evol-tools/tree/f9e6037c7759139338f54cf3234f171e669da35f/servergreps

 

http://www.divine-pride.net

 

Both pretty self explaining :)

Share this post


Link to post
Share on other sites
  • 0

servergreps link to outdated revision.

Always actual link this: https://gitlab.com/evol/evol-tools/tree/master/servergreps/hercules

 

It compare hercules packets to manaplus (open source client)

and comapare hercules packets to other servers for each packet version.

For packets versions before 20150916 used hercules, for newer used ragemu, because sadly for now hercules not support this versions.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.