Fethi Polat 1
Fethi Polat
xranzei 1
xranzei
Bvural41 1
Bvural41
kralhakan2009 1
kralhakan2009
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Vahsi Uzman 1
Vahsi Uzman
Cannn6161 1
Cannn6161
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com
Kaynak ikonu

Gelişmiş Işınlama Sistemi[LUA] 2023-03-07

indirmek için izniniz yok
  • Konuyu başlatan Konuyu başlatan thenemne0032
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 103
  • Görüntüleme Görüntüleme 14K

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 4 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,

Şimdiki sistem Gelişmiş Işınlama Sistemi. Bu sistem ile oyuncular birbirlerini yanlarına çağırabilirler. Sistemde herhangi bir bug yada sorun yoktur. Özel haritaları dilediğiniz gibi engelleyebilirsiniz. Ayrıca dileyen oyuncu ışınlama sistemini kapatabilir böylelikle diğer oyuncular ışınlama isteği yollayamazlar. Ek olarak oyuncular dakikada 1 defa ışınlanabilirler. Tekrardan ışınlanabilmeleri için 1 dakika beklemeleri gerekir.

Sistemin en güzel özelliği ise arkadaş listenizde ekli olan kişilerin adlarını yazmanız gerekmiyor! Dilediğiniz arkadaşınızı tek tıklama ile yanınıza çağırabilirsiniz. Dilerseniz sistemin tanıtım videosuna geçelim. Daha sonra da kurulumunu anlatacağım:




Gelişmiş Işınlama Sistemi - Tanıtım





Gelişmiş Işınlama Sistemi - Dosyalar





Oyununuzda MySQL kodları çalışmıyorsa ise aşağıdaki "questing.lua" yı indirin.







"questing.lua" nın içindeki tüm kodları "questlib.lua" ya yapıştırın MySQL sorunu çözülecektir.




Gelişmiş Işınlama Sistemi - Kurulum


"player" veritabanından "player" tablosunu açıyoruz ve en alta: "isinlan_durum" sütununu ekliyoruz. Aşağıdaki gibi:




n7Bv5a.jpg





Daha sonra Default değerini 0 yapıyorsunuz! Kesinlikle çok önemli. Default değerini 0 yapmayı unutmayın! Aşağıdaki gibi:


ZD0rAz.jpg





Gelişmiş Işınlama Sistemi - ÖNEMLİ BİLGİLER



İlk başta da belirttiğim gibi dilediğiniz haritada ışınlama olayını engelleyebilirsiniz. Bunun için şu kısma eklemeler yapmanız gerekiyor:


PHP:
yasakli_bolgeD =  {
    103
}


Buradaki kodu şu şekilde düzenlerseniz:

PHP:
yasakli_bolgeD =  {
        1,
    103
}


Buraya eklenen "1" kırmızı bayrağın harita index kodudur. Sizde ışınlamayı engellemek istediğiniz haritanın index kodunu buraya eklerseniz o haritada ışınlama gerçekleşmez.


Bir diğer bilgi "Işınlama Pasaportu" adlı nesneyi değiştirmek için şuradaki kodu değiştirmeniz yeterlidir:



PHP:
istenilecek_esya_kodu = 30168 -- eklenecek eşya kodu


Buraya hangi eşyanın kodunu yazarsanız onu "Işınlama Pasaportu" olarak görür. Dilediğiniz eşyayı "Işınlama Pasaportu" yapabilirsiniz.


Son olarak süre ayarını göstereceğim. Oyuncu 1 kere ışınlandıktan sonra 1 dakika beklemesi gerekir bu süreyi düzeltmek istiyorsanız aşağıdaki kodu düzenlemeniz gerekli:



PHP:
pc.setqf("sure",get_time()+60)


Buradaki "60" saniye cinsindendir. Eğer bunu aşağıdaki gibi değiştirirseniz:


PHP:
pc.setqf("sure",get_time()+3600)


"3600" saniye olur yani 1 saat. Tabii bunu şu şekilde de yapabilirsiniz:


PHP:
pc.setqf("sure",get_time()+60*60)


Yine "3600" saniye yapar yani 1 saat. Buradaki sayıyı düzenlemeniz yeterlidir süreyi ayarlamak için. Önemli bilgiler bu kadar.



