Skip to content
La2Base
Home
DownloadsWikiForumFAQ
Search
ruen
Sign up Login
HomeFilesWikiLogin
  • Home
  • Downloads
  • Wiki
  • FAQ
  • Contact Us
  • About
  • Rules
  • Privacy
  • Terms of Service

© 2026 la2base.com · All rights reserved

ruen
Forum/Форум для новичков[JAVA]/[question] Фикс скила,добавление виталити
Search

[question] Фикс скила,добавление виталити

41 replies527 viewsCurrently viewing: 1
megaster
megaster

User

Участник

Posts: 77

На форуме с: 03/23/2009

Репутация: +13

Рейтинг: 0

· 05/11/2009, 06:28 AM

Сборка- La2Phoenix
Проблема- скил Backstab бьёт не только в спину но и в пузо,хотя должен работать только в спину,как можно исправить? вот код скила в сборке:

Код
<skill id="30" levels="37" name="Backstab">
        <!-- Done by Diamond -->
        <table name="#effectPoint">305 313 321 329 338 346 354 363 371 379 387 395 404 412 420 428 435 443 451 458 465 472 479 486 493 499 506 512 517 523 528 533 538 543 547 551 554</table>
        <table name="#magicLevel">38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74</table>
        <table name="#power">1107 1176 1249 1325 1405 1488 1574 1664 1757 1853 1953 2057 2164 2274 2388 2505 2625 2748 2875 3004 3136 3271 3408 3548 3690 3834 3980 4127 4275 4425 4575 4726 4878 5029 5180 5330 5479</table>
        <table name="#elementPower">0</table>
        <table name="#element">6</table>
        <set name="effectPoint" val="#effectPoint" />
        <set name="magicLevel" val="#magicLevel" />
        <set name="power" val="#power" />
        <set name="weaponsAllowed" val="16" />
        <set name="target" val="TARGET_ONE" />
        <set name="overHit" val="true" />
        <set name="behind" val="true" />
        <set name="onCrit" val="true" />
        <set name="directHp" val="true" />
        <set name="reuseDelay" val="11000" />
        <set name="coolTime" val="720" />
        <set name="skillType" val="FATALBLOW" />
        <set name="operateType" val="OP_ACTIVE" />
        <set name="critical" val="true" />
        <set name="lethal1" val="10" />
        <set name="nextAction" val="attack" />
        <set name="elementPower" val="#elementPower" />
        <set name="element" val="#element" />
        <enchant1 levels="30" name="Power">
            <table name="#power">5493 5506 5520 5534 5547 5561 5575 5588 5602 5616 5629 5643 5657 5670 5684 5698 5711 5725 5738 5752 5766 5779 5793 5807 5820 5834 5848 5861 5875 5889</table>
            <table name="#magicLevel">76 76 76 77 77 77 78 78 78 79 79 79 80 80 80 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85</table>
        </enchant1>
        <enchant2 name="Cost">
            <table name="#magicLevel">76 76 76 77 77 77 78 78 78 79 79 79 80 80 80 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85</table>
        </enchant2>
        <enchant3 name="Fire Attack">
            <table name="#element">0</table>
            <table name="#elementPower">2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60</table>
            <table name="#magicLevel">76 76 76 77 77 77 78 78 78 79 79 79 80 80 80 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85</table>
        </enchant3>
        <enchant4 name="Water Attack">
            <table name="#element">1</table>
            <table name="#elementPower">2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60</table>
            <table name="#magicLevel">76 76 76 77 77 77 78 78 78 79 79 79 80 80 80 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85</table>
        </enchant4>
        <enchant5 name="Wind Attack">
            <table name="#element">2</table>
            <table name="#elementPower">2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60</table>
            <table name="#magicLevel">76 76 76 77 77 77 78 78 78 79 79 79 80 80 80 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85</table>
        </enchant5>
        <enchant6 name="Earth Attack">
            <table name="#element">3</table>
            <table name="#elementPower">2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60</table>
            <table name="#magicLevel">76 76 76 77 77 77 78 78 78 79 79 79 80 80 80 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85</table>
        </enchant6>
    </skill>


Также интересует,можно ли как нибудь вставить виталити в сборку,не имея исходников от неё? Есть декомпилятор сборок,но что именно декомпилить,вот в чём вопрос...и как это будет выглядеть-вставка виталити.В ядре уже есть виталити,но по видимому оно попросту не настроено как нужно.

0
megaster
megaster

User

Участник

Posts: 77

На форуме с: 03/23/2009

Репутация: +13

Рейтинг: 0

· 05/11/2009, 07:30 AM

