![]() |
(Semi) Dynamic Campaign: JG 51
See the thread on Airwarfare.com.
Just out of curiosity, can anybody guess how many lines of code this took? Download Link. |
The code is small, so they can't have too many lines :P
Can we have a look at the whole solution, please? It would be a great help for the other willing modders (including me). |
The code for the dynamic mission is compiled within the JG51_Mission.dll. It has about 625 lines of code (without comments).
|
Quote:
|
Just tried the 2 first missions. Getting "you died" no matter what the outcome. Shot down 2 hurries and landed in the second mission. Kills not counted for and status dead.
Does one have to re-play the mission if the status was dead when exiting mission?.... mission 3 was the same as mission 2 for me. Could be that the dead status does this? Also, please move the campaign from main menu to the campaign section?... it's cluttering up the main menu imho. Other than that this has good potential. Great work :) |
same happened to me too, get the "You've died message" no matter the mission's outcome, and the 3rd mission is exactly the same a mission 2 (the patrol one against 2 hurris).
|
I tried increasing the minimum and maximum number of planes but it seems to affect only friendly planes. Is this correct?
|
Can you guys post the error messages you're getting in your logs? I can't seem to duplicate the problem.
Quote:
|
Quote:
|
Quote:
|
Quote:
Here's some of the log: ------------ BEGIN log session ------------- Loading mission ... ================================================= System.Exception: (0,0): error CS0006: Metadata file 'PARTS/DYNAMICCAMPAIGN/JG51_MISSION.DLL' could not be found at xQOt3lDxHCKGfeHhoXG.nJNIchD1R4RKjSh4lUn.My577M09gx c(String , Boolean , Boolean ) at xQOt3lDxHCKGfeHhoXG.nJNIchD1R4RKjSh4lUn.9XmBbrMFV7 9Tsq2ilpe2(Object , Boolean , Boolean ) at xQOt3lDxHCKGfeHhoXG.nJNIchD1R4RKjSh4lUn.nbX77R2S1p 9(String ) at xQOt3lDxHCKGfeHhoXG.nJNIchD1R4RKjSh4lUn.x4r77gG5cL s(String , Int32 ) ================================================= ================================================= System.Exception: (0,0): error CS0006: Metadata file 'PARTS/DYNAMICCAMPAIGN/JG51_MISSION.DLL' could not be found at xQOt3lDxHCKGfeHhoXG.nJNIchD1R4RKjSh4lUn.x4r77gG5cL s(String , Int32 ) at 63fmYDM6scICdbkX6oX.OEMHv2MNfTXdfmmeGsD.W7nkOAKl9N (P3dcOOwRZQwsaaAbPNR ) ================================================= Load landscape... Load bridges LongBridge: wrong width. (3) Load static objects... Server: Raggz will fly for the Blue forces. Mission loaded. time = 34.523 Battle starting...Server: Battle begins! ok Server: The battle ends. |
it seems there was an old path remained to point at the mission .dll.
I'll do a log too, if it's needed. And I've asked you something, sir. A simple no would suffice, if you don't wish to share the sources with us. Thank you! |
I'm so sorry guys, it was a simple mistake. I've fixed it and uploaded the new version to Airwarfare. Just install it the same way and replace all the old files.
|
Quote:
Raggz, unfortunately that's not possible. The "Campaign" section is reserved for 1C's campaigns. For a variety of reasons, I cannot put my campaign there. If you wish, you can rename my section to something more visually pleasing. Find TEFCampaign.xml in AddIns and change it in there. Adonys, there's really nothing complicated about it. Essentially, it's a glorified text editor, as that's all the mission files are. Most of my time was spent learning how the mission files were actually written. After that, it's just a matter of choosing what type of mission I want to do (there are currently only two for the player), adding some aircraft for that mission, then use whatever remaining aircraft are left to create random missions for aircraft from both sides. Essentially, it's a lot of rand.Next() statements. :) Actually writing the mission files is ridiculously easy because 1C have created something called SectionFiles. They're sort of like a simple XML. If I do release the code, I want to at least comment it all. I also want to rewrite a lot of it. Namely, the code that selects which type of mission to do next. I don't want to release anything that isn't commented and/or sets a bad example. Both things I frequently do. And finally, assuming anybody out there actually enjoys this campaign, what would you like to see added to it? Other types of missions? Ground units? (That would be hard) Oh, and thanks for the log Raggz. It took about five seconds to fix after I saw that. The real question is why did it still work on my computer? :confused: |
I am working on something similar, and any help would be great. I can cope with not commented code, as long as it can give my some ideas.
A private release for me until a proper public one, please? Actually, what I am trying to do is to release some library of missions/campaign functions (eventually in a dynamic library form, to help people which are not really programmers have an easier life). |
Quote:
Just installed the updated campaign so i'm off to try it now. Thanks for the fix :) |
Well,:oops:, the problem below is fixed
I just had to go to the .dll , right click, go for properties and unlock the dll, which were untrusted by .Net 4.0 as coming from another PC. Gabu Hello No joy in installing this campaign: the line "The enlightened florsit campaigns" appears ok in single player menu, however nothing happens when clicking, and this generates the following log (as you can read I have a french PC). Any idea on how I could fix it? ================================================= Dispatcher_UnhandledException: System.NotSupportedException: Tentative de chargement d'un assembly à partir d'un emplacement réseau qui aurait entraîné l'utilisation de l'assembly en mode Bac à sable (sandbox) dans les versions antérieures du .NET Framework. Cette version du .NET Framework n'activant pas la stratégie CAS par défaut, ce chargement peut être dangereux. Si ce chargement n'est pas destiné à utiliser l'assembly en mode Bac à sable (sandbox), activez le commutateur loadFromRemoteSources. Pour plus d'informations, consultez http://go.microsoft.com/fwlink/?LinkId=155569. à System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence) à System.Reflection.Assembly.LoadFile(String path) à mijR187WMJjvKAgYdFE.Z3YKRP7xqledv088Her.LCw7D7YmaP H() à HiBhT1Xetgr01TIe4LQ.gmwxuMXnv9lABrvokU3.i5yVmA5h0g 9(Object , RoutedEventArgs ) à System.Windows.RoutedEventHandlerInfo.InvokeHandle r(Object target, RoutedEventArgs routedEventArgs) à System.Windows.EventRoute.InvokeHandlersImpl(Objec t source, RoutedEventArgs args, Boolean reRaised) à System.Windows.UIElement.RaiseEventImpl(Dependency Object sender, RoutedEventArgs args) à System.Windows.UIElement.RaiseEvent(RoutedEventArg s e) à System.Windows.Controls.Primitives.ButtonBase.OnCl ick() à System.Windows.Controls.Button.OnClick() à System.Windows.Controls.Primitives.ButtonBase.OnMo useLeftButtonUp(MouseButtonEventArgs e) à System.Windows.UIElement.OnMouseLeftButtonUpThunk( Object sender, MouseButtonEventArgs e) à System.Windows.Input.MouseButtonEventArgs.InvokeEv entHandler(Delegate genericHandler, Object genericTarget) à System.Windows.RoutedEventArgs.InvokeHandler(Deleg ate handler, Object target) à System.Windows.RoutedEventHandlerInfo.InvokeHandle r(Object target, RoutedEventArgs routedEventArgs) à System.Windows.EventRoute.InvokeHandlersImpl(Objec t source, RoutedEventArgs args, Boolean reRaised) à System.Windows.UIElement.ReRaiseEventAs(Dependency Object sender, RoutedEventArgs args, RoutedEvent newEvent) à System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e) à System.Windows.Input.MouseButtonEventArgs.InvokeEv entHandler(Delegate genericHandler, Object genericTarget) à System.Windows.RoutedEventArgs.InvokeHandler(Deleg ate handler, Object target) à System.Windows.RoutedEventHandlerInfo.InvokeHandle r(Object target, RoutedEventArgs routedEventArgs) à System.Windows.EventRoute.InvokeHandlersImpl(Objec t source, RoutedEventArgs args, Boolean reRaised) à System.Windows.UIElement.RaiseEventImpl(Dependency Object sender, RoutedEventArgs args) à System.Windows.UIElement.RaiseTrustedEvent(RoutedE ventArgs args) à System.Windows.UIElement.RaiseEvent(RoutedEventArg s args, Boolean trusted) à System.Windows.Input.InputManager.ProcessStagingAr ea() à System.Windows.Input.InputManager.ProcessInput(Inp utEventArgs input) à System.Windows.Input.InputProviderSite.ReportInput (InputReport inputReport) à System.Windows.Interop.HwndMouseInputProvider.Repo rtInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel) à System.Windows.Interop.HwndMouseInputProvider.Filt erMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled) à System.Windows.Interop.HwndSource.InputFilterMessa ge(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) à MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) à MS.Win32.HwndSubclass.DispatcherCallbackOperation( Object o) à System.Windows.Threading.ExceptionWrapper.Internal RealCall(Delegate callback, Object args, Int32 numArgs) à MS.Internal.Threading.ExceptionFilterHelper.TryCat chWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler) ================================================= ================================================= Dispatcher_UnhandledException: System.NotSupportedException: Tentative de chargement d'un assembly à partir d'un emplacement réseau qui aurait entraîné l'utilisation de l'assembly en mode Bac à sable (sandbox) dans les versions antérieures du .NET Framework. Cette version du .NET Framework n'activant pas la stratégie CAS par défaut, ce chargement peut être dangereux. Si ce chargement n'est pas destiné à utiliser l'assembly en mode Bac à sable (sandbox), activez le commutateur loadFromRemoteSources. Pour plus d'informations, consultez http://go.microsoft.com/fwlink/?LinkId=155569. à System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence) à System.Reflection.Assembly.LoadFile(String path) à mijR187WMJjvKAgYdFE.Z3YKRP7xqledv088Her.LCw7D7YmaP H() à HiBhT1Xetgr01TIe4LQ.gmwxuMXnv9lABrvokU3.i5yVmA5h0g 9(Object , RoutedEventArgs ) à System.Windows.RoutedEventHandlerInfo.InvokeHandle r(Object target, RoutedEventArgs routedEventArgs) à System.Windows.EventRoute.InvokeHandlersImpl(Objec t source, RoutedEventArgs args, Boolean reRaised) à System.Windows.UIElement.RaiseEventImpl(Dependency Object sender, RoutedEventArgs args) à System.Windows.UIElement.RaiseEvent(RoutedEventArg s e) à System.Windows.Controls.Primitives.ButtonBase.OnCl ick() à System.Windows.Controls.Button.OnClick() à System.Windows.Controls.Primitives.ButtonBase.OnMo useLeftButtonUp(MouseButtonEventArgs e) à System.Windows.UIElement.OnMouseLeftButtonUpThunk( Object sender, MouseButtonEventArgs e) à System.Windows.Input.MouseButtonEventArgs.InvokeEv entHandler(Delegate genericHandler, Object genericTarget) à System.Windows.RoutedEventArgs.InvokeHandler(Deleg ate handler, Object target) à System.Windows.RoutedEventHandlerInfo.InvokeHandle r(Object target, RoutedEventArgs routedEventArgs) à System.Windows.EventRoute.InvokeHandlersImpl(Objec t source, RoutedEventArgs args, Boolean reRaised) à System.Windows.UIElement.ReRaiseEventAs(Dependency Object sender, RoutedEventArgs args, RoutedEvent newEvent) à System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e) à System.Windows.Input.MouseButtonEventArgs.InvokeEv entHandler(Delegate genericHandler, Object genericTarget) à System.Windows.RoutedEventArgs.InvokeHandler(Deleg ate handler, Object target) à System.Windows.RoutedEventHandlerInfo.InvokeHandle r(Object target, RoutedEventArgs routedEventArgs) à System.Windows.EventRoute.InvokeHandlersImpl(Objec t source, RoutedEventArgs args, Boolean reRaised) à System.Windows.UIElement.RaiseEventImpl(Dependency Object sender, RoutedEventArgs args) à System.Windows.UIElement.RaiseTrustedEvent(RoutedE ventArgs args) à System.Windows.UIElement.RaiseEvent(RoutedEventArg s args, Boolean trusted) à System.Windows.Input.InputManager.ProcessStagingAr ea() à System.Windows.Input.InputManager.ProcessInput(Inp utEventArgs input) à System.Windows.Input.InputProviderSite.ReportInput (InputReport inputReport) à System.Windows.Interop.HwndMouseInputProvider.Repo rtInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel) à System.Windows.Interop.HwndMouseInputProvider.Filt erMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled) à System.Windows.Interop.HwndSource.InputFilterMessa ge(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) à MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) à MS.Win32.HwndSubclass.DispatcherCallbackOperation( Object o) à System.Windows.Threading.ExceptionWrapper.Internal RealCall(Delegate callback, Object args, Int32 numArgs) à MS.Internal.Threading.ExceptionFilterHelper.TryCat chWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler) ================================================= ================================================= Dispatcher_UnhandledException: System.NotSupportedException: Tentative de chargement d'un assembly à partir d'un emplacement réseau qui aurait entraîné l'utilisation de l'assembly en mode Bac à sable (sandbox) dans les versions antérieures du .NET Framework. Cette version du .NET Framework n'activant pas la stratégie CAS par défaut, ce chargement peut être dangereux. Si ce chargement n'est pas destiné à utiliser l'assembly en mode Bac à sable (sandbox), activez le commutateur loadFromRemoteSources. Pour plus d'informations, consultez http://go.microsoft.com/fwlink/?LinkId=155569. à System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence) à System.Reflection.Assembly.LoadFile(String path) à mijR187WMJjvKAgYdFE.Z3YKRP7xqledv088Her.LCw7D7YmaP H() à HiBhT1Xetgr01TIe4LQ.gmwxuMXnv9lABrvokU3.i5yVmA5h0g 9(Object , RoutedEventArgs ) à System.Windows.RoutedEventHandlerInfo.InvokeHandle r(Object target, RoutedEventArgs routedEventArgs) à System.Windows.EventRoute.InvokeHandlersImpl(Objec t source, RoutedEventArgs args, Boolean reRaised) à System.Windows.UIElement.RaiseEventImpl(Dependency Object sender, RoutedEventArgs args) à System.Windows.UIElement.RaiseEvent(RoutedEventArg s e) à System.Windows.Controls.Primitives.ButtonBase.OnCl ick() à System.Windows.Controls.Button.OnClick() à System.Windows.Controls.Primitives.ButtonBase.OnMo useLeftButtonUp(MouseButtonEventArgs e) à System.Windows.UIElement.OnMouseLeftButtonUpThunk( Object sender, MouseButtonEventArgs e) à System.Windows.Input.MouseButtonEventArgs.InvokeEv entHandler(Delegate genericHandler, Object genericTarget) à System.Windows.RoutedEventArgs.InvokeHandler(Deleg ate handler, Object target) à System.Windows.RoutedEventHandlerInfo.InvokeHandle r(Object target, RoutedEventArgs routedEventArgs) à System.Windows.EventRoute.InvokeHandlersImpl(Objec t source, RoutedEventArgs args, Boolean reRaised) à System.Windows.UIElement.ReRaiseEventAs(Dependency Object sender, RoutedEventArgs args, RoutedEvent newEvent) à System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e) à System.Windows.Input.MouseButtonEventArgs.InvokeEv entHandler(Delegate genericHandler, Object genericTarget) à System.Windows.RoutedEventArgs.InvokeHandler(Deleg ate handler, Object target) à System.Windows.RoutedEventHandlerInfo.InvokeHandle r(Object target, RoutedEventArgs routedEventArgs) à System.Windows.EventRoute.InvokeHandlersImpl(Objec t source, RoutedEventArgs args, Boolean reRaised) à System.Windows.UIElement.RaiseEventImpl(Dependency Object sender, RoutedEventArgs args) à System.Windows.UIElement.RaiseTrustedEvent(RoutedE ventArgs args) à System.Windows.UIElement.RaiseEvent(RoutedEventArg s args, Boolean trusted) à System.Windows.Input.InputManager.ProcessStagingAr ea() à System.Windows.Input.InputManager.ProcessInput(Inp utEventArgs input) à System.Windows.Input.InputProviderSite.ReportInput (InputReport inputReport) à System.Windows.Interop.HwndMouseInputProvider.Repo rtInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel) à System.Windows.Interop.HwndMouseInputProvider.Filt erMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled) à System.Windows.Interop.HwndSource.InputFilterMessa ge(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) à MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) à MS.Win32.HwndSubclass.DispatcherCallbackOperation( Object o) à System.Windows.Threading.ExceptionWrapper.Internal RealCall(Delegate callback, Object args, Int32 numArgs) à MS.Internal.Threading.ExceptionFilterHelper.TryCat chWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler) Many thanks |
Thank you gabuzomeu, I have added information about that to the install instructions.
|
Hi!
2 reports here say a player explodes in the 2nd mission on spawn constantly. http://www.sukhoi.ru/forum/showthrea...25#post1657025 (screenshots included) |
Quote:
If possible, I would like the following: 1) Log files. 2) The "current.mis" file located at parts/TEFCampaign/campaign/jg_51 Also, try restarting the campaign. The second mission will be different this time around. |
Thanks, I asked them in that thread. Could it be the case that the script spawns a player aircraft 2 times in a row instead of one? I can not see any other reason for explosion.
They have Russian version of the game btw. |
Quote:
|
This works like a charm now. I set the campaign conf.ini to minimum 30 planes and maximum 100. Having a ball with lot's of sorties and action :)
I hope you keep on working on this. Huge potential. Thanks again :) |
Did you use any of my screen shots?
|
I have see this week also a BOB campaigne for the JG 51, but this one for the IL-2 1946 with the Ultrapack.
|
Quote:
Quote:
|
Quote:
(с)Bionic :) |
Quote:
|
Quote:
|
1 Attachment(s)
Quote:
|
Quote:
The problem actually stems from the fact that in Russia, you use commas instead of decimals, so instead of wind blowing at something like 1.200 meters per second, it was blowing at over a thousand meters per second. |
Quote:
|
Will you ever release the source code for it?
|
Quote:
|
I tought you may want to have some feedback from a user, I am by no means familiar with programming anything.
So here's my feedback: AWESOME :-D:-D:-D I downloaded the mod last night, followed the instructions, easy as 1-2-3. I did have to disable steam cloud, since after installing the mod my settings were reverted to default by steam syncronisation. I also, just in case disabled automatic updates. Could I have a word of advice about leaving automatic updates enabled when running mods, please? You guys have definately a highly appreciative and intersted user here. Since the SP campaings from 1C are only scripted campaigns this random mission generator is a beautiful and most welcome start on the road to maybe a fully dynamic campaign generator. What I would like to see next is, besides a dcg, the same thing only for the british side and maybe be able to choose your aircraft, at least between the spitfire and hurricane. Keep up the exellent work :-D |
Quote:
Also, technically, it's not a mod, but a proper add-on. Just to be clear, you are perfectly safe flying online with this campaign installed. |
The campaigns are unaffected, just the realism settings and control input were reverted to default.
I ran the not-mod but proper add-on :), did the first mission and just to see what happens with steam cloud, exited the game, restarted, restrated the first mission and my realism settings were reverted to default as was the control input, which of course is not a big deal, just reloaded my control settings. Going to try and run the game now, didn't have a chance yet tonight, and let's see what happens with steam cloud disabled. |
Quote:
|
I did have steam cloud on when I ran the original game the first time and I had steam cloud on when I ran the add-on the first time. I ran the add-on, exited the game, re-entered the game and the settings were reversed to default, realism and controls.
Now with steam cloud off no reversal of settings. Running win7 64 bit btw. I am going to re-enable steam cloud, do my settings, apply/save my settings and then see what happens. |
That is strange. Unfortunately, I don't know what you could do about it. Hopefully, it was just a one time thing.
|
It seemed to have been a one time thing, now with steam cloud and automatic updates enabled everything is fine.
Keep up the good work, you and all the guys who program contend for the game enrich the experience for everybody. :-D |
Quote:
|
Sorry, forgot one minor detail.
It would also be nice if one could "manually" take off, since right now the AI will only follow you if you take off with the autopilot, but like I said just a minor thing. Just fyi, after starting the game a couple more times all settings remain the same, so no clue what was going on there. |
All times are GMT. The time now is 09:13 PM. |
Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright © 2007 Fulqrum Publishing. All rights reserved.