block wcs_ulti_blink
{
es playerget location server_var(wcs_userid) wcs_x1 wcs_y1 wcs_z1
es playerget viewcoord server_var(wcs_userid) wcs_x2 wcs_y2 wcs_z2
es inrange wcs_x server_var(wcs_x1) server_var(wcs_distance) server_var(wcs_x2)
es inrange wcs_y server_var(wcs_y1) server_var(wcs_distance) server_var(wcs_y2)
es inrange wcs_z server_var(wcs_z1) server_var(wcs_distance) server_var(wcs_z2)
ifx parse("wcs_x == 1 and wcs_y == 1 and wcs_z == 1") do
{
es playerset location server_var(wcs_userid) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2)
es_delayed 5 es_xset wcs_userid server_var(wcs_userid)
es_xsoon es_xdoblock wcs/WCSultimates/wcs_blink_check
es_createvectorstring wcs_tmp server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1)
es_keysetvalue WCSuserdata server_var(wcs_userid) "tel_origine" server_var(wcs_tmp)
es_createvectorstring wcs_tmp server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2)
es_keysetvalue WCSuserdata server_var(wcs_userid) "tel_destination" server_var(wcs_tmp)
}
}
block wcs_blink_check
{
es playerget location server_var(wcs_userid) server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1)
es_keygetvalue wcs_tmp WCSuserdata server_var(wcs_userid) "tel_destination"
es_splitvectorstring wcs_x2 wcs_y2 wcs_z2 server_var(wcs_tmp)
ifx parse("wcs_x1 == wcs_x2 and wcs_y1 == wcs_y2 and wcs_z1 == wcs_z2") do
{
es_keygetvalue wcs_tmp WCSuserdata server_var(wcs_userid) "tel_origine"
es_splitvectorstring wcs_x1 wcs_y1 wcs_z1 server_var(wcs_tmp)
es playerset location server_var(wcs_userid) server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1)
}
}
Okay, made it so it will go back to original location.
Also added a line to reset wcs_userid in case someone else uses an ultimate between the teleport and the check (which would have changed value of wcs_userid).
Then you are free to add any es_tell to make it like you want it to be.
Here's the skill for WCS 0.77:
"skill1_setting" "es_xsetinfo wcs_distance 5|es_xsetinfo wcs_distance 10|es_xsetinfo wcs_distance 15|es_xsetinfo wcs_distance 20|es_xsetinfo wcs_distance 25"
"skill1_cmd" "es_xdoblock wcs/WCSultimates/wcs_ulti_blink"
"skill1_sfx" "0"
And here's the skill for WCS 0.78:
"skill1_setting" "es_xsetinfo wcs_distance 5|es_xsetinfo wcs_distance 10|es_xsetinfo wcs_distance 15|es_xsetinfo wcs_distance 20|es_xsetinfo wcs_distance 25"
"skill1_block" "wcs/WCSultimates/wcs_ulti_blink"
PS : If you want to add a sfx to the skill, you'll need to put somewhere in the block:
ifx true(wcs_graphicfx) do
{
// HERE PUT YOUR SFX CODE
}
RE PS : I actually remember something i forgot to say... you will be able to teleport a bit longer than wcs_distance... Actually you'll be able to teleport in a square (of which you are the center) of a 2*wcs_distance side.
RE RE PS : This means you actually can teleport on wcs_distance * root(2)