Show: Today's Messages :: Unanswered Messages :: Polls :: Message Navigator

1.13 - How do you play, and what do you like/Dislike

Sat, 17 September 2005 01:19

I figure this may just need a whole new thread so here's what I want to know:

1. What options do you play with (Difficulty, Bobby Rays options, Enemy drops options, Sci-fi)

2. What Optional Features do you use (By optional features, I mean, Do you use the features that are On by default, but allow you to choose whether to use them or not) Examples would be the Delete all option, the Sell all option, multiple IMP mercs.

3. What do you think of the overall balance of the game and is there anything you would change to make it better for you?

4. What is your favorite Feature that you wouldn't live without?

5. Opposite of #4, what feature do you not like, or would like to change it's function slightly to better suite your playstyle.

6. In addition to #5 is there anything else you would change about 1.13 that can't easily be changed already in the XML files.

7. What are the most important bugs that you would want fixed ASAP ("All of them" is a valid answer, as well as "What bugs" Razz )

8. What feature (Including ones not listed in any current thread) would you like to see added more than anything else?

v1.13 General Gameplay Talk | 79 comments

Trying to Copy/Paste Gaston/Stogie/Tex From JA2UB Onto MERC in JA2 - help! :)

Fri, 16 September 2005 09:47

I'm trying to do something that should be pretty easy - I'm trying to take all of Tex, Gaston, and Stogie's info from the JA2:UB files and paste them over those of Biff, Flo, and Gumpy in JA2. There may be a few voice glitches - some 'types' of voices weren't done for the JA2:UB guys - but overall the faces and voices should be just fine.

I have STIedit, SLF-Explore, and ProEdit. Problem is, I can't figure out how to use them Smile SLF-Explore is in German, which doesn't help. I've figured out all the voice/speech types (000 - 116 or so), so I know which ones to overwrite with what.

How do I use SLF-Explore to 'extract' the STI files (and extract to where?), and then use the STI-Edit program to write them back into the original SLF file?

THEN, how do I use ProEdit to alter the game's stats? What file to I write into in the JA2 folder?

Any help would be appreciated Smile

JA2 Technical Department | 24 comments

Autofire

Wed, 14 September 2005 12:48

I do not like the way autofire is implemented in 1.13 (or does it come from the Whitehat project). I think that base APs for autofire should be the same as base APs for a burst. I just don't see any reason for them to be different. APs for extra rounds on top of the standard burst length should be added to burst APs. I think the current implementation should be changed as follows:

By default the autofire is equivalent to burst - same AP cost, same burst length. You can then add extra rounds for extra APs. This would be more logical and more balanced.

bBaseAutofireCost should set the standard burst APs on top of the single-shot AP cost. In the original weapon table, this would be 4 APs for all automatic guns except the G11, which would have 0. Of course, modders could revise the burst APs for other guns as well.

The parameter bAutofireShotsPerFiveAP should specify the rate of autofire beyond the standard burst length.

Example: C-7 has a 5-round burst, bBaseAutofireCost = 4, bAutofireShotsPerFiveAP = 5. If a single shot costs 6 APs, then a 5-round burst (either in Burst or in Autofire mode) will cost 10 APs, a 6-round autofire burst will cost 11, 7-round burst - 12, etc.

Makes sense?

JA2 Technical Department | 22 comments

1.13 Xml Editing

Fri, 09 September 2005 03:56

Post all your 1.13 mod xml usage and editing questions here, along with any instructions and hints for editing, or any neat things you've figured out how to do.

Once there are enough, we can create a nice FAQ document or something. :animread:

If you know of a good, free XML editor, you can post a link for that here too.

Cheers,

MM

v1.13 XML Customization | 109 comments

1.13 Tilesets thread

Wed, 07 September 2005 13:00

Split from the main 1.13 thread. Post everything related to tilesets here. I'll start by recapping some of my own wise words Smile and a few links.

Quote:

Oh and in case you are wondering why you can't get JA2 to accept tilesets with higher numbers, that's because the limit is hardcoded. To change, add elements to the enum in TileEngine\World Tileset Enums.h. It's best to check the UB code to see how it's done there, in case there are some non-obvious tricks involved.

You should also be aware that even if the tileset limit is increased, simply adding UB tilesets to JA2 won't work. That's because in JA2 the very first tileset acts as a default resource for all subsequent tilesets. IN UB tileset 50 is the default for all tilesets above 50. So, while tileset 50 will still work in JA2 (since it is completely filled), other UB tilsets will be broken.

Once the tileset limit is successfully increased, I can recompile UB tilesets to work in JA2. As for other modifications, I would advise to make them strictly backwards-compatible, at least as part of this project. That is, old maps should still work and, ideally, look the same even with changed tilesets. One way to accomplish such modifications is to add extra objects at the end of STIs that are not filled to capacity - there are a few such examples in my collection. Another way is to replace a duplicate subset in a tileset. However, this can in principle break some maps.
JA2TSE is a very useful tileset editor. (Khor, this may answer your question from another thread.)

A very functional JSD editor is being developed by a Russian programmer (interface is in English). This is a link to a beta version, which appears to work fine, except it does not yet support the type of JSDs that are used for wall decals and such.

v1.13 Modding, Customising, Editing | 39 comments

Fine-tuning stat progression in JA2

Mon, 29 August 2005 18:46

I had an idea to tweak stat progression a bit. The main idea here is that skills that affect the outcome of merc actions should be the same skills that are improved.

On the whole, I think the rate of stat progression is fine in the original. However, some stats, like wisdom or agility, hardly ever increase.

One thing to keep in mind is that physical stats (health, agi, dex, str, wis) increase at half the rate of skills (med, mech, expl, lead).

In the function StatChange that is called to update stats, the 3rd parameter (usNumChances) controls the quantity. A typical value is somewhere in the 5-25 range.

OK, so here are some suggestions:

  • More dex. and wis. for healing? I suspect that usNumChances here often truncates to zero, resulting in no award at all. Might even want to increase the rate for med. as well.

    HealCharacters Assignments.cpp(2385)
    StatChange(pDoctor, DEXTAMT,		(UINT16) (usUsedHealingPts / 100), FALSE);
    StatChange(pDoctor, WISDOMAMT,	(UINT16) (usUsedHealingPts / 100), FALSE);
    For the reference, usUsedHealingPts does not exceed med*(dex+wis)/2*(100+5*lev)/2400
  • No award for planting mines, you cheater! (Since it succedes 100% regardless of skill.)

    HandleSoldierDropBomb Handle Items.cpp(1379):
    // EXPLOSIVES GAIN (25):  Place a bomb, or buried and armed a mine
    // StatChange( pSoldier, EXPLODEAMT, 25, FALSE );
    NB: AFAIK, this does not affect cases where success is not guaranteed, such as when placing a bomb with a detonator.
  • Award a bit of wisdom for disarming mines and boobytraps? Not sure about this.

    BoobyTrapMessageBoxCallBack Handle Items.cpp(4410)
    BoobyTrapMessageBoxCallBack Handle Items.cpp(4463)
    BoobyTrapInMapScreenMessageBoxCallBack Handle Items.cpp(4510)
    BoobyTrapInMapScreenMessageBoxCallBack Handle Items.cpp(4556)
  • Wisdom for detecting mines (similar to detecting boobytraps):

    NearbyGroundSeemsWrong Handle Items.cpp(4702):
    StatChange( pSoldier, WISDOMAMT, (UINT16) (pObj->bTrap), FALSE );
  • Wisdom for making combos/special attachments (alongside with mech),

    AttachObject Items.cpp(3067):
    StatChange( pSoldier, WISDOMAMT, (INT8) ( 20 - AttachmentInfo[ bAttachInfoIndex ].bAttachmentSkillCheckMod )/5, FALSE );
    ...and for attaching detonators (alongside with expl).

    AttachObject Items.cpp(3158):
    StatChange( pSoldier, WISDOMAMT, 5, FALSE );
  • Wisdom for picking locks (it factors into the chance of success). More for electronic locks.

    AttemptToPickLock Keys.cpp(509)
    if (bReason == ELECTRONIC_LOCKPICKING_CHECK)
    	StatChange( pSoldier, WISDOMAMT, ( UINT16 ) ( pLock->ubPickDifficulty / 10 ), FALSE );
    else
    	StatChange( pSoldier, WISDOMAMT, ( UINT16 ) ( pLock->ubPickDifficulty / 15 ), FALSE );
  • Heh, I didn't know that you got expl. for blowing up enemies. Looks fine to me, just pointing this out.

    SoldierTakeDamage Soldier Control.cpp(6712)
  • Hand-to-hand attacks. Success of HtH attacks depends on the skills of the attacker and defender in the same way. The contribution of skills breaks down as follows (CalcChanceHTH in Tactical/Weapons.cpp):

    3*dex+agi+str+10*lev (knifing, punching)
    dex+agi+3*str+10*lev (stealing)

    First of all, should knifing be different from punching? Should parrying be different from attacking? How about this:

    3*dex+agi+str+10*lev (knifing attack)
    2*dex+3*agi+10*lev (knifing parry)
    2*dex+agi+2*str+10*lev (punching attack)
    2*dex+2*agi+str+10*lev (punching parry)

    Reason: Unarmed combat relies more on brute strength. Agility is more important for parrying because the attacker has the element of surprise.

    Awarded stats should reflect the breakdown of stats from above. For example, for a knife attack,

    UseBlade Weapons.cpp(1826)
    StatChange( pSoldier, DEXTAMT, usExpGain, ( UINT8 )( fGonnaHit ? FALSE : FROM_FAILURE ) );
    StatChange( pSoldier, AGILAMT, usExpGain/3, ( UINT8 )( fGonnaHit ? FALSE : FROM_FAILURE ) );
    StatChange( pSoldier, STRAMT, usExpGain/3, ( UINT8 )( fGonnaHit ? FALSE : FROM_FAILURE ) );
    Similarly, in other instances:

    UseBlade Weapons.cpp(1787)
    UseHandToHand Weapons.cpp(1933)
    UseHandToHand Weapons.cpp(1994)
    UseHandToHand Weapons.cpp(2032)
    UseHandToHand Weapons.cpp(2049)
    UseHandToHand Weapons.cpp(2058)
  • Throwing grenades. Let's make it more like knife throwing. This is getting really fancy Smile

    UseThrown Weapons.cpp(2138):
    // Snap: Find the number of real targets for grenade attack
    UINT16 usNumTargets = 0;
    if ( pTargetSoldier != NULL ) ++usNumTargets;
    else
    {
    	// search for an opponent near the target gridno
    	for ( bLoop = 0; bLoop < NUM_WORLD_DIRECTIONS; bLoop++ )
    	{
    		ubTargetID = WhoIsThere2( NewGridNo( pSoldier->sTargetGridNo, DirectionInc( bLoop ) ), pSoldier->bTargetLevel );
    		pTargetSoldier = NULL;
    		if ( ubTargetID != NOBODY )
    		{
    			pTargetSoldier = MercPtrs[ ubTargetID ];
    			if ( pTargetSoldier->bTeam != pSoldier->bTeam )
    			{
    				break;
    			}
    			else ++usNumTargets; // Snap
    		}
    	}
    }
    
    if ( pTargetSoldier )
    {
    	// ok this is a real attack on someone, grant experience
    
    	// Snap: calculate experience points for strength: weight x distance
    	UINT16 usHandItem = pSoldier->inv[HANDPOS].usItem;
    	// calculate actual range (in world units)
    	INT32 iRange = GetRangeInCellCoordsFromGridNoDiff( pSoldier->sGridNo, sTargetGridNo );
    	// 10 points for a regular grenade thrown at 100 units (1 cell = 10 units)
    	UINT16 usExpGain = ( Item[usHandItem].ubWeight * iRange + 30) / 60;
    	StatChange( pSoldier, STRAMT, usExpGain, FALSE );
    
    	// Snap: calculate experience points for dexterity and marksmanship
    	usExpGain = 5     // For at least one target
    		+ 2*(usNumTargets-1);   // For every additional target
    	BOOLEAN fGonnaHit = uiDiceRoll < uiHitChance;
    	if ( fGonnaHit ) usExpGain *= 2;   // For actually hitting the target :)
    	usExpGain += (UINT16) (100 - uiHitChance) / 10; // Extra exp for a difficult target
    	StatChange( pSoldier, DEXTAMT, usExpGain / 2, ( fGonnaHit ? FALSE : FROM_FAILURE ) );
    	StatChange( pSoldier, MARKAMT, usExpGain / 2, ( fGonnaHit ? FALSE : FROM_FAILURE ) );
    }
    Warning: this has not been tested!
  • When training skills (as opposed to physical stats) award some wisdom.

    TrainSoldierWithPts Assignments.cpp(4018)
    BOOLEAN fUseBrains = FALSE; // Snap
    // which stat to modify?
    switch( pSoldier -> bTrainStat )
    {
    	case( STRENGTH ):
    		ubChangeStat = STRAMT;
    		break;
    	case( DEXTERITY ):
    		ubChangeStat = DEXTAMT;
    		break;
    	case( AGILITY ):
    		ubChangeStat = AGILAMT;
    		break;
    	case( HEALTH ):
    		ubChangeStat = HEALTHAMT;
    		break;
    	case( LEADERSHIP ):
    		ubChangeStat = LDRAMT;
    		fUseBrains = TRUE;
    		break;
    	case( MARKSMANSHIP ):
    		ubChangeStat = MARKAMT;
    		fUseBrains = TRUE;
    		break;
    	case( EXPLOSIVE_ASSIGN ):
    		ubChangeStat = EXPLODEAMT;
    		fUseBrains = TRUE;
    		break;
    	case( MEDICAL ):
    		ubChangeStat = MEDICALAMT;
    		fUseBrains = TRUE;
    		break;
    	case( MECHANICAL ):
    		ubChangeStat = MECHANAMT;
    		fUseBrains = TRUE;
    		break;
    	// NOTE: Wisdom can't be trained!
    	default:
    		// BETA message
    		#ifdef JA2BETAVERSION
          ScreenMsg( FONT_ORANGE, MSG_BETAVERSION, L"TrainSoldierWithPts: ERROR - Unknown bTrainStat %d", pSoldier -> bTrainStat);
    		#endif
    return;
    }
    
    // give this merc a few chances to increase a stat (TRUE means it's training, reverse evolution doesn't apply)
    StatChange( pSoldier, ubChangeStat, sTrainPts, FROM_TRAINING );
    if (fUseBrains) StatChange( pSoldier, WISDOMAMT, sTrainPts/2, FROM_TRAINING ); // Snap
  • Reward teachers.

    HandleTrainingInSector Assignments.cpp(3526):
    // valid trainer is available, this gives the student a large training bonus!
    sTrainingPtsDueToInstructor = GetBonusTrainingPtsDueToInstructor( pTrainer, pStudent, pStudent -> bTrainStat, fAtGunRange, &usMaxPts );
    // Snap: Reward the trainer!
    StatChange( pTrainer, LDRAMT, sTrainingPtsDueToInstructor, FALSE );
    StatChange( pTrainer, WISDOMAMT, sTrainingPtsDueToInstructor, FALSE );
  • Award wisdom for training militia (alongside with leadership). This code is already present, but commented out for some reason. Can play with the rate here to get something reasonable - wisdom, of course, should not increase too fast.

    TrainTownInSector Assignments.cpp(4084):
    StatChange( pTrainer, WISDOMAMT, (UINT16) ( 1 + ( sTrainingPts / 400 ) ), FALSE );
  • Award health for exertion? Not sure about this.

    Edit: See a couple of posts below for more details.

    DeductPoints Points.cpp(513):
    // Adjust breath changes due to spending or regaining of energy
    sBPCost = AdjustBreathPts(pSoldier,sBPCost);
    // Snap: award some health for exertion
    // Do one StatChange roll per 100 breath points spent?
    // This might be expensive, because this function is called often!
    // NB: The scale of sBPCost is 100 per breath point
    if (PTR_OURTEAM && sBPCost > 0 && fProactive && PreRandom(10000) < sBPCost)
    {
    	StatChange( pSoldier, HEALTHAMT, 1, FALSE );
    }

