Spawn рб

Tagib

Последний из атеистов
Пользователь
Сообщения
64
Розыгрыши
0
Решения
1
Репутация
0
Реакции
3
Баллы
860
Хроники
  1. Chaotic Throne: High Five
Исходники
Присутствуют
Сборка
l2gw
Может кто объяснить как их вернуть на свои места? Почему они все заспавнены тут?
1654488362677.png
 
Папка спавн или по ид рб и меняй
 
Да скорее всего слетели позиции спавна. Не знаю, что за сборка но могут быть следующие варианты правки:
- В датапаке( как советуют выше)
- В базе, если все базируется на ней
- В базе в кастомных спавнах, если есть сохранение спава от gm действий
Узнаешь id рб и поиском находишь, где проблема. А дальше все должно быть интуитивно
 
Да скорее всего слетели позиции спавна. Не знаю, что за сборка но могут быть следующие варианты правки:
- В датапаке( как советуют выше)
- В базе, если все базируется на ней
- В базе в кастомных спавнах, если есть сохранение спава от gm действий
Узнаешь id рб и поиском находишь, где проблема. А дальше все должно быть интуитивно
Все искал, спавн не нашел
 
Может кто объяснить как их вернуть на свои места? Почему они все заспавнены тут?
Посмотреть вложение 43973
Используйте обычное действие "Аттака" с зажатой клавишей "Шифт" и посмотрите где находится файл спавна данного НПС, или стандартные кординаты респа.
 
Используйте обычное действие "Аттака" с зажатой клавишей "Шифт" и посмотрите где находится файл спавна данного НПС, или стандартные кординаты респа.
Благодарю, забыл об этой функции, надеюсь поможет. Отпишусь если что
 
Ничего не нашел по совету. Вот файл Queen Ant.java
Может есть что не так?


Java:
package ai;

import ru.l2gw.commons.math.Rnd;

import ru.l2gw.gameserver.ai.CtrlIntention;
import ru.l2gw.gameserver.model.Creature;
import ru.l2gw.gameserver.model.L2Skill;
import ru.l2gw.gameserver.model.entity.category.CategoryManager;
import ru.l2gw.gameserver.model.instances.L2NpcInstance;
import ru.l2gw.gameserver.serverpackets.PlaySound;
import ru.l2gw.gameserver.tables.SkillTable;
import ru.l2gw.gameserver.util.Util;

import ai.base.DefaultNpc;

public class QueenAnt extends DefaultNpc
{
    public L2Skill different_level_9_attacked = SkillTable.getInstance().getInfo(295895041);
    public L2Skill different_level_9_see_spelled = SkillTable.getInstance().getInfo(276234241);
    public L2Skill skill01 = SkillTable.getInstance().getInfo(279052289);
    public L2Skill skill02 = SkillTable.getInstance().getInfo(263323649);
    public L2Skill skill03 = SkillTable.getInstance().getInfo(263389185);
    public L2Skill skill04 = SkillTable.getInstance().getInfo(263258113);
    
    public QueenAnt(Creature actor)
    {
        super(actor);
    }
    
    @Override
    protected void onEvtSpawn()
    {
        if (Rnd.get(100) < 33)
        {
            Util.teleportInMyTerritory(_thisActor, -19480, 187344, -5600, 200);
        }
        else if (Rnd.get(100) < 50)
        {
            Util.teleportInMyTerritory(_thisActor, -17928, 180912, -5520, 200);
        }
        else
        {
            Util.teleportInMyTerritory(_thisActor, -23808, 182368, -5600, 200);
        }
        _thisActor.broadcastPacket(new PlaySound("BS01_A"));
        _thisActor.i_ai0 = 0;
        _thisActor.i_ai1 = 0;
        _thisActor.weight_point = 10;
        _thisActor.createOnePrivate(29002, "QueenAntLarva", 0, 0, -21600, 179482, -5846, Rnd.get(360), 0, 0, 0);
        _thisActor.spawnMinions();
        addTimer(1001, 10000);
    }
    
    @Override
    protected void onEvtTimer(int timerId, Object arg1, Object arg2)
    {
        if (timerId == 1001)
        {
            if ((Rnd.get(100) < 30) && (_intention == CtrlIntention.AI_INTENTION_ACTIVE))
            {
                if (Rnd.get(100) < 50)
                {
                    addEffectActionDesire(3, (50 * 1000) / 30, 30);
                }
                else
                {
                    addEffectActionDesire(4, (50 * 1000) / 30, 30);
                }
            }
            addTimer(1001, 10000);
        }
        else
        {
            super.onEvtTimer(timerId, arg1, arg2);
        }
    }
    
    @Override
    protected void onEvtPartyDead(L2NpcInstance victim)
    {
        if (victim != _thisActor)
        {
            if (victim.getNpcId() == 29003)
            {
                _thisActor.respawnPrivate(victim, victim.weight_point, 10);
            }
            else
            {
                _thisActor.respawnPrivate(victim, victim.weight_point, 280 + Rnd.get(40));
            }
        }
    }
    
    @Override
    protected void onEvtAttacked(Creature attacker, int damage, L2Skill skill)
    {
        if (((attacker.getZ() - _thisActor.getZ()) > 5) || ((attacker.getZ() - _thisActor.getZ()) < -500))
        {
        }
        else if (attacker.getLevel() > (_thisActor.getLevel() + 8))
        {
            if (SkillTable.getAbnormalLevel(attacker, different_level_9_attacked) == -1)
            {
                if (different_level_9_attacked.getId() == 4515)
                {
                    _thisActor.altUseSkill(different_level_9_attacked, attacker);
                    _thisActor.addDamageHate(attacker, damage, 0);
                    removeAttackDesire(attacker);
                    return;
                }
                _thisActor.altUseSkill(different_level_9_attacked, attacker);
            }
        }
        
        if ((attacker.isPlayer() || CategoryManager.isInCategory(12, attacker.getNpcId())) && (SkillTable.getAbnormalLevel(attacker, 295895041) == -1))
        {
            if (attacker.getPlayer().getMountEngine().isMounted() && (SkillTable.getAbnormalLevel(attacker, 279052289) <= 0))
            {
                if ((skill01.getMpConsume() < _thisActor.getCurrentMp()) && (skill01.getHpConsume() < _thisActor.getCurrentHp()) && !_thisActor.isSkillDisabled(skill01.getId()))
                {
                    addUseSkillDesire(attacker, skill01, 0, 1, 1000000);
                }
            }
            if ((skill != null) && (skill.getElement() == L2Skill.Element.FIRE) && ((Rnd.get(100) < 70) && _thisActor.inMyTerritory(attacker)))
            {
                if ((skill02.getMpConsume() < _thisActor.getCurrentMp()) && (skill02.getHpConsume() < _thisActor.getCurrentHp()) && !_thisActor.isSkillDisabled(skill02.getId()))
                {
                    addUseSkillDesire(attacker, skill02, 0, 1, 1000000);
                }
            }
            else if ((_thisActor.getLoc().distance3D(attacker.getLoc()) > 500) && (Rnd.get(100) < 10))
            {
                if ((skill03.getMpConsume() < _thisActor.getCurrentMp()) && (skill03.getHpConsume() < _thisActor.getCurrentHp()) && !_thisActor.isSkillDisabled(skill03.getId()))
                {
                    addUseSkillDesire(attacker, skill03, 0, 0, 1000000);
                }
            }
            else if ((_thisActor.getLoc().distance3D(attacker.getLoc()) > 150) && (Rnd.get(100) < 10))
            {
                if ((Rnd.get(100) < 80) && (_thisActor.getLoc().distance3D(attacker.getLoc()) < 500))
                {
                    if ((skill02.getMpConsume() < _thisActor.getCurrentMp()) && (skill02.getHpConsume() < _thisActor.getCurrentHp()) && !_thisActor.isSkillDisabled(skill02.getId()))
                    {
                        addUseSkillDesire(attacker, skill02, 0, 0, 1000000);
                    }
                }
                else if ((skill03.getMpConsume() < _thisActor.getCurrentMp()) && (skill03.getHpConsume() < _thisActor.getCurrentHp()) && !_thisActor.isSkillDisabled(skill03.getId()))
                {
                    addUseSkillDesire(attacker, skill03, 0, 0, 1000000);
                }
            }
            else if ((Rnd.get(100) < 5) && (_thisActor.getLoc().distance3D(attacker.getLoc()) < 250))
            {
                if ((skill04.getMpConsume() < _thisActor.getCurrentMp()) && (skill04.getHpConsume() < _thisActor.getCurrentHp()) && !_thisActor.isSkillDisabled(skill04.getId()))
                {
                    addUseSkillDesire(_thisActor, skill04, 0, 1, 1000000);
                }
            }
            else if (Rnd.get(100) < 1)
            {
                addEffectActionDesire(1, (60 * 1000) / 30, 3000000);
            }
            if (attacker.isPlayer() || CategoryManager.isInCategory(12, attacker.getNpcId()))
            {
                _thisActor.addDamageHate(attacker, damage, (long) ((damage / _thisActor.getMaxHp() / 0.050000) * damage * 100));
                _thisActor.callFriends(attacker, damage);
                addAttackDesire(attacker, 0, DEFAULT_DESIRE);
            }
        }
    }
    
    @Override
    protected void onEvtPartyAttacked(Creature attacker, Creature victim, int damage)
    {
        if ((attacker.isPlayer() || CategoryManager.isInCategory(12, attacker.getNpcId())) && (victim != _thisActor))
        {
            if ((_thisActor.getLoc().distance3D(attacker.getLoc()) > 500) && (Rnd.get(100) < 5))
            {
                if ((skill03.getMpConsume() < _thisActor.getCurrentMp()) && (skill03.getHpConsume() < _thisActor.getCurrentHp()) && !_thisActor.isSkillDisabled(skill03.getId()))
                {
                    addUseSkillDesire(attacker, skill03, 0, 0, 1000000);
                }
            }
            else if ((_thisActor.getLoc().distance3D(attacker.getLoc()) > 150) && (Rnd.get(100) < 5))
            {
                if (Rnd.get(100) < 80)
                {
                    if ((skill02.getMpConsume() < _thisActor.getCurrentMp()) && (skill02.getHpConsume() < _thisActor.getCurrentHp()) && !_thisActor.isSkillDisabled(skill02.getId()))
                    {
                        addUseSkillDesire(attacker, skill02, 0, 0, 1000000);
                    }
                }
                else if ((skill03.getMpConsume() < _thisActor.getCurrentMp()) && (skill03.getHpConsume() < _thisActor.getCurrentHp()) && !_thisActor.isSkillDisabled(skill03.getId()))
                {
                    addUseSkillDesire(attacker, skill03, 0, 0, 1000000);
                }
            }
            else if ((Rnd.get(100) < 2) && (_thisActor.getLoc().distance3D(attacker.getLoc()) < 250))
            {
                if ((skill04.getMpConsume() < _thisActor.getCurrentMp()) && (skill04.getHpConsume() < _thisActor.getCurrentHp()) && !_thisActor.isSkillDisabled(skill04.getId()))
                {
                    addUseSkillDesire(_thisActor, skill04, 0, 1, 1000000);
                }
            }
            if (attacker.isPlayer() || CategoryManager.isInCategory(12, attacker.getNpcId()))
            {
                _thisActor.addDamageHate(attacker, 0, (long) ((damage / _thisActor.getMaxHp() / 0.050000) * ((L2NpcInstance) victim).weight_point * damage * 100));
            }
        }
    }
    
