Register FAQ Search Today's Posts Mark Forums Read
Go Back   JazzJackrabbit Community Forums » Open Forums » General Jazz Jackrabbit Talk

JJ2+ v5.5 (last updated 1 June, 2017)

Reply
 
Thread Tools
Jerrythabest Jerrythabest's Avatar

JCF Member

Joined: Apr 2005

Posts: 2,602

Jerrythabest is a forum legendJerrythabest is a forum legendJerrythabest is a forum legend

Feb 7, 2013, 04:30 AM
Jerrythabest is offline
Reply With Quote
Quote:
Originally Posted by Sir Ementaler View Post
I'm pretty sure that JJ2 doesn't contain onTrigger() itself, so to add it, JJ2+ would just have to check for those "too many conditionals every frame" on its own and it wouldn't be any faster. However, it's worth noting that there's no reason this would be slow at all, as all you have to do is check current trigger state (JJ2 array) and previous trigger state (custom array you should update manually) for every trigger. So, check state of two booleans in a for() loop that repeats 32 (or, in your "some day" scenario, 256) times. By my estimation, this won't slow the game down by more than 1.0*10-20 fps. In other words: it's not cumbersome, it gives your script approximately up to 6 more lines, and you shouldn't worry about speed issues, there's no way this would slow the game down.
In fact I think we can do this roughly the same way as with the Text events: when they get activated, we call a specific AngelScript function. That wouldn't require checking all triggers every gametick. This is a planned feature, we just haven't gotten to the point of implementing it.
__________________
Old Feb 7, 2013, 05:00 AM
Sir Ementaler
This message has been deleted by Sir Ementaler. Reason: Actually, forget it, it's your JJ2+, as long as backwards compatibility doesn't get removed do whatever you like.
Sir Ementaler Sir Ementaler's Avatar

JCF Member

Joined: Feb 2010

Posts: 776

Sir Ementaler is a name known to allSir Ementaler is a name known to allSir Ementaler is a name known to allSir Ementaler is a name known to allSir Ementaler is a name known to allSir Ementaler is a name known to all

Feb 7, 2013, 08:51 AM
Sir Ementaler is offline
Reply With Quote
Quote:
Originally Posted by plunK View Post
the Abiltiy to create new coloured gems, with customizable gem values
I was testing in hope to find a variable that does it already. I failed, but to those curious what happens if you set var[0] to -4672:
__________________

I am an official JJ2+ programmer and this has been an official JJ2+ statement.
minmay

JCF Member

Joined: Aug 2002

Posts: 1,181

minmay is immeasurably awesomeminmay is immeasurably awesomeminmay is immeasurably awesomeminmay is immeasurably awesomeminmay is immeasurably awesome

Feb 7, 2013, 09:15 AM
minmay is offline
Reply With Quote
Quote:
Originally Posted by Jerrythabest View Post
Weirdest. Bug. Ever. It doesn't really crash, it just hangs at the palette.apply() call.
For me sometimes it would outright close, actually (sometimes it would just hang, too). Should have mentioned that. Hey, it was 12 minutes after midnight.

And yeah, it's not game-breaking, not like palettes ever affect gameplay to my knowledge :P
Jerrythabest Jerrythabest's Avatar

JCF Member

Joined: Apr 2005

Posts: 2,602

Jerrythabest is a forum legendJerrythabest is a forum legendJerrythabest is a forum legend

Feb 7, 2013, 10:37 AM
Jerrythabest is offline
Reply With Quote
Yea, I've seen it doing that too. It just disappears into nowhere.
__________________
Shelly

JCF Member

Joined: Feb 2010

Posts: 78

Shelly is doing well so far

Feb 7, 2013, 07:42 PM
Shelly is offline
Reply With Quote
I am so glad to see that Get Me R was finally implemented into JJ2+!, Good job and see you in the next one c:
__________________
[15:04:01] murßt[▀ß]: suck my dick andrzej which I dont have
Toni_

JCF Member

Joined: Oct 2011

Posts: 191

Toni_ is doing well so far

Feb 8, 2013, 05:12 AM
Toni_ is offline
Reply With Quote
^ there's a bug, like in GMR v4.0. If you jump on spring, and press type /ready while you are in the air, you will jump above the base. If you're in a sucker tube and type /ready, you will move from the base, like it's one tile sucker tube.

There's still one bug, like in previous versions. Not sure if it's possible to fix, and how, but do your best! If you put warp target above the vine, this will happen:

Violet CLM Violet CLM's Avatar

JCF ╔minence Grise

Joined: Mar 2001

Posts: 10,532

Violet CLM has disabled reputation

Feb 8, 2013, 05:06 PM
Violet CLM is offline
Reply With Quote
Both easy enough to fix, although I've always been attached to the second one, so I don't really want to...
__________________
minmay

JCF Member

Joined: Aug 2002

Posts: 1,181

minmay is immeasurably awesomeminmay is immeasurably awesomeminmay is immeasurably awesomeminmay is immeasurably awesomeminmay is immeasurably awesome

Feb 8, 2013, 09:52 PM
minmay is offline
Reply With Quote
Quote:
Originally Posted by Violet CLM View Post
I've always been attached to the second one
ditto, i hear ya bro
Grytolle Grytolle's Avatar

JCF Member

Joined: Sep 2004

Posts: 4,126

Grytolle is a forum legendGrytolle is a forum legendGrytolle is a forum legend

Feb 9, 2013, 11:07 AM
Grytolle is offline
Reply With Quote
That should stay!
__________________
<center></center>
Sir Ementaler Sir Ementaler's Avatar

JCF Member

Joined: Feb 2010

Posts: 776

Sir Ementaler is a name known to allSir Ementaler is a name known to allSir Ementaler is a name known to allSir Ementaler is a name known to allSir Ementaler is a name known to allSir Ementaler is a name known to all

Feb 11, 2013, 02:30 AM
Sir Ementaler is offline
Reply With Quote
Add OBJECT::ENEMYBULLET=20.

Turns out it's used by all sorts of hazardous projectiles spawned by SP enemies. Dragons' breathe, Monkeys' bananas, Witch's spell, Devan's gun bullets, Devil Devan's fireball, etc.
__________________

I am an official JJ2+ programmer and this has been an official JJ2+ statement.
cooba cooba's Avatar

JCF Veteran

Joined: Jan 2004

Posts: 7,750

cooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of light

Feb 11, 2013, 02:36 AM
cooba is offline
Reply With Quote
Quote:
Originally Posted by Violet CLM
Objects <= 20 are given special treatment as bullets, so it's on the list, but the problem is that it doesn't have any defined properties at _all_. And since you can't currently set an object's behavior function in AS, allowing people to create it wouldn't do any good.
(emphasis on "currently", probably)
GLaDOS GLaDOS's Avatar

JCF Member

Joined: Aug 2010

Posts: 40

GLaDOS is doing well so far

Feb 13, 2013, 05:31 AM
GLaDOS is offline
Reply With Quote
Quote:
Originally Posted by Sir Ementaler View Post
Add OBJECT::ENEMYBULLET=20.

Turns out it's used by all sorts of hazardous projectiles spawned by SP enemies. Dragons' breathe, Monkeys' bananas, Witch's spell, Devan's gun bullets, Devil Devan's fireball, etc.
Object 20 is not only used by enemy projectiles, pepper spray bullets also use it, which would make it even more useful to get proper access to.
I assume the "behavior function" Violet mentioned refers to a function pointer inside the object structure that is called every tick. If that is the case, wouldn't it be sufficient to find all suitable functions from the various object types that use it and assign an enumerator to each of them? Then, just give the AS API a property of that enum with setter/getter functions that automatically convert from enum values to function pointers and back.

Last edited by GLaDOS; Feb 13, 2013 at 05:42 AM.
Sir Ementaler Sir Ementaler's Avatar

JCF Member

Joined: Feb 2010

Posts: 776

Sir Ementaler is a name known to allSir Ementaler is a name known to allSir Ementaler is a name known to allSir Ementaler is a name known to allSir Ementaler is a name known to allSir Ementaler is a name known to all

Feb 13, 2013, 05:48 AM
Sir Ementaler is offline
Reply With Quote
Quote:
Originally Posted by GLaDOS View Post
Object 20 is not only used by enemy projectiles, pepper spray bullets also use it, which would make it even more useful to get proper access to.
Oh, you're right. I had assumed pepper spray uses the same eventID as fireball.

But hey, that's not all! Object 20 is also used by the shock wave created by RF missiles. That'll cause trouble with naming it properly.
__________________

I am an official JJ2+ programmer and this has been an official JJ2+ statement.
Violet CLM Violet CLM's Avatar

JCF ╔minence Grise

Joined: Mar 2001

Posts: 10,532

Violet CLM has disabled reputation

Feb 13, 2013, 01:08 PM
Violet CLM is offline
Reply With Quote
Quote:
Originally Posted by GLaDOS View Post
I assume the "behavior function" Violet mentioned refers to a function pointer inside the object structure that is called every tick. If that is the case, wouldn't it be sufficient to find all suitable functions from the various object types that use it and assign an enumerator to each of them? Then, just give the AS API a property of that enum with setter/getter functions that automatically convert from enum values to function pointers and back.
All correct, but there are a lot of them. We're figuring out how best to handle the behavior issue, floating around various approaches.


Out of curiosity -- what would people like to know about what we're doing? There was a while where we were posting teaser pictures on J2O, until people started complaining there were too many of them and other stuff like that. Now we're mostly silent except for occasional reassurances like "we know about this" or "we'll think of something." Are either of those options preferable? (With pictures presumably not on the J2O front page anymore.) Or full on development blogs? Keep in mind that I'm not saying we'll necessarily do what the majority support, but it would be nice to have some sense of where people stand on this issue.
__________________
GLaDOS GLaDOS's Avatar

JCF Member

Joined: Aug 2010

Posts: 40

GLaDOS is doing well so far

Feb 13, 2013, 01:39 PM
GLaDOS is offline
Reply With Quote
So, I've been running into another problem... I need to set a bunch of tiles (the same pattern several times across the level, but independently controlled) in a foreground layer, but the "tile cache" is getting in the way. Is it technically possible to add the option to allocate additional tile cache entries that jjTileSet() will then use?
Perhaps adding a function like jjAddTileCacheEntry(uint8 layer, int xWord, int y) would be the most convenient way to do it. It would copy the cache entry into a newly allocated one and change the cache reference of the tile to the new entry. That is, if it is possible to increase the tile cache's size, either dynamically whenever the function is called, or, if that is not possible, by a predefined maximum number when loading the level.

EDIT in response to Violet:
A development blog with relatively condensed info about upcoming features would be nice (along with maybe a bug tracker and some place for suggesting stuff ), if it doesn't take away too much time from actual development.

Last edited by GLaDOS; Feb 13, 2013 at 02:22 PM. Reason: forgot to add a function parameter
DennisKainz DennisKainz's Avatar

JCF Member

Joined: Dec 2005

Posts: 385

DennisKainz is notorious for his worthless posts

Feb 13, 2013, 01:58 PM
DennisKainz is offline
Reply With Quote
This of JJ2 PLUS with AngelScript is a great occasion for unfinished episodes like "Jazz Unleashed", "Tomb Rabbit 2" and "Dreamscape" to REALLY amaze us when finished!
Stijn Stijn's Avatar

Administrator

Joined: Mar 2001

Posts: 6,871

Stijn is a splendid one to beholdStijn is a splendid one to beholdStijn is a splendid one to beholdStijn is a splendid one to beholdStijn is a splendid one to beholdStijn is a splendid one to beholdStijn is a splendid one to behold

Feb 13, 2013, 02:24 PM
Stijn is offline
Reply With Quote
I don't think those will ever be finished
cooba cooba's Avatar

JCF Veteran

Joined: Jan 2004

Posts: 7,750

cooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of light

Feb 13, 2013, 02:28 PM
cooba is offline
Reply With Quote
Well, Dreamscape might.
GLaDOS GLaDOS's Avatar

JCF Member

Joined: Aug 2010

Posts: 40

GLaDOS is doing well so far

Feb 14, 2013, 04:50 AM
GLaDOS is offline
Reply With Quote
Quick question, does setting p.xOrg and p.yOrg have any effect in multiplayer at all? It doesn't seem like they work for me, the player just respawns at the MP Start / Jazz Start event.
Grytolle Grytolle's Avatar

JCF Member

Joined: Sep 2004

Posts: 4,126

Grytolle is a forum legendGrytolle is a forum legendGrytolle is a forum legend

Feb 14, 2013, 06:21 AM
Grytolle is offline
Reply With Quote
And not the same spawn pos as the previous time?
__________________
<center></center>
GLaDOS GLaDOS's Avatar

JCF Member

Joined: Aug 2010

Posts: 40

GLaDOS is doing well so far

Feb 14, 2013, 07:09 AM
GLaDOS is offline
Reply With Quote
The xOrg/yOrg variables seem to reset themselves to the usual start pos event on death. If you meant that I might have set the spawn point to the same position as the Start Pos event, that is not the case.

On an unrelated note, is the dev team considering adding access to the player input bitfield? (PlayerStruct + 0x584 if I recall correctly, at least for TSF)
It's one of these things that would allow for some very interesting gimmicks in scripted levels.

(on an even less related note, perhaps I should move my suggestion/implementation spam into a dedicated thread to make more space for bug reports/help requests/compliments in this thread, I have many more to make and I would really like to contribute to JJ2+'s script API)
Violet CLM Violet CLM's Avatar

JCF ╔minence Grise

Joined: Mar 2001

Posts: 10,532

Violet CLM has disabled reputation

Feb 14, 2013, 11:47 AM
Violet CLM is offline
Reply With Quote
Quote:
Originally Posted by GLaDOS View Post
Quick question, does setting p.xOrg and p.yOrg have any effect in multiplayer at all? It doesn't seem like they work for me, the player just respawns at the MP Start / Jazz Start event.
They were a pretty last-minute addition to the API, so I don't really know -- the description in the .html doc may not even be correct -- if that's the behavior you're getting, that's probably what happens.
Quote:
Originally Posted by GLaDOS View Post
On an unrelated note, is the dev team considering adding access to the player input bitfield? (PlayerStruct + 0x584 if I recall correctly, at least for TSF)
It's one of these things that would allow for some very interesting gimmicks in scripted levels.
Controller input is definitely something that should be exposed to AngelScript somehow; we just need to figure out the most helpful way of doing that, first.
Quote:
(on an even less related note, perhaps I should move my suggestion/implementation spam into a dedicated thread to make more space for bug reports/help requests/compliments in this thread, I have many more to make and I would really like to contribute to JJ2+'s script API)
No, that's what this thread is for.
__________________
GLaDOS GLaDOS's Avatar

JCF Member

Joined: Aug 2010

Posts: 40

GLaDOS is doing well so far

Feb 14, 2013, 01:18 PM
GLaDOS is offline
Reply With Quote
Quote:
Originally Posted by Violet CLM View Post
They were a pretty last-minute addition to the API, so I don't really know -- the description in the .html doc may not even be correct -- if that's the behavior you're getting, that's probably what happens.
I guess they only work with SP checkpoints, then. The reason I asked is because I thought I might have been doing something wrong (forgetting to call some function or w/e). Currently working around it using warping, it's not really an issue; it could at most be a bit confusing to newcomers to JJ2+ scripting.

Quote:
Originally Posted by Violet CLM View Post
Controller input is definitely something that should be exposed to AngelScript somehow; we just need to figure out the most helpful way of doing that, first.
An int/enum with bit values would give the most control/efficiency while a bitwise set/get function pair would be the easiest to use. Perhaps both could be implemented? There are already quite a few things that can be achieved in multiple ways using both properties and helper functions.

Quote:
Originally Posted by Violet CLM View Post
No, that's what this thread is for.
Okay then. It just sometimes felt like a few posts were left unread because all different kinds of posts are mixed into one thread, with different discussions going on at once.

------

Unrelated edit:
Is there any reason why the invincibility variable of jjPLAYER objects other than the local players cannot be read? It would be pretty useful to at least have read access to the blinktime of other players.

Last edited by GLaDOS; Feb 15, 2013 at 01:04 PM.
Violet CLM Violet CLM's Avatar

JCF ╔minence Grise

Joined: Mar 2001

Posts: 10,532

Violet CLM has disabled reputation

Feb 16, 2013, 10:38 PM
Violet CLM is offline
Reply With Quote
Quote:
Originally Posted by GLaDOS View Post
Is there any reason why the invincibility variable of jjPLAYER objects other than the local players cannot be read? It would be pretty useful to at least have read access to the blinktime of other players.
Two-part answer:
1) Invincibility and blinktime are separate properties, the one of which is exposed to AngelScript and the other of which is not.
2) Player objects have far, far more properties than you see in AngelScript, not all of which are of much use; the current collection was chosen somewhat haphazardly, and we're figuring out which ones shouldn't have been left out as we go along.
__________________
GLaDOS GLaDOS's Avatar

JCF Member

Joined: Aug 2010

Posts: 40

GLaDOS is doing well so far

Feb 17, 2013, 03:06 AM
GLaDOS is offline
Reply With Quote
Quote:
Originally Posted by Violet CLM View Post
Two-part answer:
1) Invincibility and blinktime are separate properties, the one of which is exposed to AngelScript and the other of which is not.
That's interesting, I didn't know that was the case.

Quote:
Originally Posted by Violet CLM View Post
2) Player objects have far, far more properties than you see in AngelScript, not all of which are of much use; the current collection was chosen somewhat haphazardly, and we're figuring out which ones shouldn't have been left out as we go along.
With the enormous size of the player structure, having to leave out a lot of the properties is understandable. I just hope that the properties/functions that are being suggested will eventually be added to the API.

Edit:
Quote:
Originally Posted by Anonymous Reputation (-8)
calm down and sit on your ass
Seriously? I asked about opening a separate thread for my suggestions in case this thread was spammed by me with suggestions too much, and I offered to help out with improving JJ2+'s AngelScript API (C++er here), but it does not seem like anyone of the dev team is interested in letting me help. Now the only way to contribute is for me to suggest features and their implementations in this thread, the reason I am posting so many in such a short time is because I am working on a relatively large multiplayer project using AS right now. So, instead of tolerating or at least ignoring the fact that someone here is trying to help the developer team make the AS API more feature-complete despite not being part of the team, this kind of complaint is the response I get?
Receiving random unbased hate from members who stay anonymous is easily one of the most demotivating things about posting on JCF; this is a case of complete anonymity just making things much worse.


Edit 2: Above rant on reputation is now invalid; reputation system has since been improved. Doesn't make the person who gave it to me less of an idiot though.

Last edited by GLaDOS; May 5, 2013 at 03:32 PM.
Foly Foly's Avatar

JCF Member

Joined: Jan 2009

Posts: 202

Foly has disabled reputation

Feb 20, 2013, 12:28 PM
Foly is offline
Reply With Quote
I've looked to the apple's objType property and i found some usefull stuff some of you might want to know and some of you might already know:

objType value: Behaviour
0: Hurt + Blocks Bullets
1: Hurt + Destroy
2: Hurt + Destroy
3: Untakable
4: Untakable (Goes here when eaten)
5: Eatable (Normal State)
6: Not able to change to this state
7: Untakable
8: Blocks bullets
9 - 14: Untakable

Untakable: The player can't take this and doesn't interact with it.
Hurt: The player get's hurt by the apple.
Blocks Bullets: Bullets are destroyed by the apple (all hail the mighty apple).
Destroy: Object gets destroyed when a player touches it.

Also, the apple can still be shot down with tnt (unless its in a masked tile) but not with normal blaster bullets (unless objType is 5).

I don't know if these changes in objType work with other objects (it probably will with other fruits). The use of this is to let the apple be a dummy object where you can change behaviour of it: i.e. make a throwable bomb that doesn't hurt the player when touched.
__________________
[13:07:13] *** Foly is on a KILLING SPREE!
[13:07:14] *** you killed yourself
[13:07:14] *** Foly was looking good but died instead...
cooba cooba's Avatar

JCF Veteran

Joined: Jan 2004

Posts: 7,750

cooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of light

Feb 20, 2013, 01:01 PM
cooba is offline
Reply With Quote
This does explain some of this stuff blur wrote:
Code:
typedef enum oooTYPES {
	oNORMAL, oPLAYERBULLET, oENEMYBULLET, oPARTICLE, oEXPLOSION, oPICKUP, oWAITPICKUP, oHURT, oSPECIAL, oDYING, oSPECIALDONE, oSELFCOLLISION, oTYPES=15, oENEMY=16, oTRIGGERTNT=32, oALWAYSACTIVE=64
} oooTYPES;
Quote:
Originally Posted by Foly View Post
I don't know if these changes in objType work with other objects (it probably will with other fruits).
Absolutely. For example, most enemies use
Code:
oNORMAL+oTRIGGERTNT+oENEMY
for their objType.

Last edited by cooba; Feb 20, 2013 at 01:17 PM.
Violet CLM Violet CLM's Avatar

JCF ╔minence Grise

Joined: Mar 2001

Posts: 10,532

Violet CLM has disabled reputation

Feb 20, 2013, 01:13 PM
Violet CLM is offline
Reply With Quote
I know one of them -- possibly oSELFCOLLISION -- is what's used by turtle shells to determine whether an object should be bounced off of or not. oSPECIAL is a tricky one that means that the object has potentially unique behavior in response to a) being hit by a bullet or b) being collided with a player, behavior which must be defined separately for each oSPECIAL object. oTRIGGERTNT does what it sounds like; oALWAYSACTIVE means the object isn't deactivated when it's more than ~30 tiles away from the player in single player. oPARTICLE, oWAITPICKUP, oHURT, oDYING, and oSPECIALDONE I know less about.

Meanwhile, I know nothing at all about "doesHurt," and have only a limited understanding of "noHit."
__________________
minmay

JCF Member

Joined: Aug 2002

Posts: 1,181

minmay is immeasurably awesomeminmay is immeasurably awesomeminmay is immeasurably awesomeminmay is immeasurably awesomeminmay is immeasurably awesome

Feb 20, 2013, 08:16 PM
minmay is offline
Reply With Quote
Quote:
Originally Posted by Violet CLM View Post
oALWAYSACTIVE means the object isn't deactivated when it's more than ~30 tiles away from the player in single player.
Out of curiosity, are there any objects that actually have this?
Violet CLM Violet CLM's Avatar

JCF ╔minence Grise

Joined: Mar 2001

Posts: 10,532

Violet CLM has disabled reputation

Feb 20, 2013, 08:32 PM
Violet CLM is offline
Reply With Quote
Code:
for (uint8 i = 1; i < 255; ++i)
	if (jjObjectPresets[i].objType & 64 == 64)
		jjPrint(formatInt(i, "1"));
Rotating Rock, Bridge, and all the shootable pole events. Not sure why bridges mustn't get deactivated, but the others are pretty intuitive.
__________________
cooba cooba's Avatar

JCF Veteran

Joined: Jan 2004

Posts: 7,750

cooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of light

Feb 21, 2013, 12:54 AM
cooba is offline
Reply With Quote
Also, Bees, for no reason at all.
minmay

JCF Member

Joined: Aug 2002

Posts: 1,181

minmay is immeasurably awesomeminmay is immeasurably awesomeminmay is immeasurably awesomeminmay is immeasurably awesomeminmay is immeasurably awesome

Feb 23, 2013, 12:48 AM
minmay is offline
Reply With Quote
Hahaha, is that why the Hocus levels had to leave Bees off of some of the spikes?
Violet CLM Violet CLM's Avatar

JCF ╔minence Grise

Joined: Mar 2001

Posts: 10,532

Violet CLM has disabled reputation

Feb 23, 2013, 10:41 AM
Violet CLM is offline
Reply With Quote
Too many objects, yea.
__________________
Jett

JCF Member

Joined: Dec 2012

Posts: 48

Jett is doing well so far

Feb 25, 2013, 04:29 PM
Jett is offline
Reply With Quote
Here are my new suggestions for plus.

Ability to stand on walls, aka sideways gravity or sticky feet
Mute all, meaning both sound and music with one click
Old Feb 25, 2013, 10:08 PM
minmay
This message has been deleted by minmay. Reason: how on earth did the edit button give me a double post
minmay

JCF Member

Joined: Aug 2002

Posts: 1,181

minmay is immeasurably awesomeminmay is immeasurably awesomeminmay is immeasurably awesomeminmay is immeasurably awesomeminmay is immeasurably awesome

Feb 25, 2013, 10:10 PM
minmay is offline
Reply With Quote
Going to go ahead and ask this here.

Could users be given access to at least some BASS functions? Not sure which ones are too big a security risk, but I'm particularly interested in BASS_ChannelSetPosition, BASS_ChannelSetAttribute, and BASS_SetConfig (only to set buffer length).

I ask because I'd like to have levels with "dynamic" sound or music. For example, smoothly switching to different music when overtime starts, or Sudden Death in the EGFP update (I SWEAR I AM DOING THIS).

Or, for an example that almost anyone can do, playing ambient noise depending on the player's location in a level - splashing waves that get louder as they get closer to the water, sparking noises near those electric...things in Tubelectric, etc. The Ambient Sound event can only handle so much.

Of course if it's too dangerous or not cool enough or BASS was incorporated into JJ2+ in a way that makes this non-trivial to add, I totally get that, no sweat

(you're sure you still want to allow feature requests in this thread? =P)
Violet CLM Violet CLM's Avatar

JCF ╔minence Grise

Joined: Mar 2001

Posts: 10,532

Violet CLM has disabled reputation

Feb 25, 2013, 10:32 PM
Violet CLM is offline
Reply With Quote
Quote:
Originally Posted by JETT View Post
Ability to stand on walls, aka sideways gravity or sticky feet
Complexity far outweighs utility, sorry. Reverse gravity is essentially finding a lot of values to change the signs of; sideways gravity takes a lot more thought and I don't see anyone ever using it.
Quote:
Mute all, meaning both sound and music with one click
I really don't think two separate menu options (assuming that's what you're talking about) is an insurmountable hurdle to user enjoyment.

Quote:
Originally Posted by minmay View Post
Could users be given access to at least some BASS functions? Not sure which ones are too big a security risk, but I'm particularly interested in BASS_ChannelSetPosition, BASS_ChannelSetAttribute, and BASS_SetConfig (only to set buffer length).
Only replying to this because I'm posting anyway; I know absolutely nothing about BASS, but cooba and Torkell seem to know more, so hopefully we'll have some internal discussion of this.
Quote:
Or, for an example that almost anyone can do, playing ambient noise depending on the player's location in a level - splashing waves that get louder as they get closer to the water, sparking noises near those electric...things in Tubelectric, etc. The Ambient Sound event can only handle so much.
The jjSample AngelScript function has parameters for position and volume, so I think that one's already covered, yes?
Quote:
(you're sure you still want to allow feature requests in this thread? =P)
Of course! Keeping in mind we're not guaranteed not to ignore certain requests.
__________________
cooba cooba's Avatar

JCF Veteran

Joined: Jan 2004

Posts: 7,750

cooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of light

Feb 26, 2013, 12:27 AM
cooba is offline
Reply With Quote
Quote:
Originally Posted by Violet CLM View Post
Quote:
Originally Posted by JETT View Post
Mute all, meaning both sound and music with one click
I really don't think two separate menu options (assuming that's what you're talking about) is an insurmountable hurdle to user enjoyment.
I did think this would be a pretty handy option to have, since I rarely mute only music/sound but not the other, and -nosound is impossible to turn off in-game.
minmay

JCF Member

Joined: Aug 2002

Posts: 1,181

minmay is immeasurably awesomeminmay is immeasurably awesomeminmay is immeasurably awesomeminmay is immeasurably awesomeminmay is immeasurably awesome

Feb 26, 2013, 12:28 AM
minmay is offline
Reply With Quote
Quote:
Originally Posted by Violet CLM View Post
The jjSample AngelScript function has parameters for position and volume, so I think that one's already covered, yes?
Well, I was thinking of using custom sound effects - the way I was thinking of using it, they'd each be a channel or two in a MO3, and I'd adjust the volume based on the player's position. (Definitely not thinking of using multiple files here - in fact one reason I wanted access to ChannelSetPosition was to switch between several similar themes in the same module and not need to store the samples multiple times by spreading those themes across several files.)

Of course, support for user-provided sound effects may not actually be desirable at all.
Jerrythabest Jerrythabest's Avatar

JCF Member

Joined: Apr 2005

Posts: 2,602

Jerrythabest is a forum legendJerrythabest is a forum legendJerrythabest is a forum legend

Feb 26, 2013, 06:23 AM
Jerrythabest is offline
Reply With Quote
minmay, once I finish my current workings (to the Plus dev team known as the "hellfunction"), I will look into BASS. I've scrolled through its API already some week ago. Doesn't look all that difficult.
__________________
Sir Ementaler Sir Ementaler's Avatar

JCF Member

Joined: Feb 2010

Posts: 776

Sir Ementaler is a name known to allSir Ementaler is a name known to allSir Ementaler is a name known to allSir Ementaler is a name known to allSir Ementaler is a name known to allSir Ementaler is a name known to all

Feb 28, 2013, 12:33 PM
Sir Ementaler is offline
Reply With Quote
Info about noHit:
It appears to be a property used only by objects whose objType&oTYPES==oNORMAL (so in numbers, objType&15==0). It handles those objects' interactions with players' bullets. The way it works reminds objType.

0=on collision with a bullet decrease own energy and destroy the bullet unless it's fireball
1=ignore all bullets
2=destroy bullets except for pepper spray
3=destroy bullets except for pepper spray and fireball (it can also execute special actions if they're defined for the object)
+4=cause ricochet
+8=treat freezer bullets as regular bullets (if off, the object will always get frozen by freezer bullets)
+16=don't get pushed back by TNT

That's all there is to it, no object uses values higher than 31 and it doesn't seem they would cause any different effects.
__________________

I am an official JJ2+ programmer and this has been an official JJ2+ statement.

Last edited by Sir Ementaler; Dec 10, 2016 at 01:05 AM.
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On

Forum Jump

All times are GMT -8. The time now is 06:59 AM.