Как работать с питомцами

Формат: XML
Местонахождение: data/stats/pets/
Файл: pet_data.xml
Схема: pet_data.dtd

Возьмем для примера Wolf пета и разберем его поля:
XML:
<pet id="12077" max_lvl="81"> <!-- Wolf -->
        <set name="control_item_id" value="2375"/>
        <set name="food_item_id" value="2515"/>
        <set name="is_wolf" value="true" />
        <set name="min_level" value="1"/>
        <set name="exp" value="0 636 798 1236 2158 3836 6598 10836 16998 25596 37198 52436 71998 96636 127158 164436 209398 263036 326398 400596 486798 586236 700198 830036 977158 1143036 1329198 1537236 1768798 2025596 2309398 2622036 2965398 3341436 3752158 4199636 4685998 5213436 5784198 6400596 7064998 7779836 8547598 9370836 10252158 11194236 12199798 13271636 14412598 15625596 17557599 19606656 21777399 24074556 26502939 29922294 33529819 37332294 41336619 45549814 52193622 59172334 66497022 74178934 82229502 93470612 105234462 117537012 130394462 143823252 157840062 176117249 198983024 226778887 259859867 298594764 352320714 412836202 480562077 555934039 639402879"/>
        <set name="hp" value="31 37 45 53 63 73 85 98 113 128 146 157 169 182 195 208 223 238 254 270 287 305 324 343 364 385 406 429 453 477 502 528 554 582 610 639 669 700 731 763 796 830 864 899 935 971 1008 1045 1084 1122 1161 1201 1240 1281 1321 1362 1403 1444 1485 1527 1568 1609 1651 1692 1732 1773 1813 1853 1892 1931 1969 2006 2043 2079 2114 2148 2182 2214 2245 2275 2304"/>
        <set name="hp_regen" value="2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9"/>
        <set name="mp" value="25 30 34 39 44 49 54 59 64 69 74 79 84 90 95 100 106 111 117 122 131 139 148 157 165 174 183 192 201 210 220 229 238 248 257 267 276 286 296 306 323 339 356 373 390 408 425 443 460 478 496 514 532 551 569 588 606 625 644 663 682 702 721 741 760 780 800 820 840 861 881 902 923 944 964 986 1007 1028 1050 1071 1073"/>
        <set name="mp_regen" value="1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4"/>
        <set name="p_atk" value="2 2 2 2 3 3 3 4 4 4 5 5 6 6 11 12 12 13 14 15 15 16 17 19 20 21 22 24 25 27 28 30 32 34 36 38 40 43 45 48 50 53 56 59 62 66 69 72 76 80 84 88 92 96 101 105 110 114 119 124 129 134 139 144 149 154 160 165 170 176 181 186 192 197 202 207 212 217 222 227 228"/>
        <set name="p_def" value="11 11 11 12 12 13 13 14 14 15 16 16 17 17 27 28 28 29 30 30 31 32 32 33 34 35 36 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 59 60 61 62 63 64 66 67 68 69 70 72 73 74 75 76 78 79 80 81 82 84 85 86 87 88 89 91 92 93 94 95"/>
        <set name="m_atk" value="1 1 1 1 2 2 2 2 3 3 3 3 4 4 5 5 5 6 6 7 8 8 9 10 11 11 12 13 14 15 16 18 19 20 22 23 25 26 28 30 31 33 35 37 40 42 44 47 49 52 54 57 60 63 66 69 72 75 78 82 85 88 92 95 99 103 106 110 113 117 121 124 128 132 135 139 142 146 149 152 153"/>
        <set name="m_def" value="8 8 8 9 9 9 10 10 10 11 11 12 12 13 13 13 14 14 15 15 16 16 17 18 18 19 19 20 21 21 22 22 23 24 25 25 26 27 27 28 29 30 30 31 32 33 34 34 35 36 37 38 39 40 40 41 42 43 44 45 46 47 47 48 49 50 51 52 53 54 55 55 56 57 58 59 60 60 61 62 63"/>
        <set name="accuracy" value="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 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118"/>
        <set name="evasion" value="33 34 35 36 37 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 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113"/>
        <set name="critical" value="40"/>
        <set name="speed" value="137"/>
        <set name="atk_speed" value="282"/>
        <set name="cast_speed" value="333"/>
        <set name="feed_max" value="248 244 320 400 512 624 704 808 872 948 1160 1168 1160 1160 1160 1148 1140 1132 1124 1116 1480 1512 1468 1552 1572 1604 1616 1644 1664 1684 2116 2172 2236 2288 2348 2408 2464 2520 2580 2636 3168 3236 3308 3380 3452 3524 3592 3668 3740 3596 4244 4364 4484 4600 4532 4672 4804 4932 5060 4928 5716 5892 6064 6228 6176 6368 6556 6740 6924 7108 7388 7688 7956 8196 8428 8704 8916 9124 9340 9552 9552"/>
        <set name="feed_normal" value="2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 5 5 6 6 5 7 7 7 7 7 7 8 8 8 8 9 9 10 10 10 10 10 11 11 11 12 12 13 13 14 14 14 15 15 15 15"/>
        <set name="feed_battle" value="2 2 2 3 4 5 5 6 7 7 9 9 9 9 9 9 9 9 9 9 12 12 12 12 13 13 13 13 13 14 17 18 18 19 19 20 20 21 21 21 26 26 27 28 28 29 29 30 31 29 35 36 37 38 37 38 40 41 42 41 47 49 50 51 51 53 54 56 57 59 61 64 66 68 70 72 74 76 77 79 79"/>
        <set name="max_load" value="0"/>
        <set name="add_feed" value="12"/>
        <set name="exp_penalty" value="0.30"/>
        <set name="soulshots" value="2"/>
        <set name="spiritshots" value="2"/>
    </pet>
