уже 10 лет в игре есть Таинственная Таверна (детям ессенса не понять), в которой используются НПС, которые выглядят как игрок. Из более, возможно, нового - Храм валакаса. Там тоже НПС, которые используют параметр Clone Id. Ну и ещё у Луков и Ножей тоже Decay должны использовать как НПС, а не как фейк игроки))0)0как сделать что бы призывалась копия игрока
Просто когда делаешь по каждым хроникам, остальное отдаешь сообществу, думаю причина такого отношения к реализации будет именно такой.уже 10 лет в игре есть Таинственная Таверна (детям ессенса не понять), в которой используются НПС, которые выглядят как игрок. Из более, возможно, нового - Храм валакаса. Там тоже НПС, которые используют параметр Clone Id. Ну и ещё у Луков и Ножей тоже Decay должны использовать как НПС, а не как фейк игроки))0)0
Итого - то что мобиус использует Фейк игроков для реализации таких приколов - говорит только о том, что ему плевать на реализацию.
Как сделать что бил как нужно?
Создаём или АИ или новый Инстанс для НПС.
Привязываем туда ивент "При появлении (onSpawn)".
В нем (ивенте) создаём 4 отложенные задачи. 3 на атаку, которые будут имитировать удар, 4-й на исчезновение.
Создаём класс, который будет кастовать скилл по площади или по ИД саммонера брать таргет и быть в асист.
Я думаю смысл в приватных исходниках в лицензии gpl, то есть если ты продаешь продукт под лицензией gpl, ты должен предоставить по требованию исходники к нему. Как быстро после этого произойдет шара говорить не приходится. Может мобиус был бы и рад все заприватить, но он основывается на лыже, которая под gpl, поэтому и его проект под gpl. Видимо откуда он родом за несоблюдение лицензии могут наказатьПросто когда делаешь по каждым хроникам, остальное отдаешь сообществу, думаю причина такого отношения к реализации будет именно такой.
Не понятно только в чем смысл приватных исходников там, если реализация похожая как и в бесплатной ветке.
Проще уж было бы выбрать самые нужные хроники на сегодня: it, hf и пилить. В приватной ветке сделать например поддержку контента it, hf в новых клиентах с патчем.
Ну это как с соглашением которое обычно никто не читает, пусть пишет на том что не под gpl. ))Я думаю смысл в приватных исходниках в лицензии gpl, то есть если ты продаешь продукт под лицензией gpl, ты должен предоставить по требованию исходники к нему. Как быстро после этого произойдет шара говорить не приходится. Может мобиус был бы и рад все заприватить, но он основывается на лыже, которая под gpl, поэтому и его проект под gpl. Видимо откуда он родом за несоблюдение лицензии могут наказать
Точнее почему есть публичная версия
Я думаю он изначально выбрал модель монетизации, которая основана на подписке, а gpl под это как раз подходит, и не нужно делать кучу работы до, когда l2j ее уже проделали, и нет таких юридических рисков, потому что лыжа есть давно. Можно всегда сказать, что у меня форк лыжи, идите со своими требованиями к нимНу это как с соглашением которое обычно никто не читает, пусть пишет на том что не под gpl. ))
Попсмотрите реализацию скила Decoy, там идет призвыв копии игрока через эффект SummonNpcПытаюсь реализовать скил ид 87850 ссылка на вики -Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
При нажатии должна спавница копия игрока и наносить удары согласно описанию.
Как пытался сделать:
Через триггер TriggerSkillBySkill не получилось
Попытался посмотреть как работает призыв, призыв питомца идет через ид нпц, а как сделать что бы призывалась копия игрока, так еще и повторяла за атакуемыми скилами согласно писанию и пропадал через 30 сек.
Буду рад вашей помощи в решении данного вопроса
В таком случае есть смысл. Но все же качество оставляет желать лучшего в обоих вариантах.Я думаю он изначально выбрал модель монетизации, которая основана на подписке, а gpl под это как раз подходит, и не нужно делать кучу работы до, когда l2j ее уже проделали, и нет таких юридических рисков, потому что лыжа есть давно. Можно всегда сказать, что у меня форк лыжи, идите со своими требованиями к ним
или скилл даггера "Иллюзия Тени" в мейн ветке - там тоже суммонятся клоны игрока и атакуют цель. сами клоны как нпс собственного вида в виде игрока не имеют и берут внешний вид именно с того кто их вызвал, посредством передачи нужных данных через пакеты (блоки CLONE и SUMMONED в NpcInfo).Попсмотрите реализацию скила Decoy, там идет призвыв копии игрока через эффект SummonNpc
<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>
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-й на исчезновение.
Создаём класс, который будет кастовать скилл по площади или по ИД саммонера брать таргет и быть в асист.
Если делать красиво- шедули не подходят. Нужно листенер вешать на овнера и от него, в зависимости от реюз группы, заставлять кастовать клона нужный скилл в нужный таргет. Ну и про "следовать за овнером" тоже не забытьуже 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>
у этого нпц нет имени в клиенте, как и текстур, поэтому None. Он нужен для того, чтобы вешать на него инфу игрока. Если бы не было нпц у него бы ошибки сыпалоСудя по всему у вас не существует нпц по данному id, он как бы есть но его и нет в одно время.
Какой id, это нужно брать данные и искать информацию отдельно.
Собственно то что я и говорил ТСуу этого нпц нет имени в клиенте, как и текстур, поэтому None. Он нужен для того, чтобы вешать на него инфу игрока. Если бы не было нпц у него бы ошибки сыпало
Видимо надо было уточнить что так же нужно посмотреть на тип вызываемого нпц, который имеет отдельную реализацию Creature - "Decoy"Попсмотрите реализацию скила Decoy, там идет призвыв копии игрока через эффект SummonNpc
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?