Biyalog Sistemi [Tek Tık] & [WS'lik] - Lua

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Bu lua'yı kendim beyefendinin birisine yazmıştım, sizlerle paylaşmak istedim.

Kaynak kodları tamamen sıfırdan tarafımca yazılmıştır.

Hiçbirşekilde bug yoktur.







Deneyenler kanıt olarak atarsa konuya eklerim.

İndirmeden kaynak kodlara bakmak isteyenler için ;
Kod:
quest biyolog_islemleri begin     state start begin         function kotrol()             if pc.getqf("30lvl_biyolog") == 1 and                 pc.getqf("40lvl_biyolog") == 1 and                     pc.getqf("50lvl_biyolog") == 1 and                         pc.getqf("60lvl_biyolog") == 1 and                             pc.getqf("70lvl_biyolog") == 1 and                                 pc.getqf("80lvl_biyolog") == 1 and                                     pc.getqf("85lvl_biyolog") == 1 and                                         pc.getqf("90lvl_biyolog") == 1 and                                             pc.getqf("92lvl_biyolog") >= 1                                                 and pc.getqf("94lvl_biyolog") >= 1 then                 return true             else                 return false             end         end         function biyologlar()             if pc.getqf("30lvl_biyolog") != 1 then                 say_turuncu("Biyolog Etkisi (1)")                 say_title("")                 say_sari("Hareket Hızı +10% (Kalıcı)")                 affect.add_collect(apply.MOV_SPEED, 10, 60*60*24*365*60)                 pc.setqf("30lvl_biyolog",1)                 syschat("+10% Hareket Hızı Kazandın !")                 wait()                 return true             elseif pc.getqf("40lvl_biyolog") != 1 then                 say_turuncu("Biyolog Etkisi (2)")                 say_title("")                 say_sari("Saldırı Hızı +5%(Kalıcı)")                 affect.add_collect(apply.ATT_SPEED,5,60*60*24*365*60)                 pc.setqf("40lvl_biyolog",1)                 syschat("+5% Saldiri Hizi Kazandin !")                 wait()                 return true             elseif pc.getqf("50lvl_biyolog") != 1 then                 say_turuncu("Biyolog Etkisi (3)")                 say_title("")                 say_sari("Savunma +60 (Kalıcı)")                 affect.add_collect(apply.DEF_GRADE_BONUS,60,60*60*24*365*60)                 pc.setqf("50lvl_biyolog",1)                 syschat("+60% Savunma (Defans) Kazandin !")                 wait()                 return true             elseif pc.getqf("60lvl_biyolog") != 1 then                 say_turuncu("Biyolog Etkisi (4)")                 say_title("")                 say_sari("Saldırı Değeri +50 (Kalıcı)")                 affect.add_collect(apply.ATT_GRADE_BONUS,50,60*60*24*365*60)                 pc.setqf("60lvl_biyolog",1)                 syschat("+50% Saldiri Degeri Kazandin !")                 wait()                 return true             elseif pc.getqf("70lvl_biyolog") != 1 then                 say_turuncu("Biyolog Etkisi (5)")                 say_title("")                 say_sari("+11% Hareket Hızı (Kalıcı)")                 say_sari("+10% Hasar Azaltma (Kalıcı)")                 affect.remove_collect(apply.MOV_SPEED, 10, 60*60*24*365*60)                 affect.add_collect(apply.MOV_SPEED,21,60*60*24*365*60)                 affect.add_collect_point(POINT_DEF_BONUS,10,60*60*24*365*60)                 pc.setqf("70lvl_biyolog",1)                 syschat("+11% Hareket Hızı ve +10% Hasar Azaltma Kazandın !")                 wait()                 return true             elseif pc.getqf("80lvl_biyolog") != 1 then                 say_turuncu("Biyolog Etkisi (6)")                 say_title("")                 say_sari("Saldırı Hızı +15% (Kalıcı)")                 say_sari("+10% Saldırı Değeri (Kalıcı)")                 affect.remove_collect(apply.ATT_SPEED, 5, 60*60*24*365*60)                 affect.add_collect(apply.ATT_SPEED,11,60*60*24*365*60)                 affect.add_collect_point(POINT_ATT_BONUS,10,60*60*24*365*60)                 pc.setqf("80lvl_biyolog",1)                 syschat("+6% Saldırı Hızı ve +10% Saldırı Değeri Kazandın !")                 wait()                 return true             elseif pc.getqf("85lvl_biyolog") != 1 then                 say_turuncu("Biyolog Etkisi (7)")                 say_title("")                 say_sari("Saldırı Hızı +15% (Kalıcı)")                 say_sari("+10% Saldırı Değeri (Kalıcı)")                 affect.add_collect_point(POINT_RESIST_WARRIOR,10,60*60*24*365*60)                 affect.add_collect_point(POINT_RESIST_ASSASSIN,10,60*60*24*365*60)                 affect.add_collect_point(POINT_RESIST_SURA,10,60*60*24*365*60)                 affect.add_collect_point(POINT_RESIST_SHAMAN,10,60*60*24*365*60)                 pc.setqf("85lvl_biyolog",1)                 syschat("10% Yarı İnsan Savunması Kazandın !")                 wait()                 return true             elseif pc.getqf("90lvl_biyolog") != 1 then                 say_turuncu("Biyolog Etkisi (8)")                 say_title("")                 say_sari("+10% Yarı İnsan Saldırı Hazarı (Kalıcı)")                 affect.add_collect_point(POINT_ATTBONUS_HUMAN,10,60*60*24*365*60)                 pc.setqf("90lvl_biyolog",1)                 syschat("10% Yarı İnsan Saldırı Hazarı Kazandın !")                 wait()                 return true             elseif pc.getqf("92lvl_biyolog") < 1 then                 say_turuncu("Biyolog Etkisi (9)")                 say_title("")                 say_reward("Almak İstediğin Bonusu Seç ;")                 local s = select ("+1000 HP"," Savunma Değeri +120 ","Saldırı Değeri +50")                 if s == 1 then                     affect.add_collect(apply.MAX_HP,1000,60*60*24*365*60)                     pc.setqf("92lvl_biyolog",1)                     syschat("+1000 HP Aldın !")                     say_turuncu("Biyolog Etkisi (9)")                     say_title("")                     say_sari("Seçimin : +1000 HP")                     wait()                     return true                 elseif s == 2 then                     affect.add_collect(apply.DEF_GRADE_BONUS,120,60*60*24*365*60)                     pc.setqf("92lvl_biyolog",2)                     syschat("+120 Savunma Aldın !")                     say_turuncu("Biyolog Etkisi (9)")                     say_title("")                     say_sari("Seçimin : Savunma Değeri +120")                     wait()                     return true                 elseif s == 3 then                     affect.remove_collect(apply.ATT_GRADE_BONUS, 50, 60*60*24*365*60)                     affect.add_collect(apply.ATT_GRADE_BONUS,100,60*60*24*365*60)                     pc.setqf("92lvl_biyolog",3)                     syschat("+50 Saldiri Aldın !")                     say_turuncu("Biyolog Etkisi (9)")                     say_title("")                     say_sari("Seçimin : Saldırı Değeri +50")                     wait()                     return true                 end             elseif pc.getqf("94lvl_biyolog") < 1 then                 say_turuncu("Biyolog Etkisi (10)")                 say_title("")                 say_reward("Almak İstediğin Bonusu Seç ;")                 local s = select ("+1100 HP","Savunma Değeri +140","Saldırı Değeri +60")                 if s == 1 then                     affect.add_collect(apply.MAX_HP,1100,60*60*24*365*60)                     pc.setqf("94lvl_biyolog",1)                     syschat("+1100 HP Aldın !")                     say_turuncu("Biyolog Etkisi (10)")                     say_title("")                     say_sari("Seçimin : +1100 HP")                     wait()                     return true                 elseif s == 2 then                     affect.add_collect(apply.DEF_GRADE_BONUS,140,60*60*24*365*60)                     pc.setqf("94lvl_biyolog",2)                     syschat("+140 Savunma Aldın !")                     say_turuncu("Biyolog Etkisi (10)")                     say_title("")                     say_sari("Seçimin : Savunma Değeri +140")                     wait()                     return true                 elseif s == 3 then                     affect.add_collect(apply.ATT_GRADE_BONUS,60,60*60*24*365*60)                     pc.setqf("94lvl_biyolog",3)                     syschat("+60 Saldiri Aldın !")                     say_turuncu("Biyolog Etkisi (10)")                     say_title("")                     say_sari("Seçimin : Saldırı Değeri +60")                     wait()                     return true                 end             end             return true         end         when 20084.chat."Biyolog Etkileri" begin             if biyolog_islemleri.kotrol() == true then                 say_title(mob_name(npc.get_race()))                 say_reward("Bütün biyolog etkilerini almışsın,")                 say_reward("Daha fazla alabileceğin bir etki yok.")                 return             end             say_title(mob_name(npc.get_race()))             say("Merhaba "..pc.get_name()..",")             say_reward("Biyolog etkilerini almaya başlamak istermisin?")             local mix = select("Tamam, Başlayalım","Hayır, Kalsın")             if mix == 2 then                 say_title(mob_name(npc.get_race()))                 say_reward("Etkileri istediğin zaman gelip alabilirsin ..")                 return             else                 while biyolog_islemleri.kotrol() != true do                     biyolog_islemleri.biyologlar()                 end                 say_turuncu("Etkiler Tamamlandı!")                 say_title("")                 say_reward("Tebrikler,")                 say_reward("Bütün etkileri aldın, iyi oyunlar.")                 return             end         end     end end
13.03.2017 eklenti
quest_functions açılır ve içerisine eklenir.
Kod:
say_sari say_turuncu

questlib.lua açılır ve içerisine eklenir.
Kod:
function say_sari(name) say(color256(255, 255, 0)..name..color256(255, 255, 0)) end function say_turuncu(name) say(color256(255, 128, 0)..name..color256(255, 125, 0)) end


Güle güle kullanmanız dileğiyle ..
Biyalog Sistemi [Tek Tık] & [WS'lik] - Lua

Metin2 Lobby olarak, Metin2 sunucularında quest geliştirme konusunda uzmanlaşmış bir platformsunuz. Bu yazıda, özellikle Lua dili kullanılarak geliştirilmiş olan Biyalog Sistemi'ni inceleyeceğiz. Bu sistem, oyuncuların biyografilerini kolayca yönetmelerini ve sunucu sahiplerinin bu biyografileri tek tıkla veya WS (World Server) üzerinden kontrol edebilmelerini sağlayan güçlü bir.quest modülüdür.

Biyalog Nedir?
Biyalog, oyuncuların kendi karakterlerine ait kişisel hikâyelerini, geçmişlerini, deneyimlerini ve hedeflerini tanımladıkları bir sistemdir. Metin2 gibi MMORPG oyunlarda, oyuncuların karakterlerine daha fazla anlam katması açısından büyük önem taşır. Biyografik bilgiler, hem diğer oyuncular tarafından okunabilir hem de sunucu yönetimi tarafından onaylanabilir veya değerlendirilebilir.

Neden Biyalog Sistemi Kullanmalısınız?
Oyuncu Katılımı: Karakterlerinize derinlik katarak oyuncuların oyun içi deneyimini artırır.
Rol Yapma Teşviki: Oyuncuların karakterlerini daha gerçekçi ve detaylı bir şekilde canlandırmasını sağlar.
Sunucu Yönetimi Kolaylığı: Tek tıkla onaylama, silme veya düzenleme işlemleri sayesinde yönetim süreci hızlanır.
WS Entegrasyonu: World Server ile entegre çalışarak sunucular arası veri paylaşımını mümkün kılar.

Sistem Özellikleri
1. Tek Tık İşlem Yeteneği: Biyalog gönderen oyuncuların verileri, admin panelinden veya oyun içi komutla tek tıkla incelenebilir ve yönetilebilir.
2. WS Uyumlu Yapı: World Server entegrasyonu sayesinde, tüm sunuculardaki biyografiler merkezi olarak yönetilebilir.
3. Lua Tabanlı Script: Quest sistemi üzerinde çalışan bu modül, Lua dilinin esnekliği sayesinde kolayca özelleştirilebilir.
4. Otomatik Doğrulama Seçenekleri: Flag ve state kontrolleriyle, doğrulanmamış biyaloglar otomatik olarak filtrelenebilir.
5. Görsel Arayüz Desteği: Quest penceresi üzerinden kullanıcı dostu bir arayüzle etkileşim sağlanabilir.

Kurulum ve Geliştirme Notları
Bu sistem, standart Metin2 quest yapısı üzerine kurulmuştur. Lua scriptleri, quest_info.lua, mob_name.lua, item_proto.lua gibi temel dosyalarla entegre çalışır. Kurulum sırasında quest dosyasının doğru şekilde server_info.lua ve client tarafına aktarılması gerekir. Hata ayıklama (debug) işlemleri için sys_log kullanılır.

Geliştirme Sürecinde Dikkat Edilmesi Gerekenler
Flag Kullanımı: Oyuncu başına biyalog gönderimini sınırlamak için flag'ler kullanılmalıdır.
Timer Ayarları: Biyalog gönderim süresini sınırlamak için timer kullanılabilir.
Reward Sistemi: Biyalog onaylandığında ödül verilebilir. Ödül olarak item, exp veya gold verilebilir.

Sonuç
Metin2 sunucularında özel quest geliştirmeye odaklanmış geliştiriciler için Biyalog Sistemi, hem estetik hem de fonksiyonel açıdan önemli bir özelliktir. Lua tabanlı yapı sayesinde, sistemi kendi sunucunuza göre özelleştirebilir ve oyuncu deneyimini zenginleştirebilirsiniz. Tek tıkla yönetim ve WS entegrasyonu sayesinde sunucu yönetimi de oldukça kolaylaşır. Metin2 Lobby olarak, bu tür gelişmiş quest sistemlerini ücretsiz ve profesyonel destekle sunuyoruz.


Biography System [One Click] & [WS Compatible] - Lua

Metin2 Lobby serves as a specialized platform for quest development in Metin2 servers. In this article, we will examine the Biography System, developed using the Lua language. This system allows players to easily manage their character biographies and enables server administrators to control these biographies with a one-click method or via World Server (WS).

What is Biography System?
Biography system is a module where players define personal stories, backgrounds, experiences, and goals of their characters. In MMORPG games like Metin2, adding depth to characters significantly enhances player engagement. These biographical entries are readable by other players and can be reviewed or evaluated by server management.

Why Should You Use Biography System?
Player Engagement: Adds depth to your characters, enhancing the overall gameplay experience.
Roleplay Encouragement: Helps players embody their characters more realistically and detailedly.
Management Ease: One-click approve, delete, or edit functions speed up the administration process.
WS Integration: Enables centralized management of biographies across multiple servers through World Server integration.

System Features
1. One-Click Operation Capability: Player-submitted biographies can be viewed and managed from the admin panel or within the game via a single command.
2. WS-Compatible Structure: Allows centralized management of biographies across all servers via World Server integration.
3. Lua-Based Scripting: This module, built on the quest system, can be easily customized thanks to Lua's flexibility.
4. Automatic Validation Options: Unverified biographies can be automatically filtered using flag and state controls.
5. Visual Interface Support: Interaction can be done via a user-friendly interface through the quest window.

Installation and Development Notes
This system is built upon standard Metin2 quest structures. The Lua scripts integrate with core files such as quest_info.lua, mob_name.lua, and item_proto.lua. During installation, ensure that the quest file is correctly transferred to both server_info.lua and the client side. For debugging purposes, sys_log is used.

Considerations During Development
Flag Usage: Flags should be used to limit biography submissions per player.
Timer Settings: A timer can be set to restrict the time interval between biography submissions.
Reward System: Rewards such as items, exp, or gold can be granted upon biography approval.

Conclusion
For developers focusing on custom quests in Metin2 servers, the Biography System is an essential feature both aesthetically and functionally. Thanks to its Lua-based structure, you can customize the system according to your own server’s needs and enrich the player experience. With one-click management and WS integration, server administration becomes much easier. At Metin2 Lobby, we provide such advanced quest systems with free and professional support.
 

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

Benzer konular

Geri
Üst Alt