Martysama Serverfiles Sursav4 serverfiles v4

Închis
Avatar utilizator
MartysamaFree
Nou Venit

Nou Venit
Mesaje: 2
Membru din: 29 Dec 2017, 20:18
Server: FREEFILES
Aprecieri: 0
Mulţumiri: 4  
Medalii

Ce contine acest serfiles ?
Sursa client !
# README #

This README would normally document whatever steps are necessary to get your application up and running.

### What is this repository for? ###

* Quick summary
* Version
* [Learn Markdown]

### How do I get set up? ###

* Summary of set up
-Extract Extern.rar in ".\Srcs\"
-Open ".\Srcs\Extern\cryptopp\cryptlib.2010.sln" and compile it
-Open ".\Srcs\Client\Metin2Client_VC100.sln" and compile it

@\Srcs\Extern\cryptopp is compiler-version based and should recompile with MT target option
>tested using vs2010 ts-v100
>maybe without /GL and /LTCG should be fine too

* Configuration
@#PYTHON2 amongst 27/22 (2.7 by default)
>for easy switching (pyconfig.h for comment py2.lib)
>you just need to switch python include/lib folder to change python version
>".\Srcs\Extern\Python22" to ".\Srcs\Extern\Python2" for py2.2.3 instead of py2.7.6

@#GRANNY2 amongst 24/27/28/29 (granny2.4 by default)
>easy switch in ".\Srcs\Extern\include\granny.h" amongst granny2.4, 2.7, 2.8 and 2.9

@#GENERAL MACROS
#define __OBSOLETE__					//useless and pointless code removed
#define __UNIMPLEMENTED__				//drafts of new things to be implemented

@\Srcs\Client\UserInterface\Locale_inc.h for ymir system implementations
>>default
#define LOCALE_SERVICE_EUROPE			//locale you want for locale.cpp
#define ENABLE_COSTUME_SYSTEM			//costume system	// @warme666
#define ENABLE_ENERGY_SYSTEM			//energy system	// @warme666
#define ENABLE_DRAGON_SOUL_SYSTEM		//dss system	// @warme666
#define ENABLE_NEW_EQUIPMENT_SYSTEM		//belt system	// @warme666
>>new macros
#define ENABLE_PACK_GET_CHECK			//enable py|pyc|txt check on pack.Get
#define ENABLE_CANSEEHIDDENTHING_FOR_GM	//enable gm to see invisible characters (both normal semi-transparent and gm invisibility)
#define ENABLE_PROTOSTRUCT_AUTODETECT	// if enabled, all the item_proto/mob_proto official structures (2007~2016) are automatically detected and supported without recompiling
>
#define ENABLE_PLAYER_PER_ACCOUNT5		//enable 5 characters per account	// @warme666
#define ENABLE_LEVEL_IN_TRADE			//for localeInfo.EXCHANGE_TITLE with level
#define ENABLE_DICE_SYSTEM				//enable dice system: if the mob is king or boss and you're in party, the dropped item is randomly rolled	// @warme666
#define ENABLE_EXTEND_INVEN_SYSTEM		//enable 4 inventory pages	// @warme666
#define ENABLE_LVL115_ARMOR_EFFECT		//enable sparkle effect for 115 armors
#define WJ_SHOW_MOB_INFO				//enable mob info update for showing the mob lvl and the asterisk in name if aggro (ENABLE_SHOW_MOBAIFLAG and ENABLE_SHOW_MOBLEVEL)
>from gamelib
#define ENABLE_WOLFMAN_CHARACTER		//enable wolfman features	// @warme666

#define ENABLE_MAGIC_REDUCTION_SYSTEM	// enable resist magic reduction bonus	// @warme666
#define ENABLE_MOUNT_COSTUME_SYSTEM		// enable mount costume slot	// @warme666
#define ENABLE_WEAPON_COSTUME_SYSTEM	// enable weapon costume system	// @warme666

@\Srcs\Client\GameLib\ActorInstanceAttach.cpp
#define AUTODETECT_LYCAN_RODNPICK_BONE	// adjust fishrod/pickaxe attached bone for lycan to equip_right instead of equip_right_weapon

@\Srcs\Client\GameLib\ActorInstanceCollisionDetection.cpp
#define ENABLE_PETS_WITHOUT_COLLISIONS		// disable collisions for pets
#define ENABLE_SHOPS_WITHOUT_COLLISIONS		// disable collisions for shops
#define ENABLE_MOUNTS_WITHOUT_COLLISIONS	// disable collisions for mounts

@\Srcs\Client\EterPack\EterPack.cpp
#define ENABLE_CRC32_CHECK				//mine: enable/disable crc32 check for type2

@\Srcs\Client\UserInterface\UserInterface.cpp
#define ENABLE_PYLIB_CHECK				//check python lib files to prevent exploit before load them
#define ENABLE_MILES_CHECK				//check miles files to prevent mss32.dll exploit before load them

@\Srcs\Client\UserInterface\InstanceBase.cpp
#define ENABLE_SIMPLE_REFINED_EFFECT_CHECK		// enable simple refine effect check (+7 blue, +8 green, +9 red) for any weapon/armor
#define USE_WEAPON_COSTUME_WITH_EFFECT			// enable refine effect for weapon costume
#define USE_BODY_COSTUME_WITH_EFFECT			// enable refine effect for body costume

@\Srcs\Client\UserInterface\PythonBackground.cpp
#define ENABLE_ATLASINFO_FROM_ROOT		//read atlasinfo.txt from root instead of locale

@\Srcs\Client\GameLib\GameLibDefines.h
>moved all to Locale_inc.h

@\Srcs\Client\GameLib\RaceDataFile.cpp
#define ENABLE_SKIN_EXTENDED			//extended source/targetskin[2-9] inside .msm

@\Srcs\Client\GameLib\ItemData.cpp
#define ENABLE_LOAD_ALTER_ITEMICON		//load a default item icon if the one inside the item_list.txt is missing

@\Srcs\Client\UserInterface\InstanceBase.cpp
#define ENABLE_NO_MOUNT_CHECK			//enable attack and skill from all horses/mounts

@\Srcs\Tools\DumpProto\dump_proto\dump_proto.cpp
#define ENABLE_ADDONTYPE_AUTODETECT				//it autodetects the addontype field from already known vnums (compatibility 100%)

* Dependencies
@\Srcs\Extern.rar
>it contains all is needed

* Database configuration
* How to run tests
* Deployment instructions
-Debug and Release are for UserInterface.sln
-MfcDebug and MfcRelease are for WorldEditor.sln

### Contribution guidelines ###

* Writing tests
* Code review
#@@Globally
@warme601: use release as advanced distribute with syserr.txt and so on
@warme666: those features requires the same feature server-sidely otherwise you'll get random issues. (packets not correctly handled)
@warme667: on ScriptLib/StdAfx.h; AT has been unset before loading python include
@warme668: trivial errors will be treated as mere warnings (sys_err -> sys_log)

#@@Client

#@/UserInterface
@fixme001: on Packet.h; for do_view_equip (WEAR_MAX_NUM: server 32, client 11) now equal (32 both sides)
@fixme006: on PythonNetworkStreamModule.cpp, PythonNetworkStreamPhaseGame.cpp; "SEQUENCE mismatch 0xaf != 0x64 header 254" fix
			This happens due to a bug on the TODO_RECV_SYMBOL phase when calling the __SendSymbolCRCList.
			That function will connect via MarkServer_Login and iterate m_kVec_dwGuildID to send sub-"HEADER_CG_SYMBOL_CRC" packets.
			If m_kVec_dwGuildID is 0, the server will never receive packets after logged in the MarkServer, and the connection won't be closed.
			When a connection is established, a ping_event will be triggered every 60 seconds.
			When the time will come, a ping packet will be send to the client, and the client will reply back with a pong one.
			In this case, the secondary marklogin connection would be asynchronous, and the packet sequence for the pong mismatched too.
			After the sequence error occurs, the marklogin connection will be finally closed.

			In few words, everytime someone logs in the server (after character selection),
			the syserr will get once the mismatch error after 60 seconds.
			The fix is to not establish a marklogin connection for TODO_RECV_SYMBOL if the m_kVec_dwGuildID is 0.
@fixme007: on Packet.h, PythonNetworkStream.cpp, PythonNetworkStreamPhaseGame.cpp; added unknown header 213 (2 bytes)
@fixme009: on PythonPlayerModule.cpp; player.GetItemLink wasn't considering 6-7 bonuses enough
			they could have been seen as 1-5 bonuses if the item didn't have 1-5 bonuses
@fixme010: on PythonCharacterManager.cpp; ymir forgot .m_dwVID in the format argument (c_rkCreateData -> c_rkCreateData.m_dwVID)
@fixme013: on PythonPlayerModule.cpp; player.IsValuableItem was selecting a wrong item.cell
@fixme014: on PythonPlayerInput.cpp; if you (mouse) click a monster without having arrows, the automatic attack will go in loop (clicking on ground again will fix, but moving with WASD will be bad)

#@/GameLib
@fixme015: on MapOutdoorLoad.cpp; regen.txt was loaded from launcher even though it's used only by the WorldEditor

#@/EterLib
@fixme002: on GrpImageTexture.cpp, GrpImage.cpp; to show the name of the failed mapped .dds load
@fixme005: on SkyBox.cpp; the bottom pic was not shown
@fixme008: on IME.cpp; Ctrl+V crash when pasting images&co (no checks whether the handle was NULL or not)
@fixme011: on IME.cpp; non-printing/control characters were printed in the (chat) input (the ones you get when you press Ctrl+<key> in game)
@fixme012: on TextTag.cpp; on arabic locales, the [HyperText code] (alias Prism code) could be edited pressing <Backspace>

#@/MilesLib
@warme001: AIL_startup responsible to load *.asi *.flt *.m3d *.mix
@warme002: comments to be cleaned if necessary

#@/PRTerrainLib
@fixme003: on TextureSet.cpp; a new texture was added where the last was put
@fixme004: on TextureSet.cpp; a new textureset index was -1 instead of 0


#@@Tools
#@/DumpProto
@fixme201: on ItemCSVReader.cpp; race splitted with | instead of ,

#@/Metin2PackMaker
@fixme301: on Main.cpp; The path ignored is always "d:/ymir work/sound/" instead of the chosen one
@fixme302: on Main.cpp; The directory ignored is always "CVS" instead of the chosen one


* Other guidelines
@\Srcs\Client\EterBase\Filename.h pseudo-fix to "successfully" compile
>needs rewriting (or simply fixing)

@\Srcs\Client\ScriptLib\PythonUtils.cpp with pseudo-long fix
#define PyLong_AsLong PyLong_AsLongLong
#define PyLong_AsUnsignedLong PyLong_AsUnsignedLongLong
>just this so it'll be 8 bytes instead of 4 for tuples
>an another way is just to change every color function with Py_xUnsigned instead of its Signed


### Who do I talk to? ###

* Repo owner or admin
martysama0134
Sursa Server
[spoiler]# README #

### What is this repository for? ###

* Quick summary
* Version
# git add .gitignore
# git add Srcs/*

# git commit -m "source uppati"
# git commit -am "updated me"
# git push -u origin master

# git pull

### How do I get set up? ###

* Summary of set up
// mysql dep
# cd /usr/ports/databases/mysql55-client
# make WITH_XCHARSET=all install clean
## OR
# pkg install mysql55-client

// extern extract
# cd ./Srcs
# tar -xzf Extern.tgz

// cryptopp dep
# cd ./Srcs/Extern/cryptopp
# gmake libcryptopp.a -j4

//how to compile all-the-server (db+game+dep)
# cd ./Srcs/Server
# gmake all -j4

//how to compile just game (not necessary)
# cd ./Srcs/Server/game/src
# gmake -j4

//how to compile just db (not necessary)
# cd ./Srcs/Server/db/src
# gmake -j4

* Configuration
@#GENERAL MACROS
#define __OBSOLETE__					//useless and pointless code removed
#define __UNIMPLEMENTED__				//drafts of new things to be implemented

@/Src/Server/common/CommonDefines.h
>
#define ENABLE_D_NJGUILD			//enable d.new_jump_all_guild+cpp relative functions (untested)
#define ENABLE_QUEST_CATEGORY		//enable quest category+new packet types (unimplemented)
#define ENABLE_NEWSTUFF				//enable new stuff (new lua funcs, new CONFIG options, ecc)
#define ENABLE_FULL_NOTICE			//enable new big notice features
#define ENABLE_PORT_SECURITY		// block db_port, p2p_port, and remote adminpage exploits
#define ENABLE_BELT_INVENTORY_EX	// move the belt items into the BELT_INVENTORY window and prevents unknown belt positions if you de/increase wear/inventory slots
>lycan
#define ENABLE_WOLFMAN_CHARACTER	// enable wolfman character and the relative new features (claws, bleeding and so on)
#define MAP_ALLOW_LIMIT <int>		// define how many maps are allowed per game core (default 32)
#define USE_MOB_BLEEDING_AS_POISON	// if enabled, the mob_proto structure won't change and the bleeding % will be get from the poison field
#define USE_MOB_CLAW_AS_DAGGER		// if enabled, the mob_proto structure won't change and the claw % will be get from the dagger field
#define USE_ITEM_BLEEDING_AS_POISON	// if enabled, the poison reduce bonus can also reduce the bleeding damage as if it's bleeding reduce itself
#define USE_ITEM_CLAW_AS_DAGGER		// if enabled, the resist dagger bonus can also reduce the claw damage as if it's resist claw itself
#define USE_WOLFMAN_STONES			// if enabled, lycan stones can be dropped from the metin stones
#define USE_WOLFMAN_BOOKS			// if enabled, lycan skill books can be dropped
>systems
#define ENABLE_PLAYER_PER_ACCOUNT5	// enable 5 characters (per account) in the select phase (instead of 4)
#define ENABLE_DICE_SYSTEM			// enable dice system: if the mob is king or boss and you're in party, the dropped item is randomly rolled
#define ENABLE_EXTEND_INVEN_SYSTEM	//enable 4 inventory pages
#define ENABLE_MOUNT_COSTUME_SYSTEM		// enable mount costume slot
#define ENABLE_WEAPON_COSTUME_SYSTEM	//enable weapon costume slot
>magic reduction stone
#define ENABLE_MAGIC_REDUCTION_SYSTEM	// enable resist magic reduction bonus
#define USE_MAGIC_REDUCTION_STONES	// enable resist magic reduction stone drops from metins

@/Src/Server/db/src/ClientManager.h
#define ENABLE_PROTO_FROM_DB		//read protos from db if "PROTO_FROM_DB = 1" is specified inside conf.txt
									//mirror protos to db if "MIRROR2DB = 1" is specified inside conf.txt

@/Src/Server/db/src/ClientManager.cpp
#define ENABLE_DEFAULT_PRIV			//enable default priv loading from common.priv_settings
#define ENABLE_ITEMAWARD_REFRESH	//enable a select query every 5 seconds into player.item_award

@/Src/Server/db/src/ClientManagerBoot.cpp
#define ENABLE_AUTODETECT_VNUMRANGE	//if protos are loaded from db, it will automatically detect the vnum range for ds items

@/Srcs/Server/game/src/stdafx.h
>moved to CommonDefines.h

@/Srcs/Server/game/src/stdafx.h
#define ENABLE_LIMIT_TIME			//enable game timestamp expiration

@/Srcs/Server/game/src/guild.h
#define ENABLE_NEWGUILDMAKE			//enable pc.make_guild0 and disable CInputMain::AnswerMakeGuild

@/Srcs/Server/game/src/quest.h
#define ENABLE_QUEST_DIE_EVENT		//add quest event "die"

@/Srcs/Server/game/src/config.cpp
#define ENABLE_CMD_PLAYER			//enable PLAYER grade inside CMD
#define ENABLE_EXPTABLE_FROMDB		//read the exp table from the db
#define ENABLE_AUTODETECT_INTERNAL_IP	//autodetect internal ip if the public one is missing
#define ENABLE_GENERAL_CMD			//if enabled, it reads a general CMD from "locale/%s/conf/GENERAL_CMD", "locale/%s/conf/GENERAL_CMD_CHANNEL_%d", and/or "locale/%s/conf/GENERAL_CMD_CHANNEL_%d_HOSTNAME_%s"
#define ENABLE_GENERAL_CONFIG		//if enabled, it reads a general CONFIG from "locale/%s/conf/GENERAL_CONFIG", "locale/%s/conf/GENERAL_CONFIG_CHANNEL_%d", and/or "locale/%s/conf/GENERAL_CONFIG_CHANNEL_%d_HOSTNAME_%s"
									//in the GENERAL_CONFIG, all the options are valid except: HOSTNAME, CHANNEL, PLAYER_SQL, COMMON_SQL, LOG_SQL, PORT, P2P_PORT, MAP_ALLOW, AUTH_SERVER, TEEN_ADDR, TEEN_PORT

