Page 1 of 1

what tools do we have for this

Posted: Wed Aug 23, 2017 4:54 am
by Ememjr
ok so i have been doing alot of fixes etc, and need a small break on that side of the house and decided to work on some content
so this will be my first attempt at adding missing content to a zone
in the following picture there is a mender,anvil, and table that is missing from oakmyst forest that is present on live

i would like to be as close to live as possible,

so do i have to guess and try to figure out a spawn to put there for those 3 things, or
is there a way we can

collect (yup done that)
parse ( found a parser but not sure it works)
import our selfs
or this small stuff

Re: what tools do we have for this

Posted: Wed Aug 23, 2017 7:10 am
by Ememjr
i forgot to post the picture
oakmyst.JPG

Re: what tools do we have for this

Posted: Wed Aug 23, 2017 2:39 pm
by Zcoretri
The parser kind of works in its current state. I am currently working on the parser to get it to a more stable state. Right now it will do spawns for the most part, just not 100%. It currently does not parse items.
You can add in stuff yourself, but I think there would be some trial and error to get the right model numbers, etc.

Re: what tools do we have for this

Posted: Wed Aug 23, 2017 4:02 pm
by Jabantiz
If you collected it from live you could use the packet analyzer to get all the info you need to manually create.

However as this is Oakmyst is possible that this mender was moved into this zone from one of the suburbs. When live closed off the suburbs they moved NPC's for quests outside to the city or the combat zones, so it is possible if you search for this NPC in the other zones you will find a copy of him and can just spawn him in Oakmyst.

Re: what tools do we have for this

Posted: Wed Aug 23, 2017 5:52 pm
by Ememjr
i collected from live but the PA does not match up on some of the spawn i the mender anvil that is there
and i looked in the spawn table and Henk Newfield does not exist

Re: what tools do we have for this

Posted: Wed Aug 23, 2017 6:10 pm
by Ememjr
so i decided to try it by looking at the packet and the spawn packet wasn't correct for the anvil
here is what concerns me
i was under the impression that there could only be one primary command but multiple secondary commands
i think i confirmed this by look through many createghostcmd(spawns) and found that this line 111111 below never was more than one
so unless we can find somewhere in some packet it is 2 or higher then we can most likely remove it as an array

all it appears that in every packet i have ever collected that THIS LINE 22222 below is actualy an int16 and not a string
on my system i changed this line 2222 to <Data ElementName="command_list_error" Type="int16" Size="1" />

and i am able to see all createghostcmd packets perfectly now, also everyplace i looked the value of that int16 is 255

I logged in and had no issues with any spawns i looked at and have noissues with changes i on my side

if i am wrong on any of this plese let me know which spawn uses more that 1 primary command so i can see what else to change

Code: Select all

<Struct Name="WS_SpawnStruct_Header" ClientVersion="57080">
<Data ElementName="index" Type="int16" Size="1" OversizedValue="255" />
<Data ElementName="spawn_id" Type="int32" Size="1" />
<Data ElementName="unknown" Type="int32" Size="1" />
<Data ElementName="unknown2" Type="int32" Size="1" />
<Data ElementName="crc" Type="int32" Size="1" />
<Data ElementName="command_list" Type="int8" Size="1" /> THIS LINE THIS LINE 11111111
<Data ElementName="command_list_array" Type="Array" ArraySizeVariable="command_list">
	<Data ElementName="command_list_name" Type="EQ2_16Bit_String" />
	<Data ElementName="command_list_max_distance" Type="float" Size="1" />
	<Data ElementName="command_list_error" Type="EQ2_16Bit_String" Size="1" /> THIS LINE 22222
	<Data ElementName="command_list_command" Type="EQ2_16Bit_String" />
</Data>
<Data ElementName="default_command" Type="EQ2_16Bit_String" Size="1" />
<Data ElementName="max_distance" Type="float" Size="1" />
<Data ElementName="group_size" Type="int8" Size="1" />
<Data ElementName="group_array" Type="Array" ArraySizeVariable="group_size">
	<Data ElementName="group_spawn_id" Type="int32" />
</Data>
<Data ElementName="time_stamp" Type="int32" Size="1" />
</Struct>

Re: what tools do we have for this

Posted: Wed Aug 23, 2017 7:35 pm
by Jabantiz
It looks like they may have changed that portion of the struct then. Spawns can have multiple primary commands, in the past it was mostly merchants where when you clicked on them it did both "buy from" and "hail".

The fact that command_list is still 1 in packets seems to indicate it is still an array (other wise that element would be removed completely) and it would be best to leave the array in to prevent confusion and to allow us to use it if we want to.

I wonder if they removed the string and are using ids for the errors now, with the errors being hardcoded in the client or some how connected to another packet. As most are 255 I bet that just means don't print out an error to the client.

Re: what tools do we have for this

Posted: Thu Aug 24, 2017 4:05 am
by Ememjr
what would be an awesome addition to the PA is an export option that would export an xml or csv or what ever type file
so we could easily import a single new spawn in a server whether it be a custom local server or tool or emu via web editor
so i could work lik this highlight a createghostcmd , like what you see, push a button the exports that 1 spawn to a file basically all it should need is element name and the data output value for that element, that would be a n easliey readable in human form and easy to parse and the import would just rea in the values and add them, of course this would be for small imports 1 at a time but good for those misc places that got missed,

i would write one my self but as i see it since PA is already breaking down the packet with all the info we need why reinvent that portion of the wheel