[LUA] Level Seçme Menüsü

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhaba,

Son zamanlarda duyduğum bir istekti bende sizlerle paylaşmak istedim ister seviye yüzüğü gibi kullanıp düzenlemeler yaparak nesne marketinize ekleyebilir isterseniz de başlangıca ekleyip istenilen seviyede başlatabilirsiniz ben başlangıca nasıl ekleyeceğimizi de anlatacağım, anlatıma geçelim;


1.Aşama:[/FONT]
Kod:
quest levelsec begin     state start begin         when 70058.use begin             if pc.getqf("level_sec") == 1 then                 syschat("Daha önce kullanmışsın.")                 return             end             if pc.get_level() != 1 then                 syschat("Yalnızca 1.Seviyede kullanabilirsin. ")                 return             end                 say_title("Başlangıç Yüzüğü ")                 say("Kaçıncı Seviye başlamak istiyorsun?")                 say_reward("Unutma sadece 1.seviyede kullanabilirsin!")                 local s = select("1 Level Kal ","34 Level Başla ","55 Level Başla ")             if s == 1 then                 say_title("Başlangıç Yüzüğü - 1 Level ")             local ss = select("1 Level Kal ","Biraz daha düşüneyim ")             if ss == 1 then                 at_seviyesi = 30 -- Buraya vereceğiniz at seviyesini yazın.                 levelsec.baslangicSeviyeAyarla(baslangic_seviyesi)                 horse.set_level(at_seviyesi)                 horse.summon()                 horse.ride()                 syschat("1 Level kaldın. ")                 pc.setqf("level_sec",1)                 pc.remove_item(70058)             elseif ss == 2 then             end             elseif s == 2 then                 say_title("Başlangıç Yüzüğü - 34 Level ")             local sss = select("34 Level Ol ","Biraz daha düşüneyim ")             if sss == 1 then                 baslangic_seviyesi = 34 -- Buraya başlangıç seviyesini yazın.                 at_seviyesi = 30 -- Buraya vereceğiniz at seviyesini yazın.                 levelsec.baslangicSeviyeAyarla(baslangic_seviyesi)                 horse.set_level(at_seviyesi)                 horse.summon()                 horse.ride()                 syschat("34 Level oldun. ")                 pc.setqf("level_sec",1)                 pc.remove_item(70058)             elseif sss == 2 then             end             elseif s == 3 then                 say_title("Başlangıç Yüzüğü - 55 Level ")             local ummeh122 = select("55 Level Ol ","Biraz daha düşüneyim ")                 if ummeh122 == 1 then                     baslangic_seviyesi = 55 -- Buraya başlangıç seviyesini yazın.                     at_seviyesi = 30 -- Buraya vereceğiniz at seviyesini yazın.                     levelsec.baslangicSeviyeAyarla(baslangic_seviyesi)                     horse.set_level(at_seviyesi)                     horse.summon()                     horse.ride()                     syschat("55 Level oldun. ")                     pc.setqf("level_sec",1)                     pc.remove_item(70058)                 elseif ummeh122 == 2 then                 end             end         end                --- Seviye verme fonksiyonu BlackForce ye aittir.         function baslangicSeviyeAyarla(gelen_seviye_degeri)             gelenSeviye = gelen_seviye_degeri             oyuncu_seviyesi = pc.get_level()             if oyuncu_seviyesi > gelenSeviye then                 return             else                 seviyeFark = gelenSeviye - oyuncu_seviyesi                 for i=1,seviyeFark,1 do                     gerekliTecrube =  pc.get_next_exp()                     tecrubeYukle = gerekliTecrube                     pc.give_exp2(tecrubeYukle)                 end             end         end         --- Seviye verme fonksiyonu BlackForce ye aittir.            end end

Kodu kopyalayıp not defterine yapıştıralım ardından level_sec.lua adında kaydedip ftp de quest dizinine atalım.
Putty Login olalım ve

cd /usr/game/share/locale/turkey/quest
./qc level_sec.lua


yazıp 2.aşamaya geçelim.


2.Aşama:
Yine ftp de notarget/login klasörüne girip give_basic_weapon.start dosyamızda eğer sizin dosyanız karakter karakter özel olarak item veriyorsa genel item veren kod bloğuna;

Kod:
pc . give_item2 ( "70058" , 1 )

ekleyip kaydedelim.

Son:
Oyundan gm karakterimiz ile /reload q çekelim veya ben net adamım diyorsanız direkt reboot atalım :)


İyi kullanımlar bir teşekkür yeterli :)

Metin2 Lua ile Level Seçme Menüsü Oluşturma Rehberi

Metin2 sunucularında quest sistemleri, oyuncuların deneyimlerini zenginleştirmek ve daha interaktif hale getirmek için oldukça önemli bir rol oynar. Bu yazıda özellikle Lua dilinde yazılmış bir Level Seçme Menüsü quest scriptinin nasıl oluşturulacağını detaylıca ele alacağız. Metin2 quest sistemine aşina olanlar için bu tür özel menüler hem sunucu özelleştirme hem de kullanıcı deneyimi açısından büyük faydalar sağlar.

Level Seçme Menüsünün Amacı

Level Seçme Menüsü, oyuncuların belirli seviyelere ulaştıklarında özel ödüller, görevler veya eylemler başlatmak için ideal bir yöntemdir. Örneğin, 30. levele ulaşan bir oyuncuya özel bir ödül sunabilir ya da yeni bir quest zinciri başlatabilirsiniz. Bu tür menüler sayesinde, quest sisteminiz daha dinamik ve kişiselleştirilebilir hale gelir.

