Jump to content

HarryCourt

Member
  • Posts

    2
  • Joined

  • Last visited

About HarryCourt

  • Birthday April 25

Profile Information

  • Gender
    Man

Recent Profile Visitors

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

HarryCourt's Achievements

  1. Unfortunately this doesn't work. It simply just creates the chat UI with no tab at all.
  2. Hello all! Hope you're doing well. I'm currently making a mod that requires the use of another channel tab to operate. However, after looking through ISChat.lua and a few other mods, I still cannot figure out how to create another channel tab. I'm completely lost. What I've done is copied and pasted two functions; ISChat:onCommandEntered() and ISChat.onTabAdded = function(tabTitle, tabID). The former has been modified and runs perfectly fine should I only use the general tab. However, using ISChat.onTabAdded (Copied and pasted straight from ISChat.lua, no edits) produces TWO General tabs. Every edit that I can think of has resulted in the tab going missing or the chatbox producing errors and no longer functioning. Here is the code that is being used. I've left out the ISChat.onTabAdded function as it's a direct paste from ISChat.lua, and I'm not even 100% sure I'm supposed to be doing that. -- File name: ISChat_Harrison.lua ISChat.allChatStreams[8] = {name = "radio", command = "/radio ", shortCommand = "/r", tabID = 3}; ISChat.defaultTabStream[3] = ISChat.allChatStreams[8]; function ISChat:onCommandEntered() local command = ISChat.instance.textEntry:getText(); local chat = ISChat.instance; ISChat.instance:unfocus(); if not command or command == "" then return; end local commandProcessed = false; local chatCommand; local chatStreamName; for _, stream in ipairs(ISChat.allChatStreams) do chatCommand = nil; if luautils.stringStarts(command, stream.command) then chatCommand = stream.command; elseif stream.shortCommand and luautils.stringStarts(command, stream.shortCommand) then chatCommand = stream.shortCommand; end if chatCommand then if chat.currentTabID ~= stream.tabID then showWrongChatTabMessage(chat.currentTabID - 1, stream.tabID - 1, chatCommand); -- from one-based to zero-based commandProcessed = true; break; end chat.chatText.lastChatCommand = chatCommand; local originalCommand = command; command = string.sub(command, #chatCommand); if command ~= "" and command ~= " " then chat:logChatCommand(originalCommand); end chatStreamName = stream.name; break; end end if not chatCommand then if luautils.stringStarts(command, "/") then SendCommandToServer(command); chat:logChatCommand(command); commandProcessed = true; else local defaultStream = ISChat.defaultTabStream[chat.currentTabID]; chatStreamName = defaultStream.name; chat:logChatCommand(command); end end if not commandProcessed then if chatStreamName == "yell" then processShoutMessage(command); elseif chatStreamName == "whisper" then local username = proceedPM(command); chat.chatText.lastChatCommand = chat.chatText.lastChatCommand .. username .. " "; elseif chatStreamName == "faction" then proceedFactionMessage(command); elseif chatStreamName == "safehouse" then processSafehouseMessage(command); elseif chatStreamName == "admin" then processAdminChatMessage(command); elseif chatStreamName == "say" then processSayMessage(command); elseif chatStreamName == "general" then processGeneralMessage(command); -- Harrison here; If it's a general message, then let's check if we can actually have a radio elseif chatStreamName == "globalradio" then if getPlayer():getInventory():getItemsFromFullType("Radio.WalkieTalkie1"):size() ~= 0 or getPlayer():getInventory():getItemsFromFullType("Radio.WalkieTalkie2"):size() ~= 0 or getPlayer():getInventory():getItemsFromFullType("Radio.WalkieTalkie3"):size() ~= 0 or getPlayer():getInventory():getItemsFromFullType("Radio.WalkieTalkie4"):size() ~= 0 or getPlayer():getInventory():getItemsFromFullType("Radio.WalkieTalkie5"):size() ~= 0 or getPlayer():getInventory():getItemsFromFullType("Radio.WalkieTalkieMakeShift"):size() ~= 0 then print("RADIO!!") processGeneralMessage(command); else -- Else, just send a halo to the player print("no radio :(") getPlayer():setHaloNote("*I need a radio before I can do that...*", 255, 144, 0, 300) end end end doKeyPress(false); ISChat.instance.timerTextEntry = 20; end -- At the bottom here is the "ISChat.onTabAdded = function(tabTitle, tabID)" function found in ISChat.lua. This creates two "General" tabs, and I cannot figure out how to create a custom one.
  3. Note: This was copy and pasted from my reddit post I made on the same subreddit. Sorry if this seems rushed or unformatted. Hello all. I did make a previous post about this issue a few weeks back when MP was a week old or so. Unfortunately, it didn't really make that big of a splash, and I thought it needed an update anyway. As a server owner, I have come across several details and features that make staffing in PZ more difficult than it should be. Don't get me wrong, some of the features, like being able to tweak server and sandbox settings on the fly (With a fairly easy to navigate UI) is a wet dream. However, there are many flaws that could make staffing on PZ less of a chore; Section 1: Logs One of my biggest concerns about Multiplayer is the log system. While it may have done the job when multiplayer first released, the game has had so many new features that the log files feel barren and almost useless when trying to figure out griefing and rule breaking; Think a staff member is giving themselves items? The server doesn't log them unless it's done through chat commands, which is almost never, since an Item List GUI is far easier to access. Someone stole someone else's vehicle while they were offline? Nothing about entering and leaving cars, only if they damaged or repaired a part. Someone burned down a PoI? Nothing for thrown Molotov's or pipe bombs. You can check if someone changed a tile to a burnt version, but it's difficult to see. On top of that, you can only access the logs if you have access to the server files, which is something I am not wanting to give lower-ranked staff. We already have features like looking in the in-game database and reading text files through the debugger, add that in for the current sessions logs. Given, I could send them the files of said logs, but you have to remember that it would just be easier to access in-game. Section 2: Access Levels On the topic of Staff, the lowest access level, an observer, can still do PLENTY of things that I would not like them to be doing, such as giving themselves items and the ability to change the sandbox settings, and yet, they cannot change their own stats? "Hire staff members you trust" is not only incredibly dull, but ignorant. I could hire a friend I've known for years, and they could still change a sandbox setting because they think it's unfair. And guess what? I wouldn't be none-the-wiser because of the logging system. Section 3: Loot Respawn Unless you are playing on a private server between you and friends, loot respawn is a REQUIREMENT for multiplayer servers, both for newcomers and veterans. However, the loot respawn feels dated, not multiplayer friendly, and is very exploitable. To have respawn on a fixed hourly countdown timer is terrible. Too low of a value, and there are unrealistic amounts of supplies, especially for rare items like military gear, and is boring for veteran players. Too high of a value, and looting becomes tedious for new players. On top of that, some players will always try to farm and grab the most expensive and rare loot the moment they know loot has respawned. Even having a time frame instead of a fixed value would greatly benefit servers. Section 4: Server Listing This one is less of a requirement, but more of a feature I'd love in PZ. When I click on the "Public Servers" on Project Zomboid, I am greeted with row and row of the same font with the same coloured text with the same headers and the same text format and layout. It's boring, it doesn't make your server stand out, and all the "big" servers feel the same as private ones. What would be great is if we could completely customise our descriptions and titles with text formatting and new colours. Hell, even a 128x128 PNG of the server logo would be good enough. But why should I, a regular player with no interest of opening my own server, care about any of this? Because server owners and staff want you to have fun. The last thing server staff want is someone to dislike their server because the giga-mart they've been trying to get to, death after death, has been looted for its food, only for them to die again because they couldn't find a weapon. Players who joined 3 minutes ago should have the same experience as someone who joined 4 months ago when they first started, and have a fair experience doing so. Anyway, if you've made it this far from my rambling, please discuss and share your opinions below. If you suggest something that I think could contribute this thread, I'll add it in. Thank you for your time.
×
×
  • Create New...