User Tag List

Results 1 to 10 of 60

Thread: Zelda Classic 2.50.2

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Empty and become Moosh Moosh's Avatar
    Join Date
    Oct 2012
    Posts
    57
    Mentioned
    13 Post(s)
    Tagged
    4 Thread(s)
    vBActivity - Stats
    Points
    628
    Level
    8
    vBActivity - Bars
    Lv. Percent
    90.47%
    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.

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