Jump to content

RimBlock

Member
  • Content Count

    1140
  • Joined

  • Last visited

  • Days Won

    3

Everything posted by RimBlock

  1. Sure but you would have to rework it a bit. The code above is more of a framework but you can do a lot of other things with it. It is quite simple to understand with a bit of checking back at the BIS Wiki for what the commands do. Update: You could take a look at my Ring of Death on my Git and by mixing and matching both you could come out with something you want. Yust make the monster a player instead (search for a player with a specific stream id for example).
  2. Would agree. The key error seems to be Error Undefined variable in expression: dze_aplotforlife To be fair, whilst the install instructions do say *** Turn on options *** Turn on A plot for Life (check ownership against SteamID). DZE_APlotforLife = true; They do not say where. Put the options lines in the init.sqf file in the mpmissions\[mapname]\ folder or add them to the variables.sqf file. I will amend the instructions when I get a chance this week,
  3. When working on something like this I tend to step back and put down some design goals, needs, nice to haves and don't cares. For this, off the top of my head, I would put down... Goal: Increase FPS via better wild zombie safe zone protection method. Needs: Remove zombies in / at the trader marker. Nice to haves: Fairly quick removal. Don't cares: Instant removal, any zombies not near the trader zones, anything at trader zones when players are not around. So from that and our knowledge of Epoch / DayZ we know we do not need to check that often and we only need to check zombies in the vicinity of the trader cities as other zombies are unlikely to be able to move so fast. To this end I would setup a tracking zone (lets call it the amberZone) where we want to track the zombies. There would also be a redZone for zombie removal and a greenZone for "Don't care" level zombies. Large arrays can be slow so multiple arrays (one for each zone) would be prefered. We can then build some rules / actions (not a fully comprehensive list); We need to track amberZone zombies more often than greenZone zombies. We need an amberZone marker (invisible) for each trader city. We need to record wild zombie agents and their positions. I would put all wild zombies spawned in to one of the 'Zone' arrays based on their location when spawned. Have a process running every 15 minutes checking position of zombies in greenZone and 2-5 minutes (fine tune based on zombie speed) checking position of zombies in amberZone. The theory is that you are checking a smaller number of targetted objects (wild zombies) much more infrequently thus reducing server load. Raymix has suggested the code to sort the zombies in to the zone arrays on completion. Possible enhancements As the checks are not so time sensitive, you could slow the scripts down and put a uisleep to put a pause of 0.001 or something between each zombie check. The script will take longer to complete but will not be fighting so hard for resources. Just need to make sure the script completed before another cycle is due to complete or build in a system to check to see if it is already running before kicking of another instance. 'On demand' checks based on clients positions. If the client is xx mtrs from the trader safezone then send a PVS to start the anit-zombie safezone check. Server receives the PVS and kicks off the safe zone anti zombie script and adds the client to a list of clients in the area of the safe zone. The server runs the script until the list of clients is empty and then stops. Clients are removed via the client sending a PVS when they leave the safezone. This means the scripts only run when there are clients in the arear near the safe zone (again fine tune the range). There is a little more PVS traffic but... with some throttling check to make sure no-one looks to abuse it and swamp the server buy finding the threshold and jumping in and out, it should be fine. We will likely be implementing something like these 'On demand'' checks in Dominion as the 'always on' checks are really quite wasteful on CPU cycles.
  4. You cannot use anything from the DayZ mod files in anything but ArmA 2. This includes models, skins, FSM and sqf code, animations, everything. You can use models, code, textures etc from A2 OA / BAF / ACR / PMC / A2 in ArmA 3 though. You would have to write the FSM / SQF code from scratch, build the animations and create the textures. You would then have to tune it so it does not kill the server or client and improve on the original DayZ zombies. It is a very big job, especially for one person which is one reason why a single person, to my knowledge, has really taken the task on. The Breaking Point team had a bash at it with debatable results. I am sure there would be a lot of people out there who would be extremely happy if you pulled it off though.
  5. Why not leverage object_speak.sqf already used for playing sounds in A2 Epoch. It will accept _unit _type _chance _dis (distance) and is called with (for example) [player,"tentpack",0,false] call dayz_zombieSpeak; If you have a process running on the server which 'selects' a player then it can calls it with a 100% chance. If any units in range are non local (to the server) it will fire a RE: to play the sound on the other players clients so everyone in the area gets the sound. Now, _unit need not be an actual player but could be some coords [x,y,z] so the sound could be played to anyone in range of a specific place. Wolf howl in the center of a dark forest, for example, for anyone close to hear. Detail on the RE (Remote Execution) framework can also be found here if you are interested. If the mechanisum is already there, why not use it.
  6. ...and gazing in to my crystal ball..... One person pays $1, seeds as a torrent. Everyone else gets for free...
  7. Also check your client and server log files. Make sure you have no "not found" errors (they can be hard to spot). If you are ending up with a blank screen it is quite likely the server_monitor.sqf is falling over and it can be due to code (unlikely if it was working on another servers) or because the data the hive is sending is in an incorrect format and it cannot deal with it. As UKMartin suggests, check all teh object in the object_data table have their worldspace variables in the order he posted above. Only one object incorrectly saved could cause the issue. It would usually produce an error though so search the log for ".sqf" and see what comes out.
  8. Interesting read in the ref. Have you found anything newer along the same lines as that discussion was from May 2013 (A3 Alpha). More interested in the security TBH. The thread also seems to be aimed more at transfering the code to the client via PV or if the code is in the MPMissions folder. Posts 27 and 28 from that thread sum it up nicely from my point of view...
  9. . WOuld be nice for a macro to to replace the indents as well though. What people really need is for the instructions to be written in a brief guide and sticky'd to the A3 Epoch mods forum where people can easily find it rather than at the tail end of a thread that is likely to fade in to the mists of obscurity over time. This would require the forum mods action to complete which means, more likely than not, would require the dev teams approval which is a good indicator on whether the Dev team actually want the code to be easily accessable to the modding community. We shall see. Alternatively the Dev team could provide copies of the code which is more human friendly as an alternative download for modders. The majority with no interest in modding can take the 'smaller' package and the modders, and the mod-curious, could take the bigger human readable version. If, however, the Dev team would rather the community was not easily able to read through their code, possibly for good reasons, then clearly stating so here would clear up some missconceptions and make their position fully clear. Stickying that statement in the A3 Mod forum will also help to reduce future missconceptions. Keeping quiet and doing nothing really does not help either way :) .
  10. I an see some benefit for reducing bandwidth used from the servers you are providing the Epoch downloads from. This is something that most would not consider and will be another cost to the Dev team if you don't have it hosted on an unlimited bandwidth plan. From the client side, the one time download saving a few K is probably less worth it. The problem seems to be that by using this techneque you are effectively locking out the 'hobby' modders who just come and browse some code and fancy having a play and learning. More experienced coders will, of course, be able to reformat the code in to a more human friendly workable format. Relying on the more die hard coders for modding, I would suggest, may not be the best direction. How about providing instructions for easily reformatting the code for people who want to take a look and get in to modding along with the download. This way you save the bandwidth and still enable the 'Hobby' modders the ability to have a look and possibly contribute ?. SHould be pretty trivial for someone with your experience to quickly put together a one pager. This is, of course, if you wish to allow people the ability to provide mods for this code set. Agreed. If the code was constantly downloaded everytime someone joined a server etc then maybe it would be worth it from a player / server owners point of view. I read somewhere that [space] and <CR> etc do not slow the code down. Presumabily the compiler removes them on load. If I come across the link I will post it up but it was from somewhere like the BIS Wiki of KillZone Kids site. Of course, if anyone has any evidence to the contrary then that would also be very interesting.
  11. Had a play for the day with it over last weekend. It very much feels like more of a Photoshop level of editor than a Lightroom level. Of course the downside is the learning curve but the videos help. There seemed to be a few bugs with the sqf export code but they were easily fixed (missing } and ; in one or two places). Need to be careful not to use the X-Cam obects so as not to create a dependancy on having to include X-Cam with the map but most translate to ARMA 3 objects easily enough or you can choose not to generate them on first run. Makes 'dressing' the map and more importantly, exporting the results much easier although it is still quite a task that takes a lot of time. I now need to go through the tutorials so I can start to leverage the more advanced features as that will speed stuff up greatly. Highly recommended editor.
  12. Unfortunately not. I don't currently run a server and have enough issues getting my own code to work without trying to integrate it with others ;) . I have also stepped away from A2 Epoch for the time being and have jumped with both feet in to A3 and building a completely new mod from scratch with another modder from here. Steep learning curve but we are finding a lot of good stuff. I do try to help others here now and then when I have some spare time but digging in to other modders code is a bit too involved to be a quick job.
  13. Next, I started building a bunch of stuff that could be upgraded. The following is what was added to my database: I then went through and upgraded all of the objects to include upgrading the MetalFloors to elevator/elevator stops and as I upgraded each, that object was removed from the database. When I was finished upgrading, the only object left in the database was the plot pole. I also received the following information in the server report and client report respectively: The _safety error also being spammed in my server report from this point on. I am pretty curtain the sphere10cm_ep1.p3d error is related to the client error received when removing the dome in plotManagement In game, however, the upgraded models are being displayed as if the upgrade was successful. The first chunk of code you pasted with pp_Marks is not mine. Mine shows a ring of road cones in v2.5 not a dome. In the version for Epoch v1.0.6 I was working on I did put in a dome but it is not released. The code for showing and removing the plot poles in A Plot for Life v2.5 is contained in the two sqf files object_showPlotRadius.sqf and object_removePlotRadius.sqf. The one you are referencing is from the Plot Management mod. You will need to post on that thread to try and get the issue resolved. The db extract shows the A Plot for Life code is saving the objects to the DB correctly using Precise Building and saving the SteamID of the builder. The next chunk of logs shows an error in server_checkHackers. This also has nothing to do with A Plot for Life. You are right, the nonetwork boject sphere is related to the implementation of the plot boundary in Zupas mod. I has it too when doing the update for Epoch 1.0.6 and found a way to program around the issue. The code is on my git if anyone wishes to take a look. It is, however, not perfect and creates a couple of extra spheres :) . I have not gone back to sort it out yet as Epoch v1.0.6 seems to be a never released version going on past and now current experience. The other error seems to be with the Elevator script. All these issues seem to be with with others scripts that have not been updated to work with A Plot for Life v2.5 (i.e. Plot Management) or that have not been integrated correctly. I suggest you post on the other peoples threads as well and also see if anyone here has the same sort of issues you have seen and can offer a solution for you. I do not use any of those scripts so if the error is not with my A Plot for Life code then I am not of much help to you.
  14. How much space are you saving ?.
  15. Ok so there are lots of errors concerning objects and their configs (cars missing various defs etc) which is causing a lot of spam. The error you are getting is in the function that generates the UID for a new object. What is calling that function I cannot tell. Did you try to build or upgrade something after the server start ?. It would also be helpful to see the data in your DB for a plot pole and one building item so I can verify the right info is being stored in the right place. Please not that A Plot for Life is build for vanilla Epoch and so if other mods are playing around with things like the DB worldspace field it may not be accounted for. It may also be worth noting that, unless anything changed recently, plot management has not been updated to work with A Plot for Life v2.5 which is why I still have a link to v2.35. If you are ok merging without having to follow the Plot Management instructions line by line then A Plot for Live v2.5 is better ;) .
  16. I would suggest clearing your log file (creating a new one), starting your server and doing whatever you are doing to get any errors and then shutting down the server. Take that log file and then either post it here (in spoiler tages as I see you have been doing for the other files ou posted :) ) or put it on pastebin and link to it. The errors are unlikely to be a single error in the log file that is causing all these issues. We really need a full view of the issues the server is complaining about. Would be good to do that with both the server and the client log files. I suspect that there will be multiple errors in both (just going on previous experience ;) ).
  17. Anyone got the link for this info about DayZ SA being opened up for modding please :D . The devs stated easly on that they didn't like the idea of zombies but the fact is that zombies are still very popular regardless of what some commentators say. The challenge is to do them well without killing the server trying to manage them. Then there is also the debate on slow (Walking dead) zombies vs fast (28 Days Later) Infected. Anyhow, unlikely to be zombies in Epoch unless the devs decide to make a radical change in direction. Anyone who has followed Epoch will know that is extrememly unlikely. Just waiting for
  18. Have rewritten it for you (untested and probably has a few errors). Will cover some of the changes below. if (isDedicated) exitWith {}; //#define _debug true //UNCOMMENT TO RUN DEBUG, WILL SHOW TIME TAKEN AND ANY LOSS OF FRAMES #define _refresh 0.34 #define _distance 300 #define _blank " " // =========================================================== // Presumption that this should only be against other players. // =========================================================== while{true}do{ if !(isNil "_debug") then { _initTime = diag_tickTime; _frameNo = diag_frameNo; }; // PLAYER NAME CHECK AND DISPLAY _target = cursorTarget; _isTargetPlayer = (isPlayer _target); _isPlayerInVehicle = (Player = vehicle Player); if ((_isTargetPlayer) && {_isPlayerInVehicle}) then{ if(((side _target) == (side player)) && {((player distance _target) < _distance)})then{ _targetName = name _target; _targetRank = [_target,"displayNameShort"] call BIS_fnc_rankParams; _targetWeaponName = (weaponstate _target) select 0; _targetWeaponClass = (weaponstate _target) select 1; _targetWeaponPic = getText (configFile >> "CfgWeapons" >> _targetWeaponClass >> "picture"); // PRINT THE RANK/NAME/WEAPON ONSCREEN //_nameString = format ["<t size='0.6' color='#1c75e4'>%1</t><br/>",_targetName]; _nameString = format ["Name: %1, Rank: %2, Weapon [%3]: %3",_targetName, _targetRank, _targetWeaponPic, _targetWeaponName]; [_nameString,0.5,0.9,_refresh,0,0,3] spawn bis_fnc_dynamicText; }; if !(isNil "_debug") then { // only display if target isMan. player sidechat format["time: %1, frames: %2",_initTime - diag_tickTime,_frameNo - diag_frameNo]; }; }; uiSleep _refresh; }; #IFDEF is fine but quite old Skool ;) . isNil works just as well. If statements seemed to have a number of brackets missing and if you have the 2nd and subsequent condition evaluations wrapped in {} then it uses lazy evaluation. I personally prefer to get values and then test conditions separately as if statements can sometime be a bit funny if the evaluations are running commands. Playerside returns the players initial side when the mission started which can change over the course of the mission. Side player give the current player side. WeaponState provides an array fo the current weapon. Have grouped the info gathering together (get name, get rank, get weapon info) more for readibility. Debug only reports to sidechat only if a player is in the crosshairs and not for every object. This only reports for players and not for AI (not sure if that is what you wanted). Not sure why you were defining _nameString twice, removed one definition as it was being overwritten later anyway. Changed sleep to UISleep which is more accurate. I have commented out the formatting for differnet colours / styles and you can add them back in as desired. I have rewritten the line to define nameString as you didn't include the rank of weapon name originally. Some commands may not work remotely (i.e. if your client is not the owner of the object you are running the command against). In the BIS Wiki a lot of the commands show if they need to be run agains local or global objects and if the effect is local or global. Not all of the commands have this info though including weaponState (or weapons for that matter). Not sure if you can add a weapon pic to a text line as have no experience of trying to do so. The code above is meant to provide a starting point for you to build on. I will be happy to provide direction on errors and alternative commands but will not be writing, debugging and providing a fully working custom script (well, anymore than I may have already above). Very busy on writing the A3 total conversion I am doing and don't really have much more spare time. Also, people program in different ways and styles depending on what that particular through process makes easier for them. The changes above are mainly suggestions and advice meant to help and not intended as criticism. Everyone starts somewhere and luckily the community here, for the most part, is pretty supportive of new scripters :) .
  19. The difference between item and object is not a matter of semantics but rather one of terminology. For the Arma engine they are two different things. Items are things like drinks cans, ammo mag, guns, other items that a player may put in their inventory. These items are not usually saved to the DB unless they are stored I side something. Items are not referencable by the Arma engine individually and cannot have variables attached to them (ie, ownership information, damage information). Objects are Arma world items that are given an object reference by the game engine. These include vehicles, built Epoch buildables, other sqf / sqm file added map content (for the most part). They can be referenced individually and can have variables attached to them. As they are two different classes of items in Arma, it was leading to confusion. Items are not usually persistent unless I an inventory space, objects are. Ok, so to answer your question... Both yourself and UK Martin have got the right items. Server_updateObject.sqf is the server side call that updates the DB object (via a hiveext call) and the PVDZE_veh_Update is the client side public variable sent via publicvariableserver, with the required info, to the server to tell the server to run the object update script. THe other area of confusion is the difference between hitpoints and damage. These are two distinct items. Hitpoints denote where on the object damage has occured and is helpful for denoting a tyre is badly damages or a rotor assembly will cause problems with trying to fly a helicopter. Damage is the overall damage of the object. The valid range for damage is between 0 and 1. When this is 1 then the object is considered destroyed. Hitpoints can be empty whatever damage is set to. Epoch buildables also do not use the hitpoints field (in vanilla Epoch at least).
  20. I believe that the player without identiy is where the server is getting info from Steam about the player connecting (ie. the SteamID). The initial connection takes longer so you get more lines to that effect. I have had it where I cannot login to my dev server due to this and then trying again a few hours later and it is all working fine. Epoch requires some info from Steam and cannot continue the loading process without it, hence the black screen. The possibility that Steam is overloaded or having issues responding (or there is issues with your server providers network etc) appears to be something that has not been accounted for in the player login code.
  21. Take another look at your log file. These lines are most probably the issue. 19:06:42 Warning Message: Script custom\compile\KK_Functions.sqf not found 19:06:42 Warning Message: Script custom\compile\server_updateObject.sqf not found 19:06:42 Warning Message: Script custom\compile\server_publishObject.sqf not found 19:06:42 Warning Message: Script custom\compile\server_swapObject.sqf not found
  22. Sure, understood. Does the Cloud version have free branch permissioning (ie. giving access for different branches to different people within the same Git) ?.
  23. Interesting blog post here about different Git flavors and one companies actual experiences. The post is a couple of years old now though. I like the idea of protected branches very much but not of having to manage reqular Git updates.
×
×
  • Create New...