Metin2 Source Fonksiyonları . Sürekli Güncel .

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
1.) Bu Fonksiyonlar Genelde Nerelerde Kullanılır ?

" Fonksiyonlar Döngü Bloklarının İçinde Kullanılır Ve İşlemi Gerçekleştirirler . Genellikle if > Olarak Kullanılırlar Fakat Daha Birçok Alternatifi Mevcuttur . Örnek Verelim ;

Kod:
switch (dwVnum) { case 70006     {         EffectPacket(SE_DXUP_PURPLE)     } }


Bu 70006 İtemine Tıklandığında Mor İksir Efekti Çıkarmasını Sağlayacaktır .

Bunun Gibi Güzel Küçük Sistemleri Gamenize Aşağıdaki Fonksiyonlar Sayesinde Ekleyebilirsiniz ;

Efektler ;

Kod:
EffectPacket(SE_CHINA_FIREWORK);   [FONT=comic sans ms]Havai Fişek Topacı Efekti[/FONT] EffectPacket(SE_CHINA_FIREWORK);   [FONT=comic sans ms]Çin Havai Fişekleri Efekti[/FONT] EffectPacket(SE_HPUP_RED);  [FONT=comic sans ms]Kırmızı Efekti[/FONT] EffectPacket(SE_SPUP_BLUE);  [FONT=comic sans ms]Mavi İksir Efekti[/FONT] EffectPacket(SE_EQUIP_RAMADAN_RING);  [FONT=comic sans ms]Hilal Yüzüğü Efekti[/FONT] EffectPacket(SE_EQUIP_HALLOWEEN_CANDY);  [FONT=comic sans ms]Lolipop Efekti[/FONT] EffectPacket(SE_EQUIP_HAPPINESS_RING);   [FONT=comic sans ms]Mutluluk Yüzüğü Efekti[/FONT] EffectPacket(SE_EQUIP_LOVE_PENDANT);    [FONT=comic sans ms]Ebedi Aşk Tılsımı Efekti[/FONT] EffectPacket( SE_AUTO_HPUP );  [FONT=comic sans ms]Oto Kırmızı İksir Efekti[/FONT] EffectPacket( SE_AUTO_SPUP );  [FONT=comic sans ms]Oto Mavi İksir Efekti[/FONT] EffectPacket(SE_DXUP_PURPLE); [FONT=comic sans ms]Mor İksir Efekti[/FONT] EffectPacket(SE_SPEEDUP_GREEN); [FONT=comic sans ms]Yeşil İksir Efekti[/FONT]


İtem Fonksiyonları ;

Kod:
[COLOR=#333333][FONT=Verdana]RemoveItem(item)[/FONT][/COLOR];  İtemi Siler [COLOR=#333333][FONT=Verdana]SetCount; İtem Miktarını Ayarlar. [/FONT][/COLOR][COLOR=#333333][FONT=Verdana]GetCount; İtem Miktarını Çeker. [/FONT][/COLOR]GetName; İtemin İsmini Gösterir. GetSockets; İtemin Boşluklarını Gösterir. GetWarFlag; İtemin Giyilebirliğini Gösterir.


Bunun Yanında Unutmamak Gerekir , ()-1); Yazan Yere 0 Yazarsanız Oynama Olmaz +1 Yazarsanız 1 Artar .

İtem Ara Fonksiyonları ;
Kod:
AutoGiveItem  İtem Verir


Unutmamak Gerekirki Döngü İçerisinde İşlem Olması Şarttır .

Bonus Fonksiyonları ;

Kod:
AddAffect


Bu Fonksiyon Genellikle case Komutundan Sonra Kullanılır Diyebiliriz . İtemin Size Bonus Vermesini Veya İksirlerin , Havai Fişeklerin Çalışmasını Sağlayan Fonksiyondur . Bunu Kullanım Örnekleriyle Sıralayalım .


AddAffect(AFFECT_CHINA_FIREWORK, POINT_STUN_PCT, 30, AFF_CHINA_FIREWORK, 5*60, 0, true);
" Havai Fişek Bonusu %30 Sersemletici Saldırı Verir . "

Oradaki POINT_STUN_PCT 30

Efsun ; Kırmızı Gösterdiğim Yer

Oranı ; Yeşil Gösterdiğim Yerdir Aşağıdaki Listeye Göre Seçip Herhangi Bir İteme Ekleyebilirsiniz .

Kod:
POINT_HP POINT_SP POINT_ST POINT_HT POINT_DX POINT_IQ
Kod:
POINT_DEF_GRADE
Kod:
[FONT=comic sans ms]POINT_ATT_SPEED[/FONT] [FONT=comic sans ms]POINT_ATT_GRADE[/FONT] [FONT=comic sans ms]POINT_MOV_SPEED [/FONT][FONT=comic sans ms]POINT_CASTING_SPEED[/FONT] [FONT=comic sans ms]POINT_MAGIC_ATT_GRADE[/FONT] [FONT=comic sans ms]POINT_MAGIC_DEF_GRADE [/FONT][FONT=comic sans ms]POINT_HP_REGEN[/FONT] [FONT=comic sans ms]POINT_SP_REGEN [/FONT][FONT=comic sans ms]POINT_POISON_PCT[/FONT] [FONT=comic sans ms]POINT_STUN_PCT[/FONT] [FONT=comic sans ms]POINT_SLOW_PCT[/FONT] [FONT=comic sans ms]POINT_CRITICAL_PCT[/FONT] [FONT=comic sans ms]POINT_PENETRATE_PCT[/FONT] [FONT=comic sans ms]POINT_ATTBONUS_HUMAN POINT_ATTBONUS_ANIMAL[/FONT] [FONT=comic sans ms]POINT_ATTBONUS_ORC[/FONT] [FONT=comic sans ms]POINT_ATTBONUS_MILGYO[/FONT] [FONT=comic sans ms]POINT_ATTBONUS_UNDEAD[/FONT] [FONT=comic sans ms]POINT_ATTBONUS_DEVIL[/FONT] [FONT=comic sans ms]POINT_ATTBONUS_INSECT[/FONT] [FONT=comic sans ms]POINT_ATTBONUS_FIRE[/FONT] [FONT=comic sans ms]POINT_ATTBONUS_ICE[/FONT] [FONT=comic sans ms]POINT_ATTBONUS_DESERT[/FONT] [FONT=comic sans ms]POINT_ATTBONUS_MONSTER[/FONT] [FONT=comic sans ms]POINT_ATTBONUS_WARRIOR[/FONT] [FONT=comic sans ms]POINT_ATTBONUS_ASSASSIN[/FONT] [FONT=comic sans ms]POINT_ATTBONUS_SURA[/FONT] [FONT=comic sans ms]POINT_ATTBONUS_SHAMAN [/FONT][FONT=comic sans ms]POINT_RESIST_WARRIOR[/FONT] [FONT=comic sans ms]POINT_RESIST_ASSASSIN[/FONT] [FONT=comic sans ms]POINT_RESIST_SURA[/FONT] [FONT=comic sans ms]POINT_RESIST_SHAMAN[/FONT] [FONT=comic sans ms]POINT_STEAL_HP[/FONT] [FONT=comic sans ms]POINT_STEAL_SP[/FONT] [FONT=comic sans ms]POINT_MANA_BURN_PCT [/FONT][FONT=comic sans ms]POINT_BLOCK[/FONT] [FONT=comic sans ms]POINT_DODGE[/FONT] [FONT=comic sans ms]POINT_RESIST_SWORD[/FONT] [FONT=comic sans ms]POINT_RESIST_TWOHAND[/FONT] [FONT=comic sans ms]POINT_RESIST_DAGGER[/FONT] [FONT=comic sans ms]POINT_RESIST_BELL[/FONT] [FONT=comic sans ms]POINT_RESIST_FAN[/FONT] [FONT=comic sans ms]POINT_RESIST_BOW POINT_RESIST_FIRE[/FONT] [FONT=comic sans ms]POINT_RESIST_ELEC[/FONT] [FONT=comic sans ms]POINT_RESIST_MAGIC[/FONT] [FONT=comic sans ms]POINT_RESIST_WIND[/FONT] [FONT=comic sans ms]POINT_REFLECT_MELEE POINT_POISON_REDUCE [/FONT][FONT=comic sans ms]POINT_IMMUNE_STUN[/FONT] [FONT=comic sans ms]POINT_IMMUNE_SLOW[/FONT] [FONT=comic sans ms]POINT_IMMUNE_FALL [/FONT][FONT=comic sans ms]POINT_ATT_GRADE_BONUS[/FONT] [FONT=comic sans ms]POINT_DEF_GRADE_BONUS[/FONT] [FONT=comic sans ms]POINT_MAGIC_ATT_GRADE_BONUS[/FONT] [FONT=comic sans ms]POINT_MAGIC_DEF_GRADE_BONUS [/FONT][FONT=comic sans ms]POINT_RESIST_ICE[/FONT] [FONT=comic sans ms]POINT_RESIST_EARTH[/FONT] [FONT=comic sans ms]POINT_RESIST_DARK[/FONT] [FONT=comic sans ms]POINT_RESIST_CRITICAL[/FONT] [FONT=comic sans ms]POINT_RESIST_PENETRATE[/FONT]

