Config

Config = {}

Config.TalkChance = 75 -- % chance NPC agrees to talk

Config.TalkOptions = {
    {
        title = "Ask for location",
        icon = "map",
        submenu = "location_menu",
        submenuData = {
            title = "**Locations**",
            options = {
                {
                    title = "Hospital",
                    icon = "hospital",
                    event = "edev_npc:gotoCategory",
                    args = { key = "hospital" }
                },
                {
                    title = "Police",
                    icon = "police",
                    event = "edev_npc:gotoCategory",
                    args = { key = "police" }
                },
                {
                    title = "Gunshop",
                    icon = "gun",
                    event = "edev_npc:gotoCategory",
                    args = { key = "gunshops" }
                },
            }
        }
    },
    {
        title = "Ask how they are",
        icon = "smile",
        event = "edev_npc:howAreYou"
    },
    {
        title = "Challenge to fight",
        icon = "fist-raised",
        event = "edev_npc:fight"
    },
    { -- This is example for using only certain peds for certain actions peds tables are in shared-peds.lua
        title = "Report Crime",
        icon = "bullhorn",
        canUse = function(ped)
            local model = GetEntityModel(ped)
            return exports['edev_npcinteract']:isPolice(model)
        end,
        event = "edev_npc:reportCrime"
    },
    {
        title = "Ask for information",
        icon = "user-secret",
        canUse = function(ped)
            local model = GetEntityModel(ped)
            return exports['edev_npcinteract']:isGang(model)
        end,
        event = "edev_npc:gangInfo"

    },
    {
        title = "Sell Drugs - EXAMPLE",
        icon = "pills",
        event = "edev_npc:selldrugs"
    },
    
}


-- Excluded Zones are zones in where interacting with peds is disabled, for example: Stores or locations where you already have interactive peds
Config.ZoneDebug = false
Config.ExcludedZones = {
    { coords = vector3(423.2991, -1019.4999, 29.0231), radius = 10.0 }, 
}


-- Locations to ask directions for
Config.Locations = {
    hospital = {
        label = "Hospital",
        coords = {
            { name = "Pillbox Hill Hospital", coords = vector3(295.8, -1446.0, 29.9) },
            { name = "Sandy Shores Medical", coords = vector3(-247.7, 6330.2, 32.4) },
        }
    },
    police = {
        label = "Police Station",
        coords = {
            { name = "Mission Row PD", coords = vector3(425.1, -979.5, 30.7) },
            { name = "Sandy Shores PD", coords = vector3(1851.0, 3689.5, 34.2) },
        }
    },
    gunshops = {
        label = "Gunshop",
        coords = {
            { name = "Downtown Ammu-Nation", coords = vector3(22.0, -1107.0, 29.8) },
            { name = "Vinewood Ammu-Nation", coords = vector3(252.7, -50.0, 69.9) },
        }
    }
}


-- Chance NPC refuses to help (in %)
Config.RefuseChance = 25
Config.MaxHelpDistance = 5000.0

-- Fight acceptance chance
Config.Fight = {
    MaleChance = 50,    -- % chance male accepts fight
    FemaleChance = 1    -- % chance female accepts fight
}

-- Random responses add how many you want
Config.Responses = {
    howareyou = {
        "I'm fine, just taking a walk.",
        "Could be better. Life's tough, y'know?",
        "Pretty good actually!",
        "Go away, I don't want to talk.",
        "I'm feeling great, thanks!",
    },
    fightRefuse = {
        "Are you serious?!",
        "Get lost, freak.",
        "I'm not fighting you.",
        "What kind of question is that?",
    }
}

-- Emotion animations for option ask how are you
Config.Emotions = {
    happy = { dict = "amb@world_human_bum_standing@depressed@base", anim = "base" },
    angry = { dict = "misscommon@response", anim = "angry" },
    confused = { dict = "amb@code_human_wander_disgusted@male@base", anim = "base" },
    sad = { dict = "amb@world_human_bum_standing@depressed@base", anim = "base" }
}





