|
|
 |
 |
 |
 |
|
 |
 |
|
 |
 |
|
 |
|
Quests::Q&A This is the quest support section |

08-01-2008, 05:24 PM
|
Hill Giant
|
|
Join Date: May 2008
Location: Colorado
Posts: 238
|
|
Remove Item
Is there a quest function for removing an item from a player upon the player's death? I have an Event_Slay that triggers a check_hasitem upon killing a player. If the player is carrying the item, I want the npc to "loot" it (really, just remove it from the player). It does not have to happen at the player's death; it could just as easily be an hp event. Either way, what do I use to remove the item from the player? Is there a quest::removeitem() function?
|

08-01-2008, 05:49 PM
|
Dragon
|
|
Join Date: May 2006
Location: Cincinnati, OH
Posts: 689
|
|
On our server, we wound up with players farming zones I didn't realize were revamped for the drops that were there. This obviously presented a problem.
We use a translocating NPC for people to get around. I set a proximity for him of 50 units. Then I set an enter proximity script like this:
Code:
sub EVENT_ENTER {
if ($name ne /Greenmist/){
$client->NukeItem(XXXXX);
}
}
There was a whole list. Anyone but me would have those items nuked from their person with no fanfare or even a message. It would work just as well under other sub EVENT types so long as you have a method for triggering it.
Hope this helps =)
|

08-01-2008, 06:14 PM
|
Hill Giant
|
|
Join Date: May 2008
Location: Colorado
Posts: 238
|
|
very nice, SO-, thank you. That will work perfectly. Is there another quest list that contains commands like this, besides the Lexicon and this page? Where else might I find obscure quest functions?
|

08-01-2008, 06:16 PM
|
Dragon
|
|
Join Date: May 2006
Location: Cincinnati, OH
Posts: 689
|
|
The QuestObjects Wiki page.
|

08-01-2008, 07:36 PM
|
Hill Giant
|
|
Join Date: May 2008
Location: Colorado
Posts: 238
|
|
Very helpful thanks!
Any reason I cannot access the entityList page?
|

08-01-2008, 08:26 PM
|
Dragon
|
|
Join Date: May 2006
Location: Cincinnati, OH
Posts: 689
|
|
It isn't written. When you try to access it, it's prompting you to write it.
|

08-02-2008, 02:41 AM
|
Hill Giant
|
|
Join Date: May 2008
Location: Colorado
Posts: 238
|
|
Okay, I can't seem to get this concept to work. The following script is on an npc that kills a player who has an item (the player script causes the npc to add the player with the item to his hate list):
Quote:
sub Event_Slay
{
if(plugin::check_hasitem($client, 13732)
{
$client->NukeItem(13732);
}
}
|
Is the Event_Slay able to trigger the client losing an item after the character is dead? I replaced NukeItem with RemoveItem and client with corpse, but to no avail. Can't figure out why this isn't working. Should I be using a different event?
|

08-02-2008, 03:01 AM
|
 |
Developer
|
|
Join Date: Mar 2003
Posts: 1,498
|
|
Case Sensitive?
Might be case sensitive. Try sub EVENT_SLAY
|

08-02-2008, 03:04 AM
|
 |
Developer
|
|
Join Date: Aug 2006
Location: USA
Posts: 5,946
|
|
It could be because the character is already zoning when it tries to run the script. I don't know if it would work the way you want it to. Also, if you have the zone set as dynamic and the only player in the zone dies, that zone will drop immediately. And, I imagine that would stop the script from running as well.
And, I do think it is case sensitive.
|

08-03-2008, 10:33 PM
|
Hill Giant
|
|
Join Date: May 2008
Location: Colorado
Posts: 238
|
|
Okay, I finally got SLAY to work here:
Quote:
sub EVENT_SLAY
{
if(plugin::check_hasitem($client, 13732))
{
$client->NukeItem(13732);
}
}
|
Thanks for the help!
|
 |
|
 |

07-30-2009, 03:25 PM
|
Sarnak
|
|
Join Date: Jul 2004
Posts: 98
|
|
Im attempting to use this as part of a Perl script that will allow NPC's to Add/remove loot to their loot tables according to wether or not they have a specific TASK.
I Have Tried these two different scripts:
Code:
sub EVENT_SIGNAL {
if($signal == 11) && (plugin::check_hasitem($npc, 3233)) {
$npc->NukeItem(3233);
quest::shout("got signal from trigger, removing 1 heart");
}
}
^^ Receives a signal from an outside trigger ^^
And simply
Code:
sub EVENT_EXIT
{
if (quest::istaskactivityactive(500,0)) {
$client->Message(4, "left area, removing 1 heart");
$npc->NukeItem(3233);
}
}
Neither one seems to fire off at all, debugging using alot of client messages and shout messages... everytime perl gets to the $npc->NukeItem(3233); it simply just stops... not sure what else i can do to remove the items... I tried using signalwiths because i figured that the entity $npc hadnt been defined because its in the sub EVENT_EXIT (which is all $client) - I Think????
The situation is... Trakanon spawns, sets a radius... If anyone with a task enters the radius it adds 1 quest item (this parts working). Problem is, if characters leave and re-enter the radius he adds an extra heart - this is what im trying to combat. What i want to do is have it so that when the players leave the radius it will remove the same heart that was added when they entered.
Any responses will be greatly appreciated! =)
|
 |
|
 |
 |
|
 |

07-30-2009, 03:41 PM
|
Sarnak
|
|
Join Date: Jul 2004
Posts: 98
|
|
Here is the Full Script... just incase its confusing..
TRAKANON
Code:
sub EVENT_SPAWN {
my $x = $npc->GetX();
my $y = $npc->GetY();
my $range = 210;
quest::set_proximity($x - $range, $x + $range, $y - $range, $y + $range);
}
sub EVENT_ENTER
{
if (quest::istaskactivityactive(500,0)) {
$client->Message(4, "Quest Item Added To Loot Table");
quest::addloot(3233,1);
}
}
sub EVENT_EXIT
{
if (quest::istaskactivityactive(500,0)) {
$client->Message(4, "signal sent");
quest::signalwith(999456,10,1); #Signal to questloot_trigger to send signal back
}
}
sub EVENT_SIGNAL {
if($signal == 11) && (plugin::check_hasitem($npc, 3233)) {
$npc->NukeItem(3233);
quest::shout("got signal from trigger, removing 1 heart");
}
}
QUESTLOOT_TRIGGER
Code:
sub EVENT_SIGNAL {
if($signal == 10) {
quest::shout("TRIGGER RECIEVED GO AHEAD");
quest::signalwith(89154,11,1); #Signal for trakky to remove the item
}
}
I Originally had it just try to remove the item when they EVENT_EXIT, but i think its not really sure who $npc is... Sorry im not very good with the quest objects yet; does it need to be defined somewhere?
|
 |
|
 |

07-31-2009, 08:54 AM
|
 |
Developer
|
|
Join Date: Mar 2003
Posts: 1,498
|
|
Here's at least 1 of your problems:
Code:
if($signal == 11) && (plugin::check_hasitem($npc, 3233)) {
should be
Code:
if(($signal == 11) && (plugin::check_hasitem($npc, 3233)) {
Haven't tested out the other portions for you yet.
|

07-31-2009, 10:00 AM
|
Sarnak
|
|
Join Date: Jul 2004
Posts: 98
|
|
Using this bit of code... I can get trakanon to respond, the addition of the line:
$npc->NukeItem(3233);
Causes the script to break.
Code:
sub EVENT_SIGNAL {
if($signal == 11) {
quest::shout("got signal from trigger, removing 1 heart");
}
}
^^ WORKING
Code:
sub EVENT_SIGNAL {
if($signal == 11) {
$npc->NukeItem(3233);
quest::shout("got signal from trigger, removing 1 heart");
}
}
^^BROKEN^^
Anyone know what would cause that quest object to break my script???
|

07-31-2009, 10:04 AM
|
Sarnak
|
|
Join Date: Jul 2004
Posts: 98
|
|
OK i found the issue, using this page:
http://www.eqemulator.net/wiki/wikka...a=QuestObjects
Apparently the handle NukeItem is not supported for npc->
Anyone know another way of removing items from mobs via Quest script??? These scripts could prove quite usefull for any mob that has the ability to drop quest items...
|
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 07:05 AM.
|
|
 |
|
 |
|
|
|
 |
|
 |
|
 |