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

04-10-2011, 04:29 PM
|
Dragon
|
|
Join Date: Dec 2008
Location: Tennessee
Posts: 656
|
|
zone instancing
I want to create a zone instance using completely unique spawns that were not part of the non-instanced version of that zone. Now using the version field for the npc to control what version of the zone it spawns in doesn't seem like it would work in this case because the spawn chance for the unique spawns would have to be set to 0 otherwise they would show up in the normal version of the zone. Now if spawns in zone instances work like normal zones then the zone instance would be void of life. Assuming the version field can't be used is it possible to retrieve a zone instance id and then spawn npcs within that instance using quest::spawn2()? How much of a strain does zone instancing cause on a computer because I would be attempting to spawn between 170-308 npcs depending on the zone.
The reason I want to do this is that I have completely custom versions of Crystallos, Bloodmoon Keep and Loping Plains that I am currently using in place of the normal zone versions. The problem is I want to use the normal versions of the zone for exp and such then have the custom versions instanced for group/raid content.
I have not started this script yet because I am not sure if it is possible to do....so any thoughts or suggestions would be greatly appreciated.
|
 |
|
 |

04-11-2011, 06:20 AM
|
Sarnak
|
|
Join Date: May 2010
Posts: 39
|
|
If I am understanding you correctly you can and want to use the version field in the db to make a separate instance.
Set up your spawns as you desire for the instance and make sure the NPC has the correct version set in both the npc_types and spawn2 tables. Only thing you should need to use perl for is to create the instance. You can do this for multiple instances within the same zone if you want, ikkinz has seven different versions.
|

04-11-2011, 03:11 PM
|
Dragon
|
|
Join Date: Dec 2008
Location: Tennessee
Posts: 656
|
|
Doh some how did i managed to over look the version field in spawn2. That should make a big difference. Thanks for the help.
|
 |
|
 |

04-12-2011, 12:41 AM
|
Dragon
|
|
Join Date: Dec 2008
Location: Tennessee
Posts: 656
|
|
Well I thought I had this working but still no npc's showing up inside the instance. So now I am not sure if the instance is working at all. The npc was working just fine prior to changing the version number in npc_types and spawn2 tables.
What am I doing wrong?
Test Script
Code:
sub EVENT_SAY {
my $group = $client->GetGroup();
if ($text =~/Hail/i)
{
quest::say("Just say the word [group].");
}
if (($text =~/group/i) && $ulevel >= 80 && $hasitem{219532} && $group) {
quest::CreateInstance("crystallos", 1, 21600);
quest::AssignGroupToInstance("crystallos");
quest::MovePCInstance(446, "crystallos", -65, -200, -75);
}
elsif (($text =~/group/i) && $ulevel <= 79 && $hasitem{219532} && $group) {
quest::say("Sorry but you are not strong enough for this quest come back when you have gained more experience.");
}
elsif (($text =~/group/i) && $ulevel >= 80 && !$hasitem{219532} && $group) {
quest::say("Sorry but you do not have the key needed to enter the zone for this quest. Seek out the Relic Gatekeeper, she might be able to help you.");
}
elsif (($text =~/group/i) && $ulevel >= 80 && $hasitem{219532} && !$group) {
quest::say("Sorry but you are not in a group. Find a group then try again.");
}
}
NPC that is suppose to go into the instance
Code:
INSERT INTO `spawnentry` (`spawngroupID`, `npcID`, `chance`) VALUES (700110, 700011, 100);
INSERT INTO `spawngroup` (`id`, `name`, `spawn_limit`, `dist`, `max_x`, `min_x`, `max_y`, `min_y`, `delay`) VALUES (700110, '700110', 1, 0, 0, 0, 0, 0, 0);
INSERT INTO `spawn2` (`id`, `spawngroupID`, `zone`, `version`, `x`, `y`, `z`, `heading`, `respawntime`, `variance`, `pathgrid`, `_condition`, `cond_value`, `enabled`) VALUES (700011, 700110, 'crystallos', 1, -996.799988, -351.299988, -426.399994, 8.900000, 1200, 0, 0, 0, 1, 1);
INSERT INTO `npc_types` (`id`, `name`, `lastname`, `level`, `race`, `class`, `bodytype`, `hp`, `gender`, `texture`, `helmtexture`, `size`, `hp_regen_rate`, `mana_regen_rate`, `loottable_id`, `merchant_id`, `npc_spells_id`, `npc_faction_id`, `adventure_template_id`, `trap_template`, `mindmg`, `maxdmg`, `npcspecialattks`, `aggroradius`, `face`, `luclin_hairstyle`, `luclin_haircolor`, `luclin_eyecolor`, `luclin_eyecolor2`, `luclin_beardcolor`, `luclin_beard`, `drakkin_heritage`, `drakkin_tattoo`, `drakkin_details`, `armortint_id`, `armortint_red`, `armortint_green`, `armortint_blue`, `d_meele_texture1`, `d_meele_texture2`, `prim_melee_type`, `sec_melee_type`, `runspeed`, `MR`, `CR`, `DR`, `FR`, `PR`, `Corrup`, `see_invis`, `see_invis_undead`, `qglobal`, `AC`, `npc_aggro`, `spawn_limit`, `attack_speed`, `findable`, `STR`, `STA`, `DEX`, `AGI`, `_INT`, `WIS`, `CHA`, `see_hide`, `see_improved_hide`, `trackable`, `isbot`, `exclude`, `ATK`, `Accuracy`, `slow_mitigation`, `version`, `maxlevel`, `scalerate`, `private_corpse`, `unique_spawn_by_name`) VALUES (700011, 'Hyrdos, Guardian of Crystallos', NULL, 90, 530, 9, 26, 5500000, 2, 1, 6, 250, 500, 0, 750001, 0, 547, 79, 0, 0, 12000, 12000, 'SERrFTQMCNIDf', 250, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 28, 2.5, 350, 350, 350, 350, 350, 0, 1, 1, 1, 6000, 0, 1, -75, 0, 750, 750, 750, 750, 750, 750, 750, 1, 0, 1, 0, 3, 20000, 0, 0, 1, 0, 100, 0, 0);
|
 |
