Register FAQ Search Today's Posts Mark Forums Read
Go Back   JazzJackrabbit Community Forums » Open Forums » JCS & Scripting

tell some of the levels what u are buiding and goning on j2o

Toni_

JCF Member

Joined: Oct 2011

Posts: 193

Toni_ is doing well so far

Sep 21, 2013, 01:40 PM
Toni_ is offline
Reply With Quote
Quote:
Originally Posted by GoldRabbit View Post
what

Also, to contribute, I believe that editing can be done to the resources extracted from different locations in order to make them all fit. I know I haven't shown my level in quite some time, but the graphics have been improved in order to make the finished product homogeneous.
What happened with your level by the way? Will it ever be finished and released?
GoldRabbit

JCF Member

Joined: Jul 2006

Posts: 219

GoldRabbit is an asset to this forumGoldRabbit is an asset to this forum

Sep 21, 2013, 05:13 PM
GoldRabbit is offline
Reply With Quote
Quote:
Originally Posted by Just a Random User View Post
What happened with your level by the way? Will it ever be finished and released?
I've been working on it on and off for the last year, especially when the new JJ2+ was released, but it won't be done any time soon, unfortunately. One day, though, I hope to finish it. If everything goes well, I may even post an update soon.
__________________
so we will shut our mouth when
we are trying to be bastards
and speak loudly when we see injustice
because everybody plays the game this way

saints especially
minmay

JCF Member

Joined: Aug 2002

Posts: 1,186

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

Oct 27, 2013, 01:13 AM
minmay is offline
Reply With Quote
cooba

JCF Veteran

Joined: Jan 2004

Posts: 7,814

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

Oct 27, 2013, 02:05 AM
cooba is offline
Reply With Quote
Finally, something worthy of page 100.
Jerrythabest

JCF Member

Joined: Apr 2005

Posts: 2,602

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

Oct 28, 2013, 12:13 AM
Jerrythabest is offline
Reply With Quote
I think the "???" is supposed to read something like "GroundForce with settings"! Do I get a cookie now?
__________________
DennisKainz

JCF Member

Joined: Dec 2005

Posts: 422

DennisKainz is notorious for his worthless posts

Jan 2, 2014, 04:30 AM
DennisKainz is offline
Reply With Quote


It's a remake of Labrat that I'm working on. I'm using pencil, sheets and a scanner.
Slaz

JCF Member

Joined: Aug 2004

Posts: 1,316

Slaz is OFF DA CHARTSlaz is OFF DA CHARTSlaz is OFF DA CHART

Jan 2, 2014, 06:54 AM
Slaz is offline
Reply With Quote
Wow, that looks pretty cool, Gus, especially the sketchy background! I'd make the saturation for the purple ground tiles slightly darker for the final tileset, but that's just my opinon, it's your set!
__________________
Add SlazRabbit on Xbox Live if you want to play some GoW1/2/3/J or Destiny1/2.
Jazz Jackrabbit 2 Forever!!
Civilian Defence Force - Jazz2 Visual Fantasers
Stijn

Administrator

Joined: Mar 2001

Posts: 6,965

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

Jan 2, 2014, 08:55 AM
Stijn is offline
Reply With Quote
I love that background <3
Love & Thunder

JCF Member

Joined: Sep 2011

Posts: 1,101

Love & Thunder has disabled reputation

Jan 2, 2014, 09:56 AM
Love & Thunder is offline
Reply With Quote
It would be nice to see a high-res version of that when it's finished. (It would be kinda useless in JJ2 unless the devs do some black magic, but it would be nice to look at)

Also, [Insert generic praise related to the epic background].
__________________
KRSplatinum

JCF Member

Joined: Jul 2013

Posts: 263

KRSplatinum is a forum legendKRSplatinum is a forum legend

Jan 2, 2014, 05:24 PM
KRSplatinum is offline
Reply With Quote
That's a nice Labrat remake by Gus, haha. Gus, don't forget about the Labrat robot boss, if that's something you want to draw XD
DoubleGJ

JCF Member

Joined: Sep 2002

Posts: 3,049

DoubleGJ has disabled reputation

Jan 3, 2014, 05:39 AM
DoubleGJ is offline
Reply With Quote
background - very yes
event layer - hope it's a work in progress
__________________
"So unless I overwrote my heart with yours, I think not. But I might have." - Violet CLM

Two Games Joined releases:
Control / Splinter (twin singles)
|| Ballistic Bunny (EP)
||
Beyond (maxi-single)
|| Beyond: Remixed (remix EP)
|| Inner Monsters OST (mini-album)
||
Shadows (album)
Love & Thunder

JCF Member

Joined: Sep 2011

Posts: 1,101

Love & Thunder has disabled reputation

Jan 3, 2014, 06:01 AM
Love & Thunder is offline
Reply With Quote
IMO, apart from some(Mostly minor) tilebugs, the event layer looks quite nice.
Also, this redesign(?) makes it look less like New Junk City, and more like some kind of weird alien laboratory of some kind, so that's a plus. I think.
__________________
DennisKainz

JCF Member

Joined: Dec 2005

Posts: 422

DennisKainz is notorious for his worthless posts

Jan 9, 2014, 11:36 AM
DennisKainz is offline
Reply With Quote
Arrow

I'm working on a new levelpack called Another Tomb Rabbit Adventure.

I'm not allowed to upload previews on J2O downloads, so I'm showing you the script:

Code:
uint isjumping = 0;
uint isfalling = 0;
uint issliding = 0;
uint fallbad = 0;
uint realhealth = 100;
uint jumplock = 0;
uint zone = 0;
uint reload = 0;
uint skelekill = 0;
uint ghoulkill = 0;
uint mode = 0;
uint deathtype = 0;
uint kills = 0;
uint redkeyGET = 0;
uint bullshot = 0;
void onLevelLoad()
{
jjObjectPresets[OBJECT::SKELETON].scriptedCollisions = true;
jjObjectPresets[OBJECT::SKELETON].behavior = TheSkeleton;
jjObjectPresets[OBJECT::SKELETON].energy = 5;
jjObjectPresets[OBJECT::RAPIER].scriptedCollisions = true;
jjObjectPresets[OBJECT::RAPIER].behavior = TheGhoul;
jjObjectPresets[OBJECT::RAPIER].energy = 9;
jjObjectPresets[OBJECT::TOASTERBULLETPU].ySpeed = -2;
jjObjectPresets[OBJECT::TOASTERBULLETPU].xSpeed = 0;
jjObjectPresets[OBJECT::APPLE].determineCurAnim(ANIM::MENU, 5);
jjObjectPresets[OBJECT::APPLE].behavior = RedKey;
jjObjectPresets[OBJECT::APPLE].scriptedCollisions = true;
}
void onLevelBegin()
{
jjPalette.gradient(255, 176, 0, 192, 64, 0, 208, 10, 1.0);
jjPalette.gradient(255, 192, 64, 0, 0, 0, 96, 24, 1.0);
jjPalette.gradient(176, 64, 0, 0, 0, 0, 195, 13, 1.0);
jjPalette.gradient(255, 160, 0, 32, 16, 0, 160, 16, 1.0);
jjPalette.gradient(255, 176, 0, 32, 16, 0, 134, 19, 1.0);
jjPalette.gradient(192, 255, 0, 0, 0, 0, 179, 11, 1.0);
jjPalette.gradient(224, 144, 0, 224, 128, 0, 222, 2, 1.0);
jjPalette.apply();
}
void onMain()
{
if (p.charCurr != CHAR::LORI)
{
p.morphTo(CHAR::LORI, false);
}
if (p.yPos > 4*480)
{
mode = 1;
deathtype = 1;
}
p.food = 0;
if (redkeyGET == 1 && mode == 2)
{
jjDrawSprite(p.cameraX+608, p.cameraY+16, ANIM::MENU, 5, 0, 0, SPRITE::PALSHIFT, 80);
}
if (redkeyGET == 2)
{
jjSamplePriority(SOUND::COMMON_COIN);
redkeyGET = 1;
}
if (skelekill == 1)
{
jjSamplePriority(SOUND::AMMO_BOEM1);
skelekill = 0;
kills = kills + 1;
}
if (ghoulkill == 1)
{
jjSamplePriority(SOUND::BILSBOSS_SCARY3);
ghoulkill = 0;
kills = kills + 1;
}
if (p.yPos > 0 && p.yPos < 480)
{
jjMusicLoad("camel.xm", false);
}
if (p.yPos > 480 && p.yPos < 2*480)
{
jjMusicLoad("midnight.s3m", false);
}
if (p.yPos > 2*480 && p.yPos < 3*480)
{
jjMusicLoad("digsh.s3m", false);
}
if (p.yPos > 3*480 && p.yPos < 4*480)
{
jjMusicLoad("voice_of.j2b", false);
}
p.invincibility = 0;
p.blink = 0;
if (p.health > 2)
{
p.health = 2;
}
if (p.health == 1)
{
p.xPos = 16;
p.yPos = 16;
mode = 1;
deathtype = 2;
jjSamplePriority(SOUND::LORISOUNDS_DIE1);
p.health = 2;
}
if (realhealth < 0 || realhealth > 80000000)
{
mode = 1;
realhealth = 100;
jjSamplePriority(SOUND::LORISOUNDS_DIE1);
p.xPos = 16;
p.yPos = 16;
}
if (mode == 0)
{
p.cameraFreeze(p.xPos, (p.yPos - p.yPos%480)+240, true, true);
jjDrawSprite(p.cameraX+5, p.cameraY+16, ANIM::PICKUPS, 21, 0, 0, SPRITE::SINGLECOLOR, 0);
jjDrawSprite(p.cameraX+10, p.cameraY+16, ANIM::PICKUPS, 21, 0, 0, SPRITE::SINGLECOLOR, 0);
jjDrawSprite(p.cameraX+15, p.cameraY+16, ANIM::PICKUPS, 21, 0, 0, SPRITE::SINGLECOLOR, 0);
jjDrawSprite(p.cameraX+20, p.cameraY+16, ANIM::PICKUPS, 21, 0, 0, SPRITE::SINGLECOLOR, 0);
jjDrawSprite(p.cameraX+25, p.cameraY+16, ANIM::PICKUPS, 21, 0, 0, SPRITE::SINGLECOLOR, 0);
jjDrawSprite(p.cameraX+30, p.cameraY+16, ANIM::PICKUPS, 21, 0, 0, SPRITE::SINGLECOLOR, 0);
jjDrawSprite(p.cameraX+35, p.cameraY+16, ANIM::PICKUPS, 21, 0, 0, SPRITE::SINGLECOLOR, 0);
jjDrawSprite(p.cameraX+40, p.cameraY+16, ANIM::PICKUPS, 21, 0, 0, SPRITE::SINGLECOLOR, 0);
jjDrawSprite(p.cameraX+45, p.cameraY+16, ANIM::PICKUPS, 21, 0, 0, SPRITE::SINGLECOLOR, 0);
jjDrawSprite(p.cameraX+50, p.cameraY+16, ANIM::PICKUPS, 21, 0, 0, SPRITE::SINGLECOLOR, 0);
jjDrawSprite(p.cameraX+55, p.cameraY+16, ANIM::PICKUPS, 21, 0, 0, SPRITE::SINGLECOLOR, 0);
jjDrawSprite(p.cameraX+60, p.cameraY+16, ANIM::PICKUPS, 21, 0, 0, SPRITE::SINGLECOLOR, 0);
jjDrawSprite(p.cameraX+65, p.cameraY+16, ANIM::PICKUPS, 21, 0, 0, SPRITE::SINGLECOLOR, 0);
jjDrawSprite(p.cameraX+70, p.cameraY+16, ANIM::PICKUPS, 21, 0, 0, SPRITE::SINGLECOLOR, 0);
jjDrawSprite(p.cameraX+75, p.cameraY+16, ANIM::PICKUPS, 21, 0, 0, SPRITE::SINGLECOLOR, 0);
jjDrawSprite(p.cameraX+80, p.cameraY+16, ANIM::PICKUPS, 21, 0, 0, SPRITE::SINGLECOLOR, 0);
jjDrawSprite(p.cameraX+85, p.cameraY+16, ANIM::PICKUPS, 21, 0, 0, SPRITE::SINGLECOLOR, 0);
jjDrawSprite(p.cameraX+90, p.cameraY+16, ANIM::PICKUPS, 21, 0, 0, SPRITE::SINGLECOLOR, 0);
jjDrawSprite(p.cameraX+95, p.cameraY+16, ANIM::PICKUPS, 21, 0, 0, SPRITE::SINGLECOLOR, 0);
jjDrawSprite(p.cameraX+626, p.cameraY+464, ANIM::PICKUPS, 29, jjGameTicks/7, 1, SPRITE::TINTED, 44);
jjDrawSprite(p.cameraX+622, p.cameraY+464, ANIM::PICKUPS, 29, (jjGameTicks/7)+5, -1, SPRITE::TINTED, 44);
}
if (mode == 1)
{
p.cameraFreeze(320, 4.5*480, true, true);
p.xPos = 16;
p.yPos = 16;
jjMusicStop();
}
if (mode == 2 && jjKey[09])
{
p.cameraFreeze(320, 5.5*480, true, true);
}
if (mode == 2 && !jjKey[09])
{
mode = 0;
}
p.jumpStrength = -12;
if (jumplock > 0)
{
jumplock --;
}
if (reload > 0)
{
reload --;
}
if (p.ySpeed > 0 && !jjMaskedHLine(p.xPos-12,24,p.yPos+24))
{
isjumping = 1;
isfalling = 1;
}
if (jjMaskedPixel(p.xPos-12, p.yPos+24) && !jjMaskedPixel(p.xPos-4, p.yPos+24) && jjMaskedPixel(p.xPos-4, p.yPos+48))
{
issliding = 1;
}
if (jjMaskedPixel(p.xPos+12, p.yPos+24) && !jjMaskedPixel(p.xPos+4, p.yPos+24) && jjMaskedPixel(p.xPos-4, p.yPos+48))
{
issliding = -1;
}
if (jjMaskedPixel(p.xPos-12, p.yPos+24) && jjMaskedPixel(p.xPos+12, p.yPos+24) || isjumping == 1)
{
issliding = 0;
}
if (p.ySpeed == 0 && isfalling == 1)
{
isjumping = 0;
isfalling = 0;
jumplock = 10;
}
if (p.ySpeed < -9.75)
{
isjumping = 1;
}
if (isjumping == 1 && p.ySpeed > 0)
{
isfalling = 1;
}
if (isfalling == 1)
{
fallbad = p.ySpeed;
}
if (fallbad > 5 && p.ySpeed == 0)
{
realhealth = realhealth - ((fallbad - 5)*25);
if (realhealth < 0 || realhealth > 80000000)
{
deathtype = 1;
}
fallbad = 0;
}
}
bool onDrawHealth(jjPLAYER@p, jjCANVAS@ canvas)
{
if (mode == 0)
{
canvas.drawString(608, 472, "PISTOLS", STRING::SMALL, STRING::RIGHTALIGN);
canvas.drawString(624, 16, "PRESS TAB FOR STATISTICS AND INVENTORY", STRING::SMALL, STRING::RIGHTALIGN);
}
if (mode == 1 && deathtype == 0)
{
canvas.drawString(112, 32, "LORI WILL AIM AT ENEMIES", STRING::MEDIUM, STRING::NORMAL);
canvas.drawString(192, 64, "AUTOMATICALLY", STRING::MEDIUM, STRING::NORMAL);
}
if (mode == 1 && deathtype == 1)
{
canvas.drawString(128, 32, "YOU FELL FROM TOO HIGH", STRING::MEDIUM, STRING::NORMAL);
canvas.drawString(224, 64, "AND DIED", STRING::MEDIUM, STRING::NORMAL);
}
if (mode == 1 && deathtype == 2)
{
canvas.drawString(112, 32, "SOME TRAPS CAN KILL YOU", STRING::MEDIUM, STRING::NORMAL);
canvas.drawString(224, 64, "INSTANTLY", STRING::MEDIUM, STRING::NORMAL);
}
if (mode == 2)
{
canvas.drawString(0, 16, "KILLS: "+(kills/2), STRING::MEDIUM, STRING::NORMAL);
canvas.drawString(0, 40, "BULLETS SHOT: "+bullshot, STRING::MEDIUM, STRING::NORMAL);
canvas.drawString(0, 48, "", STRING::MEDIUM, STRING::NORMAL);
}
return true;
}
bool onDrawLives(jjPLAYER@p, jjCANVAS@ canvas)
{
return true;
}
bool onDrawAmmo(jjPLAYER@p, jjCANVAS@ canvas)
{
return true;
}
bool onDrawScore(jjPLAYER@p, jjCANVAS@ canvas)
{
if (mode == 0)
{
if (realhealth > 5)
{
canvas.drawSprite(5, 16, ANIM::PICKUPS, 21, 0);
}
if (realhealth > 10)
{
canvas.drawSprite(10, 16, ANIM::PICKUPS, 21, 0);
}
if (realhealth > 15)
{
canvas.drawSprite(15, 16, ANIM::PICKUPS, 21, 0);
}
if (realhealth > 20)
{
canvas.drawSprite(20, 16, ANIM::PICKUPS, 21, 0);
}
if (realhealth > 25)
{
canvas.drawSprite(25, 16, ANIM::PICKUPS, 21, 0);
}
if (realhealth > 30)
{
canvas.drawSprite(30, 16, ANIM::PICKUPS, 21, 0);
}
if (realhealth > 35)
{
canvas.drawSprite(35, 16, ANIM::PICKUPS, 21, 0);
}
if (realhealth > 40)
{
canvas.drawSprite(40, 16, ANIM::PICKUPS, 21, 0);
}
if (realhealth > 45)
{
canvas.drawSprite(45, 16, ANIM::PICKUPS, 21, 0);
}
if (realhealth > 50)
{
canvas.drawSprite(50, 16, ANIM::PICKUPS, 21, 0);
}
if (realhealth > 55)
{
canvas.drawSprite(55, 16, ANIM::PICKUPS, 21, 0);
}
if (realhealth > 60)
{
canvas.drawSprite(60, 16, ANIM::PICKUPS, 21, 0);
}
if (realhealth > 65)
{
canvas.drawSprite(65, 16, ANIM::PICKUPS, 21, 0);
}
if (realhealth > 70)
{
canvas.drawSprite(70, 16, ANIM::PICKUPS, 21, 0);
}
if (realhealth > 75)
{
canvas.drawSprite(75, 16, ANIM::PICKUPS, 21, 0);
}
if (realhealth > 80)
{
canvas.drawSprite(80, 16, ANIM::PICKUPS, 21, 0);
}
if (realhealth > 85)
{
canvas.drawSprite(85, 16, ANIM::PICKUPS, 21, 0);
}
if (realhealth > 90)
{
canvas.drawSprite(90, 16, ANIM::PICKUPS, 21, 0);
}
if (realhealth > 95)
{
canvas.drawSprite(95, 16, ANIM::PICKUPS, 21, 0);
}
}
return true;
}
void onPlayerInput(jjPLAYER@ p)
{
if (mode == 0 && jjKey[09])
{
mode = 2;
}
if (mode != 0)
{
p.keyJump = false;
p.keyRun = false;
p.keyFire = false;
p.keySelect = false;
}
if (reload != 0)
{
p.keyFire = false;
}
if (p.keyFire == true && reload == 0)
{
bullshot ++;
}
for (int i = 1; i < jjObjectCount; i++)
{
jjOBJ@ obj = jjObjects[i];
if (obj.eventID == OBJECT::SKELETON && p.keyFire == true)
{
if (p.xPos - obj.xPos > -128 && -obj.xPos + p.xPos < 128 && p.yPos - obj.yPos > -128 && -obj.yPos + p.yPos < 128)
{
obj.energy --;
jjSamplePriority(SOUND::RAPIER_GOSTOOOH);
if (p.xPos < obj.xPos)
{
obj.xPos = obj.xPos+8;
}
if (p.xPos > obj.xPos)
{
obj.xPos = obj.xPos-8;
}
}
}
if (obj.eventID == OBJECT::RAPIER && p.keyFire == true)
{
if (p.xPos - obj.xPos > -128 && -obj.xPos + p.xPos < 128 && p.yPos - obj.yPos > -128 && -obj.yPos + p.yPos < 128)
{
obj.energy --;
jjSamplePriority(SOUND::HATTER_PTOEI);
if (p.xPos < obj.xPos)
{
obj.xPos = obj.xPos+8;
}
if (p.xPos > obj.xPos)
{
obj.xPos = obj.xPos-8;
}
if (p.yPos < obj.yPos)
{
obj.yPos = obj.yPos+8;
}
if (p.yPos > obj.yPos)
{
obj.yPos = obj.yPos-8;
}
}
}
if (p.keyFire == true)
{
reload = 30;
}
if (obj.eventID == OBJECT::BLASTERBULLET)
{
if (p.direction > 0)
{
obj.xPos = p.xPos + 22;
}
if (p.direction < 0)
{
obj.xPos = p.xPos - 22;
}
obj.yPos = p.yPos - 8;
obj.state = STATE::EXPLODE;
}
}
p.keyDown = false;
p.keyUp = false;
p.keyRun = false;
if (isjumping == 1)
{
p.keyJump = false;
if (p.xSpeed < -3 && isfalling == 0)
{
p.keyLeft = true;
p.keyRight = false;
}
if (p.xSpeed > 3 && isfalling == 0)
{
p.keyRight = true;
p.keyLeft = false;
}
if (isfalling == 1)
{
p.keyRight = false;
p.keyLeft = false;
}
p.keyDown = false;
}
if (issliding == 1)
{
p.keyRight = true;
p.keyLeft = false;
}
if (issliding == -1)
{
p.keyLeft = true;
p.keyRight = false;
}
if (jumplock > 0 || issliding == 1 && p.xSpeed < 3.125 || issliding == -1 && p.xSpeed > -3.125)
{
p.keyJump = false;
}
}
void onObjectHit(jjOBJ@ obj, jjOBJ@ bullet, jjPLAYER@ player, int force)
{
if (obj.eventID == OBJECT::APPLE)
{
redkeyGET = 2;
}
if (obj.eventID == OBJECT::SKELETON)
{
p.xSpeed = (p.xPos - obj.xPos)/8;
if (!jjMaskedHLine(p.xPos-12,24,p.yPos+24))
{
p.ySpeed = (p.yPos - obj.yPos)/8;
}
realhealth = realhealth - 5;
}
if (obj.eventID == OBJECT::RAPIER)
{
p.xSpeed = (p.xPos - obj.xPos)/8;
if (!jjMaskedHLine(p.xPos-12,24,p.yPos+24))
{
p.ySpeed = (p.yPos - obj.yPos)/8;
}
realhealth = realhealth - 5;
}
}
void TheSkeleton(jjOBJ@ skele)
{
skele.behave(BEHAVIOR::SKELETON, false);
{
if (jjMaskedHLine(skele.xPos-6, 12, skele.yPos+32))
{
skele.putOnGround(true);
}
skele.direction = (p.xPos - skele.xPos)%32;
if (jjGameTicks%15+jjRandom()%15+skele.curFrame%15 == 0)
{
jjObjects[jjAddObject(OBJECT::RAPIER, skele.xPos, skele.yPos)];
}
jjDrawSprite(skele.xPos, skele.yPos, ANIM::SKELETON, 2, (jjGameTicks/5)+(skele.xPos/8), skele.direction, SPRITE::NORMAL);
jjDrawSprite(skele.xPos-12, skele.yPos-12, ANIM::AMMO, 55, (jjGameTicks/7)+(skele.xPos/32), skele.direction, 

SPRITE::NORMAL);
jjDrawSprite(skele.xPos, skele.yPos-16, ANIM::AMMO, 55, (jjGameTicks/7)+6+(skele.xPos/32), skele.direction, 

SPRITE::NORMAL);
jjDrawSprite(skele.xPos+12, skele.yPos-4, ANIM::AMMO, 55, (jjGameTicks/7)+3+(skele.xPos/32), skele.direction, 

SPRITE::NORMAL);
jjDrawSprite(skele.xPos, skele.yPos, ANIM::AMMO, 2, (jjGameTicks/7)+(skele.xPos/32), skele.direction, SPRITE::NORMAL);
jjDrawSprite(skele.xPos, skele.yPos+16, ANIM::AMMO, 2, (jjGameTicks/7)+5+(skele.xPos/32), skele.direction, 

SPRITE::NORMAL);
jjDrawSprite(skele.xPos, skele.yPos-16, ANIM::AMMO, 2, (jjGameTicks/7)+3+(skele.xPos/32), skele.direction, 

SPRITE::NORMAL);
if (!jjMaskedPixel(skele.xPos-24, skele.yPos) && !jjMaskedPixel(skele.xPos+24, skele.yPos) && jjMaskedPixel(skele.xPos-

16,skele.yPos+32) && jjMaskedPixel(skele.xPos+16,skele.yPos+32))
{
skele.xPos = skele.xPos - ((skele.xPos - p.xPos)/64);
}
if (skele.energy < 0)
{
jjObjects[jjAddObject(OBJECT::THING, skele.xPos, skele.yPos)];
skele.state = STATE::KILL;
skelekill = 1;
}
}
}
void TheGhoul(jjOBJ@ ghoul)
{
ghoul.direction = (p.xPos - ghoul.xPos)%32;
ghoul.behave(BEHAVIOR::RAPIER, false);
ghoul.playerHandling = HANDLING::PICKUP;
ghoul.state = STATE::START;
jjDrawSprite(ghoul.xPos, ghoul.yPos, ANIM::RAPIER, 1, (jjGameTicks/5)+((ghoul.xPos+ghoul.yPos)/64), ghoul.direction, 

SPRITE::TINTED, 44);
if ((p.yPos - p.yPos%480)+240 == (ghoul.yPos - ghoul.yPos%480)+240)
{
ghoul.xPos = ghoul.xPos - ((ghoul.xPos - p.xPos)/128);
ghoul.yPos = ghoul.yPos - ((ghoul.yPos - p.yPos)/128);
}
if (ghoul.energy < 0)
{
ghoul.state = STATE::KILL;
ghoulkill = 1;
jjObjects[jjAddObject(OBJECT::TOASTERBULLETPU, ghoul.xPos, ghoul.yPos)];
}
}
void RedKey(jjOBJ@ redkey)
{
redkey.yPos = redkey.yPos + (jjSin(jjGameTicks*16));
jjDrawSprite(redkey.xPos, redkey.yPos, ANIM::MENU, 5, 0, 0, SPRITE::PALSHIFT, 80);
if (redkeyGET != 0)
{
redkey.xPos = 0;
}
}
It includes a Lori Jackrabbit behaving exactly like Lara Croft, including a way of shooting enemies that resembles that of the very first Tomb Raider games, new enemies, for now only the necromancer and the ghouls he summons, a brand new way of controlling and showing the player's health and ammo, a statistics and inventory subscreen, collectable keys and other trigger items, and a few more things.



If you think the code can be improved and fixed, I will be more than glad to have it improved and fixed, and ofcourse include you in the credits!

Last edited by DennisKainz; Jan 9, 2014 at 12:39 PM.
cooba

JCF Veteran

Joined: Jan 2004

Posts: 7,814

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

Jan 9, 2014, 12:21 PM
cooba is offline
Reply With Quote
Looks like a lot of good work!

But please, indent your code so it's readable for others
DennisKainz

JCF Member

Joined: Dec 2005

Posts: 422

DennisKainz is notorious for his worthless posts

Jan 9, 2014, 12:40 PM
DennisKainz is offline
Reply With Quote
Here, I sealed it into a window, so it does no longer flood the page.
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Jan 9, 2014, 12:43 PM
Violet CLM is offline
Reply With Quote
Quote:
Originally Posted by Gus View Post
If you think the code can be improved and fixed, I will be more than glad to have it improved and fixed, and ofcourse include you in the credits!
A few minor points that come to mind, without trying to figure out what most of the code really does:
  • You have two longish sections of drawing lots and lots of the exact same sprite to the screen, and that could be simplified if you used loops. If nothing else, it would make it much easier to change some minor detail later.
  • While drawing skeletons, you perform the same calculations (jjGameTicks/7 and skele.xPos/32) over and over, even though the results for each one can't change in the middle of the function.
  • Look out for cases where you could use the else keyword. For instance, you have if if (issliding == 1) and if (issliding != 1) immediately next to one another, but surely they cannot both be true.
  • Your skelekill and ghoulkill variables kind of make sense, but I think the code would be simpler if you wrote KilledAGhoul() and KilledASkeleton() functions (or something like that) instead. As it is, the sample-playing and the incrementing of the killvariable take place in an entirely different part of the code. Even if you do have a good reason for this that I'm not seeing, I think you'd be better off using ++ghoulkill; instead of ghoulkill = 1;, and then while (ghoulkill > 0) instead of if (ghoulkill == 1), in case the player somehow manages to kill two enemies at once.

Looking forward to seeing more!
__________________
cooba

JCF Veteran

Joined: Jan 2004

Posts: 7,814

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

Jan 9, 2014, 12:45 PM
cooba is offline
Reply With Quote
Quote:
Originally Posted by Gus View Post
Here, I sealed it into a window, so it does no longer flood the page.
No, I meant use tabulators.
Code:
void onMain() {
   if (p.charCurr != CHAR::LORI) {
      p.morphTo(CHAR::LORI, false);
   }
   if (p.yPos > 4*480) {
      mode = 1;
      deathtype = 1;
   }
}
And so on...
DennisKainz

JCF Member

Joined: Dec 2005

Posts: 422

DennisKainz is notorious for his worthless posts

Jan 9, 2014, 04:57 PM
DennisKainz is offline
Reply With Quote
I'm doing the code all over again. Tidier, simpler, and with NotePad++.

How do I prevent the annoying "BUST A MOVE" text from even appearing? Is there a code line for that?
snzspeed

JCF Member

Joined: Sep 2003

Posts: 1,377

snzspeed is a forum legendsnzspeed is a forum legendsnzspeed is a forum legend

Jan 12, 2014, 12:00 AM
snzspeed is offline
Reply With Quote


I was bored and started making something new. Theme of this set is a snowy forest/mountain wasteland with a ruined fortress, and lava ocean beneath the surface.

EDIT: I just realised how stupid and lonely that single brick looks. oh well, I'd appreciate some good feedback and suggestions.
__________________

Last edited by snzspeed; Jan 12, 2014 at 01:40 AM.
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Jan 12, 2014, 02:38 PM
Violet CLM is offline
Reply With Quote
snz: One thing that stands out is that the shading on the brick, or at least its edges, is much harsher than anything else in the screenshot. Putting a little buildup of snow in front of it might also help it fit in. The snow looks lovely, btw, very untiled.


Been working on this game, very sporadically, for the last five and a half years. Time to get it done.
__________________
DoubleGJ

JCF Member

Joined: Sep 2002

Posts: 3,049

DoubleGJ has disabled reputation

Jan 12, 2014, 04:12 PM
DoubleGJ is offline
Reply With Quote
spikes coming out of falling lava...?

the whole screenshot looks great but this is bothering me
__________________
"So unless I overwrote my heart with yours, I think not. But I might have." - Violet CLM

Two Games Joined releases:
Control / Splinter (twin singles)
|| Ballistic Bunny (EP)
||
Beyond (maxi-single)
|| Beyond: Remixed (remix EP)
|| Inner Monsters OST (mini-album)
||
Shadows (album)
DennisKainz

JCF Member

Joined: Dec 2005

Posts: 422

DennisKainz is notorious for his worthless posts

Jan 12, 2014, 05:38 PM
DennisKainz is offline
Reply With Quote
Smile

Quote:
Originally Posted by snzspeed View Post
I see you're using Angelscript for essentially 2 things already: 1) removing the gun and 2) using the tunnel mode to create a red giant on the background.

I'm looking forward to playing your levels!
snzspeed

JCF Member

Joined: Sep 2003

Posts: 1,377

snzspeed is a forum legendsnzspeed is a forum legendsnzspeed is a forum legend

Jan 12, 2014, 05:39 PM
snzspeed is offline
Reply With Quote


Progress.

Its quite tilebuggy atm but I will ofcourse fix it. It will also be quite hard to use.

Quote:
I see you're using Angelscript for essentially 2 things already: 1) removing the gun and 2) using the tunnel mode to create a red giant on the background.

I'm looking forward to playing your levels!
Yeah I removed the gun. I think jj2 levels can be much better if you remove the blaster since it can be just mindlessly spammed and then you dont really use any other ammo.
__________________
DennisKainz

JCF Member

Joined: Dec 2005

Posts: 422

DennisKainz is notorious for his worthless posts

Jan 12, 2014, 05:46 PM
DennisKainz is offline
Reply With Quote
You say it's a tilebuggy atm, but I don't see any ATM. lol

Jokes apart, here are my suggestions for your tileset to look the best possible:

Some blue diamonds and gold nuggets nudged in the rocks.
Some medieval element such as weapon shacks, chests, herb shacks, armors, thrones and banners upon those bricks. And ofcourse, a back wall made from draker, bluer bricks.
Some warped oaks, willows and birches, and ofcourse, pines or spruces. Some of these are composable like the spruces in Diamondus.
Some iron fence with barbed wire and some alarm light on the top, and some turret and radar.
Some modern military elements, such as hangars, training camps, runways and whatever comes in your mind.
Water pools, not like the water in the Beach levels, but like the ones in the Jungle level. And a variant to have ice upon the water pools.
Gigantic mesas (very steep mountains) with waterfalls on layer 7.
Some vertical 1 pixel stripes with a random color from 176 to 208 to simulate the giant sun's light rays.
Some giant statues of turtles, rhynos and lizards.
Some crystals coming out of the ground.

Last edited by DennisKainz; Jan 12, 2014 at 06:00 PM.
snzspeed

JCF Member

Joined: Sep 2003

Posts: 1,377

snzspeed is a forum legendsnzspeed is a forum legendsnzspeed is a forum legend

Jan 12, 2014, 05:53 PM
snzspeed is offline
Reply With Quote
Quote:
Originally Posted by Gus View Post
You say it's a tilebuggy atm, but I don't see any ATM. lol
Heh.
__________________
DennisKainz

JCF Member

Joined: Dec 2005

Posts: 422

DennisKainz is notorious for his worthless posts

Jan 13, 2014, 02:35 AM
DennisKainz is offline
Reply With Quote
Did you read my suggestions for your tileset? Maybe you didn't because I edited the message later on. If you didn't, please read them.

Now, since you can use the drawTile operation with uint16 tile set as eg. 64+obj.curFrame%7 if tiles 64 to 71 contain a pretty animation, I'd suggest you to use it to create customized enemy sprites, such as a wolf, a bear or a snake.
cooba

JCF Veteran

Joined: Jan 2004

Posts: 7,814

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

Jan 13, 2014, 03:22 AM
cooba is offline
Reply With Quote
Quote:
Originally Posted by Gus View Post
I see you're using Angelscript for essentially 2 things already: 1) removing the gun and 2) using the tunnel mode to create a red giant on the background.
(You can do both those from within JCS without any AS, actually)
snzspeed

JCF Member

Joined: Sep 2003

Posts: 1,377

snzspeed is a forum legendsnzspeed is a forum legendsnzspeed is a forum legend

Jan 13, 2014, 04:45 AM
snzspeed is offline
Reply With Quote
Quote:
Originally Posted by Gus View Post
Did you read my suggestions for your tileset? Maybe you didn't because I edited the message later on. If you didn't, please read them.

Now, since you can use the drawTile operation with uint16 tile set as eg. 64+obj.curFrame%7 if tiles 64 to 71 contain a pretty animation, I'd suggest you to use it to create customized enemy sprites, such as a wolf, a bear or a snake.
I did read the suggestions and I will implement most of them. Infact I had already planned some of them like the trees and medieval weapon racks/things. Custom enemy sprites are a very interesting idea.
__________________
Treylina

JCF Member

Joined: Sep 2009

Posts: 1,052

Treylina is a forum legendTreylina is a forum legendTreylina is a forum legend

Jan 13, 2014, 10:10 AM
Treylina is offline
Reply With Quote
Hmm, the snow looks very flat and scratchy. I also think the stones inside the walls should pop out more when there's snow on it. If you can put the tileset table here I will see what I can do with it.

Save as png next time because Jpegs are awful for JJ2, especially if I'm trying to get a good look at the tileset. I guess you saved by it as accident.

The reason the lone brick looks so awkward is due to how flat it looks, considering the tileset seems to be going for a somewhat isometric look. Also, the outlines are too thick compared to the rest of the tileset. But since that screenshot is a bit older, it may have been changed since then.
__________________


Jazz Jackrabbit group: https://discord.gg/vZm95tQ
DennisKainz

JCF Member

Joined: Dec 2005

Posts: 422

DennisKainz is notorious for his worthless posts

Jan 13, 2014, 04:45 PM
DennisKainz is offline
Reply With Quote
For my new level, it would be useful to find a good tileset sheet ripped from some other game. I've been searching for one for like 2 hours, and I couldn't find a decent one.

Can you please help me find a good source of ripped tilesets? I found nothing but 2 level images with a good tileset:


And I couldn't even find the stand alone tileset! Can somebody please help me?

Don't suggest me opengameart.org because I tried it already, and I didn't find a thing in there.
Love & Thunder

JCF Member

Joined: Sep 2011

Posts: 1,101

Love & Thunder has disabled reputation

Jan 14, 2014, 12:16 AM
Love & Thunder is offline
Reply With Quote
If either of them are console games, most emulators let you rip any sprites and tilesets in any level you are in.
__________________
Old Jan 14, 2014, 07:04 AM
snzspeed
This message has been deleted by snzspeed. Reason: image got bugged
DennisKainz

JCF Member

Joined: Dec 2005

Posts: 422

DennisKainz is notorious for his worthless posts

Jan 14, 2014, 07:36 AM
DennisKainz is offline
Reply With Quote
That "yet" leaves to intend that there IS going to be AngelScript eventually, doesn't it?

Don't feel forced to use it, though. Do it if you feel like.
snzspeed

JCF Member

Joined: Sep 2003

Posts: 1,377

snzspeed is a forum legendsnzspeed is a forum legendsnzspeed is a forum legend

Jan 14, 2014, 07:39 AM
snzspeed is offline
Reply With Quote
Quote:
Originally Posted by DennisKainz View Post
That "yet" leaves to intend that there IS going to be AngelScript eventually, doesn't it?

Don't feel forced to use it, though. Do it if you feel like.
I will use it for many things. I have some great ideas in my head, esp. what I can do with gameplay.
__________________
DennisKainz

JCF Member

Joined: Dec 2005

Posts: 422

DennisKainz is notorious for his worthless posts

Jan 16, 2014, 09:09 AM
DennisKainz is offline
Reply With Quote
I started working on a new tileset.
This time, it's going to be a mashup.

Any suggestions? Something you think it is important to include?

Last edited by DennisKainz; Jan 16, 2014 at 06:28 PM.
Love & Thunder

JCF Member

Joined: Sep 2011

Posts: 1,101

Love & Thunder has disabled reputation

Jan 16, 2014, 02:36 PM
Love & Thunder is offline
Reply With Quote
Looks like Jazz is on something, and I'm not referring to the ground.

Anyway, I suggest adding more grass tiles from Carrotus with mushrooms from Psych coming out of them.
__________________
DennisKainz

JCF Member

Joined: Dec 2005

Posts: 422

DennisKainz is notorious for his worthless posts

Jan 16, 2014, 06:29 PM
DennisKainz is offline
Reply With Quote
Arrow

Quote:
Originally Posted by Robo4900 View Post
I suggest adding more grass tiles from Carrotus with mushrooms from Psych coming out of them.


How about this?

Last edited by DennisKainz; Jan 17, 2014 at 05:44 AM. Reason: The mountain background looked awful!
snzspeed

JCF Member

Joined: Sep 2003

Posts: 1,377

snzspeed is a forum legendsnzspeed is a forum legendsnzspeed is a forum legend

Jan 19, 2014, 08:43 AM
snzspeed is offline
Reply With Quote




Just doing some experiments at the moment. Shots are heavily WIP (I am in progress of editing that shipthing ETC ETC) but I wanted to share and keep this section active.
__________________
DoubleGJ

JCF Member

Joined: Sep 2002

Posts: 3,049

DoubleGJ has disabled reputation

Jan 19, 2014, 10:05 AM
DoubleGJ is offline
Reply With Quote
So this is a level select screen? Am I looking at it the right way?
__________________
"So unless I overwrote my heart with yours, I think not. But I might have." - Violet CLM

Two Games Joined releases:
Control / Splinter (twin singles)
|| Ballistic Bunny (EP)
||
Beyond (maxi-single)
|| Beyond: Remixed (remix EP)
|| Inner Monsters OST (mini-album)
||
Shadows (album)
snzspeed

JCF Member

Joined: Sep 2003

Posts: 1,377

snzspeed is a forum legendsnzspeed is a forum legendsnzspeed is a forum legend

Jan 19, 2014, 10:12 AM
snzspeed is offline
Reply With Quote
Quote:
Originally Posted by DoubleGJ View Post
So this is a level select screen? Am I looking at it the right way?
Yes it is. I know it doesnt look very good yet but I am getting there.

EDIT: So far it leads you to this:
__________________
DennisKainz

JCF Member

Joined: Dec 2005

Posts: 422

DennisKainz is notorious for his worthless posts

Jan 19, 2014, 10:35 AM
DennisKainz is offline
Reply With Quote
Well, the tilesets are a little raw. I suggest you request your pictures in some specialized forum.

Other than that, the level and the intro look AWESOME!!! I'm eager to see the finished game, or even a demonstration of it.
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 02:53 PM.