Also mir bekannte Bugs sind, dass das ein oder andere System nicht zu 100% funktioniert.. Glaube Won geht anfangs nicht ganz ist aber einfach zu fixxen..
Ansonsten sind es ansich gute Files mit vielen System und auch vielen Fixxes...
Zwecks den ganzen fixxes musst ja nur mal die defines anschauen...
Defines:
Code
- /*
- #@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
- @fixme151: on shopEx.cpp; all kingdoms have same price's
- @fixme152: on char_affect.cpp, char.h fix affect lag
- */