|
 |

04-12-2011, 01:05 AM
|
Demi-God
|
|
Join Date: Aug 2010
Posts: 1,742
|
|
CreateInstance returns an instance ID.
That is what you should pass to AssignGroupToInstance and MovePCInstance instead of "crystallos".
|
 |
|
 |

04-12-2011, 01:28 AM
|
 |
Administrator
|
|
Join Date: Feb 2009
Location: MN
Posts: 2,072
|
|
Quote:
Originally Posted by blackdragonsdg
Well I thought I had this working but still no npc's showing up inside the instance. So now I am not sure if the instance is working at all. The npc was working just fine prior to changing the version number in npc_types and spawn2 tables.
What am I doing wrong?
Test Script
Code:
sub EVENT_SAY {
my $group = $client->GetGroup();
if ($text =~/Hail/i)
{
quest::say("Just say the word [group].");
}
if (($text =~/group/i) && $ulevel >= 80 && $hasitem{219532} && $group) {
quest::CreateInstance("crystallos", 1, 21600);
quest::AssignGroupToInstance("crystallos");
quest::MovePCInstance(446, "crystallos", -65, -200, -75);
}
elsif (($text =~/group/i) && $ulevel <= 79 && $hasitem{219532} && $group) {
quest::say("Sorry but you are not strong enough for this quest come back when you have gained more experience.");
}
elsif (($text =~/group/i) && $ulevel >= 80 && !$hasitem{219532} && $group) {
quest::say("Sorry but you do not have the key needed to enter the zone for this quest. Seek out the Relic Gatekeeper, she might be able to help you.");
}
elsif (($text =~/group/i) && $ulevel >= 80 && $hasitem{219532} && !$group) {
quest::say("Sorry but you are not in a group. Find a group then try again.");
}
}
NPC that is suppose to go into the instance
Code:
INSERT INTO `spawnentry` (`spawngroupID`, `npcID`, `chance`) VALUES (700110, 700011, 100);
INSERT INTO `spawngroup` (`id`, `name`, `spawn_limit`, `dist`, `max_x`, `min_x`, `max_y`, `min_y`, `delay`) VALUES (700110, '700110', 1, 0, 0, 0, 0, 0, 0);
INSERT INTO `spawn2` (`id`, `spawngroupID`, `zone`, `version`, `x`, `y`, `z`, `heading`, `respawntime`, `variance`, `pathgrid`, `_condition`, `cond_value`, `enabled`) VALUES (700011, 700110, 'crystallos', 1, -996.799988, -351.299988, -426.399994, 8.900000, 1200, 0, 0, 0, 1, 1);
INSERT INTO `npc_types` (`id`, `name`, `lastname`, `level`, `race`, `class`, `bodytype`, `hp`, `gender`, `texture`, `helmtexture`, `size`, `hp_regen_rate`, `mana_regen_rate`, `loottable_id`, `merchant_id`, `npc_spells_id`, `npc_faction_id`, `adventure_template_id`, `trap_template`, `mindmg`, `maxdmg`, `npcspecialattks`, `aggroradius`, `face`, `luclin_hairstyle`, `luclin_haircolor`, `luclin_eyecolor`, `luclin_eyecolor2`, `luclin_beardcolor`, `luclin_beard`, `drakkin_heritage`, `drakkin_tattoo`, `drakkin_details`, `armortint_id`, `armortint_red`, `armortint_green`, `armortint_blue`, `d_meele_texture1`, `d_meele_texture2`, `prim_melee_type`, `sec_melee_type`, `runspeed`, `MR`, `CR`, `DR`, `FR`, `PR`, `Corrup`, `see_invis`, `see_invis_undead`, `qglobal`, `AC`, `npc_aggro`, `spawn_limit`, `attack_speed`, `findable`, `STR`, `STA`, `DEX`, `AGI`, `_INT`, `WIS`, `CHA`, `see_hide`, `see_improved_hide`, `trackable`, `isbot`, `exclude`, `ATK`, `Accuracy`, `slow_mitigation`, `version`, `maxlevel`, `scalerate`, `private_corpse`, `unique_spawn_by_name`) VALUES (700011, 'Hyrdos, Guardian of Crystallos', NULL, 90, 530, 9, 26, 5500000, 2, 1, 6, 250, 500, 0, 750001, 0, 547, 79, 0, 0, 12000, 12000, 'SERrFTQMCNIDf', 250, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 28, 2.5, 350, 350, 350, 350, 350, 0, 1, 1, 1, 6000, 0, 1, -75, 0, 750, 750, 750, 750, 750, 750, 750, 1, 0, 1, 0, 3, 20000, 0, 0, 1, 0, 100, 0, 0);
|
Refer to:
http://eqemulator.org/forums/showthread.php?t=32609
Code:
if (($text =~/group/i) && $ulevel >= 80 && $hasitem{219532} && $group) {
plugin::SendToInstance("group", "crystallos", 1, -65, -200, -75, "grp", 21600);
}
This requires checkout of the Plugins Repo SVN:
http://eqemulator.org/forums/showthread.php?t=32608
|
 |
|
 |

04-12-2011, 02:28 AM
|
Dragon
|
|
Join Date: Dec 2008
Location: Tennessee
Posts: 656
|
|
Quote:
Originally Posted by lerxst2112
CreateInstance returns an instance ID.
That is what you should pass to AssignGroupToInstance and MovePCInstance instead of "crystallos".
|
Umm yeah, while I know what you mean with that statement my attempts to implement that lead to a zone loop back issue, same result I had before and complete failure.
|

04-12-2011, 03:41 AM
|
Dragon
|
|
Join Date: Dec 2008
Location: Tennessee
Posts: 656
|
|
Akkadius, that plugin worked flawlessly. Thank you for sharing that.
|

04-12-2011, 03:46 AM
|
Demi-God
|
|
Join Date: Aug 2010
Posts: 1,742
|
|
Well, you should take a look at what Akkadius posted. The plugins are very helpful and make things a lot easier to read.
If you take a look at the plugin code you'll see it uses the returned instance ID correctly.
Good luck.
|
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 05:53 PM.
|
|
 |
|
 |
|
|
|
 |
|
 |
|
 |