aliens

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Aldorn

Pages: 1 [2] 3 4 ... 50
16
OXCE Suggestions DONE / Re: [EXE] Soldier Transformations
« on: February 25, 2023, 01:10:15 pm »
Here's the ruleset documentation for the modders out there, it's also contained as a text file in the mod attached to the post above:

Code: [Select]
soldierTransformation:
  - name: STR_PROJECT_NAME # (REQUIRED) The name of this project listed in the Soldier Transformations screen
    listOrder: 100 # The list order of this project, defaults to increasing by 100 for each project in the mod when not defined
    requires: # A list of research projects required before this project appears in the list of available transformations, the default empty list means this project is available from the beginning of the game
      #- STR_SOME_RESEARCH
    requiresBaseFunc: # A list of base functions required at a base in order to do this project, the default empty list means no special facilities are required
      #- SOME_BASE_FUNC
    producedSoldierType: STR_SOLDIER # The type of soldier produced by this project - any soldier undergoing this transformation will be switched to this type. If left empty, the soldier type does not change.
    producedSoldierArmor: STR_NONE_UC # The armor the soldier produced will have when the project finishes, only used when keepSoldierArmor is false. Leaving it empty will give the soldier the armor defined by the type in the soldiers: ruleset.
    keepSoldierArmor: false # Default false, this parameter determines whether or not the soldier will keep the armor they're wearing through this transformation
    createsClone: false # Default false, this parameter determines whether the selected soldier has the transformation done to them or a new soldier is created that is a copy of the original and the transformation is done to the new soldier.
    needsCorpseRecovered: true # Default true, if your project allows dead soldiers, this determines whether or not you needed to have a corpse item available at the end of the battle in which the soldier died. This does not mean you need the corpse item in your stores, just that it would have been recovered if recover: true was set on the item
    allowsDeadSoldiers: false # Default false - can dead soldiers undergo this transformation?  If so, they are brought back to life at the base you started this project in
    allowsLiveSoldiers: false # Default false - can live, non-wounded soldiers undergo this transformation?
    allowsWoundedSoldiers: false # Default false - can wounded soldiers undergo this transformation?
    allowedSoldierTypes: # (REQUIRED) This list determines which soldier types can undergo this transformation, the default empty list means nobody can have this project done to them.
      #- STR_SOLDIER
    requiredPreviousTransformations: # A list of transformation projects that must be done to a soldier before they're eligible for this project, the default empty list means no previous projects are required.
      #- STR_SOME_TRANSFORMATION
    forbiddenPreviousTransformations: # A list of transformation projects that a soldier cannot have undergone in order to be eligible for this project, the default empty list means no previous projects are forbidden
      #- STR_SOME_OTHER_TRANSFORMATION
    requiredMinStats: # The minimum stats a soldier must have in order to be eligible for this project, defaults to all 0 so any soldier is eligible
      tu: 0
      stamina: 0
      health: 0
      bravery: 0
      reactions: 0
      firing: 0
      throwing: 0
      strength: 0
      psiStrength: 0
      psiSkill: 0
      melee: 0
    requiredItems: # A list of items that must be consumed from the base's stores in which you start this project, the default empty list means no items are used
      #STR_SOME_ITEM: 1
    cost: 50000 # The cost of the project in dollars
    transferTime: 0 # Soldiers can be put in a transfer back to the base where they started if this parameter is greater than the default of 0 hours. New clones or resurrected soldiers are automatically given a transfer to the base with a default of 24 hours.
    recoveryTime: 0 # The amount of wound recovery time a soldier is given after this project completes and the transfer, if any, is completed. The default value is 0 days.
    flatOverallStatChange: # A direct change to the soldier's overall stats when undergoing this project, can be positive or negative - tu: 5 means the soldier will gain 5 max time units, while tu: -5 means the soldier will lose 5 max time units. The default of 0 means no change.
      tu: 0
      stamina: 0
      health: 0
      bravery: 0
      reactions: 0
      firing: 0
      throwing: 0
      strength: 0
      psiStrength: 0
      psiSkill: 0
      melee: 0
    percentOverallStatChange: # A percent change to the soldier's overall stats when undergoing this project, can be positive or negative - tu: 5 means the soldier will gain an extra 5% of their max time units, while tu: -5 means the soldier will lose 5% of their max time units. The default of 0 means no change.
      tu: 0
      stamina: 0
      health: 0
      bravery: 0
      reactions: 0
      firing: 0
      throwing: 0
      strength: 0
      psiStrength: 0
      psiSkill: 0
      melee: 0
    percentGainedStatChange: # A percent change to the soldier's stats, but instead of taking a portion of the overall stats, this only applies to the stats they've trained up from their initial values, can be positive or negative - firing: -100 means the soldier will lose all of the firing accuracy they trained since joining, while firing: 10 means they gain 10% of the amount they trained over their initial values. The default of 0 means no change.
      tu: 0
      stamina: 0
      health: 0
      bravery: 0
      reactions: 0
      firing: 0
      throwing: 0
      strength: 0
      psiStrength: 0
      psiSkill: 0
      melee: 0
    useRandomStats: false # Default false, when true, this parameter overrides the stat changes above and has the produced soldier roll random stats according to their new soldier type from this transformation project.
    lowerBoundAtMinStats: true # Default true, this parameter determines whether or not any changes in stats from this project should go below the minStats defined on the new soldier type.
    upperBoundAtMaxStats: false # Default false, this parameter determines whether or not any changes in stats from this project should go above the maxStats defined on the new soldier type.
    upperBoundAtStatCaps: false # Default false, this parameter determines whether or not any changes in stats from this project should go above the statCaps defined on the new soldier type.

