Max Seviye Ödül 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 32

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
[FONT=&amp]Sistem nasıl çalışıyor?:[/FONT][/FONT]
[FONT=&amp]Oyuncu son seviyeye geldiğinde kendisine chat gelir, son seviyeye geldin,
ödülünü almak istiyorsan /[/FONT][FONT=&amp]istiyorum[/FONT][FONT=&amp] yaz der.
Eğer ödülü almazsa her oyuna girişte bu tekrarlanır.
Ödülü bir kez aldıktan sonra panel bir daha açılmaz.
Bir kaç resim:
[/FONT]
7af7e8306c.jpg

5YMgmj.jpg

A35L6p.jpg

721089d925.jpg

add6b2f80c.jpg

------------------------------------------------char.cpp açılır-aratılır:
Kod:
else                     {                         AutoGiveItem(27002, 2);                         AutoGiveItem(27003, 2);                     }                 }
Altına Eklenir;
Kod:
if (GetLevel() == gPlayerMaxLevel && GetQuestFlag("give_basic_weapon.odul_black_aldim") != 1)                 {                     ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Max seviyeye ulastiniz"));                     ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Odulunu almak icin /istiyorum yaz!"));                 }

------------------------------------------------
cmd.cpp açılır-aratılır:
Kod:
ACMD(do_pcbang_check);

Altına Eklenir;
Kod:
///New Gift System by Blackdragonx61 ACMD(do_Istiyorum); ACMD(do_oduller); ///New Gift System by Blackdragonx61

Tekrar Aratılır:
Kod:
{ "stun",        do_stun,        0,            POS_DEAD,    GM_LOW_WIZARD    },

Altına Eklenir;
Kod:
{ "istiyorum",        do_Istiyorum,        0,            POS_DEAD,    GM_PLAYER    },     { "oduller",        do_oduller,            0,            POS_DEAD,    GM_PLAYER    },


------------------------------------------------
cmd_general.cpp açılır-aratılır:
Kod:
ACMD(do_in_game_mall)

Altına Eklenir;

