Jump to content

MXXIV

Member
  • Posts

    86
  • Joined

  • Last visited

Reputation Activity

  1. Like
    MXXIV got a reaction from excon in Lua code snippets   
    I decided to make list of some code snippets I have used so far. I will try to sort them but generally just use CTRL+F to find what you need.
    Lua tricks
    I aim to share PZ related Lua tricks. I assume here you understand what prototype inheritance is and how does OOP work in Lua. However some things can work for you well without understanding them.
    Subclassing Lua "class"
    In PZ files, following function is used to subclass a class:
    MyClass = BaseClass:derive("MyClass") This only works with classes defined in PZ library or classes that inherit from it.
    Class constructor
    Generally, constructors look like this:
    function MyClass:new() -- Create a map and set iteself as map prototype local o = {} setmetatable(o, self) -- not sure or care what this is -- inheritance actually worked without it too o.__index = self return o end Overriding built-in method
    Suppose you want to patch some built-in PZ method but not completely rewrite it. You can do this by saving the old function in local variable. Keep an eye on : and . difference!
     
    local old_doStuff = PzOriginalCode.doStuff; function MyMod:doStuff() -- Do some stuff print("Doing stuff real hard"); -- Call original function old_doStuff(self); -- Do this to preserve return value -- return old_doStuff(self); end Loop over numeric items in array
    If you have array that contains enumerated list, you can loop over these. Note the difference between pairs and ipairs:
    local values = {"first", "second", "third"}; for index,value in ipairs(values) do print(value); end Loop over named items in table
    This comes handy when you have something indexed by item names for example. Note the difference between pairs and ipairs:
    local item_type = {Axe="weapon", Berry="food", Lipstick="garbage"}; for item_name,type_name in pairs(item_type) do print(item_name.." is "..type_name); end Items
    Item script files are /media/scripts/items.txt, /media/scripts/newitems.txt, media/scripts/items_radio.txt.
    Get item name translation
    To do this, use ScriptManager.getItemName which will return English name. Then put English name into getItemText which comes from global lua object. Whole:
    getItemText(ScriptManager.getItemName("Base.Axe")); This method is safe from null pointer errors and returns original string on failure.
    Get item texture object
    This will provide you with Texture object if you have item name.
    local item = InventoryItemFactory.CreateItem("Base.Axe"); local texture = nil; if item then texture = item:getTex(); end Add item into inventory
    Requires instance of IsoGameCharacter (eg. player), uses ItemContainer which is player's inventory:
    local inv = player:getInventory() if inv~=nil then inv.addItem("Base.Axe") end Spawn item on ground
     Requires instance of IsoGridSquare to spawn the items on:
    square:AddWorldInventoryItem("Base.Axe", 0, 0, 0); World objects
    Containers, walls, trees - those are all world objects.
     
    Get all world objects player has right-clicked:
     
    function objectRightClicked(player, context, worldObjects, test) print("Objects right clicked"); -- Not sure but it's all around production code so probably -- important if test and ISWorldObjectContextMenu.Test then return true end -- Pick first object in worldObjects as refference one local firstObject; for _,o in ipairs(worldObjects) do if not firstObject then firstObject = o; end end -- the square this object is in is the clicked square local square = firstObject:getSquare() -- and all objects on that square will be affected local worldObjects = square:getObjects(); -- Loop over objects on square for i=0,worldObjects:size()-1 do local object = worldObjects:get(i); print("Clicked object!"); print(" Name:"..(object:getName() or "")); print(" Object:"..(object:getObjectName() or "")); print(" Sprite:"..(object:getSpriteName() or "")); print(" Texture:"..(object:getTextureName() or "")); end end Events.OnFillWorldObjectContextMenu.Add(objectRightClicked); Destroy world object:
    Requires IsoObject instance:
    local square = object:getSquare(); square:transmitRemoveItemFromSquare(object) square:RemoveTileObject(object); Put container items on ground before destroying
    In case you want to destroy, for example, crate, items should be put on ground first:
    local container = object:getContainer(); local square = object:getSquare(); -- If the object has container if container~=nil then local items = container:getItems(); for i=0,items:size()-1 do -- WARNING: this will cause item duplication if the container -- is not destroyed local item = items:get(i); square:AddWorldInventoryItem(item, 0, 0, 0); end end -- Destroy the object -- see above  
  2. Like
    MXXIV got a reaction from Staina in Would it be possible to make a cooler for when power goes out to keep stuff cold?   
    Decreasing entropy is a hard thing to do and rather elaborate strategies are needed to do so. One nice trick is so-called evaporative cooling, used in Africa to preserve food. However it's not miraculously effective, especially in colder and wetter climates.
  3. Spiffo
    MXXIV got a reaction from geronimo553 in Zombies shouldn't attack objects at random when they are bored   
    Currently, when zombies get bored they start vandalizing everything in their reach. Larger group of zombies quickly wipe away all windows and doors in player's proximity. Which is another thing - zombies only destroy stuff when player is close. When I sneak to a group of zombies even though they don't seem me they will slowly disperse and start destroying surrounding objects. It is very typical of them to find water barrels.
     
    Zombies often walk long distances in order to attack player-made objects. This is making me feel the game is cheating on me - especially if zombies walk around the wall to attack said water barrel or door. This is even worse due to A* nature of zombies pathfinder.
     
    I see nothing wrong with zombie destroying objects that interfere with it's path, but there must be a motivation for this action! Why would zombie just go to window to destroy it? When I approached the market (lot's of big windows), after just one day all windows and doors were broken.
     
    The only upside is that I don't need to break doors to get hinges and doorknobs. I just walk around the city and pick what zombies left behind them.
  4. Spiffo
    MXXIV got a reaction from myhappines in Please add generic items even if they have no use   
    Currently households do not really contain realistic amount of items. Many tools such as pincers, drill bits, wire cutter, motor oil are missing from garages and tool sheds. The same applies to kitchens and toilets.
    The problem here is if mod authors define those items, we have item conflicts. It would be much better if mod authors only defined their mod specific items using the combination of existing typical items.
    Second problem is that people can collect those items, even without purpose, because maybe later in game an use will be added for them. If the item is added along with use, they have to extend their search radius to find the items in already looted map.
    I can already see some random items popping in game and I think it's great! I just want to express how important I think it is.
  5. Spiffo
    MXXIV got a reaction from EchelontheEyeless in Please add generic items even if they have no use   
    Currently households do not really contain realistic amount of items. Many tools such as pincers, drill bits, wire cutter, motor oil are missing from garages and tool sheds. The same applies to kitchens and toilets.
    The problem here is if mod authors define those items, we have item conflicts. It would be much better if mod authors only defined their mod specific items using the combination of existing typical items.
    Second problem is that people can collect those items, even without purpose, because maybe later in game an use will be added for them. If the item is added along with use, they have to extend their search radius to find the items in already looted map.
    I can already see some random items popping in game and I think it's great! I just want to express how important I think it is.
  6. Pie
    MXXIV got a reaction from EchelontheEyeless in Zombies shouldn't attack objects at random when they are bored   
    Currently, when zombies get bored they start vandalizing everything in their reach. Larger group of zombies quickly wipe away all windows and doors in player's proximity. Which is another thing - zombies only destroy stuff when player is close. When I sneak to a group of zombies even though they don't seem me they will slowly disperse and start destroying surrounding objects. It is very typical of them to find water barrels.
     
    Zombies often walk long distances in order to attack player-made objects. This is making me feel the game is cheating on me - especially if zombies walk around the wall to attack said water barrel or door. This is even worse due to A* nature of zombies pathfinder.
     
    I see nothing wrong with zombie destroying objects that interfere with it's path, but there must be a motivation for this action! Why would zombie just go to window to destroy it? When I approached the market (lot's of big windows), after just one day all windows and doors were broken.
     
    The only upside is that I don't need to break doors to get hinges and doorknobs. I just walk around the city and pick what zombies left behind them.
  7. Like
    MXXIV got a reaction from Lexx2k in Foraging filters beta   
    Not sure about you, but this is starting to freak me out:

    I won't burn this in ten years:

    Hence...
    Simple foraging filters
    Because I really suck at making GUI I raped the Crafting view to do some work for me. In the crafting window, there's now an additional tab called Foraging. Under this tab, all possible items are listed and you can toggle them on or off. Toggling is done by the star for favourites or by pressing F after selecting an item.
     
    I understand the GUI work I did sucks ass but frankly I think this mod will be soon replaced by built-in feature or maybe the foraging will be reworked. Therefore I was looking for fast ad-hoc solution. I did my job carefully on overriding built-ins so this mod shouldn't break anything.
     
    I will appreciate any testing on this. One flaw of modding is that you have less time to test the game and your own work.
    Where are the settings saved?
    Your preferences are saved in player modData table in foraging_filters sub-table. Note that items are not added until you change anything.
    Download
    Attached file, as usual.
    ForagingFilters.7z
  8. Like
    MXXIV got a reaction from xenoglyph in Lua code snippets   
    I decided to make list of some code snippets I have used so far. I will try to sort them but generally just use CTRL+F to find what you need.
    Lua tricks
    I aim to share PZ related Lua tricks. I assume here you understand what prototype inheritance is and how does OOP work in Lua. However some things can work for you well without understanding them.
    Subclassing Lua "class"
    In PZ files, following function is used to subclass a class:
    MyClass = BaseClass:derive("MyClass") This only works with classes defined in PZ library or classes that inherit from it.
    Class constructor
    Generally, constructors look like this:
    function MyClass:new() -- Create a map and set iteself as map prototype local o = {} setmetatable(o, self) -- not sure or care what this is -- inheritance actually worked without it too o.__index = self return o end Overriding built-in method
    Suppose you want to patch some built-in PZ method but not completely rewrite it. You can do this by saving the old function in local variable. Keep an eye on : and . difference!
     
    local old_doStuff = PzOriginalCode.doStuff; function MyMod:doStuff() -- Do some stuff print("Doing stuff real hard"); -- Call original function old_doStuff(self); -- Do this to preserve return value -- return old_doStuff(self); end Loop over numeric items in array
    If you have array that contains enumerated list, you can loop over these. Note the difference between pairs and ipairs:
    local values = {"first", "second", "third"}; for index,value in ipairs(values) do print(value); end Loop over named items in table
    This comes handy when you have something indexed by item names for example. Note the difference between pairs and ipairs:
    local item_type = {Axe="weapon", Berry="food", Lipstick="garbage"}; for item_name,type_name in pairs(item_type) do print(item_name.." is "..type_name); end Items
    Item script files are /media/scripts/items.txt, /media/scripts/newitems.txt, media/scripts/items_radio.txt.
    Get item name translation
    To do this, use ScriptManager.getItemName which will return English name. Then put English name into getItemText which comes from global lua object. Whole:
    getItemText(ScriptManager.getItemName("Base.Axe")); This method is safe from null pointer errors and returns original string on failure.
    Get item texture object
    This will provide you with Texture object if you have item name.
    local item = InventoryItemFactory.CreateItem("Base.Axe"); local texture = nil; if item then texture = item:getTex(); end Add item into inventory
    Requires instance of IsoGameCharacter (eg. player), uses ItemContainer which is player's inventory:
    local inv = player:getInventory() if inv~=nil then inv.addItem("Base.Axe") end Spawn item on ground
     Requires instance of IsoGridSquare to spawn the items on:
    square:AddWorldInventoryItem("Base.Axe", 0, 0, 0); World objects
    Containers, walls, trees - those are all world objects.
     
    Get all world objects player has right-clicked:
     
    function objectRightClicked(player, context, worldObjects, test) print("Objects right clicked"); -- Not sure but it's all around production code so probably -- important if test and ISWorldObjectContextMenu.Test then return true end -- Pick first object in worldObjects as refference one local firstObject; for _,o in ipairs(worldObjects) do if not firstObject then firstObject = o; end end -- the square this object is in is the clicked square local square = firstObject:getSquare() -- and all objects on that square will be affected local worldObjects = square:getObjects(); -- Loop over objects on square for i=0,worldObjects:size()-1 do local object = worldObjects:get(i); print("Clicked object!"); print(" Name:"..(object:getName() or "")); print(" Object:"..(object:getObjectName() or "")); print(" Sprite:"..(object:getSpriteName() or "")); print(" Texture:"..(object:getTextureName() or "")); end end Events.OnFillWorldObjectContextMenu.Add(objectRightClicked); Destroy world object:
    Requires IsoObject instance:
    local square = object:getSquare(); square:transmitRemoveItemFromSquare(object) square:RemoveTileObject(object); Put container items on ground before destroying
    In case you want to destroy, for example, crate, items should be put on ground first:
    local container = object:getContainer(); local square = object:getSquare(); -- If the object has container if container~=nil then local items = container:getItems(); for i=0,items:size()-1 do -- WARNING: this will cause item duplication if the container -- is not destroyed local item = items:get(i); square:AddWorldInventoryItem(item, 0, 0, 0); end end -- Destroy the object -- see above  
  9. Like
    MXXIV got a reaction from wintermuteai1 in Dismantle and scavenge everything   
    Although there already was some dismantle action added to the game, it doesn't really satisfy me. It uses the same tools for everything and is very limited. I already wanted to do this mod long time ago, so I did it now.
    Dismantle all
    This mod aims to allow player to dismantle as many in-game objects as possible.

    Different objects require different tools and different skills. Dismantling most objects grants experience for related skills. Dismantling complicated objects takes a long time.
    Current status
    Currently, almost all one-tile furniture can be dismantled. Dismantling furniture grans carpentry experience and often also requires carpentry skill level. Doors can be also dismantled, though only if they're open.
     
    Several electronic objects can be dismantled, such as televisions and microwave ovens - both useless once electricity is off.
    Limitations
    Multi tile objects cannot be dismantled, because the objects are not connected anyhow. Same problem happens with sledgehammer so I guess there's no ingame API to deal with this yet:
    Currently, loot is not randomized. Plans for full version
    Randomize loot from dismantled items Allow players to restore dismantle progress Increase speed depending on skill Skill should also improve loot Certain items should make operation faster/slower (eg. Axe vs Raw Axe) Load dismantle recipes from txt scripts rather than lua code Also add dismantle recipes for inventory items Smooth interaction with other mods This mod is moddable!
    You can easily change behavior of this mod. Add more objects in lua/client/Data/ObjectAssociations.lua. To view info about clicked objects, enable debug in lua/client/Context/ISDismantleMenu.lua, by setting debug property to true. You can also add more dismantle definitions in lua/client/Data/ObjectTypeDefs.lua.
    I appreciate your feedback!
    Currently, the mod is unbalanced. Many items are surely missing. I will appreciate your ideas or criticisms! If you understand Lua, I will also appreciate some code-review. This is my first Lua code ever.
    To download, click on attached file
    Dismantle.7z
  10. Like
    MXXIV got a reaction from ShuiYin in Foraging filters beta   
    Not sure about you, but this is starting to freak me out:

    I won't burn this in ten years:

    Hence...
    Simple foraging filters
    Because I really suck at making GUI I raped the Crafting view to do some work for me. In the crafting window, there's now an additional tab called Foraging. Under this tab, all possible items are listed and you can toggle them on or off. Toggling is done by the star for favourites or by pressing F after selecting an item.
     
    I understand the GUI work I did sucks ass but frankly I think this mod will be soon replaced by built-in feature or maybe the foraging will be reworked. Therefore I was looking for fast ad-hoc solution. I did my job carefully on overriding built-ins so this mod shouldn't break anything.
     
    I will appreciate any testing on this. One flaw of modding is that you have less time to test the game and your own work.
    Where are the settings saved?
    Your preferences are saved in player modData table in foraging_filters sub-table. Note that items are not added until you change anything.
    Download
    Attached file, as usual.
    ForagingFilters.7z
  11. Like
    MXXIV got a reaction from ZombiesLoveBrainiacs in Lua code snippets   
    I decided to make list of some code snippets I have used so far. I will try to sort them but generally just use CTRL+F to find what you need.
    Lua tricks
    I aim to share PZ related Lua tricks. I assume here you understand what prototype inheritance is and how does OOP work in Lua. However some things can work for you well without understanding them.
    Subclassing Lua "class"
    In PZ files, following function is used to subclass a class:
    MyClass = BaseClass:derive("MyClass") This only works with classes defined in PZ library or classes that inherit from it.
    Class constructor
    Generally, constructors look like this:
    function MyClass:new() -- Create a map and set iteself as map prototype local o = {} setmetatable(o, self) -- not sure or care what this is -- inheritance actually worked without it too o.__index = self return o end Overriding built-in method
    Suppose you want to patch some built-in PZ method but not completely rewrite it. You can do this by saving the old function in local variable. Keep an eye on : and . difference!
     
    local old_doStuff = PzOriginalCode.doStuff; function MyMod:doStuff() -- Do some stuff print("Doing stuff real hard"); -- Call original function old_doStuff(self); -- Do this to preserve return value -- return old_doStuff(self); end Loop over numeric items in array
    If you have array that contains enumerated list, you can loop over these. Note the difference between pairs and ipairs:
    local values = {"first", "second", "third"}; for index,value in ipairs(values) do print(value); end Loop over named items in table
    This comes handy when you have something indexed by item names for example. Note the difference between pairs and ipairs:
    local item_type = {Axe="weapon", Berry="food", Lipstick="garbage"}; for item_name,type_name in pairs(item_type) do print(item_name.." is "..type_name); end Items
    Item script files are /media/scripts/items.txt, /media/scripts/newitems.txt, media/scripts/items_radio.txt.
    Get item name translation
    To do this, use ScriptManager.getItemName which will return English name. Then put English name into getItemText which comes from global lua object. Whole:
    getItemText(ScriptManager.getItemName("Base.Axe")); This method is safe from null pointer errors and returns original string on failure.
    Get item texture object
    This will provide you with Texture object if you have item name.
    local item = InventoryItemFactory.CreateItem("Base.Axe"); local texture = nil; if item then texture = item:getTex(); end Add item into inventory
    Requires instance of IsoGameCharacter (eg. player), uses ItemContainer which is player's inventory:
    local inv = player:getInventory() if inv~=nil then inv.addItem("Base.Axe") end Spawn item on ground
     Requires instance of IsoGridSquare to spawn the items on:
    square:AddWorldInventoryItem("Base.Axe", 0, 0, 0); World objects
    Containers, walls, trees - those are all world objects.
     
    Get all world objects player has right-clicked:
     
    function objectRightClicked(player, context, worldObjects, test) print("Objects right clicked"); -- Not sure but it's all around production code so probably -- important if test and ISWorldObjectContextMenu.Test then return true end -- Pick first object in worldObjects as refference one local firstObject; for _,o in ipairs(worldObjects) do if not firstObject then firstObject = o; end end -- the square this object is in is the clicked square local square = firstObject:getSquare() -- and all objects on that square will be affected local worldObjects = square:getObjects(); -- Loop over objects on square for i=0,worldObjects:size()-1 do local object = worldObjects:get(i); print("Clicked object!"); print(" Name:"..(object:getName() or "")); print(" Object:"..(object:getObjectName() or "")); print(" Sprite:"..(object:getSpriteName() or "")); print(" Texture:"..(object:getTextureName() or "")); end end Events.OnFillWorldObjectContextMenu.Add(objectRightClicked); Destroy world object:
    Requires IsoObject instance:
    local square = object:getSquare(); square:transmitRemoveItemFromSquare(object) square:RemoveTileObject(object); Put container items on ground before destroying
    In case you want to destroy, for example, crate, items should be put on ground first:
    local container = object:getContainer(); local square = object:getSquare(); -- If the object has container if container~=nil then local items = container:getItems(); for i=0,items:size()-1 do -- WARNING: this will cause item duplication if the container -- is not destroyed local item = items:get(i); square:AddWorldInventoryItem(item, 0, 0, 0); end end -- Destroy the object -- see above  
  12. Like
    MXXIV reacted to Heporlathic in Auto drink, slider for consumption   
    When you posess a container full of water, the character automatically drinks it -
    wouldn't it be better if you had to decide which fluid you'd like to drink?
    I think it would make sense for strategically rationing your water supply.
     
    Also a slider from 1% to 100% for the amount of food/fluid you want to take from an item would be awesome, with a
    quick button to eat/drink everything.
     
    Which also brings up the question why there is no consumption limit for food and drinks.
    Ok, thx bye!
     
     
  13. Like
    MXXIV reacted to King Kitteh in Making window and door frames with sledge hammer   
    This makes sense, but really, the sledgehammer is already used to destroy things that it doesn't really make sense to (chain link fences and such).
     
    We could compensate by allowing people to make a rough hole with a sledgehammer, but requiring some carpentry skill along with planks and nails to make the frame or door outline.
    Alternatively you could use a hammer and chisel to make make the hole perfectly square after smashing the main part out with a sledge hammer.
    Perhaps even requiring both planks and nails, and chiseling to make the frame.
     
    Hammer and chisel could be a new item, or you could just use the regular hammer and a screw driver. Not sure if that should take carpentry skill or not.
     
    TLDR: You can make a hole with a sledgehammer, but carpentry skill should be needed to make it able to have a window or door fitted.
     
    Edit: Although with that edition, we'd need to have "rough hole in wall" textures added to stop confusion.
  14. Like
    MXXIV got a reaction from wintermuteai1 in Npc Modding?   
    Sorry for being off topic but seeing your avatar I must ask - is Rim World still active? Is my force field shield still used?
  15. Like
    MXXIV reacted to ShuiYin in Rest at Any Level of Exertion   
    Hahahah that explains it i chop a few trees and build a couple of walls then the rest i use my debugging mod creative mode to build the rest Lol. I do try the exertion thing at 1 time just to see how it works while turning all player stat component on screen based on Robomats code  i never seem to catch any cold while testing all the hazards in game tho. 
  16. Like
    MXXIV reacted to CaptKaspar in Rest at Any Level of Exertion   
    Right now you need to have the 'moderate exertion' Moodle or higher present if you want to rest.
     
    I suggest resting regardless of how exerted you are.
     
    For instance you have been sprinting for awhile and you know you are about to become moderately exerted. You come upon a chair that is in a safe area. Yet when you try to rest, you can not rest in it because you aren't 'exerted' yet. Upon leaving the safe area you sprint for a few moments and then you are now exerted! If only you rested a moment ago
  17. Like
    MXXIV got a reaction from ShuiYin in Making window and door frames with sledge hammer   
    Agreed. I wasn't saying it's wrong to ask for a feature, I just thought you are upset that I said it's easy but still it isn't added. Hence I explained that the problem isn't technical but is a HR issue.
     
    Nice to see people being drawn into programming by games!
  18. Like
    MXXIV reacted to ShuiYin in Making window and door frames with sledge hammer   
    I happen to be an interior designer but i really like this game so i go into modding. I guess its my present priority hobby now.
     
    You should its quite fun to do, kinda like playing sudoku but at the end of it you get to see your code in action or bug in action Lolll . 
  19. Like
    MXXIV reacted to Dubpub in Full Project Zomboid Lua Reference Sheet   
    Hello PZ modding community! After a few days of digging through the source code I've successfully created a list of events that can be used when LUA scripting.
     
    I will be updating this list after every major build. (32 -> 33).
     
    Here is a link to the sheet. I'll be adding a full functions list as well soon. Also, gimme some advice on the style of that page. I'm a mere software developer, so keep it cool. As always, contact me here if you find something amiss or discover some new functionality or LUA event/function I'm not yet aware of! Also, I know it can be hard to understand, I'm working on fixing that and providing examples of implementation. If you have any questions at all, please leave a comment here or pm me and I'll help ya out.
     
    I'll write a mobile site if it's in high demand, for now, consider it desktop only. Should support all known desktop and tablet resolutions though!
     
    Edit: Don't want to use my site? Liberal? Here's a dropbox link for the excel sheet!
     
    Thanks, happy modding!
  20. Like
    MXXIV reacted to King Kitteh in Screams of Pain   
    Yea screaming is a pretty personal thing that changes between people, doesn't actually reflect pain tolerance or anything. When I get hurt I mainly just cringe and grit my teeth, with some quiet groaning.
     
    Adding it as a trait would definitely be the better option, would make interesting game play. 
  21. Like
    MXXIV reacted to theweef in Screams of Pain   
    Hey all, just thought about this. I did a search and this suggestion was spoken only like 1-3 times BEFORE October 2014.
     
    Anyways, I think there should be a new Scream mechanic that intertwines with traits and health. Similar to being sick, when a character is in pain or is wounded (or better yet at an agony level, making painkillers more important), there should be an RNG that every x unit of time or pressure, the character will either emit the following sounds:
     
    Death Scream - Upon death, the player's scream (that plays during death already) will attract more zombies, making looting your own body (or killing yourself-self) not a favorable option for a few days.
     
    Fracture Scream - Who on earth DOESN'T scream when they break their leg? Screams will get quieter as the character breaks more limbs, if they happen to live and fully heal
     
    Pressure Scream - If a character is wounded in an area that is healing, nerve reactions shoot to their brain and will cause a scream. Not louder than a fracture scream, but can be pretty dangerous.
     
    Bitten Scream - Have fun not screaming as you lose a chunk of your body.
     
    Heavy Pain Sighs/Grunts - Similar to a really bad stomach ache or bug, the character may heavily sigh or grunt from the pain they are experiencing. Sound radius shouldn't be too big, perhaps just an average room size.
     
    Medium Pain Sighs/Grunts - You know that feeling when you break a fall with your nose, or you scrape off a few layers of skin on a limb, and you're walking your sorry behind to some medical help while trying not to focus on your blood pouring everywhere? Yeah.
    keep in mind I don't want some sound imported from an 80's snuff film
     
    Any pain easier to handle than Medium will not emit a sound.
    To counteract these negative effects, some new traits will come in.
     
    Heavy Sports Player - -4 points, reduces sound radius from pain
     
    Loud Mouth - +4 points, increases sound radius from pain
     
    Being a Veteran or Police Officer will also reduce sound radius from pain.
     
    If the actual audio gets too annoying, just make it text like sneezing (or better yet, make it an option for audio, text, or both).
     
    What do you guys think? I'd like some feedback on this. I always got tired of my character not screaming or anything when he just fought through a horde of zombies, bleeding from all over.
  22. Like
    MXXIV reacted to King Kitteh in Making window and door frames with sledge hammer   
    While making a base in Twiggy's yesterday I was met with a small problem. I wanted to build a sheet rope escape but all of the windows had roof tiles outside of them, meaning they were unusable.
    Still wanting a sheet rope I decided to make my own window, smashing one of the walls with my sledge hammer and then building an extremely poor looking window frame with my limited carpentry skill.
     
    While staring annoyed at my awful window frame I thought to myself, "Wouldn't this be so much easier if I could just make a hole in the original wall instead of smashing it and building a new one".
     
    And that, ladies and gentlemen, is my suggestion.
     
    You should be able to turn walls into window frames, as well as door frames using the sledgehammer.
    I think it will be very useful for remodeling houses without ruining the aesthetics and wasting time rebuilding.
    It would also be helpful in that, you won't need to have carpentry skill to make a new window or door frame in place of the preexisting wall.
     
    Also, since door frames are pretty much just extended window frames, you should be able to make a window frame into a door frame as well.
    (Only the traditional window frames should be changeable, full length windows wouldn't work, also the glass pane would need to be removed or broken first)
     
    Please tell me what you think 
  23. Like
    MXXIV reacted to blindcoder in Project Zomboid Map Project   
    Hi!
     
    You can try the binary release from here: https://github.com/blind-coder/pz-mapmap/releases/tag/worldVersion_85
    Also, in the file runme.bash https://github.com/blind-coder/pz-mapmap/blob/master/runme.bash there is an example call on how to run it.
    Be aware that this does currently NOT work with the IWBUMS .pack files (the new tiles), but only the older ones. I'm still working on getting those to run properly.
    The tiledef parameter is not needed if you use only .lotpack files (so no savegames).
     
    I hope this helped you. If you need any more information, don't hesitate to contact me here!
  24. Like
    MXXIV reacted to wintermuteai1 in Npc Modding?   
    Thank you Fluffe9911 much appreciated.
  25. Like
    MXXIV reacted to fluffe9911 in Npc Modding?   
    Here is the npc mod https://drive.google.com/file/d/0B7wp8-w7flMOdVpLamx4TUl2ejA/view
     
    He also started work on a animal npc mod soon after but it was never released (I do have it though but don't know if he would be ok with me sharing)
×
×
  • Create New...