The associated strings are:
Code: [Select]
extraStrings:
  - type: en-US
    strings:
#SoldierTransformationAssignState.cpp
      STR_TRANSFER_TIME: "Transfer Time>{ALT}{0}"
      STR_RECOVERY_TIME: "Recovery Time>{ALT}{0}"
      STR_CURRENT_STATS: "Current stats"
      STR_CHANGES: "Changes"

Explanation are really great !!

Providing new features is wonderful, explaining how to implement, with so much details, is paradise  :)

17
OXCE Suggestions DONE / Re: [Documentation] Soldier Transformations
« on: February 25, 2023, 01:06:30 pm »
Hi,

I'm really interested by this amazing feature  :o  (once more  ::)), but I fail to download zip file attached in first post

May it be this zip archive is corrupted?

EDIT: not sure if zip contains interesting resources or if it has only to do with programming, anyway I succeeded to mod it, very good feature

18
Example of script to set max attributes improvement to 1 (tested successfully)

Inspired by Yankes shared example: https://openxcom.org/forum/index.php/topic,6619.msg104686.html#msg104686

Code: [Select]
# Attributes may not be increased by more than 1 per battle
extended:
  scripts:
    returnFromMissionUnit:
      - offset: 1
        code: |
          var int addStat 0;
          var int curStat 0;
         
          statChange.getBravery addStat; #how much attribute was increased by exp
          soldier.Stats.getBravery curStat; #current attribute value (already including value from exp)
          sub curStat addStat; #set current attribute back to its original value before exp
          if gt addStat 0;
            add curStat 1;
          end;
          soldier.Stats.setBravery curStat; #update attribute

          statChange.getFiring addStat;
          soldier.Stats.getFiring curStat;
          sub curStat addStat;
          if gt addStat 0;
            add curStat 1;
          end;
          soldier.Stats.setFiring curStat;

          statChange.getHealth addStat;
          soldier.Stats.getHealth curStat;
          sub curStat addStat;
          if gt addStat 0;
            add curStat 1;
          end;
          soldier.Stats.setHealth curStat;

          statChange.getReactions addStat;
          soldier.Stats.getReactions curStat;
          sub curStat addStat;
          if gt addStat 0;
            add curStat 1;
          end;
          soldier.Stats.setReactions curStat;

          statChange.getStamina addStat;
          soldier.Stats.getStamina curStat;
          sub curStat addStat;
          if gt addStat 0;
            add curStat 1;
          end;
          soldier.Stats.setStamina curStat;

          statChange.getStrength addStat;
          soldier.Stats.getStrength curStat;
          sub curStat addStat;
          if gt addStat 0;
            add curStat 1;
          end;
          soldier.Stats.setStrength curStat;

          statChange.getThrowing addStat;
          soldier.Stats.getThrowing curStat;
          sub curStat addStat;
          if gt addStat 0;
            add curStat 1;
          end;
          soldier.Stats.setThrowing curStat;

          statChange.getTimeUnits addStat;
          soldier.Stats.getTimeUnits curStat;
          sub curStat addStat;
          if gt addStat 0;
            add curStat 1;
          end;
          soldier.Stats.setTimeUnits curStat;

          return;