т.е. Виталити работает,но даёт оно совсем не столько сколько нужно...
приведу пример, на сервере без виталити при рейтах х12 с гремлина 1лвл даётся 2лвл и 95%
на сборке Феникса, с рабочим виталити,на таких же рейтах, с гремлина 1лвл даётся 3лвл и 7%
т.е. виталити работает,просто нужно изменить % добавления икпсы.вот только как это сделать?

0
Mopo3
Mopo3

User

Бывалый

Posts: 341

На форуме с: 10/03/2007

Репутация: +218

Рейтинг: 0

· 05/11/2009, 07:54 AM

Не видел сборку, но в некоторых есть конфиг в которых можно настроить шанс попадания бэкстапа спереди, или в спину.

0
Gradesk
Gradesk

User

Ветеран

Posts: 639

На форуме с: 04/09/2008

Репутация: +619

Рейтинг: 0

· 05/11/2009, 12:24 PM

Я думаю что кроме как в ядре первую проблему не исправить, ибо разные шансы может быть, но чтобы скил не юзался. только в ядре данная проверка идёт.

А что касается виталити, хм, если он есть на сервере (в ядре), то его только подправить при необходимости надо, и всё.

0
megaster
megaster

User

Участник

Posts: 77

На форуме с: 03/23/2009

Репутация: +13

Рейтинг: 0

· 05/11/2009, 12:44 PM

Gradesk: Я думаю что кроме как в ядре первую проблему не исправить, ибо разные шансы может быть, но чтобы скил не юзался. только в ядре данная проверка идёт.

А что касается виталити, хм, если он есть на сервере (в ядре), то его только подправить при необходимости надо, и всё.

"Подправить" - как это можно осуществить?

0
megaster
megaster

User

Участник

Posts: 77

На форуме с: 03/23/2009

Репутация: +13

Рейтинг: 0

· 05/13/2009, 08:28 AM

Ап...

0
megaster
megaster

User

Участник

Posts: 77

На форуме с: 03/23/2009

Репутация: +13

Рейтинг: 0

· 05/14/2009, 06:28 AM

Up...очередной...никто не может подсказать?(

0
B
botvans1

User

Участник

Posts: 61

На форуме с: 12/04/2008

Репутация: +6

Рейтинг: 0

· 05/14/2009, 06:58 AM

Если нету исходников, то лучше не парься....

0
P
Pazzl

User

Участник

Posts: 65

На форуме с: 02/20/2009

Репутация: +20

Рейтинг: 0

· 05/14/2009, 07:37 AM

Вобще-то прохождение бекстаба есть вроде и с лица и с фронта, но с меньшим шансом. но если хочешь только со спины, то попробуй заменить

Код
<set name="behind" val="true" />
на
Код
<target driection="behind" />


По поводу виталити:
конфиг altsettings.properties
настройки:
Код
# Использование более адекватной нестандартной формулы расхода виталити, рекомендуется
AltVitalityFormula = True
# Восстановление виталити за рейда, дефолт 1000
AltVitalityRaidBonus = 1000
# Модификатор уменьшения виталити, дефолт 1 (больше - быстрее, для базовой формулы увеличивать не рекомендуется, уменьшать можно)
AltVitalityConsumption = 1.


Да, чуть не забыл, вот вам кусок кода, отвечающий за расход виталити:
Код
    /**
     * Возвращает отклонение экспы с моба от обычного для уровня
     */
    public static double altVitalityMod(int level, double exp)
    {
        return Config.ALT_VITALITY_CONSUMPTION * exp / EXP[level];
    }

    /**
     * Вероятно оффлайк формула
     */
    public static double baseVitalityMod(int playerLevel, int targetLevel, double exp)
    {
        // exp / targetLevel^2 это оффовый exp_rate, для оффа модификатор затрат виталити равен 25*exp_rate/9
        // а поскольку у нас используется вдвое большая единица делим на 18
        exp = Config.ALT_VITALITY_CONSUMPTION * 25 * exp / (targetLevel * targetLevel * 18);
        if(playerLevel > 79)
            exp *= 2;
        else if(playerLevel > 76)
            exp *= 1.5;
        return exp;
    }

0
megaster
megaster

User

Участник

Posts: 77

На форуме с: 03/23/2009

Репутация: +13

Рейтинг: 0

· 05/14/2009, 09:49 AM

можно узнать откуда вытащен данный код виталити? из какого файла? да и еще может подскажеш как можно изменить пати рейт? насколь я понимаю он тоже заложен в ядре?

0
P
Pazzl

User

Участник

Posts: 65

На форуме с: 02/20/2009

Репутация: +20

Рейтинг: 0

· 05/14/2009, 10:02 AM

megaster: можно узнать откуда вытащен данный код виталити? из какого файла? да и еще может подскажеш как можно изменить пати рейт? насколь я понимаю он тоже заложен в ядре?


Вытащен он из сырцов :)
А именно из l2p.gameserver.model.base.Experience
Что именно ты под пати рейтом подразумеваешь ?

