ZoriaRPG icon

NPC Steal Items on Collision

ZoriaRPG | PRO | 12/30/19 04:02:24 PM UTC | 0 ⭐ | 693 👁️ | Never ⏰ | []
C++ |

830 B

|

None

|

0 👍

/

0 👎

npc script stealitems
{
    void run(int min, int max, int counterA, int counterB, int counterC, int counterD, int sfx)
    {
        min = ( min > -1 ) ? min : 0;
        max = ( max > 0 ) ? max : 1;
        int num = Rand(min,max);
        int counters[4] = { counterA, counterB, counterC, counterD };
        int sel = counters[Rand(4)];
        while(1)
        {
            if ( sel ) //don't affect counter 0 (life)
            {
                if ( Collision(this) && (Hero->HitDir > -1) )
                {
                    Audio->PlaySound(sfx);
                    //Don't roll over.
                    if ( (Game->Counter[sel] - num) >= 0 ) Game->Counter[sel] -= num;
                    else 
                    {
                        Game->Counter[sel] = ( num > 0 ) ? 0 : Game->Counter[sel];
                    }
                    while(Hero->HitDir > -1) { Waitframe(); } //Don't steal again unless Link is hit again.
                }
            }
            num = Rand(min,max);
            sel = counters[Rand(4)];
            Waitframe();
        }
    }
}

Comments