Jump to content

g4borg

Members
  • Content Count

    116
  • Joined

  • Last visited

Posts posted by g4borg


  1. 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).


  2. On 3/27/2019 at 12:23 PM, 0.64 Freerider said:

    Well, as long as the problems that result from this artificial light remain, it doesn't matter to me how much they tone it down. Another problem is that you kind of lose feel for how visible you are from the outside, because inside everything is super bright and you can't tell if people who scope in from a distance would be able to see you. It's just not a good thing imo and like I said. It renders actual light sources pretty much obsolete.

    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.

    • Thanks 1

  3. 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.

    • Thanks 1

  4. 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.

    • Beans 1

  5. 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)


  6. 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.


  7. 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.
     


  8. 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.

     

    • Like 1

  9. 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.


  10. On 2/19/2019 at 8:59 AM, g4borg said:

    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.

    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)

    On 2/19/2019 at 8:59 AM, g4borg said:

    To compare, here is a helper function i use to create items (however with full health) to highlight the exact procedure: ...

    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.

    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.

    20 hours ago, DrZeddy said:

    And I very much like the helper function you posted.

    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...


  11. 18 hours ago, Liven_28 said:

    Can you give me some details on this point?

    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 🙂


  12. 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.


  13. 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.

    • Thanks 1
    • Beans 1

  14. 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.

    • Like 1
    • Thanks 1
    • Beans 1

  15. 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 🙂


  16. 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 );
    

  17. 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.


  18. 48 minutes ago, THEGordonFreeman said:

    If the persistence is only saving every 30 minutes and a crash occurs, that's 30 minutes of work lost

    48 minutes ago, THEGordonFreeman said:

    Played a couple of weeks in Atlas and it's still EA, and it works FLAWLESSLY.  We even have 4 Atlas servers using ONE database on ONE server using REDIS. 

    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.

    • Beans 2

  19. On 2/9/2019 at 1:47 AM, BCBasher said:

    **edit** a lot of the complaints about driving I see are looking like desync, I used an X-box controller and driving was an absolute treat with a 500fps+ server and >20ms ping.

    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.

    • Beans 1

  20. 8 minutes ago, BCBasher said:

    Not sure I understand, my in home EXP server was ruining all night and had an update waiting this morning?

    the client was already upgraded hours earlier, and i was waiting for the server part. also i had edited my message before your answer, so this was a race condition.

    • Beans 2

  21. they move toward sound sources. they always gathered at cars, or points where they heard a shot, etc. if they reach the sound source and do not find you visually.

     

    an automatic backup is not a bad start. since you have no control over when the files are written, backing up manually was not working all that well. i am sure they will add options to the interval and the amount.

    • Beans 1
×