Devam eden page sistemi sorunları üzerine, güncellenmiş, hataları giderilmiş ve sizlerin kullanmış olduğu page sistemine uyarlanmış bir kod bütünür.

.add i_page_stone ekleyin ve 2 defa tıklayarak aktif hale getirin.

Özellikleri
Pg g //page atana gider
Pg s //page atanı çeker
Pg o //page atılan yere gider
Pg d //page i siler
Pg q //page i yerine koyar (xxx bu page ile ilgileniyor denilen şey)
Pg m //page e mesaj atar
Pg w //tüm pageleri siler

Sistem tek dialog üzerine yazılmıştır. Page sayısına göre dialog boyut alır ve her sayfada 5 er page gösterilir. Sizlerdeki mevcut page sistemine nazaran, 5 ten sonraki page lerde yine aynı dialog ta gösterilmektedir ve sorunsuz çalışmaktadır. Page sınırlaması yoktur. Page dialogunda player a page atmayı süresiz yasaklama gibi özellik eklenmiştir. Normal page atma süresi 10 dk dır.

Sunucuda page stone silindiğinde herhangi bir yere kod yazmanız gerekmeketedir. Yenisi çıkartıp çift tıklayarak aktif edebilirsiniz.
Player tarafından page gönderme dialogunu sdialog d_page_sender olarak açabilirsiniz.

Hatırlatma: Kod lar for döngüsünden yararlanılarak yazılmıştır. Açıklayıcıdır. Mevcut page sisteminiz 1700+ satırken bu sistem 350+ satırdan ibarettir.

İyi Çalışmalar



[dialog d_page_sender]
0,600
page 0
resizepic 10 7 5120 780 110
resizepic 15 12 3000 770 100
resizepic 35 50 3000 730 25
dhtmlgump 35 25 920 20 0 0 yeni page
dhtmlgump 70 85 100 20 0 0 gonder
button 50 85 01519 0151a 1 0 1
dtextentry 40 55 700 80 0 2 

[dialog d_page_sender text]

[dialog d_page_sender button]
ONbutton=0
src.sysmessage Previous targeting cancelled.

ONbutton=1
if (<src.isevent.e_page_ignore>)
	src.sysmessage @55 Page atmaniz yasaklanmistir
elseif (<src.findid.i_jailcik>) || (<flags>&statf_stone)
	src.sysmessage @55 Suan page atamazsiniz
elseif (<src.findid.i_page_yasak>)
	src.sysmessage @55 Page atabilmek icin <eval <src.findid.i_page_yasak.timer> / 60> dakika beklemelisiniz.
else
	pg_send <ARGTXT[2]>
	src.newitem i_page_yasak
	src.act.equip
endif

[itemdef i_page_stone]
Name page stone
Id i_basket_square
Type t_container
Weight 2000
Tdata2 03f

On=@Dclick
var.page_stone <uid>

On=@Create
attr attr_move_never
dispid i_grave_stone

On=@Click
Message a <name> [<rescount>]
return 1

[itemdef i_page]
Name Page
Id i_deed
Type t_script

On=@Create
Attr attr_invis|attr_move_never

[function pg]
if (<uid.<var.page_stone>.rescount> > 0)
	if !(<uid.<src.tag0.page_look>.topobj> = <uid.<var.page_stone>.uid>)
		src.tag.page_select 0
		if (<uid.<var.page_stone>.rescount> > 0) && (<uid.<var.page_stone>.rescount> < 5)
			src.try uid.<var.page_stone>.more1 <eval ((<uid.<var.page_stone>.rescount> * 70) +70)>
		elseif (<uid.<var.page_stone>.rescount> > 4)
			src.try uid.<var.page_stone>.more1 420
		endif
		if (strmatch('<args>','w')) || (strmatch('<args>','wipe'))
			src.try uid.<var.page_stone>.empty
			src.sysmessage @55 Tum pageler silindi
		else
			try uid.<var.page_stone>.sdialog d_page_finder
		endif
	else
		if (strmatch('<args>','g')) || (strmatch('<args>','go'))
			src.go <uid.<src.tag.page_look>.link.p>
		elseif (strmatch('<args>','s')) || (strmatch('<args>','summon'))
			src.try uid.<src.tag.page_look>.link.go <src.p>
		elseif (strmatch('<args>','m')) || (strmatch('<args>','msg')) || (strmatch('<args>','message'))
			src.sdialog d_page_messager
		elseif (strmatch('<args>','o')) || (strmatch('<args>','ori')) || (strmatch('<args>','origin'))
			src.go <uid.<src.tag.page_look>.morep>
		elseif (strmatch('<args>','d')) || (strmatch('<args>','del')) || (strmatch('<args>','delete'))
			src.try uid.<src.tag.page_look>.remove
		elseif (strmatch('<args>','q')) || (strmatch('<args>','que')) || (strmatch('<args>','queue'))
			src.try uid.<src.tag.page_look>.more2 00
			src.tag.page_look
		else
			src.sysmessageua 048,0,0,trk Aktif Page [.pg (g - s - d - o - m - q)]
			src.sysmessageua 048,0,0,trk [<uid.<src.tag.page_look>.link.account>] <uid.<src.tag.page_look>.link.name>: <uid.<src.tag.page_look>.tag.message>
		endif
	endif
