Page 1 of 2

Bug 211: (Faux) Cannot cancel Bind

Posted: Thu Jul 02, 2015 6:57 pm
by BugTracker
Bug ID       : 211 - Cannot cancel Bind 
Bug Date     : 2015/07/01 08:05:12
Assigned To  : Faux
Priority     : Low

Category     : VGClient
Sub-Category : Gameplay: Ability
Severity     : Standard
Reproducible : Every time
Details:
Unable to interrupt binding at altars. Jumping, escape and running away does nothing.
Originated From World: New Telon (1)
Chunk                : Khal (85)
Location             : -660 -43397 1244

Entered on Jul 02, 2015 19:07 by John Adams
I see /bind is Complete, so this Abort might be part of the Casting system that is not yet implemented. Blackstorm did Bind, but assigning to Faux for Interrupt/Cancel

Re: Bug 211: (Faux) Cannot cancel Bind

Posted: Thu Jul 02, 2015 7:31 pm
by Faux
Interrupt should be a pretty easy system to implement now that casting is working. However, using an item to bind functions differently, so I'll have to take a look at that and see how Blackstorm did it (as Bind is not an ability).

Edit: Its all hardcoded right now. If we don't find a way to interrupt item use, there is always the option to make invisible casted abilities for things like bind so it fits into the casting system.

Re: Bug 211: (Faux) Cannot cancel Bind

Posted: Tue Jul 07, 2015 7:23 pm
by Blackstorm
I should take a look about that now the casting system is in place.. ^^

Re: Bug 211: (Faux) Cannot cancel Bind

Posted: Wed Jul 08, 2015 5:21 am
by Faux
As a general summary, when a character uses an ability, the ChunkServer will call a UseAbility process in the WorldCharacter object. That process determines whether it has to play a casting animation and create a timer for the impact animation. If so, it returns true to ChunkServer, which adds the client to the ChunkServer casting map. The chunk server casting map is checked every 5ms, and if not empty, it will poll each client object to check if the timer has expired. If the timer in the WorldCharacter object has expired, it makes a Lua call to activate the ability script.

All of this works off of the Ability Structs though, so Bind won't work unless we make it an invisible ability.

The easier solution is probably to just make cancelling an ability always send the ability interrupt packet regardless of whether its an item or an ability. We can just add some logic to that interrupt function to check the character's casting map.

Re: Bug 211: (Faux) Cannot cancel Bind

Posted: Sat Jul 18, 2015 10:07 am
by Blackstorm
Hum, actually i have no log from the sunset where i can found a valid sequence for the bind process...

I've unzipped a lot but, i found always a return opcode (1034) with a value of 3 (that say, "you cannot bind here"), so i don't know if a sound or an animation was played during the cast, and what type of cast is it (i'm using a server cast, a lot less complex than an ability cast packet, because 'Bind" seem to not be a common ability).

So if someone find a log with the bind (269) process and have the value of the opcode 1034 at '0' inside, i would like to retrieve it ^^

Re: Bug 211: (Faux) Cannot cancel Bind

Posted: Sat Jul 18, 2015 10:50 am
by shargash
The bind sounds are in interactiveobjects. There is both a "Bind" and a "BindComplete" sound.

Re: Bug 211: (Faux) Cannot cancel Bind

Posted: Sat Jul 18, 2015 11:23 am
by Xinux
Here is how bind should work.

You click on the bind stone the following should happen.

Client sends OP_ClientBind

At that point the server should send you the packets for casting a spell I don't remember the exact cast time but it was like 6 seconds and you could interrupt it since it was a cast.

Once it finished casting you get OP_ServerSetBindLocation with the correct response and you also get OP_ServerCharacterUpdate with the updated vector/chunk if the bind was successful.


Still looking for a log

Re: Bug 211: (Faux) Cannot cancel Bind

Posted: Sat Jul 18, 2015 11:30 am
by John Adams
There is some discussion on whether something is an "Ability" vs "Casting". Just because something is not in a player spell book does not mean it cannot be emulated like an ability, and just hidden from the book. I'd rather not do things 2 different ways, but keep everything going down the same happy path.

Find a way to get this (and other) "passive" abilities to work the same.

Re: Bug 211: (Faux) Cannot cancel Bind

Posted: Sat Jul 18, 2015 6:29 pm
by shargash
I wish I could remember if casting speed enhancements speeded up binding. I think so, but I just didn't bind often enough nor pay enough attention when binding.

The /bind command seems to work pretty much exactly like /rift (as opposed to .rift). Is rifting an ability or a casting? One difference between /bind and clicking on a rift stone is that I think clicking from too far away would give you a distance error, while /bind would give you a "you can't bind here" error.

Re: Bug 211: (Faux) Cannot cancel Bind

Posted: Sun Jul 19, 2015 7:14 am
by Blackstorm
yep, all that things are already implemented into the game and work well ^^ but in fact, i need more details about the casting process that only logs can give me to replicate the exact process and using the appropriate opcodes... otherwise, we can emulate an ability and do the best ^^ but it's not the same thing

Rift have the same problem... btw.. when you rift, did you have a casting bar on the live server or just the current animation like on NT plz ?