zerratar / papyrusdotnet Goto Github PK
View Code? Open in Web Editor NEWPapyrusDotNet - A .NET Papyrus Compiler for Fallout 4 and Skyrim
License: GNU General Public License v3.0
PapyrusDotNet - A .NET Papyrus Compiler for Fallout 4 and Skyrim
License: GNU General Public License v3.0
When using delegates, a new Int v_n variable will be added for each delegates used.
These local variables are never used, assigned nor accessed, which should make them safe to be removed.
Instead of just removing these variables directly as the converter already knows that these variables are delegate vars. I want to have a post processing step where all methods are optimized; regardless if delegates are being used or not and remove all unused variables.
This is not a bug and it does not break the usage of Clr2Papyrus, it is just completely unecessary to keep them.
I am following the tutorial at CodeAndUx. When I added the post-build option and try to build the project, it seems to build fine, but fails on the post-build command. The error trace is in this pastebin: http://pastebin.com/YKqvmL9s
It appears that it's trying to call the functions to manipulate the console, which are failing. Let me know if there is anything else you need.
For reference, here is the build number for my edition of visual studio.
EDIT 1: Added work-around
I found the arg flag -noui
lets me get around this error. Although, it uncovered another error relating to Illegal characters in path.
Whenever a nested delegate is used, it is required to find the method reference by going to the previous ldsfldn (load method ref pointer)
If you have a non-nested delegate right after this one may take the nested ones invoke instead of its own.
Solution: Never use the same reference more than once. If no ldsfldn is found then the appointed method name should be used instead.
Note: Having more than one delegate nested in each other has not been tested:
Ex:
DelegateA a => {
DelegateB b => {
. DelegateC c => {};
. c();
. }
. b();
};
A();
Hi,
Is there a new link/archived link to this article?: http://www.codeandux.com/writing-your-skyrim-mods-using-c/
Thanks.
Whenever the strcat instruction is used (call concat in c#) the value is always appending to itself.
Ex:
temp0 = temp0 + value
temp0 = temp0 + value2
This works the first time it occurs, but if it is inside a loop then the text will append itself to itself.
Solution: First strcat value should always be an assign instead.
temp0 = value
temp0 = temp0 + value2
Hey, this looks like a really neat project!
I see you've got binaries bundled with this project, but some build instructions would be great for those who need / want to build from source for some reason.
Also although this may seem like a silly question, can you clarify whether or not this project would work on Linux or other Unixes? I know that for a while anything C#/DotNet was Windows-only, but now we have mono and such runtime support so this may be possible. I encountered a massive build error when trying to build this on my Ubuntu 16.04 system, but I am a massive C#/Mono noob so am probably missing something. I can send you the log output I got if this would be useful to you.
Anyways, if building natively isn't an option, there's always Wine, which I will try and let you know if it works but would be good to know if native is possible.
Cheers!
Currently, the UI will need you to press on X (on the keyboard) for closing (or by alt+f4, ctrl+c or clicking the X button) when the process is completed. This should be optional as PapyrusDotNet will most likely be used as a post build process.
could this possibly be used to decompile game .pex into c# as a human readable form? I'm working on a project to rebuild fallout 4 and skyrim (and eventually 76) in unity to make a more modern vr version with features more like pavlov vr and others and less like the official vr games and borderlands 2 vr (with what seem like minimal effort into porting, but at least they did and they did it back when vr ports were just starting, so can't blame them). I don't intend to just decompile and use the scripts, but use them as a basis for writing new scripts. I'm not at the point of begining scripting yet (still working on asset importing), but eventually I will need to look into it more, but I thought I would just go ahead and ask
When you look at PapyrusDotNet.ConsoleTests Program.cs file, you see this:
public static void Decompile_FollowersScript()
{
var asm = PapyrusAssemblyDefinition.ReadAssembly(
@"C:\Users\Karl\Downloads\exampleBad\test.pex");
private static void DecompileAllFallout4Scripts()
{
var folder = @"D:\Spel\Fallout 4 Scripts\scripts\";
private static void ReadAndWritePex()
{
var drive = "d";
var dir = @":\Git\PapyrusDotNet\Examples\Fallout4Example\bin\Debug\";
var targetFolder = drive + dir;
Obviously these will not compile for anyone else than you.
This issue is meant to cover as a todo for the Partial Read milestone.
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.