-
Публикаций
86 -
Зарегистрирован
-
Посещение
-
Отзывы
0%
Сообщения, опубликованные Jigsaw
-
-
В 14.04.2021 в 23:17, Phoenix сказал:тогда вернее будет вырезать
if(count > 10)
pointsCount += count % 10 * 118;и будет за каждый итем CLAW давать по 1к репы
В 15.04.2021 в 02:22, Rolo сказал:Ну не совсем по формуле ниже.
Но насчет вырезать эти строки нафиг - полностью согласен. ))Увы, что-то по-прежнему не так
-
23 часа назад, Rolo сказал:Судя по названию должно работать, Вы бы не могли выложить сам скрипт отдельно, чтобы не качать всю сборку? ) Возможно там напрямую указана цифра и заданная переменная в награде не используется.
-
Привет. Что нужно изменить в квесте, что бы давало не 30, а 1000 репутации за коготь?
private static final int CLAN_POINTS_REWARD = 1000 - не помогает.
Я - ноль в джава, перечитывание тем с мануалами о создании и редактировании квестов не помогло.
Господа говорят, что эта (тык) моя тема относится к ядру, поэтому помощь приветствуется.СБОРКА (тык)
Спойлерpackage quests;
import l2ft.gameserver.model.pledge.Clan;
import l2ft.gameserver.model.Player;
import l2ft.gameserver.model.instances.NpcInstance;
import l2ft.gameserver.model.quest.Quest;
import l2ft.gameserver.model.quest.QuestState;
import l2ft.gameserver.network.l2.s2c.SystemMessage;
import l2ft.gameserver.scripts.ScriptFile;public class _510_AClansReputation extends Quest implements ScriptFile
{
private static final int VALDIS = 31331;
private static final int CLAW = 8767;
private static final int CLAN_POINTS_REWARD = 1000;@Override
public void onLoad()
{
}@Override
public void onReload()
{
}@Override
public void onShutdown()
{
}public _510_AClansReputation()
{
super(PARTY_ALL);addStartNpc(VALDIS);
for(int npc = 22215; npc <= 22217; npc++)
addKillId(npc);
}@Override
public String onEvent(String event, QuestState st, NpcInstance npc)
{
int cond = st.getCond();
String htmltext = event;
if(event.equals("31331-3.htm"))
{
if(cond == 0)
{
st.setCond(1);
st.setState(STARTED);
}
}
else if(event.equals("31331-6.htm"))
{
st.playSound(SOUND_FINISH);
st.exitCurrentQuest(true);
}
return htmltext;
}@Override
public String onTalk(NpcInstance npc, QuestState st)
{
String htmltext = "<html><body>You are either not on a quest that involves this NPC, or you don't meet this NPC's minimum quest requirements.</body></html> -
В 03.04.2021 в 06:45, Phoenix сказал:разрешить в ядре вставлять в них АТТ
Как? Прошу подсказки.
Тема актуальна. -
В 03.04.2021 в 06:45, Phoenix сказал:разрешить в ядре вставлять в них АТТ
сборка исходы и тд хотя бы указывайте
-
-
Привет. Сборка First-Team H5 ( https://yadi.sk/d/4mPjaUKlFtCPk ).
Куда ковырять, что бы зайти в соло камалоку без премиума любому игроку?
Это не помогает:
# Solo kamaloka only for premium KamalokaNightmaresPremiumOnly = False
Скрипт инста:
Спойлерpackage instances;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Future;import l2ft.commons.threading.RunnableImpl;
import l2ft.gameserver.ThreadPoolManager;
import l2ft.gameserver.data.xml.holder.NpcHolder;
import l2ft.gameserver.idfactory.IdFactory;
import l2ft.gameserver.model.GameObject;
import l2ft.gameserver.model.GameObjectsStorage;
import l2ft.gameserver.model.Player;
import l2ft.gameserver.model.Spawner;
import l2ft.gameserver.model.entity.Reflection;
import l2ft.gameserver.network.l2.s2c.SystemMessage;
import l2ft.gameserver.templates.InstantZone;
import l2ft.gameserver.templates.StatsSet;
import l2ft.gameserver.utils.Location;
import npc.model.PathfinderInstance;public class KamalokaNightmare extends Reflection
{
private static final int PATHFINDER = 32485;private static final int RANK_1_MIN_POINTS = 500;
private static final int RANK_2_MIN_POINTS = 2500;
private static final int RANK_3_MIN_POINTS = 4500;
private static final int RANK_4_MIN_POINTS = 5500;
private static final int RANK_5_MIN_POINTS = 7000;
private static final int RANK_6_MIN_POINTS = 9000;private final int _playerId;
private Future<?> _expireTask;private int killedKanabions = 0;
private int killedDoplers = 0;
private int killedVoiders = 0;private int delay_after_spawn = 0;
private boolean is_spawn_possible = true;public KamalokaNightmare(Player player)
{
_playerId = player.getObjectId();
}@Override
protected void onCreate()
{
super.onCreate();InstantZone iz = getInstancedZone();
if(iz != null)
{
int time_limit = iz.getTimelimit() * 1000 * 60;
delay_after_spawn = time_limit / 3;
startPathfinderTimer(time_limit - delay_after_spawn); // спавн патчфиндера происходит через 2\3 прошедшего времени.
}
}
@Override
protected void onCollapse()
{
super.onCollapse();
stopPathfinderTimer();
}public void addKilledKanabion(int type)
{
switch(type)
{
case 1:
killedKanabions++;
break;
case 2:
killedDoplers++;
break;
case 3:
killedVoiders++;
break;
}
}public int getRank()
{
int total = killedKanabions * 10 + killedDoplers * 20 + killedVoiders * 50;
if(total >= RANK_6_MIN_POINTS)
return 6;
else if(total >= RANK_5_MIN_POINTS)
return 5;
else if(total >= RANK_4_MIN_POINTS)
return 4;
else if(total >= RANK_3_MIN_POINTS)
return 3;
else if(total >= RANK_2_MIN_POINTS)
return 2;
else if(total >= RANK_1_MIN_POINTS)
return 1;
else
return 0;
}public void startPathfinderTimer(long timeInMillis)
{
if(_expireTask != null)
{
_expireTask.cancel(false);
_expireTask = null;
}_expireTask = ThreadPoolManager.getInstance().schedule(new RunnableImpl()
{
@Override
public void runImpl()
{
try
{
is_spawn_possible = false;
for(Spawner s : KamalokaNightmare.this.getSpawns().toArray(new Spawner[KamalokaNightmare.this.getSpawns().size()]))
s.deleteAll();KamalokaNightmare.this.getSpawns().clear();
List<GameObject> delete = new ArrayList<GameObject>();
lock.lock();
try
{
for(GameObject o : _objects)
if(!o.isPlayable())
delete.add(o);
}
finally
{
lock.unlock();
}for(GameObject o : delete)
o.deleteMe();Player p = (Player) GameObjectsStorage.findObject(getPlayerId());
if(p != null)
{
p.getPlayer().sendPacket(new SystemMessage(SystemMessage.THIS_DUNGEON_WILL_EXPIRE_IN_S1_MINUTES).addNumber(delay_after_spawn / 60000));InstantZone iz = KamalokaNightmare.this.getInstancedZone();
if(iz != null)
{
String loc = iz.getAddParams().getString("pathfinder_loc", null);
if(loc != null)
{
PathfinderInstance npc = new PathfinderInstance(IdFactory.getInstance().getNextId(), NpcHolder.getInstance().getTemplate(PATHFINDER));
npc.setSpawnedLoc(Location.parseLoc(loc));
npc.setReflection(KamalokaNightmare.this);
npc.spawnMe(npc.getSpawnedLoc());
}
}
}
else
collapse();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}, timeInMillis);
}public void stopPathfinderTimer()
{
if(_expireTask != null)
{
_expireTask.cancel(false);
_expireTask = null;
}
}public int getPlayerId()
{
return _playerId;
}@Override
public boolean canChampions()
{
return false;
}public boolean isSpawnPossible()
{
return is_spawn_possible;
}
}Xml инста:
Спойлер<!DOCTYPE list SYSTEM "instances.dtd">
<list>
<!-- Town of Schuttgart: NPC Pathfinder (Level 75) -->
<instance id="56" name="Kamaloka, Hall of the Nightmares" maxChannels="10" collapseIfEmpty="10" timelimit="30" dispelBuffs="false">
<collapse on-party-dismiss="true" timer="60"/>
<level min="70" max="85"/>
<party min="1" max="1"/>
<return loc="42767 -48016 -800"/>
<teleport loc="48137 -219716 -8752"/>
<remove itemId="0" count="0" necessary="false"/>
<give itemId="0" count="0"/>
<quest id="0"/>
<reuse resetReuse="30 6 * * *" setUponEntry="true" sharedReuseGroup="2"/>
<add_parameters>
<param name="pathfinder_loc" value="49052 -219762 -8752"/>
<param name="reward_lvl_0" value="13002-8"/>
<param name="reward_lvl_1" value="13002-8;10860-1"/>
<param name="reward_lvl_2" value="13002-8;10861-1"/>
<param name="reward_lvl_3" value="13002-8;10862-1"/>
<param name="reward_lvl_4" value="13002-8;10863-1"/>
<param name="reward_lvl_5" value="13002-8;10864-1"/>
<param name="reward_lvl_6" value="13002-10;10865-1"/>
</add_parameters>
<spawns>
<!-- Sword Kanabion -->
<spawn mobId="22482" count="6" respawn="30" type="loc">
<coords loc="48152 -218792 -8752 -8752"/>
<coords loc="49896 -218792 -8752 -8752"/>
<coords loc="49896 -220696 -8752 -8752"/>
<coords loc="48152 -220696 -8752 -8752"/>
</spawn>
</spawns>
</instance>
</list>И еще херня. Есть конфиг:
# Включить альтернативное ограничение по количеству чаров в группе для входа в инстанс # работает только на тех зонах где есть ограничения AllowInstancesPartyManual = true # Минимальное количество InstancesPartyMin = 2 # Максимальное количество InstancesPartyMax = 9
Так вот при попытке входа в инст в Delusion Chamber за минимальное количество игроков береться значение максимального. Как исправить? (Кроме InstancesPartyMax = 2).
-
11 часов назад, night73 сказал:А можете плиз еще подсказать где находятся статы мобов из долины драконов и ЛОА в базе их ИДов нету. где их редактировать ?
Нажимаешь на моба Shift+клик, смотришь его ID. Потом ищешь его здесь - D:\server\gameserver\data\xml\npc (путь может отличаться в зависимости от сборки)
-
6 часов назад, Rolo сказал:Датник armorgrp колонка mdef.
Спасибо.
-
Привет. Сборка First-Team H5 ( https://yadi.sk/d/4mPjaUKlFtCPk ). Нашел и решил ковырнуть Improved Blessed Earring of Zaken, сделать из него что-нибудь соответствующее названию.
Получилось всё, кроме надписи базового мдфа на серьге. По факту дает, 104 единицы, как исправить надпись?
-
ОП, я - такой же как и ты. Начал баловаться с хф. Взял все отсюда
Дальше ковыряю сам.
-
Благодарю
/closeНе найден класc, смотри путь к либам и тд.
-
Отсутствуют нужные файлы. Скопировать папку сервер C:\Program Files (x86)\Java\jdk\jre\bin\server в C:\Program Files (x86)\Java\jre\bin
-
-
Никак,если вы не программист
поэтому ищу программиста, который согласится помочь мне, бесплатно
-
Кто знает, как обойти верификацию в IG\OGG? Реквестирую подробный гайд по IG walker'у, "интернеты" не дают ответы на конкретно мои вопросы
-
Волкер, вроде платный... из безплатных возьми Товер) Товер уже вроде обходит лг)
Тауер есть, но на интерлюд, а хотелось бы на high five. Разве есть тауер на ХФ?)
-
Здравствуйте уважаемые форумчане!
Несколько недель десятки часов я ищу бесплатный, рабочий, НЕ требующий верификации IG/OGG валкер или его подобие по функционалу и не могу найти...
Помогите, а! -
Классный топик ) Пользователь детально описал проблему, указав все детали.
-
Может быть вы последний раз криво выключили сервер и логи запомнили его, как "запущенного"?
-
Здравствуй, форум!
Я знаю, что существует уйма гайдов по хмл параметрам и их разновидностям. Но, то ли у меня скилл гугла потух, я не смог найти:
<set name="condition" val="32" /> - что это за условие, на что конкретно оно влияет?
[l2emu Gracia Final rev 1950]
-
Или в конциге опцию "customspawnlist", или в базу лезть.
-
Ответ номер 2:
Смотри приведу тебе пример:
У тебя есть файлик buff.htm ты хочешь сделать в нем кнопку для перехода на страничку с денсами, так это есть.
Идем дальше, значит у тебя уже есть файл в котором оформлена страничка денсов, ты переименовываешь его в buff-1.htm, а в файлике buff.htm в байпассе пишешь <a action="bypass -h npc_%objectId%_Chat 1">Денсы</a><br> файлы должны быть в одной папке.
Надеюсь ты понял меня )
То что выделено зеленым, обрати внимание, эти файлы должны быть с одинаковыми названиями, отличие лишь в том, что ты ставишь номер диалога с нпсом, так можно провернуть бесконечно, соответственно ставишь Char 2 и buff-2.htm название файла не важно, главное что бы с главным диалогом они были одинаковые
Спасибо, с азами коддинга хтмл я уже знаком ) В том-то и дело, что все как нужно выполнил, поэтому и вопию на форуме.
-
Это, как попросить маму сходить в магазин и выбрать тебе штаны.
[Гайд] Создание своего сервера Lineage 2 HF5 для чайников.
в Мануалы
Опубликовано · Изменено пользователем Jigsaw
Пацаны, эти темы вне времени. Поставил в 2020, успешно забыл, сейчас вернулся к ковырянию и всё работает. Потихоньку кастомизирую лично для себя, играю соло на своем сервере, даже геодату смог поставить )