ZentraX
-
Posts
10 -
Joined
-
Last visited
-
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Posts posted by ZentraX
-
-
Hello,
if a key / attribute is missing in the localeinfo in normally crashes and dont let you ingame - I added a "small" workaround for it (it's easy to implement):
Add these class into system.pyclass LocaleInfoWrapper(object): def __init__(self, wrapped): self.wrapped = wrapped def __getattr__(self, name): # Perform custom logic here try: return getattr(self.wrapped, name) except AttributeError: dbg.TraceError("Locale attribute not found: {0}".format(name)) return "Locale not found: {0}".format(name)
Search for that:
# in this if case: 'pack.Exist(filename)' return newmodule
Add this above:
if filename.lower() == "localeinfo.py": sys.modules[name] = LocaleInfoWrapper(newmodule) return sys.modules[name]
done, now you can start the game with missing locales and it will print in out to the TraceError
NOTE: This is just something I did because one of my clients work with locales and sometimes crashes my client, you need to adjust for e.g. supporting calling etc / formating strings.. blabla
For python3 you can define the __getattr__ function inside localeinfo.py which is way easier to implement:
Check here
best regards- 1
- 1
- 1
- 3
-
4 hours ago, DemOnJR said:
Tested and is working.
If you get the error with thread on compilation just add std::thread like in this example:#if defined(ENABLE_PERFORMANCE_STATISTICS) static DWORD s_dwCheckPingTime = ELTimer_GetMSec(); if (ELTimer_GetMSec() - s_dwCheckPingTime > CServerStateChecker::MAX_RTT_REQUEST_MS) { std::thread t(NonBlockingServerStateChecker, &m_kServerStateChecker, &m_dwRTT, &m_fPktLossPct, &s_dwCheckPingTime); t.detach(); } #endif
Also if the ms is 999ms you need to allow IMCP traffic on your FIREWALL.
How about adding an task with std::async? I would prefer it with a promise like this:
private: std::future<int32_t> m_pingTask{}; int32_t m_ping{}; public: // easy running in background :_D void Ping() { // Task is already running if (m_pingTask.valid()) return; m_pingTask = std::async(std::launch::async, []() { /*... Perform ping request here */ return ping;}); } void UpdatePing() { if (m_pingTask.valid()) { const auto status = m_pingTask.wait_until(std::chrono::system_clock::now() + std::chrono::seconds(0)); // 0 not timeout if the task is done here if (status == std::future_status::ready) // ready means the task is done { m_ping = m_pingTask.get(); // here you can get the like use python create a func for it like app.GetPing() and return this value here m_pingTask = {}; } } } int32_t GetPing() const { return m_ping; }
-
I search for a guy who can adopt the source from directx9 to bgfx (to automatically decide the directx version) would be paid, write me ur discord in the direct messages here.
You can use each math library u prefer.
best regards
-
Its public from me, I released a source which I compiled on x64 with Linux, I will release it here asap
-
Yes, I replaced the Networking with libevent it was quite easy
-
Hello Guys,
Im searching for a developer which knows how to improve the whole client source (check the points below):
- New file processing with packer for faster file reading
- New frame timer and process loop
- Granny3D reimplementation
- Race loading reimplementation
- New resource manager
- Delayed actor loading
- Instant race unload/load
- New animation control to prevent lagging if there is more than 15 of the same thing
We will a pay high amount.
Best regards
ZentraX
Selective scam by E-Payouts - Looking for victims
in Off Topic
Posted
The problem is here if they see your server is not running well, they wont payout, since they just want their profits from u and metin2 server are not allowed, so you cannot talk with the police...