Jump to content

Vanilla

Developer
  • Posts

    471
  • Joined

  • Last visited

  • Days Won

    58
  • Feedback

    0%

Everything posted by Vanilla

  1. I recommend using PF which is a builtin packet filter for FreeBSD. Configure it, limit connections and write exceeding connections into a blacklist. And tune your sysctl variables a bit if you haven't done so in the past. There are some options you can add safely but for a real hardening you'd know what you're doing.
  2. The only efficient way of blocking a DDoS attack is by using a hardware firewall. Without it, you can't win this fight. What you can do is blocking DoS attacks with a software firewall. But unlike a DoS-attack, the DDoS attack is effective as soon as it hits your machine. The only thing you can do is try and harden your system and configure a software firewall. But it probably won't do much.
  3. you need to build liblua which is located at the 'Internal' directory of the source.
  4. I recommend you fix some of those errors first. These are easy to fix. E. g. you have a bad quest there (devils_catacomb quest) as you may see in your syserr. Also check that your skill_proto is having all the necessary entires (skill 236 missing?). Fixing errors is essential and you'd spend some time doing it, it's not that much as far as I can see. Now to your crash: If you wanna find out what's crashing, use gdb and post a backtrace here. Otherwise it's hard to find out what exactly crashes your core with certainty.
  5. No need to re-upload. Next version is already distributed to a few people for testing. If everything works it will be released Just waiting for feedback. If someone wants to test it, feel free to drop me a message.
  6. Hey everyone, sorry for the lack of updates. Real life and stuff. Anyway, I'm preparing a bigger update. Lots of code cleaning and error fixing. I read what you wrote and will try to fix what you reported. Thanks to you all for reporting bugs and suggest changes. Though I will start upgrading the code to c++17 standard which means that I'll most likely not make changes to macro definitions like mentioned above. People should build the project like it's meant to be and under the same feature sets and compilers like I did, to make sure there's less room for errors. If you want to port the code, you can do so of course, I don't mind that. But for 'official' release they won't be included.
  7. Maybe it's just a small mistake but did you recompile and replace the core with your new version? And did you double-check that it's added to the list before the NULL, NULL entry? And you saved everything and recompiled the core with the changes? Because it seems like something went wrong, the program can't find the function.
  8. This is the whole implementation? I guess you're missing something. You need to add it to void RegisterPCFunctionTable(). In your case this should look like: { "get_mount", pc_get_mount },
  9. where did you get that error? Also, did you try to manually resolve the ip? Is this a hostname resolving to an ip or what's happening there? Without more information it's not possible to help you with that. MySQL seems to have a bug with only numeric hostnames. You can also try and define your own hostname in /etc/hosts and link it to the ip of your machine that's trying to connect. This can also be a pseudo-domain posing as your hostname.
  10. can we see the implementation in questlua_pc? I guess you didn't add it properly. The error already states that it's added to quest_functions but there's no such called function implemented into the core! So either you misspelled or didn't add it to the core at all.
  11. this is not a syserr! It's a notice for you that the core has been started with the proper pid. You can just disable that with either hex patching or changing that in the source (I'd recommend you change it from syserr to syslog call if you want a clean syserr)
  12. I don't have any problems with typeof.
  13. Hey there! The unify_enable flag should be either 1(true) or 0(false). So if you set it to 1 then it should work New version coming soon with fixed db and some other small changes. Mainly stability stuff, I'm currently working on it through the night and inform you about the progress as soon as I can
  14. [Hidden Content] 4 inventories, pass is still vanilla Note that you should not use the dbcache provided in this package since it's the same as in 2 inventory which is broken. I still included it, don't ask me why. As soon as the new build is ready I'll upload both of them working.
  15. Try using the older rev. I'll drop dbcache and revert back to an older version. I'll also reimplement the changes I've made asap and bump a new rev. Expect some small treatments as my apologize, I didn't notice the changes until you started reporting them which I truely thank you for For the moment, please continue using the old rev for dbcache, you can still use the new game.
  16. yes, that was my bad. I implemented a 'fix' for mysql libraries >= 20. With more recent libraries I got some strange errors telling me that column names are ambiguous. So I went on and encapsulated every column name. Obviously, this turned out to be not working. The changes are still in db and somewhat causing trouble. As I said, this is only on the most recent version of the dbcache, every older rev should work and do it's job even with the more recent gamecore. I'll still support this new rev db and fix those errors if you keep feeding me with reports
  17. does this work? [Hidden Content]
  18. Okay, everybody. I found the problem and it's related to a change I tried when moving to higher mysql libraries. Therefore the dbcache is marked as probably unstable. I fixed it, but it's not sure if anything else may cause a crash. Please use the new dbcache only for debugging purposes. The new revision is backwards-compatible with earlier revs of our dbcache, so you don't need to worry about that. It could be that everything works now but I can't make a clear statement about this since more testing needs to be done. I reverted all the changes for character login, creation and fetching. New download links: source prebuilt I tested the login and char creation, it'd work now. Sorry for the inconvenience. Gamecore should work without any flaws since I didn't merge the test changes there. Only db is affected.
  19. can you provide logs? Without them I can't see what's going wrong. This is the most recent source, there's no reason to downgrade to lower revs
  20. New source and prebuild package online! I updated the links. They'd work now. same pass. prebuilt source
  21. first one is just a warning. The new unified mode should be used. This is not an error. The second one: Yes, I'm on it. dbcache is doing weird stuff and I already located the problem. Fix will be uploaded very soon.
  22. Vanilla core is coded with clang as our toolset in mind. There's literally no testing or adapting to gcc, so it's no reason why you had to change some lines. Thanks for stating it here so people who wish to use gcc can use it. Everyone compiling with clang won't need those changes.
  23. Vanilla Core r71480 is released! A few words about this release: This release brings a lot of unifying and more security options. I'm sorry that the development wasn't as fast as I wanted it to be. RL and stuff. And with that little time it's hard to test and as you may know I've had no options to debug or even test the code I was writing. But this is now gone since I have a working compile station. Also I have great news for those who really want to work with Windows. I'm working on a windows-working port for the source. Of course this won't be another branch or something. It'll be part of the main source. But please, don't expect it to be done ASAP since I have other things in my mind which I consider more important. As you may have noted most changes are about security. I want server-owners to have the option to add as much security as possible. It was the main goal in the earlierst revisions and will still be. This time we'll have a few things thanks to contributors from all over the world. I tried to mention them when it's fitting, if I missed someone, please immediately send me a pm and I'll add it! This release should help to reduce the problems that could occur when leaking databases and other stuff. I hope you enjoy it! Oh, and additionally I returned to include the qc-program into my bundled pre-built package. This way people without compiling vanilla core from source are able to use it at it's full extent. Note that this release still uses boost. Next release will drop boost entirely and declares it's implementation as deprecated. We don't need a library if everything we need is already supplied by newer c++ revisions. CHANGES from 70220 -> 71480 ~general stuff~ * fixed a bug with cancelling servertimers (thanks to Socialized and Yiv) * fixed crashes due to wrong Compiler flags under release mode (thanks to Damn) * cleaned a few code lines and rewrote some stuff + added unifying stuff to the core Unify-mode is a new mode which forces the encoding to be utf8. Note that this does NOT break backwards-compatibility and your locale is still set to the region you chose to have. So if you're running on locale/euckr (example) before, the core will still fetch it's files from that place like it did before. It only changes how the server core processes data internally and sends it to client/db. The advantages of utf-8 can be looked up, it'd be obvious. But since it affects the core in one way or another, I moved it to a CONFIG flag. ~Database changes (optional for you)~ + If you want to use utf-8 mode it's recommended to convert your whole database to utf-8 (you can use the utf_general_ci collate) + If you want to use the /su command with a customized passphrase per player you'll have to add a new column called 'passphrase' as varchar(45) and add the passphrase of the user as a mysql-Password (just like you'd add a Password to an account). ~CONFIG options~ + elevation_enable (bool, default false) Enables the elevation mode. This way you have to use the /su command along with the passphrase in order to get superuser access. The session ends with teleporting or relogging. Note that using the master-passphrase is only allowed in testserver unless elevation_use_key (see below) is enabled. + elevation_key (string, default 'vanilla') Sets the default passphrase if you want to use it. It's like a master-password for the su-system and works only + elevation_use_key (bool, default false) If enabled, it allows you to use the masterkey even without testserver being enabled. + interrupt_interval (int, max 32767) sets the time how long the player must wait until he can execute another command. This way you can prevent command spamming since all players/gms have to wait until the timer is over. Note that this does not count for admins, so GM_IMPLEMENTOR will not be affected by this! + pepper_key (string, default "peppertest12345") If you set this to anything else than "peppertest12345" it'll automaticall enable the pepper system. This way all passwords will be hashed with an additional phrase appended. This further enhances security. Note that all passwords should be encoded with the new pepper phrase. It works just like this: Instead of calling PASSWORD(userpass) it appends the pepper-phrase which results in this: PASSWORD(userpass + pepper_phrase). So be careful if you change this since your database must have valid entries, otherwise users will fail to log in. + MYSQL_PASSWORD_FUNCTION (string, default 'PASSWORD') this variable sets the name of the password-function that will be called when dealing with passwords. You can further enhance security this way if you define your own function to your database. You can for example first encode the passwords and then hash it. Note that if you change this value, your database must have a proper function that returns the encoded/hashed/whatever password out from plain text. If the function doesn't exist or your passwords aren't adapted to work with your custom function, login will fail! + unify_enable (bool, default false) Enables the unify-mode. This way the server forces utf-8 as it's encoding standard. Note: If you enable this, you'd change your database etc. to use utf-8 too! ~commands~ + su passphrase(string) Tries to elevate the player and grants him the permissions stored in gmlist after successfully elevating. Minimum rank: GM_PLAYER + promote user(string) gm_level(string, optional) First the command elevates the player. So if no gm_level is given, the player will receive the permissions he'd have if he elevates normally. If a gm_level is given (just type it like it's labeled, so if you want to give him high-wizard, type GM_HIGH_WIZARD) it'll overwrite the gm level for the current session (relog/teleport will remove it). Download Download (prebuilt): r71480 Download (source): r71480_source pass (for both): vanilla
  24. Sorry for the delay. The new build is ready. I'm looking for volunteers that want to test the new core. Just drop me a pm please, I just need someone to test a few things and we're ready to go for the next rev.
  25. pm me with the error and as many details as possible, I might be able to help you. No need to pay.
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.