@/Srcs/Server/game/src/char_resist.cpp
#define ENABLE_IMMUNE_PERC			//enable 90% of success instead of 100% regarding immunes (antistun/slow/fall)

@/Srcs/Server/game/src/item.cpp
#define ENABLE_IMMUNE_FIX			//fix immune bug where you need to equip shield at last (or refresh compute e.g. un/riding horse)

@/Srcs/Server/game/src/db.cpp
#define ENABLE_SPAMDB_REFRESH			//enable a select query every 10 minutes into common.spam_db

@/Srcs/Server/game/src/questlua.cpp
#define ENABLE_TRANSLATE_LUA			//enable translate.lua loading

@/Srcs/Server/game/src/questlua_pc.cpp
#define ENABLE_LOCALECHECK_CHANGENAME	//enable check that unable change name on Europe Locales
#define ENABLE_PC_OPENSHOP				//enable pc.open_shop0(idshop) but buy/sell not work yet

@/Srcs/Server/game/src/shop.cpp
#define ENABLE_SHOP_BLACKLIST		//enable ignore 70024 (Blessing Marble) and 70035 (Magic Copper Ore)

@/Srcs/Server/game/src/cmd.cpp
#define ENABLE_BLOCK_CMD_SHORTCUT	//if enabled, people won't be able to shorten commands

@/Srcs/Server/game/src/cmd_gm.cpp
#define ENABLE_STATPLUS_NOLIMIT			//disable only 90 points for con+/int+/str+/dex+ commands
#define ENABLE_SET_STATE_WITH_TARGET	// enable set_state target as 3rd arg
#define ENABLE_CMD_IPURGE_EX			// /ipurge 2nd arg can remove items from a specific window (inv/equip/ds/belt/all)

@/Srcs/Server/game/src/char_skill.cpp
#define ENABLE_FORCE2MASTERSKILL	//skill always pass to m1 when b17 instead of b(number(17-20))
#define ENABLE_MOUNTSKILL_CHECK		//check whether horse mount vnum should be checked when skilling
#define ENABLE_NULLIFYAFFECT_LIMIT	//sura skill 66 won't nullify players with level < or > of yours by 9
#define ENABLE_MASTER_SKILLBOOK_NO_STEPS	//if enabled, you will only need a book to increase a master skill, and not as many as the level-20

@/Srcs/Server/game/src/char_item.cpp
#define ENABLE_FIREWORK_STUN		//enable stun affect when using firework items
#define ENABLE_ADDSTONE_FAILURE		//enable add stone failure
#define ENABLE_EFFECT_EXTRAPOT		//enable extrapot effects when using green/purple potions
#define ENABLE_BOOKS_STACKFIX		//enable stackable books instead of remove all the pile

@/Srcs/Server/game/src/char_battle.cpp
#define ENABLE_NEWEXP_CALCULATION	//recalculate exp rate so you won't get random negative exp/marriage points
#define ENABLE_EFFECT_PENETRATE		//enable penetrate effect when performing a penetration

@/Srcs/Server/game/src/char.h
#define NEW_ICEDAMAGE_SYSTEM		//add new system for nemere dungeon and so on
#define ENABLE_ANTI_CMD_FLOOD		//limit player's command execution to 10 commands per second, otherwise it'll be disconnected!
#define ENABLE_OPEN_SHOP_WITH_ARMOR	//if enabled, people can open a personal shop with the armor equipped

@/Srcs/Server/game/src/char.cpp
#define ENABLE_SHOWNPCLEVEL					//show Lv %d level even for NPCs (not applicable on mob/stone/warp)
#define ENABLE_GOHOME_IF_MAP_NOT_ALLOWED	//you'll go back to your village if you're not allowed to go in that map
#define ENABLE_GM_FLAG_IF_TEST_SERVER		//show the gm flag if it's on test server mode
#define ENABLE_GM_FLAG_FOR_LOW_WIZARD		//show the gm flag for low wizard too

@/Srcs/Server/game/src/input_db.cpp
#define ENABLE_GOHOME_IF_MAP_NOT_EXIST			//you'll go back to your village if the map doesn't exist

