Skip to content
La2Base
Home
DownloadsWikiForumFAQ
Search
ruen
Sign up Login
HomeFilesWikiLogin
  • Home
  • Downloads
  • Wiki
  • FAQ
  • Contact Us
  • About
  • Rules
  • Privacy
  • Terms of Service

© 2026 la2base.com · All rights reserved

ruen
Forum/Квесты/Запрос на выполнения действия: Убитие мобов в определённом радиусе
Search

Запрос на выполнения действия: Убитие мобов в определённом радиусе

4 replies157 viewsCurrently viewing: 1
Baium
Baium

User

Бывалый

Posts: 103

На форуме с: 04/17/2009

Репутация: +292

Рейтинг: 0

· 08/22/2009, 12:21 AM

В общем назрел вопрос о следующей задумке:
Ковыряю ивент Пекло, и назрела мысль: Квестом появляется "Главный Моб" Пекла, и появляется ещё 1 "простенький" моб рядом, телепортируется игрок в место где обитают эти мобы, игрок начинает убивать этотого 1 "простенького моба", как убил его сразу уже появляется ещё 2-е таких же "простеньких" мобов, ну и так дальше, и когда игрок почувствует что он не сможет убить этих мобов, а их уже не малое количество, а дальше я хочу сделать так: игрок начинает бить "Главного Моба" и все мобы в определённом радиусе от "Главного Моба" убиваются (т.е. делают самоубийство). Я думаю свою мысль изложил понятно, и хотел бы у вас попросить помощи в её реализации. Я просмотрел квест на саб, где игрок "при ударе баюма красит свой кинжал (PIPETTE KNIFE), систему удара я понял, а вот при ударе "Главного Моба" чтобы мобы убивались в определённом радиусе (это на подобии того что Админ персонажем использовать команду //kill и задаёт радиус убийств и всё что находится в раёне заданого радиуса Админом - умирает) не могу сообразить. Может кто что подскажет существенное.

Вот кусок скрипта с квеста на саб когда игрок атачит баюма

Код
def onAttack (self, npc, player, damage, isPet):                  
    st = player.getQuestState(qn)
    if not st : return
    if st.getState() != State.STARTED : return

    npcId = npc.getNpcId()
    value,dropId,chance = DROPLIST[npcId]
    if value == st.getInt("cond") and npcId==29020 :
      if player.getActiveWeaponItem() and player.getActiveWeaponItem().getItemId() == PIPETTE_KNIFE and st.getRandom(100)<chance and st.getQuestItemsCount(dropId) == 0:
        st.giveItems(dropId,1)
        st.takeItems(PIPETTE_KNIFE,1)
        st.playSound("Itemsound.quest_itemget")
    return

Надеюсь на вашу помощь. Может у вас есть какието намёки на реализацию.

0
xxblxx
xxblxx

User

Бывалый

Posts: 306

На форуме с: 12/17/2009

Репутация: +55

Рейтинг: 0

· 08/22/2009, 12:29 AM

я в питоне не силен, но вот тот самый кусок, он атак...вставь в базу там тоже есть я хз как это назвать онАтак

вот там напиши что если нпс ид == твоему мега бобру, то убить тех нпс, я пишу на яве......на питоне я хз как убить мобов тех....

вприципе логично было было для всех этих мобов сделать метод kill() но...это не ява ребятки....

0
V
VlLight

User

Бывалый

Posts: 235

На форуме с: 05/20/2009

Репутация: +63

Рейтинг: 0

· 08/22/2009, 08:09 AM

xxblxx: вприципе логично было было для всех этих мобов сделать метод kill() но...это не ява ребятки....


Из Питона можно вызвать любой метод Явы

Попробуй посмотеть в ядре класс миньонов РБ - они деспаунятся после смерти РБ

0
AbsT
AbsT

User

Ветеран

Posts: 1514

На форуме с: 12/10/2007

Репутация: +768

Рейтинг: 0

· 08/22/2009, 08:24 AM

Примерно так будет на яве, если оперировать из L2RaidBossInstance.
В метод doDie у рейда вставить следующее.

Код
        for (L2MinionInstance m : super.getSpawnedMinions())
        {
            if (m == null) continue;
            m.doDie(killer /*null*/);
        }


По аналогии можете переписать на питон, все просто.
Смысл в переборе списка с минионами, а далее с ними можно делать что угодно.
Код
    public List<L2MinionInstance> getSpawnedMinions()
    {
        return _minionList.getSpawnedMinions();
    }

— &#197;lderdom - ingen gl&#228;dje..

0
Войдите или зарегистрируйтесь чтобы ответить