Commit Graph

90 Commits

Author SHA1 Message Date
click
8ea4b32fab Update copyright headers (following the same standard in all files = good)
--HG--
branch : trunk
2010-10-07 12:41:56 +02:00
QAston
caaa77deb2 Core/ScriptSystem:
Add basic code for runtime checks of function calls in AuraScripts
 Make AuraScript::PreventDefaultAction() do not take parameters and add description for the function
 Remove PreventDefaultEffect() from aura script, use PreventDefaultAction() instead
 Unload aura scripts memory on aura delete

--HG--
branch : trunk
2010-10-04 17:44:49 +02:00
Shocker
78803c9f09 Magic numbers cleanup:
- Replace many magic numbers with constants
- Use enum for vehicle flags/seat flags
- Correct structure for ItemRandomSuffixEntry

--HG--
branch : trunk
2010-09-28 08:21:51 +03:00
click
461590832a Core: Generic cleanup (tab2spaces/whitespace removal)
--HG--
branch : trunk
2010-09-25 22:03:57 +02:00
Machiavelli
154d11acc0 Core/DBLayer:
- Fix another pesky linux specific compile error. (Thanks to Derex/Aokromes)
- Fix a typo in an assertion. (Thanks to Derex/Aokromes)
- Add proper zero termination in SetStructuredValue to get rid of memory issues that arose in the last few commits.
- Fix a crash caused by vsprintf´ing std::string in SystemMgr::LoadVersion()

--HG--
branch : trunk
2010-09-25 01:02:40 +02:00
Rat
d2af10618f Core/ConditionMgr: added placeholder for CONDITION_GUID
renamed targetOverride to invoker
removed targetOverride code (had no use)

--HG--
branch : trunk
2010-09-24 18:16:29 +02:00
azazel
eae0e5c822 Scripts/DB_Scripts: massive cleanup of SCRIPT_COMMAND_* related staff
* add union into ScriptInfo structure (thanks NoFantasy for the idea);
* move scripts methods from Map.cpp to new file MapScripts.cpp;
* remove magic numbers and introduce eScriptFlags enumeration.

It's just a beginning and more changes to come. Stay tuned!

--HG--
branch : trunk
2010-09-22 18:13:57 +06:00
Spp
cc3d4cc823 Core/Scripts: Add OnPlayerLogin, OnPlayerLogout, OnPlayerCreate and OnPlayerDelete
--HG--
branch : trunk
2010-09-15 13:23:07 +02:00
Spp
e12c01950a Code style (remove double blank line)
--HG--
branch : trunk
2010-09-14 20:10:48 +02:00
Spp
80051c6d3c Core/Scripts: Add GroupScript class
--HG--
branch : trunk
2010-09-14 16:37:54 +02:00
Spp
8c74993a43 Core: Fix includes in ScriptMgr files
--HG--
branch : trunk
2010-09-14 16:37:40 +02:00
Shocker
4908187578 Core/ScriptMgr: Add hooks for duel phases: OnDuelRequest, OnDuelStart, OnDuelEnd
--HG--
branch : trunk
2010-09-13 01:42:14 +03:00
Machiavelli
a41e99223e Core/DBLayer:
* Rename QueryResult class to ResultSet
* Rename QueryResult_AutoPtr to QueryResult
* Declare ACE refcounted auto pointer for PreparedResultSet class

--HG--
branch : trunk
2010-09-11 21:10:54 +02:00
click
5f6b73fcec Core/ScriptMgr: Remove incorrect assertion in OnGameObjectDestroyed, and clean up code style (fix by Zor)
--HG--
branch : trunk
2010-09-11 16:11:07 +02:00
click
da5569bee6 Core/Scripts: Ensure Example and spell-scripts are loaded at all times in the AddScripts() function
--HG--
branch : trunk
2010-09-06 22:09:55 +02:00
Spp
cdef980af4 Core: Fix some warnings
--HG--
branch : trunk
2010-09-06 15:23:08 +02:00
Shauren
ae2bf64b0a Core: Fixed compile
Core/Scripts: Compile and use spell scripts always, even if SCRIPTS not defined

--HG--
branch : trunk
2010-09-06 11:51:07 +02:00
silinoron
2dae023649 Core/[Mail, WorldPacket]: Pull mail packet handlers out of Mail.cpp into MailHandler.cpp
Core/ScriptSystem: Remove unneeded TODO.

--HG--
branch : trunk
2010-09-04 13:46:01 -07:00
silinoron
0f997162ee Core/ScriptSystem: Refactor ScriptMgr::OnPlayerChat to no longer accept a C-style parameter of type void*.
Instead, use overloaded methods for the different types.

