Реализация скила сборка мобиус

  • Автор темы Автор темы Grekk
  • Дата начала Дата начала

Grekk

Прославленный
Участник
Старожил I степени
Сообщения
281
Розыгрыши
0
Решения
1
Репутация
85
Реакции
239
Баллы
1 425
Хроники
  1. Master Class
Сборка
mobius
Пытаюсь реализовать скил ид 87850 ссылка на вики -
При нажатии должна спавница копия игрока и наносить удары согласно описанию.
Как пытался сделать:
Через триггер TriggerSkillBySkill не получилось
Попытался посмотреть как работает призыв, призыв питомца идет через ид нпц, а как сделать что бы призывалась копия игрока, так еще и повторяла за атакуемыми скилами согласно писанию и пропадал через 30 сек.
Буду рад вашей помощи в решении данного вопроса
 

Вложения

  • 1723530391088.png
    1723530391088.png
    100,8 КБ · Просмотры: 71
Нужны исходники и вроде у мобиуса есть фантом боты
 
<effect name="CallSkill">
<skillId>87869</skillId>


<npcId>16018</npcId> - 1 уровень умения
<npcId>16019</npcId> - 2 уровень умения
<npcId>16020</npcId> - 3 уровень умения

Это специальные болванки, которые используются для создания клона персонажа. Механика такая же как с тенью ассасина ( только нужно свой AI писать ).
 
как сделать что бы призывалась копия игрока
уже 10 лет в игре есть Таинственная Таверна (детям ессенса не понять), в которой используются НПС, которые выглядят как игрок. Из более, возможно, нового - Храм валакаса. Там тоже НПС, которые используют параметр Clone Id. Ну и ещё у Луков и Ножей тоже Decay должны использовать как НПС, а не как фейк игроки))0)0

Итого - то что мобиус использует Фейк игроков для реализации таких приколов - говорит только о том, что ему плевать на реализацию.

Как сделать что бил как нужно?
Создаём или АИ или новый Инстанс для НПС.
Привязываем туда ивент "При появлении (onSpawn)".
В нем (ивенте) создаём 4 отложенные задачи. 3 на атаку, которые будут имитировать удар, 4-й на исчезновение.
Создаём класс, который будет кастовать скилл по площади или по ИД саммонера брать таргет и быть в асист.
 
уже 10 лет в игре есть Таинственная Таверна (детям ессенса не понять), в которой используются НПС, которые выглядят как игрок. Из более, возможно, нового - Храм валакаса. Там тоже НПС, которые используют параметр Clone Id. Ну и ещё у Луков и Ножей тоже Decay должны использовать как НПС, а не как фейк игроки))0)0

Итого - то что мобиус использует Фейк игроков для реализации таких приколов - говорит только о том, что ему плевать на реализацию.

Как сделать что бил как нужно?
Создаём или АИ или новый Инстанс для НПС.
Привязываем туда ивент "При появлении (onSpawn)".
В нем (ивенте) создаём 4 отложенные задачи. 3 на атаку, которые будут имитировать удар, 4-й на исчезновение.
Создаём класс, который будет кастовать скилл по площади или по ИД саммонера брать таргет и быть в асист.
Просто когда делаешь по каждым хроникам, остальное отдаешь сообществу, думаю причина такого отношения к реализации будет именно такой.
Не понятно только в чем смысл приватных исходников там, если реализация похожая как и в бесплатной ветке.
Проще уж было бы выбрать самые нужные хроники на сегодня: it, hf и пилить. В приватной ветке сделать например поддержку контента it, hf в новых клиентах с патчем.
 
Просто когда делаешь по каждым хроникам, остальное отдаешь сообществу, думаю причина такого отношения к реализации будет именно такой.
Не понятно только в чем смысл приватных исходников там, если реализация похожая как и в бесплатной ветке.
Проще уж было бы выбрать самые нужные хроники на сегодня: it, hf и пилить. В приватной ветке сделать например поддержку контента it, hf в новых клиентах с патчем.
Я думаю смысл в приватных исходниках в лицензии gpl, то есть если ты продаешь продукт под лицензией gpl, ты должен предоставить по требованию исходники к нему. Как быстро после этого произойдет шара говорить не приходится. Может мобиус был бы и рад все заприватить, но он основывается на лыже, которая под gpl, поэтому и его проект под gpl. Видимо откуда он родом за несоблюдение лицензии могут наказать

Точнее почему есть публичная версия
 
Я думаю смысл в приватных исходниках в лицензии gpl, то есть если ты продаешь продукт под лицензией gpl, ты должен предоставить по требованию исходники к нему. Как быстро после этого произойдет шара говорить не приходится. Может мобиус был бы и рад все заприватить, но он основывается на лыже, которая под gpl, поэтому и его проект под gpl. Видимо откуда он родом за несоблюдение лицензии могут наказать

Точнее почему есть публичная версия
Ну это как с соглашением которое обычно никто не читает, пусть пишет на том что не под gpl. ))
 
Ну это как с соглашением которое обычно никто не читает, пусть пишет на том что не под gpl. ))
Я думаю он изначально выбрал модель монетизации, которая основана на подписке, а gpl под это как раз подходит, и не нужно делать кучу работы до, когда l2j ее уже проделали, и нет таких юридических рисков, потому что лыжа есть давно. Можно всегда сказать, что у меня форк лыжи, идите со своими требованиями к ним

Ну и по лицензии gpl, ее нельзя просто снять с исходников, она в любом случае юридически остается
 
Пытаюсь реализовать скил ид 87850 ссылка на вики -
При нажатии должна спавница копия игрока и наносить удары согласно описанию.
Как пытался сделать:
Через триггер TriggerSkillBySkill не получилось
Попытался посмотреть как работает призыв, призыв питомца идет через ид нпц, а как сделать что бы призывалась копия игрока, так еще и повторяла за атакуемыми скилами согласно писанию и пропадал через 30 сек.
Буду рад вашей помощи в решении данного вопроса
Попсмотрите реализацию скила Decoy, там идет призвыв копии игрока через эффект SummonNpc
 
Я думаю он изначально выбрал модель монетизации, которая основана на подписке, а gpl под это как раз подходит, и не нужно делать кучу работы до, когда l2j ее уже проделали, и нет таких юридических рисков, потому что лыжа есть давно. Можно всегда сказать, что у меня форк лыжи, идите со своими требованиями к ним
В таком случае есть смысл. Но все же качество оставляет желать лучшего в обоих вариантах.
 
Попсмотрите реализацию скила Decoy, там идет призвыв копии игрока через эффект SummonNpc
или скилл даггера "Иллюзия Тени" в мейн ветке - там тоже суммонятся клоны игрока и атакуют цель. сами клоны как нпс собственного вида в виде игрока не имеют и берут внешний вид именно с того кто их вызвал, посредством передачи нужных данных через пакеты (блоки CLONE и SUMMONED в NpcInfo).
XML:
    <skill id="10532" levels="9" name="Иллюзия Тени" pts_name="[s_rogue_shadow_of_hell1]">
        <!-- Персонаж прячется в тень противника и атакует, используя иллюзии. Требуется кинжал/ парные кинжалы. Время перезарядки умения фиксировано. -->
        <stat name="icon" value="icon.skill10532" />
        <stat name="magicType" value="special" />
        <stat name="magicLevel" value="{90 95 97 99 101 103 105 107 109}" />
        <stat name="effectPoint" value="{687 698 707 709 711 713 715 715 715}" />
        <stat name="mpConsume2" value="{38 41 45 47 49 51 53 55 57}" />
        <stat name="hitTime" value="0.5" />
        <stat name="coolTime" value="0.5" />
        <stat name="reuseDelay" value="180" />
        <stat name="reuseDelayLock" value="true" />
        <stat name="reuseDelayType" value="SHARED" />
        <stat name="castRange" value="400" />
        <stat name="effectiveRange" value="900" />
        <stat name="target" value="ONE" />
        <stat name="skillType" value="OFFENSIVE" />
        <stat name="operateType" value="ACTIVE" />
        <stat name="nextAction" value="attack" />
        <cond>
            <and>
                <using weapon="dagger;dualdagger" msgId="113" />
                <target maxHeightDiff="300" msgId="113" />
                <player canSummon="player_clone" />
            </and>
        </cond>
        <for>
            <effect name="i_summon_hallucination" params="{13302 13303 13304 13305 13455 13456 13457 13578 13579};30;3" />
            <effect name="i_delete_hate_of_me" params="100" />
            <effect name="i_target_cancel" params="100" />
        </for>
    </skill>
