Bu bölümde, programlamayla az çok uğraşmış herkesin hiç yabancılık çekmeyeceği bir konuya değineceğiz. Çünkü Operatörler ve matematiksel işlemler konusu hemen her programlama dilinde aynıdır. Lafı çok uzatmadan yazımıza ilk olarak operatörlerden başlayalım.
Matematiksel Operatörler
Python daki matematiksel operatörler herhangi bir hesap makinesindekiyle aynıdır. Bunlar, numerik klavyemizde de yan yana yer alan /, *, -, + operatörleridir.
Hemen basit bir örnek verelim:
[COLOR=white !important]
[TABLE=full][TR][TD]
>>>print a
12
>>>
[/TD][/TR][/TABLE]
Aynı işlemler değişkenler ile de yapılabilir:
[COLOR=white !important]
[TABLE=full][TR][TD]
Bununla beraber oldukça karmaşık ifadeler de yazabilirsiniz:
[COLOR=white !important]
[TABLE=full][TR][TD]
Bu operatörler sadece rakamlarla kullanılabilir mesela aşağıdaki örnekler karşımıza hata mesajları getirir.
Operatörler ve Matematıksel İşlemler
Metin2 özel sunucu geliştirme süreçlerinde, programlama dilleri olan C++ ve Python gibi teknolojiler kullanılır. Bu süreçte temel yapı taşlarından birisi de operatörlerdir. Operatörler, değişkenler üzerinde matematıksel, mantıksal veya karşılaştırma işlemleri yapmamızı sağlar. Özellikle game core ve db core gibi sistemlerde doğru operatör kullanımı, performans ve hata yönetimi açısından kritik öneme sahiptir.
Matematıksel Operatörler
Matematıksel işlemler, sayısal değerler üzerinde toplama, çıkarma, çarpma gibi işlemleri gerçekleştirmek için kullanılır. C++ ve Python'da kullanılan temel matematıksel operatörler şunlardır:
- Toplama (+): a + b
- Çıkarma (-): a - b
- Çarpma (*): a * b
- Bölme (/): a / b
- Modül (%): a % b -> Kalanı verir
Örneğin, bir oyuncunun level hesaplaması yapılırken, skoruna göre bir puan ekleme işlemi yapılabilir. Bu gibi durumlarda modül operatörü, belirli bir seviye aralığında farklı bonuslar vermek için idealdir.
Atama Operatörleri
Değişkenlere değer atamak için kullanılır. Temel atama operatörü [=]’dir. Bununla birlikte, kısa yoldan atama yapan operatörler de mevcuttur:
- a += b → a = a + b
- a -= b → a = a - b
- a *= b → a = a * b
Bu operatörler, Metin2 server src üzerinde çalışan sistemlerde, örneğin bir karakterin can veya mana değerlerini güncellemek için sıklıkla kullanılır.
Karşılaştırma Operatörleri
Bu operatörler, iki değeri karşılaştırmak için kullanılır ve genellikle if veya while gibi kontrol yapılarında yer alır:
- Eşittir (==)
- Eşit değil (!=)
- Küçüktür (<)
- Büyüktür (>)
- Küçük eşit (<=)
- Büyük eşit (>=)
Bir PvP sisteminde, oyuncuların level farkına göre savaş izni verilirken bu operatörlerden faydalanılır. Örneğin, oyuncu1_level >= oyuncu2_level - 10 gibi bir kontrol yapılabilir.
Mantıksal Operatörler
Birden fazla koşulu birleştirmek için kullanılır. Python ve C++ dilinde yaygın olarak kullanılan mantıksal operatörler:
- Ve (and / &&)
- Veya (or / ||)
- Değil (not / !)
Bir Metin2 compile işlemi sırasında, derleme esnasında belirli kontrollerin yapılması gerekebilir. Örneğin, dosya_var_mi == true ve derleme_dosyasi_guncel == true gibi bir kontrolle derlemenin güvenliği sağlanabilir.
Python GUI ve Py Root İçinde Kullanımı
Python tabanlı GUI uygulamalarında, örneğin bir Py UI Script dosyasında kullanıcıdan alınan veriler üzerinden matematıksel işlemler yapılabilir. Bu işlemler sırasında operatörlerin doğruluğu, arayüzün doğru çalışmasını sağlar. Py root içinde bir sayaç ya da sayaç benzeri işlemler için artım operatörleri (++) tercih edilebilir.
Sonuç
Operatörler, hem Metin2 development hem de genel programlama sürecinde temel taşı görevi görür. Doğru kullanıldığında, game server programming süreçleri daha verimli ve okunabilir hale gelir. Martysama gibi sistemlerde, bu yapıların bilinmesi script düzenlemeleri ve source edit süreçleri için oldukça önemlidir.
Operators and Mathematical Operations
In the process of developing Metin2 private servers, programming languages such as C++ and Python are used. One of the fundamental building blocks during this process is operators. Operators allow us to perform mathematical, logical, or comparison operations on variables. Especially in systems like game core and db core, correct operator usage is critically important for performance and error management.
Mathematical Operators
Mathematical operations are used to perform addition, subtraction, multiplication, and similar operations on numeric values. The basic mathematical operators used in C++ and Python are:
- Addition (+): a + b
- Subtraction (-): a - b
- Multiplication (*): a * b
- Division (/): a / b
- Modulo (%): a % b -> Returns the remainder
For example, when calculating a player's level, points can be added based on their score. In such cases, the modulo operator is ideal for giving different bonuses within specific level ranges.
Assignment Operators
These are used to assign values to variables. The main assignment operator is [=]. However, there are also shorthand assignment operators:
- a += b → a = a + b
- a -= b → a = a - b
- a *= b → a = a * b
These operators are frequently used in systems running on Metin2 server src to update character stats such as health or mana values.
Comparison Operators
These operators are used to compare two values and are generally found in control structures like if or while:
- Equal to (==)
- Not equal to (!=)
- Less than (<)
- Greater than (>)
- Less than or equal to (<=)
- Greater than or equal to (>=)
In a PvP system, these operators might be used to grant combat permission based on players' level differences. For example, a check like player1_level >= player2_level - 10 could be performed.
Logical Operators
These are used to combine multiple conditions. Commonly used logical operators in Python and C++ are:
- And (and / &&)
- Or (or / ||)
- Not (not / !)
During a Metin2 compile process, certain checks may need to be performed during compilation. For example, a check like file_exists == true and build_file_is_updated == true ensures the security of the build process.
Usage in Python GUI and Py Root
In Python-based GUI applications, mathematical operations can be performed based on user input in a Py UI Script file. During these operations, the correctness of operators ensures the interface works properly. Increment operators (++) may be preferred inside py root for counters or counter-like operations.
Conclusion
Operators serve as the cornerstone in both Metin2 development and general programming processes. When used correctly, game server programming processes become more efficient and readable. Knowing these structures is highly important for script editing and source edit processes in systems like Martysama.
Matematiksel Operatörler
Python daki matematiksel operatörler herhangi bir hesap makinesindekiyle aynıdır. Bunlar, numerik klavyemizde de yan yana yer alan /, *, -, + operatörleridir.
Hemen basit bir örnek verelim:
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[TABLE=full][TR][TD]
1
2
3
4
[/TD][TD]>>>a=5+72
3
4
>>>print a
12
>>>
[/TD][/TR][/TABLE]
Aynı işlemler değişkenler ile de yapılabilir:
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
4
5
[/TD]2
3
4
5
[TD]>>>a=5
>>>b=a+7
>>>print b
12
>>>
[/TD]
[/TR]>>>b=a+7
>>>print b
12
>>>
[/TD]
[/TABLE]Bununla beraber oldukça karmaşık ifadeler de yazabilirsiniz:
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
4
5
[/TD]2
3
4
5
[TD]>>>a=(3+4+21)/7
>>>b=(9*4)/(2+1)-6
>>>print(a*b)-(a+b)
14
>>>
[/TD]
[/TR]>>>b=(9*4)/(2+1)-6
>>>print(a*b)-(a+b)
14
>>>
[/TD]
[/TABLE]Bu operatörler sadece rakamlarla kullanılabilir mesela aşağıdaki örnekler karşımıza hata mesajları getirir.
Merhaba + 5 14 + 3
*Burada önemli olan nokta 14 ün sayı olarak değil bir String ifade olarak işleme sokulmasıdır.
Not: Yine her programlama dilinde olduğu gibi Python da işlem önceliğine dikkat eder. Bir diğer dikkat edilmesi gereken husus ise bölme işleminde karşımıza çıkar. İki integer sayıyı böldüğümüzde eğer bir kalan oluşursa Python bunu göz ardı eder.
[COLOR=white !important]
[TABLE=full][TR][TD]
Bu sorundan iki sayıdan birini float dediğimiz yani türkçe tabiriyle kayan noktalı halde yazarak kurtulabiliriz.
[COLOR=white !important]
[TABLE=full][TR][TD]
Tabi her seferinde böyle virgüllü sayımı yazacağız diye soracak olursanız bunun da kolayı var
. Komut satırında da olsak text editör de de olsak şu komutu araya bir yere sıkıştırmak yeterlidir:
[COLOR=white !important]
[TABLE=full][TR][TD]
Eğer komut satırında isek Python bir dahaki açılışına kadar virgüllü sayıları es geçmez.
.. __ işaretini nasıl yapacağım diyorsanız _ işaretini iki kere ard arda koymanız yeterli arkadaşlar
.
Örnek olması açısından küçük bir örnek de String ifadeler için yapalım.
[COLOR=white !important]
[TABLE=full][TR][TD]
Matematiksel operatörlerde son olarak değineceğimiz kısım üs alma ve mod işlemi.
Bu işlemlerden mod almayı halletmek için Python ' % ' işaretini kullanır. Ancak üs alma işlemi dğer programlama dillerinden biraz farklıdır. Python da üs alma (a^b) işlemini ' ** ' yardımıyla yaparız. Hemen örnek verecek olursak:
[COLOR=white !important]
[TABLE=full][TR][TD]
İlişkisel Operatörler
Bir diğer operatör türümüzde ilişkisel operatörler dediğimiz yapılardır. Bunlar == (eşit mi?), != (farklı mı), < (küçük mü?), > (büyük mü?), <= (küçükeşit mi?), >= (büyükeşit mi?) gibi işaretlerdir. Bu operatörler basit karşılaştırma işlemleri yaparlar ve yaptıkları işlemin sonucunda 'true' ya da 'false' değerleri döndürürler. Hemen örneklerimizde görelim arkadaşlar:
[COLOR=white !important]
[TABLE=full][TR][TD]
Unutmadan yine operatörler konusunda bahsedilmesi gereken +=, -=, *=, /= c operatörlerini ele alalım.Bu operatörler hızlı bir şekilde değişkenin değerini işleme tabi tutup ardından tekrar değişkene atamak için kullanılır. Aşağıda ki örnekte iki işleminde aynı anlama geldiğini görebiliriz:
[COLOR=white !important]
[TABLE=full][TR][TD]
Matematiksel Fonksiyonlar ve math Modülü

