bisho2009 Posted May 11 Posted May 11 i have work on new 3d source but i use old twin city and market i managed to move npc and monsters back but the only issue iam facing is seting in market for booth icon dont show so player can leave Quote
kennylovecode Posted May 11 Posted May 11 10 minutes ago, bisho2009 said: i have work on new 3d source but i use old twin city and market i managed to move npc and monsters back but the only issue iam facing is seting in market for booth icon dont show so player can leave As far as I know, it needs to send a MapStatus packet. What source code do you use? Alex stream? Quote
bisho2009 Posted May 11 Author Posted May 11 no normal msg but i dont know what is mapstatues packet i use this but not working at all case Mode.OwnBooth: { if (!client.Player.TradeOn) return; client.Booth = new Game.ConquerStructures.Booth(client, gData); if (client.Player.MapID == 1036) { client.Send(new MsgAction(true) { ID = MsgAction.Mode.ChangeAction, UID = client.Player.UID, dwParam = 0 } ); client.Send(new MsgMapInfo() { BaseID = client.Map.BaseID, ID = client.Map.ID, Status = Database.MapsTable.MapInformations[1036].Status }); client.Booth = new Game.ConquerStructures.Booth(client, new MsgAction(true) { UID = client.Player.UID }); client.Send(new MsgAction(true) { ID = MsgAction.Mode.ChangeAction, UID = client.Player.UID, dwParam = 0 }); } break; } Quote
kennylovecode Posted May 11 Posted May 11 It's a pity that I'm going to bed. I'll reply to you when I wake up. Quote
kennylovecode Posted May 12 Posted May 12 7 hours ago, bisho2009 said: no problem public static unsafe ServerSockets.Packet MapStatusCreate(this ServerSockets.Packet stream, uint MapID, uint BaseID, ulong Status) { stream.InitWriter(); stream.Write(MapID);//4 stream.Write(BaseID);//8 //uint update = 1U << 31; //Console.WriteLine(update); stream.Write(Status); stream.Finalize(GamePackets.MapStaus); return stream; } Quote
kennylovecode Posted May 12 Posted May 12 After updating the map on ChangeMap, you may not have notified the client of the map status. In the conquer client, there are restrictions on setting up stalls. The "close stall" button will only appear when the status value includes the "stall-settable" flag. Quote
bisho2009 Posted May 12 Author Posted May 12 sorry for late response where i should check this code or packet ? Quote
kennylovecode Posted May 13 Posted May 13 8 hours ago, bisho2009 said: my source is normal msg not stream You can find this package structure in almost any open-source project, and it's incredibly simple. You can even let AI build directly in your project, using the structure I provided Quote
Konichu Posted May 13 Posted May 13 (edited) On 5/11/2026 at 3:38 PM, bisho2009 said: no normal msg but i dont know what is mapstatues packet i use this but not working at all case Mode.OwnBooth: { if (!client.Player.TradeOn) return; client.Booth = new Game.ConquerStructures.Booth(client, gData); if (client.Player.MapID == 1036) { client.Send(new MsgAction(true) { ID = MsgAction.Mode.ChangeAction, UID = client.Player.UID, dwParam = 0 } ); client.Send(new MsgMapInfo() { BaseID = client.Map.BaseID, ID = client.Map.ID, Status = Database.MapsTable.MapInformations[1036].Status }); client.Booth = new Game.ConquerStructures.Booth(client, new MsgAction(true) { UID = client.Player.UID }); client.Send(new MsgAction(true) { ID = MsgAction.Mode.ChangeAction, UID = client.Player.UID, dwParam = 0 }); } break; } Depending on the version, you'll need to find the proper offset. But you need to send your ID on UID and the SHOP NPC ID on another field, on mine its called Command. If UID offset is 4, Command is offset 8 case ACTION_CREATE_BOOTH: // 111 { if (!user->GetMap()->IsBoothEnabled()) { return; } if (!user->CreateBooth(info->x, info->y, info->dir % MAX_DIRSIZE)) return; info->command = user->GetBooth()->GetId(); info->x = user->GetBooth()->GetMapX(); info->y = user->GetBooth()->GetMapY(); user->Send(*this); user->SetPose(POSE_SIT, true); user->SetDir(6, true); break; } Edited May 13 by Konichu Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.