pc.give_exp2 komutu kullanmadan direk level vermek Yeni fonksiyon

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhaba arkadaşlar yeni fonksiyonumuz sayesinde artık oyun içinde pc.give_exp2 komutu kullanmadan level verebileceğiz.

VS lik serverler için birebir quest.

İlk olarak questimiz :

Kod:
quest blackforce begin      state start begin          when 20092.[/FONT]chat."Level istiyorum" begin              say_title("Merhabalar")              say("Demek level istiyorsun?")              say("Hmmm tamam sana level vereceğim.")              local a = select("İşleme devam et","Istemiyorum")              if a == 2 then                  return              else                      say("Level verildi...")                      say("İyi oyunlar "..pc.get_name()..",")  blackforce_level_aldir(250)                         end                      end                  end  end

Questi nasıl yüklerim ?

İlk olarak quest içeriğini kopyalayın, sonra bir metin belgesi içine yapıştırın.Daha sonra farklı kaydet diyerek kayıt adını levelverme.quest olarak kayıt edin.

Sonra questimizi /usr/game/share/locale/turkey/quest/ içine atın.

Daha sonra

PuTTy'e gelip şu komutları tek tek yazın ;

cd /usr/game/share/locale/turkey/quest/

./qc levelverme.quest

Bu komutlardan sonra quest yüklenecektir.

Quest yüklememiz bitti şimdide

/usr/game/share/locale/turkey/quest/ içinde bulunan

"quest_functions" dosyasını masa üstünüze çekin.

Sağ tıklayıp Notepad++ ile açın (

açtıktan sonra listenin en sonuna gelip , "blackforce_level_aldir " al komutunu ekleyin. ( tırnak işaretleri yok )

Kayıt edip gene quest dosyasının içine atın.

Sonra " questlib.lua " yı masaüstüne çekin ve listenin en sonuna gelip bir boşluk bırakarak ;

Kod:
function blackforce_level_aldir(carlevel)      if pc.get_level() > carlevel then          return      else          local level = pc.get_level()          local levelatla = carlevel          local simdiatlaniyor = levelatla-level          for i = 1, simdiatlaniyor do              local give_exp = pc.get_next_exp()              pc.give_exp2(give_exp)              end      end  end

Komutunu ekleyin.Daha sonra geri quest dosyasına atın...

İşlem bitti. Oyun içinde /reload q yazarak questi aktifleştirebilirsiniz.

20092 no'lu npcye giderek level alma sekmesini görebilirsiniz.

Eğer verilecek leveli ayarlamak isterseniz
Quest dosyanızdaki " blackforce_level_aldir(250) " bölümündeki (250) yazan yeri editleyebilirsiniz.Kaç yazarsanız o kadar level verir.

Hayırlı kullanımlar :)
Metin2'de pc.give_exp2 Kullanmadan Doğrudan Level Vermek
Metin2 sunucularında level veya tecrübe verme işlemi genellikle pc.give_exp2 fonksiyonu ile yapılır. Ancak bazı durumlarda doğrudan seviye (level) vermek isteyebilirsiniz. Bu yöntem özellikle özel quest sistemleri, özel ödüller veya admin kontrolleri gibi senaryolarda işe yarar. Bu yazıda, pc.give_exp2 komutunu kullanmadan doğrudan level nasıl verilir onu inceleyeceğiz.

Metin2 Quest Sistemi ve Level Mekaniği
Metin2 oyununda karakterler, tecrübe puanları kazanarak seviyelerini artırır. Normal şartlarda bu, canavar öldürerek, görev yaparak ya da belirli etkinliklerle olur. Ancak geliştiriciler, özel durumlar için Lua scriptlerinde doğrudan seviye verme mekanizması oluşturabilir. Bu işlem, genellikle quest dosyalarında özel event'ler ile tetiklenir.

Doğrudan Level Verme Fonksiyonu
Lua scriptlerinde doğrudan level vermek için pc.set_level(level) fonksiyonu kullanılabilir. Bu fonksiyon, oyuncunun seviyesini doğrudan belirtilen değere ayarlar. Örneğin, oyuncunun seviyesini 99'a yükseltmek isterseniz:

Kod:
[COLOR=#9365b8]pc.set_level(99)[/COLOR]


Bu fonksiyon, tecrübeye dönüştürmeden doğrudan level atlamasını sağlar. Böylece pc.give_exp2 komutuna gerek kalmaz.

Quest Dosyasında Uygulama Örneği
Bir Metin2 quest dosyasında bu fonksiyonu kullanmak oldukça kolaydır. Örnek bir quest kodu aşağıdaki gibidir:

Kod:
[COLOR=#54acd2]quest level_reward begin[BR][/BR]    state start begin[BR][/BR]        when login with pc.get_level() < 30 begin[BR][/BR]            say_title('Seviye Hediyesi')[BR][/BR]            say('Sunucumuza hoş geldin!')[BR][/BR]            local answer = select('Level al', 'Reddet')[BR][/BR]            if answer == 1 then[BR][/BR]                pc.set_level(30)[BR][/BR]                chat('Tebrikler! Seviyen 30 oldu.')[BR][/BR]            end[BR][/BR]        end[BR][/BR]    end[BR][/BR]end[/COLOR]


Faydaları ve Dikkat Edilmesi Gerekenler
Bu yöntem, hızlı level atlama, test süreçleri, özel ödüller gibi durumlarda büyük kolaylık sağlar. Ancak, yanlış kullanıldığında dengesizlik yaratabilir. Oyuncuların normal gelişim akışını bozabileceğinden, dikkatli kullanılmalıdır.

Sonuç
Metin2 geliştiricileri için pc.set_level() fonksiyonu, pc.give_exp2 yerine kullanılabilecek güçlü bir alternatiftir. Özellikle quest sistemleriyle entegre edildiğinde, kullanıcıya özel seviye yükseltmeleri sağlanabilir. Bu, hem oyun içi özel etkinlikler hem de admin kontrolü için ideal bir yöntemdir.


Giving Level Directly in Metin2 without Using pc.give_exp2
In Metin2 servers, giving levels or experience is usually done via the pc.give_exp2 function. However, there are cases where you may want to give the level directly. This approach is especially useful in custom quest systems, special rewards, or admin controls. In this article, we will examine how to give levels directly without using the pc.give_exp2 command.

Metin2 Quest System and Level Mechanics
In Metin2, characters increase their levels by earning experience points. Normally, this occurs through defeating monsters, completing quests, or participating in certain events. However, developers can create direct level-giving mechanisms within Lua scripts for special scenarios. This process is typically triggered by custom events inside quest files.

Direct Level Giving Function
To give a level directly in Lua scripts, the pc.set_level(level) function can be used. This function sets the player's level to the specified value directly. For example, to set the player’s level to 99:

Kod:
[COLOR=#9365b8]pc.set_level(99)[/COLOR]


This function causes the level jump directly without converting experience, so the use of pc.give_exp2 becomes unnecessary.

Example Implementation in Quest File
Using this function inside a Metin2 quest file is quite simple. Here’s a sample quest code:

Kod:
[COLOR=#54acd2]quest level_reward begin[BR][/BR]    state start begin[BR][/BR]        when login with pc.get_level() < 30 begin[BR][/BR]            say_title('Level Reward')[BR][/BR]            say('Welcome to our server!')[BR][/BR]            local answer = select('Receive Level', 'Decline')[BR][/BR]            if answer == 1 then[BR][/BR]                pc.set_level(30)[BR][/BR]                chat('Congratulations! Your level is now 30.')[BR][/BR]            end[BR][/BR]        end[BR][/BR]    end[BR][/BR]end[/COLOR]


Benefits and Precautions
This method provides great convenience in quick level jumps, testing phases, and special rewards. However, if misused, it can cause imbalances. Since it may disrupt the natural progression flow of players, it should be applied carefully.

Conclusion
For Metin2 developers, the pc.set_level() function serves as a powerful alternative to pc.give_exp2. When integrated into quest systems, it allows custom level upgrades for users. This makes it an ideal solution for both in-game special events and admin-controlled adjustments.
 

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

Benzer konular

Geri
Üst Alt