    @Override
    protected void onEvtClanAttacked(Creature attacked_member, Creature attacker, int damage)
    {
        if (attacker.isPlayer() || CategoryManager.isInCategory(12, attacker.getNpcId()))
        {
            if ((_thisActor.getLoc().distance3D(attacker.getLoc()) > 500) && (Rnd.get(100) < 3))
            {
                if ((skill03.getMpConsume() < _thisActor.getCurrentMp()) && (skill03.getHpConsume() < _thisActor.getCurrentHp()) && !_thisActor.isSkillDisabled(skill03.getId()))
                {
                    addUseSkillDesire(attacker, 263389185, 0, 0, 1000000);
                }
            }
            else if ((_thisActor.getLoc().distance3D(attacker.getLoc()) > 150) && (Rnd.get(100) < 3))
            {
                if (Rnd.get(100) < 80)
                {
                    if ((skill02.getMpConsume() < _thisActor.getCurrentMp()) && (skill02.getHpConsume() < _thisActor.getCurrentHp()) && !_thisActor.isSkillDisabled(skill02.getId()))
                    {
                        addUseSkillDesire(attacker, 263323649, 0, 0, 1000000);
                    }
                }
                else if ((skill03.getMpConsume() < _thisActor.getCurrentMp()) && (skill03.getHpConsume() < _thisActor.getCurrentHp()) && !_thisActor.isSkillDisabled(skill03.getId()))
                {
                    addUseSkillDesire(attacker, 263389185, 0, 0, 1000000);
                }
            }
            else if ((Rnd.get(100) < 2) && (_thisActor.getLoc().distance3D(attacker.getLoc()) < 250))
            {
                if ((skill04.getMpConsume() < _thisActor.getCurrentMp()) && (skill04.getHpConsume() < _thisActor.getCurrentHp()) && !_thisActor.isSkillDisabled(skill04.getId()))
                {
                    addUseSkillDesire(_thisActor, 263258113, 0, 1, 1000000);
                }
            }
            if (attacker.isPlayer() || CategoryManager.isInCategory(12, attacker.getNpcId()))
            {
                _thisActor.addDamageHate(attacker, 0, (long) ((damage / _thisActor.getMaxHp() / 0.050000) * 500));
            }
        }
    }
    
    @Override
    protected void onEvtSeeSpell(L2Skill skill, Creature speller)
    {
        if (((speller.getZ() - _thisActor.getZ()) > 5) || ((speller.getZ() - _thisActor.getZ()) < -500))
        {
        }
        else if (speller.getLevel() > (_thisActor.getLevel() + 8))
        {
            if (SkillTable.getAbnormalLevel(speller, different_level_9_see_spelled) == -1)
            {
                if (different_level_9_see_spelled.getId() == 4515)
                {
                    _thisActor.altUseSkill(different_level_9_see_spelled, speller);
                    removeAttackDesire(speller);
                    return;
                }
                _thisActor.altUseSkill(different_level_9_see_spelled, speller);
            }
        }
        if ((skill != null) && (skill.getEffectPoint() > 0) && (Rnd.get(100) < 15))
        {
            if ((skill02.getMpConsume() < _thisActor.getCurrentMp()) && (skill02.getHpConsume() < _thisActor.getCurrentHp()) && !_thisActor.isSkillDisabled(skill02.getId()))
            {
                addUseSkillDesire(speller, skill02, 0, 0, 1000000);
            }
        }
    }
    
    @Override
    protected void onEvtOutOfMyTerritory()
    {
        removeAllAttackDesire();
        teleportHome();
    }
    
    @Override
    protected void onEvtDead(Creature killer)
    {
        super.onEvtDead(killer);
        _thisActor.broadcastPacket(new PlaySound("BS02_D"));
    }
}
 
Ничего не нашел по совету
Попробуй взять id, например антквин: 29001. И сделай поиск этого числа по всему датапаку, таблицам спавна(если оно в бд), просмотри галазми, что содержит ключевые слова spawn, npc и т.д. Или же аналогичный поиск но по координатам(какой-то одной или нескольким сразу), которые ты можешь получить через shift+click(если это не 0 конечно)
 
