Banka Sistemi

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 324

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Filezillaya girip /usr/game/share/locale/turkey/quest bölümüne atın sonra putty girip:
Kod:
cd /usr/game/share/locale/turkey/quest [ENTER] ./qc banka.quest yapmanız yeterli olacaktır.
Kod:
quest eventnpc begin    state start begin         when 20360.chat."Banka" begin             local pin = pc.getqf("konto_pin")             local konto_yang = pc.getqf("konto_yang")             if pin == 0 then                 say_title("Hoşgeldin ".. pc.get_name() ..".")                 say("")                 say("Merhaba!")                 say("Bankaya fazla paranı yatırabilir")                 say("istediğin zaman çekebilirsin.")                 say("Bankaya para yatırmak için")                 say("Kendine kasa açmalısın.")                 say("Bunun için 5 haneli şifre belirlemelisin.")                 say("")                 say_reward("5 Haneli şifre girin.(Sadece rakam!)")                 local pin_eing = tonumber(input("12345"))                 if pin_eing > 9999 and pin_eing < 100000 then                     say_title("Hoşgeldin ".. pc.get_name() ..".")                     say("")                     say("Şifre kabul edildi!")                     say("")                     say_reward("Şifre " ..pin_eing.. " Olsun mu?")                     local sel=select("Evet", "Hayır")                     if sel==1 then                         pc.setqf("konto_pin", pin_eing)                         say_title("Hoşgeldin ".. pc.get_name() ..".")                         say("")                         say("Şifre kaydedildi.")                         say("Sonra görüşürüz.")                     elseif sel==2 then                         say_title("Hoşgeldin ".. pc.get_name() ..".")                         say("")                         say("Görüşürüz dostum...")                     else                         -- Hata mesaji!                         say("Bilinmeyen bir hata!")                         say("Lüften hatayı yoneticilere bildirin.")                         say("Hatanız çözülecektir.")                         say("Kolay gelsin!")                         say("Hata Kodu : 1")                     end                 elseif pin_eing > 99999 or pin_eing == 0 or pin_eing < 10000 then                     say_title("Hoşgeldin ".. pc.get_name() ..".")                     say("")                     say("Üzgünüm ama bir yerde hata var.")                     say("Şifre yanlış.")                     say("")                     say_reward("Bilgi: Şifre sadece rakamdan oluşmalıdır!")                     say_reward("Bilgi: Şifre 99999'dan büyük olamaz!")                     say_reward("Bilgi: Şifre 10000'den küçük olamaz!")                 else                     -- Hata mesaji!                     say("Bilinmeyen bir hata!")                     say("Lütfen hatayı yöneticilere bildirin.")                     say("Hatanız çözülecektir.")                     say("Kolay gelsin!")                     say("Hata Kodu : 2")                 end             else                 ---------------------------  ---------------------------                 say_title("Hoşgeldin ".. pc.get_name() ..".")                 say("")                 say("Merhaba  Bankas hizmete açılmıştır.")                 say("Şifrenizin güvenliğinden emin olun.")                 say("")                 say_reward("Ne yapmak istiyor sunuz?")                 say("")                 local sel=select("Para Yatır", "Para Çek", "Hesap Durumu", "Şifre Değiştir", "Kapat")                 if sel==1 then                     ------------------------------------------------------                     say_title("Hoşgeldin ".. pc.get_name() ..".")                     say("")                     say("Lütfen şifrenizi girin.")                     local pin_abf = tonumber(input(""))                     if pin_abf == pc.getqf("konto_pin") then                         say_title("Hoşgeldin ".. pc.get_name() ..".")                         say("")                         say("Şifreniz doğrulandı.")                         say("Ne kadar yatıracaksınız?")                         say("Maximum 1.999.999.999 yangdır!")                         say("")                         say_reward("Paranız: " ..pc.get_money())                         say("")                         local geld_auf_konto = tonumber(input(""))                         local auf_konto_new = tonumber(geld_auf_konto) + pc.getqf("konto_yang")                         if geld_auf_konto < 0 then                             say_title("Hoşgeldin ".. pc.get_name() ..".")                             say("")                             say("Şifre yanlış.")                         else                             if pc.get_money() < geld_auf_konto then                                 say_title("Hoşgeldin ".. pc.get_name() ..".")                                 say("")                                 say("Paranız yetersiz.")                             else                                 if auf_konto_new < 2000000000 then                                     pc.change_money(-geld_auf_konto)                                     pc.setqf("konto_yang", auf_konto_new)                                     say_title("Hoşgeldin ".. pc.get_name() ..".")                                     say("")                                     say("İstediğiniz " ..geld_auf_konto.. " Yang hesabınıza yatırıldı.")                                 else                                     say_title("Hoşgeldin ".. pc.get_name() ..".")                                     say("")                                     say("Hesabınıza yatırılamıyor.")                                     say("Azami miktarı aşmayın.")                                     say("Para sınırı 1.999.999.999 yangdır.")                                 end                             end                         end                     else                         say_title("Hoşgeldin ".. pc.get_name() ..".")                         say("")                         say("Yanlış şifre.")                     end                 elseif sel==2 then                     ------------------------------------------------------                     say_title("Hoşgeldin ".. pc.get_name() ..".")                     say("")                     say("Lütfen şifrenizi girin.")                     local pin_abf = tonumber(input(""))                     if pin_abf == pc.getqf("konto_pin") then                         say_title("Hoşgeldin ".. pc.get_name() ..".")                         say("")                         say("Şifre doğrulandı.")                         say("Ne kadar para çekiceksiniz?")                         say("")                         say_reward("Hesap: " ..pc.getqf("konto_yang"))                         say("")                         local geld_von_konto = tonumber(input(""))                         if geld_von_konto < 0 then                             say_title("Hoşgeldin ".. pc.get_name() ..".")                             say("")                             say("Paranız 0.")                         else                             if geld_von_konto > pc.getqf("konto_yang") then                                 say_title("Hoşgeldin ".. pc.get_name() ..".")                                 say("")                                 say("Paranız yetersiz.")                             elseif geld_von_konto <= pc.getqf("konto_yang") then                                 local yang_bug_check = pc.get_money() + geld_von_konto                                 if yang_bug_check < 2000000000 then                                     local auf_konto_new = tonumber(pc.getqf("konto_yang") - geld_von_konto)                                     pc.setqf("konto_yang", auf_konto_new)                                     pc.change_money(geld_von_konto)                                     say_title("Hoşgeldin ".. pc.get_name() ..".")                                     say("")                                     say("İstediğin gibi " ..geld_von_konto.. " Yang çekildi.")                                 else                                     say_title("Hoşgeldin ".. pc.get_name() ..".")                                     say("")                                     say("İstediğiniz parayı veremem.")                                     say("Yang miktarınız 0!(Bug yapılamaz.)")                                 end                             end                         end                     else                         say_title("Hoşgeldin ".. pc.get_name() ..".")                         say("")                         say("Yanlış şifre.")                     end                 elseif sel==3 then                     ------------------------------------------------------                     say_title("Hoşgeldin ".. pc.get_name() ..".")                     say("")                     say("Hesabinizdaki parayı görmek mi istiyorsunuz ?")                     say("Bakabilirsin:")                     say("")                     say_reward("Yang Bakiyeniz: " ..pc.getqf("konto_yang"))                 elseif sel==4 then                     ------------------------------------------------------                     say_title("Hoşgeldin ".. pc.get_name() ..".")                     say("")                     say("Lütfen şuanki şifrenizi girin.")                     local pin_abf = tonumber(input(""))                     if pin_abf == pc.getqf("konto_pin") then                         say_title("Hoşgeldin ".. pc.get_name() ..".")                         say("")                         say("Şifre doğrulandı.")                         say("Yeni şifrenizi girin: (Sadece rakam)")                         local pin_eing = tonumber(input("12345"))                         if pin_eing > 9999 and pin_eing < 100000 then                             say_title("Hoşgeldin ".. pc.get_name() ..".")                             say("")                             say("Şifre geçerlidir.")                             say("")                             say_reward("Şifreniz " ..pin_eing.. " olsun mu?")                             local sel=select("Evet", "Hayır")                             if sel==1 then                                 pc.setqf("konto_pin", pin_eing)                                 say_title("Hoşgeldin ".. pc.get_name() ..".")                                 say("")                                 say("Şifreniz değiştirildi.")                                 say("Sonra görüşürüz...")                             elseif sel==2 then                                 say_title("Hoşgeldin ".. pc.get_name() ..".")                                 say("")                                 say("Görüşürüz dostum.")                             else                                 -- !                             say("Bilinmeyen bir hata!")                             say("Lütfen hatayı yoneticilere bildirin.")                             say("Hatanız çözülecektir.")                             say("Kolay gelsin!")                             say("Hata Kodu : 3")                             end                         elseif pin_eing > 99999 or pin_eing == 0 or pin_eing < 10000 then                             say_title("Hoşgeldin ".. pc.get_name() ..".")                             say("")                             say("Üzgünüm ama bir yerde hata yaptın.")                             say("Şifreniz değiştirilemedi.")                             say("")                             say("")                             say_reward("Bilgi: Şifre sadece rakamdan oluşmalıdır!")                             say_reward("Bilgi: Şifre 99999'dan büyük olamaz!")                             say_reward("Bilgi: Şifre 10000'den küçük olamaz!")                         else                                                          say("Bilinmeyen bir hata!")                             say("Lütfen hatayı yoneticilere bildirin.")                             say("Hatanız çözülecektir.")                             say("Kolay gelsin!")                             say("Hata Kodu : 4")                         end                     else                         say_title("Hoşgeldin ".. pc.get_name() ..".")                         say("")                         say("Yanlış şifre.")                     end                 elseif sel==5 then                     -----------------------------------------------------                     say_title("Hoşgeldin ".. pc.get_name() ..".")                     say("")                     say("Görüşürüz...")                 else                                          say("Bilinmeyen bir hata!")                     say("Lütfen hatayı yoneticilere bildirin.")                     say("Hatanız çözülecektir.")                     say("Kolay gelsin!")                     say("Hata Kodu : 5")                 end             end         end     end end
Kod:
20360 npcnin kodu kendiniz editleyebilirsiniz.

