TGamesZeus 1
TGamesZeus
Best Studio 1
Best Studio
berkmenoo 1
berkmenoo
InfernoShade 1
InfernoShade
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Agora Metin2 1
Agora Metin2
Bvural41 1
Bvural41
onur akbaş 1
onur akbaş
IronTalonX 1
IronTalonX
D 1
delimuratt
berzahx 1
berzahx
Hikaye Ekle

Hem Öğrenelim hem paylaşalım (DEV KONU)

  • Konuyu başlatan Konuyu başlatan trspp
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 24
  • Görüntüleme Görüntüleme 2K
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

trspp

Level 8
TM Üye
Üye
Katılım
30 Kas 2009
Konular
223
Mesajlar
2,760
Reaksiyon Skoru
218
Altın Konu
0
TM Yaşı
16 Yıl 6 Ay 19 Gün
Başarım Puanı
148
MmoLira
-18
DevLira
0
Ticaret - 0%
0   0   0

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

Arkadaşlar sizlere bugünden sonra hem quest yazmayı öğreteceğim hemde yazdığımız questleri paylaşacağım
yarka kardeşimiz sabit konuda temel kavramları anlattı ilk defa quest işinde iseniz ilk olarak oraya bakın ve sonra buraya gelin burada temel dersler yok..
Yarka0000 Konusuna Git
burada anlatacağım her questi kendim yazacağım daha önce vardı diyen arkadaş olursa kanıt koysun..

İleri düzey kimseye muhtaç olmadan quest yazmak için mutlaka ilk olarak LUA dili öğrenin
LUA da şunları öğrenin çok faydası olacaktır:değişken,dizi,fonksiyon,if yapısı,switc,for,while

Ayrıca ben veri tabanlı questler yazdığım için konumu takip edenler boş zamanlarında SQL öğrensin
SQL de şunları öğrenin çok faydası olacak :SELECT,UPDATE,INSERT,DELETE

Ben her zaman veri tabanlı questler yazarım bu yüzden mysql_query fonksiyonlarınız serverinizde mutlaka çalışıyo olsun çalışmıyo ise tedavisi bu bölümde var.
Bu konuya giderek dosyaları seninki ile değiştir reboot at: CsFranNq Konusuna Git

Değiştirmeyenler için söylüyorum ben bu arkadaşın questlib dosyasını kullanmaktayım bu yüzden say_red, say_green gibi kodlar çalışmaya bilir bunları say olarak değiştirin

Quest:
Şikayet sistemi questi


Görsel:


Anlatım:
Şikayet sistemi zaten vardı dienler için veri tabanlı quest ben görmedim bendede vardı notice_all den başka bir numarası yoktu GM oyunda ise görüyo yoksa laf salatası :D ama olurda ben görmedi isem genede nasıl yapıldığını anlarsınız bunu seçtim çünkü ilk dersimiz için en uygunu bu ilerde daha derin yerlere gireceğiz
PHP:
---------BURASI ANLATIM BURAYI ALAMYIN YUKARDA LINK VERDIM-----------------
quest sikayet begin
state start begin
when 20018.chat."Sikayet Sistemi" begin
	local oyuncu = pc.get_name()	// oyuncunun ismini değişkene atadım
	say_title("Demek birini Şikayet edeceksin.")
	say("")
	say_red("Büyük küçük harfe dikkat edin")
	local kimietti = input()	//oyuncudan birinin ismini girmesini istedim
		local varmibak = mysql_query10("select * from player.player where name='"..kimietti.."'")		//veri tabanında böyle bir oyuncu varmı baktım
		if (table.getn(varmibak)==0) then	//var ise 1 yok ise 0 satır dönecektir 0 ise buraya gir dedim
		say_red("Malesef böyle bir youncu yok")
		return 
		else		//1 oyuncu var ise buraya gir dedim
		say("Güzel oyunda böyle bir oyuncu var")
		say("Demek Şikayet etmek istiyorsun")
		say("")
		say_red("Dikkat gereksiz kullanım cezalandırılır")
		say("Neden Şikayet ediyorsunuz..!")
		local neden = input()		//oyuncudan bir neden girmesini istedim
		say("Gerçekten"..kimietti.."'yi")
		say(""..neden.." sebebi ile")
		say("Sikayet etmek istiyor musunuz?")
		say("Gereksiz kullanım sonucu siz ban yersiniz")
		say_yellow("Gercekten sikayet edecekmisin?")
		local secim = select("Evet","Hayır")		//bu aşamada vaz gecmesi olasılıgını düşünerek secenek sundum
			if secim == 2  then		//hayır der ise questi kapattım
				return	//bitirdim
			else	//Evet der ise buraya girecek