Заголовок:
<pet id="12077" max_lvl="81"> <!-- Wolf -->
id - ID конкретного питомца который будет призываться
max_lvl - максимальный уровень который может получить питомец. 81 - это 80 уровень и 100% экспы.
Тело:
control_item_id - предмет помощью которого будет призываться питомец
food_item_id - предмет которым будет потреблять в виде еды для данного питомца
is_wolf - к какому типу принадлежит питомец. Набор всех типов: is_baby_pet, is_wolf, is_great_wolf, is_hatchling,is_improved_baby_pet, is_strider, is_wyvern, is_improved_baby_buffalo, is_improved_baby_cougar, is_improved_baby_kookaburra
min_level - минимальный уровень питомца которого он может достичь. По умолчанию минимальный уровень питомца берется из data/npc
exp - таблица опыта для получения следующего уровня питомца
hp - таблица здоровья по уровню питомца
hp_regen - таблица регенерации здоровья по уровню питомца
mp - таблица маны по уровню питомца
mp_regen - таблица регенерации маны по уровню питомца
p_atk - таблица физической атаки по уровню питомца
p_def - таблица физической защиты по уровню питомца
m_atk - таблица магической атаки по уровню питомца
m_def - таблица магической защиты по уровню питомца
accuracy - таблица точности нанесения урона по уровню питомца
evasion - таблица уворота от нанесения урона по уровню питомца
critical - таблица шанса критической атаки по уровню питомца
speed - таблица скорости передвижения по уровню питомца
atk_speed - таблица скорости физической атаки по уровню питомца
cast_speed - таблица скорости машичеслкй атаки по уровню питомца
feed_max - таблица максимального потребления шкалы еды для питомца по уровням
feed_normal - таблица потребления шкалы еды питомцем в нормальном состоянии - бег, афк и так далее
feed_battle - таблица потребления шкалы еды когда питомец находится в боевом состоянии
max_load - модификатор переносимого веса питомцем. По умолчанию калькулируется формулой той же что и у игрока.
add_feed - сколько едениц шкалы еды будет добавлена при использовании food_item_id
exp_penalty - какой процент будет потреблять питомце он полученного опыта игрока. По умолчанию 0.30 что является 30%
soulshots - количество потребляемый физических зарядов духа
spiritshots - количество потребляемый магических зарядов духа

