Jump to content

jahangir13

Member
  • Posts

    518
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by jahangir13

  1. I am not sure if this is fixed in 1.0.5.1. Did you try to set the parameter DZE_PlayerZed in your missions init.sqf?

     

    In 1.0.4.1 before I needed to go to compile/server_playerLogin.sqf, there is the code which decides if you are infected or not. There is also code in compile/server_playerSetup.sqf. And the code in both files did not fit to how the character (medical data) has been stored in the db.

     

    I had a quick look, looks different than in the version before if I remember correctly...so maybe it works now just with setting the parameter. If not, let me know...but I will not be able to check anything before the weekend.

  2. Seems that there are more open than closed brackets in your character cache. So there is a closed one missing. Therefore the error message.

     

     ["PASS",[false,false,false,false,false,false,true,9226.48,[],[0,0],0,[240.781,260.061]],[132,107,0,1],["FHQ_ACR_BLK_RCO_SD","amovppnemstpsraswrfldnon",42,["76561197961529856","76561197961529856","76561197961529856","76561197961529,[209,[5523.69,17991.6,0.0870128]],3323,"443"]"

     

    Did you change anything on yourself in the code?

  3. What you need to understand is:

     

    the linux port of the server has no method to execute statements directly on the mysql database as the windows server can do via Hive (also not direct ;) )

    If you already wondered why there are all these DIAG_LOG entries in the dump.log: the Epoch server scripts, whereever a Hive-Call is made in the original server scripts, just have comment these out (as there is NO Hive) and write an similar entry to the dump.log file.

    writer.pl directly recognizes the entry (in realtime) and calls a perl function that knows what to do for e.g. 101, 22, .... The perl functions then read, update information in the database. If these functions request information from the db which need to be send back to the server, there is only one way: create a textfile somewhere and read that with the appropriate function from the server scripts. Therefore the /cache/folder is there. It's just a mechanism (the great idea from devd for the linux port) to get info from the db into the game again.

    The reason why there are several folders e.g. in the players cache dir and folders like 1, 2, 3,... is: you can only load the same file once!! If you need to send e.g. updated character information to the player a second time...you will need a second file (different name) as Arma, for whatever reason (maybe security or performance) caches an already loaded file. Took me long in the beginning to understand this and a lot of trying and testing until I've understood that I cannot read the same file again...or I can, but the information is never updated.

    Did you maybe recognize that if your mission is running for e.g. 2 hours already, that a newly joining player starts with the same ingame time (on the watch) as a player who joined the server at the start of the mission. So players who are already 2 hours playing on the server could be in the night, where newly joining players are still at day (I wrote a post here somewhere with information how I've fixed...or better went around...that). But that is exactly what I've mentioned above. The set_time.sqf in the cache folder is only read once by the mission and even with changing the content (via cron or via the server scripts) and setting another time there, you load the old values.

     

    Regarding rollback for players: I encountered that if you for example drop into a car and drive around and the server restarts, you will be at the same position after restart where you've been before you stepped into the car. If you leave the car (maybe run a few meters) the information: player left the car and appropriate server script is called, which then updates the new players info (like location) in the db. So there is an event for this needed which triggers a script (where we can put the DIAG_LOG command into, which writes to dump.log, where writer.pl reads this and updates the db, as described above. If you stay in the car, your dump.log does not know that you have another position as you have been driving around, and changes nothing in the db.

     

    That's just to understand a bit why cache files and things are there. I am not 100% sure if deleting the cache files is a good idea but already heard from others that that's needed not to lose items. I need to have a look into the code again (just started again yesterday after 4 months pause ;) ). I don't think that devd forgot to delete the cache files in restarter.pl or something else. And if I remember correctly, the last time I've tested this, I was always a new player/character without cache files. maybe that has been changed here, don't know yet.

     

    The good thing about this: with the possibility to send information from the server files to the log, and reading this with writer.pl, which then does something with this information, you can do everything you want, if you find a good mechanism for handling these cache files if you may need to read again ;) E.g. someone in the normal forum had the idea to let the players change a safe code at any time: you find a place in the server files, send something via DIAG_LOG to dump.log like 'jahan-safe-update,safeid,newcode' and parse this line with writer.pl and if found update this safeid with the new code number in the db with a function update-safe-in-the-db. Just as an example.

     

    Hope that helps to understand the mechanism a bit better.

  4. Hm, the original script did always work well for me.

     

    Just called them via cron like this:

    00 2,6,10,14,18,22 * * * php5 /home/dayzepoch/Restart/60min.php >/dev/null 2>&1

     

    Just check if you can call php or php5 from the shell directly with the scripts, then it also works from cron. As Trollspace said, always use absolute paths (to the scripts, not essentially to the application).

    It' s a bit annoying that there is a script for each time...but after setting this up once you never care about it.

     

    The only problem is that cron execute these at exactly the time you define...but maybe the server has been restartet in between. So until the next regular restart the time you may show in a custom debug monitor ('Next restart in xxx minutes' is not the same as the cron script message shows.

  5. No, after I've recognized that the version of devd is still 1.6.2 and my client was already 1.63 I've downloaded the newest server.

    I did not know after being absent for 4 months or so that this does currently not work in DayZCommander anymore (what is the fault of DayZCommander). That cost me 2 hours to recognize that my server is already running but that I cannot see it in the commander, lol.

    But thanks!

     

    Whats also new to me is that it seems that the expansion folder is not needed anymore (as there is no beta anymore on steam?). So there I've loaded my Battleeye from the last time.

    So still some things I need to learn newly ,)

  6. Did you try that? When I've tested this long ago I did not carry the same inventory anymore and things got worse.

    And exactly that happened what you mention above. You end up somewhere else and things like that. Maybe I've tested this wrongly at a time I did not yet understand the reason for the /cache/ dir...and never tried it out since then ;)

    Maybe that's fixed now. When I started at the begin of the year with the linux version there was a discrepancy between DB values and cache files.

    I guess if you delete the cache dir you end up ALWAYS as a default player/character.

    Need to have a look into writer.pl again...but that was how it was before if I remeber correctly.

  7. Problem with the files is unfortunately that you can only load the same file name once in a mission. That's a real problem ;)

    So even if you change the content the cached file (loaded the first time) is executed. That's the reason for devd to go the way via the different player directories 1,2,3,4,5 inside the cache directories.

     

    I wrote a hive 307 function to be able to use real events from Epoch (if someone needs it accurate per minute....I guess nobody needs that).

    So every minute I write a new file into the cache directory from the sql DB directly and load that from the server files when spawnEvent.sqf is called. For my 4 hours restart server that are 4*60 files sys_time1.sfq, sys_time2.sqf,... ;)

    It works but this is not the way for executing any statement as you already said above. So therefore I think a function to execute any sql statement is useless here.

  8. I've asked him longer ago for such a function. Not supported was the statement.

    I wanted to be able to change the code of a safe which is already build. Therefore he created hive 31 for me (should be in writer.pl).

    I think you need to create a function depending on a use-case which is not difficult if you just copy e.g. hive31 from writer.pl and change it a bit.

     

    To create a more general (or dynmic) function (as I understood what hive999 is) will be more difficult as you need to check number of input parameters and build a corresponding statement from these. Maybe you can build a statement string in your server files and just pass this through to writer.pl and just execute exact that statement (the text send from the server to writer.pl). Never thought about security issues doing it like this. Is it possible to execute server commands from the mission? Then this would not be a good idea.

  9. 2kohm: you do not backup the cache files from the servers directory?

     

    I backup my files in restarter.pl when the server is shutdown.

    I do a mysql-dump as well as archiving the corresponding cache files just before the server restarts.

     

    Did you ever try to delete everything and restore a backup? I have a lot of customers who know exactly how to do a backup. But they never tried a restore process and recognize that at the time they really need it ,)

  10. Just to clarify: I a NOT the developer of this Linux Port, it' s Devd who had the great idea. I am just trying to mess around a bit here and help to make it more popular ,)

     

    I did not install any Dayz or Epoch server for a long time as I had a Linux root server and did not want to rent another windows machine just for that. Took me a bit until I've found out that there is a version running under Linux. And I really like it so far...so that's the reason.

×
×
  • Create New...