---Buraya girmeden önce bir tablo oluşturun adını sikayet yapın 4 sutun olsun id(int),kim(vrc),kimi(vrc),neden(vrc) yapamayanlar yoruma yazsın
				local kaydet = mysql_query10("insert into player.sikayet(kim,kimi,neden) values ('"..oyuncu.."','"..kimietti.."','"..neden.."') ")
				//Aldıgım verileri güzelce veri tabanına kaydettım
				if(kaydet) then //bu aşamada eğer kayıt başarılı ise (true) değeri döner öyle ise buraya gir dedim
					say("Şikayetiniz alınmıştır")
				else
					say("Kayıt hatası veri tabanı yok veya kodlama hatası")	//kayit hatalı ise (false) değeri döner o zaman buraya gir dedim
				end
			end
		end
end
end
end

ilk olarak questimizin nerede çalışacağına karar veriyoruz ben 20018 kodlu npc yi seçtim o size kalmış..
Questi başlattıkdan sonra ilk olarak oyuncunun ismini oyuncu değişkenine atadım ( local oyuncu = pc.get_name() )
Bir kaç diyalogdan sonra ondan kimi şikayet edeceğini kutuya yazmasını istedim ( local kimietti = input() )
Büyük küçük harfe dikkat dedim aslında önemli değil Moses adlı oyuncuyu moses die yazsada bulur o

Oyuncunun yazdığı ismi veri tabanından player tablosuna bakarak böyle bir oyuncu varmı yokmu kontrol ettim
( local varmibak = mysql_query("select * from....") ) dieye devam eden blok
Sql de where komutu kullandım where koşul belirtme demekdir dedim ki (name='"..kimietti.."')
bunu anlamı player tablosunda name isminde bir sütün var orada oyuncuların isimleri yazar bende oyuncumuzun yazmış olduğu ismi oraya soktum varmı bak dedim

Altına ( if(table.getn(varmibak))==0 then ) dedim bunun anlamı şu eğer varmibak değişkenindeki satır sayısı
0 ise buraya gir yani oyuncu kutuya sallama bir isim girer ise SQL 0 değeri dönderir doğal olarak buraya girer
daha sonra else dedim yani 0 değilse sıfır hariç ne dönerse artık aklına gelen bütün rakamlar.
Normalde buda bir açık fakat oyunda isim tekil olduğu için yani 2 oyuncu aynı ismi taşıyamadığı için sonu var ise
hep 1 döner bu yüzden == 1 yazmaya gerek yok

Bir kaç diyalogdan sonrada oyuncuda bu aşamada kararından vaz geçmesi halinde bir seçim yapmasını istedim
( local secim = select("evet","hayır") )
Daha sonra ( if secim == 2 then ) dedim yani eğer hayırı secerse questi kapat dedim (return) sonlandırmak
else dedim 2 yi seçmesse geriye 1 kalır 1 de evet demek o zman veriyi tabloya kayıt etmeye getirdim

Veriyi kayıt etmeye geldi fakat ilk olarak bize bir tablo gerekli tabloyu player veri tabanına açalım (player.player değil player sadece) tablodaki sutunlar id,kim,kimi,neden olacak bilmeyenler yorum atsın yardımcı olurum

tobloyuda açtıkdan sonra:
Veriyi kayıt ettim( local kaydet =mysql_query10("inser into player.sikayet.......") ) diye
Hala işimiz bitmedi belki bir hata alırız veir kayıt edilmez bunu almamız için sorguladım
( if(kaydet) then ) bunun anlamı şu eğer kayıt başarılı ise true değeri gelir true de olumlu,1 doğru anlamına gelir
ozaman buraya girecektir
else kayit başarılı değilse hata raporu verdim

