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

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

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

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

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

P.S. Я прекрасно понимаю, что это не форум благотворительности, но всё же если кто-то откликнется, то я буду очень признателен
Миниатюры
Как использовать этот код?  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.08.2019, 18:28
Ответы с готовыми решениями:

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

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

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

10
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
24.08.2019, 18:52
так а для чего этот код вообще нужен,что он должен делать?
0
0 / 0 / 0
Регистрация: 24.08.2019
Сообщений: 9
24.08.2019, 19:04  [ТС]
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  [ТС]
Ссылка на пост с кодом из шапки. Код от Nefarius, должен работать, как я понял, по обсуждению.
https://d2mods.info/forum/viewtopic.php?t=62068
0
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
24.08.2019, 20:08
kenet22, так а что Вам нужно? Чтобы этот кусок кода заработал?
0
0 / 0 / 0
Регистрация: 24.08.2019
Сообщений: 9
24.08.2019, 20:23  [ТС]
Он рабочий, но я не знаю, как его приклеить к игре... Давайте от обратного начнём. Вы сможете из того кода скомпелировать dll библиотеку?

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

Не по теме:

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

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

Нет, игра Diablo II.

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

P.S. Честно говоря, никогда не думал, что для того, чтобы сделать dll библиотеку по готовому коду нужно быть как минимум уровня Senior C++ Developer...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.08.2019, 23:54
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru