diff options
| author | Killyana <morphone1@gmail.com> | 2018-02-16 02:19:19 +0100 | 
|---|---|---|
| committer | Killyana <morphone1@gmail.com> | 2018-02-16 02:19:19 +0100 | 
| commit | ca4f1e334a98cbd810168b24714c46201079fc5a (patch) | |
| tree | 9c8b206cc9b8dc2e968a130e1589ed8c77e21670 /src/server/game/AI/SmartScripts | |
| parent | 789f3c5d37477fb2794bec47d154e6c0390ff776 (diff) | |
Core/SAI: Add an action_param3 to "summon gob" to control when the object will despawn
0 - For despawn when creature dies or time runs out
1 - For despawn after time
Closes #11601
Diffstat (limited to 'src/server/game/AI/SmartScripts')
| -rw-r--r-- | src/server/game/AI/SmartScripts/SmartScript.cpp | 4 | ||||
| -rw-r--r-- | src/server/game/AI/SmartScripts/SmartScriptMgr.h | 1 | 
2 files changed, 3 insertions, 2 deletions
| diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index b6b79ef87c9..5faaeb4abe7 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -1214,14 +1214,14 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u              {                  Position pos = target->GetPositionWithOffset(Position(e.target.x, e.target.y, e.target.z, e.target.o));                  QuaternionData rot = QuaternionData::fromEulerAnglesZYX(pos.GetOrientation(), 0.f, 0.f); -                GetBaseObject()->SummonGameObject(e.action.summonGO.entry, pos, rot, e.action.summonGO.despawnTime); +                GetBaseObject()->SummonGameObject(e.action.summonGO.entry, pos, rot, e.action.summonGO.despawnTime, GOSummonType(e.action.summonGO.summonType));              }              if (e.GetTargetType() != SMART_TARGET_POSITION)                  break;              QuaternionData rot = QuaternionData::fromEulerAnglesZYX(e.target.o, 0.f, 0.f); -            GetBaseObject()->SummonGameObject(e.action.summonGO.entry, Position(e.target.x, e.target.y, e.target.z, e.target.o), rot, e.action.summonGO.despawnTime); +            GetBaseObject()->SummonGameObject(e.action.summonGO.entry, Position(e.target.x, e.target.y, e.target.z, e.target.o), rot, e.action.summonGO.despawnTime, GOSummonType(e.action.summonGO.summonType));              break;          }          case SMART_ACTION_KILL_UNIT: diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.h b/src/server/game/AI/SmartScripts/SmartScriptMgr.h index 2eeeece124c..a6ffe6079d8 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.h +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.h @@ -810,6 +810,7 @@ struct SmartAction          {              uint32 entry;              uint32 despawnTime; +            uint32 summonType;          } summonGO;          struct | 