@/Srcs/Server/game/src/mining.cpp
#define ENABLE_PICKAXE_RENEWAL		//if the upgrading of the pickaxe will fail, it won't turn back of 1 grade, but just lose 10% mastering points.

@/Srcs/Server/game/src/fishing.cpp
#define ENABLE_FISHINGROD_RENEWAL	//if the upgrading of the fishing rod will fail, it won't turn back of 1 grade, but just lose 10% mastering points.

@/Srcs/Server/game/src/questmanager.cpp
#define ENABLE_PARTYKILL			//re-enable PartyKill

@/Srcs/Server/game/src/input_auth.cpp
#define ENABLE_ACCOUNT_W_SPECIALCHARS	//enable special characters in account names (account.account.login)

@/Srcs/Server/game/src/input_main.cpp
#define ENABLE_CHAT_COLOR_SYSTEM		//enable chat colors based on IsGm or GetEmpire (+colored empire name)
#define ENABLE_CHAT_SPAMLIMIT			//limit chat spam to 4 messages for 5 seconds, if you spam it for 10 times, you'll be disconnected!
#define ENABLE_WHISPER_CHAT_SPAMLIMIT	//limit whisper chat to 10 messages per 5 seconds, otherwise you'll be disconnected!
#define ENABLE_CHAT_LOGGING				//enable chat logging (which saves all the gm chats)
#define ENABLE_CHECK_GHOSTMODE			//enable check that blocks the movements if the character is dead

@/Srcs/Server/game/src/input_login.cpp
#define USE_LYCAN_CREATE_POSITION		// if enabled, the lycan will be warped to his own village at character creation


* Dependencies
@/Srcs/Extern/include/boost
@/Srcs/Extern/include/cryptopp
@/Srcs/Extern/include/IL
@/Srcs/Extern/lib:
	libIL.a			//from DevIL
	libcryptopp.a	//from cryptopp
	libjasper.a
	libpng.a
	libtiff.a
	libjbig.a
	libmng.a
	liblcms.a
	libjpeg.a
@/usr/lib/liblzma.a	//or lib32

* Database configuration
* How to run tests
* Deployment instructions

### Contribution guidelines ###

* Writing tests
* Code review
#@general
@warme001: be aware about PLAYER_MAX_LEVEL_CONST (common/length.h) and gPlayerMaxLevel (game/config.h)
@warme002: be aware about ITEM_MAX_COUNT (common/item_length.h) and g_bItemCountLimit (game/config.h)
@warme003: do_click_safebox can be used by PLAYER in every map!
@warme004: `when vnum.kill begin` and `when kill begin` are both triggered
@warme005: different locale stuff
@warme006: not implemented stuff from another locale
@warme007: on db/src/ClientManager.cpp; commented locale set from common.locale due to its uselessness and bugginess (./close && ./start)
			it processes a NULL mysql connection (dat ymir threading) if there was a bit of overload before starting the process up again
@warme008: on char_item.cpp; now 27996 (poison bottle) can inflict poison
@warme009: on char_resist.cpp; if bleeding is used as poison, the bleeding enchantment is poison enchantment/50 (so mobs can bleed players)
@warme010: on char_state.cpp; test_server is used as "BOOL g_test_server"
@warme011: on dungeon.cpp; you should never use d.join instead of d.new_jump_party since it causes random crashes due to a wrong implementation of the party hash check
@warme012: trivial errors are now considered as simple logs

#@common
@fixme301: on tables.h; TPlayerTable hp/mp from short to int (hp/mp >32767 should be fixed)

#@db/src
@fixme201: on ProtoReader.cpp; changed 'SAMLL' into 'SMALL'
@fixme202: on ClientManagerGuild.cpp; fixed the guild remove member time issue if the player was offline
			(withdraw_time -> new_withdraw_time)
@fixme203: on ClientManagerPlayer.cpp; dandling pointer for "command"
@fixme204: on Cache.cpp; myshop_pricelist primary key duplication error if there are many items of the same vnum in the personal shop

