[help] - Время бафов
Сабж такой - имеется бафер на скриптах, все тип-топ, но время бафов поменять не удается. Кусок кода из бафера:
#pp_buff
if event == "100":
st.takeItems(ADENA_ID,0)
SkillTable.getInstance().getInfo(4342,2).getEffects(st.getPlayer(),st.getPl
ayer())
st.getPlayer()
SkillTable.getInstance().getInfo(4343,3).getEffects(st.getPlayer(),st.getPl
ayer())
st.getPlayer()
SkillTable.getInstance().getInfo(4344,3).getEffects(st.getPlayer(),st.getPl
ayer())
st.getPlayer()
SkillTable.getInstance().getInfo(4345,3).getEffects(st.getPlayer(),st.getPl
ayer())
st.getPlayer()
SkillTable.getInstance().getInfo(4346,4).getEffects(st.getPlayer(),st.getPl
ayer())
st.getPlayer()
SkillTable.getInstance().getInfo(4347,6).getEffects(st.getPlayer(),st.getPl
ayer())
st.getPlayer()
SkillTable.getInstance().getInfo(4348,6).getEffects(st.getPlayer(),st.getPl
ayer())
st.getPlayer()
SkillTable.getInstance().getInfo(4349,2).getEffects(st.getPlayer(),st.getPl
ayer())
st.getPlayer()
SkillTable.getInstance().getInfo(4350,3).getEffects(st.getPlayer(),st.getPl
ayer())
st.getPlayer()
SkillTable.getInstance().getInfo(4351,6).getEffects(st.getPlayer(),st.getPl
ayer())
st.getPlayer()
SkillTable.getInstance().getInfo(4352,2).getEffects(st.getPlayer(),st.getPl
ayer())
st.getPlayer()
SkillTable.getInstance().getInfo(4353,6).getEffects(st.getPlayer(),st.getPl
ayer())
st.getPlayer()
SkillTable.getInstance().getInfo(4354,4).getEffects(st.getPlayer(),st.getPl
ayer())
st.getPlayer()
SkillTable.getInstance().getInfo(4355,3).getEffects(st.getPlayer(),st.getPl
ayer())
st.getPlayer()
SkillTable.getInstance().getInfo(4356,3).getEffects(st.getPlayer(),st.getPl
ayer())
st.getPlayer()
SkillTable.getInstance().getInfo(4357,2).getEffects(st.getPlayer(),st.getPl
ayer())
st.getPlayer()
SkillTable.getInstance().getInfo(4358,3).getEffects(st.getPlayer(),st.getPl
ayer())
st.getPlayer()
SkillTable.getInstance().getInfo(4359,3).getEffects(st.getPlayer(),st.getPl
ayer())
st.getPlayer()
return "1.htm"
st.setState(COMPLETED)
Скилы забиты на 4342-4359, это некоторые скилы второй профы. Суть такая - при изменении времени скилов в 4300-4399.xml на бафере это никак не отражается. Бафер не юзает запросы в mySQL, нет никаких таблиц бафов кроме этой (в скрипте).
Скажите, если кто знает, как победить сие=)
Хм, банальный вопрос - а вы сервер перезагружали после изминения времени бафов? и уверены что именно в том месте и тому скилу прописывали новое время? да и вот ещё, допустим у бафа питомцев время бафа зависит от левла скила у пита, и тем самым надо изменять в "таблице" хетемельки данного скила (именно в теге <table>....).
Сервер перезагружал раз 10.
SkillTable.getInstance().getInfo(4347,6).getEffects(st.getPlayer(),st.getPl - 6 уровень скила, максимальный.
Да, я уверен что прописывал те самые скилы (4342-4359 полностью совпадают, там стоит префикс Clan Hall).
Вот ссылка на .xml таблицу, глянь если не сложно, мб я там что то накосячил http://dump.ru/file/2725373
Да кстати. в некоторых сборках есть конфиг который игнорирует время в скиле если в данном конфиге указан этот скил. там чтото вроде SkillDuration или как то так.
Вот первое что меня смутило - это кривизна скилов бафа от кланхола.
А точнее вот:
name="Clan Hall: Death Whisper">
Это так как у тебя в файле. Но лучше чтобы было так:
Это просто совет. (на производительность влияеет или нет хз но просто эстэтичнее выглядит. И нотепадом проще пользоватся (который ++ :Р).
А дальше:
Это то что у тебя сейчас в скиле:
name="Clan Hall: Death Whisper">
<table name="#Tab-cAtk">1.3 1.4 1.5</table>
<table name="#mpConsume">300 0 600</table>
<set name="mpConsume" val="#mpConsume" />
<set name="power" val="0.0" />
<set name="target" val="TARGET_ONE" />
<set name="skillType" val="BUFF" />
<set name="isMagic" val="true" />
<set name="operateType" val="OP_ACTIVE" />
<set name="castRange" val="400" />
<set name="effectRange" val="900" />
<for>
<effect count="1" name="Buff" time="3600" val="0"
stackOrder="#Tab-cAtk" stackType="cAtk">
<mul order="0x30" stat="cAtk" val="#Tab-cAtk" />
</effect>
</for>
</skill>
И по данному конфигу скил настроен на 3600 секунд. Это видно в строке "<effect count="1" name="Buff" time="3600" val="0"" который кстати тоже кривовато смотрится.
По этому я бы сделал так:
<table name="#Tab-cAtk">1.3 1.4 1.5</table>
<table name="#mpConsume">300 0 600</table>
<set name="mpConsume" val="#mpConsume" />
<set name="power" val="0.0" />
<set name="target" val="TARGET_ONE" />
<set name="skillType" val="BUFF" />
<set name="isMagic" val="true" />
<set name="operateType" val="OP_ACTIVE" />
<set name="castRange" val="400" />
<set name="effectRange" val="900" />
<for>
<effect count="1" name="Buff" time="10803" val="0" stackOrder="#Tab-cAtk" stackType="cAtk">
<mul order="0x30" stat="cAtk" val="#Tab-cAtk" />
</effect>
</for>
</skill>
В моём случаее значение "time="10803"" позволяет дать бафф на 3 часа и 3 секунды.
Йа понял про оформление...Но суть в том что мне нужны бафы по часу, а они длятся 20 минут..
Вот про дюрашн нашел строку в конфигах:
# ---------------------------------------------------------------------------
# Skills & Effects
# ---------------------------------------------------------------------------
# When this is enabled it will read the "SkillDurationList" option.
# This will basically overlook the "time = x" in the skill XMLs so that you do not need to modify the L2J Datapack XMLs to increase skill duration.
# Skill duration list:
# Format: skillid,newtime;skillid2,newtime2
# Example:
# This enable 1h(3600) duration for songs, the "\"indicates new line,
# and is only set for formating purposes.
# SkillDurationList = 264,3600;265,3600;266,3600;267,3600;268,3600;\
# 269,3600;270,3600;304,3600;305,1200;306,3600;308,3600;349,3600;\
# 363,3600;364,3600
# Default: False
EnableModifySkillDuration = False
SkillDurationList =
Строка неактивна, следовательно время не должно фиксироваться, оно должно определятся по таблице
ай йа дятел...Этим же скилл дюратион можно же жостко задать время скилов!
Сенк за подсказку, ушел тестить
Ап...Бафер перестал работать...все, у меня депресняк((
Буду сборку новую качать
Найди нормально время бафов и помяняй вот эту строчку# SkillDurationList = 264,3600;265,3600;266,3600;267,3600;268,3600;\
# 269,3600;270,3600;304,3600;305,1200;306,3600;308,3600;349,3600;\
# 363,3600;364,3600 - это твое время бафов
И после таких слов что бафер слетел и сборку менять сразо надо, все норм сборки обсерают всякие криворукие "малолетки" (извиняюсь если вы не такие) которые, как уже было сказано, мечтают поднять сервер и купить квартиру, машину и виллу где нить у моря с доната.
Я вполне расписал где надо в скиле время менять. Сам менял, знаю что работает.

