-
Posts
935 -
Joined
-
Last visited
-
Days Won
72
Content Type
Profiles
Forums
Downloads
Everything posted by Cheshire
-
There's already projectiles in the engine, could you specify what you'd like to see so that people actually have an idea of what you're requesting? I for one have no idea what a Tibia is.
-
If you knew how to create said binary files.. yes? But that would again require you to look at how the map data is saved in the server. I feel like the ''easiest'' way to do this would be to write an import module for the editor that reads data, transposes it to an Intersect map and saves it.
-
The code simply seems to reduce the time between each movement when sprinting. So if you're already moving very fast, you'd simply end up twice as fast with this edit. (from a quick glance)
-
I'm afraid that's no simple matter, as the data for maps is stored in a data blob.. Which essentially means your map data looks like this: I would suggest you look at the source and how it saves the map data, then make an import procedure based on the database code provided if you REALLY want to import stuff. It's likely not going to be easy though.
-
So, you're basically asking for an ''Attack on Sight'' behaviour without the actual attacks. Alongside an "Avoid on Sight" behaviour. And then the pet behaviour is literally just a pet system, which is a whole other can of worms.
-
Copying this from a similar post:
-
Can't Open Client: "The resources directory could not be found!"
Cheshire replied to Dylan's question in Questions & Answers
I hate to be that person, but have you follow the botttom of this page regarding downloading the assets and placing them next to the editor and client? https://docs.freemmorpgmaker.com/dev/start/compiling.html -
As a toggle, or just permanently hide ALL names unless you mouseover them? If you want it done permanently, it's relatively simple. Mind, below is a quick hackjob. Use at your own risk, really. I haven't thoroughly tested it. The patch file is pretty long because I originally made its own method for the rendering, but I could have just modified the method that renders your targets to do names as well. Download Patch
-
Im curious how this would work, as NPCs are shared entities unlike most events. Would they follow/avoid the first player they encounter or change targets randomly?
-
Configurable animations upon item drop Description: This patch adds a brand new option to the Item Editor that lets you select an Animation to play when an item is dropped onto the map. Each item has its own selectable animation, or you could configure none for the item. Media: Git Patch: Download Based On: Version: 0.6.1.240 Setup: Download and apply the patch. Compile and run the server, it should automatically prompt you to migrate your database to the new format. You might need to add the following option to the ItemEditor section in editor_strings.json if you're not using English for translation purposes: "dropanimation": "Drop Animation" After that, simply edit any item and add your desired drop animation!
-
Working Spreading out loot upon Entity death
Cheshire replied to Cheshire's topic in Source Modifications
that would be a whole other request, unrelated to this particular change. -
I feel like this would be INCREDIBLY subjective. But as a hint, it might be possible to use the currently drawn 9 maps in a smaller size.
-
Spreading out loot upon Entity death Description: This Patch modifies how loot is dropped from dying Entities (ie Players and NPCs). The server will attempt to find all available tiles around the Entity that is dying and spawn its loot in a random one. If none are found, the default location of under the Entity will be used instead. NOTE: This uses a modified piece of code from Resources.cs, namely the method SpawnResourceItems. Update: The latest release now lets you configure the range of tiles this mod will search for for possible loot spawns! Media: Git Patch: Download (For 0.6.1.245 Commit 3ff3d7dd5ba0d33d193297a98c36cf6a2f8406b8 onwards) Older versions*: Download (For 0.6.1.240) *= May not contain all features listed. Based On: Version: 0.6.1.245 Setup: Download and apply the patch, then simply build your server and find the nearest punching bag to dispense loot from! In your server's config.json you can find the following option under CombatOpts to tweak for the drop range: ItemDropRange
-
I'm fiddling with this between work, but JC mentioned that in Resources.cs on the server there's a method SpawnResourceItems that has a piece of logic that can almost be copied verbatim for this request if anyone feels like taking a crack at it before I can finish it. EDIT: I've made a patch that does exactly this: public void SpawnResourceItems(Entity killer) { //Find tile to spawn items var tiles = new List<TileHelper>(); for (var x = X - 1; x <= X + 1; x++) { for (var y = Y - 1; y <= Y + 1; y++) { var tileHelper = new TileHelper(MapId, x, y); if (tileHelper.TryFix()) { //Tile is valid.. let's see if its open var map = MapInstance.Get(tileHelper.GetMapId()); if (map != null) { if (!map.TileBlocked(tileHelper.GetX(), tileHelper.GetY())) { tiles.Add(tileHelper); } else { if (killer.MapId == tileHelper.GetMapId() && killer.X == tileHelper.GetX() && killer.Y == tileHelper.GetY()) { tiles.Add(tileHelper); } } } } } } if (tiles.Count > 0) { TileHelper selectedTile = null; //Prefer the players tile, otherwise choose randomly for (var i = 0; i < tiles.Count; i++) { if (tiles[i].GetMapId() == killer.MapId && tiles[i].GetX() == killer.X && tiles[i].GetY() == killer.Y) { selectedTile = tiles[i]; } } if (selectedTile == null) { selectedTile = tiles[Globals.Rand.Next(0, tiles.Count)]; } // Drop items foreach (var item in Items) { if (ItemBase.Get(item.ItemId) != null) { MapInstance.Get(selectedTile.GetMapId()) .SpawnItem(selectedTile.GetX(), selectedTile.GetY(), item, item.Quantity); } } } Items.Clear(); }
-
Which value on the server side holds the maximum map size?
Cheshire posted a question in Development Questions
As stated in the title, I can't figure out (at least not easily) which value on the server holds the maximum map size. I see various X and Y values on the MapInstance and MapGrid classes, but which one can I safely assume is correct? -
Widescreen resolution support Description: This patch adds the following (widescreen) resolutions to the engine whitelist: 1280, 800 1280, 960 1600, 1024 2560, 1080 I STRONGLY suggest you change the width of your maps to 42 tiles at a minumum using this modification, or set your server's config.json to "GameBorderStyle": 1 to prevent strange juttering and camera issues. This same concept could be used to support 4K monitors, however you'll have to figure out a map size that works. (Make sure the total pixel count of two maps is always BIGGER by 1-2 tiles than your resolution in every direction!) Media: Git Patch: Download Based On: Version: 0.6.1.240 Setup: Download and apply the patch, then simple build your client and release it. As stated in the description, I do suggest you tweak your map sizes. (Note that doing so will require you to wipe your maps!)
-
How to move city name at top center?
Cheshire replied to Evillione's question in Questions & Answers
I've just tried fiddling with this myself, and while I was able to move it to the center of the screen it would stretch the box to that side as well.. And no amount of disabling the background from rendering would actually hide the background. I imagine if you make the box as wide as the screen is and simply don't use a background texture, you could technically get away with it? (ie, blank out entitybox.png) It's not perfect, but you can definitely do it through editing Client and Editor\resources\gui\layouts\game\PlayerBox.json Change the first Bounds value to something rediculous like "Bounds": "4,4,1000,208" and then go further down to "EntityMapLabel" and set the bounds as follows: "500,6,200,22" Then make entitybox.png a transparent image, and voila. Not perfect, and you'll likely need to adjust your UI style to match not having a backdrop.. But it works, to a degree. heck, I imagine that if you make a piece of UI graphics with this in mind you COULD actually do it justice, and have a UI still. (ie, make a UI piece as wide as your bounds, and add a second section that the map name can display in at your desired location, then adjust the bounds for the text to show up accordingly). EDIT: See a quick mock-up: Image: https://www.ascensiongamedev.com/resources/filehost/dfc4924b02bbb4e8310603c7956d1ed8.png Json File: https://www.ascensiongamedev.com/resources/filehost/671c62f037268e7a49900059e91377bc.json Your imagination and ability to work with the limitations given to you are the only thing stopping you there, really. EDIT 2: Just to clarify, this won't scale properly with higher resolutions, since it works with an offset to the left it will never be centered at all resolutions. But you will be able to move it ''out'' from the name section of the player info window. Also, since the "MouseInputEnabled": false, properly seems to do bugger all, you can't click through the invisible large chunk on your screen. Interesting. -
Ah, I recall reading about that at some point yes. Interesting thought though. May read into the Entity Framework more at some point. Didn't know it could generate its own database rulesets.
-
Interesting piece of information, I'm curious what the thought process behind having a constraint on something as dynamic as a friendlist was though. Makes you wonder if there are similar constraints that may cause similar issues in other areas of the database. Definitely seems like a hard one to crack though, if there's no live games there's not many people using your friendlist. (Also, before anyone misunderstands. I'm not trying to be negative here, this sort of stuff just tickles my fancy okay. lol)
-
I feel like this message is pretty key here: May want to check if the user you're running this as has permission to access that file, or if it's perhaps locked because it was downloaded.
-
Can't say for sure, but those are the first that come up in my mind. I've never tried to run the Editor in Wine, it may work.. it may not work. It's a bit of a crapshoot. Considering it's not officially supported you're kind of on your own there.
-
A ''distro'' is a distribution, there's like a couple thousand variations of Linux. (Though a few common ones are Ubuntu, Debian, CentOS, Linux Mint and the like) It's basically like your windows version, but.. er.. different? And I suppose you could try to run the editor through Wine yes, not entirely sure how well that would work though. Unless you have admin rights (ie root) you can't install mono. If you genuinely intend to do this, talk it over with the sysadmins and just give them the following information: Client & Server require the mono-devel package and have to be run with mono. Editor is not officially supported on anything but Windows, but may work with Wine providing you find the right combination of libraries to install. (ie .Net versions and DirectX runtimes) It's probably easier having them install things and determine whether or not they want this on their systems than risking the wrath of a thousand sysadmins on your ass for installing random guff on their machines.
-
There's a bit of a problem here straight away, the editor doesn't work on Linux. But for the sake of completion: for the Client and Server, you'll have to install mono and run them through mono. (e.g. for ubunto/debian: sudo apt-get install mono-devel, then once it's installed mono ./server.exe or mono ./client.exe from their respective directories.)
-
Unity, according to his website. Looks alright, but aside from the vague promises that it'll be different, what exactly is going to be different?
-
Well, yeah. The server stores these values in its own memory so it doesn't constantly need to check the database. So as long as a character is logged in you can't change any of these values from outside the game itself. (I also think SQLite does some funny business with memory caching before flushing to the disk as well, so even if you log out it might take a while for the actual data to be written to the disk and loaded back in cleanly from the disk?)
