依照下列代码写一个QB框架的性爱插件
Config = {}
Config.Debug = true -- 启用后可以使用命令 /createbed [模型] 来创建床
Config.Variables = {
Framework = 'QB', -- 设置框架类型,支持 QB (QBcore), ESX, 或 None。如果不使用框架,设置为 none 并通过 k_sexm:forceStart 触发器启动
Notify = 'QB', -- 设置通知系统类型,支持 QB, ESX 或 Custom(自定义通知函数)
ESXSharedObject = 'esx:getSharedObject', -- 如果使用 QB 框架,保留为该值(不会使用在 QB 框架下)
usingSQL = true, -- 是否使用 SQL 数据库,需依赖 oxmysql 并导入相关 SQL 文件
DisableCommands = false, -- 是否禁用 /sex 和 /sleep 命令,true 为禁用(通常用于开发阶段)
--[[
TriggerEvent('k_sexm:sexsetup') -- 设置性行为场景,示例:在径向菜单中使用该选项
TriggerEvent('k_sexm:sleepsetup') -- 查找床并进入睡觉状态,示例:在径向菜单中使用该选项
]]
PregTestFemaleOnly = true, -- 设置为 true 仅允许女性角色进行孕妇测试;设置为 false 时允许任何角色进行孕妇测试
TimeTillBirth = 60, -- 怀孕持续时间(分钟),例如 60 代表 1 小时
NotifyPregnant = 10, -- 在预计分娩前多少分钟通知玩家需前往医院(单位:分钟)
UsingKDisease = true, -- 是否启用 k_disease 插件的疾病系统,设置为 true 启用
AllowTransmitted = {
["衣原体感染"] = {
chance = 50, -- 玩家传播衣原体感染的概率,50% 的几率
randomChance = 3 -- 玩家完全随机感染衣原体感染的概率,3% 的几率
},
["淋病"] = {
chance = 50, -- 玩家传播淋病的概率,50% 的几率
randomChance = 3 -- 玩家完全随机感染淋病的概率,3% 的几率
},
["疱疹"] = {
chance = 50, -- 玩家传播疱疹的概率,50% 的几率
randomChance = 3 -- 玩家完全随机感染疱疹的概率,3% 的几率
},
},
MaleOnlyStart = true, -- 设置为 false 时允许女性创建性行为场景
BedModels = { -- 可用于睡觉的床模型
`apa_mp_h_bed_with_table_02`, -- 带桌子的床
`apa_mp_h_bed_wide_05`, -- 宽大的床
`apa_mp_h_bed_double_08`, -- 双人床
`apa_mp_h_bed_double_09`, -- 双人床(另一款)
`apa_mp_h_yacht_bed_01`, -- 游艇床
`apa_mp_h_yacht_bed_02`, -- 游艇床(另一款)
},
DisableSex = false, -- 设置为 true 时禁用性行为功能,仅允许玩家进行睡觉操作
PregnantChanceCreampie = 100, -- 怀孕的概率,100 表示怀孕概率为 100%
PregnantChanceRegular = 1, -- 一般性行为的怀孕概率,1 表示 1% 概率
PregnantChanceCondom = 1, -- 使用避孕套时的怀孕概率,1 表示 1% 概率
hospitalBeds = { -- 医院床位的坐标配置,需要根据实际情况调整
[1] = {
coords= vector3(-440.63, -303.04, 35.78-0.99), -- 床位1的坐标
heading= 288 -- 床位1的朝向角度
},
[2] = {
coords= vector3(-446.31, -290.83, 35.81-0.99), -- 床位2的坐标
heading= 288 -- 床位2的朝向角度
}
},
RestoreClothing = true, -- 设置为 true 时恢复玩家的衣物状态
DevelopBelly = true, -- 启用怀孕肚子模型,设置为 false 时禁用此功能
DevelopBellyTime = 30, -- 设置怀孕肚子模型出现的时间,单位为分钟,30 表示 30 分钟
BellyOutfit = { -- 设置怀孕时的衣物配件
['tshirt'] = {
comp = 14, -- 胸部(tshirt)组件ID
texture= 0 -- 纹理ID,0 表示默认纹理
},-- 禁用设置为 false
['torso'] = {
comp = 33, -- 上半身(torso)组件ID
texture= 1 -- 纹理ID,1 表示另一种纹理
},-- 禁用设置为 false
['arms'] = {
comp = 20, -- 手臂(arms)组件ID
texture= 0 -- 纹理ID,0 表示默认纹理
},-- 禁用设置为 false
},
other = '', -- 开发人员自定义设置项,用于临时配置或调试,不影响游戏其他功能
UsingNakedOutfit = true, -- 如果设置为 true,玩家会被自动穿上裸装;如果设置为 false,玩家可以自行准备服装
NakedOutfit = { -- 玩家裸体状态时所穿着的默认衣物配置
['male'] = { -- 男性裸装配置
['tshirt'] = {
comp = 15, -- 胸部(tshirt)组件ID
texture = 0 -- 纹理ID,0 表示默认纹理
},-- 禁用设置为 false
['pants'] = {
comp = 129, -- 裤子(pants)组件ID
texture = 0 -- 纹理ID,0 表示默认纹理
},-- 禁用设置为 false
['shoes'] = {
comp = 78, -- 鞋子(shoes)组件ID
texture = 0 -- 纹理ID,0 表示默认纹理
},-- 禁用设置为 false
['torso'] = {
comp = 15, -- 上半身(torso)组件ID
texture = 0 -- 纹理ID,0 表示默认纹理
},-- 禁用设置为 false
['arms'] = {
comp = 15, -- 手臂(arms)组件ID
texture = 0 -- 纹理ID,0 表示默认纹理
},-- 禁用设置为 false
},
['female'] = { -- 女性裸装配置
['tshirt'] = {
comp = 14, -- 胸部(tshirt)组件ID
texture = 0 -- 纹理ID,0 表示默认纹理
},-- 禁用设置为 false
['pants'] = {
comp = 345, -- 裤子(pants)组件ID
texture = 0 -- 纹理ID,0 表示默认纹理
},-- 禁用设置为 false
['shoes'] = {
comp = 98, -- 鞋子(shoes)组件ID
texture = 0 -- 纹理ID,0 表示默认纹理
},-- 禁用设置为 false
['torso'] = {
comp = 58, -- 上半身(torso)组件ID
texture = 0 -- 纹理ID,0 表示默认纹理
},-- 禁用设置为 false
['arms'] = {
comp = 20, -- 手臂(arms)组件ID
texture = 0 -- 纹理ID,0 表示默认纹理
},-- 禁用设置为 false
},
},
UsingSleepingOutfit = true, -- 如果设置为 true,玩家会被自动穿上睡衣;如果设置为 false,玩家可以自行准备睡衣
SleepingOutfit = { -- 玩家睡觉时穿着的默认睡衣配置
['male'] = { -- 男性睡衣配置
['tshirt'] = {
comp = 15, -- 胸部(tshirt)组件ID
texture = 0 -- 纹理ID,0 表示默认纹理
}, -- 禁用设置为 false
['pants'] = {
comp = 129, -- 裤子(pants)组件ID
texture = 0 -- 纹理ID,0 表示默认纹理
},-- 禁用设置为 false
['shoes'] = {
comp = 78, -- 鞋子(shoes)组件ID
texture = 0 -- 纹理ID,0 表示默认纹理
},-- 禁用设置为 false
['torso'] = {
comp = 15, -- 上半身(torso)组件ID
texture = 0 -- 纹理ID,0 表示默认纹理
},-- 禁用设置为 false
['arms'] = {
comp = 55, -- 手臂(arms)组件ID
texture = 0 -- 纹理ID,0 表示默认纹理
},-- 禁用设置为 false
},
['female'] = {
['tshirt'] = {
comp = 14, -- 胸部(tshirt)组件ID
texture = 0 -- 纹理ID,0 表示默认纹理
},-- 禁用设置为 false
['pants'] = {
comp = 345, -- 裤子(pants)组件ID
texture = 1 -- 纹理ID,1 表示某种特定纹理
},-- 禁用设置为 false
['shoes'] = {
comp = 98, -- 鞋子(shoes)组件ID
texture = 0 -- 纹理ID,0 表示默认纹理
},-- 禁用设置为 false
['torso'] = {
comp = 1101, -- 上半身(torso)组件ID
texture = 1 -- 纹理ID,1 表示某种特定纹理
},-- 禁用设置为 false
['arms'] = {
comp = 20, -- 手臂(arms)组件ID
texture = 0 -- 纹理ID,0 表示默认纹理
},-- 禁用设置为 false
},
}
}
Config.Items = { -- 配置可用的物品列表
'pregtest', -- 孕妇试纸
'condom', -- 避孕套
'planb' -- 计划B(紧急避孕药)
}
Config.Positions = { -- 配置性行为的位置/姿势
[1] = 'kou jiao', -- 口交
[2] = 'Doggystyle', -- 狗式
[3] = 'Front Sex', -- 传教士式
[4] = 'kou jiao 2', -- 口交 2
[5] = 'Front Ontop', -- 传教士式(女上位)
}
Config.Controls = {
['invite'] = 38, -- 邀请进行性行为 [E]
['acceptinvite'] = 38, -- 接受邀请 [E]
['denyinvite'] = 20, -- 拒绝邀请 [Z]
['sleep'] = 20, -- 睡觉 [Z]
['sleepright'] = 175, -- 睡觉右键 [右箭头]
['sleepleft'] = 174, -- 睡觉左键 [左箭头]
['sleepstop'] = 38, -- 停止睡觉 [E]
['creampie'] = { -- 完成性行为(内射)组合键
21, -- 左Shift
20, -- Z
},
['switchright'] = 175, -- 切换姿势右键 [右箭头]
['switchleft'] = 174, -- 切换姿势左键 [左箭头]
['stopsex'] = 38, -- 停止性行为 [E]
['squirt'] = 38, -- 完成性行为 [E]
['remove'] = 20, -- 删除场景 [Z]
['getinandouthospitalbed'] = 20, -- 进入/离开医院床 [Z]
['headingfinish'] = 38, -- 完成姿势设置 [E]
['headingleft'] = 174, -- 设置方向左键 [左箭头]
['headingright'] = 175, -- 设置方向右键 [右箭头]
['positionfinish'] = 38, -- 完成位置设置 [E]
}
Config.Locales = {
['nearest'] = '[~g~E~w~] He Zui Jin De Ren Zuo Ai!',
['havesex'] = 'Zuo Ai Ma? [~g~E~w~] Jie Shou | [~r~Z~w~] Jue Jie',
['delete'] = '[~r~Z~w~] Shan Chu Wei Zhi',
['sleep'] = '[~g~Z~w~] Shui Jiao',
['planb'] = 'Ni yong le B ji hua, xi wang ta qi zuo yong.',
['dontneed'] = 'Ni bu xu yao zhe ge',
['waiting'] = '~r~Deng dai yao qing hui da!',
['getout'] = '[E] Li kai chuang',
['side'] = '[~g~ZUO/YOU Jian~w~] Xuan ze fang xiang',
['switch'] = '[~g~E~w~] Huan wei zhi',
['select'] = '[~g~YOU/ZUO Jian~w~] Xuan ze wei zhi',
['currentpos'] = 'Dang qian wei zhi: ~y~',
['denied'] = 'Ta men ju jue le ni de yao qing.',
['accepted'] = 'Ta men jie shou le ni de yao qing!',
['stopsex'] = '[~r~Z~w~] Ting zhi zuo ai',
['creampie'] = '[~r~Shift + Z~w~] Wan cheng nei she',
['squirt'] = '[~g~E~w~] Fen she',
['getinhospitalbed'] = '[Z] Jin ru yi yuan chuang',
['getouthospitalbed'] = '[Z] Li kai yi yuan chuang',
['usebed'] = '[~g~E~w~] Zai zhe zhang chuang shang shui jiao',
['cancelsleep'] = '[~r~Z~w~] Qu xiao',
['takeoff'] = 'Ni qu xia le bi yun tao.',
['givingbirth'] = 'Zheng zai sheng hai zi!',
['cannot'] = 'Ni wu fa shi yong zhe ge.',
['positive'] = 'Jian ce jie guo wei yang xing!',
['negative'] = 'Jian ce jie guo wei yin xing!',
['givebirth1'] = 'Ni jiang zai: ',
['min'] = ' Fen zhong hou sheng chan!',
['sceneposition'] = 'Chuang Jian Wei Zhi [~g~E~w~]',
['sceneheading'] = 'Tiao Zheng Fang Xiang [~g~Zuo/You~w~]',
['headingfinish'] = 'Que Ding [~g~E~w~]',
}
if not IsDuplicityVersion() then -- 客户端
function Notify(text, type)
-- 自定义代码,用于自定义通知
end
function Progressbar(text, time) -- time 单位为毫秒
exports['progressBars']:startUI(time, text) -- https://github.com/KyroWasHere/progressBars 可以根据需要修改
end
function onAlertPrego()
if Config.Variables.UsingKDisease then
exports['k_diseases']:CatchDisease('头晕', 100, true)
end
-- 当玩家被提醒离分娩还有多少分钟时
-- 你可以添加一些声音或者其他效果?
end
function onStopSleeping()
-- 玩家起床时的自定义代码
PutOnClothing()
end
function onGetPrego()
end
function onStopSex(mode)
-- mode 1 == 男性,mode 2 == 女性
Wait(5000)
PutOnClothing()
end
function onHaveBaby(gender)
NotifyFramework('你生了一个' .. gender .. '!', 'success')
-- 当有人生孩子时的自定义代码!
end
end
function GetCore()
if not IsDuplicityVersion() then -- 客户端
if Config.Variables.Framework == 'QB' then
return exports['qb-core']:GetCoreObject()
elseif Config.Variables.Framework == 'ESX' then
local ESX = nil
Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent(Config.Variables.ESXSharedObject, function(obj) return obj end)
Wait(0)
end
end)
end
else -- 服务器端
print('^3感谢使用我的脚本 :) 需要帮助请访问 ^5discord.gg/y6RtPVwkXq ^7')
if Config.Variables.Framework == 'QB' then
return exports['qb-core']:GetCoreObject()
elseif Config.Variables.Framework == 'ESX' then
local ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
return ESX
end
end
return false
end
|