Jump to content

g4borg

Members
  • Content Count

    94
  • Joined

  • Last visited

Everything posted by g4borg

  1. g4borg

    Unpopular Opinion

    sorry, but making money should be the companies priority, not the consumers. this defensive attitude is by no means "unpopular", and many shady game developers actually profit highly from the advocates, even pushing their own "victim" standpoint, while most of the money is disappearing in completely unrelated "sinks". I know you mean it well, but unfortunately, money isn't everything. Game development is one of the hardest jobs in programming, it is taxing intellectually, operationally, emotionally. Sometimes money cannot solve these issues.
  2. I know this is sort of a rant, but I have to kind of document it somewhere, because atm. DayZ Scripting made me encounter a really frustrating situation. How it started: It seems that files have maximum sizes, that means, simply serializing e.g. player based data into a json file is impossible. I have to start using multiple files. Weird, but fine. I implemented my systems with steam ID as filename in a custom directory in $profiles. It also seems, maximum amount of files in a directory, for whatever reason, is set to 500 in scripts. Saving a file will raise an exception. Nice to realize this by accident. Now since there is a MakeDirectory function in System, one would think: okay, let's use sub-directories with hashed directory names. At this point I just whish, the dumb 500 would be at least 1000, so I can properly hash a SteamID. But no. And MakeDirectory does not work, it simply returns 0, and does not create a directory in $profile. I have no idea how to use $saves on a server, but it does not matter, as it also returns 0 there. I cannot of course read inside a script, how many files there are in a directory, but maybe I have overlooked a function in EnSystem.c I could also of course pre-create a trillion directories so i do not need to create them. naaah... c mon. I have no idea how to create exception handling in this script language, as the documentation is non-existant. But of course if I had that, I could at least try to catch the maximum files error and simply hardcore some directory rotation and predefine maybe 100 directories i jump through until i can save; Of course I would feel dirty at that point, having to fall back to programming techniques like this. (If anyone has an idea how to do that, pls tell me; I mean exception catching, not feeling dirty) There is no socket support whatsoever. By now, But Clipboard copy / paste. Maybe I should implement communication with the outside world over that? Holy crap, do I just really thought about using the clipboard for application communication? No DB Support exposed. I mean, after the problems Arma2-DayZ Servers had, because you could not use .so files like .dll files to write a db plugin, while most servers ran actually on linux, you would expect them to at least have that on windows. But no DayZ Standalone is even worse in this regard. I know there is database stuff used internally, as the player database is a sqlite db file. So maybe it is still under development. Please tell me it is under development. Because SQLite is not really something you would use in production. It is usually used as placeholder for a more dedicated db system, because it is really not performant, like at all; which probably also lead you to use file dumps for the saves. I am deeply disappointed at this point, how the technical stuff is handled. No mod loading on join, no linux servers, no database or at least socket communication, no documentation, and then silly restrictions on stuff like files in directory. Who decides to set a 500 file restriction in a game scripting api? What is that even for? Why? The Operation System itself will handle that! Or wait, was it just because you did not implement exception handling from the operation system side?
  3. g4borg

    Just another weather question

    I usually try to avoid 0.0 tbh with the weather script. but yes, in theory that would mean it, albeit, Set actually is supposed to set the current rain, and it very much depends whether the weather system itself reacts or not. maybe better to ask in that reddit post however.
  4. g4borg

    Stable Update 1.02

    I like the changes, and congratulate on a lot of fixes, and the introduction of the new car. I am a bit confused which xml has which line endings, and a bit displeased about stuff like 500 files per directory limits, or file size limits, while at the same time no proper database connection implemented yet. I really whish we could put that in postgres Also, I am still missing one decisive feature for my personal taste: to define a separate drive/folder for the mission folder; so we can have it on a different drive. I feel like you devs really need to catch up in development practices. Which is why I hope you actually have a good big sale to give you some breathing room Finally, I'd whish we could put the dayz scripts unpacked into a repository like git (I try that at home, to follow your changes in the commits), so we can easily read changes there, as sometimes it impacts the custom scripts. I would have opened mine read only, but I am unsure whether that's allowed. I know I see it from a technical perspective, but ultimately, it's for the greater good (tm).
  5. i don't follow your argument. you complain about it making lights obsolete, about super brightness, and so on, and think toning it down would not help make it better. okay... i understand, you want to know if you are visible or not, but truth be told, you would not be able to tell, because it depends on the others monitor, resolution, gamma, and how your movement affects you due to the background. so if i read you right, you actually bring up the argument, it could not be toned down, because you lose a personal advantage of telling how well you hide.which is fine, it's a valid argument. but i understand, why you therefore do not feel it can be toned. it's almost if you have two separate issues with the feature. on the flipside, dark vision is a real ability of humans. if you turn lights off, your eyes will slowly turn off the color vision, and ramp up your black-and-white vision, which is highly movement sensitive, and very sensitive to light, so you will start to see even in star-light. you probably know, if you ever spent time outside of the light smog of modern civilization. which is how i built my argument. it should be greyscale, mainly outside, need time for adjustment, etc. light sources will be rendered obsolete anyway as soon as there are NVGs, except the NVGs also shimmer green; with the current gameplay, nights are usually ignored, servers empty, and a light source is such a high risk, it is obsolete in any way. Let me expand my initial proposal then: The feature should be toned down, greyscale, adapt slowly, and be more prominent outside than in a building, also for reasons of balance. You should be able to disable the feature personally in the options if you so whish. Might even be a server side flag option for the hardcore. It might be even fair to only have this feature from first-person perspective. I also like the proposals about real moonlight, and maybe the ability to restore streetlights, albeit i would love that feature to be configurable. The original plan was to allow players to hook up a generator to restore lights in a particular town, I whish that back on the roadmap.
  6. they should just tone it further, so it becomes similar to natural human dark vision. it should be darker or even off in buildings. it should be greyscale. it should need a while to activate and be reset when you encounter a bright light and of course it should not illuminate things completely. perfectly fine however if they have a system like this.
  7. g4borg

    Stable Update 1.0150627

    if they go the DLC route, they can just as well stop working on the game right now, because that is not gonna fly with anybody, and it will literally kill their game. if anyone has plans like this, he or she is absolutely not suited for marketing and they should fire him or her, as that is the only extra revenue they can actually look forward to. the only thing i can imagine the majority of players would accept as DLC are new maps. there it actually would seem like a good idea.
  8. g4borg

    Player Stats Tracking

    i only saw playtime being updated for now you can read that from PlayerBase: float playtime = player.StatGet("playtime"); it's a float in seconds (so 900.0 is ~15 mins). i saw other stats, but they do not get updated as you say, and it is probably not worth it implementing this yourself. i use this variable to determine respawn loot on my server.
  9. I think it would be benefitial to decouple this in a separate CLI tool, instead of binding it into a fiddly-to-setup-editor Especially since the language is sparsely documented; I think it would also improve the quality and maturity of the development tools, if the editor is handled separately to the compiler, even if using the same core functionality. It should of course not end up in parallel development, like the worktools, where the GUI Version uses a different config file (and e.g. the CLI Tool, which is used to deflate the game files, does not really adhere to using the Workdrive configuration, and seems to use P:\ at all times, while the GUI Version has other functions missing, but theoretically allows you to set another drive letter)
  10. It would be awesome, if the location of the storage OR mission file could be passed via config key or command line parameter to the server. This way, the game could be installed on a hard disk, but use the storage folder on a ram disk. Using a RAM disk is a good middle way for the current way of dumping the worldstate to files, but it has no upside on the server itself.
  11. Weltenfall DayZ IP: 176.9.48.107 Port 2302 (also find us in DayZSALauncher) --- The goal is a balanced server for Teams, Survivor Drama, Lonewolf but also PvP oriented players. Our Team has experience handling large Servers. We give Standalone a shot after developing Features now for two months, I hope we can present a mix of good vanilla settings combined with useful changes. Default Features and settings. - Root Server Hardware. (Ramdisked saves did not cause us corruption yet; can be expanded on demand) - Long Day; Short night. through 12h restart schedule, atm. a day only server - Adjusted loot tables; (e.g. no flashlights as long as we are day only, adjusted to single server economy) - NO Cargo on loot count whatsoever. Hoarding items will not reduce spawnrates! - Spawn Area around South East only; the golden age of spawnpoints. - Survival Spawn Kits, including a Radio, a few fruits and either a goodie or a sort of knife. - Increased amount of Heli Crash Sites, with some loot only spawning there. Our customized Scripts - Respawn Extras (based on Quartz*): the longer you survive, the better gear the game gives you at respawn (a bagpack, supplies, etc., no military stuff) - Hordes (fixed, working, no announcements) - Extra cars (all ready except sometimes the sparkplug) - Elektro: The home of PvP. Around Elektro, you spawn with a Makarov, to defend yourself. - Elektro: Extra ammo / pistol loot spawns on the street make it very lucrative for everyone to roam the streets, even geared players. Watch out! - Custom Weather System: more steady weather, with lower chance of rain and correct lerping. (tho weather desyncs still happen - not fixable by us) Quartz * our server economy currency. - After 15 Minutes, every 15 Minutes you get 1 Quartz on your account. - This is used on respawn to determine what loot you get extra. - The respawn reward is capped at 20 Quartz, any extra Quartz remains on your account. - We might expand on this system with further uses. Features to come - Respawn Shop: our website will allow you to set a respawn gear, or select which items you want preferred, is under construction. - Mods that are optional; we want to add mods that add to the gameplay without need to disturb vanilla users. - An Endgame Idea as a Mod. Let's see if this will ever see the light of dayZ.
  12. tu die hilfsfunktion über die override funktion. (bzw. korrekt gesagt "daneben" also auf derselben ebene) du darfst keine funktion innerhalb einer funktion definieren in dieser sprache. EntityAI EquipItem(PlayerBase player, string itemClass, int amount) { EntityAI item = player.GetInventory().CreateInInventory(itemClass); item.SetHealth("","",100); if (amount > 1) { ItemBase itemBase; if ( Class.CastTo(itemBase, item ) ) itemBase.SetQuantity(amount); } return item; } override void StartingEquipSetup(PlayerBase player, bool clothesChosen) { EquipItem(player, "HuntingBagpack", 1); EquipItem(player, "HuntingJacket_Summer", 1); EquipItem(player, "HunterPants_Summer", 1); EquipItem(player, "HuntingVest", 1); EquipItem(player, "CombatBoots_Green", 1); EquipItem(player, "Headtorch_Black", 1); EquipItem(player, "HuntingKnife", 1); EquipItem(player, "CZ527", 1); EquipItem(player, "Mag_CZ527_5rnd", 2); EquipItem(player, "AmmoBox_762x39_20Rnd", 1); EquipItem(player, "HuntingOptic", 1); EquipItem(player, "CZ75", 1); EquipItem(player, "Mag_CZ75_15Rnd", 2); EquipItem(player, "AmmoBox_9x19_25rnd", 1); EquipItem(player, "PistolSuppressor", 1); EquipItem(player, "ImprovisedSuppressor", 1); EquipItem(player, "Rags", 6); EquipItem(player, "Canteen", 2); EquipItem(player, "CanOpener", 1); EquipItem(player, "Battery9V", 2); EquipItem(player, "HuntingKnife", 1); } ich habs nicht probiert. ansonsten von einer cleanen init.c ausgehen und neu einbauen.
  13. Meine Hilfsfunktion ist eine Hilfsfunktion. Die ersetzt grundsätzlich keine der anderen Funktionen. Sie ersetzt was in jener Funktion geschieht, und war dazu gedacht, den Vorgang verständlich zu machen. Ich hoffe auch mal aufrichtig, du hast nicht einfach "..." in die Datei geschrieben. Der Aufruf: EquipItem("HuntingJacket_Summer", 1) ersetzt "itemEnt = itemTop.GetInventory().CreateInInventory("HuntingJacket_Summer"); SetRandomHealth(itemEnt);" (mit dem Unterschied, dass es statt RandomHealth full-health macht, und optional das casting übernimmt, sowie stack-amount setzt) es gibt nur zwei wege zu programmieren zu lernen: a) verstehen was jede zeile macht, indem man sich es im kopf vorstellt, b) solange fehler korrigieren bis man versteht wie es geht. es gibt kein c.
  14. Der Cast nach ItemBs wird nur gebraucht wenn du die Anzahl eines gestackten Items manipulieren willst, oder eben andere Methoden, die in ItemBase definiert sind (was eine Mutterklasse von EntityAI ist). Du brauchst es für den Ausdruck "itemBs.SetQuantity(2)". Warum die herumcasten, frag mich nicht. Klingt für mich ziemlich broken was Objektorientierung betrifft. Es ist eine Unterklasse, und demnach müsste ich ja alle Methoden der Mutterklasse ohnehin aufrufen können. Ich hab jedoch auch noch nie probiert "itemEnt.SetQuantity(2)" aufzurufen, weil eben alle Beispiele diesen Casting Zwischenschritt haben. (Casten = das wandeln einer Instanz-Variable einer Klasse in eine andere, von der es vererbt wurde) Als Vergleich hier ist eine Hilfsfunktion, die ich zum Erstellen von Items verwende (jedoch mit vollem Health Wert), um aufzuzeigen wie der Ablauf tatsächlich ist: ... In init.c wird genau das auch öfter hintereinadner gemacht, die Variablen "itemEnt" und "itemBs" werden einfach nur wiederverwertet, nach jedem Create (während eine Hilfsfunktion wie die meine den Nachteil hat, dass sie die Hilfsvariablen bei jedem Aufruf neu initialisiert), aber ich bevorzuge Lesbarkeit über frühzeitige Optimisation. To be honest, all the pain going through learning the ins and outs of Scripting makes it a lot less painful, if someone says thank you 🙂 Myself I have already twice thrown the towel in creating anything in this ecosystem, and returned coding on other Projects in unity, where I have to do a lot more, but at least, I have control over my project, and don't have to deal with a system that defines everything seven times on different positions, packs it in binaries, defines configuration stuff for everything ten times, and that without really making it easier to overload things, because the real stuff you would want to change, is hardcoded after all. And while you could solve stuff with creating mods, the client does not even support loading them on server join. One really asks the painful question, whether it isn't faster to write the whole game yourself faster, than a mod for it...
  15. g4borg

    Problem with ChatPlayer()

    unfortunately no, as i did not yet make a mod myself yet in dayz. but maybe someone here has. but i did see chat mods on the workshop which might be usable and introduce RPCs, like the SideChat. what you would basicly do is send an RPC to the server if a player on the client enters a text. this has to be done in your mod, or any mod you use which sends an rpc to the server. on the server, the RPC would be catched as event (which can be done perfectly also in mission) and lead to whatever you do with it. you can already catch chat messages from players who are logged in as admin (#login password in chat, happens over battleeye). so for something like admin commands, this already works. however since the event only sends username and message, you would also have to make sure, each admin actually sets a username explicitly, or you will not be able to identify who actually wrote it (i know, it sounds as broken as it is). To be honest I sincerely hope, this will be fixed by the devs, which is why i wait. because until the client cannot auto-load mods natively, i fear that running modded servers will only appeal to a certain population (which usually prefer heavily modded servers), and i just want modifications that are "useful". also for the general public this is no good, as you would certainly not want to distribute your server password to people, who can then just enter #shutdown at any time 🙂
  16. g4borg

    Memory write problems

    i would do a memtest, just to be sure. most linux distros have it, so you can do it from boot. just to completely rule out hardware. do you have crashes like this in other games?
  17. The cast to ItemBs is only needed if you want to manipulate the amount on a stacked item or other functions which are part of ItemBase, an ancestor class of EntityAI. It is needed for the expression itemBs.SetQuantity(2); Why they have to cast it around, do not ask me. To me that sounds like broken object oriented design. If it is a subclass after all, you should be able to call the methods, nevertheless. I never tried if itemEnt.SetQuantity(2) works, because the examples all use the casting step inbetween. Otherwise the casting has to be inserted, because of course, like this it won't operate on the object in question. It is the same object, just as an ancestor. --- To compare, here is a helper function i use to create items (however with full health) to highlight the exact procedure: EntityAI EquipItem(PlayerBase player, string itemClass, int amount) { EntityAI item = player.GetInventory().CreateInInventory(itemClass); item.SetHealth("","",100); if (amount > 1) { ItemBase itemBase; if ( Class.CastTo(itemBase, item ) ) itemBase.SetQuantity(amount); } return item; } ... EquipItem(player, "Rags", 4); EquipItem(player, "HuntingBagpack", 1); in the init.c exactly this is done, the variables "itemEnt" and "itemBs" are just recycled after each create (while a helper function like mine has the downside of initializing the variable each time it is called), but I prefer readability over preoptimization. edit: sorry, the syntax highlighting uses similar colors like the forum layout, but i cant undo it.
  18. if you change the spawning coordinates in the xml, you also have to delete the compiled spawnpoints.bin in storage_1 for it to take effect. then at next server start the server will regenerate the spawn points from your xml. only the .bin file is valid. it will not regenerate it simply because you change them in the xml. starting loot is all in the init.c; there are lots of examples out there for that.
  19. g4borg

    Stable Update 1.01

    camo guns are a texture, and can be added without enabling any client side mod. I would hardly call that "modded content". Nor do I expect many bugs from the mods and abilities we currently have. what they took out is the spray paint mechanic. The camo gun is still in, and can be spawned. Those model errors happen also with vanilla experience. -- The correct way to go is add modding as soon as possible, so you can maintain your own game by actually adding your content as if it were a mod. that way you have a clear boundary between core features / libraries and assets / content / scripting. the main problem is not modding being added. it is actually more the problem, that a lot of stuff is hardcoded, and the whole structure of the game engine is an overengineered mess, that is probably as hard to develop as it is to mod. Had they added modding early on, and actually used it correctly themselves, and implemented proper mod loading etc. beforehand, they might be already further down the road. -- But it's easy to judge from afar. And I am sure they know themselves that not everything went ideally.
  20. g4borg

    Problem with ChatPlayer()

    the RPC is basicly a function that gets sent as a signal to the client. what the client does with it depends on the signal. it is basicly a network message. "remote procedure calls" are the opposite of other general network code, they get used to trigger custom functions, opposite to the general network code which constantly syncs stuff like your player position internally. a "message" is by definition something custom, unpredictable, as opposed to predictable things. 🙂 but more on that you find in general literature, it is not a dayz specific thing. Any modern multiplayer engine uses this. rpcs are also important for mods, as they allow you custom commands/data to be sent from server to client and vice versa. there are a few predefined ones in scripts/3_Game/Enums/ERPCs.c, and the "user action message" is one of them. GetPlayers is a procedure, which writes the amount of players into the array you give it. Your snippet of code basicly sends the RPC to all players connected. So your code is basicly a "message to all players". It might be enough if you are alone. If not, you would have to filter for "your designated player" in the loop. It is fine not to know previous titles btw. the way arma was different. you can get an example of intercepting chat messages in some of the admin tool scripts you can find, like in vanilla plus plus; however, in scripts you can only read chat messages of players which are registered as admin. otherwise you need to write client side mods aswell, or may have a look at the mods in the workshop if something fits your needs, because you would have to intercept input on client side and send an rpc to the server for anything more sophisticated. good luck 🙂
  21. g4borg

    Problem with ChatPlayer()

    someone in the news thread reported, that the see-your-own-chat thing is just a client setting issue? Anyway, I really hope they overhaul the whole chat system in fact. having chat messages arrive with a string based username only is not ideal to know who wrote that message, if everyone is named survivor, and there is no option serverside to at least assign a name to unnamed players; imho this is a rather major issue, from my developer perspective, that i would rather overhaul sooner than later. if you really needed to display a message you can definitely still use the method with RPC directly (altough this rpc makes it appear red) Param1<string> Msgparam; PlayerBase player; PlayerIdentity playerIdentity; # fill those variables with GetPlayer() and GetPlayer().GetIdentity() Msgparam = new Param1<string>( "Hello world!"); GetGame().RPCSingleParam(player, ERPCs.RPC_USER_ACTION_MESSAGE, Msgparam, true, playerIdentity); also getplayers requires an array to write to: array<Man> players = new array<Man>; GetGame().GetPlayers( players );
  22. g4borg

    Repacking pbos, I think?

    yes, documentation is sparse but to be honest, i would go for such a project as developing it as a mod, if you want to be able to share it, or just edit the files as they are if you don't. packing the pbos should be the same as in older games. you need your own bisign key of course. which is why replacing the original pbos might not be the way to go, as they are packed with bohemias key.
  23. hold on a bit. having a backup mechanism might be a workaround, but it is also highly necessary. even ark has a backup system built in. that is just the basics covered. 30 minutes is a fairly okay backup interval in this case. it clearly depends on the size of your saves, if you even want that. having dealt with old school stuff like dayz mod or minecraft or even ultima online shards, losing a few hours of progress on a server crash is still better, than losing everything, or having not enough backlogs which allow you to run the server without running into internal issues again (self corrupting world states) which, coincidentally was the main issue why we stopped Ark alltogether. Ark had huge problems with it's server files. corrupted save files, memory leaks, etc. could create issues, which you could not recover from, if you did not go back days in time. just wait until atlas has also mods and fairly old world saves. given atlas is just a reskinned ark engine, you cannot act, as if it came out without problems and full Redis support right off the bat, without any history attached, or that the decision to run it as standalone might not coincide with the fact they needed to rewrite exactly that subsystem in ark itself... without a backup mechanism in the server, backuping was impossible in any case, as the save files were rewritten to harddisk and you could never know if copying them was safe. Now there are several different issues with persistence here. One type of problem, which occurs if the save files are corrupted, usually if the server crashes while it rewrites that file, is unavoidable in any circumstance, because the real issue is the crash. You can always have this issue, no matter which kind of backend you use. The other, where items disappear because their lifetime runs out magicly, or the lack of an open format for the savefiles to be able to recover data manually, or the lack of a third party storage option, or your character losing items (which has nothing to do with the world save), all these are complete different issues. Sure, Redis Key value store support, or even, linux support at that, would be wonderful. I would even settle with a more open savefile format, or a documentation of the binary format. But I would not act up, as if dayz is the worst in terms of storage solution. I never had any corruption yet, that I could not trace back to shutting down the server wrong or a crash. Having proper third party app support, I am all for that. I am pretty sure, redis and postgres support incorporated into the server would have saved them huge troubles, even if their c++ code stuck in the 80s mentality falls off the opposite extreme than the Ark visual blueprint script kiddie devs. but if that is so, we should positively petition for such changes instead of whining about the devs. i for one would love if a suggestion thread for such a thing would get more attention, than ridiculous "1 life server" ideas. maybe the problem isn't just the devs after all.
  24. yes same, cannot see, but the messages do work.
  25. g4borg

    Stable Update 1.0.150192

    we made already a few races on our server. the game does have some issues with keeping a steady sync, so you get the typical occasional hick up lags with a bit of rubberbanding. this is only for people who are in the vehicles, as others who are on foot can enjoy the game in the typical fashion. our server is still mostly empty, so we can rule out a lot of other problems (we all had good connection, the server runs from a ram drive, it has decent cpus which run core-peaks of 20%) if you keep speeds decent, you should be able to drive it, but as a lag can basicly be your death, for a regular player it might be a bit too much work atm. to repair a car and drive around with it much. crashes can also desync bodies and the wreck completely. also the low res LOD of the vehicle looks like it is "flying" (around the same amount like they get burried occasionally), which makes it strange to look at on the road. btw. winning a race is usually just "drive slow and safe", in 99% of the time. at least yet the great coast run was never completed by anyone yet.
×