Master
59.2997
Sistem Tanımı ve Kullanımı;
Page sistemi SQL üzerinden işler. Kullanmak oldukça basittir. Oyun içerisinde yetkili bir hesap ile "pagetablekur" komutunu kullanmanız yeterli.

Bildiri gönderimi:
Yardım menüsü veya dilediğiniz bir yere "sendpage" fonksiyonunu eklemeniz yeterlidir. Ayrıca bildiri yaparken düşük, orta ve kritik olarak üç önem derecesinden birisinde gönderebilirsiniz. Şu an tekrar bildiri atmak istediğinizde önceden iletmiş olduğunuz bir bildiri mevcut diye bir mesajla karşılaşabilirsiniz. Eğer o şekilde değil de tekrar gönderdiğinde güncellemesini istiyorsanız ilgili kısmı,

for 0 <db.row.numrows>
	if strmatch('<db.row.<dlocal._for>.uid>','<src.uid>')
		db.execute "update page set gonderilen = '<addslashes <argtxt[0]>>' where uid = '<src.uid>'"
		sysmessage @,,1 Mesajiniz guncellendi.
		return 1
	endif
endfor
ile değiştirmeniz yeterlidir.



Bildiri Kontrol Paneli:
Yetkililerin kullanabileceği bu panele "pg" komutu ile ulaşabilirsiniz. Panel tamamen dinamiktir, istediğiniz önem derecesinde, tarih veya isimde bildirileri sıralayabilirsiniz. Sonsuz sayfa vb eklentiler de mevcut.



Bildiri Kontrolü:
Panelden işlem yapmak istediğiniz bildiriyi seçmek için sol kısımda bildiriye ait olan button'a tıklamanız yeterlidir. Karşınıza gelicek pencere üzerinden kişiyi yanınıza çağırabilir, yanına gidebilir, mesaj gönderebilir veya hapis cezası verebilirsiniz. Ancak şu an sistemde aktif bir hapis sistemi bulunmuyor. Kendi hapis sisteminize göre entegre edebilirsiniz. Eğer seçtiğiniz bildiri ile başka bir yetkili kişi ilgileniyor ise tüm buttonlar de-aktif hale gelir. Sadece ilgilenen kişi kullanabilir.




Mesaj Gönderimi:
Eğer oyuncuya cevabınızı mesaj olarak göndermek istiyorsanız "mesaj gönder" buttonuna basmanız yeterlidir. Eğer mesaj gönderdiğiniz kişi online ise o anda, değil ise online olduğu anda mesaj kişiye ulaşıcaktır.




Script;
[comment SQLPage]
yazan: Slothere
mail: [email protected]
tarih: 16.11.2008
version: +056b

[defname page]
pn Kritik, Orta, Dusuk
pg Tarih, Isim, Hepsi
plvl Player, Counselor, Seer, Gamemaster, Developer, Admin, Owner

[function pagetablekur]
db.connect
if (<db.connected>)
	db.execute "create table page(uid text, isim text, tarih text, gonderilen text, seviye text, ilgilenen text)"
	sysmessage @,,1 page table'i kuruldu.
else
	sysmessage @,,1 sql hatasi ayarlari kontrol edin..
return 1
endif
db.close

[events e_page_send]
on=@Login
dialog d_page_reply
events -e_page_send

[FUNCTION f_array]
local.temp = <argv[<eval <argv> - 1>]> -1
return <argv[<dlocal.temp>]>

[FUNCTION f_array_lenght]
return <dargv>

[function alphablack]
gumppictiled <argv[0]> <argv[1]> 2624 <argv[2]> <argv[3]>
checkertrans <argv[0]> <argv[1]> <argv[2]> <argv[3]>

[plevel 1]
sendpage

[function sendpage]
sdialog d_send_page

[function f_color]
if strmatch('Kritik', '<args>')
	return 025
endif
if strmatch('Orta', '<args>')
	return 035
endif
if strmatch('Dusuk', '<args>')
	return 040
endif

[dialog d_send_page]
0,0

resizepic 50 50 5054 400 250
alphablack 60 60 380 230
resizepic 90 110 3000 320 80
gumppic 70 180 05C
gumppic 395 180 05E
for 1 12
gumppic <eval (<dlocal._for>*19)+70> 75 05D
gumppic <eval (<dlocal._for>*16)+90> 180 05D
endif
dtextentrylimited 125 115 250 80 450 0 <var.empty> 165
dorigin 0 225
for s 1 3
radio *91 +0 210 211 0 <dlocal.s>
dtext +23 +0 2006 <f_array <def.pn>,<dlocal.s>>
endfor
button 350 225 04b9 04ba 1 0 1
dtext 370 225 2006 Gönder

