Commit Graph

546 Commits

Author SHA1 Message Date
ForesterDev
abea8bf4cb Core/Defines: define faction templates and replace magic numbers from scripts 2017-05-23 12:30:27 +02:00
ccrs
17579f8d91 Core/Creature: drop method SetPosition
eeeevil, use UpdatePosition. It was there just for old scripts compatibility.
2017-05-02 14:18:42 +02:00
ariel-
f913f3bb89 Core/Scripts: unified scripted gossip/quest api
- Changed self-accessor on GameObjectAI to "me", like UnitAI
- Moved all related functions to AI, now Unit and GameObject have the same function names with identical behaviour
- Remove "OnUpdate" from CreatureScript/GameObjectScript, was never used and we already have AI Update method
- Quest methods no longer return a bool, the return value was used to call the AI version if the ScriptMgr one returned false
- Implemented GameObjectAI::Destroyed hook (was never called), implemented Damaged method
- Rename OnStateChanged to OnLootStateChanged to reflect when it's really called, and created a new hook OnStateChanged that only gets called on GOState change
- Since the functions are now only getting called from AI, made GetAI methods full virtual. (CanSpawn method is anyways going to be used on creatures with AI)
2017-05-01 18:19:36 -03:00
ariel-
4c4dca6d69 Core/Misc: camelize GetFaction/SetFaction properly 2017-04-28 18:37:38 -03:00
ccrs
229444b74a Core/Misc: cleanup SetInFront uses
Set in front modifies only the serverside orientation, use with care.
Also check for current focus to prevent things like incorrect damage on casting creatures (ie dragon breath direction change in your face because of some taunt missclick)
2017-04-27 15:34:01 +02:00
ccrs
c7a57e2a09 Core/Unit: 2170541a51 followup
use true as default value since pretty much all the script calls will expect that
2017-04-27 14:55:06 +02:00
tkrokli
6cc267d909 Core/Scripts: Willix the Importer - $n in aggro text
* In the existing core script, Willix the Importer in Razorfen Kraul says
"Help! Get this $n off of me!" (showing the $n part in his SAY text)
instead of naming the attacker when using his 'SAY_AGGRO1' creature_text.