2 - ) Fonksiyonlar Hakkında Bilinmesi Gerekenler Ara Fonksiyonlar False , True Fonksiyonları ;

Fonksiyonlar İçerisinde Bazı " return false; " , "return true;" gibi fonksiyonlar görebilirsiniz . " return true;" işleme izin verir "return false;" işleme izin vermez . Örnek Return false ile bir void döngü bloğu yazalım .

Kod:
bool CAN_ENTER_ZONE(const LPCHARACTER& ch, int map_index){     switch (map_index)     {     case 351:     case 352:         if (ch->GetLevel() < 100)             return false;     }     return true; }

Bu Döngü Bloğu Var Oldukça 351 , 352 index Kodlu Haritalara Giriş Yapılması İçin 100. Seviye Olmak Gerekecektir . Eklemek İsteyenler char.cpp'ye Ekleyebilirler .

Bunu Her Şekilde Kullanabilirsiniz.

2,1-) Ara Fonksiyonlar , Bilinmesi Gerekenler .

Ara Fonksiyonlar Döngü Bloğu İçerisindeki Ana Fonksiyon ( İşlem ) , Ara Fonksiyon ( İşlem Sonrası İşlem ) Genellikle Bug Çözümleri İçin Kullanır , Örneğin ChatPacket Bir Ara Fonksiyondur Chat Paketleri Ara Fonksiyon Olarak Kullanılır Bir Örnek İşleyelim .

Kod:
if (GetSkillLevel(SKILL_COMBO) == 0 && GetLevel() < 30)    {         ChatPacket(CHAT_TYPE_INFO, LC_TEXT("@@@@@@@"));         return false;     }


Buradaki return false; Ana Fonksiyondur 30. Seviye Ve Aşağısının COMBO Kitabı Kullanamamasını Söyler . ChatPacket Ara Fonksiyondur Oyuncuya 30. Seviye Olmasını Söyler .

3 - ) Manager , Çağırma Fonksiyonları .

Şimdide Manager Komutlarına Deyinelim . Managerler , İtem Dönüşümü , Karakter Hareket Etmesi Gibi İşlemleri Gerçekleştiren Fonksiyonlardır . Bunları Fonksiyon Başlarında Çağırabiliriz switchler ilede bölebiliriz.