Geliştirme Ortamı ve Araçlar[/BR][/BR]
Metin2 quest geliştirme sürecinde, Lua script dili kullanılır. Geliştirme yapabilmek için Metin2Dev, Martysama[/BR] gibi topluluklardan yardım alabilirsiniz. Ayrıca, quest hatalarını ayıklamak için debug komutları ve quest log sistemleri oldukça faydalıdır.

Script Yapısı ve Kodlama

Level Seçme Menüsü için temel Lua kod yapısı şu şekildedir:

Kod:
[B]quest level_menu begin[BR][/BR]    state start begin[BR][/BR]        when login or levelup with pc.get_level() >= 30 begin[BR][/BR]            say_title('Level Menusu')[BR][/BR]            local selection = select('Level Odulleri', 'Odul Al', 'Yeni Quest Baslat', 'Cikis')[BR][/BR]            if selection == 1 then[BR][/BR]                -- Odul al seçeneği[BR][/BR]                game.drop_item_with_ownership(ITEM_VNUM, 1)[BR][/BR]            elseif selection == 2 then[BR][/BR]                -- Yeni quest başlat[BR][/BR]                set_quest_state('new_quest_name', 'start')[BR][/BR]            end[BR][/BR]        end[BR][/BR]    end[BR][/BR]end[/B]


Bu kod parçasında, oyuncu login olduğunda veya belirli bir seviyeye (örneğin 30) ulaştığında menü gösterilir. Menüden alınan seçimlere göre farklı eylemler tetiklenir. Quest zincirleri, flag ve state kontrolleri ile daha da genişletilebilir.

Menü Tasarımı ve Özellikler

Menü tasarımı sırasında, kullanıcı dostu bir arayüz sağlamak için select() fonksiyonunu kullanabilirsiniz. Bu fonksiyon, oyuncuya bir seçim ekranı sunar ve seçilen değere göre farklı işlemler yapılmasını sağlar. Menüde sunulan seçenekler şunları içerebilir:

- Özel item ödülleri
- Yeni quest başlatma
- Görev tamamlama
- Zaman tabanlı görevler (daily quest)

Hata Ayıklama ve Test Süreci

Quest scriptleri geliştirilirken mutlaka test edilmelidir. Quest hata durumlarında, debug komutları ile hatalar izlenebilir. Özellikle levelup event’lerinde dikkatli olunmalıdır. Yanlış tanımlanan bir trigger, quest’in çalışmamasına neden olabilir.

Özet

Metin2 quest geliştirme, sunucu sahipleri için güçlü bir araçtır. Lua ile yazılmış bir Level Seçme Menüsü, oyunculara daha kişisel ve etkileşimli bir deneyim sunar. Doğru yapılandırılmış bir quest sistemi ile sunucunuzun kalitesi artar ve oyuncu memnuniyeti sağlanır.


Creating a Level Selection Menu in Metin2 with Lua

In Metin2 servers, quest systems play a crucial role in enriching the player experience and making it more interactive. In this article, we will thoroughly explain how to create a Level Selection Menu using Lua. For those familiar with the Metin2 quest system, such custom menus provide significant benefits in both server customization and user experience.

Purpose of the Level Selection Menu

The Level Selection Menu allows players to trigger special rewards, quests, or actions upon reaching specific levels. For instance, when a player reaches level 30, you can offer them a special reward or start a new quest chain. Such menus make your quest system more dynamic and customizable.

Development Environment and Tools

Metin2 quest development relies on the Lua scripting language. You can find help from communities like Metin2Dev and Martysama. Additionally, debug commands and quest logs are very useful for troubleshooting errors.

Script Structure and Coding

The basic Lua structure for a Level Selection Menu looks like this:

Kod:
[B]quest level_menu begin[BR][/BR]    state start begin[BR][/BR]        when login or levelup with pc.get_level() >= 30 begin[BR][/BR]            say_title('Level Menu')[BR][/BR]            local selection = select('Level Rewards', 'Claim Reward', 'Start New Quest', 'Exit')[BR][/BR]            if selection == 1 then[BR][/BR]                -- Claim reward option[BR][/BR]                game.drop_item_with_ownership(ITEM_VNUM, 1)[BR][/BR]            elseif selection == 2 then[BR][/BR]                -- Start new quest[BR][/BR]                set_quest_state('new_quest_name', 'start')[BR][/BR]            end[BR][/BR]        end[BR][/BR]    end[BR][/BR]end[/B]


In this code snippet, the menu appears when the player logs in or reaches a certain level (e.g., 30). Different actions are triggered based on the selected option. Quest chains can be extended further with flag and state controls.

Menu Design and Features

When designing the menu, you can use the select() function to present a user-friendly interface. This function displays a selection screen to the player and triggers different actions based on their choice. Options in the menu may include:

- Special item rewards
- Starting new quests
- Completing tasks
- Time-based quests (daily quests)

Debugging and Testing Process

During development, quest scripts must be thoroughly tested. When encountering quest errors, debug commands can help trace issues. Especially during levelup events, caution must be exercised; a misconfigured trigger might cause the quest not to function properly.

Summary

Developing Metin2 quests is a powerful tool for server owners. A Lua-based Level Selection Menu offers players a more personalized and interactive experience. A well-configured quest system increases the quality of your server and enhances player satisfaction.
 

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

Benzer konular

Geri
Üst Alt