|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Development::Feature Requests Post suggestions/feature requests here. |
08-06-2007, 05:38 AM
|
Sarnak
|
|
Join Date: Jul 2007
Posts: 79
|
|
spawning at certain percentage of health
I was wondering if it would be possible to write a sub EVENT_SPAWN or sub EVENT_ATTACK script for a mob to make him spawn certain things when his health gets to a certain %. Like when he reaches 70% have him spawn 10-15 little mini versions that the people have to kill, then 40% maybe he takes on another form, stuff like that. And if it's possible to do this, anyone know the commands you would write? I've written some quests before but not sure how you would do a health check.
|
08-06-2007, 07:21 AM
|
Hill Giant
|
|
Join Date: Mar 2004
Posts: 139
|
|
I'm pretty sure you can do this using EVENT_HP.
|
08-06-2007, 09:13 AM
|
Hill Giant
|
|
Join Date: Oct 2006
Posts: 248
|
|
yes EVENT_HP will do this quite well. some points to note:
1) the spawned mobs will need to be tuned for aggro. if they spawn and are green to the players they might just stand there and watch their overlord get spanked. (set aggro appropriately similar to how undead ignore level for aggro).
2) add in a "despawn" timer or "upper minion limit" so that if the players attempt the mob several times, they dont end up having to fight several waves of the same minions.
3) add in some form of quest::shout or quest::say so that the players get some clue as to whats happened, otherwise they might assume the server screwed them with a spurious spawn.
have fun
== sfisque
|
08-06-2007, 10:00 AM
|
Sarnak
|
|
Join Date: Jul 2007
Posts: 79
|
|
ok cool thanks I'll play around with that. How would I Set the HP check though? I can't seem to find anything in the checks that would be like quest::hp or something of that sort. What's the check? SOmething like quest::health or such?
|
08-06-2007, 10:39 AM
|
Sarnak
|
|
Join Date: Jul 2007
Posts: 79
|
|
Ok i found the quest::setnexthpevent but I'm not sure how to set the correct percentage. I tried quest::setnexthpevent(80) for 80% and also tried quest::setnexthpevent(1480200) because thats 80% of his max health and neither worked. Heres the .pl file right now.
sub EVENT_DEATH
{
quest::spawn(2700027,0,0,-532.4,-1920.9,15.6);
}
sub EVENT_HP
{
quest::setnexthpevent(1480200){
quest::spawn(2700036,0,0,-532.4,-1920.9,15.6);
quest::spawn(2700036,0,0,-540.8,-1902.8,15.6);
quest::spawn(2700036,0,0,-569.5,-1895.7,15.6);
quest::spawn(2700036,0,0,-582.0,-1913.3,16.5);
}
}
|
|
|
|
08-06-2007, 01:35 PM
|
Sarnak
|
|
Join Date: Aug 2006
Posts: 60
|
|
Quote:
Originally Posted by lanileb
Ok i found the quest::setnexthpevent but I'm not sure how to set the correct percentage. I tried quest::setnexthpevent(80) for 80% and also tried quest::setnexthpevent(1480200) because thats 80% of his max health and neither worked. Heres the .pl file right now.
sub EVENT_DEATH
{
quest::spawn(2700027,0,0,-532.4,-1920.9,15.6);
}
sub EVENT_HP
{
quest::setnexthpevent(1480200){
quest::spawn(2700036,0,0,-532.4,-1920.9,15.6);
quest::spawn(2700036,0,0,-540.8,-1902.8,15.6);
quest::spawn(2700036,0,0,-569.5,-1895.7,15.6);
quest::spawn(2700036,0,0,-582.0,-1913.3,16.5);
}
}
|
There are a few examples in the quest q and a section.
Would do this:
Code:
sub EVENT_SPAWN {
quest::setnexthpevent(80);
}
sub EVENT_AGGRO
{
quest::stoptimer(1);
}
sub EVENT_SLAY {
quest::settimer(1,20);
}
sub EVENT_TIMER {
if ($timer == 1) {
quest::stoptimer(1);
quest::signalwith(2700036,1,0000);
}
}
sub EVENT_HP
{
if($hpevent == 80) {
quest::spawn(2700036,0,0,-532.4,-1920.9,15.6);
quest::spawn(2700036,0,0,-540.8,-1902.8,15.6);
quest::spawn(2700036,0,0,-569.5,-1895.7,15.6);
quest::spawn(2700036,0,0,-582.0,-1913.3,16.5);
}
}
sub EVENT_DEATH
{
quest::spawn(2700027,0,0,-532.4,-1920.9,15.6);
}
You can ignore my timer, event aggro and event slay. They're just for controlling add despawn. I'd add this for your adds 2700036.pl:
Code:
sub EVENT_SIGNAL {
if ($signal == 1) {
quest::depop();
}
}
|
|
|
|
08-06-2007, 01:38 PM
|
Hill Giant
|
|
Join Date: Oct 2006
Posts: 248
|
|
add:
sub EVENT_SPAWN
{
#sets the HP event signal for 80% health
quest::setnexthpevent(80);
}
== sfisque
ps: lol striat posted just before me.
|
08-06-2007, 01:50 PM
|
Sarnak
|
|
Join Date: Jul 2007
Posts: 79
|
|
Awesome thank you so much for that script, except the despawn doesn't seem to work properly. I'm gonna try writing my own right now and I'll let ya know how it turns out.
|
08-06-2007, 02:00 PM
|
Sarnak
|
|
Join Date: Jul 2007
Posts: 79
|
|
Ahh I didn't notice the sub EVENT_SIGNAL goes into 2700036.pl I put into 25, one second and I'll try that
|
08-06-2007, 03:02 PM
|
Sarnak
|
|
Join Date: Jul 2007
Posts: 79
|
|
OK I got it working. Didn't have the signal set properly in my 2700025.pl file so I set that for
sub EVENT_DEATH
quest::signalwith(2700036,1)
so now the signal properly identifies to the minions to despawn. Now to start adding in my health checks, I want him to spawn 4 at 80% 6 at 60% 10 at 40% and 15 at 20% hehe
|
|
|
|
08-07-2007, 02:46 AM
|
Sarnak
|
|
Join Date: Jul 2007
Posts: 79
|
|
Ok sorry to keep this thread goin like this...now I can't get something else to work. The spawn/despawn scripts work perfect. I can't seem to get a quest::shout included in those though. This is what I have.
{
if($hpevent == 80) {
quest::shout("Come forward my Wraiths! Bring Terror upon these foolish ones who have disturbed me!");
quest::spawn(2700036,0,0,-532.4,-1920.9,15.6);
quest::spawn(2700036,0,0,-540.8,-1902.8,15.6);
quest::spawn(2700036,0,0,-569.5,-1895.7,15.6);
quest::spawn(2700036,0,0,-582.0,-1913.3,16.5);
}
if($hpevent == 60) {
quest::shout("You have gotten this far and here you will die. Prepare for the worst ignorant fools!");
quest::spawn(2700036,0,0,-536.2,-1907.0,15.6);
quest::spawn(2700036,0,0,-548.3,-1894.2,15.6);
quest::spawn(2700036,0,0,-532.4,-1920.9,15.6);
quest::spawn(2700036,0,0,-540.8,-1902.8,15.6);
quest::spawn(2700036,0,0,-569.5,-1895.7,15.6);
quest::spawn(2700036,0,0,-582.0,-1913.3,16.5);
}
The first shout will work while the second one will not. I dont see any coding problems in it however...
|
|
|
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -4. The time now is 12:19 AM.
|
|
|
|
|
|
|
|
|
|
|
|
|