Not only this, you have a struct issues which causes dupes. As I said before:
Most of your actions were not relevant to the Metin-cache. You often handle things poorly.
You frequently remove items from the game side first and then from the database side, which can cause synchronization issues. Instead, you should remove items from the database first, then from the game. This way, the operation can be performed only once.
The support where you ignored your customers for more than half a year? Well done. Excellent service.
I addressed this issue back then, especially after you sold yours.
- // Request to core to summon
- void MyShopAppear(const std::shared_ptr<tcp::CSession>& core, const std::uint32_t handle, const std::uint32_t owner_id, const std::uint8_t channel, const long map_index
- #ifndef ENABLE_SHOP_AUTO_POS
- , const int32_t x, const int32_t y
- #endif
- );
- // Disappear shop
- void MyShopDisappear(const std::shared_ptr<tcp::CSession>& core, const std::uint32_t handle, const std::uint32_t owner_id, bool force = false);
- // Open my Shop
- void MyShopOpen(const std::shared_ptr<tcp::CSession>& core, const std::uint32_t owner_id, const std::string owner_name, const std::int32_t map_index, const std::uint32_t handle);
- void MyShopClose(const std::shared_ptr<tcp::CSession>& core, const std::uint32_t owner_id);
- // Add item to my my Shop
- void MyShopAddItem(const std::shared_ptr<tcp::CSession>& core, const std::uint32_t owner_id, const std::uint32_t handle, const net::processor::TPlayerItem& item);
- // Remove item from my shop
- void MyShopRemoveItem(const std::shared_ptr<tcp::CSession>& core, const std::uint32_t owner_id, const std::uint32_t handle, const std::uint16_t pos, const std::int32_t dest_position, const std::uint8_t dest_window);
- // Change the item price of a single item
- void MyShopChangeItemPrice(const std::shared_ptr<tcp::CSession>& core, const std::uint32_t owner_id, const std::uint32_t handle, const std::uint16_t pos, const std::uint64_t price, const int32_t all);
- // Change the shop title
- void MyShopChangeSign(const std::shared_ptr<tcp::CSession>& core, const std::uint32_t owner_id, const std::uint32_t handle, const std::string& sign);
- void MyShopAdjustTime(const std::shared_ptr<tcp::CSession>& core, const std::uint32_t owner_id, const time_t adjustTime, const uint32_t handle);
- // Withdraw money from my shop
- void MyShopWithdrawGold(const std::shared_ptr<tcp::CSession>& core, const std::uint32_t owner_id, const std::uint32_t handle, const std::uint64_t& gold);
- // Unlock a item slot from my shop
- void MyShopUnlockSlot(const std::shared_ptr<tcp::CSession>& core, const std::uint32_t owner_id, const std::uint32_t handle, std::uint16_t& pos);
- void MyShopUnlockAllSlots(const std::shared_ptr<tcp::CSession>& core, const std::uint32_t owner_id, const std::uint32_t handle);
- // Edit my shop
- void MyShopShopEdit(const std::shared_ptr<tcp::CSession>& core, const std::uint32_t handle, const std::uint32_t owner_id, const std::uint8_t state);
- // Open my shop history
- void MyShopOpenHistory(const std::shared_ptr<tcp::CSession>& core, const std::uint32_t handle, const std::uint32_t owner_id);
- bool LoadShops(int pos = -1, int max = -1, int left_count = -1);
- bool LoadItems(int pos = -1, int max = -1, int left_count = -1);
- void LoadHistory();
- CShopPtr GetShop(const std::uint32_t player_id);
- #ifdef __MY_SHOP_SEARCH__
- void SearchShopItem(const std::shared_ptr<tcp::CSession>& core, const std::uint32_t handle, const net::processor::TShopSearchDetails& details, const net::processor::TShopSearchFilter& filter);
- #endif
- void LoadCore(const std::shared_ptr<tcp::CSession>& core);
- void Update(bool force = false) const;
- void UpdateBuyRequests();
- void Flush() const;
- void AddItem(const net::item_ptr& item, const bool sorted = true);
- void RemoveItem(const net::item_ptr& item);
- bool DurationEvent(const std::shared_ptr<timer::CEvent>& event);
- bool SortEvent(const std::shared_ptr<timer::CEvent>& event);
- void AddTestShop(const std::shared_ptr<tcp::CSession>& core, const net::processor::TCreateOfflineShopTable& table);
- #ifdef __MULTI_THREAD_SERVER__
- void init_strand(boost::asio::io_service& context);
- #endif
- #ifdef __MY_SHOP_SEARCH__
- void SearchShopItem(const std::shared_ptr<tcp::CSession>& core, const std::uint32_t handle, const net::processor::TShopSearchDetails& details, const net::processor::TShopSearchFilter& filter);
- #endif
- size_t CCategory::Filter(const std::uint32_t offset, const net::processor::TShopSearchFilter& options,
- std::vector<net::processor::TPlayerItem>* fill_vector, std::uint32_t& page)
- {
- ....
- }
- #ifdef __MULTI_THREAD_SERVER__
- void init_strand(boost::asio::io_service& context);
- #endif
Alles anzeigen
Bitte melden Sie sich an, um diesen Anhang zu sehen.
Bitte melden Sie sich an, um diesen Anhang zu sehen.
If you want to see more code, feel free to write to me in DMs ("Mr. Perfect Coder," also known as "the smartest guy" in M2)
Alles anzeigen
Fragwürdig, ob gerade du auf andere schießen solltest. Deine Arbeit funktioniert auch nicht auf anhieb, und support ist bei dir auch mittelmäßig, eher nur wenn du gerade mental stabil bist
Alles anzeigen
Hast du jemals etwas von mir gekauft? Wenn ja, zeig mir bitte Beweise dafür. Wie sollte ich Leute unterstützen, die keinen Kontakt zu mir haben? Zeig mir Beweise, dass du etwas von mir gekauft hast, zu dem ich keinen Support geleistet habe (Systeme).
Ich sage bei jedem Kauf klar dazu, ob es Support gibt oder nicht. Wenn kein Support angeboten wird, kannst du auch nichts erwarten (z.B. reworks die ich nur an kollegen verkaufe). Außerdem hast du nie etwas von mir gekauft – falls doch, zeig mir bitte, was du gekauft hast, und zwar über öffentliche Systeme.
Inoffizielle/Custom Systeme, die nicht einmal bezahlt wurden, werden natürlich nicht supported.
Falls du Dan bist (alias Sippi, was zu 99 % wahrscheinlich ist):
Du hast mich damals ein Jahr lang auf mein Geld warten lassen. Du hast mich vollgejammert, sodass ich dir anfangs Sachen kostenlos gegeben habe. Jetzt willst du hier im Forum groß auf dicke Hose machen, nur weil ich einen Stundenlohn verlange, den du nicht zahlen willst. Und dann nennst du mich noch "Hurensohn", weil du einen Kollegen von mir gescammt hast. Sehr korrekt von dir, wirklich.
Du hast auch kein System von mir gekauft sondern mich einfach um DEV-Arbeit gebeten.