İndirmek istemeyip, LUA dosyasını oluşturmak isteyenler için:


1-) usr/game/share/locale/turkey/quest bölümüne "oyuncu_isinla.lua" adında bir lua dosyası açalım. Daha sonra dosyasının içine aşağıdaki kodları yazalım:


PHP:
quest oyuncu_isinlan begin
    state start begin
        when letter with pc.get_level() >= 5 begin
            send_letter("Oyuncu Işınla")
        end -- when letter with pc.get_level() >= 5 begin endi
        when oyuncu_isinla.timer with pc.getqf("isinlamaya_tikladim") == 1 begin
            send_letter("Oyuncu Işınla")
            pc.setqf("isinlamaya_tikladim",0)
        end
        when info or button with pc.get_level() >= 5 begin
            pc.setqf("isinlamaya_tikladim",1)
            timer("oyuncu_isinla",1)
            istenilecek_esya_kodu = 30168 -- eklenecek eşya kodu
            baslikO = "Bilgilendirme:"
            baslikOL = "Uyarı:"
            oyuncu_isim = pc.get_name()
            oyuncu_kimlik = pc.get_player_id()
            say_title("[WINDOW_SIZE width;350|height;450]"..baslikO)
            say("")
            say("Merhaba oyuncu, "..oyuncu_isim)
            say("Buradan dilediğin oyuncuyu yanına çağırabilirsin.")
            say("Ama unutma ki bunu dakikada sadece 1 kere yapabilirsin.")
            say("")
            say("Işınlamayı kullanabilmen için hem senin hem de çağıracağın[ENTER]kişinin aşağıdaki eşyaya sahip olması gerekiyor: ")
            say_item_vnum(istenilecek_esya_kodu)
            say("")
            say_reward("Ne yapmak istiyorsun?")
            say("")
            oyuncu_isinlan_sec = select("Yanına Çağır","Arkadaşını Çağır","Ayarlar","Kapat")
            if oyuncu_isinlan_sec == 1 then
                say_title(baslikO)
                say("")
                say_reward("Yanına çağırmak istediğin kişinin ismini gir: ")
                cagirilacak_oyuncu_isim = tostring(input())
                cagirilacak_oyuncu_isimK = oyuncu_isinlan.isim_kontrol(cagirilacak_oyuncu_isim)
                if pc.count_item(istenilecek_esya_kodu) < 1 then
                    say_title(baslikOL)
                    say("")
                    say_reward("Oyuncuyu çağırabilmek için Işınlama Pasaportuna sahip[ENTER]olmanız gerekiyor.")
                    say("")
                    return
                elseif not cagirilacak_oyuncu_isimK then
                    say_title(baslikOL)
                    say("")
                    say_reward("Hatalı bir giriş yaptınız yada oyuncu oyunda değil.")
                    say("")
                    return
                elseif cagirilacak_oyuncu_isimK == -1 then
                    say_title(baslikOL)
                    say("")
                    say_reward("Yöneticiyi yanınıza çağıramazsınız!")
                    say("")
                    return
                elseif cagirilacak_oyuncu_isimK == -2 then
                    say_title(baslikOL)
                    say("")
                    say_reward("Çağırdığınız oyuncu ışınlama isteklerini kabul etmiyor.")
                    say("")
                    return
                end -- if pc.count_item(istenilecek_esya_kodu) < 1 then
                harita_kimlik = pc.get_map_index()
                yasakli_bolgelerK = oyuncu_isinlan.yasakli_bolge(harita_kimlik)
                if not yasakli_bolgelerK then
                    say_title(baslikOL)
                    say("")
                    say_reward("Bu bölgeye oyuncu çağıramazsınız!")
                    say("")
                    return
                end -- if not yasakli_bolgelerK then
                oyuncu_kontrol = find_pc_by_name(cagirilacak_oyuncu_isim)
                istek_yolla = confirm(oyuncu_kontrol,oyuncu_isim.." sizi yanına çağırıyor. Gitmek istiyor musunuz?",30)
                if istek_yolla == CONFIRM_OK then
                    oyuncu_konum_x = pc.get_x()*100
                    oyuncu_konum_y = pc.get_y()*100
                    o_id = pc.select(oyuncu_kontrol)
                        if pc.getqf("sure") - get_time() > 0 then
                            sure_k = 1
                            syschat("Sistem: Henüz yeni ışınlandınız. 1 dakika beklemeniz gerekiyor.")
                        elseif pc.count_item(istenilecek_esya_kodu) < 1 then
                            esya_k = 1
                            syschat("Sistem: Işınlanmak için Işınlanma Pasaportuna sahip olmanız gerekiyor.")
                        else
                            pc.setqf("sure",get_time()+60)
                            pc.warp(oyuncu_konum_x,oyuncu_konum_y)
                        end -- if pc.getqf("sure") - get_time() > 0 then endi
                    pc.select(o_id)
                    if esya_k == 1 then
                        syschat("Sistem: Çağırdığınız oyuncuda Işınlama Pasaportu mevcut değil.")
                        esya_k = 0
                    elseif sure_k == 1 then
                        syschat("Sistem: Oyuncu henüz yeni ışınlanmış. 1 dakika beklemesi gerekiyor.")
                        sure_k = 0
                    end -- if esya_k == 1 then endi
                else
                    o_id = pc.select(oyuncu_kontrol)
                        syschat("Sistem: Işınlamayı kabul etmediniz.")
                    pc.select(o_id)
                    syschat("Sistem: Oyuncu ışınlama isteğinizi kabul etmedi.")
                end -- if istek_yolla == CONFIRM_OK then endi
            elseif oyuncu_isinlan_sec == 2 then
                say_title(baslikO)
                say("")
                say("Çağırmak istediğiniz arkadaşınızı seçin: ")
                say("")
                arkadasKontrol = mysql_query10("select * from player.messenger_list where account='"..oyuncu_isim.."' ")
                arkadasKontrolSay = tonumber(table.getn(arkadasKontrol))
                if arkadasKontrolSay < 1 then
                    say_reward("Arkadaş listenizde kimse ekli değil.")
                    say("")
                else
                    arkadasListesiDizi = {}
                    for i=1,arkadasKontrolSay,1 do
                        arkadas = arkadasKontrol.companion[i]
                        arkadasAra = find_pc_by_name(arkadas)
                        if arkadasAra != 0 then
                            arkadasListesiDizi[i] = arkadas
                        end -- if arkadasAra != 0 then endi
                    end -- for i=1,arkadasKontrolSay,1 do endi
                    arkadasListesiDiziSay = tonumber(table.getn(arkadasListesiDizi))
                    arkadasListesiDizi[arkadasListesiDiziSay+1] = "Kapat"
                    arkadasSec = select_table(arkadasListesiDizi)
                    for i=1,arkadasListesiDiziSay,1 do
                        if arkadasSec == arkadasListesiDiziSay + 1 then
                            return
                        end -- if arkadasSec == arkadasListesiDiziSay + 1 then endi
                        if arkadasSec == i then
                            cagirilacak_oyuncu_isim = tostring(arkadasListesiDizi[i])
                            cagirilacak_oyuncu_isimK = oyuncu_isinlan.isim_kontrol(cagirilacak_oyuncu_isim)
                            if pc.count_item(istenilecek_esya_kodu) < 1 then
                                say_title(baslikOL)
                                say("")
                                say_reward("Oyuncuyu çağırabilmek için Işınlama Pasaportuna sahip[ENTER]olmanız gerekiyor.")
                                say("")
                                return
                            elseif not cagirilacak_oyuncu_isimK then
                                say_title(baslikOL)
                                say("")
                                say_reward("Oyuncu oyunda değil!")
                                say("")
                                return
                            elseif cagirilacak_oyuncu_isimK == -1 then
                                say_title(baslikOL)
                                say("")
                                say_reward("Yöneticiyi yanınıza çağıramazsınız!")
                                say("")
                                return
                            elseif cagirilacak_oyuncu_isimK == -2 then
                                say_title(baslikOL)
                                say("")
                                say_reward("Çağırdığınız oyuncu ışınlama isteklerini kabul etmiyor.")
                                say("")
                                return
                            end -- if pc.count_item(istenilecek_esya_kodu) < 1 then endi
                            harita_kimlik = pc.get_map_index()
                            yasakli_bolgelerK = oyuncu_isinlan.yasakli_bolge(harita_kimlik)
                            if not yasakli_bolgelerK then
                                say_title(baslikOL)
                                say("")
                                say_reward("Bu bölgeye oyuncu çağıramazsınız!")
                                say("")
                                return
                            end -- if not yasakli_bolgelerK then
                            oyuncu_kontrol = find_pc_by_name(cagirilacak_oyuncu_isim)
                            istek_yolla = confirm(oyuncu_kontrol,oyuncu_isim.." sizi yanına çağırıyor. Gitmek istiyor musunuz?",30)
                            if istek_yolla == CONFIRM_OK then
                                oyuncu_konum_x = pc.get_x()*100
                                oyuncu_konum_y = pc.get_y()*100
                                o_id = pc.select(oyuncu_kontrol)
                                    if pc.getqf("sure") - get_time() > 0 then
                                        sure_k = 1
                                        syschat("Sistem: Henüz yeni ışınlandınız. 1 dakika beklemeniz gerekiyor.")
                                    elseif pc.count_item(istenilecek_esya_kodu) < 1 then
                                        esya_k = 1
                                        syschat("Sistem: Işınlanmak için Işınlanma Pasaportuna sahip olmanız gerekiyor.")
                                    else
                                        pc.setqf("sure",get_time()+60)
                                        pc.warp(oyuncu_konum_x,oyuncu_konum_y)
                                    end -- if pc.getqf("sure") - get_time() > 0 then endi
                                pc.select(o_id)
                                if esya_k == 1 then
                                    syschat("Sistem: Çağırdığınız oyuncuda Işınlama Pasaportu mevcut değil.")
                                    esya_k = 0
                                elseif sure_k == 1 then
                                    syschat("Sistem: Oyuncu henüz yeni ışınlanmış. 1 dakika beklemesi gerekiyor.")
                                end -- if esya_k == 1 then endi
                            else
                                o_id = pc.select(oyuncu_kontrol)
                                    syschat("Sistem: Işınlamayı kabul etmediniz.")
                                pc.select(o_id)
                                syschat("Sistem: Oyuncu ışınlama isteğinizi kabul etmedi.")
                            end -- if istek_yolla == CONFIRM_OK then endi
                        end -- if arkadasSec == i then endi
                    end -- for i=1,arkadasListesiDiziSay,1 do endi
                end -- if arkadasKontrolSay < 1 then endi
            elseif oyuncu_isinlan_sec == 3 then
                isinlama_durumK = mysql_query("select * from player.player where id='"..oyuncu_kimlik.."' ")
                oyuncu_isinlama_durum = tonumber(isinlama_durumK.isinlan_durum[1])
                if oyuncu_isinlama_durum == 0 then
                    durum = "PASİF"
                elseif oyuncu_isinlama_durum == 1 then
                    durum = "AKTİF"
                end
                say_title(baslikO)
                say("")
                say("Merhaba oyuncu, "..oyuncu_isim)
                say("Dilersen buradan ışınlama isteklerini kapatabilirsin.")
                say("Böylelikle kimse sana ışınlama isteği yollayamaz.")
                say("")
                say_reward("Işınlama durumun: "..durum)
                say("")
                say_reward("Ne yapmak istiyorsun?")
                say("")
                isinlanma_durum_sec = select("Işınlama Durumu: Aktif Et","Işınlama Durumu: Pasifleştir","Kapat")
                if isinlanma_durum_sec == 1 then
                    isinlama_durumK = mysql_query("select * from player.player where id='"..oyuncu_kimlik.."' ")
                    oyuncu_isinlama_durum = tonumber(isinlama_durumK.isinlan_durum[1])
                    if oyuncu_isinlama_durum == 1 then
                        say_title(baslikOL)
                        say("")
                        say_reward("Işınlama durumu zaten aktif. Tekrar aktifleştiremezsiniz.")
                        say("")
                    elseif oyuncu_isinlama_durum == 0 then
                        say_title(baslikO)
                        say("")
                        say("Işınlama durumu başarı ile aktifleştirildi.")
                        say("")
                        mysql_query("UPDATE player.player SET isinlan_durum=1 where id='"..oyuncu_kimlik.."' ")
                    end
                elseif isinlanma_durum_sec == 2 then
                    if oyuncu_isinlama_durum == 0  then
                        say_title(baslikOL)
                        say("")
                        say_reward("Işınlama durumu zaten pasif. Tekrar pasifleştiremezsiniz.")
                        say("")
                    elseif oyuncu_isinlama_durum == 1 then
                        say_title(baslikO)
                        say("")
                        say("Işınlama durumu başarı ile pasifleştirildi.")
                        say("")
                        mysql_query("UPDATE player.player SET isinlan_durum=0 where id='"..oyuncu_kimlik.."' ")
                    end
                end -- if isinlanma_durum_sec == 1 then endi
            elseif oyuncu_isinlan_sec == 4 then
                return
            end -- if oyuncu_isinlan_sec == 1 then endi
        end -- when info or button with pc.get_level() >= 5 begin endi
      
        function isim_kontrol(gelen_oyuncu_isim)
            oyuncu_isim_f = gelen_oyuncu_isim
            oyuncu_ara = find_pc_by_name(oyuncu_isim_f)
            if oyuncu_isim_f == "" or oyuncu_isim_f == nil then
                return false
            elseif oyuncu_isim_f == pc.get_name() then
                return false
            elseif oyuncu_ara == 0 then
                return false
            end
            o_id = pc.select(oyuncu_ara)
                if pc.is_gm() then
                    oyuncu_yonetici = 1
                else
                    oyuncu_kimlik = pc.get_player_id()
                    isinlan_durumK = mysql_query10("select * from player.player where id='"..oyuncu_kimlik.."' ")
                    isinlan_durumK_Say = tonumber(table.getn(isinlan_durumK))
                    if isinlan_durumK_Say > 0 then
                        isinlan_deger = tonumber(isinlan_durumK.isinlan_durum[1])
                        if isinlan_deger == 0 then
                            isinlan_durum_kontrol = 1
                        end
                    end
                end
            pc.select(o_id)
            if oyuncu_yonetici == 1 then
                oyuncu_yonetici = 0
                return -1
            elseif isinlan_durum_kontrol == 1 then
                isinlan_durum_kontrol = 0
                return -2
            end
            return true
        end -- function isim_kontrol(gelen_oyuncu_isim) endi
      
        function yasakli_bolge(gelen_harita_kimlik)
            harita_kimlik_f = gelen_harita_kimlik
            yasakli_bolgeD =  {
                103
            }
            yasakli_bolgeD_Say = tonumber(table.getn(yasakli_bolgeD))
            for i=1,yasakli_bolgeD_Say,1 do
                if harita_kimlik_f == yasakli_bolgeD[i] then
                    return false
                end
            end
            return true
        end --function yasakli_bolge(gelen_harita_kimlik)
      
    end -- state start begin endi
end -- quest oyuncu_isinlan begin endi



Bunu kaydedip çıkıyoruz.

2-)Putty'e geliyoruz.

cd /usr/game/share/locale/turkey/quest yazıp enterliyoruz. Daha sonra şu komutu yazıyoruz.

./qc oyuncu_isinla.lua

Putty ile de işimiz bitti.
3-) Oyuna dönüyoruz ve bir GM karakter ile "/reload q" çekiyoruz.
4-) Daha sonra sol tarafta görev şeklinde gelen Oyuncu Işınla kısmından sistemi deneyebilirsiniz.
 
Moderatör tarafında düzenlendi:

En Çok Reaksiyon Alan Mesajlar

Eşya kullanım kontrolü tarzında bir şey isteyecektim. Düelloda onaylı hp-sp görünmesi Düello ya bastığımız zaman hp-sp görülsün mü ? diye bir soru sordurtabilirsen güzel olur :D
 
Cok iyi paylaşım tşk :)
 
Güzel sistem devamını bekliyorum :)
 
Eşya kullanım kontrolü tarzında bir şey isteyecektim. Düelloda onaylı hp-sp görünmesi Düello ya bastığımız zaman hp-sp görülsün mü ? diye bir soru sordurtabilirsen güzel olur :D

Python'a giriyor o maalesef.

Diğer yorumlara da teşekkürler.
 
Son düzenleme:

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

Geri
Üst