interkarma / daggerfall-unity Goto Github PK
View Code? Open in Web Editor NEWOpen source recreation of Daggerfall in the Unity engine
Home Page: http://www.dfworkshop.net
License: MIT License
Open source recreation of Daggerfall in the Unity engine
Home Page: http://www.dfworkshop.net
License: MIT License
don't know since when this is bugged, but with one of the last changes this behaves no longer correct:
GameManager.Instance.IsPlayerInsidePalace no longer evaluates to false after leaving palace
this breaks automap and reflection mod
Describe the bug
After placing a map marker on dungeon, player and enemies are able to climb over them in game after loading game. Collision is cleared again after opening and closing map UI.
To Reproduce
More details in below forum topic.
https://forums.dfworkshop.net/viewtopic.php?f=5&t=2468
Steps provided by Pango:
Sorry for My bad English.
Is this a bug? Map will be white.
https://dl.dropboxusercontent.com/u/205228930/gif.gif
Describe the bug
I encountered a few problems with turning into a vampire. It seems things were firing twice, maybe I was infected twice or something but save data only has a single entry so seems not.
The dream video played twice, two lots of vamp abilities added to spells, died and woke up in crypt twice. Log shows that $CURVAM quest failed to parse:
Parsing quest $CUREVAM FAILED!
Search failed to locate matching remote site for Place wrongdung in region Glenpoint. Resource source: 'Place wrongdung remote dungeon5'
Attached zip file with following saves:
96: Sick - Got the vamp infection and have travel message
97: vampirism - Dream video played (twice in a row) and have rested for 2 days. 1 more day and will die and re-spawn in crypt.
98: twoCopiesVampSpells - Woke in crypt 1st time with 2 lots of spells. Travelling caused death and re-spawn in different crypt (once) or black screen and locked up game (intermittent).
To Reproduce
Loading 97 and resting worked when I tried to reproduce again.
Loading 98 broke twice and then worked.
Not really sure what was/is going on.
Expected behavior
Have things happen once and not crash the game.
Desktop (please complete the following information):
Describe the bug
When climbing down a wall that isn't directly connected to the ground (For example, a pit used for an elevator platform), when trying to climb down and around to hang from the ceiling underneath, the game instead clips you into the wall, unable to move. I recommend watching the video depicting the bug down below.
To Reproduce
Expected behavior
Upon getting stuck inside the wall, you are unable to escape through normal means. Either reload a save or use the teleport console command to get out.
Screenshots
https://gfycat.com/untrieddismalfruitfly
Desktop (please complete the following information):
Some time ago @Nystul-the-Magician raised the need to simplify mod testing and use debuggers during mod development and came up with this solution:
/*
* used for debugging
* howto debug:
* -) add a dummy GameObject to DaggerfallUnityGame scene
* -) attach this script (_startupMod) as component
* -) deactivate mod in mod list (since dummy gameobject will start up mod)
* -) attach debugger and set breakpoint to one of the mod's cs files and debug
*/
void Awake()
{
initMod();
}
The issue is that mod functionalities like settings, loading resources or localization are not functional during debug. So i decided to further develop the idea with a concept of "virtual mod", which relies on a folder inside Assets/Game/Mods
instead of an assetbundle when running inside the Editor. This is a pratical example:
public class Test : MonoBehaviour
{
static Mod mod;
[Invoke(StateManager.StateTypes.Start)]
private void Init(InitParams initParams)
{
mod = initParams.Mod;
var go = new GameObject(mod.Title);
go.AddComponent<Test>();
}
private void Awake()
{
#if UNITY_EDITOR
if (mod == null)
mod = new Mod("Test/Test.dfmod.json");
#endif
mod.IsReady = true;
}
private void Start()
{
var settings = mod.GetSettings();
int number = settings.GetValue<int>("Configuration", "Number");
var texture = mod.GetAsset<Texture2D>("Example_Tex");
var shader = mod.GetAsset<Shader>("NewUnlitShader");
var material = mod.GetAsset<Material>("Example_Material");
}
}
All the code is shared for both testing and releases because the Mod class instance handles loading assets from assetbundle, if running from a released mod, or Assets/Game/Mods/Test/Resources/
if running from a virtual debug mod environment. Ideally, this means you can write and test a mod with the same comfort of writing core code, and only build an assetbundle for release.
I published this to a separate branch for testing and get some opinions :)
Describe the bug
Accepted quest MOB30Y08 from FG. By context it should be a house but instead the towns' Temple of Kynareth was assigned. The S.04 task is not triggered when entering the temple so the zombie never spawns.
To Reproduce
Steps to reproduce the behavior:
Desktop (please complete the following information):
Additional context
Not sure whether the issue is that the target building needs to be a house or if the quest is just broken regardless.
In some places, textures will appear repeated or skewed. Most noticeable on building windows. This problem is caused by faulty UV parsing from original game model files.
There is also a second case where UV data in original game model files are not correct. A system of post-fixing these during model import process is needed.
Describe the bug
A secret door on a cave wall in Scourg Barrow does not open. This door leads to a hand wheel which opens a nearby portcullis leading to one of the possible quest objectives, leaving the quest impossible to complete should you take this path during the quest.
Expected behavior
The door should open when clicked on.
Screenshots
Location of the door and attached savefile standing in front of the door.
SAVE73.zip
In ´FormulaHelper.cs´ in ´OnMonsterHit´ is called with the ´attacker´, the ´damage´ and a ´target´.
Is it guaranteed for ´target´ to be the player (I dont think so)?
If not, where is the check if ´target´ is actually the player before infecting the player with Lycanthropy or Vamprisim? As I read the code, it does not matter who the target is, there is a chance that the player gets infected. All other diseases seem to be inflicted using ´InflictDisease´ to ´target´, and there is an explicite check if ´target´ is actually the player.
BTW: Can we add an override formula delegate to ´OnMonsterHit´ too so that mods can intercept this call?
Edit: What I actually want to do is to create a mod allowing the user to adjust the infliction rate for Lycanthropy or Vamprisim. Maybe we could just move the hardcoded values of ´0.6f´ to a static field which can be changed later using a mod?
Bug description
Macro %di expansion can fail and crash the game.
To Reproduce
The problem lies at line 230 in QuestMCP.cs in LocationDirection
method: LastPlaceReferenced
is not supposed to be null there but it is with this particular quest.
Expected behavior
The game should never crash :)
Desktop
Additional context
Discovered while testing my fix for %loc expansion...
Describe the bug
Thieves Guild (and assuming Dark Brotherhood) no longer appear on map when character is a member.
Link to topic on forums.
https://forums.dfworkshop.net/viewtopic.php?f=5&t=2386
Possibly another regression from 2b21914 as with lockpicking state.
@Nystul-the-Magician Is this something you would like any help with? Please just let me know and I will do what I can to assist. It might be best to just revert that change for now and then tackle from a different angle.
Describe the bug
Reported by DiaBomb (https://forums.dfworkshop.net/viewtopic.php?f=5&t=2517)
After saving (Quick save or through the pause menu), any markers created on the dungeon AutoMap disappear. The Markers do stay after re-entering the dungeon without saving in between. I only have a few graphics mods installed. Disabling them did not fix the issue.
To Reproduce
See screenshot
Expected behavior
Marker should stay like they are before saving
Screenshots
https://i.imgur.com/vpind6H.gifv
Desktop
Reported by BansheeXYZ in below forum topic. Might be something we missed @Nystul-the-Magician
https://forums.dfworkshop.net/viewtopic.php?f=24&t=2493&p=29006#p29006
Describe the bug
The quest to protect the mages guild didn't seem to end right at the time for me. After staying there a night and attacking the thieves I could not talk to quest giver (no popup.)
My reputation kept dropping to -100 for all mages factions and recently randomly for the region I was in. Looked at my notes and saw a repeating note going for eternity -
[
"D:Quest ended at 15:19:34 02 Midyear 3E405:",
"Sundas the 1st of Midyear: I agreed",
" to guard a magic Formal cloak",
" at the Mages Guild of",
" Newtale. I have",
" to be there between midnight",
" and three.",
""
],
My NotebookData.txt is 1488907 lines long.
I resolved the problem by completing the quest by editing the QuestData.txt
To Reproduce
This was a long time ago so I don't have a save sorry. I stayed in the mages guild and kept loitering to get the thieves to appear. I may have rested to heal I cannot remember, I am pretty sure I saved in the middle of the quest after fighting some thieves.
Bug description
When a "Tell me about..." conversation reply mentions a direction to a location (through the %di
token) it will fail when you are already at that location.
To Reproduce
talk_NpcsKnowEverything
and close the console.Expected behavior
I expect the response to state "North of here" in stead of "...never mind... of here", since the Ashwing Residence building is to the North of the player's current position.
Desktop:
Additional context
If you use "Where is..." to ask about Evelyna Kingsmith the reply will tell you she's to the north.
The "about" code at Questing.Quest.QuestMacroDataSource.LocationDirection()
is only accurate to Location granularity.
The "where" code at TalkManager.TalkManagerDataSource.LocationDirection
is accurate to building granularity but is coupled to TalkManager.currentKeySubjectBuildingKey
.
We could copy the code from the talkmanager to the questdatasource, or rewrite the talkmanager code to split up the functionality to create a method that both can use.
But maybe it is possible to create something more generic (in the PlayerGps?) that can always give you the direction from the player to any Location, Building, Region, Npc, etc?
Possible issue since builds updated to Unity 5.4.
Describe the bug
In the witch coven quests where you are to deliver a potion to a mages guild vampires and werewolfes should spawn at night AND for the first you fasttravel somewhere. So if you arive at daytime the will spawn, too (I dont know if thats intended but thats not the strange part).
Now I save the game (since I wanted to get infected by a vampire), and got killed. I reloaded the save, but the vampires and werewolfes were gone.
The screenshot of the attached save shows that there should be a vampire, but if I load the save, shes gone.
To Reproduce
Load the Save SAVE282.zip
Expected behavior
There should be a vampire
Desktop:
IMPORTANT EDIT:
If I load a save with vampires and its night, they are there, as expected. It seems the despawning only appears if I load a day save. I will try to find a save at night to prove this, might take a while though.
Edit2:
As promised I found a save at night time. As you can see in the second screenshot, there is a vampire, and if you load the SAVE270.zip, she will attack you.
Edit3:
It seems, according to uesp.net that the vampires and lycanthropes should not spawn after the first fast travel, but in the first night there sould be a popup. This means that the vampire in the screenshot should never even have spawned in the first place... This does not explain the despawning though?
Describe the bug
Lockpicking should only allow a single failed attempt, then player must level up skill before they can try again. This is how skill was implemented, but broken in 0.10.2.
To Reproduce
Attempt to pick a shop's lock outside of normal hours. It's possible to spam the lock until a successful attempt is reached.
If a werebeast doesn't feed, maximum health should gradually reduce until it bottoms out at 4. In the current implementation, health simply goes to 4 once the requisite time has passed. This needs refinement to better match classic.
Describe the bug
Enchanting gear while it is equipped will have it be unequipped upon enchanting, but the armor rating of said gear is not removed from the player. This leaves a permanent armor rating on the character which can then stack in weird ways when another piece of armor is equipped. Doing this multiple times can result in negative armor ratings.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The armor rating should be removed from the player when the gear is removed during the enchanting process.
If I cannot kill the thief at once and run for my life outside to get some heal - there is no book at the thief later.
To get book I have to kill thief at first fight.
Too bad for roleplaying.
Quicky question for @ajrb. The summoning logic for Hircine doesn't check summoning date, only that player is at the Glemoril coven:
But a summoning date is configured in the Hircine data:
Just checking if this one was intentional. I can't recall if Hircine can actually be summoned at any time in classic. UESP lists his summoning date as 5th of Mid Year.
https://en.uesp.net/wiki/Daggerfall:Daedra_Summoning#Summoning_Days
Describe the bug
First person Axe (WEAPO108.CIF ) is drawn with an incorrect position on screen.
Additional context
Reported at https://forums.dfworkshop.net/viewtopic.php?f=5&t=2507
"AllowMagicRepairs = True" doesn't seem to be working. The checkbox saves the setting to the ini file correctly, but attempting to have a smith repair a broken magical item results in the message: "You cannot repair magic items."
Describe the bug
When speaking to an NPC to get a quest, a TalkManager exception can be thrown either accepting or rejecting the quest. Calling in @Nystul-the-Magician for help. :)
To Reproduce
Load below save, note that currently no quests are running. Speak with NPC and use Get Quest multiple time. Rejecting multiple quests in a row should trigger a null reference exception in AssembleTopicListPerson(). It seems to be referencing a quest UID not currently active.
It's easy enough just to do a null check, but there seems to be something deeper going on. A simple null check results in same error, it just gets handled by NPC speaking down to player and not talking to them again. Often speaking to NPC after reproducing issue will not present any topics.
Expected behavior
Quests should be able to be accepted or rejected with an exception.
A feature found in most first person games that lets you toggle walking or running, so that you don't have to hold down the Shift button. Usually bounded to Caps Lock by default in most the games that have this feature. :)
During the main story quest "The Emperor's Courier" When I have to report back to Mynisera she isn't there. I can finish the quest but can't turn it in I'm at the point where I could talk to the guard then go to finish the quest. I'm using windows 10 and running daggerfall unity 0.10.4. Thanks
My save
SAVE0.zip
I was wondering if it could be possible to build Daggerfall Unity using the open-source re-implementation of Unity: Mutiny.
I'm trying to finish the quest where you need to infiltrate castle wayrest to find a painting. But as described in the title, I'm exactly where the painting should be but there is nothing to pick up.
I tried to load my save without any mod activated but it doesn't change anything.
SAVE0.zip
Describe the bug
It has been reported on forum that mods load order and settings are not saved to disk on MacOs. Specifically, load order file writing fails reporting the following message.
Failed to write mod settings: Access to the path "/private/var/folders/5c/s4hd_4sx7qn5lj86w2h1bzpr0000gn/T/AppTranslocation/2290D9C4-8387-4323-943F-58ADD6CBC562/d/DaggerfallUnity.app/Contents/Resources/Data/StreamingAssets/Mods/Mod_Settings.json" is denied.`.
The correct path would be /Applications/Games/Daggerfall Unity/DaggerfallUnity.app/Contents/Resources/Data/StreamingAssets/Mods/Mod_Settings.json
.
The following workaround has been reported:
I've found that if I open the app bundle and navigate to "DaggerfallUnity.app/Contents/MacOS/DaggerfallUnity" and launch the Unix executable, which launches the game through the MacOS terminal app, everything works fine. Reverting to launching the game the standard way by double clicking the app bundle itself results in the original problem returning.
Probably Application.streamingAssetsPath
is not writable on this platform, but i would like confirmation from other MacOs users. This is the first time the problem has been reported.
Desktop:
Additional context
Issue reported at https://forums.dfworkshop.net/viewtopic.php?f=5&t=2251
I am on Ubuntu 16.04 32bit.
When I try to start DaggerfallUnity.x86 it aborts after creating a black window.
I'm using build #30.
Describe the bug
Quest N0B00Y16 results in failure even after successfully opening box and returning to quest-giver. Quest-giver is then locked out as quest unable to terminate. Calling in @JayH2971 for some help with this one. :)
To Reproduce
Load below save and attempt to hand in quest.
Expected behavior
Quest should hand in normally for reward if successful.
The FormulaHelper is a central place where all kind of things are calculated.
Most methods offer the possibility to be overridden by a mod using formula delegates.
I think this is a very good design pattern, but I'd like to take things two steps further:
As last parameter of each formula delegate add an out bool apply
parameter.
If the value of this bool is false
after the formula delegate returns, don't use the value the delegate provided, but go on with calculations.
This way I can for example override "DeadraSummoningCosts" only if the faction is "Glenmoril Witches" or stick to normal behaviour otherwise.
Change the Formula Dictionaries to take a SortedList as value instead of the formula delegate directly.
E.g. Dictionary<string, Formula_1i>
to Dictionary<string, SortedList<int,Formula_1i>>
.
Mods should register their formulas in the sorted list, with their mod load order as key.
Then, if we also implement 1) we can iterate through all registered formulas, and return the first where the apply
parameter is true.
Changing this would break some of the current mods, but will provide a much more flexible solution for the future. I'd like to discuss this ideas before making a PR.
Action record for models WHE no longer generate spinning animation when wheel model activated. Action otherwise seems to operate normally, including sound effect.
Describe the bug
Happens when loading an interior save before exterior world has loaded. Exiting through an upper storey door will drop player to ground, often stuck inside building.
Does not happen if exterior world is loaded first - e.g. exit the building then re-enter, then exit upper story door.
Not a major issue, but... the old Lady in a Brotherhood Guildhall should sell me soulgems, but it says it's not yet implemented... now according to the roadmap, guild services 'should' be done... was this an oversight or is it just planned for a later release? Just curious, as I couldn't find any info about it :)
(and yes, I might be a little bit annoying here... but I stumbled upon this project just a few days ago and I do have a blast... feels so much better than the original :D )
Whenever I leave a building, be it the Dark Brotherhood Place in Daggerfall City (the top entrances) or a random graveyard with steps in front of it, I fall through said steps (or the building). It was working in the last version, tho.
In any case: thanks for your work! :)
Started a new character and went to do some silly delivery work quests. I took two quests and the first ones npc didn't spawn properly. The other did. I'm not entirely certain it didn't have to do with the type of building they spawned into?
https://i.gyazo.com/4ed861b907a81e2074b24cac8dc5b41b.png
The northern buildings delivery npc didn't spawn, but the southern ones did.
Either way I'll probably keep trying a few of these delivery quests and see if I can get it to repeat itself.
Describe the bug
Forum user reports quests are completing instantly on accepting them. Forum topic with more information below.
Press F5, then click the "History" button. Unlike the other text-reading interfaces, this one cannot be scrolled with the mouse wheel.
Reproducible with DFU alpha version.
System:
Windows 10
i7 8700
16 GB
GTX 1080
Describe the bug
Dungeons found by just traveling in the wilderness are not immediately marked on region map; Even by entering the dungeon.
I'm pretty sure it used to work.
Seen in stream https://www.youtube.com/watch?v=CSbxIeXyqc8&t=745
Dungeon marked after save/exit/reload: https://www.youtube.com/watch?v=CSbxIeXyqc8&t=868
To Reproduce
Expected behavior
Dungeon should be marked on map as soon as you approached it close enough
Screenshots
See video stream above around the marked timecode (12m 25s)
Desktop (please complete the following information):
Additional context
He's using Tedious Travel that overloads the standard travel maps, could be the issue but I suspect it's not because it's not involved the proximity checks and the other dungeons display correctly.
Describe the bug
When attempting to converse with any NPCs, regardless what type (peasants, nobles, shopkeeps, etc.) the portraits/pictures appear to be missing. I have attempted to re-download the base game files to rectify the problem, however I have not been successful in remedying the issue.
To Reproduce
Steps to reproduce the behavior:
1: Encounter/Talk with any NPC who is willing to talk with you. (Make sure they are willing to; those who aren't willing won't produce the issue.)
2: When the dialogue window opens, you will see the portrait screen empty.
Expected behavior
When talking to NPCs, I should be able to view their portraits.
Screenshots
Desktop (please complete the following information):
OS - Windows 10 Home
Version - 1809
Additional context
I am not using any mods or added content; when re-downloading the base files for Daggerfall, I did not add any of the Unofficial Bug Fixes provided from the DaggerfallSetup download, as advised by a fellow tester.
Describe the bug
Guard "Bauctun" in Sentinel Castle (The main castle in the Sentinel City) seemingly tries to retrieve his own faction with %fnpc, but he doesn't have one or it's not retrieving it properly. This is happening as of version 0.10.4. Not sure if he is the only NPC with this issue.
Save file in front of the Bauctun here. Note this save file uploaded is the character in the Dragon Knights:
https://www.dropbox.com/s/bguwslgo1fq0tnx/SAVE8.rar?dl=0
Also the same position, but another character that is in Julianos
https://www.dropbox.com/s/bmkituo35dawonn/dfu_sentinel_guard_bug.7z?dl=0
This is what happens if the player character is in the Dragon Knights
This is the NPC dialogue when the player character is in Julianos
Describe the bug
When moving on foot/on a horse/cart to a new zone in the overworld (ex. moving from one pixel on the world map to the next), weather effects such as rain and snow reset and play independently from the previous zone. Moving back and forth between the previous and next zone will show that the snow falling effects doesn't match with eachother.
To Reproduce
Just run into a direction in the overworld while it's raining/snowing (it's easier to notice when it's snowing.)
Expected behavior
The snow/rain will briefly disappear and start falling down all over again.
Desktop (please complete the following information):
(Maybe this should be labelled "task" instead of "enhancement", will see)
The roadmap contains two entrties:
The first one especially looks like repetitive work, so if I'm right this is totally something that anybody (including me) could help with, with some coordination so:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.