• Страница 1 из 1
  • 1
Архив - только для чтения
Модератор форума: andycrowz  
Получение опыта при убийстве моба меньшего лвла
Hellion
Центурион
Всем привет.
Ребят, подскажите как отключить\либо уменьшить разницу в уровнях при убийстве моба меньшего уровня, чем персонаж.
Иными словами: Как сделать ,чтобы персонаж 80 уровня, убивая моба 75 уровня , не получал опыта ?
Через базу или ядро, значения не имеет.
Сообщение # 1 отредактировано Hellion - Среда, 24.09.2014, 21:10
Dissy
Death God
Цитата
#
# Rate.Reputation.LowLevel.Kill
# Description: Reputation gain from killing low level (grey) creatures.
# Default: 1

Rate.Reputation.LowLevel.Kill = 1
[Мануал] Создание своего портала для 3.3.5

Ищу спонсора для своего сервера. Мой скайп - pifpaflol
Сообщение # 2 написано 24.09.2014 в 21:54
Hellion
Центурион
Цитата Dissy ()
#
# Rate.Reputation.LowLevel.Kill
# Description: Reputation gain from killing low level (grey) creatures.
# Default: 1

Rate.Reputation.LowLevel.Kill = 1


Спасибо.
Сообщение # 3 отредактировано Hellion - Четверг, 25.09.2014, 00:06
Evrial
Маршал
Цитата Hellion ()
не получал опыта ?

Цитата Hellion ()
Reputation (РЕПУТАЦИЯ!!!! НЕ ОПЫТ!!!) gain from killing low level (grey) creatures.

Вы не родственники кличка??? smile
Сообщение # 4 отредактировано Evrial - Четверг, 25.09.2014, 00:04
Hellion
Центурион
Цитата Evrial ()
Вы не родственники кличка???

Шутку оценил) Не обратил внимания на это. Это не то, что мне нужно.
Так что вопрос по прежнему актуален.
Сообщение # 5 написано 25.09.2014 в 00:07
Dissy
Death God
Извиняюсь, сам не долглядел smile
[Мануал] Создание своего портала для 3.3.5

Ищу спонсора для своего сервера. Мой скайп - pifpaflol
Сообщение # 6 написано 25.09.2014 в 11:11
Evrial
Маршал
Ну ладно. уговорили.

Есть интересные параметры в конфиге:
Код
Quests.LowLevelHideDiff = 4
Quests.HighLevelHideDiff = 7

Они отвечают за отображение квестов в зависимости от левела. Но я бы этим путём не совался.

Как я понял, ТСу нужно корректировать разницу в уровне игрока и моба при которой будет даваться экспа.

Открываем исходник (ага. без него никуда). Дальше ищем где же конкретно функция того самого действия, в котором игрок киляет моба. Она будет скорее всего или в player.cpp или в Unit.cpp. Дальше, когда нашли саму функцию, смотрим где место в котором берётся левел моба (будет нечто if (target/victrim) target->GetLevel()). После этого пойдёт сравнение с левелом игрока. Ну и вот там по смыслу и нужно поменять.

Очень просто будет найти место вычислений если пойти по ниточке параметра конфига Rate.XP.Kill. Он там учитывается, а значит мимо не пройдёшь.

Ну я бы вот так делал. Это если прям внедриться в вопрос. А по факту - хз зачем это нужно.
Сообщение # 7 написано 26.09.2014 в 01:10
Hellion
Центурион
Цитата Evrial ()
Ну я бы вот так делал. Это если прям внедриться в вопрос. А по факту - хз зачем это нужно.

Спасибо за инфу, вечерком попробую сделать,напишу результат.
А нужно для того чтобы персонаж 241 лвл,убивая моба или босса 240 не повышал себе лвл.. Ибо он его должен в другом месте повышать) да можно сделать боссу лвл меньше и все,но мне хочется имеено уменьшить разброс)
Сообщение # 8 написано 26.09.2014 в 13:32
_dm666
<3 Death Metal
Сообщение # 9 написано 27.09.2014 в 10:42
Evrial
Маршал
Сообщение # 10 написано 27.09.2014 в 13:13
p620
Маршал
Цитата _dm666 ()
http://collab.kpsn.org/display....s_extra Флаг 64.

И смысл? За убийство такого моба никто экспы не получит.
Сообщение # 11 написано 27.09.2014 в 18:00
Dimitro
Praise the sun!
Пишем срипт.
Юзаем хук OnGainCalculation(uint32& gain, Player* player, Unit* unit)

Например так:
Код
class blablabla : public FormulaScript
{
       public:
            blablabla () : FormulaScript("blablabla ") {}

        void OnGainCalculation(uint32& gain, Player* player, Unit* unit)
        {
            if(player->getLevel() > unit->getLevel())
                gain = 0;
            return;
        }
};


Код не проверял, методы возможно уже изменились (например getLevel стал GetLevel, мне лень уточнять).
Добавляете нужные проверки, например на entry моба, или еще там что-нибудь, и все должно работать.
Arcanum Core © Dev.
Для запросов на выдачу наград/снятие замечаний есть темы в Работе Портала. Не пишите по этому поводу в личку.
Сообщение # 12 отредактировано Dimitro - Суббота, 27.09.2014, 23:37
_dm666
<3 Death Metal
Цитата p620 ()
И смысл? За убийство такого моба никто экспы не получит.

А ты уровень получаешь без опыта? Это какое-то нововведение тринити или что?
Логично, что уровень дается за получаемый опыт, а если ты не получаешь опыт, то и уровень тоже.
Сообщение # 13 написано 27.09.2014 в 23:49
p620
Маршал
Цитата _dm666 ()
А ты уровень получаешь без опыта? Это какое-то нововведение тринити или что? Логично, что уровень дается за получаемый опыт, а если ты не получаешь опыт, то и уровень тоже.

Ох беда. Опять, между прочим. Перечитай ещё раз тему и посмотри, о чём ИМЕННО пишет ТС.
Сообщение # 14 написано 27.09.2014 в 23:55
Dimitro
Praise the sun!
Цитата _dm666 ()
А ты уровень получаешь без опыта? Это какое-то нововведение тринити или что?
Логично, что уровень дается за получаемый опыт, а если ты не получаешь опыт, то и уровень тоже.

Ключевое слово НИКТО.
НИКТО не получит опыта и, соответственно, уровень.
Даже равные с мобом по уровню или те, у кого уровень ниже.
Arcanum Core © Dev.
Для запросов на выдачу наград/снятие замечаний есть темы в Работе Портала. Не пишите по этому поводу в личку.
Сообщение # 15 отредактировано Dimitro - Суббота, 27.09.2014, 23:56
  • Страница 1 из 1
  • 1
Поиск: