Can a few people help me with this link state script?
THING I NEED HELP WITH:
- collision detection with code bounding rect (LinkVars[MASK])
- the dead state (takes place after he is done with is dying animation)
//import "LinkUtilities.zh" //Define Variables LinkVars; ////////////////////////////////////////////////////////////////////////// //Event Scripts Run these in your global scripts ////////////////////////////////////////////////////////////////////////// void LinkInit() { LinkVars[CSET] = 6; LinkVars[MASK] = [7, 9, 12, 16]; //Working on how to implement this LinkVars[COMBO] = ANIM_IDLE; LinkVars[DIR] = 0; LinkVars[STATES] = ["IDLEING", "WALKING", "ATTACKING", "CHARGING", "STABBING", "SPINNING", "PUSHING", "PULLING", "LIFTING", "LIFTWALKING", "THROWING", "HURTING", "DYING", "DEAD"]; LinkVars[STATE] = LinkVars[STATES]["IDLE"]; } void LinkUpdate() { bool LA_STABBING = ( LA_CHARGING && LinkSolid(1.5)); bool LA_PUSHING = (!LA_CHARGING && LinkSolid(1.5)); bool LA_PULLING = false; // not yet implemented bool LA_LIFTING = false; // not yet implemented bool LA_LIFTWALKING = false; // not yet implemented bool LA_THROWING = false; // not yet implemented bool LA_DEAD = false; // not yet implemented //Set States if (LA_NONE) { (LinkVars[STATE] = LinkVars[STATES]["IDLEING"]); } if (LA_WALKING ) { (LinkVars[STATE] = LinkVars[STATES]["WALKING"]); } if (LA_ATTACKING) { (LinkVars[STATE] = LinkVars[STATES]["ATTACKING"]); } if (LA_CHARGING) { (LinkVars[STATE] = LinkVars[STATES]["CHARGING"]); } if (LA_STABBING) { (LinkVars[STATE] = LinkVars[STATES]["STABBING"]); } if (LA_SPINNING) { (LinkVars[STATE] = LinkVars[STATES]["CHARGING"]); } if (LA_PUSHING) { (LinkVars[STATE] = LinkVars[STATES]["PUSHING"]); } if (LA_PULLING) { (LinkVars[STATE] = LinkVars[STATES]["PULLING"]); } if (LA_LIFTING) { (LinkVars[STATE] = LinkVars[STATES]["LIFTING"]); } if (LA_LIFTWALKING) { (LinkVars[STATE] = LinkVars[STATES]["LIFTWALKING"]); } if (LA_THROWING) { (LinkVars[STATE] = LinkVars[STATES]["THROWING"]); } if (LA_GOTLANDHURT) { (LinkVars[STATE] = LinkVars[STATES]["HURTING"]); } if (LA_DYING) { (LinkVars[STATE] = LinkVars[STATES]["DYING"]); } if (LA_DEAD) { (LinkVars[STATE] = LinkVars[STATES]["DEAD"]); } if (LinkVars[STATE] == LinkVars[STATES]["IDLEING"]) { LinkVars[COMBO] = ANIM_IDLE + LinkVars[DIR]; LinkIdle(); } if (LinkVars[STATE] == LinkVars[STATES]["WALKING"]) { LinkVars[COMBO] = ANIM_WALK + LinkVars[DIR]; LinkWalk(); } if (LinkVars[STATE] == LinkVars[STATES]["ATTACKING"]) { LinkVars[COMBO] = ANIM_ATTACK + LinkVars[DIR]; LinkAttack(); } if (LinkVars[STATE] == LinkVars[STATES]["CHARGING"]) { LinkVars[COMBO] = ANIM_CHARGE + LinkVars[DIR]; LinkCharge(); } if (LinkVars[STATE] == LinkVars[STATES]["STABBING"]) { LinkVars[COMBO] = ANIM_STAB + LinkVars[DIR]; LinkStab(); } if (LinkVars[STATE] == LinkVars[STATES]["SPINNING"]) { LinkVars[COMBO] = ANIM_SPIN + LinkVars[DIR]; LinkSpin(); } if (LinkVars[STATE] == LinkVars[STATES]["PUSHING"]) { LinkVars[COMBO] = ANIM_PUSH + LinkVars[DIR]; LinkPush(); } if (LinkVars[STATE] == LinkVars[STATES]["PULLING"]) { LinkVars[COMBO] = ANIM_PULL + LinkVars[DIR]; LinkPull(); } if (LinkVars[STATE] == LinkVars[STATES]["LIFTING"]) { LinkVars[COMBO] = ANIM_LIFT + LinkVars[DIR]; LinkLift(); } if (LinkVars[STATE] == LinkVars[STATES]["LIFTWALKING"]) { LinkVars[COMBO] = ANIM_LIFTWALK + LinkVars[DIR]; LinkLiftWalk(); } if (LinkVars[STATE] == LinkVars[STATES]["THROWING"]) { LinkVars[COMBO] = ANIM_THROWING + LinkVars[DIR]; LinkThrow(); } if (LinkVars[STATE] == LinkVars[STATES]["HURTING"]) { LinkVars[COMBO] = ANIM_HURT + LinkVars[DIR]; LinkHurt(); } if (LinkVars[STATE] == LinkVars[STATES]["DYING"]) { LinkVars[COMBO] = ANIM_DYING + LinkVars[DIR]; LinkDying(); } if (LinkVars[STATE] == LinkVars[STATES]["DEAD"]) { LinkVars[COMBO] = ANIM_DEAD + LinkVars[DIR]; LinkDead(); } Link->Invisible == true; Screen->FastCombo(0, Link->X, Link->Y, LinkVars[COMBO], 6, 128); LinkVars[DIR] = Link->Dir; } //Some way to make this function work with the custom mask? bool LinkSolid(int step) { if (Link->InputUp && CanWalk(Link->X, Link->Y, DIR_UP, step, false)) return true; if (Link->InputDown && CanWalk(Link->X, Link->Y, DIR_DOWN, step, false)) return true; if (Link->InputLeft && CanWalk(Link->X, Link->Y, DIR_LEFT, step, false)) return true; if (Link->InputRight && CanWalk(Link->X, Link->Y, DIR_RIGHT, step, false)) return true; return false; }
Edited by Shadowblitz16, 23 October 2016 - 02:15 AM.