----------------------------------------------------------------------SERVER SOURCE-----------------------------------------------------------------------
General information.
-
Initially, the server source had about 350 files, now only 250. So it's very clean, I just deleted what was useless and never used.
-
The source can be compiled on both Windows and FreeBSD, as well as debug or release modes, as well as amd64 or i386 configuration.
-
I added comments explaining what each function does. Thanks martysama for this, this thing is public, so I thought nobody would be upset if I
add.
-
Support and updates are free, I will always help my clients. I will only help you with source-related problems, and within the limits of free
time other kinds of issues related to serverfiles/client and so on.
-
Source don't have any explits/backdoors. Evrything is clean, tested, and without security issues.
-
Repository contain a README. It explain how-to-compile, compatibility with other serverfiles issues, removed/changed/deprecated functions and
stuff.
-
Fixed all warnings you can have using clang compiler 4.0
-
Removed all locale from server and client source. And merged in one
General changes.
-
I've solved problems with buffer overflow ( Game freezing for certain players, followed by the buffer overflow syserr).
-
I have reviewed the network and the"unknown packet header" issues have been resolved.
-
The default compiler is now CLANG 3.6 to CLANG 4.0
-
I've replaced the whole building system with CMAKE. Instead of Makefile. Two compile modes are available [Debug /
Release].
-
Public IP is detected automatically, you do not have to set the BIND_IP line in CONFIG.
-
I have completly rewritten the buffer codes using asio::streambuff (Now the buffer capacity is untlimited)
-
Some of the codes have been upgraded using modern coding standards C ++ 11 / C ++ 17.
-
I have replaced the primitives include guards with pragma once.
-
I have rewritten Blend_item using modern coding standards.. etc
-
I have rewritten the whole DBManager using unique_ptr/observer_ptr/shared_ptr
Extern upgrades:
-
boost 1.66
-
devIL 1.8.0
-
lua 5.0
-
mysql 5.7.23
-
cryptopp 7.0.0
-
minilzo 2.10
-
gtest removed
Obsolete/unused code removed:
passpod (login 5), openid (login 4), greet_message, teen packet, locale (ymir, canada, newcibn, japan, brazil),
auction, block country, block exception, ip ban, freebsd filemonitor, dev log, monarch, threeway war, speed server, vcard, marble, auth
brazil, auth japan, pcbang, germany codes, xtrap, check server, hackshield, billing, version.txt, test codes, shopEX, panama,
over9refine, matrix card, limit time, g_IUseLocale, lotto event, mobile, CRC codes, hybrid crypt, over time, koreean hidden commands, hotbackup, stl.h from
common folder, login sim, Version2 checK, mobile system, server check/ server key, china event server && china toxification prevent, Useles
logs, distribution test tserver, DBString ,spam checK , unsued variables, unused argumnts, unused packets from server client, unused header and source files,
-
I can't describe in words how clean is, i removed evrything which is useless and not used. I not even remeber evrything, that's is just a small
50% summany.
List of fixes:
-
belt bug
-
war crash when useing negative numbers
-
mount with full inventory bug
-
dice crash
-
all compile warnings
-
status point
-
bonus change on equipped items
-
bonus change on equipped stones
-
change empire bug
-
scroll bug
-
horse skills bug
-
item swap bug
-
negative HP bug
-
6/7 bonus on costumes bug
-
all mounts can attack now
-
sql injection in messenger
-
sql injection in guild
-
change empire crash
-
server timers crash
-
party crash
-
dungeon crash
-
cube crash
-
unknown packet header crash
-
affect bug (double affect)
-
sequence mismatch
-
UpdatePacket() double sending
-
charseletct update issues: the stats (HT, ST, Playtime, level) and the parts (armor, head)
-
SAMLL type in ProtoReader
-
messeneger_auth overflow hack
-
Here is write just 40% of the fixes, in 2 years of development and testing source has been tested and fixed over 200 bugs.
Defines list:
#define MAP_ALLOW_LIMIT
32
here you can set maximum maps per core.
#define CAN_SHOUT_MAX_LEVEL
15
here you can set the minimum level to shout
#define MAX_STATUS_POINT
100
here you can set the maximum status points
#define PARTY_CAN_JOIN_MAX_LEVEL
30 here you can set the
difference in level for join party
#define MAX_ITEM_INTRO_STACK
200
here you can set the maximum items intro stack
#define MAX_MEMBER_INTRO_PARTY
10 here you can set
the maximum members allowed intro a party
#define CAN_RESET_HERE_TIME
170
here you can set the time needed to wait for reset here after you die
#define CAN_RESET_TOWN_TIME
173
here you can set the time needed to wait for reset town after you die
#define MAX_LEVEL_POINT_CAN_STEP
90 here you can set the
maximum level point can step
#define BLOCK_RIDING_WHEN_GUILD_WAR_BEGIN This option block horse/mount summon
when player is intro a guild war.
#define BLOCK_RED_POTION_IF_PLAYER_HAS_DUEL This option block red potion, auto potion when player
duel.
#define
BLOCK_HORSE_IF_PLAYER_HAS_DUEL This option block horse to be summoned when
player is in duel.
#define
UDP_BLOCK
This option block upd connexions.
#define
USE_SQL_MODE_FOR_PROTO
With this option enable db cache read from .txt protos.
#define
USE_TXT_MODE_FOR_PROTO
With this option enable db cache read from .sql protos.
#define
ENABLE_TRANSLATE_LUA
this define enable translate.lua which is disable by default
#define
ENABLE_QUEST_DIE_EVENT
this define will enable quest die event
#define CHECK_IP_BEFORE_GRANT_TEAM_PRIVILEGES this define enable a IP check before grant GM privieleges to a specify
player
#define
ENABLE_WOLFMAN
this option enable wolfman and all his features
(require client define also)
#define ENABLE_SASH_SYSTEM
this define will enable sash
system
(require client define also)
#define
ENABLE_COSTUME_MOUNT
this option will enable costume mount
system (require client define also)
#define ENABLE_TRANSMUTATION
this option will enable items change look
system (require client define
also)
#define
ENABLE_OFFLINE_SHOP
this define enable offline shops like metin2global (require client define also)
#define ENABLE_COSTUME_WEAPON
this define will enable costume weapon
system (require client define also)
#define
ENABLE_NEW_CURRENCY_WON
this define will enable new curency won beside gold (equire client define also)
New questfunctions:
New typedef :
-
Gold_DataType
-
Align_DataType
New CONFIG :
-
PROXY_IP (Here
you can set the external IP, when runinig rhe server under hamachi or google cloud etc, and you won't be kicked when characterselect)
----------------------------------------------------------------------CLIENT
SOURCE-----------------------------------------------------------------------
General information:
-
I removed all the DLLs from the client. All DLLs are built into launcher when
compiling. Click here
-
I've rebuilt the client's source compilation projects with settings different from the original
ones. For maximum performance and optimization.
-
The client works perfectly on any version of windows.
Extern upgrades:
-
boost 1.66
-
devIL 1.8.0
-
jpeg 9c
-
granny 2.11.8
-
cryptopp 7.0.0
-
speedTree 1.6
-
miles 2.9b
-
directx 8,
-
python 2.7.14
-
lzo 2.10
Obsolete/unused code removed:
openid, pcbang, hackshield, NprotectGameGuard, passpod, matrix_card, Is dev, IsLive,
IsTest, application logo, movie man, process crc, process scanner, DLL was completly removed from client ,useless defines, Locale (ymir, newcibn, brazil, japan
e.t.c)
-
I can't describe in words how clean is, i removed evrything which is useless and not used. I not even remeber evrything, that's is just a small
50% summany.
List of fixes:
-
Level up visual bug
-
unknown packet header
-
sequence mismatch
-
view_equip crash
-
python27 long overflow bug
-
fixed some visual bugs
-
memory leak when teleport (After each teleport memory usage increase to infinite,
and client crash when exced computer RAM memory)
Defines list :
#define ENABLE_SHOW_METIN_STONES_ON_MINIMAP this define enable the metin stones on minimap
#define ENABLE_SHOW_MONSTER_BOSS_ON_MINIMAP this define enable the monster boss on minimap
#define
DISABLE_COLLISION_IN_SAFEZONE this define let
players walk through all players and shops when they are in safezone
#define
ENABLE_WOLFMAN
this option enable wolfman and all his features
(require server define also)
#define
ENABLE_SASH_SYSTEM
this define will enable sash
system
(require server define also)
#define
ENABLE_COSTUME_MOUNT
this option will enable costume mount
system (require server define also)
#define ENABLE_TRANSMUTATION
this option will enable items change look
system (require
server define also)
#define
ENABLE_OFFLINE_SHOP
this define enable offline shops like metin2global (require server define also)
#define ENABLE_COSTUME_WEAPON
this define will enable costume weapon
system (require server define also)
#define
ENABLE_NEW_CURRENCY_WON
this define will enable new curency won beside gold (equire server define also)
PYTHON ENGINE
-
openid removed
-
pcbang removed
-
matrix card removed
-
IsDev, IsTest, IsLive removed
-
mobile system removed
-
consolemodule removed
-
autoban removed
-
servercommandparser removed
-
Locale (Is.Ymir , Is.Arabic , Is.NewCibn , Is.Vietnam, etc all those checks.) removed
-
And many other useless stuff, codes, files
-
translated
-
clean
-
replaced npclist.txt with npclist.py
-
official root files 2013 month 09 from metin2ro before they cythonized
List of fixes:
-
Refresh of the skill cooldown SHOW_BUG
-
Point skill increase visual bug SHOW BUG
-
Name of the private shops under player/mob head
TOOLS
dump proto
-
This tool reads the [item_proto.txt / mob_proto.txt] files and
converts them to [item_proto / mob_proto] for the client. (Begginers information)
-
The compiler is Visual Studio 2017
proto editor
-
This tool loads the [item_proto.txt / mob_proto.txt] files into a GUI window for easier editing, like on SQL. (Begginers information)
-
The compiler is Visual Studio 2017
msa maker
-
This tool uploads the files [file.gr2] and automatically creates the msa files needed to animate the models
[file.msa]
-
The compiler is Visual Studio 2017
EXTRA
mySQL tables
-
works with mysql 5.7
-
all extra unused tables removed
-
MyIsam replaced with InnoDB
-
translated
-
clean
Cython
Root Setup
-
I will set up a freebsd system for free. Be it local or server.
-
I will install all the programs required to run/develop a metin server.
Git setup
-
What is “version control”, and why should you care? Version control is a system that records changes to a file or set of files over time so that
you can recall specific versions later. you are a graphic or web designer and want to keep every version of an image or layout (which you would most certainly want to), a Version Control
System (VCS) is a very wise thing to use. It allows you to revert selected files back to a previous state, revert the entire project back to a previous state, compare changes over time, see
who last modified something that might be causing a problem, who introduced an issue and when, and more. Using a VCS also generally means that if you screw things up or lose files, you can
easily recover. In addition, you get all this for very little overhead.
-
I'll teach you GIT basics. Example, you want to install a system
and after you have added it you notice that something is not working anymore. You can revert changes and do again the installation, without compare files e.t.c
-
GIT have much many stuff, like compare tool, merge
tool.
SERVERFILES + CLIENT
Server
files
-
I wrote new start.sh clear.sh close.sh
-
I revised all game CONFIG's and removed all unused lines
-
I revised data/monster against all unused files and objects data/monster is synchronized with client
-
I revised data/pc, data/pc2, data/pc3 against all unused files and removed them
-
I synchronized all maps with server, and renamed them. Example: metin2_map_c3 is now town_1_blue
-
I did many fucking tests e.t.c
-
I cleaned questlib.lua
-
I synchronized questnpc.txt with mob_proto
-
I removed all unused quest_functions
-
A clean and working and tested set of quests
-
I tested the files three months
Client
-
I have removed all duplicated files
-
I removed all useless/unused/not working maps
-
I merged all packs in one pack
-
I tested all mobs from mob_proto and fixed/removed all which was not working
-
I tested all items from item_proto and fixed/removed all which was not working
-
I cleaned client and deleted all unused files
-
I tested all objects
-
I tested all effects
-
I walked with character in each map and looked after some syserr and fixed all
-
I fixed all possible syserr, the client is 0 syserr right now
-
I tested fucking evrything
-
I removed duplicated maps
-
I converted koreean letters from property
-
I added lycan stuff
-
I added each asset for each system which is included in source defines (transmutaton, offline shop, sash, and so on.)
-
The client is based on : METIN2 RO OFFICIAL client, date : 09.09.2013
-
THIS CLIENT IS SO FUCKING CLEAN, stable and very tested
-
I did all possible tests
-
I worked three months on cleaning and testing evrything
Source : 250 €
Serverfiles + client : 100 €
Total = 350 €