Перейти к содержимому
La2Base
Главная
ЗагрузкиВикиФорумFAQ
Поиск
ruen
Регистрация Войти
ГлавнаяФайлыВикиВойти
  • Главная
  • Загрузки
  • Вики
  • FAQ
  • Обратная связь
  • О проекте
  • Правила
  • Конфиденциальность
  • Условия использования

© 2026 la2base.com · Все права защищены

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

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

4 ответов156 просмотровСейчас просматривают: 1
Baium
Baium

Пользователь

Бывалый

Постов: 103

На форуме с: 17.04.2009

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

Рейтинг: 0

· 22.08.2009, 00:21

В общем назрел вопрос о следующей задумке:
Ковыряю ивент Пекло, и назрела мысль: Квестом появляется "Главный Моб" Пекла, и появляется ещё 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

Пользователь

Бывалый

Постов: 306

На форуме с: 17.12.2009

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

Рейтинг: 0

· 22.08.2009, 00:29

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

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

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

0
V
VlLight

Пользователь

Бывалый

Постов: 235

На форуме с: 20.05.2009

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

Рейтинг: 0

· 22.08.2009, 08:09

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


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

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

0
AbsT
AbsT

Пользователь

Ветеран

Постов: 1514

На форуме с: 10.12.2007

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

Рейтинг: 0

· 22.08.2009, 08:24

Примерно так будет на яве, если оперировать из 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
Войдите или зарегистрируйтесь чтобы ответить