arkadaşlar bu duvar atma yasağı gayet güzel çalışıyor fakat evin tam kapısına yada gatenin tam üzerine gelirse siliyor mesela gatenin 1 kare 2 kare etrafından dört köşesini duvarla cevirebiliyorum.. burda gatenin 2 kare etrafını sorgulatmak mümkünmüdür?

[itemdef i_fieldatti]
name=field remover
id=i_deed
type=t_script

on=@create
attr=attr_static |attr_can_decay |attr_invis

ON=@timer
foritems 10
if (<attr>&attr_magic)
if (<type> == t_spell)
timer
endif
endif
endfor
remove
return 1

ON=@dclick
remove

On=@ItemSpell
if (<argn>==24) || (<argn>==28) || (<argn>==39) || (<argn>==50) || (<argn>==47)
if (<act.baseid> == i_moongate_red) || (<act.baseid> == i_moongate_blue) || (<act.baseid> == i_moongate) || (<act.baseid>== i_sign_brass) || (<act.type> == t_door_open) || (<act.type> == t_door_locked) || (<act.type> == t_multi) || (<act.type> == t_sign_gump)
fieldfixer
src.sysmessage @38,,1 Gatelere & Evlere field atamazsınız.
endif
endif
foritems 10 diyerek zaten 10 kareyi sorgulamışsınız.
duvar tam gatenin üzerine gelirse silici devreye giriyo ve 10 kare etraftaki duvarları siliyor ama duvarı gatenin üzerine degilde 2 kare yanına atarsam silici aktif olmuyor. benim istedigim duvar atılan nokta moongateden 5 kare uzak bile olsa silici devreye girsin..

On=@ItemSpell
if (<act.baseid><ACT.UZAKLIK ( gibi )> == i_moongate_red)

bilmem anlatabildimmi?
Ups, pardon eskik okumuşum.

2 türlü halledebilirsin. Madem script öğreniyorsun bu 2 yolu izah edeyim.

1) Item yapıyorsun, bu item sürekli olarak timer sayıyor.

ON=@Create 
timer 5

ON=@Timer
işlemler
timer 5
return 1

işlemler kısmında da foritems 10 ile 10 kare etrafı sorgulatıyorsun. Her 5 saniyede bir işlem söz konusu.

2) Yöntem ise daha mantıklı, atılan field büyülerinden sorgu yapıyorsun. Eğer 10 kare yakınında kapanmasını istemediğin birşey varsa sildiriyorsun.

1. yöntemde x ten y ye
2. yöntemde y den x e gibi

Üye Ol veya Giriş Yap

Bu forum başlığına mesaj atmak istiyorsanız hemen üye olun veya giriş yapın.