Теперь переходим к умениям питомцев и их action Id который находится в игровом клиенте
Для примера берем Hatchling of Wind
Code:
        <skills>
            <skill id="4710" level="0" min_lvl="1" action_id="1003"/>
            <skill id="4711" level="0" min_lvl="1" action_id="1004"/>
        </skills>
Где id способности (скила) 4710 и уровень level="0" и min_level - минимальный уровень питомца присоединён к action id 1003 который приращен в игровом клиенте в файле actionname-e.dat появляется в панели умений питомца.
Когда вы устанавливаете level="0" сервер автоматически пересчитывает уровень выдаваемого скила из расчета уровня питомца. На каждый 10 уровень если он не достиг 70 уровня выдается 1 уровень умения, после 70 уровня, расчет идет на каждый 5 уровень питомца + 1 уровень умения (по офу).
Но вам не обязательно выставлять уровень 0, вы можете описать всю таблицу умения относительно level="Что то свое" непосредственно питомца.
Видео гайд как добавлять свои действия для Интерлюд:


В данный момент вся система питомцем и призываемых существа максимально вынесена из кода и теперь вы можете добавлять любой тип и вид и их навыки не описывая скриптами или написанием своих экстеншенов.
Если будут вопросы - прошу задавать, если что забыл - буду дополнять.
 
Last edited:
WARN Pet [#40043] a buff task error has occurred: java.lang.ArithmeticException: / by zero

После волны вопросов о дропе я не удивлен, вообще можно все у вас и на 0 делить и бывает 1.2 яблока - причем это не 2 яблока, а именно одно яблоко и его 25%
 
WARN Pet [#40043] a buff task error has occurred: java.lang.ArithmeticException: / by zero

После волны вопросов о дропе я не удивлен, вообще можно все у вас и на 0 делить и бывает 1.2 яблока - причем это не 2 яблока, а именно одно яблоко и его 25%

У тебя слишком глубокий айтишный юмор. Даже я не понимаю. Поменял тип пета: is_great_wolf , вроде перестало насыпать ошибку.
 
У тебя слишком глубокий айтишный юмор. Даже я не понимаю. Поменял тип пета: is_great_wolf , вроде перестало насыпать ошибку.
WARN Pet [#40043] a buff task error has occurred: java.lang.ArithmeticException: / by zero

Можешь перевести если языками не владеешь
 
я сам.
Арефметическая ошибка - деление на ноль.
 
я сам.
Арефметическая ошибка - деление на ноль.

Переводил. Всё равно не понятно, какая задача на buff и какое деление на 0. Откуда они взялись ?
Питомцу прописаны два баффа и одна атака, которые работают. Никаких задач не прописывалось.
 
Last edited:
a buff task error

Задача баффа.....
Задача связана с типом is_improved_baby_pet. Видимо он хилит когда у перса мало хп ? А хилить нечем, потому что у пет нет такого скилла.
Прописал is_great_wolf , ошибка больше не появляется.

Дополни инфу по типам петов, чем один от другого по механике работы отличаются.
 
Все привет. Вот 10 страниц перечитал, так и не понял - кто нить реализовал выращивание бычка, курицы и так далее, которые баф и ману с хп заливают?
Я просто уже об стол головой бьюсь, пытаюсь этого галимого куренка Kookaburra в Improved превратить, и ска не получается ты хоть убей. он тупо не появляется. ВОЗМОЖНО, у кого то есть что то готовое - готов или купить или обменяться на что нить из своих разработок или софта. нужны именно 3 пета Improved с стандартными скилами и заливкой мп.
 
Все привет. Вот 10 страниц перечитал, так и не понял - кто нить реализовал выращивание бычка, курицы и так далее, которые баф и ману с хп заливают?
Я просто уже об стол головой бьюсь, пытаюсь этого галимого куренка Kookaburra в Improved превратить, и ска не получается ты хоть убей. он тупо не появляется. ВОЗМОЖНО, у кого то есть что то готовое - готов или купить или обменяться на что нить из своих разработок или софта. нужны именно 3 пета Improved с стандартными скилами и заливкой мп.
Закажи реализацию, не думаю что это будет прям затратно.
 
Закажи реализацию, не думаю что это будет прям затратно.
Знать бы у кого)
Ребята, кто может реализовать или уже реализовал - дайте знатьв личку, понятное дело не за бесплатно.
 
Все привет. Вот 10 страниц перечитал, так и не понял - кто нить реализовал выращивание бычка, курицы и так далее, которые баф и ману с хп заливают?
Я просто уже об стол головой бьюсь, пытаюсь этого галимого куренка Kookaburra в Improved превратить, и ска не получается ты хоть убей. он тупо не появляется. ВОЗМОЖНО, у кого то есть что то готовое - готов или купить или обменяться на что нить из своих разработок или софта. нужны именно 3 пета Improved с стандартными скилами и заливкой мп.

Дак добавь им скиллы, хай с панели пета вручную льют. Чего велик изобретаешь)
 
Дак добавь им скиллы, хай с панели пета вручную льют. Чего велик изобретаешь)
Этот велик уже давно изобретён, к чему такие советы если они не соответствуют его желаниям?
 
