0 / 0 / 0
Регистрация: 24.08.2019
Сообщений: 9
1

Создать плагин для игры по готовым функциям (+SDK)

06.09.2019, 17:09. Показов 739. Ответов 0
Метки нет (Все метки)

Всем привет! Я уже создавал подобную тему, однако тогда у меня было крайне мало информации и понимая, что и как работает. Возможно, сейчас мне сможет кто-то помочь.

Нужно сделать плагин для игры по 2-м функциям (под спойлером). Плагины подключаются через D2Mod, к которому я нашел SDK.

Все, что я понял из тех файлов и папок:
Samples
BooksOfLore, CustomTBL, ExtLvl, MercMod, StatFix и Utility - это, возможно, исходники уже готовых плагинов. (По крайней мере я использую часть из них в виде dll)
MyMod - не уверен, возможно заготовка для нового плагина.
Source
Там названия папок идентичны названию dll, которые нужны для запуска самой игры.

Функции
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
static BOOL DEMO_PRV_TakeItemFromInventory(D2Game* pGame, D2Unit* pUnit, D2Unit* pItem)
{
    D2Inventory* hInventory;
    if ((hInventory = pUnit->hInventory) == NULL)
        return FALSE;
    
    if (!UNIT_IS_ITEM(pItem) || pItem->eMode != ITEMMODE_INVENTORY)
        return FALSE;
    
    D2ItemData* pItemData;
    ASSERT(pItemData = pItem->pItemData);
    BYTE ePage = pItemData->ePage;
    
    ASSERT(D2RemoveItemFromInventory(hInventory, pItem) == pItem);
 
    if (ePage == INVENTORY_PAGE_PLAYER_INVENTORY)
        SITEM_AddOrRemoveBookCharges(pUnit, pItem, FALSE, TRUE);
 
    SITEM_RemoveItemStatsFromUnit(pUnit, pItem, FALSE, TRUE);
    if (ITEMS_CanActivateCharm(pItem, pUnit))
        SITEM_UpdateEquipment(pGame, pUnit, FALSE);
 
    pItemData->ePreviousPage = ePage;
    pItemData->ePage = INVENTORY_PAGE_NONE;
    pItem->dwUnitFlags &= ~UNITFLAG_SELECTABLE;
    UNITS_SetMode(pItem, ITEMMODE_CURSOR);
    
    pItemData->dwItemFlags |= ITEMFLAG_REMOVED;
                    
    if (SITEM_DoSocketsHaveContent(pItem))
        pItemData->dwItemFlags |= ITEMFLAG_RELOAD;
    
    pItemData->dwItemFlags &= ~ITEMFLAG_DISABLED;
    pItemData->dwCMDFlags |= ITEMCMD_INVENTORY_TAKE_ITEM;
    D2AddItemToInventoryUpdateList(hInventory, pItem);
    D2SetInventoryUpdateMessage(pUnit, TRUE);
    return TRUE;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
static void DEMO_PRV_MoveEntireInventoryToStash(D2Game* pGame, D2Unit* pPlayer)
{
    D2ItemData* pItemData;
    D2Unit* pItem = INV_INL_GetItemListByGrid(pPlayer->hInventory, INVENTORY_GRID_DEFAULT);
    
    while (pItemData = ITEMS_INL_GetIterator(pItem))
    {
        D2Unit* pNext = pItemData->pNextItemInPage;
        
        int nX;
        int nY;
        
        if (INV_INL_GetPosForItem(pPlayer->hInventory, pItem, INV_GetInventoryType(pPlayer, INVENTORY_PAGE_PLAYER_STASH, pGame->bExpansion), INVENTORY_PAGE_PLAYER_STASH, nX, nY))
        {
            if (DEMO_PRV_TakeItemFromInventory(pGame, pPlayer, pItem))
                ASSERT(SITEM_PutItemInInventory(pGame, pPlayer, pItem->dwID, INVENTORY_PAGE_PLAYER_STASH, nX, nY, FALSE, TRUE, NULL, NULL));
        }
        
        pItem = pNext;
    }
}


D2Mod SDK
https://dropmefiles.com/jQAVr
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.09.2019, 17:09
Ответы с готовыми решениями:

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

Реализация метода идентификации в Симулинк по готовым функциям
Метод идентификация параметров уравнения описывается с помощью функций написаных в MatLab....

Плагин 3Dmax SDK 2010 для Visual Studio 2010
Не подскажите как ставится плагин 3Dmax SDK 2010 для Visual Studio 2010 Autodesk 3ds Max Design...

Плагин для Counter-Strike 1.6 для игры без крови
Вопрос, собственно, в названии темы. Кто знает, плиз, дайте ссыль, а то ооооочень нужен такой...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.09.2019, 17:09

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Можно ли написать плагин для браузерной игры
Доброе время суток,под ночь озадачился вопросом "а можно ли написать своеобразный плагин для...

Какой плагин для wordpress создать?
Какой плагин для wordpress создать?

Как создать плагин для qml
Добрый день, форумчане! Дайте совет: как можно реализовать плагин для qml? Суть такова: в плагине...

Как создать плагин для фильтраций тегов(меток)?
Здравствуйте я новичок в wordpress и у меня возник вопрос Как создать плагин для фильтраций тегов?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.