kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
InfernoShade 1
InfernoShade
BlackFullMoon 1
BlackFullMoon
Agora Metin2 1
Agora Metin2
PrimeAC 1
PrimeAC
ShadowFon 1
ShadowFon
noisiv 1
noisiv
Manwe Work 1
Manwe Work
romegames 1
romegames
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Matematik Oyunu Sistemi[LUA]

  • Konuyu başlatan Konuyu başlatan thenemne0032
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 15
  • Görüntüleme Görüntüleme 3K

thenemne0032

Level 6
TM Üye
Katılım
11 Ağu 2010
Konular
67
Mesajlar
1,092
Online süresi
7h 8m
Reaksiyon Skoru
476
Altın Konu
0
TM Yaşı
15 Yıl 10 Ay 7 Gün
Başarım Puanı
188
MmoLira
264
DevLira
0
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

Merhabalar,

Bu kez farklı bir sistem ile karşınızdayım. Oyuncuların oyunda Matematik işlemleri yapacağı bir sistem paylaşacağım sizinle.



Peki tam olarak nedir Matematik Oyunu Sistemi?


Oyuncuların birer saat arayla oynayabilecekleri ve Matematik sorularını doğru cevapladıkları taktirde Matematik puanı kazanıp, Matematik Sistemi - Marketinden çeşitli eşyalar alabilecekleri bir sistemdir.


Sistem nasıl işler?


Oyuncu NPC'ye gider ve "Matematik Oyunu" seçeneğini seçer. Daha sonra önüne rastgele 2 sayı ve rastgele işlem gelir.(Sayılar 1 ile 10 arasında oluşturulur. Dileyen değiştirebilir bunu.) Daha sonra oyuncu bu Matematik işleminin cevabını kutucuğa girer ve doğru girerse gelen işleme göre Matematik puanı kazanır. Çarpma +5, çıkarma +3 ve toplama +1 puan ek olarak verir. 60 saniye süresi vardır.(Dileyen bu süreyi ayarlayabilir) 60 saniye sonunda kaç puan toplarsa o hesabına kayıt edilir. Eğer 60 saniyesi dolmadan yanlış cevap verirse oyun biter ve tekrardan oynayamaz. Oyuncu oyunu tekrar oynayabilmek için 1 saat beklemelidir.


Matematik Oyunu Sistemi - Resimler


DMZ5dl.jpg


mPBNkP.jpg


BMYbAD.jpg


Matematik Oyunu Sistemi - Dosyalar






PARA MİKTARI ARASINA .(NOKTA) KOYMA:

Şimdi para tutarlarının arasına .(nokta) koyma fonksiyonuna geldik. Bu fonksiyonu da eklemeniz gerekiyor. Eğer bu fonksiyonu eklemezseniz sistem çalışmaz. Ona göre kodlandı. Şimdi o fonksiyonu eklemeyi göstereceğim:

"questlib.lua" dosyasını açıyoruz ve en alta aşağıdaki kodları ekleyip kapatıyoruz. Reboot atmanıza gerek yok. Sistemleri ekledikten sonra /reload q yapmanız yeterlidir.


Fonksiyon kodu:

PHP:
function genel_veri(gelen_miktar) 
    gelen2 = tostring(gelen_miktar) 
    local gelen = gelen_miktar  
    local sayac = 10 
    local basamak = 1 
    local ilkhal = basamak 
    while true do 
        if gelen / sayac >= 1 then 
            basamak = basamak + 1 
            sayac = sayac * 10 
        else 
            break 
        end 
    end 
    t = {} 
    sonucText = "" 
    for i=1, string.len(gelen2) do 
        t[i]= (string.sub(gelen2,i,i)) 
    end 
    for k , v in pairs(t) do--1324 
        if (basamak  == 9 or basamak == 6 or basamak == 3) and sonucText !=  "" then 
            sonucText = sonucText.."." 
            sonucText = sonucText..v 
        else 
            sonucText = sonucText..v 
        end 
        basamak = basamak - 1 
    end 
    return sonucText 
end



Bu işlem de bittikten sonra "quest_functions" dosyasını açıyor ve en alta "genel_veri" fonksiyonunu ekliyoruz. Bura ile de işimiz bitti.


ÖNEMLİ BİLGİLENDİRME:


Matematik Sistemi - Market'e adetli ve adetsiz olmak üzere yeni eşyalar ekleyebilirsiniz. Şimdi onu nasıl ekleyeceğinizi göstereceğim.

İlk olarak şu kısmı buluyoruz:


PHP:
 function esyalar(esya_bilgisi) 
            esya = { 
                [1] = {"Hız İksiri",71050,50000,1}, 
                [2] = {"Saldırı İksiri",27112,10000,1}, 
                [3] = {"Eskrim Broşür",70031,1000000,0}, 
                [4] = {"Kutsama Kağıt",25040,500000,0}, 
                [5] = {"Büyülü Metal",25041,10000000,0} 
                } 
                return esya[esya_bilgisi] 
        end


Daha sonra ekleyeceğimiz yeni eşyayı şu şekilde ekliyoruz:

PHP:
[6] = {"Beyaz İnci",27992,500000,0}


İlk kısım satılacak eşyanın adıdır. Lütfen bu satılacak eşyaların son harfini " ı " yapmayalım. Aksi taktirde çalışmayacaktır sistem.
İkinci kısım satılacak eşyanın kodudur.
Üçüncü eşyanın kaç Onur Puanına satılacağıdır. Yani fiyatıdır.



Dördüncü kısım çok önemli, dikkatli okuyun lütfen:

Bu dördüncü kısma 1 yada 0 değeri vereceksiniz. Eğer 1 değeri verirseniz eşyanız adetli satılacak demektir. Yani oyuncu o eşyaya tıkladığında kaç adet almak istiyorsunuz diye uyarı ile karşılaşacaktır. Fakat 0 değeri verirseniz herhangi bir adet değeri sormayacak ve direkt eşyayı satın al butonu olacak ve o eşyadan sadece 1 adet alabilecektir. Eğer bu kısmı anlamadıysanız konu altına yazın biraz daha detaylı anlatayım.

Evet son haliyle yeni kodlar şu şekilde oluyor:



PHP:
 function esyalar(esya_bilgisi) 
            esya = { 
                [1] = {"Hız İksiri",71050,50000,1}, 
                [2] = {"Saldırı İksiri",27112,10000,1}, 
                [3] = {"Eskrim Broşür",70031,1000000,0}, 
                [4] = {"Kutsama Kağıt",25040,500000,0}, 
                [5] = {"Büyülü Metal",25041,10000000,0}, 
                [6] = {"Beyaz İnci",27992,500000,0} 
                } 
                return esya[esya_bilgisi] 
        end


Lütfen her eklediğiniz eşyadan sonra sonuna virgül koyun ve yeni eşyayı öyle ekleyin. Aksi taktirde sistem yine çalışmayacaktır. Tekrar söylüyorum anlamadığınız bir yer olursa konu altından sorun lütfen.


Oynanma süreleri için aşağıdaki kısmı bulup düzenlemeniz gerekiyor:

PHP:
tekrarOynamaSuresi = 3600 -- saniye cinsindendir. 3600 saniye 1 saate denk gelir.
oynamaSuresi = 60 -- Oyunu ne kadar süre oynayacağını belirler. 60 saniye 1 dakikadır


İndirmeden kodları incelemek isteyenler için:

PHP:
quest matematik begin
	state start begin
		when 20355.chat."Matematik Oyunu" begin
			say_title("Bilgilendirme:")
			say("")
			say("Matematik soruları çözüm merkezine hoş geldin!")
			say("Sorular gelsin!")
			wait("")
			k=1
			if pc.getqf("matematik_katildim") == 0 then
				pc.setqf("matematik_puanim",1)
				pc.setqf("matematik_katildim",1)
			end -- if pc.getqf("matematik_katildim") == 0 
			if pc.getqf("sure") - get_time() > 0 then
				say_title("Uyarı:")
				say("")
				say_reward("Saatte 1 defa oynayabilirsiniz! Süreniz dolmadı!")
				say("")
				return
			end
			tekrarOynamaSuresi = 3600 -- saniye cinsindendir. 3600 saniye 1 saate denk gelir.
			oynamaSuresi = 60 -- Oyunu ne kadar süre oynayacağını belirler. 60 saniye 1 dakikadır
			pc.setqf("matematikteyim",1)
			pc.setqf("matematikteyim_sure",get_time()+oynamaSuresi)
			pc.setqf("sure",get_time()+tekrarOynamaSuresi)
				while true do
					if pc.getqf("matematikteyim_sure") - get_time() > 0 then
						say_title("Bilgilendirme:")
						say("")
						gelen_islem = tostring(matematik.matematik_islem())
						gelen_sayi_x = matematik.matematikSorular()
						gelen_sayi_y = matematik.matematikSorular()
						say(k..".soru: "..gelen_sayi_x.." "..gelen_islem.." "..gelen_sayi_y)
						if gelen_islem == "+" then
							islemi_yap = gelen_sayi_x + gelen_sayi_y
							pc.setqf("toplama",pc.getqf("toplama")+1)
						elseif gelen_islem == "-" then
							islemi_yap = gelen_sayi_x - gelen_sayi_y
							pc.setqf("cikarma",pc.getqf("cikarma")+1)
						elseif gelen_islem == "*" then
							islemi_yap = gelen_sayi_x * gelen_sayi_y
							pc.setqf("carpma",pc.getqf("carpma")+1)
						end -- if gelen_islem == "+" then endi
						say("")
					--	say(islemi_yap)
						oyuncu_cevap = input()
						if tonumber(oyuncu_cevap) != islemi_yap then
							say_title("Uyarı:")
							say("")
							say_reward("Yanlış cevap verdiğiniz yarışma sona erdi.")
							say_reward("1 saat sonra tekrar oynayabilirsiniz!")
							say("")
							say_reward("Toplam Matematik Puanınız: "..pc.getqf("matematik_puanim"))
							say("")
							pc.setqf("toplama",0)
							pc.setqf("cikarma",0)
							pc.setqf("carpma",0)
							return
						else
							if gelen_islem == "+" then
								pc.setqf("matematik_puanim",(pc.getqf("matematik_puanim")+pc.getqf("toplama"))+1)
							elseif gelen_islem == "-" then
								pc.setqf("matematik_puanim",(pc.getqf("matematik_puanim")+pc.getqf("cikarma"))+3)
							elseif gelen_islem == "*" then
								pc.setqf("matematik_puanim",(pc.getqf("matematik_puanim")+pc.getqf("carpma"))+5)
							end -- if gelen_islem == "+" then 
						end -- if tonumber(oyuncu_cevap) != islemi_yap then endi
						k=k+1
					else 
						say_title("Uyarı:")
						say("")
						say_reward("Süreniz doldu!")
						say("")
						say_reward("Toplam Matematik Puanınız: "..pc.getqf("matematik_puanim"))
						say("")
						pc.setqf("matematikteyim_sure",0)
						pc.setqf("toplama",0)
						pc.setqf("cikarma",0)
						pc.setqf("carpma",0)
						return
					end --
				end -- while true do endi
		end -- when 20355.chat."Matematik Oyunu" begin endi
		
	when 20355.chat."Matematik Sistemi - Market" begin
			esyalar = {}
			oyuncuMatematikPuani = pc.getqf("matematik_puanim")
			kacAdetEsyaVar = 5 -- Buraya markette satılan eşya sayısını girin.
			
			for i=1,kacAdetEsyaVar,1 do
				esyaBilgileri = { [1] = matematik.esyalar(i) }
				esyalar[i] = esyaBilgileri[1][1]
			end
			esyalarSay = tonumber(table.getn(esyalar))
			esyalar[esyalarSay+1] = "Kapat"
			esyaSec = select_table(esyalar)
			
			
			for m=1,esyalarSay,1 do
				if esyaSec == esyalarSay + 1 then
					return
				end
				if esyaSec == m then
					esyaBilgileri = { [1] = matematik.esyalar(m) }
					--------------------------------------
					esyaKodu = esyaBilgileri[1][2]
					esyaAdetlimi = esyaBilgileri[1][4]
					esyaMatematikPuani = esyaBilgileri[1][3]
					--------------------------------------
					say_title("[WINDOW_SIZE width;350|height;450]Eşya:")
					say_item_vnum(esyaKodu)
					say("")
					esyaAdetlimi = tonumber(esyaAdetlimi)
				
					if esyaAdetlimi == 1 then
						say_reward("Eşyadan kaç adet almak istiyorsunuz?")
						esyaAdet = matematik.esyaAdet_input()
						if esyaAdet < 0 or esyaAdet == 0 then
							say_title("Uyarı:")
							say("")
							say_reward("Geçersiz miktar girdiniz. Tekrar deneyin.")
							say("")
						else
							toplamTutar = esyaMatematikPuani * esyaAdet
							say_title("Bilgilendirme:")
							say("")
							say("Eşyadan "..esyaAdet.." adet almak istediniz.")
							say("")
							say_reward(esyaAdet.." adet eşyanın fiyatı "..genel_veri((esyaMatematikPuani*esyaAdet)).." Matematik Puani")
							say("")
							say_reward("Matematik Puanınız: "..genel_veri(oyuncuMatematikPuani))
							say("")
							say_title("Alışveriş sonrası durum:")
							say("")
							if oyuncuMatematikPuani < toplamTutar then
								say_reward("Eşyayı satın alamazsınız. Matematik puanınız yetersiz.")
								say("")
							else
								say_reward("Kalacak Matematik Puanınız: "..genel_veri(oyuncuMatematikPuani-toplamTutar))
								say("")
								esyaSecimYap = select("Satın Al","Kapat")
								say_title("Bilgilendirme")
								say("")
								say("Eşyayı almak üzeresiniz. Onaylıyor musunuz?")
								say("")
								esyaOnay = select("Evet","Hayır")
								if esyaOnay == 2 then
									return
								end
								if esyaSecimYap == 1 then
									pc.setqf("matematik_puanim",pc.getqf("matematik_puanim")-toplamTutar)
									pc.give_item2(esyaKodu,esyaAdet)
									say_title("Bilgilendirme:")
									say("")
									say("Eşya başarı ile alındı.")
									say("Matematik puanınız eksildi.")
									say("")
									say_reward("Kalan Matematik Puanınız: "..genel_veri(oyuncuMatematikPuani))
									say("")
								elseif esyaSecimYap == 2 then
									return
								end
							end
						end -- girilen eşya adetinin kontrol endi
					elseif esyaAdetlimi == 0 then
						say("")
						say_reward("Eşya Matematik Puanı: "..genel_veri(esyaMatematikPuani))
						say("")
						say_reward("Matematik Puanınız: "..genel_veri(oyuncuMatematikPuani))
						say("")
						say_title("Alışveriş sonrası durum:")
						say("")
						if oyuncuMatematikPuani < esyaMatematikPuani then
							say_reward("Eşyayı satın alamazsınız. Matematik puanınız yetersiz.")
							say("")
						else
							say_reward("Kalacak Matematik Puanınız: "..genel_veri((oyuncuMatematikPuani-esyaMatematikPuani)))
							say("")
							esyaSecimYap = select("Satın Al","Kapat")
								if esyaSecimYap == 1 then
									say_title("Bilgilendirme")
									say("")
									say("Eşyayı almak üzeresiniz. Onaylıyor musunuz?")
									say("")
									esyaOnay = select("Evet","Hayır")
									if esyaOnay == 2 then
										return
									end
									pc.setqf("matematik_puanim",pc.getqf("matematik_puanim")-esyaMatematikPuani)
									pc.give_item2(esyaKodu,1)
									say_title("Bilgilendirme:")
									say("")
									say("Eşya başarı ile alındı.")
									say("Matematik puanınız eksildi.")
									say("")
									oyuncuMatematikPuani = pc.getqf("matematik_puanim")
									say_reward("Kalan Matematik Puanınız: "..genel_veri(oyuncuMatematikPuani))
									say("")
								elseif esyaSecimYap == 2 then
									return
								end
						end
					end -- eşya adetlimi kontrol endi
					
				end -- seçilen eşyanın endi
			end -- eşyaları seçtiren forun endi
		end		
		
		function matematikSorular()
			rastgele_sayi = math.random(1,10)
			return rastgele_sayi
		end -- function matematikSorular() endi
		
		function matematik_islem()
			islem = {
				[1] = {"+"},
				[2] = {"-"},
				[3] = {"*"}
			}
			islemSay = tonumber(table.getn(islem))
			rastgele_islem = math.random(1,islemSay)
			return islem[rastgele_islem][1]
		end -- function matematik_islem() endi
		
				
	function esyalar(esya_bilgisi)
		esya = {
			[1] = {"Hız İksiri",71050,500,1},
			[2] = {"Saldırı İksiri",27112,1000,1},
			[3] = {"Eskrim Broşür",70031,5000,0},
			[4] = {"Kutsama Kağıt",25040,500,0},
			[5] = {"Büyülü Metal",25041,10000,0}
			}
			return esya[esya_bilgisi]
	end
	
		function esyaAdet_input (gelen_veri) 
            say (gelen_veri) 
            local n = nil 
            while n == nil do 
                n = tonumber (input()) 
                if n != nil and n <= 200  then 
                    break 
                end 
            say_reward("Sayi giriniz ve 200 den fazla miktar girmeyiniz!") 
            n = nil 
            end 
            return n 
        end
		
		
	end -- state start begin endi
end -- quest matematik begin endi
 
Teşekkürler.
 
Teşekkürler.
 
Matematiği coşturan adam :o
 
Geçen bahsediyordun gene yapacağını yapmışsın teşekkürler :m26:
 

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

Geri
Üst