Commit Graph

57 Commits

Author SHA1 Message Date
Spp
572f7bbd1d Core: Remove "may be used uninitialized in this function", "unused parameter ‘xxx’" and "'xxx' defined but not used" warnings
--HG--
branch : trunk
2010-08-21 23:08:54 +02:00
Spp
c3343638cb Core: Remove lots warnings:
- All "'xxx' will be initialized after 'yyy' when initialized here"
- Some "unused variable"
- Some "enumeration value 'xxx' not handled in switch"

--HG--
branch : trunk
2010-08-21 20:08:47 +02:00
Shauren
d7814e88d8 Scripts/Icecrown Citadel: Added Lady Deathwhisper script, huge thanks to wowgargamel for script parts, timers and sniffs
Core/Scripts: Added GetPhaseMask() method to EventMap

--HG--
branch : trunk
2010-08-21 11:09:58 +02:00
Shauren
71a5320eda Scripts: Added script for Lord Marrowgar
Added base script for Icecrown Citadel instance

--HG--
branch : trunk
2010-08-18 17:19:47 +02:00
azazel
66fcd52106 Add more methods to SpellScript.
Spells cleanup: move spells from the core to scripts.

* Shaman spells: 39610 Mana Tide Totem, 1535 Fire Nova (and ranks)
* Death Knight spells: 55090 Scourge Strike (and ranks), 49158 Corpse Explosion (and ranks), 50524 Runic Power Feed
* Druid spells: 54846 Glyph of Starfire
* Warlock spells: 6201 Create Healthstone (and ranks), 47422 Everlasting Affliction, 47193 Demonic Empowerment, 63521 Guarded by The Light
* Hunter spells: 37506 Scatter Shot, 53412 Invigoration, 53209 Chimera Shot
* Quest spells: 45449 Arcane Prisoner Rescue (quest 11587), 46023 The Ultrasonic Screwdriver (quest 11730). Closes issue #3068

Clean old code for hunter's Heart of the Phoenix, move script effect of hunter's Master's Call to corresponding script.
Move DK's Hungering Cold to spell_scripts table (needs DB support)

--HG--
branch : trunk
2010-08-18 00:20:23 +06:00
Machiavelli
96144752be Return proper default quest status from ScriptMgr::GetDialogStatus if a creature/gameobject script was present but GetDialogStatus was not overridden.
This should fix problems with creature/gameobject quest givers not giving appropriate quest (update)s