Bu modülü kullanabilmemiz için öncelikle çalışmamıza import etmemiz gerekiyor:
[COLOR=white !important]
[TABLE=full][TR][TD]
Fonksiyonlar çağrılırken math.xxx şeklinde xxx kısmına fonksiyonlar yazılır.
Eğer math modülü altındaki tüm fonksiyonları görmek isterseniz:
[COLOR=white !important]
[TABLE=full][TR][TD]
help(math) kısmında ayrıca fonksiyonların özelliklerdinden kısa kısa bahsedilir.
Şimdi alfabetik sıraya göre bu fonksiyonları teker teker inceleyelim arkadaşlar.
-acos(x)
arccosinüs (cosinüs fonk. tersi) fonksiyonudur ve dönen değer radyan cinsindendir.
[COLOR=white !important]
[TABLE=full][TR][TD]
-acosh(x)
Hiperbolik kosinüs fonksiyonunun tersidir ve bu da radyan cinsinden bir değer döndürür.
[COLOR=white !important]
[TABLE=full][TR][TD]
-asin(x)
Arcsinüs fonksiyonudur. Dönüş değeri radyandır.
[COLOR=white !important]
[TABLE=full][TR][TD]
-asinh(x)
Hiperbolik arcsinüs fonksiyonudur.
[COLOR=white !important]
[TABLE=full][TR][TD]
-atan(x)
arctanjant fonksiyonudur.
[COLOR=white !important]
[TABLE=full][TR][TD]
-atan2(y,x)
Sonuç olarak y/x in arctanjantını verir. Neden atan(y/x) bize yetmiyor mu derseniz atan2(y,x) fonksiyonu işaret karışıklığını gidermek için kullanılabilir.
[COLOR=white !important]
[TABLE=full][TR][TD]
-atanh(x)
X değerinin Hiberbolik arctanjantını radyan cinsinden veren fonksiyondur.
[COLOR=white !important]
[TABLE=full][TR][TD]
-ceil(x)
ceil in kelime anlamı ingilizce de tavanla ilgilidir. Bu fonksiyonda adının hakkını vererek aldığı parametreye en yakın büyük tam sayıyı bize verir.
[COLOR=white !important]
[TABLE=full][TR][TD]
-copysign(x, y)
Bu fonksiyon kısaca y nin işaretini x e kopyalar diyebiliriz. Geri dönüş değeri yine x tir.
[COLOR=white !important]
[TABLE=full][TR][TD]
-cos(x)
İlkokuldan beri bildiğimiz kosinüs fonksiyonu
. Burada parametre olarak radyan değer girilir arkadaşlar.
[COLOR=white !important]
[TABLE=full][TR][TD]
-cosh(x)
Hiperbolik cosinüs fonksiyonudur.
[COLOR=white !important]
[TABLE=full][TR][TD]
-degrees(x)
Radyan cinsinden girilen değerin açı olarak verir. Yukarıda radyan olarak kullandığımız değerlerin karşılığını görelim isterseniz
.
[COLOR=white !important]
[TABLE=full][TR][TD]
-exp(x)
Bu fonksiyon bize e^x işlemini yapmaktadır.
[COLOR=white !important]
[TABLE=full][TR][TD]
-expm1(x)
Bu fonksiyonun exp(x) ten tek farkı sonucu 1 çıkarıp vermesidir. Yani e^x-1 işlemini yapar.
[COLOR=white !important]
[TABLE=full][TR][TD]
-fabs(x)
Girilen değerin mutlak değerini verir.
[COLOR=white !important]
[TABLE=full][TR][TD]
-factorial(x)
Fonksiyonumuz x! i bulur. Tabi negatif yazmamaya dikkat ediyoruz.
[COLOR=white !important]
[TABLE=full][TR][TD]
-floor(x)
Floor türkçede zemin anlamına gelmektedir. Bu fonksiyonda aldığı değeri en yakın küçük tam sayıya yuvarlar.
[COLOR=white !important]
[TABLE=full][TR][TD]
-fmod(x,y)
fmod(x,y) fonksiyonu, a sayısının b sayısına bölümünden kalanı veren bir fonksiyondur. a%b işlemiyle aynıdır ama fmod ile ondalıklı sayılarıda kullanabiliriz.
[COLOR=white !important]
[TABLE=full][TR][TD]
-frexp(x)
Bu fonksiyon bize verilen değerin karakteristiğini ve mantisini veriyor. Sonu olarak bize (m,k) şeklinde bir değer döndürüyor. Burada m mantis, k karakteristiktir.
[COLOR=white !important]
[TABLE=full][TR][TD]
-hypot(x,y)
Evet sizinde tahmin ettiğniz gibi girilen değerlere karşılık gelen hipotenüs uzunluğunu bulur. Öklid in dik üçgen kanunundaki sqrt(x*x+y*y) işleminin sonucudur aslında.
[COLOR=white !important]
[TABLE=full][TR][TD]
-isinf(x)
Ne kadar işiniz düşer bilinmez ama bu fonksiyonumuz da bir sayının sonsuz olup olmadığını kontrol ederek bize true ya da false değer döndürür.
-isnan(x)
Bu fonksiyonunda girilen parametrenin belirsizlik durumunu kontrol eder. Yani (sonsuz/sonsuz), (sonsuz*0) gibi.
-ldexp(x,y)
Bu fonksiyonumuz da x*(2**y) işlemini döndürür. (** işlemi üs alma işlemiydi hatırlarsanız.)
[COLOR=white !important]
[TABLE=full][TR][TD]
-log(x,y)
Logaritması alınacak sayı x tir. Tabanımız ise y değeridir.
[COLOR=white !important]
[TABLE=full][TR][TD]
-log10(x)
Girilen parametrenin 10 tabanındaki logaritmasını alır.
[COLOR=white !important]
[TABLE=full][TR][TD]
-log1p(x)
Bu fonksiyon 1+x değerinin e tabanındaki logaritmasını alır:
[COLOR=white !important]
[TABLE=full][TR][TD]
-modf(x)
Girilen değerin ondalık kısmını ve tam kısmını birbirinden ayırıp geri döndürür.Girilen sayı tam sayı da ondalıklı sayı da olabilir.
[COLOR=white !important]
[TABLE=full][TR][TD]
-pow(x,y)
xy işlemini yapan fonksiyonumuzdur. Bu fonksiyonu ayrıca math modülünü import etmeden de kullanabilirsiniz.
[COLOR=white !important]
[TABLE=full][TR][TD]
-radians(x)
Girilen açı değerinin radyan karşılığını verir:
[COLOR=white !important]
[TABLE=full][TR][TD]
-sin(x)
Bildiğimiz sinüs fonksiyonudur. Tabi hep olduğu gibi burada da değer olara radyan giriyoruz.
[COLOR=white !important]
[TABLE=full][TR][TD]
-sinh(x)
Hiperbolik sinüs fonksiyonudur. Sinüs te nasıl değeri radyan cinsinden alıyorsa burada da radyan cinsinden geri döndürür.
[COLOR=white !important]
[TABLE=full][TR][TD]
-sqrt(x)
Bir çok programlama dilinde aynı olan bu fonksiyonumuz eğer aşinalığınız varsa karekök alan fonksiyon olduğunu anlamışsınızdır.
[COLOR=white !important]
[TABLE=full][TR][TD]
-tan(x)
Yine klasik trigonometrik fonksiyonlardan bir tanesi olan tanjant fonksiyonu.
[COLOR=white !important]
[TABLE=full][TR][TD]
-tanh(x)
Hiperbolik tanjant fonksiyonudur.
[COLOR=white !important]
[TABLE=full][TR][TD]
-trunc(x)
Evet bu fonksiyonda modülümüzde yer alan son fonksiyonumuzdu arkadaşlar. Ne işe yarıyor diye soracak olursanız girilen sayımızın ondalık kısmını atıp elinde kalan değeri bize geri döndürür. Yaprığı işin yuvarlamayla ilgisi yoktur yani. Örneğimiz rahatlıkla açılar bu durumu:
[COLOR=white !important]
[TABLE=full][TR][TD]
Son olarak da bilgi olması açısından Pyhon' umuzun e ve Pi sabitlerinin sayı değerlerini verelim.
e = 2.718281828459045
pi = 3.141592653589793
Bu bölümde matematik modülünü işledik ve tüm fonksiyonlarımızı inceleme imkanı bulduk. Şimdi dışarı çıkıp temiz bir hava alabilirsiniz
...
*Burada önemli olan nokta 14 ün sayı olarak değil bir String ifade olarak işleme sokulmasıdır.
Not: Yine her programlama dilinde olduğu gibi Python da işlem önceliğine dikkat eder. Bir diğer dikkat edilmesi gereken husus ise bölme işleminde karşımıza çıkar. İki integer sayıyı böldüğümüzde eğer bir kalan oluşursa Python bunu göz ardı eder.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
[/TD]2
3
[TD]>>>13/6
2
>>>
[/TD]
[/TR]2
>>>
[/TD]
[/TABLE]Bu sorundan iki sayıdan birini float dediğimiz yani türkçe tabiriyle kayan noktalı halde yazarak kurtulabiliriz.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
[/TD]2
3
[TD]>>>13/6.0
2.1666666666666665
>>>
[/TD]
[/TR]2.1666666666666665
>>>
[/TD]
[/TABLE]Tabi her seferinde böyle virgüllü sayımı yazacağız diye soracak olursanız bunun da kolayı var
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
[/TD][TD]from __future__ import division
[/TD]
[/TR][/TD]
[/TABLE]Eğer komut satırında isek Python bir dahaki açılışına kadar virgüllü sayıları es geçmez.
Örnek olması açısından küçük bir örnek de String ifadeler için yapalım.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
4
5
6
7
8
9
[/TD]2
3
4
5
6
7
8
9
[TD]>>>a=Hel
>>>b=lo
>>>c=a+b
>>>print c
'Hello'
>>>c=c+ world
>>>print c
'Hello world'
>>>
[/TD]
[/TR]>>>b=lo
>>>c=a+b
>>>print c
'Hello'
>>>c=c+ world
>>>print c
'Hello world'
>>>
[/TD]
[/TABLE]Matematiksel operatörlerde son olarak değineceğimiz kısım üs alma ve mod işlemi.
Bu işlemlerden mod almayı halletmek için Python ' % ' işaretini kullanır. Ancak üs alma işlemi dğer programlama dillerinden biraz farklıdır. Python da üs alma (a^b) işlemini ' ** ' yardımıyla yaparız. Hemen örnek verecek olursak:
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
4
5
6
7
[/TD]2
3
4
5
6
7
[TD]>>>13%2
1
>>>2**3
8
>>>3**2
9
>>>
[/TD]
[/TR]1
>>>2**3
8
>>>3**2
9
>>>
[/TD]
[/TABLE]İlişkisel Operatörler
Bir diğer operatör türümüzde ilişkisel operatörler dediğimiz yapılardır. Bunlar == (eşit mi?), != (farklı mı), < (küçük mü?), > (büyük mü?), <= (küçükeşit mi?), >= (büyükeşit mi?) gibi işaretlerdir. Bu operatörler basit karşılaştırma işlemleri yaparlar ve yaptıkları işlemin sonucunda 'true' ya da 'false' değerleri döndürürler. Hemen örneklerimizde görelim arkadaşlar:
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
4
5
6
7
8
9
10
[/TD]2
3
4
5
6
7
8
9
10
[TD]>>>4>=9
False
>>>abc!=def
True
>>>x=abc
>>>x==abc
True
>>>14!=9
True
>>>
[/TD]
[/TR]False
>>>abc!=def
True
>>>x=abc
>>>x==abc
True
>>>14!=9
True
>>>
[/TD]
[/TABLE]Unutmadan yine operatörler konusunda bahsedilmesi gereken +=, -=, *=, /= c operatörlerini ele alalım.Bu operatörler hızlı bir şekilde değişkenin değerini işleme tabi tutup ardından tekrar değişkene atamak için kullanılır. Aşağıda ki örnekte iki işleminde aynı anlama geldiğini görebiliriz:
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
4
5
6
7
8
9
[/TD]2
3
4
5
6
7
8
9
[TD]>>> x = 5
>>> x = x + 6
>>> print x
11
>>> y = 5
>>> y += 6
>>> print y
11
>>>
[/TD]
[/TR]>>> x = x + 6
>>> print x
11
>>> y = 5
>>> y += 6
>>> print y
11
>>>
[/TD]
[/TABLE]Matematiksel Fonksiyonlar ve math Modülü
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Evet arkadaşlar operatörleri bitirdikten sonra şimdi de matematiksel fonksiyonları tek bir çatı altında toplayan math modülünden bahsedelim. Bu konu modüller kısmında da anlatılabilirdi ama biz burada anlatmayı daha uygun gördük. Böylece math altındaki tüm fonksiyonları tek tek inceleyebiliriz.Bu modülü kullanabilmemiz için öncelikle çalışmamıza import etmemiz gerekiyor:
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
[/TD]2
[TD]>>>import math
>>>
[/TD]
[/TR]>>>
[/TD]
[/TABLE]Fonksiyonlar çağrılırken math.xxx şeklinde xxx kısmına fonksiyonlar yazılır.
Eğer math modülü altındaki tüm fonksiyonları görmek isterseniz:
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
[/TD]2
[TD]>>>dir(math) #yazarak veya
>>>help(math) #yazarak görebilirsiniz.
[/TD]
[/TR]>>>help(math) #yazarak görebilirsiniz.
[/TD]
[/TABLE]help(math) kısmında ayrıca fonksiyonların özelliklerdinden kısa kısa bahsedilir.
Şimdi alfabetik sıraya göre bu fonksiyonları teker teker inceleyelim arkadaşlar.
-acos(x)
arccosinüs (cosinüs fonk. tersi) fonksiyonudur ve dönen değer radyan cinsindendir.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
[/TD]2
3
[TD]>>>math.acos(0)
1.5707963267948966
>>>
[/TD]
[/TR]1.5707963267948966
>>>
[/TD]
[/TABLE]-acosh(x)
Hiperbolik kosinüs fonksiyonunun tersidir ve bu da radyan cinsinden bir değer döndü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.
[/COLOR][TABLE=full][TR][TD]
1
2
3
[/TD]2
3
[TD]>>>math.acosh(1)
0.0
>>>
[/TD]
[/TR]0.0
>>>
[/TD]
[/TABLE]-asin(x)
Arcsinüs fonksiyonudur. Dönüş değeri radyandır.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
[/TD]2
3
[TD]>>>math.asin(1)
1.5707963267948966
>>>
[/TD]
[/TR]1.5707963267948966
>>>
[/TD]
[/TABLE]-asinh(x)
Hiperbolik arcsinüs fonksiyonudur.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
[/TD]2
3
[TD]>>>math.asinh(0)
0.0
>>>
[/TD]
[/TR]0.0
>>>
[/TD]
[/TABLE]-atan(x)
arctanjant fonksiyonudur.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
[/TD]2
3
[TD]>>>math.atan(1)
0.7853981633974483
>>>
[/TD]
[/TR]0.7853981633974483
>>>
[/TD]
[/TABLE]-atan2(y,x)
Sonuç olarak y/x in arctanjantını verir. Neden atan(y/x) bize yetmiyor mu derseniz atan2(y,x) fonksiyonu işaret karışıklığını gidermek için kullanılabilir.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
[/TD]2
3
[TD]>>>atan2(5,5) # 5/5=1 olduğundan
0.7853981633974483
>>>
[/TD]
[/TR]0.7853981633974483
>>>
[/TD]
[/TABLE]-atanh(x)
X değerinin Hiberbolik arctanjantını radyan cinsinden veren fonksiyondur.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
[/TD]2
3
[TD]>>>math.atanh(0)
0.0
>>>
[/TD]
[/TR]0.0
>>>
[/TD]
[/TABLE]-ceil(x)
ceil in kelime anlamı ingilizce de tavanla ilgilidir. Bu fonksiyonda adının hakkını vererek aldığı parametreye en yakın büyük tam sayıyı bize verir.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
4
5
[/TD]2
3
4
5
[TD]>>>math.ceil(3.56843)
4.0
>>>math.ceil(-3.56843)
-3.0
>>>
[/TD]
[/TR]4.0
>>>math.ceil(-3.56843)
-3.0
>>>
[/TD]
[/TABLE]-copysign(x, y)
Bu fonksiyon kısaca y nin işaretini x e kopyalar diyebiliriz. Geri dönüş değeri yine x tir.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
[/TD]2
3
[TD]>>>math.copysign(2.56,-3)
-2.56
>>>
[/TD]
[/TR]-2.56
>>>
[/TD]
[/TABLE]-cos(x)
İlkokuldan beri bildiğimiz kosinüs fonksiyonu
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
[/TD]2
3
[TD]>>>math.cos(0.5235987755982988)
0.8660254037844387
>>>
[/TD]
[/TR]0.8660254037844387
>>>
[/TD]
[/TABLE]-cosh(x)
Hiperbolik cosinüs fonksiyonudur.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
[/TD]2
3
[TD]>>>math.cosh(1)
1.5430806348152437
>>>
[/TD]
[/TR]1.5430806348152437
>>>
[/TD]
[/TABLE]-degrees(x)
Radyan cinsinden girilen değerin açı olarak verir. Yukarıda radyan olarak kullandığımız değerlerin karşılığını görelim isterseniz
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
4
5
[/TD]2
3
4
5
[TD]>>>math.degrees(1.5707963267948966)
90.0
>>>math.degrees(0.5235987755982988)
30.0
>>>
[/TD]
[/TR]90.0
>>>math.degrees(0.5235987755982988)
30.0
>>>
[/TD]
[/TABLE]-exp(x)
Bu fonksiyon bize e^x işlemini yapmaktadır.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
[/TD]2
3
[TD]>>>math.exp(2)
7.38905609893065
>>>
[/TD]
[/TR]7.38905609893065
>>>
[/TD]
[/TABLE]-expm1(x)
Bu fonksiyonun exp(x) ten tek farkı sonucu 1 çıkarıp vermesidir. Yani e^x-1 işlemini yapar.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
[/TD]2
3
[TD]>>>math.expm1(2)
6.38905609893065
>>>
[/TD]
[/TR]6.38905609893065
>>>
[/TD]
[/TABLE]-fabs(x)
Girilen değerin mutlak değerini verir.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
[/TD]2
3
[TD]>>>math.fabs(-3.26)
3.26
>>>
[/TD]
[/TR]3.26
>>>
[/TD]
[/TABLE]-factorial(x)
Fonksiyonumuz x! i bulur. Tabi negatif yazmamaya dikkat ediyoruz.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
[/TD]2
3
[TD]>>>math.factorial(4)
24
>>>
[/TD]
[/TR]24
>>>
[/TD]
[/TABLE]-floor(x)
Floor türkçede zemin anlamına gelmektedir. Bu fonksiyonda aldığı değeri en yakın küçük tam sayıya yuvarlar.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
4
5
[/TD]2
3
4
5
[TD]>>> math.floor(3.56843)
3.0
>>> math.floor(-3.56843)
-4.0
>>>
[/TD]
[/TR]3.0
>>> math.floor(-3.56843)
-4.0
>>>
[/TD]
[/TABLE]-fmod(x,y)
fmod(x,y) fonksiyonu, a sayısının b sayısına bölümünden kalanı veren bir fonksiyondur. a%b işlemiyle aynıdır ama fmod ile ondalıklı sayılarıda kullanabiliriz.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
4
5
[/TD]2
3
4
5
[TD]>>> math.fmod(5,3)
2.0
>>> math.fmod(6,3.2)
2.8
>>>
[/TD]
[/TR]2.0
>>> math.fmod(6,3.2)
2.8
>>>
[/TD]
[/TABLE]-frexp(x)
Bu fonksiyon bize verilen değerin karakteristiğini ve mantisini veriyor. Sonu olarak bize (m,k) şeklinde bir değer döndürüyor. Burada m mantis, k karakteristiktir.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
[/TD]2
3
[TD]>>>math.frexp(7)
(0.875, 3)
>>>
[/TD]
[/TR](0.875, 3)
>>>
[/TD]
[/TABLE]-hypot(x,y)
Evet sizinde tahmin ettiğniz gibi girilen değerlere karşılık gelen hipotenüs uzunluğunu bulur. Öklid in dik üçgen kanunundaki sqrt(x*x+y*y) işleminin sonucudur aslında.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
[/TD]2
3
[TD]>>>math.hypot(3,4)
5.0
>>>
[/TD]
[/TR]5.0
>>>
[/TD]
[/TABLE]-isinf(x)
Ne kadar işiniz düşer bilinmez ama bu fonksiyonumuz da bir sayının sonsuz olup olmadığını kontrol ederek bize true ya da false değer döndürür.
-isnan(x)
Bu fonksiyonunda girilen parametrenin belirsizlik durumunu kontrol eder. Yani (sonsuz/sonsuz), (sonsuz*0) gibi.
-ldexp(x,y)
Bu fonksiyonumuz da x*(2**y) işlemini döndürür. (** işlemi üs alma işlemiydi hatırlarsanız.)
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
[/TD]2
3
[TD]>>>math.ldexp(3,2)
12.0
>>>
[/TD]
[/TR]12.0
>>>
[/TD]
[/TABLE]-log(x,y)
Logaritması alınacak sayı x tir. Tabanımız ise y değeridir.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
[/TD]2
3
[TD]>>>math.log(8,2)
3.0
>>>
[/TD]
[/TR]3.0
>>>
[/TD]
[/TABLE]-log10(x)
Girilen parametrenin 10 tabanındaki logaritmasını alır.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
[/TD]2
3
[TD]>>>math.log10(1000)
3.0
>>>
[/TD]
[/TR]3.0
>>>
[/TD]
[/TABLE]-log1p(x)
Bu fonksiyon 1+x değerinin e tabanındaki logaritmasını alır:
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
[/TD]2
3
[TD]>>> math.log1p(4)
1.6094379124341003
>>>
[/TD]
[/TR]1.6094379124341003
>>>
[/TD]
[/TABLE]-modf(x)
Girilen değerin ondalık kısmını ve tam kısmını birbirinden ayırıp geri döndürür.Girilen sayı tam sayı da ondalıklı sayı da olabilir.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
[/TD]2
3
[TD]>>> math.modf(6.5)
(0.5, 6.0)
>>>
[/TD]
[/TR](0.5, 6.0)
>>>
[/TD]
[/TABLE]-pow(x,y)
xy işlemini yapan fonksiyonumuzdur. Bu fonksiyonu ayrıca math modülünü import etmeden de kullanabilirsiniz.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
4
5
[/TD]2
3
4
5
[TD]>>>math.pow(5,3)
125
>>>pow(2,3)
8
>>>
[/TD]
[/TR]125
>>>pow(2,3)
8
>>>
[/TD]
[/TABLE]-radians(x)
Girilen açı değerinin radyan karşılığını verir:
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
[/TD]2
3
[TD]>>> math.radians(180)
3.141592653589793
>>>
[/TD]
[/TR]3.141592653589793
>>>
[/TD]
[/TABLE]-sin(x)
Bildiğimiz sinüs fonksiyonudur. Tabi hep olduğu gibi burada da değer olara radyan giriyoruz.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
[/TD]2
3
[TD]>>> math.sin(1.0471975511965976)
0.8660254037844386
>>>
[/TD]
[/TR]0.8660254037844386
>>>
[/TD]
[/TABLE]-sinh(x)
Hiperbolik sinüs fonksiyonudur. Sinüs te nasıl değeri radyan cinsinden alıyorsa burada da radyan cinsinden geri döndü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.
[/COLOR][TABLE=full][TR][TD]
1
2
3
[/TD]2
3
[TD]>>>math.sinh(1)
1.1752011936438014
>>>
[/TD]
[/TR]1.1752011936438014
>>>
[/TD]
[/TABLE]-sqrt(x)
Bir çok programlama dilinde aynı olan bu fonksiyonumuz eğer aşinalığınız varsa karekök alan fonksiyon olduğunu anlamışsınızdır.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
[/TD]2
3
[TD]>>>math.sqrt(81)
9.0
>>>
[/TD]
[/TR]9.0
>>>
[/TD]
[/TABLE]-tan(x)
Yine klasik trigonometrik fonksiyonlardan bir tanesi olan tanjant fonksiyonu.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
[/TD]2
3
[TD]>>>math.tan(1)
1.5574077246549023
>>>
[/TD]
[/TR]1.5574077246549023
>>>
[/TD]
[/TABLE]-tanh(x)
Hiperbolik tanjant fonksiyonudur.
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
[/TD]2
3
[TD]>>>math.tanh(0)
0.0
>>>
[/TD]
[/TR]0.0
>>>
[/TD]
[/TABLE]-trunc(x)
Evet bu fonksiyonda modülümüzde yer alan son fonksiyonumuzdu arkadaşlar. Ne işe yarıyor diye soracak olursanız girilen sayımızın ondalık kısmını atıp elinde kalan değeri bize geri döndürür. Yaprığı işin yuvarlamayla ilgisi yoktur yani. Örneğimiz rahatlıkla açılar bu durumu:
[COLOR=white !important]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
[/COLOR][TABLE=full][TR][TD]
1
2
3
4
[/TD]2
3
4
[TD]>>>math.trunc(12.6)
12
>>>math.trunc(-12.6)
-12
[/TD]
[/TR]12
>>>math.trunc(-12.6)
-12
[/TD]
[/TABLE]Son olarak da bilgi olması açısından Pyhon' umuzun e ve Pi sabitlerinin sayı değerlerini verelim.
e = 2.718281828459045
pi = 3.141592653589793
Bu bölümde matematik modülünü işledik ve tüm fonksiyonlarımızı inceleme imkanı bulduk. Şimdi dışarı çıkıp temiz bir hava alabilirsiniz
Operatörler ve Matematıksel İşlemler
Metin2 özel sunucu geliştirme süreçlerinde, programlama dilleri olan C++ ve Python gibi teknolojiler kullanılır. Bu süreçte temel yapı taşlarından birisi de operatörlerdir. Operatörler, değişkenler üzerinde matematıksel, mantıksal veya karşılaştırma işlemleri yapmamızı sağlar. Özellikle game core ve db core gibi sistemlerde doğru operatör kullanımı, performans ve hata yönetimi açısından kritik öneme sahiptir.
Matematıksel Operatörler
Matematıksel işlemler, sayısal değerler üzerinde toplama, çıkarma, çarpma gibi işlemleri gerçekleştirmek için kullanılır. C++ ve Python'da kullanılan temel matematıksel operatörler şunlardır:
- Toplama (+): a + b
- Çıkarma (-): a - b
- Çarpma (*): a * b
- Bölme (/): a / b
- Modül (%): a % b -> Kalanı verir
Örneğin, bir oyuncunun level hesaplaması yapılırken, skoruna göre bir puan ekleme işlemi yapılabilir. Bu gibi durumlarda modül operatörü, belirli bir seviye aralığında farklı bonuslar vermek için idealdir.
Atama Operatörleri
Değişkenlere değer atamak için kullanılır. Temel atama operatörü [=]’dir. Bununla birlikte, kısa yoldan atama yapan operatörler de mevcuttur:
- a += b → a = a + b
- a -= b → a = a - b
- a *= b → a = a * b
Bu operatörler, Metin2 server src üzerinde çalışan sistemlerde, örneğin bir karakterin can veya mana değerlerini güncellemek için sıklıkla kullanılır.
Karşılaştırma Operatörleri
Bu operatörler, iki değeri karşılaştırmak için kullanılır ve genellikle if veya while gibi kontrol yapılarında yer alır:
- Eşittir (==)
- Eşit değil (!=)
- Küçüktür (<)
- Büyüktür (>)
- Küçük eşit (<=)
- Büyük eşit (>=)
Bir PvP sisteminde, oyuncuların level farkına göre savaş izni verilirken bu operatörlerden faydalanılır. Örneğin, oyuncu1_level >= oyuncu2_level - 10 gibi bir kontrol yapılabilir.
Mantıksal Operatörler
Birden fazla koşulu birleştirmek için kullanılır. Python ve C++ dilinde yaygın olarak kullanılan mantıksal operatörler:
- Ve (and / &&)
- Veya (or / ||)
- Değil (not / !)
Bir Metin2 compile işlemi sırasında, derleme esnasında belirli kontrollerin yapılması gerekebilir. Örneğin, dosya_var_mi == true ve derleme_dosyasi_guncel == true gibi bir kontrolle derlemenin güvenliği sağlanabilir.
Python GUI ve Py Root İçinde Kullanımı
Python tabanlı GUI uygulamalarında, örneğin bir Py UI Script dosyasında kullanıcıdan alınan veriler üzerinden matematıksel işlemler yapılabilir. Bu işlemler sırasında operatörlerin doğruluğu, arayüzün doğru çalışmasını sağlar. Py root içinde bir sayaç ya da sayaç benzeri işlemler için artım operatörleri (++) tercih edilebilir.
Sonuç
Operatörler, hem Metin2 development hem de genel programlama sürecinde temel taşı görevi görür. Doğru kullanıldığında, game server programming süreçleri daha verimli ve okunabilir hale gelir. Martysama gibi sistemlerde, bu yapıların bilinmesi script düzenlemeleri ve source edit süreçleri için oldukça önemlidir.
Operators and Mathematical Operations
In the process of developing Metin2 private servers, programming languages such as C++ and Python are used. One of the fundamental building blocks during this process is operators. Operators allow us to perform mathematical, logical, or comparison operations on variables. Especially in systems like game core and db core, correct operator usage is critically important for performance and error management.
Mathematical Operators
Mathematical operations are used to perform addition, subtraction, multiplication, and similar operations on numeric values. The basic mathematical operators used in C++ and Python are:
- Addition (+): a + b
- Subtraction (-): a - b
- Multiplication (*): a * b
- Division (/): a / b
- Modulo (%): a % b -> Returns the remainder
For example, when calculating a player's level, points can be added based on their score. In such cases, the modulo operator is ideal for giving different bonuses within specific level ranges.
Assignment Operators
These are used to assign values to variables. The main assignment operator is [=]. However, there are also shorthand assignment operators:
- a += b → a = a + b
- a -= b → a = a - b
- a *= b → a = a * b
These operators are frequently used in systems running on Metin2 server src to update character stats such as health or mana values.
Comparison Operators
These operators are used to compare two values and are generally found in control structures like if or while:
- Equal to (==)
- Not equal to (!=)
- Less than (<)
- Greater than (>)
- Less than or equal to (<=)
- Greater than or equal to (>=)
In a PvP system, these operators might be used to grant combat permission based on players' level differences. For example, a check like player1_level >= player2_level - 10 could be performed.
Logical Operators
These are used to combine multiple conditions. Commonly used logical operators in Python and C++ are:
- And (and / &&)
- Or (or / ||)
- Not (not / !)
During a Metin2 compile process, certain checks may need to be performed during compilation. For example, a check like file_exists == true and build_file_is_updated == true ensures the security of the build process.
Usage in Python GUI and Py Root
In Python-based GUI applications, mathematical operations can be performed based on user input in a Py UI Script file. During these operations, the correctness of operators ensures the interface works properly. Increment operators (++) may be preferred inside py root for counters or counter-like operations.
Conclusion
Operators serve as the cornerstone in both Metin2 development and general programming processes. When used correctly, game server programming processes become more efficient and readable. Knowing these structures is highly important for script editing and source edit processes in systems like Martysama.
