-
Posts
167 -
Joined
-
Last visited
Posts posted by Tchernobill
-
-
There is no click required to pop up the tooltip.
It is only Mouse Over detection and mouse movements.
-
No mod.
PC Mouse & Keyboard
context:
Well Fed Moodle is the lowest visible moodle.
Cursor is on the well fed moodle (top of the painted red arrow in the image below).
=> tooltip Well Fed is visible
The player moves the cursor down to an UI that is VERY close (bottom of the red arrow in the image below).
Current:
The Well Fed tooltip remains visible. (as long as the cursor remains on that new U.I
Expected:
The Well Fed tooltip disappears.
Reproductibility: non systematic but very high occurrence. rapid mouse movements increase the reproductibility.
-
You can override lua functions.
You cannot override java methods (this way).
IsoDoor & IsoThumpable are Java classes.
I do not know how to override java methods from lua.
I do not know anyone who knows how to do that. (but if someone can, please explain me how).
That said, ToggleDoor* leads** to the call of LuaEventManager.triggerEvent("OnContainerUpdate");***
*In a subcall to ToggleDoorActual
**event is called only in some cases (not garage door, not double door, not locked door, ..)
***event is called with no parameter so you do not know if the OnContainerUpdate is called for a door opening or something else (like a zombie dead or item generation or whatever)
So, if you can maintain a list of doors, and identify that the door changed its state, you could inject your toxic stuff at that time.
It is tricky, verbose and will require a lot of work for a possibly meh result.
-
B41.73
PC
No Mod
CDDA
trait Handy active (adds +1 maintenance) among other non related traits.
I have a katana in both hands, I push a zombie on purpose (with space bar, it was NOT a short distance backup push).
Current:
Maintenance levelled up (from 1 to 2)
Expected:
Maintenance does not get xp when pushing zombie. (as far as I know there is no hand maintenance)
-
Moodle Framework allows you to add your very own modded moodle in no time.
Detailed "how to" is included.
An exemple is also available with ProteinsMoodle.
-
Hi,
Do you think I should continue to call getTexture within the render loop or is it worth the added work/complexity to store getTexture to minimise thoses calls.
1/ keep it simple s.
function ISUICustom:render() self:drawTexture(getTexture("MyPrettyPic.png"), 0, 0, 1, 1, 1, 1); end
2/ preload getTexture
function ISUICustom:render() self:drawTexture(self.texture, 0, 0, 1, 1, 1, 1); end function ISUICustom:new() self.texture = getTexture("MyPrettyPic.png"); end
-
thanx for taking the time to pointing that out.
-
public boolean Eat(InventoryItem var1, float var2) { Food var3 = (Food)Type.tryCastTo(var1, Food.class); //[..] //condition requiring the timer effectiveEdibleBuffTimer to be completed. if (this.BodyDamage.getFoodSicknessLevel() > 0.0F && (float)var3.getReduceFoodSickness() > 0.0F && this.effectiveEdibleBuffTimer <= 0.0F) { //here we decrease food sickness level var14 = this.BodyDamage.getFoodSicknessLevel(); this.BodyDamage.setFoodSicknessLevel(this.BodyDamage.getFoodSicknessLevel() - (float)var3.getReduceFoodSickness() * var2); if (this.BodyDamage.getFoodSicknessLevel() < 0.0F) { this.BodyDamage.setFoodSicknessLevel(0.0F); } //here we decrease poison level var7 = this.BodyDamage.getPoisonLevel(); this.BodyDamage.setPoisonLevel(this.BodyDamage.getPoisonLevel() - (float)var3.getReduceFoodSickness() * var2); if (this.BodyDamage.getPoisonLevel() < 0.0F) { this.BodyDamage.setPoisonLevel(0.0F); } //here we decide of the time taken until next check. from shorter to longer: IronGut < WeakStomach < NoTrait if (this.Traits.IronGut.isSet()) { this.effectiveEdibleBuffTimer = Rand.Next(80.0F, 150.0F); } else if (this.Traits.WeakStomach.isSet()) { this.effectiveEdibleBuffTimer = Rand.Next(120.0F, 230.0F); } else { this.effectiveEdibleBuffTimer = Rand.Next(200.0F, 280.0F); } } //[..] return true; } private void updateInternal() { //[..] //decrease timer over time as should be if (this.effectiveEdibleBuffTimer > 0.0F) { this.effectiveEdibleBuffTimer -= GameTime.getInstance().getMultiplier() * 0.015F; if (this.effectiveEdibleBuffTimer < 0.0F) { this.effectiveEdibleBuffTimer = 0.0F; } } //[..] }
It also has impact on poison level decrease and food sickness level decrease.
I do not understand how this is part of the "Eat" method though, but it may be unrelated.
-
It looks a lot like a timer for the sickness duration, decreased in IsoGameCharacter updateInternal() method.
-
This is still the case with B41.73
It looks A LOT like WeakStomach and default (no associated trait) cases have been swapped for duration.
see IsoGameCharacter.java Eat( InventoryItem, float ) method.
That said, the BodyDamage.java JustAteFood( Food, float ) is in the correct order for poison / dangerousuncooked / rotten effects amplitudes.
-
You may show this in the bug forum indicating the mods you're using (let's hope none) and also indicating the display settings (font size etc..)
-
CharacterSave mod does it.
Beware it is easy to confuse XpBoost and XpMultiplier.
The first is related to profession and traits.
--remove all previous profession, traits [..] (incldues XpBoost removal) character:getDescriptor():setProfession("unemployed"); character:getTraits():clear(); --alternative selective XpBoost removal (not tested) character:getXp():setPerkBoost(perk, 0)
The second is related to skill books.
--add player:getXp():addXpMultiplier(perk, multiplier, levelMin, levelMax); --remove player:getXp():getMultiplierMap():remove(perk) --alternative remove functional equivalent with current vanilla state (not tested) player:getXp():addXpMultiplier(perk, 1, levelMin, levelMax);
-
I am pretty sure this was done on purpose.
I deactivated the speed limitation with Auto MoveTo and even in solo games with a good pc configuration surroundings sometimes do not have time to load properly when moving with x4 speed.
Surroundings not loading properly can be the source of a whole family of problems.
- Hugo Qwerty and Pandorea
- 1
- 1
-
declared fixed in B41.71
- Fixed Coffee / coffee beverage fatigue reduction values not saving on quit / restart.
-
I did it in AutoLoot (Autodrop.lua), but not linking to Zombie Ids which will be your main problem I guess.
-
Hi,
As you noticed, at the time the IsoDeadCorpse container is created:
1- the visible items (clothes, worn weapons..) are transferred from the "just dead" IsoZombie to the IsoDeadCorpse.
2- the invisible items are created.
If you wanna mess with loots that pop up at IsoDeadCorpse time, without using the loot tables, there is a (twisted) way:
- Store the IsoZombie identifier when the Zombie Dies.
- When a new container is reacheable (OnRefreshInventoryWindowContainers) check it is a Dead corpse, check the associated IsoZombie identifier matches a Zombie newly dead, add your loot.
-
I use a modded animation.
When I start to turn, the turning animation breaks my animation.
It is the same with running animation.
I would like my animation to remain active until I decide it ends (when I stop it or when it finishes).
Is there a way to inhibit all other animation for a time ?
Is there a better design/solution to get rid of these cases my animation is interrupted by another animation ?
Regards
-
I made a guide for decompiling with intelliJ
https://steamcommunity.com/sharedfiles/filedetails/?id=2748451514
-
when setting StaticModel, primaryAnimMask and secondaryAnimMask of an item in txt file, the associated item appears in hands.
when calling DoParam (or ItemTweaker mod) on the associated scriptitem for those parameters, the associated item does not appear in hands.
Is there a way to make this work from lua code for StaticModel, primaryAnimMask and secondaryAnimMask ?
Also PlanetAlgol explicited this in the code comments of his last mod: Visible Generators and Corpses.
Regards
-
I have an algorithm that extracts data from the game engine and I wanna synthetise it as an image storing data in RGB and Alpha.
I could also store it as text and use an external tool to do the text to image conversion, but this would remove some options.
1/ Snippet
From internet I found https://github.com/wyozi/lua-pngencoder that seems to do the job but requires "bit" base library that seems not accessible to my mod.
Anyone has any idea how to use "bit" in a pz mod ?
Also I intend to produce BIG images and I'm not sure it will do the trick. If it does I am afraid of lua performances.
2/ Ingame tools
2a/ ImageUtils.saveImage
This function is based on an ingame Texture type.
It only seems to work for creating "png" but I am totally ok with that.
One Texture constructor seems promising for use from lua:
public Texture(String var1, int[] var2);
How can I fill var2 with my RGBA values ?
3/ Any other idea on how to create images ingame is welcome.
-
this can be normal behavior: stale bacon becomes stale bacon bits and with the right timing stale becomes rotten at the same time. (also bacon bits age faster than most other foods).
-
When you play Solo, your game loads lua/server and lua/client.
When you Host a server, your game loads lua/server and lua/client.
When you Join a game Hosted by someone else, your game loads lua/client, but not lua/server.
When you Join a dedicated server, your game loads lua/client, but not lua/server.
The dedicated server loads lua/server, but not lua/client. (I'm not 100% sure for this one).
Obviously lua/shared is loaded by everyone, always.
-
Here is my interpretation of the condition for the famous "high spear critical chances" as RE from IsoPlayer::pressedAttack(boolean)
--spear +30% crit: this = IsoPlayer float var8 = IsoUtils.DistanceTo(var11.x, var11.y, this.x, this.y); this.setVariable("TargetDist", var8); int var9 = this.calculateCritChance(var11); if (var11 instanceof IsoZombie) { IsoZombie var10 = this.getClosestZombieToOtherZombie((IsoZombie)var11); if (!this.attackVars.bAimAtFloor //not aim floor && (double)var8 > 1.25D //target must be further than 1.25 "meters" && var4 == WeaponType.spear //weapon is spear && (var10 == null || (double)IsoUtils.DistanceTo(var11.x, var11.y, var10.x, var10.y) > 1.7D) //closestZombie from targetZombie is further than 1.7 meters from targetZombie ) { if (!GameClient.bClient || this.isLocalPlayer()) { this.setAttackType("overhead"); //go go spear in the head my boy ! } var9 += 30; } }
Here is my proposition for
correctionmodification of the decision algorithm :Do not take into account the closest Z to my target.
But take into account the closest Z to me that I can detect.
float var8 = IsoUtils.DistanceTo(var11.x, var11.y, this.x, this.y); this.setVariable("TargetDist", var8); int var9 = this.calculateCritChance(var11); if (var11 instanceof IsoZombie) { IsoZombie var10 = this.getClosestZombieThatisNotThatZombie((IsoZombie)var11); //get closestZombie to me, that I can detect, except targetZombie if (!this.attackVars.bAimAtFloor //not aim floor && (double)var8 > 1.25D //target is further than 1.25 "meters" && var4 == WeaponType.spear //weapon is spear && (var10 == null || (double)IsoUtils.DistanceTo(this.x, this.y, var10.x, var10.y) > 1.7D) //if that other "closestZombie" is far enough from me I can safely headshot with my spear ) { if (!GameClient.bClient || this.isLocalPlayer()) { this.setAttackType("overhead"); } var9 += 30; } }
-
Directions Key bindings are correctly labelled for vehicle direction control (being relative to current vehicle direction).
But in default case, the game interprets:
- forward as top screen direction (NW).
- backward as down direction.. aso.
I'm sharing here this incredibly important piece of information dicovered after ~ a year since I started playing the game .
[41.73] CanAttack does not take into account stomp & shove locking animations
in Bug Reports
Posted · Edited by Tchernobill
Sorry for putting this in the bug reports section.
I have no bug to report about this.
I just suppose IsoGameCharacter:CanAttack() should return false while the player is shoving or stomping.
Currently it returns true but the player cannot attack.