MSK Scripts
Search…
⌃K

Installation

Installation

myMultichar [latest version]
myMultichar [05.12.2021]
myMultichar [01.06.2021 and lower]
This version is using NativeUI_Reloaded

SQL

Run this command at your database
ALTER TABLE `users` ADD COLUMN IF NOT EXISTS `deaths` TINYINT NULL DEFAULT 0;

myMultichar Edits

Go to client.lua and search for this:
if char.isDead == 1 then
character_sub = NativeUI.CreateItem('~c~' .. char.firstname .. ' ' .. char.lastname, '~b~')
mainMenu:AddItem(character_sub)
character_sub:SetRightBadge(BadgeStyle.Lock)
else
character_sub = _menuPool:AddSubMenu(mainMenu, char.firstname .. ' ' .. char.lastname, '~b~')
end
Then replace it with this:
if char.isDead == 1 then
character_sub = NativeUI.CreateItem('~c~' .. char.firstname .. ' ' .. char.lastname, '~r~Max Deaths reached. Please contact support') -- Maximale Tode erreicht, bitte im Support melden
mainMenu:AddItem(character_sub)
character_sub:SetRightBadge(BadgeStyle.Lock)
else
character_sub = _menuPool:AddSubMenu(mainMenu, char.firstname .. ' ' .. char.lastname, '~g~Your Character died ' .. char.deaths .. ' times') -- Dein Charakter ist bereits ' .. char.deaths .. ' mal gestorben
end
I haven't tested this so use this at you own risk!
This version is using NativeUI_Reloaded

SQL

Run this command at your database
ALTER TABLE `users` ADD COLUMN IF NOT EXISTS `deaths` TINYINT NULL DEFAULT 0;
ALTER TABLE `users` ADD COLUMN IF NOT EXISTS `isDead` TINYINT NULL DEFAULT NULL;

myMultichar Edits

Go to client.lua and search for this:
for k, char in pairs(chars) do
-- local character_item = NativeUI.CreateItem(char.firstname .. ' ' .. char.lastname, '~b~')
-- if char.pedModel ~= nil then
-- character_item:SetRightBadge(BadgeStyle.Mask) -- Star
-- end
-- mainMenu:AddItem(character_item)
if char.firstname == nil or char.lastname == nil then
char.firstname = 'Unknown'
char.lastname = 'Unknown'
end
local character_sub = _menuPool:AddSubMenu(mainMenu, char.firstname .. ' ' .. char.lastname, '~b~')
if char.pedModel ~= nil then
-- character_item:SetRightBadge(BadgeStyle.Mask) -- Star
mainMenu.Items[k]:SetRightBadge(BadgeStyle.Mask)
end
local enter = NativeUI.CreateItem(Translation[Config.Locale]['enter_char'], '~b~')
character_sub.SubMenu:AddItem(enter)
enter.Activated = function(sender, index)
character_sub.SubMenu:Visible(false)
TriggerServerEvent('myMultichar:CharSelected', selectedIndex, false)
end
if Config.CanPlayersDeleteTheirCharacter then
local delete = _menuPool:AddSubMenu(character_sub.SubMenu, Translation[Config.Locale]['delete_char'], '~b~')
local deleteConfirm = NativeUI.CreateItem(Translation[Config.Locale]['delete_char_conirm'], '~b~')
delete.SubMenu:AddItem(deleteConfirm)
deleteConfirm.Activated = function(sender, index)
TriggerServerEvent('myMultichar:deleteChar', selectedIndex, max)
_menuPool:CloseAllMenus()
--ShowNotification('~g~Charakter wird gelöscht...')
gotCharData = false
TriggerServerEvent('myMultichar:GetPlayerCharacters')
return
end
end
end
Replace this Code with this one:
for k, char in pairs(chars) do
if char.firstname == nil or char.lastname == nil then
char.firstname = 'Unknown'
char.lastname = 'Unknown'
end
if char.isDead == 1 then
local locked = NativeUI.CreateItem('~c~' .. char.firstname .. ' ' .. char.lastname, '~r~Max Deaths reached. Please contact support') -- Maximale Tode erreicht, bitte im Support melden
mainMenu:AddItem(locked)
locked:SetLeftBadge(BadgeStyle.Lock)
else
local character_sub = _menuPool:AddSubMenu(mainMenu, char.firstname .. ' ' .. char.lastname, '~g~Your Character died ' .. char.deaths .. ' times') -- Dein Charakter ist bereits ' .. char.deaths .. ' mal gestorben
if char.pedModel ~= nil then
-- character_item:SetRightBadge(BadgeStyle.Mask) -- Star
mainMenu.Items[k]:SetRightBadge(BadgeStyle.Mask)
end
local enter = NativeUI.CreateItem(Translation[Config.Locale]['enter_char'], '~b~')
character_sub.SubMenu:AddItem(enter)
enter.Activated = function(sender, index)
character_sub.SubMenu:Visible(false)
TriggerServerEvent('myMultichar:CharSelected', selectedIndex, false)
end
if Config.CanPlayersDeleteTheirCharacter then
local delete = _menuPool:AddSubMenu(character_sub.SubMenu, Translation[Config.Locale]['delete_char'], '~b~')
local deleteConfirm = NativeUI.CreateItem(Translation[Config.Locale]['delete_char_conirm'], '~b~')
delete.SubMenu:AddItem(deleteConfirm)
deleteConfirm.Activated = function(sender, index)
TriggerServerEvent('myMultichar:deleteChar', selectedIndex, max)
_menuPool:CloseAllMenus()
--ShowNotification('~g~Charakter wird gelöscht...')
gotCharData = false
TriggerServerEvent('myMultichar:GetPlayerCharacters')
return
end
end
end
end
I haven't tested this so use this at you own risk!
This version is using the normal NativeUI

SQL

Run this command at your database
ALTER TABLE `users` ADD COLUMN IF NOT EXISTS `deaths` TINYINT NULL DEFAULT 0;
ALTER TABLE `users` ADD COLUMN IF NOT EXISTS `isDead` TINYINT NULL DEFAULT NULL;

myMultichar Edits

Go to client.lua and search for this:
for k, char in pairs(chars) do
-- local character_item = NativeUI.CreateItem(char.firstname .. ' ' .. char.lastname, '~b~')
-- if char.pedModel ~= nil then
-- character_item:SetRightBadge(BadgeStyle.Mask) -- Star
-- end
-- mainMenu:AddItem(character_item)
if char.firstname == nil or char.lastname == nil then
char.firstname = 'Unknown'
char.lastname = 'Unknown'
end
local character_sub = _menuPool:AddSubMenu(mainMenu, char.firstname .. ' ' .. char.lastname, '~b~')
if char.pedModel ~= nil then
-- character_item:SetRightBadge(BadgeStyle.Mask) -- Star
mainMenu.Items[k]:SetRightBadge(BadgeStyle.Mask)
end
local enter = NativeUI.CreateItem(Translation[Config.Locale]['enter_char'], '~b~')
character_sub:AddItem(enter)
enter.Activated = function(sender, index)
character_sub:Visible(false)
TriggerServerEvent('myMultichar:CharSelected', selectedIndex, false)
end
if Config.CanPlayersDeleteTheirCharacter then
local delete = _menuPool:AddSubMenu(character_sub, Translation[Config.Locale]['delete_char'], '~b~')
local deleteConfirm = NativeUI.CreateItem(Translation[Config.Locale]['delete_char_conirm'], '~b~')
delete:AddItem(deleteConfirm)
deleteConfirm.Activated = function(sender, index)
TriggerServerEvent('myMultichar:deleteChar', selectedIndex, max)
_menuPool:CloseAllMenus()
--ShowNotification('~g~Charakter wird gelöscht...')
gotCharData = false
TriggerServerEvent('myMultichar:GetPlayerCharacters')
return
end
end
end
Replace this Code with this one:
for k, char in pairs(chars) do
if char.firstname == nil or char.lastname == nil then
char.firstname = 'Unknown'
char.lastname = 'Unknown'
end
if char.isDead == 1 then
local locked = NativeUI.CreateItem('~c~' .. char.firstname .. ' ' .. char.lastname, '~r~Max Deaths reached. Please contact support') -- Maximale Tode erreicht, bitte im Support melden
mainMenu:AddItem(locked)
locked:SetLeftBadge(BadgeStyle.Lock)
else
local character_sub = _menuPool:AddSubMenu(mainMenu, char.firstname .. ' ' .. char.lastname, '~g~Your Character died ' .. char.deaths .. ' times') -- Dein Charakter ist bereits ' .. char.deaths .. ' mal gestorben
if char.pedModel ~= nil then
-- character_item:SetRightBadge(BadgeStyle.Mask) -- Star
mainMenu.Items[k]:SetRightBadge(BadgeStyle.Mask)
end
local enter = NativeUI.CreateItem(Translation[Config.Locale]['enter_char'], '~b~')
character_sub:AddItem(enter)
enter.Activated = function(sender, index)
character_sub:Visible(false)
TriggerServerEvent('myMultichar:CharSelected', selectedIndex, false)
end
if Config.CanPlayersDeleteTheirCharacter then
local delete = _menuPool:AddSubMenu(character_sub, Translation[Config.Locale]['delete_char'], '~b~')
local deleteConfirm = NativeUI.CreateItem(Translation[Config.Locale]['delete_char_conirm'], '~b~')
delete:AddItem(deleteConfirm)
deleteConfirm.Activated = function(sender, index)
TriggerServerEvent('myMultichar:deleteChar', selectedIndex, max)
_menuPool:CloseAllMenus()
--ShowNotification('~g~Charakter wird gelöscht...')
gotCharData = false
TriggerServerEvent('myMultichar:GetPlayerCharacters')
return
end
end
end
end

ESX Ambulancejob

If you set Config.countDeath = false then do the following:
Go to esx_ambulancejob/client/main.lua and search for
function RemoveItemsAfterRPDeath()
In this function search for
RespawnPed(PlayerPedId(), RespawnCoords, ClosestHospital.heading)
and replace it with
RespawnPed(PlayerPedId(), RespawnCoords, ClosestHospital.heading, true)
Below that you will find this function:
function RespawnPed(ped, coords, heading)
Replace it with this:
function RespawnPed(ped, coords, heading, isDied)
SetEntityCoordsNoOffset(ped, coords.x, coords.y, coords.z, false, false, false)
NetworkResurrectLocalPlayer(coords.x, coords.y, coords.z, heading, true, false)
SetPlayerInvincible(ped, false)
ClearPedBloodDamage(ped)
TriggerServerEvent('esx:onPlayerSpawn')
TriggerEvent('esx:onPlayerSpawn')
TriggerEvent('playerSpawned') -- compatibility with old scripts, will be removed soon
if isDied then
TriggerServerEvent('msk_deathcounter:countDeaths')
end
end
Now restart your server and have fun :)