--HG--
branch : trunk
2010-08-15 14:00:51 +02:00
silinoron
f3b93df6b7 Clear player scripts and guild scripts on ScriptMgr deletion.
--HG--
branch : trunk
2010-08-14 12:44:54 -07:00
silinoron
791a45768f Add in a forgotten change from ra5af596979e4 .
--HG--
branch : trunk
2010-08-14 12:42:05 -07:00
silinoron
8d0a058411 Add a GuildScript class with a handful of hooks.
--HG--
branch : trunk
2010-08-14 12:17:05 -07:00
Machiavelli
d201cdd72c Fix ConditionScript, AreatriggerScript and AuctionHouseScript hook functions.
--HG--
branch : trunk
2010-08-14 11:00:13 +02:00
azazel
ed08bedc6e * Modify PlayerScript::OnChat hook. Now it takes one optional parameter of type void *. Value of this parameter depends on chat type.
* Modify chat and emote hook in PlayerScript to take Player parameter insted on WorldSession (this is player script, isn't it?)
* Move calls of OnChat hooks after validation of parameters and before actual call to chat methods. It's more logical because otherwise it will be necessary to repeat validation inside hooks.
* Make use of new PlayeScript hooks. Move chat logging logic into separate script.
* Add one path to scripts CMakeLists to make ChatLogScript happy.

--HG--
branch : trunk
2010-08-12 22:33:45 +06:00
silinoron
c7b48c1ca9 Add PlayerScript hooks:
* OnMoneyChanged
* OnGiveXP
* OnReputationChange
* OnChat
* OnEmote
* OnTextEmote

--HG--
branch : trunk
2010-08-11 22:53:31 -07:00
silinoron
ce29cfa7f7 Fixed linker errors caused by my foolishness.
--HG--
branch : trunk
2010-08-11 21:24:09 -07:00
silinoron
0963cb3aea Implement a PlayerScript class with a handful of new hooks:
* OnPVPKill
* OnCreatureKill
* OnPlayerKilledByCreature
* OnPlayerLevelChanged
* OnPlayerFreeTalentPointsChanged
* OnPlayerTalentsReset
* More hooks may be added in the future

--HG--
branch : trunk
2010-08-11 19:52:58 -07:00
XTZGZoReX
cecb8117d5 Aaand, finally, scripting is working. Thanks to Derex for helping with debugging/suggestions.
--HG--
branch : trunk
2010-08-09 16:07:03 -05:00
XTZGZoReX
70fc93da7b * Get rid of virtual function calls completely, seeing as they weren't necessary. Thanks to Ge0rG and Derex for enlightening me about this.....
* Also add map ID for EoE instance script (thanks Silinoron).

--HG--
branch : trunk
2010-08-09 19:53:21 +02:00
XTZGZoReX
a038772b3e * Remove Player::SetSession (obsolete and dangerous function).
* Speed up map script searches (avoid redundant loops).
* Fix linking errors for ScriptObject::RegisterSelf.

--HG--
branch : trunk
extra : rebase_source : 2ba48fdab4e119c6de7fe64e47c5b8115fdac1b5
2010-08-09 11:07:23 +02:00
Shauren
ede953500b Fixed line endings in 9237_world_outdoorpvp_template.sql
Remove no longer existing scripts from ScriptLoader

--HG--
branch : trunk
2010-08-08 22:57:07 +02:00
click
1f80c7b3c0 Sourcefile sleanups -> tabs to spaces, remove whitespace - also update the cleanupscripts very slightly
--HG--
branch : trunk
2010-08-08 19:45:53 +02:00
azazel
590199d8e1 * Rename InstanceData to InstanceScript
* Rename *mgr to their new names in scripts project
* Mass convert all the scripts (NEEDS THOROUGH TESTING, because it was done automatically) Please, report bugs on issue tracker.

--HG--
branch : trunk
rename : src/server/game/Instances/InstanceData.cpp => src/server/game/Instances/InstanceScript.cpp
rename : src/server/game/Instances/InstanceData.h => src/server/game/Instances/InstanceScript.h
2010-08-08 22:54:58 +06:00
XTZGZoReX
9083271a2f * Some singleton renames for consistency:
accmgr -> AccountMgr
objmgr -> ObjectMgr
auctionmgr -> sAuctionMgr
spellmgr -> sSpellMgr
CreatureEAI_Mgr -> sEventAIMgr
achievementmgr -> sAchievementMgr
gameeventmgr -> sGameEventMgr
sInstanceSaveManager -> sInstanceSaveMgr
poolhandler -> sPoolMgr

--HG--
branch : trunk
2010-08-08 05:25:45 +02:00
XTZGZoReX
909e332579 * Rename: BattleGround -> Battleground.
--HG--
branch : trunk
2010-08-08 04:37:24 +02:00
Shauren
b56cfe03d5 Implemented ACHIEVEMENT_CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE
Added support for "in single battleground" and "without dying" requirement to battleground achievements
Add examples of scripting achievement (School of Hard Knocks, Storm Glory)

--HG--
branch : trunk
2010-08-07 18:31:06 +02:00
XTZGZoReX
9794e99d8a * Some fixes and cleanups.
--HG--
branch : trunk
2010-08-07 17:58:45 +02:00
Shauren
431301c1b2 Added support for scripting achievement criteria checks using ACHIEVEMENT_CRITERIA_DATA_TYPE_SCRIPT (11)
--HG--
branch : trunk
2010-08-07 16:48:34 +02:00
XTZGZoReX
ed4e49a4e7 * OutdoorPvP implementations now reside in the script library.
--HG--
branch : trunk
rename : src/server/game/OutdoorPvP/Zones/OutdoorPvPEP.cpp => src/server/scripts/OutdoorPvP/OutdoorPvPEP.cpp
rename : src/server/game/OutdoorPvP/Zones/OutdoorPvPEP.h => src/server/scripts/OutdoorPvP/OutdoorPvPEP.h
rename : src/server/game/OutdoorPvP/Zones/OutdoorPvPHP.cpp => src/server/scripts/OutdoorPvP/OutdoorPvPHP.cpp
rename : src/server/game/OutdoorPvP/Zones/OutdoorPvPHP.h => src/server/scripts/OutdoorPvP/OutdoorPvPHP.h
rename : src/server/game/OutdoorPvP/Zones/OutdoorPvPNA.cpp => src/server/scripts/OutdoorPvP/OutdoorPvPNA.cpp
rename : src/server/game/OutdoorPvP/Zones/OutdoorPvPNA.h => src/server/scripts/OutdoorPvP/OutdoorPvPNA.h
rename : src/server/game/OutdoorPvP/Zones/OutdoorPvPSI.cpp => src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp
rename : src/server/game/OutdoorPvP/Zones/OutdoorPvPSI.h => src/server/scripts/OutdoorPvP/OutdoorPvPSI.h
rename : src/server/game/OutdoorPvP/Zones/OutdoorPvPTF.cpp => src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp
rename : src/server/game/OutdoorPvP/Zones/OutdoorPvPTF.h => src/server/scripts/OutdoorPvP/OutdoorPvPTF.h
rename : src/server/game/OutdoorPvP/Zones/OutdoorPvPZM.cpp => src/server/scripts/OutdoorPvP/OutdoorPvPZM.cpp
rename : src/server/game/OutdoorPvP/Zones/OutdoorPvPZM.h => src/server/scripts/OutdoorPvP/OutdoorPvPZM.h
2010-08-07 16:38:22 +02:00
click
b0890c32fc Add #ifdef SCRIPTS to ScriptLoader-functions when using with -DSCRIPTS=0
--HG--
branch : trunk
2010-08-07 15:49:28 +02:00
XTZGZoReX
14aeb09945 * This should help with the Linux build; thanks to Machiavelli/click.
* VehicleScript is now bound to the database (`creature_template`.`ScriptName`) and only works for creature vehicles.

--HG--
branch : trunk
2010-08-07 15:26:24 +02:00
click
f296addc47 Correction on previous commit: use uint32 and not simple ints
--HG--
branch : trunk
2010-08-07 15:04:28 +02:00
click
f2ddd5d067 Force script-template to build nicely under GCC (thanks to Machiavelli and Zor)
--HG--
branch : trunk
2010-08-07 14:57:54 +02:00
XTZGZoReX
f1c571a79e * Added new World::OnStartup/OnShutdown hooks.
--HG--
branch : trunk
2010-08-07 14:30:10 +02:00
XTZGZoReX
360e028331 * Add new TransportScript::OnRelocate hook.
* TransportScript::OnUpdate is now called on every tick, not just on movement update.

--HG--
branch : trunk
2010-08-07 14:17:32 +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
silinoron
bef8372fe2 Rename ScriptMgr::OnRemoveAuction to ScriptMgr:OnAuctionRemove for consistency. Thanks Paradox for pointing it out.
--HG--
branch : trunk
2010-08-06 21:49:39 -07:00
XTZGZoReX
c2ca2e1c98 * Converted example scripts to the new format.
--HG--
branch : trunk
2010-08-07 00:06:55 +02:00
XTZGZoReX
0993b1fcb5 * Fixes for Linux build.
--HG--
branch : trunk
2010-08-06 23:21:58 +02:00
XTZGZoReX
731eaf72cb * Example on AI script conversion (and minor correction in CreatureScript).
--HG--
branch : trunk
2010-08-06 20:42:42 +02:00
XTZGZoReX
8a22c60150 * Err...
--HG--
branch : trunk
2010-08-06 20:07:04 +02:00
XTZGZoReX
c9877c04dd * Separated script loading into multiple functions.
* Added function AddCustomScripts() - this is where all non-TC scripts should be added.

--HG--
branch : trunk
2010-08-06 19:57:33 +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
XTZGZoReX
a0b5921bfa * (Very) minor cleanups.
--HG--
branch : trunk
2010-08-04 00:24:04 +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
click
bfc6dec072 Cut away DO_*-parts from buildsystem and specific files checking for it.
--HG--
branch : trunk
2010-07-27 05:40:21 +02:00
QAston
cdd56dc2b6 *Really fix *nix build. Thanks to Visagalis for testing.
--HG--
branch : trunk
2010-07-25 00:36:32 +02:00
Brian
356cd25e67 * Added new specialflag in quest_template for auto-accept quests.
* SpecialFlags|4
* After much research it was determined that blizz does this serverside.

--HG--
branch : trunk
2010-07-24 16:30:48 -06:00
QAston
0df91a8f9e *Remove accidently added file and fix build on some *nix configurations.
--HG--
branch : trunk
2010-07-24 23:58:23 +02:00
QAston
2352fc7cdf *Add base scripting interfce for spells - thanks to Brian for help in making it compile with GCC.
*Add hook for handling spell effects in new scripting system.

--HG--
branch : trunk
2010-07-24 22:41:42 +02:00
click
0a5a30a592 Minor cleanups to accomodate CMake-usage on Windows
--HG--
branch : trunk
2010-06-30 18:46:55 +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
ffaffe3fd7 * Renamed several VS projects and the executables they produce to reflect the new naming convention.
* Cleaned up some useless and redundant preprocessor definitions.
* Fixed the win build so that it correctly uses the mysql lib it built from the sources.
* Note that you still need to use 8615_mysql_openssl_libs.zip for the OpenSSL binaries.
* Also note that Win x64 build from the existing VS files is still fubar (mysql lib...).

--HG--
branch : trunk
2010-06-23 01:47:41 +02:00