PDA

View Full Version : Is it posible


knight-mare
07-09-2014, 11:00 AM
Is it possible to have a quest to unlock expansions providing you kill lets says a boss mob or two?

provocating
07-09-2014, 01:12 PM
I would think it would be rather easy, you just make the zone require a key. The mob would drop the key.

knight-mare
07-10-2014, 05:59 PM
but how would this work to unlock a full expantion... say velious ?

i can see how it would work to unlock one zone

even using a quest script id imagain id have to flag players in one way or another or maybe even accounts using the status setting

provocating
07-10-2014, 06:46 PM
I do not see where that changes anything, take for instance if you wanted to make all of expansion 15 require a certain key.


UPDATE zone SET flag_needed='some_flag' WHERE expansion='15';

There may be some better way of doing it, but I think this would work.

Maze_EQ
07-11-2014, 05:11 AM
Qglobals ftw.

knight-mare
07-11-2014, 06:03 PM
if this can be done by qglobals... can you give any pointers as to howi would config this?

and thanks prov for the flag thing thats the idea i orig had but if theres a better way im all ears

Esildor
07-11-2014, 06:56 PM
You could set all the zones for one expansion behind the same 'key' then you should be able to do something like:


$client->KeyRingAdd();


Or, set 'flag_needed' in the zone table to 1, then:


quest::set_zone_flag(zone_id)


You could couple that with a qglobal just for tracking in your database/to have a mob that checks flags, something like:


quest::setglobal("Velious_Access",1,5,"F");


Thing is whenever you perform the quest::set_zone_flag(zone_id) on the client you would have to do it for however many zones are in the particular expansion you're locking up.

Provocating's idea seems a better way to do it to me.

Although, if you wanted to lock it behind multiple bosses, use qglobals upon the bosses death then use another NPC to unlock the expansion, i.e.:

This will signal all the clients in the zone at the time, the signal is then received in the player.pl for that zone..


sub EVENT_DEATH_COMPLETE {
$entity_list->SignalAllClients(1);
}



in player.pl, this will set this qglobal for every player in the zone at the time of the bosses death, so, if you want it to only be a certain # of people, put your boss in an instance or something


sub EVENT_SIGNAL {
if ($signal == 1) {
quest::setglobal("boss1dead",1,5,"F");
}
}


So you could replicate that for however many bosses you have locking the expansion, lets say 3. Then on the NPC you're using to check boss kills you would do something like:


sub EVENT_SAY {
if ($text =~/hail/i) {
if (defined $qglobals{"boss1dead"} && $qglobals{"boss2dead"} && $qglobals{"boss3dead"}) {
quest::set_zone_flag(zone_id);
}
}
}


This would check to see if the player has the qglobals from killing the other 3 bosses, if they do, then the NPC can unlock the expansion for them.

P.S.:

Make sure your signals are unique between player.pl's and the global_player.pl, signals will be sent to the global and player.pl for the particular zone so if you had a signal of 1 being received in the global_player.pl it would also fire

knight-mare
07-11-2014, 07:32 PM
another idea ive thought of is... make some custom items (such as shards etc)
have them drop from said raid mobs and people have to return them in order for expansions to unlock

Maze_EQ
07-15-2014, 05:30 AM
Or...............qglobals