PDA

View Full Version : terris thule script pb


sandy
06-19-2004, 10:03 AM
here are the npcs of the quest :

INSERT INTO `npc_types` VALUES (221000, 'Terris_Thule', NULL, 70, 257, 1, 1, 200000, 2, 0, 0, '30', 0, 0, 16119, 0, 32, 5, 390, 850, 'SEQ', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '0', '0', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0);
INSERT INTO `npc_types` VALUES (221009, 'A_Grotesque_Statue', NULL, 62, 280, 1, 1, 40000, 2, 0, 0, '25', 0, 0, 16000, 0, 0, 5, 300, 650, 'Q', 0, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, '0.67', '1.25', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0);
INSERT INTO `npc_types` VALUES (221005, '_', NULL, 60, 280, 1, 11, 18000, 2, 0, 0, '25', 0, 0, 0, 0, 0, 0, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '0.67', '1.25', 0, 0, 0, 0, 0, 0, 0, 1, 0, 0);
INSERT INTO `npc_types` VALUES (221010, 'A_Dream_Defiler', NULL, 59, 264, 9, 8, 25000, 2, 0, 0, '8', 0, 0, 16000, 0, 0, 5, 0, 340, '', 0, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, '0.67', '1.25', 0, 0, 0, 0, 0, 0, 1, 0, 0, 0);

Terris Thule ( npc 221000 ) is a god, her fight is an event that depends of her hit points percentage :

at start, she is in the center of her lair, there is 4 pillars and on each pillar there is an untargetable gargoyle ( npc 221005 ) :

at 75 % life : 10 dream defilers ( npc 221010 ) appear in the lair

at 50 % life : Terris Thule casts an aoe Dispell 12 slots : ( spell 3150 )

at 30 % life : the 4 untargetable gargoyles ( npc 221005 ) become targetable, in fact each gargoyle depop and repop in a targetable gargoyle ( npc 221009 )

Here are the files I have done :

221000.pl

sub EVENT_SPAWN
{
quest::setnexthpevent(75);
}

sub EVENT_HP
{
# butterflies spawn
if ( $hpevent == 75 ) {
# quest::shout("Script : Butterflies");
quest::spawn(221010,0,0,-1940,93,134,163);
quest::spawn(221010,0,0,-1868,142,134,146);
quest::spawn(221010,0,0,-1826,142,134,124);
quest::spawn(221010,0,0,-1763,77,134,114);
quest::spawn(221010,0,0,-1715,2,134,64);
quest::spawn(221010,0,0,-1715,-40,134,61);
quest::spawn(221010,0,0,-1755,-112,134,14);
quest::spawn(221010,0,0,-1826,-144,134,5);
quest::spawn(221010,0,0,-1870,-143,134,251);
quest::spawn(221010,0,0,-1944,-90,134,229);
quest::setnexthpevent(50);
}

# aoe dispell
if ( $hpevent == 50 ) {
# quest::shout("Script : Dispell");
quest::selfcast(3150);
quest::setnexthpevent(30);
}

# gargoyles awake
if ( $hpevent == 30 ) {
# quest::shout("Script : Gargoyles");
quest::signal(221005);
}

}

221005.pl

sub EVENT_SIGNAL
{
quest::depop();
quest::spawn(221009,0,0,$x,$y,$z,$h);
}

I have made Terris Thule permarooted ( walkspeed and runspeed = 0 ) so people can't exploit the fight by pulling her out of her lair because in eqlive when it is done she warp back to the center of her lair and i don't know how to do it =)

