Commit Graph
100 Commits
Author SHA1 Message Date
Machiavelli cf5ed0a7b6 Core/Movement: Remove MOVEMENTFLAG_FLYING on fly aura unapply as well as _CAN_FLY 2012-03-16 23:41:43 +01:00
Machiavelli 85da463686 Core/Movement: Fix brackets in macro 2012-03-16 23:37:50 +01:00
Machiavelli 65453620e8 Core/Movement: Do not process server side relocation if reading movementinfo from client resulted in violations (= hacking). 2012-03-16 18:15:08 +01:00
Machiavelli cca93c7a22 Minor typo, major consequences. 2012-03-16 17:27:24 +01:00
Machiavelli df31af5b4f Core/Movement: Add server-side check for movementflag correction in previous commit. This effectively prevents (most if not all) flyhacking. 2012-03-16 17:21:15 +01:00
Machiavelli f8c04b1bc5 Core/Movement: Fix players still able to fly on SPELL_AURA_FLY and SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED unapply.
Closes #5731
2012-03-16 17:10:01 +01:00
Machiavelli 7d60290c2e Core/Units: Offset z coordinate only if MOVEMENTFLAG_HOVER is present, not MOVEMENTFLAG_DISABLE_GRAVITY.
(Remnant from an early incorrect version of my UNIT_FIELD_HOVERHEIGHT patch)
2012-03-15 10:16:08 +01:00
Machiavelli e17a9cfb85 Core/Movement: Add server side filters for MOVEMENTFLAG_WATERWALKING, _FALLING_SLOW and _HOVER depending on required aura types. Fixes exploiting when aura unapply packets (such as corrected in previous commit) are blocked/altered before reaching the client. 2012-03-15 10:12:43 +01:00
Machiavelli afaed98b7a Core/Movement: Send correct packet to client when unapplying hover, feather fall and water walking auras.
Closes #5704
2012-03-15 10:03:25 +01:00
Machiavelli a48216e122 Scripts/UP/Svala: Temp compile fix for Svala. Currently rewriting the entire script. 2012-03-12 08:41:13 +01:00
Machiavelli 8af0067016 Scripts/ICC/Lich King: Typo correction in unit_field_bytes_1 usage related to hover, introduced in previous commit (thankfully the only one). 2012-03-12 01:10:02 +01:00
Machiavelli dc91836b85 Merge pull request #5656 from thomas33/master
Yet another copyright update commit, this stuff never gets old! Except in 2013.
2012-03-11 16:57:15 -07:00
Machiavelli 03a24a84e4 Core/Units:
- Implement UNIT_FIELD_HOVERHEIGHT (requires DB data). This field, sent in update object packet, will determine the height at which a creature hovers if it has movementflag_hover applied. Note that hovering will now update the server-sided z-coordinate by the value of this field, and that all subsequent positional updates to the client will need to send z coordinate MINUS the hover height offset, or the hoverheight will be visually doubled client side.
- Correct our usage of movementflag_flying, movementflag_can_fly, movementflag_hover and movementflag_disable_gravity (previously levitate), and how they relate to InhabitType in the database. This fixes "flying creatures on steroids" bug (wings flapping too fast), and potentially a lot of visual issues in AI scripts. Note that a lot of scripts still set wrong movementflags, these need to be fixed on a case by case basis.
- Send correct packets for SPELL_AURA_FEATHER_FALL, SPELL_AURA_WATER_WALK and SPELL_AURA_HOVER apply/unapply.
- Send correct packet contents for movement update in Unit::SetSpeed.
- Misc. cleanup in affected scripts.
2012-03-12 00:53:45 +01:00
Machiavelli b1a8570a30 Core/Spells: Fix item target selection in Spell:SelectImplicitTargetObjectTargets. Typo spotted by zwerg 2012-03-11 14:52:11 +01:00
Machiavelli d1e4eb0512 Core/Commands: Implement .debug moveflags command. With params you can set MoveFlags and MoveFlagsExtra for targeted unit. Without params it will display the current MoveFlags and MoveFlagsExtra. Useful for debugging upcoming changes. 2012-03-03 16:12:28 +01:00
Machiavelli 6bb689b494 Core/Units: Properly update passenger position if vehicle uses waypoint movement. Fixes e.g. Icefang path 2012-03-01 17:06:41 +01:00
Machiavelli 844e2ca857 DB/Conditions: Really fix the Scarlet Harvest. Quest automatically had STATUS_COMPLETE, so condition needed to be adjusted 2012-03-01 14:43:38 +01:00
Machiavelli e2c20cca72 Core/Conditions: Small optimization in ConditonMgr, as well as proper rules for spellclick conditions in Clean(), and finally some documentation added on how to add new source types. 2012-03-01 14:43:35 +01:00
Machiavelli a36a0a77ef Core/Player: Quests with status QUEST_STATUS_NONE(0) shouldn't be loaded into player's queststatus storage. These should be removed since they are remnants from the old queststatus storage system. 2012-03-01 14:43:32 +01:00
Machiavelli b9b8f27e45 DB/Conditions: *Proper* conditions for The Scarlet Harvest. Saving the file before committing works. 2012-03-01 00:42:18 +01:00
Machiavelli e3e958e293 DB/Conditions: Proper conditions for The Scarlet Harvest
Closes #5422
2012-03-01 00:10:16 +01:00
Machiavelli dbec50b89d DB/Conditions: Fix a lot of spellclick conditions (conversion didn't properly take ElseGroup into account). Also add primary key to npc_spellclick_spells and remove duplicates. 2012-02-29 23:44:06 +01:00
Machiavelli 8e8ff7c660 Core/Conditions: Remove some useless checks in Condition::Meets against a value that's _supposed to be_ const 0 in database. 2012-02-29 13:57:16 +01:00
Machiavelli 218ed813d0 Core/Misc: Add more extensive ByteBuffer exceptions to trace down seemingly random crashes. 2012-02-28 14:51:50 +01:00
Machiavelli 3ea9fe4022 Core/Movement: Remove a redundant check in EffectMovementGenerator that could prevent MovementInform from being called 2012-02-28 00:17:01 +01:00
Machiavelli f402bad532 Core/MovementGenerators: Ensure correct virtual function overrides are called. May/should/will/could/might fix various different movement related issues. Please report back. 2012-02-27 20:22:38 +01:00
Machiavelli b2e4f8f958 Core/Misc: Add some documentation to TRINITY_WRITE_GUARD and TRINITY_READ_GUARD because ACE's documentation on underlying objects is not clear. 2012-02-26 15:16:22 +01:00
Machiavelli dc91fc1050 Core/Vehicles: Fix a crash in object update packet builder (need to remove UPDATEFLAG_VEHICLE on Unit::RemoveFromWorld) 2012-02-22 21:50:01 +01:00
Machiavelli fa546d1428 Core/Spells: Change logic in assertion in Spell::SelectImplicitTargetObjectTargets.
Not sure if this a step in the right direction for the intended design, but following the logic of the function there should be OR unit target OR gameobject target OR item target pointers available. If Item target doesn't belong there then the already present AddItemTarget call should be removed.
2012-02-22 19:16:47 +01:00
Machiavelli c9748aaacc Core/Vehicles: Fix a crash in ~Vehicle. Closes #5366 2012-02-22 16:51:56 +01:00
Machiavelli a3f3058499 Core/Vehicles: Remove some wrong/redundant calls to Unit::ExitVehicle. The aura system already handles it in most places.
Also add some documentation on upcoming work on making passenger exit positions work.
2012-02-22 12:26:05 +01:00
Machiavelli 7567d5e359 Core/Conditions: Fix grouping for CONDITION_SOURCE_TYPE_SPELL_CLICK_EVENT
Perhaps in the future a more generic solution can be implemented to prevent lots of repetitive code
2012-02-22 11:54:01 +01:00
Machiavelli 1aceab6b62 Core/Pets: Fix stay command if pet is currently processing spline movement 2012-02-21 10:41:48 +01:00
Machiavelli 44195689b9 Core/Units: Use spellclick conditions in Player::canSeeSpellClickOn 2012-02-21 10:17:32 +01:00
Machiavelli 16818d7548 Core/Conditions: Convert npc_spellclick_spells data to condition system. This implements CONDITION_SOURCE_TYPE_SPELL_CLICK_EVENT (previous CONDITION_SOURCE_TYPE_UNUSED_18). Wiki needs to be updated accordingly. 2012-02-20 23:25:59 +01:00
Machiavelli 2d89b4bfe0 Core/DBLayer: Change some incorrect uses of PQuery with PExecute or Execute 2012-01-18 21:02:06 +01:00
Machiavelli e652d9043b Missing unsaved changes for previous commit... 2012-01-18 19:00:52 +01:00
Machiavelli 46dda033c8 Core/Items: Blizzlike fix for the recent trade exploit fix 2012-01-18 18:57:21 +01:00
Machiavelli abd94e324b Core/Items: Fix crash and updated documentation in SplitItem 2012-01-18 13:14:06 +01:00
Machiavelli 6a44399852 Core/Items: Fix a trading spoof exploit.
Closes #4713
2012-01-17 18:51:04 +01:00
Machiavelli 5dd6b8b2dc Core/Conditions: Change CONDITION_REPUTATION_RANK. It now no longer explicitly checks if ConditionValue2 is equal to the reputation rank. It now checks if the player's reputation rank is in the bitmask of ConditionValue2, where each bits are (1 << ReputationRank).
Idea by Aokromes and Malcrom
Data conversion query by Malcrom (*WATCH OUT WITH CUSTOM CONTENT AS THIS DELETES ALL CONDITION TYPE 5's AND RE-ADDS STOCK DATA ONLY*)
2012-01-17 14:31:22 +01:00
Machiavelli f71ad6d581 DVCS: Add kdiff3 file extensions to gitignore 2012-01-15 15:28:52 +01:00
Machiavelli b02666213c Scripts/Misc: Fix some MovementInform handler filters after recent motionmaster changes
Also correct year of SQL in dbbac0bdaa
2012-01-15 15:27:43 +01:00
Machiavelli dbbac0bdaa Core/Movement: Implement spline movement subsystem.
Spline movement controls movements of server-side controlled units (monster movement, taxi movement, etc).
Proper implementation of effects such as charge, jump, cyclic movement will rely on it.
However, need improve our states system before.

Technical changes:

* Added linear, catmullrom and bezier3 splines which based on client's algorthims. They can be reused for proper transport position interpolation.
* Precission increased. There are no more position desync issues since client's position calculation formulas used.
* Now possible to move by paths with multiple points, send whole path to client.

--
Original author of research and implementation: SilverIce. Massive kudos.
Original port for Trinity (ref #4629) Chaplain and Venugh
With the following incremental fixes during my review:

- Restore flightmaster end grid pre-loading
- Fix uninitialized Creature::m_path_id
- Add missing trinity_string entries for .movegens command
- Fix a bug in WaypointMovementGenerator that would trigger unexpected pausing at waypoints for various amounts of time

Known issues:
- Errors like WaypointMovementGenerator::LoadPath creature XXX (Entry: YYYYY GUID: ZZZZZZ) doesn't have waypoint path id: 0.
This is caused by bad DB data. This commit didn't "break" it.

Do not forget to re-run CMake before compiling.
2012-01-14 15:36:07 +01:00
Machiavelli 2293d2d7df Core/Movement: Prevent IdleMovementGenerator being put into MOTION_SLOT_IDLE and MOTION_SLOT_ACTIVE simultaneously 2012-01-13 16:43:49 +01:00
Machiavelli bb2696a688 Core/Vehicles: Define and implement VEHICLE_SEAT_FLAG_B_USABLE_FORCED_4 2011-12-22 14:10:05 +01:00
Machiavelli 2d93bd07ba Core/DBLayer: More generic implementation of callback chains, instead of using this functionality local to CharacterCreatInfo class. Will be used in other places as well. 2011-12-21 10:22:03 +01:00
Machiavelli 17aeeaa9b5 Core/DBLayer: Fix a silly error in HandleStableSwapPet (synchronous query in async context). Fixes possible loss of pets when swapping. 2011-12-21 09:36:05 +01:00
Machiavelli 6c03bf9535 Core/Misc: Some random meaningless Engrish to English conversion in a method name because Discovered is too lazy to do it himself. 2011-12-19 22:06:29 +01:00
Machiavelli 8e0be985fd Core/Netcode: Fix a possible infinite loop after 829be0b82 (which was accidentally merged in this morning) 2011-12-19 21:12:35 +01:00
Machiavelli a1683f20dc Fix SQL file name after pull request, and fix compile on linux. 2011-12-19 11:17:52 +01:00
Machiavelli 16df950fdb Merge branch 'master' of github.com:TrinityCore/TrinityCore 2011-12-19 11:14:26 +01:00
Machiavelli 829be0b82b Core/Netcode: Re-enqueue packets with STATUS_LOGGEDIN requirement that are sent before the server recognizes the player as logged in. They will be processed later.
Fixes #208
Fixes #1434
Fixes #2338
2011-12-16 15:36:03 +01:00
Machiavelli db8c10c7bf Core/Commands: Make GM Ticket commands console enabled. (Aokromes' Suggestions)--; 2011-12-14 14:12:42 +01:00
Machiavelli 8ca9b38fee Core/Channels: Don't send channel kick/ban notifications if kicker is GM and Channel.SilentlyGMJoin == 1. (Aokromes' Suggestions)--; 2011-12-14 13:53:47 +01:00
Machiavelli 203d4a4952 Core/Commands: Show time left until shutdown in .server info. (Aokromes' Suggestions)--; 2011-12-14 13:42:57 +01:00
Machiavelli 589f067101 Core/DBLayer: Terminate process if table/database structure is not compatible with the core. This will significantly reduce the amount of PEBCAK help and support threads on our forums.
Also added a 10 second window to WPFatal for users who never heard of command line before to read the error prior to process termination.
2011-12-13 13:59:00 +01:00
Machiavelli 7c9093e32c Core/GameEventMgr: Use correct lock type 2011-12-11 16:36:40 +01:00
Machiavelli 1b2c413933 Core/SAI: Preliminary implementation of SMART_EVENT_GAME_EVENT_START and SMART_EVENT_GAME_EVENT_END {param1: game_event.entry} 2011-12-11 16:23:43 +01:00
Machiavelli d7d79f058d Forgotten change to seat flag defines, thanks to Venugh. 2011-12-11 15:28:33 +01:00
Machiavelli c7cdd786fe Core/Vehicles: In CMSG_ATTACKSWING check if current vehicle seat flags permit attacking before updating standstate etc. Client also checks this.
Furthermore, removed incorrect vehicle_seat_flag_b definition and added an unknown vehicle_seat_flag that was found in the client.
2011-12-11 14:44:58 +01:00
Machiavelli f5b3553bb3 Core/SAI: Typo in second param of SMART_ACTION_SEND_GOSSIP_MENU. This is npc_text_id, not gossip_option_id. Wiki needs to be updated accordingly.
Thanks to Prodigy for pointing out.
2011-12-06 12:37:05 +01:00
Machiavelli 4c3c418511 Core/Misc: Make VMapManager2::acquireModelInstance and releaseModelInstance thread safe
Closes #4086
2011-11-26 19:11:58 +01:00
Machiavelli fcd28e5dad Core/DBLayer: Fix player saving 2011-11-26 15:15:04 +01:00
Machiavelli 72675d55d8 Core/DBLayer: Use prepared statements in Player::SaveToDB. Also split the function up between an INSERT part (new character creation) and UPDATE part (existing character). 2011-11-25 15:14:00 +01:00
Machiavelli 8444532746 Core/Units: Second part of SMSG_MOVE_SET_COLLISION_HGT implementation: compute proper collision height according to client formulae and send this to the client when mounting up. 2011-11-22 20:28:10 +01:00
Machiavelli 367122dd62 Core/Packets: Allow CMSG_MOVE_SET_COLLISION_HGT_ACK to be received from the client (currently unhandled) 2011-11-22 06:02:53 +01:00
Machiavelli a14cbcaa3e Core/Units: Partial implementation of SMSG_MOVE_SET_COLLISION_HGT - send proper character collision height on dismount.
Fixes #2642

NOTE: Still have to properly implement collision height calculation for mounting up.
2011-11-21 22:54:25 +01:00
Machiavelli 32bcee40bf Core/Spells: Fix crash in Glyph of Rake 2011-11-20 16:05:41 +01:00
Machiavelli 682c3289c7 Tabs 2011-11-20 13:46:53 +01:00
Machiavelli cab3def3a4 Core/Units: Revert previous 3 commits about Unit::_IsValidAttackTarget and Unit::GetReactionn until some conclusive research can be done 2011-11-20 12:56:14 +01:00
Machiavelli 28d1cc9cfe Core/Units: Fix more issues in Unit::_IsValidAttackTarget. (Documentation on changes compared to the client function included) 2011-11-17 19:05:25 +01:00
Machiavelli 8ea8dd4f3d Core/Units: Replace wrong usage of UNIT_FLAG_PVP_ATTACKABLE with UNIT_FLAG_PLAYER_CONTROLLED in Unit::IsValidAttackTarget, Unit::IsValidAssistTarget and Unit::GetReactionTo. Using 4.1 flags in 3.3.5 doesn't always work out like it should... Also remove now unneeded change from 70b558d
Fixes SPELL_AURA_FORCE_REACTION amongst other things
2011-11-16 23:12:31 +01:00
Machiavelli 70b558dd39 Core/Units: Fix Unit::_IsValidAttackTarget (UNIT_FLAG_OOC_NOT_ATTACKABLE check specifically)
Closes #3172
2011-11-16 21:02:37 +01:00
Machiavelli c67af87eda Core/Spells: Fix SPELL_EFFECT_SEND_EVENT handler being executed more than once when targets != (0, 0). Closes #3934 2011-11-16 19:09:51 +01:00
Machiavelli 28102c5683 Scripts/Ulduar/Freya: Fix chest spawning when completing the encounter properly (in addition to spawn support when abusing .die for testing purposes) 2011-11-14 20:49:46 +01:00
Machiavelli 7d52578b80 Scripts/Ulduar/Assembly of Iron: Fix Immumities for Stormcaller Brundir; Fix Brundir's Lightning Tendrils (visuals need some extra love)
Closes #707
2011-10-29 22:49:55 +02:00
Machiavelli cb52cf011f DB/Templates: Correct 25 man loot IDs for Freya's chest based on the only actual parsed 25man chest there is. NOTE: This is not WDB data, merely guesswork. 2011-10-29 15:57:50 +02:00
Machiavelli 2575b50b05 DB/Templates: Add missing templates for variations of Freya's Chest. This will allow them to actually spawn on death. 2011-10-29 14:56:01 +02:00
Machiavelli 4f039841e8 Scripts/Ulduar/Freya: Remove unneeded TimeCheck function that would lead to over-spawning of waves. 2011-10-29 14:55:05 +02:00
Machiavelli 40ed37c1e7 Core/GameObects: Fix a crash in GameObject::Delete 2011-10-08 15:06:31 +02:00
Machiavelli f266d3d957 One last culprit... 2011-10-08 14:36:38 +02:00
Machiavelli 26869bda30 Core: Fix a boatload of crashes after the mass cleanup... Thanks to Broodwyrm for spotting the culprits 2011-10-08 14:33:53 +02:00
Machiavelli ddfd8e5510 Core: Build fix for linux after code style cleanup 2011-10-08 13:36:27 +02:00
Machiavelli 224c2d3d07 Scripts/Ulduar/Freya: Kill the leftovers of old chest handling 2011-10-08 13:29:48 +02:00
Machiavelli 82dbe7bc17 Core: Fix some build errors after code style cleanup 2011-10-08 13:20:04 +02:00
Machiavelli 9397e7a16f Scripts/Ulduar/Flame Leviathan: Fix crash #3403. Thanks to Shauren for the heads up 2011-10-08 13:17:45 +02:00
Machiavelli 680fce6fd8 Core/GameObjects: Fix infinite respawning of chest gameobjects that are summoned trough spells with ie. SPELL_EFFECT_SUMMON_OBJECT_WILD
Closes #1618
Closes #2486
2011-10-08 13:17:43 +02:00
Machiavelli 7b0bff3f7b Scripts/Ulduar/Freya: Fix chest spawn on death. Note that this needs DB data, both for loot and possibly gobject templates.
Closes #2220
Ref #1928
Ref #1878
2011-10-08 13:17:40 +02:00
Machiavelli 1eb5bf1a65 Scripts/Ulduar/Flame Leviathan: Make both dummy effects apply on the same target, and boost range of spell Pursue to 50000yds to prevent boss reseting during the encounter. 2011-10-07 13:47:03 +02:00
Machiavelli 51edc06200 Rename SQL file from previous pull request to match present date/time. 2011-10-07 09:20:18 +02:00
Machiavelli 8cde717e76 Core/Achievements: Fix gender-specific Matron/Patron title reward.
Closes #1406
2011-09-28 16:27:08 +02:00
Machiavelli d0ce7d2367 Scripts/Ulduar/Razorscale: Fix event starting 2011-09-28 11:49:28 +02:00
Machiavelli 18665d19b4 Core/Scripts: Add an additional parameter to DoZoneInCombat to define the max range to find a target in to engage (instead of hard coded 50 yards). 2011-09-28 11:49:25 +02:00
Machiavelli 6d4a7b3930 Scripts/Ulduar/Flame Leviathan: Use GUID in script instead of pointer 2011-09-27 19:56:45 +02:00
Machiavelli a7d0b62195 Scripts/Ulduar/Flame Leviathan: Properly cast spell Battering Ram. TODO: Fix spell immunity on target vehicles. 2011-09-27 19:41:56 +02:00
Machiavelli 7ec351a79d Scripts/Ulduar/Flame Leviathan: Fix Pursue spell (target selection/filtering, emote, and aggro), and clean up some atrocities in the script. 2011-09-26 20:47:51 +02:00
Machiavelli 911c7ce3cc Scripts/Ulduar/Flame Leviathan: Fix RX-214 Repair-o-matic station.
Note: Due to an aura system bug, the dummy cooldown aura is refreshed every time the trap spell is cast instead of expiring like it should.
2011-09-24 13:13:15 +02:00
Machiavelli 9692be4cbb Scripts/Ulduar/XT-002: Add gameobject handling for XT-002 door and boundary checking during the encounter. 2011-09-23 13:20:43 +02:00
Machiavelli 9ea40a4746 Scripts/Ulduar/Kologarn:
- Fix arm respawn and reinstall events
- Fix possible erratic event timers
- Fix Focused Eyebeams after recent spell system changes
- Fix looting the chest after the encounter
2011-09-22 21:19:26 +02:00