2 вопроса:
1. Допустим, имеется такой код:
code text
also ai
also evt
: attack_check "attack" . ;
: attack EVT_ATTACKED ['] attack_check player@ evt.handler! ;
previous previous \ сколько их тут надо? 1 или 2?
В чате пишем //do pvp_attack
По идее этот код должен отслеживать любую атаку по тебе. Но на деле отслеживается только атака вручную,
не скиллами/магией.
Вобщем просьба пофиксить. И еще, никак не найду каким образом отслеживать кто именно атаковал.
2. Раньше я делал имитацию стенки (запрет на вход в территорию) вот таким образом:
code text
also geodata:
also territories:
also ai
also intention
0 VALUE pl_h
: pl? ( -- ) self L2Player.class instance-of? ;
: pvp_enter ( -- )
pl? unless false exit then
player@ "Heading" p@ to pl_h
pl_h 16384 <= if
player@ "X" p@ 10 - player@ "Y" p@ 10 - player@ "Z" p@ pl_h xyzh>position
null AI_INTENTION_MOVE_TO intention!
then
pl_h 16384 > pl_h 32768 <= and if
player@ "X" p@ 10 + player@ "Y" p@ 10 - player@ "Z" p@ pl_h xyzh>position
null AI_INTENTION_MOVE_TO intention!
then
pl_h 32768 > pl_h 49152 <= and if
player@ "X" p@ 10 + player@ "Y" p@ 10 + player@ "Z" p@ pl_h xyzh>position
null AI_INTENTION_MOVE_TO intention!
then
pl_h 49152 > if
player@ "X" p@ 10 - player@ "Y" p@ 10 + player@ "Z" p@ pl_h xyzh>position
null AI_INTENTION_MOVE_TO intention!
then
;
['] pvp_enter terr "setEnterWord" 1 jexec
previous previous previous previous \ а тут вообще хз сколько надо :)
При входе в обасть игрок отодвигался немного назад, в результате войти в нее не мог.
Теперь же, применяя тот же код, так сделать не получается - при "отодвигании" назад игрок может щелкнуть бежать вперед, в результате если часто щелкать можно пройти "стенку".
Предлагаю сделать запрет на самостоятельное передвижение во время принудительного. Иначе пропадет куча интересных возможностей при написании эвентов