
EDuke32 Scripting "CON coding help"
#1554 Posted 16 November 2014 - 02:11 PM
What are the defineprojectile code placement to make a pipebomb.
Example (non pipebomb projectile).
defineprojectile 6561 PROJ_WORKSLIKE 2
defineprojectile 6561 PROJ_TRAIL 6044
defineprojectile 6561 PROJ_TNUM 1
defineprojectile 6561 PROJ_VEL 620
defineprojectile 6561 PROJ_EXTRA 17
defineprojectile 6561 PROJ_HITRADIUS 1268
defineprojectile 6561 PROJ_SPAWNS EXPLOSION2
But what I want is the stuff to make a pipebomb.
Throws like one.
Bounce like one.
Except I put a different PROJ_SPAWNS when it goes off by remote or by something hitting it.
Cus I wanna make when the player takes an enhancement.
He will throw the same type of pipebomb that behaves exactly the same as the Duke pipebomb.
Except it spawns a stronger explosion yield. (explodes harder).
I have all the thing working all is left is to make the projectile but can't find any source to "simulate" the pipebomb.
blah blah blah
with setvar WEAPON5_SHOOTS XXXXX Inside the aplayer actor
So when he get the enhancement he shoots a different pipebomb actor, acts like same one except spawns deadlier explosion (like mentioned above)
This post has been edited by Zaxtor: 16 November 2014 - 02:12 PM
#1555 Posted 16 November 2014 - 07:30 PM
I found a source code on 3dRealms, 8 years old, I normally avoid searching old stuff cus sometime they give obsolete stuff.
I duplicate it.
defineprojectile 14694 PROJ_WORKSLIKE 22598
defineprojectile 14694 PROJ_VEL 256
defineprojectile 14694 PROJ_EXTRA 182
defineprojectile 14694 PROJ_DROP -200
defineprojectile 14694 PROJ_BOUNCES 4
defineprojectile 14694 PROJ_BSOUND 13
defineprojectile 14694 PROJ_OFFSET 225
defineprojectile 14694 PROJ_CLIPDIST 24
defineprojectile 14694 PROJ_ISOUND 17
defineprojectile 14694 PROJ_HITRADIUS 3001
defineprojectile 14694 PROJ_SPAWNS EXPLOSION2
Problem is. the pipebomb (heavybomb) stays frozen in the air.
On the site, Deeperthoughts says is hardcoded and has no con for it.
That was 8 years ago, dunno if there is a solution someone may know today.
Thing I wanna make.
Is the thing behaving exactly like the pipebomb (heavy bomb).
Throwable, can be recovered.
Can be destroyed by being hit or detonated, Just like the normal.
Thing is an addon.
When player takes it.
It unlock a var to define WEAPONx stuff.
with setvar WEAPON5_SHOOTS 14694 Inside the aplayer actor
Inside explosion2 actor it has ifspawned by the 14694 thing {it does multi explosions etc}
Neither SHOOTS or SPAWN works.
I think pipebomb suppose to be a "spawn" but nothing happens, stays frozen in the air.
This post has been edited by Zaxtor: 16 November 2014 - 07:31 PM
#1556 Posted 25 November 2014 - 01:18 AM
#1557 Posted 29 November 2014 - 03:23 AM
#1558 Posted 29 November 2014 - 03:26 AM
#1559 Posted 29 November 2014 - 04:11 AM
#1560 Posted 29 November 2014 - 04:18 AM
#1562 Posted 14 December 2014 - 01:28 PM
Jblade, on 29 November 2014 - 03:23 AM, said:
Actually, you can teach Mapster32 about the linking semantics of your custom actors, and the built-in functionality of drawing lines between matching sprites will be extended accordingly. From the wiki:
Quote
triggered by the link-tagging system to query whether the tag of a particular sprite (which is the current sprite in this event) has a linking meaning. It is supposed to return in RETURN a bit-field of ORed values:
1: lotag has linking semantics
2: hitag
4: extra
8: xvel
16: yvel
32: zvel
64: owner
Otherwise, drawline16b or drawline16z are your friends.
#1563 Posted 14 December 2014 - 01:51 PM
#1564 Posted 14 December 2014 - 10:32 PM
like the explosion radius of a pipebomb.
#1565 Posted 14 December 2014 - 10:41 PM
#1566 Posted 15 December 2014 - 01:46 AM
Zaxtor, on 14 December 2014 - 10:32 PM, said:
like the explosion radius of a pipebomb.
The control for detonation is some funky shit, but the part you ask about is this:
int32_t j; x = s->extra; m = 0; switch (DYNAMICTILEMAP(s->picnum)) { case HEAVYHBOMB__STATIC: m = g_pipebombBlastRadius; break; case MORTER__STATIC: m = g_morterBlastRadius; break; case BOUNCEMINE__STATIC: m = g_bouncemineBlastRadius; break; } A_RadiusDamage(i, m,x>>2,x>>1,x-(x>>2),x); j = A_Spawn(i,EXPLOSION2); A_PlaySound(PIPEBOMB_EXPLODE,j); if (s->zvel == 0) A_Spawn(i,EXPLOSION2BOT); for (x=0; x<8; x++) RANDOMSCRAP;
Where g_pipebombBlastRadius is the tenth parameter of gamestartup (defined in the stock USER.CON as PIPEBOMBRADIUS), and x = getactor[<pipebomb actor>].extra = the strength of the HEAVYHBOMB actor (defined by default as HANDBOMB_WEAPON_STRENGTH).
So:
setvar temp1 HANDBOMB_WEAPON_STRENGTH shiftvarr temp1 2 setvar temp2 HANDBOMB_WEAPON_STRENGTH shiftvarr temp1 1 setvar temp3 HANDBOMB_WEAPON_STRENGTH subvarvar temp3 temp1 hitradiusvar PIPEBOMBRADIUS temp1 temp2 temp3 HANDBOMB_WEAPON_STRENGTH
#1567 Posted 15 December 2014 - 06:51 AM
Hendricks266, on 15 December 2014 - 01:46 AM, said:
int32_t j; x = s->extra; m = 0; switch (DYNAMICTILEMAP(s->picnum)) { case HEAVYHBOMB__STATIC: m = g_pipebombBlastRadius; break; case MORTER__STATIC: m = g_morterBlastRadius; break; case BOUNCEMINE__STATIC: m = g_bouncemineBlastRadius; break; } A_RadiusDamage(i, m,x>>2,x>>1,x-(x>>2),x); j = A_Spawn(i,EXPLOSION2); A_PlaySound(PIPEBOMB_EXPLODE,j); if (s->zvel == 0) A_Spawn(i,EXPLOSION2BOT); for (x=0; x<8; x++) RANDOMSCRAP;
Where g_pipebombBlastRadius is the tenth parameter of gamestartup (defined in the stock USER.CON as PIPEBOMBRADIUS), and x = getactor[<pipebomb actor>].extra = the strength of the HEAVYHBOMB actor (defined by default as HANDBOMB_WEAPON_STRENGTH).
So:
setvar temp1 HANDBOMB_WEAPON_STRENGTH shiftvarr temp1 2 setvar temp2 HANDBOMB_WEAPON_STRENGTH shiftvarr temp1 1 setvar temp3 HANDBOMB_WEAPON_STRENGTH subvarvar temp3 temp1 hitradiusvar PIPEBOMBRADIUS temp1 temp2 temp3 HANDBOMB_WEAPON_STRENGTH
I don't think I need that.
What I mean is.
I made a Pseudopipebomb or pipebomb clone that we take.
The normal heavyhbomb is incharge for the rest.
The reason I made that "clone" like you know when you shoot or anything hit a heavyhbomb on the floor it blows up.
If you set the var of the enhancer it will make "all the heavyhbomb" make the super explosion.
So to not make that I cloned the pipebomb (item we take).
The Pseudopipebomb doesn't make the "Super explosion" when you shoot it, it get shot or destroyed if never taken.
The Pseudopipe bomb is to prevent untaken pipebomb from making "Super explosion" of the enhanced pipebomb,
The enhanced pipebomb thing works, All I need is just the hitradius of the pipebomb in numbers or etc to the Pseudopipebomb (A_PIPEBOMB).
Its code
actor A_PIPEBOMB sizeat 9 9 cstator 256 fall ifmove RESPAWN_ACTOR_FLAG state respawnit else ifp pshrunk nullop else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget { addweapon HANDBOMB_WEAPON HANDBOMBAMOUNT quote 55 ifspawnedby A_PIPEBOMB state getcode else state quikget } ifhitweapon { hitradius xxxx xx xx xx sound PIPEBOMB_EXPLODE spawn EXPLOSION2 debris SCRAP1 3 debris SCRAP6 4 killit } enda
All I need is the radius.
This post has been edited by Zaxtor: 15 December 2014 - 06:52 AM
#1568 Posted 15 December 2014 - 08:04 AM
hitradius PIPEBOMBRADIUS 625 1250 1875 2500
#1569 Posted 15 December 2014 - 02:43 PM
Fox, on 15 December 2014 - 08:04 AM, said:
hitradius PIPEBOMBRADIUS 625 1250 1875 2500
Hundreds and thousands in the strength???
That would be a deadly pipebomb.
I need a radius that does the same damage as the normal heavyhbomb.
#1570 Posted 15 December 2014 - 03:21 PM
Fox, on 15 December 2014 - 08:04 AM, said:
hitradius PIPEBOMBRADIUS 625 1250 1875 2500
I think you did the math wrong...
define HANDBOMB_WEAPON_STRENGTH 140
Also not that we're shifting right and not left.
#1571 Posted 15 December 2014 - 04:36 PM
Like a replica of the hit radius of the explosion when you destroy the pipebomb from shooting it.
When you take it and rethrow it it becomes the normal pipebomb as suppose to. Why applied the enhancement if you took the enhancement (set var etc)
I made the replica so when you take the enhancement it doesn't make the untaken (never touch before) pipebomb make a super explosion if the bomb get accidentally shot or blown up by you or an enemy from shooting the pipebomb.
Everything works
All I need is the replica of the hitradius of the pipebomb.
Because I want it to explode the same when you shoot it, etc.
If the message doesn't work
I mind make a video of what I mean.
This post has been edited by Zaxtor: 15 December 2014 - 04:37 PM
#1572 Posted 15 December 2014 - 05:27 PM
Zaxtor, on 15 December 2014 - 02:43 PM, said:
That would be a deadly pipebomb.
I need a radius that does the same damage as the normal heavyhbomb.
LOL
hitradius PIPEBOMBRADIUS 35 70 105 140
#1573 Posted 15 December 2014 - 05:39 PM
#1574 Posted 29 December 2014 - 06:10 PM
I need it for disabling polymer lights on snowflake sprites only for my new snow code; it runs fine on polymost, but lights cast on falling snow drop the fps to ~5.
I could remove polymer features at all, but is not reasonable for 1-2 line of code, if this is possible.
Can anyone help me ?
#1576 Posted 30 December 2014 - 02:04 AM
This post has been edited by RichardStorm: 30 December 2014 - 02:05 AM
#1577 Posted 30 December 2014 - 05:17 AM
#1578 Posted 03 January 2015 - 02:47 PM
to have a countdown in a map which ends the map, if it's not finished in the given time, has been seen several times. But is it possible to have a countdown for a complete episode (maybe even hub-maps connected) either.
The idea behind this:
a mod, where the player's time is running up to complete a task (or the episode). Best, if the player could go back and forth through the maps by a hub system. After two hours for example the whole game ends if the player hasn't completed the task.
So is something like this possible at all or is this sticker to single maps?
Any suggestions here?
Thank you in advance.
#1579 Posted 03 January 2015 - 03:49 PM
This post has been edited by Mark.: 03 January 2015 - 03:50 PM
#1580 Posted 26 January 2015 - 01:03 AM
#1582 Posted 30 January 2015 - 02:21 AM
Jblade, on 26 January 2015 - 01:03 AM, said:
Bumping because this is a fairly important thing I need to get working.