Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tirion ICC #98

Open
Gribby opened this issue Apr 9, 2014 · 21 comments
Open

Tirion ICC #98

Gribby opened this issue Apr 9, 2014 · 21 comments

Comments

@Gribby
Copy link

Gribby commented Apr 9, 2014

I think his intro speech is missing at the entrance of the raid.

@ghost
Copy link

ghost commented Apr 10, 2014

2 variants.
One - hardcoding(Simply speaking - hacks) in database.
Two - Can overtake ready implementation of MangosR2.
Links: mangosR2@ad33510
Author Boxa.

@xfurry
Copy link
Member

xfurry commented Apr 22, 2014

Or the 3rd option:
Use eventAI and DB scripts to get the same result as option 2. 😉

We don't need to add SD2 scripts for script events that can be done in database. Ultimately our long them goal is to allow DBscripts and eventAI to handle 95% of the dialogues and cinamatic scripts.

@ghost
Copy link

ghost commented Apr 23, 2014

Interactions between EventAI db_sсript and there, so that 3-one bummer. :D

@xfurry
Copy link
Member

xfurry commented Apr 23, 2014

Well, currently there is no interaction between these 2 systems, but we try to implement one.
But on a second thought I think that it would be just fine to add this into SD2. I'll review @boxa's patch soonish.

@ghost
Copy link

ghost commented Apr 23, 2014

I tell you honestly, I realize it is more convenient in the database. and recompiling the kernel is not necessary, fix easier.

@xfurry
Copy link
Member

xfurry commented Feb 8, 2015

@Ulduar I noticed that you are pretty good with SD2 texts recently.
It would be nice if you can prepare a patch for this even that will fit our code.

@ghost
Copy link

ghost commented Feb 10, 2015

You want me to file for SD2 amounted these texts?

@xfurry
Copy link
Member

xfurry commented Feb 10, 2015

Well, you can either do in in SD2 and use the DialogueEntry class
Or you can do it in DB using dbscripts on movement for each npc. I think in DB would be nicer, but I'll leave the choice to you.

@ghost
Copy link

ghost commented Feb 11, 2015

Can try to run this script. Copyrights Boxa must stand and will stand - I took him. Not fully completed yet of course (there Points Saurfang Muradin and need more). Update entry also think need to dialogs do not should cross.
@xfurry - db_script_on_creature_movement you are have given permission to use)
Also i think SCRIPT_COMMAND_SEND_AI_EVENT_TARGET AND ACTION_T_SEND_AI_EVENT_TARGET Would have brought more efficiency.
Script(not testing)

-- ###########
-- ICC start speech event. https://github.com/boxa copyright, /* Copyright (C) 2015 by boxa for ScriptDev2_R2 <http://github.com/mangosR2/scriptdev2/> This is his rightful authorship. Nobody has the rights to delete them. Nobody ever.
-- ###########

-- db text
SET @DB_STRING_ENTRY:=2000010000;
DELETE FROM db_script_string WHERE entry BETWEEN @DB_STRING_ENTRY AND @DB_STRING_ENTRY+18;
INSERT INTO db_script_string (entry,content_default,sound,type,language,emote,comment) VALUES
(@DB_STRING_ENTRY+0,'This is our final stand. What happens here will echo through the ages. Regardless of outcome, they will know that we fought with honor. That we fought for the freedom and safety of our people!',16653,6,0,22,'Highlord Tirion Fordring - SAY_TIRION_INTRO_1'),
(@DB_STRING_ENTRY+1,'Remember, heroes, fear is your greatest enemy in these befouled halls. Steel your heart and your soul will shine brighter than a thousand suns. The enemy will falter at the sight of you. They will fall as the light of righteousness envelops them!',16654,6,0,22,'Highlord Tirion Fordring - SAY_TIRION_INTRO_2'),
(@DB_STRING_ENTRY+2,'Our march upon Icecrown Citadel begins now!',16655,6,0,22,'Highlord Tirion Fordring - SAY_TIRION_INTRO_3'),
(@DB_STRING_ENTRY+3,'ARTHAS! I swore that I would see you dead and the Scourge dismantled! I''m going to finish what I started at Light''s Hope!',16656,6,0,0,'Highlord Tirion Fordring - SAY_TIRION_INTRO_4'),
(@DB_STRING_ENTRY+4,'The power of the Light knows no bounds, Saurfang. His soul is under great strain, but he lives - for now.',16658,6,0,0,'Highlord Tirion Fordring - SAY_TIRION_INTRO_H_5'),
(@DB_STRING_ENTRY+5,'By the Light, it must be so!',16657,6,0,0,'Highlord Tirion Fordring - SAY_TIRION_INTRO_A_5'),
-- The Lich King
(@DB_STRING_ENTRY+6,'You now stand upon the hallowed ground of the Scourge. The Light won''t protect you here, paladin. Nothing will protect you...',17230,6,0,0,'The Lich King - SAY_LK_INTRO_1'),
(@DB_STRING_ENTRY+7,'You could have been my greatest champion, Fordring: A force of darkness that would wash over this world and deliver it into a new age of strife.',17231,6,0,0,'The Lich King - SAY_LK_INTRO_2'),
(@DB_STRING_ENTRY+8,'But that honor is no longer yours. Soon,I will have a new champion.',17232,6,0,0,'The Lich King - SAY_LK_INTRO_3'),
(@DB_STRING_ENTRY+9,'The breaking of this one has been taxing. The atrocities I have committed upon his soul. He has resisted for so long, but he will bow down before his king soon.',17233,6,0,0,'The Lich King - SAY_LK_INTRO_4'),
(@DB_STRING_ENTRY+10,'In the end, you will all serve me.',17234,6,0,0,'The Lich King - SAY_LK_INTRO_5'),
-- Highlord Bolvar Fordragon
(@DB_STRING_ENTRY+11,'NEVER! I... I will never... serve... you...',17078,6,0,0,'Highlord Bolvar Fordragon - SAY_BOLVAR_INTRO_1'),
-- High Overlord Saurfang
(@DB_STRING_ENTRY+12,'The paladin still lives? Is it possible, Highlord? Could he have survived?',17107,6,0,0,'High Overlord Saurfang - SAY_SAURFANG_INTRO_1'),
(@DB_STRING_ENTRY+13,'Then we must save him! If we rescue Bolvar Fordragon, we may quell the unrest between the Alliance and the Horde.',17108,6,0,0,'High Overlord Saurfang - SAY_SAURFANG_INTRO_2'),
(@DB_STRING_ENTRY+14,'Our mission is now clear: The Lich King will answer for his crimes and we will save Highlord Bolvar Fordragon!',17109,6,0,0,'High Overlord Saurfang - SAY_SAURFANG_INTRO_3'),
(@DB_STRING_ENTRY+15,'Kor''kron, prepare Orgrim''s Hammer for its final voyage! Champions, our gunship will find a point to dock on the upper reaches of the citadel. Meet us there!',17110,6,0,0,'High Overlord Saurfang - SAY_SAURFANG_INTRO_1'),
-- Muradin Bronzebeard
(@DB_STRING_ENTRY+16,'Could it be, Lord Fordring? If Bolvar lives, mayhap there is hope fer peace between the Alliance and the Horde. We must reach the top o'' this cursed place and free the paladin!',16980,6,0,0,'Muradin Bronzebeard - SAY_MURADIN_INTRO_1'),
(@DB_STRING_ENTRY+17,'Prepare the Skybreaker fer an aerial assault on the citadel!',16981,6,0,0,'Muradin Bronzebeard - SAY_MURADIN_INTRO_2'),
(@DB_STRING_ENTRY+18,'Heroes, ye must fight yer way to a clear extraction point within Icecrown. We''ll try an'' rendezvous on the ramparts!',16982,6,0,0,'Muradin Bronzebeard - SAY_MURADIN_INTRO_3');





-- Script id: 37011
DELETE FROM dbscripts_on_creature_death WHERE id=37011;
INSERT INTO dbscripts_on_creature_death VALUES 
(37011,0,35,5,500,0,0,0,0,0,0,0,0,0,0,0,'Damned - on death - Send AI Event Custom A(inform Tirion about start event)'),
(37011,0,31,37011,15,0,0,8,0,0,0,0,0,0,0,0,'Return true script, if found alive Damned(need two Damned kills for start speech event)');




-- creature movement for Highlord Tirion Fordring, High Overlord Saurfang and Muradin.
DELETE FROM creature_movement_template WHERE entry IN (37119, 37187, 37200);
INSERT INTO creature_movement_template (entry,point,position_x,position_y,position_z,waittime,script_id,orientation) VALUES
(37119, 1, -48.9184, 2213.55, 27.9859, 1000, 3711901, 3.12865),
(37187, 1, -48.9097, 2211.06, 27.9859, 1000, 3718701, 3.15905),
(37200, 1, -48.8073, 2211.06, 27.9859, 1000, 3720001, 3.14159); 

-- Script id: 3711901
DELETE FROM dbscripts_on_creature_movement WHERE id IN (3711901, 3718701, 3720001);
INSERT INTO dbscripts_on_creature_movement VALUES 
(3711901,0,0,6,0,0,0,0,@DB_STRING_ENTRY+0,0,0,0,0,0,0,0,'Highlord Tirion Fordring - SAY_TIRION_INTRO_1'),
(3711901,13,0,6,0,0,0,0,@DB_STRING_ENTRY+1,0,0,0,0,0,0,0,'Highlord Tirion Fordring - SAY_TIRION_INTRO_2'),
(3711901,29,0,6,0,0,0,0,@DB_STRING_ENTRY+2,0,0,0,0,0,0,0,'Highlord Tirion Fordring - SAY_TIRION_INTRO_3'),
(3711901,35,0,6,0,37181,50000,0,@DB_STRING_ENTRY+6,0,0,0,0,0,0,0,'Lich King - SAY_INTRO_1.'),
(3711901,49,0,6,0,0,0,0,@DB_STRING_ENTRY+3,0,0,0,0,0,0,0,'Highlord Tirion Fordring - SAY_TIRION_INTRO_4'),
(3711901,58,0,6,0,37181,50000,0,@DB_STRING_ENTRY+7,0,0,0,0,0,0,0,'Lich King - SAY_INTRO_2.'),
(3711901,71,0,6,0,37181,50000,0,@DB_STRING_ENTRY+8,0,0,0,0,0,0,0,'Lich King - SAY_INTRO_3'),
(3711901,81,0,6,0,37181,50000,0,@DB_STRING_ENTRY+9,0,0,0,0,0,0,0,'Lich King - SAY_INTRO_4'),
(3711901,103,0,6,0,37181,50000,0,@DB_STRING_ENTRY+10,0,0,0,0,0,0,0,'Lich King - SAY_INTRO_5'),
(3711901,108,0,6,0,37183,50000,0,@DB_STRING_ENTRY+11,0,0,0,0,0,0,0,'Highlord Bolvar Fordragon - SAY_INTRO_1.'),
(3711901,0,32,1,0,0,0,0,0,0,0,0,0,0,0,0,'Highlord Tirion Fordring - Pause Movement.'),
(3711901,114,35,5,20,0,0,0,0,0,0,0,0,0,0,0,'High Tirion Fordring - Send AI Event Custom A for High Overlord Saurfang.'),
(3711901,114,35,5,20,0,0,0,0,0,0,0,0,0,0,0,'High Tirion Fordring - Send AI Event Custom A for Muradin Bronzebeard.'),
(3718701,0,32,1,0,0,0,0,0,0,0,0,0,0,0,0,'High Overlord Saurfang - Pause Movement'),
(3718701,0,0,6,0,0,0,0,@DB_STRING_ENTRY+12,0,0,0,0,0,0,0,'High Overlord Saurfang - SAY_INTRO_1'),
(3718701,6,0,0,0,37119,20,0,@DB_STRING_ENTRY+4,0,0,0,0,0,0,0,'Highlord Tirion Fordring - SAY_TIRION_INTRO_H_5'),
(3718701,14,0,6,0,0,0,0,@DB_STRING_ENTRY+13,0,0,0,0,0,0,0,'High Overlord Saurfang - SAY_INTRO_2.'),
(3718701,24,0,6,0,0,0,0,@DB_STRING_ENTRY+14,0,0,0,0,0,0,0,'High Overlord Saurfang - SAY_INTRO_3'),
(3718701,33,0,6,0,0,0,0,@DB_STRING_ENTRY+15,0,0,0,0,0,0,0,'High Overlord Saurfang - SAY_INTRO_4'),
(3718701,44,18,1000,0,0,0,0,0,0,0,0,0,0,0,0,'High Overlord Saurfang - Force Despawn.'),
(3720001,0,32,1,0,0,0,0,0,0,0,0,0,0,0,0,'Muradin Bronzebeard - Pause Movement'),
(3720001,0,0,6,0,0,0,0,@DB_STRING_ENTRY+16,0,0,0,0,0,0,0,'Muradin Bronzebeard - SAY_INTRO_1'),
(3720001,12,0,0,0,37119,20,0,@DB_STRING_ENTRY+5,0,0,0,0,0,0,0,'Highlord Tirion Fordring - SAY_TIRION_INTRO_A_5'),
(3720001,15,0,6,0,0,0,0,@DB_STRING_ENTRY+17,0,0,0,0,0,0,0,'Muradin Bronzebeard - SAY_INTRO_2.'),
(3720001,19,0,6,0,0,0,0,@DB_STRING_ENTRY+18,0,0,0,0,0,0,0,'Muradin Bronzebeard - SAY_INTRO_3'),
(3720001,27,18,1000,0,0,0,0,0,0,0,0,0,0,0,0,'Muradin Bronzebeard - Force Despawn.');


-- if need, settlment npc reference intro speech event for ICC. Thanks YTDB for data.
REPLACE INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `DeathState`, `MovementType`) VALUES
('136291','37119','631','15','1','0','0','-48.9184','2213.55','27.9859','3.12865','604800','0','0','13945000','8516000','0','0'),
('79239','37181','631','15','1','0','0','-123.964','2211.56','82.6835','1.0472','604800','0','0','27890000','17032000','0','0'),
('49035','37183','631','15','1','0','0','-126.295','2211.68','82.2289','0','604800','0','0','630000','159760','0','0'),
('136293','37187','631','15','64','0','0','-48.9097','2211.06','27.9859','3.15905','604800','0','0','4183500','0','0','0'),
('373430','37200','631','15','1','0','0','-48.8073','2211.06','27.9859','3.14159','604800','0','0','4183500','0','0','0');

-- Creature id: 37200
UPDATE creature_template SET AIName='EventAI' WHERE entry=37200;
DELETE FROM creature_ai_scripts WHERE creature_id=37200;
INSERT INTO creature_ai_scripts VALUES 
('3720001','37200','30','0','100','30','5','37119','0','0','48','2','0','0','0','0','0','0','0','0','0','0','Muradin Bronzebeard - Change Movement on Waypoint Motion Type on Receive AI Event Custom A from Highlord Tirion Fordring.');

-- Creature id: 37187
UPDATE creature_template SET AIName='EventAI' WHERE entry=37187;
DELETE FROM creature_ai_scripts WHERE creature_id=37187;
INSERT INTO creature_ai_scripts VALUES 
('3718701','37187','30','0','100','30','5','37119','0','0','0','0','0','0','0','0','0','0','0','0','0','0','High Overlord Saurfang - Change Movement on Waypoint on Receive AI Event Custom A(pSender == Highlord Tirion Fordring)');