else
	src.sysmessage @55 Page bulunamadi.
endif


[function pg_send]
if !(strmatch('<args>',''))
		if (<uid.<src.tag0.page>.topobj> = <uid.<var.page_stone>.uid>)
			src.sysmessage @55 Mesajiniz guncellendi.
			serv.allclients page_info Page Guncelleme <account> - [<name>]: <args>
			src.try uid.<src.tag0.page>.tag.message = <args>
		else
			src.newitem i_page	
			src.tag.page <new.uid>
			src.new.tag.message <args>
			src.new.morep <src.p>
			src.new.link <src.uid>
			src.new.cont <var.page_stone>
			serv.allclients page_info Yeni Page [<account>,<name>]: <args>
			src.sysmessage @55 Mesajiniz gonderildi. <eval <uid.<var.page_stone>.rescount>>. siradasiniz.
		endif
else
	src.sysmessage @55 Bos mesaj gonderemezsiniz.
endif

[dialog d_page_finder]
0,250
page 0
resizepic 0 0 5120 400 <eval <uid.<var.page_stone>.more1> +25>
resizepic 5 5 3000 390 <eval <uid.<var.page_stone>.more1> +15>
button 20 <eval <uid.<var.page_stone>.more1> -15> 4030 4031 1 0 1 // mesaj
button 60 <eval <uid.<var.page_stone>.more1> -15> 4006 4007 1 0 2 // git
button 100 <eval <uid.<var.page_stone>.more1> -15> 4015 4016 1 0 3 // getir
button 140 <eval <uid.<var.page_stone>.more1> -15> 4021 4022 1 0 4 // origin
button 180 <eval <uid.<var.page_stone>.more1> -15> 4018 4019 1 0 5 // sil
if (<src.account.plevel> > 5)    
button 300 <eval <uid.<var.page_stone>.more1> -15> 4003 4004 1 0 6 // yasak
button 340 <eval <uid.<var.page_stone>.more1> -15> 4027 4028 1 0 7 // temizle
endif

dhtmlgump 130 10 200 20 0 0 Page Sistemi (<eval <rescount>> page)
if (<eval <rescount> -5> > <src.tag.page_select>)
button 340 15 4006 4007 1 0 8 // next
endif
if (<src.tag.page_select> > 4)
button 40 15 4015 4016 1 0 9 // last
endif

local.pos= 70
local.number= <eval <src.tag.page_select> +1>
for 1 5
	if (<findcont.<eval ((<src.tag.page_select> + <local._for>) -1)>>)
		radio 20 <eval <local.pos> -10> 01519 0151a 0 <local._for>
		dhtmlgump 20 <eval <local.pos> -30> 50 20 0 0 <eval <local.number>>
		dhtmlgump 40 <eval <local.pos> -10> 340 60 0 0 <findcont.<eval ((<src.tag.page_select> + <local._for>) -1)>.tag.message>
		dhtmlgump 40 <eval <local.pos> -30> 400 20 0 0 - Gonderen: <findcont.<eval ((<src.tag.page_select> + <local._for>) -1)>.link.name> - <findcont.<eval ((<src.tag.page_select> + <local._for>) -1)>.link.uid>
		local.pos +=70
		local.number +=1
	endif
	src.tag.page_find<eval <local._for>> <findcont.<eval ((<local._for> -1) + <src.tag.page_select>)>.uid>
endfor