Чё ты умничаешь ? Вечер скучный выдался ? Посраться не с кем ?
Так у меня не было цели с кем то посратся, просто человек хочет импрувед петов, а не то что ты предложил
 
Так у меня не было цели с кем то посратся, просто человек хочет импрувед петов, а не то что ты предложил
так они тут реализованы, нужно всего лишь выставить тип импров пета и добавить ид скилов, которые в этой теме уже кидались, а тот лох ничего не умеет)
 
так они тут реализованы, нужно всего лишь выставить тип импров пета и добавить ид скилов, которые в этой теме уже кидались, а тот лох ничего не умеет)

Я даже подскажу один из них is_improved_baby_pet . Несколькими сообщениями выше написано, на этой же странице. Надо было лишь вникнуть в суть писанины.
 
Дак добавь им скиллы, хай с панели пета вручную льют. Чего велик изобретаешь)
дак иди ты нахуй со своими тупыми советами и научись читать текст того, кому отвечаешь. или рога оленьи не позволяют поближе к монитору голову пододвинуть, что бы разглядеть буКАФки?

так они тут реализованы, нужно всего лишь выставить тип импров пета и добавить ид скилов, которые в этой теме уже кидались, а тот лох ничего не умеет)
Можешь показать какие скилы тут выкладывались?
Просто у меня петы есть, и они реально хилят, но при условии определенного остатка ХП и второе условие, что персонаж находится в бою.
То есть если просто слить ХП в городе - хилить тебя никто не будет. Будет ждать пока я не ударю НПЦ к примеру. Но вот ни ману не льют, ни бафы не дают. И мне это нужно не в пет панельке, а что бы они по дефолту сами юзали мп - как хп.

Какие скилы ты имеешь в виду и куда их ставить? прям в pet_data пету? и это, что бы я щас не раздувал тут про какуно-матату хистори, выруби свое всевидящее око и дай достойный ответ.
 
Last edited:
Я даже подскажу один из них is_improved_baby_pet . Несколькими сообщениями выше написано, на этой же странице. Надо было лишь вникнуть в суть писанины.
у меня так и стоит

<set name="control_item_id" value="10313"/>
<set name="food_item_id" value="10425"/>
<set name="is_improved_baby_kookaburra" value="true"/>
<set name="is_improved_baby_pet" value="true"/>
<set name="is_mountable" value="false"/>
<set name="min_level" value="55"/>
 
дак иди ты нахуй со своими тупыми советами и научись читать текст того, кому отвечаешь. или рога оленьи не позволяют поближе к монитору голову пододвинуть, что бы разглядеть буКАФки?


Можешь показать какие скилы тут выкладывались?
Просто у меня петы есть, и они реально хилят, но при условии определенного остатка ХП и второе условие, что персонаж находится в бою.
То есть если просто слить ХП в городе - хилить тебя никто не будет. Будет ждать пока я не ударю НПЦ к примеру. Но вот ни ману не льют, ни бафы не дают. И мне это нужно не в пет панельке, а что бы они по дефолту сами юзали мп - как хп.

Какие скилы ты имеешь в виду и куда их ставить? прям в pet_data пету? и это, что бы я щас не раздувал тут про какуно-матату хистори, выруби свое всевидящее око и дай достойный ответ.
так, а ты хоть знаешь как эти питомцы на хф работают? именно так и работают, как ты описал = это правильная работа
Бафы бафают вообще при условии, что на тебе нет бафа, но этих бафов нет в клиенте ит, как и речарджа от петов - ты должен добавить скилы и клиент часть скилов.
Да, в pet_data также их нет. Смотри пример с ХФ и добавляй по аналогии себе, подкручивая статы.

Не благодарите:
Java:
private static final int HealTrick = 4717;
  private static final int GreaterHealTrick = 4718;
  private static final int GreaterHeal = 5195;
  private static final int BattleHeal = 5590;
  private static final int Recharge = 5200;

private static final int Pet_Haste = 5186; // 1-2
  private static final int Pet_Vampiric_Rage = 5187; // 1-4
  @SuppressWarnings("unused")
  private static final int Pet_Regeneration = 5188; // 1-3
  private static final int Pet_Blessed_Body = 5189; // 1-6
  private static final int Pet_Blessed_Soul = 5190; // 1-6
  private static final int Pet_Guidance = 5191; // 1-3
  @SuppressWarnings("unused")
  private static final int Pet_Wind_Walk = 5192; // 1-2
  private static final int Pet_Acumen = 5193; // 1-3
  private static final int Pet_Empower = 5194; // 1-3
  private static final int Pet_Concentration = 5201; // 1-3
  private static final int Pet_Might = 5586; // 1-3
  private static final int Pet_Shield = 5587; // 1-3
  private static final int Pet_Focus = 5588; // 1-3
  private static final int Pet_Death_Wisper = 5589; // 1-3
    private static final int Pet_Weapon_Maintenance = 5987; //1
    private static final int Pet_Armor_Maintenance = 5988;  //1
 
Last edited:
так, а ты хоть знаешь как эти питомцы на хф работают? именно так и работают, как ты описал = это правильная работа
Бафы бафают вообще при условии, что на тебе нет бафа, но этих бафов нет в клиенте ит, как и речарджа от петов - ты должен добавить скилы и клиент часть скилов.
Да, в pet_data также их нет. Смотри пример с ХФ и добавляй по аналогии себе, подкручивая статы.

Не благодарите:
Java:
private static final int HealTrick = 4717;
  private static final int GreaterHealTrick = 4718;
  private static final int GreaterHeal = 5195;
  private static final int BattleHeal = 5590;
  private static final int Recharge = 5200;

private static final int Pet_Haste = 5186; // 1-2
  private static final int Pet_Vampiric_Rage = 5187; // 1-4
  @SuppressWarnings("unused")
  private static final int Pet_Regeneration = 5188; // 1-3
  private static final int Pet_Blessed_Body = 5189; // 1-6
  private static final int Pet_Blessed_Soul = 5190; // 1-6
  private static final int Pet_Guidance = 5191; // 1-3
  @SuppressWarnings("unused")
  private static final int Pet_Wind_Walk = 5192; // 1-2
  private static final int Pet_Acumen = 5193; // 1-3
  private static final int Pet_Empower = 5194; // 1-3
  private static final int Pet_Concentration = 5201; // 1-3
  private static final int Pet_Might = 5586; // 1-3
  private static final int Pet_Shield = 5587; // 1-3
  private static final int Pet_Focus = 5588; // 1-3
  private static final int Pet_Death_Wisper = 5589; // 1-3
    private static final int Pet_Weapon_Maintenance = 5987; //1
    private static final int Pet_Armor_Maintenance = 5988;  //1
Достойный ответ. Спасибо. Заработало. И это.. прости за то что я на тебя агрился. просто не с первого раза понимал иногда что мне пытаются сказать.. и считал это издевательном. А сейчас окунувшить так сказать в это(вно) все с головой, начал потихоньку все понимать. Я уверен тут 90% жителей форума, когда качали свою первую сборку, знали не больше htmlа, а то и паскаля).
 
Back
Top