-
Posts
371 -
Joined
-
Last visited
-
Days Won
1
Content Type
Profiles
Forums
Events
Everything posted by galevsky06
-
New MP server - launch DCS with no graphic card
galevsky06 replied to galevsky06's topic in Multiplayer Server Administration
Well, back from the battle.....:) I reinstalled the OS (win server 2008 R1SP2), applied WinUpdates, installed motherboard and i5 drivers: Intel 4600 detected, dxdiag ouput is Direct3D enabled, but neither DirectDraw nor AGP texture. DCS still crashing through both RDP ans UltraVNC. I decided to use TightVNC.... no other change... good !!!! I can launch DCS !!! Yeehaaa !!:v: I still have to validate that autoIT script is working fine from a TightVNC-detached session, and I would become more optimistic.... :P To understand, I am quite sure that Win server 2012 through RDP is OK (I read on msdn that they rewrote remoteFX and enlarge RDP abilities), but 2008 may need TightVNC with no remoteFX (that requires hyper-v features). So, for guys who said that RDP let them launch DCS, could you confirm that it was with 2012 server and not 2008 and not inside VM under hyper-v server ? Anyway, I think that I will try to build up some Virtualbox vdi with DCS powered by win7. I will do my setup.... then convert the .vdi to .vhd and run it on server. -
New MP server - launch DCS with no graphic card
galevsky06 replied to galevsky06's topic in Multiplayer Server Administration
So frustrated,..... I have a big community project but I fail due to this blocking issue ! :wallbash::hmm: -
New MP server - launch DCS with no graphic card
galevsky06 replied to galevsky06's topic in Multiplayer Server Administration
Gimme hope :) So, I just installed a clean DCS World installation. My USER\Saved Games\DCS is empty, but the .\config\autoexec.cfg with my render3D=false. No successful launch. I'll try with VNC, and tell you. -
New MP server - launch DCS with no graphic card
galevsky06 replied to galevsky06's topic in Multiplayer Server Administration
What do you call 'virtual' ? Is the intel HD 4600 into the Core i5 virtual ? It is not a VPS, but a true headless dedicated machine. I read that RDP can use 3D acceleration if remoteFX is enabled. Do you use remoteFX to get the right display driver loaded through RDP ? Thank you, -
New MP server - launch DCS with no graphic card
galevsky06 replied to galevsky06's topic in Multiplayer Server Administration
Nope ! I'll try tonight... thks :thumbup: -
New MP server - launch DCS with no graphic card
galevsky06 replied to galevsky06's topic in Multiplayer Server Administration
I wrote [b] [color=#009900][i]options.graphics.render3D = false [/i][/color][/b] into C:\Users\root\Saved Games\DCS\Config\autoexec.cfg -
New MP server - launch DCS with no graphic card
galevsky06 replied to galevsky06's topic in Multiplayer Server Administration
Please note: I took these pics throughout RDP connection, and I read that RDP uses a software display driver 'RDPDD Chained DD' that brings no 3D support. I also run an update on drivers, nothing found, so is it a issue with RDP only (fix would be remoteFX ? ) ? Is there a driver missing ? I tried to connect with ultra-vnc, same issue..... -
New MP server - launch DCS with no graphic card
galevsky06 replied to galevsky06's topic in Multiplayer Server Administration
I cannot manage to make the onboard intel HD 4600 run with 3D acceleration on. Got to dig in remoteFX deeper. Then, I am gonna look at hyper-v VM instead, to prepare it on my side then push it to prod. -
New MP server - launch DCS with no graphic card
galevsky06 replied to galevsky06's topic in Multiplayer Server Administration
Already done, but still crahsing When executing C:\Program Files\Eagle Dynamics\DCS World\bin\DCS.exe, the crash comes from: C:\Program Files\Eagle Dynamics\DCS World\bin\DXRenderer.dll and when executing C:\Program Files\Eagle Dynamics\DCS World\bin\Launcher.exe, the crash comes from: C:\Program Files\Eagle Dynamics\DCS World\bin\ZweiBlau.dll -
New MP server - launch DCS with no graphic card
galevsky06 replied to galevsky06's topic in Multiplayer Server Administration
I read somewhere that we can go with HD Intel graphics in the i5.... that was wrong ? -
Hi all, I am trying to setup a dedicated server but I am currently stuck with the following issue: I can't start DCS due to the lack of DirectX support (see screenshot). My aim is to to put in place a 24/7 server (Win server 8 R2 SP1, Intel i5 4670K/RAM 16 Go/SSD 120 GO/250Mbps), with automated DCS restart (autoIt script) every hour if no one is connected, server reboot on a week basis, slmod (modified) administration, LoTATC support...... once I will be able to pass the first step :D I know that you answered a hundred times this questions, but I still fail. I am OK with coding/linux sysadmin, but feel like an alien into Windows world :cry:. Thank you for your help !
-
No matter, the original Scripting Engine library is not what we -devs- call a masterpiece to imitate. :smilewink: Ok, let's go ! :smartass: Lua script are interpreted line by line, top to bottom. We could imagine to execute a series of instructions straight-forward, but we will split up the code into different functions for reusable code without duplication. local function itsName(parameterOne, ParameterTwo, ...) theInstructionsContainedInsideTheFunctionInsideUsingParametersIfAny end local: I don't want to explain this part, let's say that it is optional, and don't need it. Good practises require it, but not so important right now. functions may have zero, one, or two, or as many parameters as your function requires. You choose. But please avoid using more than 5, it ruins the code visibility. Also avoid writing too long functions, and split the big one into smaller unitary functions. You have to read the library documentation, there is nothing magic here: From Mist v3.2 pdf: So let's write the function handler, that takes a single parameter in input: function playSoundOnDeath(event) end I am giving sensible names, but it is just for code visibility. If you want, you can choose: function functionOne(paramOne) end but it is stupid for code readability. Now let's see what is the single variable of a world simulator event From Simulator Scripting Engine documentation: So, our function will be called when every event happens, with the input parameter (called event) containing information... all fields are not fillled depending on the event: if it is a BIRTH event, I guess that event.weapon will be empty (an empty field has the null value, or in lua nil). So let's do something on the event that you have chosen: function functionOne(paramOne) if event.id == world.event.S_EVENT_DEAD and event.target ~= nil then -- do something end We check the type event, plus the field target, that cannot be nil since we will use it the line after ! There is different ways to write the same thing in lua: if variable == nil then -- executed only if the variable was null end if variable ~= nil then -- executed only if the variable was NOT null end if variable then -- executed only if the variable was NOT null but in simpler manner end Yep, I want some criteria to filter the units: we may not want that absolutely all units in the game will play the sound at destruction. (human aircrafts, for example). So I decided to base the filter on a naming convention: prefix in the unit name is perfect for that kind of filtering. Look at the function documentation: The function is called with one parameter of type string (means characters), so you can hard-code the file name like: trigger.action.outSound('myFile.wav')Or you can use a variable that contains the string: myFileNameInVariable = 'myFile.wav' trigger.action.outSound(myFileNameInVariable)Let's imagine now that we will use the name of the target destroyed as the file name ! function functionOne(paramOne) if event.id == world.event.S_EVENT_DEAD and event.target ~= nil then trigger.action.outSound(event.target.name..'.wav') end end The file to play will have the name of the unit destroyed plus .wav at the end string1..string2 will concatenate the two string into one: greetings = 'Hello ' sentence = greetings..'Mark !' -- the variable sentence contains now the string 'Hello Mark !' So How did I guessed the event.target.name part ? the event provided in input contains a target field which is a Unit variable, according to the world.event definition. Now let's see what is a Unit ? From Scripting Engine doc: Not both together, pick-up just the one that suits your needs best ! :thumbup: 7-10. end Please read the Mist documentation: it registers the function in parameter (here playSound) as part of the functions to be called to handle events whenever they happen. I cannot teach you the whole thing, but hope it makes you go ahead to read examples/docs and so on :) I let you try to enhance the function ! Tips: the function function trigger.action.outSoundForCoalition(enum coalition.side coalition, string soundFile) -- plays sound file to all players on a specific coalition. exists :thumbup:
-
Better and more generic implementation here below: WARNING: code written on-the-fly, should be tested/debugged, not production-ready. prefix2Sound = { ['a_'] = 'a.wav', ['b_'] = 'b.wav', ['c_'] = 'c.ogg', ['d_'] = 'd.ogg', -- .... as many sound files as you want } function playSound(unitName) for prefix, sound in pairs(prefix2Sound) do if string.match(unitName, '^'..prefix) then trigger.action.outSound(sound) return end end end local function playSoundOnDeath (event) if event.id == world.event.S_EVENT_DEAD and event.target then playSound(event.target.name) end end mist.addEventHandler(playSoundOnDeath) Then assign the sound file that you want to the units death by prefixing their names.
-
Sure, use the more flexible lua scripting instead. With Mist, you can write such things: WARNING: code written on-the-fly, should be tested/debugged, not production-ready. local function playSound (event) if event.id == world.event.S_EVENT_DEAD and event.target then -- only if event is death of any unit targetName = event.target.name if String.match(targetName, 'p_') -- only if destroyed unit name is starting with 'p_' to avoid playing sound for others[i] trigger.action.outSound(targetName..'.wav') [/i]-- play the file ${targetName}.wav if you need to specify a different WAV per unit [i] trigger.action.outSound('my_unique_sound_file.wav') [/i]-- play a unique file for all prefixed units end end end mist.addEventHandler(playSound) Don't forget to prefix the units names with 'p_' into the mission editor.
-
I am in, with Su-27. :)
-
Public inquiry. What is your PC video card?
galevsky06 replied to Chizh's topic in DCS World 1.x (read only)
GTX-680 -
Mist is not used in Ajax script.
-
Yes it is. And IA bugs also happen in other tasks, like escorting. Plan some transporting flight (Il-76), add 3-planes group with escorting task to the Il-76 at first waypoint (take-off from another AB to be sure that there is no issue with Il-76), a few minutes after take-off, and you will face troubles with some units like Mig-23, Mig-29S, etc... (they will orbit at waypoint1) but replace them by Su-27 with no other change, and escorting is completed the way you were expecting it. It has been the case for years now.
-
This is one of the biggest IA issue in DCS. Just create a simple flight plan in-between 2 AB, with a big distance between the 2 last points to let the IA to manage the approach (camsr is wrong, IA is supposed to land in herself). Put several units into the group. Put the AI skill to excellent. Play the mission with Mig-29, they won't land properly. DO NOT CHANGE ANYTHING but the type of aircraft: Su-27. They will do the job. Why is IA different ? :helpsmilie:
-
My God, so complicated....
-
Tutorial: Introduction to Lua scripting
galevsky06 replied to Yurgon's topic in Scripting Tips, Tricks & Issues
test = {'T1', 'T2', 'T3', 'T4', 'T5'} function PickOne() local theFamousIndexUWant2know = math.random(#test) local TestFlag = test[theFamousIndexUWant2know] trigger.action.setUserFlag(TestFlag, true) trigger.action.outText('Selected = ' .. TestFlag .. ', ' .. Total .. ' are remaining', 5) test['' .. TestFlag .. ''] = nil -- remove item at theFamousIndexUWant2know instead end -
I would do that this way: function setFlag(arg) trigger.action.setUserFlag(arg[1], arg[2]) end timer.scheduleFunction(setFlag, { [1] = "55", [2] = true }, timer.getTime() + math.random(600));Then, do your action (AI TASK SET groupname.start) with trigger condition Flag 55 is true in the mission editor.
-
Hum.... lack of sleep ? :dontgetit: Very sorry... I spent the afternoon on it without finding it ! :helpsmilie::D
-
Hello, I cannot find on Hoggit wiki member functions like Unit:getVelocity() and others, where can I find the associated doc ? Many thanks for your help...