Örneklendirelim ;

Kod:
CRefineManager & rm = CRefineManager::instance();     const TRefineTable* prt = rm.GetRefineRecipe(item->GetRefineSet());     if (!prt)     {         sys_err("RefineInformation NOT GET REFINE SET %d", item->GetRefineSet());         ChatPacket(CHAT_TYPE_INFO, LC_TEXT("@@@@@@@"));         return false;     }


Bu itemin RefineSet Sayısının Refine_proto Üzerinde Bulunmadığında Vereceği Syserr Ve Oyuncuya Göstereceği ChatPacket . Bu Tür Bir Döngü Bloğunda CRefineManager 1. Ana Fonksiyon , sys_err ( İşlem ) 2. Ana Fonksiyon , return false; ( İşlem 2 ) 3. Ana Fonksiyon , ChatPacket Ara Fonksiyon Olarak Adlandırılabilir Bir Döngü Bloğunda İstediğiniz Kadar Ana Ve Ara Fonksiyon Kullanabilirsiniz.



Metin2 Source Fonksiyonları - Sürekli Güncellenen Kaynak


Metin2 özel sunucularında geliştirme yaparken, kaynak kodunun işleyişini anlamak ve özelleştirmek büyük önem taşır. Bu süreçte, Metin2 Source Fonksiyonları başlığı altında toplanan bilgiler, geliştiricilerin projelerinde daha verimli ve doğru kararlar almasını sağlar. olarak biz de bu konuda derinlemesine bilgi sunuyoruz.

Metin2 Fonksiyon Sistemleri Hakkında Genel Bilgi
Metin2, C++ tabanlı bir yapıya sahiptir. Sunucu tarafında Game Server, Auth Server gibi farklı bileşenler yer alır. Bu sunucuların çalışması için tanımlanan fonksiyonlar, oyun mekaniklerinin işleyişini sağlar. Örneğin, bir oyuncu bir item kullandığında tetiklenen fonksiyonlar, DBCore ile veritabanı işlemlerini yönetirken, Client SRC ile senkronize bir şekilde çalışır.

Kaynak Kodlarda Kullanılan Temel Fonksiyonlar
Metin2 geliştirme ortamında kullanılan bazı temel fonksiyonlar şunlardır:
- CHARACTER::ComputeBattlePoint(): Karakterin savaş puanlarını hesaplamak için kullanılır.
- CItem::GetProtoData(): Item prototiplerine erişmek için kullanılır.
- SECTREE_MANAGER::instance().SpawnMob(): Mob spawn işlemlerini gerçekleştirmek için kullanılır.
Bu fonksiyonlar, Source Edit işlemleri sırasında değiştirilebilir veya genişletilebilir. Özellikle PvP sistemlerinde bu fonksiyonlar üzerinde değişiklikler yaparak, kendi oyun kurallarınızı oluşturabilirsiniz.

Python Entegrasyonu ve Uiscript
Metin2, kullanıcı arayüzü (UI) tarafında Python dilini kullanır. Py Root klasörleri altında yer alan betikler, oyun içi arayüzleri kontrol eder. Py GUI ve Uiscript sayesinde özelleştirilmiş menüler, eklentiler ve özel efektler eklemek mümkündür. Örneğin, bir GUI penceresi açıldığında hangi komutların çalışacağını belirleyen Python fonksiyonları yazılabilmektedir.

Martysama ve Topluluk Katkıları
Metin2 geliştirme dünyasında Martysama gibi isimler, birçok kaynak ve sistem paylaşımıyla topluluğa yön vermektedir. Bu tür sistemler, source edit yaparken referans alınabilecek kaliteli örneklerdir. Ayrıca Metin2Dev forumları ve benzeri platformlar, güncel fonksiyonlar ve sistem geliştirmeleri hakkında bilgi almak için önemli kaynaklardır.