[dialog d_send_page button]
on=1
if (strlen(<argtxt[0]>) < 3) || (strlen(<argtxt[0]>) > 165) || (strmatch('<argtxt[0]>',' '))
	sysmessage @,,1 Gondericeginiz ileti en az 3, en fazla 165 karakterden olusmalidir.
	sdialog d_send_page
return 1
endif
if (<argchk[1]> == 0) && (<argchk[2]> == 0) && (<argchk[3]> == 0)
	sysmessage @,,1 Gondericeginiz iletinin önemini belirten dereceyi secmelisiniz.
	sdialog d_send_page
return 1
endif
if (<argchk[1]> == 1)
	local.durum = Kritik
elif (<argchk[2]> == 1)
	local.durum = Orta
else
	local.durum = Dusuk
endif
db.connect
db.query "select * from page"
for 0 <db.row.numrows>
	if strmatch('<db.row.<dlocal._for>.uid>','<src.uid>')
		sysmessage @,,1 Onceden iletmis oldugunuz bir bildiriniz mevcut.
		return 1
	endif
endfor
if <db.connected>
	db.execute "insert into page values('<addslashes <src.uid>>', '<addslashes <src.name>>', '<addslashes <serv.rtime>>', '<addslashes <argtxt[0]>>', '<addslashes <local.durum>>', ' ')"
	db.query "select * from page"
	sysmessage @,,1 Iletiniz degerlendirmeye alindi. <eval <db.row.numrows>>. siradasiniz
else
	sysmessage @,,1 Bir hata olustu..
endif
db.close

[function pg]
if <isgm>
ctag.limit = 0
ctag.siralama = tarih 
ctag.seviye =
sdialog d_view_page
return 1
endif

[dialog d_view_page]
0,0

db.connect
db.query "select * from page <ctag.seviye> order by <ctag0.siralama> limit <dctag0.limit>, 4"
while <db.row.<dlocal._while>.uid>
	local.height +=100
endwhile
resizepic 50 50 5054 300 <eval <dlocal.height> +80>
alphablack 60 60 280 <eval <dlocal.height> +60>
resizepic 50 <eval <dlocal.height> + 130> 5054 300 90
alphablack 60 <eval <dlocal.height> +140> 280 70
dorigin -20 <eval <dlocal.height> + 140>
for s 1 3
	button *95 +5 04b9 04ba 1 0 <eval <dlocal.s> + 10000>
	button *0 +30 04b9 04ba 1 0 <eval <dlocal.s> +10500>
	dtext +16 +1 1153 <f_array <def.pn>,<dlocal.s>>
	dtext +17 +29 1153 <f_array <def.pg>, <dlocal.s>>
endfor
button -190 +55 04b9 04ba 1 0 99999
dtext -175 +52 1153 Tumunu Sil
	button 300 70 015e1 015e5 1 0 6001
	button 270 70 015e3 015e7 1 0 6002
dorigin 80 -5
if <db.connected>
while <db.row.<dlocal._while>.uid>
	button  +0 *100 4006 4007 1 0 <eval <ctag0.limit>+<dlocal._while>+1>
	dtext +35 *0 <f_color <db.row.<dlocal._while>.seviye>> <db.row.<dlocal._while>.isim> / <db.row.<dlocal._while>.tarih>
	dhtmlgump +0 +26 230 60 1 1 <db.row.<dlocal._while>.gonderilen>
endwhile
endif

[dialog d_view_page button]
on = 6001
ctag.limit = +=4
sdialog d_view_page
return 1

on = 6002
if <dctag.limit> > 0
	ctag.limit -=4
endif
sdialog d_view_page
return 1

on = 10001 10003
ctag.seviye = where seviye = '<f_array <def.pn>,<eval <dargn> -10000>>'
sdialog d_view_page
return 1

on = 10501 15004
if <eval <dargn> - 10500> == 3
	ctag.seviye = 
	sdialog d_view_page
	return 1
endif
ctag.siralama = <f_array <def.pg>,<eval <dargn> - 10500>>
sdialog d_view_page
return 1

on = 99999
db.connect
db.query "select * from page"
while <db.row.<dlocal._while>.uid>
if !strmatch('<db.row.<dlocal._while>.ilgilenen>',' ')
	sysmessage @,,1 Ilgilenilen iletiler mevcut..
	return 1
else
	db.execute "delete from page"
	sysmessage @,,1 Tum iletiler silindi.
	serv.log @<name>: tum iletiler silindi.
	return 1
