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

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Lineage II (https://forum.zone-game.info/forumdisplay.php?f=34)
-   -   Удаление обьекта из мира (https://forum.zone-game.info/showthread.php?t=1655)

DarkLoki 12.08.2008 13:46

Удаление обьекта из мира
 
Условие: на земле в мире Ла2 валяется предмет, известен его object_id.
Задача: Удалить его через программно, т.е. код.

Итак, нужен код удаления обьекта, лежащего на земле, неважно где, задача удалить.

drumNikola 12.08.2008 14:04

Ответ: Удаление обьекта из мира
 
Это типо вопрос ??? Помомему гдето обсуждалось, но я как лол забыл, так что поддерживаю тему ! ! !
P.S: помню что работы много, чтоб его поставить, думаю удлалить тоже ))

Black Angel 12.08.2008 14:37

Ответ: Удаление обьекта из мира
 
если обьект лут (или выброшеные итемы) то проще в конфигах поставить авто удаление, а вот если что то другое... щас пока сервера не стоит так что таблиц не помню... запрос будет выглядеть так

Код:

alter table `название таблицы` delete `название колонки` = object_id where `id` > 0
вместо id может быть что то другое :)

DarkLoki 12.08.2008 14:45

Ответ: Удаление обьекта из мира
 
Black Angel
Ты не понял, мне не из базы надо удалить, а лежащий на земле обьект прямиком в игре, кодом, конкретный обьект по его object_id, не item_id.

Black Angel 12.08.2008 16:32

Ответ: Удаление обьекта из мира
 
Цитата:

лежащий на земле обьект прямиком в игре
у... почитай хелпы по командам в админке может найдешь что нить :)

DarkLoki 12.08.2008 16:53

Ответ: Удаление обьекта из мира
 
Black Angel
Мне в коде надо, а не в админке :)))))

Black Angel 12.08.2008 17:32

Ответ: Удаление обьекта из мира
 
DarkLoki, что то тебя хрен поймешь то прямиком в игре то в коде... если ты пытаешься удалять из самого клиента то смотри админку там 2 или 3 страницы с коммандами :) если нет то шукай в *.dat

Aquanox 12.08.2008 18:45

Ответ: Удаление обьекта из мира
 
в L2World
Код:

public void removeObject(L2Object object) {};
набросок:
Код:

int objectId;
L2World.getInstance().removeObject( objectId );

L2World.getInstance().removeVisibleObject(item,item.getWorldRegion());

если что то надо точнее указывать - можно подключиться к менеджеру чистки вещей с пола (забыл название :D )

Код:

    public synchronized void removeItems()
    {
            //if (Config.DEBUG)
                    //_log.info("[AutoDestroyTaskManager] : "+_items.size()+" items to check.");

            if (_items.isEmpty()) return;

        long curtime = System.currentTimeMillis();
        for (L2ItemInstance item : _items)
        {
            if (item == null || item.getDropTime()==0 || item.getLocation() != L2ItemInstance.ItemLocation.VOID)
                _items.remove(item);
            else
            {
                    if(item.getItemType() == L2EtcItemType.HERB )
                    {
                            if((curtime - item.getDropTime()) > Config.HERB_AUTO_DESTROY_TIME)
                            {
                                    L2World.getInstance().removeVisibleObject(item,item.getWorldRegion());
                                    L2World.getInstance().removeObject(item);
                                    _items.remove(item);
                                    if (Config.SAVE_DROPPED_ITEM)
                                        ItemsOnGroundManager.getInstance().removeObject(item);
                            }
                    }
                    else if ( (curtime - item.getDropTime()) > _sleep)
                {
                    L2World.getInstance().removeVisibleObject(item,item.getWorldRegion());
                    L2World.getInstance().removeObject(item);
                    _items.remove(item);
                    if (Config.SAVE_DROPPED_ITEM)
                            ItemsOnGroundManager.getInstance().removeObject(item);
                }
            }
        }

            if (Config.DEBUG)
                    _log.info("[AutoDestroyTaskManager] : "+_items.size()+" items remaining.");
    }


DarkLoki 12.08.2008 19:21

Ответ: Удаление обьекта из мира
 
Black Angel
[HIDE="100"]Ладно, приведу пример, чтобы стало понятно: игрок получил некий предмет от некого НПЦ, при получении мы сохранили object_id в базу. Потом человек выкинул этот предмет на землю, после чего над этим предметом необходимо провести некоторые манипуляции, например, удалить. Предмет на земле, object_id в базе. Удалить через код, то есть всякими там функциями, не ГМом, а ядром, ну вот как подробнее сказать уже не знаю[/HIDE]
Вот Aquanox понял, чего я хочу, завтра проверю, скажу о результатах.

Black Angel 12.08.2008 20:25

Ответ: Удаление обьекта из мира
 
Цитата:

Сообщение от DarkLoki (Сообщение 17308)
Вот Aquanox понял, чего я хочу

ну куда нам бедным и замучанным модерам до разрабов серверов то :D

P.S. ты бы хоть спасибо сказал человеку, а то ведь больше не поможет :)


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

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