-- Creature id: 37119
UPDATE creature_template SET AIName='EventAI' WHERE entry=37119;
DELETE FROM creature_ai_scripts WHERE creature_id=37119;
INSERT INTO creature_ai_scripts VALUES 
('3711901','37119','11','0','100','30','0','0','0','0','22','1','0','0','0','0','0','0','0','0','0','0','Highlord Tirion Fordring - Set Phase 1 on Spawn(need, because avoid repeat)'),
('3711902','37119','30','1','100','30','5','37011','0','0','22','0','0','0','48','2','0','0','0','0','0','0','Highlord Tirion Fordring - Receive AI Event Custom A(pSender == 37011) - Set Phase 0 and Change Movement - Start Intro Speech Event trigger.');

ghost referenced this issue in mangosR2/scriptdev2 Feb 11, 2015
@xfurry
Copy link
Member

xfurry commented Feb 11, 2015

Thanks. I'll take a look at this soonish.

@ghost
Copy link

ghost commented Feb 11, 2015

Okay! Only need to say thank you @boxa. This is his work by right!
ACTION_UPDATE_TEMPLATE not working as well as I would like. The script does not check for the team (Alliance or Horde) - deleted.
I think SD2 script(On Creature Create uiTeam ==Alliance or Horde) Update Entry.

switch (creature->GetEntry())
                {
                    case NPC_KOR_KRON_GENERAL:
                        if (TeamInInstance == ALLIANCE)
                            creature->UpdateEntry(NPC_ALLIANCE_COMMANDER);
                        break;
                    case NPC_KOR_KRON_LIEUTENANT:
                        if (TeamInInstance == ALLIANCE)
                            creature->UpdateEntry(NPC_SKYBREAKER_LIEUTENANT);
                        break;
                    case NPC_TORTUNOK:
                        if (TeamInInstance == ALLIANCE)
                            creature->UpdateEntry(NPC_ALANA_MOONSTRIKE);
                        break;
                    case NPC_GERARDO_THE_SUAVE:
                        if (TeamInInstance == ALLIANCE)
                            creature->UpdateEntry(NPC_TALAN_MOONSTRIKE);
                        break;
                    case NPC_UVLUS_BANEFIRE:
                        if (TeamInInstance == ALLIANCE)
                            creature->UpdateEntry(NPC_MALFUS_GRIMFROST);
                        break;
                    case NPC_IKFIRUS_THE_VILE:
                        if (TeamInInstance == ALLIANCE)
                            creature->UpdateEntry(NPC_YILI);
                        break;
                    case NPC_VOL_GUK:
                        if (TeamInInstance == ALLIANCE)
                            creature->UpdateEntry(NPC_JEDEBIA);
                        break;
                    case NPC_HARAGG_THE_UNSEEN:
                        if (TeamInInstance == ALLIANCE)
                            creature->UpdateEntry(NPC_NIBY_THE_ALMIGHTY);
                        break;
                    case NPC_GARROSH_HELLSCREAM:
                        if (TeamInInstance == ALLIANCE)
                            creature->UpdateEntry(NPC_KING_VARIAN_WRYNN);
                        break;
                    case NPC_DEATHBRINGER_SAURFANG:
                        DeathbringerSaurfangGUID = creature->GetGUID();
                        break;
                    case NPC_ALLIANCE_GUNSHIP_CANNON:
                    case NPC_HORDE_GUNSHIP_CANNON:
                        creature->SetControlled(true, UNIT_STATE_ROOT);
                        break;
                    case NPC_SE_HIGH_OVERLORD_SAURFANG:
                        if (TeamInInstance == ALLIANCE)
                            creature->UpdateEntry(NPC_SE_MURADIN_BRONZEBEARD, creature->GetCreatureData());
                        // no break;

https://github.com/TrinityCore/TrinityCore/blob/6.x/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp#L166

@ghost
Copy link

ghost commented May 10, 2015

1)Additional Information - Event Tirion to send ++ count only the first two are damned (guid simply put). So, as long as they live - even summon cursed and begins to move down the stairs and must attack the Knights of the Ashen Verdict. Plus behind them are more a damned that can not send Event.

  1. ++ count we do not have in EAI. So that option Boxa more correct. But it is necessary to supplement! Sort by positions xyz - a bad idea just say. So, as 3 more damned who patrol.

  2. All thrash need script in SD2, because for selected guid requires EnterEvadeModOutOfArea.

  3. Marrowgar also need EnterEvadeModeOutOfArea.

  4. Also need check instance team(Muradin for the Alliance, Saurfang for the Horde). Patch @boxa it has! SELECT_NEXT_DIALOGUE line!

  5. My db patch In conclusion, do not fit. Reason read 1), 2), 3), 4), 5).
    @Rushor please confirm, if can) Thanks advance!