I have tried, all seems to work except the fact she doesn't cast the aoe dispell i don't understand why =(
any idea ?

animepimp
06-19-2004, 12:21 PM
I'm sure she's casting the spell because you have it correct, but the spell probably isn't working correctly. Try casting the spell on the player instead of on her, the Aoe may not work. If that doesn't work maybe dispel jsut isn't implemented. Also i'd try a few different dispels because they all work the same way, but some may work correctly while others don't.

sandy
06-20-2004, 04:03 AM
the dispell is a dispell 12 slot, there is no such other dispell
and i have looked at the emu source it seems implemented =(

KhaN
06-20-2004, 04:35 AM
Dispel is implemented and work.
Sandy, If you are not sure about your spell working, copy/paste spell here, i will have a look at it.

sandy
06-20-2004, 08:46 AM
nm

KhaN
06-20-2004, 09:58 PM
I added your spell to my server Sandy and i spend some time to test it.
For me, the spell need some tweak, as well as your quest. You actually use "quest::selfcast", im wondering if this dont restrict the spell to the NPC, whatever the target spell is, im not a dev, im not sure about this, maybe a dev could answer, but this could be why your are not dispelled, because the NPC SELFCAST.

For me, you should use "quest::castspell(id,spellid);", the problem now would be your spell is "Point Blank AE" and im not 100% sure the spell will work as wanted, the solution would be to set the spell target to "Target Based AE".
This way, Terris Thule cast spell on a PC, the PC is used as Target Based AE and raid party is dispelled, as AE range is very large it would be same thing as having Terris casting spell on herself.

I have never play PoP, so i dont how encounter really work, but this way could be a way to bypass your problem.

sandy
06-21-2004, 01:15 AM
I have tried, but which var to put for ID ?
I have tried $targetid, and $mobid, without success
=(

Swampdog
06-21-2004, 02:16 AM
Not sure how it would work with the HP_EVENT, but where I'ved tinkered around with the script it cast the spell on whoever activated the script. Again, that is easilly determined in a say event but not sure how it would work in the HP check and if the NPC would have a PC targeted. But would be definitely worth trying... :)

sandy
06-21-2004, 03:44 AM
you mean it is working in a EVENT_SAY ?
so it comes from EVENT_HP and the queue situation maybe
EVENT_HP happens when you are fighting, maybe when fighting it doesn't allow to cast spells with quests ?

KhaN
06-21-2004, 03:51 AM
Tryed ? quest::castspell($userid,3150);

sandy
06-21-2004, 04:28 AM
no, but ...
$userid = 0 no ??
the event_hp is triggered by a npc there is no user I think

KhaN
06-21-2004, 04:58 AM
If the mob is fighting, a player IS targeted no ?

For me, you need to get the user targetted, if want to make "High End Event" script for EQEmu (which is great), the only way i see to get it working is having a player targetted, because when the NPC will cast an AE slow as selfcast ... but maybe my logic isnt correct.
In EQ Logic, its sound incorrect having a debuff cast on yourself or a party member to debuff other pc/npc, a debuff (even if AE) is casted on an ennemy and used as AE start point.

sandy
06-21-2004, 05:04 AM
no there is target AE spells
but there is point blank AE spells too
it's important because knowing what is the max distance of a point blank AE spell is a big part of strategies

for the targeted user, it is $targetid not $userid i think ?

for this terris thule dispell, goal is to dispell everyone in the distance of the spell on 12 slots ( we have 15 buff slots max ), terris thule included
it is not illogic because she dispells then all debuff that players casted on her previously, so players have to redebuff her after this ae
it works like this in eqlive

Beretta
07-06-2004, 02:54 PM
I am not sure if this will work. I am still pretty new to Perl and working with quests, but couldnt you try something like this?



if ( $npcid = 221000 )
{
quest::cast(,3150);
}


I am not sure if this will work, but if its like SQL, you can use quest::castspell(,3150) to say cast spell 3150 on no target

Worth a shot, might not work, would be nice if it did though =-)

animepimp
07-06-2004, 04:27 PM
That code is illegal and will cause the file to not compile so it will revert to the default quest if you happen to have one. Every argument must have something in it.

sotonin
07-09-2004, 03:37 AM
Sandy the problem seems was PBAE in general.

it does a distance check before they are able to cast them. and in fact PBAE have distance of 0 so you have to be exactly under mob for it to go off on you.

ranger made a fix for it.

http://www.eqemulator.net/forums/viewtopic.php?t=15952