ScriptHook V is the library that allows to use GTA V script native functions in custom *.asi plugins. Note that it doesn't work in GTA Online, script hook closes GTA V when player goes in multiplayer, see details in the readme.
Installation
1. Copy ScriptHookV.dll to the game's main folder, i.e. where GTA5.exe is located.
2. In order to load asi plugins you need to have asi loader installed, you can download it separately or use the latest version that comes with this distrib (dinput8.dll). You must delete previous asi loader version (dsound.dll) if you have one installed.
3. This distrib also includes a sample asi plugin - native trainer, if you need a trainer then copy NativeTrainer.asi too.
Concept
The main concept is that compiled script plugins depend only on ScriptHookV.dll, so when the game updates the only thing that user must do in order to make scripts working again is to update script hook runtime (i.e. ScriptHookV.dll).
This works all fine and dandy, but I hope there's a cleaner way to implement this as I have about 20 of these scripts that need that same pre-script. When I have to change the command for some reason, I will have to do that 20 times for every project in the repo (about 5 projects).
I know that there's a way to add pre-scripts by creating a script with the same name and the prefix 'pre' to make sure it runs before that specific script, but that doesn't work for multiple scripts, as far as I know.
Read that sentence several times if you have to. Tools like grunt and gulp are good, but I have found that those add a lot of unnecessary complexity to what should be a rather simple process. What you are currently doing is not bad because it's very clear what is going on. I totally understand your sentiment:
However, updating a bunch of scripts can be a simple find/replace which only happens a couple times a year. In general, I can pretty definitively say that you don't want to introduce any "magic" in the way npm scripts are run. Even the built-in pre/post hooks are a bad idea for several reasons:
In virtually every app I've ever developed, I eventually needed to run lots of scripts similar to what you are doing... especially as I started using monorepos and managing complex projects with complex builds. In such cases I create actual JS/TS files and manage the complexity with code - it's much easier to read and it's much easier to compose complex pipelines. I know this is not what you want to hear... and I'm sure I'll get some downvotes, but I highly recommend you don't fall into the hooks trap.
I'm just a admin for a Bitbucket/JIRA project and I miss the option to use custom script hooks in the scriptrunner BitBucket plugin. I don't have access to the administration of BitBucket. What needs to be done to make this custom script hook visible as an item in this view.
With that being said we're going to be working on a feature to allow admins to write a custom script and then the project or repo admin can enable it. Please see SRBITB-233 for further details of this and to keep an eye out for when it will be released.
In my situation the system admins don't have the knowledge of writing such scripts. And if I provide a ready to go script to the system admins it's not visible to me whether it has been activated for my repository or not. The simplest solution I would already agree is to show the Custom Hook script read-only to the repository owners in the same view where I can also edit my condition based hooks.
I've been cobbling together some Processing scripts for QGIS 2.18 (I'm not a fan of QGIS 3 scripts), and I keep running into one particular problem: my script creates a lot of scratch layers and they stick around until I reboot QGIS.
...creates a point shapefile at C:\Users\Nick\AppData\Local\Temp\processing7a722160fed94f10b2cfe8e4dac9e9f8\18f2cf1c3459481b9d1f75d8e1b04a5b\POINTS.shp , which can be called with outputs_SAGACONVERTLINESTOPOINTS_1['POINTS'] in later lines of the script. The file stays there until I exit and restart QGIS. I would like to clear out that file (and the rest that my script generates but does not load into the main layer tree) when the script finishes running.
Except that the example does exactly the opposite of what I want. How could that script hook be modified to clear out the junk "ghost layers" (or whatever the correct term is for the layers that are created but not loaded into the Layers Panel) and leave me with a fresh scratch file location before running the next script?
So im fairly new to coding in general, basically just dabbled in it if i needed something done via googling, but not really profficient in any sense like i understand some terms and lines depending on the program, just not how to put them together to make anything useful atm xD
So i have a couple of questions,
1.Where would i look if i was after guides on how to specifically make scripthooks for games? becuase googling basically just comes up with GTA stuff and "guide"just sends me to installing a script hook someone else made :/ and coding is a vast plethora of languages and i am one confused cookie.
2. for anyone whos made one, if im fresh to coding would it even be feasable or likley that ide be able to make or even update an existing script hook? without learning a ton of extra things about coding (like i just want to specialise in this one thing atm for what i want to get done)
Any help would be super appreciated! :D
1.Where would i look if i was after guides on how to specifically make scripthooks for games? becuase googling basically just comes up with GTA stuff and "guide"just sends me to installing a script hook someone else made :/ and coding is a vast plethora of languages and i am one confused cookie.
Most script hooks work by replacing parts of the original game code with its own hook routines, just locating the parts of the game code that you need to patch would usually require extensive knowledge of assembly language and reverse engineering.
2. for anyone whos made one, if im fresh to coding would it even be feasable or likley that ide be able to make or even update an existing script hook? without learning a ton of extra things about coding (like i just want to specialise in this one thing atm for what i want to get done)
If you've been following along in the mini series, I've gone over the details of using Certbot in manual mode, then bolting some simple scripts together to improve the process of generating and managing certs, all done with a bit of magic thanks to our old friend key authentication.
Since I can't automate the copy/paste of certificates into the cPanel interface, this is a close second-place in the automation world for me, and something that I am super stoked to have worked through and figured out. As I'd mentioned in the past, the Certbot documentation is super thorough, but very overwhelming. I had to really understand my pain points for each iteration, and then try to figure out how to improve around those pain points.
I started reading some of the documentation and stumbled across the Pre and Post Validation Hooks section. I'd seen this information before, but had mistakenly understood it to function as something else, so I didn't think it'd apply. How wrong I was...
Out of the gate I was most interested in the auth (pre) hook since it was the key to really buttoning up the domain validation files. Since I have a remote host, I had to make a minor modification to the example script, as illustrated:
What this script does is create the file with its proper name and data in the ./validation/ directory, then copies said file to the remote host. Since I'm running this all in the Windows filesystem (though via WSL), there are some wonky file permissions carried across in the copy, so I quickly reset those to a remote host side standard 664. Admittedly this is an unnecessary modification, since the files are all transient anyway and will be removed in the cleanup hook.
Now, by invoking/running sudo bash ./certbot-superdomain.sh the entire certificate generation/renewal and domain validation is handled more or less automatically. It is only the copy/paste of the CRT and KEY files to cPanel left, which is more nicely handled with the script pauses.
Since I'm doing this on a quarterly-ish basis, or when I get the Let's Encrypt expiration notice (this is why Certbot initially needs your email address), I am prepared to spend a few minutes going through the process. Ideally it'd be fully automatic, but I will take what I can get.
I am Most Pleased with the improvements I've made based on my own pain and suffering, though. But what I will enjoy most as these renewals come due is the fact that I've got a simple way to run a bunch of these all together (a super script), that will ideally make this a five-minute process for a couple dozen domains. That's the power of automation.
I have a Proxmox server setup with a Windows 10 guest that will be running MSSQL Express. The Windows guest has QEMU guest agent installed and working. For backups, I have a separate server running Proxmox Backup, which is already scheduled to take full backups of the guest once a week (stop mode). In addition, I need to have more frequent snapshot backups with little to no access interruption, however, simply "freezing" the filesystem with an active database is problematic due to the chance of data inconsistency.
If this was MySQL on a Linux guest, there is already a solution in the form of adding a script to fsfreeze-hook, to the point that there is an example included in the repo. But, this entire feature seems to be missing on the Windows build of QEMU guest agent, from what little specific information I could find.
vss snapshots on Windows 10 have the reputation of being unusable due to snapshot data corruption (I had first-hand experience on the issue when trying to recover some snapshotted files via ShadowExplorer)
3a8082e126