Evet arkadaşlar quest çalışmakta resmide yolladım zaten bir sorun sıkıntı durumunda yorum atın yeterli yardımcı olurum.
Ben elimden geldiği kadar hergün bir quest yazıp anlatımını yapacagım dileyen questi kullanır dileyen anlatımı dinler
özel quest yazdırmak isteyen öm atsın (ücretli büyük çaplı questler)
 
Demekki kimsenin ihtiyacı yok konu iptal
 
Arkadaşlar sizlere bugünden sonra hem quest yazmayı öğreteceğim hemde yazdığımız questleri paylaşacağım
yarka kardeşimiz sabit konuda temel kavramları anlattı ilk defa quest işinde iseniz ilk olarak oraya bakın ve sonra buraya gelin burada temel dersler yok..
Yarka0000 Konusuna Git
burada anlatacağım her questi kendim yazacağım daha önce vardı diyen arkadaş olursa kanıt koysun..

İleri düzey kimseye muhtaç olmadan quest yazmak için mutlaka ilk olarak LUA dili öğrenin
LUA da şunları öğrenin çok faydası olacaktır:değişken,dizi,fonksiyon,if yapısı,switc,for,while

Ayrıca ben veri tabanlı questler yazdığım için konumu takip edenler boş zamanlarında SQL öğrensin
SQL de şunları öğrenin çok faydası olacak :SELECT,UPDATE,INSERT,DELETE

Ben her zaman veri tabanlı questler yazarım bu yüzden mysql_query fonksiyonlarınız serverinizde mutlaka çalışıyo olsun çalışmıyo ise tedavisi bu bölümde var.
Bu konuya giderek dosyaları seninki ile değiştir reboot at: CsFranNq Konusuna Git

Değiştirmeyenler için söylüyorum ben bu arkadaşın questlib dosyasını kullanmaktayım bu yüzden say_red, say_green gibi kodlar çalışmaya bilir bunları say olarak değiştirin

Quest:
Şikayet sistemi questi


Görsel:


Anlatım:
Şikayet sistemi zaten vardı dienler için veri tabanlı quest ben görmedim bendede vardı notice_all den başka bir numarası yoktu GM oyunda ise görüyo yoksa laf salatası :D ama olurda ben görmedi isem genede nasıl yapıldığını anlarsınız bunu seçtim çünkü ilk dersimiz için en uygunu bu ilerde daha derin yerlere gireceğiz
PHP:
---------BURASI ANLATIM BURAYI ALAMYIN YUKARDA LINK VERDIM-----------------
quest sikayet begin
state start begin
when 20018.chat."Sikayet Sistemi" begin
	local oyuncu = pc.get_name()	// oyuncunun ismini değişkene atadım
	say_title("Demek birini Şikayet edeceksin.")
	say("")
	say_red("Büyük küçük harfe dikkat edin")
	local kimietti = input()	//oyuncudan birinin ismini girmesini istedim
		local varmibak = mysql_query10("select * from player.player where name='"..kimietti.."'")		//veri tabanında böyle bir oyuncu varmı baktım
		if (table.getn(varmibak)==0) then	//var ise 1 yok ise 0 satır dönecektir 0 ise buraya gir dedim
		say_red("Malesef böyle bir youncu yok")
		return 
		else		//1 oyuncu var ise buraya gir dedim
		say("Güzel oyunda böyle bir oyuncu var")
		say("Demek Şikayet etmek istiyorsun")
		say("")
		say_red("Dikkat gereksiz kullanım cezalandırılır")
		say("Neden Şikayet ediyorsunuz..!")
		local neden = input()		//oyuncudan bir neden girmesini istedim
		say("Gerçekten"..kimietti.."'yi")
		say(""..neden.." sebebi ile")
		say("Sikayet etmek istiyor musunuz?")
		say("Gereksiz kullanım sonucu siz ban yersiniz")
		say_yellow("Gercekten sikayet edecekmisin?")
		local secim = select("Evet","Hayır")		//bu aşamada vaz gecmesi olasılıgını düşünerek secenek sundum
			if secim == 2  then		//hayır der ise questi kapattım
				return	//bitirdim
			else	//Evet der ise buraya girecek
