-
Публикаций
1567 -
Зарегистрирован
-
Посещение
-
Победитель дней
61 -
Отзывы
0%
Тип контента
Профили
Форумы
Загрузки
Магазин
Инструкции
Весь контент Gaikotsu
-
ага, только учти что там базовые статы - если тупо копипастнешь - эпики будут в несколько раз слабее чем на оффе, если у тебя в сборке используются конечные значения этих самых стат, а не базовые. из этих базовых стат необходимо высчитвать конечные, по всем известным формулам.
- 3 ответа
-
- 1
-
0x08 используется для базовой установки параметра 0x10 используется для базовой модификации параметра 0x30 для множителей параметров 0x40 для прибавления статических бонусов к параметру, на которые должен так же влиять множитель с очередностью 0x50 0x50 для множителей параметров 0x60 для прибавления статических бонусов после всех множителей при желании можно и дальше продолжать, у меня к примеру задействованы очередности до 0х80 для нескольких специфичных скиллов, которые должны влиять на все другие прибиавки к конкретным статам.
-
ну дык даже сборку не указал в овере к примеур есть параметр negateEffects, а так же одноименный эффект, в кторых можно перечислить стэктайпы эффектов, которые надо снять при касте данного скилла добавляешь к примеру в элементал протекшн перед эффектом баффа эффект negateEffects с перечислением нужных стэктайпов и все. более серезная проработка подобных ситуаций - это полная переделка взаимодействия стэктайпов по тому принципу что сделан в офф скриптах - там в скилле указываются специальные эффекты, в кторых перечисляются те стэктайпы что надо снять при наложении скилла, а так же запретить класть эти перечисленные стэктайпы пока висит эффект от этого скилла. к примеру так сделаны импровед баффы, для примера описание в офф сервере и у меня skill_begin skill_name = [s_improve_combat1] /* [임프로브 컴뱃] */ skill_id = 1499 level = 1 operate_type = A2 magic_level = 70 special_level = 0 magic_critical_rate = 5 change_skill_id = 0 self_effect = {} effect = {{i_dispel_by_slot;pa_up;9};{i_dispel_by_slot;pd_up;9};{p_block_buff_slot;{pa_up;pd_up}};{p_physical_attack;{all};15;per};{p_physical_defence;{all};15;per}} end_effect = {} is_magic = 1 is_double = 0 mp_consume1 = 6 mp_consume2 = 21 cast_range = 400 effective_range = 900 skill_hit_time = 1.5 skill_cool_time = 0 skill_hit_cancel_time = 0.5 reuse_delay = 2 activate_rate = -1 lv_bonus_rate = 0 basic_property = none abnormal_time = 2400 abnormal_lv = 1 abnormal_type = improve_pa_pd_up abnormal_instant = 0 irreplaceable_buff = 0 buff_protect_level = 0 attribute = {attr_none;0} trait = {trait_none} effect_point = 679 target_type = target affect_scope = single affect_limit = {0;0} next_action = none debuff = 0 ride_state = {@ride_none;@ride_strider;@ride_wyvern;@ride_wolf} multi_class = 0 olympiad_use = 1 skill_end <!-- Improve Combat / Совершенство в Бою --> <skill id="1499" levels="1" name="Improve Combat"> <!-- Сочетание эффектов увеличения Физ. Атк. и увеличения Физ. Защ. дает значительное преимущество в бою. Увеличивает Физ. Атк. и Физ. Защ. на 15%. Время действия: 40 мин. --> <set name="magicType" val="MAGIC" /> <set name="icon" val="icon.skill1499" /> <set name="reuseDelay" val="2000" /> <set name="magicLevel" val="70" /> <set name="castRange" val="400" /> <set name="hitTime" val="1500" /> <set name="hitCancelTime" val="500" /> <set name="mpConsume1" val="6" /> <set name="mpConsume2" val="21" /> <set name="effectPoint" val="679" /> <set name="target" val="ONE" /> <set name="skillType" val="BUFF" /> <set name="operateType" val="OP_ACTIVE" /> <set name="nextAction" val="NONE" /> <set name="blockSlot" val="pa_up;pd_up" /> <for> <effect count="1" name="Buff" stackOrder="1" stackType="improve_pa_pd_up" time="2400" val="0"> <mul order="0x30" stat="pAtk" val="1.15" /> <mul order="0x30" stat="pDef" val="1.15" /> </effect> </for> </skill>
-
если речь только о черном цвете, то значит при восстановлении из базы значение 0 считается отсутствием нестандартного цвета и потому окраски не происходит а может и при сохранении такая же проверка, в которой значение 0 является указанием просто удалить текущий сохраненный цвет и все.
-
Ты бы хоть код квеста привел своего чтоб понятней было. Хотя даже так могу сказать вероятную причину - ты или нужных нпс в нем не зарегал как стартовых или же в onTalk не обрабатываешь нужный стейт/кондишн. а по [] вместо названий - это потому-что туда должны подставляться определенные строки из NpcString-e.dat/NpcString-ru.dat клиента, вместо спецкода вставленного сервером в это место диалога. а т.к. на стороне клиента этих строк нет - подставляются пустые строки.
-
и что, будешь для таких вещей для каждой расписывать проверки? тут кондишн надо вводить новый, если еще нет такого. типа такого к примеру package l2p.gameserver.stats.conditions; import org.apache.commons.lang3.ArrayUtils; import l2p.gameserver.model.Player; import l2p.gameserver.stats.Env; public class ConditionPlayerClassId extends Condition { private final int[] _ids; public ConditionPlayerClassId(int... ids) { _ids = ids; } @ Override protected boolean testImpl(Env env) { return env.character.isPlayer() && ArrayUtils.contains(_ids, ((Player) env.character).getActiveClassId()); } } зарегать его как зареганы остальные кондишны и потом юзать в описаниях вещей, к примеру так <!-- Greater Abelius Cloak (20-day) [Sigel Knight] / Хороший Плащ Авелиуса - 20 дн. [Рыцарь Сигеля] --> <armor id="40243" name="Greater Abelius Cloak (20-day)" add_name="Sigel Knight"> <!-- Плащ того, кто унаследовал силу Древнего Гиганта Авелиуса. При надевании Маг. Защ. +40, СИЛ+1, ИНТ+1, ВЫН+1, ДУХ+1. Можно использовать в течение 20 дней. --> <set name="icon" value="icon.vesper_cloack_i00" /> <set name="type" value="NONE" /> <set name="ex_type" value="CLOAK" /> <set name="crystal_type" value="R" /> <set name="crystal_count" value="0" /> <set name="crystallizable" value="false" /> <set name="weight" value="220" /> <set name="price" value="0" /> <set name="durability" value="28800" /> <set name="temporal" value="true" /> <set name="keep_type" value="1" /> <set name="enchantable" value="false" /> <set name="attributable" value="false" /> <set name="augmentable" value="false" /> <set name="destroyable" value="false" /> <set name="dropable" value="false" /> <set name="sellable" value="false" /> <set name="tradeable" value="false" /> <set name="commissionable" value="false" /> <cond msgId="113" addName="1"> <player classId="148,149,150,151" /> </cond> <skills> <skill id="16426" level="1" /> <!-- Greater Abelius Cloak (20-day) / Плащ Авелиуса - 20 дн. --> </skills> <equip> <slot id="BACK" /> </equip> <for> <add stat="pDef" order="0x10" value="50" /> <add stat="mDef" order="0x10" value="40" /> <enchant stat="pDef" order="0x0C" value="0" /> <enchant stat="mDef" order="0x0C" value="0" /> <enchant stat="maxHp" order="0x80" value="0" /> </for> </armor> P.S. пример для овера, но для акиса можно по аналогии написать без проблем.
-
это называется говнокод
-
high five SCARP-Code (Lineage 2 HF5 на клиенте Helios)
тема ответил Gaikotsu в теме Команды разработчиков
что скорее всего и будет. З.Ы. ничего личного, просто взгляд реалиста. -
Сколько лет уже прошло, а XaTTa6bI4 все так же по любой мелочи бежит на макси с просьбами помочь. Конечно - это же проще, чем хоть сколько-то поднапрячься и все же хотя бы на базовом уровне выучить яву.
-
чистый овер и пилить под себя всякие гринд тимы и т.п. брать не стоит
-
это же pw - чудо что там хоть что-то работает.
-
в pw то хоть есть такое понятие как скиллы-триггеры и т.п.?
-
skill_begin skill_name = [s_veil1] /* [베일] */ skill_id = 106 level = 1 operate_type = A2 magic_level = 43 self_effect = {} effect = {{p_passive}} end_effect = {} is_magic = 0 mp_consume2 = 19 cast_range = 500 effective_range = 900 skill_hit_time = 1.2 skill_cool_time = 0 skill_hit_cancel_time = 0.5 reuse_delay = 5 activate_rate = 70 lv_bonus_rate = 0 basic_property = men abnormal_time = 120 abnormal_lv = 1 abnormal_type = turn_passive abnormal_instant = 0 irreplaceable_buff = 0 buff_protect_level = 0 attribute = {attr_none;0} trait = {trait_derangement} effect_point = 0 target_type = enemy_only affect_scope = single affect_limit = {0;0} next_action = none debuff = 1 ride_state = {@ride_none} multi_class = 0 olympiad_use = 1 skill_end p_passive - если память не подводит, то просто мобу на время действия очищает агролист и сводит агрорадиус к нулю, т.е. моб временно становится не агром.
-
эм... с какого перепуга то? мобы именно что должны отключать свое агроповедение пока на них висит этот эффект принцип тот же что к примеру у Peace или Requiem чинится легко - если есть конечно исходники.
-
и нафига такие извращения? просто доработать скиллы пенальти, дающиеся при неподходящем грейде и все чтобы они так сильно резали статы, что было бы просто невыгодно надевать неподходящие по уровню вещи к примеру чтоб пенальни умножала атаку/защиту на 0.01 - много ли навоюет игрок с 1% от обычного значения статы?
-
только еще работу эффектов надо чуток допиливать - далеко не на всех серверах можно указать тик эффекта ниже секунды, а проверка хп/мп/цп раз в секунду - это зачастую слишком много. </skill> <!-- Автоиспользование зелий HP --> <skill id="90081" levels="1" name="Автоиспользование зелий HP"> <!-- Активирует автоматическое использование зелий HP. Настроить порог срабатывания, а так же посмотреть список используемых зелий можно при помощи команды .auto. --> <set name="icon" val="icon.etc_potion_red_i00" /> <set name="magicLevel" val="85" /> <set name="target" val="SELF" /> <set name="skillType" val="CONT" /> <set name="operateType" val="OP_TOGGLE" /> <set name="isSaveable" val="false" /> <set name="protectType" val="DEATH;REFLECTION;SUBCLASS;CANCEL;SELF_DISPEL" /> <for> <effect count="0x7fffffff" name="Handler" time="0.333" val="1" /> </for> </skill> чекает состояние 3 раза в секунду.при смерти, переключении сабы, входе в инстансы не слетает, так же иммунно к канселу и селф-снятию. ну и там еще за капотом - может юзать много разных поушнов - если один кончился, то ищет другой в инвентаре и польузет его и так до тех пор пока все подходящие бутыли не кончатся - только тогда тогл отключится с сообщением о невозможности дальнейшей работы.
-
если не хочется сильно лезть в скрипты, то можно сделать копию скилла вызова голема-торговца у гномов - сменив там ид вызваемого нпс и все такое. не помню правда с каких хроник этот скилл у них появился.
-
а еще можно положить на большую часть слушателей и запилить ацп в виде тогл скиллов - получится еще проще и понятней тогда и потребуется в минимуме всего 2 листенера - на вход в игру и на переключение сабов - чтобы обратно добавлять игроку тоглы ацп притом и без листенеров можно обойтись, если тоглы тупо добавить в список изучаемых скиллов игрокам.
-
пример не для акиса, но по аналогии написать не проблема
-
тут экстрасенсов просто нет - наложением рук на скриншот проблему не лечат.
-
изучай сам квест, связанный с этим итемом и т.д.
-
AllowLearnTransSkillsWOQuest = true в altsetting.properties
-
по идее закомментить да и вобще поискать где еще вызывается обработка нажатия на среднюю кнопку
-
Мне вот интересно откуда вы все только эти сборки с кучей багов то находите? Почему не взять банально чистый овер/лост? не так уж и много в нем исправлять надо, и то в основном всякие мелочи. Хотя конечно да, для большинства "одминов" тут будет непосильным трудом прикручивать к чистому оверу/лосту всякие свистелки и перделки, которые понапиханы в другие сборки и без которых им вобще ну никак.
-
MiddleMouse=TurnBack