Попробуй взять id, например антквин: 29001. И сделай поиск этого числа по всему датапаку, таблицам спавна(если оно в бд), просмотри галазми, что содержит ключевые слова spawn, npc и т.д. Или же аналогичный поиск но по координатам(какой-то одной или нескольким сразу), которые ты можешь получить через shift+click(если это не 0 конечно)
1654719987272.png
1654720111154.png
SQL:
"13103"    ""    "1"    "29001"    "-21598"    "181448"    "-5720"    "0"    "0"    "49648"    "30"    "0"    "0"    "Local"    \N    \N    \N    \N    \N    "0"
Нашел вот такое в таблице
Но это то что я добавил 5 минут назад, заспавнил точнее
 
ai_params - в базе, влияет ли он, не в курсе
1654720375834.png
 
Посмотреть вложение 44011
Посмотреть вложение 44012
SQL:
"13103"    ""    "1"    "29001"    "-21598"    "181448"    "-5720"    "0"    "0"    "49648"    "30"    "0"    "0"    "Local"    \N    \N    \N    \N    \N    "0"
Нашел вот такое в таблице
Но это то что я добавил 5 минут назад, заспавнил точнее
Судя по Location/Spawn : n/a n/a (со скрина) настройки спавна вообще отсутствуют. Найти NPC, а лучше РБ у которых такой параметр есть. Найди инфу о таком NPC/RB аналогичным способом как ты уже нашел по своему спавну(или в датапаке) и по образу и подобию восстанови для всех у кого таких нет
 
Было бы прекрасно узнать как поменять спавн локации мобам, я готов
Судя по Location/Spawn : n/a n/a (со скрина) настройки спавна вообще отсутствуют. Найти NPC, а лучше РБ у которых такой параметр есть. Найди инфу о таком NPC/RB аналогичным способом как ты уже нашел по своему спавну(или в датапаке) и по образу и подобию восстанови для всех у кого таких нет
Нет такого ни у одного босса, так же и у моба
 
Было бы прекрасно узнать как поменять спавн локации мобам, я готов

Нет такого ни у одного босса, так же и у моба
Ну самый простой вариант найти NPC или RB, кто спавнятся на своих местах и на их основе их сделать по аналогии. Прошерстить где харнится информация об их спавне, изучить и заполнить для недостающих. Если у тебя вообще нет ни одного npc/рб на сервере, то по исходникам понять формат, в котором должно храниться и восстанавливать все(например, написать парсер какой-нибудь базы знаний по l2 и прогнать, чтобы заполнить спавны под твой формат). Возможно, определить вид сборки(может стартовала от какой-то шары) и поискать готовые спавны всех мобов в этих сборках.
Чтобы определить вид, наверное, нужно зашарить какой-то кусок кода, который обо всем расскажет, тут нужны форумчане поопытнее и смогут определить
upd. Ты уверен, что корректно установил базу и залил в неё все? Все из датапака попало в нужное место?
 
Ну самый простой вариант найти NPC или RB, кто спавнятся на своих местах и на их основе их сделать по аналогии. Прошерстить где харнится информация об их спавне, изучить и заполнить для недостающих. Если у тебя вообще нет ни одного npc/рб на сервере, то по исходникам понять формат, в котором должно храниться и восстанавливать все(например, написать парсер какой-нибудь базы знаний по l2 и прогнать, чтобы заполнить спавны под твой формат). Возможно, определить вид сборки(может стартовала от какой-то шары) и поискать готовые спавны всех мобов в этих сборках.
Чтобы определить вид, наверное, нужно зашарить какой-то кусок кода, который обо всем расскажет, тут нужны форумчане поопытнее и смогут определить
upd. Ты уверен, что корректно установил базу и залил в неё все? Все из датапака попало в нужное место?
По поводу твоего вопроса, я думаю что не уверен в этом, что все правильно залилось

Просьба еще вариантов накидать, потому что не файлов о спавне, не в базе нет спавнов
 
if (Rnd.get(100) < 33) { Util.teleportInMyTerritory(_thisActor, -19480, 187344, -5600, 200); } else if (Rnd.get(100) < 50) { Util.teleportInMyTerritory(_thisActor, -17928, 180912, -5520, 200); } else { Util.teleportInMyTerritory(_thisActor, -23808, 182368, -5600, 200); }
вот же оно ?
 
Назад
Сверху Снизу