ID:2176881
 
Code:
flick("catchf",src)


Problem description:


Simple code, works, but I have no idea how to make this flick play the full animation.
Is the thing within view before u call flick?
Its a verb. Its from a fishing code, when you catch a fish
What do u mean by the full animation then? are there more than 1 u need to play?
What I mean it it only plays the first frame of the animation

mob
verb
catch_fish()
set category="Skills"
if(src.fishing==1)
usr<<"You start fishing."
move=0//says this
sleep(30)//wait 3 seconds
if (prob(35))//if u catch a fish
usr<<"You catch a salmon!"
flick("catchf",usr)
usr.contents+=new/obj/items/plants/Fish_1
move=1
return


It only plays the first frame
Do you have anything that overrides player states? For instance, my project has a proc that is run every tick to place player's in their correct states. If you have something around the lines of that, flick becomes obsolete.

Also while this will not fix your flick() issue and may not play animations perfectly, you can try manually setting a player's state and then switch it back after the allotted time. Depending on how you want to handle things, you may want to place the code I'm providing right after move=1.

var/og = icon_state
icon_state="catchf"
sleep(THETOTALTIMEFORTHEANIMATION)
icon_state = og


Also, I personally completely avoid using usr. It'd be wise for you to keep consistency throughout your code, that meaning replace usr with src in this proc and also add src. before move=1/move=0.
mob/verb/crepe()
flick("crepes",src)
return


Runs just fine. I'm going to assume your bug is coming from somewhere else in your code - like Flame said, you're probably changing the icon somewhere else.