Kod:
ACMD(do_Istiyorum) {         if (ch->GetLevel() == gPlayerMaxLevel && ch->GetQuestFlag("give_basic_weapon.odul_black_aldim") != 1)     {         ch->ChatPacket(CHAT_TYPE_COMMAND, "panel_ac");     }     else         ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Bu Duzenleme Mevcut Degil!"));         return; } ACMD(do_oduller) {     char arg1[256];     one_argument(argument, arg1, sizeof(arg1));     const int altinim = ch->GetGold();          if (ch->GetLevel() == gPlayerMaxLevel && ch->GetQuestFlag("give_basic_weapon.odul_black_aldim") == 0)     {         if (ch->IsDead() || ch->GetHP() <= 0 || !ch->IsPC())         {             ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Oluyken bu islem gerceklestirilemez!"));             return;         }         if (*arg1)         {             switch (LOWER(*arg1))             {                 case 'y':                 ///bug fix 1                 if ((altinim + 200000000) > 2000000000)                 {                     ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Envanterinizde cok altin var, islem gerceklestirilemedi!"));                     return;                 }                 else                         {                     ch->GiveGold(200000000);                     ch->CHARACTER::SetQuestFlag("give_basic_weapon.odul_black_aldim", 1);                 }                 break;                              case 'a':                     ch->AutoGiveItem(50514);                     ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Odulunuz basariyla verildi!"));                     ch->CHARACTER::SetQuestFlag("give_basic_weapon.odul_black_aldim", 1);                     break;                                  case 'b':                     ch->AutoGiveItem(50515);                     ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Odulunuz basariyla verildi!"));                     ch->CHARACTER::SetQuestFlag("give_basic_weapon.odul_black_aldim", 1);                     break;                                      case 'c':                     ch->AutoGiveItem(80017);                     ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Odulunuz basariyla verildi!"));                     ch->CHARACTER::SetQuestFlag("give_basic_weapon.odul_black_aldim", 1);                     break;             }         }         else         {             ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Bu Duzenleme Mevcut Degil!"));             return;         }     }     else     {         ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Bu Duzenleme Mevcut Degil!"));         return;     } }
------------------------------------------------
game.py açılır-importlara eklenir;
Kod:
import black_hediye

Aratılır:
Kod:
"PlayMusic"                : self.__PlayMusic,

Altına Eklenir;
Kod:
"panel_ac"                : self.Blackdragonx61,

En Sona Eklenir;

Kod:
def Blackdragonx61(self):        self.black_gift = black_hediye.BlackHediye()         self.black_gift.OpenWindow()
[FONT=&amp]------------------------------------------------
[FONT=&amp]constinfo.py açılır-içine eklenir;
Kod:
[FONT=comic sans ms][COLOR=#0000cd][B]sarirenk="|cffFDD017|H|h" [/B][/COLOR][/FONT][CENTER][FONT=comic sans ms][COLOR=#0000cd][B]mavirenk="|cff00ccff"[/B][/COLOR][/FONT][/CENTER]

[FONT=&amp]------------------------------------------------
[FONT=&amp]locale_xx/locale.game.txt içine eklenir;

Kod:
BLACK_SORU_DIALOG    Almak istediğinize emin misiniz?
[FONT=&amp]------------------------------------------------
root'a atılır:




Max Seviye Ödül Sistemi Nedir?
Metin2 özel sunucularında oyuncuların uzun süreli motivasyonlarını artırmak için geliştirilen Max Seviye Ödül Sistemleri, oyuncuların seviye sınırına ulaştıklarında kazandıkları özel ödüller veya bonuslar şeklinde tanımlanabilir. Bu sistemler, genellikle PvP odaklı sunucularda daha yaygın olarak kullanılır. Oyuncu deneyimini artırıcı nitelikte olup, C++ tabanlı sunucu sistemlerinde kolayca entegre edilebilir. Bu yazıda, Metin2 özel sunucularında Max Seviye Ödül Sistemi nasıl uygulanır, hangi avantajları sağlar ve geliştiriciler için neler ifade eder konularına değineceğiz.

Max Seviye Sistemlerinin Amacı
Metin2 özel sunucularında, oyuncular genellikle belirli bir seviyeye ulaştıktan sonra oyundan soğuyabilirler. Bu durumu önlemek adına geliştiriciler, max seviye ödül sistemleri ile oyunculara yeni hedefler sunar. Bu sistem sayesinde, oyuncuların sunucuda kalıcılığı artar ve oyuna olan bağlılıkları güçlenir. Ayrıca, bu tür sistemler, Metin2 sunucusunun rekabet gücünü de artırır.

Sistem Nasıl Çalışır?
Max seviye ödülü genellikle oyuncu 120, 125 veya 130 gibi belirlenen bir seviyeye ulaştığında devreye girer. Bu noktada oyuncuya özel bir ödül veya stat bonusu verilir. Bu bonuslar, Python scriptler ile game core üzerinden yönetilebilir. Örneğin, max seviyeye ulaşan oyunculara özel bir title (başlık), item paketi veya EXP bonusu verilebilir. Bu tür sistemlerin tasarımı sırasında uiscript ve py root dosyaları kullanılır.

Teknik Uygulama: C++ ve Python Kombinasyonu
Max seviye ödül sistemi, C++ tabanlı server src üzerinde auth ve game server süreçlerinde entegre edilir. Oyuncunun seviyesi kontrol edilir ve belirlenen limite ulaşıldığında, Python tarafında tanımlanan fonksiyonlar aracılığıyla ödül verilir. Bu işlemde db core üzerinden oyuncu verileri sorgulanır ve gerekli değişiklikler yapılır. Geliştiriciler, bu sistemi martysama veya benzeri kaynaklardan elde ettikleri source edit dosyaları ile özelleştirebilirler.

Ödül Türleri ve Yaratıcı Fikirler
Oyunculara sunulabilecek max seviye ödülleri arasında şunlar yer alabilir:
- Özel item paketleri
- PvP bonus statları
- Sunucuya özel title'lar
- VIP üyelikler
- Özel görsel efektler
Bu tür ödüller, pack dosyaları ile sunucuya entegre edilir. Geliştiriciler, py gui arayüzleri ile bu sistemleri daha kullanıcı dostu hale getirebilirler. Bu sayede hem sunucu daha profesyonel görünür hem de yönetim kolaylaşır.

Sunucu Performansı ve Sistem Güvenliği
Max seviye ödül sistemi, doğru uygulandığında Metin2 sunucu performansını olumsuz etkilemez. Ancak, core yapıya dokunulduğunda dikkatli olunmalıdır. Kodlama hatası, channel sunucularında çökme veya veri kaybı gibi sorunlara yol açabilir. Bu nedenle, compile işlemi öncesinde yedek alınmalı ve test ortamında kontrol yapılmalıdır. Geliştiriciler, client src tarafında da gerekli düzenlemeleri yaparak sistemin bütünlüğünü korumalıdır.


What is Max Level Reward System?
In Metin2 private servers, Max Level Reward Systems are designed to maintain long-term player motivation by offering special rewards or bonuses once players reach the maximum level cap. These systems are especially common in PvP-oriented servers and can be easily integrated into C++-based server cores. In this article, we will explore how Max Level Reward Systems are implemented in Metin2 private servers, their advantages, and what they mean for developers.

Purpose of Max Level Systems
On Metin2 private servers, players may lose interest once they reach the level cap. To prevent this, developers introduce max level reward systems that provide players with new goals. This increases player retention and engagement, while also enhancing the server's competitive edge.

How Does the System Work?
The max level reward typically activates when a player reaches a predefined level such as 120, 125, or 130. At this point, the player receives a special reward or stat bonus. Such systems can be managed via Python scripts through the game core. For instance, players reaching max level could receive a special title, item package, or EXP bonus. The design involves modifying uiscript and py root files.

Technical Implementation: C++ and Python Combination
The max level reward system integrates into the C++-based server src within the auth and game server processes. Player levels are checked, and once the threshold is reached, functions defined in Python trigger the reward. During this process, player data is queried from the db core and necessary updates are applied. Developers can customize these systems using source edit files obtained from sources like martysama.

Reward Types and Creative Ideas
Possible max level rewards include:
- Special item packages
- PvP stat bonuses
- Unique titles
- VIP memberships
- Custom visual effects
These rewards can be integrated via pack files. Developers can use py gui interfaces to make the system more user-friendly, improving both server presentation and management ease.

Server Performance and Security
When properly implemented, the max level reward system does not negatively affect Metin2 server performance. However, modifications to the core structure require caution. Coding errors can lead to crashes or data loss on channel servers. Therefore, backups should be taken before compile, and tests should be conducted in a safe environment. Developers must also ensure necessary adjustments are made to the client src side to maintain system integrity.
 

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

Benzer konular

Geri
Üst Alt