19
OpenXcom Extended / Re: OXCE (OpenXcom Extended) main thread
« on: January 30, 2023, 10:02:35 am »
The Ruleset Reference Nightly (https://www.ufopaedia.org/index.php/Ruleset_Reference_Nightly_(OpenXcom)) is really useful, highlighting all new settings implemented in OXCE

Great job, as for the rest !

20
Hi both, thanks for moving my question to proper section

I will have a look at Y-scripts, if I succeed this will be perfect

https://openxcom.org/forum/index.php?topic=5245.0


Thanks for your answers

21
Hi Meridian & Yankes,

Congrats for the amazing job you do every day/week/month/year !

I'm quite sure answer will be NO, anyway I will still ask my question, as this is a request I asked far in the past but was impossible to implement, but I'm still interested by it and potentially it may be possible now in OXCE



Would it be possible to put harcoded values regarding experience awards as parameters we could simply overwrite via ruleset ?

What I have in mind hereafter

Current Code (BattleUnit.cpp)
Spoiler:
int BattleUnit::improveStat(int exp) const
{
   if      (exp > 10) return RNG::generate(2, 6);
   else if (exp > 5)  return RNG::generate(1, 4);
   else if (exp > 2)  return RNG::generate(1, 3);
   else if (exp > 0)  return RNG::generate(0, 1);
   else               return 0;
}


Convert 12 hardcoded values to variables available for overwritting via ruleset

Spoiler:

New Ruleset variables (names to be defined properly, below is just an example):

STR_EXP_TRIGGER1 0
STR_EXP_TRIGGER2 2
STR_EXP_TRIGGER3 5
STR_EXP_TRIGGER4 10

STR_EXP_TRIGGER1_MINRNG 0
STR_EXP_TRIGGER2_MINRNG 1
STR_EXP_TRIGGER3_MINRNG 1
STR_EXP_TRIGGER4_MINRNG 2

STR_EXP_TRIGGER1_MAXRNG 1
STR_EXP_TRIGGER2_MAXRNG 3
STR_EXP_TRIGGER3_MAXRNG 4
STR_EXP_TRIGGER4_MAXRNG 6

New code:

int BattleUnit::improveStat(int exp) const
{
   if      (exp > STR_EXP_TRIGGER1) return RNG::generate(STR_EXP_TRIGGER1_MINRNG, STR_EXP_TRIGGER1_MAXRNG);
   else if (exp > STR_EXP_TRIGGER2)  return RNG::generate(STR_EXP_TRIGGER2_MINRNG, STR_EXP_TRIGGER2_MAXRNG);
   else if (exp > STR_EXP_TRIGGER3)  return RNG::generate(STR_EXP_TRIGGER3_MINRNG, STR_EXP_TRIGGER3_MAXRNG);
   else if (exp > STR_EXP_TRIGGER4)  return RNG::generate(STR_EXP_TRIGGER4_MINRNG, STR_EXP_TRIGGER4_MAXRNG);
   else               return 0;
}

Please don't hurt me if you find this request has no sense  :-[

EDIT: I saw there is now the possibility to play with experience multiplier via scripts, but I'm still interested to have access to these hardoded values

22
Work In Progress / Re: Question: Left Right Armor
« on: January 28, 2023, 01:15:46 am »
Cheers ;D , it's shaping up...



I'm trying to figure out how to save over the personal-armor information to adjust minor details right now, I seem to be missing something idk, I'll have another go at it later.

I need to do a vanilla female-PerArmor (light&heavy) portrait and adjust 6 of them for skin tone.

Ideally i'd like to also expand the number of portraits, have multiple hair styles per skin-tone. Make it like a manga (gantz), to make dudes stand out from each other, at least in the inventory (afros/hobo/bandanna/army-cap/etc).



We'll see, just seeing what's possible atm.

Hi dude,

Your work is really impressive and really nice  :o

Would it be possible that you share some stuff ? I would be specially interested by the sprite sheet of armor & shield, even if still in progress, that would be kind of you



23
OpenXcom Extended / Re: OXCE (OpenXcom Extended) main thread
« on: January 20, 2023, 09:05:51 pm »
Hi all, Hi Meridian,

I'm currently having a look at OXCE, what an amazing job !!!

I'm trying to convert my own mod from OXC to OXCE, I think it will take me some time  :D

I just wanted to congrat and thank you (same for other who participate). I began to read the changelog since 2015, OMG ::)

24
OpenXcom Extended / Re: OXCE (OpenXcom Extended) main thread
« on: October 01, 2020, 11:22:27 am »
It will take me days even weeks to discover all of that, but it's the price to pay for the amazing job you did all here

