Jump to content

Photo

What did you accomplish in ZC today?


  • Please log in to reply
4964 replies to this topic

#466 Schwa

Schwa

    Enjoy the Moment more. This strengthens Imagination.

  • Members
  • Real Name:Hunter S.
  • Location:Redmond Subspace (I had a Potion)

Posted 07 November 2011 - 04:49 PM

Today I... got fed up with math. @_@ Scripting with graphics animations is haaaard. I'm trying to make it so Link (Felix) will not dodge backwards if you try to do a dodge when there's an enemy behind you, and instead will turn around and sword the enemy like normal. Detecting its presence is not going super well. icon_dead.gif But I'll get it.

QUOTE(Pokemonmaster64 @ Nov 6 2011, 09:15 PM)  

Joking aside, I WILL steal all of your thunder one of these days and then folks will be all "Wow Poke, you're so cool!" and I'll be like "I know, right? Thanks Clyde Frog." icon_deformed.gif

Prepare to realize it's not all it's cracked up to be. icon_razz.gif Do you enjoy getting mass amounts of random PMs from noobs demanding you script for them? (Mostly talking about SMWCentral, though it's happened here but to a lesser extent)

QUOTE(Pokemonmaster64 @ Nov 6 2011, 09:15 PM)  

One of these days I'll slice off all your skin and use it to make a body suit so I can be you and we can always be together...:3

Then you will know how Mario feels and I will know how those poor raccoons feel :'(

#467 Moosh

Moosh

    The Mush

  • Moderators

Posted 08 November 2011 - 08:59 PM

So ZC had some bugs with items being in the air. I done fixed them...

...Kinda. The shadows could still use some tweaking. Also, other stuff.

#468 MoscowModder

MoscowModder

    Sometimes lurking. Rarely posting.

  • Members
  • Location:Wisconsin

Posted 08 November 2011 - 11:15 PM

Nice scripts (the boss and the trick key)!

Today I made a cool boss fight redux, using the Twin Amoeba script. Depending on what items you have (from the 6 optional dungeons), this fight could be pretty easy or devilishly hard. If you're unfamiliar with that script, it makes a pair of invulnerable slimes and a vulnerable core that bounces between them whenever you hit it or come close. The difference this time around is that the other one may be on the other side of a pit/trench. There are two items that make this fight easier, and I'm not telling you what they are :}

P.S. They spit rocks... 3 5 at a time. Each. For three pairs of slimes. Muahahaha.

Edited by MoscowModder, 08 November 2011 - 11:43 PM.


#469 Cukeman

Cukeman

    "Tra la la, look for Sahasrahla. ... ... ..."

  • Banned
  • Location:Hyrule/USA

Posted 09 November 2011 - 12:41 AM

I made an awesome slashable combo that is capable of showing a variety of types of slash damage, without scripting! icon_cool.gif

#470 Schwa

Schwa

    Enjoy the Moment more. This strengthens Imagination.

  • Members
  • Real Name:Hunter S.
  • Location:Redmond Subspace (I had a Potion)

Posted 09 November 2011 - 01:59 AM

Today I hijacked some more of Link's Felix's animations.

Check it out.

IPB Image

Doop dee doo, derpity derp, I'mma gonna go ahead an' touch this GIBDO, whee hee~

IPB Image

WHABAM OW OW OW IT BURNS IT BURNS

Yes, now Felix has fully working animations for taking damage, as well as custom-scripted knockback physics. The harder he's hurt, the farther back he'll fly, and especially harsh hits even immobilize him for a while afterward. This Gibdo took about half his heart gauge in one hit and it sends him flying over 4 tiles' distance. Weaker attacks tend to send him back between 1 and 2 tiles' distance-- if you're getting hit like with the Gibdo it'll mean you're out of your league and need to GET OUT of that dungeon and try an easier one for now.

Maybe in the future I'll allow specific enemies to inflict a single-frame "status effect" that knocks Felix airborne and across the entire screen upon contact (think Horsehead's Club attack from ZII AoL), every time, whether or not it's a heavy-damage attack. But for now I'm sticking with basics.

Also added but not shown: every hit on Felix no matter what will cause knockback, rather than that pseudoglitch of not being knocked back if you're in-between an 8x8 row or column and facing sideways from the blow. Whenever Felix is hit, he's automatically snapped to the 8x8 grid and THEN the damage is processed, so he's thrown in some direction or another no matter what. 8-) Figured it was about frickin' time someone addressed that.

