Hi,
ich bin mit meinem Latein am ende.
Ich hab den Fehler jetzt seit 3 Stunden. Ich wollte ein Offline Shop Search System einbauen. Habe passend dazu Offline Shop und Shop Decoration eingebaut. Shop und Decoration kompiliert ohne Probleme. Sobald ich den Define von Shop Search eintrage klappts nicht mehr.
Der/Die Fehler:
- cmd_general.cpp: In function 'void do_shop_search(LPCHARACTER, const char*, int, int)':
- cmd_general.cpp:2050:2: error: 'TShopMap' was not declared in this scope
- TShopMap shops = CShopManager::Instance().GetShops();
- ^~~~~~~~
- cmd_general.cpp:2050:2: note: suggested alternative: 'TAreaMap'
- TShopMap shops = CShopManager::Instance().GetShops();
- ^~~~~~~~
- TAreaMap
- cmd_general.cpp:2051:2: error: 'TShopMap' is not a class, namespace, or enumeration
- TShopMap::iterator it = shops.begin();
- ^~~~~~~~
- cmd_general.cpp:2053:9: error: 'it' was not declared in this scope
- while (it != shops.end() && items_found<120)
- ^~
- cmd_general.cpp:2053:9: note: suggested alternative: 'int'
- while (it != shops.end() && items_found<120)
- ^~
- int
- cmd_general.cpp:2053:15: error: 'shops' was not declared in this scope
- while (it != shops.end() && items_found<120)
- ^~~~~
- cmd_general.cpp:2053:15: note: suggested alternative: 'sc_ps'
- while (it != shops.end() && items_found<120)
- ^~~~~
- sc_ps
- cmd_general.cpp:2064:15: error: 'SHOP_ITEM' was not declared in this scope
- std::vector<SHOP_ITEM> items = shop->GetShopItems();
- ^~~~~~~~~
- cmd_general.cpp:2064:15: note: suggested alternative: 'SHOP_SELL'
- std::vector<SHOP_ITEM> items = shop->GetShopItems();
- ^~~~~~~~~
- SHOP_SELL
- cmd_general.cpp:2064:24: error: template argument 1 is invalid
- std::vector<SHOP_ITEM> items = shop->GetShopItems();
- ^
- cmd_general.cpp:2064:24: error: template argument 2 is invalid
- cmd_general.cpp:2064:53: error: cannot convert 'std::vector<CShop::shop_item>' to 'int' in initialization
- std::vector<SHOP_ITEM> items = shop->GetShopItems();
- ^
- cmd_general.cpp:2065:31: error: request for member 'size' in 'items', which is of non-class type 'int'
- for (DWORD i = 0; i < items.size() && i < SHOP_HOST_ITEM_MAX_NUM; ++i)
- ^~~~
- cmd_general.cpp:2067:43: error: invalid types 'int[DWORD {aka unsigned int}]' for array subscript
- const CShop::SHOP_ITEM & item = items[i];
- ^
- cmd_general.cpp:2078:39: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
- item_table && iJob == JOB_WARRIOR && !(item_table->dwAntiFlags & ITEM_ANTIFLAG_WARRIOR ) ||
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- cmd_general.cpp:2080:36: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
- item_table && iJob == JOB_SURA && !(item_table->dwAntiFlags & ITEM_ANTIFLAG_SURA) ||
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- cmd_general.cpp:2081:38: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
- item_table && iJob == JOB_SHAMAN && !(item_table->dwAntiFlags & ITEM_ANTIFLAG_SHAMAN)
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- cmd_general.cpp:2082:6: error: expected ':' before ')' token
- )) : true);
- ^
- :
- cmd_general.cpp:2082:6: error: expected primary-expression before ')' token
- cmd_general.cpp:2082:7: error: expected ')' before ':' token
- )) : true);
- ^~
- )
Die Fehler kommen, wie erwähnt, nicht wenn Shop Search nicht in der Service.h eingetragen ist.
Ich habe dann etwas gegooglet und herausgefunden, dass er
nicht finden kann.
Also hab ich geschaut wo das deklariert ist.
Gefunden in shop_manager.h:
Wieso findet er die Deklaration nicht, obwohl die shop_manager.h 2x! inkludiert wird. Auch bei nur 1x findet er es nicht
Wenn ich aber direkt über der funktion
schreibe. also so:
ist der Fehler weg. Dann bleiben nur die Fehler nach dem Fehler
error: 'TShopMap' was not declared in this scope
Kann mir da irgendjemand helfen?