Как сделать что бы когда человек умирал или его убивали,то с его кармана выпадали все деньги и + исчезала лицензия? Не будет же игрок носить с собой миллионы в кармане,для этого есть банкоматы. И в settings.lua там только настройка выпадения денег одноразовой смерти (т.e выпадения определенной суммы для всех игроков) Буду рад если кто то поможет)
Выпадение денег
Поменять на
if GAMEMODE.Config.dropmoneyondeath then
local amount = ply:getDarkRPVar("money")
if amount > 0 then
ply:addMoney(-amount)
DarkRP.createMoneyBag(ply:GetPos(), amount)
end
end
Удаление лицензии
Вписывать в SV часть.
Код удаляет лицензию после смерти у людей, которые взяли у мэра. Но не у людей у которых сразу есть лицензия (Полиция, Спецназ и тд)
hook.Add("PlayerDeath", "RemoveLicenseOnDeath", function(ply)
local job = RPExtraTeams[ply:Team()]
if ply:getDarkRPVar("HasGunlicense") and not job.hasLicense then
ply:setDarkRPVar("HasGunlicense", nil)
DarkRP.notify(ply, 1, 4, "Ваша лицензия теперь недействительна.")
end
end)
Я заменил код на тот который ты мне предложил. Но ничего не изменилось,снимаются только те деньги которые были указаны в settings.lua
Перезагрузил сервер? Код 100% рабочий
Перезагрузил сервер,но как я и сказал ранее снимаются только те деньги которые были указаны в settings.lua. Держи скрин кода
Да,но прикол еще кстати в том что у меня строчек меньше чем в коде гитхаба
Там 1140 строчек а у меня 965 строчек. и на 545 строчке у меня
ply.LastLetterMade = CurTime() - 61
ply.LastVoteCop = CurTime() - 61
ply:SetTeam(GAMEMODE.DefaultTeam)
ply.DarkRPInitialised = true
-- Whether or not a player is being prevented from joining
-- a specific team for a certain length of time
if GAMEMODE.Config.restrictallteams then
for i = 1, #RPExtraTeams do
ply:teamBan(i, 0)
end
end
end
Значит версия старая. Ищи эти строки у себя в файле и заменяй их моими
Я так и сделал. Код который надо было заменить на 426 - 433 строчке
Попробую щас полностью заменить код с гитхаба и заменить код.
У меня кстати darkrpfix GitHub - timegivenzero/Darkrp-2.7-Fix: Removed Billboards, Brought Back Adverts, Lowered Delay from 2.5 to 1.0 Если эта версия дарк рп старая,можешь пожалуйста скинуть новую?
Всегда актуальную версию DarkRP можно получить тут:
А фикс на Billboard есть в виде кода тут:
Странно, я поменял gamemode darkrp на новый и код был на 545 строчке как и на гитхабе,я его заменил. Но когда тебя убивают или ты умираешь сам все деньги с кошелька не выпадают,выпадает только то что указал в settings.lua
Может быть у тебя с кодом что то не то? Просто как он может не работать когда я уже поставил новый дарк рп и заменил код гитхаба на твой
Код не может “не работать”. Там всё рабочее. У меня также всё работает
А может быть это из за того что у меня не установлена система инвентаря? мб что бы от туда выпадали,но у меня деньги после смерти выпадают,но не все. Это странно
У меня это по пути: E:\ServerGmod\steamapps\common\GarrysModDS\garrysmod\gamemodes\darkrp\gamemode\modules\base
Я не понимаю почему код не работает,если я делаю по сути все правильно.
Инвентарь тут не причем.
Поищи в файле строку “GAMEMODE.Config.deathfee
”
Если есть то отправь скриншот
“GAMEMODE.Config.deathfee
” искать в sv_gamemode_functions.lua? Если да ,то у меня нету этой строчки. Или скажи число строки
sv_gamemode_functions.lua (35,1 КБ)
Вот код,мб сам чет можешь посмотреть
Потому что вы гении - вы сперва забираете все деньги, а потом нулевое значение спавните -_-
Просто хук юзай и все (lua/autorun/server)
local hook_Add = hook.Add
local rp = DarkRP
local function postdeath(ply)
if IsValid(ply) && ply:IsPlayer() && !ply:IsBot() then
local allmoney = ply:getDarkRPVar('money')
rp.createMoneyBag(ply:GetPos(), allmoney)
ply:addMoney(-allmoney)
ply:setDarkRPVar("HasGunlicense", nil)
end
end
hook_Add('PlayerDeath', 'DropMoneyNlicense', postdeath)
Я просто сделал как в гитхабе
Но у меня почему то работает
Фиговый гитхаб значит)
Структура кода же:
- забираем деньги которые есть у игрока (деньги = 0)
- спавним все деньги игрока (а они у нас = 0 поэтому спавнить нечего)