• Content Count

  • Joined

  • Last visited

About jianmingyong

  • Rank

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. jianmingyong

    IWBUMS VERSION - 40.37

    Whisper chat is working fine now with spams of A to Z.
  2. jianmingyong

    IWBUMS VERSION - 40.37

    We are glad to help you out on this as we are running IWBUMS branch to get the fix required for our server to RP. /whisper seems to works fine but with a giant flaw. The game and server will crash afterwards once someone use it for a couple of times. Our players seems to be able to see the chat working but the follow up crash seem to be annoying. If I have more information about the crash, would gladly update this. Edit: I have tested with our players and apparently the receiver end of the whisper message will crash the game and server. The client side do not seem to have any crash logs as it just simply freezes the game. The server side crash logs have been added below: Server console: ``` Exception in thread "main" java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextNode(HashMap.java:1437) at java.util.HashMap$ValueIterator.next(HashMap.java:1466) at zombie.network.chat.ChatServer.disconnectPlayer(ChatServer.java:209) at zombie.network.GameServer.disconnect(GameServer.java:7226) at zombie.network.GameServer.main(GameServer.java:753) ```
  3. jianmingyong

    Version 40.36 released:  Full patch notes

    https://theindiestone.com/forums/index.php?/topic/24848-iwbums-40x-user-cannot-whisper-to-a-person-with-a-space-in-between-their-names/ Just in case it is missed out there in the forums.
  4. User is not able to whisper when the other person's name has a space in it.
  5. There seems to be a problem with the new chatbox affecting our players not to be able to RP at all when they tried normal talk to shouting in front of a user 1 tile away. Try to read the text, can you read? I bet you can't because it is full of ... when we are close to each other. Here is a screenshot of the problem we are facing:
  6. Update: Some functions have been refactored for easy reference. I don't expect anyone will need this unless you are planning to do complex enumeration in lua. I created Bitwise operations that does whatever it needs to get it done. Original Source Code: https://github.com/The-Dialga-Team-Project-Zomboid-Mods/The-Dialga-Team-Mod-Collection/blob/master/mods/TDTModAPI/media/lua/shared/TheDialgaTeam/TDTModAPI/System/Bitwise.lua Dependent file: ( require "TheDialgaTeam/TDTModAPI/Lua/Table" ) https://github.com/The-Dialga-Team-Project-Zomboid-Mods/The-Dialga-Team-Mod-Collection/blob/master/mods/TDTModAPI/media/lua/shared/TheDialgaTeam/TDTModAPI/Lua/Table.lua Binary Table Types: (By default, it will choose the one that is the smallest possible type to reduce processing time) How to get Binary Table? Either use ConvertToBinaryTable(value, valueType) or use numeric values which will be automatically converted to binary table based on the smallest possible type. Note: It may affect the returned value based on the type of binary table. If you are unsure, you can always use "Bitwise.Types.int" as the valueType parameter. Example of a difference it can make: local Bitwise = require "TheDialgaTeam/TDTModAPI/System/Bitwise"; -- Test Case 1: local test = Bitwise.Not(Bitwise.ConvertToBinaryTable(5, Bitwise.Types.int)); print(test); -- Expected Result: -6 -- Test Case 2: local test2 = Bitwise.Not(5); -- Automatically resolved as a Byte type which is 0 to 255 only. print(test2); -- Expected Result: 250 -- Signed and Unsigned bits makes a difference when using NOT operation. NOT operation does two's complement, depending on the type, it may end up negative or positive whole number. --- Bitwise operation NOT (~) Bitwise.Not(binaryTable) --- Bitwise operation AND (&) Bitwise.And(binaryTable, binaryTable2) --- Bitwise operation OR (|) Bitwise.Or(binaryTable, binaryTable2) --- Bitwise operation XOR (^) Bitwise.Xor(binaryTable, binaryTable2) --- Bitwise operation LShift (<<) Bitwise.LShift(binaryTable, value) --- Bitwise operation RShift (>>) Bitwise.RShift(binaryTable, value) --- Convert numeric values into binary bits representation Bitwise.ConvertToBinaryTable(value, valueType) Return a table consist of: { type = "bool", minValue = 0, maxValue = 1, bits = 1, hasNegativeBits = false, value = { 0 } } --- Convert binary bits into numeric representation. Bitwise.ConvertToNumericValue(binaryTable) --- Trim padded zeros in the binary bits. Bitwise.TrimPaddedZeros(binaryTable) ============================================================================= Why is the default not integer when using numeric values for binaryTable? This is because lua is dynamic and usually resolve them so generically. I tried to simulate the same thing in lua. I figured using a smaller type yields smaller bits and less computational time is needed for each operation. If you notice, more bits require more loops. This is done to accurately calculate the actual bits within a specific constraint. I want to avoid looping too much as it may introduce unnecessary lag in-game. After all, using AND or OR or XOR operation doesn't affect anything when dynamic resolve technique is used. Just bare in mind NOT operation does affect the results.
  7. jianmingyong

    The Dialga Team Chat Box API

    The Dialga Team Chat Box API A custom ChatBox with API for custom commands. It is open sourced. Feel free to take a look and make a pull request for any bug fixes. https://github.com/The-Dialga-Team-Project-Zomboid-Mods/The-Dialga-Team-Mod-Collection/tree/master/Contents/mods/TDTModChatBoxAPI Features: 1. Mod Devs can create custom command and use them. 2. Customizable ChatBox. You can opt in for the custom chatbox which contains tons of moddable features. - Tabs - Name Colors - Font Colors - Color Picker - Server Message - Many More... 3. Server sided. Activation of chatbox is done by authentication of server packets. (LuaNet) No chatbox will be displayed if server fails to respond. Every request you make will also require server response or nothing will happen. More bandwidth are expected as we are sending a slightly bigger data that contains more information. There will be a few versions of this mod: - Standalone version - A separate module version - Mod pack version I understand that some modders do not like to subscribe many mods at one go so in order to make it easier for everyone, you choose whichever that fits your boat. Standalone version will only be released when it is stable. Modpack and modularized version have been released but are generally NOT stable and not for production use. Dev Log: 29 March 2018 - Under testing phase. Not stable at this point in time.
  8. jianmingyong

    Custom server commands

    I have bundled a new clone (with additional features like colors and custom commands) https://github.com/The-Dialga-Team-Project-Zomboid-Mods/The-Dialga-Team-Mods-Pack/blob/master/media/lua/client/TheDialgaTeam/TDTModChatBoxAPI/ChatBoxAPI.lua I made a placeholder repo to hold my mods for now. Though all these code are align closely to our own server, I am making it customizable via setting files. (I can bundle all the mods into one which allows easier usage) I ship my own chatbox in addition to the default chatbox. As default chatbox differs from version to version, it may break anytime. I am still looking for ways to make it simpler to inject custom command.
  9. jianmingyong


    Maybe your mod load earlier than hydrocraft by folder naming conventions. If your mod load earlier than anything else, you can't really spawn anything custom.
  10. I expected some mods that have global tables and worried that it loads in the wrong order. Fear not. You can always trick the game to load first or last depending on the file name. There are mods that prepend numbers to be first. Obviously nobody would try to outsmart your idea and that's fine by any means. From the ascii chart: ! is the first printable and valid file name. ~ is the last printable and valid file name (excluding other chars that aren't on keyboard). The more you append the specific char, the more you guarantee that it always load first/last! Nested folder will also have the same effect but the order remains as: shared/<files> shared/<folders> client/<files> client/<folders> server/<files> server/<folders> Now with this idea, let say you want to call something before anyone overrides it, you can now name your file "!MyModule.lua" to avoid that trouble. If you need to ensure it is first, prepend more "!!!MyModules.lua" and it will be first no matter what.
  11. jianmingyong

    Custom server commands

    Tldr at the bottom. Edit: There's a new update the ISChat again and thus well it broke a little but I fix it eventually. What I did was to write on top of the original ISChat. https://steamcommunity.com/sharedfiles/filedetails/?id=1265709605 How do I do this? I have injected one more event that take place before the command processing. It will first do all the command processing for the mods before doing the vanilla commands. What is the problem? This mod is still quite experimental and I just started doing something ambitious hence it may not work quite well and optimized. There is also chance that other mod that tries to override ISChat would fail to work as I have updated it to always load last but just before any event triggers. (Appending ~ to file name does that) It becomes mod specific and everyone had to use that specific mod api to add more functions.... Legion was talking about me I did custom mods for them. (Sux to say that my mod had a dependency and doesn't work on its own when I ship them individually as a module) In fact it is still early stage how it would work. I only did this for capping skills mod that has custom commands on it. It does not work on server side command prompt and will never work anyway. Tldr: My solution was same as the above discussion. It is by overwritting a global function and ensures it always load last.
  12. A mod that allows user to define custom actions and consumes it before the game process it as a normal chat or in-game commands. This idea came from the fact that I wanted to add custom command but found a dead end with the current events and limitations in place. I think some people wanted similar feature such as this but just couldn't do it. (I have made one but it isn't really well designed for public usage except for my own self xD) What are the expected features? - Able to get the message user have entered. - Define custom commands with custom prefix - Consume the commands before in-game commands (to add flexibility in design) - Print custom output or run a function based on the command. This should sum up the custom chatbox that allows anyone to change the output and create custom mod commands.
  13. I am the co-owner of the server in Newdawn (AGN / pz.aggressivegaming.org). This idea came from this server as we had issues with overwhelming perks / skills level in the past as players grind blindly without any RP. Hence this idea becoming a reality! I am working on this mod that allows server owner to change the skills max level so it will never be over powered when new player just joined trying to rp. The proposed idea is that it can be per character, per server and per steam account cap. This mod is still in work in progress and has no preview or anything. The features may increase overtime when the base intended features is done.
  14. jianmingyong

    RELEASED: Vehicle Test 41

    The tires inflation speed is rather TOO SLOW for anyone to really use. I mean seriously pumping a tire from 0 to 40 takes (40 x 50 x (40 / 5)) / 60 = 267 seconds = 4 minutes and 27 seconds. So if I replace 4 tires, am I going to wait 16+ minutes just to pump to full. Though I have made a mod just to solve this slow issue (while waiting for official game to release something better than this), it is rather insane for anyone to wait that long... Deflation speed however is like lighting... less than 30 seconds.
  15. jianmingyong

    RELEASED: Build 38.22

    For some reason, our players on our server are facing total city blackout after the update.