User Tag List

Page 3 of 6 FirstFirst 1 2 3 4 5 ... LastLast
Results 21 to 30 of 60

Thread: Zelda Classic 2.50.2

  1. #21
    ZC Ambassador Tamamo's Avatar
    Join Date
    May 2011
    Location
    Kyoto
    Age
    28
    Posts
    798
    Mentioned
    92 Post(s)
    Tagged
    2 Thread(s)
    vBActivity - Stats
    Points
    5,012
    Level
    22
    vBActivity - Bars
    Lv. Percent
    18.03%
    Daily Activity
    0%
    Weekly Activity
    34.3%
    Monthly Activity
    81.5%
    Here's another hint...
    Use a shooter type but change the weapon to none.

  2. #22
    ZC Contirbutor ZoriaRPG's Avatar
    Join Date
    Oct 2006
    Location
    Prydon Academy
    Posts
    920
    Mentioned
    81 Post(s)
    Tagged
    1 Thread(s)
    vBActivity - Stats
    Points
    3,322
    Level
    18
    vBActivity - Bars
    Lv. Percent
    54.55%
    Daily Activity
    0%
    Weekly Activity
    15.24%
    Monthly Activity
    67.36%
    Quote Originally Posted by Tamamo View Post
    Nope, first collision takes priority every other weapon will just die as usual on collision except for ones that persist such as explosions.
    That is what I would expect, and probably what is supposed to happen, but apparently not what Moosh experienced with simultaneous hits. I suspect that damage is calculated before the invincibility frames occur; and in some circumstances it can be applied from more than one source. In fact, I told him that the second collision shouldn't count, for just those reasons...but seemingly it can.


    Quote Originally Posted by CJC View Post
    ZoriaRPG, I believe the first collision triggers Link's "invulnerability" phase, so the second fireball strikes and does nothing because Link is temporarily invincible.
    EDIT: Since the projectiles on screen are indexed just like enemies, that would mean the first fireball created gets to do damage, then invulnerability is triggered and the second fireball does nothing. This is the same as hitting a bubble to evade an enemy attack--the 0 damage hit triggers invulnerability provided it has a lower index than the enemy attack (on a one frame double collision).
    @CJC : That's always going to be true, because the hits do not occur in the same frame.

    It's not that important, but at least I remembered to ask.
    @Moosh Get your arse over here, and detail that problem you had with simultaneous collisions with your 'Death' enemy.
    Last edited by ZoriaRPG; 10-25-2015 at 04:57 AM.


    Featured Scripts & Headers: RPG.zh ( v. a0.97.1 ) ( RPG.zh Thread ) | Zelda 3 Thief's Town Treasure Chest Minigame (ffc) | Bobomb (enemy)
    ZScript & ZC-Related Pastebin | Quests and ZScript Repository | ZC Dev & Betas | Latest ZC 2.54 Beta | YouTube Channel
    All of the code that I create and publish here is free for use, modification and distribution under the GPL v2.0, or v3.0 where applicable..

  3. #23
    Quest Builder Anarchy_Balsac's Avatar
    Join Date
    Nov 2005
    Age
    34
    Posts
    656
    Mentioned
    7 Post(s)
    Tagged
    2 Thread(s)
    vBActivity - Stats
    Points
    2,072
    Level
    15
    vBActivity - Bars
    Lv. Percent
    8.8%
    Daily Activity
    0%
    Weekly Activity
    1.63%
    Monthly Activity
    5.29%
    Quote Originally Posted by Tamamo View Post
    Here's another hint...
    Use a shooter type but change the weapon to none.
    Ah you know what, I don't know why I didn't think of that. Even so, there shouldn't be a need for me to go through all the trouble.
    What would have been my Two Week contest entry:

    http://www.purezc.net/index.php?page=quests&id=561

    Zelda 3 The Return of Ganon:

    http://www.purezc.net/index.php?page=quests&id=562

  4. #24
    Empty and become Moosh Moosh's Avatar
    Join Date
    Oct 2012
    Posts
    41
    Mentioned
    12 Post(s)
    Tagged
    4 Thread(s)
    vBActivity - Stats
    Points
    340
    Level
    6
    vBActivity - Bars
    Lv. Percent
    74.13%
    Daily Activity
    0%
    Weekly Activity
    1.63%
    Monthly Activity
    2.83%
    Quote Originally Posted by ZoriaRPG View Post
    @Moosh Get your arse over here, and detail that problem you had with simultaneous collisions with your 'Death' enemy.
    Okay, so it was a dark and stormy night...I was scripting a scythe swinging attack for a boss in Freedom in Chains. The attack had a slash animation made up of about 20 gradually shrinking circle draw commands. I wanted the whole thing to have collision, so I put weapons of approximately the same size under each circle and used ghost.zh to make them only last for one frame. I assumed it would only hit Link once per frame, but in testing it was an instant kill, way more than I'd set the weapons to deal. I figured ZC combines the damage of every weapon colliding with Link in the frame he gets hurt and so I switched to scripted collision instead. With only one weapon being created under Link when he collided with the attack, it worked fine.

  5. #25
    ZC Contirbutor ZoriaRPG's Avatar
    Join Date
    Oct 2006
    Location
    Prydon Academy
    Posts
    920
    Mentioned
    81 Post(s)
    Tagged
    1 Thread(s)
    vBActivity - Stats
    Points
    3,322
    Level
    18
    vBActivity - Bars
    Lv. Percent
    54.55%
    Daily Activity
    0%
    Weekly Activity
    15.24%
    Monthly Activity
    67.36%
    Quote Originally Posted by Moosh View Post
    Okay, so it was a dark and stormy night...I was scripting a scythe swinging attack for a boss in Freedom in Chains. The attack had a slash animation made up of about 20 gradually shrinking circle draw commands. I wanted the whole thing to have collision, so I put weapons of approximately the same size under each circle and used ghost.zh to make them only last for one frame. I assumed it would only hit Link once per frame, but in testing it was an instant kill, way more than I'd set the weapons to deal. I figured ZC combines the damage of every weapon colliding with Link in the frame he gets hurt and so I switched to scripted collision instead. With only one weapon being created under Link when he collided with the attack, it worked fine.
    Clarify one thing please...

    Did you set up the dummy weapons to use a ->Power setting to apply damage, or did you use the custom circular collision, and directly modify Link's HP (e.g. Link->HP -= amount) ?

    The latter will always stack, per frame.


    Featured Scripts & Headers: RPG.zh ( v. a0.97.1 ) ( RPG.zh Thread ) | Zelda 3 Thief's Town Treasure Chest Minigame (ffc) | Bobomb (enemy)
    ZScript & ZC-Related Pastebin | Quests and ZScript Repository | ZC Dev & Betas | Latest ZC 2.54 Beta | YouTube Channel
    All of the code that I create and publish here is free for use, modification and distribution under the GPL v2.0, or v3.0 where applicable..

  6. #26
    Empty and become Moosh Moosh's Avatar
    Join Date
    Oct 2012
    Posts
    41
    Mentioned
    12 Post(s)
    Tagged
    4 Thread(s)
    vBActivity - Stats
    Points
    340
    Level
    6
    vBActivity - Bars
    Lv. Percent
    74.13%
    Daily Activity
    0%
    Weekly Activity
    1.63%
    Monthly Activity
    2.83%
    Quote Originally Posted by ZoriaRPG View Post
    Clarify one thing please...

    Did you set up the dummy weapons to use a ->Power setting to apply damage, or did you use the custom circular collision, and directly modify Link's HP (e.g. Link->HP -= amount) ?

    The latter will always stack, per frame.
    I used weapons. If I hadn't, it'd probably kill me from lack of invincibility frames.

  7. #27
    ZC Contirbutor ZoriaRPG's Avatar
    Join Date
    Oct 2006
    Location
    Prydon Academy
    Posts
    920
    Mentioned
    81 Post(s)
    Tagged
    1 Thread(s)
    vBActivity - Stats
    Points
    3,322
    Level
    18
    vBActivity - Bars
    Lv. Percent
    54.55%
    Daily Activity
    0%
    Weekly Activity
    15.24%
    Monthly Activity
    67.36%
    Quote Originally Posted by Moosh View Post
    I used weapons. If I hadn't, it'd probably kill me from lack of invincibility frames.

    I'm checking, as I remember something about circular collision, and I never saw your code. Often, circular collision looks like this:

    Code:
    if ( CircularCollision(ew->x, ew->Y, radius1, Link->X, Link->Y, radius2) Link->HP -= val;
    ...but as you say you used ew->Power, my original point stands, as this may be something that needs examination.


    Featured Scripts & Headers: RPG.zh ( v. a0.97.1 ) ( RPG.zh Thread ) | Zelda 3 Thief's Town Treasure Chest Minigame (ffc) | Bobomb (enemy)
    ZScript & ZC-Related Pastebin | Quests and ZScript Repository | ZC Dev & Betas | Latest ZC 2.54 Beta | YouTube Channel
    All of the code that I create and publish here is free for use, modification and distribution under the GPL v2.0, or v3.0 where applicable..

  8. #28
    Empty and become Moosh Moosh's Avatar
    Join Date
    Oct 2012
    Posts
    41
    Mentioned
    12 Post(s)
    Tagged
    4 Thread(s)
    vBActivity - Stats
    Points
    340
    Level
    6
    vBActivity - Bars
    Lv. Percent
    74.13%
    Daily Activity
    0%
    Weekly Activity
    1.63%
    Monthly Activity
    2.83%
    Quote Originally Posted by ZoriaRPG View Post
    I'm checking, as I remember something about circular collision, and I never saw your code. Often, circular collision looks like this:

    Code:
    if ( CircularCollision(ew->x, ew->Y, radius1, Link->X, Link->Y, radius2) Link->HP -= val;
    ...but as you say you used ew->Power, my original point stands, as this may be something that needs examination.
    It's ew->Damage, isn't it? Itemclasses are the ones that use Power I thought. But anyways, yes, I did use a weapon with ew->Damage.

    Also, crossposting from the PureZC thread:
    Code:
    const int NPCM_SHOTCOOLDOWN = 0; //NPC->Misc used for fireball shooter cooldown
    
    const int FIREBALL_SHOOTER_COOLDOWN = 80; //Duration of fireball shooter cooldown in frames
    const int FIREBALL_SHOOTER_CHANCE = 64; //Chance of firing every frame
    
    void UnforgivingShooters(){
    	for(int i=1; i<=Screen->NumNPCs(); i++){ //Loops through every enemy, every frame. If you have an enemy loop in your global already, you'll want to combine them
    		npc n = Screen->LoadNPC(i); 
    		if(n->ID==NPC_SHOOTFBALL){ //Detect the fireball shooter
    			if(n->Misc[NPCM_SHOTCOOLDOWN]<=FIREBALL_SHOOTER_COOLDOWN){ //Increase the shot timer until the cooldown is over
    				n->Misc[NPCM_SHOTCOOLDOWN]++;
    			}
    			else if(Rand(FIREBALL_SHOOTER_CHANCE)==0){ //Once the cooldown has ended, has a random chance of firing a weapon every frame
    				Game->PlaySound(SFX_FIREBALL);
    				eweapon fball = CreateEWeaponAt(EW_FIREBALL, n->X, n->Y);
    				fball->Angular = true;
    				fball->Angle = DegtoRad(Angle(n->X, n->Y, Link->X, Link->Y));
    				fball->Dir = AngleDir4(Angle(n->X, n->Y, Link->X, Link->Y));
    				fball->Step = 150;
    				fball->UseSprite(17);
    				fball->Damage = n->WeaponDamage;
    				n->Misc[NPCM_SHOTCOOLDOWN] = 0;
    			}
    		}
    	}
    }
    I wrote a global script for the old shooter behavior in case anybody else is rustled by the change like Anarchy_Balsac was. Just set the Shooter (Fireball) enemy's weapon to none, put the function in your global script, and your shooters will once again have no mercy.
    Last edited by Tamamo; 10-27-2015 at 10:34 AM. Reason: Fireballs have a 1 in 64 chance of firing by default. Fixed.

  9. #29
    ZC Ambassador Tamamo's Avatar
    Join Date
    May 2011
    Location
    Kyoto
    Age
    28
    Posts
    798
    Mentioned
    92 Post(s)
    Tagged
    2 Thread(s)
    vBActivity - Stats
    Points
    5,012
    Level
    22
    vBActivity - Bars
    Lv. Percent
    18.03%
    Daily Activity
    0%
    Weekly Activity
    34.3%
    Monthly Activity
    81.5%
    That is correct, power is from itemclasses and it's writable too but isn't saved.
    And good job @Moosh , I'll cross check it with the source for yeah.

    Last edited by Tamamo; 10-27-2015 at 10:28 AM.

  10. #30
    ZC Ambassador Tamamo's Avatar
    Join Date
    May 2011
    Location
    Kyoto
    Age
    28
    Posts
    798
    Mentioned
    92 Post(s)
    Tagged
    2 Thread(s)
    vBActivity - Stats
    Points
    5,012
    Level
    22
    vBActivity - Bars
    Lv. Percent
    18.03%
    Daily Activity
    0%
    Weekly Activity
    34.3%
    Monthly Activity
    81.5%
    Quote Originally Posted by Tamamo View Post
    Actually I'm currently brain storming on doing something rather interesting about this, 2.50.x can use the quest rules that no longer exist however, there's a slight problem and it's a pain in the ass.

    Problem: Backwards Compatibility
    Solution: We use the deprecated constants from the enum when we run out of room however these have a purpose as they configure how the quest works until you load it ZQuest 2.50.x. That being said they pretty much become worthless at that point and we have access to them as they serve no purpose in builds after they are removed.
    @Gleeok
    Let's put my theory to the test shall we.

    Code:
    //Only new quest rules that make use of deprecated quest rule space should use this. -T
    int get_questrule(byte *bitstr,int bit,zquestheader *Header)
    {
    	if(Header.zelda_version < 0x253) //didn't exist yet, and these probably did. so we can't chance it.
    		return 0;
    	else
    	{
    		bitstr += bit>>3;
    		return ((*bitstr) >> (bit&7))&1;
    	}
    }
    Last edited by Tamamo; 01-18-2016 at 04:31 PM.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
About us
Armageddon Games is a game development group founded in 1997. We are extremely passionate about our work and our inspirations are mostly drawn from games of the 8-bit and 16-bit era.
Social