#@game/src
@fixme101: on log.cpp; fixed '%s' for invalid_server_log
@fixme102: on cmd_general.cpp; inside ACMD(do_war) fixed the unsigned bug
@fixme103: on config, input_login, input_main.cpp; fixed clientcheckversion (version > date) to (version != date) and delay from 10 to 0
@fixme104: on char.cpp, questlua_pc.cpp; fixed get status point after lv90 changing 90 with gPlayerMaxLevel
@fixme105: on cmd.cpp; disabled every korean command
@fixme106: on input_main.cpp; if a full-speeded player is on a mount (es. lion), he'll be brought back due to the distance range
@fixme107: on char_battle.cpp; if character (player|mob) has negative hp on dead, sura&co will absorb hp/mp losing 'em themselves
@fixme108: on char.cpp; if you change a mount but the previous is not 0, all the entities (npcs&co) in the player client
			(not others) are vanished until another refresh (not exists mounts still bug you after second mount call)
@fixme109: on questmanager.cpp; if you kill a player (war m), `when kill begin` will be triggered twice
@fixme110: on char_affect.cpp; if you attack when semi-transparent (revived or ninja skill or white flag) you'll still be transparent
@fixme111: on test.cpp; ConvertAttribute2 has x and y inverted (before y->x after x->y)
@fixme112: on char_item.cpp; you can change bonuses in equipped items too (until re-login)
			bonus values will not be refreshed by ChangePoint and unequipping it will remove back only the new bonuses set on
			e.g. you had a 2500hp bonus shoes, you changed it to 50mp when equipped and you'll unequipped
				what will it happen? instead of remove 2500hp, you won't receive 50mp and you also lose 50mp when unequipped
@fixme113: on char_item.cpp; same thing of #112
			you can remove stones from equipped items w/o losing bonuses
			e.g. have an item with antiwar+4 equipped:
					1) remove all the stones 2) unequip it 3) re-add stone 4) re-equip it 5) repeat it thrice
				result? an item with no stones but you'll have 75% of antiwar
@fixme114: on char_item.cpp; gathering of #111, #112 and few others.
@fixme115: on char_item.cpp; you can retrieve all the item on the ground if you're in a party and the owner is not in yours.
@fixme116: on char_skill.cpp; normal horse mount skills cannot inflict damage
@fixme117: on char_item.cpp; you can't swap equipment from inventory if full, and also prevent unmotivated belt swap if its inventory is not empty
@fixme118: on char.cpp; when ComputePoints is called:
			you'll gain as many hp/mp as many you have in your equipment bonuses
			affect hp/mp will be lost when login or updating
@fixme119: on input_main.cpp; you can put items from safebox/mall to belt inventory w/o checking the type (items with size>1 are not placeable anyway)
@fixme120: on input_login.cpp; few packet IDs not checked
@fixme121: on char_item.cpp; the refine scroll item value 1 from the magic stone was generating useless syserrs
@fixme122: on arena.cpp; few other potions were not checked on arena map
@fixme123: on char_item.cpp; USE_CHANGE_ATTRIBUTE2 (24) sub type check bug (the condition could never be true)
@fixme124: on char_item.cpp; no check on 6-7 add/change items about costume stuff
@fixme125: on char.cpp; dungeon regen pointing to a dangling pointer (not required -> removed)
@fixme126: on marriage.cpp; fix lovepoints overflow
@fixme127: on cube.cpp; /cube r_info exploit fix; it can cause a crash due to an unchecked cube npc masters vnums
			e.g. 1) you open the Baek-Go cube's console 2) click on an npc/kill a mob without close the cube console
				3) digit /cube r_info 4) crash core
@fixme128: on char.cpp; mining hack fix; you can mine a vein anywhere in the map because there's no check on the character
			which means, you can stay at 0x0y and mining a vein in 666x999y and get the stuff beside him or in the pc's inventory
@fixme129: on PetSystem.cpp; the azrael pets (53005->34004 normal/53006->34009 gold) don't give the buff if not in dungeon at summon up and remove them anyway when unsummoned
@fixme130: on messenger_manager.cpp; and cmd_general.cpp if you do /messenger_auth n XXX, the player with the name XXX will receive a "refused friend invite" print from you
			which means, if you flood this packet, the "victim" will be disconnected or at maximum could get lag
@fixme131: on char.cpp; fix annoying sync packets sendable even on unfightable pc/npc entities
			e.g. wallhack against players' shops inside the village's squares (where the NOPK attr is set) to move them out and kill them
@fixme132: on shop.cpp; if two people buy the same item at the same time from a pc's shop, the slower one will receive a wrong return packet (crash client)
@fixme133: on input_main.cpp; banword check and hyper text feature were processing the final chat string instead of the raw one
@fixme134: on questlua_pc.cpp; the pc.mount_bonus was addable even if the mount wasn't spawn (only /unmount pc.unmount can remove it)
@fixme135: on char.cpp; if the Sync is made before a move packet and the sectree differs of few x/y coordinates, the sectree will be changed without update (crash character) (troublesome -> removed)
@fixme136: on char.cpp; there are no checks about the zero division exception: e.g. if you set a mob's max hp to 0 in the mob proto, you'll get random crashes.
@fixme137: on char_battle.cpp; when a player dies, the HP could have a negative value. Now it's 0 like the official.
@fixme138: on db.cpp, input_auth.cpp; the account's password was shown in the mysql history queries as clear text at every login attempt (mysql full granted user required -> now hashed)
@fixme139: on shop.h; CShop class destructor wasn't virtual. If a derived class like CShopEx was deleted, a memory leak would have been generated.
@fixme140: on input_main.cpp; the belt could be put into the safebox even though the belt inventory isn't empty.
@fixme141: on char_item.cpp; the items in the belt inventory could be used even if their slot were not available
@fixme142: on messenger_manager.cpp; sql injection fix about net.SendMessengerRemovePacket
@fixme143: on guild_manager.cpp; sql injection fix about net.SendAnswerMakeGuildPacket
@fixme144: on sectree_manager.cpp; if map/index doesn't end with a newline, the game will crash
@fixme145: on input_main.cpp; guild_add_member can add any vid as guild's member even if it's a mob or an npc
@fixme147: on char_item.cpp; ramadan candy item can be used even if the relative affect is still up
@fixme148: on item_manager_read_tables.cpp; type quest, special, attr not handled in ConvSpecialDropItemFile
@fixme149: on char.cpp; refine material skip exploit if items are swapped
@fixme150: on exchange.cpp; char_item.cpp; prevent item module swapping if the quest is suspended

#@/Server (general)
@fixme401: fixed the guild disband time issue
		on db/src/ClientManagerGuild.cpp
			(withdraw_time -> new_disband_time)
		on game/src/guild.cpp
			(new_withdraw_time -> new_disband_time)
@fixme402: fixed the usage of the affect system before its loading
		on game/src/char_item.cpp
			added an IsAffectLoaded check when using an item
@fixme403: fixed player.myshop_pricelist corrupted data
		on db/src/ClientManager.cpp; db/src/ClientManager.h; game/src/char.cpp
			TPacketMyshopPricelistHeader to TItemPriceListTable

* Other guidelines

## Trick to replace ALUA macro (notepad++) for all questlua*.cpp files (CTRL+F)
# Find (Search Type -> Regular Expression)
int[ \t]*([A-Za-z0-9\_]+)[ \t]*\([ \t]*lua_State[ \t]*\*[ \t]*[\/\*]*L[\*\/]*[ \t]*\)
# Replace with (File -> Save all) [26 files, 621 replaces]
ALUA\($1\)

### Who do I talk to? ###

* Repo owner or admin
martysama0134[/spoiler]
Link download ce contine ?
-SERVERFILES -CLIENT BINARY -SERVER SOURCE
CE NU CONTINE ? CLIENTUL-DB
mega.nz/#!K0kGzKxS!jEsH5lrHHjww4liOXW3Op5swzU4bNM3O9l0lWf384oM
Pentru acest mesaj, MartysamaFree a primit 4 (de) mulţumiri
JustJUNGLE • tidu • vma • marcos_tlc
Avatar utilizator
Yahiko
Membru Club

Membru Club
Mesaje: 3865
Membru din: 25 Mai 2015, 18:31
Aprecieri: 0
Mulţumiri: 4857  
Discord: Copiază ID
 Contact:
Medalii

Nu știu ce voiai să pui în spoilere, dar nu sunt ceea ce consider că ar trebui :-?

//# Arhivat.
*Contact Discord: Yahiko#2936
*Doar SMS: 0749592613
*Grup discord: Click
Cu stimă,
Yahiko.

GL & HF
Afișează semnătura
Închis
Răspunsuri
10
Vizualizări
2876
Răspunsuri
1
Vizualizări
931
Răspunsuri
3
Vizualizări
1703
Răspunsuri
8
Vizualizări
2000

Înapoi la “Arhivă”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 7 vizitatori