[dialog d_page_finder button]
on=1
for 1 5
	if (<argchk[<eval <local._for>>]>)
		if !(<uid.<src.tag.page_find<eval <local._for>>>.link.region>) || (<uid.<src.tag.page_find<eval <local._for>>>.link.findtype.t_eq_client_linger>)
			src.sysmessage @55 <uid.<src.tag.page_find<eval <local._for>>>.link.name> su an offline
		else
			src.tag.page_look <src.tag.page_find<eval <local._for>>>
			src.tag.page_looker <uid.<src.tag.page_find<eval <local._for>>>.more2>
			if (<uid.<src.tag.page_find<eval <local._for>>>.more2>)
				src.sysmessage @55 Bu page ile <uid.<src.tag.page_looker>.name> ilgileniyor.
				src.tag.page_look
				src.tag.page_looker
				src.pg
			else
				src.sdialog d_page_messager
				try uid.<src.tag.page_find<eval <local._for>>>.more2 <src.uid>
			endif
		endif
	endif
endfor

on=2
for 1 5
	if (<argchk[<eval <local._for>>]>)
		if !(<uid.<src.tag.page_find<eval <local._for>>>.link.region>) || (<uid.<src.tag.page_find<eval <local._for>>>.link.findtype.t_eq_client_linger>)
			src.sysmessage @55 <uid.<src.tag.page_find<eval <local._for>>>.link.name> su an offline
		else
			src.tag.page_look <src.tag.page_find<eval <local._for>>>
			src.tag.page_looker <uid.<src.tag.page_find<eval <local._for>>>.more2>
			if (<uid.<src.tag.page_find<eval <local._for>>>.more2>)
				src.sysmessage @55 Bu page ile <uid.<src.tag.page_looker>.name> ilgileniyor.
				src.tag.page_look
				src.tag.page_looker
				src.pg
			else
				src.go <uid.<src.tag.page_find<eval <local._for>>>.link.p>
				try uid.<src.tag.page_find<eval <local._for>>>.more2 <src.uid>
			endif
		endif
	endif
endfor

on=3
for 1 5
	if (<argchk[<eval <local._for>>]>)
		if !(<uid.<src.tag.page_find<eval <local._for>>>.link.region>) || (<uid.<src.tag.page_find<eval <local._for>>>.link.findtype.t_eq_client_linger>)
			src.sysmessage @55 <uid.<src.tag.page_find<eval <local._for>>>.link.name> su an offline
		else
			src.tag.page_look <src.tag.page_find<eval <local._for>>>
			src.tag.page_looker <uid.<src.tag.page_find<eval <local._for>>>.more2>
			if (<uid.<src.tag.page_find<eval <local._for>>>.more2>)
				src.sysmessage @55 Bu page ile <uid.<src.tag.page_looker>.name> ilgileniyor.
				src.tag.page_look
				src.tag.page_looker
				src.pg
			else
				try uid.<src.tag.page_find<eval <local._for>>>.link.go <src.p>
				try uid.<src.tag.page_find<eval <local._for>>>.more2 <src.uid>
			endif
		endif
	endif
endfor

on=4
for 1 5
	if (<argchk[<eval <local._for>>]>)
		src.tag.page_look <src.tag.page_find<eval <local._for>>>
		src.tag.page_looker <uid.<src.tag.page_find<eval <local._for>>>.more2>
		if (<uid.<src.tag.page_find<eval <local._for>>>.more2>)
			src.sysmessage @55 Bu page ile <uid.<src.tag.page_looker>.name> ilgileniyor.
			src.tag.page_look
			src.tag.page_looker
			src.pg
		else
			src.go <uid.<src.tag.page_find<eval <local._for>>>.morep>
			try uid.<src.tag.page_find<eval <local._for>>>.more2 <src.uid>
		endif
	endif
endfor

on=5
for 1 5
	if (<argchk[<eval <local._for>>]>)
		src.tag.page_looker <uid.<src.tag.page_find<eval <local._for>>>.more2>
		if (<uid.<src.tag.page_find<eval <local._for>>>.more2>)
			src.sysmessage @55 Bu page ile <uid.<src.tag.page_looker>.name> ilgileniyor.
			src.tag.page_look
			src.tag.page_looker
			src.pg
		else
			src.try uid.<src.tag.page_find<eval <local._for>>>.remove
		endif
	endif
endfor

on=6
for 1 5
	if (<argchk[<eval <local._for>>]>)
		try uid.<src.tag.page_find<eval <local._for>>>.link.events +e_page_ignore
		src.try uid.<src.tag.page_find<eval <local._for>>>.remove
	endif
