Quote:
Originally Posted by Cisyouc
try quest::givecash("1", "1", "1", "0"); ?
|
Same problem :(
btw, the full quest :
Code:
#################################
# #
# PROJECT THE EMBASSY #
# #
#################################
# RAT QUEST #
#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-#
# McFox #
#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-#
# newbie Quest #
# at South Qeynos. #
#################################
sub EVENT_SAY
{
if ($text=~ /Hail/i)
{
quest::say("Hello $name, have you seen these pasky rodents? They are everywhere and I simpli cannot stand them! If you are willing to do a little cleaning up of the pests here I will reward you for every four Rat Whiskers you bring me.");
}
}
sub EVENT_ITEM
{
if ( ($item1=13071) && ($item2=13071) && ($item3=13071) && ($item4=13071) )
{
quest::say("I am very impressed $name, a few more cleaners like yourself and wa could have a rodent free Qeynos in no time!");
quest::exp(200);
quest::me("Your faction standing with Guards of Qeynos got better.");
quest::me("Your faction standing with Antonius Bayle got better.");
quest::me("Your faction standing with Merchant of Qeynos got better.");
quest::me("Your faction standing with Corrupt Qeynos Guards got worse.");
quest::me("Your faction standing with Circle of Unseen Hands got worse.");
quest::faction(135,7);
quest::faction(9,5);
quest::faction(217,5);
quest::faction(33,-5);
quest::faction(53,-7);
quest::givecash("1","1","1","0");
}
}
And the quest::me work as a quest::say... :(
[EDIT]
Here is my default.pl :
Code:
sub EVENT_SAY{
$plugin::debug && quest::say("[debug]in qstdefault::EVENT_SAY");
#plugin::showvars();
plugin::dispatch();
}
sub EVENT_ITEM{
plugin::dispatch();
}
sub EVENT_DEATH{
plugin::dispatch();
}
sub EVENT_ATTACK{
plugin::dispatch();
}
sub EVENT_SPAWN{
plugin::dispatch();
}
sub EVENT_TIMER{
plugin::dispatch();
}
sub EVENT_SLAY{
plugin::dispatch();
}
sub EVENT_WAYPOINT{
plugin::dispatch();
}
my plugin.pl :
Code:
$SERVER="The Embassy";
$version="0.1";
#this is the main controller routine for default quests
sub dispatch{
my($pack, $filename, $line, $subr, $has_args, $want_array)=caller(1);
#$debug && quest::say("[debug]in dispatch");
#$debug && quest::say("[debug] package : $pack");
#$debug && quest::say("[debug] subroutine : $subr");
#get all variables in caller's scope
# first, we want to cleanup what was set by previous call
undef $job;
undef $interest;
undef $guild;
undef $mrace;
#$debug=0;
no strict 'refs';
my $package;
($package=$subr) =~ s/::\w+// ;
my $stash = *{$package . '::'}{HASH};
my $n;
foreach $n (keys %$stash) {
my $fullname = $package . '::' . $n;
if( defined $$fullname){
$$n=${$fullname};
#uncomment to get report of what is available
#quest::say("$n -> $$n (eqiv to $fullname)\n");
}
}
#$debug && quest::say("checking event");
#this looks for the correct routine to use, based on l=globals and event type
if(defined $subr){
my $event;
if($subr =~ /EVENT_SAY/) { $event="say";}
if($subr =~ /EVENT_SLAY/) { $event="slay";}
if($subr =~ /EVENT_DEATH/) { $event="death";}
if($subr =~ /EVENT_SPAWN/) { $event="spawn";}
if($subr =~ /EVENT_ITEM/) { $event="item";}
if($subr =~ /EVENT_ATTACK/) { $event="attack";}
if($subr =~ /EVENT_WAYPOINT/) { $event="waypoint";}
#now lookup the routine, and return after first match.
#the following assumes npc have a $job, $mrace and $guild global
# This is where precedence takes place :
# first look for an interest oriented event, then a job oriented match,
# then race dependant, then guild ...
# whatever you set as a global category for the mob
# If guild behaviour is more important (or more specific)
# than race or job, for example, move the line up.
# zone usually comes last, as it allows to reproduce the genuine
# 'default.pl' behavior.
# returning ensures you don't get 2,3 or 4 answers for an event
#$debug && showvars();
defined $interest && defined &{"$interest$event"} && &{"$interest$event"} && return;
defined $job && defined &{"$job$event"} && &{"$job$event"} && return;
defined $mrace && defined &{"$mrace$event"} && &{"$mrace$event"} && return;
defined $guild && defined &{"$guild$event"} && &{"$guild$event"} && return;
#eventually revert to the standard per-zone default.pl
defined &{"$zonesn$event"} && &{"$zonesn$event"} && return;
# we came here if there was no match (i.e. no specific routine
# for that event)
# do nothing then ? or ...
defined &{"default$event"} && &{"default$event"} && &{"default$event"} && return;
}
#we very unlucky to get here
}
sub showvars{
my($pack, $filename, $line, $subr, $has_args, $want_array)=caller(1);
#get all variables in caller's scope
no strict 'refs';
my $package;
($package=$subr) =~ s/::\w+// ;
my $stash = *{$package . '::'}{HASH};
my $n;
foreach $n (sort keys %$stash) {
my $fullname = $package . '::' . $n;
if( defined $$fullname){
$$n=${$fullname};
#uncomment to get report of what is available
quest::say("$n -> $$n (eqiv to $fullname)");
}else{
defined &$fullname && quest::say("function $fullname is defined");
}
}
}
#print "starting plugin for $SERVER\n";
and my commands.pl :
Code:
sub commands_init {
command_add("bank", "- spawn a temporary banker", 200);
command_add("giveitem", " (itemid) [charges] - give an item to a mob", 200);
}
sub bank {
#spawn Banker_Javen
quest::spawn(45054, 0, 0, $client->GetX()+10, $client->GetY(), $client->GetZ());
}
sub giveitem {
my $item = shift;
my $charges = 0;
if(defined($_[0])) {
$charges = shift;
}
my $target = $client->GetTarget();
if(!$target) {
$client->Message(13, "Error: You need a target!");
return;
} elsif(!$target->IsNPC()) {
$client->Message(13, "Error: your target must be an NPC!");
return;
}
my $n = $target->CastToNPC();
$client->Message(0, "Giving item $item to ".$n->GetName());
$n->AddItem($item, $charges);
}
The plugin.pl, commands.pl and default.pl have been get on eqemu website/forum