* With this commit change, unit target is no longer missing for Talk,
making Willix name the attacking unit when he shouts for help.
2017-04-23 01:15:00 +02:00
Gacko
e90757f763 Fix non-PCH build.
Even on 3.3.5. What's PCH for?
2017-04-15 12:43:19 +02:00
tkrokli
f6f36be004 Scripts: minimize duplicated enum names in header files (#19377)
* Scripts: Minimize duplicated enum names in header files

This reduces the number of cache resets with the Zapcc compiler

- Standard followed is instance/raid TLA + DataTypes/CreaturesIds/etc
- Partial cherry-pick of master commit 7eb4512eee
- Removed unused defines in sunken_temple.h (the core scripts using these have been moved to SAI)
2017-03-29 10:06:06 +02:00
xinef1
e1f14215d8 Core/Creatures: Various fixes for creatures, regarding combat conditions, despawning, and few others (#18998)
* Made some changes to kiting mechanics, simplified code and made taunt auras prolong combat no matter the distance from the spawn
Unified some creature despawning code, removed some brutal direct calls in scripts
Don't play death anim on forced despawn
Removed some redundant visibility changes on creature despawn
Fixed possible problem with pet initializing template info from difficulty greater than normal
Properly keep UNIT_FLAG_IN_COMBAT on UpdateEntry call
Moved RegenerateMana function to general Regenerate(Power) function
Fixed increased health regeneration from polymorph for pets
Implemented CREATURE_TYPE_FLAG_GHOST_VISIBLE, those creatures will be properly seen when player is dead also
Removed hackfix from Gaeriyan and Franclorn Forgewright, fixed properly
Simplified ForcedRespawnTime code in ForcedDespawn
Do not allow to assist unit while evading or when enemy is evading
Do not allow to attack other units when evading or when the unit is evading
Corrected distance checking code before creature is allowed to evade, should fix some common problems
Properly return summon position for summoned creatures as their respawn position
Properly stop all moving units on gossip hello, no matter their npc flags
2017-02-05 15:39:22 +01:00
tkrokli
6a51a88767 Update Copyright notice for 2017
Happy new year!
2017-01-02 19:52:45 +01:00
Killyana
10f4138f6c Merge pull request #18702 from Rushor/peon
Scripts/Quest: Work Work! Move Lazy Peon script to SAI
2017-01-01 15:05:06 +01:00
Rushor
bee2975e4b Scripts/Quest: Work Work! Move Lazy Peon script to SAI 2017-01-01 14:22:58 +01:00
Keader
ca21779864 Core/Scripts: Black Temple misc fixes
Closes #18176
* Implemented faction change of Ashtongues when Shade of Akama dies
* Moved factions to black_temple.h
* Removed explicit from EnslavedSoulEvent (Reliquary of Souls)
* Fixed a typo in Skeram Script (followup 5f44890049)
* Fixed spell Shadow Inferno (Illidari Nightlord)
2016-12-27 22:05:06 -03:00
Keader
5f44890049 Core/Scripts: Added missing spells in Skeram (#18486) 2016-12-27 17:36:32 -03:00
Shauren
618cf0e1c2 Core/Units: Cleanup hardcoded magic numbers for byte field offsets
(cherry picked from commit ac1dc758b9)
2016-12-15 08:16:01 -03:00
ariel-
5b56c94e6d Core/Spell: restore old proc system behaviour on auras self proc.
- Use Spell::m_triggeredByAuraSpell and compare against trigger aura, it requires scripts to set triggeredByAura parameter.
- Fixed existing scripts lacking it

DB/Spell: Anger Capacitor (Tiny Abomination in a Jar) proc

Closes #18269
2016-11-19 03:05:44 -03:00
tkrokli
86759c4537 [3.3.5] Core/Scripts: move npc_braug_dimspirit to SAI (#17853)
Additional change: The answers have been changed from containing only names
to include the text ` is my answer.` from the matching lines in `broadcast_text`.

- added DB creature_text entries for Braug Dimspirit
- added DB gossip_menu_option entries for this NPC
- implemented NPC `Say` line in reply to the wrong answers
- avoiding gossip exploits by turning off npcflags during talk
- added conditions for showing gossip depending on quest status
- removed deprecated SD comments in zone_stonetalon_mountains.cpp
2016-10-15 02:16:40 +02:00
tkrokli
028a7b8e45 Core/Scripts: move npc_saat to DB (#17813)
The core script only contains gossip handling + conditions.
- remove script from file the_black_morass.cpp
- thereby removing 1 line of hardcoded text
- remove redundant SD2 comments in header
- add SAI, gossip and conditions to DB
2016-10-15 02:13:37 +02:00
ariel-
2ff855054f Core/Scripts: Convert spells to new proc system
- Converted Unit::HandleDummyAuraProc function to AuraScripts
  * Extra: DMC: Madness now uses DB texts. yay!
  * Extra: improvements on Imp. Spell Reflection (range and max targets, filter caster with conditions)

- Fixed Glyph of Succubus. (Closes #6599)

- Changed old (not-blizz) behavior of Vampiric Embrace:
  * Before: party heal affected the priest too and self heal was reduced by that amount to not over-heal
  * Now: self heal amount not affected, rather filter the priest out of the party heal using conditions :)

- Solve bug in AQ 3p set bonus, it should only trigger when healing others, not self heals.
- Priest T10 2p bonus (heal) now rolls its effect properly

- Use brand new GetEffectiveHeal to fix #17142
- While we're at it, also close #17034 for good
- Converted Unit::HandleAuraProc function to AuraScripts (#17941)
- Converted Unit::HandleAuraProc function to AuraScripts (cont'd) (#17955)
- Corrected Flametongue weapon damage formula
- Actually check offhand weapon for flametongue in Lava Lash script
- Implemented halved proc chance for Missile Barrage on Arcane Barrage, Fireball, Frostbolt and Frostfire Bolt cast
- Converted Unit::HandleProcTriggerSpell function to AuraScripts (#17956)
- De-hack Earth shield. Fixes #13808
- Updated Honor among Thieves
- Implemented mana proc for Mark of Conquest in case of ranged attack
- Fixed Scent of Blood giving more stacks than the talent rank currently learnt.
- Ported old proc table. Proc system is dead. Long live the proc system!
- Recklessness should get charges removed per cast. Closes #15529
- Use proc system to remove Molten Core charges on Incinerate/Soul Fire cast. Closes #15942

Closes #3463
Closes #5401
Closes #15595
Closes #15974
Closes #16679
Closes #17925
2016-10-04 20:21:58 -03:00
SnapperRy
790844e72d Script/Quest: A Cry For Help: (#18026)
- Add missing dialogue from Cowlen.
- Timers and emotes.
2016-10-03 23:47:41 +02:00
SnapperRy
6cef1de8d3 Core/Quest: Gordunni Cobalt:
- Add second gameobject (Gordunni Dirt Mound, containing only junk items) that can spawn in place of the first (same name, but contains the quest item), 50% chance.
2016-10-03 13:30:14 +02:00
SnapperRy
4147312d29 Script/Quest: fix text for creature Gelkak involved in quest Gyromast's Revenge.
Gelkak is supposed to say it, not The Threshwackonator 4100.
2016-10-01 22:43:43 +02:00
SnapperRy
d59f111cab Core/Script: make creature Webbed Creature spawn creature Expedition Researcher when appropriate.
Also don't allow it to spawn a copy of itself.
2016-10-01 14:15:39 +02:00
treeston
2170541a51 Core/Unit: Standardize SetFacingTo and SetFacingToObject behavior while moving. Both now fail while moving unless arg2 bool is true.
Movement/SplineChain: Bump value range for DB chainId up to uint16 (0 to 65535) from uint8 (0 to 255). Turns out sniffs generate far more chains than I expected.
2016-09-20 20:19:15 +02:00
treeston
ac62d7156f Scripts/Events: Globally fix all ExecuteEvent loops to check UNIT_STATE_CASTING after each iteration, instead of just checking it once initially.
Fixes and closes #17892.
2016-09-03 17:21:22 +02:00
treeston
d55426f5b4 Entities/Gossip: The Big One™ that gets rid of all uses of The Bad™ and The Ugly™, e.g. gossip preprocessor macros, and replaces them with the new-and-shiny gossip functions. 2016-08-31 00:59:04 +02:00
Gustavo
6ee35734e4 Whitespace clean-up 2016-08-29 01:11:04 +02:00
tkrokli
730680430d [3.3.5] Core/Scripts: move npc_loramus_thalipedes to DB
Another chapter in core script hardcoded text removal:
- remove core script `npc_loramus_thalipedes` from zone_azshara.cpp
- add gossip, SAI script and conditions to database
- remove redundant SD2 comments from file header
2016-08-17 05:12:04 +02:00
tkrokli
e54e27af92 Core/Scripts: convert script npcs_riverbreeze_and_silversky to SAI (#17690)
Move script npcs_riverbreeze_and_silversky to SAI,
thereby removing one line of hardcoded text.

- Remove core script npcs_riverbreeze_and_silversky
- Create SAI script for gossip event Cenarion Beacon
- Add missing gossip_menu for plant description
- Add missing creature_text about Cenarion Beacon
- Add and correct conditions for gossip availability
2016-07-31 06:16:47 +02:00
ariel-
62bfee37cb Core/Entities: debloat SummonGameObject parameter list using proper wrappers and enable GO rotation in scripts
- There's still an overload allowing for x, y, z, o to be passed directly
- Fixed default animstate for GameObject creation in many places, it should be 255, not 100 (checked in sniffs)
2016-07-30 18:50:44 -03:00
tkrokli
b7abaed199 Core/Scripts: zone_silithus.cpp cleanup (#17165)
- move npcs_rutgar_and_frankal to DB/SAI
- move hardcoded text from go_wind_stone to DB
- additional enum cleanup in zone_silithus.cpp
- also solves a $r issue in SAY_TEMPLAR_AGGRO
2016-07-29 10:21:14 +02:00
Andrew Letson
6ea48c036e Core/Scripts: Migrate Tanaris NPC's to SAI (#17390) 2016-07-15 18:42:12 +02:00
SnapperRy
df532d1948 Core/Script: add missing say in script for npc Lakota Windsong 2016-07-10 14:39:10 +02:00
Snapper
ebb33bbfc1 Core/Misc: use enum for UNIIT_NPC_FLAGS' zero values 2016-07-10 09:33:55 +02:00
vincent-michael
d1cb53aa2c Core/Scripts: Fixed non pch build 2016-06-19 18:13:10 +02:00
ariel-
d1d0c64ad1 Core/Scripts: Extended SMART_ACTION_SET_INST_DATA to also set BossStates. (#16739)
Scripts/Dire Maul: Initialize boss states array so it may be called from SmartAI. (Ref #6429)
2016-06-14 17:29:51 +01:00
JamminWidYou
3002839bfe [3.3.5] Core/Quest: A life without regret (#16067)
* Life without Regret

* misc changes to sql

* sql changes
2016-06-14 12:48:28 +01:00
tkrokli
d6f0e74cdb Core/Scripts: move script 'npc_plucky' to DB/SAI (#17071)
1 more text line removed in the ongoing series: "Remove hardcoded text from core scripts".

Core script for "Plucky" Johnson :
- move the actual gossip handling to DB
- create new gossip_menu_option entry
- link the option to gossip_menu.text_id
- add correct default gossip to the NPC
- create SAI script with alternate emotes
- add condition check for quest taken
- remove the script from zone script
- extra enum cleanup in zone script
2016-06-12 08:36:42 +02:00
tkrokli
28a3c9f652 [3.3.5] Core/Scripts: move druid FP NPC scripts to DB/SAI (#17134)
Move 2 core scripts to DB / SAI:
- npc_bunthen_plainswind (NPC 11798)
- npc_silva_filnaveth (NPC 11800)

Additional result: remove 4 hardcoded text lines.

Target: remove lines from the list http://pastebin.com/x7wZLpxH
2016-06-12 08:32:48 +02:00
tkrokli
3acf6f36d1 Core/Scripts/DB: move npc_gregan_brewspewer to DB
- Remove npc_gregan_brewspewer, thereby removing hardcoded text
`#define GOSSIP_HELLO "Buy somethin', will ya?"`
- Move all gossip handling to DB (gossip texts already exist in TDB)
2016-06-03 17:38:58 +02:00
Trond B Krokli
d82534a7bb Core/Scripts/DB: remove hardcoded text from npc_beaten_corpse (#16907)
- remove hardcoded text from script npc_beaten_corpse
- remove OnGossipHello() hook, gossip text moved to DB
- use sGossipSelect() hook instead of OnGossipSelect()
- add npc_text 3557 and 3558 as text_id to gossip_menu
- add gossip_menu_option 2871 to NPC 10668 Beaten Corpse
- add condition for gossip_menu_option 2871 in Quest ID 4921

Tested on 4 different characters/classes, male & female.
Thanks to joschiwald for the sGossipSelect() script change.
2016-05-02 22:22:17 +02:00
Shauren
bee6525d1b Core/Misc: Fixed -Wmisleading-indentation warnings
(cherry picked from commit 3ac33163db)

# Conflicts:
#	src/server/game/Server/Protocol/PacketLog.cpp
2016-04-28 16:22:51 +01:00
Chaouki Dhib
dc3327f9c5 Core/Movement: Clean up and improvements on Unit::SetSpeed (#16843)
- Clean up of Unit::SetSpeed (mostly cherry picks from the 6.x branch):
- the opcode sent depends on the unit. until now, MSG_MOVE_SET_* were sent for every units which isn't like retail behavior.
- Removed the unused method parameter "forced" from Unit::SetSpeed
- Renamed Unit::SetSpeed to SetSpeedRate
- Removed the unused method parameter "forced" from Unit::UpdateSpeed
- Added utility method Unit::SetSpeed which take the new flat value.
2016-04-16 01:36:32 +02:00
Naios
c5c922da9f Core/Scripts: Move the ragefire chasm scriptloader into the correct file
(cherry picked from commit 4710b1c8fe)
2016-04-11 21:41:33 +02:00
Shauren
3f7e6af49e Properly rename the stand state method... 2016-04-08 22:32:15 +02:00
Shauren
6dfc4771a1 Core/Misc: Renamed getStandState to minimize differences between branches 2016-04-08 22:21:13 +02:00
Aokromes
00aeec820a Core/Misc: Remove no longer used code 2016-03-23 16:59:31 +01:00
Vincent-Michael
5e74c2223b Core: Remove whitespaces 2016-03-16 21:40:15 +01:00
Vincent-Michael
509e54423a Scripts: Added missing overrides
(cherry picked from commit 00b4e8b6cc)
2016-03-12 21:45:37 +01:00