Sari la conținut

JUST4METIN.COM CAUTA STAFF ACTIV - PM Bogdan

Bogdan

[SRC] Vanilla Core [latest: r71480]

Postări Recomandate

Greetings!

The new beta is finished! I'm proud to present r71480.
This time a few things have changed. And in this revision, we have a lot of new stuff.
In the following I'll provide the download link along with the things I'd love you to test.

 


*** DISCLAIMER ***
The core is marked as stable. Anyway, I'll make it clear that I'm not responsible if you use this core since I can't give a warranty that I fixed every single security breach that potentially could happen - that's totally impossible. But we all together made the source great and secure so every public issue is fixed by now. You can use it in production environments now. 

 


So... What's new?

  • boot-trigger for quests
    • With this you can execute commands, timers, and all the stuff you'd like to have just on boot-time!
  • revisioning of the 'unique class' (+ a ton of posibilities)
    • added the functionality to create unique-groups
    • temp-Variables for quests
  • upgraded all libs
  • moved completely to the newest clang version
  • fixed some big security issues in the source code
  • fixed the ingame ban and unban commands
  • unified tables and gave them a new way: unify!
  • file clean-up
    • revisioned the makefiles
    • gave the source a new, easier structure
  • removed all external dependencies
    • just install them by ports.. No external-folder necessary!
    • removed 'boost' dependency (no boost lib needed yay)
  • partial implementation of the wolfman (claws etc. are added, needs review)
  • And basically everything that has been offered in the earlier versions of the vanilla core. Nothing should be missing.
    And if you miss something, just feel free to tell me!

 


What needs testing?

There are few things I'd love you to test out:

  1. Please check if the core is vulnerable to any security breaches you may know (also the public ones, don't know if I missed something)
  2. Please test out the new features! I'd really love to know if the new unique-functions and the boot-trigger does the job.

 


Explanation to new features:

  • Unique with container support
    • Unique has evolved! This time you have a few new possibilities. Don't know what unique is? Here's a short explanation:
      With the unique-questfunctions you can spawn or set mobs, npcs and now even players to have a unique name. This name is
      stored into a unique-container. You can access this container and get all the vid's by their unique name (also called: the key)
      So for example you can spawn a boss with a key. Later on you can check if this specific mob has been killed or not. Or you can
      set his hp on-the-fly. There's basically no limits!
    • And now with the revised system you'll have even more options. The new unique system works with containers. By default there are
      two containers reserved: __DEFAULT__ and __CHARACTER__. The first one is for all the basic stuff. And the second one is reserved for players. Now, as you may have noticed, there's a default one which means that the container-stuff is optional. If you just use the unique functions without specifying a container, it'll just use the default stuff. But you CAN use your own containers just
      as you want to. You can create, delete and list all the containers running. There is a list with all the quest-functions down below.

 

  • boot-trigger
    • This is pretty self-explanatory. With this release you can use "when boot begin" to specify a block of code that will be executed
      once the core has been booted.

 

  • temp-variables
    • With the new temp-variables you can set and remove player-specific variables. They are stored in the core and not written
      to disk or database. So be careful because they might get dropped once the core shutdowns. It's just a quick storage for people
      who want to have something like a cache for quick access.

 

  • new quest functions
    • nil unique.spawn_unique(string key, int vnum, string pos=unused, string container=optional)
    • nil unique.set_unique(string key, int vid, string container=optional)
    • nil unique.purge_unique(string key, string container=optional)
    • nil unique.kill_unique(string key, string container=optional)
    • bool unique.is_unique_dead(string key, string container=optional)
    • int unique.get_hp_perc(string key, string container=optional)
    • nil unique.set_def_grade(string key, int def, string container=optional)
    • nil unique.set_hp(string key, int hp, string container=optional)
    • nil unique.set_max_hp(string key, int maxhp, string container=optional)
    • int unique.get_vid(string key, string container=optional)
    • bool unique.exists(string key, string container=optional)
    • table unique.get_container_list()
      • this prints out all the unique containers
    • table unique.get_container_list(string key)
      • this prints out all the vids in the unique-container "key"
    • nil unique.remove_container(string key)
      • removes a whole container (flushes it when called on standard containers)
    • nil pc.temp_var_set(string key, string value)
    • string pc.temp_var_get(string key)
    • nil pc.temp_var_delete(string key)

 


Thanks a lot for participating!
If there are any questions, this is the topic related to it. Further releases will be made public here too!
If you'd like to contribute, just post code additions here.

 


Changelog

 

 

older changelogs

 

 


Download

Useful information: All necessary libs are included. If you're building your own vanilla binary you'll first have to move into every project of the Internal directory and rebuild the libs. The main makefile is not adapted yet, I was too lazy :P (ps: Still too lazy!)

 

 

Password for the archive is: vanilla
Password for older source archives: vanillamt2


 

Best Regards
Vanilla

Partajează acest post


Link spre post
Distribuie pe alte site-uri

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum

×