mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
DB/Quest: Rework 'A Spirit Guide' (9410)
This commit is contained in:
134
sql/updates/world/3.3.5/2021_03_14_05_world.sql
Normal file
134
sql/updates/world/3.3.5/2021_03_14_05_world.sql
Normal file
@@ -0,0 +1,134 @@
|
||||
-- Ancestral Spirit Wolf SAI (Source: Sniffs & https://www.youtube.com/watch?v=xFF8DOSeMcg)
|
||||
SET @ID := 17077;
|
||||
UPDATE `creature_template` SET `speed_walk` = 1.6, `speed_run` = 1, `unit_flags` = 768, `AIName` = "SmartAI", `ScriptName` = "" WHERE `entry` = @ID;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` = @ID AND `source_type` = 0;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` BETWEEN @ID*100+0 AND @ID*100+3 AND `source_type` = 9;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`event_param5`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_param4`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
|
||||
(@ID,0,0,0,54,0,100,0,0,0,0,0,0,80,@ID*100+0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Ancestral Spirit Wolf - On Just Summoned - Run Script"),
|
||||
(@ID,0,1,0,40,0,100,0,9,0,0,0,0,80,@ID*100+1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Ancestral Spirit Wolf - On Waypoint 9 Reached - Run Script"),
|
||||
(@ID,0,2,0,40,0,100,0,68,0,0,0,0,80,@ID*100+2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Ancestral Spirit Wolf - On Waypoint 68 Reached - Run Script"),
|
||||
(@ID,0,3,0,40,0,100,0,73,0,0,0,0,80,@ID*100+3,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Ancestral Spirit Wolf - On Waypoint 73 Reached - Run Script"),
|
||||
-- Hacky follow movement prevention
|
||||
(@ID*100+0,9,0,0,0,0,100,0,0,0,0,0,0,69,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Ancestral Spirit Wolf - On Script - Move To Self"),
|
||||
(@ID*100+0,9,1,0,0,0,100,0,0,0,0,0,0,11,29938,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Ancestral Spirit Wolf - On Script - Cast 'Guided by the Spirits'"),
|
||||
(@ID*100+0,9,2,0,0,0,100,0,0,0,0,0,0,11,30011,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Ancestral Spirit Wolf - On Script - Cast 'Quest - Ancestral Spirit Wolf Self Snare'"),
|
||||
(@ID*100+0,9,3,0,0,0,100,0,5000,5000,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Ancestral Spirit Wolf - On Script - Say Line 0"),
|
||||
(@ID*100+0,9,4,0,0,0,100,0,4000,4000,0,0,0,53,0,17077,0,0,0,2,1,0,0,0,0,0,0,0,0,"Ancestral Spirit Wolf - On Script - Start Waypoint"),
|
||||
|
||||
(@ID*100+1,9,0,0,0,0,100,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Ancestral Spirit Wolf - On Script - Say Line 1"),
|
||||
-- Something happens here, he changes speed somehow
|
||||
(@ID*100+2,9,0,0,0,0,100,0,0,0,0,0,0,4,1018,0,1,0,0,0,1,0,0,0,0,0,0,0,0,"Ancestral Spirit Wolf - On Script - Play Sound 1018"),
|
||||
-- May be different
|
||||
(@ID*100+3,9,0,0,0,0,100,0,0,0,0,0,0,41,60000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Ancestral Spirit Wolf - On Script - Delayed Despawn"),
|
||||
(@ID*100+3,9,1,0,0,0,100,0,0,0,0,0,0,45,0,1,0,0,0,0,19,17123,0,0,0,0,0,0,0,"Ancestral Spirit Wolf - On Script - Set Data 0 1 (Earthcaller Ryga)");
|
||||
|
||||
-- Earthcaller Ryga SAI
|
||||
SET @ID := 17123;
|
||||
UPDATE `creature_template` SET `speed_walk` = 1, `AIName` = "SmartAI" WHERE `entry` = @ID;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` = @ID AND `source_type` = 0;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` BETWEEN @ID*100+0 AND @ID*100+2 AND `source_type` = 9;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`event_param5`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_param4`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
|
||||
(@ID,0,0,0,63,0,100,0,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Earthcaller Ryga - On Just Created - Set Event Phase 1"),
|
||||
(@ID,0,1,0,38,1,100,0,0,1,0,0,0,80,@ID*100+0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Earthcaller Ryga - On Data Set 0 1 - Run Script (Phase 1)"),
|
||||
(@ID,0,2,0,40,0,100,0,2,0,0,0,0,80,@ID*100+1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Earthcaller Ryga - On Waypoint 2 Reached - Run Script"),
|
||||
(@ID,0,3,0,40,0,100,0,4,0,0,0,0,80,@ID*100+2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Earthcaller Ryga - On Waypoint 4 Reached - Run Script"),
|
||||
|
||||
(@ID*100+0,9,0,0,0,0,100,0,0,0,0,0,0,53,0,17123,0,0,0,2,1,0,0,0,0,0,0,0,0,"Earthcaller Ryga - On Script - Start Waypoint"),
|
||||
(@ID*100+0,9,1,0,0,0,100,0,0,0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Earthcaller Ryga - On Script - Set Event Phase 2"),
|
||||
|
||||
(@ID*100+1,9,0,0,0,0,100,0,1000,1000,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Earthcaller Ryga - On Script - Say Line 0"),
|
||||
(@ID*100+1,9,1,0,0,0,100,0,0,0,0,0,0,90,8,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Earthcaller Ryga - On Script - Set Flag Standstate Kneel"),
|
||||
(@ID*100+1,9,2,0,0,0,100,0,10000,10000,0,0,0,91,8,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Earthcaller Ryga - On Script - Remove Flag Standstate Kneel"),
|
||||
|
||||
(@ID*100+2,9,0,0,0,0,100,0,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Earthcaller Ryga - On Script - Set Event Phase 1");
|
||||
|
||||
DELETE FROM `script_waypoint` WHERE `entry` = 17077;
|
||||
DELETE FROM `waypoints` WHERE `entry` IN (17077,17123);
|
||||
INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`point_comment`) VALUES
|
||||
(17077,1,-19.435663,3803.981,93.55267,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,2,-18.685663,3801.731,94.30267,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,3,-17.185663,3800.981,95.30267,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,4,-15.185663,3801.981,96.05267,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,5,-14.435663,3803.731,96.05267,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,6,-14.435663,3804.981,95.80267,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,7,-15.435663,3805.981,94.80267,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,8,-16.935663,3806.481,94.05267,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,9,-17.14388,3805.7651,93.82591,0,6000,"Ancestral Spirit Wolf"), --
|
||||
|
||||
(17077,10,-18.672201,3822.212,89.946106,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,11,-15.436849,3839.5933,86.010345,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,12,-13.511067,3869.3118,83.18117,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,13,-10.554254,3882.9075,83.18117,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,14,-3.270291,3897.9458,85.43117,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,15,5.854601,3906.4575,86.36614,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,16,21.961697,3917.6707,85.24114,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,17,40.73991,3927.2727,84.03038,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,18,60.198025,3935.109,81.423935,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,19,88.06445,3943.124,77.16091,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,20,116.48167,3942.2288,77.71034,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,21,140.60602,3938.9385,81.55002,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,22,171.98372,3938.8472,79.65354,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,23,192.11057,3941.6697,76.27854,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,24,210.7275,3945.3862,74.492744,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,25,229.317,3953.9805,73.117744,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,26,240.94531,3959.795,75.06353,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,27,252.27155,3963.4895,76.93853,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,28,273.8889,3978.8838,85.78987,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,29,290.13867,3990.5635,91.66487,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,30,320.1014,4005.4385,98.469826,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,31,338.62778,4002.79,104.993286,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,32,343.4465,3997.1423,109.36144,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,33,348.71088,3984.7383,115.98644,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,34,361.33035,3961.4485,123.48554,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,35,356.76953,3949.619,126.98554,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,36,346.75836,3922.0083,133.68163,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,37,347.1215,3899.5994,137.84831,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,38,347.1963,3880.4836,142.84831,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,39,337.12424,3856.1204,149.44649,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,40,331.16196,3842.576,153.38467,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,41,320.0521,3829.007,159.86176,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,42,313.16516,3826.182,160.61176,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,43,303.0879,3819.6777,163.98676,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,44,297.51276,3816.4011,165.62602,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,45,290.74023,3806.499,169.62602,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,46,285.93805,3794.88,174.97627,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,47,292.22098,3781.1619,181.85127,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,48,296.92133,3770.8481,185.10127,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,49,311.4395,3753.1104,184.11917,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,50,321.36182,3741.0325,184.36917,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,51,332.90778,3728.5825,184.65353,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,52,337.21378,3720.4072,184.01471,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,53,344.8604,3715.015,184.01471,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,54,358.15982,3716.5864,184.01471,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,55,366.21744,3719.898,184.01471,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,56,374.8206,3724.2727,184.15353,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,57,403.90103,3737.9128,180.65353,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,58,421.35953,3750.1697,184.40353,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,59,448.62393,3768.8801,186.51082,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,60,462.85294,3776.5051,186.38582,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,61,472.87814,3791.1094,187.16379,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,62,484.18484,3809.1467,188.67741,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,63,495.23938,3826.8103,191.55241,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,64,498.87946,3837.6038,193.37997,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,65,500.95297,3849.591,194.49019,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,66,505.95724,3862.4604,194.36519,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,67,511.11978,3869.2805,192.93457,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,68,518.094,3877.0725,191.80957,0,0,"Ancestral Spirit Wolf"), --
|
||||
(17077,69,521.2715,3882.2812,190.93457,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,70,526.9002,3885.513,190.05957,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,71,527.0562,3891.684,189.05957,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,72,521.69653,3890.5703,189.55957,0,0,"Ancestral Spirit Wolf"),
|
||||
(17077,73,520.24036,3885.3213,190.43457,0,0,"Ancestral Spirit Wolf"), --
|
||||
|
||||
(17123,1,509.49414,3881.9792,191.55957,0,0,"Earthcaller Ryga"),
|
||||
(17123,2,517.92773,3883.6355,190.68457,0,11000,"Earthcaller Ryga"), --
|
||||
(17123,3,505.5433,3882.0378,191.3179,0,0,"Earthcaller Ryga"),
|
||||
(17123,4,504.59192,3882.131,192.18457,5.79449319839477539,1,"Earthcaller Ryga");
|
||||
|
||||
UPDATE `creature_text` SET `Sound` = 9036 WHERE `CreatureID` = 17077 AND `GroupID` = 1;
|
||||
UPDATE `creature_text` SET `comment` = "Ancestral Spirit Wolf" WHERE `CreatureID` = 17077;
|
||||
UPDATE `creature_text` SET `comment` = "Earthcaller Ryga" WHERE `CreatureID` = 17123;
|
||||
|
||||
DELETE FROM `creature_template_movement` WHERE `CreatureId` = 17123;
|
||||
INSERT INTO `creature_template_movement` (`CreatureId`,`Ground`,`Swim`,`Flight`,`Rooted`,`Chase`,`Random`,`InteractionPauseTimer`) VALUES
|
||||
(17123,1,1,0,0,0,0,0);
|
||||
@@ -15,19 +15,6 @@
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Hellfire_Peninsula
|
||||
SD%Complete: 100
|
||||
SDComment: Quest support: 9375, 9410, 9418, 10129, 10146, 10162, 10163, 10340, 10346, 10347, 10382 (Special flight paths) "Needs update"
|
||||
SDCategory: Hellfire Peninsula
|
||||
EndScriptData */
|
||||
|
||||
/* ContentData
|
||||
npc_aeranas
|
||||
npc_ancestral_wolf
|
||||
npc_wounded_blood_elf
|
||||
EndContentData */
|
||||
|
||||
#include "ScriptMgr.h"
|
||||
#include "CellImpl.h"
|
||||
#include "GridNotifiersImpl.h"
|
||||
@@ -133,113 +120,6 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
/*######
|
||||
## npc_ancestral_wolf
|
||||
######*/
|
||||
|
||||
enum AncestralWolf
|
||||
{
|
||||
EMOTE_WOLF_LIFT_HEAD = 0,
|
||||
EMOTE_WOLF_HOWL = 1,
|
||||
SAY_WOLF_WELCOME = 0,
|
||||
SPELL_ANCESTRAL_WOLF_BUFF = 29938,
|
||||
NPC_RYGA = 17123
|
||||
};
|
||||
|
||||
class npc_ancestral_wolf : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_ancestral_wolf() : CreatureScript("npc_ancestral_wolf") { }
|
||||
|
||||
struct npc_ancestral_wolfAI : public EscortAI
|
||||
{
|
||||
npc_ancestral_wolfAI(Creature* creature) : EscortAI(creature) { }
|
||||
|
||||
void InitializeAI() override
|
||||
{
|
||||
if (me->GetOwner() && me->GetOwner()->GetTypeId() == TYPEID_PLAYER)
|
||||
{
|
||||
EscortAI::Start(false, false, me->GetOwner()->GetGUID());
|
||||
|
||||
me->SetSpeedRate(MOVE_WALK, 1.5f);
|
||||
|
||||
if (TempSummon* tempSummon = me->ToTempSummon())
|
||||
tempSummon->SetCanFollowOwner(false);
|
||||
}
|
||||
else
|
||||
TC_LOG_ERROR("scripts", "TRINITY: npc_ancestral_wolf can not obtain owner or owner is not a player.");
|
||||
}
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
}
|
||||
|
||||
// Override Evade Mode event, recast buff that was removed by standard handler
|
||||
void EnterEvadeMode(EvadeReason why) override
|
||||
{
|
||||
EscortAI::EnterEvadeMode(why);
|
||||
DoCast(me, SPELL_ANCESTRAL_WOLF_BUFF, true);
|
||||
}
|
||||
|
||||
void WaypointReached(uint32 waypointId, uint32 /*pathId*/) override
|
||||
{
|
||||
switch (waypointId)
|
||||
{
|
||||
case 0:
|
||||
Talk(EMOTE_WOLF_LIFT_HEAD);
|
||||
break;
|
||||
case 2:
|
||||
Talk(EMOTE_WOLF_HOWL);
|
||||
DoCast(me, SPELL_ANCESTRAL_WOLF_BUFF, true);
|
||||
break;
|
||||
// Move Ryga into position
|
||||
case 48:
|
||||
if (Creature* ryga = me->FindNearestCreature(NPC_RYGA, 70.0f))
|
||||
{
|
||||
if (ryga->IsAlive() && !ryga->IsInCombat())
|
||||
{
|
||||
ryga->SetWalk(true);
|
||||
ryga->SetSpeedRate(MOVE_WALK, 1.5f);
|
||||
ryga->GetMotionMaster()->MovePoint(0, 517.340698f, 3885.03975f, 190.455978f, true);
|
||||
}
|
||||
}
|
||||
break;
|
||||
// Ryga Kneels and welcomes spirit wolf
|
||||
case 50:
|
||||
if (Creature* ryga = me->FindNearestCreature(NPC_RYGA, 70.0f))
|
||||
{
|
||||
if (ryga->IsAlive() && !ryga->IsInCombat())
|
||||
{
|
||||
ryga->SetFacingTo(0.776773f);
|
||||
ryga->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
ryga->AI()->Talk(SAY_WOLF_WELCOME);
|
||||
}
|
||||
}
|
||||
break;
|
||||
// Ryga returns to spawn point
|
||||
case 51:
|
||||
if (Creature* ryga = me->FindNearestCreature(NPC_RYGA, 70.0f))
|
||||
{
|
||||
if (ryga->IsAlive() && !ryga->IsInCombat())
|
||||
{
|
||||
float fRetX, fRetY, fRetZ, fRetO;
|
||||
ryga->GetRespawnPosition(fRetX, fRetY, fRetZ, &fRetO);
|
||||
ryga->SetHomePosition(fRetX, fRetY, fRetZ, fRetO);
|
||||
ryga->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
ryga->GetMotionMaster()->MoveTargetedHome();
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_ancestral_wolfAI(creature);
|
||||
}
|
||||
};
|
||||
|
||||
enum ExorcismSpells
|
||||
{
|
||||
SPELL_JULES_GOES_PRONE = 39283,
|
||||
@@ -1009,7 +889,6 @@ struct npc_fear_controller : public ScriptedAI
|
||||
void AddSC_hellfire_peninsula()
|
||||
{
|
||||
new npc_aeranas();
|
||||
new npc_ancestral_wolf();
|
||||
new npc_colonel_jules();
|
||||
new npc_barada();
|
||||
new npc_magister_aledis();
|
||||
|
||||
Reference in New Issue
Block a user