@xfurry
Copy link
Member

xfurry commented May 10, 2015

I need to see how this works first....
I'm pretty sure we can find a simple solution for dbscripts and eventAI. That's why 90% of the time is taken by research and only the rest by writing the thing.

@ghost
Copy link

ghost commented May 10, 2015

You can not find a solution - in any way - nothing at all.
It functions as necessary in EAI and db script added ....
Links you all are given.

@xfurry
Copy link
Member

xfurry commented May 10, 2015

You can not find a solution

😄 People found solutions to get to the moon.
You can find solutions to anything, if you want to!

@ghost
Copy link

ghost commented May 20, 2016

People found solutions to get to the moon.

And their ship was blown up.
But anyway i see:

  1. On Cmangos easier through SD2.
  2. On Trinity easier through SAI.

@xfurry
Copy link
Member

xfurry commented May 20, 2016

Don't worry. This event is on my workbench.
I just need to clarify some details from some horde sniff that I can't find, yet.

@Rushor
Copy link

Rushor commented May 20, 2016

People found solutions to get to the moon.

XDDD

I like these comparisons

@ghost
Copy link

ghost commented May 20, 2016

@boxa provided full detail)
@Shauren also provided)

@xfurry
Copy link
Member

xfurry commented May 20, 2016

@Ulduar the script details are good. I didn't complain about that.
However, before I can apply the script, we need to have proper creature spawns inside the instance.
Currently, none of the DB providers, have the right entries for each faction, so I won't apply the script before we do this first.

@ghost
Copy link

ghost commented May 20, 2016

the script details are good. I didn't complain about that.
However, before I can apply the script, we need to have proper creature spawns inside the instance.
Currently, none of the DB providers, have the right entries for each faction, so I won't apply the script before we do this first.

There goes spawn depending on team id (Alliance / Horde). And here I was a little factions do not understand.
They wrote not from the bulldozer, and to sniff. DB providers (YTDB example) collect data from sniff, not from the bulldozer.

I have an additional question about Vengeful Reaper.
Vengeful Reaper on my visions have two type spawns:

  1. Static spawn - have waypoints and warning - jump on tube and continue point movement. How do script - SD2 or add SCRIPT_COMMAND_JUMP_TO_OR_TARGET (position xyz or target unit)
  2. Temporary summon - activate from geist alarm (you can read Deathbound Ward scriptdev2-cata#31 (comment))
    Also after summon not set in combat with zone automatic (player or friendly npc should attack patrols)
    b) If you not aggro reaper - should start on different waypoints.
    If Festergut side trap activate - First, they patrol in his direction and then only move in the direction Rotface. Otherwise, if you activate Rotface side trap - should patrol in Rotface side, and then toward Festergut.
    About patrol respawn - also a separate issue.
    I am writing here and now simply because, then to not forget.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants