Giter Site home page Giter Site logo

wais-emotes-readme's Introduction

WAIS-EMOTES

How to set it up

  • Do not change the name of the script
  • Put the script in the resources folder, do not use any folderisation.
  • Prefer to start manually in server.cfg as follows.
ensure wais-compatibility
ensure [other wais scripts]
ensure wais-emotes

How do I activate the Notification system

  • It will be enough to send the message and type by exporting or triggering the Framework or Notification script you are using
  • Don't forget to install export according to the framework you are using
local ESX = exports['es_extended']:getSharedObject()
local QBCore = exports['qb-core']:GetCoreObject()

Config.Notification = function(message, types)
    exports['okokNotify']:Alert('Title', message, 2500, types, false)
    ESX.ShowNotification(message)
    QBCore.Functions.Notify(message, types)
end

Clothing system integration

  • First of all, this system is used for the previewpos system

  • skinchanger and ak47_clothing are not supported. Only fivem-appearance, illenium-appearance, codem-appearance and qb-clothing support is available

  • Not using this system will not cost you anything. Only the representative character created in the previewpos system will not receive your clothes and content

  • For appearances:

    • Replace Appearance name with the name of your own appearance script!
    Config.SetExamplePedSkin = function(ePed)
        local ped = PlayerPedId()
        local skin = exports["appearance-name"]:getPedAppearance(ped)
        exports["appearance-name"]:setPedAppearance(ePed, skin)
    end

    Config.GetPedModel = function()
        local ped = PlayerPedId()
        local model = exports["appearance-name"]:getPedModel(ped)
        return joaat(model)
    end

    -- If you don't want to use it, or if none of them are compatible, use
    Config.GetPedModel = function()
        return 1885233650
    end
  • For qb-clothing:
local QBCore = exports['qb-core']:GetCoreObject()

Config.SetExamplePedSkin = function(ePed)
    while next(Config.Skins) == nil do
        Wait(500)
    end
    TriggerEvent('qb-clothing:client:loadPlayerClothing', Config.Skins.skin, ePed)
end

Config.GetPedModel = function()
    TriggerServerEvent('wais:getSkin', QBCore.Functions.GetPlayerData().citizenid)
    while next(Config.Skins) == nil do
        Wait(500)
    end
    return joaat(Config.Skins.model)
end

-- You have to add this function.

function Config.GetPlayerSkin(citizenid, cb)
    local p = promise:new()
    MySQL.Async.fetchAll('SELECT * FROM playerskins WHERE citizenid = @citizenid AND active = @active', {
        ['@citizenid'] = citizenid,
        ['@active'] = 1
    }, function(result)
        if result[1] ~= nil then
            p:resolve({model = tonumber(result[1].model), skin = json.decode(result[1].skin)})
        else
            p:resolve(nil)
        end
    end)
    return Citizen.Await(p)
end
  • The following edit should be made in fxmanifest for qb-clothing.
server_scripts {
    'config.lua',
    '@mysql-async/lib/MySQL.lua',
    'server.lua',
    'converter.lua',
}

How to get the name of the players in shared animations

  • You can integrate the framework you use by finding the function below or you can pull the steam name
-- For Steam name
Config.GetPlayerNames = function(source)
    local name = GetPlayerName(source)
    return name
end

-- For ESX Framework
local ESX = exports['es_extended']:getSharedObject()
Config.GetPlayerNames = function(source)
    local player = ESX.GetPlayerFromId(source)
    return ('%s - %s[%s]'):format(player.get('firstName'), player.get('lastName'), source)
end

-- For QBCore Framework
local QBCore = exports['qb-core']:GetCoreObject()
Config.GetPlayerNames = function(source)
    local player = QBCore.Functions.GetPlayer(source)
    return ('%s - %s[%s]'):format(player.PlayerData.charinfo.firstname, player.PlayerData.charinfo.lastname, source)
end

How to add an animation category

  • Go inside the Config.Animations variable and paste the following table structure one line below the last line
-- Icons: home, bookmark, bookmark-fill, confetti, faces, walks, shared, dances, gang, exit, tank

["tablename"] = {
    ["type"] = "emote",
    ["icon"] = "bookmark-fill",
    ["label"] = "Table label",
    ["selected"] = false, -- Don't touch
    ["id"] = 8, -- What is the last category id, add 1 on top of it and write
    ["anims"] = {

    }
},

How can i add animation

  • Go to the anims table of the category you want to add
  • Inside the Anims table, create a new table below the last table and edit and add the table structures as follows
-- Face Animations
["facial_name"] = {
    ["type"] = "face",
    ["anim"] = "", -- Keep it empty
    ["anim_dict"] = "", -- Keep it empty
    ["expression"] = "mood_aiming_1", -- Base name of the facial expression you will add
    ["scenario"] = "", -- Keep it empty
    ["command"] = "anim_name", -- Command name like /e faceanim1
    ["label"] = "Label",
},

-- Walk Animations
["walk_name"] = {
    ["type"] = "walk",
    ["anim"] = "", -- Keep it empty
    ["anim_dict"] = "", -- Keep it empty
    ["scenario"] = "move_m@alien", -- Base name of the scenario you will add
    ["expression"] = "", -- Keep it empty
    ["command"] = "anim_name", -- Command name like /e walkanim
    ["label"] = "Label",
},

-- Default Animastions
["anim_name"] = {
    ["type"] = "animation",    
    ["anim"] = "idle_b", -- animDictionary name of the animation to be made in the base
    ["anim_dict"] = "timetable@denice@ig_1", -- animDictionary base name
    ["scenario"] = "", -- Keep it empty
    ["expression"] = "", -- Keep it empty
    ["command"] = "xxxx", -- Command name like /e xxxx
    ["label"] = "Label",    
    ["options"] = {          
        ["moving"] = false, -- Can you walk while animating? `true`@boolean `false`@boolean         
        ["loop"] = true, -- `true` if it is an animation made forever and `false` if it is not
        ["duration"] = 0, -- If the animation has a duration, enter 1000 = 1 second
    }
},

-- Shared Animations
["anim_name"] = {
    ["type"] = "shared",
    ["anim"] = "chad_armsaround_chad", -- animDictionary name of the animation to be made in the base
    ["anim_dict"] = "misscarsteal2chad_goodbye", -- animDictionary base name
    ["scenario"] = "", -- Keep it empty
    ["expression"] = "", -- Keep it empty
    ["command"] = "xxxx", -- Command name like /e xxxx
    ["label"] = "Shared Anim Label",
    ["options"] = {
        ["moving"] = false, -- Can you walk while animating? `true`@boolean `false`@boolean         
        ["loop"] = false, -- `true` if it is an animation made forever and `false` if it is not
        ["duration"] = 5000, -- If the animation has a duration, enter 1000 = 1 second
        ["target"] = {
            ["anim"] = "chad_armsaround_girl", -- animDictionary name of the animation to be made in the base
            ["anim_dict"] = "misscarsteal2chad_goodbye", -- animDictionary base name
            ["target_positions"] = {
                ["x"] = 0.52,
                ["y"] = -0.05,
                ["z"] = 0.0,
                ["rx"] = 0.0,
                ["ry"] = 0.0,
                ["rz"] = 0.0,
            },
        }
    }
},

wais-emotes-readme's People

Contributors

ayazwai avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.