0
megaster
megaster

User

Участник

Posts: 77

На форуме с: 03/23/2009

Репутация: +13

Рейтинг: 0

· 05/14/2009, 10:30 AM

пати рейт- икспа даваемая в пати, т.е. изначально стоит х1, если поставить х2 , то в пати будет идти опыта в 2 раза больше чем без пати.

p.s. Неподскажеш где взял сырцы феникса?) декомпил?) может быть зальёш куда нибудь ?)

Всё,сырцы сам нашёл, т.е. раскомпилил ядро :) и кодик этот нашёл..вот только вопрос..что там можно изменить дабы виталити давало как нужно..оно даёт мб 5-10% к икспе вместо 150-300%...

0
P
Pazzl

User

Участник

Posts: 65

На форуме с: 02/20/2009

Репутация: +20

Рейтинг: 0

· 05/14/2009, 05:56 PM

megaster: пати рейт- икспа даваемая в пати, т.е. изначально стоит х1, если поставить х2 , то в пати будет идти опыта в 2 раза больше чем без пати.

p.s. Неподскажеш где взял сырцы феникса?) декомпил?) может быть зальёш куда нибудь ?)

Всё,сырцы сам нашёл, т.е. раскомпилил ядро :) и кодик этот нашёл..вот только вопрос..что там можно изменить дабы виталити давало как нужно..оно даёт мб 5-10% к икспе вместо 150-300%...


Рейты пати - тебе в l2p.gameserver.model.L2Party
Чтобы давало 5-10%, это в l2p.gameserver.model.L2Player
точно скажу завтра, сейчас сырцов под рукой нет.

не декомпилил. ;)

RTFM источники с оффа.
Виталити дает прирост до 300% к получаемому опыту.

0
megaster
megaster

User

Участник

Posts: 77

На форуме с: 03/23/2009

Репутация: +13

Рейтинг: 0

· 05/15/2009, 06:15 AM

Окей...буду ждать)) заранее спасибо)

0
megaster
megaster

User

Участник

Posts: 77

На форуме с: 03/23/2009

Репутация: +13

Рейтинг: 0

· 05/15/2009, 12:03 PM

ммм вроде бы завтра уже настало..(пазл, мб скажеш номер аси свой? проще будет.

0
P
Pazzl

User

Участник

Posts: 65

На форуме с: 02/20/2009

Репутация: +20

Рейтинг: 0

· 05/15/2009, 12:33 PM

В L2Player

Код
    public float getVitalityBonus()
    {
        switch(getVitalityLevel())
        {
            case 1:
                return 2;
            case 2:
                return 1.5f;
            case 3:
                return 1;
            case 4:
                return 0.5f;
            default:
                return 0;
        }
    }

Меняя возвращаемые числа ты меняешь бонус виталити.

0
megaster
megaster

User

Участник

Posts: 77

На форуме с: 03/23/2009

Репутация: +13

Рейтинг: 0

· 05/15/2009, 01:10 PM

Тогда еще 1 вопрос...вот я изменил в сырцах данные какие либо, как назад можно закомпилить?)

0
P
Pazzl

User

Участник

Posts: 65

На форуме с: 02/20/2009

Репутация: +20

Рейтинг: 0

· 05/15/2009, 01:18 PM

megaster: Тогда еще 1 вопрос...вот я изменил в сырцах данные какие либо, как назад можно закомпилить?)


:) Это уже сложнее :)
надо сделать тебе build.xml для ant :)

0
megaster
megaster

User

Участник

Posts: 77

На форуме с: 03/23/2009

Репутация: +13

Рейтинг: 0

· 05/15/2009, 01:30 PM

"надо сделать тебе build.xml для ant :) "

можно поподробнее?)

0
-=[BloodKill]=-
-=[BloodKill]=-

User

Ветеран

Posts: 1355

На форуме с: 09/01/2008

Репутация: +1179

Рейтинг: 0

· 05/15/2009, 01:44 PM

megaster: "надо сделать тебе build.xml для ant :) "

можно поподробнее?)

Windows => Show View => Other => Ant => щас появится окошко => тыкаешь на кнопку Add buildfiles => появится окно => там выбираешь гейм серв => build.xml

ето в Eclipse

— Оо

0
Topic is closed for replies