Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Серверная часть (https://forum.zone-game.info/forumdisplay.php?f=148)
-   -   Подбор дропа с нпц (https://forum.zone-game.info/showthread.php?t=13557)

Romanz 12.04.2011 10:18

Подбор дропа с нпц
 
Хочу сделать подбор дропа не только с мобов но и нпц , может кто нашел где сделать )) подскажите

ALeKsIuS 12.04.2011 10:33

Re: Подбор дропа с нпц
 
А разве его нет? Оо
Прикольнись с Tribe, должно помочь.

Romanz 12.04.2011 11:27

Re: Подбор дропа с нпц
 
Цитата:

А разве его нет? Оо
нет если ставиш NON_ATTACKABLE , хочу сделать Геру и Теграка , что бы их не возможно было атаковать своей расе
Цитата:

Прикольнись с Tribe, должно помочь.
а поподробней

flashman 12.04.2011 12:16

Re: Подбор дропа с нпц
 
Можно сделать, только NON_ATTACKABLE тут часть общего плана. И кстати для теграка и геры будет достаточно прописать именно NON_ATTACKABLE, я так и сделал у ся на серве, и всё прекрасно работает. Для остальных нпс чуть повозится надо будет.
Вобщем вся фишка в MonsterController и NpcController , а именно в методе doReward, в контролере для нпс он небыл переопределён, а значит остался таким же как и для обшего класса CreatureController, а вот в монстер контролере он был переопределён, посему все объекты которые спавнятся как монстры и наследуют монстер контролер могут выдавать ревард(дроп).
Собсно тут есть два пути:
1) глобальный :) , поскольку MonsterController extends NpcController тобиш расширяет класс нпсконтролера, можно перенести метод doReward из монстерконтролера в нпсконтролер, далее придётся править нюансы во всей иерархии использования монстерконтролера.
В результате получим возможность сбора дропа с любого нпс.
2) локальный :) , больше подходит для обработки отдельных нпс, например боссов, порталов и других специфичных объектов. Т.е. просто в при спавне указать какие npcid мы хочем сделать монстрами, и тогда только с них можно будет собрать дроп.
Это уже делается в SpawnEngine в методе SpawnObject .

Romanz 13.04.2011 19:12

Re: Подбор дропа с нпц
 
Цитата:

А разве его нет? Оо
Прикольнись с Tribe, должно помочь.
или обоснуй , или не пиши если незнаеш! писец все перерыл неработает нех

ALeKsIuS 13.04.2011 20:57

Re: Подбор дропа с нпц
 
Можно полегче, я тебе не друг. А "рыл" ты плохо.


http://i049.radikal.ru/1104/b4/ca2d9ef70782.jpg

Статы:
Свернуть ↑Развернуть ↓

Ещё для полного феншуя нужно будет редактировать сами трайбы, на agro и friend

Romanz 14.04.2011 10:35

Re: Подбор дропа с нпц
 
Цитата:

npc_type="ATTACKABLE"
ну так напиши как ты сделал если я такой нуб ) , что бы своя раса не могла атаковать , а вторая могла дроп поднять

3EBC 14.04.2011 16:28

Re: Подбор дропа с нпц
 
Цитата:

Сообщение от Romanz (Сообщение 117668)
ну так напиши как ты сделал если я такой нуб ) , что бы своя раса не могла атаковать , а вторая могла дроп поднять

Слова flashman-a

И кстати для теграка и геры будет достаточно прописать именно NON_ATTACKABLE, я так и сделал у ся на серве, и всё прекрасно работает

flashman 14.04.2011 20:59

Re: Подбор дропа с нпц
 
Цитата:

кстати для теграка и геры будет достаточно прописать именно NON_ATTACKABLE, я так и сделал у ся на серве, и всё прекрасно работает
Вынужден признать, что не совсем достаточно :) .
В этом случае придётся внести изменение в метод spawnObject в SpawnEngine . Если у вас в ядре есть класс Monster и MonsterContoller.
PHP код:

            switch(objectId)
            {
                
// Gera, Tegrak
                
case 258200:
                case 
258205:
                    
npc = new Monster(iDFactory.nextId(), new MonsterController(), spawntemplate);
                    
npc.setKnownlist(new StaticObjectKnownList(npc));
                    break;


Вот весь код метода спавна с месторасположением примера описанного выше.
Весь код метода:
Свернуть ↑Развернуть ↓

Сдесь делается исключение для указанных нпс, посему этот метод не универсален. В моём посте выше, первый способ решения данной проблемы будет универсальным и позволит собирать дроп с любого враждебного неатакуемого нпс (NON_ATTACKABLE) или с любого атакуемого нпс даже если его trible является дружественным или не агро, при этом не надо будет вносить изменения в SpawnEngine.
Статы боссов:
Свернуть ↑Развернуть ↓

Либо можно в метод attackTarget который находится в PlayerController добавить сделующее :
PHP код:

        if (target instanceof Npc)
        {
            if (
getOwner().getCommonData().getRace() == Race.ASMODIANS && ((Npc)target).getNpcId() == 258205)
                return;
            if (
getOwner().getCommonData().getRace() == Race.ELYOS && ((Npc)target).getNpcId() == 258200)
                return;
        } 

Используя такой способ этих двух боссов нельзя будет атаковать даже если они ATTACKABLE (если ничего не напутал) .
Весь код:
Свернуть ↑Развернуть ↓

Romanz 15.04.2011 08:37

Re: Подбор дропа с нпц
 
спасибо все работает)


Текущее время: 13:11. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2023, Jelsoft Enterprises Ltd. Перевод: zCarot