User Tag List

Results 1 to 8 of 8

Thread: [2.50.1/2] Spin Attack Magic Cost Glitches

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Here lies mero. Died by his own dumbassitude.
    Join Date
    May 2011
    Posts
    929
    Mentioned
    102 Post(s)
    Tagged
    2 Thread(s)
    vBActivity - Stats
    Points
    5,527
    Level
    23
    vBActivity - Bars
    Lv. Percent
    13.96%
    I can confirm something is seriously wacky here. Here is the code, and i didn't change a thing.
    Code:
        // charging up weapon...
        //
        if(((attack==wSword && attackclk==SWORDCHARGEFRAME && itemid>=0 && isWpnPressed(itype_sword)) ||
    #if 0
                (attack==wWand && attackclk==WANDCHARGEFRAME && itemid>=0 isWpnPressed(itype_wand)) ||
    #endif
                (attack==wHammer && attackclk==HAMMERCHARGEFRAME && itemid>=0 && isWpnPressed(itype_hammer))) && z==0 && checkmagiccost(itemid)) //this check prevents that
        {
            // Increase charging while holding down button.
            if(spins==0 && charging<magiccharge)
                charging++;
                
            // Once a charging threshold is reached, play the sound.
            if(charging==normalcharge)
            {
    			paymagiccost(itemid);
                sfx(WAV_ZN1CHARGE,pan(int(x)));
            }
            else
            {
                itemid = current_item_id(attack==wHammer ? itype_quakescroll2 : itype_spinscroll2);
                
                if(itemid>-1 && charging==magiccharge && checkmagiccost(itemid))
                {
                    paymagiccost(itemid);
                    charging++; // charging>magiccharge signifies a successful supercharge.
                    sfx(WAV_ZN1CHARGE2,pan(int(x)));
                }
            }
        }
    Last edited by Tamamo; 01-21-2016 at 11:09 AM.

  2. #2
    The Timelord
    QDB Manager
    ZC Developer

    Join Date
    Oct 2006
    Location
    Prydon Academy
    Posts
    1,396
    Mentioned
    112 Post(s)
    Tagged
    1 Thread(s)
    vBActivity - Stats
    Points
    4,765
    Level
    21
    vBActivity - Bars
    Lv. Percent
    69.74%
    Quote Originally Posted by Tamamo View Post
    I can confirm something is seriously wacky here. Here is the code, and i didn't change a thing.
    Code:
        // charging up weapon...
        //
        if(((attack==wSword && attackclk==SWORDCHARGEFRAME && itemid>=0 && isWpnPressed(itype_sword)) ||
    #if 0
                (attack==wWand && attackclk==WANDCHARGEFRAME && itemid>=0 isWpnPressed(itype_wand)) ||
    #endif
                (attack==wHammer && attackclk==HAMMERCHARGEFRAME && itemid>=0 && isWpnPressed(itype_hammer))) && z==0 && checkmagiccost(itemid)) //this check prevents that
        {
            // Increase charging while holding down button.
            if(spins==0 && charging<magiccharge)
                charging++;
                
            // Once a charging threshold is reached, play the sound.
            if(charging==normalcharge)
            {
    			paymagiccost(itemid);
                sfx(WAV_ZN1CHARGE,pan(int(x)));
            }
            else
            {
                itemid = current_item_id(attack==wHammer ? itype_quakescroll2 : itype_spinscroll2);
                
                if(itemid>-1 && charging==magiccharge && checkmagiccost(itemid))
                {
                    paymagiccost(itemid);
                    charging++; // charging>magiccharge signifies a successful supercharge.
                    sfx(WAV_ZN1CHARGE2,pan(int(x)));
                }
            }
        }


    Is that the same version that I have, or did you get a fresher copy? (I need to sleep, or I;d just check.)

    So, anyhow, it certainly has some problems...

    I'm pretty sure that the culprit is the lack of a call to checkmagiccost() before starting the charge cycle. A call to that before this codeblock, should fix it in general, but you'd need to isolate these into individual items, as checkmagiccost() is item specific, and the charging cycle sort of combines items that have the ability. It's mandatory to split the hammer, and sword, in any event.

    I'd add a call to checkmagicost() to every item use function/block, as it'd make it possible to assign a cost to anything, and ensure it works. I'd prefer to make all of these blocks into isolated functions too, but that's another matter, as it might make it easier to debug, modify, and expand them.

    I'm just waiting for the open source stuff, so that I have a complete set of the absolute latest 2.50.3-ish code, before mucking with it. Not knowing what Gleeok changed, I'd rather not make changes to what I have, and need to do them over again.

Thread Information

Users Browsing this Thread

There are currently 2 users browsing this thread. (0 members and 2 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