60 Commits

Author SHA1 Message Date
Quentin
a46d6d0fae fix(lua): fix pointer.allocate allocating the wrong number of bytes (#2941) 2024-04-13 17:41:04 +02:00
Quentin
6f8490f450 fix(lua): better error reporting when calling player commands (#2932) 2024-04-10 11:43:55 +02:00
maybegreat48
1e79a92657 Refactor and fix send chat (#2864)
* feat(chat): refactor and fix send chat
* fix(chat): fixes
* fix(chat): fix team chat

Co-authored-by: DayibBaba <79384354+DayibBaba@users.noreply.github.com>
2024-03-23 17:37:51 +01:00
Andreas Maerten
99afa8dfbb refactor!: Rewrite of the old notification service (#2866)
The main goal was improving the readability of the original code however some ugliness remains.

- Swapped from pointer singleton to instance singleton
- Actually make use of the alpha logic that used to be present
- Added a counter to notifications to indicate if something is being spammed
- Notification timeouts reset if they're sent to the queue again
2024-03-23 00:04:49 +01:00
Alice
540ff21b05 add lua api: script.execute_as_script (#2824)
Co-authored-by: xiaoxiao921 <xiaoxiao921@hotmail.fr>
2024-03-21 11:20:22 +01:00
Andreas Maerten
88036b91da refactor: switch RAGE_JOAAT with string literal functions (#2806)
Why? Shorter to write and removes the macro usage

I used the following regex to find all occurrences:
```r
RAGE_JOAAT\("(.*?)"\)
```
then the following to replace it all:
```r
"$1"_J
```
2024-03-12 09:42:11 +01:00
Quentin
a29cca838c lua natives: try to handle Any* parameters properly (#2785) 2024-02-28 23:47:33 +01:00
Quentin
a548ecc074 lua io.exists (#2771) 2024-02-24 11:10:58 +01:00
Quentin
b1caff97fe lua: fix enabling/disabling (#2745) 2024-02-21 13:05:01 +01:00
Quentin
80f28134a5 lua: allow functions to be called without giving all of its args (#2744)
This makes usage of native functions that normally use pointer args easier to deal with.
2024-02-21 13:02:29 +01:00
Alice
68dd925de1 fixed bool_masked (#2708) 2024-02-12 18:26:07 +01:00
Arthur
2e63940b77 feat(lua): expose the self class and add new menu events (#2656) 2024-01-28 15:18:44 +01:00
Quentin
425e25a98b fix(lua): allow natives to be called with nil strings. (#2652) 2024-01-17 11:08:35 +01:00
Andreas Maerten
9a1a75b675 refactor!: repo cleanup (#2650)
- Move cmake files to dedicated cmake folder
- Move scattered python files to `scripts/` folder
- Update CMakeLists.txt to reflect changes
* feat(scripts): add README to folder
2023-12-30 16:05:18 +01:00
maybegreat48
22e15e95d6 Optimizations (#2649)
* fix(Respawn): fix respawn in SP
* fix: re-enable bigobj
* fix: update creator's stack size
* fix: use BOOLs instead of bools
* fix(gitignore): hide .pyc files
2023-12-29 17:07:00 +01:00
Andreas Maerten
9beaff807d feat(cmake): update ImGui to latest release (#2621) 2023-12-21 16:01:47 +01:00
Aure7138
bc0d67583f Update crossmap and natives.hpp to 3095. (#2565) 2023-12-15 16:01:57 +01:00
Andreas Maerten
d5d36643e3 feat(LuaMgr): Disable and Enable scripts from UI and prevent crash when renaming the scripts/ dir. (#2493) 2023-12-13 23:19:52 +01:00
gir489
5a9019fa62 Fixed TRIGGER_SCRIPT_EVENT for 3095. (#2527) 2023-12-13 19:32:26 +01:00
gir489
9025def4db Enabled strict sol for type safety and function enforcement. (#2502) 2023-12-10 12:51:29 +01:00
Quentin
22e2c36249 feat(lua): expose io.open (limited to scripts_config folder) (#2495) 2023-12-08 09:14:57 +01:00
Quentin
542fe17b91 fix(lua): add default handler to every protected function calls, until now there was none/scuffed and nothing was getting output to the user making debugging very difficult (#2494) 2023-12-08 09:11:36 +01:00
gir489
d2a7ff8ba4 feat(lua): added weapon and vehicle cache bindings (#2477)
* Replaced bad example in entities documentation.
* Updated Lua documentation for vehicles/weapons to allow for auto generation.
* Added Vector3 support to the Lua globals/locals class.
* Fixed a bug with get_float in globals/locals returning an int instead of a float.
* Fixed globals get_uint/set_uint using signed types for the return/parameter.
* Added unsigned int helpers to the locals Lua class.
2023-12-05 09:58:35 +01:00
gir489
847a729918 Added packed stats handler to the stats Lua class. (#2460) 2023-11-29 23:15:10 +01:00
maybegreat48
a97af16888 Rewrite AC bypass (#2430)
* fix(anticheat): rewrite AC bypass again (the old one isn't detected but this is cleaner)
* fix(chat): some chat tweaks
* fix(anticheat): fix memory leak
* feat(lua): add is_player_friend
* fix(protections): fix possible false positives with the vehicle task mismatch protection
* feat(protections): add debug logs to trace false positive
* fix(spam): add some more stuff
2023-11-19 23:20:15 +01:00
Quentin
e56a6fd38f feat(lua): add tunable overloads for getting / setting values through the already joaated tunable value. (#2417) 2023-11-14 20:21:03 +01:00
Quentin
9d7e5893c6 fix(lua): small lua / lau doc fixes (#2415)
* fix(lua): small lua / lau doc fixes: expose stats.get_character_index like intended. also add a bit of doc to button and sameline pages so that the user is correctly refered to the tab class doc
2023-11-14 20:20:45 +01:00
Quentin
7869c254f2 Feat(lua-doc): Make sure that the MPX -> MP0/MP1 behavior for stats function is documented. (#2251) 2023-10-13 00:14:02 +02:00
Quentin
3293b374a8 feat(lua): expose take_control_of (#2249) 2023-10-13 00:13:39 +02:00
Quentin
5515c841a1 feat(lua): Allow lua scripts to flag modders with a custom reason if needed. (#2248) 2023-10-13 00:11:37 +02:00
Quentin
2d2f4368fd Fix lua explosion bypass (#2255)
* move explosion_anti_cheat_bypass to its own file

* fix(lua): make sure lua user don't get tapped by game ac when using ADD_OWNED_EXPLOSION
2023-10-12 23:34:46 +02:00
gir489
220e995035 Add Garage drop-down to Spawn PV menu (#2171)
* Fixed edge case where a garage that contained only banned vehicles would show if the user was using Spawn Clone.
Refactored a large portion of the garage code to be production ready.
Formatting changes.

* Added singular garage items to the m_garage setter like the Terrorbyte.

* Fixed is_blacklisted_vehicle returning an inverted condition.
Fixed Garage drop-down not updating properly.

* Separated out m_garage's setter into a ctor function.
Replaced the 4 singular garages that use an overloaded index with a define to be able to shift them easier when new properties are added.

* Removed obsolete and incorrect player.character_slot config entry.
Removed deprecated local_player.hpp.
Added self::char_slot that is guaranteed to be correct.

* Removed extraneous semi-colon.

* Added more stuff to fillsnacks.
Removed more extraneous usages of MPPLY_LAST_MP_CHAR.

* Added the vehicle's name to player info.

* Fixed get_property_garage_size returning the incorrect size for the facility.
Fixed get_static_property_name returning the Nightclub's name instead of Nightclub Service Entrance to maintain consistency with the Mechanic.
Fixed garage_slot_iterator not starting and ending at the correct indexes.

* Shifted the singular properties down one to compensate for the new math.

* Fixed backwards math on Terrorbyte and Nightclub B1.

* Fixed garage not being updated when the player moved the vehicle.

* Fixed backwards comments.
2023-09-22 23:16:33 +02:00
Quentin
25a2d2b32e fix(lua): Fix crash when trying to reload a non-existent script. (#2151) (#2162) 2023-09-20 14:51:23 +02:00
maybegreat48
4a5dccd547 Huge protection improvements and other stuff (#1963)
* feat(protections): add a fuzzer
* feat(protections): improve protections
* feat(spoofing): add warning
* feat(world): force object cleanup
* fix(weapons): fix custom weapon code
* fix(weapons): fix for #1983
2023-08-19 13:01:08 +02:00
Quentin
0e0b4d46a4 fix(lua): fix script array iterator being potentially invalidated while iterating due to new scripts that could be added and the vector getting reallocated due to it. (#1883) 2023-07-29 11:22:04 +02:00
Quentin
2fb59b5046 fix(lua): input_float:get_value() was returning the wrong type (#1879) 2023-07-28 13:59:22 +02:00
Quentin
d1baedc5a4 Feat lua stats (#1875) 2023-07-28 10:07:17 +02:00
Andreas Maerten
4b1fd88f6c refactor!: Modify command argument handling and move on_ method to bool_command (#1826) 2023-07-26 22:22:40 +02:00
Quentin
37296c1498 lua: sub folders support, check for .lua file extension, refactor and simplify internals. (#1775) 2023-07-22 13:05:43 +02:00
Quentin
8253b58055 feat(lua): Add entities.get_all_vehicles_as_handles() Add entities.get_all_peds_as_handles() Add entities.get_all_objects_as_handles() (#1795) 2023-07-21 21:21:51 +02:00
Bugisoft
3e5cad97e9 Custom Sky Color and unify some stuff (#1779) 2023-07-20 22:46:32 +02:00
Quentin
497781b048 feat(lua): Add tab:is_selected function to check if the tab is the currently selected one in the GUI. (#1763) 2023-07-19 09:28:22 +02:00
Quentin
73d23dd34b fix(lua): move bindings to cpp files (#1757) 2023-07-18 13:07:33 +02:00
Quentin
20ccf1a89b fix(ci): tentative fix for compiler out of heap space (#1746) 2023-07-17 22:57:14 +02:00
Quentin
664b5c6c40 feat(lua): much more complete imgui bindings, allow lua imgui callbacks from outside yimmenu classic tabs through gui.add_imgui(func) but also inside yimmenu classic tabs through tab:add_imgui(func) (#1736) 2023-07-17 14:55:42 +02:00
Quentin
0417fbf0f9 fix(lua): better exception handling (#1734) 2023-07-16 23:32:34 +02:00
Quentin
a40b4a0dd8 fix(lua): log not supported lua functions (#1722) 2023-07-15 22:07:10 +02:00
Quentin
0a5cca8c12 fix(lua) (#1697)
- sandbox stuff.
- Fix lua scripts that could run when their lua state was destroyed, causing chaos.
2023-07-13 09:36:13 +02:00
Quentin
21277e4039 Fix(lua / script manager): Potential fix for stack overflow when yielding from lua scripts. Fix io / os lua libs being accessible. (#1681)
* fix(script-mgr / lua): first kill all scripts, then unload lua modules: because the lua scripts depend on lua state (which is stored inside lua module instance), killing the lua module first would not allow proper cleaning because of the lua state getting destroyed while the lua script might still be running.

* fix(unloading): Why even reset the fiber pool here?

* fix(lua): don't allow for io / os lua lib to be accessed for security reasons.

* fix(lua): Potential fix for C stack overflow error by using lua coroutine yielding instead of calling fiber yield directly from lua functions.

* feat(unloading): allow to unload in the main title screen. Also revert 309c374602 due to fiber pool being potentially exhausted, we want commands to have their cleanup code ran in priority.
2023-07-11 09:24:44 +02:00
Quentin
ac6d86b149 fix(gui): dont draw two gui separators at the top for lua only tab. (#1677) 2023-07-10 20:37:28 +02:00