endfor

on=7
src.try uid.<var.page_stone>.empty

on=8
src.tag.page_select += 5
try uid.<var.page_stone>.sdialog d_page_finder

on=9
src.tag.page_select -= 5
try uid.<var.page_stone>.sdialog d_page_finder

[dialog d_page_messager]
0,250

page 0
resizepic 0 0 5120 370 300
resizepic 5 5 3000 360 290

dhtmlgump 25 20 300 20 0 0 <uid.<src.tag.page_look>.link.account> - <uid.<src.tag.page_look>.link.name>
dhtmlgump 25 40 330 60 0 0 <uid.<src.tag.page_look>.tag.message>
dhtmlgump 25 100 330 20 0 0 Gonderilecek mesaj:

resizepic 14 125 3000 345 160
dtextentry 23 130 330 35 1152 1 
dtextentry 23 150 330 35 1152 2 
dtextentry 23 170 330 35 1152 3 
dtextentry 23 190 330 35 1152 4 
dtextentry 23 210 330 35 1152 5 
dtextentry 23 230 330 35 1152 6 

button 280 255 4015 4016 1 0 0
button 320 255 4030 4031 1 0 1

[dialog d_page_messager button]
On=0
pg q
pg

On=1
if !(<uid.<src.tag.page_look>.link.region>) || (<uid.<src.tag.page_look>.link.findtype.t_eq_client_linger>)
	src.sysmessage @55 <uid.<src.tag.page_look>.link.name> su an offline
	pg q
	pg
else
	src.newitem i_page_owner
	src.new.tag.page <argtxt[1]> <argtxt[2]> <argtxt[3]> <argtxt[4]> <argtxt[5]> <argtxt[6]>
	src.new.cont <uid.<src.tag.page_look>.link.uid>
	pg d
endif

[itemdef i_page_owner]
defname=i_page_owner
id=i_memory
name=page owner

on=@unequip
try src.dialog d_page_message_user
return 1

[dialog d_page_message_user]
0,0
nomove
noclose

page 1
button 15 15 30 30 0 2 1

page 2
resizepic 50 50 5120 330 200
resizepic 55 55 3000 320 190
button 350 65 3 4 1 0 0

dhtmlgump 65 60 250 20 0 0 <serv.name> Staff'tan Mesaj Var

resizepic 60 100 3000 310 130
dhtmlgump 65 120 310 100 0 0 <src.findid.i_page_owner.tag.page>

[dialog d_page_message_user text]

[events e_page_ignore]

[function page_info]
if (<account.plevel> > 1)
	sysmessageua 048,0,0,trk <args>
endif

[itemdef i_page_yasak]
defname i_page_yasak
id i_memory
type t_eq_Script

on=@create
timer 60*10

on=@timer
cont.sysmessage @55 Page yasaginiz kalkmistir.
remove
return 1

[EOF]


Bu konu Mac-Fusion tarafından düzenlendi(2008-07-02 13:13, 15 yıl önce)
Eline Sağlık Devamını Dileriz.
Teşekkür Ederim, eğer kısır döngüden kurtulabilseydim, 150 satırda bitecekti.

Böylece page sorunu ortadan kalkar diye umuyorum.
Cok guzel olmuş ama Bunu ekleyince Help menusunden page atmıyo? yani page gondermiyo herhalde help te mi sorun ?
bu dialogtan yollatcaksin d_page_sender
Iyi Tamam Buda oldu Fakat diyelim bir player page attı. Ondan sonra bende yazdım .pg yanına gidicem gidemiyorum cunku button yok 2 tane page var. hangisini secicem yani secicek secenek yok ki gidelim adamın yanına? Yani Yanına git diye bi button var ama bir pageye tıklayıpda ondan sonra yanına gitmeye basmamız lasım ama page secemiyoruz.
Her page in sol tarafında (+ -) şekilde buton yer alıyor. Ordan ilgileneceğiniz page i seçerek, alttaki butonları kullanıyorsunuz.
Hayır gelen pagelerin yanında +- işareti çıkmıyor :(
emeğine sağlık bu yönde çalışmaya girenleri görmüştüm ama finali sen yaptım sanırım
Eline sağlık..
Buton için +- olanlar hangi satırda?

Bu konu ornitorenk tarafından düzenlendi(2008-07-07 21:30, 15 yıl önce)

Üye Ol veya Giriş Yap

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