PlusEMU Support thread.

Status
Not open for further replies.

Rain

c
Mar 13, 2015
563
251
Find your external variables, for example:
Find "flash.client.url", for example: flash.client.url=
Make sure the folder exists, eg: C:\inetpub\peace\cdn\ph-cdn-b.peacehotel.eu\gordon\PRODUCTION-201601012205-226667486\
Also make sure there are clothes in there.

Do the same for your furnis;
flash.dynamic.download.url=
C:\inetpub\peace\cdn\ph-cdn-b.peacehotel.eu\dcr\hof_furni\
Make sure there are furni swfs in there.
 

Vinny95

Member
Apr 28, 2016
53
1
Fix impila magic:
Code:
 public bool SetFloorItem(GameClient Session, Item Item, int newX, int newY, int newRot, bool newItem, bool OnRoller, bool sendMessage, bool updateRoomUserStatuses = false)
        {
            // Questions -> Skype: keiz.er
            bool NeedsReAdd = false;


            if (newItem)
                if (Item.IsWired)
                    if (Item.GetBaseItem().WiredType == WiredBoxType.EffectRegenerateMaps && _room.GetRoomItemHandler().GetFloor.Where(x => x.GetBaseItem().WiredType == WiredBoxType.EffectRegenerateMaps).Count() > 0)
                        return false;


            List<Item> ItemsOnTile = GetFurniObjects(newX, newY);
            if (Item.GetBaseItem().InteractionType == InteractionType.ROLLER && ItemsOnTile.Where(x => x.GetBaseItem().InteractionType == InteractionType.ROLLER && x.Id != Item.Id).Count() > 0)
                return false;


            if (!newItem)
                NeedsReAdd = _room.GetGameMap().RemoveFromMap(Item);


            Dictionary<int, ThreeDCoord> AffectedTiles = Gamemap.GetAffectedTiles(Item.GetBaseItem().Length, Item.GetBaseItem().Width, newX, newY, newRot);


            if (!_room.GetGameMap().ValidTile(newX, newY) || _room.GetGameMap().SquareHasUsers(newX, newY) && !Item.GetBaseItem().IsSeat)
            {
                if (NeedsReAdd)
                    _room.GetGameMap().AddToMap(Item);
                return false;
            }


            foreach (ThreeDCoord Tile in AffectedTiles.Values)
            {
                if (!_room.GetGameMap().ValidTile(Tile.X, Tile.Y) ||
                    (_room.GetGameMap().SquareHasUsers(Tile.X, Tile.Y) && !Item.GetBaseItem().IsSeat))
                {
                    if (NeedsReAdd)
                    {
                        _room.GetGameMap().AddToMap(Item);
                    }
                    return false;
                }
            }
           
            Double newZ = _room.GetGameMap().Model.SqFloorHeight[newX, newY];


            if (!OnRoller)
            {
                if (_room.GetGameMap().Model.SqState[newX, newY] != SquareState.OPEN && !Item.GetBaseItem().IsSeat)
                {
                    return false;
                }


                foreach (ThreeDCoord Tile in AffectedTiles.Values)
                {
                    if (_room.GetGameMap().Model.SqState[Tile.X, Tile.Y] != SquareState.OPEN &&
                        !Item.GetBaseItem().IsSeat)
                    {
                        if (NeedsReAdd)
                        {
                            //AddItem(Item);
                            _room.GetGameMap().AddToMap(Item);
                        }
                        return false;
                    }
                }
               
                if (!Item.GetBaseItem().IsSeat && !Item.IsRoller)
                {
                    foreach (ThreeDCoord Tile in AffectedTiles.Values)
                    {
                        if (_room.GetGameMap().GetRoomUsers(new Point(Tile.X, Tile.Y)).Count > 0)
                        {
                            if (NeedsReAdd)
                                _room.GetGameMap().AddToMap(Item);
                            return false;
                        }
                    }
                }
            }


            // Find affected objects
            var ItemsAffected = new List<Item>();
            var ItemsComplete = new List<Item>();


            foreach (ThreeDCoord Tile in AffectedTiles.Values.ToList())
            {
                List<Item> Temp = GetFurniObjects(Tile.X, Tile.Y);


                if (Temp != null)
                {
                    ItemsAffected.AddRange(Temp);
                }
            }




            ItemsComplete.AddRange(ItemsOnTile);
            ItemsComplete.AddRange(ItemsAffected);


            if (!OnRoller)
            {
                foreach (Item I in ItemsComplete.ToList())
                {
                    if (I == null)
                        continue;


                    if (I.Id == Item.Id)
                        continue;


                    if (I.GetBaseItem() == null)
                        continue;


                }
            }
           
            {
                if (Item.Rotation != newRot && Item.GetX == newX && Item.GetY == newY)
                    newZ = Item.GetZ;
               
                foreach (Item I in ItemsComplete.ToList())
                {
                    if (I == null)
                        continue;
                    if (I.Id == Item.Id)
                        continue;


                    if (I.GetBaseItem().InteractionType == InteractionType.STACKTOOL)
                    { // Basically the core of the fix
                        // Questions -> Skype: keiz.er
                        newZ = I.GetZ;
                        break;
                    }


                    if (I.TotalHeight > newZ)
                    {
                        newZ = I.TotalHeight;
                    }


                }
            }
           
            if (newRot != 0 && newRot != 2 && newRot != 4 && newRot != 6 && newRot != 8 && !Item.GetBaseItem().ExtraRot)
                newRot = 0;


            Item.Rotation = newRot;
            int oldX = Item.GetX;
            int oldY = Item.GetY;
            Item.SetState(newX, newY, newZ, AffectedTiles);


            if (!OnRoller && Session != null)
                Item.Interactor.OnPlace(Session, Item);




            if (newItem)
            {
                if (_floorItems.ContainsKey(Item.Id))
                {
                    if (Session != null)
                        Session.SendNotification(PlusEnvironment.GetGame().GetLanguageLocale().TryGetValue("room_item_placed"));
                    _room.GetGameMap().RemoveFromMap(Item);
                    return true;
                }


                if (Item.IsFloorItem && !_floorItems.ContainsKey(Item.Id))
                    _floorItems.TryAdd(Item.Id, Item);
                else if (Item.IsWallItem && !_wallItems.ContainsKey(Item.Id))
                    _wallItems.TryAdd(Item.Id, Item);


                if (sendMessage)
                    _room.SendMessage(new ObjectAddComposer(Item, _room));
            }
            else
            {
                UpdateItem(Item);
                if (!OnRoller && sendMessage)
                    _room.SendMessage(new ObjectUpdateComposer(Item, _room.OwnerId));
            }
            _room.GetGameMap().AddToMap(Item);


            if (Item.GetBaseItem().IsSeat)
                updateRoomUserStatuses = true;


            if (updateRoomUserStatuses)
                _room.GetRoomUserManager().UpdateUserStatusses();


            if (Item.GetBaseItem().InteractionType == InteractionType.TENT || Item.GetBaseItem().InteractionType == InteractionType.TENT_SMALL)
            {
                _room.RemoveTent(Item.Id, Item);
                _room.AddTent(Item.Id);
            }


            using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.RunQuery("UPDATE `items` SET `room_id` = '" + _room.RoomId + "', `x` = '" + Item.GetX + "', `y` = '" + Item.GetY + "', `z` = '" + Item.GetZ + "', `rot` = '" + Item.Rotation + "' WHERE `id` = '" + Item.Id + "' LIMIT 1");
            }
            return true;
        }