JA2 Technical Department | 24 comments

How can I access IMP Merc .edt files?

Mon, 15 August 2005 05:07

I want to get my hands on the custom mercs .edt files, because I want to make my own voice for the IMP Merc. The mercs face number is 203, so I assume that the .edt file is called 203.edt, but where can I find it? (and the voice files, naturally)

I'm using Wildfire.

JA2 Technical Department | 2 comments

Best .STI Colour Palatte Conversion

Thu, 11 August 2005 07:12

I've been image modding for close to a year now and still only get results through exhausting trial and error.
I've read and tried numerous longwinded methods of converting colour palattes with only mariginal success.

What I'm asking here is for someone to briefly explain what the best method for converting .bmps (or other image types) to .stis so that you can see the exact colours while they're still loaded in you're imaging program. In other words removing the need to load the image into the game, start a game and test the image before you can see whether the colours look right.
Please, even include the optimum programs to use for Ja2 image modding as I'm not above buying $100 software to help me work on this game.

If you'd like you can add you're general tips for image modding but please answer the topic question first.

Thank you very much for you're contributions.

JA2 Technical Department | 11 comments

JA2CME1.02 error

Wed, 03 August 2005 21:25

I'm having a problem using the CME receiving the same german error message every time that it can't open the IMP.dat file, although I know this file exists and is openable in Notepad.

