PDA

View Full Version : PC input into quest


jeffpuff
08-28-2006, 01:58 PM
Is there a way I can use and item number spoken by a pc as the input for quest::summonitem() example:

sub EVENT_ITEM
{
if ((itemcount, 99999 = 1))
{
quest:say("Very well, tell me the item you desire")
}
quest::summonitem(this is where I want the PC input));
}
}

Jeff

John Adams
08-29-2006, 11:36 AM
Hmm. Interesting concept. You could try quest::summonitem($text); carefully nested inside an if(condition) since I believe "$text" holds the value of what you /say to the targetted NPC... Try it, let us know.

ylosh
08-29-2006, 01:11 PM
sub EVENT_SAY {
if($text=~/.*/i) {
quest::summonitem($text);
}
}

jeffpuff
08-29-2006, 01:19 PM
Awesome, thanks guys... will try it out after I get home from work.


Next question is can I lock this inside an item turn in? I only want the PC to be able to trigger this after they turn in an item.

sub EVENT_ITEM
{
if ((itemcount, 99999 = 1))
{
quest:say("Very well, tell me the item you desire")
sub EVENT_SAY {
if($text=~/.*/i) {
quest::summonitem($text);
}
}

Would this lock away the EVEN_SAY behind the EVENT_ITEM, or is this wrong all together on having both sub events in there?

ylosh
08-29-2006, 07:50 PM
no, you can only have one event_say in the file.

you can set a temporary variable to have the npc summon the item when whatever key item is handed in..


sub EVENT_SPAWN {
$variable = 0;
}

sub EVENT_SAY {
if ($variable == 1) {
if ($text=~/.*/i) {
quest::summonitem($text);
$variable = 0;
}
}
elsif ($text=~/hail/i) { #all other dialogue
quest::say("hello");
}
elsif ($text=~/something else/i) {
quest::say("more dialogue");
}
}

sub EVENT_ITEM {
if (plugin::check_handin(\%itemcount, 1001 => 1)) {
quest::say("blah blah give me an item id number");
$variable = 1;
}
plugin::return_items(\%itemcount);
}

John Adams
08-30-2006, 01:53 AM
sub EVENT_SAY {
if($text=~/.*/i) {
quest::summonitem($text);
}
}
Holy crap. You mean I was right? Damn, I must have accidentally learned something. :)

Thx Ylosh!

fathernitwit
08-30-2006, 03:37 PM
sub EVENT_SAY {
if($text=~/[0-9]+/i) {
quest::summonitem($text);
}
}

would be more accurate, as quest::summonitem("joe") or quest::summonitem("Hail, Slut"), etx arnt all that meaningful

ylosh
08-30-2006, 05:41 PM
heh, thanks fnw..