Transporters

EQ2Emulator Development forum.

Moderator: Team Members

User avatar
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

Post by John Adams » Sun Aug 25, 2013 6:19 pm

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

Post by Jabantiz » Sun Aug 25, 2013 8:31 pm

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.

User avatar
xinux
Team Member
Posts: 680
Joined: Wed Mar 10, 2010 11:10 am
Location: Destroyer of Servers

Re: Transporters

Post by xinux » Sun Aug 25, 2013 9:14 pm

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.

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)

Jabantiz
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Re: Transporters

Post by Jabantiz » Sun Aug 25, 2013 9:41 pm

Tested the new struct with the data and it seems to all be working with a live client now.

Thanks Xinux

User avatar
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

Post by John Adams » Mon Aug 26, 2013 8:07 am

Awesome. Thanks X-man.

Jabantiz
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Re: Transporters

Post by Jabantiz » Mon Aug 26, 2013 8:02 pm

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?

User avatar
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

Post by John Adams » Tue Aug 27, 2013 6:40 am

Jabantiz wrote:Can any one think of any other requirements?
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
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Re: Transporters

Post by Jabantiz » Tue Aug 27, 2013 10:55 am

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...
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:but what about "I find a shiny item on the ground and it lets me into Nagafen's Lair" kinda feature?
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:Item clickable, shimmering portals? stuff like that.
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?

User avatar
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

Post by John Adams » Tue Aug 27, 2013 1:10 pm

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() :))

Jabantiz
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Re: Transporters

Post by Jabantiz » Tue Aug 27, 2013 1:45 pm

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.

User avatar
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

Post by John Adams » Tue Aug 27, 2013 4:17 pm

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.

Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests