Hello scripter! Welcome to DEntisT's Utilities (or DETUtils for short) "read me" file. So, now, you may ask about - what's this? Well - in general, this addition to open.mp Standard Scripting package contains libraries that have in-game visible effects and libraries that contain new scripting features.
- Below, you can find information about each library.
- For better understanding of this, make sure you know Pawn and a_samp - read all the docs here...
Honestly, this packet of libraries exists for show-off reasons, I made it for my own satisfication since I have a really big desire to code, so. You can still contribute and use it though. Example:
- Installation is simple, quick and easy - learn more here...
Below, there is a list of features provided by a certain library.
- What's d_samp.inc? See here...
Libraries whose contain the new language features.
- Copy of
y_va
and Pawnsscanf
implementation - d_fmargs.inc - Completely new variable system - d_vars.inc
- New ALS hooking system - d_als.inc
- New
foreach
implementation - d_foreach.inc - Excel-like management system - d_tables.inc
- Profile chunks of code - d_profile.inc
- Automatic and manual timers - d_timers.inc
Libraries whose contain the new open.mp functions and features.
- Command processor with a big amount of features - d_commands.inc
- Create property entrances, with own and custom interiors - d_properties.inc
- Generally smaller groups of random features - d_visual.inc
- Send file queries, save and load cache during runtime - d_filequeries.inc
- Anti cheat system - d_anticheat.inc
- In-game map editor - d_mapeditor.inc
- Create deathmatch zones - d_dmzone.inc
- Better teams, provides new functions - d_teams.inc
- Better dialogs, faster and easier - d_dialog.inc
Libraries whose contain the new functions for Discord bot development - these are extensions to Discord Connector plugin and they require the plugin to work.
- Discord slash commands processor - d_discordcmd.inc
- Assign, save and load Discord guild, channel, application and user data - d_discorddata.inc
Documentation contains some extra notes and tips.
- Read more here: Extra stuff
- Learn more about internal libraries here...
- I regularly make test scripts with all new features I added to the library to ensure everything is working as expected. If not, I write it down in to a test log.
Check out test script here:
-
You can also run DETUtils test script directly from your includes, just use the definition below before including the libraries.
#define DETUTILS_TESTING_MODE
As I mentioned,
DETUTILS_TESTING_MODE
flag will enable the test script automatically.
- If you're making a filterscript using the DETUtils includes, make sure to enable the
DETUTILS_FILTERSCRIPT_MODE
flag.
#define DETUTILS_FILTERSCRIPT_MODE
- It'll also work if you just simply do:
#define FILTERSCRIPT
- Everything has its limits, so does DETUtils - view them here...
- Beta testing program is currently down since this project is far away from being done. Also, according to news - new open.mp is coming soon, so these libraries shall be updated regularly to keep up with the project.
- Recently, I started test logging program in which I log every library issue I spotted during testing. You can check it here...
- English isn't the only language on the planet though, that's why I started language contribution program. I started it by making another library's core include called d_text.inc in which are all strings located. Your job as a language contributor is to simply translate it!
Check the file here...
If you're facing problems like function failed to call, function is not valid, critical errors - make sure you enable automatic debugging.
- Automatic debugging literally sends debug messages whenever it needs to.
- With this feature you can easily track problems and report them on Discord or try to troubleshoot them yourself.
To enable advanced debugging feature, use:
#define DETUTILS_DEBUG_MODE
To join Discord server, click this link!
NOTE: After you enabled advanced debugging, your console may be full with DETUtils debug messages - in that case, don't worry.
If you're facing issues with your code compilation after including the library, make sure you have updated Pawn Compiler and SA:MP Standard library package and libraries. Using them outdated can indeed cause issues while trying to implement newer libraries to your code.
-
You can get the latest version of SA:MP standard libraries here...
-
You can get the latest version of Pawn standard libraries here...
-
You can get the latest version of Pawn Compiler for SA:MP here...
-
Version: MPL 1.1
The contents of files provided in DETUtils are subject to the Mozilla Public License Version 1.1 the "License"; you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
Software distributed under the License is distributed on an "as is" basis, without warranty of any kind, either express or implied. See the License for the specific language governing rights and limitations under the License.
The Original Code is SA:MP | DETUtils.
The Initial Developer of the original code is DEntisT. Portions created by the Initial Developer are Copyright C 2021 the Initial Developer. All Rights Reserved.
- No one yet.
- aezzakmi (no GitHub account) - really productive testing
- Y_Less & Zeex - fmargs
#emit
stuff, d_commands decorator concept - Zeex - ZCMD command processor concept
- Y_Less - code parser, another amazing thing which you can get here
- Kirima - command guesser, another cool thing you can get here
- Zeex - AMX assembly
- Just fork the repository, apply your wanted changes and create a pull request!