That's not my fix, but working so well ;)
 

Meap

Don't need glasses if you C#
Nov 7, 2010
1,045
296
Someone who have a txt or sql file for the badge_definitions?
Its 4 hours work if I must take all badges and write them inside.

 
@Sledmore for the commands list, for each register section of commands is there anyway to add some text before it shows those certain commands, so you can kind of split them into more readable sections?
 

MagnusDev

Member
Apr 28, 2012
40
1
Where do I edit the Name and Desc for the Staff badges I have found 2 places the flash_text file and the database Flash tabel.

Are it any more places?
 

Damien

Don't need glasses if you can C#
Feb 26, 2012
434
647
You can edit the badge name and description in the table "client_external_badge_texts" NOT the "badge_definitions" table. The badge_definitions table is used to define the badge ID and the required rights to be used.
 

Brad

Well-Known Member
Jun 5, 2012
2,320
993
So you ping the clients in game, and if said client doesn't respond, you dispose of their connection? I don't really understand
yes exactly this, or make it so when they're idle for a certain amount of time it d/cs them.
 
You can edit the badge name and description in the table "client_external_badge_texts" NOT the "badge_definitions" table. The badge_definitions table is used to define the badge ID and the required rights to be used.
yeah do this, been a whileee
 

Damien

Don't need glasses if you can C#
Feb 26, 2012
434
647
or you can do it in external flash texts Lol
Not if you're flash_texts is being called from the PHP file because the txt file gets overwrited with the data from the database.
 
Sorry, ignore what I said. I was referring to the override texts. What you said would be perfectly acceptable :)
 

Rain

c
Mar 13, 2015
563
251
pretty certain, all hotels I know that don't use a proxy it seems to work just fine.
Well my proxy is only an OVH vps. I could purchase a small vps, and host the emulator on that. Would there be any lag caused by having the emulator hosted separately? (They will both be in france).
 

Brad

Well-Known Member
Jun 5, 2012
2,320
993
Well my proxy is only an OVH vps. I could purchase a small vps, and host the emulator on that. Would there be any lag caused by having the emulator hosted separately? (They will both be in france).
Nope, they shouldn't be. That's all I do too.
 
Status
Not open for further replies.

Users who are viewing this thread

Top