onevent EVENT_DISPLAYROOMS ifp pdead setvar cameradist 65536 endevent
EDuke32 Scripting "CON coding help"
#1381 Posted 27 July 2013 - 10:29 AM
#1382 Posted 27 July 2013 - 01:45 PM
I can't get something to spawn if the enemy is killed with the RPG. I assume I'm overlooking something easy again.
1. GreenPuke, 4389, is one of the spawnable items in the game so I defined my new MONSTERDIE to that tile number in DEFS.CON
2. The MONSTERDIE model was def'ed into tile 4389 and will show up in Mapster if I place that tile number in a test map so I know its working.
3. Towards the beginning of GAME.CON I created a useractor called MONSTERDIE since the wiki states that the spawnable item needs to be an actor.
4. In the TROOPER code, which my new enemy is using, I added the line "spawn MONSTERDIE" right after the entries for sound and killit. This is nested in the " ifdead " code.
ifwasweapon RPG
{
sound ROCK_BUST
killit
spawn MONSTERDIE
}
The sound and killit parts run fine so I know I didn't mess up the lines of code. But the MONSTERDIE actor will not appear after the enemy dies. Any ideas what I am forgetting?
This post has been edited by Mark.: 27 July 2013 - 02:12 PM
#1383 Posted 27 July 2013 - 02:14 PM
A code won't work if you place it after the killit command, since the sprite ceases to exist and the actor code is aborted when killit is used.
This post has been edited by Fox: 27 July 2013 - 02:15 PM
#1384 Posted 27 July 2013 - 02:18 PM
Fox, on 27 July 2013 - 02:14 PM, said:
A code won't work if you place it after the killit command, since the sprite ceases to exist and the actor code is aborted when killit is used.
I didn't duplicate the tile definition. I just replaced the word PUKE with MONSTERDIE so I could keep track of things. If I don't use the killit command how do I get rid of the first model when the second model takes it's place? My uneducated guess is that after the new actor model spawns I have to detect if its in the game and if so, THEN use killit on the first model? Or is my logic laughable?
BTW, I tried some other tiles besides Puke and still no luck. It would be great if I could just use a newly defined tile but the game only allows to choose from a list of spawnable tiles. Which known to work tile numbers do others replace in their mods. Anyone?
This post has been edited by Mark.: 27 July 2013 - 02:37 PM
#1385 Posted 27 July 2013 - 02:41 PM
spawn MONSTERDIE killit
By default sprites in Duke 3D spawn with a scale of 1 by 1. So if you are not spawning a hard-coded sprite, it is necessary to set the scale when a new sprite is spawned...
onevent EVENT_EGS ifactor MONSTERDIE sizeat 64 64 endevent
#1386 Posted 27 July 2013 - 02:55 PM
Two odd things though. One, I managed to get a completely new tile 8421 to spawn instead of only replacing something from the "pre-approved" list of original sprites. The second odd thing is I had to massively increase the scale of the second model by 150 to bring it up to proper size.
This post has been edited by Mark.: 27 July 2013 - 03:00 PM
#1387 Posted 03 August 2013 - 04:57 PM
Searching only turned up something about disabling the VOLUME4 intro.
#1388 Posted 09 August 2013 - 05:15 AM
im trying to do my own projectile in game, everything is ok, but function PROJ_FLASH_COLOR doesn't seem to work.
syntax is:
Quote
Where <number> is the color of the light. The number can be determined from RGB color values by adding the red value plus the green value shifted left 8 bits plus the blue value shifted left 16 bits. So, RGB of 100, 100, 100 would be 6579300 = 100 + 100<<8 + 100<<16 = 100 + 25600 + 6553600. 150, 100, 255 would be 16737380.
but it doesn't do anything, i've tried many combinations...
Is there any way to attach the light on the projectil?
thanks for any help,
This post has been edited by Mblackwell: 09 August 2013 - 07:41 PM
#1389 Posted 17 August 2013 - 07:08 PM
#1390 Posted 17 October 2013 - 06:37 AM
#1391 Posted 17 October 2013 - 08:47 AM
Mark., on 03 August 2013 - 04:57 PM, said:
Oh well... since that was requested once already, I went ahead and added four new LOGO_FLAGS bits.
r4109 said:
Each scene is disabled in its entirety, there's no way to disable only a
particular part.
However, I made that revision not produce a synthesis build because 20 megs on the server for such a small change feels wasteful to me. You'll have to wait until more changes have accumulated...
#1392 Posted 20 January 2014 - 12:23 PM
Like, sprite which activates world's shaking and wouldn't ever stop it - until the map changes.
Is it hard-coded function, or what? I have no ideas where to look at.
#1393 Posted 20 January 2014 - 04:55 PM
Helixhorned, on 17 October 2013 - 08:47 AM, said:
However, I made that revision not produce a synthesis build because 20 megs on the server for such a small change feels wasteful to me. You'll have to wait until more changes have accumulated...
I'm not sure if I used your info properly or not. I saw that LOGO_FLAGS was considered a gamevar so at the beginning of my defs.con file I added in
gamevar LOGO_FLAGS 0 4096
right after a bunch of other gamevars. What happens is that instead of bypassing the E1 ending screen, the game's loading screens at the beginning are bypassed and the menu appears directly. A handy feature but not what I was expecting. Did I do something wrong on my end?
This post has been edited by Mark.: 20 January 2014 - 04:56 PM
#1394 Posted 20 January 2014 - 04:58 PM
Ie. if you want to remove the 3D Realms logo and the Duke Nukem 3D title screen, you change the value to 24.
EDIT: Derp, what. I forgot if you had to enable it or something.
This post has been edited by Daedolon: 20 January 2014 - 05:00 PM
#1395 Posted 20 January 2014 - 05:01 PM
#1396 Posted 20 January 2014 - 05:03 PM
#1397 Posted 20 January 2014 - 05:05 PM
#1398 Posted 20 January 2014 - 05:05 PM
#1399 Posted 20 January 2014 - 05:07 PM
#1400 Posted 20 January 2014 - 05:10 PM
This post has been edited by Mark.: 20 January 2014 - 05:11 PM
#1401 Posted 21 January 2014 - 08:28 AM
pmw, on 20 January 2014 - 12:23 PM, said:
Like, sprite which activates world's shaking and wouldn't ever stop it - until the map changes.
Is it hard-coded function, or what? I have no ideas where to look at.
CON's quake, besides starting the EARTHQUAKE sound, merely sets an unexposed timer to the provided value, which is then decremented every game tic. So, you could code an actor that simply issues quake at certain intervals. Another option would be initializing the quake timer to a huge value, but since it's currently an unsigned 16-bit integer, you'd have at most 65535/30/60 = approx. 36 minutes of quake then.
#1402 Posted 21 January 2014 - 08:33 AM
Mark., on 20 January 2014 - 04:55 PM, said:
gamevar LOGO_FLAGS 0 4096
right after a bunch of other gamevars. What happens is that instead of bypassing the E1 ending screen, the game's loading screens at the beginning are bypassed and the menu appears directly. A handy feature but not what I was expecting. Did I do something wrong on my end?
Yeah, maybe I should have a bit more explicit in the commit log -- the bits are 4096, 8192, 16384 and 32768, for disabling the the four episode ending scenes, respecitvely. LOGO_FLAGS as a CON gamevar is a strange thing: if you don't define it using gamevar, it maintains its default value of 255. That's documented on the wiki, by the way.
#1403 Posted 24 January 2014 - 07:14 PM
Helixhorned, on 21 January 2014 - 08:28 AM, said:
Sounds OK. But if I change quake timer's value to huge one, isn't it gonna affect to all *quakes* on my game?
#1404 Posted 25 January 2014 - 03:36 AM
play EARTHQUAKE
g_earthquakeTime = <somevalue>
So, issuing quake simply unconditionally sets the timer to a new value.
Taking another look at the source code, what you should be worried about is g_earthquakeTime being set from C code. This happens on the following occasions:
- detonating a SEENINE or OOZFILTER
- when a DUKECAR or HELECOPT (sic) explodes
- on activation of an SE2, obviously
#1405 Posted 10 March 2014 - 06:03 AM
This post has been edited by James: 10 March 2014 - 06:03 AM
#1406 Posted 10 March 2014 - 11:00 AM
James, on 10 March 2014 - 06:03 AM, said:
I wasn't aware that projectiles stopped monsters, unless the monsters are CON coded to flinch from getting hit. So yeah, I would just code them to only flinch if the damage is over a certain percentage of their hit points.
EDIT: IIRC, the default game code actually makes monsters get pulled towards the player when they get hit. This is one of those things that can be changed in CON, and which you may have changed already, by messing with the monster's xvel or using movesprite on them after an impact.
This post has been edited by Trooper Dan: 10 March 2014 - 12:03 PM
#1407 Posted 10 March 2014 - 12:05 PM
This post has been edited by James: 10 March 2014 - 12:05 PM
#1408 Posted 10 March 2014 - 12:10 PM
James, on 10 March 2014 - 12:05 PM, said:
OK, I'm assuming that you have already verified that the newbeast isn't stopping because of its flinching. It could be that those little movements forward involve it's xvel constantly getting reset every time it is hit -- that would explain it. So what I would do is, save its xvel in a variable each tic when it is not getting hit. When it is hit, set the xvel to the stored variable. I hope that made sense.
#1409 Posted 10 March 2014 - 12:44 PM
#1410 Posted 10 March 2014 - 01:30 PM
and setting a watchpoint on sprite[number_known_from_the_map].xvel shows that the culprit is in sector.c:A_DamageObject().
This function is one of the things that could use some form of scripting interfacing, so that its effects could be selectively disabled.