Hesabına erişemeyen eski üyeler Discord üzerinden yardım alabilir.
[/code]Arkadaşlar şimdi ben bi alan yaptım o alana girince safe olucak ustunde safe alanda yazıcak çıkınca bu event gidicek soyle denedim hata varsa duzeltirmsiniz...
[code][events e_safede]
on=@click
message @1153 [Safe Alanda]


on=@hit
if (<region.safe> == 1)
action -1
sysmessage @1153 burada vuramazsiniz ulen !
return 1
endif


on=@attack
skill fail
sysmessage @1153 Safe Alanda Savasamazsin.
return 1

on=@spellcast
if !((<argn> == 6) || (<argn> == 7) || (<argn> == 4) || (<argn> == 9) || (<argn> == 10) || (<argn> == 15) || (<argn> == 16) || (<argn> == 17) || (<argn> == 36))
skill fail
ekranitemizle
sysmessage @1153 Sadece stat ve armor buyulerini kullanabilirsiniz...
return 1
endif

on=@skillstart
if !((<action> == id(skill_magery)) || (<action> == skill_magery) || (<action> == id(skill_meditation)) || (<action> == skill_meditation) || (<action> == id(skill_alchemy)) || (<action> == skill_alchemy))
skill fail
skill fail
ekranitemizle
sysmessage @1153 Stat ve armor buyuleri disinda herhengi bir buyu yada skill kullanamazsiniz...
return 1
endif


On=@ItemDClick

if (<act.type> == t_scroll)
sysmessage @1153 Safe Alanda bunu kullanamazsin
return 1 

if (<act.type> == t_scroll)
sysmessage @1153 Safe Alanda bunu kullanamazsin
return 1 
elseif (<act.type> == t_potion)
sysmessage @1153 Safe Alanda Potion Kullanamazsin...
return 1 
endif

if (<act.baseid> == i_runebook)
sysmessage @1153 Safe alanda runebook kullanamazsin...
return 1 
endif
Bu eventi evenslerin olduğu yere ekledim daha sonra map scptne

[AREA safe alan]
RECT=5806,1857,5866,1910
P=5841,1880
FLAGS=region_antimagic_all|region_antimagic_recall_in|region_antimagic_recall_out|region_flag_no_pvp|region_flag_safe
EVENTS=r_safede

Daha sonra region.scp yerine bu scp ekledim

[regiontype r_safede]

On=@Enter
if !(<src.npc>)
src.events +e_safede
if (<src.findid.i_rune_poison>)
src.findid.i_rune_poison.remove
endif

On=@Exit
src.events -e_safede