Metin2'de Banka Sistemi Nedir?

Banka sistemi, Metin2 oyununda oyuncuların eşyalarını, altınlarını ve değerli öğelerini güvenli bir şekilde saklamasını sağlayan temel sunucu tarafında çalışan bir özelliktir. Özellikle Metin2 sunucularında aktif olarak görev yapan geliştiriciler için banka sistemleri, oyuncu deneyimini artırmak ve sunucu ekonomisini daha dengeli hale getirmek açısından kritik öneme sahiptir. Bu yazıda, Metin2 banka sistemlerinin nasıl çalıştığını, hangi teknik yapılarla desteklendiğini ve özellikle quest sistemleriyle nasıl entegre edilebileceğini detaylı olarak inceleyeceğiz.

Banka Sisteminin Temel Yapısı

Metin2 banka sistemi genellikle oyun içi bir NPC (Non-Player Character) aracılığıyla erişilir. Oyuncu, bankacıya yaklaşarak eşyalarını saklayabilir, geri alabilir veya belli bir komut ile uzaktan erişim sağlayabilir. Bu sistem, genellikle Lua scripting dili ile geliştirilir ve Metin2 sunucu yapılandırması ile entegre edilir. Banka sistemleri, veritabanı bağlantısı üzerinden çalışır ve her karakterin özel bir depolama alanı vardır.

Quest Sistemleriyle Entegrasyon

Quest sistemleri ile banka sisteminin entegrasyonu, oyunculara daha fazla esneklik ve oynanış derinliği sunar. Örneğin, bir quest tamamlandığında ödül olarak eşya bankaya otomatik olarak gönderilebilir. Bu gibi işlemler genellikle Metin2 Lua scriptleri ile yapılır. Quest sistemlerinde kullanılan 'trigger', 'state', 'flag', 'reward' gibi kavramlar banka sistemi ile birlikte çalışarak daha karmaşık senaryolar yaratılmasını sağlar. Örneğin, bir daily quest tamamlandığında, ödül doğrudan oyuncunun envanterine değil, bankasına yönlendirilebilir.

Banka Sistemi Geliştirme ve Hata Ayıklama

Banka sistemi geliştirilirken dikkat edilmesi gereken önemli konulardan birisi hata ayıklama sürecidir. Lua dilinde yazılmış banka scriptleri, bazen veritabanı bağlantı hatalarına, eşya ID çakışmalarına veya yetkilendirme problemlerine neden olabilir. Bu tür hatalar için, geliştiriciler genellikle debug komutları kullanarak logları takip eder. Metin2 sunucularında hata ayıklama yaparken, banka sistemlerindeki 'timer', 'flag' ve 'state' değişkenlerinin doğru yönetilmesi büyük önem taşır.

