ds_aim
-
Posts
442 -
Joined
-
Last visited
-
Days Won
9 -
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Posts posted by ds_aim
-
-
boost::python implement started
I need to adapt to make_unique now
And example for Who want to rewrite entire python API , you can use SWIG too.
The big job is in ScriptLib and EterPythonLib need to be rewrited frm scratch.
And remebere " If you become my customers all those features will be yours when i finish "
- 2
-
I modernized code long time ago.
I lost some time to modernize EterPythonLib because pointers... Evey time when i forced unique__ptr i got bugs.
It is very hard to modernize codes. most of the new stuff in the new official stuff is actually with vectors and std maps. In 2-3 weeks i think i will finish client source modernize. Then is planned to rewrite Python API with boost::python or maybe SWIG. Maybe if someone want to rewrite via boost::python here is an advice , boost::python actually does Support std::shared_ptr but not std::unique_ptr , Boost.Python does not support move-semantics. to only Problem is that you use unique_ptr and here is a solution for that http://stackoverflow.com/questions/20581679/boost-python-how-to-expose-stdunique-ptr
We tried just putting unique ptr (forcing unique_ptr) , and I think there occur dangling pointer ,I can just putting shared ptr in all place
it is bad too, but I might work.. or not.
The code is dirtty
and pointers are too puzzledand If you use sharedptr everywhere you actually have cyclic references.
If you reaally want to modernize codes is better to rewrite entire client source using modern c++ standards. Modernize take much more time than rewriting. Metin is not really a complex game , it's very simple
One more example c++14 lambda
Before modernize:
After modenrize :
I changed into lambda
holy lambda
it is one of most greatest feature of c++11My advice is don't try to modernize codes you just lose time. Code is to dirty
- 2
-
You use one of my old, very old source. :)) Ahh .. You can delete it. is very unstable.
-
It's useless to do this. FreeBSD is already good.
If you want, improve, do it. Port source to libevent http://libevent.org/ or libuv.
-
1. Lzma or lz4 , don't really matter the compression algorithm that you use. You need a SSD and all is fine.
2. The aim of improved_packet_encryption is to cipher packets to prevent packet sniffer to decrypt and to solve buffer issues. Just don't touch it if you have no ideea how to work with memory management. And lol, why you need to cipher packets? Really is metin2, is an old game... Belive me , No big hacker will come to destroy kids server.
AES is the best. I alredy use it for mysql hash password.. SELECT HEX(AES_ENCRYPT('password', 'key'));
3. SendClientConfigPacket. should be ok The packet will send true or false intro client and with one config server you can enable or disable client codes too. Here is an example config. https://metin2.download/picture/r3F9504x09DVmF8K988YXgTtGTP6KMUj/.gif from my server. Also write locale.cfg metin2.cfg mouse.cfg to be saved intro registry.
if (true == ReceiveClientConfigPacket(g_enable_wolfman))
{
/// Valid codes
}
Here is one challange for you, well.. What to include in you release, i already did all those but do it if you want.
- no need to pool memory big than 1024*256, that is 18 slots, to forbidden call buffer_pool_free()
-memory size 8Byte align, use memalign inseated
- create a thread safe for buffers.
- std::copy inseated of memcpy
- convert all new operators to unique_ptr (Client / server src )
- see assert functions intro release mode (server /client ) undefined behavior (buffer.c)
- Rewrite adminpage systems for a better stability.
- Fix all memory leaks that come from SpeedTreeWrapper class.
- Fix rotation intro intro StatePacket.
- and mooooooooore things , just too lazy to tell you...
Good luck.
- 1
-
2 hours ago, stein20 said:
Just add enum from PythonPlayer.cpp to PythonPlayer.h as public
Then include PythonPlayer.h intro StdAfx.h if not work include directly just in that file where is needed.
And use CPythonPlayer:: class.. above you have an example.
This is because in new binary they moved enum from PythonPlayer.cpp to RaceData.h adn they renamed inseated of example :
Old :
MAIN_RACE_SHAMAN_M,
new
RACE_SHAMAN_M,
same for wolfman.. you can move entire enum intro RaceData class as public if you want to be accesed for all members and use CRaceData::
I did all those some time ago..
Intro the public source those enum is used just and just intro DWORD CPythonPlayer::GetRaceStat() FROM PythonPlayer.cpp they moved enums and renmed to give another scope ..
Make it like this :
RaceData.h
PythonPlayer.cpp
ActorInstance.cpp
- 1
-
if (item->GetCount() > 1)
{
return false;
}
- 1
-
10 minutes ago, Marggraf said:
Second error explain,please...
Server try to sync with client 32 times, if fail it return false for the current player.
- 1
-
-
-
Download cmake and generate .sln then compile.
-
-
You can make also a loop like checkPythonLibrayFilenames
-
-
You are sure about that ?
Just install mysqltuner and post here the results.
-
16 minutes ago, Mind Rapist said:
Hello devs, I was wondering if someone can help me with a little something... Does anybody know when a guild uploads an icon where can I find this icon on the server?
Thanks in advance
- 2
-
Align 890 it means 89 ingame .
-
Check m signature. I managed to compile under ubuntu, all tests was passed but i never used in production.
Intro my test server i don't found any issue.
https://metin2.download/picture/5kbpNoZOvQcHk1rqsw4749fKNST1a7Wj/.png look
-
Use Size insteated of 8192
LPBUFFER lpBufferDecrypt = buffer_new(Size);
Note:
Just complete removed seqeunce system, it's incomplet and too much bugs.
Inseated of seqeunce system you can make all packet's return security key. It's a little work but should be better.
- 1
-
The client try to sync with server 32 times atfer it return false . Have a look intro time sync HEADER_GC_TIME_SYNC
- 1
-
22 minutes ago, Krusty said:
Im searching for a clientprotection like this
But i dont pay 300e for only libs and not for a fucking scammer like ds_aim.
1. I'm not a scammer.
2. Bye metin. I'm done with all idiots. This is last login , you forgot when 1 year ago i release sources client.. that 60% of you use? In that time i was a scamm er too ? btw, good luck. You have no ideea how hard is to write a protection like that. If you don't want just don't buy it.
Nobody forces you.
-
44 minutes ago, Krawbber said:
'Than me'*. Why would someone help? Because we are humans and because those are virtual things.I saw that many people on this forum find virtual things more important than being human , i think that is the first sign of addiction, i'm not talking to you especially.I say it generally so don't feel offend. And i want to say anything more.When reboot started to sell marty's source, why anybody didn't something about it ? He sold marty's source as his source changing a part of defines. He is still selling it right now.So we should stop spamming his topic cause him asked nicely for help , if someone helps him is because he wants to.If you don't want to keep your bad comments for yourself.This is fair , am i wrong?
I repeat once more. I don't use that garbage source. I don't give 1 euro for that source. I wipe my ass with that source, you understand me?
Tell me , have martyfuck this codes ? And this packet structure? NO, NEVER.
PACKET_START(SPacketGGSetup, HEADER_GG_SETUP) /*Setup packet game->game*/ int32_t bHeader; short wPort; BYTE bChannel; PACKET_END(SPacketGGSetup) PACKET_START(TPacketGGLogin, HEADER_GG_LOGIN) /*Internal login game->game*/ int32_t bHeader; char szName[CHARACTER_NAME_MAX_LEN + 1]; DWORD dwPID; BYTE bEmpire; long lMapIndex; BYTE bChannel; PACKET_END(TPacketGGLogin)
Just stop with all those shits, in my eyes is garbage..
-
My friend , you are hungry ?
-
37 minutes ago, Juppsy said:
Same problem using crypto++ from you.
If you don't know how to update. Then don't do it.
If all work why you want to update? Any good reasons for this ?
Binary ERROR
in Community Support - Questions & Answers
Posted
1. definition for those functions cannot be found
2. The library is compiled with an older or newer compiler. And as i can see problem is in __imp__ wich is in the dllexport and dllimport