Update README.md

Start adding documentation
This commit is contained in:
Jim Shield
2024-02-09 00:46:20 +00:00
committed by GitHub
parent b291e3f4b6
commit 942c11af1d

256
README.md
View File

@@ -1,4 +1,4 @@
# Jim_Bridge
(# Jim_Bridge
This script is intended to be used with my all my scripts (soon)
@@ -46,3 +46,257 @@ to
```
This will now use events from `ps-inventory` and use it through out the scripts.
# WIP
## Documentation
This script brings alot of features to simplify making scripts with preset functions and automations.
It attempts to make use of configs from the scripts its loaded into. For example:
### `Config`
```lua
Config = {
System = {
Debug = true, -- This enables Debug mode
-- Revealing debug prints and debug boxes on targets
Menu = "qb", -- This specifies what menu script will be loaded
-- "qb" = `qb-menu` and edited versions of it
-- "ox" = `ox_lib`'s context menu system
-- "gta" = `WarMenu' a free script for a gta style menu
Notify = "gta", -- This allows you to choose the notification system for scripts
-- "qb" = `qb-core`'s built in notifications
-- "ox" = `ox_lib`'s built in notifications
-- "esx" = `esx_notify` esx's default notifications
-- "okok" = `okok-notify` okok's notifications
-- "gta" = Native GTA style popups
drawText = "gta", -- The style of drawText you want to use
-- "qb" = `qb-core`'s drawText system
-- "ox" = `ox_lib`'s drawTextUI system
-- "gta" = Native GTA style popups
progressBar = "gta" -- The style of progressBar you want to use
-- "qb" = `qb-core`'s style progressBar
-- "ox" = `ox_lib`'s default progressBar
-- "gta" = Native GTA style "spinner"
},
}
```
### `openMenu(Menu, data)`
This handles creation of menus using `OX_Lib`, `qb-menu` or `WarMenu`
It uses mixed/new functions to bring more compatability to one another
`Menu` is your button entries and works like qb-menu or ox_lib, for example:
```lua
local Menu = {}
Menu[#Menu + 1] = {
isMenuHeader = true, -- This makes the current button unclickable
icon = invImg("lockpick") -- Supports fontawesome or custom images
-- This example use the custom function `invImg()` to retreive an nui:// link to the given item's image
arrow = true, -- Adds a arrow icon to the button (in qb-menu overrides the icon)
header = "Header Test", -- The header/title for the button
txt = "Text test", -- The txt/description for the button
onSelect = function() -- This brings the onSelect function to qb-menu
TriggerEvent("lolhi", { lol = hi }),
end,
-- Enter what happens when you click the button
}
```
As you can see above, it mixes variables but makes it possible to switch between menus just by changing the config option
After you have created the info above, you need to then trigger opening of this menu with:
```lua
openMenu(Menu, -- Menu here is your table name you created above
{ -- Next entry in openMenu is a table
header = "Menu Header", -- What your menu title will be shown as
headertxt = "Header info", -- Info to be displayed under the title
onExit = function() -- Will create a "Close button"
TriggerEvent("lolhi", { lol = hi }),
end, -- When clicked it will trigger the onExit event
onBack = function() -- Will create a "Back button"
TriggerEvent("lolhi", { lol = hi }),
end, -- When clicked it will trigger the onBack event
})
```
### Support for multiple target events
These automatically detect what target script you are using
They are also automatically removed when the script is stopped (for helping
### `createEntityTarget(entity, opts, dist)`
Create an entity based target
```lua
createEntityTarget(
entity, -- The entity ID of what you want to target
{
{ -- Your target options here
icon = "icon", -- Your icon, only supports font awesome icons
label = "Test Label", -- The label of your target
item = "lockpick" -- The required it em
job = "mechanic", -- The required job
gang = "lostmc", -- The required gang
action = function() -- What happens when the target is selected
TriggerEvent("lolhi", { lol = hi }),
end,
},
}
, dist) -- How close you ned to be to see the target
```
### `createBoxTarget(data, opts, dist)`
Create an entity based target
```lua
createBoxTarget(
{
"TargetName", -- The name/id of your target here
vec3(0, 0, 0), -- The coordinates of your target
2.0, -- The width of your target box
2.0, -- The depth of your target box
{
name = "TargetName", -- The name/id of your target here
heading = 200.0, -- The direction your target will be placed
debugPoly = true, -- Wether to show debug boxes to help place targets
minZ = 190.0, -- The bottom of your box
maxZ = 210.0, -- The top of your box
},
},
{
{ -- Your target options here
icon = "icon", -- Your icon, only supports font awesome icons
label = "Test Label", -- The label of your target
item = "lockpick" -- The required it em
job = "mechanic", -- The required job
gang = "lostmc", -- The required gang
action = function() -- What happens when the target is selected
TriggerEvent("lolhi", { lol = hi }),
end,
},
},
dist) -- How close you ned to be to see the target
```
### `createCircleTarget(data, opts, dist)`
Create an entity based target
```lua
createCircleTarget(
{
"TargetName", -- The name/id of your target here
vec3(0, 0, 0), -- The coordinates of your target
2.0, -- The radius of your target circle
{
name = "TargetName", -- The name/id of your target here
heading = 200.0, -- The direction your target will be placed
debugPoly = true, -- Wether to show debug boxes to help place targets
minZ = 190.0, -- The bottom of your box
maxZ = 210.0, -- The top of your box
},
},
{
{ -- Your target options here
icon = "icon", -- Your icon, only supports font awesome icons
label = "Test Label", -- The label of your target
item = "lockpick" -- The required it em
job = "mechanic", -- The required job
gang = "lostmc", -- The required gang
action = function() -- What happens when the target is selected
TriggerEvent("lolhi", { lol = hi }),
end,
},
},
dist) -- How close you ned to be to see the target
```
### `removeEntityTarget(entity)`
Triggers removal of the target entity, by checking the entity name
### `removeZoneTarget(target)`
Triggers removal of a zone(Box/Circle) target by calling the target's name/id
## `triggerNotify(title, message, type, src)`
Handles notifications for the script called from either the server or client
Supports:
- `okok`
- `qb`
- `ox`
- `gta`
- `esx`
```lua
triggerNotify(
title = "Notification Title", -- Usually 'nil' in my scripts, supports notifications with titles
message = "Notification Message", -- The notification's message
type = "success" -- The type of notification, depends on the supporting script
src = 1, -- If in the server, this is required to send to player
)
```
## `drawText(image, input, style)`
This handles calling drawText functions
Supports:
- `gta`
- `qb`
- `ox`
- `esx`
```lua
drawText(
187, -- Very specific for adding blip images to drawtexts, usually nil
{
"Line 1", -- Supports multiple lines, helpful for displaying button prompts
"Line 2",
},
"g" -- Sets colour of text after a ":" when using GTA drawtext
)
```
## `hideText()`
Simply used to hide drawText prompts when not needed anymore
## `createCallback(callbackName, funct)`
This is my attempt at making multiframework server callbacks by using their provided events
(Only works server side)
```lua
createCallback(
"jimsCallback", -- Callback event name, needs to be something that isn't already set
function()
end)
end
```
## `triggerCallback(callBackName, value)`
This is an attempt at a mutliframework callback
## `onPlayerLoaded(func)`
This is a multiframework event that is triggered when a player has fully loaded their character in
```lua
onPlayerLoaded(
function()
print("Player Loaded In!")
end
)
```
---