Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 24.08.2019
Сообщений: 9
1

Как использовать этот код?

24.08.2019, 18:28. Показов 573. Ответов 10
Метки нет (Все метки)

Привет всем новичкам и экспертам в С++ (экспертам в особенности )! Я совсем не разбираюсь в С++, но я занимаюсь моддингом одной старой игры и местами знания в С++ там необходимы. Для решения моей задачи мне нужно использовать этот код на картинке, но я понятия не имею, что с ним делать. Я попробовал скомпелировать из него dll, (скачал VB и делал по гайду) но разумеется, у меня ничего не получилось.

В общем, если это сделать не очень сложно/долго и кто-то все же желает мне помочь, то отпишитесь здесь или в Телеграмме (@kenet95), я постараюсь объяснить по подробней, если нужны будут какие-либо уточнения.

P.S. Я прекрасно понимаю, что это не форум благотворительности, но всё же если кто-то откликнется, то я буду очень признателен
0

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

Миниатюры
Как использовать этот код?  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.08.2019, 18:28
Ответы с готовыми решениями:

код, который прекрасно выполняет Code::Blocks не выполняеться в Студии, как сделатьь так чтобы Студия воспринимала этот код??
Ребята, обьясните мне чего код, который прекрасно выполняет Code::Blocks не выполняеться в Студии,...

Как этот код работает?
#include <iostream> using namespace std; int main () { char ch = 0; int count = 0; ...

Как исправить этот код?
Помогите исправить код. Знаю в чем проблема,но не знаю как решить. В книге дается схожий пример,и...

Как перевести этот код в C++?
int a = new int { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 }}; b =...

10
49 / 33 / 9
Регистрация: 27.12.2017
Сообщений: 1,398
24.08.2019, 18:52 2
так а для чего этот код вообще нужен,что он должен делать?
0
0 / 0 / 0
Регистрация: 24.08.2019
Сообщений: 9
24.08.2019, 19:04  [ТС] 3
ReYalp, ох, я такой нуб в программировании, но постараюсь объяснить. Код, как я понял, должен объяснить игре, что при нажатии такой комбинации клавиш - нужно делать такое-то действие. Из него нужно сделать dll, как я понял и подключить таким образом к плагину, для кастомных dll.

Возможно, этот топик поможет разобраться, что мне нужно. (там есть какие-то src, не знаю, что это, но может быть поможет)
https://d2mods.info/forum/viewtopic.php?t=62109
0
Миниатюры
Как использовать этот код?  
0 / 0 / 0
Регистрация: 24.08.2019
Сообщений: 9
24.08.2019, 19:19  [ТС] 4
Ссылка на пост с кодом из шапки. Код от Nefarius, должен работать, как я понял, по обсуждению.
https://d2mods.info/forum/viewtopic.php?t=62068
0
49 / 33 / 9
Регистрация: 27.12.2017
Сообщений: 1,398
24.08.2019, 20:08 5
kenet22, так а что Вам нужно? Чтобы этот кусок кода заработал?
0
0 / 0 / 0
Регистрация: 24.08.2019
Сообщений: 9
24.08.2019, 20:23  [ТС] 6
Он рабочий, но я не знаю, как его приклеить к игре... Давайте от обратного начнём. Вы сможете из того кода скомпелировать dll библиотеку?

P.S. Тот код вроде бы ссылается на библиотеку D2Game.dll. Прикреплю её, может пригодиться.
0
Вложения
Тип файла: zip D2Game.zip (542.9 Кб, 4 просмотров)
49 / 33 / 9
Регистрация: 27.12.2017
Сообщений: 1,398
25.08.2019, 00:05 7
kenet22, уу ,это не ко мне ,извините,я никогда не пытался "склеивать" код и к тому же даже не имею понятия как это сделать т.к. у Вас есть две функции(надеюсь вы знаете что это) с параметрами которые явно используют код с других функций/классов,это видно по тому что там не стандартные типы данных есть и как сделать чтобы это все работало без того я не знаю,чтобы Вы поняли к примеру
C++
1
D2ItemData
и это скорее всего какой-то класси чтобы этот код заработал в нем либо должен быть этот класс определен либо должны быть подключены библиотеки в которых он есть,как-то так.

Не по теме:

это случайно не Дота 2?

0
0 / 0 / 0
Регистрация: 24.08.2019
Сообщений: 9
25.08.2019, 06:27  [ТС] 8
ReYalp, если честно, то я не знаю, что такое функции и как их использовать...

Нет, игра Diablo II.

Видимо, мой вопрос слишком узкоспециализированный (или я не могу толком объяснить, что мне нужно), поэтому мне никто не может помочь
0
0 / 0 / 0
Регистрация: 24.08.2019
Сообщений: 9
27.08.2019, 20:43  [ТС] 9
Edit: Может кто-нибудь объяснить, почему из этого кода нельзя сделать 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;
    }
}
0
6738 / 4537 / 1839
Регистрация: 07.05.2019
Сообщений: 13,725
Записей в блоге: 1
27.08.2019, 21:39 10
Цитата Сообщение от kenet22 Посмотреть сообщение
Edit: Может кто-нибудь объяснить, почему из этого кода нельзя сделать dll библиотеку?
Из любого кода можно сделать dll-библиотеку. Подставь там вместо слова static - __declspec(dllexport) и вперёд.
0
0 / 0 / 0
Регистрация: 24.08.2019
Сообщений: 9
27.08.2019, 23:54  [ТС] 11
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
Из любого кода можно сделать dll-библиотеку. Подставь там вместо слова static - __declspec(dllexport) и вперёд.
Я сам точно не слеплю dll, но я нашел новичка в С++ (экспертам, видимо, лень таким заниматься ), который согласился мне помочь. Я скинул ему ваш ответ, но он говорит, что "Все равно не билдится".

P.S. Честно говоря, никогда не думал, что для того, чтобы сделать dll библиотеку по готовому коду нужно быть как минимум уровня Senior C++ Developer...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.08.2019, 23:54

Как привязать этот код в форму
//Хеш-функция для алгоритма Рабина-Карпа public static int Hash(string x) { ...

Как структуру впихнуть в этот код с++
написала обычный код с циклом, но нужно чтобы структура была. пыталась втиснуть, но каша какая-то...

Как этот код будет выглядеть на C++
For i:=0 to FieldsCount-1 do Fields.Clear; Как этот код будет выглядеть на C++

Можно как-то оптимизировать этот код?
#include <iostream> using namespace std; int main() { unsigned int num, trueNum, a, howMany,...


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

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

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