--HG--
branch : trunk
2010-09-04 12:49:39 -07:00
Shauren
0f9fe8dbeb Core/Players: Don't set instanceId to 0 when player is on transport during loading, there CAN be transports inside instances
Core/Scripts: Added waypoint id to OnRelocate transport hook
Core/Scripts: Make use of ZoneScript::GetGameObjectEntry at gameobject creation (makes it possible to override gameobject entries in instances)
Core/Transports: Call InstanceScript::EventInform for transport events
Core/Transports: Use guid from db for transports, not just its entry - adds partial support for instancing them (still cannot use transports table for it, but can spawn manually now)
Scripts/Icecrown Citadel: Fixed crash in Deathbringer Saurfang when event is started by more than one person (can't do this anymore)

Closes isssue #3749.

--HG--
branch : trunk
2010-09-02 10:40:32 +02:00
silinoron
d2c259fe76 Core/ScriptSystem: Add a PlayerScript::OnSpellCast(Player *player, Spell *spell, bool skipCheck) function.
Requested by Zor.

--HG--
branch : trunk
2010-09-03 19:58:16 -07:00
Machiavelli
0117af4c37 Core/DBLayer:
- Implement deriviate classes of MySQLConnection for every database type (world, realm, characters)
- Make DatabaseWorkerPool templatized and use the above mentioned classes as parameter
- Implementation of the new types in code
(This is in preparation of prepared statement interface)

--HG--
branch : trunk
2010-09-02 17:47:50 +02:00
Shauren
6c3b39ac01 Scripts/Icecrown Citadel: Added Festergut script, thx Cromash for providing the base and Cyrax for sniffs
Scripts/Icecrown Citadel: Added Professor Putricide script handling ONLY Festergut related events

--HG--
branch : trunk
2010-08-30 11:36:15 +02:00
Spp
405f312918 Core: Fix more warnings
--HG--
branch : trunk
2010-08-30 15:25:15 +02:00
azazel
d952c90754 Spell Scripts:
* add new file spell_item.cpp for spells used by items (but not by quests)
* move some dummy effects of generic spells to scripts
* implement spell for quest 12937 Relief for the Fallen. Closes issue #3070

--HG--
branch : trunk
2010-08-29 22:40:23 +06:00
Liberate
f67441b863 Fixes gossip scripts or points of interests of npc's with a Scriptname assigned to them.
This fixes guards in Major cities.
Thanks to Aokromes for testing.
Thanks to click for converting all the scripts to work with this change.

--HG--
branch : trunk
2010-08-29 00:57:51 +02:00
Shauren
7fcf55dfcc Scripts/Icecrown Citadel: Added Teleporter script
Scripts/Icecrown Citadel: Implemented achievements for Deathbringer Saurfang

--HG--
branch : trunk
2010-08-26 22:18:17 +02:00
Shauren
73d3f210a9 Scripts/Icecrown Citadel: Add script for Deathbringer Saurfang (only missing alliance outro due to need of spawning and moving a transport)
Scripts/Icecrown Citadel: Corrected Lord Marrowgar, should no longer target tanks with Bone Spike Graveyard, his Coldflame should now spread properly
Core/Scripts: Moved Lady Deathwhisper Mana Barrier handler to scripts
Core/Scripts: Allow AuraScript to prevent default effects by effect index
Core/Scripts: Added Is25ManRaid() method to ScriptedAI, obviously used to check if raid is 25man
Core/Achievements: Pass m_caster to UpdateAchievementCriteria for ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET

--HG--
branch : trunk
2010-08-21 20:50:38 +02:00
azazel
fd5ab90170 Scripts: fix area trigger scripts. Thanks yavi. Closes issue #3634
--HG--
branch : trunk
2010-08-26 16:22:59 +06:00
Shocker
91ebad0016 * Add support for quest 1393 (Galen's Escape), original code by przemratajczak, port by McBitter, closes issue 3463
* Fix typo in AuctionHouseHandler, thanks GriffonHeart, fixes issue 3609
* Forgotten thanks

--HG--
branch : trunk
2010-08-25 21:23:28 +03:00
silinoron
34384a3832 Spell 62124 should allow critical hits.
Based on patch by Toni.Shocker (yes, again).
Fixes issue #3554
Also get rid of GuildScript in TODO, as it already exists.

--HG--
branch : trunk
2010-08-23 15:51:34 -07:00
QAston
07a3a1254b *Add AuraScript class for scripting aura objects - scripts are registered same way as SpellScripts, bound to SpellScriptNames table. For more details see example_spell.cpp and SpellScript.h
*Rename SpellHandlerScript to SpellScriptLoader, EffectHandlerFn to SpellEffectFn, HitHandlerFn to SpellHitFn, SpellScript::EffectHandlers to SpellScript::OnEffect, these changes were neccesary to prevent namespace collisions, happily you can solve these by simple find and replace
*Make spells 66244 and 5581 example scripts.

--HG--
branch : trunk
2010-08-24 00:10:49 +02:00
John Holiver
3fb1c08d20 Core/Script/Spells: Trial of the Crusader
* Keep in mind that this is a WIP although is extremely playable as it is.
* Known bugs are writen at the header of each file.
* If u know how to correctly solve any of those bugs or found a new bug, please report and, if you may, provide a fix for us to review.
* I'd like to thank all Trinity Community (in special, Shauren, QAston, Bio, Josh), rsa from SD2 for providing the base, all the ppl that helped me test and review so many many times.
* I personally have been working on this code since TC was near rev 8000 so i will take a break from it to work on other stuff (specially cause most of the bugs i was unable to solve alone).
* I'd like to strongly encourage others to provide the improvements that this instance need to become perfect.
* FInally, this commit might have something missing... i'll recheck as soon as i wake up tomorrow morning.

--HG--
branch : trunk
2010-08-22 05:55:54 -03:00
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