Как при смерти выбрасывать % от суммы в кармане? А не статичную сумму как предоставляет drpmodification
в конфиге дрп измени значение GAMEMODE.Config.dropmoneyondeath
на false
что-бы отключить стандартный дроп денег.
после этого загрузи этот код в любой server-side файл:
hook.Add("PostPlayerDeath", "DarkrpDeathMoneyDrop", function(ply)
local amount = math.random(minDeathFee, maxDeathFee)
if not ply:canAfford(amount) then
amount = ply:getDarkRPVar("money")
end
if amount > 0 then
ply:addMoney(-amount)
DarkRP.createMoneyBag(ply:GetPos(), amount)
end
end)
например в garrysmod/lua/autorun/server/drp_deathfee.lua
Хочу отметить, что это делать не желательно ни при каких обстоятельствах (даже в Serious RP, которые по понятным причинам вымерли)
Дроп денег при смерти это мотивация для игрока жить. Даже если у игрока миллионы, то потеря тысячи для него будет все равно неприятна и он в меру своих возможностей будет этого избегать. Но смерти в DarkRP происходят в основном независимо от того, как мы стараемся уцелеть. Они просто происходят. И единственный способ их избежать – не играть или играть не вылезая из дома. Очень весело (нет).
Игра должна доставлять удовольствие
Если сделать, чтобы игрок терял процент своих денег, ты получишь домоседов, которые не хотят умирать. В свою очередь домоседство приводит к скуке и потере интереса к игре. Также процент дропа денег при смерти порождает РДМ как вариант альтернативного фарма. Позже ты захочешь банить этих РДМщиков, тем самым потеряв еще кучу игроков, не говоря уже о внимании, которое придется уделять жалобам на них.
Тебе это нужно?
Не запугивайте своих игроков. Они этого не любят
P.S. Личные грабли
Да) аххаха
Должен добавить, что это ещё и даёт людям ещё одну причину для RDM. Они просто начнут убивать людей, собирать деньги, повторяя это снова и снова, пока администратор не выдаст бан
Я написал об этом
Дай угадаю, у тебя на проекте еще нет игроков?
дай угадаю, он ещё не открыт
Ещё страшнее все, % не выпадает, а просто испаряется, выпадает не более пары тысяч
Бтв, а кто сказал что чувак будет бегать с миллионом долларов в кармане?
Для этого есть банкоматы и пр штуки, в дропе процента от суммы денег в кармане нет ничего плохого.
алсо во многих atm аддонах есть терминалы которые можно использовать для торговли с профессиями типо “Торговец оружия, повар и пр” - так что наличность можно почти не таскать в карманах.
Но я задумался о возможном изменении этой политики на тех серверах, где нет банкоматов
Да)))
Заметил что при смене профы деньги дропаются и чутка подправил хук
hook.Add("PlayerDeath", "DarkrpDeathMoneyDrop", function(ply)
local amount = math.random(1000, 5000)
if not ply:canAfford(amount) then
amount = ply:getDarkRPVar("money")
end
if amount > 1000 then
ply:addMoney(-amount)
DarkRP.createMoneyBag(ply:GetPos(), amount)
end
end)
странно, а почему PostPlayerDeath
вызывается при смене профы?
ты тестировал на дефолтном дрп без аддонов?
тысяча которую ты поставил за место нуля
убивает весь смысл этого кода:
идея в том что-бы если у игрока меньше денег чем amount
, при смерти выпадают все оставшиеся копейки.
буду знать
С аддонами
скорее всего в них и была причина, оно должно норм робить с PostPlayerDeath
что делать если такая ошибка ?
[ERROR] lua/autorun/server/drp_deathfee.lua:2: bad argument #1 to ‘random’ (number expected, got nil)
- random - [C]:-1
- v - lua/autorun/server/drp_deathfee.lua:2
3. unknown - lua/includes/modules/hook.lua:96
Во второй строке замени minDeathFee и maxDeathFee на числа. Например math.random(1000, 5000)