- Katılım
- 6 Mayıs 2022
- Konular
- 48,291
- Mesajlar
- 48,601
- Tepkime puanı
- 75
- M2 Yaşı
- 3 yıl 11 ay 10 gün
- Trophy Puan
- 48
- M2 Yang
- 488,879
Bir veriyi içerisinde depolayan birime değişken denir. Değişkeni yandaki kutuya benzetebilirsiniz.Siz ona bir değer verirsiniz. O da verdiğiniz değeri sizin için saklar. Değişken isimleri sayı ile başlayamaz ve program içinde bulunan herhangi bir komut değişken ismi olarak atanamaz.
Eğer herhangi bir programlama dili ile ilgilendiyseniz değişkenler ile bol bol uğraşmış olmanız gerekir. Diğer programlama dillerinde(C,C++,C#) bir değişken tanımlanırken değişkenin adı yazılmadan önce türü yazılır.
int tamSayi=10;
char karakter = 'a';
cumle = "Bu bir cümledir."
float ondalikSayi = 2.5
Python programlama dilinde bu kural geçerli değildir. Değişken tanımlarken adını ve değerini yazmak yeterlidir.Eğer Python gibi yorumlayıcı web programlama dili olan PHP ile ilgilendiyseniz bu tanımla yolu size çok tanıdık gelecektir. Yukarı da verilen değişkenleri Python'da tanımlayalım.
[COLOR=white !important]
Aşağıda Python'da değişken kullanımları ile ilgili bir kaç örnek verilmiştir.
[COLOR=white !important]
Bu örnekte kullanılan "+" operatör dikkatinizi çekmiştir. Operatörler daha ileri yazılarda detaylı bir şekilde incelenecektir. "+" operatörü iki karakter dizinini birleştirmek için kullanılmıştır.
[COLOR=white !important]
Bu örnekte ise birleştirme işlemi için "," kullanılmıştır. Bir önceki örnekte kullanılan "+" operatörü sadece karakter dizilerini birleştirmek için kullanılır."," ile her türden ifadeler birleştirilebilir. "," işaretinin burada yaptığı işlem birden fazla karakter dizisini tek bir karakter dizisine dönüştürmektir.
Değişkenleri yazdırmanın bir diğer yolu da şu şekildedir:
[COLOR=white !important]
Float tipi değişkenler için ise değişken tanımlanırken sayı noktalı olarak yazılmalıdır. Aşağıdaki örnekte görüldüğü gibi tanımlama yapılırken float tipinden bir değişken olduğu belli olmaktadır. Bu yüzden artık o sayı üzerinden işlem yapıldığı sürece sonuçlar da float tipinden dönecektir.
[COLOR=white !important]
Dönüştürme İşlemleri
Bazı durumlarda değişkenler üzerinde tür dönüşümü yapmak zorunda kalabilirsiniz. Program yazdıkça farkına varacaksınız ki; En çok dönüştürme işlemi 'string' ve 'integer' ifadeler arasında yapılmaktadır. Tür Dönüşümü İçin Kullanılan Fonksiyonlar:
[COLOR=white !important]
Bu örnekte görüldüğü üzere 'integer' tipinde değişken olan "a" float() fonksiyonu ile 'float' tipine dönüştürülmüştür. Ekrana çıktı olarak da artık noktalı sayı dönmüştür.
[COLOR=white !important]
Bu şekilde bir kullanım yapılırsa görüldüğü gibi Python integer ve string türünü toplayamadığı için hata döndürdü.Bu yüzden bunu şu şekilde yapabiliriz.
[COLOR=white !important]
Bu kullanım çok mantıklı olmayabilir. İleri ki yazılarda kullanıcı ile etkileşime geçildiği zaman bu dönüşümlerin ne kadar önemli olduğundan bahsedeceğiz.
Değişkenler Nedir? Metin2 Sunucu Geliştirme Sürecinde Değişken Kullanımı
Metin2 özel sunucuları geliştirmek isteyen geliştiriciler için değişken kavramı temel düzeyde programlama bilgisinin gerektiği önemli bir yapıdır.
Metin2 lobby özel sunucularında, hem C++ tabanlı sunucu tarafı (server side) hem de Python tabanlı istemci tarafı (client side) üzerinde çalışılır. Bu iki ortamda da değişkenlerin doğru kullanımı, oyun mekaniklerinin, PvP sistemlerinin ve diğer dinamik içeriklerin sorunsuz işlemesini sağlar.
Değişken Nedir?
Değişken, belirli bir veriyi saklamak için kullanılan ve programın çalışması süresince değerini değiştirebilen yapılardır. Örneğin bir oyuncunun can değeri, seviyesi veya bir itemin gücü gibi değerler değişkenler aracılığıyla tutulur.
C++ ve Python'da Değişken Tanımlama
C++ dilinde değişkenler, veri türüyle birlikte tanımlanır. Örneğin:
Burada int, char, bool gibi anahtar kelimeler veri tipini belirtir. Metin2 server src dosyalarında genellikle bu tür veri tipleri kullanılır.
Python tarafında ise değişken tanımlama daha basittir. Veri tipi otomatik olarak belirlenir:
Bu yapılar, uiscript veya py root dosyalarında sıklıkla kullanılır.
Değişkenlerin Metin2 PvP Sistemlerinde Kullanımı
Metin2 özel sunucularında PvP sistemleri, oyuncuların birbiriyle rekabet etmesini sağlar. Bu sistemlerde oyuncuların güçleri, hasar değerleri, zırh miktarları gibi birçok parametre değişkendir. Bu değişkenlerin doğru yönetimi, dengeli bir PvP deneyimi sunmak açısından hayati öneme sahiptir.
Örneğin bir karakterin PvP kazanç puanı, bir int değişkeni olarak saklanabilir:
Bu sayede her PvP mücadelesinde oyuncunun kazanç puanı güncellenir.
Py GUI ve Uiscript Üzerinde Değişken Kullanımı
Metin2 client tarafında kullanıcı arayüzü (UI) geliştirmek için Py GUI ve uiscript kullanılır. Burada da değişkenler arayüzde gösterilecek bilgileri tutmak için kullanılır. Örneğin bir oyuncunun adı, seviyesi veya can miktarı gibi değerler UI üzerinde gösterilmek üzere değişkenlerde saklanır.
DB (Veritabanı) ile Değişken Eşleşmesi
Metin2 sistemlerinde DB (veritabanı), oyuncuların bilgilerini, eşyalarını, skorlarını vs. tutar. Oyuncu bilgileri C++ tarafında alınır ve veritabanı ile senkronize edilir. Bu verilerin doğru eşlenmesi için değişkenlerin isimleri ve türleri DB şemasıyla uyumlu olmalıdır. Örneğin bir karakterin level bilgisi DB'de int olarak tanımlanmışsa, C++ tarafında da aynı şekilde tanımlanmalıdır.
Geliştiriciler İçin Pratik Tavsiyeler
1. Her değişkenin ne işe yaradığını açıklayan açıklamalar yazmak kodun okunabilirliğini artırır.
2. Değişken isimleri anlamlı olmalı, hem game hem auth sunucusunda uyumlu olacak şekilde tasarlanmalıdır.
3. Python ve C++ arasında veri aktarımı yapılırken veri tipleri dikkatlice kontrol edilmelidir.
Sonuç
Değişkenler, Metin2 özel sunucu geliştirme sürecinin temel taşlarından biridir. Hem server src hem de client src üzerinde doğru değişken kullanımı, stabil ve güçlü sistemlerin kurulmasını sağlar. Martysama gibi deneyimli geliştiricilerin projelerinde de bu yapılar sıkça kullanılır. Oyun çekirdeği (game core) ve veritabanı çekirdeği (db core) üzerinde yapılacak çalışmalarda değişken yönetimi büyük rol oynar.
What Are Variables? Variable Usage in Metin2 Server Development
For developers aiming to create Metin2 private servers, variables are fundamental structures that require basic programming knowledge.
In Metin2 lobby private servers, work is done on both the C++ based server-side (server side) and the Python-based client-side (client side). Proper use of variables in both environments ensures smooth operation of game mechanics, PvP systems, and other dynamic content.
What Is a Variable?
A variable is a structure used to store specific data and can change its value during the execution of a program. For example, values such as a player's health, level, or an item's power are stored via variables.
Variable Declaration in C++ and Python
In C++, variables are declared along with their data type. For example:
Here, keywords like int, char, bool specify the data type. Such data types are commonly used in Metin2 server src files.
In Python, variable declaration is simpler. The data type is automatically determined:
These structures are frequently used in uiscript or py root files.
Usage of Variables in Metin2 PvP Systems
PvP systems in Metin2 private servers allow players to compete against each other. In these systems, parameters such as player strengths, damage values, armor amounts, etc., are all variables. Correct management of these variables is crucial for providing a balanced PvP experience.
For example, a character's PvP score can be stored as an int variable:
This way, the player's score updates after each PvP match.
Variable Usage in Py GUI and Uiscript
On the Metin2 client side, user interface (UI) development is done using Py GUI and uiscript. Here, variables are also used to hold information displayed in the UI. For instance, values such as a player's name, level, or health amount are stored in variables to be shown in the UI.
Database (DB) Mapping with Variables
In Metin2 systems, the database (DB) stores player information, items, scores, etc. Player data is retrieved on the C++ side and synchronized with the database. To ensure correct mapping, variable names and types must align with the DB schema. For example, if a character's level is defined as int in the DB, it must also be declared the same way in C++.
Practical Tips for Developers
1. Writing comments explaining what each variable does increases code readability.
2. Variable names should be meaningful and designed to be compatible with both game and auth servers.
3. When transferring data between Python and C++, data types must be carefully checked.
Conclusion
Variables are one of the foundational elements of Metin2 private server development. Correct usage of variables on both server src and client src sides enables the construction of stable and robust systems. These structures are frequently used in projects by experienced developers like Martysama. Variable management plays a significant role in work involving the game core (game core) and database core (db core).
Eğer herhangi bir programlama dili ile ilgilendiyseniz değişkenler ile bol bol uğraşmış olmanız gerekir. Diğer programlama dillerinde(C,C++,C#) bir değişken tanımlanırken değişkenin adı yazılmadan önce türü yazılır.
int tamSayi=10;
char karakter = 'a';
cumle = "Bu bir cümledir."
float ondalikSayi = 2.5
Python programlama dilinde bu kural geçerli değildir. Değişken tanımlarken adını ve değerini yazmak yeterlidir.Eğer Python gibi yorumlayıcı web programlama dili olan PHP ile ilgilendiyseniz bu tanımla yolu size çok tanıdık gelecektir. Yukarı da verilen değişkenleri Python'da tanımlayalım.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
1 2 3 4 | >>>tamSayi = 10 #integer >>>karakter = 'a' #char >>>cumle = "Bu bir cümledir." #string >>>ondalikSayi = 2.5 #float |
Aşağıda Python'da değişken kullanımları ile ilgili bir kaç örnek verilmiştir.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
1 2 3 4 5 |
[TD]>>> ad="Mazlum"
>>> soyad="Ağar"
>>> adSoyad = ad + soyad
>>> print adSoyad
MazlumAğar
[/TD]
>>> soyad="Ağar"
>>> adSoyad = ad + soyad
>>> print adSoyad
MazlumAğar
[/TD]
Bu örnekte kullanılan "+" operatör dikkatinizi çekmiştir. Operatörler daha ileri yazılarda detaylı bir şekilde incelenecektir. "+" operatörü iki karakter dizinini birleştirmek için kullanılmıştır.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
1 2 3 4 |
[TD]>>> sayi1=10
>>> sayi2=2
>>> print "sayi1 ve sayi2'nin carpimi", sayi1*sayi2,"dir."
sayi1 ve sayi2'nin carpimi 20 dir.
[/TD]
>>> sayi2=2
>>> print "sayi1 ve sayi2'nin carpimi", sayi1*sayi2,"dir."
sayi1 ve sayi2'nin carpimi 20 dir.
[/TD]
Bu örnekte ise birleştirme işlemi için "," kullanılmıştır. Bir önceki örnekte kullanılan "+" operatörü sadece karakter dizilerini birleştirmek için kullanılır."," ile her türden ifadeler birleştirilebilir. "," işaretinin burada yaptığı işlem birden fazla karakter dizisini tek bir karakter dizisine dönüştürmektir.
Değişkenleri yazdırmanın bir diğer yolu da şu şekildedir:
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
1 2 3 4 |
[TD]>>> adres="pythondersleri.com"
>>> gorev="herkese python ogretmektir."
>>> print "%s'un amacı %s"%(adres,gorev)
pythondersleri.com'un amacı herkese Python ogretmektir.
[/TD]
>>> gorev="herkese python ogretmektir."
>>> print "%s'un amacı %s"%(adres,gorev)
pythondersleri.com'un amacı herkese Python ogretmektir.
[/TD]
Float tipi değişkenler için ise değişken tanımlanırken sayı noktalı olarak yazılmalıdır. Aşağıdaki örnekte görüldüğü gibi tanımlama yapılırken float tipinden bir değişken olduğu belli olmaktadır. Bu yüzden artık o sayı üzerinden işlem yapıldığı sürece sonuçlar da float tipinden dönecektir.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
1 2 3 4 |
[TD]>>> sayi=3.6
>>> bol=sayi/2
>>> print bol
1.8
[/TD]
>>> bol=sayi/2
>>> print bol
1.8
[/TD]
Dönüştürme İşlemleri
Bazı durumlarda değişkenler üzerinde tür dönüşümü yapmak zorunda kalabilirsiniz. Program yazdıkça farkına varacaksınız ki; En çok dönüştürme işlemi 'string' ve 'integer' ifadeler arasında yapılmaktadır. Tür Dönüşümü İçin Kullanılan Fonksiyonlar:
- <li data-xf-list-type="ul">Float() => Herhangi bir sayı veya sayı değerli karakter dizisini noktalı sayıya çevirir. <li data-xf-list-type="ul">int() => Herhangi bir sayıyı veya sayı değerli karakter dizisini tam sayıya dönüştürür. <li data-xf-list-type="ul">str() => Herhangi bir sayıyı karakter dizisine dönüştürür.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
1 2 3 |
[TD]>>> a = 2
>>> print float(a)
2.0
[/TD]
>>> print float(a)
2.0
[/TD]
Bu örnekte görüldüğü üzere 'integer' tipinde değişken olan "a" float() fonksiyonu ile 'float' tipine dönüştürülmüştür. Ekrana çıktı olarak da artık noktalı sayı dönmüştür.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
1 2 3 4 5 6 7 |
[TD]>>> a=10
>>> b="15"
>>> print a+b
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'
</module></stdin>
[/TD]
>>> b="15"
>>> print a+b
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'
</module></stdin>
[/TD]
Bu şekilde bir kullanım yapılırsa görüldüğü gibi Python integer ve string türünü toplayamadığı için hata döndürdü.Bu yüzden bunu şu şekilde yapabiliriz.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
1 2 3 4 |
[TD]>>> a=10
>>> b="15"
>>> print a+int(b)
25
[/TD]
>>> b="15"
>>> print a+int(b)
25
[/TD]
Bu kullanım çok mantıklı olmayabilir. İleri ki yazılarda kullanıcı ile etkileşime geçildiği zaman bu dönüşümlerin ne kadar önemli olduğundan bahsedeceğiz.
Değişkenler Nedir? Metin2 Sunucu Geliştirme Sürecinde Değişken Kullanımı
Metin2 özel sunucuları geliştirmek isteyen geliştiriciler için değişken kavramı temel düzeyde programlama bilgisinin gerektiği önemli bir yapıdır.
Metin2 lobby özel sunucularında, hem C++ tabanlı sunucu tarafı (server side) hem de Python tabanlı istemci tarafı (client side) üzerinde çalışılır. Bu iki ortamda da değişkenlerin doğru kullanımı, oyun mekaniklerinin, PvP sistemlerinin ve diğer dinamik içeriklerin sorunsuz işlemesini sağlar.
Değişken Nedir?
Değişken, belirli bir veriyi saklamak için kullanılan ve programın çalışması süresince değerini değiştirebilen yapılardır. Örneğin bir oyuncunun can değeri, seviyesi veya bir itemin gücü gibi değerler değişkenler aracılığıyla tutulur.
C++ ve Python'da Değişken Tanımlama
C++ dilinde değişkenler, veri türüyle birlikte tanımlanır. Örneğin:
Kod:
int level = 1;[BR][/BR]char name[20];[BR][/BR]bool isAlive = true;
Burada int, char, bool gibi anahtar kelimeler veri tipini belirtir. Metin2 server src dosyalarında genellikle bu tür veri tipleri kullanılır.
Python tarafında ise değişken tanımlama daha basittir. Veri tipi otomatik olarak belirlenir:
Kod:
level = 1[BR][/BR]name = 'Player'[BR][/BR]is_alive = True
Bu yapılar, uiscript veya py root dosyalarında sıklıkla kullanılır.
Değişkenlerin Metin2 PvP Sistemlerinde Kullanımı
Metin2 özel sunucularında PvP sistemleri, oyuncuların birbiriyle rekabet etmesini sağlar. Bu sistemlerde oyuncuların güçleri, hasar değerleri, zırh miktarları gibi birçok parametre değişkendir. Bu değişkenlerin doğru yönetimi, dengeli bir PvP deneyimi sunmak açısından hayati öneme sahiptir.
Örneğin bir karakterin PvP kazanç puanı, bir int değişkeni olarak saklanabilir:
Kod:
int pvp_score = 0;[BR][/BR]pvp_score += 10; // Kazandığında 10 puan ekle
Bu sayede her PvP mücadelesinde oyuncunun kazanç puanı güncellenir.
Py GUI ve Uiscript Üzerinde Değişken Kullanımı
Metin2 client tarafında kullanıcı arayüzü (UI) geliştirmek için Py GUI ve uiscript kullanılır. Burada da değişkenler arayüzde gösterilecek bilgileri tutmak için kullanılır. Örneğin bir oyuncunun adı, seviyesi veya can miktarı gibi değerler UI üzerinde gösterilmek üzere değişkenlerde saklanır.
DB (Veritabanı) ile Değişken Eşleşmesi
Metin2 sistemlerinde DB (veritabanı), oyuncuların bilgilerini, eşyalarını, skorlarını vs. tutar. Oyuncu bilgileri C++ tarafında alınır ve veritabanı ile senkronize edilir. Bu verilerin doğru eşlenmesi için değişkenlerin isimleri ve türleri DB şemasıyla uyumlu olmalıdır. Örneğin bir karakterin level bilgisi DB'de int olarak tanımlanmışsa, C++ tarafında da aynı şekilde tanımlanmalıdır.
Geliştiriciler İçin Pratik Tavsiyeler
1. Her değişkenin ne işe yaradığını açıklayan açıklamalar yazmak kodun okunabilirliğini artırır.
2. Değişken isimleri anlamlı olmalı, hem game hem auth sunucusunda uyumlu olacak şekilde tasarlanmalıdır.
3. Python ve C++ arasında veri aktarımı yapılırken veri tipleri dikkatlice kontrol edilmelidir.
Sonuç
Değişkenler, Metin2 özel sunucu geliştirme sürecinin temel taşlarından biridir. Hem server src hem de client src üzerinde doğru değişken kullanımı, stabil ve güçlü sistemlerin kurulmasını sağlar. Martysama gibi deneyimli geliştiricilerin projelerinde de bu yapılar sıkça kullanılır. Oyun çekirdeği (game core) ve veritabanı çekirdeği (db core) üzerinde yapılacak çalışmalarda değişken yönetimi büyük rol oynar.
What Are Variables? Variable Usage in Metin2 Server Development
For developers aiming to create Metin2 private servers, variables are fundamental structures that require basic programming knowledge.
In Metin2 lobby private servers, work is done on both the C++ based server-side (server side) and the Python-based client-side (client side). Proper use of variables in both environments ensures smooth operation of game mechanics, PvP systems, and other dynamic content.
What Is a Variable?
A variable is a structure used to store specific data and can change its value during the execution of a program. For example, values such as a player's health, level, or an item's power are stored via variables.
Variable Declaration in C++ and Python
In C++, variables are declared along with their data type. For example:
Kod:
int level = 1;[BR][/BR]char name[20];[BR][/BR]bool isAlive = true;
Here, keywords like int, char, bool specify the data type. Such data types are commonly used in Metin2 server src files.
In Python, variable declaration is simpler. The data type is automatically determined:
Kod:
level = 1[BR][/BR]name = 'Player'[BR][/BR]is_alive = True
These structures are frequently used in uiscript or py root files.
Usage of Variables in Metin2 PvP Systems
PvP systems in Metin2 private servers allow players to compete against each other. In these systems, parameters such as player strengths, damage values, armor amounts, etc., are all variables. Correct management of these variables is crucial for providing a balanced PvP experience.
For example, a character's PvP score can be stored as an int variable:
Kod:
int pvp_score = 0;[BR][/BR]pvp_score += 10; // Add 10 points upon winning
This way, the player's score updates after each PvP match.
Variable Usage in Py GUI and Uiscript
On the Metin2 client side, user interface (UI) development is done using Py GUI and uiscript. Here, variables are also used to hold information displayed in the UI. For instance, values such as a player's name, level, or health amount are stored in variables to be shown in the UI.
Database (DB) Mapping with Variables
In Metin2 systems, the database (DB) stores player information, items, scores, etc. Player data is retrieved on the C++ side and synchronized with the database. To ensure correct mapping, variable names and types must align with the DB schema. For example, if a character's level is defined as int in the DB, it must also be declared the same way in C++.
Practical Tips for Developers
1. Writing comments explaining what each variable does increases code readability.
2. Variable names should be meaningful and designed to be compatible with both game and auth servers.
3. When transferring data between Python and C++, data types must be carefully checked.
Conclusion
Variables are one of the foundational elements of Metin2 private server development. Correct usage of variables on both server src and client src sides enables the construction of stable and robust systems. These structures are frequently used in projects by experienced developers like Martysama. Variable management plays a significant role in work involving the game core (game core) and database core (db core).