Still on my list is re-doing the sword physics, and maybe if I'm persistent enough I'll have most of that done in one day (tomorrow). Russ and I could possibly be meeting again on Thursday depending on schedules and I promised him I'd try to actually have something then, so... the joys of deadlines... icon_heh.gif

#471 Orithan

Orithan

    Studying Scientist - Commission from Silvixen

  • Members
  • Location:Australia

Posted 09 November 2011 - 03:34 AM

Look in the script submissions subforum

FINALLY scripted my MirrorShot to both activate the reflected EWeapon flags AND have shield-styled reflection flags. The reflected EWeapon triggers was the easy part. It took me only about 10 minuted to get that working while it took me DAYS to figgure how to use flags in ZScript and thus get the reflection flags working.



#472 Moosh

Moosh

    The Mush

  • Moderators

Posted 09 November 2011 - 08:34 AM

@Schwa: But if Felix were to hit a strong enough enemy, wouldn't it be able to knock him back fast enough to glitch through stuff? Kinda like when I set an enemy's step speed to 500 or something and it glitched through everything and got caught on the edge of the screen? icon_deformed.gif

Edited by Pokemonmaster64, 09 November 2011 - 08:35 AM.


#473 Schwa

Schwa

    Enjoy the Moment more. This strengthens Imagination.

  • Members
  • Real Name:Hunter S.
  • Location:Redmond Subspace (I had a Potion)

Posted 09 November 2011 - 01:00 PM

QUOTE(Pokemonmaster64 @ Nov 9 2011, 05:34 AM)  

@Schwa: But if Felix were to hit a strong enough enemy, wouldn't it be able to knock him back fast enough to glitch through stuff? Kinda like when I set an enemy's step speed to 500 or something and it glitched through everything and got caught on the edge of the screen? icon_deformed.gif

No, because I wrote up subroutines to account for those things! icon_smile.gif Believe in your Uncle Schwa a little, c'mon.

#474 Cukeman

Cukeman

    "Tra la la, look for Sahasrahla. ... ... ..."

  • Banned
  • Location:Hyrule/USA

Posted 09 November 2011 - 02:25 PM

Today I got rid of all my continue bugs icon_biggrin.gif

#475 kurt91

kurt91

    Follower of Destiny

  • Members
  • Real Name:Kurtis
  • Location:Eastern Washington University

Posted 09 November 2011 - 03:33 PM

QUOTE(Schwa)
Also added but not shown: every hit on Felix no matter what will cause knockback


So, what happens if you get caught between two enemies, do they just play ping pong with you until you drop dead?

That would be so frustrating on a gameplay standpoint, but if I were just watching, that would actually be pretty funny!

#476 Schwa

Schwa

    Enjoy the Moment more. This strengthens Imagination.

  • Members
  • Real Name:Hunter S.
  • Location:Redmond Subspace (I had a Potion)

Posted 09 November 2011 - 06:07 PM

QUOTE(kurt91 @ Nov 9 2011, 12:33 PM)  

So, what happens if you get caught between two enemies, do they just play ping pong with you until you drop dead?

That would be so frustrating on a gameplay standpoint, but if I were just watching, that would actually be pretty funny!

No, you're thinking of Ninja Gaiden. icon_lol.gif You still get invulnerability frames after getting hit. In fact? I extended that time from roughly 40 frames (which is the default) to 60, an entire second, so you're invulnerable for longer after taking damage.

If you get inflicted with Stun, though, then yeah you're likely going to take an extra hit or two or even three while you're face-planted and immobile.

Months ago I programmed Goriyas that throw boomerangs that actually stun you, for example. By themselves they're only an average threat; they become far far worse when they're paired with other enemies that can hit you close-range for high damage over and over again and you can't even dodge or fight back if you get clipped by a Stun-boomerang... icon_eek.gif It's but a taste of my dastardly genius.

#477 Schwa

Schwa

    Enjoy the Moment more. This strengthens Imagination.

  • Members
  • Real Name:Hunter S.
  • Location:Redmond Subspace (I had a Potion)

Posted 10 November 2011 - 08:11 AM

. . .
Double post for adding content to the thread.

Today (at not even 5 in the morning), I finished a hilarious yet extremely effective all-purpose subroutine, that I had a mind to share with all of you.

CODE

// This subroutine destroys any LWeapons that have a Misc[0] of over 9000.
// Good for scripting timed LWeapon effects and deleting them on the fly.
// Vegeta would be so proud! :'D
// And of course this subroutine can be modded to effect EWeapons, Items, and NPCs too
//   by changing "lweapon Target" to "eweapon Target", "item Target" and "npc Target"
//   along with "NumLWeapons()" and "LoadLWeapon()" to the respective command as well.
void subr_KillWeapons()
{
  lweapon Target;

  for(int Instance = Screen->NumLWeapons(); Instance > 0; Instance --)
  {
    Target = LoadLWeapon(Instance);

    if(Target->Misc[0] > 9000)
      Remove(Target);    // "Over 9000!? There's no way that's possible!!"
  }
}


Yeah, so basically, I run this subroutine once per frame, and at any point in any of my scripts, if I ever set an LWeapon's Misc[0] to 9001 or higher, it gets instantly removed from play (presumably by Vegeta, though he does it so fast you don't see it, or something).

You'd be surprised how many uses this thing has! For example, I can run it in conjunction with scripts that spawn LWeapons every frame with Misc[0] already set to 9001, and simply control the X,Y spawning point to create an LWeapon that "moves" exactly as I tell it to instead of following a flight-path. (To animate it I would simply define "LWeapon->Frame" manually based on a variable.)

Using internet memes to make more-efficient scripts, now that's what I call priceless. icon_w00t.gif

#478 Moosh

Moosh

    The Mush

  • Moderators

Posted 10 November 2011 - 11:40 AM

QUOTE(Schwa @ Nov 10 2011, 07:11 AM)  

. . .
Double post for adding content to the thread.

Today (at not even 5 in the morning), I finished a hilarious yet extremely effective all-purpose subroutine, that I had a mind to share with all of you.

CODE

// This subroutine destroys any LWeapons that have a Misc[0] of over 9000.
// Good for scripting timed LWeapon effects and deleting them on the fly.
// Vegeta would be so proud! :'D
// And of course this subroutine can be modded to effect EWeapons, Items, and NPCs too
//   by changing "lweapon Target" to "eweapon Target", "item Target" and "npc Target"
//   along with "NumLWeapons()" and "LoadLWeapon()" to the respective command as well.
void subr_KillWeapons()
{
  lweapon Target;

  for(int Instance = Screen->NumLWeapons(); Instance > 0; Instance --)
  {
    Target = LoadLWeapon(Instance);

    if(Target->Misc[0] > 9000)
      Remove(Target);    // "Over 9000!? There's no way that's possible!!"
  }
}


Yeah, so basically, I run this subroutine once per frame, and at any point in any of my scripts, if I ever set an LWeapon's Misc[0] to 9001 or higher, it gets instantly removed from play (presumably by Vegeta, though he does it so fast you don't see it, or something).

You'd be surprised how many uses this thing has! For example, I can run it in conjunction with scripts that spawn LWeapons every frame with Misc[0] already set to 9001, and simply control the X,Y spawning point to create an LWeapon that "moves" exactly as I tell it to instead of following a flight-path. (To animate it I would simply define "LWeapon->Frame" manually based on a variable.)

Using internet memes to make more-efficient scripts, now that's what I call priceless. icon_w00t.gif

So maybe I'm just really cofused, but can't you just set a weapon's deadstate to 0 to make it die? icon_confused.gif

Edited by Pokemonmaster64, 10 November 2011 - 11:41 AM.


#479 kurt91

kurt91

    Follower of Destiny

  • Members
  • Real Name:Kurtis
  • Location:Eastern Washington University

Posted 10 November 2011 - 12:05 PM

QUOTE(Schwa)
Months ago I programmed Goriyas that throw boomerangs that actually stun you, for example. By themselves they're only an average threat; they become far far worse when they're paired with other enemies that can hit you close-range for high damage over and over again and you can't even dodge or fight back if you get clipped by a Stun-boomerang... It's but a taste of my dastardly genius.


I'm scared... Are they actually going to "cooperate"? Like having the enemies with high-damage, close-range attacks suddenly get much more aggressive and in-your-face when they sense you're stunned and helpless? Suddenly I have the image in my head of a group of Zelda enemies coordinating a planned attack, intelligently flanking Link, er... Felix, and moving from cover to cover...

You manage to make something like that, I am so screwed! (And s***ting myself at how awesome the scripting is!)

*NOTE: Just hit preview post. Didn't know it would automatically censor my comment there. Kinda neat.*
---
On a more serious note...

You're making enemies with perfect replicas of Link's weapons? Can you give a single enemy multiple weapons? Seems like a neat idea for a boss battle would be a perfect computer-controlled "Dark Link" type enemy with your full arsenal to battle you with.

QUOTE(Schwa)
I can run it in conjunction with scripts that spawn LWeapons every frame with Misc[0] already set to 9001, and simply control the X,Y spawning point to create an LWeapon that "moves" exactly as I tell it to instead of following a flight-path. (To animate it I would simply define "LWeapon->Frame" manually based on a variable.)


Let me see if I understand this one right. Using your script will spawn a weapon for a single frame, every frame, at exactly the location you specify, so that you can make a list of locations to have a weapon that goes exactly where you want it to. Is that it? Are you putting those locations relative to the sprite using the weapon, or exact coordinates on the screen? I mean, would it be for, as an example, a boomerang that makes a more circular arc rather than straight forward and back, or for making obstacles that can travel in circles and curved movements, like a circular motion trap?

Now that I think about it, would you be able to use a script like that to recreate the Slime Eel boss from Link's Awakening? You know, the one where the tail spun in a circle and you had to hookshot the head out of the walls to find the weak point. Not saying to do it, but it seemed like a good example to help understand what the script can do. (For some reason, I'm only thinking of circular movement right now. Give it a while for the script's capabilities to sink in. I'm going to be in the middle of my college class and suddenly have a sort of "Eureka/Holy Crap!" moment out of the blue... I'm gonna get so many weird looks!)

Wait a sec, does "LWeapon" mean Link's weapons? That would mean it's just for things you use.

I've really gotta get around to learning scripting. Maybe after I finish the graphics and basics of my quest.

#480 Schwa

Schwa

    Enjoy the Moment more. This strengthens Imagination.

  • Members
  • Real Name:Hunter S.
  • Location:Redmond Subspace (I had a Potion)

Posted 10 November 2011 - 01:33 PM

Well I didn't want to derail this into "Schwa's Project Thread" or anything, but... questions are questions... icon_neutral.gif If this continues on for long I'll ask they be sent to me as PMs. We're not trying to start a revolution here.

QUOTE(Pokemonmaster64 @ Nov 10 2011, 08:40 AM)  

So maybe I'm just really cofused, but can't you just set a weapon's deadstate to 0 to make it die? icon_confused.gif

I have been unfortunate sometimes trying to use DeadState. Pretty much the only times it does what it's supposed to is when I set it for Sparkle LWeapons, otherwise it likes to glitch things out radically. Does it work for you and not for me?? Grr, maybe I must construct additional pylons...

QUOTE(kurt91 @ Nov 10 2011, 09:05 AM)  

I'm scared... Are they actually going to "cooperate"? Like having the enemies with high-damage, close-range attacks suddenly get much more aggressive and in-your-face when they sense you're stunned and helpless? Suddenly I have the image in my head of a group of Zelda enemies coordinating a planned attack, intelligently flanking Link, er... Felix, and moving from cover to cover...

Umm... not really, no, but without spoiling too much, I will say I have something pretty wild and along these lines for the Darknuts, which don't start appearing at all until like over halfway through the game... icon_ohmy.gif

QUOTE(kurt91 @ Nov 10 2011, 09:05 AM)  

You're making enemies with perfect replicas of Link's weapons? Can you give a single enemy multiple weapons? Seems like a neat idea for a boss battle would be a perfect computer-controlled "Dark Link" type enemy with your full arsenal to battle you with.
Let me see if I understand this one right. Using your script will spawn a weapon for a single frame, every frame, at exactly the location you specify, so that you can make a list of locations to have a weapon that goes exactly where you want it to. Is that it? Are you putting those locations relative to the sprite using the weapon, or exact coordinates on the screen? I mean, would it be for, as an example, a boomerang that makes a more circular arc rather than straight forward and back, or for making obstacles that can travel in circles and curved movements, like a circular motion trap?

No. Using my script does NOTHING but remove any LWeapons on the screen that you have the Misc[0] set to over nine thousaaaand for. You can mod it to affect EWeapons, Items and/or NPCs if you wish, but that's still all it does is remove crap.

I have not released the (multitude of) scripts needed to get Goriyas to throw returning/Stunning Boomerangs, nor will I ever. These are trade secrets, my friend. I encourage you to learn ZScript and script it yourself if you're that driven, as these things are very indeed possible, as I prove near the end of this video.

As for your boss idea, you can't even conceive the thought in your skull how frustratingly tedious it is to program AIs into enemies-- at least the complex ones that involve more than like 1 or 2 derriatives. The best one I could come up with is a creature that chucks knives at you if (and only if) you're far away, and teleports out of range/counters with shruikens if (and only if) you try and hit it up close. That was only two instructions and it took almost a week to write him. Don't remind me that I intend to take on more intermediate and advanced-level AI tasks later on in the quest; I am NOT looking forward to it. But a Dark Link? For-f***ing-get it. I'm a masochist, but I'm not a depraved sicko from Silent Hill. icon_freak.gif