---Buraya girmeden önce bir tablo oluşturun adını sikayet yapın 4 sutun olsun id(int),kim(vrc),kimi(vrc),neden(vrc) yapamayanlar yoruma yazsın
				local kaydet = mysql_query10("insert into player.sikayet(kim,kimi,neden) values ('"..oyuncu.."','"..kimietti.."','"..neden.."') ")
				//Aldıgım verileri güzelce veri tabanına kaydettım
				if(kaydet) then //bu aşamada eğer kayıt başarılı ise (true) değeri döner öyle ise buraya gir dedim
					say("Şikayetiniz alınmıştır")
				else
					say("Kayıt hatası veri tabanı yok veya kodlama hatası")	//kayit hatalı ise (false) değeri döner o zaman buraya gir dedim
				end
			end
		end
end
end
end

ilk olarak questimizin nerede çalışacağına karar veriyoruz ben 20018 kodlu npc yi seçtim o size kalmış..
Questi başlattıkdan sonra ilk olarak oyuncunun ismini oyuncu değişkenine atadım ( local oyuncu = pc.get_name() )
Bir kaç diyalogdan sonra ondan kimi şikayet edeceğini kutuya yazmasını istedim ( local kimietti = input() )
Büyük küçük harfe dikkat dedim aslında önemli değil Moses adlı oyuncuyu moses die yazsada bulur o

Oyuncunun yazdığı ismi veri tabanından player tablosuna bakarak böyle bir oyuncu varmı yokmu kontrol ettim
( local varmibak = mysql_query("select * from....") ) dieye devam eden blok
Sql de where komutu kullandım where koşul belirtme demekdir dedim ki (name='"..kimietti.."')
bunu anlamı player tablosunda name isminde bir sütün var orada oyuncuların isimleri yazar bende oyuncumuzun yazmış olduğu ismi oraya soktum varmı bak dedim

Altına ( if(table.getn(varmibak))==0 then ) dedim bunun anlamı şu eğer varmibak değişkenindeki satır sayısı
0 ise buraya gir yani oyuncu kutuya sallama bir isim girer ise SQL 0 değeri dönderir doğal olarak buraya girer
daha sonra else dedim yani 0 değilse sıfır hariç ne dönerse artık aklına gelen bütün rakamlar.
Normalde buda bir açık fakat oyunda isim tekil olduğu için yani 2 oyuncu aynı ismi taşıyamadığı için sonu var ise
hep 1 döner bu yüzden == 1 yazmaya gerek yok

Bir kaç diyalogdan sonrada oyuncuda bu aşamada kararından vaz geçmesi halinde bir seçim yapmasını istedim
( local secim = select("evet","hayır") )
Daha sonra ( if secim == 2 then ) dedim yani eğer hayırı secerse questi kapat dedim (return) sonlandırmak
else dedim 2 yi seçmesse geriye 1 kalır 1 de evet demek o zman veriyi tabloya kayıt etmeye getirdim

Veriyi kayıt etmeye geldi fakat ilk olarak bize bir tablo gerekli tabloyu player veri tabanına açalım (player.player değil player sadece) tablodaki sutunlar id,kim,kimi,neden olacak bilmeyenler yorum atsın yardımcı olurum

tobloyuda açtıkdan sonra:
Veriyi kayıt ettim( local kaydet =mysql_query10("inser into player.sikayet.......") ) diye
Hala işimiz bitmedi belki bir hata alırız veir kayıt edilmez bunu almamız için sorguladım
( if(kaydet) then ) bunun anlamı şu eğer kayıt başarılı ise true değeri gelir true de olumlu,1 doğru anlamına gelir
ozaman buraya girecektir
else kayit başarılı değilse hata raporu verdim

Evet arkadaşlar quest çalışmakta resmide yolladım zaten bir sorun sıkıntı durumunda yorum atın yeterli yardımcı olurum.
Ben elimden geldiği kadar hergün bir quest yazıp anlatımını yapacagım dileyen questi kullanır dileyen anlatımı dinler
özel quest yazdırmak isteyen öm atsın (ücretli büyük çaplı questler)

Çok teşekkürler güzel paylaşım devamını bekliyoruz
 
Rica ederim kardesim
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst