Commit Graph
47 Commits
Author SHA1 Message Date
XTZGZoReX 909e332579 * Rename: BattleGround -> Battleground.
--HG--
branch : trunk
2010-08-08 04:37:24 +02:00
XTZGZoReX 87483be1e7 * Rename some more functions for consistency.
* Added missing call to FormulaScript::OnZeroDifferenceCalculation.
* Pass GridMap pointer into MapScript::OnLoadGridMap/OnUnloadGridMap.
* Fire map hooks for all map types, not only instances.

--HG--
branch : trunk
2010-08-07 13:07:18 +02:00
XTZGZoReX 946adf469c *** New core <-> script library interface - complete rewrite of the old one.
* Removed the misdesigned on_events script/hooks.
* Lots of related cleanups and assertions.
* The interface is now fully object-oriented.
** Scripts no longer use function pointers.
** Scripts no longer use the general-purpose Script struct for everything.
** Script types are split into separate classes which must be inherited depending on what functionality is desired.
* Several script types have been added to allow extending functionality in a code-only manner (some script types require
  assignment in the recently added ScriptName columns in the database, though).
** SpellHandlerScript: Wrapper around spell scripts (returns new SpellScript objects (`spell_script_names`.`ScriptName`)).
** ServerScript: Allows scripting events that occur in the network layer.
** WorldScript: Allows scripting certain world-global events.
** FormulaScript: Allows hooking and interfering with core formulas.
** *MapScript: Allows hooking different map types (including world, instance, and battleground maps (`instance_template`.`ScriptName`)).
** ItemScript: Allows scripting of items (like the old interface (`item_template`.`ScriptName`)).
** CreatureScript: Allows scripting of creatures/AI (like the old interface (`creature_template`.`ScriptName`)).
** GameObjectScript: Allows scripting of gameobjects (like the old interface (`gameobject_template`.`ScriptName`)).
** AreaTriggerScript: Allows scripting triggered area triggers (like the old interface (`areatrigger_scripts`.`ScriptName`)).
** OutdoorPvPScript: Script which should return OutdoorPvP objects for use by OutdoorPvPMgr (`outdoorpvp_template`.`ScriptName`).
** CommandScript: Allows extending the in-core command table.
** WeatherScript: Allows scripting of weather changes (`game_weather`.`ScriptName`).
** AuctionHouseScript: Allows scripting of auction events.
** ConditionScript: Allows scripting of conditions (`conditions`.`ScriptName`).
** DynamicObjectScript: Allows scripting of dynamicobjects.
** TransportScript: Allows scripting of transport events (`transports`.`ScriptName`).
* OutdoorPvP objects are now created through scripts. This effectively means that they'll need to be moved to scripts
  before the they're functional again.
* The whole idea with this new interface is to allow expanding core functionality without touching core code. If further
  hooks are needed to expand functionality of the core, let us know; we'll add them, if we agree that it is appropriate
  to do so.
*** NOTE: The scripts project will _not_ build before it has been adapted to the new interface.
*** Thanks to everyone who helped out with related preparations and suggestions!

--HG--
branch : trunk
2010-08-06 19:23:43 +02:00
Shauren 9b22ad006b Removed unused access_id from instance_template table (obsolete since access_requirement rewrite)
Fixed build issues with my previous commit

--HG--
branch : trunk
2010-08-06 13:12:18 +02:00
click 0caaa3e478 Revert changes done in r0074e32c2f and r4d86e4199a - fixes buildissues ( if()+reinterpret_cast is faster than dynamic_casts btw )
--HG--
branch : trunk
2010-08-06 03:00:39 +02:00
azazel f9a51dc214 * Corpse related cleanup (author: Hunuza)
* Avoid saving of the corpse in arenas (author: VladimirMangos)

--HG--
branch : trunk
2010-08-06 00:15:29 +06:00
Shauren 4773aad26b Make use of new ToItem() casts
--HG--
branch : trunk
2010-08-05 18:43:30 +02:00
azazel 885fc368fd * Implement item limit category (based on changes by VladimirMangos)
* Additional check for HandleAutoBankItemOpcode (thanks to VladimitMangos)
* Properly show empty vendor list for empty item list (author: a1ien)
* More stricted checks for store operations (thanks to VladimirMangos)
* Prevent autostoring of not empty bags (thanks to L1ghtGu4rd)

Changes need testing. Please post bugs on our tracker.

--HG--
branch : trunk
2010-08-05 22:08:07 +06:00
azazel f3eab91102 * Convert SCRIPT_COMMAND_* defines to enum. Make comments for values up-to-date.
* Cleanup ScriptsProcess method. Move repeating parts of code to inline helper methods.
* Improve SCRIPT_COMMAND_CAST_SPELL command. You can specify triggered attribute when datalong2 = 4 by making dataint negative.
* Improve SCRIPT_COMMAND_KILL command. Now, if source is not a creature, it tries to use target object instead.

--HG--
branch : trunk
2010-08-05 00:55:10 +06:00
silinoron 71b1c781e3 Add basic support for NPCs on transports; DB data required.
Currently no support for combat while the transport is in motion.
Based on a patch by Socolin.
Fixes issue #168

--HG--
branch : trunk
2010-07-30 21:54:46 -07:00
QAston e5881d9590 *Cleanup in single target auras (thanks to JuliuSZS some useable debug info)
*Add ToInstanceMap() and ToMapInstanced() typecast functions and CAST_INST macro to use in scripts.

--HG--
branch : trunk
2010-07-31 01:41:32 +02:00
QAston 48b360097c *use ASSERT macro instead of regular assert for better output.
--HG--
branch : trunk
2010-07-30 20:04:28 +02:00
QAston c44b601ac7 *Allow some spell effects to target units not in caster's map - fixes SPELL_EFFECT_SUMMON_PLAYER
--HG--
branch : trunk
2010-07-29 19:48:40 +02:00
Shauren ade1bbdd62 Remade access_requirement table, now each difficulty mode for each instance has its own entry (for future Dungeon Finder development)
Added completed achievement as new requirement type
Removed obsolete access_id from areatrigger_teleport table
Implemented automatic downscaling of raid difficulty when requested mode does not exist
Changed dungeon_difficulty in characters table to instance_mode_mask saving both dungeon and raid difficulty in form (dungeon diff | raid diff << 4)

--HG--
branch : trunk
2010-07-29 18:11:41 +02:00
click 3296a944e7 Convert to using ACE for reading configurationfiles, and remove dependency on dotconfpp configuration library and related files
(patch by astellar - and a thankyou to vladimir for being a russian teddybear)

--HG--
branch : trunk
2010-07-29 01:22:45 +02:00
QAston e232c0e235 *Cleanup in ObjectAccessor - this should fix some crashes
--HG--
branch : trunk
2010-07-28 00:08:21 +02:00
Shauren 4ea385ec50 Small fix for previous revision
--HG--
branch : trunk
2010-07-27 19:28:02 +02:00
Shauren de2f63bcfb Added possibility to cast spells with triggered flag using SCRIPT_COMMAND_CAST_SPELL, original patch by Az@zel
Fixed SCRIPT_COMMAND_CAST_SPELL for casting on creatures with selected entry

--HG--
branch : trunk
2010-07-27 19:18:44 +02:00
click e5b7f6ad01 Add option for search distance to getHeight() functions and make Creature::FallGround() use VMaps properly. (Fix by Lynx3d)
This finally prevents flying creatures from falling to infinity (basically instantly diappearing) in several instances, aswell
as prevent creatures from falling inside larger solid object around the world.

--HG--
branch : trunk
2010-07-27 17:29:33 +02:00
click 07c1d011d4 Reinstate ITEM_FLAGS_NO_EQUIP_COOLDOWN implementation and the serverside checks for ITEM_FLAGS_INDESTRUCTIBLE (with prototypes this time)
--HG--
branch : trunk
2010-07-11 23:53:48 +02:00
click 307bf7f73e Backed out changeset 6670e64b2d92
--HG--
branch : trunk
2010-07-11 22:33:18 +02:00
click 66547c5fbd Implement ITEM_FLAGS_NO_EQUIP_COOLDOWN support + add serverside checks for ITEM_FLAGS_INDESTRUCTIBLE (code by Vladimir)
--HG--
branch : trunk
2010-07-11 22:22:49 +02:00
Tartalo 9182ab6ead Uncomment the assert that I commented some revs ago on InstanceMap::CanEnter()
--HG--
branch : trunk
2010-07-09 13:23:22 +02:00
Tartalo e58ca4d363 Coment annoying assert that nobody knows why is there
--HG--
branch : trunk
2010-07-07 22:30:38 +02:00
Tartalo 7969723527 Deny access to instances if other party/user with the same perm id is inside
Fixes #2844

--HG--
branch : trunk
2010-07-07 22:22:16 +02:00
Shauren 1740bace3a Initialize a pointer with NULL value to prevent possible crashes.
--HG--
branch : trunk
2010-06-30 14:48:38 +02:00
Tartalo aa9b52c67a bypass Map::CanEnter() checks on login (fixes a crash)
Need info about this bypass is exploitable or not

--HG--
branch : trunk
2010-06-29 15:41:39 +02:00
Tartalo bb6d8a7e67 MapManager uses proper Map::CanEnter() function instead of rewriting the same
checks (we could move more code to there)

--HG--
branch : trunk
2010-06-28 20:31:20 +02:00
click 988467467c Properly initialize variable in WorldObject::PlayDirectSound()
Fixes issue 2838

--HG--
branch : trunk
2010-06-28 14:40:57 +02:00
Tartalo 57687c5c40 Allow GMs to bypass instance entry requirements
--HG--
branch : trunk
2010-06-26 14:06:29 +02:00
Tartalo 26da69a544 Fix some deprecated checks on MapManager::CanPlayerEnter()
--HG--
branch : trunk
2010-06-26 13:32:24 +02:00
Machiavelli 0f7657b68c Get rid of Trinity Singleton and Threading patterns and replace them with ACE_Singletons and ACE_GUARD_x macro´s with ACE_Thread_Mutex´es respectively.
Also get rid of unused CountedReference class that used Trinity threading pattern.

--HG--
branch : trunk
2010-06-25 00:18:01 +02:00
Xanadu a6b9e716a6 Fixed the compile.
--HG--
branch : trunk
2010-06-24 23:59:42 +02:00
click 0b2dad9c97 Remove a possible NaN-value in WorldObject::HasInArc (thanks to arrai)
+ do some hack'n'slash-work on the CMakeLists with my trusted axe ( I just LOVE being a viking - I get to wield an axe for free!)

--HG--
branch : trunk
2010-06-24 17:32:50 +02:00
Machiavelli 95ddfbd9e2 Remove some redundant explicit NULL checks for pointers before ´delete´ or ´delete[]´ calls since this check is done implicitly when deleting.
Also fixes a memory leak in .reload creature_template command

--HG--
branch : trunk
2010-06-21 23:20:58 +02:00
Machiavelli e6d0fa20cd Typo spotted by glizzard.ad
--HG--
branch : trunk
2010-06-13 14:24:44 +02:00
Machiavelli b6621ddf90 Add some safer casting conditions in Map::ScriptsProcess.
Fixes issue #2676
Fixes issue #2553

--HG--
branch : trunk
2010-06-13 13:29:31 +02:00
click 39e793b2bd Add extractors and assembler - EXTRACTION OF NEW MAPS IS REQUIRED!
This will allow for easier testing of functionality between different
projects, ie. one set of maps/vmaps instead of 2 (saves space, saves
time and saves us some confusion).

--HG--
branch : trunk
2010-06-11 05:01:30 +02:00
Brian dee7fd1382 * Remove more not needed relative paths in include files
--HG--
branch : trunk
2010-06-08 16:13:55 -06:00
click 7561bab716 Change around some more headers to adhere to new strucutre and namebase
--HG--
branch : trunk
2010-06-08 23:44:55 +02:00
Brian b76b6700ed * Linux compile with and without PCH fixed
* Script library compile fixed
* --todo: fix all scripts themselves :)

--HG--
branch : trunk
2010-06-08 13:05:47 -06:00
Brian 6650068b5e * Nearly done with fixing the Linux build.
* Thanks to samccstudios for saving me some time with the Outlands scripts.

--HG--
branch : trunk
2010-06-07 15:59:21 -06:00
Brian d9127cdee7 * Reverted to the old Mersenne Twister till the new one can be properly added
--HG--
branch : trunk
2010-06-07 14:13:56 -06:00
Brian 15f8bbe9ca * More cleanup
--HG--
branch : trunk
2010-06-07 12:08:15 -06:00
Brian 2435b4152d * Nope still won't build yet
--HG--
branch : trunk
2010-06-07 09:04:14 -06:00
XTZGZoReX 1170c67a70 * Move some grid stuff.
--HG--
branch : trunk
2010-06-06 23:32:59 +02:00
XTZGZoReX 62200e8d02 * Even more restructuring of the game library.
--HG--
branch : trunk
2010-06-06 22:55:56 +02:00