|
İçerde : 1 misafir, 0 üye : ---
|
[typedef t_mark_yasak]
[itemdef i_mark_yasak]
defname=i_mark_yasak
id=i_crystal_green
type t_mark_yasak
name Mark Engelleyici
layer layer_special
on=@create
timer -1
color=0935
attr=080|010
tag0.silinmez=1
on=@timer
return 1
on=@destroy
if (<tag0.silinmez>==1)
return 1
endif
on=@pickup_ground
src.sysmessage @07a1 Elleme At Kafası
return 1
//////////////////////////////////////
On=@SpellCast
if <argn> == 45
foritems 100
if <baseid>==i_mark_yasak
//if <distance>==< 50
src.sysmessage @07a1 bu alanda mark yasak <distance>
src.f_fizzle
return 1
endif
endfor
Axuare :
Script olduğuna faul, mesela;
Niye ayrı bir typedef açma ihtiyacı duydun ?
Niye bir layer tanımlası ihtiyacı duydun ?
Niye bir On=@Destroy kullanımına ihtiyaç duydun ?
Benim script bilgim malesef zaten çok ileri seviye değildi ama şuanda o bile yok.
Ama şöyle bir yol izlenebilir, tavsiyem.
Bir item oluştur, sade olsun mümkünse // attr tanımlamaları olsa yeter bence.
Sorgusunuda öyle fix scripti içinde değil , direk spellin kendi içerisinde (sphere.spells olması lazım tam hatırlamıyorum)
sorgulat. Örnek olarakta mesela duvar silici scriptler vardı, onları baz alarak yapabilirsin. // sonuçta aynı mantık.
Bir de xwerswoodx var, o görürse daha detaylı, yeni sorgulara uygun birşeyler yapabilir.
ON=@EFFECT
IF (<SRC.ISNEARTYPE T_MARK_YASAK <DDEF.MARKYASAK>>)
src.sys_kirmizi Bu alan işaretlenemez. <dDef.markyasak> kare sınırı vardır.
src.f_fizzle
RETURN 1
endif
on=@destroy
if (<tag0.silinmez>==1)
src.sysmessage @07a1 bu itemi silmek yasaktir.... GİBi
return 1
endif
on=@select
IF (<SRC.ISNEARTYPE T_MARK_YASAK <DDEF.MARKYASAK>>)
src.sys_kirmizi Bu alan işaretlenemez. <dDef.markyasak> kare sınırı vardır.
src.f_fizzle
RETURN 1
endif
on=@destroy
SRC.SYSMESSAGE @,,1 Bu itemi silemezsiniz.
RETURN 1
[TYPEDEF T_MARK_YASAK]
on=@pickup_ground
if (<src.account.plevel> < 7)
src.sysmessage @38,,1 Bunu yapmaya yetkiniz bulunmuyor.
return 1
endif
[ITEMDEF i_mark_yasak]
DEFNAME=i_mark_yasak
NAME=Mark Engelleyici
ID=i_crystal_green
TYPE=t_mark_yasak
weight 60000
on=@create
color 0bb7
attr attr_static|attr_invis
timer=-1
on=@click
message @33,,1 [Bu eşyaya dokunmayın]
message @0790,,1 50 karelik çember'in marklanmasını engeller.
message @64,,1 [<name>]
return 1
on=@START
foritems 50
if (<baseid> == i_mark_yasak)
src.sysmessage @38,,1 Bu alan marklanmaz. 50 kare sınırı vardır.
src.f_fizzle
src.skill fail
RETURN 1
endif
endfor
|