I already found the release notes (since the merge of OXCE and OXCE+)  ::)

25
OpenXcom Extended / Re: OXCE (OpenXcom Extended) main thread
« on: September 30, 2020, 09:18:24 pm »
Hi all,

Back after 5 years, OMG  :o

I should not be here as often as in the past, but... what a GREAT JOB !!!

Many thanks to Meridian (and other) for all this amazing features, improvements, capabilities, etc.

Congrats to Solar to be so resilient !

And I'm forced to mention SupSuper and Warboy, whithout them nothing of that would exist : this game project is clearly the best all over the world  ::)


Hum... Just back, and already a SUGGESTION lol : what about moving [Documentation] threads in a specific theme "DOCUMENTATION"

OMG so much to read, I had a look at the [Done]

And also congrats for documenting, very wise and very helpful initiative

So many new features as soldier classes, a total 40K conversion, a new mod web site. Even possibilities to write scripts. Will have to learn how to, but should made easy thanks to all these nice [Documentation] threads

Congratulations and Thanks for all of this  :D

26
Damn, that's a tricky one.. I never play with HWPs (this new module is an attempt to make them more interesting for myself, mostly) so I never noticed that.

I have no knowledge of how to make maps, these were created by Aldorn for me. I will try to get a hold on him and see if he can fix it. If not, I don't know what to do. I can't even run MapView (although that might be the incentive I need to finally figure out if it's possible on Linux).

My apologies! The only way to make it work for now is to hack the ruleset and give your tank hovering capabilities by changing the movement type... :/ Not great.
Sorry to up this old topic, but I found a solution to fix the ramp issue making tanks not able to exit new crafts
Check here for related hint

27
I found a way to fix issue that made tanks unable to exit provided new crafts
It only happens in case you do not want to replace Skyranger but one of them, but add one (or more) new crafts
If so, it involves to rename MAP and RMP (as PLANE.MAP and PLANE.RMP are already used for vanilla Skyranger)

Let's say: MYNEWPLANE.MAP and MYNEWPLANE.RMP
In this case, we have to fix also bug coming from vanilla SKYRANGER for this new craft. To do so, just add a ruleset file with following contents
Spoiler:
MCDPatches:
# pathFinding Hacks.
# bigWall 1 = regular bigwall, no movement allowed.
# bigWall 2 = can walk by north-east/south-west
# bigWall 3 = can walk by north-west/south-east
# bigWall 4 = acts as west wall
# bigWall 5 = acts as north wall
# bigWall 6 = acts as east wall
# bigWall 7 = acts as south wall
# bigWall 8 = acts as east and south wall
  - type: MYNEWSKYRANGER
    data:
      - MCDIndex: 62
        bigWall: 0

PS: all theses crafts work correctly as long as their MAP and RMP files are named "PLANE" (and declared as well in ruleset files under Skyranger nodes), as in this case, the standard xcom1 MCDPatch will be applied

EDIT: Mensch, there is still an issue, as tank is able to exit craft but cannot get back into it (it succeeds climbing the ramp, but seems to be unable to find the path after that). I made some attempts to patch it but I failed

EDIT2: I have it... Issue is only for smaller versions, and it is due to rear wheels placed under craft entrance. For some reason, it is not possible to find a way above these wheels, so the solution is to move these wheels aside, as for vanilla skyranger (and for provided longer versions)

EDIT3: finally, I updated zip in header message to V0.3
Done :
- move wheels aside for smaller versions SkySpotter and SkyWatcher
- update ruleset in order to use vanilla PLANE terrain files, so that MCDPatch has not to be defined for each version (as already defined for PLANE in standard/xcom1)
- remove TERRAIN files as not necessary anymore (will used PLANE.MCD, PLANE.PCK, PLANE.TAB)


28
Open Feedback / Re: Bug
« on: July 09, 2015, 09:27:02 pm »
Do you mean it is true in any case, any version of OXC, or do you have this problem with some specific mods and specific version of OXC ?

29
Open Feedback / Re: Crash when starting a terror mission
« on: July 09, 2015, 09:12:11 pm »
And check if you have many "user" folders, I mean for example one inside your directory structure, and an obsolete one hidden in "MyDocuments" (in case your OS is Windows)


30
Programming / Re: Nightly Downloader
« on: July 09, 2015, 09:08:56 pm »
Very interesting dude  :)

Pages: 1 [2] 3 4 ... 50