Java:
if (containsMask(NpcInfoType.CLONE))
    writeD(_ownerId); // objectId призывателя если является клоном

if (containsMask(NpcInfoType.SUMMONED))
    writeC(_cha.getCloneType().ordinal()); // тип клона 1 = приманка, 2 = клон у ножа
 
Последнее редактирование:
Попсмотрите реализацию скила Decoy, там идет призвыв копии игрока через эффект SummonNpc
вот что в маин версии
уже 10 лет в игре есть Таинственная Таверна (детям ессенса не понять), в которой используются НПС, которые выглядят как игрок. Из более, возможно, нового - Храм валакаса. Там тоже НПС, которые используют параметр Clone Id. Ну и ещё у Луков и Ножей тоже Decay должны использовать как НПС, а не как фейк игроки))0)0

Итого - то что мобиус использует Фейк игроков для реализации таких приколов - говорит только о том, что ему плевать на реализацию.

Как сделать что бил как нужно?
Создаём или АИ или новый Инстанс для НПС.
Привязываем туда ивент "При появлении (onSpawn)".
В нем (ивенте) создаём 4 отложенные задачи. 3 на атаку, которые будут имитировать удар, 4-й на исчезновение.
Создаём класс, который будет кастовать скилл по площади или по ИД саммонера брать таргет и быть в асист.
есть ли какой то пример как это сделать? Лазил в валакасе но пока не придумал как сделать
 
Я ж вон выше написал - в NpcInfo можно отправить инфу что этот нпс должен иметь вид конкретного игрока.
Шлешь поле с инфой что это клон и поле с objId того кто является источником внешности клона.

Ну и скилл твой, который ты хочешь реализовать из эссенса - это судя по всему как раз копия "Иллюзии Тени" из мейна, с такой же абсолютно логикой - призвать нпс в виде копии игрока, которые будут атаковать цель обычными атаками и определенными скиллами что заданы для этих копий.
 
Последнее редактирование:
уже 10 лет в игре есть Таинственная Таверна (детям ессенса не понять), в которой используются НПС, которые выглядят как игрок. Из более, возможно, нового - Храм валакаса. Там тоже НПС, которые используют параметр Clone Id. Ну и ещё у Луков и Ножей тоже Decay должны использовать как НПС, а не как фейк игроки))0)0

Итого - то что мобиус использует Фейк игроков для реализации таких приколов - говорит только о том, что ему плевать на реализацию.

Как сделать что бил как нужно?
Создаём или АИ или новый Инстанс для НПС.
Привязываем туда ивент "При появлении (onSpawn)".
В нем (ивенте) создаём 4 отложенные задачи. 3 на атаку, которые будут имитировать удар, 4-й на исчезновение.
Создаём класс, который будет кастовать скилл по площади или по ИД саммонера брать таргет и быть в асист.
Если делать красиво- шедули не подходят. Нужно листенер вешать на овнера и от него, в зависимости от реюз группы, заставлять кастовать клона нужный скилл в нужный таргет. Ну и про "следовать за овнером" тоже не забыть
 
что то сделал бить начало но нету копии игрока и бьет сам по себе
вот скил
Код:
<skill id="87850" toLevel="3" name="Divine Guardian">
        <icon>icon.s_st_sacred_guardian</icon>
        <operateType>A1</operateType>
        <magicCriticalRate>5</magicCriticalRate>
        <magicLevel>
            <value level="1">90</value>
            <value level="2">95</value>
            <value level="3">97</value>
        </magicLevel>
        <mpConsume>
            <value level="1">38</value>
            <value level="2">41</value>
            <value level="3">45</value>
        </mpConsume>
        <castRange>400</castRange>
        <effectRange>900</effectRange>
        <hitTime>500</hitTime>
        <coolTime>500</coolTime>
        <effectPoint>
            <value level="1">-687</value>
            <value level="2">-698</value>
            <value level="3">-707</value>
        </effectPoint>
        <reuseDelay>1000</reuseDelay>
        <isMagic>4</isMagic>
        <nextAction>ATTACK</nextAction>
        <targetType>ENEMY</targetType>
        <affectScope>SINGLE</affectScope>
        <effects>
            <effect name="TargetCancel" />
            <effect name="DeleteHateOfMe" />
            <effect name="SummonHallucination">
                <npcId>
                    <value level="1">13302</value>
                    <value level="2">13303</value>
                    <value level="3">13304</value>
                </npcId>
                <npcCount>1</npcCount>
                <despawnDelay>10000</despawnDelay>
            </effect>
        </effects>
    </skill>
вот сам нпц который призывается
Код:
<npc id="13302" level="85" type="Doppelganger" name="Incarnation">
        <parameters>
            <skill name="Skill01_ID" id="87952" level="1" />
            <skill name="Skill02_ID" id="87955" level="1" />
        </parameters>
        <race>ETC</race>
        <sex>ETC</sex>
        <stats str="88" int="79" dex="55" wit="78" con="82" men="78">
            <vitals hp="2634" hpRegen="8.5" mp="974" mpRegen="3" />
            <attack physical="2226" magical="247" random="0" critical="16" accuracy="4.75" attackSpeed="623" type="FIST" range="40" distance="0" width="0" />
            <defence physical="1120.6" magical="581.85" />
            <speed>
                <walk ground="50" />
                <run ground="131" />
            </speed>
            <hitTime>600</hitTime>
            <attribute>
                <defence fire="150" water="150" wind="150" earth="150" holy="150" dark="150" />
                <attack type="DARK" value="450" />
            </attribute>
            <abnormalResist physical="10" magical="10" />
        </stats>
        <status attackable="true" undying="true" />
        <shots soul="1000" shotChance="100" />
        <skillList>
            <skill id="4416" level="19" /> <!-- Others -->
            <skill id="4408" level="1" /> <!-- HP Increase (1x) -->
            <skill id="4409" level="1" /> <!-- MP Increase (1x) -->
            <skill id="4410" level="11" /> <!-- Average Damage Dealer -->
            <skill id="4411" level="11" /> <!-- Average M. Atk. -->
            <skill id="4412" level="11" /> <!-- Average P. Def. -->
            <skill id="4413" level="11" /> <!-- Average M. Def. -->
            <skill id="4414" level="2" /> <!-- Standard Type -->
            <skill id="4415" level="1" /> <!-- Bare Hands -->
            <skill id="4390" level="1" /> <!-- Mystic Immunity -->
            <skill id="87952" level="2" /> <!-- Illusion Strike -->
            <skill id="87955" level="2" /> <!-- Illusion Trick -->
        </skillList>
        <collision>
            <radius normal="8.5" />
            <height normal="25" />
        </collision>
    </npc>
что не так все эффект с мейна есть почему не появляется копия
 

Вложения

  • 1723555931619.png
    1723555931619.png
    399,3 КБ · Просмотры: 22
Судя по всему у вас не существует нпц по данному id, он как бы есть но его и нет в одно время.
Какой id, это нужно брать данные и искать информацию отдельно.
 
Судя по всему у вас не существует нпц по данному id, он как бы есть но его и нет в одно время.
Какой id, это нужно брать данные и искать информацию отдельно.
у этого нпц нет имени в клиенте, как и текстур, поэтому None. Он нужен для того, чтобы вешать на него инфу игрока. Если бы не было нпц у него бы ошибки сыпало
 
Там еще для сообщений урона от копий надо правильно сис. мессаги формировать, передавая вместо имени/ид нпс-копии имя игрока.
 
ну, раз на то пошло, то еще и реплейс скиллов верный делать и popup damage packet не проебать
 
у этого нпц нет имени в клиенте, как и текстур, поэтому None. Он нужен для того, чтобы вешать на него инфу игрока. Если бы не было нпц у него бы ошибки сыпало
Собственно то что я и говорил ТСу
Попсмотрите реализацию скила Decoy, там идет призвыв копии игрока через эффект SummonNpc
Видимо надо было уточнить что так же нужно посмотреть на тип вызываемого нпц, который имеет отдельную реализацию Creature - "Decoy"
И который при формировании CharInfo берет игрока кастера скила
 
Назад
Сверху Снизу