DBCore ve Game Core Yapıları
DBCore, veritabanı işlemleri için kullanılan merkezi altyapıdır. Oyuncu verileri, envanter, guild bilgileri gibi veriler bu katman üzerinden yönetilir. GameCore ise oyun mantığının tamamını içerir. Bu iki yapı arasında senkronizasyon kurmak, sunucu stabilitesi için kritiktir. Fonksiyon seviyesinde bu yapılarla entegre çalışmak, profesyonel düzeyde Metin2 Development için gerekli olan temeldir.

Güncel Fonksiyon Listesi ve Kaynaklar
Metin2 source kodlarında sürekli güncellenen fonksiyonlar vardır. Özellikle Channel sistemleri, PvP modları, event yönetimi gibi alanlarda yapılan güncellemeler, fonksiyon listelerini de etkiler. Metin2 Lobby olarak biz de bu güncellemeleri takip ederek, geliştiricilere yardımcı olacak kaynaklar sunuyoruz. Pack dosyaları, Client SRC düzenlemeleri ve Compile işlemleri ile ilgili tüm bilgileri sitemizde bulabilirsiniz.

Sonuç
Metin2 source fonksiyonları, özel sunucu geliştirme sürecinin en kritik parçasıdır. Doğru fonksiyon kullanımı, stabilite ve performans açısından büyük rol oynar. Metin2 Lobby olarak, bu alandaki gelişmeleri yakından takip ediyor ve geliştiricilerin işini kolaylaştıracak kaynaklar sunuyoruz.


Metin2 Source Functions - Continuously Updated Resource


When developing on Metin2 private servers, understanding and customizing the source code's operation is crucial. In this process, information gathered under the title Metin2 Source Functions helps developers make more efficient and accurate decisions in their projects. As , we provide in-depth information about this topic.

General Information About Metin2 Function Systems
Metin2 has a C++ based structure. Different components such as Game Server and Auth Server exist on the server side. The functions defined for these servers' operations ensure the functioning of game mechanics. For example, functions triggered when a player uses an item manage database operations through DBCore while working synchronously with Client SRC.

Basic Functions Used in Source Codes
Some basic functions used in the Metin2 development environment are:
- CHARACTER::ComputeBattlePoint(): Used to calculate character battle points.
- CItem::GetProtoData(): Used to access item prototypes.
- SECTREE_MANAGER::instance().SpawnMob(): Used to execute mob spawn operations.
These functions can be modified or extended during Source Edit processes. Particularly in PvP systems, modifying these functions allows you to create your own game rules.

Python Integration and Uiscript
Metin2 uses Python for the user interface (UI) side. Scripts located in Py Root folders control in-game interfaces. With Py GUI and Uiscript, customized menus, plugins, and special effects can be added. For example, Python functions can be written to determine which commands will run when a GUI window opens.

Martysama and Community Contributions
In the Metin2 development world, names like Martysama guide the community by sharing many resources and systems. Such systems serve as quality references when doing source edit. Additionally, forums like Metin2Dev and similar platforms are important sources for information about current functions and system improvements.

DBCore and Game Core Structures
DBCore is the central infrastructure used for database operations. Player data, inventory, guild information, etc., are managed through this layer. GameCore contains the entire game logic. Establishing synchronization between these two structures is critical for server stability. Working integrally with these structures at function level is fundamental for professional-level Metin2 Development.

Current Function Lists and Resources
There are continuously updated functions in Metin2 source codes. Updates made in areas like Channel systems, PvP modes, and event management affect function lists as well. As Metin2 Lobby, we follow these updates closely and provide resources that assist developers. You can find all information regarding Pack files, Client SRC modifications, and Compile processes on our website.

Conclusion
Metin2 source functions are the most critical part of private server development process. Correct function usage plays a major role in terms of stability and performance. As Metin2 Lobby, we closely monitor developments in this area and provide resources that facilitate developers' work.
 

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

Benzer konular

Geri
Üst Alt