что делаю не так?

Yarpi

Heir
Customer
Господа которые шарять, подскажи плз.
Что я делаю не так, пытаюсь заставить заспавниться нпц после убийства моба в инстансе,


Java:
package instance;

import l2.gameserver.instancemanager.ReflectionManager;
import l2.gameserver.model.Creature;
import l2.gameserver.model.instances.MonsterInstance;
import l2.gameserver.templates.npc.NpcTemplate;
import l2.gameserver.utils.Location;
import l2.gameserver.utils.NpcUtils;

public class CustomNpcSpawnerInstance extends MonsterInstance {
    public CustomNpcSpawnerInstance(int objectId, NpcTemplate template) {
        super(objectId, template);
    }

    @Override
    protected void onDeath(Creature killer) {
        super.onDeath(killer);

        // Проверяем, что убитый моб находится в той же рефлексии, что и атакующий, и что это не дефолтная рефлексия
        if (this.getReflection() == killer.getReflection() && this.getReflection() != ReflectionManager.DEFAULT) {

            // Проверяем ID убитого моба
            if (this.getNpcId() == 26305) {
                // Координаты для спавна нового NPC
                Location spawnLocation = new Location(12047, -174887, -9944);

                // Спавним NPC с ID 30080
                NpcUtils.spawnSingle(30080, spawnLocation, this.getReflection());
            }
        }
    }
}
но сучество не спавнит нпц после убийства РБ. За основу брал код открытия дверей от дизера.
Если что писюнами не кидайте, делал через чатгпт
может кто то направит в нужную сторону
 
Жестка ты решаешь свои проблемы)
<ai_params>
<set name="transformChance" value="100"/>
<set name="transformOnDead" value="<span>30080</span>"/>
<set name="transformSpawnAmount" value="1"/>
<set name="transformSpawnRndRadius" value="0"/>
</ai_params>
 
Жестка ты решаешь свои проблемы)
<ai_params>
<set name="transformChance" value="100"/>
<set name="transformOnDead" value="<span>30080</span>"/>
<set name="transformSpawnAmount" value="1"/>
<set name="transformSpawnRndRadius" value="0"/>
</ai_params>

ок. это решит мой вопрос с спавном телепорта в инстансе.
но если немного поглубже копнуть, например при входе стоит 1 РБ, после убийства 1-го РБ спавниться второй, но уже на новых координатах и т.д. то это стука не поможет мне .
 
Up, если не трудно с кусочком примера небольшого. Заранее спасибо
 
пример как спавнится Столб после фарма ласт босса в лабе , сделай под себя
Java:
  @Override
    protected void onDeath(Creature killer) {
        Reflection r = getReflection();
        r.setReenterTime(System.currentTimeMillis());
        getMinionList().unspawnMinions();
        super.onDeath(killer);
        clearReflection();

        InstantZone iz = r.getInstancedZone();
        if (iz != null) {
            String tele_device_loc = iz.getAddParams().getString("tele_device_loc", null);
            if (tele_device_loc != null) {
                KamalokaGuardInstance npc = new KamalokaGuardInstance(IdFactory.getInstance().getNextId(), NpcHolder.getInstance().getTemplate(
                        TELE_DEVICE_ID));
                npc.setSpawnedLoc(Location.parseLoc(tele_device_loc));
                npc.setReflection(r);
                npc.spawnMe(npc.getSpawnedLoc());
            }
        }
    }
ну или можно добавить после убийства через
1729105144006.webp
 
Last edited:
Господа которые шарять, подскажи плз.
Что я делаю не так, пытаюсь заставить заспавниться нпц после убийства моба в инстансе,


Java:
package instance;

import l2.gameserver.instancemanager.ReflectionManager;
import l2.gameserver.model.Creature;
import l2.gameserver.model.instances.MonsterInstance;
import l2.gameserver.templates.npc.NpcTemplate;
import l2.gameserver.utils.Location;
import l2.gameserver.utils.NpcUtils;

public class CustomNpcSpawnerInstance extends MonsterInstance {
    public CustomNpcSpawnerInstance(int objectId, NpcTemplate template) {
        super(objectId, template);
    }

    @Override
    protected void onDeath(Creature killer) {
        super.onDeath(killer);

        // Проверяем, что убитый моб находится в той же рефлексии, что и атакующий, и что это не дефолтная рефлексия
        if (this.getReflection() == killer.getReflection() && this.getReflection() != ReflectionManager.DEFAULT) {

            // Проверяем ID убитого моба
            if (this.getNpcId() == 26305) {
                // Координаты для спавна нового NPC
                Location spawnLocation = new Location(12047, -174887, -9944);

                // Спавним NPC с ID 30080
                NpcUtils.spawnSingle(30080, spawnLocation, this.getReflection());
            }
        }
    }
}
но сучество не спавнит нпц после убийства РБ. За основу брал код открытия дверей от дизера.
Если что писюнами не кидайте, делал через чатгпт
может кто то направит в нужную сторону
Если шифт клик на боса , у него стоит тип - CustomNpcSpawner ?
 
Back
Top