Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Gokuma

Custom translation tables, Spinning, sample wad

Recommended Posts

I import my own from png and Slade calls the lump GFX whether png or Doom gfx with no option to change to translation table.

Trying to run the wad with Eternity it says bad translation table lump.

EDIT: Added T_START and T_END around those lumps and got rid of startup error but colors just look screwy possibly from not having exact format right.

 

I copy CRRED (unchanged one it seems) from Eternity's pke and try to colormap it in Slade and it says can't write to raw.

 

Here's the two tables I want to implement.  One translates a Cacodemon to blue and one makes an Invuln sphere blue.

 

BLcacotb.png "168:183=192:207", "184:191=240:247", "16:47=192:207", "167:167=204:204", "223:223=240:240", "64:79=199:207"

bluepvtb.png "112:127=192:207", "10:12=240:242"

 

Here's the wad in progress for Ultimate Doom: http://www.mediafire.com/file/7b7mf61hhjszc7j/D1EntTst.wad/file

EDIT: Finished wad: http://www.mediafire.com/file/1im3gz3uzn4mfpp/D1EntHng.zip/file (released 4/25)

Episode 6, selectable from main menu, is for Eternity.   Though I gotta try rebuilding nodes with Ultimate Doom Builder on my other comp.  DB2Bugfix is apparently giving them older ZNodes but they work.   Really trying to avoid putting any sprites at all in since the wad is doom.exe compatible.   E7M1 for newer ZDooms has the cacoball looking how I want except  Zandronum doesn't have A_SetSpriteRotation so I'm just having it teleport to random different facing spots at the same location (which I also have in E6M1).

 

Other trouble:   My EDFroot lump is overriding some stuff in the Dehacked lump that comes earlier and applying the scale adjustment, but I'm still getting a soulsphere until I hit it once or twice (Major problem) and not sure if A_Turn codepointer can work how I want.   I want the HEAD A frame to just spin in place, instead if it's facing away, it turns one viewpoint closer to me with each frame of HEAD A 6 looping only right after pain frames (close to acceptable).   The thing disappears if I try to add a parameter which I'm not sure of the syntax: A_Turn 1 A_Turn 32 A_Turn(1)  A_Turn(32) ???  Using CRBlue2 copied from the .pke is working but doesn't look as good as how I specifically want the colors.   Also some funky behavior with Eternity not liking E6M2 secret exit sending to E1M9.   Current version has missing interpics and crashes after exiting E1M2 (I set E1M9 to go to E1M2), looking for nonexistent E6M3.   Older Splitscreen fork works a bit better, but shows Perfect Hatred name for E1M2, then sends you to E4M3!

setdialect("ALFHEIM")

stdinclude("root.edf")

thingtype DeadLostSoul
{
  doomednum   23
  dehackednum 116
  spawnhealth    9000000
  deathsound     cacdth
  radius         16.0
  height         42.0
  mass             70
  PainChance      255
  flags          SOLID|SHOOTABLE|DROPOFF
  flags2         PUSHABLE
  flags3         SLIDE|TELESTOMP|WINDTHRUST|SPACMONSTER
  translation     CRBLUE2
  bloodcolor     3
  xscale 0.4
  yscale 0.4
  obituary_normal "was killed by the Cacoball.   Loser!"
  obituary_melee  "was killed by the Cacoball.   Loser!"
  // no telefrag thing specific obituary?
  spawnstate S_HEAD_STND //NotHelping
  defaultsprite S_HEAD_STND //NotHelping
  //firstdecoratestate S_HEAD_STND // Screws regular Cacodemon
  // but commenting out firstdecoratestate causes A_Turn to do nothing
  states
  @"
  Spawn:
    HEAD A 6 A_Turn //Only works immediately after pain frame
    loop
  See:
    HEAD A 6 A_Turn //Only works immediately after pain frame
    loop
  Pain:
    HEAD E 6
    HEAD F 6
    Goto Spawn
  Death:
    HEAD G 8 A_Fall
    HEAD H 8 A_Scream
    HEAD I 8
    HEAD J 8
    HEAD K 8
    HEAD L -1
    Stop
  "@
}

thingdelta { name = DeadLostSoul; remflags = NOBLOOD; } //NotHelping
// Still puffing vs bleeds from dehacked
Edited by Gokuma

Share this post


Link to post
12 hours ago, Gokuma said:

My EDFroot lump is overriding some stuff in the Dehacked lump that comes earlier 

I'm away from desktop so I'll answer later in detail, but beware that Dehacked is always loaded after EDF, regardless of file order. Any modifications on the same feature are finally done by the Dehacked lump. You can still use EDF to change stuff on a Dehacked-patched mod, but only if the things that EDF changes weren't touched by Dehacked.

 

I will look later at the other stuff.

Share this post


Link to post

Don't use frames (spawnstate "S_HEAD_STND") and decorate syntax simultaneously. For your Spawn state, never use a codepointer on the first tic since that isn't how the engine works: it will (at best) ignore it.  You're also redefining an existing Thing (deadlostsoul): why do this when you have literally thousands of free doomednums to work with. Redefining an existing Thing without using thingdelta's to do so is just asking for weird behaviour. If you use new / modified Things with or without its own doomednum, never use 'dehackednumber' nor 'firstdecoratesprite' attributes: these act as fallbacks to the original Thing and its original behaviour.  Thingdeltas are also applied last, so something that inherits from the original Thing will not have your thingdelta stuff that gets applied later. Don't use Dehacked in combination with EDF, because JFC why WHY?? Personal preference: don't use flags1, -2, -3 but "cflags" to combine them all. Even better: use "basictype"  (eg basictype FlyingMonster) for a set of flags that is always updated if EE should introduce more/different flags, then use "addflags" or "remflags" to adjust this basic type to your needs.

 

[Edit] Adding to this: A_TURN uses not args, but "misc" fields, a left-over from when EE only used (compressed) frame format for its Thing definitions. You can't use it in decorate syntax; use Face instead.

Share this post


Link to post

Why you ask?!   Because I'm a glutton for punishment and love to make whole groups of people scream like lost souls.   It's music to my ears.   Nah, sorry, I've yet to visit the beautiful realm of Alfheim and familiarize myself with their fine dialect.  I gotta go there sometime, if they ever allow visits from filthy humans again.   Anyway, that Eternity loads dehacked afterwards no matter the ordering or whatever, was the most crucial info I needed to know and explains much.   Not getting the results I expected I was throwing everything at it I could find however redundant.   Ya know, brute forcing it, bending it over and taking it to browntown like Big Bubba.   I originally copied stuff from main edf files (and used some stuff from lostepis.wad as a template) since I'm unfamiliar with the format and now I see some of that stuff is just to maintain compatibility from the base files.

 

So now I quickly got things behaving better and trimmed the fat.   The dehacked is there for Odamex/ZDaemon/applying to doom.exe/whatever else.   So now the EDF does mostly what my decorate does, turns the deadlostsoul soulsphere into a blue invulnsphere Doomball and adds the CacoDoomball as additional thing 3055. In Eternity the soulball just has to be hit to become an invulnball.   The problems that remain are not being able to use my translations that do more than the red/green to blue ones I had to copy from eternity.pke that are working now (because they weren't between T_start and T_end in that).   Looks crappy with the Cacoball's lip flashing pink.   Is there a util to make/convert translation tables somewhere?   The wiki tells almost nothing but gives me the impression I have to hex edit each individual color value which isn't worth the time.  Bloodcolor 3 isn't working.   And currently not using A_Turn or anything to make the Cacoball spin.  When A_Turn was doing something, I at least liked how the cacoball spun through its views instead of immediately facing me.   I think I saw someone post how to make some decor spin through its viewpoints like frames of animation, but it may be newer GZDoom stuff only.  And Eternity doesn't like a E6M2 secret exit taking you to E1M9 behaving weird with M2 to M3,etc.   This wad is designed to work with doom.exe and various ports.   Ep1-4 doom.exe compat (Got E4M1 vanilla Doomball scoring working now which I think no one has ever managed before), ep5: Odamex/ZDaemon, Ep6: Eternity, Ep7: Zandro/newerZDooms.  Info in credtext at the bottom of the wad (which has been reuploaded).   Here's my almost current EDFroot

setdialect("ALFHEIM")

stdinclude("root.edf")

thingtype CacoDoomball
{
  doomednum   3055
  spawnhealth    9000000
  deathsound     cacdth
  radius         16.0
  height         42.0
  mass             70
  PainChance      255
  cflags         SOLID|SHOOTABLE|DROPOFF|PUSHABLE|SLIDE|TELESTOMP|WINDTHRUST|SPACMONSTER
  translation     CRBLUE2
  bloodcolor     3
  xscale 0.4
  yscale 0.4
  obituary_normal "was killed by the Cacoball.   Loser!"
  obituary_melee  "was killed by the Cacoball.   Loser!"
  states
  @"
  Spawn:
    HEAD A 6
    loop
  Pain:
    HEAD E 6
    HEAD F 6
    Goto Spawn
  Death:
    HEAD G 8 A_Fall
    HEAD H 8 A_Scream
    HEAD I 8
    HEAD J 8
    HEAD K 8
    HEAD L -1
    Stop
  "@
}

thingdelta { name = DeadLostSoul;
  spawnhealth    9000000
  deathsound     firxpl
  radius         16.0
  height         42.0
  mass             70
  PainChance      128
  cflags         SOLID|SHOOTABLE|DROPOFF|NOBLOOD|PUSHABLE|SLIDE|TELESTOMP|WINDTHRUST|SPACMONSTER
  translation     6
  obituary_normal "was killed by the Doomball.   Loser!"
  obituary_melee  "was killed by the Doomball.   Loser!"
  states
  @"
    Spawn:
        PINV ABCD 6
        Loop
    Pain:
        PINV ABCD 6
        Loop
    Death:
        PINV A 6 BRIGHT
        SKUL G 6 BRIGHT A_Scream
        SKUL H 6 BRIGHT
        SKUL I 6 BRIGHT A_Explode
        SKUL J 6 A_Fall
        SKUL K 6
        Stop
  "@
}

 

 

Edited by Gokuma

Share this post


Link to post

JFSC, I wonder how many people go to edit for Eternity and just say screw it.   And whatever someone's trying to do with the mouse control, it isn't working and should be reverted back to when it was fine however many years ago.  I remember Boom and MBF being alright.   The smooth turning option is a floaty insufficient bandaid on the jankyness.   Should be at least as direct and responsive as old doom.exe.

Share this post


Link to post
21 hours ago, Gokuma said:

Is there a util to make/convert translation tables somewhere?

 

The 'translation' property in Thingtype definitions takes a number (1-14), similar to the player's green being translated to different colours in multiplayer. As far as I'm aware, you cannot do whole palette swaps on an individual Thing. Slade itself allows you to set the translation beforehand though.

 

The 'bloodcolor' property works on particles, not sprites. Currently you can't define a new blood sprite for individual things, unfortunately. Unless I'm missing some (undocumented) feature, that is.  And apparently it's undocumented indeed: properties

bloodtype.normal, bloodtype.impact, bloodtype.rip and bloodtype.crush allow you to set a different Thingtype for these four types of damage.

 

To change map progression, use EMAPINFO to define where the next/secret exit takes the player.

 

Use A_Face, not A_Turn, for reasons already stated. Or just call an ACS script that does the rotating for you.

 

Can't comment on mouse sensitivity, don't know enough of its settings to help you there.

Share this post


Link to post

Thanks Morthdeth, I'll try messing with the bloodcolor and A_Face/ACS rotation.

 

Currently translation does work either taking a number to translate pure green to other colors OR a CR***... translation table lump (though I had to copy them from eternity.pke and put them between t_start and t_end in mine for them to work).   So translation 6 there turns the green invuln sphere blue but misses changing some darker army greens my own custom translation would do.   And translation CRBLUE2 there works turning a Cacodemon's pure reds to blue, but there's whole ranges of pinks, tans, and darker pinkish reds it's missing that mine would do, so it really doesn't look too great compared to mine.   In the current version of the wad uploaded I have it set to CRORANGE being closer to the original reds and pinks so the lower lip flashing pink isn't as noticeable and the other bits of unchanged color don't look as bad.  I just want to know how I'm supposed to make my own translation tables.   Currently my translation table lumps are Doom GFX entries but that doesn't work.   They have to be some 256 byte translation table format.   E4M1 in the wad demonstrates the difference in the invulnball in Eternity vs new ZDoom ports and E6M1 in Eternity vs E7M1 in newer ZDooms demonstrates the Cacoball difference (especially if CRBLUE2 is used rather than the current CRORANGE).

 

I have nextlevel = E*M* and nextsecret = E*M* properly set for each map in Emapinfo.

For each port specific additional episode (E6 for Eternity).   M1 is the port specific Doom/Cacoball.  M2 is the port specific EntryHangar (M3 in Ep7).

I have M2 just exit to M1, except I have its secret exit go to E1M9.   So you start on the port specific EntryHangar and ideally play through Ep1 from there.

E1M9's exit goes to E1M2 and I have E1M3 secret take you to E1M10 which takes you to E1M4.

Eternity does not like the episode change through exits.   At first going to E1M9 from there seems fine.

(Nevermind the level name text saying Heretic E6M3 idmap01, that's just text and it's really E1M9)

But then you exit that map and it says Perfect Hatred (E4M2) and plays its music, but you are in E1M2.

Then you exit E1M2 and instead of going to E1M3, you find yourself in E4M3 in the older splitscreen fork of Eternity

or the current version crashes with E6M3 not found.   Really odd behavior.   I have nothing set to send you to any of ep 4 or E6M3 in my EMapInfo.

Just two E4M* definitions have their name changed for the replacement map and I have one use a bassier version of its music (D_E3M7 opposed to D_E2M7).

And I have some maps in additional episodes use SKY4 which shouldn't matter.

 

Just tried adding this to EMapInfo

[E1M2]
nextlevel = E1M3
nextsecret = E1M3

 

Now E1M2 goes to E1M3, but then it still says E4M3 Sever the Wicked and plays its music (in EE splitscreen fork).   Then the standard exit takes you to E4M4 or the secret exit takes you to E1M10.   Then E1M10 correctly exits to E1M4 with the correct level name and music, so you're finally correctly in Episode 1.  So it seems if I put correct complete definitions for all of Episode 1 (not just my changes), it MIGHT correct everything.  So I'll try that to fix all the weird progression behavior.   Also, I have previously noticed some weird behavior with differences in behavior when using the exitlevel console command vs actually hitting a normal exit, though they may be consistent now however weird.

 

I saw Ling comment on the janky mouse somewhere so I know it's not just me.   Also, the player runspeed seems slower in Eternity, if I'm seeing right?

Edited by Gokuma

Share this post


Link to post
3 hours ago, Gokuma said:

So translation 6 there turns the green invuln sphere blue but misses changing some darker army greens my own custom translation would do.  

 

Which works exactly like that for the player sprite: not all greens are translated. Just the bright green range, the "army greens" are not included. You'll notice the same untranslated greens for the player sprite in multiplayer.

 

Going to try your episode progression stuff later, when I have time.

 

EE is proven vanilla Doom compatible. So no, running speed does not differ. Perhaps your input setup is different, or your always-run option is off?

 

If you're using dev builds, unzip them over the regular official release build. Otherwise you're missing files, notably midiproc stuff.

Share this post


Link to post

I've tried all these and it says invalid bloodtype for any of them:

  bloodtype.normal particles
  bloodtype.impact particle
  bloodtype.rip   "particles"
  bloodtype.crush  "particle"

  bloodtype.normal 2
  bloodtype.impact 3
  bloodtype.rip    1
  bloodtype.crush  0

  bloodtype.normal particlefx
  bloodtype.impact "particlefx"

 

And A_Face isn't doing anything here:

  Spawn:
    HEAD A 6 A_Face(0)
    HEAD A 6 A_Face(32)
    HEAD A 6 A_Face(64)
    HEAD A 6 A_Face(96)
    HEAD A 6 A_Face(128)
    HEAD A 6 A_Face(160)
    HEAD A 6 A_Face(192)
    HEAD A 6 A_Face(224)
    loop

 

Not sure if I'm having a brainfart and doing something wrong with it but this rotation script isn't doing anything either:

#include "zcommon.acs"

SCRIPT 166 OPEN
    {
    for (int cacangle = 0; cacangle <= 256; cacangle+=32)
        {
        SetActorAngle (17, cacangle);
        delay(6);
        }
    restart;
    }

 

Cacodoomball thing in map is tagged 17.   Currently have not reuploaded with any of this stuff.

Also it would be nice to teleport the ball to a height of 96 back in the center.   But using teleport destinations, map spots, or map spots w/ gravity, the ball stays at ground level.  Zandronum and ZDaemon, it works with teleport Z destination and drops down in the center, but not in Eternity or Odamex.

Edited by Gokuma

Share this post


Link to post

My spinning script:

/* -------------------------------------------------------------------------------
** Spin caller around
** - Used for rotating objects / items.
** - Assumes caller does not have TID already.
** -------------------------------------------------------------------------------
*/
script "SpinMeAround" ( void ) {
	int tid = UniqueTID( MIN_TIDRANGE );
	int fixedAngle = 0.0;

	Thing_ChangeTID( 0, tid );
	while ( IsTidUsed(tid) ) {
		fixedAngle += 0.125;
		if ( fixedAngle > 1.0 ) fixedAngle -= 1.0;
		SetActorAngle( tid, fixedAngle );
		delay(4);
	}
}

 

Yours doesn't work because SetActorAngle takes a fixed angle, not byteangle parameter. The ZDoom wiki has a nice overview of these definitions. Btw,  'min_tidrange' is a Mordeth-specific definition; normally you just use UniqueTID(). This script can be called from EDF, eg:

BASE A	2 bright StartScriptNamed(SpinMeAround,2)

With the '2' denoting a ACS script, with the caller being spun 45 degrees / 32 byteangle degree each loop. Or just call it from another script, assuming your to-be-spinning actor already has a TID.

 

3 hours ago, Gokuma said:

But using teleport destinations, map spots, or map spots w/ gravity, the ball stays at ground level

 

Teleport destinations never take Z-height into account. I use SetActorPosition to teleport/relocate stuff if I want non-vanilla behaviour. For stuff that's already supposed to be air-born, you can set that property directly in UDMF or with ExtraData.

 

Will come back to your other questions, time permitting.

Share this post


Link to post

Thanks, with MIN_TIDRANGE deleted your script works.  But SetActorPosition isn't doing anything, at least with the splitscreen fork EE (Heimdal edition using Alfheim dialect), and the ball doesn't teleport at all.

 

With the thing still tagged 17, I fixed my script to work.   There's a delay in the restart so I added a little if condition to skip my intended delay at the appropriate part of the cycle.:

 

SCRIPT 166 OPEN
    {
    for (int cacangle = 0.0; cacangle <= 1.0; cacangle+=0.125)
        {
        SetActorAngle (17, cacangle);
        if (cacangle > 0)
            {
            delay(5);
            }
        }
    restart;
    }

 

But I change the teleport lines to call 80:ACS_execute script 70 and this doesn't work:

 

SCRIPT 70 (void)
    {
    SetActorPosition (17, 480, 480, 96, TRUE);
    }

 

480,480,96 are the exact coords I want it to teleport to.    And the angle doesn't matter since the spinning script is working.

 

 

I still need to find a node builder for the nodes and blockmap Eternity wants.   Using Ultimate Doom Builder on the map, EE still says rebuilding blockmap and ZDoom uncompressed GL version 1 nodes detected when the map is loaded.

EDIT: According to this, I guess they're just normal map loading indications.

 

EDIT: Get the finished version.  4/25

Lines currently changed back from 80:ACS exe 70  to 70:Teleport(16) so they work.   But script 70 is still available to be called.

And currently commented out your ACS call code pointer in EDFroot since I'm currently using my script in the map, but yours is there commented out.  Also in this reupload (same link address), I fixed the map progression by defining all of Episode 1 in EMapInfo, except the map screen doesn't animate or plot your progress, and it shows E4 end text at end of E1 if you came from E6.

 

Update: Examined CRRED and CRBLUE2 translation table in a hex editor and figured out to efficiently edit my own, though a little tediously.   So now current upload has invulnball pure&army greens to blues and several ranges of Caco colors to blues just how I wanted.   They're CGBLUE and CCACBLUE in my wad.

 

So remaining problems:

1. Getting ball to teleport to Z position.  Can't get SetActorPosition to do anything.

2. Getting CacoDoomball to bleed blue or getting CacoDoomball to bleed particles or whatever can be made blue.  Otherwise I'll have it puff.

3. Fixed map progression but if you came from E6, beating Episode 1 shows Ep 4 endtext until I redefined that.  Ep1 map screens are missing animation and plotting due to the episode being redefined.

4.  Don't know  how to recreate Bruiser combo attack with a custom projectile so currently just have missile for a random far attack and demon bite with claw sound for close attack.  Having trouble with A_Scratch syntax yet though I may not need it.

The code_pointer VileStart was playing the pistol sound in Doom 1 until I put this zero duration line after it to override:

        BOSS F 0 BRIGHT A_PlaySoundEX("bospit",0,0,attn_normal,0)

 

I got the Cacoball spinning for both Eternity and Zandronum/newerZDooms thanks to your tips, Mordeth.

 

 

My method for making translation tables of my colremaps:   The raw exported table lump is just 256 numbers 00 through FF in order plus an extra row I don't touch.  I change numbers to the numbers of the colors I want them to be.   So for the invulnball translation, I went to 70 (112) and changed that through 7F (127) to C0 (192) through CF (207).   I just changed those 7's to C's for the pure green to blue. Then I got the army greens by changing 0A, 0B, 0C to F0,F1,F2.  Obviously the Blue Caco was more involved and took longer.   Saved the changes in my hex editor and imported the raw lump into the wad.  And just using translation CGBLUE or translation CCACBLUE in my EDFroot.

Slade calls my edited translation table lumps Graphic SRB2 Encore but they're working fine in Eternity.

EDIT: CRRED actually has about four colors changed so made a change-free one called CNONE to use as a base.

 

Edited by Gokuma

Share this post


Link to post

You're made the same mistake with SetActorPosition as before with SetActorAngle. SetActorPosition takes "fixed" as parameter type for its x, y and z coordinates. You've supplied "int". That's why it doesn't work. If x is an int, x<<16 is x converted to fixed type.  Helpful tip: GetActorX() also returns a fixed type, so you can use that value directly in SetActorPosition.

 

Particles needs to be turned on/off in the menu. I don't use them myself, but pretty sure they're off by default. You can turn them on by default for your players by providing an OPTIONS lump with that desired setting.

 

Example of green blood edf:

thingtype BloodGreen
{
  cflags NOBLOCKMAP|NOSPLASH
  states
  @"
  Spawn:
    GBLD C 8
  Blood2:
    GBLD B 8
  Blood3:
    GBLD A 8
    stop
  "@
}

 

Imagine "GBLD" being a green coloured blood splat. You can use the translation property to convert those to the other 13 colour options available. You give a monster this green blood instead of the default red one by the line "bloodtype.normal BloodGreen" for this new green blood for hitscan hits.  Ignore the distant wailing you now hear from far, far away... that's just Altazimuth who saw you using undocumented features.

 

The generalized MissileAttack codepointer has a parameter that allows it to enter another state if within melee range. The trick is not to put the default "melee" state in there, but a newly defined state that holds this melee attack. Eg. "SPID H 4 Bright A_MissileAttack(BFGShot, 0, 0, 0, altmelee)"  with "altmelee" a new defined state.  Let your default Melee state fall through to the default Missile state, with MissileAttack deciding if it should fire a missile or go to your "altmelee" state for a scratching attack or whatever.

Share this post


Link to post

Ha, some stuff has been undocumented a long time considering it's in the splitscreen fork that hasn't been updated in a couple years.

 

Major thanks, Mordeth!   I got this pretty well polished now.   The current upload is virtually finished except I might throw in some entire other addition for something aside from giving this a more standard txt file.

 

The documentation on A_Scratch is still a mess with no examples, but A_BruisAttack for the AltMelee is actually doing exactly what I want though I'm not sure why.   I was expecting that stepping away from the Nethercount(replacement Archvile)'s close attack with it would have him throw a green baron ball but instead his Blue Noble Ball comes out like his main random far attack.   Since I now redefined the Ep1 Ending text, the only problem with progression left is that Ep1 map screens are missing animation and plotting due to the episode being redefined. Deleted interpic=wimap0 from all of E1 except E1M10.  So now playing from E1M1 it works correctly and if you came from E6M2 it just shows interpic instead.

 

Got colored blood working for both sprites and particles.   I think particles were causing a framerate drop on my older laptop so I deleted my options lump and will leave it to players to decide which type of blood they want or both.   Used my CCACBLUE for the BloodBlue and made a new CRGREEN2 for BloodGreen for Hell Knights rather than adding any sprites.

 

SetActorPosition (17, 480<<16, 480<<16, 96<<16, TRUE);

is working great.   Had to also set velocity to 0 or it kept its momentum.

Thinking ahead, I set the lines to not be activated by the players so their corpses don't activate it and cause the ball to teleport.

But corpses sliding in or the ball counts as a score as intended.

 

Playing with the predefined translation numbers, I added a dead marine of each color. 14 for white didn't seem to work, so I deleted that one.

Edited by Gokuma

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×