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

Grekk

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

Вложения

  • 1723530391088.png
    100,8 КБ · Просмотры: 53
Нужны исходники и вроде у мобиуса есть фантом боты
 
<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-й на исчезновение.
Создаём класс, который будет кастовать скилл по площади или по ИД саммонера брать таргет и быть в асист.
 
Просто когда делаешь по каждым хроникам, остальное отдаешь сообществу, думаю причина такого отношения к реализации будет именно такой.
Не понятно только в чем смысл приватных исходников там, если реализация похожая как и в бесплатной ветке.
Проще уж было бы выбрать самые нужные хроники на сегодня: it, hf и пилить. В приватной ветке сделать например поддержку контента it, hf в новых клиентах с патчем.
 
Я думаю смысл в приватных исходниках в лицензии gpl, то есть если ты продаешь продукт под лицензией gpl, ты должен предоставить по требованию исходники к нему. Как быстро после этого произойдет шара говорить не приходится. Может мобиус был бы и рад все заприватить, но он основывается на лыже, которая под gpl, поэтому и его проект под gpl. Видимо откуда он родом за несоблюдение лицензии могут наказать

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

Ну и по лицензии gpl, ее нельзя просто снять с исходников, она в любом случае юридически остается
 
Попсмотрите реализацию скила 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 = клон у ножа
 
Последнее редактирование:
вот что в маин версии
есть ли какой то пример как это сделать? Лазил в валакасе но пока не придумал как сделать
 
Я ж вон выше написал - в NpcInfo можно отправить инфу что этот нпс должен иметь вид конкретного игрока.
Шлешь поле с инфой что это клон и поле с objId того кто является источником внешности клона.

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