/*$$   /$$  /$$$$$$  /$$$$$$$$ /$$$$$$ /$$$$$$$$ /$$     /$$        /$$$$$$  /$$     /$$ /$$$$$$  /$$$$$$$$ /$$$$$$$$ /$$      /$$
| $$$ | $$ /$$__  $$|__  $$__/|_  $$_/| $$_____/|  $$   /$$/       /$$__  $$|  $$   /$$//$$__  $$|__  $$__/| $$_____/| $$$    /$$$
| $$$$| $$| $$  \ $$   | $$     | $$  | $$       \  $$ /$$/       | $$  \__/ \  $$ /$$/| $$  \__/   | $$   | $$      | $$$$  /$$$$
| $$ $$ $$| $$  | $$   | $$     | $$  | $$$$$     \  $$$$/        |  $$$$$$   \  $$$$/ |  $$$$$$    | $$   | $$$$$   | $$ $$/$$ $$
| $$  $$$$| $$  | $$   | $$     | $$  | $$__/      \  $$/          \____  $$   \  $$/   \____  $$   | $$   | $$__/   | $$  $$$| $$
| $$\  $$$| $$  | $$   | $$     | $$  | $$          | $$           /$$  \ $$    | $$    /$$  \ $$   | $$   | $$      | $$\  $ | $$
| $$ \  $$|  $$$$$$/   | $$    /$$$$$$| $$          | $$          |  $$$$$$/    | $$   |  $$$$$$/   | $$   | $$$$$$$$| $$ \/  | $$
|__/  \__/ \______/    |__/   |______/|__/          |__/           \______/     |__/    \______/    |__/   |________/|__/     |_*/


Config.Notification = {
    Type = "lib", -- options: "lib", "edev", "mythic", "custom"
    Show = function(data)
        local notifType = Config.Notification.Type

        if notifType == "lib" then  -- you need to uncomment @ox_lib/init.lua' in fxmanifest.lua if you want to use lib notifications 
            lib.notify({
                title = data.title or "Notification",
                description = data.description or "",
                position = 'top-right',
                style = {
                    backgroundColor = 'rgb(24 24 27)',
                    color = '#f4f4f5',
                    ['.description'] = {
                        color = '#f4f4f5'
                    }
                },
                icon = 'info',
                iconColor = '#f4f4f5'
            })
        elseif notifType == "edev" then
            print(data.title, data.description)
        elseif notifType == "mythic" then
            exports["mythic_notify"]:SendAlert(data.type or "inform", data.description or "", 5000)
        elseif notifType == "custom" then
            -- Your custom export here
        end
    end
}




/*$$$$$$$ /$$$$$$$   /$$$$$$  /$$   /$$  /$$$$$$  /$$        /$$$$$$  /$$$$$$$$ /$$$$$$  /$$$$$$  /$$   /$$
|__  $$__/| $$__  $$ /$$__  $$| $$$ | $$ /$$__  $$| $$       /$$__  $$|__  $$__/|_  $$_/ /$$__  $$| $$$ | $$
   | $$   | $$  \ $$| $$  \ $$| $$$$| $$| $$  \__/| $$      | $$  \ $$   | $$     | $$  | $$  \ $$| $$$$| $$
   | $$   | $$$$$$$/| $$$$$$$$| $$ $$ $$|  $$$$$$ | $$      | $$$$$$$$   | $$     | $$  | $$  | $$| $$ $$ $$
   | $$   | $$__  $$| $$__  $$| $$  $$$$ \____  $$| $$      | $$__  $$   | $$     | $$  | $$  | $$| $$  $$$$
   | $$   | $$  \ $$| $$  | $$| $$\  $$$ /$$  \ $$| $$      | $$  | $$   | $$     | $$  | $$  | $$| $$\  $$$
   | $$   | $$  | $$| $$  | $$| $$ \  $$|  $$$$$$/| $$$$$$$$| $$  | $$   | $$    /$$$$$$|  $$$$$$/| $$ \  $$
   |__/   |__/  |__/|__/  |__/|__/  \__/ \______/ |________/|__/  |__/   |__/   |______/ \______/ |__/  \_*/


Config.Text = {  --Config.Text["target_lable"]
	['target_lable'] = 'Talk to person',

    ['add_closest'] = 'Closest ',
    ['add_title'] = 'NPC',
    ['add_title2'] = '**Conversation**',

    -- respones
    ['response_tourist'] = 'I\'m just a tourist, I don’t know.',
    ['response_unknarea'] = 'Sorry, I don\'t know that area well enough',
    ['response_direction'] = "Head %s toward the %s. I\'ve marked it on your map.",
    ['response_acceptfight'] = "Alright, bring it on!",
    ['response_rejectinteraction'] = "I already told you, I don't want to talk.",

    -- error
    ['error_animal'] = 'Are you an animal whisperer or what?',
    ['error_dead'] = 'You can\'t fight them. Person is dead.',

}

Last updated