endif
endwhile
sysmessage @,,1 Mevcut bildiri yok.
db.close

on = 1 9999
db.connect
db.query "select * from page"
sdialog d_view_page_detail,0,<db.row.<eval <argn> -1>.uid>
return 1

[dialog d_view_page_detail]
0,0

page 0
resizepic 50 50 5054 300 300
alphablack 60 60 280 280
db.connect
db.query "select * from page where uid = '<argv[0]>'"
dcroppedtext 80 80 224 20 1153 Gonderen: <db.row.0.isim>
dtext 80 100 1153 Tarih: <db.row.0.tarih>
dtext 80 120 1153 Seviye: <db.row.0.seviye>
dtext 80 140 1153 Durum: <db.row.0.durum>
dhtmlgump 80 160 230 80 1 1 <db.row.0.gonderilen>
for 1 5
if <dlocal._for> < 4
	button 80 <eval (<dlocal._for>*20)+240> <qval !strmatch('<db.row.0.ilgilenen>',' ') && !strmatch('<db.row.0.ilgilenen>','<src.uid>') ? 0FB1 0FB1 0 :4006 4007 1> 0 <dlocal._for>
else
	button 220 <eval (<dlocal._for>*20)+180> <qval !strmatch('<db.row.0.ilgilenen>',' ') && !strmatch('<db.row.0.ilgilenen>','<src.uid>') ? 0FB1 0FB1 0 :4006 4007 1> 0 <dlocal._for>
endif
endfor
dtext 115 260 1153 Getir
dtext 115 280 1153 Yanina Git
dtext 115 300 1153 Mesaj Gonder
dtext 255 260 1153 Hapse Gonder
dtext 255 280 1153 Sil
if !strmatch('<db.row.0.ilgilenen>',' ') && !strmatch('<db.row.0.ilgilenen>','<src.uid>')
	dhtmlgump 100 320 230 20 0 0 <def.bfont_white> Bu bildiri ile <uid.<db.row.0.ilgilenen>.name> ilgileniyor
endif

[dialog d_view_page_detail button]
on = 1 2
ref1 = <db.row.0.uid>
if !<ref1.isonline>
	sysmessage @,,1 <ref1.name> su anda oyunda degil.
	return 1
else
	<qval <dargn> == 2 ? go <ref1.p> : ref1.summonto>
	db.execute "update page set ilgilenen = '<src.uid>' where uid = '<db.row.0.uid>'"
endif

on = 3
ref1 = <db.row.0.uid>
ref1.sdialog d_page_send
return 1

on = 4
// jail

on = 5
db.execute "delete from page where uid = '<db.row.0.uid>'"
sysmessage @,,1 Bildiri silindi.
return 1

[dialog d_page_send]
0,0
nomove
ref1 = <db.row.0.uid>
db.query "select * from page where uid = '<db.row.0.uid>'"
page 0
resizepic 50 50 5054 420 320
alphablack 60 60 400 300
resizepic 80 220 3000 360 90
dtextentrylimited 90 230 330 70 1153 0 <var.blank> 240
dtext 80 70 1153 Gonderen: <ref1.name>
dtext 80 90 1153 Tarih: <db.row.0.tarih>
dtext 80 110 1153 Gelen Bildiri;
dtext 80 200 1153 Gonderilecek Cevap;
dhtmlgump 80 130 350 65 1 1 <db.row.0.gonderilen>
button 80 320 4006 4007 1 0 1
dtext 120 320 1153 Gonder

[dialog d_page_send button]
on = 1
ref1 = <db.row.0.uid>
if <ref1.isonline>
	tag.msg = <argtxt[0]>
	tag.sender = <f_array <def.plvl>, <src.daccount.plevel>> <src.name>
	tag.date = <serv.rtime>
	dialog d_page_reply
	src.sysmessage @,,1 Mesajiniz gonderildi.
	db.execute "delete from page where uid = '<db.row.0.uid>'"
else
	tag.msg = <argtxt[0]>
	tag.sender = <f_array <def.plvl>, <src.daccount.plevel>> <src.name>
	tag.date = <serv.rtime>
	events +e_page_send
	src.sysmessage @,,1 Mesajiniz gonderildi. Kisi oyuna girdigi zaman goruntulenecek.
	db.execute "delete from page where uid = '<db.row.0.uid>'"
endif

[dialog d_page_reply]
0,0

Page 1
resizepic 50 50 5054 100 100
alphablack 60 60 80 80
button 70 65 01581 01582 0 2 1
dtext 65 120 1153 Mesaj Var!

Page 2
resizepic 50 50 5054 350 200
alphablack 60 60 330 180
dtext 75 75 1153 Gonderen: <tag0.sender>
dtext 75 95 1153 Tarih: <tag0.date>
dhtmlgump 75 120 290 80 1 1 <tag0.msg>

[dialog d_page_reply button]
on = 0
tag.msg =
tag.sender =
tag.date =

[eof]

Alternatif olarak, https://phpfi.com/378698
Bana bişey demek düşmez :yes
Novice
-0.500001
Cok Sagol..
eline sağlık +rep :D
söylediğim gibi kritik orta düşük olayını oyuncular sadece kritiği işaretler gereksiz olmuş. Kim sorununa önce baklmasını istemez ki
mükemmel ötesi scp. helal olsun.

xantier cocuklar senın dedıgın islere kalkısıyor,cocuk musun bu sekılde dusunuyorsun?
@asdlolasd
sen orda yazanı anladınmıki
Yani yaptın yapacağını Slothere :yes Scripti yazan parmaklarına helal olsun :)
Xantier : söylediğim gibi kritik orta düşük olayını oyuncular sadece kritiği işaretler gereksiz olmuş. Kim sorununa önce baklmasını istemez ki

Öyle bi durum olursa hatalı pageden cezalandırlar olur biter ?
Vallahi süper olmuş ne diym =)
bycomrade : @asdlolasd
sen orda yazanı anladınmıki


sen lamer misin,yoksa cocuk mu?
neye muhalefet oldugunu soylesene (ezme)?
burda süper ve farklı bi scp. yazılmıs buna alkıs tutarak yazan arkadası tebrik ediyorum,Xantier denilen luzumsuz sahıs o işe yaramaz bu işe yaramaz demekten baska yaptıgı bırsey yok,ona yaptıgının ne oldugunu soyluyorum,sende gelmıs bana muhalefet oluyorsun,cins misin cinsini yazda bilelim her cinsle insan gibi konusamıyoruz,ona göre davranalım(cinsine gore).!
Bir kaç eleştiride bulunmak istiyorum kabul edersen ;

Birincisi : Tabloları kurarken hepsini text şeklinde kurmamalısın ne kadar bit kullanıcaksan ona göre değişken vermelisin
bkz : https://dev.mysql.com/doc/refman/5.0/en/data-types.html

İkincisi : Renklendirme işini daha mantıklı bi cozume bağlayabilridin , fonksyon uzun bir yöntem olmuş. direk veritabanına o şekilde kaydettirebilirdin. çözerkende bukadar sorgu yerine argv kullanarak çözebilridin..
örn : 50 kritik | argv0 = 50

Üçüncüsü : Page gönderme işlemini dialog altında değilde bir fonksyon şeklinde yapsaydın daha efektif kullanıma sahip olurdu.

Dördüncüsü : Her dialogda db baglantısı yaptırma , bunun yerine database aktifmi sorgusu yaptır..

Beşincisi : Artık dialoglarda html kullanmaya özen gösterebilirsin , daha efektif , daha yararlı , daha hoş bir çözüm

Geri kalan kısmı hoş ve yararlı , tabiki çoğu kişi hala mysql kullanımında bir çok eksik oldugunu söylesede ben hala bir sorunla karşılaşmadım.. Ellerine sağlık tekrar tebrikler..
aga sen yazsana dediklerinden onu kullanak ha
Pek bir sorun değilki bu sistemi yazmak sadece emek istiyor slothere arkadaşımızın yaptığı gibi , yoksa betikleme dili zaten basit.. Ayriyetten pek betiklerimin yayınlanmasını sevmiyorum.
asdlolasd :
bycomrade : @asdlolasd
sen orda yazanı anladınmıki


sen lamer misin,yoksa cocuk mu?
neye muhalefet oldugunu soylesene (ezme)?
burda süper ve farklı bi scp. yazılmıs buna alkıs tutarak yazan arkadası tebrik ediyorum,Xantier denilen luzumsuz sahıs o işe yaramaz bu işe yaramaz demekten baska yaptıgı bırsey yok,ona yaptıgının ne oldugunu soyluyorum,sende gelmıs bana muhalefet oluyorsun,cins misin cinsini yazda bilelim her cinsle insan gibi konusamıyoruz,ona göre davranalım(cinsine gore).!

Script işine geldi diye çekiyorsun bu yağları galiba ?

edit : scripte kötü dediğimi gördün mü ? butonlardan sözettim bu bi öneri , tüketici ne anlar...

Bu konu Xantier tarafından düzenlendi(2008-11-17 06:38, 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.