Özel Banka Özellikleri

Günümüz Metin2 sunucularında, standart banka sistemlerinin ötesine geçen gelişmiş özellikler de eklenmektedir. Bunlar arasında şifre korumalı bankalar, çoklu karakter paylaşımı, otomatik envanter temizleme ve quest ödüllerinin doğrudan bankaya yönlendirilmesi sayılabilir. Bu tür gelişmiş sistemler, genellikle Metin2dev veya Martysama gibi geliştirici platformlarında paylaşılan özel quest scriptleri ile sağlanır. Oyuncular, bu sistemler sayesinde oyun içi varlıklarını daha iyi organize edebilir ve güvenlik altına alabilirler.

Sonuç

Metin2 banka sistemi, hem oyuncular hem de geliştiriciler için kritik bir öneme sahiptir. Doğru yapılandırıldığında, hem oyun içi ekonomiyi dengeler hem de oyuncu deneyimini artırır. Özellikle quest sistemleri ile entegre çalıştığında, banka sistemi daha da güçlü bir oynanış mekaniği haline gelir. Metin2 sunucularında banka sistemlerini geliştirmek isteyen geliştiricilerin, Lua dili ve veritabanı yapıları hakkında bilgi sahibi olması gerekir.


What is the Bank System in Metin2?

The bank system is a core server-side feature in Metin2 that allows players to securely store their items, gold, and valuable objects. For developers actively working on Metin2 servers, bank systems are critically important for enhancing player experience and balancing server economy. In this article, we will examine in detail how Metin2 bank systems work, what technical structures support them, and how they can be integrated with quest systems.

Basic Structure of the Bank System

The Metin2 bank system is typically accessed through an NPC (Non-Player Character) within the game. Players can store items, retrieve them, or gain remote access via specific commands. This system is generally developed using the Lua scripting language and integrated into the Metin2 server configuration. Bank systems operate via database connections and each character has its own private storage area.

Integration with Quest Systems

Integrating the bank system with quest systems provides players with more flexibility and gameplay depth. For example, upon completing a quest, rewards can automatically be sent to the player's bank. Such operations are usually done via Metin2 Lua scripts. Concepts like 'trigger', 'state', 'flag', and 'reward' used in quest systems allow more complex scenarios when combined with the bank system. For instance, upon completing a daily quest, the reward might be directed to the player's bank instead of directly into their inventory.

Developing and Debugging the Bank System

One of the important aspects when developing a bank system is debugging. Lua-written bank scripts may sometimes cause database connection errors, item ID conflicts, or authorization issues. To address such problems, developers often use debug commands to monitor logs. When debugging on Metin2 servers, correctly managing 'timer', 'flag', and 'state' variables within the bank system is crucial.

Custom Bank Features

Today's Metin2 servers often include advanced features beyond standard bank systems. These include password-protected banks, multi-character sharing, automatic inventory cleanup, and directing quest rewards directly to the bank. These advanced systems are usually provided by special quest scripts shared on developer platforms like Metin2dev or Martysama. Thanks to these systems, players can better organize and secure their in-game assets.

Conclusion

The Metin2 bank system holds critical importance for both players and developers. When properly configured, it balances the in-game economy and enhances the player experience. Especially when integrated with quest systems, the bank system becomes a much stronger gameplay mechanism. Developers looking to enhance bank systems on Metin2 servers must have knowledge of Lua language and database structures.
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Benzer konular

Geri
Üst Alt