And as for where I spawn my Weapons: it completely depends on the scenario. Lately I've needed it for the custom Sword physics I'm writing, where you'll be able to swing the Sword differently and use different attacks depending on the way you press the arrow and Sword buttons (you can do combos and stuff sorta like Street Fighter teching). For the Sword's hitbox, I use an invisible Sword Beam LWeapon that's only 4x4 pixels in size, and I "move it around" wherever I draw the Sword graphics on the screen, by removing that LWeapon at the beginning of each frame and redrawing it by the end of that frame. That's the reason the sword is still able to hit through multiple enemies at once without disappearing. It also allows me full control; if, say, I have an attack where the sword gets really big all the sudden (random example, I'm not really doing this), then I can write it so during that attack, the hitbox grows to larger than 4x4, and it's a LOT less tedious than tracking an already-existing LWeapon and trying to modify that on the fly (especially Hitbox sizes of all things icon_dead.gif what a pain).

I would actually say the uses you thought up for it would be less conventional. The system I've adopted isn't a "plot-point" system, so much as a "conditionals" system, if there's no better term for it. I place the LWeapons using raw mathematics rather than set it up on a flight path (with Step or Angle or whatever).

Oh, here's another thing I did one time: I made a Blue Peahat enemy that always had five blue fireballs rotating around it in a circle. The Peahat enemy itself was what stored the variables for the Fireballs and positioning them, so every frame I could remove the Fireballs, lose no data, and redraw them again using the variables the Peahat was carrying in its Misc[] values and such. No matter where the Peahat moved, the Fireballs would follow it, because they were hardcoded to stay in a circle at "N" degrees at an "R" radius from the Peahat's X,Y position. icon_smile.gif That's what I mean by raw mathematics.

QUOTE(kurt91 @ Nov 10 2011, 09:05 AM)  

Now that I think about it, would you be able to use a script like that to recreate the Slime Eel boss from Link's Awakening? You know, the one where the tail spun in a circle and you had to hookshot the head out of the walls to find the weak point. Not saying to do it, but it seemed like a good example to help understand what the script can do. (For some reason, I'm only thinking of circular movement right now. Give it a while for the script's capabilities to sink in. I'm going to be in the middle of my college class and suddenly have a sort of "Eureka/Holy Crap!" moment out of the blue... I'm gonna get so many weird looks!)

Umm... yeah I could script that boss, but it wouldn't be with the re-drawing-stuff system, it'd most likely be by altering pre-existing FFCs that made up each segment. Geez, that actually looks kinda tough in my head... icon_wacky.gif I guess I would have to use plot points and a frame counter in conjunction to make the tail wiggle around while rotating, i.e. "move towards this X,Y coordinate during these __ frames, then move towards these X,Y coordinates for the next __ frames, and so on and so forth". See what I mean by AI being painful and tedious? icon_dead.gif It would take me DAYS to work out all those plot points, for EVERY SEGMENT, and weed out the bugs and inconsistencies so it actually looked smooth.

QUOTE(kurt91 @ Nov 10 2011, 09:05 AM)  

Wait a sec, does "LWeapon" mean Link's weapons? That would mean it's just for things you use.

Yes. But you can alter it to clip out other stuff too, in fact the comments even explain how. icon_smile.gif During that Peahat example, I told it to remove EWeapons too, and that's how I redrew the fireballs every frame (that hurt Link).

QUOTE(kurt91 @ Nov 10 2011, 09:05 AM)  

I've really gotta get around to learning scripting. Maybe after I finish the graphics and basics of my quest.

YES. Yes you do. icon_w00t.gif I would encourage this for ANYONE! Learn it, freaking learn ZScript. icon_love.gif icon_love.gif

Though, if you've never finished making a quest before, it's probably better you finish your "maiden project" just because then you actually have something under your belt, you know? You'll be not only better prepared to script by that point, but with the experience, you'll be better prepared to be creative with scripting too, which is 100 times more important. icon_biggrin.gif It's like you'd have the bricks to build a house with, and you decide to build a castle with them instead, because you freaking CAN. Awesome awesome awesome feeling.

Don't ever forget that you are not in a hurry with Zelda Classic! It's a fun hobby. Pace yourself and it will stay fun. icon_smile.gif


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users