Jump to content

VictorFarbau

Member
  • Content Count

    557
  • Joined

  • Last visited

  • Medals

Posts posted by VictorFarbau


  1. Fixed an DIV by 0 bug by just skipping the time from 00:00 to 01:00 AM.

    Also added 2 code lines to accelerate the night time (20h to 3h) by 2x. I mean, nights are ok but not for hours during a mission.

    If this effect is not desired, remove the two lines before "~updateinterval" completely and it will run with a constant speed.

    Fixed MPtimeserver.sqs

    <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE"># Accelerated Time Server build 004, (c) 2007 Victor Farbau

    # Map objects needed: game logic called "Server"

    # servertime = continuous count of time in seconds (00:00 is skipped, too much workaround otherwise)

    # accel = acceleration factor (1h in 24h = accel 24)

    # _hourlist holds an array of scenic starting hours, could also be set to a fix value if desired

    # VFserverhours, VFservermin are public variables that contain the server time

    ?!(local Server): exit

    _accel = 6

    _updateinterval = 2

    _hourlist = [4,5,6,7,12,17,18,19]

    _hourcount = (count _hourlist) - 1

    _servertime = (_hourlist select (random _hourcount)) * 3600

    _taccel = _accel

    #tempusfugit

    _servertime = _servertime + (_updateinterval * _taccel)

    ?(_servertime < 3600): _servertime = 3601

    VFserverhours = floor(_servertime / 3600)

    VFservermin = floor((_servertime MOD 3600) / 60)

    publicVariable "VFserverhours"

    publicVariable "VFservermin"

    ?((VFserverhours > 20) OR (VFserverhours < 3)) : _taccel = _accel * 2

    ?((VFserverhours > 3) AND (VFserverhours < 20)) : _taccel = _accel

    ~_updateinterval

    goto "tempusfugit"

    MPtimeclient.sqs remains identical.

    Cheers,

    Victor


  2. This might help those of you who feel they suffer performance degradation and weird texture issues (probably not related to the GF8800 problems, this seems to be a special baby).

    http://www.nonatainment.de/web/Default.aspx?tabid=62

    Have a look at this tool; it reports how much video memory your card has left (works for mine, only 256MB tounge2.gif ). I had constant LOD problems and texture flickering until I used this tool during the game and saw it that used ~98% of my video memory (with my settings). I lowered the quality of certain aspects (texture quality etc) until I was down to roughly 20% VidMem left - since then no missing textures,flickering and performance issues anymore.

    Maybe there's some false expectations as to what the engine can do with limited video memory. Like for the GF6600 which has a nice GPU but often comes with 128MB of DDR3 RAM. Well just forget it then, the game won't run in 1280x1024 in full details. The first step in troubleshooting should be to adapt the settings to the available Video Memory. Hope this tool helps setting these things correctly - it did for me.

    Have a try,

    Victor


  3. Yet another "OH MY GOD ARMA IS NOT PERFECT" thread. Can a moderator maybe just close or move this?

    I think really all possible views from "BI lover" to "customer from hell" have been exchanged.

    Yes, I am selfish but I don't want to see interesting threads being pushed down just because another bozo opened the next complaints thread. Either you submit error reports or bugs with facts and reasonably skilled testing procedures being done or you are allowed to remain silent and wait for the next patch.

    Cheers,

    Victor


  4. Blanco, the funny thing is that I tried your mission but then removed the EVF script from the vehicle - and my soldiers would still cease fire after the killed the two drivers anyway smile_o.gif No obsessed and crazy firing at an emtpy vehicle.

    EDIT: my test mission was to drive in a HMMWV and place a BRDM not too far away. Then fire a few rounds at the BRDM and run away. Then watch how the BRDM would fire at the HMMWV until explosion, no matter what. I even placed an east driver into the HMMWV but they still would not stop shooting. As I say, mindless obsession smile_o.gif

    Victor


  5. Indeed a bit annoying, I have observed this a lot in ArmA as well. When we get attacked in a jeep for example we just jump out and dash off to some covered positions before firing back.

    But it happens that the enemy still only concentrates on the vehicle alone. We had such a situation last week - after a while we just went on running torwards our next waypoint. 5 minutes later we could still hear the enemy troops firing at our jeep in the distance rofl.gif

    I will add a little script to my vehicles for this now. When empty, make it neutral to the enemy; when manned, leave this to the enemy to decide. That should do the trick.

    As SQS:

    ?(count crew this == 0): this setCaptive true

    ?(count crew this >0): this setCaptive false

    Or as SQF:

    IF (count crew this == 0) THEN {this setCaptive true} ELSE {this setCaptive false};

    Regards,

    Victor


  6. That's a good idea MadRussian. Even though you could realize a limited spawn concept by adding a limited number of new team members though time.

    Plus, and this is more serious, I noticed that the newly spawned soldiers seem to be unaware of objects around them. After I spawned into a lightly armed soldier I could not pick up any weapon from other dead soldier lying around. Nor could I enter any vehicle. They rather seemed to be physical obstacles without any functionality.

    Not nagging around, but I think this feature is not what I want. Maybe I'll just buy a 2nd license for our team and place a civilian in some house just to keep the server alive. That sounds like a much more appealing concept to me.

    Regards,

    Victor


  7. Thanks Suma, that explains. I have used "instant" and it worked instantly biggrin_o.gif

    Too bad though it doesn't really fit the needs for my mission (commando style, infiltration, objectives, extraction); endless respawn is not an option for our team. I thought the server could basically "freeze" the complete setup incl all variables and AI etc. Just as if somebody else would stay logged in.

    Regards,

    Victor


  8. Nope, that doesn't work here. The config is there and correct, but the mission would never continue. I thought it's maybe my mission but some other default ones would behave the same.

    When I press ESC and choose to abort the game as a client I receive a warning that I will be bounced back to the lobby. I soon as I do that (being the only client) I can see the server closing the mission. That's somehow not the point.

    So I repeat my question: has anybody seen this working? Apart from the theoretical settings that we apparently know about.

    Regards,

    Victor


  9. Add it to the config like what? This is how my short server config looks like:

    <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

    passwordAdmin = "xxx"; // Admin password

    password = "xxx";

    disableVoN=0;

    persistent=1;

    class Missions // list of missions that will be played in cyclic order

    {

    };

    Is that what you meant? Does this work for you?

    Regards,

    Victor


  10. The server identifies as 1.05, so that's fine. And this is how I call my server currently through a batch file.

    ArmA_Server.exe -config=sample.cfg -port=2302 -persistent=1

    I also tried to add "persistent = 1;" into the sample config file which doesn't work either. Tried as user and admin, all the same. As soon as the last player leaves, the mission ends.

    Quote[/b] ]it still showing playing and which mission was on.

    Probably sbd is lying dead on his keyboard with Arma still running and nobody noticed yet tounge2.gif

    Victor


  11. After I was all enthusiastic about the newly announced persistent feature which was supposed to be available as of patch 1.05 I now wonder: is this working at all?

    I do start my dedi server with the -persistent=1 parameter but the behaviour is unchanged - as soon as all players leave the mission closes.

    Has anybody gotten this to work? Is it enabled at all?

    Victor


  12. Actually, now that patch 1.05 is out and my dedi server has been updated to that: the "persistent = 1" parameter seems to have no effect. After I leave the server still closes the mission.

    Is there anything known about the parameter or maybe requirements for the server to run in this mode? As usual documentation is not available as it seems.

    Cheers,

    Joerg


  13. I found the error. The position of "mytimeobject" was not distributed in an MP environment anymore.

    Just guessing, but maybe these are optimizations to the netcode and only certain object classes positions are getting updated through netcode now.

    Either way, I went back to global (public) variables and this works fine again. Let me know if you see any more errors with that.

    Victor

    PS: Your request to convert this to SQF. It doesn't make sense for this particular piece of code in my mind. First it runs as a single instance (precompiled SQF is good if you spawn the same script a lot of times) and secondly SQF runs synchronously (caller has to wait for script to end) which means you would need more code only to call it correctly. Nah, useless here.

    Timeserver.sqs

    <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE"># Accelerated Time Server build 002, (c) 2007 Victor Farbau

    # Map objects needed: game logic called "Server"

    # servertime = continuous count of time in seconds

    # accel = acceleration factor (1h in 24h = accel 24)

    # _hourlist holds an array of scenic starting hours, could also be set to a fix value if desired

    # VFserverhours, VFservermin are public variables that contain the server time

    ?!(local Server): exit

    _hourlist = [4,5,6,7,12,17,18,19]

    _hourcount = (count _hourlist) - 1

    _servertime = (_hourlist select (random _hourcount)) * 3600

    _accel = 4

    _updateinterval = 2

    #tempusfugit

    _servertime = _servertime + (_updateinterval * _accel)

    VFserverhours = floor(_servertime / 3600)

    VFservermin = floor((_servertime MOD 3600) / 60)

    publicVariable "VFserverhours"

    publicVariable "VFservermin"

    ~_updateinterval

    goto "tempusfugit"

    timeclient.sqs

    <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE"># Accelerated Time Client build 002, (c) 2007 Victor Farbau

    # If this runs on a dedicated server then quit now

    ?(player != player): exit

    # Init global variables locally to avoid undefined values being used; then wait 5 more sec for server

    VFserverhours = 1

    VFservermin = 1

    ~5

    #tempusfugit

    ~2

    _localhours = floor daytime

    _localmin = 60 * (daytime MOD (floor daytime))

    skipTime (VFserverhours - _localhours)

    skipTime ((VFservermin - _localmin) / 60)

    goto "tempusfugit"


  14. I noticed that I did not trigger a script in one of my missions while driving through the triggerzone with one of the new motorcycles (M1030, TT650).

    I did a quick test with the "nearestObjects" function and saw that the bikes are not listed in there huh.gif

    I looked at the config.cpp of the bikes and they are config class "Car" so the below example should work, right? Config bug?

    <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

    _xlist = nearestObjects [getpos player, ["Car","Tank", "Man"], 100];

    1. Me and a motorcycle on the map:

    _xlist = [WEST 1-1-A:1 (Victor)]

    2. Me sitting on the same motorcycle:

    _xlist = []

    3. Me, a Skoda and a motorcycle:

    [WEST 1-1-A:1 (Victor),12c3e804# 5168: skodovka_blue.p3d]

    The odd thing is that the enemy AI can still detect the player and will start firing at him. But I am invisible to the script function "nearestObjects".

    Regards,

    Victor


  15. I had thoughts about this, too  whistle.gif

    1. We need compact offline documentation such as is available for every other programming language. End of story.

    2. I think this is a good example of excellent engineering going to waste due to no efforts to document properly.

    If Crashdome is right and even the relevant team within BIS don't have a real in-depth documentation then this is serious. Maybe they don't have such a high attrition rate yet; but once they do they will start spending more and more time on learning again what the older generation just had present from the top of their minds. The old story: while the mastermind approach is by far more compelling and a lot faster the documentation approach is more longlasting and succesful.

    3. BIS has a unique scripting system and should be proud of it - at least I have never seen such a complex system of scripting and addon possibilities in any other game before. I really love it. What cracks me up is the amount of effort being put in from BIS to make this work but then present it in such a "hands off" manner (like leaving it to the community to find out how things really interact and work, add documentation etc).

    3. Some really helpful documentation for beginners is only in german at this time and has turned into a commercial project. Nothing wrong with earning money for books - but it just looks awkward to me that BIS rather piggy-backs on an individual effort instead of providing this themselves.

    4. I don't think the typical newbie can relate to this approach and when he ends up in these forums and vents some frustration he gets his fingers slapped by the old dogs hanging out here for years. I think it would do a lot of good if BIS would announce a new community manager ASAP who manages communication and maybe organizes meetings to set up some tools and processes that really meet the communities needs.

    It's of course all easy to say and judge from the outside if you don't have inside knowledge about the schedules and (probably tight) resources available. But that's the same in each company I guess biggrin_o.gif

    Regards,

    Victor


  16. I don't know if anybody else had this problem or if it is a known fact but this is something that drove me nuts ever since OFP.

    When playing missions (both SP and MP) it could sometimes happen that after the player got killed he would spawn into a new soldier and become group leader but the group would not follow him anymore. All attempts to get people to follow or back in formation would result in commands such as "All, follow all!" or "All follow 9!" or similar.

    Yesterday I found a solution that worked for me. I noticed that it happened while the deceased leader had given a "Get In" command shortly before he died. When I spawned into the new soldier I became group leader but with a little "GET IN" sign over my icon - and the "all follow all" effect.

    I then used the radio to reply "Done" (Radio-0-1) and all of a sudden the icon was gone and the group started following me again  thumbs-up.gif

    I would have never crossed my mind that a soldier can so easily sneak out of an order (in ArmA engine terms) by just replying "Done".

    Just wanted to share this in case somebody searches the forums or has this problem now and then.

    Regards,

    Victor


  17. Hm, most of the discussion I see is what type of mission everybody would prefer to run on a continuously running server.

    The original idea was to think about requirements for mission makers when thinking about long-term missions which is a new thing for most of us. So feel free to add any ideas or concerns that come to your mind. I know this is more of a theoretical excercise; just thought it could be useful.

    Regards,

    Victor


  18. Heatseeker,

    good point indeed. I admit that I only had "Coop" in mind. This way you could control the enemy side much easier if you set a scene in which they just control and defend the whole island for example.

    I am not much into CTF and Sector control missions, here I want to explore a long-term war mission (well, long term, talking about days here).

    Victor


  19. Espectro, this was not my intention. To keep the server alive and equip soldiers won't be a big issue anymore once the server can run continuously.

    My idea here was more to define the requirements to keep the environment alive and realistically reflect changes through time. Also a supply system is needed.

    To have combat groups sitting in bases, run out from time to time to fight and then return home is neither fun nor realistic in my mind. I want infantry, tank groups and SpecOp groups to be out and about all over the place with a fair chance to be on their own for days, cut off from supplies, and be able to meet with other groups to form new battlegroups and get back into the game. So the real madness of war. Tecnically it should be possible. Just a lot of things to think about.

    Cheers,

    Victor


  20. Hello,

    I just wanted to stimulate some brainstorming about the upcoming "Persitant = 1" feature of the 1.05. In my understanding this will enable a dedicated server to continue running a mission even after all human players left. So theoretically any player can resume at any time to continue the mission and influence the environment.

    I must say that I am very excited about this feature and I want to make sure to use its potential.

    While I was thinking of making my first big battlefield mission (which is work-in-progress) compatible to that concept I already had some ideas what to look out for. I don't want to return to my private war at day 5 only to find out that everybody else ran out of ammo, has no gasoline or bleeded and starved to death. biggrin_o.gif

    Anybody interested in throwing in their concerns and ideas? I will maintain a list of items in this very first post then.

    Vehicles

    1. AI vehicles driving / flying around will run out of gasoline after a while. Need some smart scripting to either refuel them per script (lame), have them refuelled by supply trucks (better) or have them find and use gas stations (best).

    2. Same as 1. but for Ammo!

    Human players

    1. If a continuous war scenario is required there need to be sufficient playable soldiers available. Think about respawning them to battlegroups at given positions in time.

    2. Human players will need medics and ammo at a higher rate than in typical missions now. Think about how to make these available (EvacHelis, Ammo chaches etc).

    AI players

    1. Make sure they can get Ammo and medical treatment as well.

    Battlefield organisation

    1. Nowadays battlegroups often just appear somewhere on the map. When thinking of a more realistic approach this could include proper deployment strategies of enemy units using Heli insertion, moving out from barracks etc.

    2. Resource / capacity planning. Nobody has endless supplies so attacking vital supply routes or warehouses for example should show an effect. Which would need a proper supply management to be in place in the first place. Same for both sides.


  21. SNKMAN, just be advised that the init.sqs script is launched right after the mission is loaded (which means it already runs during briefing). This can have undesireable effects at times - for example when accessing objects that are only initialized after the mission begins.

    What I generally do is to set a trigger around the player on the map that is set off by anyone which launches a "runscripts.sqs" which has all the launch commands in it. This way I make sure my scripts are only being started once the mission really begins.

    The runscripts.sqs could look like this:

    <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

    this exec "MPtimserver.sqs

    this exec "MPtimeclient.sqs"

    exit

    Since neither script exepects any parameter it doesn't really matter if you launch them with "this" or "[]".

    Regards,

    Victor


  22. I must say I didn't like the scripts I saw so far tounge2.gif It's good work and appreciated, sure, but to me it all looks a bit lengthy and clumsy. So I decided to throw a new script into the ring which I claim is the shortest fully MP compatible time sync script. Nothing wrong with a bit of competition, right? smile_o.gif Just having fun.

    Instructions for a test:

    1. Create a new mission that contains a player, an "H (invisible)" object called "mytimeobject" and of course a logic object called "Server" (as usual for MP missions).

    2. Call both scripts "MPtimeserver.sqs", "MPtimeclient.sqs"

    3. Watch the dawn

    The server script maintains an absolute hour:minute time format, all clients will synchronize to the exact server time, whether this means in- oder decreasing the current localtime by the necessary values.

    MPtimeserver.sqs

    <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE"># _servertime = continuous count of time in minutes, starts at 05:00h in this example

    # _accel = acceleration factor (1h in 24h = accel 24)

    ?!(local Server): exit

    _servertime = 5 * 3600

    _accel = 24

    _updateinterval = 1

    mytimeobject setpos [0,0,0]

    #tempusfugit

    ~_updateinterval

    _servertime = _servertime + (_updateinterval * _accel)

    _abshours = floor(_servertime / 3600)

    _absmin = floor((_servertime MOD 3600) / 60)

    mytimeobject setpos [_abshours,_absmin,0]

    goto "tempusfugit"

    MPtimeclient.sqs

    <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE"># Time client script

    _serverhours = 0

    _servermin = 0

    #tempusfugit

    ~2

    _localhours = floor daytime

    _localmin = 60 * (daytime MOD (floor daytime))

    _serverhours = (getpos mytimeobject) select 0

    _servermin = (getpos mytimeobject) select 1

    skipTime (_serverhours - _localhours)

    skipTime ((_servermin - _localmin) / 60)

    goto "tempusfugit"

    Regards,

    Victor

×