Jump to content

Lathander

Contributors
  • Posts

    43
  • Joined

  • Last visited

  • Days Won

    1

Lathander last won the day on July 14 2020

Lathander had the most liked content!

Recent Profile Visitors

4356 profile views

Lathander's Achievements

  1. Thanks for the color panda, that is very helpful and I appreciate your thoughtful reply. It was a little difficult for me to articulate the way to reproduce the issue, as I only discovered it because I was using the npc target logic to determine a target for a (pet)player-owned-instance of an npc. It was only by using this pet npc, and seeing that it was still casting spells into blank spaces that I realized.. oh you still have an active target on an entity I thought was dead/disposed... This raises a question for you, and perhaps for a future consideration.. but instead of disposing the entity after it is marked as dead, couldn't it be marked for respawn, instead of the respawning process creating an entirely new entity? That way, it wouldn't create garbage collection. Just teleport the entity to the spawn location once respawn timer is up, reset stats, and begin the process a new. Obviously this wouldn't work for event created npcs, but it would work for ones that are loaded to the map as spawns.
  2. Glad to see my inquiry led to a fix, still in the dark about garbage collection, but based on googling guessing its .net GC. Wondering if it has been optimized for the server at all.
  3. Yes there are modifications, many. I'm certain I could reproduce it on the stock intersect build. The dead npc is in fact removed from the entity list on the map as that has remained unchanged. The death code just checks isDead and returns. All entities pass through this logic for death and dispose. The only reason I discovered that the script was simply marked as disposed is because during npc movement logic for some reason the npc never clears its target, or tempTarget, I forget which. My modifications to the npc code simply allowed me to see that the npc object was still active in memory (as it was still targeted by another npc) only disposed. I am guessing there is a garbage collector that clears the disposed objects, but I just wanted to know for certain if anyone could shed light on that. The problem is not that my modifications allowed me to see it, it is more so me wanting to understand the memory allocation / disposal mechanics. But to answer your questions. No in this matter it is not a bug, and no, the death logic completed fully. Appreciate the reply otherwise
  4. Hopefully this is a quick question. While working on some NPC logic, I noticed that entities (npcs) once dead are marked as dead and disposed but do not get wiped from memory.. am I seeing this wrong? I had a npc hell bent on killing an invisible entity that was already dead, and looks to be that the dead logic was still running after doing a console print check. If that is the case, how long do those objects remain around? Is there a garbage collector or some script somewhere that cleans up dead / disposed entities on the server, or am I missing something? Thanks.
  5. So, it might not be as obvious with the default intersect cursor. That said, those things stick out to me. Here's before and after. The reason Math.Ceiling works, is because if your graphics are divisible by 2, I am assuming it is attempting to chose one of the two center pixels to place the cursor, and that changes because it isn't a central pixel. By using Math.Ceiling it chooses the higher of the two pixels.
  6. If anyone else is as annoyed at the wobbly cursor as I was.. you can fix it inside Client Entity.cs by adding Math.Ceiling to destRectangle.X = (int)Math.Ceiling(GetCenterPos().X) destRectangle.Y = (int)Math.Ceiling(GetCenterPos().Y) under the DrawTarget function. I'd submit a fix for bugs but I am not at my normal computer and I do not have access for a while. Damn that wobbly cursor drove me nuts, surprised I took this long to finally fix it.
  7. I ended up moving my install from Linux to a Windows hosted server with AWS. There was something fishy going on with mono, causing crashes (I was on Ubuntu, digitalocean). And the error report was not at all useful to me. Maybe the team would want to address it, and I am happy to share my error file as well, but after switching I haven't had any issues.
  8. I am not getting line numbers reporting while running the server on a linux machine. Stack: at Intersect.Server.Core.ServerConsole.ThreadStart () [0x002da] in <6726b5c1129f4435b7ae0d82b74adc8f>:0 Anyone know how to get lines back in there?
  9. Hey Joyce-- Noticed a small blip with this code. My partner has been doing some heavy spell development and I realized this tag system would be just what we needed. We added archer abilities that require you have bow equipped, and instead of listing every bow in the game, decided to use tags to check for item tagged as bow. Amazing system for sure, huge thank you to both you and Shenmue! I noticed however, that when you use the command "Change Items By Tag" that there is no passing of the current saved value for the command to the editor. This can cause an issue when first adding the command, because the user believes they are adding a give command, when really it actually defaults to take, but doesn't show that in the window. It also doesn't present the correct value when opening to edit the command. Under the function EventCommandChangeItemsBytag I just added: cmbAction.SelectedIndex = Convert.ToInt32(!mMyCommand.Add); The second thing to note is that this defaults to a false value which would be the take action. So I set: public bool Add { get; set; } = true; in the ChangeItemsByTag : EventCommand That way, it defaults to the give action when first making a command to match the combolist. Figured I'd just throw this in here for anyone working with this system.
  10. I'm guessing even if someone goes into the forms and moves one control two pixels that it creates conflicts. The changes were inside the frmClass.resx. Basically I deleted the changes and kept my version, there weren't any other conflicts that came up that I couldn't manage. I am guessing that I could be missing out on added fields or additional controls when updates add those to forms I have already modified. I am thinking the best course of action would be for me to build out the changes on a fresh master and look at what seems different from that editor to my version, and manually add those controls if I want/need them. But I could be wrong..
  11. Recently had a major conflict with some .resx files that were in recent updates. I've made some changes to editors and I'm wondering what the hell this gobbly-gook is, and if I can keep my block and toss out the merged in junk. Example Below.
  12. I'll just start with my coding experience is not the greatest, and I've tried to skim over what is going on with the multi-line textbox for entry, however I can't find where it is going wrong. The Gwen framework inside intersect has been highly modified (and looks to have been improved) however it doesn't look like the multi-line textbox was given any love. I was able to add it to Json (threw in the sound fields too, but didn't connect them) so that it can be manipulated in the gui config files, but after being 50% done with coding a mailbox option, come to find out that the textbox does not recognize returns/line breaks and does not wrap words. I know that the label doesn't also do line breaks, but the RichLabel does. RichLabel has very different line breaking code from what the multi-textbox has. Additionally, I found a different version of Gwen, in which the multi-line textbox was handled very differently: Instead of going off Label as a base it goes off scrollcontrol? https://github.com/Yeyti/Gwen.CS/blob/Net-Core/GwenNet/Control/MultilineTextBox.cs I am going to throw the multiline textbox code that I modified here, but I hope someone can shed some light and help get this working. Can't do a mailbox with single-line typing. Any wisdom and assistance is highly appreciated. Adding Gif for good measure: Notice the return puts cursor on next like but text remains on first line with no break...
  13. I had some weird stuff going on with NuGet packages and github at the beginning and ended up having to restart my computer for it to work. Not sure if it has any association with this issue, but hey -shrug-
  14. Thanks for the reply JC, before I packed up my work for the night I remember seeing that line with a comment in the code and I did a search and found it. I tinkered a little a noticed a pretty decent result from it, I appreciate the direction! Do you feel like the movement code, especially passing between maps and smooth and clean enough to give great results or is there still optimization to be done there? Just curious because the mapping system and concept of managing the map connections was a really cool design. I recall reading a thread where everyone talked about not making the maps any larger because it will reduce the effectiveness of the system and how it works. I didn't really see anyone explain it in detail.
  15. So this is the first time I am loading the server to a host for management by a team. Previously I haven't seen any jumpy behavior, but now it appears that once and a while the player will jump/lag on movement. This can either be in the middle of a map or at a map boundary. I was hosting with DigitalOcean, but also attempted to load up to amazon AWS to see if it was DigitalOcean and latency, however it appears to be happening on AWS as well. Is there a setting I missed for latency threshold with player movement? Everything else operates excellent with no lag, only movement is jumping. It isn't often, but it occurs enough to be quite noticable.
×
×
  • Create New...