Code:
it not full change
more change scripts
+++ fixed item enchant slots, this will autofix gems' socketing
+++ item bonuses from equipped bags can will now be applied to player
+++ cleaned up binding code for items
+++ fixed Stealth of Cat form
+++ trying to fix stealth in form
+++ fixed crash on creature casting Stealth spells
+++ new Py API:
add_varargs_method ("SignalBattleGroundRoundEnd", &LudmillaPy::ext_SignalBattleGroundRoundEnd, "(instance_id) sends event update to BG engine to finish round.");
+++ fixed player teleports, seems deadlock is now completely fixed
+++ fixed initial spell generation and renamed Unk field in Creatures Templates
+++ CreatureSpellData dbc storage is used for automatic initial pet spells generation (Tamed in dbc so far...) Neverdie +1
+++ fixed player login
+++ tried to combat recent deadlock 99% fix will work
+++ fixed Pet actions
+++ Python API: gameobject.Die(delete_from_db) has delete_from_db new param, if 1 then will be deleted from DB, if 0 then not
+++ tried to fix mod stealth aura to say to client we have stealth, no success so far
-- Changed opcodes to official.
-- Renamed all packets for opcodes.
+++ !!! I hope the deadlocking bug is fixed, although it wans'nt obvious and was tricky.
+++ implemented thread_container_rw special class to utilize performance of rw_mutex for containers, adapted thread_map to thread_map_rw
+++ new id Venon change computer
+++ more thread safety to WorldSession
+++ fixed CONFUSE (prevented client mov. control)
+++ fixed Polymorph auras like Sheep, Pig, Turtle, now they will also produce Fear like effect
+++ del warning
+++ improved BG GetPlayer
+++ some speedup
+++ unified private Python values' buffer for instance into 1 buffer for:
- SetInstanceBufferValue(instance_id,...)
- instance.SetBufferValue(...)
+++ some correct
+++ fixed EFFECT_DESTROY_ALL_TOTEMS (Totemic Call and similar)
+++ OnEventGOUse will work for outside BG also
+++ fixed Spell Mechanics, it is big fix that will probably fully restore our Spell core work with Mechanics, a lot of spells will start function correctly
+++ fixed HAS_FLAGS define that will return TRUE on any of masks falling into checked range (that was a bug)
+++ new GO PY API:
OnEventGOUse(go, player):
Same as OnEventGOSelect(go, player) must return (1) if event was processed/absorbed by handler or (0) if wasn't, so caller continues to execute standard functions further.
+++ BattleGroundEvent::OnGameobjectUse(Player* player, GameObject* go) is bound to OnEventGOSelect Py call now.
+++ void Spell::SpellEff_OpenLock(uint32 i) && void Spell::SpellEff_OpenLockedItem(uint32 i) are bound to BattleGroundEvent::OnGameobjectUse call before they execute as standard, e.g. they also call OnEventGOSelect through BattleGroundEvent::OnGameobjectUse.
-- All loot packets moved to LootHandler.cpp
-- All pet packets moved to PetHandler.cpp
(Kos pls add this files in VS 9.0)
-- some definition in SMSG_LOOT_ROLL. (kos pls view this commit).
-- Inform player if it trying whisper to AFK or DND player.
-- fixed chat whisper.
+++ new Py API: unit/player/go.GetAreaId(), that returns AreaId of object location
-- moved CMSG_LOOT_ROLL_PASSED_AUTO to WS.
+++ add State for Arathi (tested)
+++ check void Player::Send_SMSG_INIT_WORLD_STATES() for initial World States settings for BG (dumper is autogenerating C++ code list)
+++ new Py API:
add_varargs_method ("SendBattleGroundWorldState", &LudmillaPy::ext_SendBattleGroundWorldState, "(instance_id, state_index, state_value) sends world state update to all players in BG instance.");
add_varargs_method ("GetBattleGroundPlayerList", &LudmillaPy::ext_GetBattleGroundPlayerList, "(instance_id, team_mask(optional)) gives player list currently on bg, 'team_mask' is optional and if not specified players are given from all teams (team_1 = (1<<0), team_2 = (1<<1), ...).");
+++ updates SpellNames.h for .2 patch
+++ some opcode from WoTLK (not test)
+++ modified World states to be easy workable with BGs (for events)
+++ +1 0 to item Query single as per zhenya
+++ fixed new Py API
+++ Normalized Weapon Damage + spells will give Combo Point to rogues also
+++ fixed combat raiting's visual stats
+++ work on combat raitings
+++ new requested Py API for GameObject PyGameObject class:
add_varargs_method ("CreateGameObject", &PyGameObject::ext_CreateGameObject, "(Id, Tuple XYZ, Tuple ROTATION, SaveToDB) Creates GameObject.");
add_varargs_method ("CreateNPC", &PyGameObject::ext_CreateNPC, "(Id, Tuple XYZ, SaveToDB, Recurring) Creates NPC.");
Works similar as for NPC. e.g.: go.CreateGameObject(....).
CreateGameObject automatically puts created gameobject into world.
+++ fixed compile
+++ enabled mutex timeouts to detect occuring deadlocks
-- Add my new machine id.
-- Add new enums from client (2.4.2).
-- Version changed to 2.4.2.
-- Add new packet CMSG_LOOT_ROLL_PASSED_AUTO.
(kos pls look on it and add to SMSG_LOOT_ROLL auto pass).
+++ fixed SMSG_SURROUNDING_NPC_STATUS_RESPONSE and as a result #132
+++ fixed quest query response
+++ quest packets shall be fixed and be not giving #132
+++ fixed Spell casts for static spells like Login, Sickness...
+++ fixed inventory errors packet
+++ fixed combat (melee/spell/periodic) packets
+++ fixed XP gain packet
+++ fixed BG log packet
+++ tried to fix crash on [out-of-sync] logout
+++ fixed compile
+++ if spell is added through DynamicTeachSpell Python API and spell also was used by item it will appear in trainer list (forced)
+++ updated basis of aux lib with thread classes (crashes, correctness...)
+++ implemented SPELL_AURA_PERIODIC_SCRIPTED_TRIGGER (226) that shall fix periodic energize effects
+++ reverted settings
+++ fixed compile if #define _USING_MEMPOOL is commented out to switch off mempool usage
+++ Spell summoning players will be working again (pls test)
+++ new Py API to reset all spells cooldown:
add_varargs_method ("ResetSpellCooldown", &PyUnit::ext_ResetSpellCooldown, "(bool also_global) Resets all spell cooldowns (also global if TRUE for param).");
+++ triggered spells will not crash server sometimes anymore when no spell is scripted
-- fixed compile in VS 9.0
+++ Dual Wield and similar abilities are now in trainer lists again
-- fixed compile in VS7.1
+++ fixed shape shift forms change (action bars now changing opening form spells)
+++ changed spell ids to names for flight forms and shapesifts
+++ fixed CanTalkToNPC so NPC shall be more talkable
+++ quest slots will be reset to 0 on player load if no quest id for slot to avoid #132
+++ filtered Bloodthirth spells from trainer without Ranks
+++ trainers has cleaned up lists from:
- DND spells
- Judgement Of ... spells
+++ fixed quests part, uf being damaged by wrong offset due to new quest slot size (for groups, for quest assignment, for refreshing), this shal clear 132
+++ all cheating players with movement packets will be now logged out without assert + added to cheat file log
-- fixed my mistake with chat enums.
+++ cleared trainer list from triggered spell
+++ SPELL_AURA_PERIODIC_TRIGGER_SPELL, dummy triggers, did get helper map with triggered spells that can help in finding spell if Triggered spell is unknown
-- Fixed chat msg types.
-- Add debug command for testing chat.
+++ avoid 132
+++ fixed prof learning
+++ spells learned by quest will be taught like if by trainer
+++ fixed trainer spells analysis by splitting old/new logics to work togather this will fix Profession spell learning
+++ excluded not needed player save info (do not bother with warnings, or simply reset talents to all to resave players)
+++ farsight must not be affecting players after relogin
+++ professions leveling up will be done as before patch, correctly
+++ enchant recepies shall be in trainer list now
+++ new Py API: add_varargs_method ("SetNonHibernatable", &PyUnit::ext_SetNonHibernatable, "Sets creature be always updatable by server core.");
- to make mob be always updatable by server. for special scripting AI.
+++ Professions must be learning from now
+++ import operation is fully threadsafe for MapManagers
+++ trainers:
- recepies shall be in tr.list
- secondary profs shall be in the list
- main profs/abilities will also be in list
+++ possibly fixed 132 on .mod mount (bad unit flag?)
+++ improved thread_task interface
+++ server will wait for task completition if shutting down
+++ import in thread is 100% safe from player logout now
+++ more to thread_task
+++ implemented world imports in own thread-task: check world_server.conf:
# If enabled imports are handled in own task-thread, importing player must stay in world
# till procedure completes othervise it may crash, for 100% safety you may want to have 'no'
# and import will be done on world thread freezing it till procedure completition.
#
UseWorldImportInThread = yes
+++ removed CConvert class and substituted with aux::convert
+++ fixed client lock-up on empty friend list
+++ fixed trainers showing trash spells (now must be same as before patch)
+++ implemented new NPC query packet (do not know full meaning though yet)
+++ trainer shows visual effect of learning as usual
+++ normalized mem allocators and removed bad way of linkage
+++ compress per thread instance will be given fast using TLS (thread local data) allocated by kernel functions (will be compressing faster now)
+++ learning animation for trainer (although did not really help, studying...)
+++ fixed crash bug in mempool when thread deallocates data chunk not allocated before
+++ add translocate teleport in core
+++ implemented special type of memory allocation technology by allocating memory per every calling thread using thread local storage (win & nix), must speed up allocations (tested)
+++ memory is now allocated by memory pools only using overwritten new/delete operators
. sorry had no internet
+++ new id portal iron
+++ portal effect "SUNWELL ISLE"
+++ more work on memory pool to make it very fast in multithreaded app, now it is 1.9 times faster in release, and 4 times in debug mode
+++ switched off mutex debugging
+++ corrected social's SQL querries
-- Add new combatlog enums.
+++ stackwalker will show stack on ASSERT_AUX_DESC also
-- Fixed trade.
+++ fixed convertor from 2.3.3 to 2.4.1 (I AM VERY SORRY)
+++ spell learning shall start work
+++ skipped spells from learning having no Requirements
+++ excluded talents from trainer lists
+++ switched on 2min mutex timout assert + double locking checks to fight for deadlocks
+++ socialmgr please check sql need
-- Fixed compile in VS-2008.
+++ LoadTrainerTeachSpells_New to load teach spells, let's see if spell list visible now
+++ more checks on items load
+++ who list
+++ started work on social
+++ Trainer lists shall be fixed
+++ Item spell caster: first lookup is by item guid
+++ Creatures sizes taken from DB now (not DBC)
+++ reverted unneeded changes in sup.libs
+++ more trade
+++ more enums
+++ SMSG_SET_FACTION_STANDING
+++ CMSG_USE_ITEM
+++ fixed possible crash in mempool on program closure if memleak existed
+++ implemented 2 new opcodes to set Guild tab text (update sql)
+++ switched to original memcpy/memove
+++ fast int to string method
+++ fixed Arena team packets 2.4.1
+++ fixed SMSG_NPC_TEXT_UPDATE 2.4.1
+++ fixed SMSG_QUESTGIVER_STATUS 2.4.1
+++ fixed SMSG_QUEST_QUERY_RESPONSE 2.4.1
+++ fixed SMSG_QUESTGIVER_QUEST_DETAILS 2.4.1
+++ fixed SMSG_LOOT_ROLL 2.4.1
+++ fixed SMSG_GROUP_LIST 2.4.1
+++ fixed CMSG_GROUP_PROMOTE 2.4.1
+++ fixed SMSG_PARTY_MEMBER_STATS & SMSG_PARTY_MEMBER_STATS_FULL 2.4.1
+++ fixed CMSG_CHAT_IGNORED 2.4.1
+++ fixed SMSG_ITEM_QUERY_SINGLE_RESPONSE 2.4.1
+++ fixed SMSG_LIST_INVENTORY 2.4.1
+++ fixed SMSG_ITEM_NAME_QUERY_RESPONSE 2.4.1
+++ fixed SMSG_GUILD_ROSTER 2.4.1
+++ added own aux_memcpy to bytebuffer, for other places - not necessary, where is a chance that struct won't be 128bit aligned
+++ own memcpy/memmove, offering 20%-30% speedup when aligned to 8bytes (64 bit)
+++ trade shall be fixed now
+++ fixed linux compile
+++ new aux::arrays::array<T> class which can replace std::vector but no perfomance win is given, so better do not use it
+++ chat
-- Add all enums from client (2.4.1)
-- New opcodes.
-- New enums.
-- Add new enums.
-- Add new packets for getting enums.
(sorry for long delay).
+++ fixed 7.1 compile
+++ some more correction to thread_update closure
+++ 'GetThreadId' kernel32.dll now deallocates if loaded
+++ implemented missing 'GetThreadId(h)' for Windows NT 4.0 - XP
+++ bswap_f32 & bswap_f64 for float and doubles
+++ corrections to AUX lib (threaded classes, new memory allocation functions with crc7 check, arrays)
- new class aux::threads::thread_task() that can be used to create new thread and do given task in it and autoclose, excellent for big infrequent jobs
+++ types fix
+++ fixed SMSG_SPELL_GO
+++ fixed SMSG_SPELL_START
+++ fixed spell cast flags logics
+++ aux::reference_ptr<T> fixed for STL containers hashing and lookup
+++ new Python API:
def OnGOUpdate(go, time_diff):
- for gameobjects, update interval == ~1sec
+++ defines to safer version
+++ fixed bug when player could join BG/Arena queue or group having Deserter.
+++ finally fixed Py::Bollean
+++ fixed Py::Boolean
+++ to Boolean type
+++ refactored Action buttons into action_button_t structure
+++ added bad spells check on action but. load
+++ more PyCXX, please recompile Deplibs
+++ fixed spell names (thx god we had defines!!!!)
+++ spell names to 2.4.1
+++ to 2.4.1 patch
+++ fixed RandProItem...dbc (pls check code before commit)
+++ fixed bug when loot was missing of items which are reagents for quest items
+++ fixed item enchant slots, this will autofix gems' socketing
+++ item bonuses from equipped bags can will now be applied to player
+++ cleaned up binding code for items
+++ fixed Stealth of Cat form (looks like it hasn' given up so easily )
+++ unlearning talents shall not make trainer attacking
+++ corrected talent unlearning code to correct
+++ fixed buy error handling
+++ fixed item spells (affects) be applied correctly and also removed (now stacking + not removing all if same spell)
+++ fixed equip errors, now items give correct errors and do not freeze in slot on error of higher lvl
P.S.
Quest system being working on, almost done.
Btw, Arathi BG almost completed (somewhere near 90-95% of completion for now).