Jump to content

wghost81

Premium Member
  • Posts

    1186
  • Joined

  • Last visited

Posts posted by wghost81

  1. tracktwo, thanks. I still haven't got around to implement escape characters for strings, that's why this one isn't working. Text after // is considered a comment and the rest of the line gets ignored. Strings in patcher are very simple entities, so while I'm working on a new version with escape characters using hex equivalent is a best solution for this type of bugs.

  2. ... and will make the game unplayable as a result. We tried this, but AI simple isn't coded to handle this kind of situation properly.

     

    One thing to understand is that AI is always active, it's just explicitly forbidden to act aggressively when it spots/is spotted by player for the first time.

     

    AI has different tactics which are decided by Overmind. "Activation" is merely a change in tactics.

  3. As far as I can see from XComMapManager code, StreamingMaps array is dynamic, so StreamingMaps[0] followed by StreamingMaps[9] probably won't work.

     

    UPD: although I can't find any other definition, my experiments show that StreamingMaps is not a usual dynamic array. So you actually can write something ridiculous, like StreamingMaps[100] and it'll work. Example:

    Maps=( MapFamily="URB_Boulevard",             Name="URB_Boulevard",                DisplayName="URB_Boulevard_Bomb (Mission Variant Bomb Defusal Boulevard) |4",                     MissionType=eMission_Special,             bInRotation=False, TimeOfDay=eMissionTime_Day,   ShipType=eShip_None,          eRegion=eMissionRegion_None,         CouncilType=eFCMType_Bomb,       NewMap=True, InitialChance=20,  InitialGain=1.04, DynamicAliens[0]=eChar_Thinman, DynamicAliens[1]=eChar_None, StreamingMaps[5]=( MapName="URB_Slaughterhouse_Stream", Loc=( X=0, Y=0, Z=0 ), Rot=( Pitch=0, Yaw=0, Roll=0 ) ),    StreamingMaps[100]=( MapName="CIN_DropshipIntros", Loc=( X=0, Y=0, Z=0 ), Rot=( Pitch=0, Yaw=0, Roll=0 ) ) )            
    
  4. Unfortunately, uninstaller is bugged under Mac. We don't have any Mac users among LW developers currently, so we can't fix it for now.

     

    To remove old version reference you need to find and delete .lw_install file. Note that this file is hidden, so you need to enable show hidden files first.

  5. Some info on states and latent functions I learned the hard way.

     

    "Latent functions" are the functions, which require some time to pass. One of the widely used examples is Sleep(fTime) function, which pauses the code for fTime seconds. A little more detailed description of latent functions can be found here: http://wiki.beyondunreal.com/Legacy:Latent_Function

     

    The first thing to learn is that latent functions can't be used outside of states (!). Bytecode is magic and we can put Sleep call into a regular function, but this will be terribly wrong and potentially buggy.

     

    Even when used inside a state, latent functions need to be handled carefully. For example, calling Sleep in the middle of foreach loop will do nothing. In most of the cases Sleep is used to pause state execution until something else finishes (like aliens finish all their moves, etc) and if such waiting happens inside foreach loop it will lead to runaway loop error.

     

    Judging by the number of google results on the subject ("unrealscript sleep runaway loop") latent functions are magic and mastering them, especially without compiler tracking code errors, can be somewhat hard. :) Anyway, if the game CTDs after you've put a Sleep call somewhere in the code, first thing to do is check your launch.log and see if there is a "runaway loop" error message.

  6. In vanilla you can't have more than 2 meld canisters per map and in LW this number goes up to 3. By editing the script and using meld placement mutator one can spawn as many canisters as they want. :)

     

    I was a little busy with my real life work lately, so I was unable to test any of your patches yet. Although the idea looks great.

     

    I'm using uncooked scripts and afaik LW assets package also is uncooked. Can you do the same thing with map files?

  7. Yes, it is possible to change the type of variable and even it's owner, but you have to make sure it isn't used anywhere else, as calling the variable with the wrong type will cause CTD. You can use an old random pods mod as an example of such modifications. Also, feel free to post your code for me to check if you have any difficulties making it work.

     

    Private and write protected (and some other) flags are relevant for compiler. They aren't actually checked in game, so you can write to private variable directly in bytecode. But again, those are made private for a reason. Setting the new value for such variables often requires a number of other recalculations. If you're fairly sure there are none or you can adjust all the related parameters manually, feel free to use this little cheat. :smile:

  8. DonSwordsman, several users have reported that uninstaller is not working properly under Mac. This was originally Linux script, adapted for Mac by one of our Mac testers, but currently none of the LW devs have access to Mac, so, unfortunately, we can't test it and fix the issues.

     

    There should be hidden .lw_install file located under your XEW folder. Deleting it will make the installer unaware of any previously installed LW versions, so it won't try to run uninstaller anymore.

     

    While experimenting like this, always create backups of vanilla game, especially if you have problems downloading it. It will save you a lot of trouble and a lot of time. :wink:

  9. I haven't looked deeply into this myself, but that's what I remember.

     

    EXALT arrays apply Disabling Shot ability when hacked. This is done via static (i.e. object-independent) function XGAbility_DisablingShot.ApplyDisablingShot. It's EW specific, as EU class doesn't have any static functions, and most probably was coded in for this one purpose.

     

    For other abilities you need to spawn the one you need and then apply the effect.

     

    Also XGAbilityTree class (XComGameReplicationInfo(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kGameCore.m_kAbilities object in game) has ApplyEffectsToTarget function, but it also requires XGAbility_Targeted object to be spawned first.

  10. Yes, you're right, we can create our own volume.

     

    I do remember abductees are spawned for abduction pods, but I can't say for sure if this is tied in to pod's species. Needs checking.

     

    I've finished coding a simple mutator for adding new bomb missions. Will release it after some additional tests.

  11. Normaly I play with the "show postprocessing" off, revealing the entire map and boosting fps on my laptop but I can see the sectoid pods because they have a webbed abductee with them(it disapears when they trigger). Does anybody know where should I poke to remove the abductee?

     

     

    Abduction pods have webbed abductee spawned at the center of the pod's location. It is spawned by the script during the deployment phase. There probably is some kismet event, like on spawn or something, to track it down.

     

    Thanks for the test map, I'll check it out. If we'll make it work, we could prevent meld from blocking doors and ladders by placing no-spawn volumes appropriately.

  12. Uhm how hard-coded are council missions? Random bomb mission on any abduction map would be awesome.

    It is absolutely possible:

    http://i.imgur.com/OHj8K81.jpg

     

    To make it actually work as randomly assigned mission upk modifications are required, which add such things as mission reward and description.

     

    UPD: And this is the next thing on my TO-DO list, I think. :)

  13. > setting the texture quality to low fixes the black texture glithes

    Interesting. This probably means that not every texture reference was updated properly, as embedded low-res textures work and referenced hi-res textures do not work.

  14. So has research into scripting with the UDK stopped or...? I don't know much about any of this and I'm kinda sad to have missed all of the action, but I'm going to start looking into this myself. At the very least thanks for getting the ball rolling.

    The whole XCOM Randomized mod, which is also included in LW, is build using UDK. Here's my github project: https://github.com/wghost/XCOM-Mutators It also has wiki pages, describing how to set up UDK and how to create dummy scripts.

×
×
  • Create New...