Дроп % денег при смерти?

Как при смерти выбрасывать % от суммы в кармане? А не статичную сумму как предоставляет 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

1 лайк

Хочу отметить, что это делать не желательно ни при каких обстоятельствах (даже в Serious RP, которые по понятным причинам вымерли)

Дроп денег при смерти это мотивация для игрока жить. Даже если у игрока миллионы, то потеря тысячи для него будет все равно неприятна и он в меру своих возможностей будет этого избегать. Но смерти в DarkRP происходят в основном независимо от того, как мы стараемся уцелеть. Они просто происходят. И единственный способ их избежать – не играть или играть не вылезая из дома. Очень весело (нет).

Игра должна доставлять удовольствие

Если сделать, чтобы игрок терял процент своих денег, ты получишь домоседов, которые не хотят умирать. В свою очередь домоседство приводит к скуке и потере интереса к игре. Также процент дропа денег при смерти порождает РДМ как вариант альтернативного фарма. Позже ты захочешь банить этих РДМщиков, тем самым потеряв еще кучу игроков, не говоря уже о внимании, которое придется уделять жалобам на них.

Тебе это нужно?

Не запугивайте своих игроков. Они этого не любят


P.S. Личные грабли

Да) аххаха

Должен добавить, что это ещё и даёт людям ещё одну причину для RDM. Они просто начнут убивать людей, собирать деньги, повторяя это снова и снова, пока администратор не выдаст бан

Я написал об этом

Дай угадаю, у тебя на проекте еще нет игроков?

дай угадаю, он ещё не открыт :sweat_smile:

Ещё страшнее все, % не выпадает, а просто испаряется, выпадает не более пары тысяч

Бтв, а кто сказал что чувак будет бегать с миллионом долларов в кармане?
Для этого есть банкоматы и пр штуки, в дропе процента от суммы денег в кармане нет ничего плохого.
алсо во многих 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)

  1. random - [C]:-1
  2. v - lua/autorun/server/drp_deathfee.lua:2
    3. unknown - lua/includes/modules/hook.lua:96

Во второй строке замени minDeathFee и maxDeathFee на числа. Например math.random(1000, 5000)