Guild icon
Ark Server Api
── ( General | Chat ) ── / 【💬】ɢʟᴏʙᴀʟ-ɢᴇɴᴇʀᴀʟ
Rogue Leader joined the server. 11/17/2018 8:19 PM
Trippn joined the server. 11/17/2018 8:23 PM
OG | F()()FighT3r joined the server. 11/17/2018 8:23 PM
Discord.Me joined the server. 11/17/2018 8:45 PM
MEE6 joined the server. 11/17/2018 8:58 PM
CygnusX1 joined the server. 11/18/2018 12:49 AM
Noita joined the server. 11/18/2018 12:50 AM
Avatar
Rogue Leader 11/18/2018 12:51 AM
Hey guys!
Avatar
Rogue Leader 11/18/2018 12:51 AM
@GSH | MrOwlSky has set us up a discord to help us get a little more organized on the plugin development front.
12:53 AM
I'll be working on getting some basic tutorials up to help people get started with making their own plugins here soon. If you know any one else who's interested, shoot them an invite, whether they are a beginner or experienced.
Avatar
Yesss please. I'd love to learn. Still not as good with C++ but i may or may not catch on quick
12:53 AM
especially with some of the projects I have in store.
Avatar
Rogue Leader 11/18/2018 12:55 AM
I'm not that great at C++ either. Most of my experience is in Java and web dev stuff so it's new to me. I've been largely working off of the available source code from Michidu and OwnProxs work.
12:56 AM
I'm gonna try to get both of them in here to vet the tutorials/examples and it never hurts to have a peer review your work.
12:56 AM
Just gonna have to work on some discord guidelines so we don't have people "stealing" IP from other posters.
12:56 AM
Any ideas on that would be welcome
Avatar
Javascript here :)
1:04 AM
And ip stealing? Through discord? That's be hard. Very hard.
1:05 AM
Oh, int. Property haha. I was like wewh if we have people on that skill level in here yikes hahaha
Avatar
Rogue Leader 11/18/2018 1:38 AM
Lol yea, basically something that says if you share something here, it's for public use. So sharing a portion or all of your code is basically permission for others to use it.
1:38 AM
Same for ideas, etc..
Michidu joined the server. 11/18/2018 7:10 AM
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 joined the server. 11/18/2018 8:22 AM
Avatar
Hey @GSH | MrOwlSky thank you for inviting me, the idea sounds nice!
Avatar
GSH | MrOwlSky 11/18/2018 9:10 PM
Very welcome! @facundo It was @Rogue Leader idea. Figured it'd be a great place to promote ArkServerAPI and to learn how to make plugins while having an official discord dedicated to it.
💛 1
Avatar
hey peeps
Avatar
GSH | MrOwlSky 11/20/2018 6:20 PM
Hey
6:20 PM
Welcome to discord 😃
Avatar
thanks for inviting me !
💃 1
6:23 PM
where do i post a tutorial if i make one ?
Avatar
GSH | MrOwlSky 11/20/2018 6:23 PM
#【🔶】ᴘʟᴜɢɪɴ-ᴛᴜᴛꜱ
Avatar
would be happy to make a tutorial on how to set up visual studio for dll coding
Avatar
GSH | MrOwlSky 11/20/2018 6:23 PM
Or if you do a video tutorial post in #deleted-channel
Avatar
ill try my best once i get home 😃
👍 1
Avatar
Nice initiative and Hello Everyone 🙂
Avatar
GSH | MrOwlSky 11/20/2018 7:46 PM
Hey @Foppa 😃
Avatar
Nice work on the discord, neat setup! @GSH | MrOwlSky 😃
Avatar
GSH | MrOwlSky 11/20/2018 7:48 PM
Thanks! Shoutout to Mitch and Rogue on bringing the vision together. Yeah I think it'll be a great place for people to come.
Avatar
Cool!
🎀 1
Avatar
sorry been bery busy today i'll work on the tutorial on Thursday
👍 1
9:07 PM
i can publish a basic text tutorial atm though
Avatar
I wish I could stop playing 76 long enough to really dive into the project 😦
Avatar
i've published a guide on getting visual studio ready for the compilation of basic plugins !
Avatar
GSH | MrOwlSky 11/20/2018 9:33 PM
You oughta do a google docs so you can update it on the fly and keeep real time updates. (edited)
Avatar
you mean google docs or drive ?
Avatar
GSH | MrOwlSky 11/20/2018 9:33 PM
Yeah docs
Avatar
lemme see
9:34 PM
damn it does not keep pictures or formatting...
Avatar
GSH | MrOwlSky 11/20/2018 9:34 PM
It use's it's own formating but you can still put pictures in the document.
Avatar
Rogue Leader 11/20/2018 9:36 PM
You should actually use git if you want other people to change it ;) (edited)
Avatar
alright check it out now
Avatar
Rogue Leader 11/20/2018 9:56 PM
Maybe expand that to include which default files to delete, and how to import the libraries in the code in the main cpp file
9:56 PM
Otherwise, really good
9:57 PM
There are some other small changes you may have to make in the config depending on which c++ classes you use, but those are a little more advanced. (edited)
Avatar
Git is ♥
Avatar
Rogue Leader 11/21/2018 3:39 AM
I couldn't find an easy way to track docx files in git. Thinking about turning the text based tutorials into markdowns (edited)
Avatar
That's what I would do.
Avatar
hi is there a way to iD the weapon a player is using ?
11:05 AM
there is a bugged flamethrower from a mod on my server and i'm trying to prevent its structure damage but currently this does not work
Avatar
from KillFeed, might help you KillerShooterController->GetPlayerCharacter()->CurrentWeaponField()->AssociatedPrimalItemField()->GetItemName(&WeaponName, false, true, nullptr); (edited)
Avatar
oh wow i scouted its source but did not find that
2:26 PM
thanks !
Avatar
just check everything for nullptr
Avatar
eeh, where have the tutorial channels gone to?
Avatar
they're locked
Avatar
alright i added that code from KillFeed but got this crash (https://pastebin.com/sRUD8vq7) i did not modify the code much so its probably a NullPTR related crash ?
Avatar
show me a snippet of the code (edited)
7:07 AM
Suggestion: make a suggestions channel and also make a channel for links such as githubs so we can direct link our projects on github just so theirs a nice place where people can go to see all links
7:07 AM
Server plugins support for ARK. Contribute to Michidu/ARK-Server-API development by creating an account on GitHub.
7:07 AM
Server Plugins for ARK: Server API. Contribute to Michidu/Ark-Server-Plugins development by creating an account on GitHub.
Avatar
here is what i'm trying to get to work
9:09 AM
i want to basically id the flmathrower being used so i can prevent the damage from it
Avatar
Your code is pretty flawed because, you don't null check enough stuff, or even type check event instigator to make sure its a character Your Server would crash if a dino attacks a structure or a player riding one attacks it or even a player with no weapon in his hands or even a grenade hits it yeah you had about 4 possible crash's (edited)
9:46 AM
float Hook_APrimalStructure_TakeDamage(APrimalStructure* _this, float Damage, FDamageEvent* DamageEvent, AController* EventInstigator, AActor* DamageCauser) { if (_this && EventInstigator && !EventInstigator->IsLocalController() && EventInstigator->IsA(AShooterPlayerController::StaticClass())) { AShooterPlayerController* AttackerShooterController = static_cast<AShooterPlayerController*>(EventInstigator); if (AttackerShooterController && AttackerShooterController->PlayerStateField() && AttackerShooterController->GetPlayerCharacter() && AttackerShooterController->GetPlayerCharacter()->CurrentWeaponField() && AttackerShooterController->GetPlayerCharacter()->CurrentWeaponField()->AssociatedPrimalItemField()) { FString WeaponName; AttackerShooterController->GetPlayerCharacter()->CurrentWeaponField()->AssociatedPrimalItemField()->GetItemName(&WeaponName, false, true, nullptr); if (WeaponName.Contains(L"Flamethrower")) return 0; } } APrimalStructure_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser); } (edited)
Avatar
you need something like that ^^
Avatar
@OwnProx you should be able to lint with C++ or CPP after``` (edited)
Avatar
ah i tried c++
Avatar
CPP Will work then
Avatar
maybe cause low case (edited)
Avatar
float Hook_APrimalStructure_TakeDamage(APrimalStructure* _this, float Damage, FDamageEvent* DamageEvent, AController* EventInstigator, AActor* DamageCauser)
10:05 AM
yep cpp
10:05 AM
@WETBATMAN Answer is above, scroll up (edited)
10:06 AM
also this is the wrong section keep it to #【👓】ᴘʟᴜɢɪɴ-ᴛᴏᴘɪᴄꜱ 😃 my bad too i guess general is for non plugin related stuff (edited)
Avatar
also id like to add AShooterController or APrimalDinoAIController or AAIController or APlayerController all use AController as a base class meaning that many functions you hook may use different types under the class of AController thus you type check it to know at this point if it is a character or a dino ect (edited)
10:19 AM
you can see this by browsing Actor.h file in ArkApi Source
Avatar
anyone know how to make a command for players like /suicide that will damage the player but ignore the damage if they're not on a dino (so as not to kill the dino instead of the player)
Avatar
Guess it's possible to take a look on the Improved Commands plugin and develop it from there.
Avatar
Rogue Leader 11/24/2018 4:31 AM
@OwnProx How have you guys gone about handling contributions to your public repos? Has anyone other than you and @Michidu been involved on those? (edited)
Avatar
you mean like as in adding extra stuff to our public sources ?, because you can clone from github, then you can upload it to your own then when you make a change you can make a pull request against my github which will show me all the changes you did and give me the option to apply it
3:14 PM
or did i get the wrong idea about what you mean?
Avatar
Rogue Leader 11/24/2018 3:36 PM
In the past when I've worked with a group on public project, I added them as contributors to my repository and just protected my master branch by making it where the only way to write to it is through pull request approval, or as the repo owner.
3:36 PM
I was just curious if you guys added each other as direct contributors to your repos or had done like you said (edited)
3:38 PM
I've never contributed to a repo without having the ability to push new branches to it (edited)
Avatar
Michidu is added as a contributor to my github
6:25 AM
but im not added on his but that does not limit me from passing updates via github to him, you simply would fork one of either of our projects (can be located at top right of github) then you would makes your changes and commit to your own github, then simply head to mine or Michidu's then under where you see the commit's count you will see New pull request click that and it will allow you to select a source to compare against and it will then notify either me or michidu of your edits
6:27 AM
anyone can made a programming contribution we more then welcome it
Avatar
@Michidu whats the new arkapi update, security fix ?
Avatar
fixes one exploit
Avatar
from client side or ? (edited)
Avatar
well, from players possibly 😃
Avatar
hmm i better update it soon 😄
Avatar
yeah i found it earlier today highly recommended to upgrade but i highly dout anyone will exploit it on you as they would need to know a few things first, even the most popular servers have not been effected by this it was never made public (edited)
Avatar
Does the plugins.unload and plugins.load work with RCON or is it only through console ingame that it will work?
Avatar
only console as far as i know
Avatar
only ingame
2:28 PM
but you can just enable AutomaticPluginReloading
2:28 PM
in Ark Api's config.json
2:29 PM
enable that
2:29 PM
then simply rename your new dll to MyDllName.dll.ArkApi
2:29 PM
and move it to the location of the old dll in the plugins folder
2:30 PM
and it will automatically load the new dll
2:30 PM
you can just change vs settings output path and make it apply .ArkApi to the dll name
2:30 PM
so it simply detects the new dll after build and loads it
2:30 PM
without any copy and pasting required
Avatar
Rogue Leader 11/27/2018 2:39 PM
Does that automatically unload the old one too?
Avatar
yes, it does
Avatar
Rogue Leader 11/27/2018 2:43 PM
That is awesome. My ass has been rebooting servers nonstop.
Avatar
yeah we need someone to write documentations for the api haha
Avatar
GSH | MrOwlSky 11/27/2018 5:37 PM
That's epic lol I didn't even know about that @OwnProx
5:37 PM
Documentations would be godsent
Avatar
Rogue Leader 11/27/2018 6:51 PM
Good luck to the poor soul that documents tens of thousands of functions and variables
Avatar
GSH | MrOwlSky 11/27/2018 7:16 PM
lol
Avatar
Sooo.. if I have a plugin and I do plugins.unload from ingame... i should be able to replace the dll and update it with another right ?
10:11 AM
Without having o restart the server.
Avatar
only if plugin supports the unloading
Avatar
Could you let me know in detail what do you mean by supports the unloading? I'm assuming it is referring to this. BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: Load(); break; case DLL_PROCESS_DETACH: Unload(); <---------------------------------- break; } return TRUE; }
Avatar
that should be it unless you're adding additional chat commands or such
Avatar
yes, you need to remove all commands/hooks in the Unload function
Avatar
Strange. Let me share the code of that part. What ever I try, in game I get the unloaded message.. but I still can't replace the dll because it gives error as in being in use.
10:32 AM
void Load() { Log::Get().Init("MyPlugin"); LoadConfiguration(); MyPluginDatabase::InitDatabase(); ArkApi::GetHooks().SetHook("AShooterGameMode.HandleNewPlayer_Implementation", &Hook_AShooterGameMode_HandleNewPlayer, &AShooterGameMode_HandleNewPlayer_original); ArkApi::GetCommands().AddChatCommand("/myplugin", &MyPluginFunction); } void Unload() { ArkApi::GetHooks().DisableHook("AShooterGameMode.HandleNewPlayer_Implementation", &Hook_AShooterGameMode_HandleNewPlayer); ArkApi::GetCommands().RemoveChatCommand("/myplugin"); } BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: Load(); break; case DLL_PROCESS_DETACH: Unload(); break; } return TRUE; }
10:32 AM
Anything wrong here ?
Avatar
looks fine
10:33 AM
are you sure it says that plugin was unloaded?
Avatar
Yup.
10:34 AM
Avatar
what in console?
Avatar
Let me grab the console as well
10:37 AM
11/28/18 09:02 [API][info] Loaded plugin - myplugin 11/28/18 09:03 [API][info] Unloaded plugin - myplugin 11/28/18 09:04 [API][info] Loaded plugin - myplugin
Avatar
how it says loaded after?
10:39 AM
did you enable auto reloading maybe?
Avatar
Automatic loading is false.. and that is the last lines in the log "settings":{ "AutomaticPluginReloading":false, "AutomaticPluginReloadSeconds":5, "SaveWorldBeforePluginReload":true },
Avatar
weird, there is no way it can automatically load after unloading 😃
Avatar
That you meant.. .I loaded first -> tested overwrite -> failed -> unloaded -> tested overwrite -> failed -> loaded again -> tested overwrite -> failed
Avatar
ah, hm i will try it again. But you should be able to replace/remove dll after unloading
Avatar
Thanx, I'll try some other means as well... maybe something is locking up those files once the game is running. Also, if it may help... after I unload it and got the unloaded message, i still can use the registered command.
Avatar
and they works?
Avatar
Yeah, I unload the plugin, gets unloaded message in game and in console..and I still can write /myplugin and get the function as if no unloading happened.
Avatar
then it indeed not unloaded somehow
Avatar
Any way I can troubleshoot to confirm if it is indeed unloading or not?
Avatar
it's not. Weird, in my test unloading worked. Do you use api v 2.9?
Avatar
did you try to unload some other plugin?
Avatar
That I haven't tried. I only have 2 at the moment. ExtendedRCON and this. Let me try the extendedRcon
Avatar
Ok, this is strange. I have API 2.9 and ExtendedRCON + MyPlugin only on this server. I tested first to get tribe log to check if ExtendedRCON was working and it was working ok. So I did a plugins.unload ExtendedRCON and it responds by saying its not loaded. I loaded it and it reported loaded, and unloaded it which said unloaded, but still can use the commands. 11/28/18 11:29 [API][warning] (ArkApi::PluginManager::UnloadPluginCmd) Plugin extendedrcon is not loaded 11/28/18 11:31 [API][info] Loaded plugin - extendedrcon 11/28/18 11:34 [API][info] Unloaded plugin - extendedrcon
Avatar
maybe case matters? I don't remember it. [API][info] Unloaded plugin - ExtendedRcon
Avatar
yes case does matter
12:53 PM
when i unload my plugin i type its name exactly as shown on the plugin folder/DLL name
Avatar
Hmm... Let me try
Avatar
Yeah, case does seem to matter when loading and unloading. But if we type in the wrong case, shouldn't the API return it as plugin not found or something? Maybe that's why I'm having the confusion.
Avatar
C++ itself is case sensitive so it would make sense for the load/unload function to be case sensitive itself
Avatar
It is. But how it is now, you can load the same plugin with the wrong case even after it has already been loaded.
Avatar
is there any possible way to force handcuffs onto myself 😄
Avatar
I'll handcuff you @WETBATMAN 😉
Avatar
hehe
Avatar
but yeah if you need me to log on to your test server I can
Avatar
you have a few spare mins ?
Avatar
i'll just spin up rdp from work ^ useless bit of information and now i'm questioning why I stated it. Short answer: Yes (edited)
5:26 PM
ye let me remove mods from it so you connect shortly
5:27 PM
89.232.32.23:27017
5:27 PM
will be up shortly
Avatar
sure let me know
Avatar
its online
5:37 PM
otw
Avatar
aight lets do this
Avatar
@Raptross because when you load the dll it uses windows file system and windows supports lower case when selecting a file it will still detect it if it was fully named in uppercase and you searched for it in lower case and well when the plugin is added to the plugins array in the api it grabs the name from the dll thus storing it in the array with lower and upper case characters dependant on the folder you placed it / plugin name so when you call the unload command it looks that array looking for a exact match to the plugin name you typed aka case sensitive sure there could of been a tolower to convert both to lowercase while checking but its a bit pointless (edited)
10:01 PM
also not sure why unloading is not working try with a blank plugin with nothing but a single hook in it or something to better determine
Avatar
Yeah, it works now. Case was all that was mattering. When I used unload, i used all lower and it was saying it wasn't loaded. So i loaded it again with lower case and unloaded it again with the same lower case. Which actually still left the real one with the proper casing intact. That was where I was getting confused. Thanx all for helping me figure this out.
Avatar
@Michidu / @OwnProx Since loading and unloading is through the game console only, any idea of having that function brought into the RCON ? Would be very easy for admins who run clusters, so that they don't have to hop on to each one separately to update plugins when required.
👍 5
😲 1
Avatar
i +1 this
Avatar
yeah indeed, by rcon would be nice. But when you are building a plugin i can understand that you don't need it. But for example now when i'm about to upgrade 10 servers with plugins.
5:01 PM
It can be nice to avoid restarting all the servers
5:01 PM
But it's a nice to have feature (edited)
5:01 PM
😉
Avatar
Another thought i had is to make the config files more in the database. if it would be possible. So plugins can share config files and you only need to update on one place. I know when i wrote with Delphi and that application connected to the database and looked in a WSF storage in the database after it's config file. Quite neat.
5:16 PM
Maybe it's a little bit overkill..
Avatar
NO SUCH THING BROTHER!
5:17 PM
>Says the node dev don't listen to me we're masochists I totally store settings in dbs at times though cause why not 😃 and i'm lazy (edited)
Avatar
Rogue Leader 11/30/2018 5:18 PM
if we use MongoDB, you could literally just upload the current config files
Avatar
Rogue Leader 11/30/2018 5:18 PM
and they'd keep their jdon format
Avatar
Yeah, i have 10 Servers atm. I know it's quite much just copy paste. But yeah i gives a backup as well. if the server goes down the config is still "there" and you only need to reinstall the server with plugins and point the plugins to the database again.
Avatar
Rogue Leader 11/30/2018 5:18 PM
How hard in mongo to use on the client side?
5:18 PM
I've never set it up :/ (edited)
Avatar
not hard at all if you're using linux as your db server
5:19 PM
MS is kindof annoying
Avatar
MySQL can handle any files if im not totally wrong.
Avatar
Rogue Leader 11/30/2018 5:19 PM
that's true, but can you query parts of a json without having to hard code it in? (edited)
Avatar
Don't understand the question
Avatar
Rogue Leader 11/30/2018 5:20 PM
if you store a json file in mysql, you'll still have to pull the who line and parse it right?
5:21 PM
in mongo, you just query the part you want without pulling it all
Avatar
Ah, no you need to have the whole file
5:21 PM
unless we totally remake the whole setup of the API and plugins. So it checks for tables of configs instead (edited)
Avatar
Rogue Leader 11/30/2018 5:23 PM
well currently, using the api from scratch, you can get the config data any way you want.
5:24 PM
there's no built in json file parsing or db connecting
5:24 PM
all of that has to be added in
5:24 PM
so technically you could implement any db and config storage that you want
5:25 PM
Basically you can make that for individual plugins (edited)
Avatar
Yes we do so, but on MySql
Avatar
Rogue Leader 11/30/2018 5:25 PM
Most of the examples ive seen use a json parser and a sqlite db but sqlite has too many limitations
5:26 PM
My main plugin is struggling because it uses sqlite and more than one process writing to it breaks it
Avatar
Yes, that's why everyone should focus more on MySQL instead.
5:27 PM
i mean Sqlite is good when it comes to small sized servers.
5:27 PM
it's simple and it does what it's suppose to do.
Avatar
Yes because of this i wrote own Clusterchat to MySQL and then migrate the other plugins to MySQL
Avatar
But when it comes to much traffic it can't handle it.
Avatar
is there no way to check if another process is writing to the db and then appropriately decide to write or not based on that ?
Avatar
Rogue Leader 11/30/2018 5:28 PM
you can catch the error and potentially cache the query for later
5:28 PM
but if your plugin critically depends on the db data then you will run into issues will stale data
Avatar
You did @Toma ? Care to share it on the Api site?
Avatar
Rogue Leader 11/30/2018 5:29 PM
there are a few examples with mysql in them on michidus and Ownproxs githubs (edited)
Avatar
Yes i have learn enough from this examples to do the mysql stuff, but if i would share it, i must build it more standard way, because to much stuff tailored to our cluster
Avatar
i will take a look on the ARK Cross Server Chat plugin and see if can update it
Avatar
Rogue Leader 11/30/2018 5:33 PM
Server Plugins for ARK: Server API. Contribute to Michidu/Ark-Server-Plugins development by creating an account on GitHub.
Avatar
And i didn't want to piss of ownprox who has a clusterchat already on api site
Avatar
Rogue Leader 11/30/2018 5:33 PM
permissions can use mysql (edited)
Avatar
Yes permissions is a good starting point
Avatar
permissions has a horrible wrapper
5:34 PM
for mysql sadly
5:35 PM
its all i could, the best wrapper lol
Avatar
Rogue Leader 11/30/2018 5:35 PM
Do you have an example of a good wrapper?
Avatar
you have to write a header for selects i think
5:35 PM
haha
5:35 PM
that was the best i could find
5:35 PM
well if it works it works!
Avatar
you'd have to direct communicate with mysql lib / write your own wrapper
5:35 PM
if you want a better one sadly
5:36 PM
or find a better one than i did
Avatar
Rogue Leader 11/30/2018 5:36 PM
What about MySQL Connector?
5:36 PM
It's examples look pretty easy and straightfoward
Avatar
that's what i meant by the mysql lib
5:36 PM
but sucks without a wrapper
5:37 PM
looks quite basic to me
Avatar
thats why i used a wrapper
5:37 PM
that supported c++ 11
5:38 PM
but yeah using the lib should be easier
5:38 PM
atleast then you get direct select query's
5:39 PM
other than that ugly arse wrapper i found you dont write select query's
5:39 PM
lol
5:39 PM
you have to write a class for the select
5:39 PM
its weird
Avatar
there there
Avatar
i guess the best reason we use sql lite is because its more portable
Avatar
i understand that
Avatar
no server setup required but saying that mysql is better
Avatar
i think its a good way to use the connector, because the wrapper in Permission has errors in current VS2017 Build
Avatar
you can fix those errors btw its a simple fix
Avatar
Not much errors but, yeas
Avatar
but it ruins prepared statements apparently
Avatar
Rogue Leader 11/30/2018 5:45 PM
LOL
Avatar
jep i did fix it :)
Avatar
but the rest works haha
Avatar
Rogue Leader 11/30/2018 5:45 PM
That's some dedication to be using prepared statements with plugins 😛
Avatar
they dont
5:45 PM
haha
Avatar
But i wished to not used these wrapper :D
Avatar
its why permissions still works using it
Avatar
Rogue Leader 11/30/2018 5:45 PM
I guess if you wrote it specifically for your cluster then maybe
Avatar
yeah its horrible
5:46 PM
worst mysql wrapper ever
Avatar
i have began to port my own plugins to connector, but not complete yet
Avatar
could'nt find a better one sadly
5:46 PM
yeah its better for sure to just use mysql lib directly (edited)
Avatar
yep much better, and i'm familar with sql, so mysql isn't to bad
Avatar
yeah its pretty much the same just a few differences in query syntax
5:49 PM
i actually found a place selling
5:49 PM
Intel Core i9-7900X (max. 20x 4,3 GHz)
Avatar
Rogue Leader 11/30/2018 5:49 PM
yea, sql is fairly universal across databases
5:49 PM
Intel Core i7-8086K (max. 12x 5,0 Ghz)
5:49 PM
and
5:49 PM
Intel Core-i9 7920X (max. 24x 4,3 Ghz)
Avatar
it's not that bad, once you make a class, requests look pretty good
Avatar
yeah its just making the class
5:49 PM
that sucks, it is a good wrapper
5:50 PM
but requires a lot of work to do selects
5:50 PM
well copy and paste / edit you gotta write the db structure in a class for the select i think
Avatar
Yes but if you handle much tables it is a pain
Avatar
i found a place renting out these i9's
5:51 PM
from below 120 euro a month
Avatar
i think
5:53 PM
thats the wrapper i used lol
5:53 PM
just from a different link
5:53 PM
and not the github page
5:54 PM
nah its not
5:54 PM
mysql++ mirror. Contribute to rpetrich/mysqlpp development by creating an account on GitHub.
5:54 PM
looks messy though
5:54 PM
and very unorganised
Avatar
Rogue Leader 11/30/2018 5:54 PM
That hasn't been touched in 4 years, i was looking at it
Avatar
is that ryan petrich ?
5:55 PM
woah it is
Avatar
A C++ wrapper for mysql meant to be used in combination with sqlpp11. - rbock/sqlpp11-connector-mysql
5:55 PM
this is the wrapper what is used in permissions (edited)
Avatar
Rogue Leader 11/30/2018 5:56 PM
I don't see prepared statement like abilities in this one, or whatever you would call replacing ?'s
Avatar
few more examples here
5:57 PM
A type safe SQL template library for C++. Contribute to rbock/sqlpp11 development by creating an account on GitHub.
5:57 PM
but doesnt show off prepared statements
5:57 PM
but the wrapper defiantly has support for it
5:58 PM
its horrible to compile though
5:58 PM
you need to use cmake
Avatar
Rogue Leader 11/30/2018 5:58 PM
why do programmers make everything so complicated 😛
5:58 PM
All these C era devs overcomplicating their code
6:00 PM
I wonder how hard it would be to implement the arkapi lib with c#
Avatar
very
6:00 PM
would have to write c++ hooks
6:01 PM
that calls a custom made interface class
6:01 PM
that invokes c# methods
Avatar
adding basic functions might not be that hard, but probably not worth it
Avatar
meaning function / hooks would have to be pre made c++ side and referenced from a c# class
Avatar
i don't think it's worth to do this in C#
Avatar
Rogue Leader 11/30/2018 6:02 PM
There are tools that can use the api source code to generate a wrapper
Avatar
its not worth it at all because youd have to port the headers too
6:02 PM
and c# is a slower language
6:03 PM
but i did start doing it its just a lof of effort
6:03 PM
i like michidu's chaiscript he started
6:03 PM
it seemed to have more support / easier to implement
6:04 PM
not for me personally but for people who dont know c++
6:04 PM
but not sure if he plans on adding it as plugin
Avatar
ChaiScript is much easier but it would still be very limited and the binary size was becoming huge
6:07 PM
however, the modern c++ is close to c# in terms of simplicity 😃
Avatar
yeah they defiantly made a lot of stuff easier to achieve
6:10 PM
how much do you all think i can over clock a i9
6:11 PM
before burning out my host's motherboard
6:11 PM
lol
6:11 PM
4.2?
6:11 PM
it can go to 5.8 apparently but it wont have water cooling so don't want to risk that high
Avatar
i mean the i7 8700k can go up to 5.2 or something
6:12 PM
so the i9 would hit 6.0 i'm pretty sure
Avatar
why do you want to oc is my question LOL
Avatar
the one im getting has 10 cores
6:13 PM
faster clock speed
Avatar
gotta get a water cooler for my i7 8700k
6:13 PM
fucker is running pretty hot
Avatar
8700k runs so hot 😛
Avatar
thats why
Avatar
yeah but why, like if you're going to risk burning your stuff up quicker, why do it unless you NEEEEEd to oh well
Avatar
im renting it
Avatar
doesnt bother me if i burn it out
6:13 PM
or not
Avatar
turn that bitch up then
6:14 PM
😄
Avatar
still waiting on it to arrive
6:14 PM
can't wait
Avatar
doubt you can burn the cpu out that easily 😄
Avatar
Intel Core i9-7900X (max. 20x 4,3 GHz)
6:14 PM
Ständig wechselndes Sortiment an Dedicated Rootserver Sonderangeboten zu extrem günstigen Preisen bei active-servers, wahlweise mit Linux oder Windows.
6:14 PM
im a ovh customer
Avatar
imgonnaspawnarkwithchildprocessinnode
Avatar
running my servers on my i5 4460 not only was i gaming on that cpu before i put it in my server build
Avatar
but thought id give it ago
Avatar
but i have some shitty psu attached
Avatar
checkout that site i linked
Avatar
my cpu fan failed to spin for some reason (edited)
Avatar
have some amazing deals
Avatar
so i just plugged it into sys fan and maxed out its speed 🤷
Avatar
Intel Core i7-8086K (max. 12x 5,0 Ghz)
6:15 PM
they offer that
6:15 PM
but i wanted more cores
Avatar
isnt less cores + higher ghz better ?
Avatar
6 servers on 1 dedi you see
Avatar
do what i did, get a t1 drop and turn your garage into a smokehouse
Avatar
not when you run 6 servers
6:16 PM
on 1 dedi
Avatar
If you want as many servers on one host you need more cores ofc 😛
Avatar
can't do that my internet already recieves 2x dc a day
6:16 PM
haha
6:17 PM
i would love to host my own hardware
Avatar
ya that's why you need a t1 drop, it will run you alot but hey
Avatar
its like 10k
6:17 PM
+ here
Avatar
yikes wtf
Avatar
to get the road dug up
6:17 PM
and get a fiber line put in
Avatar
oh yeah i live in the heart of ATL so
6:17 PM
... sorry
Avatar
otherwise im stuck with 50 mbps download
Avatar
Atlanta
Avatar
and 12 mbps upload
Avatar
haha
Avatar
lol i host with 50mb up/down
Avatar
damn that not much Ownprox 😛
Avatar
12 mbps could host me 400 players
Avatar
i host with 1000/1000 😛
Avatar
but at least my internet is stable it never drops
Avatar
lucky
6:19 PM
i have always just paid a monthly fee to a datacenter
Avatar
@Foppa do you demark fiber then eth or full fiber LAN as well
Avatar
nah man before this i had satelite
Avatar
and thinking about colocation
Avatar
it had less than 1 mb down
Avatar
i have tried to talk with the ISP to get more dedicated fiber from them, but they only that for companies 😦
6:19 PM
i have fiber end to end
Avatar
why would you need more bandwidth ?
Avatar
@Noita
Avatar
i mean 1000/1000 is good but yeah end user 1k is...
Avatar
@Foppa living the dream
6:20 PM
lol
Avatar
yeah haha
Avatar
Sweden in general have quite high quality fiber
Avatar
well @WETBATMAN it's mroe so that like, consumer net =/= business drops
6:20 PM
business generally means if the world is getting bombed, still won't go down otherwise they will bend over for you
6:20 PM
where as with consumer, "Who cares that your netflix lagged for .3 seconds"
Avatar
no i was asking why would you need more than 1k for arks ervers
6:21 PM
😄
Avatar
no i have to much
6:21 PM
i could lower down my speed
Avatar
Yeah i was saying idk if he's asking for more, just the quality haha
Avatar
i actually got delayed on my dedicated server order because they dont have nvme drive's in stock and they had the cheeck to ask if i wanted ssd;s instead
6:21 PM
guess black friday did them over
Avatar
lol
Avatar
i was like hell no ill wait
Avatar
but yeah isp's are shitty people in general
Avatar
for the nvme drives thank you
Avatar
colors
Avatar
called them to assign me a static ip and the tech support dude told me only he could open the ports
Avatar
haha yeah, that's shitty
Avatar
not only did he spend 30 min opening all of my ports he did it incorrectly 🤦
Avatar
hahah
Avatar
yeah as you might have guessed i can open the ports myself
Avatar
you had to call to get ports open..?
6:23 PM
Ok good lOL
6:23 PM
cause some isps have been like that before....
Avatar
the tech support dude was thinking so
Avatar
@WETBATMAN where are you from?
Avatar
How do i unload a plugin again?
Avatar
i guess thats why i like datacenters no port forwarding required
Avatar
he also proceeded to tell me that with the static ip my open ports would only work on lan 😄
Avatar
cheat plugins.unload pluginname
Avatar
@WETBATMAN my heart please
Avatar
i'm from Georgia
Avatar
no more
Avatar
and cheat plugins.load pluginname
6:24 PM
to load one
Avatar
oh and to add insult to injury he even assigned the ip wrong leaving me without internet for 2 hours
Avatar
i never really understood why internet charges you for a static ip
6:25 PM
when a dynamic one is like free antiddos
6:25 PM
lol
Avatar
casue we're running out of ipv4's
Avatar
they have to have multiple people on 1 ip
Avatar
that and capital
Avatar
the regular user does not care
Avatar
and that's a lie pretty much now since NAT exists
Avatar
i mean they could just super but
Avatar
but if everyone had a static ip we would not have enough ip addresses to cover everyone...
Avatar
ah yeah i had a nat host b4
6:26 PM
was cheap as hell
Avatar
well ofc that and more money 🤑
Avatar
they could, and usually just super
Avatar
good though
6:26 PM
only had 20 ports on ipv4
Avatar
ehh i hope the world moves to ipv6 faster
Avatar
i dont
Avatar
i have 5 IP Adresses to my Fiber converter 😛
Avatar
can you imagine remembering
6:26 PM
your dedi;s ip address
6:27 PM
if its ipv6 (edited)
6:27 PM
rip
Avatar
i mean for remote connection away from home haha
Avatar
hahaha 😦
Avatar
most of my labs in college forced ipv6
6:27 PM
LOL
Avatar
you could just make it a website address
Avatar
atleast someones using it
Avatar
dopeark.com:27015
6:28 PM
something like that
Avatar
i swear they offer like 50 free ipv6
6:28 PM
with dedi's
6:28 PM
now a days
6:28 PM
just to encourage you to use them
Avatar
why would you need that much unless you're scraping combos or something 😄
Avatar
our first class went over so much ipv4 shit, every class after that for that course was ipv6 induced
6:28 PM
my brain when
Avatar
idk i guess they have too many ipv6's
Avatar
i used to know the amount by heart
6:29 PM
then i started coding because no one hires network engineers anymore
6:29 PM
fucking sdn's
Avatar
I think every IP-TV in sweden now days use IPv6
Avatar
i dont think all countrys support ipv6 yet either
Avatar
france is the leading country in ipv6 support i think
Avatar
America is like "Hmm maybe thinkingLol "
6:30 PM
nah, it's China
6:30 PM
they've been on ipv6 since ipv6
Avatar
well thats good atleast
6:30 PM
otherwise it would take us 6 hours to get a ip
Avatar
i guess thats why we had dial up
6:31 PM
hahahaa
6:31 PM
china was using ipv4
6:31 PM
just kidding
Avatar
yeah china has been v6 for a looonnnggg while. You won't find a v4 that isn't translated/stupified for compatibility reasons (edited)
6:32 PM
none of that halfbreed shit either. Pretty sure it's v6 native no v4 hybrid like most of the ones you'll find everywhere else (edited)
Avatar
pretty cool i just still have how long v6 is
6:33 PM
prefer v4
Avatar
i think it was 46 sextillion or something
Avatar
https://www.vyncke.org/ipv6status/compare.php?metric=p&countries=se Sweden have almost all population with ipv6 😛
Statistics about IPv6 deployment in different countries for several countries.
6:33 PM
wtf
6:33 PM
didn't know that
Avatar
damn
Avatar
Oh shit, i was wrong 😮
6:35 PM
sweden op, moving (edited)
Avatar
when i finally get my i9 ill yet you all know if the provider is any good
6:35 PM
after a month
6:35 PM
as their's only 2 places renting them out
6:35 PM
as far as i can find 2 German company's (edited)
6:36 PM
they offer this too: AMD Epyc 7401P (max. 48x 2,8 Ghz)
6:36 PM
pefect for anyone opening a ark server hosting company (edited)
Avatar
i still run some ark servers with 4790k CPU. Tried run a very heavy server on a 8700k didn't notice any big differences tho 😦
Avatar
how many servers per dedi?
Avatar
oh really
6:37 PM
that is awesome
Avatar
i used to have 4x 4790's
Avatar
i plan on getting an i7 4709k myself
Avatar
That's cause 4790k is disgustingly overpowered
Avatar
how how much ram do you have ?
Avatar
for each 1 of my servers
Avatar
4790k is nice
6:37 PM
32gb
Avatar
soyoustart?
Avatar
no (edited)
6:38 PM
i host all my server home
Avatar
oh yeah i forgot
Avatar
I need to buy a new mobo for my 4790k so i can start hosting on it
Avatar
you have 1000/1000
Avatar
cause atm it's doing nothing lol
Avatar
4790k Can be easy clocked to 4.5ghz and even more if you have good one
Avatar
a 100 euros a month
Avatar
worth a i9 (edited)
Avatar
i ran mine at 4.8 for like... 2 years, mostly uptime since i was playing bdo during that time
6:39 PM
kept my room nice and toasty
Avatar
nice
Avatar
gpu died before the processor did
6:39 PM
lol
Avatar
i wounder how much i can clock my 8700 to
6:39 PM
Avatar
only reason i have to upgrade is to have support for more memory.
Avatar
dont really need to haha
Avatar
i am a hardcore intel boy but i wanted to try(and didn't want to spend LOL) the new amd processors
6:40 PM
idk what to think but i can tell they ain't intel LOL
Avatar
i dislike ryzen
6:40 PM
i tried it with windows server
Avatar
Oh yeah nope
Avatar
seemed to have compatibility issues
Avatar
in that case nope
Avatar
damn i have 32gb as well
Avatar
kernal power failure
Avatar
Intel is stable as fuck.
Avatar
winserve requires intel thanks
Avatar
hmm that is very nice i was afraid my machine would be too weak with the 4790k
Avatar
oh on my ark host i have 64 gb ram
Avatar
and AMD goes even hotter if i'm not confusing it with something else.
Avatar
nah dude, run that shit down the street
Avatar
my personal pc has 16gb
Avatar
4790k is a beast, trust me
Avatar
Epyc's
6:41 PM
are looking sexy
6:41 PM
imagine if they got higher clock
Avatar
Yeah have 3 dedicated servers with 4790k
Avatar
AMD officially unveils new EPYC™ model i.e. 7601 server processor which comes with 32 cores, 64 threads, and eight DDR4-2666 memory channels with a memory bandwidth of 341 GB/s. It also features great performance on high-performance computing tasks, DBMS and Analytics. Lear...
6:42 PM
and you can dual socket these
Avatar
can you imagine 64 cores and 128 threads
6:42 PM
6:43 PM
then you look at my servers
Avatar
128 CORES 256 THREADS
Avatar
and its not even peak
6:43 PM
hahah
Avatar
wait does ark server even multicore?
6:43 PM
not very well
Avatar
impressed
Avatar
though
6:43 PM
not surprised then
Avatar
networking seems single
Avatar
they should fix that
6:43 PM
yikes wtf
6:43 PM
LOL
Avatar
only when it hits full on the first core i think
6:43 PM
so the true answer is no
6:43 PM
they are not parallel programming, they are load balancing
Avatar
my server keeper i made apply's cpu affinity
6:44 PM
automatically
Avatar
not really the load on my servers is equal
Avatar
across cores that is
Avatar
like i set my process's
6:44 PM
to run
Avatar
on specific cores
6:44 PM
so the other servers can't effect each other
Avatar
yeah done that as well
6:44 PM
ark runs much better with specified cores
Avatar
yeah really helps
Avatar
no shared resources == no conflicts
Avatar
eggactly
Avatar
no need for ecc to kick in lol
Avatar
hmmm wondering if i should do that aswell
6:45 PM
yes
6:45 PM
you should
Avatar
@WETBATMAN you should
Avatar
but my cpu atm is only a 4 core so 🤷
Avatar
how many servers?
Avatar
set 2 core each
Avatar
two for each!!
Avatar
you will be able to handle more players
Avatar
inc runs better with 2 each
Avatar
with less lagg
6:45 PM
instead of 4 shared
Avatar
hmm let me do that
Avatar
you can do that without restart
Avatar
so just set 2 random cores per server process ?
Avatar
^ hackers
6:46 PM
god dammit
Avatar
2 different cores
6:46 PM
per process
6:46 PM
threads*
Avatar
yeah but does it keep the settings after restarting ?
Avatar
are you using ASM?
Avatar
yes i am
Avatar
i added that feature to my server keeper
Avatar
then i can be saved there
6:46 PM
for every time it's starts
Avatar
@OwnProx does your serverkeeper use IPC or the api itself? 🤔
Avatar
but for currently running servers you do it under taskmanager
Avatar
found it (edited)
Avatar
it watch's the process but also use's query port
Avatar
very nice
Avatar
and if a query does not have info returned
6:47 PM
in 4 mins
6:47 PM
it acts as if it's crashed
6:47 PM
and kills the process
Avatar
i need that.
Avatar
for those msg box popups
Avatar
yeah i was thinking of trying that, does the ark exe normal stdio?
Avatar
tried to fix that with my alarm system
Avatar
i just use c# and launched a process and watched it
6:48 PM
i dont use stdio or know if it supports it
Avatar
and then i save the pid
6:48 PM
in registery
6:48 PM
of each server
6:48 PM
so i can load that at my keeper startup
Avatar
do i keep all cores enabled ?
Avatar
and locate the already running process's
Avatar
in ark settings ?
Avatar
so i can close and open my server keeper
6:49 PM
and leave my servers open
6:49 PM
haha
6:49 PM
it detects them
Avatar
yeah cause like, ASM is cool but i kinda want to make my own because i'm an asshole and need things to fill my freetime
Avatar
and doesnt use like 10 copys
6:49 PM
of ark server files (edited)
6:49 PM
just 1 copy
6:49 PM
that's pretty legit wtf
Avatar
yeah i was just going to spawn them as children
Avatar
yeah AltSaveDirectory
6:50 PM
is offered
6:50 PM
as a arg
Avatar
i have been wondering if that save performance as well..
Avatar
i have different save timers
6:50 PM
one server at 20 mins
6:50 PM
other
6:50 PM
22
Avatar
makes sense
6:50 PM
26
6:50 PM
ect
Avatar
yeah but i mean if you win performance out of doing that. (edited)
Avatar
also i could use my other nvme drive
6:51 PM
you can set path
6:51 PM
so i could split my save folder on 2 drives
Avatar
well theoretically you do win performance because the save will always try to max out the current drive to save as quickly as possible
Avatar
im interested in intel optane
6:52 PM
wounder how how much effect it will do on save process
6:52 PM
its like a cache
Avatar
i have tested with two evo 970 nvme in a raid-0. quite disappointed of the result.
Avatar
with fast memory access to ram
6:52 PM
ah sad
6:52 PM
apparently it gives like 30%
6:52 PM
perf increase
Avatar
not even that
6:52 PM
like 5 or 10
Avatar
can show the benchmark
Avatar
can't win at everything intel
6:53 PM
feelsbad
Avatar
it was Samsung 😉
Avatar
what read did you get on raid 0
6:53 PM
like 5k?
Avatar
yo peeps with the core affinity being set do i still have to use --useallcores ?
Avatar
i was hoping for 5k
Avatar
nice
6:53 PM
i get 3k
6:53 PM
on my non raid m.2
6:53 PM
Avatar
wow the server ping already seems lower
6:54 PM
might be placebo though haha
Avatar
Here i did a softraid
Avatar
not bad at all
6:55 PM
did you try this with ark?
Avatar
what are you using for softraid ? (edited)
Avatar
windows built-in
6:55 PM
here is with hardware-raid
Avatar
for your server ?
6:55 PM
6:55 PM
there
6:56 PM
i test it with my own pc first
Avatar
im curious on what its like for save lagg
6:56 PM
haha
Avatar
nothing ? 😄
Avatar
i get like 1-2 seconds (edited)
6:56 PM
but id prefer none
6:56 PM
haha
Avatar
wait do motherboards for 4790k's even support nvme's ?
6:56 PM
unless pci converter (edited)
Avatar
my own pc has better stuff
Avatar
but you'll loose speed
Avatar
yeah my own gaming rig has better stuff too but wondering what i should use for the server
6:57 PM
right now i have a kingston ssd
Avatar
im using m.2 drives
Avatar
i would say samsungs evo ssd's are the best (edited)
Avatar
from ovh
Avatar
yeah but like if i were to get a second ssd is it worth it to soft raid them ?
Avatar
Dedicated servers delivered in 120s with no setup fees. SSD disks, 256 IPs with no monthly fee, anti-DDoS and private vRack network.
6:58 PM
is my spec's
6:58 PM
currently
Avatar
or just get a bigger capacity ssd for plain storage
Avatar
Yes it does!
6:58 PM
but if your server crash
6:58 PM
you fail both disks
Avatar
depends on what raid
6:58 PM
you apply
Avatar
raid 0 ofc 😄
Avatar
and then yeah
Avatar
well a raid0 is always a risk
Avatar
1 ssds goes rip
6:59 PM
always do auto backups
Avatar
both die
Avatar
it's better to do a hardware raid0 tbh
Avatar
yeah i always back my saves up to my hdd
Avatar
if you need to move to another server you don't need to reinstall everything
Avatar
wait can it stripe the data on the fly with a hardware raid 0 ?
6:59 PM
that's not possible
Avatar
yeah so it will still be needed to reformat both disks
Avatar
exactly
Avatar
fuck that 😄
7:00 PM
the performance improvement wont be that much imo to consider re installing everything
7:01 PM
+ one drive dies date gets fucked
Avatar
i have 2 servers with 4ssds with raid0 for 2 years now 🙏 🙏 🙏 🙏 🙏
Avatar
just dont get power surges
7:01 PM
lost 2 ssd's
7:01 PM
in under 6 months
7:01 PM
due to them
7:01 PM
now i have surge protectors
Avatar
dunno about surges but i have outages at my house sometimes
Avatar
get surge protectors
7:02 PM
you could be risking your ssd's
Avatar
outages
Avatar
everytime that happends
7:02 PM
does your lights flicker?
Avatar
when the power gets cut to the whole neghbourhood
Avatar
before the power goes ?
Avatar
no but sometimes they shut the power down for maintenance and stuff
Avatar
i have stable electricity i hope 😄
Avatar
surge protector was only like 10 euros
Avatar
was about to get a UPS but nah
Avatar
yeah that works too
Avatar
mine is pretty stable too its just when its super windy or rainy they shut the power down just in case 😄 (edited)
Avatar
they have built in surge protectors in ups's
7:03 PM
had one before but battery life sucks
7:03 PM
they last like 10 mins
Avatar
it does and they costs like hell
Avatar
yeah i spent 120 on one
7:04 PM
was not very good
Avatar
yeah i dont justify buying one
Avatar
but it was powering my home pc
7:04 PM
a dedicated server is 4x less watts
Avatar
+ my router is not in the same room as my server so if the internet goes out safe shutdown wont happen anyway 😄
Avatar
just buy a surge protected extension lead if your worried
Avatar
Here we go again 😄
Avatar
its what i did and been safe since
Avatar
me ?
7:05 PM
lol if i was worried i would not have a shitty 5 year old psu that can barely handle my fans in my server
Avatar
heat can effect performance too
Avatar
(yes i know it can kill the disks if it finally dies)
7:06 PM
this cpu is so cool though
7:06 PM
like for real
Avatar
makes cpu cycle slower (edited)
Avatar
i booted my pc without my cpu fan and it started
7:06 PM
that is legit how cold this cpu runs
Avatar
i troubles with keeping the heat down on my 8700k :/
Avatar
you actually did that
7:07 PM
hahahaha
Avatar
need to run my fans on max all the time
Avatar
i have a water cooling on my 8700
Avatar
if i didnt boot the bios first i would probably not have noticed it was unplugged in the first place
Avatar
think i need to replace the cooling paste
7:07 PM
i have water cooling too
Avatar
i bought a paste pad
7:07 PM
they seem more effective
7:07 PM
than apply thermal paste manually
Avatar
oh never heard of it
Avatar
buying a thermal pad
7:07 PM
its like a paste precut
7:08 PM
and u just pop it in place
Avatar
arctic silver ftw !!! (edited)
Avatar
no way!!
Avatar
nah its all about thermal pads now
7:08 PM
soo easy
7:08 PM
no mess
Avatar
Noctua NT-H1
7:08 PM
is the best
Avatar
@OwnProx i need to get that
7:08 PM
few examples
7:09 PM
yeah its what i got on my water cooling
7:09 PM
works well
Avatar
i wish ark took advantage of installed gpu's
Avatar
have my gtx 550 just laying in there 😄
Avatar
here is my pc idle... at 50 you mean for rendering and stuff?
Avatar
Heads up. ARK Update 1.3Gb
Avatar
no the 8700
7:10 PM
gets hot
7:10 PM
even idling
7:10 PM
well i have my fans on silent
7:10 PM
if i turn them up i can get it down to like 30 c
Avatar
1.3 gb
7:10 PM
fuck
Avatar
i usally could put on my on silent
7:11 PM
now i just can't
Avatar
my server ssd is bout to fill up 😄
Avatar
oh shit yours aint on silent
7:11 PM
and at 50c
7:11 PM
damn
Avatar
no look at the speed
Avatar
aaaaaaaaa
Avatar
hahahahah aw 😄
Avatar
haha
7:11 PM
7:11 PM
gutted dude
Avatar
its 800 mb
Avatar
only my pump
Avatar
did you lie 🤔
Avatar
is pumping none of my fans are even spinning
Avatar
i lied
Avatar
liar 😦
Avatar
sorry 😦
7:12 PM
i need to fix my cpu
7:12 PM
with new thermal paste
Avatar
what water cooling you got ?
7:12 PM
i got that corsair i50 or something
7:13 PM
the cheap one with 1 fan / radiator
Avatar
1 149 kr. Exceptionell värmeavledning för överklockning av processorer. En 280mm radiator med dubbla SP140L PWM-fläktar erbjuder exceptionell värmeavledning som du behöver för överklockning av processorerHydro Series H110i är en extremt allt-i-ett CPU vattenkylning f...
Avatar
oh boi you got the big gun
Avatar
you have 2 fans
Avatar
With new fans
Avatar
and still yours is that hot
Avatar
that are suppose to be even better
Avatar
oh yeah my fans dieing
7:13 PM
i can hear it
Avatar
which they where...
Avatar
i already regreased it
7:13 PM
the bearings
Avatar
i torture my fans by setting them so low they barely spin
Avatar
yeah the original fans started to sound bad. like quite instantly so i changed them
Avatar
sometimes my fan falls off
7:14 PM
its bearings
7:14 PM
lol
Avatar
hahahaha
Avatar
at least you didint boot your system without the cpu fan 😄
Avatar
thats what i have
7:14 PM
well yeah thats scary batman
Avatar
its just plain weird
Avatar
i wouldnt want to fry 250 quid cpu
Avatar
Basically the same, i just have the big brother of that
Avatar
haha
Avatar
how can it boot without cpu fan
7:15 PM
how is it able to run so cool ?
7:15 PM
did it break or something 😄
7:15 PM
it takes about seconds for it to overheat without cooling
Avatar
never chips run hotter than older ones (edited)
7:15 PM
so you might of just been lucky batman
Avatar
yeah overclock that shit! you have rly good one
Avatar
dude it was literally sitting in the bios at 44 Celsius
Avatar
thats fuck all
7:16 PM
thats normal idle heat
Avatar
yes thats my point
7:16 PM
without the cpu fan
Avatar
70-90 is like under a heavy load
7:16 PM
yeah thats strange
7:16 PM
i guess (edited)
Avatar
here is the server i'm running with the same CPU
Avatar
soo much cooler
7:17 PM
haha
Avatar
that things chunky
Avatar
hahaha yeah
7:17 PM
hate it.
7:18 PM
but it does a good damn job
Avatar
yeah
7:18 PM
almost as good as water cooling it seems
Avatar
yeah two 140 fans
Avatar
i remember when i got a 140
7:19 PM
instead of a 120
7:19 PM
for the back of my pc
7:19 PM
i just bodged it their for like 5 months
7:19 PM
and left the side off
7:19 PM
casue it dint fit anymore lol
Avatar
yeah some memory can't be used with this cooler
Avatar
do you all think the i7 4790k would be able to handle 4 extremely modded servers ?
Avatar
yes but it will start to show lagg
7:20 PM
when you start getting a lot of players
7:20 PM
20-30 per server
Avatar
No i have runned a super modded server with 100x rates
7:20 PM
on a 8700k
Avatar
yeah i'm running similar
Avatar
id say 70-100 players youd notice lagg
Avatar
with SkiesOfNasca the server rates are maxed out but the player frames are like 20-30 (edited)
Avatar
depends on rates though
Avatar
need to find a good deal on 1
Avatar
my servers are 4x rates
Avatar
as they're not manufactured anymore
Avatar
and get wiped like every 4-6 months
Avatar
i wipe mine every month
Avatar
then it should be totaly fine
7:22 PM
no worries at all.
Avatar
i actually went 14 months
7:22 PM
hosting save data
Avatar
it can start lagging when you have over 100k structures and 3000 dinos on the server
7:22 PM
but i think that's just ark in a nutschell
Avatar
well yea
7:22 PM
actually i had someone just make a small cage
7:22 PM
lock penguins inside
7:22 PM
and start breeding
7:23 PM
and the breeding timers are significantly faster on my server
7:23 PM
so the cage went on for 2-3 days
7:23 PM
and eventually it lagged the server to hell
Avatar
well ark try to handle it the best they can
Avatar
like we're talking official server level of lag
Avatar
they dont do npc updates unless a player iss near
Avatar
255 ping all the time
7:24 PM
no but the thing is it does not show on the cpu at all
Avatar
so wildlife doesnt get updates unless a player is near
7:24 PM
now you can imagine 100 ppl across the map
7:24 PM
and now imagine how many dinos need updates
Avatar
like the cpu was still running under 50% so i didn't suspect anything until a player reported that to me
Avatar
movement updates ect
Avatar
Here is my high rated server with 100x and primal fear and SkiesOfNasca
7:24 PM
with 4790k
Avatar
1.6 percent
Avatar
Clocked at 4.2Ghz
Avatar
wow
7:25 PM
just released a update
Avatar
anything sexi?
Avatar
my servers take up 30-35 % when there are a decent amount of players online (edited)
7:25 PM
idk i can see it here
7:25 PM
my server keeper updated all my servers
7:25 PM
i was wondering why my player count dropped haha (edited)
7:26 PM
and noticed the update
Avatar
Corrupt Dinos now deal more damage to Tek Shields
7:26 PM
just what we need
7:28 PM
Connection Reduced disconnects
7:28 PM
best release notes ever
7:29 PM
damn they must really want to sell this cpu
7:29 PM
had the deal going on from like September 😄
7:29 PM
u can get the 8700k
7:29 PM
for that price
7:29 PM
cheaper infact
7:29 PM
go for the 8700k instead
Avatar
i would have to swap everything in my system
Avatar
ah gutted
Avatar
ye considering i just purchased ram 😄
Avatar
well i can sell you one and i upgrade to 8700k 😄
7:30 PM
300$
Avatar
its sad you can't dual socket
Avatar
i7's (edited)
Avatar
i mean if its in good condition and stuff i'd consider it 😄
Avatar
would be sick having 2x 4790's
7:31 PM
or 6970's
7:31 PM
I don't ship stuff, to lazy
7:31 PM
😄
Avatar
eh
Avatar
i want to try the Thread Ripper
7:31 PM
tbh
Avatar
do you know how much time shipping takes to my area ?
7:32 PM
it's at least a 3 week wait
Avatar
but i like that Intel has diched their hyperthreading
7:32 PM
oh that's crap
Avatar
because almost nothing ships directly in here so i have to ship it to the usa first and then ship it here
Avatar
well i think the thread ripper would support dual socket
Avatar
meanwhile here it's sold-out like instantly on release
Avatar
well if you want dual sockets
7:33 PM
you need to check the other chipsets
Avatar
AMD unveils the first 32 core processor ever which features 12nm architecture and based on X399 platform to become world's most powerful desktop processor.
7:33 PM

of CPU Cores

32

of Threads

64 Base Clock 3GHz Max Boost Clock 4.2GHz
Avatar
i mean this cpu overclocked would do good too
Avatar
the i7 4790k
Avatar
that cpu
7:34 PM
thread ripper is getting nice
Avatar
it was always nice but they're lacking optimiation
Avatar
nah amd is not there yet
Avatar
thats the problem with intel and amd
7:35 PM
always in a race
7:35 PM
to release the newest technology before fully tested / optimized
Avatar
yeah
7:35 PM
that is the race with anything tbh
Avatar
like the i9's
7:35 PM
were dodgy
7:35 PM
when they first came out
7:36 PM
compatibility issues with motherboards they were suppose to be compatible with
Avatar
remember when intel fucked up and gave the wrong firmware to manufacturers ?
Avatar
pretty sure they patched it in firmware updates
Avatar
and people were able to overclock non k cpus 😄
Avatar
That's so freaking annoying.
Avatar
nice did not hear about it pretty mad though
Avatar
that they have a locked version of the same cpu
Avatar
i wonder how my i9 host will be haha
Avatar
well its not like they're the same build quality
Avatar
they are not?
Avatar
non k variants have lower dye quality so they overclock lower
7:38 PM
but yeah they're just locked versions of the same chip
Avatar
they did the same with my rx 480
7:39 PM
a lot were released as 4gb edition
7:39 PM
but could be unlocked to 8gb
7:39 PM
by a few modifications
Avatar
wut
7:39 PM
so you literally could download more ram 😄
Avatar
yeah they released one with 4gb
7:40 PM
and sold one with 8gb
7:40 PM
turns out both were the same card
7:40 PM
Consumers have reported success flashing VBIOS from sold 4GB retail samples, resulting in 8GB cards. Let's talk about why AMD's shipping of “locked” cards makes sense, risks, and how to perform the procedure. -
7:40 PM
this is the same situation like they do
7:40 PM
with some cpu's
7:40 PM
just add limits
7:41 PM
lol
Avatar
I'm going to host ark on a quantum computer
7:46 PM
fuck it
Avatar
I am kind of needing a little help with C++ vectors this time. Trying to make a score plugin for our server. But since I am no c++ expert, maybe one of you can help me to achieve this. struct TribeScore { uint64 PlayerSteamID; uint64 PlayerTribeID; int Score; TribeScore(uint64 PlayerSteamID, uint64 PlayerTribeID, int Score) : PlayerSteamID(PlayerSteamID), PlayerTribeID(PlayerTribeID), Score(Score) {} }; typedef std::vector<TribeScore> TribeScoreA; TribeScoreA TribeScoreData; I have this which loads up from a file at first. I want to get which player has the highest score of a certain tribe. Kind of like: void GetTribeBestScorer(uint64 tribeID) Do correct me if anything above is not how it is usually done.
Avatar
you would get better performance if you use std::unordered_map
7:15 AM
struct TribeScore { TribeScore(uint64 PlayerSteamID, int Score) : PlayerSteamID(PlayerSteamID), Score(Score) { } uint64 PlayerSteamID; int Score; }; std::unordered_map<uint64, std::vector<TribeScore>> TribeScoreData; uint64 GetTribeBestScorer(uint64 tribeID) { auto& tribe_scores = TribeScoreData[tribeID]; const auto result = std::max_element(tribe_scores.begin(), tribe_scores.end(), [](const TribeScore& a, const TribeScore& b) { return a.Score < b.Score; }); return result != tribe_scores.end() ? result->PlayerSteamID : 0; } (edited)
7:18 AM
tribe id should be of type unsigned though
Avatar
Great, thanx
9:54 AM
Also, I want your opinion on something. DB driven Plugin. How would you keep your db in sync with a world save? For example, the world saves. But after some time before the next save it crashed. So when you restart and put it back online, the game will load from the last save but the db will be a little forward in time. What are your ideas to have this tacked? (edited)
Avatar
Anyone here that can help me with a server crash issue? https://gyazo.com/1b740a0df41c8907de5ec013c28a309f (edited)
Avatar
Looks like you need to save db only when world is being saved, can hook save function
10:34 AM
@Remi probably caused by some mod which does something with crafting
Avatar
@Michidu Like when loading - load all the db data to memory and for every save hook, write them back to db or like wise ?
11:02 AM
Or maybe for every save hook, copy the db to the saved folder... and during load, detect it and load from there
Avatar
It should work too. Or you can use transactions.
Avatar
Which do you think is more safe and better?
Avatar
Rogue Leader 12/1/2018 2:22 PM
I keep all my data in structures and only write to the db on world saves
2:22 PM
And load it all on server boot
2:22 PM
However edits to my db don't take effect if the server is running
Avatar
looks like a good way. My idea was bad.
2:41 PM
but maybe you can also just backup DB on world save and load backuped version on server start up
Avatar
you all know of a good way to sync banned players across servers ?
Avatar
with a centralized db
Avatar
yeah but how do you share it between servers
Avatar
yeah i thought about that after i said it
7:34 PM
LOL
Avatar
also is there a way to get a dino's id
8:40 PM
trying to get arkbot to identify annunaki/Primal Fear baby dinos but i have no idea which format they use for babies
Avatar
just _child after path?
8:52 PM
and to sync bans use Syncthing
8:53 PM
@WETBATMAN
Avatar
ye annunaki had a different one
8:53 PM
they used _baby
8:53 PM
haha
8:54 PM
https://syncthing.net/ what does this do ?
Avatar
...syncthings? 😄
Avatar
just copy the banlist accross multiple servers ?
Avatar
for example, yes (edited)
Avatar
or ?
Avatar
anything you want 😃
Avatar
so its a file linking tool basically ?
Avatar
Basically you setup folder to sync to other places
8:55 PM
No
8:55 PM
it copies files when changes are being made
Avatar
i assume it can do this with single files ?
8:56 PM
and on the same machine ?
Avatar
you need to setup filters.
8:56 PM
Well the main purpose with syncthing is to sync folders
8:57 PM
so if you only want one file you need to setup a filter.
8:57 PM
Though. I don't know if it's possible on the same machine
Avatar
hmmm
8:58 PM
maybe microsoft synctoy
8:58 PM
although i have no idea if that can even do filters
8:58 PM
or sync a file
Avatar
there is several options out there
Avatar
yeah just looking for one that syncs across one machine
Avatar
GSH | MrOwlSky 12/2/2018 9:29 PM
If you use ASM just use a single banlist
Avatar
am i retarded or does it only support sharing from a url ?
Avatar
The ARK: Survival Evolved dedicated server has a wide variety of configuration options that control its behavior and adjust many aspects of the game. These are options that can only be set at server startup. Most options can be specified on the command line when launching the...
Avatar
yeah but then i would have to host my own txt banlist no ?
Avatar
i guess 😛
Avatar
GSH | MrOwlSky 12/3/2018 11:57 PM
Yeah would have to setup ur own url and use the same url for all asm paths
Avatar
Hey! I have a question, I'm trying to buy a PC for my servers. Would you recommend me a i7 8700k or a 9700k?
Avatar
9700k if you have the money
7:06 PM
imao 8700k isn't that impressive.
7:10 PM
Atleast when it comes to ark
Avatar
@Foppa what "cheap" motherboard do you recommend me for 9700k?
Avatar
you can stay with z370 series. There is small differences between z370 and z390
8:10 PM
I use this one: ASUS PRIME Z370-P II
8:10 PM
It's stable and have everything you need.
Avatar
Awesome, thanks!
Avatar
Trying to achieve the following, only steam id all I have. Is there anyway to get the position of that player, while not online? Also, anyway to get the AController of such a player (while not online)?
6:42 PM
good question
6:43 PM
spontaneously, no
Avatar
@Foppa are you still using the dll?
3:05 AM
i ran it for 8 hours on a test server saving each 4 seconds
3:05 AM
it failed to save 5 times out of like 1000
3:06 AM
and caused no corruption of any sort
3:06 AM
seems to be working fine
3:06 AM
how about for you?
3:07 AM
3:07 AM
anyways it'll be a plugin soon
3:07 AM
i managed to catch a null reference if one was thrown in SaveWorld
3:08 AM
using seh, that's why i can run SaveWorld on another thread
3:08 AM
if anyone wants to try it before Michidu approves it: https://github.com/ownprox/ArkServerApi/tree/master/Async%20SaveWorld
Plugins for Michidu Ark Server API: https://github.com/Michidu/ARK-Server-API/ - ownprox/ArkServerApi
Avatar
I had 0 issues so far!
Avatar
thats amazing
3:59 AM
and very weird too
3:59 AM
but also good
4:00 AM
i got about 5 failed saves
4:00 AM
in 1000 saves
4:00 AM
they dint corrupt or anything
4:00 AM
and the next save worked
4:00 AM
just i was saving every 2-4 seconds
4:00 AM
so i ran 8 hours of insane saving in a populated area of dino's dying
4:01 AM
it does work a treat though you don't notice server lagg during saves now
Avatar
Indeed!
4:06 AM
i will install this on all my servers, Amazing job! 😄
4:08 AM
I don't think someone will ever have a fail. Mostly ppl save between 15 and 30 min i think
Avatar
even if one save does fail it will try again
4:21 AM
at next save timer
4:21 AM
i managed to catch any exception caused
Avatar
maybe add a if fail retry?
Avatar
ill think about it later
4:21 AM
lets see how often it fails first
4:21 AM
if its like barely ever
4:22 AM
theres no point i guess
4:22 AM
but yeah certainly can rerun the save thread
4:22 AM
if a exception was caught
Avatar
just for the insurance! ^^
Avatar
well i just dont want to cause a loop
4:22 AM
of threads retrying to save
4:22 AM
haha
Avatar
hehe true
Avatar
so i guess ill have to give it like 2-3 retry's
4:23 AM
simple int counter
Avatar
If fail, wait 5 seconds, retry (edited)
Avatar
let me know how often you get fails
4:23 AM
then ill decide weather to do that or not
4:24 AM
maybe you wont get any
4:24 AM
i ran it for 8 hours it did like 1000 saves
4:24 AM
and i was saving each 4 seconds
4:24 AM
and only had 5 fails
Avatar
Not a single error so far.
Avatar
i was spam saving haha
Avatar
though, i have pretty fast disk as well
Avatar
in a popular dino area where dinos were dying
4:25 AM
im using m.2
Avatar
4x Raided ssd's
Avatar
raid 0?
Avatar
what speed you getting ?
Avatar
2000 ish
Avatar
like 2500 read
4:26 AM
ah
4:26 AM
can't run benchmarks now tho 😛
Avatar
i guess its quite good with small files
Avatar
compared to my m.2
4:26 AM
it might actually win
4:26 AM
in small file transfer
4:26 AM
your 4x raid may
Avatar
well it's like a load share between 4
4:27 AM
so i think.... it's better
Avatar
well say u had 4 bytes
4:27 AM
it would save 1 byte
4:27 AM
to each hd
4:27 AM
and repeat
4:27 AM
so your data is split into 4 parts
4:27 AM
thats why if 1 drive fails the rest are useless and need a wipe
Avatar
i got a dedi at home
4:28 AM
bought it recently
4:28 AM
put 2 ssd's in it
4:28 AM
sadly the hot plate
4:28 AM
is limited to 2.5 gbps (edited)
4:28 AM
so im like getting 0.7 speed of 1 ssd
4:28 AM
from 2x ssd in raid 0
4:28 AM
lol
4:29 AM
im waiting on a pcie card and a m.2 to show up
4:29 AM
and ill just whack 4x 15k sas drives in the caddy bay's
4:29 AM
2.5"
Avatar
and use those as save backups
4:30 AM
just incase my m.2 ever dies which would be unlikely
4:30 AM
they are better than ssd in life
4:30 AM
For sale is this high spec HP Proliant DL360 G7 1U Server. The server has passed all HP diagnostics. 48 GB DDR3 RAM (12 x 4GB MODULES). The server will be supplied with a power cable. NO OPTICAL DRIVE INSTALLED. | eBay!
4:30 AM
^^ i grabbed this for a pve cluster
4:31 AM
clock is low but supports 2x x5690's which are 3.57 ghz base (edited)
Avatar
that's decent
Avatar
and really really cheap
4:31 AM
lol
4:31 AM
4:31 AM
thats how my m.2 performs
4:31 AM
i wonder how 2x m.2 in raid 0 would be
4:32 AM
omg
4:32 AM
there
4:32 AM
i have it
4:32 AM
it's useless
Avatar
thats 2x m.2?
Avatar
Quite disappointed tbh
4:33 AM
yes
4:33 AM
brand new
Avatar
but are they the pro samsung ?
4:33 AM
because that one is good
4:33 AM
no
4:33 AM
i got something like taht
4:33 AM
but not that
4:33 AM
i paid 250
4:33 AM
for mine
Avatar
that's the same i think
Avatar
207.49 x 1 - Samsung 960 PRO Polaris 512GB M.2 2280 PCI-e 3.0 x4 NVMe Solid State Drive Sub-Total: 207.49 Shipping: 7.25 VAT: 42.95 Total: 257.69
4:34 AM
i recon you could easily get
4:35 AM
4k read and 3.5k write
4:35 AM
with 2 of these
4:35 AM
nice
4:35 AM
thats just 1
4:35 AM
no raid
4:35 AM
took that test from my own pc
4:36 AM
ah weirdly
4:36 AM
i got the 960
Avatar
This is the exactly the one i got
4:36 AM
Samsung 970 EVO Series MZ-V7E500BW 500GB Solid State-disk (SSD) - visar egenskaper. Det finns även priser från 43 butiker, 4 omdömen och 1 recension. Jämför Solid State-diskar (SSD) sida vid sida.
Avatar
Samsung 960 PRO Polaris 512GB M.2 2280 PCI-e 3.0 x4 NVMe
4:36 AM
yeah yours should be better (edited)
4:36 AM
you have the 970
4:36 AM
so why is x2 of them bad?
4:36 AM
is it your motherboard ?
Avatar
must be
4:37 AM
ASUS ROG Z370 ATX gaming motherboard with advanced cooling, Aura Sync, SupremeFX, dual M.2, Intel LAN and USB 3.1 for 8th Gen Coffee Lake.
Avatar
£116.67 x 1 - B Grade Asus ROG Strix Z370-H Gaming Intel Z370 (Socket 1151) DDR4 ATX
Avatar
this is my motherboard
4:37 AM
lol
4:37 AM
its almost the same as mine
Avatar
thats weird
4:38 AM
we basically have the same m.2 and motherboard
4:38 AM
lol
4:38 AM
just different versions
4:38 AM
lol
4:38 AM
thats sad i thought 2 m.2s would be better
4:38 AM
atleast i know not to rush into getting a 2nd one
Avatar
i have tried raided them differently.
4:39 AM
both by bios
4:39 AM
and in windows
Avatar
i guess there is no hardware raid (edited)
4:39 AM
for m.2's yet
Avatar
There is
4:39 AM
they use the same as regular SSD's
Avatar
i mean a actual pcie card
Avatar
same controller atleast
Avatar
or something
4:39 AM
ah
4:39 AM
isnt that soft raid?
4:40 AM
though
4:40 AM
that's hardware raid
Avatar
cause i know i have hardware raid in my dedi
4:40 AM
but i thought if i was to do raid on my pc i may need to either use soft raid or buy hardware
4:41 AM
maybe
4:41 AM
it's cause my controller is overloaded
4:41 AM
hahahah
4:41 AM
i have 3 raids
4:41 AM
1 SSD Raid = 2st Samsung Evo 850 250gb 2 Regular Disk Raid = 2 shit disks for large storage 3 M2 Raid = 2st Samsung Evo 970 500gb (edited)
4:41 AM
haha
4:43 AM
Time to get some sleep, GN!
Avatar
yeah perhaps have a good night
4:52 AM
or maybe its limited to a certain speed per port (edited)
4:52 AM
like my dedicated server's sas hot plate lol
Avatar
what would be the best way to have a domain name instead of server ip
Avatar
you can't
10:31 AM
ark does not resolve dns names
10:32 AM
unless they added it within the last 6 months
10:32 AM
i tried it a while back with a no-ip
10:32 AM
ark can't get the ip from it
10:32 AM
direct connection with the ip was working but dns was not
Avatar
that is pretty sad
Avatar
extremely for people without static ip's
Avatar
considering my isp can just switch my outbound ip at any time 😄
Avatar
wanna know the worse part
10:33 AM
each time your ip does change
10:33 AM
it can take up to 24 hours for your server to show up
10:33 AM
in the list afterwards
Avatar
AWESOME
10:34 AM
eh might as well try it anyway
Avatar
also if people have it favorited
Avatar
since i'm renting a godaddy domain
Avatar
i think it loses that too
Avatar
well yeah
Avatar
yeah just create a new a name and point it at your ip
10:34 AM
in the dns section
Avatar
yup
10:34 AM
gonna set up a subdomain
Avatar
or do that in cloudflare
10:34 AM
if you pointed name servers their already
Avatar
is cloudflare a better option ?
Avatar
well i use it to protect my site but it wont protect your server
10:35 AM
if anyone does a ping test
10:35 AM
on your sub domain it will return your ip
Avatar
hmm might as well try it with godaddy first
10:35 AM
to see if it works
Avatar
exacly
Avatar
alright gonna do that later
10:36 AM
thx
Avatar
if u start ark up
11:00 AM
with the argument
11:00 AM
+connect ip:port
11:00 AM
directly start the exe with that arg
11:00 AM
it will join to your server
11:01 AM
just make a bat file
Avatar
well yea but the thing is i want to make it so players still have my server in their favorites incase it resets
Avatar
ArkApi Creator Tool V1.2 Overview: this tool allows you to quickly generate hooks for in game server functions saving you a lot of time of having to lookup the argument's / structure's / class's manually. Features: On the fly c++ hook generation by selecting a function Auto...
12:22 PM
1.2 released
12:22 PM
fixed search bug now it will generate hooks properly
Avatar
wait a sec
12:48 PM
i already have a domain pointing to my server machine since i host my website from it
12:49 PM
so in theory if i use dopeark.com:27015 it will find it ?
1:32 PM
that's how it works
Avatar
hmm
1:41 PM
cant get it to work 😄
1:42 PM
made a subdomain @ server.dopeark.com
1:42 PM
and cannot find it by server.dopeark.com:27015
Avatar
you need to wait
1:42 PM
so the dns records are updated
1:42 PM
can take up to 24h
1:43 PM
test it after some hours
Avatar
alright
1:53 PM
will try after some time (edited)
Avatar
@OwnProx I don't have static ip and when it changes it takes 1 minute to show up in the list
Avatar
damn that must be a pain to move the whole playerbase though
6:03 PM
best way to host a txt file for a shared banlist ?
Avatar
also side question, which orp mod do you all use because i’ve used 2 so far and both seem to be pretty broken
Avatar
i dont actually know if ark refresh's the banlist url btw (edited)
6:39 PM
it might just read it 1 time at startup
Avatar
so the best solution still is to manually go over every server and send the ban command ? (edited)
Avatar
or make your own banlist / httprequest (edited)
6:40 PM
and find where ark stores banned players
6:40 PM
and compare
6:40 PM
and add any that are missing
Avatar
yeah but i was asking that how would i host a txt file 😃
Avatar
or maybe you can find the function thats used to get the data from the existing one
6:41 PM
on a webserver
6:41 PM
but problem is ingame ban
6:41 PM
would not write to the text file
6:41 PM
so youd manually have to add steam ids to it
Avatar
yeah it would have to manually updated
6:42 PM
hmm at least any file linking tool
6:42 PM
that works on the same machine ?
6:42 PM
i only know of microsoft synctoy
Avatar
you want to sync the banlist?
Avatar
ye
Avatar
cause that wont work either
6:42 PM
its only loaded at startup
6:43 PM
and then saved every time a new ban is added
6:43 PM
i think
6:43 PM
not 100% sure but thats how id do it
6:43 PM
you can try ban yourself
6:43 PM
copy the banlist to another server
6:43 PM
and see if your banned there too
6:43 PM
without restarting the server
6:44 PM
while its running then you know if it will work
Avatar
yeah not near my gaming pc till tomorrow noon haha
6:44 PM
btw @OwnProx you use any orp mod ?
Avatar
Not related to ArkServerAPI, but thought I'd ask. What RCON tool/software do you guys use ?
Avatar
Arkon
6:47 PM
ark server manager has a great rcon tool too but i wish it could be used without ark server manager itself 😃
6:54 PM
is quite good
Avatar
GSH | MrOwlSky 12/8/2018 6:58 PM
We been using the ASM rcon over on our side works good for us
Avatar
Thanx. I use ARKon as well. But I get now and then disconnects. I like the ASM RCON, but sadly no way to run it without ASM itself.
Avatar
Chuck Norris 12/8/2018 7:09 PM
hi
Avatar
yeah i noticed Arkon loses connection too sometimes
Avatar
GSH | MrOwlSky 12/8/2018 7:35 PM
Heard the battlemetrics RCON tool is amazing
Avatar
I want to send a notification to all online players meeting a certain criteria every 15mins. I see the use of ArkApi::GetCommands().AddOnTimerCallback() in ArkShop plugin. Any other methods ?
Avatar
not worth paying 10$ imo
Avatar
Hey all o/
8:19 PM
@Rogue Leader would it be possible for you to update the source code on github for the killfeed? It's an old version on there vs release. We wanted to do more work on it if that's ok
Avatar
Rogue Leader 12/8/2018 8:26 PM
I'm not the author of that code.
Avatar
@OwnProx & @Michidu are the developers you want for that @SirShaw
Avatar
Oh shit I tagged the wrong person lol
9:55 PM
I'm sorry
9:55 PM
@OwnProx
Avatar
Don't know what happened, I typed ownprox haha. Again, I'm sorry
Avatar
Anyone getting this spam in your Discord?
3:16 AM
Avatar
no even in my spam channel i dont have that crap
Avatar
@WETBATMAN LoadBannedList()
9:07 AM
in
9:07 AM
AShooterGameMode
9:07 AM
9:07 AM
just found it scrolling through this lol
9:08 AM
maybe when you call LoadBannedList() maybe it loads it from the url to
9:08 AM
no idea
9:10 AM
ah i looked the function up
9:10 AM
looked at the source code it only loads the file
9:41 AM
well i found it
9:42 AM
9:43 AM
and they do support refreshing
9:43 AM
if your ark server is official haha
Avatar
GSH | MrOwlSky 12/9/2018 1:50 PM
@Kamio We also were effected by that same troll.
2:24 PM
use something like this bot to automute users that spam
2:24 PM
i have links to other discords disabled with that bot on my discord server
2:25 PM
so if someone shares another discord link the bot hides it and mutes the user
Avatar
mee6 can does the same thing i guess and btw hello there👋
Avatar
mee6 has such a feature too ?
2:42 PM
hi btw
Avatar
Hey guys. Need a quick help. In the APrimalStructure_TakeDamage, how do you define if the structure is a player's own structure or it belongs to a tribes? As in whether a tribes structure or not. (edited)
Avatar
Rogue Leader 12/10/2018 5:35 PM
All structures have a tribe ID
5:35 PM
even solo non tribed player structures
Avatar
How to differentiate, that is where I'm having issues.
Avatar
i believe player id is a little shorter than the tribe one but need to check it
5:48 PM
but in Structure case, you can do it: int ownerPlayerId = _this->OwningPlayerIDField(); if (ownerPlayerId == 0) // Owner is tribe (edited)
Avatar
I already have that part. But that logic goes wrong in the following scenario.
  • A player joins server
  • Places a structure
  • Then makes a tribe
Now, when I debug that structure has a ownerPlayerIDField, but still is also a tribe structure. DEBUG: Hook_APrimalStructure_TakeDamage - damageReceiverPlayerID: 564558341
Avatar
hm, maybe you can use GetSteamIDForPlayerID, so if it return 0 then it's a tribe
Avatar
Yeah, that is a logic I can use it. Going to test it...
Avatar
Rogue Leader 12/10/2018 6:24 PM
I have a more logic oriented question for any experienced dev. I have a total of 10 booleans that can be set in a config file, and in my code I need to be able to compare those 10 config booleans to values retrieved in a hook. The problem I'm running into is that I can't think of an easy way to make the logic simple, vs compariong every single possible combination of config boolean states. e.g: Some of my config values: bool RequiresNotFollowing; bool RequiresPassiveFlee; bool RequiresIgnoreWhistle; bool RequiresNeutered; My inner hook variables: int following; bool passiveflee; bool ignorewhistle; bool neutered; (edited)
Avatar
but you need to do something different for every combination? Like if (RequiresNotFollowing && following) Do1(); (edited)
Avatar
Rogue Leader 12/10/2018 6:56 PM
I want the same result in the hook if the config options that are true are also true in the hook.
6:56 PM
Or at least their conditions met
Avatar
like that ? :) if ((RequiresNotFollowing && following) && (RequiresPassiveFlee && passiveflee) && (...)) Do1();
7:05 PM
ah, i got you, it won't work
Avatar
Rogue Leader 12/10/2018 7:08 PM
So like, it's hard to explain. If something in the config is set to true, I need to check its corresponding hook variable too, if all variables in the hook match what is true in the config, then do something. If a config variable is false, then ignore its corresponding hook variable value (edited)
7:09 PM
But any combination of the config variables can be set to true or false.
Avatar
bool config[10]; bool hook[10]; for (int i = 0; i < 10; ++i) { if (config[i] && !hook[i]) return false; }
Avatar
Rogue Leader 12/10/2018 7:13 PM
Damn! That just might work!
7:13 PM
Thank You! I'll test it out here soon.
Avatar
Rogue Leader 12/10/2018 9:45 PM
Another Question!: Is there a more efficient way of getting structures within a radius of a dino than looping through every structure on the map? //check for enemy structures nearby TArray<AActor*> AllStructures; UGameplayStatics::GetAllActorsOfClass(reinterpret_cast<UObject*> (ArkApi::GetApiUtils().GetWorld()), APrimalStructure::GetPrivateStaticClass(), &AllStructures); for (AActor* StructureActor : AllStructures) { if (StructureActor) { if (StructureActor->TargetingTeamField() > 0 && _this->TargetingTeamField() != StructureActor->TargetingTeamField()) { APrimalStructure* Structure = static_cast<APrimalStructure*>(StructureActor); if (FVector::Distance(_this->RootComponentField()->RelativeLocationField(), Structure->RootComponentField()->RelativeLocationField()) <= DinoPassiveProtection::MinimumEnemyStructureDistance) { isNotNearEnemyStructures = false; break; } else { isNotNearEnemyStructures = true; } } } }
Avatar
How about using the method used in ArkHomes. Functions GetNearbyStructuresCount, IsEnemyStructureNear and IsEnemyStructureNear uses such a method.
10:40 PM
@Rogue Leader
Avatar
Rogue Leader 12/10/2018 10:50 PM
Thanks! I'll look at that!
10:51 PM
@Michidu How's this look?//build config array bool configConditions[] = { DinoPassiveProtection::RequiresNotFollowing, DinoPassiveProtection::RequiresPassiveFlee, DinoPassiveProtection::RequiresIgnoreWhistle, DinoPassiveProtection::RequiresNeutered, DinoPassiveProtection::RequiresNoRider, DinoPassiveProtection::RequiresNoInventory, DinoPassiveProtection::RequiresNoNearbyEnemyStructures, true }; //build hook vars array bool hookActuals[] = { isNotFollowing, (isPassiveAggressive && isPassiveFlee), isIgnoringWhistles, isNeutered, hasNoRider, hasNoInventory, isNotNearEnemyStructures, isHealthAboveMin }; for (int i = 0; i < 8 ; ++i) { if (configConditions[i] && !hookActuals[i]) return APrimalDinoCharacter_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser); }
Avatar
ye, it looks great
Avatar
personally id use bitwise but its more complex to setup
Avatar
Rogue Leader 12/11/2018 11:53 PM
Any idea why this evaluates to true even when literally standing on an enemy structure? DinoPassiveProtection::MinimumEnemyStructureDistance is set to 10.0//check for enemy structures nearby TArray<AActor*> AllStructures; UGameplayStatics::GetAllActorsOfClass(reinterpret_cast<UObject*> (ArkApi::GetApiUtils().GetWorld()), APrimalStructure::GetPrivateStaticClass(), &AllStructures); for (AActor* StructureActor : AllStructures) { if (StructureActor) { if (StructureActor->TargetingTeamField() > 0 && _this->TargetingTeamField() != StructureActor->TargetingTeamField()) { APrimalStructure* Structure = static_cast<APrimalStructure*>(StructureActor); if (FVector::Distance(_this->RootComponentField()->RelativeLocationField(), Structure->RootComponentField()->RelativeLocationField()) <= DinoPassiveProtection::MinimumEnemyStructureDistance) { isNotNearEnemyStructures = false; break; } else { isNotNearEnemyStructures = true; } } } } (edited)
Avatar
Rogue Leader 12/12/2018 12:12 AM
Nevermind, it appears a foundation away is actually about 300 units of whatever that is. So 10 is always under it lmao (edited)
12:13 AM
So i just multiplied whatever is in the config by 300 so its about x amount of foundations away
Avatar
What is the best hook to use for when a player has joined the server as a total new player? And I want to send a notification to that player just after he spawns but with a small delay (so as to make sure he doesn't miss it). What method do you best suggest ?
Avatar
Rogue Leader 12/12/2018 5:09 AM
There's a handlenewplayer function. I think you can an example in arkshop or point rewards
5:11 AM
It doesn't particularly ONLY handle a new player, but it handles every player connecting to the server. Then you can query your db to see if they exist in it to determine if they are new.
Avatar
Rogue Leader 12/12/2018 7:26 AM
@Michidu Is it possible to add support for longer version numbers? I noticed when the version number in PluginInfo is 1.45, the api logs it as 1.5 in the console
Avatar
Anyone have got any code / suggestions to control the Gachas. They can literally give you high end stuff without much hassle.
12:37 PM
limit its crafting skill ^
Avatar
Thanx @WETBATMAN
6:12 PM
v1.4 Released Fixed structures that were not added because they had sub structures in them, Such as UWorld (edited)
Avatar
@OwnProx I'm trying to have your plugin Cross Server Chat setup on our cluster. But somehow, I'm not able to get it to work. Could you help out? 2 Servers, one is Rag and other is Extinction. Both configs have the same CrossChatKey, CrossChatMapNameInclude and CrossChatMapNameOverride is blank to use default map name. Each config RconServers has one entry of the other server RCON_IP:RCON_PORT I don't get any errors and it's not being transmitted to the other server as well.
Avatar
you running both servers kn the same machine ?
Avatar
Yeah, same machine.
Avatar
use localhost
5:06 PM
instead of putting in the real server ip just put in localhost and the rcon port
Avatar
@Rogue Leader yo you here?
Avatar
Rogue Leader 12/15/2018 8:35 PM
Yea I'm in this discord
8:35 PM
@Natsu r u there
8:35 PM
@Natsu
8:36 PM
let me pm you a question
Avatar
ty (edited)
Avatar
Rogue Leader 12/17/2018 10:19 PM
Looks like you need to convert your second argument from an FString to a std::string (edited)
Avatar
@Michidu it seems your paypal does not seems to work... i can't buy paid plugin 😉
Avatar
Deleted User 12/18/2018 3:39 PM
Hi, does anyone know which class or function I can look at to prevent c4 from being placed?
Avatar
it might be just paypal problems..
4:19 PM
@Deleted User you need structure placement hook
Avatar
@OwnProx why does your hook generator need admin permissions 😄
Avatar
Deleted User 12/18/2018 4:38 PM
@Michidu Thanks!
Avatar
it does not require me to run it as admin btw
4:53 PM
and i have uac on default options
4:53 PM
maybe right click it and properties and check if its blocked and unblock it (edited)
4:53 PM
might make it not require it
4:53 PM
i just remember when i downloaded some exe's / dlls from sites they get auto blocked in properties tab (edited)
4:54 PM
maybe its why its requiring admin
4:54 PM
i dont actually know dont have this issue
Avatar
WoolyPenguin 12/19/2018 7:28 PM
hook generator doesnt ask me for admin permission
Avatar
how does selling plugins work? i am going to quit hosting my ark server and want to sell my things 😃
Avatar
Deleted User 12/20/2018 12:28 PM
@Natsu it depend on if you want to make a private sell and support it on the forum or sell them as private plugins
12:28 PM
If it to sell multiplies copies on the forum well the best way is to secure your plugins using HWID
Avatar
one plugin req's a powershell script tough
12:29 PM
so that will be harder
Avatar
Deleted User 12/20/2018 12:30 PM
Send me a privave message with a list of your plugins i can be interest
Avatar
why a plugin would even require a powershell script?
Avatar
because ark-server api is crap
Avatar
why?
Avatar
i can list multiple reasons but i will keep it to myself i prob just release it all for free soon
Avatar
Probably not related to the API part, but just thought of asking. Ever after the last Ark update, my players are getting items with high boost quality. For example, my daily rewards plugin has min 5 and max 10 and it hardly spawns armors pieces above 500+ armor. But now even quality 5 is giving armor pieces with 600+ armor. Any reason why this maybe happening?
Avatar
Rogue Leader 12/20/2018 7:15 PM
@Natsu sharing the issues will help improve it.
7:17 PM
But you shouldn't need a PowerShell script. You could just add a command to the plugin that does whatever it does.
Avatar
@Rogue Leader its Ark-server api not arkapi :p
8:16 PM
so yes powershell script is needed
Avatar
Deleted User 12/20/2018 8:19 PM
he's using the power shell to communicate with Ark-servers website api
Avatar
Deleted User 12/20/2018 8:20 PM
Baiscly the plugins is working on the game part and the power sheel on the web part and both of them are communicating together
8:20 PM
if im not wrong
8:20 PM
xD
Avatar
ya i use a powrshell script for the communication but like i said i think il prob release it all into the public since i am done hosting
Avatar
Deleted User 12/20/2018 8:21 PM
why do you stop by the way ?
Avatar
Deleted User 12/20/2018 8:22 PM
wtf how can you get bored from ark admin problems lmao ?
8:23 PM
its like a new story every hour
Avatar
oh i dont do problems xD
8:23 PM
haha
8:23 PM
everything is automated
Avatar
Deleted User 12/20/2018 8:23 PM
Come on you dont have any drama toxic people or anything on your servers xD ?
Avatar
ofc but i have a trash talk channel for that and i mute them other wise
Avatar
Deleted User 12/20/2018 8:23 PM
how mush player average you have ?
Avatar
now? 0
8:23 PM
xD
Avatar
Deleted User 12/20/2018 8:23 PM
your record
Avatar
Deleted User 12/20/2018 8:24 PM
oh ok i see
8:24 PM
with 60 is quit calm yeah
8:25 PM
Dont give up ark is a good game and possibilites are unlimited
8:25 PM
just find your self a new goal
Avatar
na i am quite busy with work and dont need any fun in hosting anymore
8:26 PM
i dont play ark anymore at all and even if i did i never played on my server
Avatar
Deleted User 12/20/2018 8:27 PM
I see well good luck for the rest
Avatar
i can also release my mod >.>
Avatar
Deleted User 12/20/2018 8:29 PM
You have private mods ?
8:29 PM
ark UI for the shop
8:29 PM
so you dont need to use commands for all engrams and the shop
Avatar
WoolyPenguin 12/21/2018 8:46 PM
that's sweet natsu 😃
Avatar
Deleted User 12/21/2018 9:22 PM
he already leaved the discord xD
Avatar
Anyone have any tutorials or any key steps you can share, on how to accomplish the plugin sharing method. Don't know what it is called, but it is the function where you open your plugin for other plugins to use it. Like the shop plugin where you can use it on other plugins just by referring it. I'm having a little difficulty in understanding how it is done. Thanx in advance.
Avatar
WoolyPenguin 12/22/2018 3:14 PM
i think you can find an example of that in the arkshop
3:15 PM
ownprox added that to shop for his event plugin
Avatar
well setting up a tlas
6:59 PM
server was fun
6:59 PM
jk
6:59 PM
but i now have 4 regions running next to each other haha
6:59 PM
a5 - a7 and b6
Avatar
Deleted User 12/24/2018 7:47 PM
@OwnProx i managed to get a 2x2 working
7:47 PM
xD
Avatar
i used the 15x15
7:50 PM
lol
7:51 PM
i can add more servers as needed then
7:52 PM
i just dint configure all ips / servers lol
7:52 PM
just setup 4 of em
Avatar
Deleted User 12/24/2018 8:20 PM
Lol you have a 500core cpu or what
Avatar
are we gonna see atlas api ?
9:11 PM
😃
9:14 PM
merry Christmas to you all btw
Avatar
you too and everyone else
9:30 PM
no maticha i left the rest default wc ips it works fine and just shows my servers
Avatar
is atlas as much of a resource hog as ark ?
Avatar
Deleted User 12/24/2018 10:13 PM
@WETBATMAN yeah
10:13 PM
and merry christmas to everyone too
Avatar
damn no atlas for me 😕
Avatar
Deleted User 12/24/2018 11:18 PM
For the moment you dont miss anything lol
Avatar
Rogue Leader 12/25/2018 12:20 AM
We are already having 40 man battles on our little island (edited)
Avatar
Rogue Leader 12/25/2018 5:17 PM
Nice!
Avatar
GSH | MrOwlSky 12/25/2018 5:26 PM
Look at that sexy thing :P @Michidu
5:14 PM
my atlas servers are getting quite full (edited)
5:14 PM
hahaha
5:15 PM
last 3 are atlas
Avatar
tf
Avatar
i already dumped atlas headers
Avatar
man it’s quite popular (edited)
Avatar
send them to michidu
5:15 PM
to help with the new api
5:15 PM
cant wait for it
Avatar
oh so we’re gonna see atlas api ?
5:16 PM
very soon
Avatar
btw are you running atlas on the same machine ?
5:16 PM
all 3
5:16 PM
on a i7 4900
Avatar
whats the ram usage per server
5:16 PM
o rly
Avatar
2-3gb
5:16 PM
it was using 60% cpu
Avatar
damn thats nothing
Avatar
with no players
5:16 PM
now its still using the same amount
Avatar
eh 60% cpu is shit
Avatar
with players
5:17 PM
its like the players did not effect the usage
5:17 PM
each server idles at 20%
Avatar
hmm how many ark severs do you run on that machine ?
Avatar
i guess thats from all the usage
5:17 PM
i dont host any ark servers on that machine
5:17 PM
its just for atlas
Avatar
sad
Avatar
i host 3 atlas servers on a i7 4900
Avatar
i dont have a spare machine to build haha
Avatar
6 ark servers on a i7 7700k 5ghz oced
5:18 PM
6 ark pve servers on a dual xeon x5560
Avatar
ye but i’m hosting from home
Avatar
my xeon is at home
5:18 PM
the 7700 is ovh
Avatar
every time i rented a server i got bored and ditched it 😃
Avatar
and the 4900 soyoustart
5:19 PM
i got 25% off
5:19 PM
recurring discount
5:19 PM
christmas discount
5:19 PM
Rent a So you Start server to host your online games! Get high performance for popular games like Minecraft, Garry's Mod, CS:GO, Rust, and much more. Up to 64 GB RAM, SSD 480 GB
5:19 PM
just got a 32 gb
Avatar
cool
Avatar
hmm i gotta upgrade my ark rig first
Avatar
btw i meant all servers idled at 68%
5:20 PM
they were when noone was online
Avatar
oh that makes sense
Avatar
so its gone up 1-2%
5:20 PM
in 3 days
Avatar
so how is atlas
Avatar
its mainly the npcs using this much
5:20 PM
i think
Avatar
have you played it yet ?
Avatar
ofcourse
5:20 PM
its good
Avatar
GSH | MrOwlSky 12/27/2018 5:20 PM
We're doing 9 servers on ours and CPU is capped out lol
5:20 PM
For atlas
Avatar
just annoying
Avatar
man i was on vacation this week and havent had a chance to touch it
5:21 PM
i’m at the airport atm
Avatar
GSH | MrOwlSky 12/27/2018 5:21 PM
Should get it @WETBATMAN
Avatar
GSH | MrOwlSky 12/27/2018 5:21 PM
Very fun game
Avatar
i know what you mean
5:21 PM
hahaha
Avatar
GSH | MrOwlSky 12/27/2018 5:21 PM
My CPU is 100% lol
Avatar
your host 9 atlas?
Avatar
GSH | MrOwlSky 12/27/2018 5:21 PM
3x3 grid 9 servers
Avatar
you can put the server fps down
5:21 PM
you know
5:21 PM
to make them use less cpu
Avatar
GSH | MrOwlSky 12/27/2018 5:21 PM
and it runs great but the box is CPU maxed
Avatar
per server
5:21 PM
capp there fps
Avatar
GSH | MrOwlSky 12/27/2018 5:22 PM
How?
Avatar
GSH | MrOwlSky 12/27/2018 5:22 PM
[/script/onlinesubsystemutils.ipnetdriver] NetServerMaxTickRate=15 I added that
5:23 PM
Avatar
in enggine
5:23 PM
[/script/engine.renderersettings] t.maxfps=20 (edited)
5:23 PM
maybe it helps
5:23 PM
and maybe nerf some npc spawns
Avatar
GSH | MrOwlSky 12/27/2018 5:23 PM
does max fps block max fps in game for players?
Avatar
theres soo many on atlas
5:23 PM
no
5:23 PM
server side fps
Avatar
GSH | MrOwlSky 12/27/2018 5:23 PM
Gotcha yeah let me add that
5:24 PM
How do we nerf NPCs?
Avatar
i guess like ark
5:24 PM
not sure
5:24 PM
some of my servers have like
5:24 PM
200 horse's
5:24 PM
running around on the beachl
5:24 PM
lol
5:24 PM
more even
Avatar
GSH | MrOwlSky 12/27/2018 5:24 PM
goodness
Avatar
lol
Avatar
its full of npc's
Avatar
you guys ever heard of annunaki squid overspawn ?
Avatar
too many
Avatar
they spawn hundreads in one spot
Avatar
you meanat rag?
5:25 PM
mean*
5:25 PM
i had many complains
Avatar
any server with annunaki
Avatar
of squids killing people
5:25 PM
oh no
5:25 PM
i dint have mods
5:25 PM
but at one point the spawns were high
5:25 PM
for squids
5:26 PM
i had soo many complaints of ppl dieing to them
Avatar
thing is you lower squids then something else overspawns
Avatar
Deleted User 12/27/2018 6:44 PM
6:44 PM
484 player online (edited)
Avatar
GSH | MrOwlSky 12/27/2018 7:44 PM
How is ur CPU so low? @Deleted User
Avatar
Deleted User 12/27/2018 8:00 PM
i have no clue xD
Avatar
atlas
9:12 PM
doesnt seem to effect cpu with players as much as ark does
9:12 PM
where are you renting your ryzen 7?
9:12 PM
last one i rented got kernal power failures
9:12 PM
each time cpu was at 80%
9:12 PM
and crashed the os
9:12 PM
at ovh
Avatar
Deleted User 12/27/2018 9:13 PM
This one is running smooth as fuck xD
9:13 PM
even better than my i7 8700k
9:13 PM
i think im going to move all my machines to ryzen
9:14 PM
And Atlas saves are so smooth too
9:14 PM
you dont even feel them
Avatar
its from ovh?
10:16 PM
Unsere AMD Premium Server basieren auf den Neusten AMD Technologien. So stehen Ihnen die AMD Ryzen CPUs der Generation 5 und 7 sowie die AMD ThreadRipper CPUs in unseren Mietserver / Rootserver Angeboten zur Konfiguration zur Verfügung.
10:16 PM
AMD Ryzen TR 1950X CPU: 3,4 Ghz - 16 Cores / 32 Threads
10:16 PM
i want to get this
10:17 PM
can you imagine how many altas servers
10:17 PM
we can run with this
10:17 PM
lol
10:17 PM
atleast 8-16 (edited)
10:19 PM
also @Deleted User you need to upgrade that to 64 gb ram badly
10:19 PM
all those servers will easily eat away at your free ram
Avatar
Deleted User 12/27/2018 10:20 PM
i can updrade it when ever i want
10:20 PM
but im saving money xD
10:20 PM
dont need more atm
Avatar
where did u buy it?
Avatar
Deleted User 12/27/2018 10:24 PM
A gernman compagny
10:24 PM
Myloc
Avatar
ah yeah used them before
10:25 PM
sub company of srvdiscor / webtopia
Avatar
Deleted User 12/27/2018 10:25 PM
yeah
Avatar
did you pay for windows ?
10:26 PM
or use resue mode
10:26 PM
haha
Avatar
Deleted User 12/27/2018 10:26 PM
Kvm
10:26 PM
i dont pay windows xD
Avatar
i thought kvm is optional
10:26 PM
you have to pay
10:26 PM
for it
Avatar
Deleted User 12/27/2018 10:26 PM
I asked them for one for free
10:26 PM
cried a little on the phoine
10:26 PM
and thats it
Avatar
oh nice
Avatar
Deleted User 12/27/2018 10:26 PM
xD
Avatar
i think i can install windows by rescue mode
10:27 PM
anyway w/o kvm
10:27 PM
its just harder haha
Avatar
Deleted User 12/27/2018 10:27 PM
yeah there is probably a solution
Avatar
im soon to setup
10:29 PM
remote servers hahaa
10:30 PM
using a the redis db remotely
10:30 PM
should be fun
10:30 PM
i got a friend who has a dedi at his house i can use
10:30 PM
with semi decent internet
10:30 PM
so im gonna link that to my already running atlas servers
10:30 PM
hopefully it goes well
10:30 PM
using the database remotely lol
Avatar
lmao why does atlas cost 6$ for me
Avatar
Deleted User 12/27/2018 11:03 PM
@OwnProx im going to the same soon with redis i want to use linux version of redis and try to link it with my atlas server
11:03 PM
cause i need master and slave on the db
11:03 PM
to try something
Avatar
what is the real install size for atlas ?
Avatar
client or server?
Avatar
client
Avatar
@Deleted User good idea dint think of using linux to host my db
11:11 PM
like
11:11 PM
96gb
Avatar
damn bro i have to sacrifice my hashcat wordlists ;d
Avatar
Deleted User 12/28/2018 3:56 PM
Are there any ark devs here?
3:56 PM
I have a question about their game
Avatar
i wish we could get stuff added to the game for the api then haha server sided gui drawing for instance
4:47 PM
believe if they were here theyed be getting request's haha
Avatar
Deleted User 12/28/2018 5:21 PM
Me i would ask them to sell the company to a real one xD with real devs
Avatar
Rogue Leader 12/28/2018 5:44 PM
Maybe they just bought it from someone then published it
9:28 PM
people are still joining
9:28 PM
ffs
Avatar
Already converting all my plugins to work for atlas
12:18 AM
we should see a Api for both ark and atlas
Avatar
GSH | MrOwlSky 12/29/2018 1:53 AM
Looking sexy
Avatar
if anyone wants / needs it
2:15 AM
2:18 AM
2:19 AM
ill add the updating feature later am tired and yeah it says ark i ported my ark manager over hahaha need to change those strings (edited)
2:19 AM
it can boot your servers when they crash
Avatar
Right click -> Add Server
2:32 AM
to add one
Avatar
Rogue Leader 12/29/2018 2:34 AM
Has Mich released the API publicly yet?
Avatar
no, i guess today sometime (edited)
Avatar
Ty @OwnProx for sharing!
Avatar
Deleted User 12/29/2018 11:17 AM
@OwnProx i was reading it and im already tired lmao
Avatar
just a quick heads up if you're running s+ on your server remove the tek mutator as it allows you to breed dinos without a gender even if you have that .ini option disabled...
Avatar
Deleted User 12/29/2018 11:36 AM
yes there is one
11:36 AM
wait
11:38 AM
MutatorModeBlacklist : AllowBreeding
11:38 AM
@WETBATMAN
11:38 AM
on my server its working
11:38 AM
people cant breed
Avatar
if you pulse once you can switch really quick
12:03 PM
so pulse with something like gender switch and while its doing that if you're really quick you can switch to allow breeding and it will work
Avatar
@OwnProx
2:04 PM
turns out domain redirecting works!
Avatar
ahh you mean nat loopback?
6:03 PM
try that with atlas hahaa
Avatar
no its an A name redirect
6:04 PM
perfect for me since i do have a static ip but it can change
8:09 PM
seems like people are going back to ark
8:09 PM
last 3 are atlas haha
Avatar
@OwnProx Add to PM
10:06 PM
10:06 PM
here's my server monitor it will beep if your servers go down add your servers to Servers.conf
10:06 PM
edit that file with any text editor NotePad++ is a good one
10:06 PM
it uses query ports
10:07 PM
and if you press esc on the program it stores it here
10:07 PM
10:45 PM
Atlas Server Manager source code
10:46 PM
needs some more tlc though haha. (edited)
Avatar
GSH | MrOwlSky 12/30/2018 2:16 AM
Epic stuff
6:47 AM
able to rcon multiple servers at the same time 😃 defined in the text file (edited)
7:00 AM
Avatar
@OwnProx / @Michidu How about bringing RCON function to load and unload plugins to ArkServerAPI. Would be very helpful, plus could use the above RCON tool by OwnProx on our Ark clusters as well.
Avatar
Deleted User 12/30/2018 2:23 PM
it coming soon i think
Avatar
yes, added to the new version
👍 1
Avatar
Deleted User 12/30/2018 2:27 PM
Avatar
All blueprint paths for atlas
Avatar
new ver of Atlas BPS:
12:27 AM
12:27 AM
have not tested
2:27 AM
if anyones got any suggestions of notices any typo's lemme know
Avatar
hey everyone, i just want to wish you all a happy new year let this year be like no other for us and anyone else
9:24 PM
friends
9:24 PM
@everyone
Avatar
thanks you too have a good one everyone
9:52 PM
Atlas api was released
9:52 PM
btw
9:52 PM
+ source code
9:52 PM
at forum
Avatar
Deleted User 12/31/2018 10:04 PM
Happy new year to all of you
10:07 PM
There is new year for me to its just another random one lmao
Fire 1
Avatar
Hello, i'm trying to compile ArkShop to Atlas i think i have all good, I've removed the Kits from the plugin and i'm now trying to find this that i belive it is a Hook from Atlas so i came here to ask for help. https://i.imgur.com/tdyGiy4.png
11:36 PM
@deleted-role @deleted-role
Avatar
maybe post the whole piece of code that's giving you issues ?
Avatar
is that file
12.88 KB
11:40 PM
i'm new at this btw
Avatar
post to pastebin its easier to see the code that way...
Avatar
#include "AtlasShop.h" (edited)
Avatar
that was named arkshop.h
Avatar
did you change the actual name of the dependency fine ?
Avatar
yeah
11:43 PM
i've changed
11:43 PM
i changed both file name and inside the file itself
Avatar
you removed the kit side of the plugin ye ?
11:47 PM
something in there
11:47 PM
i belive that there are too many arguments
Avatar
player_controller->GiveItem(&out_items, &fblueprint, default_amount, quality, force_blueprint, false, 0);
Avatar
as it says
Avatar
well see default_amount is a kit sided check
Avatar
oh rigth
11:48 PM
so i just need to remove it ?
Avatar
well if you're not using kits
Avatar
it still has too many arguments 😦
Avatar
hmm not sure sorry haven't messed around with arkshop's source
Avatar
thanks anyways
Avatar
@Michidu or @OwnProx might be able to help you
11:51 PM
start removing arguments that are related to kits and eventually you will get there 😄
11:52 PM
is force_blueprint still underlined with red ?
Avatar
Rogue Leader 12/31/2018 11:53 PM
You'll have to look at the header file that has the original function in it and see what parameters it takes
11:54 PM
Specifically the function GiveItem() in the AShooterPlayerContoller class
11:54 PM
I think in the arkapi it was in Actors.h
Avatar
@Rogue Leader the header file from the kits ?
Avatar
no from api's public folder
Avatar
yeah but now i have two of them.. Atlas one and ARK one ?
11:57 PM
wich one i have to check ?
Avatar
well you're porting for atals so check the atlas one
11:58 PM
//bool GiveItem(FString * blueprintPath, int quantityOverride, float qualityOverride, bool bForceBlueprint) { return NativeCall<bool, FString *, int, float, bool>(this, "AShooterPlayerController.GiveItem", blueprintPath, quantityOverride, qualityOverride, bForceBlueprint); } //bool GiveItem(FString * blueprintPath, int quantityOverride, float qualityOverride, bool bForceBlueprint) { return NativeCall<bool, FString *, int, float, bool>(this, "AShooterPlayerController.GiveItem", blueprintPath, quantityOverride, qualityOverride, bForceBlueprint); }
11:58 PM
this seems to be ark's GiveItem function
Avatar
Rogue Leader 1/1/2019 12:00 AM
The ArkAPI files won't work with atlas, so you'll have to use the atlas api files if you're writing an atlas plugin
Avatar
its literally like 3-4 functions that changed
12:01 AM
porting old plugins is easy
Avatar
by what i can understand its right
Avatar
you want to be spoon feed
12:01 AM
player_controller->GiveItem(&fblueprint, default_amount, quality, force_blueprint);
12:02 AM
theres a spoon
12:02 AM
enjoy 😃
Avatar
he took out kits though so wont default_amount break it ?
Avatar
Deleted User 1/1/2019 12:03 AM
Item has also a default amount
Avatar
im sure he can fix his own arguments
12:03 AM
lol
12:03 AM
when he sees the compiler error
Avatar
Deleted User 1/1/2019 12:03 AM
if im not wrong
Avatar
fair enough
12:04 AM
dont think so as defaultAmount is the config option in kits
12:05 AM
Avatar
Deleted User 1/1/2019 12:05 AM
Oh
12:06 AM
Me ill just wait dont have enough IQ
12:06 AM
i loose more IQ each new year
Avatar
how do u know it was a kit?
12:08 AM
that i copied my example from
12:08 AM
cause it wasnt
12:08 AM
Avatar
Deleted User 1/1/2019 12:08 AM
See omg
12:08 AM
i still have enough Iq
12:08 AM
IQ
12:09 AM
Im happy didn't lost too mush this year xD
Avatar
no i said that @birotes. mentioned he stripped the kit part and i was thinking that Default_amount is just a variable name for the kit config
Avatar
yeah he is right
12:09 AM
cause i found it on Kits Header
12:10 AM
i will just share it to you guys since i don't even have a Atlas Server yet 😃 u guys can test it 😃
12:10 AM
the Kits i removed cause wasn't working
Avatar
it does work
12:10 AM
well in my port of shop atleast (edited)
12:11 AM
ported shop 2 days ago
Avatar
yeah i'm just dumb 😃 (edited)
12:11 AM
my first port and my first time at c++
Avatar
you're not dumb lol we all gotta start somwhere
Avatar
I'm on basics of C
12:11 AM
taking programming course i'm at C loops
12:11 AM
😃
Avatar
but i want you to fix it yourself (edited)
12:12 AM
to learn 😃
Avatar
i will
12:12 AM
try out with kits
12:12 AM
i will fix
Avatar
i'm no expert in this stuff either but i try to improve myself
12:12 AM
have nothing to do until there
12:12 AM
i started making this
12:12 AM
btw
Avatar
i know
12:12 AM
it was helpful
Avatar
yeah i saw @OwnProx
Avatar
also @OwnProx Check PM i need to talk with you about something else
Avatar
!bsk193Today at 23:07 i will check that
12:13 AM
i dint get a msg ?
12:13 AM
since then
Avatar
oh boy i bought a used i7 4790k
12:15 AM
hope it does well with server hosting
12:16 AM
😛
Avatar
Happy new year😍
Avatar
happy new year to you too @Foppa
Avatar
Deleted User 1/1/2019 12:23 AM
12:23 AM
im gonna take this in 2 days
12:23 AM
Home i will succed to overclock that shit to more than 5.0
Avatar
that's for a server ?
Avatar
Deleted User 1/1/2019 12:24 AM
yes
Avatar
holy shit my dude
Avatar
Deleted User 1/1/2019 12:25 AM
Im planning on buying 2 or 3 like this one this year
12:25 AM
but i start with this one to test if its enough or if i need to go on bigger
Avatar
bigger ?
Avatar
Deleted User 1/1/2019 12:26 AM
Right now im testing a 1700x and it hosting 8 atlas server
Avatar
what the fuck my dude you want a nasa supercomputer at home ?
Avatar
Deleted User 1/1/2019 12:26 AM
I have 18 server xD
Avatar
ark ?
Avatar
Deleted User 1/1/2019 12:26 AM
6 ark 12 atlas
12:27 AM
i need to reduce the money that i pay each month to rent machines
Avatar
rackservice.org has some nice deals
12:27 AM
Wholesale Internet, Kansas City's premier internet services provider.
12:27 AM
same with this site but its always sold out 😄
Avatar
Deleted User 1/1/2019 12:27 AM
i already have good deals xD
12:27 AM
i dont want to rent anymore
Avatar
yeah man hosting from home rocks
12:28 AM
except when your isp decides to randomly cut your internet connection when you're on vacation
Avatar
Deleted User 1/1/2019 12:28 AM
I have 2 x 1gigs
12:28 AM
from 2 different Isp
12:28 AM
and Unlimited 4Go
Avatar
lmao i had 40 mb and they decided to cut the internet when i was on vacation
12:29 AM
and they had the audacity to request for me to restart the router
12:29 AM
when i was on vacation
12:29 AM
...
Avatar
Deleted User 1/1/2019 12:30 AM
It been 2 years that i have my lines
12:30 AM
never got any problem
Avatar
fastest i have in my country is 100mb
Avatar
Deleted User 1/1/2019 12:31 AM
next year i will be able to take 10Gigs
12:31 AM
using my company name
12:31 AM
lmao
Avatar
well good luck with your servers man
12:32 AM
i'm fucking tired gonna get some sleep
Avatar
Deleted User 1/1/2019 12:32 AM
On the worste case i keep it for me lmap
Avatar
lel
12:33 AM
i had a 1 gigabit rented before and it downloaded ark in like 1 min
12:33 AM
imagine 10gb
12:33 AM
...
Avatar
Deleted User 1/1/2019 12:33 AM
I need 10gigs to play monecraft 0ping lmao
Avatar
or host it at your own pc
Avatar
Deleted User 1/1/2019 12:34 AM
I think 10gigs its useless
12:34 AM
But if its cheap why not
12:34 AM
I pay 24euro for 1gigs atm
Avatar
im paying like 30
12:34 AM
for 60 mbits down
12:35 AM
12 mbits up
Avatar
Deleted User 1/1/2019 12:35 AM
Symitrique line for ever
Avatar
Deleted User 1/1/2019 12:35 AM
Yeah its working good
Avatar
i had about 60 earlier
12:36 AM
overall players connected to my home network
12:36 AM
12:36 AM
then i have this running my redist server remotely
12:36 AM
at soyoustart
Avatar
Deleted User 1/1/2019 12:37 AM
I hate soyoustart
Avatar
its nice cheap dedi's
12:38 AM
setup fee's suck
12:38 AM
it was better b4 them
Avatar
Deleted User 1/1/2019 12:39 AM
I brought a new ryzen 1700x
12:39 AM
I will receiv it in 2 days lool
Avatar
nice
Avatar
Deleted User 1/1/2019 12:39 AM
Fast delevery
Avatar
free kvm?
Avatar
Deleted User 1/1/2019 12:39 AM
Not this time lmao
12:39 AM
I will use rescue mod
Avatar
ah yeah maybe a sys / ovh made gzip
12:43 AM
windows archieve (edited)
12:44 AM
will work
Avatar
@Deleted User are all dedicated servers at Webtropia 2 days delivery time ?
Avatar
Deleted User 1/1/2019 12:44 AM
No
12:44 AM
Its holidays lol
Avatar
A donation, either small or big, is very much appreciated and will go towards the development of up to date and new Windows Templates. Below are the download links including the commands to install…
12:44 AM
else you may have to use good old qemu to install the os (edited)
Avatar
okay
Avatar
but those archieved joodle gzips are nice
12:47 AM
save soo much time
Avatar
Deleted User 1/1/2019 9:31 AM
thanks for the link lmao
Avatar
@OwnProx if i change my cpu does advanced chat have to be reactivated ?
Avatar
Deleted User 1/1/2019 9:50 AM
yes i think
9:51 AM
THE CPU will probably change your HWID
Avatar
i hope its attached to the motherboard
Avatar
Deleted User 1/1/2019 12:55 PM
Its probably attacked to the CPU MOTHERBOARD and RAM
Avatar
nah i swapped ram before and it didnt change the id
1:02 PM
proper hwid's are only motherboard or motherboard + cpu
Avatar
Deleted User 1/1/2019 1:03 PM
my bad
1:03 PM
ram cant be use
1:04 PM
Avatar
what's that 😛
Avatar
Deleted User 1/1/2019 1:32 PM
Its a tool that allowed to lock dll and stuff
1:32 PM
with HWID
Avatar
wait dont you have to actually add hwid detection into your plugin ?
Avatar
Deleted User 1/1/2019 1:35 PM
You can add it in the code or use a tool that do it
1:35 PM
But it both case you will need to add a HWID generator in the plugin code
1:35 PM
so people can get it and give it to you
Avatar
what if you hook the plugin and force the hwid 🤔
Avatar
Deleted User 1/1/2019 1:43 PM
Im not a pro on does things
1:44 PM
But this tools is very secure
Avatar
it cant be
1:44 PM
you're checking hwid offline
1:44 PM
(for plugins that is)
Avatar
Deleted User 1/1/2019 1:48 PM
Here is the pro
1:48 PM
he will explain to you
1:48 PM
xD
Avatar
You would need to hook multiple functions and reverse hwid generating algorithm, so it's not that easy. However, plugins protected by DRM system like that are not allowed on the forum.
Avatar
yeah but would hooking the function that unloads the plugin if its not activated and replacing it with a function that happens when its activated work ?
Avatar
If you talk about Themida, then it adds its own checks (loader), so no, hooking unload function would do nothing because dll is not even fully loaded at that point. (edited)
Avatar
right
1:56 PM
but for example
1:56 PM
i know my hwid already
1:56 PM
and i try to hook the function detecting the hwid
1:57 PM
ah nvm had something in my mind
Avatar
there are many functions which can be used to build hwid
2:00 PM
dont think you can know your hwid, because it depends on how you generate it
Avatar
plugins print it 😄
Avatar
if you know how exactly plugin generates it, you can do something 😃
Avatar
no i was saying like i know the hwid one of my plugins generates
2:01 PM
not like i know my systems hwid 😄
2:01 PM
ofc that can vary depending on the detection algorithm
2:02 PM
so if you get your hands on the hwid generation mechanism you can inject into it (edited)
Avatar
sure you can
Avatar
yeah but can arkapi hook into other plugins ?
Avatar
they are running inside one memory space, so yeah
Avatar
is hooking plugin functions the same as ark functions ?
Avatar
not really, even if you got a pdb from plugin, you would need to modify hooking class anyway..
Avatar
so this is the hard way basically 😄
Avatar
it's not very hard if you can find a needed function
Avatar
so if the dll is decompiled to some degree it gets easy ?
Avatar
yeah
Avatar
time to learn IDA i guess...
Avatar
do you want to crack or protect something? 😄
Avatar
just dicking around 😄
Avatar
Advanced chat no dout
3:00 PM
hahaha
3:01 PM
look its already been attempted a guy failed, and i agree with Michidu its not hard to bypass i did not actually spend time preventing it
3:01 PM
but if you have no reversing knowledge, no point trying
3:02 PM
id suggest downloading examples and reverse engineering guides and learn the basics before trying to crack something you have no idea about haha
Avatar
Deleted User 1/1/2019 3:04 PM
i suggest payinbg 15 dollar easy pizy
3:04 PM
xD
Avatar
naw its not advanced chat 😄
3:32 PM
learning with actually accomplishing something is better though
3:32 PM
@OwnProx so will swapping the cpu change the hwid ?
Avatar
dont think so
3:34 PM
cause im 95% sure i authed u under hwid1
3:34 PM
it doesnt use cpu
Avatar
wait does it have to match both or just one ?
Avatar
Deleted User 1/1/2019 3:35 PM
@OwnProx check private messages
Avatar
Anyone was able to get the Permissions plugin working on Atlas ?
Avatar
Deleted User 1/2/2019 8:58 AM
any new thing ?
8:58 AM
Oh updates
Avatar
i wish ark server manager could restart servers if they crashed 😦
Avatar
Deleted User 1/2/2019 9:26 AM
he can
9:26 AM
if you know how to make the crash dialog close auto
9:27 AM
If the restart if shutdown on asm is activated
9:28 AM
it will restart the server
9:28 AM
but if the crashdialog still open asm dont detect the server as off
Avatar
yeah that's the problem 😄
Avatar
Deleted User 1/2/2019 9:41 AM
you can create a script to kill them
Avatar
yea i've heard ownprox has a script that queries the server and kills it if it does not respond
Avatar
Deleted User 1/2/2019 9:52 AM
Dunno about ownprox to be honest
9:52 AM
but he probably have even better than that xD
Avatar
i have been working on that too (edited)
1:27 PM
You can trigger a restart
1:27 PM
by a check trough rcon
1:27 PM
but yeah basically as you wrote about ownprox script
Avatar
yeah but the thing is rcon isnt a reliable source
1:30 PM
it drops connection
1:32 PM
best way to check would be to query the server
1:32 PM
like steam does
Avatar
Deleted User 1/2/2019 1:35 PM
He shared that
Avatar
Deleted User 1/2/2019 2:36 PM
@OwnProx im testing the rescue mod lol
Avatar
what are you attempting to do 😄
Avatar
Deleted User 1/2/2019 2:47 PM
Installing windows 10 on a server lmao
Avatar
lol
2:47 PM
dont forget to turn windows updates off for good
Avatar
Deleted User 1/2/2019 2:48 PM
I just want to install windows 10 cause i dont want to pay a KVM
2:48 PM
this way i will be able to overclock the cpu without access to the bios
2:48 PM
xD
Avatar
wait is that a rented server ?
Avatar
Deleted User 1/2/2019 2:54 PM
yes xD
2:54 PM
if it was at home i will install windows easy pizzy xD
Avatar
@Michidu I see that you have updated the API to API v3.0, specially targeted to Atlas. Is this now safe and stable for Ark usage ?
Avatar
yes, just voterewards won't work for now
Avatar
@OwnProx i think the teleportation in DeathMatch is broken some players receive the items but never get teleported and some win the deathmatch and get stuck in the arena
Avatar
weird because i actually added a distance check to make sure they were teled
Avatar
i have my deathmatch spawn points set to the boss arena
10:09 AM
could that mess with anything ?
Avatar
@Michidu Tried to build v3.0, but getting errors. Creating library ArkApi\Ark Server API\x64\Release\ArkApi.lib and object ArkApi\Ark Server API\x64\Release\ArkApi.exp Requests.obj : error LNK2001: unresolved external symbol __imp_curl_multi_remove_handle Requests.obj : error LNK2001: unresolved external symbol __imp_curl_multi_add_handle Requests.obj : error LNK2001: unresolved external symbol __imp_curl_global_init Requests.obj : error LNK2001: unresolved external symbol __imp_curl_multi_info_read Requests.obj : error LNK2001: unresolved external symbol __imp_curl_global_cleanup Requests.obj : error LNK2001: unresolved external symbol __imp_curl_easy_init Requests.obj : error LNK2001: unresolved external symbol __imp_curl_multi_init Requests.obj : error LNK2001: unresolved external symbol __imp_curl_easy_cleanup Requests.obj : error LNK2001: unresolved external symbol __imp_curl_easy_setopt Requests.obj : error LNK2001: unresolved external symbol __imp_curl_multi_perform ArkApi\Ark Server API\x64\Release\version.dll : fatal error LNK1120: 10 unresolved externals
Avatar
do you have libs folder too?
Avatar
Yup
Avatar
and did you choose Ark or Atlas configuration?
Avatar
Ark
11:35 AM
wait... let me try that again...
11:42 AM
Succeeded, I cloned the repo again and worked. But with a lot of warnings on libcurl.lib side. libcurl.lib(asyn-thread.obj) : warning LNK4099: PDB 'libcurl.pdb' was not found with 'libcurl.lib(asyn-thread.obj)' or at 'ArkApi\Ark Server API\x64\Ark\libcurl.pdb'; linking object as if no debug info libcurl.lib(base64.obj) : warning LNK4099: PDB 'libcurl.pdb' was not found with 'libcurl.lib(base64.obj)' or at 'ArkApi\Ark Server API\x64\Ark\libcurl.pdb'; linking object as if no debug info libcurl.lib(conncache.obj) : warning LNK4099: PDB 'libcurl.pdb' was not found with 'libcurl.lib(conncache.obj)' or at 'ArkApi\Ark Server API\x64\Ark\libcurl.pdb'; linking object as if no debug info libcurl.lib(connect.obj) : warning LNK4099: PDB 'libcurl.pdb' was not found with 'libcurl.lib(connect.obj)' or at 'ArkApi\Ark Server API\x64\Ark\libcurl.pdb'; linking object as if no debug info libcurl.lib(content_encoding.obj) : warning LNK4099: PDB 'libcurl.pdb' was not found with 'libcurl.lib(content_encoding.obj)' or at 'ArkApi\Ark Server API\x64\Ark\libcurl.pdb'; linking object as if no debug info Should these be an issue?
Avatar
Cool, thanx
Avatar
Deployed v3.0 on one of my clusters. Running smooth so far no errors. Really handy the rcon unload and load of plugins. Thanks @Michidu @OwnProx
👌 1
Avatar
is there a way to find the list of spawners a map uses from game files ?
Avatar
Deleted User 1/3/2019 9:57 PM
spawners ?
Avatar
This page holds the list of Spawn Entry Class names for the official maps (i.e.: The Island, The Center, Scorched Earth, Ragnarok, and Procedurally Generated ARKs). These values can be used in the Server Configuration to change the spawn behavior of a server using the configu...
Avatar
Deleted User 1/3/2019 10:01 PM
Oh
Avatar
anyone actually tried setting severs up behind AnyCast?
5:29 AM
would be very interesting to try
5:29 AM
i mean game servers not http
5:30 AM
i cant setup a anycast in 3 world locations and then setup a open vpn service to tunnel data to a remote server
Avatar
Whats the code / function to get the exact of the RCON command listplayers through API ? Can't seem to find any, or I'm looking with the wrong keywords. (edited)
Avatar
you want to call listplayers from api?
Avatar
damn this i74790k is a beast
5:41 PM
although i think my temps are a bit high
5:42 PM
i have the corsair h60i or whatever, its just a one fan radiator
5:42 PM
60 Celsius at 40% load
Avatar
Deleted User 1/4/2019 6:50 PM
60° at 40% ?
Avatar
ye
6:51 PM
nvm it seems to be holding that temp regardless of load
Avatar
Deleted User 1/4/2019 6:53 PM
did you try a cpu stresser ?
Avatar
no i ran the servers straight away 😄
6:54 PM
i think the pump broke or something
6:56 PM
hmm the fan is still moving warm air so the pump is working at least
Avatar
Deleted User 1/4/2019 6:57 PM
the 4790k is a beast on overclock
6:57 PM
in my eyes is one of the best intel cpu
Avatar
i haven't even overclocked it ;d
6:58 PM
how much higher did you go ?
Avatar
Deleted User 1/4/2019 7:00 PM
4.9
Avatar
damn
7:00 PM
that's almost + 1ghz
7:00 PM
nice
Avatar
Deleted User 1/4/2019 7:00 PM
Im receiving my ryzen 2700x in 4 days
7:01 PM
and i will try to overclock it to 5.2 at least
7:01 PM
if i can
Avatar
good luck 😛
Avatar
Deleted User 1/4/2019 7:02 PM
this bastard are sending me the case and the power supllay tomorrow
7:02 PM
and the rest in 4 days
7:02 PM
an empty case woaw im happy
Avatar
lol
7:03 PM
do you know how much time it takes me to ship something to Georgia ?
7:03 PM
2 weeks at least
7:03 PM
most of the time shit takes 3-4
Avatar
Deleted User 1/4/2019 7:04 PM
Bro i paid 45euro for the delivery and it was suposed to be a 24hours delivery
7:04 PM
so im upset lmao
7:04 PM
and the worste part is that its only at 165km from home
7:05 PM
so they dont need 7 years
Avatar
@Michidu I want my own listplayers version on a plugin, with extra details. I just need to know how it is getting it's data.
Avatar
try looping const auto& player_controllers = GetWorld()->PlayerControllerListField(); for (TWeakObjectPtr<APlayerController> player_controller : player_controllers) { AShooterPlayerController* shooter_pc = static_cast<AShooterPlayerController*>(player_controller.Get()); }
Avatar
Anyway to run a console / rcon command within APIs? Trying to interract with a mod which has rcon and console commands.
Avatar
player->ConsoleCommand(..)
Avatar
any "fix" for the db locked error ?
Avatar
use mysql
Avatar
for existing plugins ?
11:22 AM
i see arkshop throw that error often
Avatar
ark shop doesn't support mysql yet unfortunately atlas shop does however
Avatar
any plans for mysql for arkshop?
Avatar
actually yes
Avatar
cool, thank you!
11:31 AM
@Michidu will it cause any issues if a plugin contains no hooks ?
Avatar
what do you mean?
Avatar
code looks fine
Avatar
alright thx
11:38 AM
i cant seem to post a resource in ark server api
11:38 AM
it only shows me atlas
Avatar
Deleted User 1/5/2019 12:07 PM
Yeah me too xD
Avatar
rip 😛
Avatar
try now @WETBATMAN
Avatar
only lets me post to paid plugins
12:15 PM
and now
Avatar
yea not it works
12:15 PM
thx
Avatar
would it be possibly to query steam's api from a plugin ?
Avatar
yes, why not
Avatar
i think i have an idea on how to stop players using family shared accounts
12:34 PM
to avoid bans
Avatar
Deleted User 1/5/2019 12:35 PM
Me i use
12:35 PM
steam account lifel ess than 30 days = kick player
Avatar
yeah but look
12:36 PM
12:36 PM
steam can provide the original owners steamID
12:36 PM
so theoretically if we store banned players in a database and query steam for family shared accounts for the original owner we can stop people avoiding bans
Avatar
Deleted User 1/5/2019 12:42 PM
That why i use ban sync
12:42 PM
xD
12:42 PM
Basicly if someone with a banned steam on any of my server try to log on another it will ban him again
12:43 PM
Even people that i banned from ark if they log on my atlas server
12:43 PM
they get banned
Avatar
how do you sync up the banlist
Avatar
Deleted User 1/5/2019 12:43 PM
Battlemetric
Avatar
-_-
Avatar
Deleted User 1/5/2019 12:43 PM
You can also use a banlist web
Avatar
yeah that's what i thought
Avatar
Deleted User 1/5/2019 12:43 PM
and sync it with all servers
Avatar
what my idea is more than just bansync
Avatar
Deleted User 1/5/2019 12:44 PM
i was using a banlist on web at the begging
Avatar
you see it can trace the original owner of the family shared accounts
Avatar
Deleted User 1/5/2019 12:44 PM
but battlemetric is so usefull so now i cant remove it xD
Avatar
what did you set up the web banlist with ?
Avatar
Deleted User 1/5/2019 12:48 PM
Just a txt file on my web host
12:48 PM
and put the link on ASM
Avatar
you didnt host from the same machine ?
Avatar
Deleted User 1/5/2019 12:58 PM
if you have a webserver on your machine
12:58 PM
yes you can
Avatar
i do have a domain but just for dns redirecting
12:58 PM
so i assume i'd have to host the banlist on my machine
Avatar
Deleted User 1/5/2019 12:59 PM
On your machine or on a external host
12:59 PM
if you can acces to it using an url
12:59 PM
its good
Avatar
@Michidu player->ConsoleCommand(..) How would I accomplish this using an RCON command method. As in, I want to use a console command when I issue an rcon command in a plugin. (edited)
Avatar
you need a player to execute console command, can get a first one world->GetFirstPlayerController() and then you can call ConsoleCommand from him.
Avatar
@Michidu Got that part working, but I'm not getting an output into the result. The result is always blank for me, no matter what the command I have. auto player_controller = ArkApi::GetApiUtils().GetWorld()->GetFirstPlayerController(); player_controller->ConsoleCommand(&result, &fcommand, true);
Avatar
result doesn't seem to work, you can ignore it
11:05 AM
you might want to check if player_controller is nullptr
Avatar
Ok, thanx
Avatar
@Michidu is your VoteRewards plugin open source ?
2:24 PM
cant seem to find it on github
Avatar
no, but ownprox should be working on a new open source one
Avatar
any other examples on making an api call ?
Avatar
you mean http request?
Avatar
ye
2:26 PM
like how you request the list of voters from ark-servers.net
2:27 PM
weird, there were more examples before, lol
2:28 PM
ah here
Avatar
yes this seems more in depth
2:29 PM
thx
2:30 PM
noob question but how do i move the settings of one project to another one in visual studio
2:30 PM
so i dont have to specify all the arkapi paths
Avatar
maybe it would be better to just copy them? :) only 2 paths
2:33 PM
you can copy project files but then you would need to change project name inside of them
Avatar
yeah then its better just to start fresh 😛
2:39 PM
which hook class is used for disconnecting a player ?
Avatar
AShooterGameMode_Logout
Avatar
DECLARE_HOOK(AShooterGameMode_Logout, void, AShooterGameMode*, AController *); (edited)
2:41 PM
?
Avatar
DECLARE_HOOK(AShooterGameMode_Logout, void, AShooterGameMode*, AController*);
2:42 PM
yes
Avatar
what is the best db type to use if i want to share it across servers ? (edited)
Avatar
mysql
Avatar
alright
2:46 PM
autoprot uses that right ?
Avatar
autoprot?
Avatar
nvm it uses sqlite
2:47 PM
Contribute to Lkados/AutoProtSource development by creating an account on GitHub.
2:50 PM
what is the best way to return data from an api call
2:50 PM
json, vdf or xml ?
Avatar
from http request? 😃
2:53 PM
it can return the original owners steam id if the account is family shared
2:53 PM
{"response":{"lender_steamid":"0"}}
Avatar
json should be the easiest to read
Avatar
return looks like this
2:59 PM
3:00 PM
where does this request go ?
Avatar
in some function
Avatar
so say i want to disconnect a user if their steam id is in a db
3:05 PM
if i make a function which gets the id of player on connection
3:05 PM
it should go in there ?
Avatar
most likely
Avatar
AShooterGameMode_HandleNewPlayer
5:02 PM
this only works if the players is connecting for the first time ye ?
Avatar
for all players that are connecting ?
Avatar
yes
Avatar
ah cool just what i need
5:20 PM
also is there a way to make it so a stock Rcon command executes a plugin function
5:20 PM
like for example if you use BanPlayer steamid
5:20 PM
it writes that id to a db ?
Avatar
it should write id somewhere
Avatar
the default command writes the id into a banlist in the win64 folder
5:25 PM
but is there a way to get that id and write it into my plugins db aswell ?
Avatar
i guess its just a txt file, you can read it
Avatar
so the better option would be to read that file instead of getting the id from the command ?
Avatar
you can hook it too, yeah
Avatar
hook the command ?
Avatar
BanPlayer
5:31 PM
should be a function
Avatar
ahhh
5:31 PM
right
5:31 PM
so every time its executed it returns the banned id or ?
Avatar
should have as argument 😃
Avatar
void BanPlayer(FString PlayerSteamName) { NativeCall<void, FString>(this, "UShooterCheatManager.BanPlayer", PlayerSteamName); }
5:32 PM
right
5:32 PM
PlayerSteamName
5:32 PM
that should be it ye ?
5:32 PM
or is that the actual name not the id ?
Avatar
its a SteamName
5:33 PM
are you sure it uses steam id?
Avatar
i guess its steam id then
5:35 PM
they have wrong name 😃
5:36 PM
but try it
Avatar
yeah i looked through all BanPlayer function in actor.h
5:36 PM
5:36 PM
all of them have PlayerSteamName
5:38 PM
what is the difference between ServerBanPlayer and BanPlayer
Avatar
just different classes maybe
5:40 PM
ServerBanPlayer calls BanPlayer anyway
Avatar
hmm
5:42 PM
DECLARE_HOOK(AShooterGameMode_HandleNewPlayer_Implementation, bool, AShooterGameMode*, AShooterPlayerController *, UPrimalPlayerData *, AShooterCharacter *, bool);
5:42 PM
is this the correct hook for HandleNewPlayer ?
Avatar
its in shop plugin
Avatar
alright
5:46 PM
so get the steamid from BanPlayer
5:46 PM
write it to db
5:47 PM
then check the db when a player connects
5:47 PM
if family sharer's steam id is in db
5:47 PM
use AShooterGameMode_Logout ?
Avatar
better use Kick
5:49 PM
actually in your case i guess its better to read ban list file 😃
5:49 PM
and should be easier
Avatar
is a db even needed in that case ?
Avatar
since all banned id's are stored there
5:49 PM
yee
5:49 PM
cool
5:50 PM
but how do you read an external file
Avatar
just use fstream
5:50 PM
you can read any file
Avatar
hmm so if i dont even need a db
5:58 PM
which hooks do i need
5:59 PM
HandleNewPlayer And KickPlayer ?
Avatar
only HandleNewPlayer
Avatar
hmm arkshop does not have unload ?
Avatar
no 😄
Avatar
shouldn't the unload function be the same as load one ?
6:07 PM
6:07 PM
unload gives me too many arguments
6:08 PM
6:08 PM
is this fine ?
Avatar
yes
Avatar
alright no now read the banlist
6:14 PM
do i input the file with the path or ?
Avatar
can be relative path
6:24 PM
something like this ?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/6/2019 6:24 PM
Hey, if you want to read the banned players you even could use ArkApi::GetApiUtils().GetShooterGameMode()->BannedMapField(); and every time you ban a player it automatically get saved 😄
Avatar
wow its that easy ?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/6/2019 6:25 PM
I mean.. the function is avail hehe 😄
Avatar
ye but how would i check that to see if a certain steam id is in there
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/6/2019 6:36 PM
const auto banned = ArkApi::GetApiUtils().GetShooterGameMode()->BannedMapField(); for (const auto currentEntry : banned) { if(currentEntry.Value == FString(steamId)) { // Do something } }
Avatar
retarded question
6:39 PM
do i use currentEntry for whatever i want to check the banned id's against ?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/6/2019 6:40 PM
currentEntry.Key would be PlayerName currentEntry.Value would be the SteamId
6:41 PM
It literally just iterates over the BannedMapField
Avatar
if (currentEntry.Value == FString(steamId)) { // Do something }
6:42 PM
ye but what is this then its just reading the id from that function ?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/6/2019 6:42 PM
Its getting the steamId from the map and compares it with another steamid 😄
6:42 PM
I tought you wanted to check if a player is banned or not 😄
Avatar
what i want to do is to obtain the parent account's steam id if the account is family shared
6:43 PM
and then if that parent id is banned the family shared account should be kicked
6:45 PM
6:46 PM
steam has an api for this
6:46 PM
{"response":{"lender_steamid":"0"}}
6:46 PM
this is the response
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/6/2019 6:47 PM
did you already used the nlohman library to parse it? or even created a function for getting lender_steamId? (edited)
Avatar
no lol i wish i knew that much
6:47 PM
😛
Avatar
nlohmann::json Json = Response; if (int LenderSteamID; (LenderSteamID = Json["response"].value("lender_steamid", 0)) != 0) { //LenderSteamID } (edited)
6:18 AM
you might have to treat it as a string though perhaps, dependant if json will parse the "lender_steamid":"0" as a int or not cba to check (edited)
Avatar
Hey guys. I'm trying to have any tribe that has our protection applied, have double harvest or custom value on harvest rate. What hook would I need to be in to make this happen? (edited)
Avatar
Apologies for the n00b question but with Rust I could examine the Assmbly_csharp.dll to understand game functions and where hooks might reside. How would one do the same with Atlas? Also can UI be pushed from a server side plugin and to that end must UI be developed in UE or can it be done strictly in VS? Thanks!
Avatar
@Absolut You can use IDA, but it's not as easy as in Rust. UI possibilities are limited, you can't do much from a plugin, however some people managed to combine mods with plugins.
Avatar
@Michidu Thanks! Ill look into IDA and no worries on UI. Ill take baby steps 😃
Avatar
Is there a way to export a copy of the deconstructed code? Thinking $500 for a license might not be appropriate at this time 😃
Avatar
actually more than 500$, but you can find leaked IDA Pro 7.0 😉
9:39 AM
but i guess API headers should be enough to start with
Avatar
Ya that would be awesome. Ill keep a lookout for a download
11:43 AM
how do i place the steamid i get into a URL ?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/8/2019 11:52 AM
Well, first replace the current steamId you've put in hardcoded to "{}" - Its a placeholder for a variable you're replacing. Then use it like the following; FString URL = FString::Format("YourFullStringHere", steamId);
Avatar
FString URL = FString::Format("http://api.steampowered.com/IPlayerService/IsPlayingSharedGame/v0001/?key=whateversteamid={}&appid_playing=346110&format=json", steam_id);
11:58 AM
like this ?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/8/2019 12:09 PM
I guess there is a & missing between your key and the steamId parameter but yea 😄
Avatar
just inserted a placeholer when i copied the text here because it has my steam api key 😛
12:12 PM
but how does this url get inserted into the GET function
Avatar
API 3.0 has a better requests library btw 😃
Avatar
what's changed ?
Avatar
based on Curl
12:13 PM
and interface should be better
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/8/2019 12:15 PM
after chaning API version you can try using ToString() function from FString 😄
12:21 PM
like this or am i retarded ?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/8/2019 12:22 PM
I would use URL.ToString() instead of putting a string with ToString() in it 😄
Avatar
API & GetCallBack Are still undefined though
Avatar
it's just a callback function which you need to define 😉
12:26 PM
wiki has an example
Avatar
wow we can even grab the ip of a player
12:31 PM
interesting...
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/8/2019 12:31 PM
Try it and you'll get the SteamID of the player 😄
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/8/2019 12:31 PM
I tried to do it haha
Avatar
ye i'm trying to ban if the family shared account is banned thought ip would be a nice addition 😛
Avatar
i think @OwnProx fixed it 😃 (edited)
Avatar
but then i'd have to do db management which i know nothing about
Avatar
GetCallBack will return the steam id already ye ?
12:40 PM
so now its time to parse it ?
12:45 PM
Avatar
it looks a bit weird also first argument to CreateGetRequest is url
Avatar
just To.String ?
Avatar
just url 😃
Avatar
right...
Avatar
anything inside quotes is a string btw
Avatar
ah
12:54 PM
thx
12:54 PM
so now in theory
12:54 PM
void GetCallback(bool Success, std::string Result) { Log::GetLog()->info("LenderSteamID: {}", Result); }
12:54 PM
this
12:54 PM
should return
12:54 PM
{"response":{"lender_steamid":"0"}}
12:54 PM
this ?
Avatar
Result should be it, yeah
Avatar
then i use what ownprox posted to parse it ?
12:56 PM
nlohmann::json Json = Result; if (int LenderSteamID; (LenderSteamID = Json["response"].value("lender_steamid", 0)) != 0) { //LenderSteamID }
Avatar
json = nlohmann::json::parse(Result);
12:57 PM
maybe it will work too 😃
Avatar
Result undefined
12:59 PM
you have another way of doing it dont you 😛
1:00 PM
oh my bad
1:00 PM
it was somewhere else lol
1:00 PM
{ Log::GetLog()->info("LenderSteamID: {}", Result); nlohmann::json Json = nlohmann::json::parse(Result); if (int LenderSteamID; (LenderSteamID = Json["response"].value("lender_steamid", 0)) != 0) { //LenderSteamID } } API::Requests::Get().CreateGetRequest("URL", &GetCallback);
1:02 PM
now can i get the banned list with const auto banned = ArkApi::GetApiUtils().GetShooterGameMode()->BannedMapField(); and match it against the id we're obtaining from the steam api ?
1:02 PM
or would it be better to read from the Banlist and match it that way ?
Avatar
btw when i said "url" i meant that actual url, not just the word 'url' 😃
Avatar
yeah but i need to place the steam id into the url to obtain the the LenderID
1:04 PM
so i cant place the actual url into there because it would always return the same result 😛
Avatar
you can use fmt::format
1:05 PM
like fmt::format("someurl.com?steamid={}", steamid")
1:06 PM
it will paste steamid instead of {}
Avatar
all of that goes into CreateGetRequest or before that
Avatar
instead of "URL"
Avatar
ahh
1:14 PM
void GetCallback(bool Success, std::string Result) { Log::GetLog()->info("LenderSteamID: {}", Result); nlohmann::json Json = nlohmann::json::parse(Result); if (int LenderSteamID; (LenderSteamID = Json["response"].value("lender_steamid", 0)) != 0) { //LenderSteamID } } API::Requests::Get().CreateGetRequest("fmt::format("http://api.steampowered.com/IPlayerService/IsPlayingSharedGame/v0001/?key=86B1steamid={}&appid_playing=346110&format=json", "steam_id")", &GetCallback); (edited)
Avatar
remove those quotes already 😃
1:17 PM
fmt::format should be a function, not a string
Avatar
void GetCallback(bool Success, std::string Result) { Log::GetLog()->info("LenderSteamID: {}", Result); nlohmann::json Json = nlohmann::json::parse(Result); if (int LenderSteamID; (LenderSteamID = Json["response"].value("lender_steamid", 0)) != 0) { //LenderSteamID } } API::Requests::Get().CreateGetRequest(fmt::format("http://api.steampowered.com/IPlayerService/IsPlayingSharedGame/v0001/?key=F2D86B1steamid={}&appid_playing=346110&format=json", "steam_id"), &GetCallback); } (edited)
Avatar
almost, steam_id and not "steam_id"
Avatar
alright now matching the id happens here ?
1:41 PM
Avatar
looks alright
1:42 PM
ye
1:45 PM
?
Avatar
currententry undefined
Avatar
const auto banned = ArkApi::GetApiUtils().GetShooterGameMode()->BannedMapField();
1:52 PM
does this return a list ?
Avatar
yes
Avatar
line by line Banned Players ye ?
Avatar
i guess so, it's a map
Avatar
so what's the best way to go about this extract the list line by line and match it line by line ?
Avatar
you need to iterate over it
Avatar
how would i do that
1:59 PM
ifstream ?
Avatar
for (auto& Elem : FruitMap) { FPlatformMisc::LocalPrint( *FString::Printf( TEXT("(%d, \"%s\")\n"), Elem.Key, *Elem.Value ) ); }
2:08 PM
i need something like this ?
Avatar
something, yea
Avatar
where does that even print data from
2:22 PM
if i change FruitMap to BannedMap will it work ?
Avatar
it's a first step for sure 😉
Avatar
TEXT("(%d, \"%s\")\n"),
2:26 PM
is this a regex ?
Avatar
wait this is printf
2:32 PM
oh boi i'm retarded
2:34 PM
what if i use contains though
2:35 PM
bool bHas7 = FruitMap.Contains(7); bool bHas8 = FruitMap.Contains(8); // bHas7 == true // bHas8 == false
2:35 PM
something like this
Avatar
try, not sure if this map version supports it though
Avatar
what is better to use Find or Contains ?
Avatar
Contains
2:41 PM
something like this
2:41 PM
?
Avatar
i dont think this map will ever contain lender_steamid
Avatar
?
2:43 PM
if the player was banned before ?
2:47 PM
2:47 PM
?
Avatar
have you disabled warnings in VS? The syntax is very wrong
Avatar
i think i disabled something ye
2:53 PM
where do i enable that
2:54 PM
i think i disabled intelisense at some point
Avatar
likely
Avatar
hmm just checked and its enabled
3:03 PM
weird
3:10 PM
3:11 PM
i think i'm missing a ; somewhere and it isn't checking properly
Avatar
you also cant have nested functions
Avatar
wait where do i have a nested function
Avatar
GetCallback
3:15 PM
its inside another one
3:17 PM
this one ?
Avatar
yes
Avatar
wait how is it nested
Avatar
one function inside another
Avatar
but i took it from the example 😛
Avatar
you just pasted it in wrong place
Avatar
here ?
3:33 PM
//Steam API Request void GetCallback(bool Success, std::string Result) API::Requests::Get().CreateGetRequest(fmt::format("http://api.steampowered.com/IPlayerService/IsPlayingSharedGame/v0001/?key=B1steamid={}&appid_playing=346110&format=json", steam_id), &GetCallback);
Avatar
is GetCallback empty now?:)
Avatar
doesn't it have to go above the GetLog ?
Avatar
functions can't be inside each other
Avatar
still not heh
3:41 PM
i would write it but currently a little busy
Avatar
is it still inside another function or what ?
Avatar
yeah
3:42 PM
you can even see red lines, it's errors
Avatar
damn bro i cant even copy & paste code
Avatar
is there any way to like debug plugins
3:55 PM
pretty sure advanced chat performs a worldsave every time someone types something
Avatar
write to prox 😃
4:00 PM
4:00 PM
rip
Avatar
@OwnProx lol
Avatar
lmao it lags so bad
4:01 PM
like you type something and suddenly you're on the other side of the map
Avatar
typing became more entertaining at least
4:02 PM
its a gamble 😛
Avatar
@Michidu / @OwnProx Server down? https://ark-server-api.com/ I'm getting service unavailable.
Avatar
currently yes
Avatar
Ok
Avatar
damn i've pasted this GetCallback everywhere and it still tells me that local function definitions are not allowed 😦
Avatar
you need to paste it only in one place 😉
6:51 PM
and it shouldn't be inside other function
Avatar
well ye i mean i've tried pasting it everywhere 😄
Avatar
lol
Avatar
my {} are also fucked so that could be contributing to the issue aswell 😛
Avatar
how your current full code looks like
Avatar
it still inside lol
6:59 PM
why 7 in bHas btw? 😃
Avatar
isnt that just the name ?
7:00 PM
or does 7 have to be replaced by Lender_ID
Avatar
no, its fine heh
7:01 PM
you need to move func before bool Hook_AShooterGameMode_HandleNewPlayer
Avatar
local function definitions are illegal
Avatar
it wouldn't be local
7:04 PM
Avatar
no body
Avatar
{ void GetCallback(bool Success, std::string Result) }
7:07 PM
?
Avatar
no heh
Avatar
what is the body for then 😛
Avatar
Rogue Leader 1/8/2019 9:22 PM
The last pastebin needs a ; after the Void GetCallback line
9:23 PM
I believe you still have to define what that function does though. Currently you're only telling your program that there will be one with that name and signiture, but not what it does.
Avatar
API::Requests::Get().CreateGetRequest(fmt::format("http://api.steampowered.com/IPlayerService/IsPlayingSharedGame/v0001/?key=162F2D86B1steamid={}&appid_playing=346110&format=json", steam_id), &GetCallback);
9:38 PM
isnt this the definition of GetCallBack ?
Avatar
Hey @here I've funded an issue on Gitcoin looking for devs to get it done. I'm buried in another project for at least four months ... I will be adding more bounties in the upcoming weeks. Let's work together and make open source awesome. https://gitcoin.co/issue/ark-mod/ArkBot/86/2074
Apologies posting here, please close once you have reviewed. I know little about this language, but do you think this could be forked and adapted to run with Atlas, if only the discord bot element for updating/restarting servers? are there any plans to ..
Avatar
i can vouch for this project ^^
10:21 PM
hope we can get some devs on this i doubt i can do anything for it 😛
Avatar
Anyone mind sharing the process for setting up a workspace in VS for Ark/Atlas coding
Avatar
sure i have a tutorial for that
Avatar
@WETBATMAN Thanks!
Avatar
no problem
10:38 PM
welcome to the community!
Avatar
I’ll record a YT on how to setup VS and Arkbot tomorrow
12:46 AM
May as well record how to set it up
Avatar
Ya I realized my issue was that I dont have the "not public" version of AtlasAPI. So I dont have the uncompiled files to load into VS.
1:10 AM
Beyond that ^^ @WETBATMAN instructions were great!
Avatar
GSH | MrOwlSky 1/9/2019 3:09 AM
@MindDragon what is that?
Avatar
MindDragon 1/9/2019 3:25 AM
I will record a YouTube video on how to setup Visual Studio and ArkBot from Github tomorrow.
3:26 AM
there is a great Google docs but sometimes videos (pictures) are 1,000 words +
3:26 AM
Also Atlas
Avatar
Rogue Leader 1/9/2019 3:26 AM
What is Arkbot?
Avatar
MindDragon 1/9/2019 3:26 AM
ARK Survival Evolved application that monitors and extracts data from local ARK servers and exposes this data through a Web App, Web API and Discord Bot. Provides important functions to players: di...
3:27 AM
I'm a maintainer on there and funding mods for it -- currently wanting a mod to port it to Atlas
Avatar
Thought of asking how you guys are hosting your Ark servers. Hosting per server? VPS and configure servers yourself? Another way?
Avatar
me personally i have a system built at home
8:25 AM
@GSH | MrOwlSky @Rogue Leader arkbot is a program that allows us to pull data from Ark’s savefile and display it to players on a website
8:25 AM
as such players can log into the site and view their stats/tribe log/ imprinting timers/generator fuel/crops and more
8:26 AM
check out my example http://dopeark.com
9:46 AM
Im at 1 step from it lmao
9:46 AM
Just waiting for the 2 tera Nvme today
Avatar
congrats boiiii
Avatar
Deleted User 1/9/2019 9:50 AM
First amd config for me
9:50 AM
i was like a dumb ass when i didn't found my second gpu
9:50 AM
i just went to buy a new one this morning lmao
9:55 AM
9:55 AM
Nvme raid
9:55 AM
wtfff
Avatar
@OwnProx PLEASE fix AdvancedChat 😦
Avatar
Deleted User 1/9/2019 4:11 PM
@WETBATMAN ark one or atlas one ?
Avatar
ark
4:12 PM
it makes all servers in the crosschat autosave every time someone sends a message
4:12 PM
causing insane lag and rubberbanding
Avatar
Deleted User 1/9/2019 4:14 PM
Oh i dont have this problem
Avatar
wtf man why do some people have this and some dont (edited)
4:17 PM
how many servers in your crosschat ?
Avatar
Deleted User 1/9/2019 4:22 PM
I was having the same problem at the begging
4:22 PM
and one day after a server restart it just stoped lmao
Avatar
please tell me how you fixed it its driving me crazy
4:23 PM
because all those world saves already rack up the cpu usage and then arkot reloads all data and maxes the cpu out lol
Avatar
Deleted User 1/9/2019 4:39 PM
I didn't fixed it lmao
4:39 PM
it stoped alone
Avatar
ughhh
4:51 PM
you must have changed something 😛 (edited)
Avatar
Cross Server Chat support for ARK Survival Evolved servers. - ark-mod/ArkCrossServerChat
5:44 PM
is there any way to make this CrossServerChat support unicode ?
5:45 PM
advanced chat just lags too much
Avatar
MindDragon 1/9/2019 6:00 PM
Are there any developers on here interested in being paid for work?
6:01 PM
@Raptross I have a datacenter with gigabit uplinks and I bought and built a TR 1950X with 64gb of RAM and 2x M.2 drives
6:02 PM
I don't recommend shared hosting with ARK or ATLAS... The code is soooo bloaty.
6:11 PM
does this need to be changed for message unicode support ?
Avatar
damn cant even recompile it, needs an older sdk i think
Avatar
@OwnProx have mercy on our ssd's and fix AdvancedChat 😛
Avatar
ToUTF8
2:18 AM
exists already in the api btw (edited)
2:18 AM
also blame ark there rcon sucks
2:18 AM
its nothing to do with advanced chat
2:18 AM
its arks rcon keeps dropping connections ect
2:19 AM
also it doesnt use hard drive at all
2:19 AM
so its not effecting your ssd's lol
2:19 AM
well actually reading more of what you said if it really is saving each time then yeah it is
2:20 AM
but i did not programme anywhere in advanced chat to support saving lol
2:20 AM
it has no option to save the world so idk how the hell your worlds are saving on each message as it don't make sense to me
Avatar
@WETBATMAN Why don't you unload it and see if it is saving or not. That will help isolate if it is with reference to that plug-in or not.
Avatar
Yeah it happened the first day for us too, the multiple saves, but stopped.
Avatar
strange shit maybe the rcon is calling a save for some reason lol its certainly not my plugin i dont call save world from it, im going to move away from using rcon in upcoming updates obviously still keep that option there but i would rather host ports instead of using ones already existing seems they have perf issues (edited)
Avatar
i know it is advanced chat because when i set up my extinction server i didnt load advanced chat on it because to cluster it i would have to restart all the other servers with advanced chat
8:02 AM
also @OwnProx check your advanced chat discord sever i posted screenshots that show that worldsves match the time a message is posted
8:03 AM
8:03 AM
8:04 AM
8:06 AM
as you can see arkbot reloads sever data on ALL servers when a crosschat message is sent
8:06 AM
arkbot only reloads data if it detects the savefile got updated
Avatar
@WETBATMAN The lag can come from the Arkbot as well if you are running it on the same machine as the arkservers.
Avatar
that is the consequence of all the servers saving at once 😛
9:48 AM
i have them set to save sequentially
9:49 AM
but when people type in chat all servers save and yea that causes a lot of lag because then arkbot has to refresh all servers at once
Avatar
Have you verified it ? by actually looking at the save file. I know sometimes arkbot just do a refresh of the file even though it hasn't been a worldsave.
Avatar
yes i have verified it
9:50 AM
savefile gets updated and then arkbot starts the data pull
Avatar
so ...basically you have a bad ring of fire here 😛
Avatar
yes exactly 😛
Avatar
it does not even make any sense
9:52 AM
why would a crosschat message force a worldsave (edited)
Avatar
oh well, weird. Have you tried disabled the RCON xChat and use the separate plugin instead?
Avatar
the problem is i have a lot of russian speakers so i need unicode support
Avatar
Features display a users chat message across multiple ark servers Unicode Support Local & Remote Server Support a lot more efficient than competitors using sqllite database Description make sure you configure this properly enabling your rcon...
Avatar
hmmm
Avatar
Should be exactly the same code as in the Advance Chat.
Avatar
will the admin and donator tags work with that though
Avatar
Deleted User 1/10/2019 9:54 AM
No
Avatar
Deleted User 1/10/2019 9:54 AM
They will not be cross map
Avatar
damn
9:54 AM
still very weird
9:54 AM
some people have this and some dont
9:55 AM
so it has to be some variable i have wrong or something 😦
Avatar
how often do you do a world save?
Avatar
13 15 17 19 21
Avatar
Hello! Is it the Dino passive protection working fine? It’s not working at all for me
9:59 AM
^ this is the discord you're looking for
Avatar
Thank you 😃
Avatar
is there a way to debug the functions called when a chat message gets sent or something
Avatar
@Michidu i have multiple API keys in the voterewards plugin so if i vote on one server then hop into another it claims the reward twice
Avatar
@WETBATMAN Report that on the forum
3:40 PM
any way to recompile this plugin
3:40 PM
giving me endless errors
Avatar
after removing AdvancedChat Crosschat 😮
Avatar
i'm going to lose my mind
4:17 PM
ITS STILL AUTOSAVING
Avatar
nvm right now the lag seems to be gone
Avatar
N00b question here... so sorry! I am not seeing any errors in my solution until I try to compile. I am then told AtlasApi.lib cannot be opened. If I change it to ArkApi (which I wouldnt want to) it gives the same error.
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/10/2019 9:05 PM
Have you set the additional library path in VS?
Avatar
indeed
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/10/2019 9:06 PM
And in that folder there is a "AtlasApi.lib" located, right?
Avatar
whats funny is neither ArkApi or AtlasApi.lib are in that folder. They are both in the "out_lib" folder.
9:07 PM
So I tried adding a second reference
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/10/2019 9:08 PM
Thats why I tought - I remember you switched to new api version 😄
Avatar
wait now i'm confused too, are you supposed to include the lib folder or the out_lib folder 😛
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/10/2019 9:09 PM
With the new version its the out_lib folder 😄 lib folder in new one is used for compiling API itself 😄 (edited)
Avatar
@Absolut sorry looks like i was wrong
Avatar
copy
9:11 PM
New errors, ill fiddle before bothering everyone
9:11 PM
Thanks!
Avatar
i'll plug my own question meanwhile
9:12 PM
9:12 PM
get this error when compiling crossserverchat
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/10/2019 9:13 PM
Change the Windows SKD Version. Its located in the General section of your project settings
Avatar
and where do i get this specific version of the sdk downloaded ?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/10/2019 9:14 PM
You already got it I guess 😄
Avatar
says it was not found
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/10/2019 9:14 PM
even in your project settings?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/10/2019 9:15 PM
Yea - the second option "Windows SDK Version"
9:15 PM
change that one to whatever you've installed
9:15 PM
its getting copied with the .sln file I think
Avatar
change the one in the project sln file to the one i have ? (edited)
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/10/2019 9:17 PM
Just change it in that window lol
9:17 PM
Avatar
yeah i've changed that already and it says it wasn't found (edited)
9:18 PM
if i change it to the latest one
9:18 PM
it says it needs the one before that
9:18 PM
if i change it to the one it requests it tells me it wasn't found
9:19 PM
oh nvm
9:19 PM
i'm retarded
9:19 PM
ignore all that
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/10/2019 9:20 PM
So it was just about switching?
Avatar
yes
9:31 PM
how would i include this file in the project (edited)
9:31 PM
i added the include folder to the C++ section
9:31 PM
what is the path for this supposed to be
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/10/2019 9:32 PM
you can simply add that folder to the include folder in your visual studio project 😄
9:32 PM
and #include the header
Avatar
noob question but where is the include folder
9:35 PM
just paste it into the root of the project ?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/10/2019 9:36 PM
Its located in Project Settings --> C/C++ --> General and called Additional Includedirectories (edited)
Avatar
ye i added the whole include folder in there
9:36 PM
so now just include it by the name ?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/10/2019 9:37 PM
use #include "sqlite/sqlite_modern_cpp.h" (edited)
Avatar
says it cannot open the file
9:39 PM
even thought i have the include folder in there
9:43 PM
managed to include it by just selecting the sqlite folder
Avatar
fixed the include stuff but now get errors like these
9:54 PM
9:55 PM
i guess the source is borked or did i do something wrong on my end ?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/10/2019 9:55 PM
Source Code would be great 😄
Avatar
Cross Server Chat support for ARK Survival Evolved servers. - ark-mod/ArkCrossServerChat
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/10/2019 9:56 PM
Ah.. you just want to compile it 1:1 ?
Avatar
ye for now
9:59 PM
i wanted to see if i could add unicode support
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/10/2019 10:03 PM
Where did you got the ArkPluginLibrary.lib from? Even the whole Library?
Avatar
Shared library for all my ARK Server API plugins. Contribute to ark-mod/ArkPluginLibrary development by creating an account on GitHub.
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/10/2019 10:07 PM
lmao.. searched for it everywhere on his git
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/10/2019 10:20 PM
He was using an older version of the API... some things have changed now...
10:21 PM
Also got the errors. I would need to fix the whole code for helping you 😄
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/10/2019 10:21 PM
mostly its just a double brace ()() - I think you can figgure it out on your own 😄
Avatar
damn i wish i knew C++ to the point where i could fix this 😦
10:22 PM
some stuff has the error that it cannot be used before its initialized
Avatar
wait does removing one brace actually fix it or will it compile broken ?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/10/2019 10:30 PM
depends on what the compiler said; I just opend the project and browse trought it for a little
10:30 PM
But yea.. if you're adding a braces to much it can "destroy" your code 😄
Avatar
well it has a lot more issues
10:31 PM
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/10/2019 10:32 PM
The part in utils.cpp worked fine for me
10:32 PM
Have you set the C++ 17 standard already in your project? (edited)
Avatar
ye
10:33 PM
nothing is actually underlined in that file its a compiler issue
10:33 PM
oh actually nvm
10:33 PM
some stuff is actually underlined
10:34 PM
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/10/2019 10:34 PM
told you 😄
10:34 PM
just the ()()
10:35 PM
remove one of them
Avatar
oh here too
10:35 PM
didn't notice
10:37 PM
hmm it cant find a file in ARKPluginLibray
10:37 PM
10:39 PM
hmm this file does not seem to exist
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/10/2019 10:42 PM
As long as the .lib is not downloadable you'll need to open the ARKPluginLibray fix it first and then generate a static Library from it to later include it into your current project
Avatar
i think its looking for the now called ArkApi.lib
10:43 PM
as its a linker issue
10:45 PM
there are too many issues in this project for me to fix 😦
Avatar
I have found that when the HandleNewPlayer is called the AShooterPlayerController isnt usually setup yet (sleeping or in a "dead" state). I had similiar issues in rust and was able to add a 5 second timer, then call the function again. So it would loop until the player disconnects or the controller is valid. How would one add a timer for a few seconds then call a function afterwards within C++? bool Hook_AShooterGameMode_HandleNewPlayer(AShooterPlayerController * NewPlayer, UPrimalPlayerData * PlayerData, AShooterCharacter * PlayerCharacter, bool bIsFromLogin) { AShooterGameMode_HandleNewPlayer_original(NewPlayer, PlayerData, PlayerCharacter, bIsFromLogin); Log::GetLog()->info("Handle New Player: Called"); if (NewPlayer != nullptr) { Log::GetLog()->info("Handle New Player: Not Null"); if (ArkApi::IApiUtils::IsPlayerDead(NewPlayer) || ArkApi::IApiUtils::IsRidingDino(NewPlayer)) { Wait 5 seconds ----> Hook_AShooterGameMode_HandleNewPlayer(variables again....) return false; } UnlockEngrams(NewPlayer); return true; } return false; } (edited)
Avatar
Rogue Leader 1/11/2019 12:10 AM
Wouldn't that lock up the server for 5 seconds?
12:11 AM
You can create some struct that tracks online players and just run a timer that does what you need it to if they are alive and haven't been modified yet.
12:12 AM
There's an example of a decent struct for online players and a timer in NPP
Avatar
Reminder: Paid Project is available! Get paid for your work https://gitcoin.co/issue/ark-mod/ArkBot/86/2074
Apologies posting here, please close once you have reviewed. I know little about this language, but do you think this could be forked and adapted to run with Atlas, if only the discord bot element for updating/restarting servers? are there any plans to ..
12:39 AM
the bounty has been increased!
Avatar
ill be moving the bounty over to issue #88
12:51 AM
Features ARK Survival Evolved application that monitors and extracts data from local ARK servers and exposes this data through a Web App, Web API and Discord Bot. Provides important functions to pl...
12:51 AM
So it will be more clear
Avatar
@Rogue Leader Thanks Ill look at it! For now I am still trying to tighten up my logic via chat command then Ill seek to automate it with the HandleNewPlayer hook. Though while I have you if you could help me I'd really appreciate it! I am trying to force player level to 51, give appropriate skill points to spend, and unlock all engrams. I have no issue setting the player level to 51 manually and unlocking all engrams but the "skill points" portion is wonky. (edited)
12:53 AM
It would be amazing to see what happens on the hook UPrimalCharacterStatusComponent.ServerApplyLevelUp. I can than maybe reverse engineer the process
12:54 AM
Then I could do this which should level the player more naturally and keep the points in sync with the actual level (not to mention the xp would be correct). int currentLvel = char_component->GetCharacterLevel(); if (currentLvel < 51) { //Log::GetLog()->info("Unlock Engrams: Below Level 51"); //char_component->BaseCharacterLevelField() = 51; for (int i = currentLvel; i < 51; i++) { float neededEXP = char_component->GetExperienceRequiredForNextLevelUp(); char_component->AddExperience(neededEXP, false, EXPType::XP_SPECIAL, false); char_component->ServerApplyLevelUp(EPrimalCharacterStatusValue::MAX, player_controller); } player_controller->GiveEngrams(true); ArkApi::GetApiUtils().SendChatMessage(player_controller, "Absolut Gaming: ", "You have been promoted to Level 51!"); }
Avatar
Two more things about the bounty.
12:59 AM
1) It is open to any developer and if a little more is needed, we may be able to get a few other contributors
12:59 AM
2) I am writing an article about it in Forbes.com ... If you want your name out there, this is the time to do it.
12:59 AM
Features ARK Survival Evolved application that monitors and extracts data from local ARK servers and exposes this data through a Web App, Web API and Discord Bot. Provides important functions to pl...
Avatar
disregard my comment. I am deliberately making it harder then it needs to be. Thanks!
Avatar
@Absolut theres another hook you can use
2:53 AM
that actually applys when the player has logged in
2:54 AM
void Hook_AShooterGameMode_StartNewShooterPlayer(AShooterGameMode* _this, APlayerController* new_player, bool force_create_new_player_data, bool is_from_login, FPrimalPlayerCharacterConfigStruct* char_config, UPrimalPlayerData* ark_player_data) (edited)
2:54 AM
it could be after the handle player hook not sure, i know michidu uses this one with a 5 sec timer to then show the player a message << make sure you if check the char pointer after timer has passed (edited)
2:55 AM
plus if you #inclue "Timer.h"
2:55 AM
you got a hole timer class under
2:55 AM
API::Timer::Get().
2:56 AM
use std::bind if you want to pass arguments to your timer callback (edited)
2:58 AM
@WETBATMAN replace all ArkApi.lib with AtlasApi.lib in your project also replace all /ARK/Ark.h with /Atlas/Atlas.h (edited)
2:59 AM
set you lib include path to c:/pathToApi/x64/Atlas/
3:00 AM
also it doesnt really matter much about coverting that old cross chat im making a new one soon not using rcon
3:01 AM
rcon is just bad apparently well ark / atlas implementation of it
Avatar
@OwnProx thanks! I was starting to mess with the timer. Ill keep trying 😃
Avatar
yeah its cool
3:01 AM
std::bind(Callbackfunc, Arg1, Arg2)
3:02 AM
oh never mind you dont need bind (edited)
3:02 AM
he added a template
3:02 AM
API::Timer::Get().DelayExecute(&TimerCallBack, 10, Arg1, Arg2, ... so on
3:02 AM
when i was testing this class he dint have a template then haha
Avatar
this leveling process is kicking my butt
3:03 AM
I thought I was good but the damn exp stays at level 1. So players keep leveling
Avatar
why dont u just add xp
3:03 AM
instead of looping
Avatar
I tried, it didnt work properly
Avatar
just add 1 amount of xp
3:04 AM
ofcourse it does
3:04 AM
a admin command exists for it
3:04 AM
you can just use that
Avatar
for (int i = currentLvel; i < 51; i++) { float neededEXP = char_component->GetExperienceRequiredForNextLevelUp(); char_component->AddExperience(neededEXP, false, EXPType::XP_SPECIAL, false); char_component->ServerApplyLevelUp(EPrimalCharacterStatusValue::MAX, player_controller); }
Avatar
just use the cheat manager class
3:04 AM
UShooterCheatManager* cheatManager = static_cast<UShooterCheatManager*>(OtherPlayer->CheatManagerField()); if (cheatManager) { } (edited)
3:05 AM
cheatManager->AddExperience(345345435, false, true);
3:06 AM
oh apparently you can do this too
3:06 AM
OtherPlayer->AddExperience(345345435, false, true);
3:06 AM
without cheatmanager class
3:07 AM
int currentLvel = char_component->GetCharacterLevel(); if (currentLvel < 51) {
3:07 AM
is a bad idea
Avatar
Ya I tried that.
Avatar
because if they get the xp
3:07 AM
and dont apply the level
3:07 AM
they will get additional xp
3:07 AM
at login
3:07 AM
you want to check there current xp not level
Avatar
Im trying to forgot clicking 51 times. I just want to give them 51, 51 points to spend in traits, and unlock all engrams.
3:08 AM
I can then set EXP at 999999999 so they never level again. Or make a hook so on level it returns nothing
3:08 AM
forgo*
Avatar
michidu made a plugin that unlocks all engrams
Avatar
Ya that was my template
3:08 AM
I have the engrams thats easy
3:09 AM
that may be why it doesnt work
3:09 AM
the cheat manager ver calls
3:09 AM
UPrimalCharacterStatusComponent (edited)
Avatar
@OwnProx its cool. Dont waste anymore time.
Avatar
if you try the cheap manager AddExperience
Avatar
The only frustrating part is having to stop/start my server to replace the plugin file
Avatar
it should work
3:09 AM
you dont have to do that
3:09 AM
lol
Avatar
AddExp works fine, that isnt the issue
3:09 AM
plugin.unload "myplugin" unloads but file is still locked
3:10 AM
might be a server host issue
Avatar
cheat plugins.unload <PluginName>
3:10 AM
because you did not unload your hooks
3:10 AM
/ commands
3:10 AM
on unload
Avatar
they are in the unload
Avatar
you may of forgot something
3:10 AM
or named one of them wrongly
3:10 AM
i have about 16 plugins
3:10 AM
they all runtime unload
Avatar
ya mine unload
3:10 AM
just cant delete file or replace it
3:10 AM
says locked
Avatar
i can replace them too
Avatar
might be server host, not sure
Avatar
do you use sql lite?
3:11 AM
did u close that connection?
Avatar
anyway,thanks for the help. I just need to get IDA. Without game functionality insight it is hard to code.
3:11 AM
Dont waste your time on me. Thanks man!
Avatar
if you dont close sqllite its likely why
3:12 AM
depends if your plugin is using a db or not hahaha
3:12 AM
its cool dude im bored and dont see it as a waste
3:12 AM
maybe what i teach you gets passed on to others you never know
3:12 AM
then its not a waste
3:13 AM
but i can imagine how bad it would be having to close the server each test
3:14 AM
also i wrote 90% of my plugins without help from ida but your not wrong it does help to see how stuff's used (edited)
Avatar
It’s nice to see what is called and in what order from default behavior. Like player clicks a trait button which consumes a skill point etc. makes it easier to duplicate the process so it isn’t clunky and brut forced
Avatar
yeah and you can run the server exe in debug mode adding break points to certain functions you think relate to something
3:19 AM
then go ingame do that action then when one of your bp's are called you know its that one
3:19 AM
it helps in stuff like that for sure plus you can see all the local variable values
3:20 AM
/ array data ect
3:20 AM
everything really
3:20 AM
i havent actually used ida in this way yet running the server executable live and doing bp's i normally find what i need anyway in less time than starting a server up
Avatar
@OwnProx i want to compile it for ark not atlas 😃
Avatar
@WETBATMAN i have been working now for a long time on Tobias legacy. Converting basically Improved commands to work. But it is a mess. And the ArkPluginLibrary that he use needs updates as well.
Avatar
that is pretty sad
Avatar
And as 𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 said you need to convert lot's of double ()() since the today API won't work with the code with the currently build.
Avatar
yes i did that but some stuff still gives a compiler error
9:57 AM
it looks like the legacy api was very different
Avatar
it was
9:59 AM
I got some of his code working. And some actually to be compiled completely but that don't do anything lol (edited)
Avatar
For storing some player information via steamid what is the best approach? Looks like SQLite is supported (seeing an example in ArkShop), or can I simply create a data.json and store it there?
3:27 AM
Seeing as config is a json I figured I could just create a json file. Probably small amounts of data. Probably a list of strings and maybe a few other things
Avatar
I am leaning towards read and writing to a json. Read json and use , write back to json on unload of plugin. I see the read and use example in ArkShop which makes a ton of sense. I do not see any example of catching if the file doesnt exist and creating it on the server file system. Is there support for this and if so can someone point me to an example?
4:18 AM
To give an example: void Load() { Log::Get().Init("ArkShop"); try { ReadConfig(); } catch (const std::exception& error) { Log::GetLog()->error(error.what()); throw; } ^^ that is ArkShop.. I'd want to reference a default "config" and write it to file instead of throw; is this ^^ possible?
Avatar
Rogue Leader 1/12/2019 5:07 AM
Sqlite and reading/writing to a file have a lot of limitations if you have multiple servers or lots of queries at one time.
Avatar
ReadConfig throws if file doesn't exists, you can do something else in the catch block instead of rethrow. Or you can just check if file exists using std::filesystem::exists.
Avatar
Regardless, can one write data to a file if the file doesn’t exist to begin with?
Avatar
fstream can automatically create files if you add fstream::out flag
Avatar
Thanks!
Avatar
std::fstream file(config_path, fstream::out);
Avatar
@Rogue Leader I really appreciate that insight, I am focused on replicating what I know so I can get a foundation and then begin to grow beyond. That being said, your point is something I didn't consider which is a bit absurd considering a core functionality of Atlas is multi-server integration (even if it is virtual boxes on a single piece of hardware or multi units sharing storage). I will be interested to see how others will handle passing active player data across servers to maintain running storage. (edited)
8:06 AM
or maybe, you write to storage on server change, and grab the data back once the player loads into the new server.
8:07 AM
Maybe that begs the idea of leveraging web hooks and storing the data off machine and writing on server disconnect and read on server connect.
8:07 AM
I dunno.. 😃
Avatar
Rogue Leader 1/12/2019 9:18 AM
If it's not a ridiculous amount of data, you could store it in a file, load it up into a struct on server boot, then use what's in the struct(memory) and then write it back to the file on world saves or shutdowns. But again you would have issues with clusters all writing to the same file at the same time. Not sure how atlas handles it though, with each map grid saving or the Game as a whole saving. as I haven't worked with it yet.
Avatar
@Absolut what sort of data are you saving / is it per player that joins ? if it is maybe use sqllite / mysql you can look at permissions it has a Interface so it can either run off of mysql or sqllite
6:14 AM
completely down to the users choice
6:14 AM
thats if your storing quite a bit of data its wise to use such things
Avatar
Not really sure yet, just dabbling. Thanks 😃
Avatar
damn adrian you beat me to my plugin 😕
3:37 PM
@𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 could you post the source for it i'm extremely interested 😛 (edited)
Avatar
Anyone able to assist in getting to the master item list? @atlas I see the MasterItemListField function on the UPrimalGameData class but I cant seem to get to it. I traced it back to the PrimalGameDataField() function under UPrimalGlobals. UPrimalGlobals appears to be obtainable from GameSingletonField() on the UEngine class. But this all seems rather crazy....
Avatar
Disregard. I think this is all to difficult for me. I thought I could learn but I am clearly not there yet. Thanks everyone for the time!
Avatar
Server Plugins for ARK: Server API. Contribute to Michidu/Ark-Server-Plugins development by creating an account on GitHub.
Avatar
Is that an unlock all engrams plugin? @Michidu
Avatar
Do you think that if I I make minor changes it would work on atlas?
4:17 PM
however, i'm not sure if engrams in atlas are same
Avatar
if atlas has engrams, it should work 😃
Avatar
01/14/19 20:46 [ArkShop][error] (d:\programs\ark\plugins\arkshop\arkshop\private\points.cpp ArkShop::Points::GetPoints) Unexpected DB error not all rows extracted 01/14/19 20:51 [ArkShop][error] (d:\programs\ark\plugins\arkshop\arkshop\private\points.cpp ArkShop::Points::GetPoints) Unexpected DB error not all rows extracted 01/14/19 20:56 [ArkShop][error] (d:\programs\ark\plugins\arkshop\arkshop\private\points.cpp ArkShop::Points::GetPoints) Unexpected DB error not all rows extracted 01/14/19 21:17 [ArkShop][error] (d:\programs\ark\plugins\arkshop\arkshop\private\points.cpp ArkShop::Points::GetPoints) Unexpected DB error not all rows extracted 01/14/19 21:22 [ArkShop][error] (d:\programs\ark\plugins\arkshop\arkshop\private\points.cpp ArkShop::Points::GetPoints) Unexpected DB error not all rows extracted 01/14/19 21:27 [ArkShop][error] (d:\programs\ark\plugins\arkshop\arkshop\private\points.cpp ArkShop::Points::GetPoints) Unexpected DB error not all rows extracted 01/14/19 21:32 [ArkShop][error] (d:\programs\ark\plugins\arkshop\arkshop\private\points.cpp ArkShop::Points::GetPoints) Unexpected DB error not all rows extracted 01/14/19 21:37 [ArkShop][error] (d:\programs\ark\plugins\arkshop\arkshop\private\points.cpp ArkShop::Points::GetPoints) Unexpected DB error not all rows extracted
6:53 PM
@Michidu what's this
Avatar
i guess you use sqlite db with multiple servers
Avatar
i do
6:56 PM
5 of them 😛
Avatar
that why 😃
Avatar
so certain players points/kits are corrupted ?
6:57 PM
well non accesable ?
7:00 PM
@𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 mind giving me the source for your AntiFamilyShare i'm really interested in how you did it 😛
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/14/2019 7:05 PM
You really wanna see all these virus? 😄
Avatar
virus ?
Avatar
no, it may happen randomly
7:07 PM
just 2 servers access one db at the same time
Avatar
so its failing to read ye ?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/14/2019 7:09 PM
Yea.. im stealing all your data you'd provide on the config and send it to steam
7:09 PM
like a trojan.. lol
Avatar
read or write
Avatar
;p
7:21 PM
oh no my child porn /s (edited)
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/14/2019 7:23 PM
wtf.. lol
Avatar
shh dont worry about it
7:25 PM
ehh i guess that is a no for source code 🤷
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/14/2019 7:25 PM
just wait lol
7:30 PM
I just wish there would be a way without crashing the server to deny a PreLogin
Avatar
nah its cool
7:31 PM
my server has 17 mods so you have to wait a solid 10-15 min to try to connect and then get kicked lol
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/14/2019 7:31 PM
lol
7:31 PM
17 mods you'd say? 😄
Avatar
yes
7:31 PM
2 of them being core mods 😛
7:34 PM
hmm did you compile this with API 2.9 ?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/14/2019 7:34 PM
yy
Avatar
damn your code is so clean lol
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/14/2019 7:37 PM
the bigger the project the messy it gets.. lol
7:37 PM
if you got some projects with 3000 lines of code for a single plugin you probably can do it cleaner
Avatar
i would not know lol
7:38 PM
i can barely write 2 lines 😦
Avatar
Deleted User 1/14/2019 7:50 PM
@WETBATMAN i can barely write 2 words xD
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/14/2019 7:54 PM
wrong order btw
7:54 PM
lol
Avatar
no lol its meant to be that way
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/14/2019 7:55 PM
Im pretty sure its false order
Avatar
order is correct 😄
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/14/2019 8:00 PM
well
8:01 PM
rip
Avatar
Deleted User 1/14/2019 8:11 PM
I think is my brain there is no light
8:11 PM
its all black
8:11 PM
Dark matter
Avatar
Does ATLAS Rcon not support Chinese?
Avatar
i have been using Permissions with an sqlite db should i switch to mysql ?
Avatar
Deleted User 1/15/2019 9:14 AM
Switch to mysql for everything xD
Avatar
ye but how do i migrate my existing db to it
Avatar
whats better to use for hosting a mysql db on localhost xampp or the official mysql installer from mysql.com ?
Avatar
Deleted User 1/15/2019 10:51 AM
mysql server
10:51 AM
and the migrate i used the dumbest way every copy past lines lmao
10:51 AM
with db browser
10:51 AM
you can export a db file to mysql
10:51 AM
or cvs
10:52 AM
and use Navicat after that to import it on your new mysql db
Avatar
uhh issue is my Permissions db is 1400lines +
10:52 AM
so line by line is not a good idea 😛
10:53 AM
this is the one i need ?
Avatar
Deleted User 1/15/2019 10:54 AM
wait Ownprox send it to me and showed mee wich one to install 1s
10:55 AM
Custom installation
10:55 AM
and select c++ connector mysql server 64bit and workbench x86
Avatar
cool
10:56 AM
yeah that was the one i already have it downloaded 😛
Avatar
Deleted User 1/15/2019 10:56 AM
With mysql
10:56 AM
even does db erros of arkshop
10:56 AM
disappear normally
10:56 AM
if you have arkshop with mysql of corse
Avatar
yea
10:59 AM
i need the 64 bit C++ connector ye ?
Avatar
Deleted User 1/15/2019 10:59 AM
yes
Avatar
anything i need to change in networking ?
Avatar
Deleted User 1/15/2019 11:01 AM
No nothing
Avatar
i heard it needs legacy authentication
Avatar
Deleted User 1/15/2019 11:02 AM
only your user if you want to allowed remote connection
11:02 AM
im not using legacy and it working fine
Avatar
any users to add or just use the root user ?
Avatar
permissions cant connect to the db throws error 1114 (edited)
Avatar
Deleted User 1/15/2019 11:44 AM
Dont write Mysql
11:44 AM
just mysql
11:44 AM
no Caps
Avatar
yeah i did that
11:46 AM
11:46 AM
maybe its because i dont have a db called ArkDB ?
11:47 AM
yep that was the case
11:48 AM
now i somehow have to move my entire db to here...
11:51 AM
btw permissions seems to only be able to connect to legacy authentication
11:55 AM
best way to export sqlite to CSV ?
11:56 AM
nvm sqlite browser has this feature 😛
11:57 AM
wait wth its exporting steamID corrupted
Avatar
Deleted User 1/15/2019 12:03 PM
Well you need to create the db
12:03 PM
the plugins only create the tables
Avatar
yeah i got it to connect
12:04 PM
now i have to export my old db and import it into here
12:04 PM
csv export didint work it corrupted the steamID's
12:04 PM
json export was recognized but it exported 0 columns for some reason
Avatar
Deleted User 1/15/2019 12:08 PM
Do like me
12:08 PM
Copy past xD
12:09 PM
bruh
12:10 PM
imma break my fingers if i do this by hand
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 12:11 PM
just export it as .sql file..
Avatar
Deleted User 1/15/2019 12:12 PM
@WETBATMAN Lmao i got the same problem when i was doing it and none worked
12:12 PM
so i just create the empty like and copy past the data into them
Avatar
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TRANSACTION' at line 1
12:14 PM
well shit
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 12:14 PM
while exporting or importing?
Avatar
importing
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 12:15 PM
Then remove the following;
12:15 PM
BEGIN TRANSACTION; COMMIT;
12:15 PM
First Line and last line
12:15 PM
Its created due a bigger SQL Statement
12:16 PM
but it might be another keyword in some other SQL's.. lol
12:16 PM
been using MariaDB
Avatar
removed those and still throws and error
12:18 PM
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AUTOINCREMENT, `SteamId` integer DEFAULT 0, `Groups` text DEFAULT 'Default,' C' at line 2
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 12:18 PM
But not at "Transaction" command I guess 😄
Avatar
yea lol
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 12:18 PM
weird.. then create the table on your own and remove that one.. lol
Avatar
why tf is it not importing from json its correct
Avatar
Deleted User 1/15/2019 12:19 PM
It will not work
12:19 PM
no matter the export way that you will use from db browser
12:19 PM
it will not work
Avatar
why lol its not some magical database
12:21 PM
i dont feel like typing 1900 lines by hand lol
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 12:23 PM
For me it worked
12:23 PM
In MariaDB atleast 😄
12:23 PM
12:24 PM
why does it export steam id like this
12:24 PM
number too long ?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 12:24 PM
You might need to tell your excel to format it right 😄
12:24 PM
currently its taking it as a number
Avatar
you're genious
12:27 PM
damn cant save it into csv like this
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 12:27 PM
use .sql file its the cleaner way to do it.. lol (edited)
Avatar
does not seem to export it
12:28 PM
or import
12:28 PM
i mean
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 12:29 PM
how does your "Import" looks like? 😄
12:29 PM
anything i need to change here ?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 12:29 PM
just use "Select ALL" button
12:29 PM
and then click okay 😄
Avatar
yeah i did that the last time and it failed upon importing
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 12:30 PM
send me that file via pm then 😄
12:32 PM
how does your import looks like still
12:33 PM
syntax is errored out
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 12:34 PM
Yea but how do you import?
12:34 PM
via shell?
Avatar
mysql server import feature
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 12:35 PM
how does that looks like? 😄
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 12:37 PM
Ah.. remove first and last line again
12:37 PM
forgot it lol
12:37 PM
still shows an error here
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 12:38 PM
AUTOINCREMENT doesn't seem to be supported
12:38 PM
1 sec 😄
12:38 PM
try using AUTO_INCREMENT
Avatar
good script to convert db here https://stackoverflow.com/a/1067151
I found this Perl script while migrating my SQLite database to mysql I was wondering (since I don't know Perl) how could one rewrite this in Python? Bonus points for the shortest (code) answer :)...
Avatar
oh shit that might have worked
12:39 PM
please import
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 12:40 PM
Its caused by; You had a SQL3 file 😄
Avatar
ughhh
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 12:40 PM
Now you want to have it into MySQL - some keywords are different (edited)
Avatar
still not importing
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 12:40 PM
new error? 😄
Avatar
ERROR 1101 (42000) at line 1: BLOB, TEXT, GEOMETRY or JSON column 'Groups' can't have a default value
12:41 PM
yeah 😛
12:42 PM
@Michidu how is that script even used lol
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 12:42 PM
Its a Phyton script 😄
Avatar
yes, it takes sqlite dump
Avatar
it has to be in the same folder ?
Avatar
its better, you can run it like so script.py sqlitedump.sql > fixed.sql
12:44 PM
from cmd
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 12:44 PM
In general; It would do the work you're currently doing manually 😄
Avatar
let my try it
12:47 PM
damn it exported a 0kb file
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 12:48 PM
sounds good
Avatar
yeah lol who needs the data anyway
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 12:48 PM
mv google /dev/null
Avatar
is my python install borked or something
Avatar
probably you did something wrong
Avatar
fuck me i pasted it inside notepad++ and forgot to save the text
12:51 PM
damn i'm retarded
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 12:51 PM
Avatar
ERROR 1273 (HY000) at line 1: Unknown collation: 'NOCASE'
12:53 PM
even after the script 😮
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 12:53 PM
remove COLLATE NOCASE
Avatar
now it says groups cant have a default value
12:55 PM
i think i'm close
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 12:57 PM
Since you already got the big part.. do it manually
12:57 PM
its just 4-5 lines 😄
Avatar
ERROR 1062 (23000) at line 6: Duplicate entry '1' for key 'PRIMARY'
12:57 PM
says its duplicated but i cant find anything that is duped (edited)
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 12:58 PM
Happy that im using MariaDB.. lol
Avatar
Deleted User 1/15/2019 1:00 PM
@WETBATMAN Use copy past and stop loosing time lmao
Avatar
bro
1:00 PM
its 1900 lines
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 1:00 PM
no
1:00 PM
You already came to the permission part
1:00 PM
Do the rest manually lol
Avatar
Deleted User 1/15/2019 1:00 PM
i have 12k line xD
1:01 PM
its fast
1:01 PM
it take 2minutes to copy past 10k line
Avatar
how tf does it take 2 min 😛
1:02 PM
what the fuck is it complaining about its all correct
1:04 PM
i'm gonna cry
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 1:07 PM
`CREATE TABLE IF NOT EXISTS `Players` (`Id`integer NOT NULL PRIMARY KEY AUTO_INCREMENT,`SteamId`integer DEFAULT 0,`Groups`text);` `CREATE TABLE IF NOT EXISTS `Groups` (`Id`integer NOT NULL PRIMARY KEY AUTO_INCREMENT,`GroupName`text NOT NULL,`Permissions` text);` (edited)
1:07 PM
Use these before inserting
1:08 PM
and remove the CREATE TABLE command from your SQL file. It will work then 😄 (edited)
Avatar
got as far as to import the db
1:38 PM
but now i get this
1:38 PM
1:38 PM
and the plugin only lists 2 groups when there should be 3
2:09 PM
FUCK
2:09 PM
YEAAAAAAAAH
2:10 PM
finally moved this fucking database
2:15 PM
thx @𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 it looks like the groups created in mysql have different names and that is why it didnt work
Avatar
MariaDB ❤
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 2:40 PM
Yea.. Foppa knows what is good
Avatar
cant wait to do all this again with arkshop ❤
Avatar
ummm
3:17 PM
does mysql take some time to update or what ?
3:17 PM
cant revoke permissions for one of my groups
3:34 PM
umm
Avatar
i cant seem to be able to revoke a permission or delete a group now that its mysql
4:07 PM
4:07 PM
although my setup seems correct
4:07 PM
tried both rcon and ingame
4:08 PM
tested it before and added an admins permission to the admin group and that worked fine
Avatar
i can add any group/permission but cant delete any
Avatar
you do it via commands?
Avatar
yes
4:36 PM
tried both rcon and ingame
Avatar
any errors in console then? (edited)
4:38 PM
reports success but the group is never removed
4:38 PM
Avatar
it's not a console though
Avatar
have tried from console too does the same thing
Avatar
server console i mean
Avatar
if you wish i can go ingame try it again and screenshot it
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/15/2019 4:40 PM
He means the actual console - the black window opening on startup 😄 (edited)
Avatar
ah right
4:42 PM
nothing
4:44 PM
4:44 PM
i even had this moderator group removed in the sqlite file and it did not show up when i did permissions.listgroups
4:45 PM
but when i converted db now it appers
Avatar
that weird, only this one doesn't work?
Avatar
only removal of groups does not work
Avatar
maybe something happened in the converting process
Avatar
i tried to add a test group just now which worked fine
4:45 PM
but i cannot remove it
4:46 PM
adding permissions also works fine
Avatar
well.. does the account for your api user to write?
Avatar
yes its root
4:46 PM
Well that's weird then.
Avatar
also i made the plugin create the tables first before i moved them
4:47 PM
so i doubt anything is corrupted
Avatar
Deleted User 1/15/2019 4:47 PM
@WETBATMAN try this go to User and privileges and Root
4:47 PM
Change Limit to host matching
4:47 PM
change from localhost
4:47 PM
to %
Avatar
but it has write permission when i added the test group it was immediately updated
Avatar
Yeah that should be done if you want the account to have 0% security 😃
Avatar
Deleted User 1/15/2019 4:48 PM
its just the remote connection
Avatar
it's all connections
Avatar
Deleted User 1/15/2019 4:48 PM
All connection with the good password
Avatar
Anyway, do you run your mysql on the same machines as the servers?
Avatar
yes i do
Avatar
change localhost -> 127.0.0.1
Avatar
does that do anything ?
Avatar
even though localhost should works
Avatar
it does it writes to db
Avatar
Have you tried before the actually migration?
Avatar
i created a test group and it was immediately written into the db
4:50 PM
but i cannot remove it
Avatar
Deleted User 1/15/2019 4:50 PM
when you go cheat Permissions.ListGroups
4:50 PM
it give you the list of existing groups ?
Avatar
yes
Avatar
Deleted User 1/15/2019 4:51 PM
so it can read and write on the db
4:51 PM
Oo
4:51 PM
look
4:51 PM
i run the command to remove it
4:51 PM
plugin reports success
4:51 PM
but the group still exists
Avatar
hehe i know why
4:51 PM
but i have a work around for ya
Avatar
why tho ?
Avatar
well work around: DELETE FROM PermissionGroups WHERE Id = <ID OF YOUR GROUP> (edited)
4:54 PM
Since it's mysql 😃 i don't see the needs to have the commands 😛
Avatar
i dont actually care about those groups its just i was wondering if this would compromise anything else
Avatar
i will try in my test system
Avatar
Deleted User 1/15/2019 4:56 PM
@WETBATMAN are you using Navicat ?
Avatar
nop
Avatar
Deleted User 1/15/2019 4:57 PM
Well dumb ass way xD use navicat to connect to your db go to the groups table right lcick delete the record
4:57 PM
click
4:57 PM
xD
Avatar
*drop all tables
Avatar
It doesn't remove for me either 😃
Avatar
Deleted User 1/15/2019 5:01 PM
lol let me test too
5:03 PM
it work for me
Avatar
@Michidu I'm not sure if it should be a ? sign in this section. should be something connect to the FString "group" { db_.execute(fmt::format("DELETE FROM PermissionGroups WHERE GroupName = '?';", group.ToString())); }
Avatar
? is fine here
5:13 PM
but it doesn't give any errors
Avatar
@Foppa you use legacy auth or the other one ?
5:17 PM
because i could not get it to connect with the normal one i had to install it under legacy
5:21 PM
what do you use for sql management i use MySQL workbench and its kinda unintuitive
Avatar
Well im not using the Microsoft distribution. I have a clean MySQL on linux 😃
👍 1
Avatar
hmm 😛
Avatar
So i only do queries
Avatar
so to delete a group i only run the commands ?
5:26 PM
DELETE FROM PermissionGroups WHERE Id = <ID OF YOUR GROUP>
Avatar
but what about if any players were in that group ?
Avatar
Just make a select first to get th id of the group
5:26 PM
should be 5
Avatar
Yes correct
5:27 PM
Well yeah if there is members you needs to remove them from the group first
Avatar
but there does not seem to be a command which returns which players are in that group 😦
5:31 PM
5:31 PM
i see some steam id's arent in any group
5:32 PM
could permissions be failing to add them ?
5:33 PM
something is up here all those entries are new players
5:33 PM
(connected after i switched to mysql)
5:33 PM
and they arent placed in any group
Avatar
Deleted User 1/15/2019 5:37 PM
I think that your db have something wrong with the export
5:37 PM
Also if you are using public permissions from the forum you need to add default to groups in player table
Avatar
default groups exist already
5:38 PM
it automatically creates admins and Default
Avatar
Deleted User 1/15/2019 5:38 PM
No not on playergroups table
5:39 PM
In players table the groups colum should have default group as a default value
5:39 PM
PermissionGroup colum
Avatar
where to check that
Avatar
Deleted User 1/15/2019 5:40 PM
In the table settings
5:40 PM
That why i told you to use navicat
5:41 PM
settings look like this
Avatar
Deleted User 1/15/2019 5:42 PM
Default expression
5:42 PM
Should be default
Avatar
PermissionGroups Default = Default ?
Avatar
Deleted User 1/15/2019 5:42 PM
Yes
5:42 PM
This way each time a player is created in the db
5:42 PM
He got default group auto
Avatar
is it just Default or Default,
Avatar
Deleted User 1/15/2019 5:43 PM
The secoond one if my memory is good
5:44 PM
Its been ling time that i setup everything to use mysql
5:44 PM
I think it Default,
Avatar
any other settings i'm missing maybe ?
Avatar
Deleted User 1/15/2019 5:46 PM
I dont think so im not using permissions from the forum so im not sure
Avatar
what do you mean not from the forum 😛
Avatar
Deleted User 1/15/2019 5:47 PM
My permissions was edited
Avatar
hmm wondering if i missed something else and that is why it cant remove the group
Avatar
Deleted User 1/15/2019 5:48 PM
I think your db was corrupted during the export
Avatar
no the data is fine
5:48 PM
one thing that i think can be missing is the default rules and stuff like that
Avatar
Deleted User 1/15/2019 5:48 PM
The data are not fine
5:49 PM
All your player have permissionsGroup colum empty
Avatar
not all
5:49 PM
some of them
5:49 PM
i fixed it right now by adding default, to them
5:50 PM
now that the rule is set it will add them auto
Avatar
Deleted User 1/15/2019 5:50 PM
Thzy should all have at least default group
Avatar
yea the default thing was not set
5:50 PM
and i know why
5:50 PM
okay so Groups has Default=Default,
5:50 PM
SteamID=0
5:51 PM
ID cant be null
5:51 PM
that should be all the rules
5:55 PM
any difference between INTG and BIGINTG ? (edited)
Avatar
does collate nocase have to be enabled in mysql or is it already default behavior ?
Avatar
@Deleted User can you please screenshot the settings of your tables and send them ?
Avatar
Deleted User 1/15/2019 6:36 PM
I send you that when im home
6:36 PM
But me i have the same table for shop and permissions
Avatar
all good
6:37 PM
i just wanna see the format is stores them in
Avatar
Deleted User 1/15/2019 6:39 PM
I send you that in 30min max
Avatar
Deleted User 1/15/2019 7:08 PM
@WETBATMAN
Avatar
can you also send permission groups ?
Avatar
Deleted User 1/15/2019 7:12 PM
Avatar
thx
Avatar
Deleted User 1/15/2019 7:13 PM
you'r welcome
Avatar
looking at the db settings i have everything correct now
7:39 PM
except maybe indexes ?
7:45 PM
alright adding/removing players from groups works
7:46 PM
the only thing that still does not work is removing aa group 😦
Avatar
Deleted User 1/15/2019 7:53 PM
thats weird
Avatar
yea my settings are correct now and i confirmed it adds new players correctly
7:54 PM
foppa has that too so i guess its just a bug (edited)
Avatar
@Kamio has this issue too so yea its a bug
Avatar
@WETBATMAN @Deleted User The Default group don't need to be added on players. Everyone has it built-in. If you want to remove a group manually from all players: UPDATE Players SET PermissionGroups = '' WHERE PermissionGroups LIKE "%<YOURGROUP>%"; Though it's not 100% perfect. if some has the group and something else they will loose the other groups. But i yeah it's something that could be for use.
Avatar
Deleted User 1/16/2019 7:40 AM
The default crash should be add to the table cause when the plugin create it, it dont give a default value to that column (edited)
Avatar
no my issue was that the default value was not set at all and because of this new players did not get placed into any group at all
Avatar
Deleted User 1/16/2019 7:54 AM
Yeah it was the same for me
Avatar
any decent ammo pool or alike mods ??
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/16/2019 11:50 AM
Damn... M2 these days
Avatar
is there anything related to json that should be unloaded if the plugin is unloaded ?
12:44 PM
12:44 PM
or is only a load function necessary
Avatar
you dont need to do anything with json in unload function
1:23 PM
about to compile but says function overloaded
Avatar
looks like function defination and declaration are different
Avatar
weird i used hook generator from ownprox
Avatar
check them
Avatar
damn wtf i had 4 errors restarted visual studio and now i have 6 😦
1:50 PM
restarted again and now 2 errors ? 😄
Avatar
don't restart it anymore just in case 😃
Avatar
yeah lol
1:51 PM
for some reason it was complaining that TargettingTeamField was not found in AActor
Avatar
its still here
Avatar
i think i know what is causing this
1:53 PM
bool Hook_APrimalDinoCharacter_CancelCurrentAttack(APrimalDinoCharacter* _this, bool bStopCurrentAttackAnim, float AttackAnimBlendOutTime, AController* EventInstigator, AShooterPlayerController* player_controller)
1:54 PM
i added the EventInstigator and Player_controler
1:54 PM
or is that not allowed ?
Avatar
added? you cant add anything to hooks
Avatar
how else can declare AShooterPlayerController as player_controller ?
Avatar
you mean you added names? It's fine as long as you don't add new arguments 😃
1:57 PM
how it looks in hook generator?
1:57 PM
i think it does it for you
Avatar
bool Hook_APrimalDinoCharacter_CancelCurrentAttack(APrimalDinoCharacter* _this, bool bStopCurrentAttackAnim, float AttackAnimBlendOutTime)
1:57 PM
this is the original one
Avatar
show full output, including declare hook
Avatar
DECLARE_HOOK(APrimalDinoCharacter_CancelCurrentAttack, bool, APrimalDinoCharacter*, bool, float); bool Hook_APrimalDinoCharacter_CancelCurrentAttack(APrimalDinoCharacter* _this, bool bStopCurrentAttackAnim, float AttackAnimBlendOutTime) { return APrimalDinoCharacter_CancelCurrentAttack_original(_this, bStopCurrentAttackAnim, AttackAnimBlendOutTime); } ArkApi::GetHooks().SetHook("APrimalDinoCharacter.CancelCurrentAttack", &Hook_APrimalDinoCharacter_CancelCurrentAttack, &APrimalDinoCharacter_CancelCurrentAttack_original); ArkApi::GetHooks().DisableHook("APrimalDinoCharacter.CancelCurrentAttack", &Hook_APrimalDinoCharacter_CancelCurrentAttack);
1:58 PM
wait i have to add it to the first hook too no ?
Avatar
i don't see EventInstigator or player here 😃
1:59 PM
means it's not here
1:59 PM
and of course you can't just add them
Avatar
aw damn
2:00 PM
2:00 PM
how else do i declare names for those ?
2:01 PM
or i cant use event instigator entirely ?
Avatar
you have only dino here
2:02 PM
you can get something from dino if you need
Avatar
so instead of event instigator something dino related ? (edited)
Avatar
what you are trying to do?
Avatar
block secondary attack if a dragon is near enemy structures
Avatar
block dino attack?
Avatar
yea secondary attack
2:04 PM
its fire breath and goes through walls
Avatar
so you need to disable dragon attacks if he is near enemy buildings
Avatar
yes
2:05 PM
preferably only one (edited)
2:05 PM
it has 2 attacks
2:05 PM
bite and fire breath
Avatar
this hook won't help you, probably it's better to hook aprimalstructure_takedamage instead. Then check if attacker is dragon
2:07 PM
probably you can get damage type too but i haven't tried to do it yet
Avatar
What is the ATLAS RCON socket message encoding?
Avatar
yeah but due to my other plugin dragons cant damage structures so i assume that hook wont activate ?
Avatar
modify your other plugin then
2:09 PM
default encoding is ASCII probably
Avatar
but why is there no other way to detect if its a dragon ?
Avatar
this one probably the easiest
Avatar
but tamed dragons dont damage metal anyways so it still wont activate ?
Avatar
it can if your lucky, depends on hook order
Avatar
what is different about doing it this way though
Avatar
hooking CancelCurrentAttack? it won't work at all
Avatar
what do you mean
Avatar
that it won't work for your task 😃
Avatar
does it only work for players then or what ?
Avatar
this function can be called only when attack is already being canceled (edited)
2:15 PM
DECLARE_HOOK(APrimalDinoCharacter_CanAttack, bool, APrimalDinoCharacter*, int);
2:15 PM
what about this one ?
Avatar
might work if you can find dino target
Avatar
just check if its near enemy structures ?
2:16 PM
took code from you arkhomes 😛
Avatar
ASCII doesn't support Chinese, right?
Avatar
dont think so that's why we had unicode rcon
2:21 PM
for ark
Avatar
I use C # for socket to receive messages, Chinese is always? ? ?
2:23 PM
Maybe I should see the source code for ark rcon?
Avatar
Server Plugins for ARK: Server API. Contribute to Michidu/Ark-Server-Plugins development by creating an account on GitHub.
Avatar
thank you
Avatar
does dll main have to be removed from the projects source files or am i doing something wrong
Avatar
you need to have only one dllmain
Avatar
yea it said it was already defined in the main .cpp file
4:30 PM
if i cant add it to the hook how should i declare EventInstigator & player_controller; ? (edited)
Avatar
You dont have them
Avatar
like not use them at all ?
Avatar
As i said you can use this hook only if you can find Dino target from the Dino himself
Avatar
CanAttack or Cancel Attack ?
Avatar
how should i go about it first see if its a dragon and then check what its attacking ?
Avatar
yes, there should be target variable
Avatar
attack index ?
Avatar
its an int
Avatar
damn i cant even see any plugins that use target detection
Avatar
no one use it
5:55 PM
any other way to go about this ?
Avatar
takedamage hook
Avatar
but as you said it sometimes works and sometimes does not 😛
Avatar
because of your other plugin
Avatar
yeah but it does not damage metal anyway so the outcome will be the same
Avatar
dragons dont damage metal
5:58 PM
only stone
Avatar
how it affects you?
Avatar
if my plugin is interacting with this one by making them not damage any structure wont the outcome be the same ?
Avatar
modify your other plugin or disable it heh
Avatar
what interacts with the current plugin dragons not being able to damage something or the same hook interacting with this one ?
6:03 PM
doesnt the dragon need to actually damage the structure to activate this hook ?
Avatar
so that's what i'm telling you 😛
6:03 PM
they dont damage metal without ANY plugins
Avatar
that what you need to do i thought - "disable dragon attacks if he is near enemy buildings" if dragon can't attack metal, it's fine i guess 😃 (edited)
Avatar
i want to disable the attack because their flame has a terrible hitbox and it kills everything THROUGH the wall
6:06 PM
not that it damages the structure itself
Avatar
possible, the hook will be called on other stuctures if they are damaged and not metal
Avatar
flame does not break any structures
6:08 PM
only bite
6:08 PM
unless its wild 😛
Avatar
takedamage called for every damage
Avatar
is there no way to integrate the check from arkhomes though
6:09 PM
my other plugin is finally working fine i dont want to break it for this
Avatar
you can try to hook deal damage function instead (not sure how exactly it called)
Avatar
+ it can be abused by placing something near the dragon and it will not attack anymore 😛
6:10 PM
which class is it
6:10 PM
AAactor ?
Avatar
dino
Avatar
APrimalDinoCharacter ?
Avatar
maybe, you actually need to find such function
6:12 PM
it's just an idea 😃
Avatar
maybe hook something like deal damage ?
6:13 PM
or a function that triggers an attack ?
6:13 PM
then check if its a dragon ?
6:13 PM
DECLARE_HOOK(APrimalDinoCharacter_DoAttack, bool, APrimalDinoCharacter*, int, bool, bool); ?
Avatar
that what i suggested 😃
6:13 PM
yes, try
Avatar
whoops misread it
6:16 PM
bool Hook_APrimalDinoCharacter_DoAttack(APrimalDinoCharacter* _this, int AttackIndex, bool bSetCurrentAttack, bool bInterruptCurrentAttack)
6:16 PM
so i can only use whatever is in this Bool ?
6:24 PM
?
Avatar
good start
Avatar
i ripped some code from arkhomes about enemy structure detection but i dont know how to define player_controller
6:26 PM
in a statement here
6:26 PM
since i can only use whatever is in that bool
Avatar
looks like need to get target again
Avatar
-_-
6:30 PM
attack index is used for that ?
Avatar
detection code needs to be something with APrimalDinoCharacter ?
Avatar
damn i wish there was at least a template or something about this dont even know where to start 😦
Avatar
Rogue Leader 1/16/2019 7:32 PM
You can use dpp as a template.
7:33 PM
It has the ability to check for enemy structures in a radius.
7:34 PM
Then you can use the takedamage hook to stop damage if it's from a dragon near an enemy structure.
7:34 PM
As for checking which attack it is, idk. You can debug and see if damagecauser or eventinstigator changes based on the attack.
Avatar
i used enemy structure detection from michidu's code but it relies on AShooterPlayerController
7:37 PM
bool Hook_APrimalDinoCharacter_DoAttack(APrimalDinoCharacter* _this, int AttackIndex, bool bSetCurrentAttack, bool bInterruptCurrentAttack)
7:37 PM
this hook only has APrimalDinoCharacter
Avatar
Rogue Leader 1/16/2019 7:37 PM
Do you know what that hook does?
Avatar
not entirely sure
7:38 PM
probably triggers upon an attack being casted
Avatar
Rogue Leader 1/16/2019 7:39 PM
It's probably just the function that allows the AI to determine whether to retaliate an attack
7:39 PM
But idk, it's signature isn't descriptive enough
7:41 PM
I'd recommend using aprimaldinocharacter and ashooterplayercontroller takedamage hooks instead.
7:42 PM
And if a dino or player takes damage from a dragon that is near an enemy structure then negate it.
7:42 PM
Then work on figuring out how to determine what attack was used if possible.
7:43 PM
It would just render dragons useless near enemy structures. (edited)
Avatar
so both hooks have to be used ye ?
7:44 PM
one for players and one for dinos ?
Avatar
Rogue Leader 1/16/2019 7:46 PM
Yea if you're trying to stop damage to both
7:47 PM
And they would be identical except for signatures for the return statements and function signatures
Avatar
UWorld* world = ArkApi::GetApiUtils().GetWorld(); TArray<AActor*> new_actors; TArray<AActor*> actors_ignore; TArray<TEnumAsByte<enum EObjectTypeQuery>> types; UKismetSystemLibrary::SphereOverlapActors_NEW(world, _this->RootComponentField()->RelativeLocationField(), static_cast<float>((DinoPassiveProtection::MinimumEnemyStructureDistanceInFoundations * 300)), &types, APrimalStructure::GetPrivateStaticClass(), &actors_ignore, &new_actors); for (const auto& actor : new_actors) { APrimalStructure* structure = static_cast<APrimalStructure*>(actor); //Log::GetLog()->warn(FVector::Distance(_this->RootComponentField()->RelativeLocationField(), actor->RootComponentField()->RelativeLocationField())); if (structure->TargetingTeamField() != _this->TargetingTeamField()) { isNotNearEnemyStructures = false; break; } else { isNotNearEnemyStructures = true; } }
8:00 PM
this is the enemy structure detection code ye ?
Avatar
bool IsEnemyStructureNear(AShooterPlayerController* player_controller, int radius) { UWorld* world = ArkApi::GetApiUtils().GetWorld(); TArray<AActor*> new_actors; TArray<AActor*> actors_ignore; TArray<TEnumAsByte<enum EObjectTypeQuery>> types; UKismetSystemLibrary::SphereOverlapActors_NEW(world, ArkApi::IApiUtils::GetPosition(player_controller), static_cast<float>(radius), &types, APrimalStructure::GetPrivateStaticClass(), &actors_ignore, &new_actors); for (const auto& actor : new_actors) { APrimalStructure* structure = static_cast<APrimalStructure*>(actor); if (structure->TargetingTeamField() != player_controller->TargetingTeamField()) return true; } return false; }
8:13 PM
i'm using this atm
8:43 PM
run into the same issue cant declare player_controller
Avatar
Rogue Leader 1/16/2019 9:54 PM
Mine doesn't use one
Avatar
what exactly is changed in API 3.0's requests ?
3:24 PM
the wiki does not seem to be updated
Avatar
@𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 have you converted AntiFamilyShare to api 3.0 yet? std::string apiKey = config["APIKey"]; API::Requests::Get().CreateGetRequest(fmt::format("http://api.steampowered.com/IPlayerService/IsPlayingSharedGame/v0001/?key={}&steamid={}&appid_playing=346110&format=json", apiKey, steamId), std::function<void > & isPlayingSharedGame); i have something like this but i'm retarded and cant get it to work
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/17/2019 5:14 PM
I haven't converted it to API version 3.0 since no one really seems to be using the newer version of the API yet
5:14 PM
ownprox is but he's using std::bind which is useless in this case i think
Avatar
which is not true ^^
5:15 PM
requests in wiki were already updated btw
Avatar
bool CreateGetRequest(const std::string& url, const std::function<void(bool, std::string)>& callback);
5:16 PM
this is the one in the wiki
5:16 PM
Api::Requests::CreateGetRequest(std::string& url, const std::function<void(bool, std::string)>& isPlayingSharedGame);
5:16 PM
and this is the one adrian is using
5:16 PM
but with api 3.0 it fails to compile
5:17 PM
std::string = type name is not allowed
5:17 PM
in examples you can find updated one
Avatar
yeah this one
5:20 PM
so does it have to contain the full url now ?
5:20 PM
std::string does not seem to work
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/17/2019 5:24 PM
What does your code currently looks like?
Avatar
API::Requests::Get().CreateGetRequest(fmt::format( "http://api.steampowered.com/IPlayerService/IsPlayingSharedGame/v0001/?key={}&steamid={}&appid_playing=346110&format=json", apiKey, steamId), std::bind(& isPlayingSharedGame);
Avatar
bool CreateGetRequest(const std::string& url, const std::function<void(bool, std::string)>& callback);
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/17/2019 5:26 PM
fmt::format is giving you a std::wstring btw
Avatar
its still this
5:26 PM
lol are you updating it now 😛
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/17/2019 5:27 PM
Nope not today
5:27 PM
lol
5:27 PM
but im trying to help you
Avatar
no i asked michidu
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/17/2019 5:27 PM
oh sorry
5:27 PM
lmao
Avatar
site had a line with Pointer to requests and now its gone 😛 (edited)
Avatar
yea, but it still was correct 😄
Avatar
API::Requests::Get().CreateGetRequest(std::string& url, const std::function<void(bool, std::string)>& isPlayingSharedGame);
5:28 PM
still does not work if it is correct
Avatar
@𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 😃
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/17/2019 5:30 PM
He doesn't want my help 😦
Avatar
if only the pointer is changed it should work now 😛
Avatar
i'm sure he wants 😉
5:31 PM
lel
Avatar
no one saw it (edited)
Avatar
i did XD
5:32 PM
5:33 PM
when you dont have discord nitro so you have to use png's
5:33 PM
🤷
5:33 PM
anyway so is it just the pointer that was changed ?
Avatar
no, wiki was always correct. I just removed pointer section because it useless and incorrect 😃
5:34 PM
since it wasn't even a pointer
Avatar
so whats the change in requests from 2.9 to 3.0 (if any) ? (edited)
Avatar
3.0 uses curl
5:37 PM
so requests were completely rewritten 😃
Avatar
but if the wiki was always correct than this request should be correct too
5:44 PM
tf
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/17/2019 6:07 PM
You may still need to include Request.h but thats the updated code:
6:07 PM
void Hook_AShooterGameMode_PreLogin(AShooterGameMode* _this, FString* Options, FString* Address, TSharedPtr<FUniqueNetId, 0>* UniqueId, FString* authToken, FString* ErrorMessage) { const uint64 steamId = static_cast<FUniqueNetIdSteam*>(UniqueId->Get())->UniqueNetId; std::string apiKey = config["APIKey"]; FString url = FString::Format( "http://api.steampowered.com/IPlayerService/IsPlayingSharedGame/v0001/?key={}&steamid={}&appid_playing=346110&format=json", apiKey, steamId); API::Requests::Get().CreateGetRequest(url.ToString(), [steamId](bool success, std::string response) { isPlayingSharedGame(success, response, steamId); }); AShooterGameMode_PreLogin_original(_this, Options, Address, UniqueId, authToken, ErrorMessage); }
💯 1
6:07 PM
void isPlayingSharedGame(bool success, std::string response, uint64 steamId) { if (success) { if (!response.empty() && !response.find("Forbidden")) { nlohmann::json parsedResponse = nlohmann::json::parse(response); const uint64 lenderSteamId = std::stoull( static_cast<std::string>(parsedResponse["response"]["lender_steamid"]), nullptr); if (lenderSteamId != 0) { if (!VectorContains(steamId)) { familysharing.push_back(steamId); } } } else { Log::GetLog()->warn("Please check your config for a valid API Key"); } } else { Log::GetLog()->warn("API Limit reached(100.000 per 24h) / Steam API down"); } }
Avatar
so what exactly was causing it not to compile with api 3 ?
6:08 PM
and thanks for posting the source ofc
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/17/2019 6:09 PM
Like Michidu said; Version 3.0 brought us a new library called CURL (you might know it from linux).. ofc the usage of the library is different
Avatar
hmm getting a linker error
6:14 PM
nvm i think i have DLLMAIN twice
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/17/2019 6:14 PM
again? haha 😄
Avatar
yeah that was the case 😛
6:15 PM
thank you!
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/17/2019 6:15 PM
you're welcome 😃
6:22 PM
hmm weird
Avatar
probably you dont have dllmain at all now 😄
6:22 PM
isnt this supposed to be it ?
Avatar
looks so
Avatar
its in the main source
Avatar
Deleted User 1/17/2019 6:24 PM
Never mind
Avatar
look at my screenshot it says API 3.0 😛
Avatar
Deleted User 1/17/2019 6:24 PM
I just saw 3.0
6:25 PM
6:26 PM
I was using copy past and replace files to update the api
6:26 PM
But didn't want to update until i deleted all files and unziped the api again
Avatar
so what's this error attributed to ?
Avatar
Deleted User 1/17/2019 7:28 PM
For me it was the fact that i was not using the last api version for you i dont know
7:28 PM
xD
Avatar
try to compile with new library maybe
Avatar
ARK-Server-API-master\out_lib
7:41 PM
i have this set in the linker
7:41 PM
api 3.0
Avatar
Deleted User 1/17/2019 9:04 PM
@WETBATMAN
9:04 PM
Lmaooo
9:05 PM
what are you trying to compile 😛
Avatar
Deleted User 1/17/2019 9:05 PM
My lootbox xD
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/17/2019 9:06 PM
Seems like you included 2 different header
9:06 PM
Maybe 1 from old 1 new or New Atlas and New Ark
Avatar
Deleted User 1/17/2019 9:06 PM
Oh
9:07 PM
i didn't remove the ark headers
9:07 PM
lol
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/17/2019 9:07 PM
😄
Avatar
Deleted User 1/17/2019 9:07 PM
lmaooo 200IQ
9:11 PM
Fuck it taked me 500hours to compile with ark api
9:11 PM
now i will need 1k hour to compile with atlas
9:11 PM
lol
Avatar
any idea what this entry point issue is ?
9:12 PM
old version of AntiFamilySharing throws the same error with new api
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/17/2019 9:13 PM
Which version of API are you using?
Avatar
3.0
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/17/2019 9:13 PM
Old is compatible with 2.9 - if you trying to run it with 3.0 idk what would happen.. lel
Avatar
yeah that's the thing it throws the same error with 3.0 api
9:14 PM
same with this new source you posted
Avatar
Deleted User 1/17/2019 9:20 PM
Ok im looking for IQ to buy if you found an ebay annoucement of someone selling IQ
Avatar
float Hook_APrimalDinoCharacter_TakeDamage(APrimalDinoCharacter* _this, float Damage, FDamageEvent* DamageEvent, AController* EventInstigator, AActor* DamageCauser) { ACharacter* character = EventInstigator->CharacterField(); const int enemy_min_distance = AntiFireBreath::config["General"]["EnemyStructureMinDistance"]; if (character != nullptr && character && character->IsA(APrimalDinoCharacter::GetPrivateStaticClass())) { APrimalDinoCharacter* dino = static_cast<APrimalDinoCharacter*>(character); FString descr; dino->GetDinoDescriptiveName(&descr); if (descr.Contains(L"Dragon") || descr.Contains(L"Raphus") || descr.Contains(L"Primordius")) return 0; } return APrimalDinoCharacter_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser); }
1:10 PM
would something like this make the target not take damage ?
1:10 PM
if attacker is a dragon ?
Avatar
it indeed does prevent a dragon from dealing damage to anything but if something else hits the target it crashes the server 😛
Avatar
it would prevent other dinos getting damage (edited)
Avatar
yeah i got that part to finally work
1:52 PM
{ return APrimalDinoCharacter_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser); }
1:52 PM
i forgot this LOL
1:53 PM
now onto enemy structure detection...
3:38 PM
wtf
Avatar
Deleted User 1/18/2019 3:41 PM
lmao
Avatar
damn i cant get this enemy structure detection to work 😦
3:42 PM
either everything takes damage or nothing 😛
4:06 PM
my enemy structure detection code looks like this
4:06 PM
but it does not seem to work as i cant damage any dino regardless if its near an enemy foundation or not (edited)
4:06 PM
what am i doing wrong ?
Avatar
Rogue Leader 1/18/2019 5:11 PM
You need a return statement after your for loop
Avatar
will return 0 not do ?
Avatar
Rogue Leader 1/18/2019 5:12 PM
And one after your first if block
Avatar
Rogue Leader 1/18/2019 5:13 PM
You need a return statement at every point of your logic where there is an end (edited)
Avatar
this is what it looks like right now
Avatar
Rogue Leader 1/18/2019 5:14 PM
Mentally run through all the possibilities in your logic. Is there a return statement at all the ends?
Avatar
well first detection is if its an event instigator
Avatar
Rogue Leader 1/18/2019 5:14 PM
If certain if conditions do not pass, does it still hit a return statement?
5:15 PM
Remember, you are intercepting the original function call, so if you do not tell your hook to return to it once your hook determines it's not needed it will do nothing.
Avatar
hmm interesting
5:16 PM
so for every IF statement there needs to be a return one
5:16 PM
?
Avatar
Rogue Leader 1/18/2019 5:17 PM
Not necessarily. There needs to be a return at every logical end of your logic though. (edited)
Avatar
i assume its not required for stuff like if (EventInstigator && EventInstigator->CharacterField()) ?
Avatar
Rogue Leader 1/18/2019 5:18 PM
What happens if your second if block doesn't execute?
Avatar
second block ?
5:19 PM
the structure detection ?
Avatar
Rogue Leader 1/18/2019 5:19 PM
if(something){----this is a block---}
Avatar
if (EventInstigator && EventInstigator->CharacterField()) { ACharacter* character = EventInstigator->CharacterField(); if (character != nullptr && character && character->IsA(APrimalDinoCharacter::GetPrivateStaticClass())) { APrimalDinoCharacter* dino = static_cast<APrimalDinoCharacter*>(character); FString descr; dino->GetDinoDescriptiveName(&descr); if (descr.Contains(L"Direwolf") || descr.Contains(L"Wyvern") || descr.Contains(L"Broodmother")) { UWorld* world = ArkApi::GetApiUtils().GetWorld(); TArray<AActor*> new_actors; TArray<AActor*> actors_ignore; TArray<TEnumAsByte<enum EObjectTypeQuery>> types; UKismetSystemLibrary::SphereOverlapActors_NEW(world, EventInstigator->RootComponentField()->RelativeLocationField(), static_cast<float>((AntiFireBreath::MinimumEnemyStructureDistanceInFoundations * 300)), &types, APrimalStructure::GetPrivateStaticClass(), &actors_ignore, &new_actors); for (const auto& actor : new_actors) { APrimalStructure* structure = static_cast<APrimalStructure*>(actor); Log::GetLog()->warn(FVector::Distance(_this->RootComponentField()->RelativeLocationField(), actor->RootComponentField()->RelativeLocationField())); if (structure->TargetingTeamField() != _this->TargetingTeamField()) { return 0; } else { return APrimalDinoCharacter_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser); } } } } }
5:20 PM
well if it does not execute i would assume nothing happens
Avatar
Rogue Leader 1/18/2019 5:22 PM
Does it return anything if it doesn't execute?
5:22 PM
I can't match up the braces well on mobile.
5:23 PM
5:23 PM
well it checks if it indeed is a dino
Avatar
Rogue Leader 1/18/2019 5:27 PM
Your structure detection has errors in it
5:27 PM
You are checking if the attacked dinos tribe matches the structure
Avatar
switch to damage causer instead of _this ?
Avatar
Rogue Leader 1/18/2019 5:29 PM
Or event instigator
5:29 PM
Idk which will be the dino that's attacking (edited)
Avatar
yeah it should be eventinstigator
5:30 PM
if (structure->TargetingTeamField() !=EventInstigator->TargetingTeamField())
5:30 PM
something like this ye ?
Avatar
Rogue Leader 1/18/2019 5:31 PM
Yea
5:32 PM
But remove the else
5:32 PM
Otherwise it will only check a single structure then return 0 or original
Avatar
hmm i have some returns missing i assume because i loaded this build and i cant damage ANY dino
Avatar
Rogue Leader 1/18/2019 5:36 PM
Correct
5:37 PM
Follow your code logically. Make sure that every situation/flow of logic has a return it will reach.
5:37 PM
That's dev 101.
Avatar
how do i go about returning the original value
5:37 PM
return APrimalDinoCharacter_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser);
5:37 PM
just this ?
Avatar
Rogue Leader 1/18/2019 5:37 PM
Yup
Avatar
does it need else {return APrimalDinoCharacter_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser); }
5:38 PM
or just return it without that where its necessary ?
Avatar
Rogue Leader 1/18/2019 5:39 PM
Shouldn't need an else.
5:39 PM
It may be as simple as putting it after your first if blocks closing brace (edited)
Avatar
tried that and it blocked all dmg 😛
5:39 PM
putting it after the second one allows all dmg
Avatar
Rogue Leader 1/18/2019 5:40 PM
Your structure logic was broken then
5:40 PM
So all results before you fixed it were wrong (edited)
Avatar
i got it to display the distance in the console once but it did not actually prevent the dmg
5:41 PM
then i tossed shit around in the code and now it does not even do that
Avatar
maybe @GSH | MrOwlSky ?
Avatar
damn whatever i do and wherever i place the return statement it just does not work
Avatar
GSH | MrOwlSky 1/18/2019 6:29 PM
@NameIdeas
Avatar
Good Morning ^_^, looking over the API stuff
Avatar
good morning
Avatar
Deleted User 1/18/2019 7:03 PM
Good evening
Avatar
GSH | MrOwlSky 1/18/2019 7:56 PM
Good morning @NEP_PROP
Avatar
ImmutableLambda 1/18/2019 7:57 PM
Hey all. I'm just trying to get the basic DLL building and am running into a set of build errors: 1>dllmain.cpp 1>d:\wf\arkmodding\ark-server-api\version\core\public\api\ue\windows\windowsplatformatomics.h(24): error C2039: '_InterlockedIncrement64': is not a member of '`global namespace'' 1>d:\wf\arkmodding\ark-server-api\version\core\public\api\ue\windows\windowsplatformatomics.h(24): error C3861: '_InterlockedIncrement64': identifier not found 1>d:\wf\arkmodding\ark-server-api\version\core\public\api\ue\windows\windowsplatformatomics.h(48): error C2039: '_InterlockedDecrement64': is not a member of '`global namespace'' 1>d:\wf\arkmodding\ark-server-api\version\core\public\api\ue\windows\windowsplatformatomics.h(48): error C3861: '_InterlockedDecrement64': identifier not found 1>d:\wf\arkmodding\ark-server-api\version\core\public\api\ue\windows\windowsplatformatomics.h(72): error C2039: '_InterlockedExchangeAdd64': is not a member of '`global namespace'' 1>d:\wf\arkmodding\ark-server-api\version\core\public\api\ue\windows\windowsplatformatomics.h(72): error C3861: '_InterlockedExchangeAdd64': identifier not found 1>d:\wf\arkmodding\ark-server-api\version\core\public\api\ue\windows\windowsplatformatomics.h(95): error C2039: '_InterlockedExchange64': is not a member of '`global namespace'' 1>d:\wf\arkmodding\ark-server-api\version\core\public\api\ue\windows\windowsplatformatomics.h(95): error C3861: '_InterlockedExchange64': identifier not found 1>d:\wf\arkmodding\ark-server-api\version\core\public\api\ue\windows\windowsplatformatomics.h(112): error C2039: '_InterlockedExchange64': is not a member of '`global namespace'' 1>d:\wf\arkmodding\ark-server-api\version\core\public\api\ue\windows\windowsplatformatomics.h(112): error C3861: '_InterlockedExchange64': identifier not found
7:57 PM
Wondering if this is just something I'm doing wrong.
Avatar
ImmutableLambda 1/18/2019 8:27 PM
Nvm
Avatar
probably VS was outdated or you didn't enable c++ 17 support
Avatar
ImmutableLambda 1/18/2019 8:28 PM
Nah its actually even dumber
8:29 PM
But I figured it out after looking at intrin0.h
9:15 PM
damn what is wrong with this hook i've tried everything (it compiles fine but all dinos still take damage when it should prevent dmg near enemy structures)
Avatar
Rogue Leader 1/18/2019 10:19 PM
Put a bunch of the log warnings in every block to see where it's getting stopped at and print out the variables you are checking
Avatar
thing is its printing out both the distance from foundation AND the name of the attacker
10:20 PM
i'm lost 😛
Avatar
Rogue Leader 1/18/2019 10:22 PM
Print out the tribe ids and you're minimum distance too
10:23 PM
Maybe the calculation for foundation distance is weird
10:23 PM
Mine was based on tests on the island, so it may vary from map to map
Avatar
nop
10:23 PM
when i hit this therizino far from any foundations it does not print out the distance (edited)
10:24 PM
tribe id check works because i can damage wild dinos just fine
10:24 PM
i can damage the dinos by hand too
10:24 PM
that means dino check also works
10:26 PM
it looks like its failing somwhere in the attacker tag check
10:26 PM
cant damage this enemy dino with any other dino
10:30 PM
OH SHIT
10:30 PM
i think i got it
10:31 PM
@Rogue Leader you were right there were not enough return statements
10:32 PM
10:32 PM
seems to work now (edited)
Avatar
Rogue Leader 1/18/2019 10:32 PM
That else statement is still gonna cause issues
10:33 PM
It will return normal damage if the first structure in the list is from the attacking tribe
Avatar
which one
10:33 PM
the one under the structure check ?
Avatar
Rogue Leader 1/18/2019 10:34 PM
You ONLY want to break out of that for loop if it finds a structure that isn't an attacking structure
Avatar
so i add a break before that Else statement ?
10:35 PM
you had one but i think i removed it trying to make it work 😛
Avatar
Rogue Leader 1/18/2019 10:35 PM
no, just remove it
Avatar
without that else it does not work
Avatar
Rogue Leader 1/18/2019 10:35 PM
a return is basically a break statement out of a function but with a value
Avatar
without this else statement one of the checks gets broken
10:36 PM
wait let me test again
Avatar
Rogue Leader 1/18/2019 10:36 PM
you're game will also crash if eventinstagator is null because there is no return in that case
Avatar
Deleted User 1/18/2019 10:37 PM
24hours of negative IQ
Avatar
nvm it seems to work without that else statement
10:37 PM
wait i thought i had a nullpointer check
10:37 PM
if (_this->TargetingTeamField() > 10000 && character != nullptr && character && character->IsA(APrimalDinoCharacter::GetPrivateStaticClass())) ?
Avatar
Rogue Leader 1/18/2019 10:38 PM
you only tell it what to do if it's not null, but not if it is null
10:39 PM
if (EventInstigator && EventInstigator->CharacterField()) { //Do the things } return original; //if EventInstigator = NULL
Avatar
if (EventInstigator=nullptr) { return APrimalDinoCharacter_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser); }
10:39 PM
this ?
Avatar
ImmutableLambda 1/18/2019 10:39 PM
==
10:39 PM
can also do if (!EventInstigator)
Avatar
whoops you're right
Avatar
Rogue Leader 1/18/2019 10:40 PM
if (EventInstigator && EventInstigator->CharacterField()) { //Do the things } return APrimalDinoCharacter_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser);
10:40 PM
no need to check if it's null again. Youre first if already did that
Avatar
so just add a return if its null
10:41 PM
return original
Avatar
Rogue Leader 1/18/2019 10:41 PM
just add a return after the first if block ends
Avatar
all tests passed 😛
10:43 PM
for APrimalCharacter its the same thing ?
10:43 PM
to prevent dmg ?
Avatar
ImmutableLambda 1/18/2019 10:43 PM
If it works for the dino character
Avatar
well it seems to
10:43 PM
😄
10:44 PM
alright now that this is working
10:44 PM
how the fuck do i identify which attack the dragon is using 😛
Avatar
hmm AshooterCharacter Take damage seems to be a bit different
11:03 PM
wild dinos cant damage me and the console reports they're near a structure when they're not
11:08 PM
nvm it kinda works
11:14 PM
everything seems to work
11:14 PM
now i have to figure out a method of detecting only fire breath to block it
Avatar
ImmutableLambda 1/19/2019 12:10 AM
y'all tend to rent a VPS out or something as a test server for dev?
Avatar
Rogue Leader 1/19/2019 12:14 AM
I boot up a vm with a dev edition of windows and use ark server manager
Avatar
ImmutableLambda 1/19/2019 12:16 AM
Not sure if that'd help because I'm not sure whether the issue is that the game & server are clashing or if my PC just can't run both
12:19 AM
might as well try it
Avatar
Rogue Leader 1/19/2019 12:24 AM
Game and server won't clash. Server download is significantly smaller as well
Avatar
ImmutableLambda 1/19/2019 12:25 AM
I dunno its been stuck on trying to read a file for a long time.
Avatar
Rogue Leader 1/19/2019 12:25 AM
I'd recommend using ASM and then forwarding your ports. Just need like 16 gb of ram (edited)
Avatar
ImmutableLambda 1/19/2019 12:26 AM
I attach and pause it so I can see where its at in initialization, parrallel stacks shows all threads waiting except the one trying to load
Avatar
Rogue Leader 1/19/2019 12:26 AM
Sorry, accidentally deleted that trying to edit my message on mobile
Avatar
ImmutableLambda 1/19/2019 12:26 AM
Can't see the filename tho, optimized away. No idea if its making progress but its been like 45 min
12:27 AM
Could compile CoreUObject in that time.
Avatar
Rogue Leader 1/19/2019 12:27 AM
If you're using a HDD it can take over 10 minutes.
12:27 AM
Youre having trouble booting up the server itself?
Avatar
ImmutableLambda 1/19/2019 12:27 AM
Mhmm
12:28 AM
earlier I had the server ready to go and the game wouldn't start. Wouldn't even try. (edited)
12:28 AM
I'm essentially just trying to get a hello world running
Avatar
ImmutableLambda 1/19/2019 12:36 AM
At least I can "race" win install vs ark server init
Avatar
GSH | MrOwlSky 1/19/2019 5:49 AM
Anyone know MySQL Workbench good?
5:49 AM
Got a simple bug I can't wrap my head around on
Avatar
well i have a separate machine built at my house hosting all the live servers so if i need a test environment i just spin a testserver up on that machine
Avatar
GetDamageInstigator(AController * InstigatedBy, UDamageType * DamageType)
11:46 AM
can something like this be used to determine which attack the player is using ?
Avatar
in your hook DamageEvent probably has info about attack type
Avatar
can i log it straight into the console or do i have to initialize it first ?
Avatar
what do you mean with 'initialize' ?
Avatar
i mean how can i log what it outputs into the console
Avatar
you can output only more basic types
Avatar
hmm
Avatar
Deleted User 1/19/2019 6:58 PM
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
6:58 PM
48hours later
Avatar
the best feeling 😛
Avatar
Deleted User 1/19/2019 7:01 PM
nevermind
7:01 PM
i still have another one
Avatar
worst feeling 😛
Avatar
Deleted User 1/19/2019 7:05 PM
it been 48hours
7:05 PM
that im trying
7:05 PM
xD
Avatar
i'm legit going to lose my mind
10:35 AM
finally got some parts of this plugin to work
10:35 AM
didnt change anything
10:35 AM
start testserver
10:35 AM
nothing works
10:35 AM
-_-
Avatar
so when it worked? 😃
Avatar
prevented a dino/player near his own structures taking damage from a dragon
10:39 AM
literally the only thing i did was swap the api version 😛 (edited)
10:40 AM
now i can dmg anything near enemy structures (edited)
Avatar
try older version heh
Avatar
how your code looks?
Avatar
hm, it looks ok actually
Avatar
yea that's what i'm saying (edited)
Avatar
bUseBPDoHarvestAttack why do you need it?
Avatar
i tried to use to maybe see if it was using its special or main attack
11:30 AM
want to only block special if possible
Avatar
maybe you need to remove this check
Avatar
tried without that
11:31 AM
also currently i only had it in APrimalCharacter_TakeDamage (edited)
11:31 AM
so it would not affect dinos
Avatar
also
11:44 AM
OwnProx told me there is a current attack detection function in ark
11:44 AM
but it does not exist in the api
11:44 AM
Avatar
yeah i think it is but i also gave you many other funcs (edited)
11:53 AM
char GetCurrentAttackIndex() { return NativeCall<char>(this, "APrimalDinoAIController.GetCurrentAttackIndex"); }
11:53 AM
may be what u need
11:54 AM
or
11:54 AM
char& CurrentAttackIndexField() { return *GetNativePointerField<char*>(this, "APrimalDinoCharacter.CurrentAttackIndex"); } char& LastAttackIndexField() { return *GetNativePointerField<char*>(this, "APrimalDinoCharacter.LastAttackIndex"); } (edited)
Avatar
Rogue Leader 1/20/2019 10:52 PM
Is it possible to get all possible .ini options for Atlas from the API?
Avatar
they are hard coded in AShooterGameMode::InitGame (edited)
12:10 PM
maybe you can hook functions like GetBoolOptionIni and get options from here
1:47 PM
Always cause the server to crash
1:48 PM
Fatal error! VERSION: 15.21 KERNELBASE.dll!UnknownFunction (0x00007ffbc8e668d8) + 0 bytes [UnknownFile:0] AtlasShop.dll!UnknownFunction (0x00007ffb9b309402) + 0 bytes [UnknownFile:0] AtlasShop.dll!UnknownFunction (0x00007ffb9b3077a7) + 0 bytes [UnknownFile:0] AtlasShop.dll!UnknownFunction (0x00007ffb9b1e4392) + 0 bytes [UnknownFile:0] AtlasShop.dll!UnknownFunction (0x00007ffb9b2a3907) + 0 bytes [UnknownFile:0] VERSION.dll!AtlasApi::Hook_AGameState_DefaultTimer() (0x00007ffb9c296752) + 80 bytes [f:\github\ark-server-api\version\core\private\atlas\hooksimpl.cpp:136] ShooterGameServer.exe!FTimerManager::Tick() (0x00007ff68d4ebb3a) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\engine\private\timermanager.cpp:1087] ShooterGameServer.exe!UWorld::Tick() (0x00007ff68d38f12d) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\engine\private\leveltick.cpp:1321] ShooterGameServer.exe!UGameEngine::Tick() (0x00007ff68d32f3a2) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\engine\private\gameengine.cpp:1181] ShooterGameServer.exe!FEngineLoop::Tick() (0x00007ff68befcd7b) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\launch\private\launchengineloop.cpp:2449] ShooterGameServer.exe!GuardedMain() (0x00007ff68bef7c1d) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\launch\private\launch.cpp:140] ShooterGameServer.exe!GuardedMainWrapper() (0x00007ff68bef7c7a) + 5 bytes [h:\yarkupdatelivereal\engine\source\runtime\launch\private\windows\launchwindows.cpp:125] ShooterGameServer.exe!WinMain() (0x00007ff68befd66a) + 17 bytes [h:\yarkupdatelivereal\engine\source\runtime\launch\private\windows\launchwindows.cpp:209] ShooterGameServer.exe!__tmainCRTStartup() (0x00007ff68e1e478d) + 21 bytes [f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c:618] KERNEL32.DLL!UnknownFunction (0x00007ffbcb55168d) + 0 bytes [UnknownFile:0] ntdll.dll!UnknownFunction (0x00007ffbcba94629) + 0 bytes [UnknownFile:0] ntdll.dll!UnknownFunction (0x00007ffbcba94629) + 0 bytes [UnknownFile:0]
Avatar
Mustacila 🐢 1/21/2019 9:20 PM
Hey guys, is there any hook function that triggers when a player logs out ?
Avatar
@unclema it's your config, however this is not a plugins support discord 😃 (edited)
9:52 AM
Server Plugins for ARK: Server API. Contribute to Michidu/Ark-Server-Plugins development by creating an account on GitHub.
Avatar
Mustacila 🐢 1/22/2019 10:31 AM
Okey sorry 😄 and thank you it worked
Avatar
@𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 could you add customizable kick messages into AntiFamilySharing or maybe open source it on github 😛
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/22/2019 1:47 PM
Kick messages dont even work atm.. lol
Avatar
that's weird cause one player told me about seeing the message
1:52 PM
but i run the copy ownprox gave me 😛
Avatar
Rogue Leader 1/22/2019 5:31 PM
@OwnProx How does Atlas differ from Ark in the way it handles grids? Is it one .exe that runs all grids or seperate .exes for each grid?
Avatar
seperate .exes 😃
Avatar
Rogue Leader 1/22/2019 5:39 PM
how are you guys handling the players crossing from grid to grid? a database?
Avatar
same as in ark actually, a db for plugins
Avatar
Rogue Leader 1/22/2019 5:42 PM
and a plugin installed on each server?
5:42 PM
so basically Atlas is just an Ark cluster?
Avatar
yeah, correct
5:43 PM
advanced cluster probably
Avatar
Rogue Leader 1/22/2019 5:43 PM
How drastic were the API class and function changes? (edited)
Avatar
atlas is an older version of ark, only a few new classes
5:45 PM
i haven't noticed any big changes
Avatar
is it possible to fake player count ? 😄
Avatar
yes ownprox’s old ping limiter did that
Avatar
Deleted User 1/22/2019 7:09 PM
Yes
7:09 PM
You can false everything xD
Avatar
(as a bug)
7:10 PM
i would assume if you hook the logout function you can fake the playercount
Avatar
Deleted User 1/22/2019 7:10 PM
Its the bad way to do it
7:10 PM
since if you have a shop + cluster
7:10 PM
players will get the point in all maps
7:10 PM
even if they log off
7:11 PM
you know of a better way ? haha
Avatar
Deleted User 1/22/2019 7:11 PM
You can use Query to false connection
7:11 PM
To create even fake steam and stuff
Avatar
pretty sad that most big server owners do that
Avatar
Deleted User 1/22/2019 7:11 PM
I dont think that people do that
7:11 PM
there is someone that im suspecting
7:11 PM
but im not sure
7:12 PM
so never accuse anyone
Avatar
go look at some servers on akrservers.net
7:12 PM
there are people connected for 70-80 hours
Avatar
Deleted User 1/22/2019 7:12 PM
Its the ping limiter
Avatar
how is that not faked 😃
7:12 PM
yes exactly
Avatar
Deleted User 1/22/2019 7:12 PM
I made most of server that was using ping limiter to cheat
7:12 PM
banned from battlemetric
7:13 PM
xD
Avatar
servers are even being accused of it and admins are bad at lying
Avatar
Deleted User 1/22/2019 7:14 PM
Ofc people will always denie
Avatar
has anyone elses server been timing out recently
7:22 PM
for some reason all of my cluster's crash with !!HANG DETECTED!!
Avatar
@Michidu Alternative Commands seems to be broken on api 3.0
Avatar
You should never fake player count. It's a shame for who ever does that.
Avatar
many do that unfortunately...
Avatar
pretty sure not many can do it
Avatar
Deleted User 1/23/2019 1:53 PM
A lot do it with ping limiter
Avatar
That's a real shame. (edited)
Avatar
Deleted User 1/23/2019 2:38 PM
Yeah i think the same but i also think that some people dont give a fuck about shame and stuff
Avatar
@WETBATMAN probably it's because of new spam prevention 😄
Avatar
api side ?
Avatar
Deleted User 1/23/2019 3:50 PM
yes
Avatar
anything i can do or it requires a plugin side fix
Avatar
you can remove anti spam from api
Avatar
config thing ?
4:08 PM
or would i have to recompile it
Avatar
recompile
4:10 PM
how does anti spam even work it hides commands that dont do anything from the chat ?
Avatar
if messages were sent too often
Avatar
any plans to fix alternative commands though ?
Avatar
soon :) will have to do changes in api anyway
Avatar
ah okay
4:14 PM
thank you!
Avatar
Plugin will automatically restart your server when it crashed. It will also attempt to save the world after the crash (no rollbacks anymore). Notice: Make sure you do a regular backups if you want to use save world function. Configuration: {...
5:41 PM
damn this plugin looks lit
5:42 PM
so its fully safe if we have saveworld at false ?
Avatar
yeah, if you don't want to participate in the experiment 😄
Avatar
i would but i back my server up every 3 days 😛
5:46 PM
what's the worst that can happen worldsave gets corrupt ?
Avatar
yeah, however it shouldn't happen
Avatar
if you were to rate it on a percentage scale what percent would you give it 😛
5:48 PM
alright whatever ill set it to true
5:48 PM
its x100 anyway
Avatar
50% - will happen or not, lol (edited)
Avatar
ehh
5:50 PM
i assume it only triggers if the server gets that popup crash ?
Avatar
yeah
Avatar
alright cool
5:50 PM
ill set it to true
Avatar
source code is available 😃
Avatar
ayyyyy
6:07 PM
shop with mysql
6:41 PM
this is what we need to add to convert to new mysql shop ?
Avatar
Deleted User 1/23/2019 6:41 PM
Same config as atlas
6:42 PM
And use mysql true
Avatar
never used atlas shop 😄
Avatar
Deleted User 1/23/2019 6:42 PM
Oh
Avatar
yea ofc just wanted to see if this was all i needed
6:42 PM
ahh the db converting nightmare begins again...
Avatar
Deleted User 1/23/2019 6:43 PM
Its easy pizzy xD
6:44 PM
Sometimes dumb idea are the fast lol
6:44 PM
Earlier i was looking for all ini option for atlas
6:44 PM
And i find out that there is a files that i can just open with visual studio and get them
6:45 PM
some can be "decompiled" with IDA
Avatar
which files you can open with visual studio but not with notepad? 😃
Avatar
300 IQ 😛
Avatar
Deleted User 1/23/2019 6:48 PM
Well what ever you use to open it, the things is to found the file to open lol
Avatar
does arkshop not create mysql tables immediately ?
Avatar
Deleted User 1/23/2019 6:50 PM
Dunno for the forum one
Avatar
seems a bit overkill to load VS just to open text file heh
6:51 PM
it does
Avatar
Deleted User 1/23/2019 6:51 PM
Visual code i mean
6:51 PM
Not microsoft visual studio lol
Avatar
i loaded arkshop with mysql and no tables were created
6:51 PM
same user with just a different schema name
Avatar
never used that but seems like they are similar and both developed by microsoft
Avatar
ignore all that i'm retarded
6:53 PM
forgot to set usemysql to true
6:53 PM
lol
Avatar
Deleted User 1/23/2019 6:54 PM
Well visual code is good for json files its detect errors
6:54 PM
I start using it for 1 week now and it help when you have a half brain
Avatar
any recommendations for porting an existing arkshop db to mysql
Avatar
Deleted User 1/23/2019 6:55 PM
Copy past xD
6:55 PM
Thats what i did when i switched to mysql on ark
Avatar
is total spent a new thing in mysql db ?
Avatar
Deleted User 1/23/2019 6:56 PM
Yes
Avatar
its not working yet lol
Avatar
obviously i cant transfer the columns for that so will it cause any issues ?
Avatar
Deleted User 1/23/2019 6:57 PM
I was going to say it xD
6:57 PM
No since its not working the colum stay empty
Avatar
i could move sqlite db to mysql just by using dump function and then using that python script
Avatar
that python script left some errors in the permissions db for me
6:59 PM
what are you dumping it with sqlite browser ?
7:08 PM
because when i dump them and try to restore it i get errors like those
7:08 PM
and need to manually set default values and what not later
Avatar
yeah, sqlite browser
7:10 PM
copy paste table creation query from the plugin itself also (edited)
7:10 PM
then it should be fine
Avatar
into the DB file ?
Avatar
dump -> fix with script -> replace table creation part
Avatar
where do i find those though
7:11 PM
source code ?
Avatar
Server Plugins for ARK: Server API. Contribute to Michidu/Ark-Server-Plugins development by creating an account on GitHub.
Avatar
"Id INT NOT NULL AUTO_INCREMENT," "SteamId BIGINT(11) NOT NULL DEFAULT 0," "Kits VARCHAR(256) NOT NULL DEFAULT '{}'," "Points INT DEFAULT 0," "TotalSpent INT DEFAULT 0," "PRIMARY KEY(Id)," "UNIQUE INDEX SteamId_UNIQUE (SteamId ASC)); ");
7:12 PM
just this ye ?
Avatar
it's not a valid sql query
7:13 PM
full one
7:13 PM
it starting at line #17
7:13 PM
you need to remove those " of course also
Avatar
CREATE TABLE IF NOT EXISTS ArkShopPlayers (" "Id INT NOT NULL AUTO_INCREMENT," "SteamId BIGINT(11) NOT NULL DEFAULT 0," "Kits VARCHAR(256) NOT NULL DEFAULT '{}'," "Points INT DEFAULT 0," "TotalSpent INT DEFAULT 0," "PRIMARY KEY(Id)," "UNIQUE INDEX SteamId_UNIQUE (SteamId ASC));
7:13 PM
?
Avatar
dont need "
Avatar
ye
7:15 PM
Avatar
seems good
Avatar
is players named ArkShopPlayers though now
7:15 PM
in mysql
Avatar
ah shit so i need to change the insertion code aswell
Avatar
you can import as is and rename table after
7:17 PM
replaced all players with Arkshoplayers
Avatar
should be good
Avatar
how can i do monday to thursday, 10 to 22 pvp and weekend full pvp ?
Avatar
Rogue Leader 1/23/2019 10:08 PM
@Michidu I'm trying to make an atlas plugin that checks if a ship is anchored, but I can't find any functions for APrimalRaft to do anything with it.
10:09 PM
just a struct
Avatar
Deleted User 1/23/2019 10:09 PM
i was looking for the same
10:10 PM
Dunno if its possible since boat are just structure i think
Avatar
Rogue Leader 1/23/2019 10:10 PM
I know the planks are structures, but the ship frame itself looks to be a APrimalRaft
10:11 PM
APrimalRaft *ship = _this->GetAttachedToShip();
10:11 PM
I'm trying that, but you can't do anything with a raft but check if it's null
Avatar
Deleted User 1/23/2019 10:11 PM
bool& bNoAnchoringField() { return GetNativePointerField<bool>(this, "AShooterGameState.bNoAnchoring"); }
10:11 PM
Dunno if that have something to do with Anchor lol
Avatar
Rogue Leader 1/23/2019 10:12 PM
that's probably a flag on the terrain that stops people from anchoring in that spot
Avatar
Deleted User 1/23/2019 10:12 PM
Maybe its more easier to do it this way
10:12 PM
if your boat is close to a flag
10:12 PM
its protected
10:13 PM
but can be abused by players
Avatar
Rogue Leader 1/23/2019 10:13 PM
I'm just trying to protect ships that are in their own territory
Avatar
Deleted User 1/23/2019 10:14 PM
Yeah me too
10:14 PM
or at least was thinking about how to make it possible
Avatar
Rogue Leader 1/23/2019 10:15 PM
Getting a ton of complaints on unofficials of people just using oil jars and flame arrows to sink every anchored ship they see
Avatar
Deleted User 1/23/2019 10:15 PM
yeah
10:15 PM
i have the same
10:15 PM
every day a lot of people lost their ship like that
Avatar
Rogue Leader 1/23/2019 10:18 PM
this is all the results for "anchor" in the api source
Avatar
Deleted User 1/23/2019 10:19 PM
The first ones seems to give and state to anchored ships no ?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/23/2019 10:26 PM
struct APrimalRaft : APrimalDinoCharacter { // Functions bool IsAnchored() { return NativeCall<bool>(this, "APrimalRaft.IsAnchored"); } static UClass * GetPrivateStaticClass() { return NativeCall<UClass *>(nullptr, "APrimalRaft.GetPrivateStaticClass"); } static UClass * StaticClass() { return NativeCall<UClass *>(nullptr, "APrimalRaft.StaticClass"); } };
10:26 PM
Should be anything you'd need 😄
10:26 PM
besides the fact that you'll need to add APrimalRaft to your config.json of your API
Avatar
Deleted User 1/23/2019 10:27 PM
this will work also for other ships not only raft ?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/23/2019 10:28 PM
All bigger ships seems to be APrimalRaft too (edited)
Avatar
Rogue Leader 1/23/2019 10:28 PM
where did you find that?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/23/2019 10:28 PM
I created it only for you.. lol
10:28 PM
Its not in the API currently - but you can use it (edited)
Avatar
Rogue Leader 1/23/2019 10:29 PM
what would you use to check if it's in it's tribes claimed territory? (edited)
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/23/2019 10:29 PM
To determinate if the ship is in a ClaimFlag zone?
Avatar
Rogue Leader 1/23/2019 10:30 PM
that it's tribe owns
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/23/2019 10:32 PM
You would need to specify a certain radius to check
10:33 PM
IsInLandClaimedFlagRadius GetLandClaim From APrimalStructureClaimFlag might help you
10:35 PM
otherwhise you could use UKismetSystemLibrary::SphereOverlapActors_NEW to check a certain radius from the location of the ship (edited)
Avatar
Rogue Leader 1/23/2019 10:36 PM
meh, i'd be in the same boat. There aren't functions in the api for claim flags yet either
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/23/2019 10:36 PM
I added them today
10:37 PM
use new version 😄 edit: (you might need to compile the newest version on your own since Michidu haven't compiled it yet) (edited)
Avatar
Rogue Leader 1/23/2019 11:07 PM
Can someone test this out for me? I don't have an Atlas server set up yet xD
11:10 PM
That should only give protection when a ship is in the radius of their own claim flag
11:10 PM
But idk if it lets planks and containers on the ship be damaged (edited)
Avatar
yikes, totally would but not home and game server not set up at my new place 😦
11:25 PM
if no one does by the time I get home I will, i need to start streaming again anyway 😒
Avatar
@Rogue Leader sorry got home and was getting raided lmao
Avatar
@OwnProx I have been testing out your latest VoteReward plugin and there is still some issues with it. If you try to use the claim command it will try but feels like the command just timeouts and do nothing. But if you leave it like that it looks like a memory leak and overtime it will result in a crash. But if you execute the command again right after or as soon as possible it will check again and it looks like it's working. Note: When you have voted and try to claim it can't find the vote. (edited)
Avatar
if you type the vote command the 2nd time it works
Avatar
Weird, it doesn't give me anything.
Avatar
btw does your server crash with an error message or just dissapear ?
12:08 PM
i had mine just randomly shut off
12:08 PM
no error message
Avatar
I got one crashstack on my live server. But i haven't got any crash on the test server yet. (edited)
12:10 PM
on my test server i only have one server in the config to narrow down the issue.
12:11 PM
Okay, now it did. It just took sometime
Avatar
crash message ?
Avatar
(i got the claim)
Avatar
ahh
Avatar
But basically this where the issue is.
Avatar
hmm weird
12:14 PM
i dont have that
12:14 PM
but i only have arkservers.net in my config
Avatar
how many servers ?
Avatar
well on my test 1. On my live server 10
Avatar
i have 5 in my config and the only issue i’ve noticed is that sometimes it wont grant you the vote immediately after you vote
12:17 PM
so you have to try again after a while
Avatar
I seen several in forum have the same issue
12:18 PM
😮
Avatar
you aren't supposed to have duplicate entries in the sqlite arkshop db right ? 😛
Avatar
you should never have duplicate entries
Avatar
damn my sqlite db was messed up 😄
Avatar
how did you manage to get that? 😄
Avatar
no idea tbh 😄
12:42 PM
it was always throwing the error that the db was locked
12:43 PM
anyway i removed all the duplicates when i moved to mysql
12:43 PM
oh shit, i forgot it's lunch time
12:43 PM
bye!
Avatar
have a nice meal lol
12:43 PM
😮
Avatar
hahah ty
Avatar
@WETBATMAN have you tried auto restart plugin already? 😃
Avatar
yea i'm running with it set to true 😛
12:47 PM
haven't had any crashes lately though
Avatar
ah, that's bad, lol
12:47 PM
cmon dont jinx me
Avatar
haha
Avatar
uhh if it would help i can cause a crash on my testserver and check
Avatar
thanks, but intended crashes are not very interesting 😃
Avatar
damn this is so cool it was able to catch and restart it
1:00 PM
worldsave was successful (edited)
1:01 PM
used vote rewards and tried to give myself points without arkshop so i think this is a pretty realistic crash scenario
Avatar
good 😃
Avatar
this is a really cool project
Avatar
unfortunately, if server would just close, plugins can't detect it
1:04 PM
only if from another server instance 😃
Avatar
so at least one server needs to always be up ? (edited)
Avatar
that isnt really a big issue btw if the server closes most server managers can detect that and restart it
1:31 PM
ASM does at least
Avatar
Hm why asm cant detect other crashes then?
Avatar
Deleted User 1/24/2019 1:50 PM
Asm work just fine to restart any type of crash
1:50 PM
just need to use -NoCrashDialog (edited)
1:51 PM
and asm will restart the server auto when it time to check for atuo update
Avatar
wth really ?
3:04 PM
i mean this plugin is faster so whatever
3:09 PM
but yea if there is a crash dialog it sees the server as online as fails to restart it
Avatar
Deleted User 1/24/2019 3:09 PM
yes since if the crash dialog stay open it dont kill the processor of the server
3:09 PM
so asm continu to see it as online and dont restart it
Avatar
yep
Avatar
Well the thing with just claim two time works....for ppl who have the patience. When ppl heard about the workaround they started to spam it. And all my servers crashed related to the Vote Reward plugin lol
5:18 PM
So i need to rollback to API 2.9 😦
Avatar
damn isnt there spam prevention in api 3.0 ?
Avatar
Well it's not enough. They claim command should have a timeout of 10 seconds or maybe 5 seconds to prevent this.
Avatar
why didn’t you just raise the timer between commands though
5:34 PM
pretty sure ownprox’s vote rewards had that in the config
Avatar
No, only a 30s delay between you execute the command
5:34 PM
And this:; "VoteDelayHours": 24,
Avatar
oh
Avatar
But that's not what i mean. What i mean is, if the command or the request takes more than 5 seconds it should drop the request instead of hanging in the memory and print failed to request or something 😛
Avatar
Deleted User 1/24/2019 5:36 PM
"AntiSpamSeconds":"2",
5:36 PM
add this to your advancechat config
5:36 PM
if you are using the last version
Avatar
Still won't solve the issue (edited)
Avatar
Deleted User 1/24/2019 5:36 PM
well it will prevent player from sending command for 10second
5:36 PM
if you put spam at 10 second
Avatar
It needs to be atleast 30seconds. Then ppl can't chat 😛
5:37 PM
if we are going to use that option
5:37 PM
or maybe it's only for commands?
Avatar
Deleted User 1/24/2019 5:38 PM
no its for all sadly
Avatar
its open source so you could recompile it with a bigger delay
5:38 PM
maybe even make the delay a json option
Avatar
Deleted User 1/24/2019 5:39 PM
Or yeah do as Wetbatman said and add code to check time between command
5:39 PM
but since Voterewards dont have anti command spam good luck
5:39 PM
i dont have c++ knowlege to help you with that xD
Avatar
i guess i will try
Avatar
PlayerData[player->LinkedPlayerIDField()].NextVoteTime[VoteSiteIndex] = nNow + 30;
5:41 PM
this is probably what you have to change
5:41 PM
+ 30
Avatar
hmm.. the problem isn't that delay though
6:11 PM
problem is if they do it like this 1. try claiming -- Wait to long -- 2. try again -- still not working -- And then leave it like that. Result will be server crash. But if they would do like this: 1. try claiming -- wait 30s -- 2. try again -- reward claimed --
6:13 PM
one min delay
6:14 PM
it probably cant go trough all 10 servers in 30 secs
6:14 PM
and gets stuck
Avatar
Rogue Leader 1/24/2019 6:31 PM
VERSION: 15.67 ShooterGameServer.exe!compress2() (0x00007ff7f61b100b) + 0 bytes [UnknownFile:0] ParkedShipProtection.dll!UnknownFunction (0x00007ffcfea88e2c) + 0 bytes [UnknownFile:0] ShooterGameServer.exe!UGameplayStatics::ApplyDamage() (0x00007ff7f7755d9d) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\engine\private\gameplaystatics.cpp:393] ShooterGameServer.exe!APrimalStructureShipHull::ApplyPlankDecayDamageInterval() (0x00007ff7f66def25) + 0 bytes [h:\yarkupdatelivereal\projects\shootergame\source\shootergame\private\primalstructureshiphull.cpp:195] ShooterGameServer.exe!APrimalStructureShipHull::TickHull() (0x00007ff7f66e86d2) + 0 bytes [h:\yarkupdatelivereal\projects\shootergame\source\shootergame\private\primalstructureshiphull.cpp:1250] ShooterGameServer.exe!APrimalRaft::Tick() (0x00007ff7f6622fd8) + 0 bytes [h:\yarkupdatelivereal\projects\shootergame\source\shootergame\private\primalraft.cpp:855] ShooterGameServer.exe!AActor::TickActor() (0x00007ff7f76acbbe) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\engine\private\actor.cpp:775] ShooterGameServer.exe!FActorTickFunction::ExecuteTick() (0x00007ff7f7693d7a) + 27 bytes [h:\yarkupdatelivereal\engine\source\runtime\engine\private\actor.cpp:150] ShooterGameServer.exe!FTickTaskManager::StartFrame() (0x00007ff7f7940383) + 41 bytes [h:\yarkupdatelivereal\engine\source\runtime\engine\private\ticktaskmanager.cpp:871] ShooterGameServer.exe!UWorld::Tick() (0x00007ff7f77e3595) + 24 bytes [h:\yarkupdatelivereal\engine\source\runtime\engine\private\leveltick.cpp:1209] ShooterGameServer.exe!UGameEngine::Tick() (0x00007ff7f77846c2) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\engine\private\gameengine.cpp:1181]
6:31 PM
Any idea why it's saying my function is unknown?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/24/2019 6:33 PM
Have you compiled a pdb file too?
Avatar
Rogue Leader 1/24/2019 6:54 PM
I think it does by default. Does it need to be deployed with the dll when testing?
Avatar
Rogue Leader 1/24/2019 6:57 PM
Just in the plugin folder?
Avatar
ye
6:57 PM
i believe visual studio can open it for debugging purposes (edited)
Avatar
Rogue Leader 1/24/2019 6:58 PM
Crazy. I never knew. When I tested locally it must have known where the pdb was
Avatar
yes if you try decompiling a DLL with IDA you can see that it asks you for that PDB file
6:58 PM
its hardcoded into the DLL i think
Avatar
Deleted User 1/24/2019 7:05 PM
If you compile the plugin it create a pdb next to the ddl you just put dll + pdb in the plugins folder
7:05 PM
and if it crash
7:05 PM
you will get a windows screen asking you if you want to debug it
7:05 PM
if you have MVS in the machine where you are making tests
Avatar
yeah something like that
Avatar
Rogue Leader 1/24/2019 7:13 PM
I never deployed the pdb with the dll on my dev server and it always showed the plugin functions without debugging
7:14 PM
So I'm assuming the location of the pdb is hardcored into the dll so it finds it when running on the same machine
Avatar
yes it is
Avatar
Rogue Leader 1/24/2019 7:18 PM
Can we get the hooks and properties for APrimalShipHull and APrimalRaft added to the all? @Michidu
7:18 PM
Or can someone walk me through adding those myself?
7:19 PM
I've never used IDA
Avatar
if you get IDA pro its relatively easy to use 😄 (edited)
7:22 PM
you need to find a leaked one though
Avatar
I been trying to figure out how to give a player temporary god on login for 30s now for couple days. Any tips? 😛 (edited)
Avatar
Yeah, i need to add them
7:39 PM
Have you got a hook already?
Avatar
if you are asking me, yes 😃
Avatar
you're doing this so they can read the server UI ? 😄
7:40 PM
hang on
Avatar
i would love to lock out my players for a few seconds so they can read the ui 😄
Avatar
NewPlayer->God
7:41 PM
Basically 😛
7:41 PM
or something else
7:42 PM
the idea is to prevent players from damage when they login
Avatar
yea
7:43 PM
i would also like to prevent them from making any input for some time so they take the time to read the server info haha
Avatar
Rogue Leader 1/24/2019 7:43 PM
Is it for all players when they log in or just new players on the server?
Avatar
Hmm... that's could be copied from the home plugin, i think (edited)
Avatar
With 3.0 you can use timer to do it
Avatar
yeah i saw it in ArkHomes
Avatar
@Rogue Leader All players that just connected
Avatar
Rogue Leader 1/24/2019 7:45 PM
Even those that spawn in their bases?
Avatar
is there any way to identify if a player is connecting for the first time without creating a db ?
Avatar
Deleted User 1/24/2019 7:45 PM
yes
Avatar
Well for a start yes, i want to make it as simple as possible.
Avatar
Deleted User 1/24/2019 11:25 PM
OMMMMG the dragon on atlas are so brokennnn
Avatar
@Michidu just had a real crash on one of my servers and the worldsave still seems to be intact
👌 1
Avatar
does AprimalDinoCharacterTakeDamage also work for torpor ? (edited)
Avatar
Rogue Leader 1/25/2019 5:10 PM
any idea why this would cause crashing in Atlas? UWorld* world = ArkApi::GetApiUtils().GetWorld(); TArray<AActor*> new_actors; TArray<AActor*> actors_ignore; TArray<TEnumAsByte<enum EObjectTypeQuery>> types; UKismetSystemLibrary::SphereOverlapActors_NEW(world, _this->RootComponentField()->RelativeLocationField(), 10000, &types, APrimalStructureClaimFlag::GetPrivateStaticClass(), &actors_ignore, &new_actors);
5:12 PM
I'm using @𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰's update to the source recompiled
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/25/2019 5:12 PM
What’s the stracktrace?
5:18 PM
this is line 29 UKismetSystemLibrary::SphereOverlapActors_NEW(world, _this->RootComponentField()->RelativeLocationField(),
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/25/2019 5:18 PM
What is “_this”
Avatar
Rogue Leader 1/25/2019 5:19 PM
APrimalDinoCharacter
5:19 PM
Here's the whole function: float Hook_APrimalDinoCharacter_TakeDamage(APrimalDinoCharacter* _this, float Damage, FDamageEvent* DamageEvent, AController* EventInstigator, AActor* DamageCauser) { if (_this->IsShip()) { //check for Friendly Claim Flags nearby UWorld* world = ArkApi::GetApiUtils().GetWorld(); TArray<AActor*> new_actors; TArray<AActor*> actors_ignore; TArray<TEnumAsByte<enum EObjectTypeQuery>> types; UKismetSystemLibrary::SphereOverlapActors_NEW(world, _this->RootComponentField()->RelativeLocationField(), 10000, &types, APrimalStructureClaimFlag::GetPrivateStaticClass(), &actors_ignore, &new_actors); for (const auto& actor : new_actors) { APrimalStructureClaimFlag* claimFlag = static_cast<APrimalStructureClaimFlag*>(actor); //Log::GetLog()->warn(FVector::Distance(_this->RootComponentField()->RelativeLocationField(), actor->RootComponentField()->RelativeLocationField())); if (claimFlag->TargetingTeamField() == _this->TargetingTeamField()) { if (FVector::Distance(_this->RootComponentField()->RelativeLocationField(), claimFlag->RootComponentField()->RelativeLocationField()) <= claimFlag->LandClaimRadiusField()) { return APrimalDinoCharacter_TakeDamage_original(_this, 0, DamageEvent, EventInstigator, DamageCauser); } } } } return APrimalDinoCharacter_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser); } (edited)
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/25/2019 5:22 PM
Check if RootComponent is nullptr
Avatar
how would i send a message to a player ?
Avatar
SendChatMessage
Avatar
yeah but notification ?
Avatar
SendNotification 😄
Avatar
ArkApi::GetApiUtils().SendNotification ?
6:33 PM
this ?
Avatar
does it require getting the steam id ?
Avatar
Deleted User 1/25/2019 6:34 PM
nothing i said nothing
6:34 PM
lmao
Avatar
it basically says everything in function comment 😃
6:35 PM
explaining args a bit
Avatar
Deleted User 1/25/2019 6:36 PM
ArkApi::GetApiUtils().SendChatMessage(player_controller, *get_formatted_message("prefix"), "Hello my name is bobo");
Avatar
ye, but wrong function 😄
Avatar
Deleted User 1/25/2019 6:37 PM
Hahaha
6:37 PM
Im bad as this shit but if that can help him
6:37 PM
ArkApi::GetApiUtils().SendNotification(player, { 1,0.549f,0,1 }, 1.6f, 4, nullptr, *FString(message));
6:38 PM
this one is your's @Michidu non ? (edited)
Avatar
possibly
Avatar
getting this
Avatar
you need ashooterplayercontroller*
Avatar
in the hook ?
Avatar
in SendNotification
6:54 PM
how is it undefined 😮
Avatar
why do you think its undefined?
Avatar
because it says identifier "player" is undefined 😄
Avatar
maybe duplicate
Avatar
nope
Avatar
change name anyway
Avatar
still undefined 😄
7:01 PM
on both the line where its redded out and the one after it
Avatar
well, of course it's undefined
7:02 PM
because it's inside if block
7:04 PM
aaaaaa
7:05 PM
Avatar
ehh.. 1) you can't magically convert steam_id to player 2) you probably forgot {} after 'if'
Avatar
says AShooterPlayerController is incompatible with parameter AController
7:09 PM
but it compiled fine ?
Avatar
then it's fine 😃
Avatar
lets test i guess
7:10 PM
damn it actually works
7:10 PM
thank you!
Avatar
Rogue Leader 1/25/2019 7:46 PM
@𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 RootComponent is not a nullptr (edited)
Avatar
is AshooterCharacter both dino/player or just player ?
Avatar
damn wtf i always thought it was a player but it prevents damage to dinos too by hooking that function
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/25/2019 8:10 PM
I guess RelativeLocationField is also not null? 😄
Avatar
Rogue Leader 1/25/2019 8:16 PM
APrimalStructureClaimFlag::GetPrivateStaticClass();
8:16 PM
That's what is crashing it
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 1/25/2019 8:17 PM
Use StaticClassField then
8:17 PM
or smth like this its getting called 😄
Avatar
Rogue Leader 1/25/2019 8:19 PM
APrimalStructureClaimFlag::StaticClass() instead?
Avatar
Rogue Leader 1/25/2019 8:57 PM
StaticClass doesn't work as an alternative. It just doesn't find anything (edited)
Avatar
Rogue Leader 1/25/2019 9:28 PM
Claim flags aren't being registered as APrimal Structures either
9:29 PM
I compiled and used the latest source code of the api
Avatar
Deleted User 1/25/2019 9:31 PM
Flags are weird
9:31 PM
since they are not count as a structures
9:31 PM
Cheat destroymytarget dont destroy them either
9:32 PM
so i think their are in a new classe
Avatar
Rogue Leader 1/25/2019 9:39 PM
According to the API they are a inherit from classes that inherit from APrimalStructure
Avatar
Deleted User 1/25/2019 9:41 PM
You know i was thinking
9:41 PM
and protecting anchored ships can be a bad idea
9:41 PM
people can just build a wall of sloop
9:41 PM
anchor them
9:41 PM
and they have an invincible defense
Avatar
Rogue Leader 1/25/2019 9:52 PM
npcs can be killed and it would only protect the hull, planks, and deck, not the structures or chests (edited)
Avatar
Rogue Leader 1/25/2019 10:27 PM
I must not be compiling the api correctly. I added the APrimalRaft struct that @Michidu Sent me, recompiled using the "Atlas" configuration, then updated my plugin with the new .lib and moved the new version.dll and .pdb to the binary folder
10:28 PM
And it's still crashing on some Flag and raft functions
10:32 PM
if (_this->GetAttachedToShip()) { if (_this->GetAttachedToShip()->IsAnchored()) {
10:32 PM
Crashing on _this->GetAttachedToShip()->IsAnchored()
10:36 PM
I forgot to add APrimalRaft to the config. Recompiling now to see if that fixes it (edited)
Avatar
Rogue Leader 1/25/2019 10:43 PM
that didn't work
Avatar
You might need to add structure to config
Avatar
Rogue Leader 1/26/2019 6:23 AM
I added all the structs and enums that intellisense caught. (edited)
Avatar
to api config i mean
Avatar
Rogue Leader 1/26/2019 6:29 AM
I didn't do that lol. I'll try it tomorrow if I work on it
Avatar
Rogue Leader 1/26/2019 6:41 AM
If someone finds out how to get nearby claim flags and their tribe ids, let me know. I messed around with the sphere search with primal structures and had to bump the radius to a laggy amount just to get everything on the ship deck and it didn't catch claim flags.
Avatar
@Michidu will ark adverts parse /n as another line in the notification config ?
Avatar
yes, it should (edited)
Avatar
thx
Avatar
does anyone have a tip for me which program to use to convert 4 sqllite dbs into a mysql database?
Avatar
sqlite browser -> export as .sql -> https://stackoverflow.com/questions/1067060/translating-perl-to-python/1067151#1067151 (run it through this script) -> finally edit the .sql file and add the table creation query from the plugin source
I found this Perl script while migrating my SQLite database to mysql I was wondering (since I don't know Perl) how could one rewrite this in Python? Bonus points for the shortest (code) answer :)...
Avatar
@Michidu Can i connect the ark shop and atlas shop to the same msql database so they can share the points? Currently no, because of different table names. But i will add a support for it. when I try updating the mod today it didn't launch with the server and I could not force...
Avatar
assuming the 4 db’s have unique (non duplicate) entries importing all of them into the same schema should do it
Avatar
Thanks :)
Avatar
i have the problem that the server have mini lags because the permission database may be too large, what can i do?
Avatar
how do you know its permissions ? (edited)
7:43 PM
also how many entries do you have ?
Avatar
to notice lags from db you would need to have millions of players
Avatar
ok the problem was because i have two server machines and the request to the another machines where the database run takes to long to respond
Avatar
Rogue Leader 1/28/2019 8:13 PM
You could update the db path to something like a local Google or one drive folder, that way they should sync up changes across both servers.
8:13 PM
Don't know what would happen if both were updated at the same time tho
Avatar
oh sounds great thanks 😃
Avatar
mysqlcheck -o --all-databases
11:16 PM
Can be used if you want to optimize the database.
11:16 PM
but i strongly recommend to take a backup before executing.
11:17 PM
Or dump the database and truncate the database and import the dump (edited)
11:18 PM
wanted to just share some info, that's all 😃
Avatar
WoolyPenguin 1/31/2019 1:05 AM
can i find the atlas api source anywhere?
Avatar
Rogue Leader 1/31/2019 1:17 AM
It's the same source as the Ark api
1:17 AM
Just has it's own build config in vs and separate folders for Atlas unique classes, structs, and enums
1:19 AM
Server plugins support for ARK. Contribute to Michidu/ARK-Server-API development by creating an account on GitHub.
1:20 AM
They have it so the Ark and Atlas aspects are separate, but the UE stuff and additional files they share.
1:20 AM
Depending on what build configuration you compile with, it generates the AtlasApi.lib and version.dll or ArkApi.lib and version.dll (edited)
1:22 AM
You can choose "Ark", "Atlas", or "Release" (not sure if Release has a use or if it's just a left over artifact tho)
Avatar
@Michidu permissions isn't able to list groups with the latest update
12:46 PM
nothing in the console
Avatar
@Michidu permissions appears to have some db issue because i can add players to a group from one server but cant from others
Avatar
Rogue Leader 1/31/2019 10:12 PM
I could use some help adding classes to the API. I added APrimalRaft, but everytime i use the IsAnchored() function i get a crash
10:13 PM
I'm pretty sure I added all the missing structs to the config
Avatar
Rogue Leader 2/1/2019 12:19 AM
@Michidu @OwnProx @𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰
Avatar
GSH | MrOwlSky 2/1/2019 1:59 AM
Can confirm this is a bug, Happening for GOG aswell. @WETBATMAN
Avatar
GSH | MrOwlSky 2/1/2019 2:42 AM
Side note, Has anyone got the AtlasAdverts working for them? It just spams my chat when I try to add it
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/1/2019 6:03 AM
What is the exact stacktrace you‘d get?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/1/2019 6:41 AM
6:41 AM
SPOILER
Image attachment
6:43 AM
Sorry for marking it as spoiler - wanted to try out this feature.. lol As you can see the function doesn't seems to be corrupted :D void debugCommand(AShooterPlayerController* sender, FString* message, EChatSendMode::Type) { TArray<AActor*> actorsInSphere; TArray<AActor*> actors_ignore; TArray<TEnumAsByte<enum EObjectTypeQuery>> types; UKismetSystemLibrary::SphereOverlapActors_NEW(ArkApi::GetApiUtils().GetWorld(), sender->DefaultActorLocationField(), 1000, &types, nullptr, &actors_ignore, &actorsInSphere); for(AActor* current: actorsInSphere) { if(current->IsA(APrimalRaft::StaticClass())) { ArkApi::GetApiUtils().SendChatMessageToAll("DEBUG", "Found a ship!"); auto* ship = static_cast<APrimalRaft*>(current); if(ship && ship->IsAnchored()) { ArkApi::GetApiUtils().SendChatMessageToAll("DEBUG", "which is anchored!"); } } } } (edited)
6:45 AM
Since I haven't compiled the API version 1.5 for myself yet - I added the following on my own Project: struct APrimalRaft : APrimalDinoCharacter { static UClass * StaticClass() { return NativeCall<UClass *>(nullptr, "APrimalRaft.StaticClass"); } bool IsAnchored() { return NativeCall<bool>(this, "APrimalRaft.IsAnchored"); } };
6:46 AM
You can easly do that since APrimalRaft is already forwarded from the API - you just need to add the "APrimalRaft", to your config.json located in Win64 folder
Avatar
Rogue Leader 2/1/2019 3:12 PM
Oh man. I think I may have figured it out. I did everything but move the config to the win64 folder....
Avatar
Rogue Leader 2/1/2019 4:02 PM
updating the config file still crashed it. I'm gonna go back the the current released version and see if that works
4:08 PM
4:12 PM
#include <Api/Atlas/Atlas.h> #pragma comment(lib, "AtlasApi.lib") DECLARE_HOOK(APrimalStructure_TakeDamage, float, APrimalStructure*, float, FDamageEvent*, AController*, AActor*); struct APrimalRaft : APrimalDinoCharacter { // Functions bool IsAnchored() { return NativeCall<bool>(this, "APrimalRaft.IsAnchored"); } static UClass * GetPrivateStaticClass() { return NativeCall<UClass *>(nullptr, "APrimalRaft.GetPrivateStaticClass"); } static UClass * StaticClass() { return NativeCall<UClass *>(nullptr, "APrimalRaft.StaticClass"); } }; float Hook_APrimalStructure_TakeDamage(APrimalStructure* _this, float Damage, FDamageEvent* DamageEvent, AController* EventInstigator, AActor* DamageCauser) { if (_this->GetAttachedToShip()) { if(_this->GetAttachedToShip()->IsAnchored()) { FString descr; _this->GetHumanReadableName(&descr); if (descr.Contains(L"plank") || descr.Contains(L"deck") || descr.Contains(L"hull")) { Log::GetLog()->warn("{}", descr.ToString()); Log::GetLog()->warn("{} took no damage!", descr.ToString()); return APrimalStructure_TakeDamage_original(_this, 0, DamageEvent, EventInstigator, DamageCauser); } } } return APrimalStructure_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser); } (edited)
4:12 PM
void Load() { Log::Get().Init("ParkedShipProtection"); ArkApi::GetHooks().SetHook("APrimalStructure.TakeDamage", &Hook_APrimalStructure_TakeDamage, &APrimalStructure_TakeDamage_original); } void Unload() { ArkApi::GetHooks().DisableHook("APrimalStructure.TakeDamage", &Hook_APrimalStructure_TakeDamage); } BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: Load(); break; case DLL_PROCESS_DETACH: Unload(); break; } return TRUE; } (edited)
4:14 PM
this would have been line 22 if(_this->GetAttachedToShip()->IsAnchored())
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/1/2019 4:15 PM
maybe even the function GetAttachedToShip is broken
4:15 PM
or its not attached 😄
Avatar
Rogue Leader 2/1/2019 4:18 PM
Maybe it's the ceilings causing the crashes then
4:19 PM
I'll rearrange so it checks if it's a plank/deck/hull first
Avatar
Rogue Leader 2/1/2019 4:27 PM
IsAttachedToShipInWetDock() IsAttachedToShipInDryDock() Anyone know the difference in a wet and dry dock?
Avatar
maybe wet is slippy ┐('~`)┌
Avatar
Rogue Leader 2/1/2019 4:47 PM
Lol
4:48 PM
I guess GetAttachedToShip is broken. It works by itself, but trying to use any functions from it causes a crash
4:49 PM
Would that be an api issue or a game issue?
Avatar
only if signature was updated
4:52 PM
i will try to update dump
Avatar
nah, this function still seems to be same
Avatar
@WETBATMAN ListGroups seems to work for me
Avatar
hmm it has trouble adding too
7:19 PM
like one of my servers can exec the command but the other one says its wrong
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/1/2019 7:42 PM
@Rogue Leader
Avatar
Rogue Leader 2/1/2019 9:27 PM
@𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 weird, why would it work on yours but not mine? I was testing by shooting a schooner with a cannon.
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/1/2019 9:28 PM
Havent tried that lol (edited)
9:28 PM
I hit a smithy placed on a raft.. lol
9:28 PM
With a spear ofc😅
Avatar
@Rogue Leader Any chance you figured out the APrimalStructureClaimFlag::GetPrivateStaticClass() issue? I'm running into similar crashes with the newest version from Github.
Avatar
Rogue Leader 2/2/2019 6:07 AM
Nah, I had to quit using the class
Avatar
Hey all. How can I find out how much time the player spent in the game? For all game sessions
Avatar
battlemetrics 😄
Avatar
@WETBATMAN Is this possible only by requests to the battlemetrics? Is it possible to do it directly through the Ark/Atlas API?
Avatar
i dont know honestly i doubt the game keeps that kind of data
9:47 PM
it probably keeps the playtime per savefile but i doubt it keeps total
Avatar
Ok, thanks
Avatar
game probably doesn't keep such info, only if you would start writing it to the db
8:54 AM
small notice for those who interested, now api has an option to dump all structures and you don't need to manually add them to the config
Avatar
are you adding GetCurrentAttackInfo to the api yet 😃
Avatar
Added structs UDamageType & FDinoAttackInfo Added Field AttackInfosField() Added Function GetCurrentAttackInfo()
Avatar
if i want to forcibly kill a player do i use the suicide function from ark api or should i hook a function ?
Avatar
@𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 i'm pretty sure you have a typo in your AntiFamilysharing plugin because it refuses to load the config
6:30 PM
that might explain why someone was complaining that it didn;t work 😄
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/3/2019 6:30 PM
lol?
6:31 PM
{ "APIKey": "Censored", "KickMessage": "Family Shared Accounts Are Not Allowed on DopeArk, Please Connect With A Different Account!", "Whitelist": [] }
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/3/2019 6:32 PM
not reading any values on startup
Avatar
so that error code is ok or what ?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/3/2019 6:34 PM
No its totally not 😄
6:34 PM
Seems like I uploaded the ATLAS version for ARK too q.q
6:34 PM
Thanks for telling me
6:36 PM
damn my servers are just starting can you post it here real quick
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/3/2019 6:36 PM
I already updated it on forum
Avatar
thx
6:43 PM
is the new permissions plugin working for anyone ?
6:43 PM
i had to downgrade because it isnt placing players into groups properly
6:43 PM
and also cant list groups
Avatar
@𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 pretty sure antifamilysharing causes a crash now
7:03 PM
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/3/2019 7:25 PM
Sorry about that.. Im jumping from project to project.. Update is avail now (edited)
Avatar
no problem
7:26 PM
glad you fixed it until many people upgraded 😄 (edited)
7:30 PM
btw will loading the plugin after the server started work properly ?
7:34 PM
ye looks like it works
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/3/2019 7:45 PM
My plugins always do 😄
Avatar
quick question if i want to detect a knocked out player can i use event instigator for that ?
7:47 PM
or detect a player that has handcuffs on ?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/3/2019 7:47 PM
You mean a unconscious one?
Avatar
yeah
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/3/2019 7:47 PM
I mean you could read torpor stats probably 😄
Avatar
yeah but i mean with event instigator can i catch when the player got knocked out ?
7:49 PM
want to start a timer when a player gets knocked out and then auto kill them when the timer hits 0
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/3/2019 7:50 PM
APrimalCharacter::IsConscious() might help 😄 (edited)
Avatar
so no event instigator or any trigger is required ?
7:51 PM
void AutoKill(AShooterPlayerController* AttackerShooterController, FString* message, int mode) { if (!AttackerShooterController || !AttackerShooterController->PlayerStateField() || !AttackerShooterController->GetPlayerCharacter() || AttackerShooterController->GetPlayerCharacter()->IsDead() || !AttackerShooterController->GetPlayerCharacter()->IsConscious() || AttackerShooterController->GetPlayerCharacter()->IsSitting(false)) return; if (AttackerShooterController && AttackerShooterController->PlayerStateField() && AttackerShooterController->GetPlayerCharacter() && AttackerShooterController->GetPlayerCharacter()->CurrentWeaponField() && AttackerShooterController->GetPlayerCharacter()->CurrentWeaponField()->AssociatedPrimalItemField()) { FString WeaponName; AttackerShooterController->GetPlayerCharacter()->CurrentWeaponField()->AssociatedPrimalItemField()->GetItemName(&WeaponName, false, true, nullptr); if (WeaponName.Contains(L"Handcuffs")) return; } if (!ArkApi::GetApiUtils().IsRidingDino(AttackerShooterController)) AttackerShooterController->GetPlayerCharacter()->Suicide(); }
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/3/2019 7:51 PM
I think to check on TakeDamage is a good idea.. couldn't really quickly find a function to hook on
Avatar
hmm what about handcuffs though
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/3/2019 7:53 PM
If you check for consciousness you also can check for handcuffs 😄
Avatar
yea but ArkApi has this if (!ArkApi::GetApiUtils().IsRidingDino(AttackerShooterController)) AttackerShooterController->GetPlayerCharacter()->Suicide();
7:54 PM
cant this be used to kill the player aswell ?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/3/2019 8:02 PM
For checking if player is riding on a dino? lol
Avatar
no lol i mean AttackerShooterController->GetPlayerCharacter()->Suicide();
8:03 PM
this part 😄
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/3/2019 8:03 PM
AShooterPlayerController::ServerSuicide_Implementation is the one im using.. don't know about suicide of Character 😄
Avatar
hmm
8:04 PM
i use it for my suicide command and it works but i'm wondering if it will work on offline players aswell
Avatar
any examples on returning a custom value with a hook ?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/3/2019 10:06 PM
What do you mean with a "custom value" ? It really depends on the function you've hooked (edited)
Avatar
with APrimalCharacterTakeDamage for example, is it possible to modify the damage value if certain conditions are met ?
Avatar
GSH | MrOwlSky 2/4/2019 7:09 AM
Congrats on staff @𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 Fire
Avatar
@WETBATMAN should be yes 😃
Avatar
the only plugin that does that i think is orp and its private 😃
7:12 AM
any other examples ?
Avatar
you just need to modify return value, depending on your condition (edited)
Avatar
yeah but how to get the current dmg value
7:15 AM
from damage event ?
Avatar
you mean this func APrimalCharacter::TakeDamage ?
7:18 AM
actually it has damage as argument and you need to modify this one
Avatar
if (EventInstigator && EventInstigator->CharacterField()) { AShooterPlayerController* AttackerShooterController = static_cast<AShooterPlayerController*>(EventInstigator); if (AttackerShooterController && AttackerShooterController->PlayerStateField() && AttackerShooterController->GetPlayerCharacter() && AttackerShooterController->GetPlayerCharacter()->CurrentWeaponField() && AttackerShooterController->GetPlayerCharacter()->CurrentWeaponField()->AssociatedPrimalItemField()) { FString WeaponName; AttackerShooterController->GetPlayerCharacter()->CurrentWeaponField()->AssociatedPrimalItemField()->GetItemName(&WeaponName, false, true, nullptr); if (_this->IsA(APlayerController::StaticClass()) && WeaponName.Contains(L"Armor Piercing")); return Damage * 0.10; } } return APrimalCharacter_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser); }
1:01 PM
so will something like this work ?
1:01 PM
return damage * 0.10 ?
Avatar
should
1:05 PM
probably you dont need to modify the return value, but instead you need to modify Damage variable and call original function
Avatar
Damage = Damage * 0.10;
1:27 PM
what like this ?
Avatar
yes
Avatar
Hello all I am trying to compile Lootboxes from the site however it did not create a plugininfo or a config file is there a tutorial on how to do this?
4:58 PM
!rank Plugin Dev
Avatar
it wont, just copy config
4:59 PM
plugininfo is optional
Avatar
it has been probably 10 years since I have coded so I am really rusty but I want to learn how to make Plugins so I am trying to get Lootboxes to work on our atlas server but want to compile it myself.
5:02 PM
I dont know exactly what you mean by just copy config though sorry
Avatar
released plugin comes with config already (edited)
5:03 PM
they are not needed for compilation as well (edited)
Avatar
ok let me check
5:07 PM
I see ok thanks very much
5:08 PM
we got it to load but it said that requires newer api version so I think that is server side
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/4/2019 5:13 PM
You might need to adjust the needed API Version in PluginInfo.json
Avatar
where do I get the PluginInfo.Json and Config.Json I did a search in LootBoxes but its not there at all
Avatar
should be on forum, where you download plugin
Avatar
ok thanks very much
5:22 PM
Quick one last questions the lootboxes is working fine now but its looking to use arkapi not atlasapi is there a way of learning how to switch it over? or is that a lot of coding to change it
Avatar
you can start by changing ark headers to atlas
Avatar
Ok thank you
Avatar
error C2011: 'EXPType::Type': 'enum' type redefinition
5:35 PM
that is the error I get when changing the headers over to api\atlas\atlas.h
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/4/2019 5:35 PM
Look trough all from project coming header files
5:36 PM
one of them might include other version again
Avatar
Deleted User 2/4/2019 5:38 PM
@Joker if you dont have the Atlas shop libs and header dont even loose your time
Avatar
so what I have done is when I first got lootboxes he put a video up for compiling it and had a library and includes with the video
Avatar
Deleted User 2/4/2019 5:39 PM
The libs and stuff on the video are for ark not atlas
Avatar
ok so I need the atlas shop so that I can use the libraries and headers from it?
Avatar
Deleted User 2/4/2019 5:40 PM
Since the lootbox are using points
5:40 PM
2 Choice Remove the point option
5:40 PM
or Get the atlas shop headers and libs
5:40 PM
for the rest the plugin is using the api header and they are availible on michidu github (edited)
Avatar
ok thank you very much I am going to start from scratch I think I see what to do thank you very much for all the help
5:43 PM
even with the atlas shop it was compiled how would you get the libs and header from it if its compiled
Avatar
Deleted User 2/4/2019 5:43 PM
You cant
Avatar
ok so what your saying is I cant get the libs and headers from atlas shop at all or from anywhere else?
Avatar
Deleted User 2/4/2019 5:44 PM
Well only @Michidu have atlas shop libs and header
5:44 PM
So he's the only one who can give them or not to you
Avatar
ok so in order to get the required files to make lootboxes work for atlas I would have to get them from Michibu or rewrite them?
Avatar
Deleted User 2/4/2019 5:46 PM
So you will need to get them from michidu or make your own atlas shop
5:46 PM
Or just remove points from lootbox
Avatar
ok thank you
Avatar
Cannot open include file: '../../json.hpp': No such file or directory that is what I am getting however the Json.hpp is in the include files folder where it is being directed
Avatar
Is there anyone that can help me with this?
Avatar
you sure you set up the project correctly
6:50 PM
float Hook_APrimalCharacter_TakeDamage(APrimalCharacter* _this, float Damage, FDamageEvent* DamageEvent, AController* EventInstigator, AActor* DamageCauser) { if (EventInstigator && EventInstigator->CharacterField()) { AShooterPlayerController* AttackerShooterController = static_cast<AShooterPlayerController*>(EventInstigator); if (AttackerShooterController && AttackerShooterController->PlayerStateField() && AttackerShooterController->GetPlayerCharacter() && AttackerShooterController->GetPlayerCharacter()->CurrentWeaponField() && AttackerShooterController->GetPlayerCharacter()->CurrentWeaponField()->AssociatedPrimalItemField()) { FString WeaponName; AttackerShooterController->GetPlayerCharacter()->CurrentWeaponField()->AssociatedPrimalItemField()->GetItemName(&WeaponName, false, true, nullptr); if (_this->IsA(APlayerController::StaticClass()) && WeaponName.Contains(L"Armor Piercing")); Damage = Damage * 0.10; }return APrimalCharacter_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser); } }
6:51 PM
@Michidu is this correct or does the original function have to be returned 2 times
Avatar
Yes i set it up completely but ill look at what you sent thank you
Avatar
_this->IsA(APlayerController::StaticClass())
8:00 PM
why does this not work to detect if AprimalCharacter is a player ?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/4/2019 8:02 PM
APlayerController is not any close to a APrimalCharacter
Avatar
hmm
8:03 PM
anything else that can be used for player detection ?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/4/2019 8:04 PM
Where exactly
Avatar
float Hook_APrimalCharacter_TakeDamage(APrimalCharacter* _this, float Damage, FDamageEvent* DamageEvent, AController* EventInstigator, AActor* DamageCauser) { if (EventInstigator && _this->IsA(APlayerController::StaticClass())) { AShooterPlayerController* AttackerShooterController = static_cast<AShooterPlayerController*>(EventInstigator); if (AttackerShooterController && AttackerShooterController->PlayerStateField() && AttackerShooterController->GetPlayerCharacter() && AttackerShooterController->GetPlayerCharacter()->CurrentWeaponField() && AttackerShooterController->GetPlayerCharacter()->CurrentWeaponField()->AssociatedPrimalItemField()) { FString WeaponName; AttackerShooterController->GetPlayerCharacter()->CurrentWeaponField()->AssociatedPrimalItemField()->GetItemName(&WeaponName, false, true, nullptr); if (WeaponName.Contains(L"Armor Piercing")); Log::GetLog()->warn("Weapon Name: {}", WeaponName.ToString()); Damage = Damage * 0.10; } } return APrimalCharacter_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser); }
8:05 PM
got the multiplier to work but having trouble detecting if its a player or not
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/4/2019 8:09 PM
you could use GetOwnerController
8:09 PM
should give you the Controller of the player if he is online
8:09 PM
you might need to check that
Avatar
if (_this->GetOwnerController && WeaponName.Contains(L"Armor Piercing"));
8:16 PM
this ?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/4/2019 8:18 PM
checks if the OwnerController is currently avail / online.. yea 😄
Avatar
should it be in the first if where it checks for event instigator or the second one where it checks for gun name ?
8:19 PM
or does it not matter
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/4/2019 8:21 PM
_this does not have anything in common with EventInstigator besides that event.. 😄
Avatar
event instigator should be the attacker and _this should be the target
8:23 PM
or is DamageCauser better to use ?
Avatar
fatal error C1083: Cannot open include file: '../../json.hpp': No such file or directory I am still getting this error and completely rebuilt the project and everything
8:31 PM
still the same issue and the json.hpp is in the root library golder
8:31 PM
folder
Avatar
the new api has the json.hpp in the include folder so you might have to change the path in the project
Avatar
Are there hooks for player Login and Logout?
Avatar
I have changed the include folder path in the project
Avatar
yes there are @DevCPP
Avatar
Entering the game/leaving the game*
Avatar
no i mean in the actuall cpp file @Joker
Avatar
ok the ../../ means the root file correct or am I missing something
Avatar
#include <json.hpp>
8:33 PM
this i what i use in my project
8:33 PM
Avatar
@WETBATMAN What hooks? Or how can I find any info about this?
Avatar
@WETBATMAN Thanks very much
Avatar
_this->GetOwnerController what arguments should i provide for this
8:43 PM
c:\users\avtoj\source\repos\apbalancer\apbalancer\apbalancer.cpp(23): warning C4551: function call missing argument list (edited)
Avatar
I did that and it fixed it but wow the errors that came out was insane
8:52 PM
Its almost like its all wrote wrong completely
Avatar
is it set to release and x64 ?
Avatar
what are you trying to compile ?
Avatar
Lootboxes
Avatar
for atlas ?
8:56 PM
or ark ?
Avatar
I changed all the headers to atlas header
Avatar
you dont have the atlasshop files though 😄
Avatar
Deleted User 2/4/2019 8:56 PM
i already told him
Avatar
the lib file from atlasshop is a dependency for compiling lootbox
8:57 PM
it wont compile without it
8:57 PM
that is unless you strip out anything related to points completely
Avatar
Deleted User 2/4/2019 8:57 PM
the header too as point.h
Avatar
yeah that too
Avatar
So the files from the donation one doesnt work am i correct
Avatar
-_-
Avatar
And im trying to remove the point really its not needed
Avatar
files there are already compiled
Avatar
Deleted User 2/4/2019 8:58 PM
that one is the compiled dll not the source files
Avatar
you need the source variant
8:58 PM
unless you're any good at reverse engineering you're out of luck 😄
Avatar
What im saying is our server is running atlas shop so i dont need the point system
8:58 PM
I use to be just dont see doing that as an ootion
8:59 PM
Kinda dishonest
Avatar
then strip out anything related to shop and if you do it correctly it should compile
Avatar
I thought i did maybe i missed something
8:59 PM
Honestly we just want it to where we can use our points from atlas shop to get random blueprints
Avatar
you said your whole project was red so you probably removed something other than the shop too
Avatar
Deleted User 2/4/2019 9:00 PM
To make it clear even me the one for who does lootbox was created i didn't get the atlas shop source and was forced to create mine
9:00 PM
some people are afraid that if i got them i will share lootbox for atlas too
9:00 PM
So atm just forget about lootbox for atlas if you dont have good knowledge on c++
Avatar
How about no
Avatar
nah dont tax the guy 😄
Avatar
Deleted User 2/4/2019 9:01 PM
xD
9:01 PM
Its aj oke but seriously
Avatar
with enough tinkering the can achieve what he wants
Avatar
Deleted User 2/4/2019 9:01 PM
the best way its to remove the points part
Avatar
I mean if your going to talk like that get lost your not worth my time
Avatar
considering points are of no use for him
9:01 PM
@Joker woah knock off that tone
9:02 PM
if not for @Deleted User you would not have lootbox at all
Avatar
I didnt start it at all
9:02 PM
And someone else would have created it
9:02 PM
And not being hateful at all just being truthful
Avatar
yes ofc someone else would have created it but would he share it to the public ?
9:03 PM
think about it 😛 (edited)
Avatar
Prob to be honest
Avatar
Deleted User 2/4/2019 9:03 PM
Lootbox for ark exist since almost 3 years bro
Avatar
I know this
Avatar
Deleted User 2/4/2019 9:03 PM
so why in 3 years no one made ap ublic one ?
9:03 PM
xD
9:03 PM
public (edited)
Avatar
ye well the public one exists for like not even a year 😄
9:03 PM
and on top of that its completely free
Avatar
Whatever you all say sad you let people come in here and troll people but hey whatever floats your boat
Avatar
Deleted User 2/4/2019 9:04 PM
No one is trolling you
9:04 PM
we gived you the solution more than ones
Avatar
lol ?
9:04 PM
who do you see trolling here 😄
Avatar
MATICHA//طماطم: So atm just forget about lootbox for atlas if you dont have good knowledge on c++
Avatar
@Deleted User clearly told you that unless you want to spend days writing your own atlas shop it would be close to impossible to get lootbox to work with points
Avatar
lets see how this works people get in to looking to learn another way to use c++ and you let this thing walk over top of people because he thinks he is better then others
Avatar
Deleted User 2/4/2019 9:06 PM
Bro im not even a c++ dev xD
Avatar
dude what even are you going on about 😄
Avatar
have a wonderful day and enjoy whatever you all do
Avatar
well that was weird
Avatar
Deleted User 2/4/2019 9:07 PM
I was going to give him my shop and lootbox for atlas but well fuck me if i share anythings else
9:07 PM
I will just shut my mouth up
Avatar
Look I completely understand I am asking some really stupid questions to guys that have coded for awhile now
Avatar
nothing is stupid
9:09 PM
i ask stupid questions daily
9:09 PM
that's why we have this group
9:09 PM
so people with more knowledge and experience can help
Avatar
I learned C++ back in 2010 so getting back into it wow its insane. its just someone basically making me feel like im worthless kinda got to me really bad
Avatar
Deleted User 2/4/2019 9:10 PM
@Joker im not even a dev or anything like that im just the guy who paid a guy to make does lootbox
9:10 PM
i was just honest with you
9:10 PM
Even me i was forced to make my own shop to make lootbox working with atlas
Avatar
Yeah well I may have taken it wrong and for that im sorry
Avatar
no one said anything remotely similar to you, the point being made was that unless you're really good at C++ and and want to spend days writing a new atlas shop getting lootbox to work with points was a waste of time
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/4/2019 9:11 PM
How about asking Michidu for the lib and the header files? 😄
Avatar
Deleted User 2/4/2019 9:11 PM
i told him that too xD
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/4/2019 9:11 PM
No need to develop already existing stuff 😄
Avatar
i assume as the plugin is donator only and in beta they wont be published
Avatar
yes he did but to be honest I dont need the points so by what I am understanding no point in the files from the atlas shp'
9:12 PM
shop
Avatar
Deleted User 2/4/2019 9:12 PM
For my part when i asked for headers never got theù
9:12 PM
them
9:12 PM
xD
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/4/2019 9:13 PM
Its totally up to him anyway 😃
Avatar
Deleted User 2/4/2019 9:13 PM
Thats what i said to the guy
9:13 PM
I know that some other got them
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/4/2019 9:14 PM
Yea but I think Nova has mentioned for the third time now that he isn't even interested in integrating Shop Points into his LootBox plugin (edited)
Avatar
Yeah I understand that so Wetbatman you was right I removed too much now that atlas shop was removed all I get was ../../json.hpp erro
9:14 PM
error
Avatar
Deleted User 2/4/2019 9:15 PM
And we told him for 10 time that he cant just get ride of the point part
Avatar
fixed that now
Avatar
Deleted User 2/4/2019 9:15 PM
and he will not need to shop source anymore
Avatar
Yeah we have went through that I think 3 times now but the issue is when I fix the Json.hpp error then its like the coding is all wrong
9:16 PM
am I allowed to paste errors in here or is there another way of doing it?
Avatar
Deleted User 2/4/2019 9:16 PM
yes your allowed
Avatar
maybe pastebin the project or something
Avatar
pastebin the whole project or just the error?
Avatar
if its a small snippet of code just paste it here
Avatar
Deleted User 2/4/2019 9:19 PM
If you want to get ride of the points
Avatar
yes I do
9:19 PM
did I miss something
Avatar
Deleted User 2/4/2019 9:19 PM
// RCONCommand int RCONRolls = LootBoxes::config["LootBoxes"][lootbox->ToString()]["RCONCommands"]["Count"]; for (int i = 0; i < RCONRolls; i++) { const nlohmann::json itemArray = LootBoxes::config["LootBoxes"][lootbox->ToString()]; auto itemIter = itemArray.find("RCONCommands"); const nlohmann::basic_json<> item = itemIter.value(); auto possibleCommands = item.value("PossibleCommands", nlohmann::json::array()); int size = possibleCommands.size(); std::random_device rd; std::mt19937 eng(rd()); std::uniform_int_distribution<> rand(0, size - 1); nlohmann::json selectedCommand = possibleCommands.at(rand(eng)); std::string command = selectedCommand["Command"]; int MinPointsShop = selectedCommand["MinPointShop"]; int MaxPointsShop = selectedCommand["MaxPointShop"]; std::uniform_int_distribution<> points(MinPointsShop, MaxPointsShop); int shoppoints = points(eng); uint64 steamId = ArkApi::GetApiUtils().GetSteamIdFromController(sender); // Use the ArkShop API to add points ArkShop::Points::AddPoints(shoppoints, steamId); }
9:19 PM
check this
9:23 PM
RandomRewards.cpp
Avatar
now if I remove randomrewards.cpp and .h then that means they wont be able to use points to buy random patterns am I right?
Avatar
Deleted User 2/4/2019 9:24 PM
No no no
9:24 PM
xD
9:24 PM
You need to remove only the part using points
Avatar
Even the MinPointShop/MaxPointShop
9:25 PM
pretty much anything that says points remove it
9:25 PM
Yes I am questioning even myself if that was a stupid question
Avatar
Deleted User 2/4/2019 9:26 PM
std::string command = selectedCommand["Command"]; int MinPointsShop = selectedCommand["MinPointShop"]; int MaxPointsShop = selectedCommand["MaxPointShop"]; std::uniform_int_distribution<> points(MinPointsShop, MaxPointsShop); int shoppoints = points(eng); uint64 steamId = ArkApi::GetApiUtils().GetSteamIdFromController(sender); // Use the ArkShop API to add points ArkShop::Points::AddPoints(shoppoints, steamId);
9:26 PM
You will find nothing saying
9:26 PM
"Hello if you want to remove point cut here"
Avatar
you dont say
9:27 PM
talking like that is what made the issue before if you want to help dont try being a smart ass
Avatar
Deleted User 2/4/2019 9:27 PM
Bro shut the fuck up
9:27 PM
Why the fuck am i even bodering answering to you
9:28 PM
cya
Avatar
yeah well fuck you too
Avatar
Deleted User 2/4/2019 9:28 PM
Avatar
you know im so sorry your life is so terrible you think you have to act better then everyone
9:29 PM
but have a wonderful day or not idgaf
Avatar
GSH | MrOwlSky 2/4/2019 9:34 PM
Y'all chill out
Avatar
I was being nice even said i was sorry for blowing up the first time but now two messages that im a moron nah
Avatar
this conversation is getting spicy
Avatar
Deleted User 2/4/2019 9:36 PM
@Joker Maybe i was rude or something but it wasn't my goal
Avatar
almost too spicy
Avatar
Deleted User 2/4/2019 9:37 PM
I never said something to hurt you or anything
9:37 PM
i was really trying to help you
9:37 PM
but my knowledge on c++ its limited
Avatar
And i was thankful for that you taking time out of your day to help me
Avatar
Deleted User 2/4/2019 9:37 PM
If i was having the knowledge to remove that part of the plugins ill do it for you
9:38 PM
but i just answer with what i have
9:38 PM
the only thing that i know is that the part of the plugins that need to be removed
9:38 PM
some is on the randomreward.cpp
Avatar
I dont want anyone to do it for me just thought someone would have some insight on what was pointing to atlasshop so I could stop it
Avatar
Deleted User 2/4/2019 9:39 PM
std::string command = selectedCommand["Command"]; int MinPointsShop = selectedCommand["MinPointShop"]; int MaxPointsShop = selectedCommand["MaxPointShop"]; std::uniform_int_distribution<> points(MinPointsShop, MaxPointsShop); int shoppoints = points(eng); uint64 steamId = ArkApi::GetApiUtils().GetSteamIdFromController(sender); // Use the ArkShop API to add points ArkShop::Points::AddPoints(shoppoints, steamId);
9:39 PM
the Bold part is using the shop per example
9:40 PM
MinPointShop/MaxPointShop : also need to be removed from the source and the config
Avatar
Ok ty
Avatar
Deleted User 2/4/2019 9:43 PM
you'r welcome
Avatar
Rogue Leader 2/4/2019 11:13 PM
Just a gentle reminder that cursing at other members is a no-no. Nova has been booted for his behavior and everyone else name calling gets a warning and a slap on the wrist.
Avatar
maticha had .lib, it was more than enough to use shop 😃
Avatar
Deleted User 2/5/2019 1:07 PM
at the beginning i was also looking for the points.h
1:08 PM
im a bad example since i dont even try to boder my self learning anything about c++ anymore
1:08 PM
too complicated for my little brain
Avatar
its really not tbh
1:16 PM
i mean i'm still a n00b but the language itself is pretty logical
Avatar
Deleted User 2/5/2019 1:18 PM
yeah it depent on people me im still fighting just with icludes from time to time didn't even tried to change codes yet
1:18 PM
well i did one time on a easy plugins thats all xD
Avatar
DECLARE_HOOK(AShooterGameMode_Logout, void, AShooterGameMode*, AController *); DECLARE_HOOK(AShooterGameMode_PostLogin, void, AShooterGameMode*, APlayerController *); Can i use these hooks for detect player entering/leaving the game?
Avatar
yeah
Avatar
Ok, thanks
Avatar
Rogue Leader 2/5/2019 7:19 PM
@deleted-role any updates on when the newer Atlas classes will be added to the API?
7:19 PM
I still haven't been able to get claim flag detection working
7:20 PM
Or detecting what ship a structure is attached to.
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/5/2019 7:24 PM
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/5/2019 7:24 PM
Wasn't it that problem ? 😄
Avatar
GSH | MrOwlSky 2/5/2019 7:24 PM
Haven't found them myself yet either.
Avatar
Rogue Leader 2/5/2019 7:42 PM
No, it still crashed on larger ships and when checking if anchored
7:42 PM
Also crashed using cannons and fire arrows
Avatar
what classes you need?
Avatar
any other way to check if APrimalCharacter is a player instead of a dino besides GetOwnerController ? (edited)
Avatar
GetOwnerController doesn't check it btw
7:56 PM
but AShooterPlayerController can't be a dino 😃
7:56 PM
and GetOwnerController is broken in game
Avatar
shit i messed up typing that
7:57 PM
i mean this APrimalCharacter
Avatar
IsA can check it
Avatar
IsA(AShooterPlayerController::GetPrivateStaticClass()) ?
Avatar
yes
Avatar
float Hook_APrimalCharacter_TakeDamage(APrimalCharacter* _this, float Damage, FDamageEvent* DamageEvent, AController* EventInstigator, AActor* DamageCauser) { if (EventInstigator && EventInstigator->CharacterField()) { AShooterPlayerController* AttackerShooterController = static_cast<AShooterPlayerController*>(EventInstigator); if (AttackerShooterController && AttackerShooterController->PlayerStateField() && AttackerShooterController->GetPlayerCharacter() && AttackerShooterController->GetPlayerCharacter()->CurrentWeaponField() && AttackerShooterController->GetPlayerCharacter()->CurrentWeaponField()->AssociatedPrimalItemField()) { APlayerController descr; FString WeaponName; AttackerShooterController->GetPlayerCharacter()->CurrentWeaponField()->AssociatedPrimalItemField()->GetItemName(&WeaponName, false, true, nullptr); if (_this->IsA(AShooterPlayerController::GetPrivateStaticClass()) && WeaponName.Contains(L"Armor Piercing")); Log::GetLog()->warn("Weapon Name: {}", WeaponName.ToString()); Damage = Damage * 0.10; } } return APrimalCharacter_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser); }
8:03 PM
do you think its better to implement that check in the first IF or the second ? (edited)
Avatar
your IF is weird 😃
8:04 PM
no body
Avatar
if (EventInstigator && EventInstigator->CharacterField())
8:05 PM
this one ?
Avatar
if (_this->IsA(AShooterPlayerController::GetPrivateStaticClass()) && WeaponName.Contains(L"Armor Piercing"));
Avatar
hmm the plugin worked though but the player check was broken
8:07 PM
obviously now that you pointed out that GetOwnerController does not work 😄
Avatar
because your IF doesn't have body 😄
Avatar
oh lol now i see what you mean
8:08 PM
float Hook_APrimalCharacter_TakeDamage(APrimalCharacter* _this, float Damage, FDamageEvent* DamageEvent, AController* EventInstigator, AActor* DamageCauser) { if (EventInstigator && EventInstigator->CharacterField()) { AShooterPlayerController* AttackerShooterController = static_cast<AShooterPlayerController*>(EventInstigator); if (AttackerShooterController && AttackerShooterController->PlayerStateField() && AttackerShooterController->GetPlayerCharacter() && AttackerShooterController->GetPlayerCharacter()->CurrentWeaponField() && AttackerShooterController->GetPlayerCharacter()->CurrentWeaponField()->AssociatedPrimalItemField()) { APlayerController descr; FString WeaponName; AttackerShooterController->GetPlayerCharacter()->CurrentWeaponField()->AssociatedPrimalItemField()->GetItemName(&WeaponName, false, true, nullptr); if (_this->IsA(AShooterPlayerController::GetPrivateStaticClass()) && WeaponName.Contains(L"Armor Piercing")); { Log::GetLog()->warn("Weapon Name: {}", WeaponName.ToString()); Damage = Damage * 0.10; } } } return APrimalCharacter_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser);
Avatar
almost, dont need ;
Avatar
float Hook_APrimalCharacter_TakeDamage(APrimalCharacter* _this, float Damage, FDamageEvent* DamageEvent, AController* EventInstigator, AActor* DamageCauser) { if (EventInstigator && EventInstigator->CharacterField()) { AShooterPlayerController* AttackerShooterController = static_cast<AShooterPlayerController*>(EventInstigator); if (AttackerShooterController && AttackerShooterController->PlayerStateField() && AttackerShooterController->GetPlayerCharacter() && AttackerShooterController->GetPlayerCharacter()->CurrentWeaponField() && AttackerShooterController->GetPlayerCharacter()->CurrentWeaponField()->AssociatedPrimalItemField()) { APlayerController descr; FString WeaponName; AttackerShooterController->GetPlayerCharacter()->CurrentWeaponField()->AssociatedPrimalItemField()->GetItemName(&WeaponName, false, true, nullptr); if (_this->IsA(AShooterPlayerController::GetPrivateStaticClass()) && WeaponName.Contains(L"Armor Piercing")) { Log::GetLog()->warn("Weapon Name: {}", WeaponName.ToString()); Damage = Damage * 0.10; } } } return APrimalCharacter_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser); }
Avatar
seems good
Avatar
yeah have some leftover stuff
8:10 PM
like APlayerController descr;
8:10 PM
alright compiled fine
8:10 PM
testing time 😄
8:10 PM
thx again @Michidu
Avatar
Rogue Leader 2/5/2019 9:45 PM
@Michidu, the classes for ships, hulls, planks, etc. Basically anything ship or claim flag related.
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/5/2019 9:49 PM
ClaimFlag struct is already implemented APrimalRaft struct is missing
Avatar
Rogue Leader 2/5/2019 10:07 PM
Some of the claim flag functions were crashing.
10:08 PM
Trying to get the ownernamefield was giving me a crash
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/5/2019 10:08 PM
If the function itself is corrupted you can't do anything 😄
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/5/2019 10:17 PM
seems like Michidu already added a few more structs including many Raft components
Avatar
Rogue Leader 2/5/2019 10:23 PM
With the ownernamefield being a parent class function, it shouldn't cause a crash in only one subclass though, right?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/5/2019 10:24 PM
depends if they used virtual modifier internally I guess 😄
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/5/2019 10:57 PM
btw; I just tested your code again with a "Shooner" + canons
10:57 PM
same result 😄
10:59 PM
Avatar
Rogue Leader 2/5/2019 11:07 PM
Is it possible that I broke my .pdb file?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/5/2019 11:13 PM
honest; I don't have a clue whats wrong 😄
11:13 PM
Maybe try a clean installation
Avatar
Deleted User 2/6/2019 12:57 AM
Does anyone have a few minutes to lend a hand? I have the source code and required library for lootboxes for atlas but need help to compile them together and make them work on atlas. I'm just new to this scene. (edited)
Avatar
GSH | MrOwlSky 2/6/2019 2:37 AM
Welcome to the community! I'm sure someone is willing to help you. If you want the source code kept private reach out to the plugin devs and ranked members on discord.
Avatar
What's the process for getting the Plugin Dev role? "!rank Plugin Dev" from #【💌】ʜᴇʟᴘꜰᴜʟ-ʟɪɴᴋꜱ hasn't worked for me in #【🚩】ʙᴏᴛ-ꜱᴘᴀᴍ channel
Avatar
seems like someone gave it to you @Zachar543 😃
5:59 AM
@Rogue Leader i think most classes were added already, if you compile api from github, you can use new "DumpAll' option
Avatar
float Hook_APrimalCharacter_TakeDamage(APrimalCharacter* _this, float Damage, FDamageEvent* DamageEvent, AController* EventInstigator, AActor* DamageCauser) { if (EventInstigator && EventInstigator->CharacterField()) { AShooterPlayerController* AttackerShooterController = static_cast<AShooterPlayerController*>(EventInstigator); if (AttackerShooterController && AttackerShooterController->PlayerStateField() && AttackerShooterController->GetPlayerCharacter() && AttackerShooterController->GetPlayerCharacter()->CurrentWeaponField() && AttackerShooterController->GetPlayerCharacter()->CurrentWeaponField()->AssociatedPrimalItemField()) { FString WeaponName; AttackerShooterController->GetPlayerCharacter()->CurrentWeaponField()->AssociatedPrimalItemField()->GetItemName(&WeaponName, false, true, nullptr); if (_this->IsA(AShooterPlayerController::GetPrivateStaticClass()) && WeaponName.Contains(L"Armor Piercing")) { Log::GetLog()->warn("Weapon Name: {}", WeaponName.ToString()); Damage = Damage * 0.10; } } } return APrimalCharacter_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser); }
9:03 PM
for some reason this works without _this->IsA(AShooterPlayerController::GetPrivateStaticClass()) (edited)
9:03 PM
but not with
Avatar
check if its AShooterCharacter instead (edited)
Avatar
yeah that worked...
Avatar
what is the TargettingTeamField for wild dinos ?
Avatar
Rogue Leader 2/7/2019 9:30 PM
Tribe id. It's probably 0 for wild dinos
9:30 PM
Same for world structures
Avatar
its equal to that yea ?
9:37 PM
it being 0 does not appear to work
9:37 PM
if (_this->IsA(APrimalDinoCharacter::GetPrivateStaticClass()) && _this->TargetingTeamField() == 0)
9:37 PM
using this
9:41 PM
_this->IsA(APrimalDinoCharacter::GetPrivateStaticClass()) && _this->TargetingTeamField() < 10000
9:41 PM
this works
Avatar
Rogue Leader 2/7/2019 9:41 PM
^
Avatar
it looks like anything wild has the id below 10000
Avatar
Rogue Leader 2/7/2019 9:41 PM
Was just about to say try that
Avatar
gr8 my plugin is complete time to post it 😄
Avatar
hope it gets approved soon (edited)
9:54 PM
my first "big" project 😄
Avatar
Nice job!! 😄
Avatar
great work @WETBATMAN
Avatar
thanks for approving it 😄
Avatar
if you wanna improve it one day, load weapon names from config 😃 (edited)
Avatar
let the user set the weapon names you mean ?
Avatar
yea
Avatar
yeah that is an idea i had but didn't find a good way to do that yet 😄
Avatar
hmm both sword and tek sword contain Sword in their name
10:34 AM
is there a way to differentiate between them ?
Avatar
check full name?
10:39 AM
😄
Avatar
is there something like DoesNotContain ? (edited)
Avatar
!Contain() 😃
Avatar
if (_this != nullptr && WeaponName.Contains(L"Sword") != WeaponName.Contains(L"Tek Sword"))
11:04 AM
i think this also works
Avatar
why not check full name instead?
Avatar
both end with sword
Avatar
that's the point of full comparison, they will be different
Avatar
StartsWith is that check ?
11:06 AM
equals i think
Avatar
yeah but the weapons have tier names in their name
11:07 AM
so with equals it will check for something named "Primitive Sword"
11:07 AM
or "Apprentice Sword"
Avatar
maybe start/endwith then
Avatar
yeah that's the thing 😄
11:08 AM
they end with the same thing and start with the same thing 😛
11:08 AM
+StartsWith would have to sort through tier names again
11:12 AM
it seems to work fine like this
11:12 AM
going to update it now
11:18 AM
submitted the fix to the forum
Avatar
great 😃
12:59 PM
enemy structure detection seems to not function when i'm on a dino
12:59 PM
12:59 PM
this is what happens when i whistle my dino to attack
12:59 PM
12:59 PM
this happens if i ride the dino
1:00 PM
if i whistle to attack plugin works fine and damage is prevented
1:00 PM
if i'm on a dino it does not work
1:29 PM
this appears to work
Avatar
dino->bUseBPDoHarvestAttack()()
2:27 PM
this does not work, any other alternatives in the current api or should i compile the new one for the AttackInfo ?
2:28 PM
(want to identify if a dino is using secondary or primary attack)
Avatar
Rogue Leader 2/8/2019 3:49 PM
dino->bUseBPDoHarvestAttack()() will just return if a dino can use a harvest attack. It's not a hook on a function
Avatar
Rogue Leader 2/8/2019 4:07 PM
You could try hooking on the APrimalDinoCharacter->DoAttack() function and see if AttackIndex changes based on which attack is used.
4:07 PM
If it does you can use that hook instead to just stop the attack if they are too close to an enemy structure (edited)
Avatar
@OwnProx added attack info to the api so ill try compiling it and using that
4:35 PM
because it can be called in TakeDamage
5:02 PM
does attack infos require a new hook ?
Avatar
damn no EventInstigator with DoAttack so no notifications 😦
Avatar
i think i broke my brain trying to log attack index
5:54 PM
how do i log it ?
6:19 PM
what am i doing wrong 😄
Avatar
this isn't looking right huehuehue
11:36 PM
😛
Avatar
@WETBATMAN Clean and rebuild the solution. I find that Visual Studio sometimes gets confused and leaves old errors marks around (edited)
11:37 PM
Rebuilding normally fixes it for me
Avatar
tried that but does not work 😄
8:58 AM
Avatar
What's "_this" in your screenshot?
Avatar
APrimalDinoCharacter* _this,
Avatar
anyone knows how attack index is used
12:41 PM
or how to log it ?
12:41 PM
bool Hook_APrimalDinoCharacter_DoAttack(APrimalDinoCharacter* _this, int AttackIndex, bool bSetCurrentAttack, bool bInterruptCurrentAttack)
12:41 PM
from this hook
Avatar
Rogue Leader 2/9/2019 3:26 PM
Log::GetLog()->warn("Attack Index: {}", AttackIndex); (edited)
Avatar
wait you can simply log attack index like that ?
5:03 PM
will try out once i’m near my pc
5:03 PM
thanks ❤️
Avatar
Is anyone using AShooterPlayerController->ClientChatMessage() or ArkApi::SendChatMessage() and getting an unexpected tab character before the message? (edited)
7:14 PM
It doesn't happen with normal chat sent by players, but does when ClientChatMessage is used in a plugin. It's not in the message, so I'm not sure where it's coming from (edited)
7:16 PM
Example: The "Test: Test" has a tab character after the colon that I'm not trying to add
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/9/2019 7:16 PM
For me it looks like a gab caused by the Icon
Avatar
Yeah... I thought so as well, but I tried adding the same icon and it's still a bit off. I'm suspecting that it's a tab character since the spacing varies based on the width of the text before the colon
Avatar
Hmm... I'm not sure how I fixed it, but it's working better now. The next problem is that the first <RichColor> tag in a message cause a space
Avatar
it's probably how game interprets it
4:38 PM
will a check like this work ?
Avatar
Rogue Leader 2/10/2019 5:16 PM
I would put parenthesis around all the contains (edited)
5:17 PM
Some languages would evaluate that in such a way that it would always fail unless it was a Direwolf
5:17 PM
But idk about C++
Avatar
yeah i just added it to my final if statement and i worked
5:18 PM
also it required == not =
5:18 PM
thanks @Rogue Leader
Avatar
Rogue Leader 2/10/2019 5:19 PM
== is the comparison operator while = is the assignment operator (edited)
Avatar
how would i go about HWID locking a plugin 😛
Avatar
float Hook_APrimalCharacter_TakeDamage(APrimalCharacter* _this, float Damage, FDamageEvent* DamageEvent, AController* EventInstigator, AActor* DamageCauser) { if (_this->IsA(AShooterCharacter::GetPrivateStaticClass())) { if (!_this->IsDead() && !_this->IsConscious() && _this != nullptr) { _this->Suicide(); } } return APrimalCharacter_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser); }
11:49 AM
hmm any other way to kill a player ?
11:50 AM
Suicide() times the server out and it crashes 😄
Avatar
I believe the issue is the player dieing in the hook (I had similar issues with dinos). You could try calling the original function earlier or add the player to a list and go through it later.
Avatar
shouldn't !_this->IsDead() check weather the player is alive before executing the suicide function ?
Avatar
bool meetsrequirements; float Hook_APrimalCharacter_TakeDamage(APrimalCharacter* _this, float Damage, FDamageEvent* DamageEvent, AController* EventInstigator, AActor* DamageCauser) { if (_this->IsA(AShooterCharacter::GetPrivateStaticClass()) && _this != nullptr) { if (!_this->IsDead() && !_this->IsConscious()) { meetsrequirements = true; } else { meetsrequirements = false; } } return APrimalCharacter_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser); } void AutoKill(AShooterPlayerController* AttackerShooterController, FString* message, int mode) { if (meetsrequirements=true) AttackerShooterController->GetPlayerCharacter()->Suicide(); }
3:36 PM
maybe this will work 🤷
Avatar
instead of killing someone in TakeDamage function (which can result to calling die() 2 times), set Damage variable high.
Avatar
so basically kill them with high damage 😄
3:39 PM
hmm that could work
3:39 PM
yeah but what if incoming damage is torpor
Avatar
might still work 😄
Avatar
wouldn't checking !_this->IsDead()
3:42 PM
before killing the player prevent it from being called 2 times ?
3:42 PM
only if you dont call orig function
Avatar
yeah but returning it here is necessary isnt it ?
Avatar
actually no
Avatar
hmmm
3:54 PM
let me try without the original function then
3:54 PM
because otherwise it crashed the server 😄
Avatar
without the original function it breaks damage 😄
5:15 PM
characters dont take any dmg now
5:17 PM
setting the dmg really high worked lol
5:55 PM
hmm starting a thread like this doesn't work ?
Avatar
it's very weird..
Avatar
yes indeed 😄
6:01 PM
couldn't get the api timer to work
Avatar
with timer it will be same
6:02 PM
do you really want to change function argument in new thread
Avatar
can the thread be started after the new damage value is set ?
Avatar
but what for?
Avatar
want to kill the player after he/she has been unconscious for a certain amount of time
Avatar
you will have to use suicide in new thread (but timer is better)
Avatar
the template i found on the wiki didnt work
6:11 PM
API was redded out
Avatar
Out of interest, what are you trying to accomplish? Depending on what you are trying to do, there may be a simpler way. (edited)
Avatar
basically on my server there is this creature that hits you torping you out in one hit and never losses aggro so you just lay there unconscious untill an admin kills you
6:37 PM
so i want to make a timer that waits 3 min for example and then kills the player
Avatar
hmm how would i use suicide in a new thread
7:47 PM
7:47 PM
the Damage = Damage * 10000 cant be outside of that can it ?
Avatar
I told you that you need to use suicide here, damage doesnt make any sense
Avatar
i did and it crashed my server
8:07 PM
every time i got knocked out
8:07 PM
will that not happen with a started thread or ?
Avatar
Not necesary, make sure player is not dead
Avatar
!_this->IsDead()
8:09 PM
i did
8:09 PM
and it still crashed
8:12 PM
8:12 PM
so like this ?
Avatar
Rogue Leader 2/11/2019 8:35 PM
Why not take your first example and just return 0 right after the suicide?
8:36 PM
Stops the hook from calling the original take damage on a dead player.
8:37 PM
Meh, Michs solution is better
8:38 PM
But you're also gonna have to keep track of it a player got knocked out, then 3 mins later got knocked out by something again
8:38 PM
Other wise your timer will kill them if they happen to get knocked out a second or third time at the 3 minute mark
8:39 PM
By a player lol
Avatar
oh that is a pretty good point 😄
8:39 PM
hmm how would i reset the timer if they woke up though
Avatar
Rogue Leader 2/11/2019 8:40 PM
You'd have to have the timer check if they are conscious every few ticks (edited)
8:40 PM
If they are, then cancel it
8:40 PM
If they aren't, continue till it hits 3 mins
8:40 PM
Then kill them
Avatar
that can be done with a thread aswel or would an api timer be needed in that case (edited)
Avatar
Rogue Leader 2/11/2019 8:43 PM
I haven't worked with threads, but it's possible
8:46 PM
Maybe just keep checking if the player is unconscious and not dead every few seconds. If they wake up or die, break out(if you can?) If not continue checking till suicide time
8:46 PM
I'm not sure what cleanup if any is required for a thread either. (edited)
Avatar
i dont think i can use a break; here
9:27 PM
and i also have no idea how to make a check that runs every x seconds 😃
9:28 PM
more research is needed i guess 😆
Avatar
Probably best to avoid threads unless you are really sure you need them. If you create a thread in the wrong place (e.g. the methods called on initialization), you can very easily cause a deadlock. I could be wrong, but I wouldn't count on any of the API methods (within the UE code) being thread-safe. (edited)
11:48 AM
damn i cant even get the API timer to work and i'm talking about threads and shit here
11:48 AM
😛
Avatar
how your callback looks?
Avatar
there is none 😛
Avatar
how it should work then? 😃
Avatar
how should i make the callback
11:56 AM
😄
Avatar
its a function
Avatar
callback needs to be the suicide function i want to use ?
Avatar
no, you can call suicide in callback
11:58 AM
if (_this->IsA(AShooterCharacter::GetPrivateStaticClass()) && _this != nullptr) { if (!_this->IsDead() && !_this->IsConscious()) { API::Timer::Get().DelayExecute(&_this->Suicide, 10); } }
11:58 AM
like this ?
12:00 PM
>c:\users\avtoj\source\repos\autokill\autokill\autokill.cpp(15): error C3083: 'Timer': the symbol to the left of a '::' must be a type 1>c:\users\avtoj\source\repos\autokill\autokill\autokill.cpp(15): error C2039: 'Get': is not a member of 'API' 1>c:\users\avtoj\desktop\arkserver\ark-server-api-master\version\core\public\tools.h(36): note: see declaration of 'API' 1>c:\users\avtoj\source\repos\autokill\autokill\autokill.cpp(15): error C3861: 'Get': identifier not found 1>c:\users\avtoj\source\repos\autokill\autokill\autokill.cpp(15): error C2276: '&': illegal operation on bound member function expression
12:00 PM
timer seems to be always redded out
Avatar
no, you still need own function for callback
12:01 PM
like in wiki example
Avatar
void TimerCallBack(int arg1, int arg2) { Log::GetLog()->info("CallBack Executed Args: {}, {}", arg1, arg2); }
12:02 PM
something like this ?
Avatar
yes just other args probably
Avatar
yeah
12:05 PM
even with the default template Timer is still redded out 😄
Avatar
did you include it
Avatar
i didnt
12:08 PM
lol
12:08 PM
yeah not its not redded out
12:10 PM
void TimerCallBack(int arg1, int arg2)
12:10 PM
in here i need to use APrimalCharacter * _this ?
Avatar
float Hook_APrimalCharacter_TakeDamage(APrimalCharacter* _this, float Damage, FDamageEvent* DamageEvent, AController* EventInstigator, AActor* DamageCauser) { if (_this->IsA(AShooterCharacter::GetPrivateStaticClass()) && _this != nullptr) { if (!_this->IsDead() && !_this->IsConscious()) { API::Timer::Get().DelayExecute(&TimerCallBack, 10); } } return APrimalCharacter_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser); } void TimerCallBack(APrimalCharacter* _this) { _this->Suicide(); }
12:20 PM
TimerCallBack : undeclared identifier
Avatar
because it's below
Avatar
c:\users\avtoj\desktop\arkserver\ark-server-api-master\version\core\public\timer.h(31): error C2664: 'void API::Timer::DelayExecuteInternal(const std::function<void (void)> &,int)': cannot convert argument 1 from 'std::_Binder<std::_Unforced,void (__cdecl *const &)(APrimalCharacter *)>' to 'const std::function<void (void)> &' 1>c:\users\avtoj\desktop\arkserver\ark-server-api-master\version\core\public\timer.h(30): note: Reason: cannot convert from 'std::_Binder<std::_Unforced,void (__cdecl *const &)(APrimalCharacter *)>' to 'const std::function<void (void)>' 1>c:\users\avtoj\desktop\arkserver\ark-server-api-master\version\core\public\timer.h(30): note: No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called 1>c:\users\avtoj\source\repos\autokill\autokill\autokill.cpp(19): note: see reference to function template instantiation 'void API::Timer::DelayExecute<void(__cdecl *)(APrimalCharacter *),>(const Func &,int)' being compiled
12:24 PM
void TimerCallBack(APrimalCharacter* _this) { _this->Suicide(); } float Hook_APrimalCharacter_TakeDamage(APrimalCharacter* _this, float Damage, FDamageEvent* DamageEvent, AController* EventInstigator, AActor* DamageCauser) { if (_this->IsA(AShooterCharacter::GetPrivateStaticClass()) && _this != nullptr) { if (!_this->IsDead() && !_this->IsConscious()) { API::Timer::Get().DelayExecute(&TimerCallBack, 10); } } return APrimalCharacter_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser); }
12:26 PM
was missing _this in the timer
12:27 PM
void TimerCallBack(APrimalCharacter* _this) { _this->Suicide(); } float Hook_APrimalCharacter_TakeDamage(APrimalCharacter* _this, float Damage, FDamageEvent* DamageEvent, AController* EventInstigator, AActor* DamageCauser) { if (_this->IsA(AShooterCharacter::GetPrivateStaticClass()) && _this != nullptr) { if (!_this->IsDead() && !_this->IsConscious()) { API::Timer::Get().DelayExecute(&TimerCallBack, 10,_this); } } return APrimalCharacter_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser); }
12:27 PM
i hope it works now 😄
Avatar
looks good
Avatar
btw can an IF check be called with a timer ?
Avatar
want to check if a player is unconscious every few seconds
12:37 PM
if not break the loop
12:38 PM
as @Rogue Leader mentioned it could lead them to being killed if the timer completes and the player gets knocked out twice
Rogue Leader 2/12/2019 1:32 PM
Avatar
@Michidu is there any documentation for integrating permissions into a plugin ?
5:26 PM
want to check if a player in certain permissions groups and if not add him to a group
6:07 PM
@Michidu would something like this work ?
Avatar
yea, thats all
Avatar
dumb question how to check if its true 😄
Avatar
you already do
6:13 PM
it returns bool
Avatar
so if a player is in this group the rest of the IF statement runs ?
Avatar
ah ok
6:17 PM
so if i place ! before then it would only run if its false ye ?
6:18 PM
if not in group
Avatar
yeah
6:18 PM
thanks ❤
Avatar
TeamSelector.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) bool __cdecl Permissions::IsPlayerInGroup(unsigned __int64,class FString const &)" (__imp_?IsPlayerInGroup@Permissions@@YA_N_KAEBVFString@@@Z) 1>TeamSelector.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) class std::optional<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > __cdecl Permissions::AddPlayerToGroup(unsigned __int64,class FString const &)" (__imp_?AddPlayerToGroup@Permissions@@YA?AV?$optional@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@_KAEBVFString@@@Z) 1>C:\Users\avtoj\source\repos\TeamSelector\x64\Release\TeamSelector.dll : fatal error LNK1120: 2 unresolved externals
6:54 PM
what's this ?
6:55 PM
can i not load a permission name from config ?
Avatar
you need permissions.lib
Avatar
i have it in the linker
6:56 PM
or do i need to include it too ?
6:57 PM
yeah probably shouldn't have asked that 😄
6:57 PM
that was it thanks again
7:41 PM
getting this crash
7:41 PM
can a name of a permission group not be in the unicode format in the config ?
7:41 PM
or can commands not be in unicode ?
Avatar
does sending a notification to a player not work unless you hook something ?
8:36 PM
No, its smth else
Avatar
i'm having issues loading commands and other Fstrings from the config
8:36 PM
it cant read them
8:37 PM
tried to use GetText from your ArkShop
8:37 PM
TeamSelector.obj : error LNK2001: unresolved external symbol "class FString __cdecl TeamSelector::GetText(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?GetText@TeamSelector@@YA?AVFString@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) 1>C:\Users\avtoj\source\repos\TeamSelector\x64\Release\TeamSelector.dll : fatal error LNK1120: 1 unresolved externals
8:37 PM
but got this
Avatar
sometimes i cannot comprehend the level of my stupidity
8:50 PM
i fucking forgot to load the config in the Load Function
Avatar
What does error 1114 mean? When loading plugin
Avatar
It happens for many reasons. It's a pseudo generic error code that something went wrong when loading the DLL. Check if there were any exceptions thrown in your DLL_PROCESS_ATTACH code
12:02 AM
If you didn't write the plugin or didn't change anything in the code, check that the config file isn't malformed
Avatar
Thanks, I'll try catch exceptions in DLL_PROCESS_ATTACH
Avatar
Rogue Leader 2/13/2019 12:13 AM
Most of the time it's been a config error. If you used one double check that your config is correct and all your variables that pull from it are correct
12:14 AM
Could be a misspelling somewhere, an invalid type being loaded, the config file may not be the correct encoding and so on. (edited)
Avatar
Either way, logging is your friend 🙂
Avatar
Yes, it's my first own plugin 😃
Avatar
Nice 🙂
Avatar
Has anyone tried to use threads in plugins? I want to do broadcasting messages to players by timer and wrote simple class that starts new thread and should be broadcast messages. But plugin is stucks when creating thread void Broadcaster::StartBroadcasting() { m_is_working = true; m_thread.reset(new std::thread(&Broadcaster::m_InternalFunc, this)); // Stucks here } This code is works well in other console project
Avatar
use the api timer
12:38 PM
it has a feature for a repeating function
Avatar
Ok, I'll try it. Thanks
12:45 PM
Are there any way to stop/pause timer? Function uses config's data and maybe need to reload it. So need to pause timer to update shared data. Or protect data but I think this a bad way to protect json object
Avatar
hmm maybe you could add the custom function in the unload function
1:17 PM
take a look at ArkShop plugin it has quite a few of its own functions that it unloads (edited)
Avatar
I am using API timer, but plugin still stucks... At RecurringExecute point
Avatar
what do you mean 'stucks'?
Avatar
Plugins loading stops when try to load my plugin. Without any messages or errors
Avatar
then you do something wrong in RecurringExecute, keep in mind that it doesn't start a new thread
Avatar
A pass true for async argument
8:44 AM
If look at source code - RecurringExecute should start new thread and detach from it. Or I did not understand something?
8:48 AM
I tried log debug message at start of thread function and message did not display. Seems execution thread do not enter into function
Avatar
ye, right then
8:51 AM
so how it looks?
Avatar
how would i forcibly unload a plugin?, if the HWID does not match for example
Avatar
crash it 😃
Avatar
any way to actually deny plugin loading on startup 😄
Avatar
just dont load commands/hooks and return false in dllmain
Avatar
@Michidu Log::GetLog()->info("Before start timer"); // This executes API::Timer::Get().RecurringExecute([]() { Log::GetLog()->info("Entering into timer func"); // This doesn't execute if(shutdown_process == true) { return; } TArray<uint64> players = database->GetPlayerIDs(); Log::GetLog()->info("After request to DB"); TArray<Rank> ranks = config.BuildRankList(); for(const auto steam_id : players) { if(auto* player_controller = ArkApi::GetApiUtils().FindPlayerFromSteamId(steam_id); player_controller != nullptr) { TArray<FString> player_groups = Permissions::GetPlayerGroups(steam_id); uint64 total_play_time = (realtime_cache->GetPlayTime(steam_id) + database->GetPlayTime(steam_id)) / 60; for(const auto& rank : ranks) { if(total_play_time >= rank.cost && !player_groups.Contains(FString(rank.name.c_str()))) { ArkApi::GetApiUtils().SendChatMessage(player_controller, config.GetMessageText("Sender"), *config.GetMessageText("BroadcastMessage")); break; } } } } }, config.GetBroadcastInterval(), -1, true); database it's wrapper for daotk::mysql::connection protected by mutex realtime_cache it's simple storage for online players. Also protected by mutex Nothing executes here and plugin loading stops. If i comment RecurringExecute then works fine.
Avatar
are you sure config.GetBroadcastInterval() works?
Avatar
Should works inline uint64 GetBroadcastInterval() const { std::lock_guard<std::mutex> guard(m_mutex); return (static_cast<uint64>(m_config["General"]["BroadcastInterval"]) * static_cast<uint64>(60)); }
11:12 AM
Config is correct
Avatar
still you might want to check it
Avatar
Ok, I'll check it. But this works fine std::cout << (static_cast<unsigned long long>(config["General"]["BroadcastInterval"]) * static_cast<unsigned long long>(60)) << std::endl;
11:26 AM
Are there any plugins to look at that use API's Timer? I did not found those
11:30 AM
you dont execute it at dllmain?
Avatar
I am trying latest code (with std::cout) into another executable project, because I have not a server. Just check getting value from json
Avatar
what do you mean in another executable ?
11:33 AM
not even a game?
Avatar
This not in a game std::cout << (static_cast<unsigned long long>(config["General"]["BroadcastInterval"]) * static_cast<unsigned long long>(60)) << std::endl; RecurringExecute, of course, in the game
11:37 AM
I know precisely that config readed successfully at call RecurringExecute
Avatar
try w/o async
Avatar
Ok, I'll try it, thanks. I had been the same problem when tried to do it just by std::thread
Avatar
dont do it in dllmain
Avatar
What do you mean? dllmain calls Initialize() and Initialize() calls RecurringExecute()
12:07 PM
Do you mean do it by a command, but not when loading dll? (edited)
Avatar
at plugin load most game functions are not initialized, so it might be the reason (edited)
Avatar
It seems that when a thread is created from within DllMain upon DLL_PROCESS_ATTACH it won't begin until all dll's have been loaded. Since I need to make sure the thread runs before I continue, I ge...
12:24 PM
This is probably the problem
12:26 PM
I'll try it in the evening
Avatar
Does your mysql library create a connection pool? If so, it may be trying to create threads, which can cause a deadlock in Dllmain.
Avatar
Mysql loaded successfully and works without timer
Avatar
I have a few plugins that needed threads, and I had to use the Windows API CreateThread to prevent the deadlock.
Avatar
I use daotk library and I create one connection and protect it by mutex
12:41 PM
Hm.. Thanks, will keep in mind
Avatar
thanks for the mentor role ! 😄
Avatar
Rogue Leader 2/14/2019 5:15 PM
😘
Avatar
GSH | MrOwlSky 2/14/2019 7:34 PM
Anyone know what this is and how to fix it? https://pastebin.com/rjefEtxD Atlas Server Manager Crash report, Ownprox been afk for a bit.
Avatar
@Michidu can you make PluginServerManager log the crash into a file maybe ?, because it seems that i get no crash reports anymore in the logs 😄 (edited)
Avatar
@GSH | MrOwlSky When does that error happen? Was a server process running at the time or does it happen when it would have started a new server process? (edited)
1:31 AM
Actually, based on the stack trace, it looks like it's attempting to close a process that it didn't start
1:35 AM
A advanced monitoring tool for atlas, that supports automatic updating... - ownprox/Atlas-Server-Manager
Avatar
GSH | MrOwlSky 2/15/2019 2:16 AM
Hmm, Happened when I try adding new server to program
Avatar
how do i run a console command through the API ?
6:30 PM
or is there a function for wiping wild dinos ?
Avatar
Do you have access to a player instance?
6:58 PM
If you do, and only want to run the wild dino wipe on some player event, you could force them to run it
6:59 PM
Server Plugins for ARK: Server API. Contribute to Michidu/Ark-Server-Plugins development by creating an account on GitHub.
Avatar
not really i want to run it on a timer
7:05 PM
so i think CMD execution would be better
Avatar
What's the plan? I would suggest avoiding doing frequent wild dino wipes as they seem to stall the server for a bit while it happens.
Avatar
not for me someone requested this from me 😄
Avatar
WC ends up doing them on server startup for that exact reason
Avatar
he said ark server manager does not work for them
7:10 PM
so my plan was to trigger a warning message first then worldsave wait 20 seconds and then do the dinowipe
Avatar
Using that method on a running server may work, but you may end up having to schedule it in some way and do it on the next server startup. (edited)
7:14 PM
We try to avoid using the wild dino command on our running servers as it tends to end in a large enough lag spike that it's difficult to justify.
7:15 PM
It may still be a bit laggy, but you could find all APrimalDinoCharacter objects on the map, check the TargetingTeamId to find if it's wild, and delete any that are wild
Avatar
no way to call a console command though ?
Avatar
Not sure. I believe most of the commands outside of RCON expect a player context
Avatar
hmm
7:18 PM
maybe call an rcon command then 😄
Avatar
If it comes to it, avoid using Suicide() on a ton of things at once. It ends in a horrifying and laggy graveyard of bodies
7:20 PM
I've had success using both of these where _this is a dino: _this->bDestroyOnStasis().Set(true); _this->Destroy(false, true);
Avatar
nah if there is no good way to call a console command i'll probably tell the dude that its better to just wipes dinos on startup 😄
7:21 PM
destroying them manually will cause more lag i think
Avatar
It could, but you could also customize it in a way that allows you to go through the dinos far more slowly to prevent any lag spike
7:23 PM
Adding them all to a list of some sort, and only delete a number of them per some time period could let you prevent the lag spike entirely
7:24 PM
I've definitely had to deal with something similar for a private dino/structure decay plugin
Avatar
at that point it would be easier to fix ark server managers dino wipe for them 😄
Avatar
It seems to work for us
Avatar
me too but for the person who requested this plugin from me it didn't
7:27 PM
i just wipe dinos on startup
7:27 PM
best way ^
Avatar
Definitely
Avatar
can mysql be used to push data to servers
8:22 PM
instead of them querying for it
Avatar
Not really. Database are really more for querying
8:41 PM
I've been creating a lot of plugins using Message Brokers like RabbitMQ or Redis' pubsub feature (edited)
8:42 PM
It's an option, but not straight forward
8:42 PM
What do you want to push? You may be able to get away with RCON commands (edited)
Avatar
something like mysql crosschat 😄
Avatar
There have been a few of those with varying up and down sides. There was one that still sort of works where it uses a shared sqlite database and windows messaging to tell the other servers to look at the database for new messages
8:52 PM
OwnProx has one that uses RCON
Avatar
yeah i currently use that one
8:52 PM
with the sqlite databse
8:52 PM
the RCON one lags like hell
Avatar
You'd like mine then 🙂 It emulates in-game chat (looks like messages from normal players) with quite a bit of configuration options in the message format, but I haven't released it publicly due to the extra setup required (edited)
Avatar
damn that sounds cool 😄
Avatar
That "extra setup" is a RabbitMQ instance that someone would have to maintain. I use it for a few other things, so it's worth it, but it would be interesting to try to couch people through that setup
Avatar
one more question 😄
8:58 PM
can the API timer be somehow stopped ?
8:59 PM
for example if i use a WHILE statement to check if a player is knocked out
8:59 PM
dont want the player to get killed if conscious
Avatar
I haven't used it yet. What's the call look like to set it up?
Avatar
havent fully set it up yet tbh
9:00 PM
but currently i had something where an if statement checked if a player was unconscious
9:00 PM
then started a timer
9:01 PM
the timer then checked if the player was unconscious again before suiciding the player
Avatar
I would suggest avoiding long running while loops unless you can be sure it won't stall the main thread
Avatar
hmm
Avatar
For the most part, you should do as little as possible in any hooks or non-async chunks of code
9:03 PM
If you stall the main thread, everything stops
Avatar
hmm i only check if the player is alive and unconscious though
Avatar
Most of the hooks are going to be called from the main thread, and the server is trying to push 30 iterations of that main thread per second. To maintain that, you may only have a few milliseconds to complete what you're doing and let it continue if you don't want to cause lag.
9:05 PM
What's your code look like?
Avatar
void TimerCallBack(APrimalCharacter* _this) { _this->Suicide(); } float Hook_APrimalCharacter_TakeDamage(APrimalCharacter* _this, float Damage, FDamageEvent* DamageEvent, AController* EventInstigator, AActor* DamageCauser) { if (_this->IsA(AShooterCharacter::GetPrivateStaticClass()) && _this != nullptr) { if (!_this->IsDead() && !_this->IsConscious()) { API::Timer::Get().DelayExecute(&TimerCallBack, 10,_this); } } return APrimalCharacter_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser); }
9:07 PM
something like this currently
9:07 PM
but yeah you're right this will probably have to be asynced
9:07 PM
because this like this it hangs the server
Avatar
It's going to take some more work, but you can do that without dealing with async. It may be a bit of a shift in approach, though. Treat things far more like they're event driven.
9:11 PM
Take a look and see if there are any hooks you could use to know exactly when a player went unconscious or became conscious.
Avatar
i dont think there is anything besides take damage
9:13 PM
i tried to hook IsConscious but that just caused a server crash 😄
Avatar
You can hook/detour almost anything 🙂
Avatar
as it says too many connections 😄 (edited)
Avatar
GSH | MrOwlSky 2/15/2019 10:24 PM
Yeah but how do I fix if I can't connect to it to begin with
Avatar
Lean how to update the max_connections setting in MySQL.
I have an issue with SQLSTATE[08004] [1040] Too many connections on a Windows Server 2008 r2. Now I'm trying to increase the max_connections (the default value is 151). In the the MySQL 5.6 root ...
10:24 PM
You'll have to edit some variables in my.ini
10:25 PM
You could also shutdown something that's using it
Avatar
GSH | MrOwlSky 2/15/2019 10:25 PM
We got couple hundred atlas and ark servers all connected to it. Tried shutting some down didn't help
10:25 PM
Tried launching CMD tool and it crashes
10:25 PM
Any idea where the my.ini is located folder wise?
Avatar
Sounds like it may be in different places depending on the version installed
10:27 PM
Do you have MySQL or MariaDB folders in Program files?
10:28 PM
Something in MySQL Server folder?
10:29 PM
That or a data folder inside that
Avatar
GSH | MrOwlSky 2/15/2019 10:29 PM
Do you know the folder path?
Avatar
Looks like there are several places it could be, and it will use defaults if it can't find a matching file in one of the folders: https://dev.mysql.com/doc/refman/8.0/en/option-files.html
10:31 PM
Do you have mysql set up as a window service?
Avatar
GSH | MrOwlSky 2/15/2019 10:32 PM
Not sure it's installed on a windows OS
Avatar
Do you have a my.ini or my.cnf in C:/ or C:/Windows?
10:38 PM
Unless you can get a connection long enough to update the max connections using SQL, you're going to have to restart the mysql server to apply any config changes. I'm not sure what you're using it for, but restarting the mysql server will drop all connections and could crash anything that's not set up to handle that (edited)
Avatar
GSH | MrOwlSky 2/15/2019 10:38 PM
How do I restart it?
Avatar
It's probably a windows Service
Avatar
GSH | MrOwlSky 2/15/2019 10:39 PM
I got in
10:39 PM
Where do I update it at
Avatar
How many connections do you expect?
Avatar
GSH | MrOwlSky 2/15/2019 10:39 PM
500+
Avatar
Ooof... That's quite the cluster lol
Avatar
GSH | MrOwlSky 2/15/2019 10:40 PM
😉
Avatar
One sec
Avatar
Deleted User 2/15/2019 10:40 PM
How many machines you are using ?
10:40 PM
By connection he dont mean then umber of player that you will have
10:40 PM
but how many client will be connected to the mysql server i think
Avatar
GSH | MrOwlSky 2/15/2019 10:40 PM
Each machine is not a connection
10:41 PM
Connections are based off how many servers/connections are running on the machine.
Avatar
When atlas gets involved, each section of the map is likely at least one connection
Avatar
GSH | MrOwlSky 2/15/2019 10:41 PM
^
Avatar
Something like this:
10:41 PM
SET GLOBAL max_connections = 550;
Avatar
GSH | MrOwlSky 2/15/2019 10:42 PM
Where do I add that?
Avatar
Deleted User 2/15/2019 10:42 PM
Avatar
GSH | MrOwlSky 2/15/2019 10:42 PM
That's already set to 0
10:42 PM
Still having the issue
Avatar
I'm guessing it's the global max connections of the whole mysql server
10:43 PM
You can try dropping that into the text editor that had "SELECT * FROM atlas_rankup.players;" in your screenshot
Avatar
Deleted User 2/15/2019 10:43 PM
I have no connection problem i just showed him the screen on where he can change maximum connection
Avatar
That's the per-account limit. There's also a whole-instance limit that seems to be the limiting factor here
Avatar
GSH | MrOwlSky 2/15/2019 10:44 PM
You don't run a large cluster for Atlas either though. Your connections wouldn't be maxed anyway. Default is 100. Account limit is set to 0 but still hitting a limit. @Deleted User
Avatar
Deleted User 2/15/2019 10:44 PM
10:44 PM
You can also change file option here
10:45 PM
if you dont know where to found your my.ini
10:45 PM
and Even with 50 maps it dont change anything
10:45 PM
Each ip = a connection to the server
Avatar
Uhhh.. not necessarily
Avatar
Deleted User 2/15/2019 10:46 PM
maybe im wrong that what i undertod from the time that im using it
Avatar
I can create a pooled connection from one ARK process that creates 500 connections. It wouldn't be a good idea, but it's certainly doable
2256_ITNSL_Yang_MAGA_fingerguns 1
10:47 PM
If you replace the "SELECT *" thing with: SET GLOBAL max_connections = 550;
Avatar
GSH | MrOwlSky 2/15/2019 10:47 PM
Would this work? @Zachar543
Avatar
That looks right
10:47 PM
Is there a button to apply it or do they expect you to restart?
Avatar
GSH | MrOwlSky 2/15/2019 10:47 PM
Yeah applied it, So far so good.
Avatar
I mostly deal with Postgres, so trying to scrap together pieces of info from the internet and my limited use of MySQL 🙂
Avatar
GSH | MrOwlSky 2/15/2019 10:48 PM
You da man, @Zachar543 Much love and respect. 🔥 Yeah, Used MySQL couple years back when running MC servers but never got into configuration for it.
Avatar
No problem. Happy to help where I can
Fire 1
Avatar
GSH | MrOwlSky 2/15/2019 10:55 PM
Just to confirm that did work, Rebooted Atlas server and it allowed it to load/connect to permission mysql database. Assuming people will be running into that issue into the future. I'll get with @Michidu once I get our atlas servers setup and going smoothly and see if we can get some discord updates/guides for atlas and api to help people like that. See if he'd be willing to create a role for community helpers who would be willing to post in a guides only channel that could help and benefit the community via discord.
Avatar
Out of interest, how large is your Atlas map? Official's 15x15 is only a 225 processes
Avatar
GSH | MrOwlSky 2/15/2019 11:07 PM
Sorry was working on servers
11:07 PM
We run a 8x8 atlas map. Alongside other Atlas servers. We run multiple video game servers outside of ark/atlas all have been very successful.
Avatar
does anyone here use PluginServerManager ?
7:50 PM
if so do you get .crashstack files in the logs anymore ?
Avatar
GSH | MrOwlSky 2/16/2019 8:30 PM
I haven't used it
Avatar
its pretty sweet but its so fast i cant peek at my crash logs anymore haha
8:32 PM
and i dont get .crashstack files anymore for some reason
Avatar
GSH | MrOwlSky 2/16/2019 8:32 PM
lol, yeah no clue.
Avatar
any way to get the count of lands a tribe/player has claimed in atlas
7:45 PM
searched around Actor.h but couldn't find a function for it
7:47 PM
the flags i mean
Avatar
Take a look at APrimalStructureClaimFlag. Last I tried, though, APrimalStructureClaimFlag::GetPrivateStaticClass() causes a crash.
8:29 PM
If you only want the flags for that specific section of the map, that should work, otherwise, you'll have to find a way to get that out of the Redis instance (edited)
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/17/2019 8:32 PM
APrimalStructureClaimFlag::GetPrivateStaticClass() sometimes causes the server to crash I agree - but not any time. Have you added the APrimalStructureClaimFlag to your config.json of the API?
Avatar
I hadn't no. I only had an hour or so to work on it, so didn't get far
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/17/2019 8:34 PM
I guess there also is another option to obtain the Class of those objects.. don't really remember the name of the field but something like StaticClassField
Avatar
hmm so getting it from redis appear to be the only way ?
Avatar
This was several days to a week ago. APrimalStructureClaimFlag had just been added to github
Avatar
only want to get the count of flags/land claims for tribe (edited)
Avatar
Yep, got that part of it. The approach may be different if you want to know about all claim flags on all of the connected map sections (the whole grid) rather than just the current cell
Avatar
damn never worked with redis
8:40 PM
do i have to use a pointer to it ?
Avatar
I haven't dug too much, but there are likely API methods that will let you get all claim flags
Avatar
yeah but api methods can only get the flags per instance no ?
8:42 PM
per map
Avatar
It could go either way. Each server has access to read and write from Redis, so they definitely have something that will get you the list, but it may not be a simple "get all claim flags for tribe"
Avatar
yeah so right now redis is the best way
Avatar
I would argue trying to go around Atlas will be much more difficult
8:47 PM
The claim flag format in Redis is interesting to say the least
Avatar
hmm i cant think of a way to get the global flag count otherwise
Avatar
Try to find any existing API methods
8:49 PM
Re use them as much as you can 🙂
8:49 PM
And hopefully let Atlas deal with it's own odd binary format
8:50 PM
yeah i think i should write the actual hook first
8:50 PM
hopefully i can at least find a method to block a land claim first
8:51 PM
then figure out how to get the flag count 😄
Avatar
Hmm... Did the newest commit (from 16 days ago) revert the APrimalStructureClaimFlag PR? The struct appears to be gone now (edited)
Avatar
are flags and lands referred to as something else in the API or am i just dumb 😄 (edited)
4:50 PM
cant find a function for calming land
Avatar
@𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 Yeah, I saw that. It looks like a few commits after PR 27 was merged, your changes to version/Core/Public/API/Atlas/PrimalStructure.h were overwritten.
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/18/2019 5:00 PM
You can still copy the code of it then
5:00 PM
and use it 😄
Avatar
Sounds good, thanks. Just wanted to make sure someone was aware
Avatar
Rogue Leader 2/18/2019 8:43 PM
We still need an official copy of the api for end users as well. Any plans on pulling the rest of the atlas classes into the official API soon?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/18/2019 8:44 PM
you don't need those structs.. most of them are not even in the .dll file
8:44 PM
The version.dll only contains structs which have been used from APIUtils for example.. anything else is redundant and will be removed from compiler at compiling time
Avatar
Rogue Leader 2/18/2019 8:48 PM
So the version.dll doesn't need to be swapped up when the api is updated locally?
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/18/2019 8:48 PM
depends on the change 😄
Avatar
it doesn't require update when you only add new structs
2:24 PM
is there anything different for sending notifications in atlas ?
Avatar
it's same, what error?
Avatar
is there any way to cancel the api DelayedExecute timer ?
Avatar
only if you manually add it
6:47 PM
hm, there must be something wrong with your types
Avatar
yeah trying to convert a plugin 😛
6:48 PM
my timer callback looks like this
6:48 PM
void TimerCallBack(APrimalCharacter* _this, AShooterPlayerController * target) { while (!_this->IsConscious() && !_this->IsDead()) { AShooterPlayerController* AttackerShooterController = static_cast<AShooterPlayerController*>(target); AShooterPlayerController* player = (AShooterPlayerController*)target; uint64 steamId = ArkApi::GetApiUtils().GetSteamIdFromController(player); player->GetPlayerCharacter()->Suicide(); } } (edited)
6:48 PM
and my hook looks like this
6:48 PM
float Hook_APrimalCharacter_TakeDamage(APrimalCharacter* _this, float Damage, FDamageEvent* DamageEvent, AController* EventInstigator, AActor* DamageCauser) { AShooterPlayerController* target = _this->GetCharacterController(); if (_this->IsA(AShooterCharacter::GetPrivateStaticClass()) && _this != nullptr) { API::Timer::Get().DelayExecute(&TimerCallBack, 10, _this, target); } return APrimalCharacter_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser); }
6:48 PM
but i cant seem to initialize AShooterPlayerController in the hook
6:50 PM
i suspect that using _this->Suicide() causes the server to hang becase it wipes all APrimalCharacters instead of the player currently knocked out (edited)
Avatar
i dont think you need to use while 😃
Avatar
want to check if a player is unconscious every few seconds and if not cancel the timer (edited)
Avatar
that not how it works
7:01 PM
DelayExecute will execute functin once after specified amount of time (edited)
Avatar
so no way to cancel it ?
Avatar
cancel what? 😃 it will be executed only once anyway
Avatar
not what i mean
7:02 PM
when a player gets knocked out i want to start the timer
7:02 PM
but if they wake up BEFORE it finishes i want to cancel the timer (edited)
7:03 PM
because otherwise if the player wakes up and then gets knocked out again it will kill them anyway
Avatar
check if he is in not IsConscious in TakeDamage
Avatar
i already do
Avatar
well i did 😄
7:07 PM
but that will only check it twice no ?
7:07 PM
when the player first gets knocked out and during delay execute
Avatar
and that what you need? remember that DelayExecute executes once (edited)
Avatar
i need to check if the player is unconscious during the timer run
7:09 PM
if the player wakes up during the timer cancel the timer
7:09 PM
is that possible with the API timer ? (edited)
Avatar
you did it better now
7:11 PM
only thing you need to change is add IsConscious check and replace 'while' with 'if'
Avatar
hmm alright will try that
7:11 PM
but i cant even get the core of the plugin to work
7:11 PM
_this->Suicide() completely locks up the server and client
Avatar
i dont think you even need to start timer if player is conscious
7:12 PM
i think while does it, not suicide
Avatar
no i tried it without the timer at first and it completely locked up too
Avatar
without while? 😃
Avatar
yes
Avatar
hm it always worked fine
Avatar
loat Hook_APrimalCharacter_TakeDamage(APrimalCharacter* _this, float Damage, FDamageEvent* DamageEvent, AController* EventInstigator, AActor* DamageCauser) { if (_this->IsA(AShooterCharacter::GetPrivateStaticClass()) && _this != nullptr) if(!_this->IsConscious() && !_this->IsDead()) { _this -> Suicide(); } return APrimalCharacter_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser); } (edited)
7:14 PM
hook looked like this and it locked up
7:14 PM
no other plugins loaded
Avatar
dont call orig function after suicide
7:15 PM
actually maybe you cant call suicide in takedamage hook at all
7:15 PM
i think i told you that it better to change dmg instead 😃
Avatar
without original function it breaks damage 😄
7:16 PM
i tried it with multiplied dmg but then i cant use the timer
Avatar
dont call only after suicide
Avatar
as you said multiplied dmg in timer makes no sense 😛
Avatar
with timer suicide will work fine anyway
7:17 PM
if player is not dead
Avatar
yeah i will check that in the timer too but right now i cant get suicide to work 😄
Avatar
because you always do it incorrectly 😄
7:18 PM
float Hook_APrimalCharacter_TakeDamage(APrimalCharacter* _this, float Damage, FDamageEvent* DamageEvent, AController* EventInstigator, AActor* DamageCauser) { if (_this->IsA(AShooterCharacter::GetPrivateStaticClass()) && _this != nullptr) { if (!_this->IsConscious() && !_this->IsDead) { _this->Suicide(); } }return APrimalCharacter_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser); }
7:19 PM
looks like this right now
7:19 PM
just testing for suicide 😄
7:19 PM
anything incorrect here ?
Avatar
its correct but wont work 😃
Avatar
what do you mean ?
Avatar
you call takedamage after suicide again
Avatar
so it needs to be called before ?
Avatar
you dont need to call it if you do suicide
Avatar
so no orig function or what ?
Avatar
if suicide then no
Avatar
so it needs to be returned before ?
7:33 PM
or just not returned if the suicide command succeeds
Avatar
nvm i'm repeating myself lol
Avatar
bool suicide; float Hook_APrimalCharacter_TakeDamage(APrimalCharacter* _this, float Damage, FDamageEvent* DamageEvent, AController* EventInstigator, AActor* DamageCauser) { if (_this->IsA(AShooterCharacter::GetPrivateStaticClass()) && _this != nullptr) { if (!_this->IsConscious() && !_this->IsDead()) { _this->Suicide(); suicide = true; } else { suicide = false; } } if (suicide == false) { return APrimalCharacter_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser); } }
8:38 PM
using this the server still hangs 😄
8:38 PM
it crashes actually
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 2/20/2019 8:40 PM
check != nullptr before
Avatar
bool suicide; float Hook_APrimalCharacter_TakeDamage(APrimalCharacter* _this, float Damage, FDamageEvent* DamageEvent, AController* EventInstigator, AActor* DamageCauser) { if (_this != nullptr) { if (_this->IsA(AShooterCharacter::GetPrivateStaticClass())) { if (!_this->IsConscious() && !_this->IsDead()) { _this->Suicide(); suicide = true; } else { suicide = false; } } } if (suicide == false) { return APrimalCharacter_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser); } }
8:41 PM
you mean like this ?
8:48 PM
still crashes
8:48 PM
no crash message or anything though server just exits 😄
Avatar
return 0 instead
5:57 AM
if it doesnt work, then you cant use suicide inside takedamage
Avatar
i tried returning 0 before i tried the current method and it still hanged
8:00 AM
hmm any other hook to detect an unconscious player ?
Avatar
you can use delayexecute 😃
Avatar
Anyone have tips on how to minimize lag on my servers? For example the lag Spikes that make the ping go from lets say 30 to 100 and then back down.
Avatar
start by checking if its network related first 😄
Avatar
I've swapped hosts like 1000 times so im sure its not xD
Avatar
your question is very general if you dont give more info identifying the cause is close to impossible 😄
Avatar
GSH | MrOwlSky 2/21/2019 7:56 PM
Hundreds of different factors can cause lag.
Avatar
exactly
Avatar
Anyone here that can help with Massive memory leak, the point that it doesnt stop and just keeps on going until it reaches 100% memory usage and servers crash (edited)
Avatar
GSH | MrOwlSky 2/22/2019 7:10 PM
For what
7:16 PM
Once the server reaches a certain amount of players it starts to leak 50 - 200 mb a second until it reaches full
Avatar
GSH | MrOwlSky 2/22/2019 7:25 PM
If you got time to call and screenshare I can look into it for you
Avatar
i had the same issue last week
10:41 AM
someone had shot on a boat with a minigun turret, the cpu hit the maximum and 10-20 seconds the server was down
Avatar
i think we should update the FAQ for the forum
6:43 PM
there are too many repeated questions posted
Avatar
WoolyPenguin 2/26/2019 1:42 AM
does anyone know how to fetch server information in atlas like grid x y ?
Avatar
How to set dino gender to specific when u spawn it with ArkApi::GetApiUtils().SpawnDino, anyone know?
Avatar
scuzzykidd 3/1/2019 3:37 PM
okay, have my first task i want to accomplish but not sure if its better as a plugin or a mod and wanted community feedback.
3:37 PM
i want to auto neuter certain dinos upon taming.
Avatar
Rogue Leader 3/1/2019 3:58 PM
A plugin could just run on a timer that set all dinos of that type to neutered.
Avatar
scuzzykidd 3/1/2019 4:20 PM
🤔 a forever looped timer doesn’t degrade performance?
4:22 PM
I’ll give it a whirl and see what happens when it executes the command on all dinos every 5 min.
Avatar
@Nice try changing 'bIsFemale'
Avatar
can the api be used to allow structure placement where they cannot be placed ?
4:40 PM
such as allowing water pipes to be placed anywhere and be irrigated ?
Avatar
@scuzzykidd no, it won't degrade performance if done right however, choosing between plugin and a mod is a personal preference in this case. If you like laggy dev kit, go for it 😃
4:41 PM
the only way i know is hooking IsAllowedToBuild
Avatar
i found a function for IsUnderWater
4:41 PM
not sure if placing a pipe checks for that though...
4:42 PM
btw any example on getting structure name ?
Avatar
not bp?
Avatar
yeah that could work too i guess 😄
Avatar
in structure limiit
Avatar
thx
Avatar
what do i need to return for you to be able to build ?
4:56 PM
return 1; ?
Avatar
211
Avatar
return 211 ?
Avatar
yes
Avatar
holy shit why is the hitbox for irrigation pipes so tiny
5:38 PM
i think its better to dig through game files to find a path for it lmao
Avatar
int Hook_APrimalStructure_IsAllowedToBuild(APrimalStructure* _this, APlayerController* PC, FVector AtLocation, FRotator AtRotation, FPlacementData* OutPlacementData, bool bDontAdjustForMaxRange, FRotator PlayerViewRotation, bool bFinalPlacement) { const FString path_name = GetBlueprint(_this); if (bFinalPlacement && PC != nullptr) { if (path_name.ToString() == "Blueprint'/Game/PrimalEarth/CoreBlueprints/Items/Structures/Pipes/PrimalItemStructure_StonePipeIntake'") { return 211; } } return APrimalStructure_IsAllowedToBuild_original(_this, PC, AtLocation, AtRotation, OutPlacementData, bDontAdjustForMaxRange, PlayerViewRotation, bFinalPlacement); }
5:48 PM
hmm with this it still says it needs water
5:48 PM
i assume i need to set the requirement for water to false somehow ?
Avatar
Rogue Leader 3/1/2019 10:56 PM
It's probably not something the API can do since the requirement to be in water would be in the blueprint and not in the server code.
10:57 PM
You could consider using Structures Plus (S+) on your server. You can set their water pipes to not need a water source
Avatar
holy shit s+ has that option ?
11:00 PM
never noticed it lol
Avatar
Rogue Leader 3/1/2019 11:02 PM
AllowIntakeToPlaceWithoutWater=true
11:03 PM
under [StructuresPlus] in gameusersettings.ini
Avatar
yeah just found it lol
11:08 PM
thank you!
Avatar
do Destroy() and Suicide() just not work in APrimalCharacterTakeDamage ?
12:32 PM
both crash the server for me
Avatar
you still trying to call them? 😃
Avatar
yeah 😛
Avatar
it wont work
Avatar
even with the timer ?
Avatar
with timer will
Avatar
with timer nothing happens 😄
Avatar
then smth wrong heh
Avatar
i think timer works though because when i unloaded the plugin during the timer run it crashed on a timer function 😄
7:02 PM
@Michidu is it normal for the PluginServerManager so trigger so much ? 😄 (edited)
Avatar
lol, it might to do something with Discord Integrator had one more report about it
Avatar
yeah i'm with the dev in discord fixing it RN
7:06 PM
what's funny though is that it didn't corrupt the save file lol
Avatar
lucky 😄
Avatar
very lucky this time indeed
Avatar
Deleted User 3/4/2019 10:17 PM
What are we supposed to do if we purchased a plugin but never received it from the author ?
Avatar
GSH | MrOwlSky 3/4/2019 11:16 PM
Who @Deleted User
Avatar
Deleted User 3/4/2019 11:17 PM
ownprox
Avatar
GSH | MrOwlSky 3/4/2019 11:17 PM
What did you buy?
Avatar
Deleted User 3/4/2019 11:17 PM
advanced chat
Avatar
GSH | MrOwlSky 3/4/2019 11:17 PM
He's been crazy busy in real life
Avatar
Deleted User 3/4/2019 11:18 PM
No worries - i don't want to drag him through the mud, i know things get hectic. Just been on a manhunt since i bought it.
11:18 PM
Just not sure how to get in touch with him as i've tried the site, his discord, his dm, etc.
Avatar
GSH | MrOwlSky 3/4/2019 11:19 PM
Try contacting him on discord and let him know you brought it. Yeah he's busy with some personal stuff so he's not ignoring you or anything.
11:19 PM
@OwnProx ^
Avatar
Deleted User 3/4/2019 11:21 PM
tyvm
2256_ITNSL_Yang_MAGA_fingerguns 1
Avatar
Deleted User 3/5/2019 2:20 PM
Still nothing @GSH | MrOwlSky
Avatar
GSH | MrOwlSky 3/5/2019 6:57 PM
Nothing we can do. Have to wait on him @Deleted User
Avatar
Deleted User 3/5/2019 7:02 PM
S'all good - i'm just going to open a paypal ticket as i went ahead and bought the other discord plugin. I really appreciate all of your help yesterday.
Avatar
actually you should wait a bit because on Friday me an ownprox were working on some plugin we never finished 😄
7:04 PM
just wait a bit for him to come online
👍 1
Avatar
Rogue Leader 3/6/2019 7:47 PM
@here are there any Git masters or VSTS/ADO power users in here?
12:42 PM
i get this every time i try to build a plugin that requires sqlite db
12:42 PM
although i have the sqlite folder included
12:42 PM
Avatar
need to add cpp to project
Avatar
how ? 😛
Avatar
as any cpp file 😃
12:47 PM
so it would compile
12:47 PM
need to add those ?
Avatar
those too
12:49 PM
and sqlite3.c
Avatar
included those
12:49 PM
but it says cant find sqlite3.h
Avatar
.h to include directories
Avatar
damn wtf now it cant find the .json
12:51 PM
isn't it included in the API now ?
12:53 PM
wtf how did it find errors in the json.hpp file
1:02 PM
how does the json.hpp file have errors wtf
Avatar
you might need correct include order
1:23 PM
because of sqlite, look in other plugin
Avatar
hmm weird i included everything just like it was in the source code of this plugin
1:24 PM
just changed the json.hpp include (edited)
1:24 PM
in the code
Avatar
what plugin?
Avatar
LootBox
Avatar
ah, dont know about it json is not included with it?
Avatar
it had a path that looked like
1:26 PM
../../../json.hpp
1:26 PM
i changed it to “json.hpp”
Avatar
try other json version maybe
Avatar
yeah will do when i’m near my pc again 😃
Avatar
ya I came here because I am trying to modify LootBox myself and am getting a crap ton of errors for finding json.hpp and SQLiteCpp/Database.h
Avatar
cannot open file 'ArkApi.lib'
2:56 AM
I cant find this anywhere and its the most recent error when trying to compile
Avatar
nm I got it all figured out
Avatar
Directories
Avatar
no I just couldn't find it... its in out_lib didn't know that
3:16 AM
is there a list of what each error code means?
Avatar
Are you getting either 1114 or 126?
Avatar
ah gotcha well I figured it out it was 126
Avatar
um, which channel can I hire someone to do my ark shop?
Avatar
are you serious right now ?
7:21 PM
man people are lazy as fuck
7:23 PM
hey there is alot of creatures and im new to it
Avatar
this is a dev discord not copy and paste a json file discord
Avatar
ah so where can I find someone to help me with the config for the ark shop
Avatar
there are examples for the default config
7:24 PM
take them and adjust for your needs
7:25 PM
how do I combine multiple items
7:25 PM
like structures and stuff like that
Avatar
you mean multiple items in one shop item ?
Avatar
yes like a kit
Avatar
add the blueprint multiple times
7:26 PM
or configure the amount
Avatar
Radiant just make a spreadsheet to do it. It's so easy w a few formulas
9:34 PM
Also, does anyone else have an issue with vc++ 2017 not picking up AtlasApi namespace? I have out_lib set as one of the additional lib directories
Avatar
GSH | MrOwlSky 3/9/2019 9:35 PM
I've created two new channels to help out with that. @. #【🔶】ᴊꜱᴏɴ-ᴛᴜᴛꜱ #deleted-channel
9:36 PM
i hired someone
Avatar
@Haragon did you include the api public folder aswell ?
Avatar
I have it under additional include directories
Avatar
you hired someone to write you a json config ?
9:39 PM
that is quite something
9:39 PM
anyway your public folder has to be included in the c++ section
Avatar
Yeah that's where I have it. I have out_lib set in Linker
Avatar
seems correct
9:40 PM
set language standard to 2017 ?
9:40 PM
should be in c++ language
Avatar
Yeah it's one of those things. Tinker til it works. Yeah I believe so, I followed a mix of an img ownprox posted and some Google doc that floats around the forum
Avatar
yeah that google doc was posted by me 😆
Avatar
I thought so lol
Avatar
so is your project set to release and x64 ?
Avatar
I think I have it on debug
9:42 PM
But x64 yes
Avatar
has to be release
9:42 PM
and x64
Avatar
Ah I guess that's what makes it look at the public folder?
9:43 PM
I'll have to finaggle with it here in a few. I'll let you know how it goes. I believe we're working on the same thing lol
Avatar
you and me ? 😃
Avatar
Yeah. I couldn't get it to pick up AtlasApi either so I just disabled the points part. But if I just needed to be set to release I should be able to enable it
9:44 PM
AtlasShop
9:44 PM
Not api lol
Avatar
GSH | MrOwlSky 3/9/2019 9:44 PM
Gave you role @Haragon long time no see. Glad to see you around.
Avatar
Hey hey thanks. It's good to be here. Been busy messing with rack servers. Atlas will do that to ya haha...
5856_haHAAA 1
Avatar
you trying to compile an existing project or starting from scratch
Avatar
Sort of a spiritual successor I guess lol
Avatar
hehe
Avatar
Hmm, yeah still not recognizing the AtlasApi namespace
Avatar
wait, is the namespace for AtlasApi, ArkApi?
Avatar
@WETBATMAN got it all working... now to try and convert to mysql
Avatar
actually, sqlite works for me but i am using a shared network drive from hyper v host to all my guest vms
Avatar
i pulled the json.hpp from ShopRewards but its still giving me errors 😄
4:54 PM
and for some reason the json.hpp file itself has errors
Avatar
Remove the std:: from those
5:09 PM
In json. Hpp
5:10 PM
It's some issue with different cpp versions treating that type differently
Avatar
nah that just results in more issues lol (edited)
Avatar
worked for me anyways
5:31 PM
what is your error code
Avatar
Severity Code Description Project File Line Suppression State Error C2039 '_snprintf': is not a member of 'std' LootBoxes c:\users\avtoj\desktop\arkserver\ark-server-api-master\version\core\public\json.hpp 11146
Avatar
ok, so forgive me here bc i am a bit of a c++ noob, but from what i can see snprintf gets changed to _snprintf when you use std:: namespace, but if you change it it will compile and read json
5:34 PM
1 sec
Avatar
yeah but how does it error out in the json.hpp file 😄
5:35 PM
which i pulled from another plugin
Avatar
i'm not sure tbh but if you google it people are having that issue with json.hpp in general
5:37 PM
I'm getting the error "snprintf is not a member of std" in jsoncpp.cpp, line 3969. I fixed this by removing the "std::". I was using the latest Android NDK. It might be part...
Avatar
so, lines 11141 and 11147: change if ((codepoint <= 0x1F) or (ensure_ascii and (codepoint >= 0x7F))) { if (codepoint <= 0xFFFF) { std::snprintf(string_buffer.data() + bytes, 7, "\\u%04x", static_cast<uint16_t>(codepoint)); bytes += 6; } else { std::snprintf(string_buffer.data() + bytes, 13, "\\u%04x\\u%04x", static_cast<uint16_t>(0xD7C0 + (codepoint >> 10)), static_cast<uint16_t>(0xDC00 + (codepoint & 0x3FF))); bytes += 12; } } to if ((codepoint <= 0x1F) or (ensure_ascii and (codepoint >= 0x7F))) { if (codepoint <= 0xFFFF) { snprintf(string_buffer.data() + bytes, 7, "\\u%04x", static_cast<uint16_t>(codepoint)); bytes += 6; } else { snprintf(string_buffer.data() + bytes, 13, "\\u%04x\\u%04x", static_cast<uint16_t>(0xD7C0 + (codepoint >> 10)), static_cast<uint16_t>(0xDC00 + (codepoint & 0x3FF))); bytes += 12; } } (edited)
Avatar
nah its something else i think
5:49 PM
line 11140 isn't related to sprintf at all 😄
Avatar
hrm. well im sure youll figure it out lol. getting this thing to work is a pain
Avatar
it's just annoying because the json file is valid just throws errors in this project
Avatar
I may have mysql working....... did a lot of patchwork w/ atlasshop but it compiled w/o errors. testing it now
Avatar
mysql for what ?
8:41 PM
lootbox ?:D
Avatar
damn wtf i could not even get it to compile because of this stupid json error
8:44 PM
wtf
Avatar
literally all i did there was made sure my reference was right and removed the std::
8:47 PM
is there a proper way to debug these other than compile and test??
Avatar
nop
8:49 PM
how does you json include look like
8:49 PM
#include "json.hpp"
8:49 PM
like this ?
9:01 PM
what is error 1114 again?
Avatar
config
9:02 PM
if you're connecting to mysql it means it cant connect to it
Avatar
hm sqlite and mysql both give the code
Avatar
its a config issue then
Avatar
now its complaining about std::swap lol
9:36 PM
lmao wtf does this thing want 😄 (edited)
9:43 PM
ahh finally lol
9:43 PM
managed to build it
Avatar
it is a pain lol. trying to get mysql working is frustrating me
Avatar
after basically rewriting everything I have mysql working 😃
2:31 AM
only thing I cant figure out is how to get it to create the db initially. if i create it manually it creates the table but it wont create it if it doesnt exist. not sure if theres even a way to do that
Avatar
Now to add the fun features 😎
Avatar
no plugin creates the schema 😃
4:11 AM
you have to do that yourself
Avatar
Gotcha, then I probably could have been finished like 3 hrs ago XD
Avatar
hehe
Avatar
what is the going price for a semi-simple plugin? (edited)
Avatar
you selling or buying 😃
Avatar
buying lol
Avatar
hehe
Avatar
dont have much to sell most of my "work" is modifications of others
Avatar
well what do you need
11:59 AM
post it here if not me someone will help you for sure
Avatar
would rather explain as little as possible but lets say a modified version of the points shop in a way
Avatar
depends on what you want to modify 😃
Avatar
its hard to explain without giving it all away
Avatar
Hmm with regard to timed rewards, possible shop purchases or adding totally new functionality like web integration?
Avatar
Timed rewards
Avatar
It may be hard to get a solid number out of anyone without sharing more about what's involved. Depending on what it is, semi-simple could end up being a week of effort and testing. (edited)
Avatar
ya I figured if someone was interested they could PM me and I could go from there
4:44 AM
I just dont wanna post it on here
Avatar
Timed rewarded can be configured to give anything from points, items, to lootboxes. Suggest you learn it as it is very sweet function 😉
Avatar
Is there something special I need to do to use a hook that is also used by another plugin?
Avatar
getting error code 126 when i try
Avatar
no many plugins can use the same hook
7:49 AM
its something else
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 3/14/2019 12:02 PM
Tom, what are your dependencies 😄 ?
Avatar
Well I'm trying to hook handle new player. I have atlas.h included and I'm using AtlasApi.lib
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 3/14/2019 1:42 PM
what does your PluginInfo.json looks like?
Avatar
Not home right now but it's pretty normal. I have minApi at like 1.0
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 3/14/2019 1:43 PM
And the dependencies? Anything changed?
Avatar
No they're vanilla
1:44 PM
I'll have to hop in here when I'm messing with it tonight. I feel like I'm super close
1:45 PM
I'm also actually using handlenewplayer_implementation instead of handle new player because that's what's in the hook generator lol
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 3/14/2019 1:49 PM
but I mean 126 is not really about hooking ATLAS internal stuff - more that you're missing a module on startup..
Avatar
Oh really? Good to know. I'll have to give those another look.
2:04 PM
I am pulling in atlas shop, permissions and the api as far as libs. Is that error with regard to includes or libs? Or can it be either
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 3/14/2019 2:07 PM
Yea it is the error I guess 😄
2:10 PM
First you want to make sure that those dependencies are specified in your "Delay Loaded DLL" (located under Linker section) since plugins getting loaded in order of the alphabet. In addition you might want to specify them in the PluginInfo.json's Dependencies section 😃 (edited)
Avatar
Good to know. Thanks! What's the format for plugininfo.Json? Dont think I've seen dependencies there before
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 3/14/2019 2:34 PM
{ "FullName":"PluginName", "Description":"Does things", "Version":1.0, "MinApiVersion":1.0, "Dependencies": [ "ArkShop" ] }
Avatar
PluginInfo.json is mostly for releasing plugin, so, for example, users won't forget to update api or install needed dependencies. Otherwise it doesn't do anything.
Avatar
Gotcha. It's probably something in my dependencies in VC++ then. I have the 3 dirs for the 3 libs that I am using in the linker AdditionalLibraryDirectories though. But I may have missed a section
5:57 PM
Also, what's the general process for validating a HWID, make an HTTP request to a stored list?
Avatar
mysql server will probably work best
6:19 PM
just hardcode the ip of your mysql server into the plugin
Avatar
True that. Derp. Ty for the help guys
Avatar
For delay loaded dlls, i put the actual dll names of the dependencies? or the dll name of my project
Avatar
Scratch that - Worked like a charm. Thanks @𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰
Avatar
is there some kind of limit to json config files? I get an 1114 error when I load too big of a file it seems
Avatar
There is none. Use exception handler to see error (edited)
Avatar
new update broke APrimalCharacterTakeDamage hook
10:08 PM
none of the plugins with it load
10:09 PM
and ones that manage to get loaded crash the server upon startup
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 3/15/2019 10:09 PM
ARK / ATLAS ?
Avatar
ARK
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 3/15/2019 10:09 PM
Are you sure? lol
10:12 PM
pvp-protection fails to load completely and my plugin causes a startup crash
10:12 PM
which has never happened before
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 3/15/2019 10:12 PM
Gonna take a look at this 😃
Avatar
a lot of plugins use that hook so this can go south pretty fast 😄
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 3/15/2019 10:14 PM
OriginBegone.dll is that your plugin? (edited)
Avatar
yes
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 3/15/2019 10:15 PM
could you send me the full implementation of the hook via pm?
Avatar
sure
Avatar
Not sure the best place to put this, but if you own ARK servers, DO NOT install the 293.105 update that just came out (edited)
12:50 AM
Our smallest servers are now attempting to grab over 100GB of RAM (edited)
12:51 AM
Looks like a few major groups (one that applied the update) are already going offline: https://ark-servers.net/
Find the best ARK servers with our multiplayer server list.
Avatar
GSH | MrOwlSky 3/16/2019 1:09 AM
Yeah GOG servers are being effected by that update too
Avatar
It may be ArkAPI
1:14 AM
Testing a few things, but after removing the ArkAPI from one of the servers, it's completely fine at the moment.
1:14 AM
Since the new ark update, all plugins don't work anymore
Avatar
Yeah... It's ARK API. For what ever reason, having it installed causes a rather fast memory leak that appears to be based on how many plugins you have. Running with only the permissions plugin causes ~60GB of commit charge in under a minute
1:38 AM
ARK API v3.0 helps greatly with the memory, but people are reporting it ends up crashes after a few minutes (edited)
Avatar
Rogue Leader 3/16/2019 1:56 AM
@Michidu can you tag us here if there is an update to the API?
Avatar
If anyone wasn't already on 3.0, update to that first. See if it helps as much as it did for us
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 3/16/2019 1:59 AM
I guess Michidu is already sleeping😅 There might be an Ark update coming out in the next few hours... if thats not the case ARKServerAPI will be updated and we will announce a new version
2:01 AM
And also; I‘ve read a few forum posts in that crashing thread.. I got API version 3.0 running and worked fine for me and my plugins.. so maybe you really need to change the version if you haven‘t yet
Avatar
No issues here on v3.0 and 293.105
Avatar
GSH | MrOwlSky 3/16/2019 3:44 AM
I'm on 3.0 and still having issues
3:44 AM
Ark update broke something
Avatar
3.0 and not seeing crashes atm myself
Avatar
We're not having as extreme memory issues or crashes, but people are getting disconnected in mass every few hours. (edited)
4:07 AM
The server stays up and people can immediately rejoin, which is interesting...
4:07 AM
Not network issues as we have 4 other maps on this machine that weren't effected (edited)
Avatar
API should be updated, need to update affected plugins.
7:53 AM
there are quite a lot of changes (mostly they changed function order), so it hard to see real changes 😃 (edited)
Avatar
I noticed an infrequent reoccurring crash on one of my servers from the free autoprot plugin
Avatar
Use npp instead, not likely someone will update old auto prot
Avatar
the memory leak is real 😄
Avatar
hmm i replaced StaticClass() with GetPrivateStaticClass() in every plugin i had and it's running stable now
Avatar
no leak anymore?
Avatar
no it's normal memory usage
1:11 PM
and no crashes yet
1:12 PM
1:12 PM
btw
1:12 PM
you know what this does ?
1:12 PM
UpdatedItem
1:12 PM
i set it to false to recompile event manager
1:12 PM
i assume it controls if the items get a cooldown in the obelisk upload ?
Avatar
it should update item info, if you change item stats for example
Avatar
ah
1:15 PM
so false here is correct i think
1:17 PM
aight i fixed all the new path related crashes
1:17 PM
but still getting my old crash
1:17 PM
fml
Avatar
remove mod if you can
Avatar
it will wipe all dinos/structures 😄
1:21 PM
i think it's VIP
1:21 PM
talking with the dev now
Avatar
not sure if something was even updated or it just staticclass
Avatar
it's just that i think
1:31 PM
i replaced it in every open source plugin and it does not crash
1:32 PM
well it does not crash with that error anymore 😄
Avatar
i think only one plugin had it from my plugins 😃
1:33 PM
ATLAS version of EtendedRcon has it (edited)
1:35 PM
oh and ShopRewards
Avatar
i dont think atlas affected?
Avatar
might not be
1:39 PM
just pointed that out 😄
Avatar
hmm i noticed ShopRewards no longer prints that it's disabled rewards for people in event manager
Avatar
does ShopRewards handle disabling rewards for event manager or is it done by the API ?
Avatar
@Michidu i think there's something going on with the new ark update
2:53 PM
because even with old shop rewards and deathmatch it does not display the message that rewards for event manager are disabled
Avatar
it never did it 😃
Avatar
03/06/19 08:01 [ShopRewards][warning] Event Manager Detected - Disabling Player rewards for people in EventManager!
3:30 PM
always printed this
Avatar
i dont know, its not from my rewards lol
Avatar
wut ? 😄
Avatar
maybe you use custom
Avatar
no i got it from the forum
Avatar
weird lol
3:31 PM
there is no such feature
Avatar
where tf did this come from then
3:33 PM
lol
3:33 PM
i also checked in event manager and it's not that doing it
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 3/16/2019 3:33 PM
3:33 PM
lol
Avatar
omg is that the new api release ?
3:33 PM
running it rn
Avatar
Only the best 0 byte exe files 🙂
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 3/16/2019 3:34 PM
yea
3:34 PM
optimized.. lol
Avatar
lol
Avatar
now i'm confused lol what ShopRewards did i have 😄
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 3/16/2019 3:36 PM
Just optimized code.. lol
Avatar
oh god
3:36 PM
"optimised" 😄
Avatar
anyone know a function which reloads the banlist from URL ?
Avatar
@WETBATMAN Not sure about manually triggering the banlist to reload, but if you use the Ban List URL method and host a text file somewhere, the server will make a request to the URL every minute to refresh the list.
Avatar
oh really
4:59 PM
that is super useful
4:59 PM
i'll just start hosting my own ban list then 😄
Avatar
When I set mine up, I remember it being fairly picky. It's 1 steam id per line, and I believe it requires that the URL end with a .txt extension.
Avatar
yeah it has to be exactly like the official one
Avatar
What can I throw to cause a plugin not to load? Or should I just use return in the load method
Avatar
Unload()
5:19 PM
i think 😄
5:20 PM
or dont load anything until licensee is verified
Avatar
so like during hwid check, if it fails right now i just return, works fine but the plugin is "loaded" still
Avatar
return 0 in dllmain
5:20 PM
you have to return 0 in dllmain for it to unload
Avatar
sorry I am not too familiar with c++, learning as i go, is that what I return from the load method?
5:22 PM
this is dllmain
Avatar
oh derp. should i run my hwid check there?
5:22 PM
call it i should say
Avatar
I think if any exception happens in the DLL_PROCESS_ATTACH and isn't caught, it will fail to load with error 1114 (edited)
Avatar
would this work? or do i need to throw my own exception
5:24 PM
Avatar
you can always crash the server if the hwid isn't in the list 😄
Avatar
hahaha
Avatar
but i guess if its online authentication that would suck if your mysql server went down lol
Avatar
i was thinking about encrypting the hwid and sending a keyfile as well
5:25 PM
as a fallback
5:25 PM
bc i am self hosting my sql server
Avatar
i messed around with HWID myself but could never get it to work 😄
Avatar
i can show you my implementation
5:27 PM
it works just trying to find the best way to let em down lightly
5:27 PM
actually its riddled with logging queries and console logs for debugging 😆
Avatar
It looks like returning false should work
Avatar
well if you dont mind that would be awesome 😄
Avatar
Probably best to have a log message as well, though
Avatar
OK. well bear with me because i am not exactly privy to c++ best practices so i am still iterating
Avatar
so am i 😄
5:28 PM
i'm no expert at c++
Avatar
i found this online, had to do some wizardry with types to get it lined up
Avatar
Hopefully you aren't connecting directly to your database from the person's server 🙂
Avatar
std::string getHWID() { HW_PROFILE_INFO hwProfileInfo; std::string hwid; Log::GetLog()->error("getting hwid"); if (GetCurrentHwProfile(&hwProfileInfo)) { //Fhwid = hwProfileInfo.szHwProfileGuid; std::wstring Whwid(hwProfileInfo.szHwProfileGuid); // your new String std::string Shwid(Whwid.begin(), Whwid.end()); hwid = Shwid; } else hwid = "ERROR_CANT_RETRIEVE_HWID_VALUES"; //intentionally longer than the column allows - see if this is breakable or ok //make sure field in logging table allows for longer length to record these instances- LEN is 31 so go with 32 hwid.erase(std::remove(hwid.begin(), hwid.end(), '{'), hwid.end()); hwid.erase(std::remove(hwid.begin(), hwid.end(), '}'), hwid.end()); hwid.erase(std::remove(hwid.begin(), hwid.end(), '-'), hwid.end()); std::transform(hwid.begin(), hwid.end(), hwid.begin(), ::toupper); Log::GetLog()->error("returning hwid >" + hwid + "<"); return hwid; }
5:29 PM
I am currently, is that bad practice? I am using a severely limited mysql user
Avatar
It's not usually a great idea
5:29 PM
Either way
Avatar
whats the alternative?
Avatar
Some middleware web service would be the "normal" way
5:29 PM
That way your database doesn't need to be open to the internet as well
Avatar
right on. maybe i will host something once i get my R710 running
5:30 PM
could probably do it in laravel in like 5 secs... i did want to automate the process somehow using paypal invoice and hwid for auth, and allow them to change hwid if they change hardware
Avatar
You'd be surprised how many bot nets are scanning for common database ports, and will automatically attempt known exploits if it finds a server listening
Avatar
some devs store the HWID in the dll itself
5:31 PM
actually most do that 😄
Avatar
not a terrible idea but requires i compile it for them all the time 😆
Avatar
Yeah... that's a lot of work lol
Avatar
plus, its one time payment but id be obligated to do hwid updates forever
5:32 PM
im obsessed with automating stuff though so ill probably overdo it
Avatar
Same. Sometimes the automation is the fun part lol
Avatar
i have to hold myself back at work
5:33 PM
i work outside of dev, in ecommerce, so you can see a ton of room for automation... but you make your job easier the job duties just grow and grow
5:34 PM
i could do my job 5 hours a week from my couch... but i go to an office and milk 40. oh well
Avatar
you got this to print the HWID ?
Avatar
it should return hwid
Avatar
you use it in DLLMAIN or the load function ? 😄
Avatar
well i just use it to get the current, i print it if they are not verified
5:51 PM
i am trying now to call the actual check from dllmain, but it gives me 1114 if i put anything in there
5:51 PM
but it works fine from load
Avatar
it gave me 1114 from both haha 😄
Avatar
maybe because i am using error() for logging out of laziness
Avatar
You could do the entire plugin in that DllMain method if you really wanted to. Just make sure you don't use something you haven't initialized yet (like Log::GetLog()).
Avatar
nah that just means it will be red 😄
5:51 PM
that would be what i am using haha
5:52 PM
can i just init my log in dllmain or is there a better way to do this
5:53 PM
can you see where the 1114 is coming from wetbatman
Avatar
it hangs for a bit and then throws that
Avatar
i'll put logs in it to see where it hangs
Avatar
ya, could be an include i forgot to mention but im not sure
Avatar
Yeah, just make sure Log::Get().Init() is called before you try to use Log::GetLog(). Having Load() as it's own method is really only an organization/cleanliness thing. How it's being used in most plugins, there's nothing special vs putting all the code in DllMain
Avatar
goootcha. will give it a shot. TY
Avatar
it's probably an include
5:55 PM
i think hardware profile needs it's own include
5:56 PM
#include <windows.h> #include <stdio.h>
5:56 PM
you have these 2 included ?
Avatar
i didnt need those for some reason
5:56 PM
but they could be included in something else, im not sure
5:56 PM
try it with those
Avatar
nah still 1114
5:57 PM
i'm retarded probably doing something wrong
Avatar
can you see if its an issue with the variable types
5:58 PM
i had so much issue dealing with that wchar_t lol
6:04 PM
OK I have it working in dllmain, except it doesnt like that i declare my hook but never define it
Avatar
nah i think i'm retarded 😄
6:05 PM
when you made it print hwid you just called getHWID() in load ?
Avatar
i call getHWID as a param for the checkHWID call
6:06 PM
not sure of the exact verbage
6:06 PM
gethwid just returns the str, you have to verify it how you see fit
Avatar
yeah ofc but i cant even get it to print 😄
Avatar
it does not log anything from there either
6:07 PM
nothing from the IF or the ELSE statement
Avatar
i get so ate up with it i just throw logs after every line lol
6:08 PM
hate not having a proper debugger
6:08 PM
or not knowing how to use it if there is one lol
6:10 PM
oh i see the issue, i think it runs unload() if you return false in dll_process_attach, where i am removing my hook but i never added it because it is in load
Avatar
C++ isn't where most of my experience is (mostly Java & C#), so I would be interested if there's a way to attach a debugger and get detailed info out. I was able to attach VS 2017's debugger to a local ARK server, but the info I could actually see at break points was unhelpful to say the least. (edited)
Avatar
it would be amazing to debug it in real time
6:12 PM
i mean i have a decent process now, i have a 1x1 with the 1 small isle on it, i compile -> run a move script -> start server. only have my plugin and dependencies and a shit ton of logs
6:16 PM
so i take this
6:16 PM
6:16 PM
and call it like this
6:16 PM
anything incorrect ?
Avatar
std::string currenthwid = getHWID();
6:17 PM
then you need to check currenthwid against your sql server or whatever implementation you have and make sure its there. if its not print it to console so they can send it to you
Avatar
yeah IK
6:18 PM
better get it to print first lmao
Avatar
you can hard code it like they said, then you would just do something like std::string licensedhwid = "whatever they send you"
Avatar
ah shit still unload
Avatar
yea, you just have to use gethwid to set the value of a std::string
6:18 PM
then you can print that str or you could just call it in your log statement if you wanted
Avatar
it's already being printed in this code though 😄
Avatar
some of those i threw in from before i had it printing properly. if it has shit grammar it was meant for me :p you dont necessarily have to print it if they pass license check
6:21 PM
i see what you are saying
Avatar
yeah but it does not even load rn so all that has to be done after 😄
Avatar
so what is printing between > < or is it not even getting that far
Avatar
nah its failing to load with 1114
6:21 PM
i dont even have a config file for this plugin or anything 😄
Avatar
it may be due to the return type
6:21 PM
try just setting a str to getHWID, it will still run the method
Avatar
uhh what 😄
Avatar
instead of ... { getHWID(); ... use ... { std::string currenthwid = getHWID(); ...
6:24 PM
since getHWID isnt a void method
6:25 PM
dont know if it matters, but if its not running the method somethings up lol
6:25 PM
or you could do a try catch and see what that tells you
Avatar
setting it like that causes more issues lmao
Avatar
what does it say once you do that
Avatar
getHWID is undefined
Avatar
well that has me stumped bc you defined it lol
Avatar
damn 😄
6:30 PM
how'd you get this to work lol
Avatar
i dunno haha hardest part was getting it to a std::string lol
6:31 PM
im testing it
6:34 PM
6:34 PM
Avatar
it shouldnt be telling you it is undefined lol that is strange
Avatar
is the bottom screenshot from your load function or from the getHWID function ?
Avatar
i called that from load
Avatar
alright now i'm legit confused
6:39 PM
because it still unloads with 1114 😄
Avatar
without even giving you a value?
6:40 PM
throw a log right before and right after it, if neither of those fire its something else
Avatar
just fyi, GetCurrentHwProfile only returns ID stored in registry, so one can bypass such check only by editing registry 😃
Avatar
you just shattered my entire world, @Michidu
6:48 PM
which value is best used for licensing/verification?
Avatar
probably an id of some part
6:50 PM
like cpu
Avatar
the proper way would be to get cpu id/disk id/other devices and combine them, maybe even hash after
6:50 PM
ye
Avatar
gotcha. well thats good, i only have to change how i am generating the id 😆
6:50 PM
ty for the tip
Avatar
and i still have to get it to load 😄
Avatar
well, honestly just scratch everything i said bc thats not a reliable id anyways
6:52 PM
but, for the sake of learning it is always good to brute force your way through those problems lol
Avatar
it's not hwid generation i'm concerned about
6:53 PM
but why it does not load 😄
6:53 PM
6:53 PM
Avatar
works w/o hwid call?
Avatar
yes
Avatar
it might be because you call it from DllMain or just function has errors
Avatar
"unresolved external symbol" any obvious cause of this issue?
Avatar
Did it just start suddenly without a clear cause?
Avatar
i am testing an md5 script
Avatar
how else are you supposed to call hwid check if its not dllmain 😃
7:05 PM
it works for @Haragon though that’s what weirded me out haha
Avatar
You could do it at the top of your Load(), change Load() to return a bool, and change DDL main to do something like: "return Load();"
Avatar
if you call it in dllmain you need Log::Get().Init("YOUR_PLUGIN"); there instead of in load
7:05 PM
otherwise any logging will error it out
Avatar
i have that
Avatar
^ I'm guessing that's the cause
Avatar
i see your issue right now
Avatar
yeah, you write log before calling Init But the problem with dllmain is that not all libraries might be loaded at that time
Avatar
yea, move 3rd line of your load to 1st
7:07 PM
so whats your recommendation michidu? wait till server starts and then check ?
Avatar
if you call a library that isnt loaded you wont get that far :p
7:08 PM
youll know. for hwid check you arent really relying on any api dependencies so it should be ok
Avatar
just GetCurrentHwProfileA is from Advapi32.dll
7:10 PM
which might be loaded or not
Avatar
hrm, all i can say is it works for me but i cant say for sure that it wont cause problems
Avatar
which function gets called when server fully starts ?
Avatar
hookable function?
Avatar
yes
Avatar
good question heh, let me check out the hooker generator
Avatar
InitWorld isn’t it ?
Avatar
initworld is called during startup
Avatar
InitWorld yeah
Avatar
oh is that on full startup ?
Avatar
"You should never perform the following tasks from within DllMain: Call the registry functions. These functions are implemented in Advapi32.dll." https://docs.microsoft.com/en-us/windows/desktop/dlls/dynamic-link-library-best-practices
Avatar
or just when you launch the server
Avatar
InitWorld is not full server start up but its goot place to do checks
Avatar
i guess if your plugin name starts with something above advapi32 it might not be loaded
Avatar
"within dllmain" meaning not in any method directly called from it as well, right?
Avatar
can a plugin be unloaded during init world ?
Avatar
yeah, as it would be same 😃
Avatar
that sounds so unorthodox but i think you could just call load() within your hook
Avatar
Wanted to add some clarification 🙂
Avatar
hook init world check hwid and unload the plugin if it does not match
Avatar
you can unload plugin at any point
Avatar
oh unload, yeah, that sounds more plausible than loading one during initworld 😆
7:14 PM
read that wrong lol
7:14 PM
that is not a bad idea either
Avatar
yeah but if it loads during startup isn’t it already in memory ?
Avatar
sort of but you would have to do some serious work to bypass that id think
Avatar
so can it be decompiled like this is what i’m asking
Avatar
unless you can override a hook
Avatar
It being in memory is kind of irrelevant. You gave them the DLL 🙂
Avatar
anything can be decompiled but the info isnt super useful
Avatar
Just don't let it do anything
Avatar
that’s actually a pretty good method too 😃
Avatar
This also doesn't stop anyone that knows what they're doing and has enough time from bypassing your authentication
Avatar
check for hwid before every function of the plugin
Avatar
oh yikes that might get a little resource intensive if you have a lot of people
Avatar
honestly it can be cracked easily but i guess its enough for a plugin 😄
Avatar
Yeah...
Avatar
my opinion is that
Avatar
i dont see piracy being a huge issue w/ the api but always good to be safe
Avatar
if someone knows how to decompile this shit
7:17 PM
they would not be buying it from you regardless 😃
Avatar
if someone doesnt have a couple bucks to buy it, and they spend their time doing that they may as well have bought it
7:17 PM
lol
Avatar
with that kind of knowledge they’re better off writing it themselves
Avatar
true that
Avatar
Assuming the plugin isn't 100s of dollars, it's unlikely to be worth their time lol
Avatar
like if your whole security relies on Free Library (unload plugin) then one can just hook freelibrary 😃
Avatar
😮 its like whack a mole!
Avatar
It always is
Avatar
indeed
7:19 PM
im just out here trying to learn c++ and maybe dump on my student loans a little bit lol, but i find this stuff interesting anyways so im stuck till i have a decent implementation haha
Avatar
@Michidu This may be a simple question, but my C++ knowledge is limited. I see references to "Plugin_Init" and "Plugin_Unload" in PluginManager.cpp, but I haven't been able to get ArkAPI to find these methods if they do exist in my plugin. Any chance you know of any examples of those being used in another plugin?
7:21 PM
I have some threading logic that would be good to clean up before FreeLibrary is called
Avatar
it's actually nice functions (someone added them, not me), you need to export them from plugin
7:23 PM
__declspec(dllexport)
Avatar
havent checked out pluginmanager, what all can it do?
Avatar
That's just the source file that handles loading and unloading of plugins in the API
Avatar
i think it would be better to call Plugin_Init from InitWorld hook
7:24 PM
possibly i need to change it in api 😃
Avatar
When I first started setting up some of this threading, I ran into deadlocks due to LoadLibrary having the loader lock, so I have a bit of a workaround that I'm hoping to clean up
Avatar
yeah, Plugin_Init solves deadlock but not other issues of dllmain as of now
Avatar
Thanks, I'll try a few things and see what I can figure out
Avatar
StaticClass() needs to be updated within the api itself too?
Avatar
most classes have GetPrivateStaticClass, which you need to use
Avatar
UObject does not have his function?
Avatar
hmm how is unloading mid startup done ?
7:40 PM
void Unload(); std::string getHWID() { HW_PROFILE_INFO hwProfileInfo; std::string hwid; Log::GetLog()->error("getting hwid"); if (GetCurrentHwProfile(&hwProfileInfo)) { //Fhwid = hwProfileInfo.szHwProfileGuid; std::wstring Whwid(hwProfileInfo.szHwProfileGuid); // your new String std::string Shwid(Whwid.begin(), Whwid.end()); hwid = Shwid; } else hwid = "ERROR_CANT_RETRIEVE_HWID_VALUES"; //intentionally longer than the column allows - see if this is breakable or ok //make sure field in logging table allows for longer length to record these instances- LEN is 31 so go with 32 hwid.erase(std::remove(hwid.begin(), hwid.end(), '{'), hwid.end()); hwid.erase(std::remove(hwid.begin(), hwid.end(), '}'), hwid.end()); hwid.erase(std::remove(hwid.begin(), hwid.end(), '-'), hwid.end()); std::transform(hwid.begin(), hwid.end(), hwid.begin(), ::toupper); Log::GetLog()->error("Your HWID >" + hwid + "<"); Unload(); return hwid; }
7:41 PM
i did this
7:41 PM
7:41 PM
but it resulted in this 😄
Avatar
you are calling unload but continuing to load the plugin lol
Avatar
You're likely calling Unload() where you're trying to remove hooks that you haven't created yet
Avatar
yeah, i had to set an auth bool and only remove the hook if it is false
Avatar
yeah but you're still calling unload or there's a better way ?
Avatar
@Mr.Salt Actually, im not sure, sometimes you need to add this func manually, but i didn't look why StaticClass even crashes yet..
Avatar
@Michidu was saying that might not be a good idea because unload itself can be hooked
Avatar
yeah i know just trying to get my check system working before i move to authenticating on InitWorld (edited)
Avatar
i havent moved to using unload yet, trying to lock down a hwid before i tackle that
Avatar
you have to take steps its easier to debug 😄
Avatar
i cant get hashing right atm
Avatar
it's fine for a plugin i guess :) or you can just crash whole ark heh
Avatar
lmao 😄
Avatar
It's easy enough on accident lol
Avatar
just call StaticClass() 😛
Avatar
That's mean lol
Avatar
Hook_UWorld_InitWorld
7:52 PM
so this one is for world initialization ?
7:53 PM
i guess if you stop InitWorld if hwid is wrong, server wont load well too 😄
Avatar
lmao
7:54 PM
that's kinda funny 😄
Avatar
but why someone would use unregistered dll, right? 😃
7:55 PM
best security = no security
Avatar
it's actually provides better security than FreeLibrary i think 😃
Avatar
UObject* object = Globals::StaticLoadObject(UObject::StaticClass(), nullptr, blueprint, nullptr, 0, 0, true); that is the statement that crashes it since the last ark update ....
Avatar
or combine
7:57 PM
oh, i will look at it a bit later
7:57 PM
actually, it weird that StaticClass stopped working..
Avatar
wait is a String wrong for hwid ?
8:00 PM
because when i try to do hwid == myhwid it says its out of range
Avatar
how you do it?
Avatar
std::string getHWID() { HW_PROFILE_INFO hwProfileInfo; std::string hwid; Log::GetLog()->error("getting hwid"); if (GetCurrentHwProfile(&hwProfileInfo)) { //Fhwid = hwProfileInfo.szHwProfileGuid; std::wstring Whwid(hwProfileInfo.szHwProfileGuid); // your new String std::string Shwid(Whwid.begin(), Whwid.end()); hwid = Shwid; } else hwid = "ERROR_CANT_RETRIEVE_HWID_VALUES"; //intentionally longer than the column allows - see if this is breakable or ok //make sure field in logging table allows for longer length to record these instances- LEN is 31 so go with 32 hwid.erase(std::remove(hwid.begin(), hwid.end(), '{'), hwid.end()); hwid.erase(std::remove(hwid.begin(), hwid.end(), '}'), hwid.end()); hwid.erase(std::remove(hwid.begin(), hwid.end(), '-'), hwid.end()); std::transform(hwid.begin(), hwid.end(), hwid.begin(), ::toupper); Log::GetLog()->error("Your HWID >" + hwid + "<"); if (hwid == whatever) { Log::GetLog()->error("HWID check passed!"); } return hwid; }
8:02 PM
i have my real hwid instead of whatever ofc 😄
Avatar
dont mess with unicode if you use std::string mostly anyway GetCurrentHwProfileA will get you ansi string, so you dont need wstring
Avatar
so it should be just string ?
Avatar
nah does not work with just string
Avatar
i guess you did it wrong :) when you use GetCurrentHwProfileA, you need to use HW_PROFILE_INFOA as well (instead of HW_PROFILE_INFO)
8:06 PM
this way you wont have std::wstring
8:06 PM
and dont need to conver wide to ansi string
Avatar
it still says floating constant out of range
Avatar
i got it to work
8:11 PM
1 sec
8:11 PM
HW_PROFILE_INFOA hwProfileInfo; std::string hwid; if (GetCurrentHwProfileA(&hwProfileInfo)) { std::string Shwid(hwProfileInfo.szHwProfileGuid); hwid = Shwid; } (edited)
8:12 PM
Not sure if thats the best way to manipulate the string but it did output my hwid
8:14 PM
Also, "shwid" should be a word.
Avatar
how do you check HWID against something
8:17 PM
with shwid ?
Avatar
no i made shwid up
Avatar
it's correct @Haragon 😃
Avatar
which is @Michidu ?
Avatar
yeah but it says its out of range when checking HWID against a string that it generated
Avatar
im not sure about string comparison in cpp
Avatar
hwid code heh probably you dont even need Shwid
Avatar
look for and _Equals method
Avatar
== is overloaded for strings, so it should be fine
Avatar
how is it out of range if it generated this string 😄 (edited)
Avatar
how exactly you compare it?
Avatar
if (hwid ==myhwid) { Log::GetLog()->error("HWID check passed!"); }
Avatar
@Haragon it basically says that can't find md5 function (no definition)
Avatar
are they both std::string ?
8:21 PM
gotcha. i will mess with it a bit then
Avatar
nah i just typed myhwid in
8:21 PM
in the code its my actual hwid
8:21 PM
like the text it generated
Avatar
try setting it like this beforehand
8:22 PM
std::string myhwid = "ASDF1234ETC"; and compare hwid and myhwid
Avatar
btw maybe you didn't include md5.cpp to project
Avatar
omfg
Avatar
i have md5.cpp and md5.h in my includes and included md5.h
Avatar
i'm retarded
8:23 PM
i forgot ""
8:23 PM
thatll do it
Avatar
.cpp should go directly to project so it can be compiled
8:23 PM
not includes
Avatar
lmao
8:24 PM
thank you man
8:25 PM
its always something so small lol, here i am refactoring stuff and i just needed to add the file...
8:28 PM
i love to struggle my way through this stuff, its the only way i learn, but i cant help but laugh sometimes at the small stuff one can overlook 😆
Avatar
man, there really isnt a great way to capture hdd/cpu/nic ids eh?
Avatar
i would say just get hwid profile and hash it or something
Avatar
For all of us that have servers with Hot Swap HDD bays, don't restrict it that hard
Avatar
someone could still theoretically sell copies and just give out their hwids
Avatar
HDDs die and have to be replaced
Avatar
thats true. im just trying to find a good way that is least likely to be abused
Avatar
This may be worth testing, but I wonder how VMs are handled
Avatar
ive been thinking about that as well, and how i could handle vm licensing
8:53 PM
i was thinking 1 license grants you 1 host and 4 vms or something
Avatar
I guess what I mean is depending on how the Hypervisor handles that, you may not be able to tell
Avatar
yeah. ive only ever used hyper-v, thats what I run my atlas servers with. 4x VMs running 4 grids each
Avatar
Try cloning a VM a few times and see if the HWID changes
Avatar
hmm yeah, the vdisk file should contain emulated hardware info
8:55 PM
i know cloning in hyper v you use an identical copy of the vmdk file
8:55 PM
so its possible it could be spoofed anyways, making hdd id not the best option
8:55 PM
cpuid, but what about vcpus?
8:55 PM
freaking rabbit hole
Avatar
At what point is it not worth it? lol
Avatar
right, i am thinking now what i can do... i mean my plugin is done id like to clean up the config a bit but this is pretty much my last thing to do
Avatar
do you unload it by calling Unload() because i haven't had much luck with that 😄
Avatar
Nope
8:57 PM
Well... sort of
Avatar
nah i only ever did return 0 from dllmain... then i got in to this tar pit of hardware IDs lol
8:58 PM
that should work though, theoretically
Avatar
Unload() doesn't do anything more than what you put in the method
Avatar
true
Avatar
It also doesn't need to be name Unload if you really don't want it to
Avatar
yeah i know
Avatar
you need to use the plugin_manager that mich was talking about maybe
Avatar
how'd you return 0 in dllmain ?
Avatar
ah right 😄
Avatar
and is_authorized is set globally to false by default, again, not sure if thats the best way to do it lol
Avatar
A bool that prevents the plugin from really doing anything, or just remove the hooks/prevent the hooks from being added are probably the easiest ways (edited)
Avatar
this is all i needed is_authorized for, since even if it works properly otherwise it will throw a failed to find hook error
9:02 PM
9:03 PM
which tells me unload is run via DllMain which I assume is called by plugin_manager if a plugin fails to fully load
Avatar
wait a sec
9:04 PM
my noob brain is having a trouble understanding here (edited)
Avatar
The name of that variable is misleading lol
Avatar
what do you do with (!checkHwid....
9:04 PM
in dllmain
Avatar
im off on a tangent sorry lol. how is it misleading? :p
9:05 PM
checkHWID returns a bool true for licensed false for unlicensed, it takes a str that comes from getHWID() (this could just be set in checkhwid really...) and so it checks that bool and just kicks a return FALSE if they arent authorized. it fails with a 1114 but thats better imo than it loading and then just being empty
Avatar
At a glance, the name makes me think you're going to remove all the hooks if their HWID is good
Avatar
that also makes me wonder, the WMIC hwid we were using before, would that change when you make hardware changes or is it set on install?
Avatar
Without seeing the other logic you posted, that's what it looks like
Avatar
yes, thats the only time i want to unload the hooks, as if they are unauthorized the hooks wont be loaded
9:08 PM
so itll try to unload a hook that i never set
9:08 PM
but i still want to remove it if its unloaded for a licensed user
9:08 PM
hmm i set my bool in getHWID but it always seems to unload 😄
Avatar
where are you declaring Authenticated? idk if it matters but you could try making your bool in your if FALSE instead of false
Avatar
It's a preference thing, but seeing "if (someBool == false)" bugs me more than it should lol
Avatar
have it like this
Avatar
so, i dont know if the == operator works b/w a std::string and a char[] array (thats what will be on the right of the ==)
9:11 PM
right above the if, set std::string yourhwid = "ASDF"; and then compare hwid and yourhwid
Avatar
that's not it
9:12 PM
the actual hwid check worked before
9:12 PM
unload did not
Avatar
im just taking shots in the dark lol
Avatar
now it just fails to load 😄
9:12 PM
doesn't print HWID or anything
Avatar
where is bool Authenticated first declared
Avatar
just before getHWID
Avatar
can you ss it
9:14 PM
DLLMAIN all all the way down 😄
Avatar
Log::Get().Init() still being called early enough?
Avatar
it's the first thing in load
Avatar
dllmain comes before load as it calls load
9:15 PM
so you are logging w/o the log object existing
Avatar
hmm
9:15 PM
i cant call Load() in dllmain can i ?
Avatar
here is where i put it
9:16 PM
Avatar
first that is
Avatar
load is intended to be called from dllmain
9:16 PM
at least thats my understanding
Avatar
You have to call it somewhere or it won't every get called 🙂
Avatar
i meant first 😄
9:16 PM
like before the hwid check
Avatar
you could but then you arent able to stop plugin loading by returning false
Avatar
ohh this is spicy
Avatar
well actually, that might work bc after load dllmain continues
Avatar
i think it works 😄
Avatar
just be mindful of anything you call in load, as not everything is loaded during dllmain
9:20 PM
any one know if hwProfileInfo.szHwProfileGuid is changed whenever hardware is changed? i kind of want to use it in my hash w/ some other stuff but dont want to screw over people with hot swap bays
9:22 PM
also @Zachar543 what kind of server hardware you running?
Avatar
I rent one of OVH's game-64 machines for ARK and I collocate an old 1U Supermicro machine that has 32GB of RAM and a Xeon E3-1271 v3 for anything that isn't directly an ARK server (database & webapps) (edited)
9:27 PM
Working through the process of selecting hardware for a new machine to replace the rental.
Avatar
nice. i bought an R610 with 2x X5690s and 64gb on ebay, seems to run atlas well with just me on it... thing is loud as hell though so I am swapping the procs in to an R710
9:28 PM
ARK I run on a dell 9020 with 16gb and an i7 4790
9:29 PM
its probably more work than its worth but i hate to rent stuff
Avatar
I would be interested to know what some of the larger clusters in here use. After you get to the point where 30-60 GB of RAM is not enough, it quickly becomes not worth renting
Avatar
i have the same CPU as you 😄
Avatar
4790?
Avatar
yeah
Avatar
its a great proc
Avatar
runs 5 servers like a champ
9:30 PM
i also host from home
Avatar
yeah, mine runs 4 ark and my atlas test server without much issue
9:30 PM
i do have to stagger my ark restarts
9:30 PM
but thats only since i added the 4th
Avatar
because of ram i assume ?
Avatar
i have 32 so it really isn't an issue 😄
Avatar
How much RAM do each of your ARK servers use?
Avatar
4-5
Avatar
want to put 24 or 32gb in it (9020 supports 32) but i cant justify buying 32gb non ecc
9:31 PM
yea, ragnarok 4-5 anything else 3-4
Avatar
actually rn its around 3-4
Avatar
lol... Resist increasing limits (tames/structures) like we did
9:31 PM
Our largest server eats 10GB
9:31 PM
At least
Avatar
i upped them some but i didnt go crazy, i think 2k tames and a little extra structures
Avatar
2k server wide?
Avatar
but the structuresinrender i lowered a bit, as well as set my server fps at 15 for ark
Avatar
How many per tribe?
Avatar
2k per tribe
9:32 PM
i dont know if i have a server wide limit lol... but i run pretty low pop
Avatar
... 2k per tribe?
9:32 PM
Oh no lol
Avatar
lol it was for me tbh, i was doing some ridiculous stuff with breeding
Avatar
Yeah... change that before getting larger
Avatar
i have it set to something extremely high
9:33 PM
too
9:33 PM
but i wipe it every month
9:33 PM
so it's not really a big deal
9:33 PM
its x100 anyway
Avatar
i dont have the heart to wipe man, some of my players really enjoy their setup
9:33 PM
i run 25x
9:33 PM
so thats why i started the 4th... dropped server fps on my original 3 to 15 and started a fresh cluster
Avatar
i have x100 annunaki + primal fear and many other mods so it gets boring if not wiped for a long time
Avatar
Our's is at 250 per tribe (5k server limit), and I've seen a lot of other servers have it much lower at something like 50
Avatar
but i did have to turn autodemolish to about 30 days, that keeps it somewhat tidy
9:34 PM
maybe it is 2k server limit
9:34 PM
theres no way i hatched 2k rexes, i just remember hitting the limit where my eggs hatched in to nothing so i upped it lol
Avatar
Do you find any issues with lowering the tickrate to 15 for ARK?
Avatar
it was a long time ago, since dec i had been completely sucked in by atlas... on official, til I wasnt, then I started really getting stuff going for atlas dedicated
Avatar
I was doing that for Atlas, but wasn't sure I wanted to try it with ARK
Avatar
i have heard no complaints
9:35 PM
atlas i do 20
Avatar
you can lower the tickrate ?
Avatar
Yeah
Avatar
its in engine.ini
Avatar
For Atlas, it does wonders for the CPU usage
Avatar
[/script/onlinesubsystemutils.ipnetdriver] NetServerMaxTickRate=20 LanServerMaxTickRate=20
9:36 PM
put that in engine.ini and set to whatever you want, i have heard below 15 it gets wonky, i havent really played on my ark servers since i dropped to 15 but playing atlas @ 20 feels no different
9:36 PM
change both numbers btw, not sure if it matters
Avatar
I don't believe you need the Lan one
Avatar
and yes i was never worried about cpu until atlas
9:37 PM
i laid out my grids super carefully too, although some have 2 pve islands because i didnt want to stick one in every other grid
9:38 PM
i hope they change the pve quest and let you set the # of stones you want to use
9:38 PM
3-5 stones would be great for a 4x4
Avatar
Aren't they planning to add another powerstone quest?
9:38 PM
A second one
Avatar
tbh since i started getting mine together i havent followed much other than any new game/gus.ini params
9:39 PM
if they do, they need to make it easier to config the quests
9:39 PM
its stupid now but the ServerGridEditorWIP fork gets the job done
Avatar
Honestly, some of the changes they're planning for the next major update really feel like they're going to make it much more difficult to run a "small" (less than 5x5) map
Avatar
why's that?
Avatar
Not sure if I just read it wrong, but the claim flags rework sounds like a few companies will own the whole map if it's too small
9:40 PM
How many islands do you have?
Avatar
i think the claim system is a dope idea, but they really need to sit down and figure out the best way to go about it
9:40 PM
on 4x4.... let me check one of my many spreadsheets
Avatar
We had a 3x3 with the most minimal yet complete (all resources and power stones) setup we could make, and it was taking more memory than your machine lol.
Avatar
57 including all pve islands and more than a few cays connecting some of the smaller islands in to little archiepelago type things
9:42 PM
hmm
9:43 PM
i basically heavily modified the 3x3 on the krookedskull guide to a 4x4, added in a few missing resources and adjusted ship paths
Avatar
How much memory are your largest and smallest grids taking?
Avatar
ohh its not up atm, still waiting on paste for proc swaps, but when i run it the biggest sit just over 6gb
9:43 PM
keep in mind im the only one thats ever been on it
9:44 PM
worst comes to worst i will still have the r610, but it will have 2 2.93ghz X5670s in it and 28gb ram
9:44 PM
48**
Avatar
Okay, I was going to say that we had less than half that number of islands in a 3x3 and we weren't getting away with less than 20GB
Avatar
this shit has me reading sysadmin tutorials and stuff 😑
9:45 PM
hmm, well there is a lot to keep in mind, im sure you know, but like distance b/w islands and stuff
9:45 PM
i notice that the merchant/ghost ships pull my servers out of paging as well, which annoys me but whateer
9:46 PM
do you use multiple disco's per island?
9:47 PM
i also tried to stick to the templated biomes, although i did a bit of mixing b.w high/low desert and tundra/polar
Avatar
The Islands (mostly the stuff on them) seems to be the primary driver for the minimum RAM requirements. From what I was seeing in testing, 8 islands between a 3x3 was only a small amount more RAM than fitting all 8 islands into a 1x1.
Avatar
my empty test grid uses about 1gb so that makes sense
9:48 PM
also @WETBATMAN you can check that your tick rate is set properly in game by using setcheatplayer true
9:48 PM
forgot to mention that
Avatar
its at 30 then
Avatar
Yeah, it defaults to 30
Avatar
i think they run 20 on officials, cant remember
9:49 PM
but yea itll do 30 without a setting for it
Avatar
well tbh servers aren't stressing my cpu that much so might as well leave it at 30
Avatar
yea, its not huge i just lowered mine as a sort of alternative to wiping
9:50 PM
double points on the new server, carry over your points etc
9:50 PM
trying to motivate people off those, lots of good memories but they are bloated as hell
9:51 PM
running servers can be kind of sad lol, all my old regulars have come and gone but they were solid people
Avatar
I try to avoid wipes as much as possible, so our longest running map is nearly a year and a half old at this point
Avatar
yeah mine have been up since about august. how do you have your auto decay/destroy set up?
9:55 PM
hard to find a happy medium between the irregulars losing their bases and the map getting cluttered up
Avatar
For the most part, we have it set to 1x and try to keep the decay times for most things above a week
Avatar
yea, problem is it goes waay up for metal/tek vs thatch lol
Avatar
The auto destroy option is on as well, so we don't need to go around and clean it up manually
9:57 PM
Yeah... and S+ has a few structures that either have no decay timer (beds) or something stupid like 30 to 60 days
Avatar
yeah i like that, those settings confuse me tho, so auto destroy interval, does that start after decay runs out, or does it start at the same time as the decay interval
9:58 PM
because i have always just kind of messed with it until it didnt do anything crazy
Avatar
I'm actually not certain how it ends up being. It seems like the auto-destroy happens the moment you could have manually destroyed it, but I'm not sure
10:01 PM
I can tell you that the structures "decay" by not loading in when someone gets close enough to them
Avatar
yea, i had it on for a while but i had some people lose big bases bc they were playing atlas 😆
10:04 PM
well that and i had auto unclaim on, some dude had an absolute field day on my server lol, he had a vault of element, crazy bred dinos, all just walking along and found them
Avatar
At some point, you just have to deal with a low auto-decay so there's anywhere for new players to build
10:05 PM
We ended up having some drama when a regular spent just one day too long off the server, their dinos unclaimed, and a whole swarm of people were there waiting for the timer
Avatar
yea, that's people for ya though
10:06 PM
esp in a game like this... i had to like kindly tell the guy that lost a ton of stuff, its a pvp server and the auto unclaim was like 45 days.... cant blame the guy that did it really
Avatar
After they refused to give the stuff back at the request of the regular, I wrote a plugin that prevents the dino claim button and just lets them delete at the next server reboot
Avatar
thats smart
10:06 PM
so you cant trade tames at all though?
10:07 PM
or can you hook the auto unclaim function
10:07 PM
i should really take a few hrs and study the hook generator
Avatar
On the other hand, letting people do major raids just pushes new players right to the end game and there's suddenly not much left to do.
10:08 PM
It only prevents it if they would have been deleted at the next reboot anyway
10:08 PM
So you can unclaim without issues
Avatar
oh, do they get some sort of bool for that? the dino
Avatar
It's complicated lol
10:08 PM
Took a long time to find how best to do it, and sadly it's not that easy.
Avatar
go figure haha. thats cool though. i dont really know the best way to sort of research what i can and cant do
Avatar
You can figure it out using the "TimeSinceAllyInRange" and comparing it to the current world time
Avatar
gotcha, so you have to make sure your unclaim time matches up
Avatar
Yeah. There's a default time and you can adjust using the multipliers that people set on the server
Avatar
right. and i suppose you can pull those multipliers in the api? based on the fact that its done in weekendrates
Avatar
WeekendRates is a good example, but you have to pick the right setting. I haven't looked at that code in a while, but I recall there being a few and only one was correct
Avatar
yeah it doesnt hit everything, and it doesnt factor in the base 2x increase etc etc. idk if the atlas one even has treasuregoldmultiplier in it
10:12 PM
it works ok though
10:13 PM
thats neat though, the amount you can do with the api is just nuts
Avatar
There's a ton you can do. The hard part is finding how and where to hook 🙂
Avatar
indeed
Avatar
I love atlas. I am like finished with this plugin, go to go over all the in game stuff a little more and - unable to query server for invite lol
11:00 PM
had to update. . .
Avatar
Rogue Leader 3/17/2019 3:20 AM
@Michidu Did the changes in the last Ark patch make any sense? Was it some kind of optimization?
Avatar
it seems like functions are arranged in alphabetical order now (mostly at least), so maybe they did some refactoring 😃
Avatar
hmm i've set up a custom banlist on localhost but i can't see the game trying to make any requests to it
8:10 AM
nothing in the connection log
8:10 AM
does it not support localhost as the address or something ?
Avatar
ItHoly{Николай} 3/17/2019 8:50 AM
Hello! I registered Hook_UPrimalInventoryComponent_AddItem, the information about the addition comes, but it is not clear how the item got into inventory (harvesting or ..). Also theItemInfo-> ItemQuantityField () is less by 1 than actually received. (edited)
Avatar
𝓐𝓭𝓻𝓲𝓪𝓷𝓖𝓪𝓶𝓲𝓷𝓰 3/17/2019 10:36 AM
This problem also occured on one of my recent plugins.. Seems like the AddItem functions increment the ItemQuantity - no matter what...
Avatar
ItHoly{Николай} 3/17/2019 10:48 AM
And where to get information about the reason for calling AddItem?harvesting or looting
Avatar
ItHoly{Николай} 3/17/2019 11:19 AM
Where better to look then to collect statistics on the extracted materials of players?
Avatar
i dont think that such info is even passed to AddItem, probably you need to hook harveset/loot to differentiate those events
2:33 PM
this way you can gather statistic too @WETBATMAN check that your banlist is accessible 😃
Avatar
i actually forgot http:// before localhost
Avatar
ItHoly{Николай} 3/17/2019 2:41 PM
I can not find a suitable Hook. Can you tell me?
Avatar
A program for determining computer information using WMIC and C++ (Windows only) - tlewiscpp/SystemInfo
4:19 PM
@Haragon this could be useful for you 😄
Avatar
Rogue Leader 3/17/2019 10:56 PM
Is there an alternative to using GetDescriptiveName? Apparently some structures don't have one so it will crash if it's called.
10:57 PM
For primal structures*
Avatar
@WETBATMAN ty, i think i have a really good system figured out. problem is, my timed reward stopped working and crashes the server now. cant figure out why
12:41 AM
gave it a good few hours, worked fine for like 30 intervals as of yesterday and i made no changes. think im calling it for today lol
Avatar
@Rogue Leader you can directly use DescriptiveNameField
Avatar
Does anyone know what server hosts are best to use for ArkAPI?
Avatar
nothing beats dedicated 😃
Avatar
Medicalmischief 3/19/2019 7:18 AM
What happened to the #coding-tutorial channel?
Avatar
it’s still there you need permission to view it though
Avatar
Deleted User 3/19/2019 12:04 PM
Anyone running a high rates server 100x-1000x that I can contact that would be willing to share some of the setup to keep things balanced?
Avatar
ItHoly{Николай} 3/19/2019 7:20 PM
nlohmann::json::parse - crash on parse std::string
Avatar
then your config is wrong, use exceptions to handle errors
Avatar
ItHoly{Николай} 3/19/2019 7:28 PM
the string is not from the config, it is the response of the service, here is the string itself: {"error":{"error_code":5,"error_msg":"User authorization failed: no access_token passed.","request_params":[{"key":"oauth","value":"1"},{"key":"method","value":"messages.send"},{"key":"а$""р","value":""}]}}
7:34 PM
hm.... {"key":"а$""р","value":""} (edited)
Avatar
and this json is wrong anyway, you should use exceptions to prevent random crashes
Avatar
@Deleted User I run 25x, what kind of stuff are you looking to balance?
Avatar
ItHoly{Николай} 3/19/2019 7:41 PM
So I do, I wanted to make everything beautiful
Avatar
Deleted User 3/20/2019 3:50 PM
@Tom i was more trying to find out how much to bump turrets and dino hp etc since I've only ever ran servers from 3x-10x rates but started playing on high rates and they are fun, but low rate settings won't be balanced on a server with 100x-1000x
Avatar
i have x100 annunaki + primal fear lol 😄
3:50 PM
pvp
Avatar
Deleted User 3/20/2019 3:51 PM
Is annunaki a lot different from the vanilla game?
Avatar
yes...
3:52 PM
dragons break metal and such 😄
3:52 PM
thankfully plugins are here for the rescue
Avatar
Deleted User 3/20/2019 3:53 PM
Yeah the ark api is a god send
3:54 PM
Anyway I'll keep scouring the net, maybe someone put something up on pastebin once upon a time
Avatar
for what 😄
3:55 PM
look the best config one can create is on their own with loads of testing
Avatar
Deleted User 3/20/2019 3:59 PM
Yeah i get that, but i just want a base template to start from, on a high rate server the game is much different from low rates, on low rates you get inherent defense through the sheer amount of resources someone is required to raid you, on a server where farming isn't a requirement anymore you gotta keep things balanced using other means - or do i have it completely wrong?
Avatar
not really
4:01 PM
that is the point of high rates 😄
4:01 PM
faster pvp
4:01 PM
you do get more resources quicker to build bases but ofc you also get resources quicker for raiding
Avatar
Deleted User 3/20/2019 4:02 PM
So you reckon I'll be fine leaving turrets and per level multipliers at their defaults and just upping farming rates?
4:02 PM
Just increase weight ofc
Avatar
i would suggest setting some sort of a turret limit but yeah
4:02 PM
also set some kinds of limits on dino breeding
4:03 PM
had a tribe leave a penguin farm on my server that auto breeded and it lagged it to hell
Avatar
Deleted User 3/20/2019 4:03 PM
Yeah gonna set dino limits per tribe
Avatar
worst part was cpu wan't even that stressed so it took me a while to figure that one out 😄
Avatar
Deleted User 3/20/2019 4:04 PM
Ok cool, thanks @WETBATMAN I really appreciate
Avatar
again you might and probably will have to tweak some stuff exactly to your liking but yeah
Avatar
Deleted User 3/20/2019 4:06 PM
Yeah going to take a lot of testing
4:06 PM
But been playing on faster pvp servers and they're a lot of fun
Avatar
certainly
Avatar
Deleted User 3/20/2019 4:06 PM
It becomes a game of pure warfare and less "role playing"
Avatar
in my opinion ark is simply not designed to play with low rates 😄
Avatar
Medicalmischief 3/20/2019 4:07 PM
How often do you wipe on a 100x?
Avatar
there is simply too much stuff you can lose
Avatar
Deleted User 3/20/2019 4:07 PM
Once a month probably
Avatar
and too much stuff that can go wrong
4:07 PM
i wipe mine once a month
4:07 PM
faster pvp is where it's at
4:07 PM
its much more fun and more forgiving
Avatar
Medicalmischief 3/20/2019 4:07 PM
How populated is it?
Avatar
my cluster is not really for a lot of people
Avatar
Deleted User 3/20/2019 4:08 PM
Yeah getting full wiped on low rates is more than most people can handle, they stop playing simply because of the effort involved in starting up
Avatar
so not really populated 😄
Avatar
Deleted User 3/20/2019 4:09 PM
On high rates it dont matter
4:09 PM
Avenge your enemies using the free base from the shop 😂
Avatar
although get ready for DDos attacks from salty players 😄
Avatar
Deleted User 3/20/2019 4:09 PM
Yup and meshers seem to frequent those too
4:10 PM
But got 2 guys that will help me admin the thing
Avatar
that's cool
4:10 PM
😄
Avatar
Medicalmischief 3/20/2019 4:10 PM
Extinction is full of holes.....
Avatar
all maps are...
Avatar
Deleted User 3/20/2019 4:10 PM
You can mesh on any map
Avatar
that's why in my opinion ark is shit at low rates
Avatar
Deleted User 3/20/2019 4:10 PM
And YouTube has taught everyone how
Avatar
because you can get wiped by meshers or die due to bugs at any moment
4:11 PM
and its certainly not fun if you spent several days farming shit up
Avatar
Medicalmischief 3/20/2019 4:11 PM
There is alot of places you can just walk under the mesh
Avatar
Deleted User 3/20/2019 4:12 PM
The two toughest places to raid are proper cave bases and underwater
4:13 PM
Caves most common mesh targets because of it
1:29 AM
Avatar
i think memory leaks are still present
7:59 AM
when i start all my servers together they crash anything else 😄
7:59 AM
with memory related error codes
Avatar
FString result; FString command = FString::Format(L"ScriptCommand tcsar addarctotal steamid={} points={}", SteamID, Points); player->ConsoleCommand(&result, &command, true);
5:36 PM
executing an api command correct like this ?
Avatar
looks good
Avatar
it hangs the server though
Avatar
maybe bad scrptcommand
Avatar
works fine without this though
7:21 PM
maybe i implemented it wrong or something
Avatar
calling function looks good
Avatar
i had a bunch of junk code in there
7:59 PM
cleaned it up and worked like a charm
8:03 PM
i think Wildcard reverted the StaticClass change
Avatar
possibly 😃
Avatar
Rogue Leader 3/21/2019 8:06 PM
Lol they were a few days too late
Avatar
i wonder if they had to do it because of plugins lol
Avatar
meh maybe it caused another crash
8:07 PM
wtf is this beef on the forum though 😄 (edited)
Avatar
┐('~`)┌
Avatar
i still don't understand how he says you need to manually test every plugin 😄
Avatar
i do basic checks before approving (including checking for malicious code)
Avatar
yeah but this dude says you have to check the mechanics aswell
8:10 PM
anyway whatever i guess
Avatar
some crashes are hard to spot 😄
Avatar
yes ofc i don't know what this guy's problem is
Avatar
Medicalmischief 3/21/2019 8:34 PM
There is 2 types of people... those who whine and bitch and moan and those who try to learn to fix it themselves.... I dont know jack shit about coding a plugin but this crashing stuff has got me wanting to learn about it... just have ALOT to learn hahaha
Avatar
which plugins are still crashing for you though? (edited)
Avatar
shop sometimes
Avatar
Medicalmischief 3/21/2019 8:37 PM
Kill feed was for me
Avatar
you might want to try the latest ark update, which apparently, reverted changes
8:38 PM
shop update should be tomorrow
Avatar
i'm already updated to it
Avatar
i said to @Medicalmischief 😃
Avatar
oh whoops
Avatar
shop has other problem (edited)
Avatar
Medicalmischief 3/21/2019 8:46 PM
What's causing shop to crash? It seems to be working fine for me...?
Avatar
mysql disconnect most likely
Avatar
Medicalmischief 3/21/2019 8:47 PM
Ah I dont use that
Avatar
Medicalmischief 3/21/2019 8:55 PM
With the shop, can I put a permission on any shop item? Or is there a way to add a seperate donor shop?
Avatar
i'm pretty sure you can restrict items to certain permission groups
Avatar
Medicalmischief 3/21/2019 8:57 PM
I've seen it in the kits, just havent tried with a normal shop item
Avatar
Rogue Leader 3/21/2019 11:47 PM
We should all collaborate on a big plugin
Avatar
Got anything in mind? The idea is the hardest part for me, and most of the plugins I make come out of necessity.
Avatar
Rogue Leader 3/22/2019 3:10 AM
We could do an achievements plugin. One, it'd be a ton of shit that could be implemented. Two, it would be a great example to draw from for tracking progress and learning to capture all types of events
Avatar
Medicalmischief 3/22/2019 3:22 AM
Like the "RPS" paid plugin?
Avatar
Rogue Leader 3/22/2019 3:26 AM
Similar, but more broad
3:26 AM
Making boss kills, high level stat breeding, large number of pve and PvP kills (edited)
3:27 AM
Placing a large amount of tek structures
3:28 AM
Ascension
3:28 AM
But definitely not quest based
3:35 AM
Rps is pretty interesting though. Giving stat multipliers based on in game progression sounds neat
Avatar
theres definitely a ton you could do
3:59 AM
but yeah for me as well its writers block when trying to think of a new plugin unless i need it
Avatar
GSH | MrOwlSky 3/22/2019 4:08 AM
That'd be epic @Rogue Leader
Avatar
Rogue Leader 3/22/2019 4:31 AM
Should be easy to set up to collaborate easily too. We can keep it simple at first with no configs, just PoC hooks. Main cpp file to load and unload the dll and hooks, then a seperate file for each hook implementation. That way everyone can sort of have their own isolated file to work in and we'd be able to resolve merge conflicts more easily if several of us are working on it.
4:32 AM
And I'm very experienced with managing a project through Git so I can set up the proper branch policies to protect functional code and make merging pull requests to the main code easier.
4:33 AM
Who was our plugin/mod guy who created the GUI Mod for his plugin?
Avatar
GSH | MrOwlSky 3/22/2019 5:51 AM
I'd kill for someone to remake @OwnProx program. He's been on vacation so it's been needing some major updates.
7:38 AM
when starting multiple servers at the same time i always get memory errors like this from other programs
Avatar
weird, server doesn't interact with other programs 😄
Avatar
weird as fuck
7:42 AM
i opened my remote desktop connection right now
7:42 AM
and 1 server was started twice somehow
7:43 AM
ark server manager and XAMPP crashed with memory errors like that
Avatar
you have apache on your server?
Avatar
yes
7:45 AM
for sharing the banlist and etc...
Avatar
maybe not enough memory?
Avatar
dont think so out of 32 gb max it uses while all are starting is 27-28
Avatar
I said screw it and wrote some simple bat scripts to do basic management - havent tested it fully as my server is not released yet (Spent a ton of money and time on it and now ATLAS seems dead...) but it works until Ownprox is able to give his program the love it needs
Avatar
Medicalmischief 3/22/2019 3:02 PM
What program are you talkin about?
Avatar
I assume they are talking about Ownprox's Atlas Server Manager
Avatar
nah those are ark servers
Avatar
also @WETBATMAN are you starting them with varying priority in windows?
Avatar
all of them are on high 😄
Avatar
It could be that xampp doesn't understand why it is starved for resources (since starting multiple will likely eat up a ton of your memory bandwidth) and that could be why it crashes. you could maybe start them on normal and have a script to change their priority after a couple mins
3:18 PM
Or alternatively whatever is crashing try setting it to the same priority as your ark servers
3:19 PM
because i typically only use priority other than normal if i need to page down a server asap... so it definitely changes what is available to the process
Avatar
nah it wrecks havoc on anything not just xampp 😄
3:21 PM
ark server manager also crashes some servers launch twice and stuff like that 😄
3:21 PM
ArkBot also crashes
Avatar
oh wow thats a little odd. I definitely notice ASM gets bulkier over time.... It takes a few minutes for me to save any changes I make in the GUI
3:25 PM
thats after running my servers for about 8months now with it
Avatar
i assume it's memory leak
Avatar
yea, sometimes ASM gets up to 200-300mb... i ususall just restart it
Avatar
Rogue Leader 3/22/2019 4:15 PM
I'm currently working on getting the ARKApi libs and headers into a NuGet Package to try and make project management a little easier
Avatar
Rogue Leader 3/22/2019 4:54 PM
Can someone clone this down and attempt to build it without editing the config? I want to see if it will automatically pull the nuget package down and link it on build: https://github.com/barnwellrd/Achievements
Ark-API Plugin for tracking customized achievements in Ark - barnwellrd/Achievements
4:54 PM
and without editing the project files/paths
4:55 PM
Clone> open .sln file> build
Avatar
@WETBATMAN 27-28 out of 32 GB is easily in the range where your going to see out of memory crashed. I've been trying to keep our machines under 75% as the windows memory manager starts to much more aggressively push things to the slow, disk-based page file.
Avatar
-_-
Avatar
Your getting into the range where it really starts to panic 🙂
5:00 PM
Where "just kill the process" is an option
5:01 PM
Especially with the very fast ramp in memory usage on startup of each ARK server
Avatar
Rogue Leader 3/22/2019 5:48 PM
Can someone try to clone and build that repo now. I've updated it so it should work (edited)
Avatar
how much is a page file supposed to take up ?
Avatar
@Rogue Leader it worked
5:57 PM
there is no determined size, depends on your ram usage
Avatar
it's 11 gb for some reason 😄
Avatar
Rogue Leader 3/22/2019 6:19 PM
They said in the patch notes that the last update fixed a memory leak in Trikes. No telling what other memory leaks they accidentally added
6:20 PM