I have tried removing JA2, reinstalling Gold, patching to 1.12, adding on the IMP patch so I can use 90210. I then ran JA2, created a merc, quit that game and started a new one recreating the merc with 90210.

I then quit out totally, copied JA2CME.exe and Presets.ini into my C:\Jagged Alliance 2 Gold folder, when I run the file though it gives me default info and when I click save I just get the same error. I have also tried copying JA2CME and the presets files into my data directory with no success.

I read somewhere on here to click on a button to point it to the IMP.dat file, but this button doesn't exist.

I have tried to locate a copy of JA2CME 1.03 but seem unable to do so.

If anyone can help it would be greatly appreciated.

JA2 Technical Department | 4 comments

Basement maps don't appear

Wed, 27 July 2005 06:29

Okay, I got newfound motivation to mod UB again and I'm planning a large mod with lotsa NPCs and RPCs, maps and as much quests as possible.

Basically, I can do a lot of things; but what I can't do is basement map transportation OR basement maps. I mean, I create a basement map, but how do I get there? I go to the surface map where I want to get there from, set the coordinations of the basement map, the gridno and all. And the basement map's name is G7_b1, but it doesn't appear. When I try to go there a 'can't lod map' error appears and I have to exit the game. And in the beginning as you start the game, it should list all the custom maps and allow them or not. G7_B1 doesn't even appear there.

So... what is wrong?

JA2 Technical Department | 2 comments

Pages (754): [ «    738  739  740  741  742  743  744  745  746  747  748  749  750  751  752  753    »]
Current Time: Mon Mar 24 08:17:16 GMT+2 2025

Total time taken to generate the page: 0.97039 seconds