Novice
12.5
[comment recall]
Recall Sistemi
Yazar: Mortal
Tarih: 24.10.2012
Saat: 04:00

-------------------------------------------------------------------------------------
Özellikler
- Her karakterin 1 sayfası (10 hafıza) bulunmaktadır.
- Herhangi bir item veya skill gerekliliği istememektedir.
- 200000 gold ile 2. sayfa açılabilir.
- 300000 gold ile 3. sayfa açılabilir.
- En fazla 30 adet hafızaya sahip olunabilir.
-------------------------------------------------------------------------------------

[defname recall_system]
sayfa1 "1,10"
sayfa2 "11,20"
sayfa3 "21,30"

[function dd]
if (<src.action>==skill_magery) || (<src.findid(i_spelldelay)>)
	src.sysh_trk Büyü yaparken kullanamazsınız.
elif <src.flags>&statf_dead
	src.sysh_trk Ölüyken kullanamazsınız.
elif <src.flags>&statf_freeze
	src.sysh_trk Şu anki durumunuzda kullanamazsınız.
elif <src.isevent.e_jailm>
	src.sysh_trk Jail cezanız bitmedi bu yüzden recall sistemini kullanamazsınız.
elif (<src.region.flags>®ion_flag_safe|region_flag_ship)
  	src.sysh_trk Bu bölgede recall sistemini kullanamazsınız.
else
        dialogclose d_recall
        ctag0.sayfa <args>
        dialog d_recall
endif
return 1

[dialog d_recall]
5,30
PAGE 0
makebg 5,5,300,325
if (<dsrc.ctag0.sayfa> == 2) && (<dsrc.tag0.recallsayfa> > 2)
button 20 16 5603 5607 1 0 31
button 275 16 5601 5605 1 0 32
elif (<dsrc.ctag0.sayfa> == 1) && (<dsrc.tag0.recallsayfa> > 1)
button 275 16 5601 5605 1 0 32
elif (<dsrc.ctag0.sayfa> == 3) && (<dsrc.tag0.recallsayfa> == 3)
button 20 16 5603 5607 1 0 31
elif (<dsrc.ctag0.sayfa> == 2) && (<dsrc.tag0.recallsayfa> == 2)
button 20 16 5603 5607 1 0 31
endif
dtext 105 14 0c1 Recall Menu [<dsrc.ctag0.sayfa>]
dtext 17 35 1135 Git
dtext 43 35 1135 Gate
dtext 79 35 1135 Kayıtlı Yer
dtext 222 35 1135 Ekle/Değiştir
local.y 58
args=<def.sayfa<dsrc.ctag0.sayfa>>
for <dargv[0]> <dargv[1]>
dtext 80 <dlocal.y> 1153 <qval (<src.tag0.recallp<dlocal._for>>) ? <src.tag.recallname<dlocal._for>>:Boş>
button 20 <eval <local.y>+4> 2103 2104 1 0 <eval <local._for>>
button 50 <eval <local.y>+4> 2103 2104 1 0 <eval <local._for>+50>
button 280 <eval <local.y>+4> 2103 2104 1 0 <eval <local._for>+100>
gumppictiled 10 <eval <local.y>+20> 290 2 2604
checkertrans 10 <eval <local.y>+20> 290 2
local.y +=23
endfor
gumppictiled 39 38 2 247 2604
checkertrans 39 38 2 247
gumppictiled 71 38 2 247 2604
checkertrans 71 38 2 247
if (<dsrc.tag0.recallsayfa> < 3)
button 265 295 4005 4006 1 0 33
dtext 198 295 1153 Sayfa Ekle
endif
dtext 20 295 1125 Hafıza: <dsrc.tag0.recallsayfa>/3


[dialog d_recall button]
on=0
src.dialogclose d_recall_ekle

on=1 30
if (<src.action>==skill_magery)
	src.sysh_trk Büyü yaparken kullanamazsınız.
elif <src.flags>&statf_dead
	src.sysh_trk Ölüyken kullanamazsınız.
elif <src.flags>&statf_freeze
	src.sysh_trk Şu anki durumunuzda kullanamazsınız.
elif <src.isevent.e_jailm>
	src.sysh_trk Jail cezanız bitmedi bu yüzden recall sistemini kullanamazsınız.
elif (<src.region.flags>®ion_flag_safe|region_flag_ship)
  	src.sysh_trk Bu bölgede recall sistemini kullanamazsınız.
else
src.spell_say Kal Ort Por
src.sd 3,0
serv.newitem i_runebookdelay,1,<src>,1
new.more1=1
new.more2=3
new.morep=<src.tag.recallp<dargn>>
src.equip <new>
src.dialogclose d_recall_ekle
endif

on=50 80
if (<src.action>==skill_magery)
	src.sysh_trk Büyü yaparken kullanamazsınız.
elif <src.flags>&statf_dead
	src.sysh_trk Ölüyken kullanamazsınız.
elif <src.flags>&statf_freeze
	src.sysh_trk Şu anki durumunuzda kullanamazsınız.
elif <src.isevent.e_jailm>
	src.sysh_trk Jail cezanız bitmedi bu yüzden recall sistemini kullanamazsınız.
elif (<src.region.flags>®ion_flag_safe|region_flag_ship)
  	src.sysh_trk Bu bölgede recall sistemini kullanamazsınız.
else
argn -= 50
src.spell_say Vas Rel Por
src.sd 3,0
serv.newitem i_runebookdelay,1,<src>,1
new.more1=2
new.more2=6
new.morep=<src.tag.recallp<dargn>>
src.equip <new>
src.dialogclose d_recall_ekle
endif

on=31
src.dd <eval <src.ctag0.sayfa>-1>
src.dialogclose d_recall_ekle

on=32
src.dd <eval <src.ctag0.sayfa>+1>
src.dialogclose d_recall_ekle

on=33
if (<dsrc.tag0.recallsayfa> > 2)
src.sysh_trk Daha fazla sayfa ekleyemezsiniz.
return 1
endif
if (<gold> < <qval (<dsrc.tag0.recallsayfa> < 2) ? 200000:300000>)
src.sysh_trk <qval (<dsrc.tag0.recallsayfa> < 2) ? 200000:300000> tecrübe puanınız bulunmamaktadır.
return 1
endif 
if (<dsrc.tag0.recallsayfa> < 2)
src.tag0.recallsayfa 2
src.sys_trk Başarıyla 2. sayfayı açtınız.
else
src.tag0.recallsayfa 3
src.sys_trk Başarıyla 3. sayfayı açtınız.
endif
src.dialogclose d_recall_ekle

on=100 130
argn -= 100
src.ctag0.recall <dargn>
src.dialogclose d_recall
src.dd <src.ctag0.sayfa>
src.dialog d_recall_ekle

[function rtemiz]
for 1 30
src.tag.recallp<dlocal._for>
src.tag.recallname<dlocal._for
endfor
src.sys_trk temizz


[dialog d_recall_ekle]
5,0
PAGE 0
makebg 5,365,300,38
resizepic 12 373 3000 235 22
dtextentry 15 375 200 18 045 1 <serv.map(<dp.x>,<dp.y>).region.name>
button 258 373 4005 4006 1 0 1

[dialog d_recall_ekle button]

on=1
if (<isempty <argtxt[1]>>)
src.sysh_trk Bildiri bölümünü boş bırakamazsınız.
elif (<src.action>==skill_magery)
	src.sysh_trk Büyü yaparken kullanamazsınız.
elif <src.flags>&statf_dead
	src.sysh_trk Ölüyken kullanamazsınız.
elif <src.flags>&statf_freeze
	src.sysh_trk Şu anki durumunuzda kullanamazsınız.
elif <src.isevent.e_jailm>
	src.sysh_trk Jail cezanız bitmedi bu yüzden recall sistemini kullanamazsınız.
elif (<src.region.flags>®ion_flag_safe|region_flag_ship)
  	src.sysh_trk Bu bölgede recall sistemini kullanamazsınız.
else
src.tag.recallp<dsrc.ctag0.recall> <src.p>
src.tag.recallname<dsrc.ctag0.recall> <argtxt[1]>
src.sys_trk <src.tag.recallname<dsrc.ctag0.recall>> başarıyla hafızanıza alınmıştır.
src.dd <src.ctag0.sayfa>
endif


// slothere

[itemdef i_runebookdelay]
id=i_handr_1
type=t_eq_script
name=runebook delay
weight=0
value=0

on=@create
color=040
attr=attr_invis|attr_newbie|attr_decay

on=@equip
topobj.events +e_runebook
timer=1

on=@unequip
topobj.events -e_runebook

on=@timer
if <topobj>
	if <more2>
		if <more1>==2
			if <more2>==5
				serv.newitem i_moongate_blue_fx
				new.name=summoning gate
				new.p=<morep>
				new.morez=1
				new.color=0845
				new.attr=012
				new.timer=5
				new.sfx 526
			endif
		endif
		more2 --
	else
		if <more1>==1
			topobj.go <morep>
		elif <more1>==2
			serv.newitem i_rune_gate
			new.p=<morep>
			new.morep=<topobj.p>
			new.timer=30
			new.sfx 535
			local.gateuid=<new>
			serv.newitem i_rune_gate
			new.p=<topobj.p>
			new.morep=<morep>
			new.timer=30
			new.sfx 535
			new.link=<local.gateuid>
		endif
		remove
	endif
endif
timer=1
return 1

[events e_runebook]
on=@gethit
sound 92
f_fizzle
findid(i_runebookdelay).remove

on=@logout
src.f_fizzle
src.findid(i_runebookdelay).remove

on=@hit
sound 92
f_fizzle
findid(i_runebookdelay).remove

on=@skillstart
sound 92
f_fizzle
findid(i_runebookdelay).remove

on=@death
findid(i_runebookdelay).remove

on=@spellcast
sound 92
f_fizzle
findid(i_runebookdelay).remove

[itemdef i_rune_gate]
id=i_moongate_blue
type=t_moongate
name=rune gate

on=@create
color=0845
attr=attr_static|attr_decay

on=@dclick
if <src.distance <uid>> > 3
	src.sysh_trk Yeterince yakın değilsiniz.
elif !<src.canseelos <uid>>
	src.sysh_trk Gate'e ulaşamıyorsunuz.
else
	sdialog d_rune_gate
endif
return 1

on=@step
if <src.distance <uid>> > 3
	src.sysh_trk Yeterince yakın değilsiniz.
elif !<src.canseelos <uid>>
	src.sysh_trk Gate'e ulaşamıyorsunuz.
else
	sdialog d_rune_gate
endif
return 1

on=@click
message @1153 [<serv.map(<morep>,0).region.name>]
message @0c1 Recall Gate
return 1

on=@timer
sfx 528
remove
return 1

[dialog d_rune_gate]
0,0
nomove
makebg 150,150,235,115
dtext 180 165 040 <serv.map(<morep>,0).region.name> (<morep>)
dtext 205 190 1153 Gitmek ister misiniz?
button 185 222 4005 4007 1 0 1
dtext 220 222 1152 Evet
button 280 222 4005 4007 1 0 2
dtext 315 222 1152 Hayır

[dialog d_rune_gate button]
on=1
if !<uid>
	src.sysh_trk Gate kapanmış.
elif <src.distance <uid>> > 3
	src.sysh_trk Yeterince yakın değilsiniz.
elif !<src.canseelos <uid>>
	src.sysh_trk Gate'e ulaşamıyorsunuz.
else
	src.dialogclose d_rune_gate
	src.go <morep>
endif

[function makebg]
resizepic <argv[0]> <argv[1]> 2620 <argv[2]> <argv[3]>
checkertrans <eval <argv[0]>+5> <eval <argv[1]>+5> <eval <argv[2]>-10> <eval <argv[3]>-10>

[eof]

Gate ve teleport için gerekli olan delay ve gate itemleri daha önce Slothere tarafından yazılmış olan runebook scriptinden kullandım.

Runebook olayı herkesin elde edebileceği basit işlevsiz (önemsiz) bir sistem haline dönmüştü.Ben açıkçası daha kullanışlı daha zor bir hale getirilerek daha önemli bir hale geleceğini düşündüğüm için bu scripti yazdım.Kullanan çıkar mı bilmiyorum ama script şuan benim gözümde pek değerli olmadığı için paylaşma ihtiyaçı hissetim.Herkes kendi yazmış gibi kullanabilir.

kullanımı: dd 1 komutu ile ilk sayfaya ulaşabilirsiniz.

Eline sağlık kardeşim.

Üye Ol veya Giriş Yap

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