Merchant/Lock item GUI upon login?

03/14/2013 19:20 .Xori^#1
I've completely removed the lock item system, but yet it still pops up upon login asking me to lock all my items. Is there anyway to remove this?

Source: Albetros 5518


#edit I added packet.Merchant in the PlayerInfo packet with type 38, and made the DB read and write it aswell. But its still not working lol. What could I be missing?
03/14/2013 20:23 shadowman123#2
it has nothing to do with Locking .. if u would like to De-Activate this ... just make all characters Merchant and this wont Pop up again
03/14/2013 21:54 EgyptianMano#3
Quote:
Originally Posted by .Xori^ View Post
I've completely removed the lock item system, but yet it still pops up upon login asking me to lock all my items. Is there anyway to remove this?
the lock item screen is a client side event, when the character has unlocked valuables items and ddnt receive a packet that tells it he is a merchant character then the client pops up the lock screen
then all u need to do is to send the Merchant status packet at login and be4 u send the character items
03/14/2013 21:56 EOS 60D#4
Dont update merchant to hero upon log on..
03/14/2013 22:20 .Xori^#5
Lol what packet is it, I've implemented the database to read the MerchantStatus, along with having it auto set to 255 (IsMerchant). I can send a check if I'm a merchant and it comes back correctly. But I don't know exactly what packet sends the information thats triggering the item lock sequence.
03/15/2013 01:21 EgyptianMano#6
Quote:
Originally Posted by .Xori^ View Post
Lol what packet is it, I've implemented the database to read the MerchantStatus, along with having it auto set to 255 (IsMerchant). I can send a check if I'm a merchant and it comes back correctly. But I don't know exactly what packet sends the information thats triggering the item lock sequence.
There is no packet that triggers the item lock screen , as i told you it's a client side event , i'll try to make it more clear
1-Loggin request sent from the client
2-The server checks auths and send reply with ok
3-The server checks Merchant status and if merchants sends the status packet 10017 with type 38 value 255
4-Server sends the client items
5-the client checks If have unlocked valuable items , if yes and merchant nothing happens
if yes and not merchant (ddnt receive the Merchant status packet) then Ta Ta the lock item screen triggered
03/15/2013 05:33 .Xori^#7
Quote:
Originally Posted by EgyptianMano View Post
There is no packet that triggers the item lock screen , as i told you it's a client side event , i'll try to make it more clear
1-Loggin request sent from the client
2-The server checks auths and send reply with ok
3-The server checks Merchant status and if merchants sends the status packet 10017 with type 38 value 255
4-Server sends the client items
5-the client checks If have unlocked valuable items , if yes and merchant nothing happens
if yes and not merchant (ddnt receive the Merchant status packet) then Ta Ta the lock item screen triggered
I added packet.Merchant in the PlayerInfo packet with type 38, and made the DB read and write it aswell. But its still not working lol. What could I be missing?
03/15/2013 09:47 shadowman123#8
Hmm Lemme See ... u should send the Player Update packet 10017 with type 38 and assign value to it = 255 as Mano said .. and dont forget to send it everytime the player login
03/15/2013 22:26 .Xori^#9
Problem solved! Thank's for your help everyone. :) Just had to make the update packet send before LoadGears.
06/18/2015 21:00 legend9944#10
Hey guys,

Sorry for replying on old topic. But I'm having the same issue. The merchant window keeps popping up.

I use the function:
GC.AddSend(Packets.Status(GC.MyChar.EntityID, Game.Status.Merchant, GC.MyChar.merchant));

1. AddSend accepts parameter COPacket;
2. Packets.Status function looks like this:
Code:
public static COPacket Status(uint UID, Game.Status Type, ulong Value)
        {
            byte[] Packet = new byte[8 + 36];
            COPacket P = new COPacket(Packet);
            P.WriteInt16((ushort)(Packet.Length - 8));
            P.WriteInt16((ushort)10017);
            P.WriteInt32(UID);
            P.WriteInt32(0x01);
            P.WriteInt32((uint)Type);
            P.WriteInt64((ulong)Value);
            P.Move(12);

            return P;
        }
So yes it is using 10017, the Game.Status.Merchant enum is set to 38 and the value I'm sending is 255 (that's the value of my character). but still it isn't working.

Any help would be greatly appreciated.


Blaze


#SOLVED

I feel like an complete idiot. Made the same mistake hehe.
Solution: First make the call and after send the items.