PDA

View Full Version : Quest global that would make a huge difference...


Aerewen
01-03-2007, 05:48 AM
currently we have quest globals like $name, $race, $class etc...

we also have ones to get the client ID... but theres a problem with anyone using a buffbot or anything where a quest needs to trigger a spell.

selfcast() uses the level of the player triggering the quest to determine how long it lasts and how much it boosts stats...

castspell() takes 2 inputs, the spell id and the targetid which as far as i can tell is the entity number for the target...

could we add something like $uent and $ment for player/user and monster entity numbers?

the functionality of this would be great for all kinds of quests.

signalwith() could be used to send an npc's entity id to another npc so they can be forced to aggro eachother or cast on eachother or whatever you want really... but as it stands there is no way to get the entity id for a player or npc which prevents a lot of the live quests from being recreated.

John Adams
01-04-2007, 07:16 AM
I'm fairly certain NPCs can aggro one another via the quest scripts now. Take a look at lakerathe, the Schmendrick / Natasha scripts. They start bitching and trash talking each other and that spirit of flame dude attacks and everything. The one I had trouble with was the plasmatic priest in Sol Temple (for cleric epic). I couldn't seem to get him to spawn and attack the unsuspecting cleric... never went back to that script since.

Aerewen
01-07-2007, 12:07 PM
yes but like say you want an npc to cast a spell on a player.

example:

You go hail bob the npc on one side of say... ruined city of dranik... you say some dialog which causes him to pop an npc on the other side of the zone. and i'm standing there waiting for him to spawn. I hand in some random item that is for this quest which instantly depops him and respawns the version we're to kill or something like that...

all of this can be done. but say i want to make that npc summon you from the other end of the zone?

i have no way to tell it to cast on you because castspell() takes a spell id and an npc id which gets converted to an entity id... and since i triggered the mob's script by handing in the item selfcast() would summon me, not you.

There are a number of things that could be done with this variable, that's just one example.

For all the people making buffbots in pok and whatnot... ever notice that a level 1 player who gets temp from one of these bots only has it for aout 15 mins?

or when you're level 1 and get the gloomingdeep guard it lasta about 2 mins? because we're using the level of the player who triggered the script...

i just think the functionality of this variable would be great to help emulate live servers' quests and whatnot.

KLS
01-10-2007, 09:27 AM
Forgive me, I'm having a difficult time understanding the concept you're trying to convey.

You want the entity_ids in variable form for the user and the npc?

$userid should return the entity ID of the user who triggered the quest.

if you wanted the entity_id from the quest giver you could do something like:
my $npc_id = $npc->GetID();

I feel I'm missing something though, could you elaborate? Sorry.

gernblan
02-15-2007, 01:56 PM
I think the key to this is quest objects.

We all need to study them more and get that wiki entry humming. SO MUCH untapped potential there.

Timers and signals especially need to be explained better.

Another great thing would be to have scripts or quests that "autorun" say, at certain times of day. If this is already possible I sure don't know how to do it-- it's undocumented. I'd really love to know.