Genede olmadı arkadaslar cok acil yardım :(:(
Eventi safe değilde kenine verince çalışıyormu :D
Uzerınde Safe Alan Yazması Icın Eventın Altına on=@click Eklemelısın

on=@click
message q0481 [Safe Alan]
return 1


gıbı
[events e_safede]
on=@click
message @1153 [Safe Alanda]

burda yapmış ztn return 1 hariç :)


On=@Enter
if !(<src.npc>)
src.events +e_safede
if (<src.findid.i_rune_poison>)
src.findid.i_rune_poison.remove
endif

Anlamadığım burda if !(<src.player>) olmaz mı xD
evet player logine ekledim çalışıyor ama blirli bi alanda uygulamam lazım oda denedim olmadı yapabilecek biri yokmu ??
:O_osanırım bi değişiklik yok sadece player yapmışsın onunla bi alakası yok puf nasıl yapıcam bunu ya

[events e_safefix]
if (<src.region.safe> == 1) 
src.invul 1
else
src.invul 0

On=@Attack
if (<src.region.safe> == 1) 
src.sysmessage @38,,1 Safe alanda Saldiramasin
skill fail
action -1
return 1 

On=@Spellcast
if (<src.region.safe> == 1) 
src.sysmessage @38,,1 Safe Alanda Buyu Atamassiniz
f_fizzle
action -1
return 1

On=@click
if (<src.region.safe> == 1) 
message @038,,1 [Safe Alanda]
return 1

On=@skillstart
if (<src.region.safe> == 1) 
skill fail
action -1
src.sysmessage @38,,1 Safe Alanda Skill Kasamassiniz
return 1

On=@Itemdclick
if (<src.region.safe> == 1) 
if (<act.baseid> == i_deed_Tower)|(<act.baseid> == i_deed_house_3room)|(<act.baseid> == i_deed_house_stone_plaster_small)|(<act.baseid> == i_deed_castle)|(<act.baseid> == i_deed_keep)
sysmessage @38,,1 Sayin <src.name> Safe Alanda Bina Kuramassiniz.
return 1 
elseif (<act.baseid> == i_runebook)|
sysmessage @38,,1 Sayin <src.name> Safe Alanda Rune Book Kullanamassiniz 
return 1 
endif

[SPEECH spk_player] 

ON=*kill* 
if (<src.region.safe> == 1) 
sysmessage @38,,1 Safe Alanda Atack Veremessiniz
return 1

ON=*attack*
if (<src.region.safe> == 1) 
sysmessage @38,,1 Safe Alanda Atack Veremessiniz
return 1

ON=*edit*
sysmessage @38,,1 Edit Konusmalarini Yapmayiniz Staffa Bildiriniz.
return 1

ON=*e d i t*
sysmessage @38,,1 Edit Konusmalarini Yapmayiniz Staffa Bildiriniz.
return 1

ON=*app*
sysmessage @38,,1 Kotu Soz Kullanmak Yasaktir.
return 1

ON=*lamer*
sysmessage @38,,1 Kotu Soz Kullanmak Yasaktir.
return 1

[EOF]



BU EVENTİ PLAYERLARİN GECTİGİ HERYERE WER ORNEGİN








on=2 // bilet alani
if (<src.findid i_rune_poison>)
src.sysmessage @0481,,1 Uzerinizde Zehir Varken Moongate'leri Kullanamazsiniz.
return 1
elseif !(<src.flags>&statf_dead) && (<src.hits> < (<src.str>)
src.sysmessage @0481,,1 Yaraliyken Moongate'leri Kullanamazsiniz.
return 1
endif
IF (<targ.DISTANCE> <=3)
SRC.GO wrong
src.events +e_dropfix
src.events -e_safefix
src.events -e_boyafix [[[[[BUNUN GİBİ SAFE Girerken src.events +e_safefix verip diger heryere giderken src.events -e_safefix yapman gerekli]]]]]]]
src.events -e_pazarfix
src.events -e_quest
src.sysmessage @1153,,1 Bilet Kasma Alani'na Hosgeldiniz.
ELSE
SRC.SYSMESSAGE @0481,,1 Moongateden cok uzaktasiniz.
return 1
ENDIF
SRC.FIX
Birde bunu dener misin ?

[AREADEF safe alan]
EVENTS=r_safede
NAME=Safe Alan
GROUP=
FLAGS=region_antimagic_all|region_antimagic_recall_in|region_antimagic_recall_out|region_flag_no_pvp|region_flag_safe
P=5841,1880
RECT=5806,1857,5866,1910


[regiontype r_safede]
on=@enter
src.events +e_safede
src.sysmessage @0783,,1 Safe alanına hoşgeldiniz..
on=@exit
src.sysmessage @0783,,1 Safe alandan ayrıldınız..
src.events -e_safede

[events e_safede]

on=@hittry
sysmessage @066d,,1 Burada olmaz.
action -1
return 1

ON=@Hit
src.sysmessage @066d,,1 Burada olmaz.
action -1
return 1

on=@skillstart
src.sysmessage @066d,,1 Bu alanda yetenek geliştiremezsiniz.
skill fail
return 1

ON=@GetHit
src.sysmessage @066d,,1 Burada olmaz.
action -1
return 1

On=@ItemDClick
if (<act.baseid> == i_deed_animal)
sysmessage @066d,,1 Burada olmaz.
return 1
endif
if (<act.type> == t_scroll)
sysmessage @066d,,1 Burada olmaz.
return 1
endif
if (<act.baseid> == i_runebook)
sysmessage @066d,,1 Burada olmaz.
return 1 
elseif (<act.baseid> == i_bandage)
sysmessage @066d,,1 Burada olmaz.
return 1 
endif

