Page 2 of 5 FirstFirst 12345 LastLast
Results 51 to 100 of 209

Creating a new faction

  1. #51
    Member Jagdpanther's Avatar
    Join Date
    Dec 2008
    Location
    Berlin
    I have made it in the past, but don't use it for myself, since it fits not to my needs. And I don't use the tutorial, which is incomplete. I have figured out my own way by comparing the existing stuff with the needed one and some tips of the community. But for myself, the expense is too high for the result and some limits still exists.

  2. #52

    Wow...

    So I as another way of testing the army creation, I asked my brother to go through the tutorial and see if he got the same result. As he was going through it, he made it to step 6 in the tutorial where you had to change the "sub_race_type" to "axis_chaoslegion". This part has:

    Name: sub_race_type
    Data Type: Text
    Value: axis

    I took this part in the tutorial as to change the first section (sub_race_type) to "axis_chaoslegion" because I though "Value" was the army it was associated to. He took it as change "sub_race_type" to "axis_chaoslegion" and now it works...

    Now I have another problem (I know, they just keep coming)... When I start a new game as the new army I get what you see in the screenshot. I start the game as "Annihilation" but the game type is "Victory Point". I also do not have a starting squad and when I try to build one, I get the -2 population and the squad does not build. The map is also not right.

    Screenie (sorry about the small image, blame photobucket):

    Bad Stuff



    When I let the AI play as them (for testing sake) I get a "Fatal AI Error - Execution Paused" and I have to quit. The map looks the same as the image. I understand that there may be an issue with the AI playing with them at the moment so I am not so worried about that at this point.

    Posted is the warnings.log for when I played as the new army and when the AI was them (named accordingly).

    Thanks again for all of your help on the previous issue (please don't hate me... )

    ######################EDIT######################

    Sorry about posting all of this, I am just trying to be thorough. I fixed the other issue with me being CL, I forgot to change a line of code back to what it was and it broke it. Now that it is fixed, I spawn into the game and have a pioneer squad. I can click them and move them around and then it says "You have been defeated" and it ends. I also do not spawn any bunkers in by base.

    Here is the block from the "warnings.log" when the game starts, defeats me, and ends:

    14:12:05.92 GAME -- Starting mission...
    14:12:06.62 MOD -- Player CPU - Normal set to AI Type: AI Player (frame 1) (CmdAI)
    14:12:08.28 QueryMatches: Got [51] maps, [151] ids, [17] advertisements, startID [140832174]
    14:12:08.28 QuazalGetAdvertisementsAsync: Queuing refresh to obtain unknown 53 matches
    14:12:10.25 Warning: binding repeat_2(Ability: abilities\reenable_capture_ability_engineers) -- ui index '0' out of bounds; range is [1, 12]
    14:12:11.38 Warning: non auto-match upgrade not found in AE, tuning
    14:12:12.36 MOD -- Player MasterGunz67 (kill endgame) (frame 47) (KillPlayer)
    14:12:12.37 MOD -- Game Over at frame 47

    I am still looking to fix it but I figured I would post it here to see if anyone could get it before me. Thanks!
    Attached Files
    Last edited by MasterGunz67; 20th Aug 10 at 8:26 PM.
    Developer on Warhammer 40k: Resurrection of WAR

    Follow the mod here:
    ModDB
    Relic Forums

  3. #53
    Member Jagdpanther's Avatar
    Join Date
    Dec 2008
    Location
    Berlin
    Not only the warnings log is for interest, if you truely wish to debug your problems. Go even in the subfolder "Logfiles" and take a closer look into ai.log if it exist and scar.log.

    Oh and only a suggestion. The first step for you must be to get your race working for you, then you can work to get it for the ai too. Otherwise you don't came on.

  4. #54
    Thank you Jagdpanther for the suggestion about the "LogFiles" folder. There is a lot of stuff in there! On my most recent attempt, it generated 8 log files (art, scar, warnings, datascrc, design, localizer, physics, and sound). Should I worry about all of them or just focus on scar and ai like you said?

  5. #55
    Member Uccido's Avatar
    Join Date
    Aug 2009
    Location
    The Armoury
    you need to goto either wcutil or luaconsts (reckon its wcutil) and make sure you have a copy of the HQ setup for your race, otherwise when it loads it detects that no HQ exists and as such you lose by annihilation rules
    The Weapon Emporium
    Chevalier Entertainment on Youtube
    Chevalier Entertainment on Facebook
    Pax in Bello - Peace in War. The best possible family motto.

  6. #56
    This is the block of code I have for my army Chaos Legion in "wcutil.scar". I use "CL" in "luaconsts.scar".

    PHP Code:
    _Annihilate["axis_chaoslegion"] = 

        
    EBPS 
        { 
            
    EBP.CL.HQ
            
    EBP.CL.HQ2
            
    EBP.CL.HQ3
            
    EBP.CL.HQ4
            
    EBP.CL.HQ5
            
    EBP.CL.HQ6
            
    EBP.CL.HQ7
            
    EBP.CL.HQ8
            
    EBP.CL.QUARTERS
            
    EBP.CL.BARRACKS
            
    EBP.CL.ARMORY
            
    EBP.CL.COMMAND
            
    EBP.CL.KAMPFKRAFT
            
    EBP.CL.BUNKER,
            
    BP_GetEntityBlueprint("ebps/races/axis_chaoslegion/buildings/axis_bunker_starting_position.lua"), 
        }, 
        
    SBPS = {}, 
        
    AMBIENT UPG.CL.CONVERT_AMBIENT_BUILDING 

    With these values in, the game does not kill me, but the map is broken, the game mode is Victory Point, I have no base defenses, and I cannot do anything. When I try to move my units, it only leaves behind the green colored marker it makes when you right click. It doesn't go away either, if I keep right clicking everywhere, it makes a little mine field of green/orange puffs.
    Last edited by MasterGunz67; 20th Aug 10 at 9:04 PM.

  7. #57
    Member Jagdpanther's Avatar
    Join Date
    Dec 2008
    Location
    Berlin
    Should I worry about all of them or just focus on scar and ai like you said?
    No, at first you will only need the actual once (take a look at the data). The warnings.log is nearly the same but a shorter version of those from outside this dir. datasrc you can ignore.

    the other files are only for interest, if you work on things related to their content.

    So in your case have an eye on ai (this comes only if you have an error here) and scar.

    The other files could be helpful if you change a skin, add a new model and so on. Mostly then the last line is for interest if you get a crash before or display and/or sound errors.

    The localizer shows all ucs errors, there are some by default, they you can't fix.

    but the map is broken
    Then the scar part is not complete. Look in scar.log, if there is something reported.

    Could you please post up your actual luaconsts?

  8. #58
    Attached is my luaconsts. The thing about the map is, it is not always broken. Sometimes it works, other times it doesn't.

    Sorry, but I will be unable to respond to any messages today. I not going to be around a computer until tomorrow. I will get back to you first thing on Sunday! Thanks again for your help!
    Attached Files

  9. #59
    Member Jagdpanther's Avatar
    Join Date
    Dec 2008
    Location
    Berlin
    Oh, as I see, you have even another faction (Imperial_Guard) setting up. Could you please disable all things for this faction first (and delete or move their racebps)? It's only for reducing error traps. First you will need to get one race running, then you can add the next one.

    The next thing is, you are using the same hq's for axis and chaos legion. That's not a good idea. Create new folders in ebs and sbps for your race and copy the wanted stuff there. So the races are independent and you can configure they separately. This will be prevent you from faction related errors.

    After them you'll nee to relink all squads, units and buildings to the new and correct location in luaconsts.

    In addition, near all tables (those things inside "{" and "}") are needing an equivalent for your race, eg. the commander_tree, type.construct and so on, with the existence of the rgd files (create they). Those equivalents are not only needed by luaconsts. Take a closer look into each ai file, even the subdirs, and you will see, what i mean.

    You also need a new subfolder, with the included files of "Data\ai\personality" for your race.

    It's many work, I have warned you before.
    OK, if you have all that, post up your new luaconsts.

  10. #60
    Thanks for taking a look Jagdpanther. The Imperil Guard are in there because I tried to create another race to see if I did something wrong with the first one, I will delete it. I will go back and make all of the required changes and get back to you later today. Thanks again for all of the help.

  11. #61
    Member Jagdpanther's Avatar
    Join Date
    Dec 2008
    Location
    Berlin
    Yepp. At the moment there is another thread with near the same problems. You can have an eye on that, if it gives you further informations.

    Good luck.

  12. #62
    Under the "SBPS" should I change this line to be used by just "axis_chaoslegion" or do something else? I understand that they are going to be changed later I just didn't know what I should do with them at this point.

    QUESTION CODE



    The same question applies under "SYNC_WEAPON".

    QUESTION CODE 02



    Under "UPGRADES", should I combine it into the "axis_chaoslegion" folder instead of leaving it in the extracted "allies" folder (this is the only file that I extracted)?

    QUESTION CODE 03



    From line 1220 - 1234 in the "ABILITY" section, do I have to rename those or will they automaticlly go to the extracted folder in my mod?

    ABILITY SECTION



    Same question for lines 1328 - 1348 in the "COMMANDER_TREE" section.

    COMMANDER_TREE SECTION



    And finally, for the "CONSTRUCT" section as well (lines 1515 - 1519).

    CONSTRUCT SECTION



    I think I hit all of the "luaconsts" areas with exception to the questions above. Including the areas in question, I have all of the used files extracted to my mod folder. Thanks a lot for the help!

    PS: I would post my "luaconsts" but it is too large.

  13. #63
    Member Jagdpanther's Avatar
    Join Date
    Dec 2008
    Location
    Berlin
    OK, basically here points the luaconsts to the real existing folderstructure in your mod. The luaconsts informs the ai part over all existing upgrades, abilities, commander trees and so on that way.

    So if you have created your own race folders inside ebs and sbps then now you can link in luaconsts to these files. You do not need for all things really their own versions of files, but for a better clarity (and individual settings) I would prefer it.

    For the rest of your questions you can use this luaconsts for reference, as I have posted it for a couple of minutes. Remove the unwanted "SOVIETS" stuff if you wish and replace "OSTHEER" with your own faction. The correct linking to the existing race depending folders is in this version still missing. The other man is working at this at the moment. You can change it as I have explained above.

  14. #64
    Thank you very much. I will take a look at it and get back to you.

  15. #65
    Member Jagdpanther's Avatar
    Join Date
    Dec 2008
    Location
    Berlin
    OK, pleasure.

  16. #66
    Here is my updated "luaconsts". Every file is located in the proper directory. The error I am getting now is a "FATAL AI ERROR - EXECUTION PAUSED" and I must quit the game. I am also posting my "scarlog", "warnings" and "ailog". As you can see, the "ailog" throws an error in the "default.ai" file.

    LUACONSTS



    SCARLOG



    AILOG



    This is the part of my "default.ai" file that is changed. Are there more changes to make in the file? I believe the reference I made is correct since it is declared in "luaconsts" as SBP.CL.PIONEER. As for the "personality" directory, should I create a folder within called "axis_cl" and add the other files to it?

    DEFAULT.AI



    WARNINGS



    Again, thanks for the help and working me through this.
    Last edited by MasterGunz67; 23rd Aug 10 at 1:49 PM.

  17. #67
    Member RelicModder's Avatar
    Join Date
    Aug 2010
    Location
    Berlin
    ok my logs plz help
    Warnings

    Code:
    -- Log file for all dbTracef messages --
    15:56:04.32   NetworkManager::Create - creating network manager
    15:56:04.32   Read 751 bytes from network datastore login_cache.bin
    15:56:04.32   Read 112456 bytes from network datastore global_cache.bin
    15:56:04.32   Read 289162 bytes from network datastore ping_cache.bin
    15:56:04.33   QuazalInitializer - static initializing Quazal library
    15:56:04.33   PingCache - populating cache with 14905 pings
    15:56:04.35   Transport - Header Size = 4 bytes + 4 byte nonce + 2 byte consolidation header
    15:56:04.41   WinTransport - CreateSocket exclusive broadcast socket was available.
    15:56:04.41   WinTransport - CreateSocket listening for broadcasts on default port
    15:56:04.41   WinTransport - Host Name: Michelle-PC, aliases: , type=AF_INET, len=4
    15:56:04.41   WinTransport - Host IP Address #0: 192.168.10.12
    15:56:04.41   WinTransport - Interface #0: ip:192.168.10.12, broadcast:192.168.10.12, flags=IFF_UP IFF_BROADCAST IFF_MULTICAST
    15:56:04.41   WinTransport - Interface #1: ip:127.0.0.1, broadcast:127.0.0.1, flags=IFF_UP IFF_LOOPBACK IFF_MULTICAST
    15:56:04.41   Transport::OpenInternal request to WINaddr:255.255.255.255:6112;
    15:56:04.41   WinTransport - Quazal address string = udp:/address=192.168.10.12;port=6112
    15:56:04.41   SessionManager - Peer Header Size = 16 bytes
    15:56:04.41   SessionManager - Game Data overhead = 7 bytes
    15:56:04.41   SessionManager - Proxy overhead = 7 bytes
    15:56:04.41   MessageInternal::CreateChannel: Created channel 47535450
    15:56:04.41   Session::Initialize - info, initializing session object, using threads.
    15:56:04.41   SessionManager::RegisterSession - Registering new session 06f70858
    15:56:04.41   Transport::OpenInternal request to WINaddr:255.255.255.255:6112;
    15:56:04.41   AutomatchInternal: Instantiating
    15:56:04.41   PartyInternal: Instantiating
    15:56:04.41   MessageInternal::CreateChannel: Created channel 50525459
    15:56:04.41   Net::ThreadFunction - Entering network thread function...
    15:56:04.41   MessageInternal::CreateChannel: Created channel 51434b4d
    15:56:04.42   Session::GetState - info, session's state changed to [1:STATE_DISCONNECTED].
    15:56:04.42   MessageInternal::CreateChannel: Created channel 534d5347
    15:56:04.42   MessageInternal::CreateChannel: Created channel 474d4343
    15:56:04.42   MessageInternal::CreateChannel: Created channel 474f424a
    15:56:04.42   MessageInternal::CreateChannel: Created channel 4d4f444d
    15:56:04.42   MessageInternal::CreateChannel: Created channel 53594e43
    15:56:04.42   MessageInternal::DestroyChannel: Destroyed channel 534d5347
    15:56:04.42   MessageInternal::DestroyChannel: Destroyed channel 474d4343
    15:56:04.42   MessageInternal::DestroyChannel: Destroyed channel 474f424a
    15:56:04.42   MessageInternal::DestroyChannel: Destroyed channel 4d4f444d
    15:56:04.42   MessageInternal::DestroyChannel: Destroyed channel 53594e43
    15:56:04.42   GAME -- Available memory: 2046MB Physical RAM, 2046MB Pagefile, 2047 Virtual Address Space
    15:56:04.44   Transport - Largest received is now 19
    15:56:04.44   Transport::OpenInternal request to WINaddr:192.168.10.12:6112;
    15:56:07.45   DLLDriverLinker -- Adding driver 'spDx10.dll'.
    15:56:07.45   DLLDriverLinker -- Adding driver 'spDx9.dll'.
    15:56:07.45   DLLDriverLinker -- 2 DLL drivers found.
    15:56:07.54   SPDx10 -- Adapter [NVIDIA GeForce GTX 295]: 881MB dedicated video memory, 0MB dedicated system memory and 767MB shared system memory.
    15:56:09.32   DLLDriverLinker -- 2 DLL drivers found.
    15:56:09.46   SPOOGE - Driver[DirectX9 rendering device] version[4,36]
    15:56:09.46   GAME -- Resolution set to 1680x1050 (fullscreen).
    15:56:09.46   SPDx9 -- Driver Name = nvd3dum.dll  Desc = NVIDIA GeForce GTX 295
    15:56:09.46   SPDx9 -- Driver Vendor = 0x10DE  Device = 0x05EB  SubSys = 0x070510DE  Rev = 0x00A1
    15:56:09.46   SPDx9 -- Driver Version  Product = 0x0008  Version = 0x0011  SubVersion = 0x00  Build = 257.15
    15:56:09.46   SPDx9 -- Driver GUID = {D7B71E3E-46AB-11CF-3D65-09271FC2C535}
    15:56:09.87   SPDx9 -- 1624MB available Texture Memory
    15:56:09.88   SPDx9 -- [2] GPUs found.
    15:56:09.88   ShaderDatabase: using shader profile [ps30]
    15:56:10.51   FILESYSTEM -- filepath failure, missing alias 'TOOLSDATA:autoloddecimator.lua'
    15:56:10.71   GameObjLoader 02fed8f0 - resetting counters
    15:56:10.71   GameObjLoader 02fed8f0 - Created loader
    15:56:10.71   GameObjLoader 02feda50 - resetting counters
    15:56:10.71   GameObjLoader 02feda50 - Created loader
    15:56:11.16   GAME -- Beginning FE
    15:56:11.16   Sent message game CompanyOfHeroes started 6040 601 allowtraffic
    15:56:11.16   RemoteDLManager - Connection Restored.
    15:56:11.16   UIFrontEnd - Loading Front End
    15:56:11.16   THREAD: Hyper-Threading Technology Processors are not detected.
    15:56:11.29   SOUND -- Initializing ...
    15:56:11.36   INNIMapDCA Key not found: sp_speechducker::time
    15:56:11.93   SOUND -- Initialization completed!
    15:56:11.93   UIFrontEnd - Initializing Forms
    15:56:13.92   CampaignFilter::BindFilterSpecificWidgets()
    15:56:14.03   Activating screen: MovieScreen
    15:56:14.03   Got dlman msg [dlmanager version 1.0 peertraffic 1 uploadlimit 2147483647 seedratio 3]
    15:56:38.98   Activating screen: AppLoadingForm
    15:56:38.98   SetupProductLoadingArt - choosing bgArt = 0 (gold=0)
    15:56:40.17   GAME -- Loaded campaign 'Invasion of Normandy' (DATA:SCENARIOS\SP\COH.CAMP) with 15 missions, [coh]
    15:56:40.18   GAME -- Loaded campaign 'Liberation of Caen' (DATA:SCENARIOS\SP\CXP1.CAMP) with 9 missions, [cxp1]
    15:56:40.18   GAME -- Loaded campaign 'Operation Market Garden' (DATA:SCENARIOS\SP\CXP2.CAMP) with 8 missions, [cxp2]
    15:56:40.18   GAME -- Loaded campaign 'Falaise Pocket' (DATA:SCENARIOS\SP\DLC3.CAMP) with 3 missions, [dlc3]
    15:56:40.18   GAME -- Loaded campaign 'Causeway' (DATA:SCENARIOS\SP\DLC2.CAMP) with 3 missions, [dlc2]
    15:56:40.18   GAME -- Loaded campaign 'Tiger Ace' (DATA:SCENARIOS\SP\DLC1.CAMP) with 3 missions, [dlc1]
    15:56:40.63   GAME -- Using player profile GAMESTAR
    15:56:41.51   Dx9Program : Unable to find shader script for 'fxshader_multiply' in the ShaderDatabase.
    15:56:41.76   Dx9Program : Unable to find shader script for 'fxshader_depthadditive' in the ShaderDatabase.
    15:56:42.43   QuazalLoginService - *** Connecting to server: reliclive.quazal.net:30260
    15:56:42.43   RendezvousManager: CreateSession - starting profile=Guest login
    15:56:43.03   RendezvousManager: Login complete and successfull
    15:56:43.04   RendezvousManager initialized
    15:56:43.11   Current server English:live version is 601.0, client is 601.0
    15:56:43.13   OnConnect: successful connection established, enabling reconnect
    15:56:43.13   OnConnect: this wasnt a reconnect, no need for autologin
    15:56:43.16   SetupProductLoadingArt - choosing bgArt = 0 (gold=0)
    15:56:43.16   CRC & Version Info : 00000259:5abb235e:48d2c5df eastern_front:601:ww2mod.dll 1
    15:56:43.16   Activating screen: FEMovie
    15:56:43.16   Activating screen: OnlineWidget
    15:56:43.16   Activating screen: RelicOnlineLogin
    15:56:43.23   SetupProductLoadingArt - choosing bgArt = 0 (gold=0)
    15:56:43.23   You have a valid version of the game.
    15:57:02.93   Logging in toadstooleb on controller:0
    15:57:02.93   Activating screen: RelicOnlineWait
    15:57:03.16   Login completed: ACCOUNT_VALIDATED
    15:57:03.16   Found 1 profiles for account toadstooleb
    15:57:03.16   Found profile: toadstooleb
    15:57:03.16   installed_products = ( COH CXP1 DLC1 DLC2 DLC3 )
    15:57:03.19   installed_products = ( COH CXP1 DLC1 DLC2 DLC3 )
    15:57:03.19   Activating screen: RelicOnlineProfileSelect
    15:57:03.19   Activating screen: RelicOnlineWait
    15:57:03.19   OnLogin: no previous login, auto selecting profile not required
    15:57:04.62   Activating screen: RelicOnlineWait
    15:57:04.62   RendezvousManager - destroying chat handler
    15:57:04.62   RendezvousManager: CreateSession - starting logout profile = 100:Guest
    15:57:04.68   RendezvousManager: Logout complete
    15:57:04.68   RendezvousManager - terminating all server calls in progress
    15:57:04.68   CallManager - terminating all server calls in progress (1 in progress)
    15:57:04.68   RendezvousManager: OnCredentialsEvent - starting profile login
    15:57:05.01   Transport - median kBPS [hi/cur] sent = 0.0/0.0, recvd = 0.0/0.0, #p/sec[s/r] = 0.0/0.2, max unsent 0, version err 0, merge 0
    15:57:05.17   RendezvousManager: Login complete and successfull
    15:57:05.17   RendezvousManager - creating chat handler
    15:57:05.17   RendezvousManager::CreateNATTraversalClient - NAT traversal available.
    15:57:05.30   QuazalSelectProfileAsync - Got UserID
    15:57:05.33   Transport - Largest sent is now 16
    15:57:05.37   Transport - Largest received is now 42
    15:57:05.42   GetUserStats requested stats for PIDs ( 559270 ) (best:0, full:1)
    15:57:05.58   SelectProfileAsync - RegisterLocalURLs public [udp:/address=99.241.102.91;port=6112;PID=559270;RVCID=68734201], private [udp:/address=192.168.10.12;port=6112;PID=559270]
    15:57:05.67   QuazalSelectProfileAsync - Got Full Stats
    15:57:05.79   GetAutomatchMaps: Got [32] maps
    15:57:05.82   PopulateArmyListBox - skipping race 2
    15:57:05.82   PopulateArmyListBox - skipping race 0
    15:57:05.82   PopulateArmyListBox - skipping race 1
    15:57:05.82   PopulateArmyListBox - skipping race 3
    15:57:05.82   AutoMatchForm::OnArmySelectionChanged - sending request info
    15:57:05.82   GetMaxFrameTimeFromProfile: players=2 expected FPS=13.579339, bars=3, max avg=0.044, sd=0.030, 5 samples =  0.02 0.10 0.05 0.03 0.02
    15:57:05.82   AutoMatchForm::OnMatchTypeSelectionChanged - sending team info
    15:57:05.82   QuazalSelectProfileAsync - Got Automatch maps
    15:57:06.65   QuazalSelectProfileAsync - GetFriends result - CacheState = 1
    15:57:06.74   Profile [00000000:000888a6] selected on controller#0
    15:57:06.74   Activating screen: FEMovie
    15:57:06.74   Activating screen: OnlineWidget
    15:57:06.74   Activating screen: FE_mm_01
    15:57:06.74   Activating screen: RelicOnlineWait
    15:57:06.76   GAME -- Setting campaign state to 'coh'
    15:57:06.76   GAME -- Closing state 'coh'
    15:57:06.76   GAME -- Setting campaign state to 'cxp2'
    15:57:06.76   GAME -- Closing state 'cxp2'
    15:57:06.76   GAME -- Setting campaign state to 'cxp1'
    15:57:06.76   GAME -- Closing state 'cxp1'
    15:57:06.76   GAME -- Setting campaign state to 'dlc1'
    15:57:06.76   GAME -- Closing state 'dlc1'
    15:57:06.77   GAME -- Setting campaign state to 'dlc2'
    15:57:06.77   GAME -- Closing state 'dlc2'
    15:57:06.77   GAME -- Setting campaign state to 'dlc3'
    15:57:06.77   GAME -- Closing state 'dlc3'
    15:57:07.77   Activating screen: MessageBoxPopup
    15:57:07.77   Created Matchinfo
    15:57:07.77   Session::Reset with reason 999 and AdvertisementInternal::ResetSession()
    15:57:07.77   starting online hosting
    15:57:07.79   OnlineHostAsync: initiating CallCreateMatch
    15:57:07.87   OnlineHostAsync: created gid=141299759
    15:57:07.88   Transport - Largest sent is now 78
    15:57:07.93   Transport - Largest received is now 104
    15:57:07.96   RendezvousNotifier - Received Participate ParticipationEvent.
    15:57:08.14   OnlineHostAsync - RegisterLocalURLs public [udp:/address=99.241.102.91;port=6112;PID=559270;RVCID=68734201], private [udp:/address=192.168.10.12;port=6112;PID=559270]
    15:57:08.21   OnlineHostAsync: initiating UpdateSessionURL [gid=141299759, url=udp:/address=99.241.102.91;port=6112;PID=559270;RVCID=68734201]
    15:57:08.32   OnJoinAdvertisementSuccess - joined online match, server leave notification required
    15:57:08.32   starting local hosting
    15:57:08.32   Transport::OpenInternal request to WINaddr:255.255.255.255:6112;
    15:57:08.32   Allocated route ID=0 for PeerID 1 at WINaddr:192.168.10.12:6112;
    15:57:08.32   Transport::OpenInternal request to WINaddr:192.168.10.12:6112;
    15:57:08.32   Session::Host sid = 86C102F, hostURL = , local addresses = WINaddr:192.168.10.12:6112;
    15:57:08.32   ValidateCustomData: called with 743 bytes of custom data
    15:57:08.32   Host accepted Peer 1 into the match at address list=WINaddr:192.168.10.12:6112;, routes=WINaddr:192.168.10.12:6112;
    15:57:08.32   AdvertisementInternal::Process - EVENT_NEWPEER
    15:57:08.32   Session::GetState - info, session's state changed to [2:STATE_CONNECTING].
    15:57:08.34   Session::GetState - info, session's state changed to [3:STATE_CONNECTED].
    15:57:08.34   hosting - Session is connected
    15:57:08.34   Net::Session::SetVisible - session is set to INVISIBLE.
    15:57:08.35   local host PeerID 1 CONN ack=  0 (  0ms~0) unack=  0, retry=  0, highwaterOOS=0 @WINaddr:192.168.10.12:6112; (ping=0ms) 100.00%, pending=0, dead=0
    15:57:08.35   MessageCounts: inval=0/0, seek=0/0, join=0/0, integ=0/0, seek_reply=0/0, join_reply=0/0, add=0/0, remove=0/0, drop=0/0, data=0/0, voice=0/0, rchk=0/0, nudge=0/0, peerhdr=0/0, proxy=0/0, ping=0/0, frag=0/0, Errors=0/0
    15:57:08.36   hosting completed successfully
    15:57:08.36   HostAsync - completed with HostResult = 0
    15:57:08.36   UIFrontEnd::StartRelicOnlineTabs deactivating FE_mm_01
    15:57:08.36   Activating screen: OnlineGameSetup
    15:57:08.36   MessageInternal::CreateChannel: Created channel 534d5347
    15:57:08.37   GameSetupForm - UpdateMatchType: Setting match type to 14: CLASSIC_COOP_SKIRMISH
    15:57:08.37   MatchInternal::SetMatchType - new type 14 - updating server
    15:57:08.39   SetVisible called while !IsConnected
    15:57:08.40   GetMaxFrameTimeFromProfile: players=2 expected FPS=13.579339, bars=3, max avg=0.044, sd=0.030, 5 samples =  0.02 0.10 0.05 0.03 0.02
    15:57:08.40   Activating screen: RelicOnlineChat
    15:57:08.40   Activating screen: RelicOnlineNewsScreen
    15:57:08.45   Activating screen: RelicOnlineStatsScreen
    15:57:08.45   Activating screen: Achievements
    15:57:08.45   GAME -- Setting campaign state to 'coh'
    15:57:08.45   GAME -- Closing state 'coh'
    15:57:08.45   GAME -- Setting campaign state to 'cxp2'
    15:57:08.45   GAME -- Closing state 'cxp2'
    15:57:08.45   GAME -- Setting campaign state to 'cxp1'
    15:57:08.45   GAME -- Closing state 'cxp1'
    15:57:08.46   GAME -- Setting campaign state to 'dlc1'
    15:57:08.46   GAME -- Closing state 'dlc1'
    15:57:08.46   GAME -- Setting campaign state to 'dlc2'
    15:57:08.46   GAME -- Closing state 'dlc2'
    15:57:08.46   GAME -- Setting campaign state to 'dlc3'
    15:57:08.46   GAME -- Closing state 'dlc3'
    15:57:08.46   GAME -- Setting campaign state to 'dlc1'
    15:57:08.46   GAME -- Closing state 'dlc1'
    15:57:08.47   Activating screen: GameHistory
    15:57:08.47   GAME -- Setting campaign state to 'coh'
    15:57:08.47   GAME -- Closing state 'coh'
    15:57:08.48   GAME -- Setting campaign state to 'cxp2'
    15:57:08.48   GAME -- Closing state 'cxp2'
    15:57:08.48   GAME -- Setting campaign state to 'cxp1'
    15:57:08.48   GAME -- Closing state 'cxp1'
    15:57:08.48   GAME -- Setting campaign state to 'dlc1'
    15:57:08.48   GAME -- Closing state 'dlc1'
    15:57:08.48   GAME -- Setting campaign state to 'dlc2'
    15:57:08.48   GAME -- Closing state 'dlc2'
    15:57:08.48   GAME -- Setting campaign state to 'dlc3'
    15:57:08.48   GAME -- Closing state 'dlc3'
    15:57:08.48   Activating screen: OnlineGameSetup
    15:57:08.48   Activating screen: RelicOnlineTabs
    15:57:08.48   AutomatchInternal::OnHostComplete - Completed Host with success=1
    15:57:08.48   AutomatchInternal::OnHostComplete - automatcher is no longer active - ignoring
    15:57:08.48   QuickMatchInternal::OnHostComplete - Quickmatch not in host state.
    15:57:08.49   GameSetupForm - UpdateMatchType: Setting match type to 14: CLASSIC_COOP_SKIRMISH
    15:57:08.49   Net::Session::SetVisible - session is set to INVISIBLE.
    15:57:08.49   GetMaxFrameTimeFromProfile: players=2 expected FPS=13.579339, bars=3, max avg=0.044, sd=0.030, 5 samples =  0.02 0.10 0.05 0.03 0.02
    15:57:08.55   GameInfo::ResetInfo - SyncLevel set to 0 on reset
    15:57:08.57   GAME -- Setting campaign state to 'coh'
    15:57:08.57   GAME -- Closing state 'coh'
    15:57:08.57   GAME -- Setting campaign state to 'cxp2'
    15:57:08.57   GAME -- Closing state 'cxp2'
    15:57:08.57   GAME -- Setting campaign state to 'cxp1'
    15:57:08.58   GAME -- Closing state 'cxp1'
    15:57:08.58   GAME -- Setting campaign state to 'dlc1'
    15:57:08.58   GAME -- Closing state 'dlc1'
    15:57:08.58   GAME -- Setting campaign state to 'dlc2'
    15:57:08.58   GAME -- Closing state 'dlc2'
    15:57:08.58   GAME -- Setting campaign state to 'dlc3'
    15:57:08.58   GAME -- Closing state 'dlc3'
    15:57:08.59   UpdateMatch: Call to UpdateGathering started, matchTypeID = 14.
    15:57:08.66   GameInfo::ResetInfo - SyncLevel set to 0 on reset
    15:57:09.22   QueryMatches: Got [48] maps, [160] ids, [17] advertisements, startID [1]
    15:57:09.22   QuazalGetAdvertisementsAsync: Queuing refresh to obtain unknown 143 matches
    15:57:09.32   Activating screen: DynamicPopupMenu
    15:57:09.95   GameSetupForm - UpdateMatchType: Setting match type to 14: CLASSIC_COOP_SKIRMISH
    15:57:09.95   Net::Session::SetVisible - session is set to INVISIBLE.
    15:57:09.95   GetMaxFrameTimeFromProfile: players=2 expected FPS=13.579339, bars=3, max avg=0.044, sd=0.030, 5 samples =  0.02 0.10 0.05 0.03 0.02
    15:57:09.96   GameInfo::ResetInfo - SyncLevel set to 0 on reset
    15:57:10.01   GameInfo::ResetInfo - SyncLevel set to 0 on reset
    15:57:10.23   GetUserStats requested stats for PIDs ( 559636 560023 587177 601323 2997556 3012038 ) (best:6, full:0)
    15:57:11.67   Activating screen: RaceSelectionPopup
    15:57:12.46   GameSetupForm - UpdateMatchType: Setting match type to 14: CLASSIC_COOP_SKIRMISH
    15:57:12.46   Net::Session::SetVisible - session is set to INVISIBLE.
    15:57:12.47   GetMaxFrameTimeFromProfile: players=2 expected FPS=13.579339, bars=3, max avg=0.044, sd=0.030, 5 samples =  0.02 0.10 0.05 0.03 0.02
    15:57:12.49   GameInfo::ResetInfo - SyncLevel set to 0 on reset
    15:57:12.53   GameInfo::ResetInfo - SyncLevel set to 0 on reset
    15:57:13.23   QueryMatches: Got [48] maps, [160] ids, [17] advertisements, startID [141297812]
    15:57:13.23   QuazalGetAdvertisementsAsync: Queuing refresh to obtain unknown 126 matches
    15:57:14.86   GameSetupForm - UpdateMatchType: Setting match type to 14: CLASSIC_COOP_SKIRMISH
    15:57:14.86   Net::Session::SetVisible - session is set to INVISIBLE.
    15:57:14.86   GetMaxFrameTimeFromProfile: players=2 expected FPS=13.579339, bars=3, max avg=0.044, sd=0.030, 5 samples =  0.02 0.10 0.05 0.03 0.02
    15:57:14.87   GameInfo::ResetInfo - SyncLevel set to 0 on reset
    15:57:14.90   GameInfo::ResetInfo - SyncLevel set to 0 on reset
    15:57:15.75   GameSetupForm - UpdateMatchType: Setting match type to 14: CLASSIC_COOP_SKIRMISH
    15:57:15.75   Net::Session::SetVisible - session is set to INVISIBLE.
    15:57:15.75   GameInfo::ResetInfo - SyncLevel set to 0 on reset
    15:57:15.76   MatchInternal::SetMatchState - state 1 - updating server
    15:57:15.76   Net::Session::SetVisible - session is set to INVISIBLE.
    15:57:15.76   MatchSetup: Sending start game message!
    15:57:15.76   GameSetupForm - Starting game
    15:57:15.76   GameInfo::ResetInfo - SyncLevel set to 0 on reset
    15:57:15.76   PopulateGameInfo - random seed:[1282593435], guid:[{4abbd1a9-7186-4662-8ac3-b535bb209690}], sync level:[0]
    15:57:15.77   Error loading [DATA:levelingCurve.lua]
    15:57:15.77   Error loading [DATA:levelingCurve.lua]
    15:57:15.77   MOD - Setting player (0) race to: allies
    15:57:15.77   MOD - Setting player (0) race to: 1
    15:57:15.77   MOD - Setting player (1) race to: axis_ostheer
    15:57:15.77   MOD - Setting player (1) race to: 4
    15:57:15.78   OnlineUpdateStateAsync: initiating state change, id = 141299759, state=2
    15:57:15.80   APP -- Game Start
    15:57:15.80   Sent message game CompanyOfHeroes allowtraffic
    15:57:15.80   GAME -- Setting campaign state to 'coh'
    15:57:15.80   GAME -- Closing state 'coh'
    15:57:15.81   GAME -- Setting campaign state to 'cxp2'
    15:57:15.81   GAME -- Closing state 'cxp2'
    15:57:15.81   GAME -- Setting campaign state to 'cxp1'
    15:57:15.81   GAME -- Closing state 'cxp1'
    15:57:15.81   GAME -- Setting campaign state to 'dlc1'
    15:57:15.81   GAME -- Closing state 'dlc1'
    15:57:15.81   GAME -- Setting campaign state to 'dlc2'
    15:57:15.81   GAME -- Closing state 'dlc2'
    15:57:15.81   GAME -- Setting campaign state to 'dlc3'
    15:57:15.81   GAME -- Closing state 'dlc3'
    15:57:15.82   MessageInternal::DestroyChannel: Destroyed channel 534d5347
    15:57:15.82   GAME -- Ending FE
    15:57:15.82   UIFrontEnd - Unloading Front End
    15:57:15.85   SOUND -- Shutting down ...
    15:57:15.90   SOUND -- Shutdown completed!
    15:57:15.92
    15:57:15.92   GAME -- *** Beginning mission 2p_angoville farms (1 Humans, 1 Computers) ***
    15:57:15.92
    15:57:16.00   GAME -- Recording game
    15:57:16.08   Activating screen: GameLoadScreen
    15:57:16.08   Got dlman msg [ack game CompanyOfHeroes allowtraffic]
    15:57:16.24   OnlineUpdateStateAsync: updated state for gid=141299759
    15:57:16.35   QuazalPostStatsAsync: Simulation results sent to server for gid=0
    15:57:16.35   THREAD: Hyper-Threading Technology Processors are not detected.
    15:57:16.42   SOUND -- Initializing ...
    15:57:17.26   SOUND -- Initialization completed!
    15:57:17.28   PHYSICS: detected processor(s) capable of handling 4 threads.
    15:57:17.29   MOD -- Locating MOD for scenario 'DATA:scenarios\mp\classic\2p_angoville farms\2p_angoville farms'
    15:57:17.29   MOD -- Using Mod 'Eastern_Front'
    15:57:17.31   Unable to load/parse precache file [DATA:scenarios\mp\classic\2p_angoville farms\2p_angoville farms_precache.lua]
    15:57:17.44   Re-winding a compressed stream for file 'data:sound\wav\music_nonstream\m07_ob2_findrocketlo_load.smf'.  Expensive operation
    15:57:17.45   Re-winding a compressed stream for file 'data:sound\wav\music_nonstream\m07_ob2_findrocketlo_load.smf'.  Expensive operation
    15:57:21.12   GameObjLoader - upgrading load_count from 0 to 945
    15:57:21.43   QueryMatches: Got [46] maps, [160] ids, [17] advertisements, startID [141298669]
    15:57:21.43   QuazalGetAdvertisementsAsync: Queuing refresh to obtain unknown 111 matches
    15:57:23.26   GameObjLoader - upgrading load_count from 945 to 1497
    15:57:23.42   PHYSICS -- Created node factory 'HVOK'
    15:57:23.42   PHYSICS -- Created node factory 'DMMY'
    15:57:25.69   QueryMatches: Got [45] maps, [159] ids, [17] advertisements, startID [141298994]
    15:57:25.69   QuazalGetAdvertisementsAsync: Queuing refresh to obtain unknown 94 matches
    15:57:27.55   GameObjLoader - upgrading load_count from 694 to 3068
    15:57:30.36   GameObjLoader 02fed8f0 - resetting counters
    15:57:30.36   GameObjLoader 02fed8f0 - LOAD_DONE
    15:57:30.36   GAME - SessionSetup
    15:57:30.51   CommandBPDatabase - Unable to register function [splat_attach] due to missing CommandBP.
    15:57:30.51   TERRAINTEXTURE -- compositor added RenderTarget [0] of size 1024 x 1024
    15:57:30.51   TERRAINTEXTURE -- compositor added RenderTarget [1] of size 1024 x 1024
    15:57:30.52   TERRAINTEXTURE -- compositor added RenderTarget [0] of size 1024 x 1024
    15:57:30.52   TERRAINTEXTURE -- compositor added RenderTarget [1] of size 1024 x 1024
    15:57:32.03   GAME - CreateGEWorld in 1667 ms
    15:57:32.03   TGAIO -- TGA file 'data:simulation/deformdata/Lock_deform.tga' is RLE compressed. For optimal speed, please re-save uncompressed.
    15:57:32.15   GAME - SessionSetup finished in 1791 ms
    15:57:32.15   GAME - WaterReflectionManagerSetup
    15:57:32.15   GAME - WaterReflectionManagerSetup finished in 0 ms
    15:57:32.15   QueryMatches: Got [44] maps, [155] ids, [17] advertisements, startID [141299303]
    15:57:32.16   QuazalGetAdvertisementsAsync: Queuing refresh to obtain unknown 73 matches
    15:57:32.51   MessageInternal::CreateChannel: Created channel 474d4343
    15:57:32.52   Regenerating ImpassMap data...
    15:57:32.52       Impass Data was already valid, but regenerating...
    15:57:32.63   Generating CanBuild Map.  THIS SHOULD ONLY HAPPEN IN WORLDBUILDER!  IF YOU SEE THIS IN GAME, RE-SAVE THE MAP!
    15:57:32.63   Regenerating CanBuildMap data...
    15:57:32.63   Generating CanShoot Map.
    15:57:32.63   Pathfinder::Regenerate()...
    15:57:32.67   Generating PathSectorMap...
    15:57:32.86   Pathfinder::Regenerate() Done.
    15:57:33.03   ModWorld::LoadWinCondition: - [DATA:Scar/WinConditions/zannihilate.scar] succeeded.
    15:57:33.23   MOD -- Player  (unused player) (frame 0) (KillPlayer)
    15:57:33.23   MOD -- Player  (unused player) (frame 0) (KillPlayer)
    15:57:33.23   MOD -- Player  (unused player) (frame 0) (KillPlayer)
    15:57:33.23   MOD -- Player  (unused player) (frame 0) (KillPlayer)
    15:57:33.23   MOD -- Player  (unused player) (frame 0) (KillPlayer)
    15:57:33.23   MOD -- Player  (unused player) (frame 0) (KillPlayer)
    15:57:33.39   MessageInternal::CreateChannel: Created channel 4d4f444d
    15:57:34.25   BindingsSystem -- Cannot create binding.  Unknown type 'repair_radius_circle'
    15:57:34.25   BindingsSystem -- Cannot create binding.  Unknown type 'repair_radius_circle'
    15:57:34.26   BindingsSystem -- Cannot create binding.  Unknown type 'repair_radius_circle'
    15:57:34.26   BindingsSystem -- Cannot create binding.  Unknown type 'repair_radius_circle'
    15:57:34.26   BindingsSystem -- Cannot create binding.  Unknown type 'repair_radius_circle'
    15:57:34.86   SPEECHMANAGER -- Loaded in 0.559349 seconds
    15:57:36.12   GameObjLoader - upgrading load_count from 0 to 299
    15:57:36.28   QueryMatches: Got [43] maps, [159] ids, [17] advertisements, startID [141299415]
    15:57:36.29   QuazalGetAdvertisementsAsync: Queuing refresh to obtain unknown 60 matches
    15:57:36.75   GameObjLoader 02feda50 - resetting counters
    15:57:36.75   GameObjLoader 02feda50 - LOAD_DONE
    15:57:37.18   PreloadResources took 356ms.
    15:57:37.32   GAME -- Loading completed (21 seconds)
    15:57:37.32   SIM -- Setting SyncErrorChecking level to Low
    15:57:39.76   Activating screen: GameScreen
    15:57:39.76   Activating screen: Decorators_widescreen
    15:57:39.76   Activating screen: Taskbar_widescreen
    15:57:39.76   Activating screen: SubtitleScreen
    15:57:39.76   Activating screen: TextOverlayScreen
    15:57:39.82   PerformanceRecorder::StartRecording for game size 2
    15:57:39.82   GAME -- Starting mission...
    15:57:40.35   MOD -- Player CPU - Normal set to AI Type: AI Player (frame 1) (CmdAI)
    15:57:40.53   QueryMatches: Got [46] maps, [162] ids, [17] advertisements, startID [141299572]
    15:57:40.54   QuazalGetAdvertisementsAsync: Queuing refresh to obtain unknown 48 matches
    15:57:45.09   Warning: non auto-match upgrade not found in AE, tuning
    15:57:45.21   QueryMatches: Got [46] maps, [162] ids, [17] advertisements, startID [141299636]
    15:57:45.22   QuazalGetAdvertisementsAsync: Queuing refresh to obtain unknown 32 matches
    15:57:46.09   MOD -- Player toadstooleb (kill endgame) (frame 47) (KillPlayer)
    15:57:46.09   MOD -- Game Over at frame 47
    15:57:46.09   MOD -- Could not find win condition 'annihilate'
    15:57:46.09   MOD -- Could not find win condition 'annihilate'
    15:57:46.12   GameApp::ReportStats
    15:57:46.12   ReportMatchResults - onlyReportOnWin = 0
    15:57:46.12   ReportMatchResults - SimID:1000, raceID:0, teamID:0, uid:0:0, AI player, ignoring
    15:57:46.12   ReportMatchResults - SimID:1001, raceID:6, teamID:1, uid:0:559270, result:3:PS_KILLED
    15:57:46.12   ReportMatchResults - reporting normal game results for match 0:141299759
    15:57:46.14   ReportSimStats - storing simulation results for match 0:141299759
    15:57:46.14   GameObj::DoGameOverPopup
    15:57:46.14   Activating screen: GameOverDialog
    15:57:46.14   ArbitrationMessageNeeded 0 allies vs 0 enemies result 0
    15:57:46.14   GameOverDialog - normal game ending (no sync errors)
    15:57:46.14   OnlineReportResults - player=559270, gid = 141299759, time=6, result=3, team=1, race=6, simPlayerID=1001
    15:57:46.14   OnlineReportResults: Call started.
    15:57:46.24   RendezvousNotifier - StatsUpdate MatchEvent - flushing player stats for pid = 559270.
    15:57:46.24   RNT_StatsUpdate: Loss notification, userID [00000000:000888a6], matchType=14, race =6, level+=0
    15:57:46.24   FEAppListener - Processing win/loss notification
    15:57:46.24   RendezvousNotifier - received report simulation stats notification, sending simulation stats to lobby.
    15:57:46.24   PostStoredStats: matchID = [00000000:086c102f] is unknown
    15:57:46.33   QuazalPostStatsAsync: Simulation results sent to server for gid=0
    15:57:46.36   GetUserStats requested stats for PIDs ( 559270 ) (best:0, full:1)
    15:57:50.20   QueryMatches: Got [47] maps, [159] ids, [17] advertisements, startID [141299723]
    15:57:50.20   QuazalGetAdvertisementsAsync: Queuing refresh to obtain unknown 15 matches
    15:57:52.34   GameApp::Quit( exitValue = 0 )
    15:57:52.37   Activating screen: AppRestartingForm
    15:57:52.37   SetupProductLoadingArt - choosing bgArt = 3 (gold=0)
    15:57:52.37   Widget attempting to remove a non-existance listener. Widget:bkg_COH
    15:57:52.37   Widget attempting to remove a non-existance listener. Widget:bkg_CXP1
    15:57:52.37   Widget attempting to remove a non-existance listener. Widget:bkg_CXP2
    15:57:52.37   Widget attempting to remove a non-existance listener. Widget:bkg_COHCXP1
    15:57:52.37   Widget attempting to remove a non-existance listener. Widget:bkg_ToV
    15:57:52.38   GameApp::ShutFrontEnd
    15:57:52.38   GameObj::ShutdownGameObj
    15:57:52.38   Calling disconnect...
    15:57:52.38   Session is marking the local peer PeerID 1 for death
    15:57:52.38   OnlineLeaveAdvertisementAsync: Match id = 141299759 started, nothing to do
    15:57:52.38   Session::GetEvent DestroyPeer success Peer 1 removed
    15:57:52.38   Session::DestroyPeer - deallocating peer 1
    15:57:52.38   Session - Requested Disconnect for connectionID 2
    15:57:52.38   Deallocated route ID=3 for PeerID 1 at WINaddr:192.168.10.12:6112;
    15:57:52.38   Session - Requested Disconnect for connectionID 3
    15:57:52.38   Closed route 3<>3 for PeerID 1 at WINaddr:192.168.10.12:6112;
    15:57:52.38   AdvertisementInternal::Process - EVENT_DESTROYPEER
    15:57:52.38   LeaveMatchInternal - no action taken, needLeave=0, service=0
    15:57:52.38   Destroyed Matchinfo
    15:57:52.38   GAME -- Ending mission (Game over)
    15:57:52.39   GameObjLoader 02feda50 - Unload
    15:57:52.39   GameObjLoader 02feda50 - resetting counters
    15:57:52.42   MessageInternal::DestroyChannel: Destroyed channel 4d4f444d
    15:57:52.46   GameObjLoader 02fed8f0 - Unload
    15:57:52.46   GameObjLoader 02fed8f0 - resetting counters
    15:57:52.50   SOUND -- Shutting down ...
    15:57:52.54   SOUND -- Shutdown completed!
    15:57:52.54   MessageInternal::DestroyChannel: Destroyed channel 474d4343
    15:57:52.55   ~FEAppListener - Flushing queued online notifications
    15:57:53.18   DLLDriverLinker -- 2 DLL drivers found.
    15:57:53.18   ActionDatabase : [2342] global actions, [5] dummy actions.
    15:57:53.18   NetworkManager::Destroy - destroying network manager
    15:57:53.18   RendezvousManager::Shutdown - deleting instance
    15:57:53.18   RendezvousManager - terminating all server calls in progress
    15:57:53.18   CallManager - terminating all server calls in progress (1 in progress)
    15:57:53.18   RendezvousManager - destroying chat handler
    15:57:53.18   RendezvousManager::DestroyNATTraversalClient - NAT traversal no longer available.
    15:57:53.18   ~RendezvousManager - disconnecting from server
    15:57:53.29   MessageInternal::DestroyChannel: Destroyed channel 51434b4d
    15:57:53.29   MessageInternal::DestroyChannel: Destroyed channel 50525459
    15:57:53.29   PartyInternal: Fade to black
    15:57:53.29   AutomatchInternal: Fade to black
    15:57:53.29   PeerRemoveAll - flushing local session peer data
    15:57:53.29   Session::Reset with reason 999 and MatchInternal::PeerRemoveAll
    15:57:53.29   MessageInternal::DestroyChannel: Destroyed channel 47535450
    15:57:53.29   Session - Requested Disconnect for connectionID 1
    15:57:53.29   SessionManager::UnregisterSession - Unregistering session 06f70858
    15:57:53.29   SessionManager::~SessionManager - uninitializing
    15:57:53.30   Net::ThreadFunction - Returning from the network thread function...
    15:57:53.32   Transport::~Transport - shutting down transport
    15:57:53.32   Transport::~Connection - closing WINaddr:255.255.255.255:6112;,WINaddr:255.255.255.255:6112;
    15:57:53.32   Transport::~Connection - closing WINaddr:192.168.10.12:6112;,WINaddr:192.168.10.12:6112;
    15:57:53.32   AsyncJobDriver::~AsyncJobDriver() - dynamically allocated job DisconnectAsync is still running
    15:57:53.32   AsyncJobDriver::~AsyncJobDriver() - dynamically allocated job OnlineLeaveAdvertisementAsync is still running
    15:57:53.32   Wrote 749 bytes to network datastore login_cache.bin
    15:57:53.32   Wrote 107890 bytes to network datastore global_cache.bin
    15:57:53.33   Wrote 268318 bytes to network datastore ping_cache.bin
    15:57:53.33   Datastore -- uninitialize complete
    15:57:53.33   QuazalInitializer - static uninit of Quazal library
    15:57:53.33   QuazalInitializer - unhooking memory 0 currently allocated, 21489 allocations, total of 6555756 bytes
    Scar
    Code:
    -- Log file for all error messages related to the Scar --
    
    Starting SCAR...
    binding game ender --------------------------------------------------------------------------------
    688
    WC_CheckEndGame: Annihilate: killing a player from team: 1
    Shutting Down SCAR...
    AI

    Code:
    -- Log file for all error messages related to the AI --
    
    Error loading script file 'DATA:AI/default.ai' for race insert-race-here!
    only PM plz email no work

    jagdpanther ist der beste kerl den ich je im netz begegnet

    Ruh in frieden Loran Korn

    :)

  18. #68
    Member Jagdpanther's Avatar
    Join Date
    Dec 2008
    Location
    Berlin
    OK the basic definitions looks good so far. If all the linked files allready exist on the linked locations, then all is well defined.

    But that was only one of the first steps for the scar/ai part. So it's normally that now comes the ai to play and we get here the first errors, because all what we now have is incomplete.

    For testing purposes make sure you choose at this time only the human player to get the main stuff working.

    Scar can still work without errors, because that part is done via luaconsts, wcutil and the wincondition.

    Now the ai part:

    Open up the Data/ai/default.ai and search for the line error("Player has invalid race ".. s_current_race).
    Our new race is unknown here (and many other scripts, but this comes later). So we need to add it here. That are the reasons, why the ai does crash here, because the error reporting for ai is disabled since the last patches.

    Example:
    Code:
    	if (s_current_race == TRACE_ALLIES) then
    		s_engineer = SBP.ALLIES.ENGINEER
    	elseif (s_current_race == TRACE_AXIS) then
    		s_engineer = SBP.AXIS.PIONEER
    	elseif (s_current_race == TRACE_ALLIES_COMMONWEALTH) then
    		s_engineer = SBP.CW.TOMMIES
    	elseif (s_current_race == TRACE_AXIS_PANZER_ELITE) then
    		s_engineer = SBP.ELITE.PANZERGRENADIER
    	elseif (s_current_race == TRACE_RACENAME) then
    		s_engineer = SBP.RACENAME.PIONIER
    	else
    		error("Player has invalid race ".. s_current_race)
    	end
    Here are used the definitions from luaconsts.

  19. #69
    Is this what you are talking about adding to the file? Or am I missing something.

    DEFAULT.AI


  20. #70
    Member Jagdpanther's Avatar
    Join Date
    Dec 2008
    Location
    Berlin
    Yes I have added an example above. One Note: "PIONEER" could also be "ENGINEER", depending on your race definition (see in luaconsts).

    Oh and replace RACENAME with your Race string. Now are two users in this thread.

    Edit: @RelicModder, use the warnings.log from outside the logfolder. This is the better one.

    After any changes they are made on scriptfiles please use the "check syntax" button after work, this prevents for coding errors (missing comma and other trivials but essentiallies).

  21. #71
    Member RelicModder's Avatar
    Join Date
    Aug 2010
    Location
    Berlin
    so i did the change for my ostheer still got the error

  22. #72
    Mine throws the same error as well.

  23. #73
    Member RelicModder's Avatar
    Join Date
    Aug 2010
    Location
    Berlin
    which the 5 second defeat

  24. #74
    Member Jagdpanther's Avatar
    Join Date
    Dec 2008
    Location
    Berlin
    Be cool, it's fully normal. We need some files to change before we can see the first run. It could be that it would stronger on our way, but when we are finish, all works well.

    The next file is "personality.ai":

    add the bold marked line:
    Code:
    	if (s_current_race == TRACE_ALLIES) then
    		raceStr = "allies"
    	elseif (s_current_race == TRACE_AXIS) then
    		raceStr = "axis"
    	elseif (s_current_race == TRACE_ALLIES_COMMONWEALTH) then
    		raceStr = "allies_cw"
    	elseif (s_current_race == TRACE_AXIS_PANZER_ELITE) then
    		raceStr = "axis_pe"
    	elseif (s_current_race == TRACE_AXIS_RACENAME) then
    		raceStr = "axis_racename"
    	else
    		error("Player has invalid race ".. s_current_race)
    	end
    Last edited by Jagdpanther; 24th Aug 10 at 3:42 PM.

  25. #75
    "FATAL AI ERROR - EXECUTION PAUSED"

  26. #76
    Member RelicModder's Avatar
    Join Date
    Aug 2010
    Location
    Berlin
    ok come at us with what we must change

    why didnt you do the TUT

    OH PS i did do the personality

  27. #77

  28. #78
    Member RelicModder's Avatar
    Join Date
    Aug 2010
    Location
    Berlin
    oh the fatal could just be a white spot or space in the coding

  29. #79
    Member Jagdpanther's Avatar
    Join Date
    Dec 2008
    Location
    Berlin
    wait a moment, must see which file is the best for next step.

    "rule_unit_purchase.ai" is the next file.

    Go to this part:
    Code:
    s_axis_munition_units = 
    {
    	-- NAME, MUNITION RATE, MUNITION FLOAT, ANTICLASS(HEAVY_VEHICLE, INFANTRY, LIGHT_VEHICLE, MEDIUM_VEHICLE, STRUCTURE)
    	[BP_GetID(SBP.AXIS.OFFICER)] = {45, 450, {7, 7, 9, 0.5, 9} },
    	[BP_GetID(SBP.AXIS.GRENADIER)] = {30, 200, {5, 5, 7, 6, 4} },
    	[BP_GetID(SBP.AXIS.HALFTRACK)] = {60, 450, {6, 5, 9, 0.5, 5} },
    	[BP_GetID(SBP.AXIS.PIONEER)] = {40, 200, {0.5, 1, 0.5, 0.5, 3} },
    	[BP_GetID(SBP.AXIS.STORMTROOPER)] = {40, 250, {8, 6, 11, 2, 7} }, -- bundled grenade factored in
    	[BP_GetID(SBP.AXIS.VOLKSGRENADIER)] = {40, 200, {1, 1.5, 5, 1, 5} },	
    	[BP_GetID(SBP.AXIS.PUMA)] = {40, 200, {4, 6, 10, 4, 2} },
    }
    and add this (we only need the table name here):
    Code:
    s_axis_racename_munition_units =
    {
    	-- TODO: add RACE munition units here like above or leave it blank
    }
    Same for this part:
    Code:
    axis_purchase_limits = {
    	[BP_GetID(SBP.AXIS.MOTORCYCLE)] = 1,
    	[BP_GetID(SBP.AXIS.HALFTRACK)] = 0, -- axis doesn't build the halftrack
    	[BP_GetID(SBP.AXIS.SNIPER)] = 3,
    	[BP_GetID(SBP.AXIS.MORTAR)] = 1,
    	[BP_GetID(SBP.AXIS.NEBELWERFER)] = 0, -- no nebelwerfers for the axis
    	[BP_GetID(SBP.AXIS.OFFICER)] = 0, -- no officers for the axis
    	[BP_GetID(SBP.AXIS.HEAVYMG)] = 2,
    }
    add
    Code:
    axis_racename_purchase_limits = {
    	-- TODO: add RACENAME purchase limits here like above or leave it blank
    }
    After the function AxisPE_SpecialUnitDemand add a new function
    Code:
    function Axis_Racename_SpecialUnitDemand( unitPBG, currentDemand )
    
    	local demand_increase = 0
    	
    	local pbgid = BP_GetID( unitPBG )
    	local mun_unit = s_axis_racename_munition_units[ pbgid ]
    
    --	if (mun_unit) then
    --		-- TODO: add somewhat here
    --	end
    
    	if (unitPBG == s_engineer) then
    		return EngineerPioneerDemand()
    	end
    
    	-- TODO: add more type checking
    	
    	return 0
    	
    end
    And after the function AxisPE_SpecialUnitAbilityDemand add this new function
    Code:
    function Axis_Racename_SpecialUnitAbilityDemand( unitPBG, currentDemand )
    
    	-- TODO: add type checking
    
    	return 0
    
    end
    That's all for the "rules_unit_puchase.ai".

    @RelicModder we can really check for errors first if we have done the complete ai part, otherwise this is fully normal.

  30. #80
    Ok, ready for the next step.

  31. #81
    Member Jagdpanther's Avatar
    Join Date
    Dec 2008
    Location
    Berlin
    OK next file "rules_tech_purchase.ai" needs some equal changes.

    Add this function after "AxisPE_SpecialTechBuildingRules"
    Code:
    function Axis_Racename_SpecialTechBuildingRules( tech_pbg )
    
    	if tech_pbg == nil then
    		return 0
    	end
    
    	-- no rules for easy
    	if (s_diffLevel==AD_Easy) then
    		return 0
    	end
    
    	-- if we have a good fuel economy - don't build this building 
    	local strongFuel = false
    	local strongerFuel = false
    	local curResources = AIResource_GetCurrentResources( s_selfplayer )
    	local resRate = AIResource_GetCurrentResourceRate( s_selfplayer )
    	if (curResources.fuel > 100) then
    		strongFuel = true
    	end
    	if (curResources.fuel > 200) then
    		strongerFuel = true
    	end
    
    	-- no demand increase
    	return 0
    
    end
    And this function after "AxisPE_SpecialUpgradeRules"
    Code:
    function Axis_Racename_SpecialUpgradeRules( upgrade_pbg )
    	
    	if upgrade_pbg == nil then
    		return 0
    	end
    	
    	local curResources = AIResource_GetCurrentResources( s_selfplayer )
    	local resRate = AIResource_GetCurrentResourceRate( s_selfplayer )
    	
    	-- TODO: add rules for these
    			
    	-- no demand increase
    	return 0
    
    end
    That's all for "rules_tech_purchase.ai"

    Next file "rule_addon_purchase.ai"

    Add this function after "AxisPESquadAddonUpgradeRules"
    Code:
    function Axis_Racename_SquadAddonUpgradeRules( upgradePBG, currentDemand )
    
    --	if (upgradePBG == UPG.RACENAME.??? ) then
    --		return 50
    --	end
    
    	-- TODO: INSERT RULES HERE
    	
    	return DecreasedDemandOnCount( upgradePBG )
    	
    end
    That's all for "rule_addon_purchase.ai".

  32. #82
    Ok, ready for the next step.

  33. #83
    Member Jagdpanther's Avatar
    Join Date
    Dec 2008
    Location
    Berlin
    For today it's enough for me. I need a little bit sleep. Now it is here 00:00 o'clock. Tomorrow we need to change the strategy ai files which refers to the now properly added functions and variables.

    I do hope @MasterGunz67 has changed "Racename" by "chaoslegion" and @RelicModder by "Ostheer".

  34. #84
    Ok, thank you very much for your help. I really appreciate it! See you tomorrow!

  35. #85
    Member Jagdpanther's Avatar
    Join Date
    Dec 2008
    Location
    Berlin
    OK, good night.

  36. #86
    Member RelicModder's Avatar
    Join Date
    Aug 2010
    Location
    Berlin
    thx

  37. #87
    Member Jagdpanther's Avatar
    Join Date
    Dec 2008
    Location
    Berlin
    OK now it can go on.

    An additional Note for the "rules_xxx_purchase.ai" files: The functions they we have added, can be filled later with nessessary faction related stuff. But for get the ai running it is not needed at this time.

    The next file is "strategy_unit_purchase.ai":

    Search for this:
    Code:
    	else
    		error("Player has invalid race "..s_current_race)
    	end
    and add this above:
    Code:
    	elseif (s_current_race == TRACE_AXIS_RACENAME) then
    		s_unit_demand_offset_func = Axis_Racename_SpecialUnitDemand
    		s_unitability_demand_offset_func = Axis_Racename_SpecialUnitAbilityDemand
    		s_unit_purchase_limit = axis_racename_purchase_limits
    ---------------------------------------------

    The next file is "strategy_tech_purchase.ai":

    Search for this:
    Code:
    	else
    		error("Player has invalid race "..s_current_race)
    	end
    and add this above:
    Code:
    	elseif (s_current_race == TRACE_AXIS_RACENAME) then
    		
    		s_special_techtree_rules = Axis_Racename_SpecialTechBuildingRules
    		s_special_upgrade_rules = Axis_Racename_SpecialUpgradeRules
    ---------------------------------------------

    The next file is "strategy_defence_purchase.ai":

    Search for this:
    Code:
    s_securing_structures_axis_pe = {
    }
    and add this beyond:
    Code:
    s_securing_structures_axis_racename = {
    	-- TODO: add RACENAME securing stuff here
    }
    Search for this:
    Code:
    s_defend_structures_axis_pe = {
    	{pbg = EBP.ELITE.MINE_TELLER, buildstyle=BS_Mines, demand_type = DEMAND_Building },
    	{pbg = EBP.SYNC_WEAPON.FLAK_38, buildstyle=BS_Defend, demand_type = DEMAND_Building },
    	{pbg = EBP.SYNC_WEAPON.FLAK_88, buildstyle=BS_Defend, demand_type = DEMAND_Building, demand_pref=7 },
    }
    and add this beyond:
    Code:
    s_defend_structures_axis_racename = {
    	-- {pbg = EBP.RACENAME.MG_NEST, buildstyle=BS_Defend, demand_type = DEMAND_Building },
    	-- TODO: add more RACENAME structures here like above
    }
    Search for this:
    Code:
    	else
    		error("Player has invalid race "..s_current_race)
    	end
    and add this above:
    Code:
    	elseif (s_current_race == TRACE_AXIS_RACENAME) then
    		s_securing_structures = s_securing_structures_axis_racename
    		s_defend_structures = s_defend_structures_axis_racename
    		
    		s_special_techtree_rules = Axis_Racename_SpecialTechBuildingRules
    		s_special_upgrade_rules = Axis_Racename_SpecialUpgradeRules
    		
    		-- change this to the OPPOSITE "BARBED_WIRE", 
    		-- so in this case "EBP.ALLIES.BARBED_WIRE"
      		s_enemy_barbwire = EBP.ALLIES.BARBED_WIRE
    ---------------------------------------------

    The next file is "strategy_addon_purchase.ai":

    Search for this:
    Code:
    	else
    		error("Player has invalid race "..s_current_race)
    	end
    and add this above:
    Code:
    	elseif (s_current_race == TRACE_AXIS_RACENAME) then
    		s_addon_demand_offset_func = Axis_Racename_SquadAddonUpgradeRules
    ---------------------------------------------

    Now we have "connected" our new tables and functions created yesterday, ready for use.
    Last edited by Jagdpanther; 27th Aug 10 at 1:13 PM.

  38. #88
    Cool stuff, ready for the next step. Again, thanks for all the help! (I'l probably say this a thousand times)

  39. #89
    Member Jagdpanther's Avatar
    Join Date
    Dec 2008
    Location
    Berlin
    lol - then you can make it a few times again.

    The next file is "util/production_util.ai":

    Search for this:
    Code:
    axis_pe_spawner = {EBP.ELITE.PANZERJAGER, EBP.ELITE.LOGISTIK, EBP.ELITE.KAMPFGRUPPE, EBP.ELITE.PANZER_ARTILLERIE}
    and add this beyond:
    Code:
    -- add your RACENAME spawner buildings here
    axis_racename_spawner = {EBP.RACENAME.QUARTERS, EBP.RACENAME.COMMAND, EBP.RACENAME.ARMORY, EBP.RACENAME.BARRACKS}
    Search for this:
    Code:
    axis_pe_tier1_spawner = {EBP.ELITE.PANZERJAGER,EBP.ELITE.LOGISTIK}
    axis_pe_tier2_spawner = {EBP.ELITE.KAMPFGRUPPE,EBP.ELITE.PANZER_ARTILLERIE}
    and add this beyond:
    Code:
    -- add your RACENAME spawner buildings here
    -- You can use tier1_spawner only or divide it as it seen here
    axis_racename_tier1_spawner = {EBP.RACENAME.QUARTERS, EBP.RACENAME.BARRACKS}
    axis_racename_tier2_spawner = {EBP.RACENAME.COMMAND, EBP.RACENAME.ARMORY}
    Search for this:
    Code:
    function _chooseBasedOnRace( alliesChoice, axisChoice, alliesCWChoice, axisPEChoice )
    and change it to:
    Code:
    function _chooseBasedOnRace( alliesChoice, axisChoice, alliesCWChoice, axisPEChoice, axis_RACENAME_Choice )
    Search for this:
    Code:
    	else
    		error("Player has invalid race "..s_current_race)
    	end
    and add this above:
    Code:
    	elseif (s_current_race == TRACE_AXIS_RACENAME) then
    		return AXIS_RACENAME_Choice
    Search for this:
    Code:
    	local t = _chooseBasedOnRace( allies_spawner, axis_spawner, allies_cw_spawner, axis_pe_spawner )
    and change it to:
    Code:
    	local t = _chooseBasedOnRace( allies_spawner, axis_spawner, allies_cw_spawner, axis_pe_spawner, axis_racename_spawner )
    Search for this:
    Code:
    	local t = _chooseBasedOnRace( allies_spawner, axis_spawner, allies_cw_spawner, axis_pe_spawner )
    and change it to:
    Code:
    	local t = _chooseBasedOnRace( allies_spawner, axis_spawner, allies_cw_spawner, axis_pe_spawner, axis_racename_spawner )
    Search for this:
    Code:
    	local t = _chooseBasedOnRace( allies_tier1_spawner, axis_tier1_spawner, allies_cw_tier1_spawner, axis_pe_tier1_spawner )
    and change it to:
    Code:
    	local t = _chooseBasedOnRace( allies_tier1_spawner, axis_tier1_spawner, allies_cw_tier1_spawner, axis_pe_tier1_spawner, axis_racename_tier1_spawner )
    Search for this:
    Code:
    	local t = _chooseBasedOnRace( allies_tier1_spawner, axis_tier1_spawner, allies_cw_tier1_spawner, axis_pe_tier1_spawner )
    and change it to:
    Code:
    	local t = _chooseBasedOnRace( allies_tier1_spawner, axis_tier1_spawner, allies_cw_tier1_spawner, axis_pe_tier1_spawner, axis_racename_tier1_spawner )
    Search for this:
    Code:
    	local t = _chooseBasedOnRace( allies_tier2_spawner, axis_tier2_spawner, allies_cw_tier2_spawner, axis_pe_tier2_spawner )
    and change it to:
    Code:
    	local t = _chooseBasedOnRace( allies_tier2_spawner, axis_tier2_spawner, allies_cw_tier2_spawner, axis_pe_tier2_spawner, axis_racename_tier2_spawner )
    Search for this:
    Code:
    	local t = _chooseBasedOnRace( allies_tier2_spawner, axis_tier2_spawner, allies_cw_tier2_spawner, axis_pe_tier2_spawner )
    and change it to:
    Code:
    	local t = _chooseBasedOnRace( allies_tier2_spawner, axis_tier2_spawner, allies_cw_tier2_spawner, axis_pe_tier2_spawner, axis_racename_tier2_spawner )
    ---------------------------------------------

  40. #90
    Ok, good to go.

  41. #91
    Member Jagdpanther's Avatar
    Join Date
    Dec 2008
    Location
    Berlin
    The next file is "personality/player_ability_defs_coh.ai":

    Search for this:
    Code:
    dbAssert( TRACE_ALLIES_COMMONWEALTH ~= nil )
    and add this beyond:
    Code:
    dbAssert( TRACE_AXIS_RACENAME ~= nil )
    Search for this:
    Code:
    s_player_ability_defs_coh[TRACE_ALLIES_COMMONWEALTH] = {}
    and add this beyond:
    Code:
    s_player_ability_defs_coh[TRACE_AXIS_RACENAME] = {}
    Search for this:
    Code:
    s_player_ability_defs_coh[TRACE_ALLIES_COMMONWEALTH][BP_GetID(UPG.COMMANDER_TREE.CW.ENGINEERS)] = 
    	{
    		munition_abilities = {
    		},
    		production_abilities = {
    			ABILITY.COMMANDER_TREE.CW.RECRUIT_CHURCHILL,
    			ABILITY.COMMANDER_TREE.CW.RECRUIT_CHURCHILL_AVRE,
    			ABILITY.COMMANDER_TREE.CW.RECRUIT_CHURCHILL_CROC,
    			ABILITY.CW.HQ_REINFORCE
    		}
    	}
    and add this beyond:
    Code:
    s_player_ability_defs_coh[TRACE_AXIS_RACENAME][BP_GetID(UPG.COMMANDER_TREE.RACENAME.TREENAME1)] = 
    	{
    		munition_abilities = {
    			-- add your Commander Tree Abilies for this tree here like above
    		},
    		production_abilities = {
    			-- add your Commander Tree Abilies for this tree here like above
    		}
    	}
    
    s_player_ability_defs_coh[TRACE_AXIS_RACENAME][BP_GetID(UPG.COMMANDER_TREE.RACENAME.TREENAME2)] = 
    	{
    		munition_abilities = {
    			-- add your Commander Tree Abilies for this tree here like above
    		},
    		production_abilities = {
    			-- add your Commander Tree Abilies for this tree here like above
    		}
    	}
    	
    s_player_ability_defs_coh[TRACE_AXIS_RACENAME][BP_GetID(UPG.COMMANDER_TREE.RACENAME.TREENAME3)] = 
    	{
    		munition_abilities = {
    			-- add your Commander Tree Abilies for this tree here like above
    		},
    		production_abilities = {
    			-- add your Commander Tree Abilies for this tree here like above
    		}
    	}
    TREENAME1 - 3 are needed to change to the existing treenames in your race.

    ---------------------------------------------

  42. #92
    Member RelicModder's Avatar
    Join Date
    Aug 2010
    Location
    Berlin
    end

    -- TODO: add more type checking

    return 0
    what?

  43. #93
    He is just stubbing it so that we can continue adding the additional code. We can go back later and add what we need to the functions/methods.

  44. #94
    Member RelicModder's Avatar
    Join Date
    Aug 2010
    Location
    Berlin
    oh it is not a necessity opps

    ..
    o

  45. #95
    Member Jagdpanther's Avatar
    Join Date
    Dec 2008
    Location
    Berlin
    The next file is "personality/command_tree_prefs_lib.ai":

    Search for this:
    Code:
    CT_PZ = UPG.COMMANDER_TREE.ELITE
    and add this beyond:
    Code:
    CT_RACENAME = UPG.COMMANDER_TREE.RACENAME
    Search for this:
    Code:
    	axis_pe = {
    
    		-- LUFTWAFFE SUPPORT
    		pe_luftwaffe_random = {
    			main = CT_PZ.LUFTWAFFE,
    			--choices = {} -- choices as nil means random
    		},
    	
    		pe_luftwaffe_left_first = {
    			main = CT_PZ.LUFTWAFFE,
    			choices = {CT_PZ.LUFTWAFFE_00, CT_PZ.LUFTWAFFE_01, CT_PZ.LUFTWAFFE_02, CT_PZ.LUFTWAFFE_10, CT_PZ.LUFTWAFFE_11, CT_PZ.LUFTWAFFE_12,}
    		},
    	
    		pe_luftwaffe_right_first = {
    			main = CT_PZ.LUFTWAFFE,
    			choices = {CT_PZ.LUFTWAFFE_10, CT_PZ.LUFTWAFFE_11, CT_PZ.LUFTWAFFE_12,CT_PZ.LUFTWAFFE_00, CT_PZ.LUFTWAFFE_01, CT_PZ.LUFTWAFFE_02,}
    		},
    	
    		pe_scorched_random = {
    			main = CT_PZ.SCORCHED_EARTH,
    			--choices = {} -- choices as nil means random
    		},
    	
    		pe_scorched_left_first = {
    			main = CT_PZ.SCORCHED_EARTH,
    			choices = {CT_PZ.SCORCHED_EARTH_00, CT_PZ.SCORCHED_EARTH_01, CT_PZ.SCORCHED_EARTH_02, CT_PZ.SCORCHED_EARTH_10, CT_PZ.SCORCHED_EARTH_11, CT_PZ.SCORCHED_EARTH_12,}
    		},
    	
    		pe_scorched_right_first = {
    			main = CT_PZ.SCORCHED_EARTH,
    			choices = {CT_PZ.SCORCHED_EARTH_10, CT_PZ.SCORCHED_EARTH_11, CT_PZ.SCORCHED_EARTH_12, CT_PZ.SCORCHED_EARTH_00, CT_PZ.SCORCHED_EARTH_01, CT_PZ.SCORCHED_EARTH_02,}
    		},
    	
    		pe_tankdestroyer_random = {
    			main = CT_PZ.TANK_DESTROYER,
    			--choices = {} -- choices as nil means random
    		},
    	
    		pe_tankdestroyer_left_first = {
    			main = CT_PZ.TANK_DESTROYER,
    			choices = {CT_PZ.TANK_DESTROYER_00, CT_PZ.TANK_DESTROYER_01, CT_PZ.TANK_DESTROYER_02, CT_PZ.TANK_DESTROYER_10, CT_PZ.TANK_DESTROYER_11, CT_PZ.TANK_DESTROYER_12,}
    		},
    	
    		pe_tankdestroyer_right_first = {
    			main = CT_PZ.TANK_DESTROYER,
    			choices = {CT_PZ.TANK_DESTROYER_10, CT_PZ.TANK_DESTROYER_11, CT_PZ.TANK_DESTROYER_12, CT_PZ.TANK_DESTROYER_00, CT_PZ.TANK_DESTROYER_01, CT_PZ.TANK_DESTROYER_02,}
    		},
    	
    	},
    	
    	-- <-- add here the following table you can remove this line after them
    }
    and add this on the marked place (scroll down the coding box above):
    Code:
    	axis_racename = {
    		
    		-- TRENAME1
    		axis_racename_treename1_random = {
    			main = CT_RACENAME.TRENAME1,
    			--choices = {} -- choices as nil means random
    		},
    		
    		axis_racename_treename1_left_first = {
    			main = CT_RACENAME.TRENAME1,
    			choices = {CT_RACENAME.TRENAME1_00, CT_RACENAME.TRENAME1_01, CT_RACENAME.TRENAME1_02,CT_RACENAME.TRENAME1_10, CT_RACENAME.TRENAME1_11, CT_RACENAME.TRENAME1_12,}
    		},
    		
    		axis_racename_treename1_right_first = {
    			main = CT_RACENAME.TRENAME1,
    			choices = {CT_RACENAME.TRENAME1_10, CT_RACENAME.TRENAME1_11, CT_RACENAME.TRENAME1_12,CT_RACENAME.TRENAME1_00, CT_RACENAME.TRENAME1_01, CT_RACENAME.TRENAME1_02,}
    		},
    		
    		-- TRENAME2
    		axis_racename_treename2_random = {
    			main = CT_RACENAME.TRENAME2,
    			--choices = {} -- choices as nil means random	
    		},
    		
    		axis_racename_treename2_left_first = {
    			main = CT_RACENAME.TRENAME2,
    			choices = {CT_RACENAME.TRENAME2_00, CT_RACENAME.TRENAME2_01, CT_RACENAME.TRENAME2_02,CT_RACENAME.TRENAME2_10, CT_RACENAME.TRENAME2_11, CT_RACENAME.TRENAME2_12,}
    		},
    		
    		axis_racename_treename2_right_first = {
    			main = CT_RACENAME.TRENAME2,
    			choices = {CT_RACENAME.TRENAME2_10, CT_RACENAME.TRENAME2_11, CT_RACENAME.TRENAME2_12,CT_RACENAME.TRENAME2_00, CT_RACENAME.TRENAME2_01, CT_RACENAME.TRENAME2_02,}
    		},
    		
    		-- TRENAME3
    		axis_racename_treename3_random = {
    			main = CT_RACENAME.TRENAME3,
    			--choices = {} -- choices as nil means random
    		},
    		
    		axis_racename_treename3_left_first = {
    			main = CT_RACENAME.TRENAME3,
    			choices = {CT_RACENAME.TRENAME3_00, CT_RACENAME.TRENAME3_01, CT_RACENAME.TRENAME3_02, CT_RACENAME.TRENAME3_10, CT_RACENAME.TRENAME3_11, CT_RACENAME.TRENAME3_12,}
    		},
    		
    		axis_racename_treename3_right_first = {
    			main = CT_RACENAME.TRENAME3,
    			choices = {CT_RACENAME.TRENAME3_10, CT_RACENAME.TRENAME3_11, CT_RACENAME.TRENAME3_12, CT_RACENAME.TRENAME3_00, CT_RACENAME.TRENAME3_01, CT_RACENAME.TRENAME3_02,}
    		},
    	},
    Correct the treenames to the existing ones for your race

    ---------------------------------------------
    Last edited by Jagdpanther; 24th Aug 10 at 10:57 AM.

  46. #96
    Haha, I kinda figured "REPUBLIK" was off. Ready for the next step.

  47. #97
    Member RelicModder's Avatar
    Join Date
    Aug 2010
    Location
    Berlin
    ERG I AM LOST :'(

  48. #98
    Which part are you stuck on?

  49. #99
    Member Jagdpanther's Avatar
    Join Date
    Dec 2008
    Location
    Berlin
    We make this later. I know it's strong stuff, especially the last two files.

    OK now we need in "personality" a copy of the axis folder. name it like "axis_racename". But this axis folder must be extracted in corsix modstudio before with all files included. If you are ready drop a note.

    Note: This folder must have the name, they we have declared in luaconsts via TRACE_AXIS_RACENAME = "axis_racename".

    So for example :
    TRACE_AXIS_CHAOSLEGION = "axis_chaoslegion"
    needs "axis_chaoslegion" as foldername. It is important. There are no other references, and if this is not correct the ai can't find the files in this folder and crash.
    Last edited by Jagdpanther; 30th Aug 10 at 7:05 AM.

  50. #100

Page 2 of 5 FirstFirst 12345 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

     

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •