Тирес, пока ты не поймешь что предложения должны быть конкретными а не размытыми никто не будет тебя всерьез воспринимать)
К счастью мой гениальный умище
нашел для твоей проблемы полчасика и обдумал ее с разных сторон. Я придумал оригинально решение, состоящее из двух частей, которые можно применять как вместе так и порознь.
итак...
1.Добавляем два генеральных фита - Мародерство и Сохранение вещей. Фиты без ограничений и пререквезитов, но взаимоисключающие. То есть взяв один из них нельзя взять второй.
Далее рассматриваем ситуации когда один игрок убивает другого:
1) у обоих игроков нет ни одного из этих фитов, либо у обоих игроков есть фит Мародерство, либо у одного из игроков есть фит Мародерство, у второго нет ни одного из этих фитов - в этих случаях дроп идет по той же формуле что и сейчас.
2) у обоих игроков есть фит Сохранение вещей либо у одного есть фит Сохранение вещей, а у второго нет ни одного из этих фитов - в этих случаях дропа надетых вещей нет, вообще. Кто бы кого ни убил, надетые вещи не выпадают. Бэк пак естественно как обычно падает.
3) у одного игрока есть фит Сохранение вещей, а у другого - Мародерство. В этом случае действует особый скрипт дропа, к примеру старый - броня и шлем не падают в любом случае, из остальных вещей может выпасть максимум одна.
Во всех трех случаях неважно у кого, убийцы или убитого, какой фит есть или нет. Они в равных условиях.
То есть если человек не привязывается к вещам или вообще не собирается особо ПвПшить то он может забить на эти фиты.
Если человек очень хочет сохранить свои вещи в случае ПвП то он берет фит Сохранить вещи. Тогда он может потерять максимум одну вещь в 1 случае из 3-х - когда у его противника будет фит Мродерства. Но обратная сторона - в бою с ним тоже никто ничего не потеряет, только тот у кого будет Мародерство и максимум одну вещь.
Если же человек хочет выбивать вещи из других он берет фит Мародерства и тогда в любом случае есть вероятность хоть что то от жертвы да получить. Но и аналогичная вероятность потерять что то свое.
Конечно дроп при смерти от моба не меняется.
2.Теперь подумаем о самой формуле вероятности дропа. Сила чара у нас характеризуется перво наперво уровнем. Но одного уровня мало, нужно учесть еще что то. В данный момент этим еще чем то лучше всего взять коэфициент опыта, ибо именно он наиболее объективно отражает силу чара. Я люблю разные условные величины, абстракции и формулы
Итак, формула:
Х1 = лвлЖ/лвлУ - уровень жертвы деленный на уровень убийцы
Х2 = коэфУ/коэфЖ - коэфициент опыта убийцы деленный на коэфициент опыта жертвы
Х1*Х2 = вероятность выпадения каждой конкретной надетой вещи.
Сделаем отступление, как работает эта вероятность? При смерти чара на каждую надетую на него вещь бросается чек, если он провален - вещь падает, если упало максимально возможное количество вещей то дальше чеки не кидаются. Через определение порядка чеков можно регулировать ценность падащего шмота, ясно что то на что чеки позже выпадет с гораздо меньшей вероятностью.
Либо - при смерти кидается чек, если он провален значит одна вещь должна выпасть, рандомом определяется какая. Если ограничение по максимольно возможному к потере вещей не достигнуто чек кидается повторно.
Итак, Х1 учитывает уровень чаров, Х2 - коэфициенты опыта. То есть если чары одного уровня и с примерно равными коэфициентами то вероятность падения будет стремиться к 1*1=1, 1%
Если чары будут иметь одинаковые коэфициенты то актуальной будет только разница в уровнях. Если старший убьет младшего то вероятность будет меньше 1%, если наоборот - младший старшего - больше.
Если чары будут примерно одного уровня, то есть Х1 стремится к 1 то значение будет иметь только коэфициент опыта. Чем меньше коэфициент опыта убийцы по сравнению с убиваемым тем меньше шанс на падение лута. Минимальный вариант - 0,25%, если сорк с коэфом 0,5 убьет барда с коэфом 2,5.
Далее, граничные ситуации - сорк 40 убивает барда 1, имеем 1/40 * 0.5/2.5 = 0.05%
Если Сорк 1 убивает барда 40 имеем - 40/1 * 0.5/2.5 = 8%
Если Бард 40 убивает сорка 1 имеем - 1/40 * 2.5/0.5 = 0.125%
Если бард 1 убивает сорка 40 имеем - 40/1 * 2.5/0.5 = 200%
Вот тут видим нехорошую вещь. Но с другой стороны - ни один чар с коэфициентом выше 1.5 не сможет убить при такой разнице в уровнях. Правда всегда есть свитки. К этому вопросу вернемся чуть позже, продолжим считать.
Если сорк 20 убьет барда 25 - 25/20 * 0.5/2.5 = 0.25%
Если бард 25 убьет сорка 20 - 20/25 * 2.5/0.5 = 4%
Если сорк 25 убьет барда 20 - 20/25 * 0.5/2.5 = 0.16%
Если бард 20 убьет сорка 25 - 25/20 * 2.5/0.5 = 6.25%
То есть как по мне граничные значения получаются вполне приличные и приемлемые, а значит а значения между ними будут достаточно подходящими. Правда вероятности выходят очень маленькими, но это решается путем умножения на константу, то есть Х1*Х2*К, где К можно взять в диапазоне от 3 до 10 вполне без проблем, можно даже диапазон сделать динамически зависимым от чего то.
Как мы видели есть проблема - все вроде красиво но нет нет да и выскочит какая то дикая вероятность. Предусмотреть все таки ситуации слишком сложно, мы пойдем по легкому пути - если вероятность выходит меньше 1% она приравнивается к 1%, если больше 20% - приравнивается к 20%. То есть минимальный шанс потерять вещь - 1%, максимальный - 20%.
Второй подход можно применить к первому в разной степени, но лучшим вариантом мне кажется если формулу из второго подхода поставить в первый полностью, сделав только разное ограничение на количество выпадающих вещей. То есть в ситуации 1.1 может выпасть до 2-3 вещей, в ситуации 1.3 - только одна вещь, и это не доспех и не шлем.
Стало быть вот, можете пытаться критиковать, если конечно хоть что то понятно ) При критике лучше пользоваться реальными числами подставленными в формулу, если критикуется именно она.