ON=@itemdropon_ground
if (<src.account.plevel> > 2)
return 1
else
act.unequip
src.sysmessage @066d,,1 Burada yere eşya atılamaz.
return 1
endif

on=@spellcast
if (<src.account.plevel> == 1)
src.sysmessage @066d,,1 Burada büyü kullanamazsınız.
f_fizzle
return 1


Olmadı deme
[events e_safede]
on=@click
message @1153 [Safe Alanda]


on=@hit
action -1
sysmessage @1153 burada vuramazsiniz ulen !
return 1


on=@attack
sysmessage @1153 Safe Alanda Savasamazsin.
return 1

on=@spellcast
if !((<argn> == 6) || (<argn> == 7) || (<argn> == 4) || (<argn> == 9) || (<argn> == 10) || (<argn> == 15) || (<argn> == 16) || (<argn> == 17) || (<argn> == 36))
skill fail
ekranitemizle
sysmessage @1153 Sadece stat ve armor buyulerini kullanabilirsiniz...
return 1
endif

on=@skillstart
sysmessage @1153 Stat ve armor buyuleri disinda herhengi bir buyu yada skill kullanamazsiniz...
return 1


On=@ItemDClick
if (<act.type> == t_scroll)
sysmessage @1153 Safe Alanda bunu kullanamazsin
return 1

elif (<act.type> == t_scroll)
sysmessage @1153 Safe Alanda bunu kullanamazsin
return 1

elif (<act.type> == t_potion)
sysmessage @1153 Safe Alanda Potion Kullanamazsin...
return 1

elif (<act.baseid> == i_runebook)
sysmessage @1153 Safe alanda runebook kullanamazsin...
return 1
endif

[regiontype r_safede]
On=@Enter
if !(<src.npc>)
if (<src.findid.i_rune_poison>)
src.findid.i_rune_poison.remove
endif
src.events +e_safede
endif

On=@Exit
src.events -e_safede


Bu konu Morechild tarafından düzenlendi(2008-05-13 20:51, 15 yıl önce)
On=@Enter
if !(<src.npc>)
src.events +e_safede
if (<src.findid.i_rune_poison>)
src.findid.i_rune_poison.remove
endif

sanırsam burda bir sorun var npc olup olmadığını sorgulmada

if (<isnpc>) - npc ise
if (<isplayer>) - player ise
if (<isgm>) - gm mod aktif ise
if (<isonline>) - online ise
if (<isitem>) - item ise

vs..

Yukarda Nexima nın verdiği büyük ihtimalle çalışır fakat player olup olmadığını sorgulamak istersen bunu kullanabilirsin.

On=@Enter
if (<isplayer>)
src.events +e_safede
else
return 1
endif
unknow elseden sonra ßir$ey yoksa niye kuLLanıyorsun ki

isplayer yada / src.npc
Npc mi değilmi tarzında
yaygınLık oLmu$

üstte verdiğim kodLarın çaLı$ması lazım
Sanırsam return 1 in anlamını bilmiyorsun return 1 işlemi durdur demek yani eğer player degil ise girme işlemini durdur.
BiLiyorum

fakat sadece düz yapıncada aynı $ey oLuyor

yani o eLse fazLa ßir$ey fark ettirmicek

if / eğer isplayer / playerse / içeri yolla

anlamında.
Algoritma ;

A1 : Sorguyu yap
A2 : Sorgu doğru ise eventi verdir girisi tamamla
A3 : Sorgu doğru değil ise a4 e git
A4 : Girisi tamamlama.
A5 : Sorguyu kapat.

Ordaki return 1 in anlamı stafflar .xgo ile safeye npc gönderimleri , dışardan safeye npc girisini onlemek içindir . Zaten safe içerisindeki npcleri etkilemez bu yoksa verdiğim scriptte sadece playerlara events verdirip girişi tamamla dediğini anlayabilecek kapasitedeyim.
Arkadaslar yaptım ama gene olmadı offffff off ! baska turlu nasıl yapabilirim yardım ::(:(

Üye Ol veya Giriş Yap

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