Transporters
Moderator: Team Members
- John Adams
- Retired
- Posts: 9684
- Joined: Thu Jul 26, 2007 6:27 am
- EQ2Emu Server: EQ2Emulator Test Center
- Characters: John
- Location: Arizona
- Contact:
Re: Transporters
Okay, I'll try an older client first just to see it, and if no one else fixes the struct first, I'll check it out next week.
-
Jabantiz
- Lead Developer
- Posts: 2912
- Joined: Wed Jul 25, 2007 2:52 pm
- Location: California
Re: Transporters
looked at a 57016 log and there was an unknown in the array, tested on a live client and looks better but still wrong, gonna need a log from live to fix it.
- xinux
- Team Member
- Posts: 680
- Joined: Wed Mar 10, 2010 11:10 am
- Location: Destroyer of Servers
Re: Transporters
Here you go about to submit it. They added a lot of new information in the packet mainly the destination elements and zone_file_name2.
I don't have time to test it tonight but let me know how it look's.
I don't have time to test it tonight but let me know how it look's.
Code: Select all
<Struct Name="WS_TeleportList" ClientVersion="57048" OpcodeName="OP_ShowZoneTeleporterDestinations">
<Data ElementName="spawn_id" Type="int32" />
<Data ElementName="unknown" Type="int32" />
<Data ElementName="num_destinations" Type="int32" />
<Data ElementName="destination_array" Type="Array" ArraySizeVariable="num_destinations">
<Data ElementName="unique_id" Type="int32" />
<Data ElementName="display_name" Type="EQ2_16Bit_String" Size="1" />
<Data ElementName="zone_file_name" Type="EQ2_16Bit_String" />
<Data ElementName="zone_name" Type="EQ2_16Bit_String" Size="1" />
<Data ElementName="zone_destination" Type="EQ2_16Bit_String" Size="1" />
<Data ElementName="zone_file_name2" Type="EQ2_16Bit_String" />
<Data ElementName="zone_description" Type="EQ2_16Bit_String" />
<Data ElementName="destination_x" Type="float" Size="1" />
<Data ElementName="destination_y" Type="float" Size="1" />
<Data ElementName="destination_z" Type="float" Size="1" />
<Data ElementName="map_x" Type="int32" Size="1" />
<Data ElementName="map_y" Type="int32" Size="1" />
<Data ElementName="zone_level_min" Type="int16" Size="1" />
<Data ElementName="unknown4" Type="int16" Size="1" />
<Data ElementName="zone_level_max" Type="int16" Size="1" />
<Data ElementName="unknown5" Type="int16" Size="1" />
<Data ElementName="unknown6" Type="int16" Size="1" />
<Data ElementName="cost" Type="int32" />
</Data>
<Data ElementName="map_name" Type="EQ2_16Bit_String" Size="1" />
<Data ElementName="current_zone" Type="EQ2_16Bit_String" Size="1" />
<Data ElementName="current_map_x" Type="int32" Size="1" />
<Data ElementName="current_map_y" Type="int32" Size="1" />
<Data ElementName="unknown7" Type="int16" Size="1" />
</Struct>
EQ II - Build=1360 (Orig) - Build=1360 (DoF) - Build=2654 (KoS) - Build=3375 (Classic) - Build=3554 (EoF)
EQ II - Build=4412 (RoK) - Build=5122 (TSO) - Build=6118 (SF) - Build=7628 (DoV) - Build=8295 (Aod)
EQ II - Build=4412 (RoK) - Build=5122 (TSO) - Build=6118 (SF) - Build=7628 (DoV) - Build=8295 (Aod)
-
Jabantiz
- Lead Developer
- Posts: 2912
- Joined: Wed Jul 25, 2007 2:52 pm
- Location: California
Re: Transporters
Tested the new struct with the data and it seems to all be working with a live client now.
Thanks Xinux
Thanks Xinux
- John Adams
- Retired
- Posts: 9684
- Joined: Thu Jul 26, 2007 6:27 am
- EQ2Emu Server: EQ2Emulator Test Center
- Characters: John
- Location: Arizona
- Contact:
Re: Transporters
Awesome. Thanks X-man.
-
Jabantiz
- Lead Developer
- Posts: 2912
- Joined: Wed Jul 25, 2007 2:52 pm
- Location: California
Re: Transporters
We need to add at least 2 more requirements for destinations, an alignment for cities so qeynos chars don't get Freeport and exiled don't get either, and a temp variable flag for instances where you need to talk to some one to open it up without using any sort of quest.
Can any one think of any other requirements?
Can any one think of any other requirements?
- John Adams
- Retired
- Posts: 9684
- Joined: Thu Jul 26, 2007 6:27 am
- EQ2Emu Server: EQ2Emulator Test Center
- Characters: John
- Location: Arizona
- Contact:
Re: Transporters
Only thing I can think of are locked zones, access restrictions, key's needed etc... I believe you have that already in the quest_req/step... but what about "I find a shiny item on the ground and it lets me into Nagafen's Lair" kinda feature? Item clickable, shimmering portals? stuff like that.Jabantiz wrote:Can any one think of any other requirements?
-
Jabantiz
- Lead Developer
- Posts: 2912
- Joined: Wed Jul 25, 2007 2:52 pm
- Location: California
Re: Transporters
I believe an instance will check zone requirements first to see if you can enter the zone so this stuff should be covered.John Adams wrote:Only thing I can think of are locked zones, access restrictions, key's needed etc... I believe you have that already in the quest_req/step...
If the item is in the same zone as the instance entrance then temp_variable thing should work, if it is in another zone it won't, we could add an item_id req requiring you to have the item in your inventory to see the option?John Adams wrote:but what about "I find a shiny item on the ground and it lets me into Nagafen's Lair" kinda feature?
Item clickable can be a simple item script, however I am not sure if the lua Zone() function can handle instances Will have to look into that, as for portal do you mean the ones you just walk into and it zones you?John Adams wrote:Item clickable, shimmering portals? stuff like that.
- John Adams
- Retired
- Posts: 9684
- Joined: Thu Jul 26, 2007 6:27 am
- EQ2Emu Server: EQ2Emulator Test Center
- Characters: John
- Location: Arizona
- Contact:
Re: Transporters
Yeah, when I parsed raw data we saw portals shimmering all over the place. I have never used one in Live, but assumed you cast them, and pick a destination? Or they are single-destination only? Druid portals? Who knows... I've never been a drood 
Regarding Client::CheckZoneAccess(const char* zoneName), currently that is just locked, status, level, and client version. I am talking about "keyed" zones, like in EQ1 you could not enter Sleeper's Tomb until you had the key... tons of other PoP zones too. I believe EQ2 had zones like that too, but initially I am assuming "keys" in EQ2 are strictly related to completing quest (lines)? If so, then there's nothing to talk about.
However, if I talk to an NPC -OR- get a drop off a mob that I can click and instantiate an instance (for me or my group/raid), that's the only other scenario I can think of. And it should be cross-zone, I would imagine.
And since we're now talking about general `zone access`, perhaps we can table this for later. But my original design idea was to follow EQEmu's zone_access_flags concept, by putting a type and ID together that must be required to enter zone_id 'x'. This way, the "requirements" are not mashed into teleporters only, and could be used also for simple zone sign clicks or walkthru's.
We can keep what we got now, because it works. But before we go further, we should discuss an all-encompassing solution not limited to transporters
(here's where I expect you to tell me we already got this, with HasItem() and QuestCompleted()
)
Regarding Client::CheckZoneAccess(const char* zoneName), currently that is just locked, status, level, and client version. I am talking about "keyed" zones, like in EQ1 you could not enter Sleeper's Tomb until you had the key... tons of other PoP zones too. I believe EQ2 had zones like that too, but initially I am assuming "keys" in EQ2 are strictly related to completing quest (lines)? If so, then there's nothing to talk about.
However, if I talk to an NPC -OR- get a drop off a mob that I can click and instantiate an instance (for me or my group/raid), that's the only other scenario I can think of. And it should be cross-zone, I would imagine.
And since we're now talking about general `zone access`, perhaps we can table this for later. But my original design idea was to follow EQEmu's zone_access_flags concept, by putting a type and ID together that must be required to enter zone_id 'x'. This way, the "requirements" are not mashed into teleporters only, and could be used also for simple zone sign clicks or walkthru's.
We can keep what we got now, because it works. But before we go further, we should discuss an all-encompassing solution not limited to transporters
(here's where I expect you to tell me we already got this, with HasItem() and QuestCompleted()
-
Jabantiz
- Lead Developer
- Posts: 2912
- Joined: Wed Jul 25, 2007 2:52 pm
- Location: California
Re: Transporters
Ah those type of portals, they are just like mariner bells, just different locs.
For keyed zones we can have an item req and just check the players inventory, even their bank, for the item to allow them in. Right click of an item and use will need to be item script, looking into the zone() lua function to see if it supports instances is on my todo.
My system is mainly meant to prevent the destination from showing up on the list/map. If there is another way into the zone (such as Freeport or neriak) you aren't prevented from entering that way. I guess this is turning into a much larger system then I planned I guess we should figure out what is needed to prevent the destination from showing on the list and what is actual requirements to enter the zone.
For keyed zones we can have an item req and just check the players inventory, even their bank, for the item to allow them in. Right click of an item and use will need to be item script, looking into the zone() lua function to see if it supports instances is on my todo.
My system is mainly meant to prevent the destination from showing up on the list/map. If there is another way into the zone (such as Freeport or neriak) you aren't prevented from entering that way. I guess this is turning into a much larger system then I planned I guess we should figure out what is needed to prevent the destination from showing on the list and what is actual requirements to enter the zone.
- John Adams
- Retired
- Posts: 9684
- Joined: Thu Jul 26, 2007 6:27 am
- EQ2Emu Server: EQ2Emulator Test Center
- Characters: John
- Location: Arizona
- Contact:
Re: Transporters
I like your solution to transporters/maps. Let's leave that as is, since it's working fine.
For zone_access discussions, see my other thread (Private for now). We can identify stuff there and make a plan of attack.
For zone_access discussions, see my other thread (Private for now). We can identify stuff there and make a plan of attack.
Who is online
Users browsing this forum: No registered users and 0 guests