Şaban paylaşmıştı bu biraz daha detaylısı.
İyi Forumlar
İyi Forumlar
Kod:
EDIT ITEM ENGELI //CHAR_ITEM.CPP //ARAT bool CHARACTER::EquipItem(LPITEM item, int iCandidateCell) //EKLE int canlilik_maxoran = 12; // 3 int zeka_maxoran = 12; // 4 int guc_maxoran = 12; // 5 int ceviklik_maxoran = 12; // 6 int saldirihizi_maxoran = 8; // 7 int harekethizi_maxoran = 20; // 8 int buyuhizi_maxoran = 20; // 9 int hpuretimi_maxoran = 30; // 10 int spuretimi_maxoran = 30; // 11 int zehirleme_maxoran = 8; // 12 int sersemletme_maxoran = 8; // 13 int yavaslik_maxoran = 8; // 14 int kritik_maxoran = 10; // 15 int delici_maxoran = 10; // 16 int yariinsan_maxoran = 10; // 17 int hayvanlara_maxoran = 20; // 18 int orklara_maxoran = 20; // 19 int mistiklere_maxoran = 20; // 20 int olumsuzlere_maxoran = 20; // 21 int seytanlara_maxoran = 20; // 22 int hpabsorbe_maxoran = 10; // 23 int spabsorbe_maxoran = 10; // 24 int spcalma_maxoran = 10; // 25 int spalma_maxoran = 10; // 26 int bedenbloklama_maxoran = 15; // 27 int oklardankorunma_maxoran = 15; // 28 int kilic_maxoran = 15; // 29 int ciftel_maxoran = 15; // 30 int bicak_maxoran = 15; // 31 int can_maxoran = 15; // 32 int yelpaze_maxoran = 15; // 33 int okadayaniklik_maxoran = 15; // 34 int atesedayaniklik_maxoran = 15; // 35 int simsegedayaniklik_maxoran = 15; // 36 int buyuyedayaniklik_maxoran = 15; // 37 if (item->GetAttributeType(0) == 3 and item->GetAttributeValue(0) > canlilik_maxoran or item->GetAttributeType(1) == 3 and item->GetAttributeValue(1) > canlilik_maxoran or item->GetAttributeType(2) == 3 and item->GetAttributeValue(2) > canlilik_maxoran or item->GetAttributeType(3) == 3 and item->GetAttributeValue(3) > canlilik_maxoran or item->GetAttributeType(4) == 3 and item->GetAttributeValue(4) > canlilik_maxoran or item->GetAttributeType(5) == 3 and item->GetAttributeValue(5) > canlilik_maxoran or item->GetAttributeType(6) == 3 and item->GetAttributeValue(6) > canlilik_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 4 and item->GetAttributeValue(0) > zeka_maxoran or item->GetAttributeType(1) == 4 and item->GetAttributeValue(1) > zeka_maxoran or item->GetAttributeType(2) == 4 and item->GetAttributeValue(2) > zeka_maxoran or item->GetAttributeType(3) == 4 and item->GetAttributeValue(3) > zeka_maxoran or item->GetAttributeType(4) == 4 and item->GetAttributeValue(4) > zeka_maxoran or item->GetAttributeType(5) == 4 and item->GetAttributeValue(5) > zeka_maxoran or item->GetAttributeType(6) == 4 and item->GetAttributeValue(6) > zeka_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 5 and item->GetAttributeValue(0) > guc_maxoran or item->GetAttributeType(1) == 5 and item->GetAttributeValue(1) > guc_maxoran or item->GetAttributeType(2) == 5 and item->GetAttributeValue(2) > guc_maxoran or item->GetAttributeType(3) == 5 and item->GetAttributeValue(3) > guc_maxoran or item->GetAttributeType(4) == 5 and item->GetAttributeValue(4) > guc_maxoran or item->GetAttributeType(5) == 5 and item->GetAttributeValue(5) > guc_maxoran or item->GetAttributeType(6) == 5 and item->GetAttributeValue(6) > guc_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 6 and item->GetAttributeValue(0) > ceviklik_maxoran or item->GetAttributeType(1) == 6 and item->GetAttributeValue(1) > ceviklik_maxoran or item->GetAttributeType(2) == 6 and item->GetAttributeValue(2) > ceviklik_maxoran or item->GetAttributeType(3) == 6 and item->GetAttributeValue(3) > ceviklik_maxoran or item->GetAttributeType(4) == 6 and item->GetAttributeValue(4) > ceviklik_maxoran or item->GetAttributeType(5) == 6 and item->GetAttributeValue(5) > ceviklik_maxoran or item->GetAttributeType(6) == 6 and item->GetAttributeValue(6) > ceviklik_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 7 and item->GetAttributeValue(0) > saldirihizi_maxoran or item->GetAttributeType(1) == 7 and item->GetAttributeValue(1) > saldirihizi_maxoran or item->GetAttributeType(2) == 7 and item->GetAttributeValue(2) > saldirihizi_maxoran or item->GetAttributeType(3) == 7 and item->GetAttributeValue(3) > saldirihizi_maxoran or item->GetAttributeType(4) == 7 and item->GetAttributeValue(4) > saldirihizi_maxoran or item->GetAttributeType(5) == 7 and item->GetAttributeValue(5) > saldirihizi_maxoran or item->GetAttributeType(6) == 7 and item->GetAttributeValue(6) > saldirihizi_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 8 and item->GetAttributeValue(0) > harekethizi_maxoran or item->GetAttributeType(1) == 8 and item->GetAttributeValue(1) > harekethizi_maxoran or item->GetAttributeType(2) == 8 and item->GetAttributeValue(2) > harekethizi_maxoran or item->GetAttributeType(3) == 8 and item->GetAttributeValue(3) > harekethizi_maxoran or item->GetAttributeType(4) == 8 and item->GetAttributeValue(4) > harekethizi_maxoran or item->GetAttributeType(5) == 8 and item->GetAttributeValue(5) > harekethizi_maxoran or item->GetAttributeType(6) == 8 and item->GetAttributeValue(6) > harekethizi_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 9 and item->GetAttributeValue(0) > buyuhizi_maxoran or item->GetAttributeType(1) == 9 and item->GetAttributeValue(1) > buyuhizi_maxoran or item->GetAttributeType(2) == 9 and item->GetAttributeValue(2) > buyuhizi_maxoran or item->GetAttributeType(3) == 9 and item->GetAttributeValue(3) > buyuhizi_maxoran or item->GetAttributeType(4) == 9 and item->GetAttributeValue(4) > buyuhizi_maxoran or item->GetAttributeType(5) == 9 and item->GetAttributeValue(5) > buyuhizi_maxoran or item->GetAttributeType(6) == 9 and item->GetAttributeValue(6) > buyuhizi_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 10 and item->GetAttributeValue(0) > hpuretimi_maxoran or item->GetAttributeType(1) == 10 and item->GetAttributeValue(1) > hpuretimi_maxoran or item->GetAttributeType(2) == 10 and item->GetAttributeValue(2) > hpuretimi_maxoran or item->GetAttributeType(3) == 10 and item->GetAttributeValue(3) > hpuretimi_maxoran or item->GetAttributeType(4) == 10 and item->GetAttributeValue(4) > hpuretimi_maxoran or item->GetAttributeType(5) == 10 and item->GetAttributeValue(5) > hpuretimi_maxoran or item->GetAttributeType(6) == 10 and item->GetAttributeValue(6) > hpuretimi_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 11 and item->GetAttributeValue(0) > spuretimi_maxoran or item->GetAttributeType(1) == 11 and item->GetAttributeValue(1) > spuretimi_maxoran or item->GetAttributeType(2) == 11 and item->GetAttributeValue(2) > spuretimi_maxoran or item->GetAttributeType(3) == 11 and item->GetAttributeValue(3) > spuretimi_maxoran or item->GetAttributeType(4) == 11 and item->GetAttributeValue(4) > spuretimi_maxoran or item->GetAttributeType(5) == 11 and item->GetAttributeValue(5) > spuretimi_maxoran or item->GetAttributeType(6) == 11 and item->GetAttributeValue(6) > spuretimi_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 12 and item->GetAttributeValue(0) > zehirleme_maxoran or item->GetAttributeType(1) == 12 and item->GetAttributeValue(1) > zehirleme_maxoran or item->GetAttributeType(2) == 12 and item->GetAttributeValue(2) > zehirleme_maxoran or item->GetAttributeType(3) == 12 and item->GetAttributeValue(3) > zehirleme_maxoran or item->GetAttributeType(4) == 12 and item->GetAttributeValue(4) > zehirleme_maxoran or item->GetAttributeType(5) == 12 and item->GetAttributeValue(5) > zehirleme_maxoran or item->GetAttributeType(6) == 12 and item->GetAttributeValue(6) > zehirleme_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 13 and item->GetAttributeValue(0) > sersemletme_maxoran or item->GetAttributeType(1) == 13 and item->GetAttributeValue(1) > sersemletme_maxoran or item->GetAttributeType(2) == 13 and item->GetAttributeValue(2) > sersemletme_maxoran or item->GetAttributeType(3) == 13 and item->GetAttributeValue(3) > sersemletme_maxoran or item->GetAttributeType(4) == 13 and item->GetAttributeValue(4) > sersemletme_maxoran or item->GetAttributeType(5) == 13 and item->GetAttributeValue(5) > sersemletme_maxoran or item->GetAttributeType(6) == 13 and item->GetAttributeValue(6) > sersemletme_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 14 and item->GetAttributeValue(0) > yavaslik_maxoran or item->GetAttributeType(1) == 14 and item->GetAttributeValue(1) > yavaslik_maxoran or item->GetAttributeType(2) == 14 and item->GetAttributeValue(2) > yavaslik_maxoran or item->GetAttributeType(3) == 14 and item->GetAttributeValue(3) > yavaslik_maxoran or item->GetAttributeType(4) == 14 and item->GetAttributeValue(4) > yavaslik_maxoran or item->GetAttributeType(5) == 14 and item->GetAttributeValue(5) > yavaslik_maxoran or item->GetAttributeType(6) == 14 and item->GetAttributeValue(6) > yavaslik_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 15 and item->GetAttributeValue(0) > kritik_maxoran or item->GetAttributeType(1) == 15 and item->GetAttributeValue(1) > kritik_maxoran or item->GetAttributeType(2) == 15 and item->GetAttributeValue(2) > kritik_maxoran or item->GetAttributeType(3) == 15 and item->GetAttributeValue(3) > kritik_maxoran or item->GetAttributeType(4) == 15 and item->GetAttributeValue(4) > kritik_maxoran or item->GetAttributeType(5) == 15 and item->GetAttributeValue(5) > kritik_maxoran or item->GetAttributeType(6) == 15 and item->GetAttributeValue(6) > kritik_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 16 and item->GetAttributeValue(0) > delici_maxoran or item->GetAttributeType(1) == 16 and item->GetAttributeValue(1) > delici_maxoran or item->GetAttributeType(2) == 16 and item->GetAttributeValue(2) > delici_maxoran or item->GetAttributeType(3) == 16 and item->GetAttributeValue(3) > delici_maxoran or item->GetAttributeType(4) == 16 and item->GetAttributeValue(4) > delici_maxoran or item->GetAttributeType(5) == 16 and item->GetAttributeValue(5) > delici_maxoran or item->GetAttributeType(6) == 16 and item->GetAttributeValue(6) > delici_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 17 and item->GetAttributeValue(0) > yariinsan_maxoran or item->GetAttributeType(1) == 17 and item->GetAttributeValue(1) > yariinsan_maxoran or item->GetAttributeType(2) == 17 and item->GetAttributeValue(2) > yariinsan_maxoran or item->GetAttributeType(3) == 17 and item->GetAttributeValue(3) > yariinsan_maxoran or item->GetAttributeType(4) == 17 and item->GetAttributeValue(4) > yariinsan_maxoran or item->GetAttributeType(5) == 17 and item->GetAttributeValue(5) > yariinsan_maxoran or item->GetAttributeType(6) == 17 and item->GetAttributeValue(6) > yariinsan_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 18 and item->GetAttributeValue(0) > hayvanlara_maxoran or item->GetAttributeType(1) == 18 and item->GetAttributeValue(1) > hayvanlara_maxoran or item->GetAttributeType(2) == 18 and item->GetAttributeValue(2) > hayvanlara_maxoran or item->GetAttributeType(3) == 18 and item->GetAttributeValue(3) > hayvanlara_maxoran or item->GetAttributeType(4) == 18 and item->GetAttributeValue(4) > hayvanlara_maxoran or item->GetAttributeType(5) == 18 and item->GetAttributeValue(5) > hayvanlara_maxoran or item->GetAttributeType(6) == 18 and item->GetAttributeValue(6) > hayvanlara_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 19 and item->GetAttributeValue(0) > orklara_maxoran or item->GetAttributeType(1) == 19 and item->GetAttributeValue(1) > orklara_maxoran or item->GetAttributeType(2) == 19 and item->GetAttributeValue(2) > orklara_maxoran or item->GetAttributeType(3) == 19 and item->GetAttributeValue(3) > orklara_maxoran or item->GetAttributeType(4) == 19 and item->GetAttributeValue(4) > orklara_maxoran or item->GetAttributeType(5) == 19 and item->GetAttributeValue(5) > orklara_maxoran or item->GetAttributeType(6) == 19 and item->GetAttributeValue(6) > orklara_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 20 and item->GetAttributeValue(0) > 20 or item->GetAttributeType(1) == 20 and item->GetAttributeValue(1) > mistiklere_maxoran or item->GetAttributeType(2) == 20 and item->GetAttributeValue(2) > mistiklere_maxoran or item->GetAttributeType(3) == 20 and item->GetAttributeValue(3) > mistiklere_maxoran or item->GetAttributeType(4) == 20 and item->GetAttributeValue(4) > mistiklere_maxoran or item->GetAttributeType(5) == 20 and item->GetAttributeValue(5) > mistiklere_maxoran or item->GetAttributeType(6) == 20 and item->GetAttributeValue(6) > mistiklere_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 21 and item->GetAttributeValue(0) > olumsuzlere_maxoran or item->GetAttributeType(1) == 21 and item->GetAttributeValue(1) > olumsuzlere_maxoran or item->GetAttributeType(2) == 21 and item->GetAttributeValue(2) > olumsuzlere_maxoran or item->GetAttributeType(3) == 21 and item->GetAttributeValue(3) > olumsuzlere_maxoran or item->GetAttributeType(4) == 21 and item->GetAttributeValue(4) > olumsuzlere_maxoran or item->GetAttributeType(5) == 21 and item->GetAttributeValue(5) > olumsuzlere_maxoran or item->GetAttributeType(6) == 21 and item->GetAttributeValue(6) > olumsuzlere_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 22 and item->GetAttributeValue(0) > seytanlara_maxoran or item->GetAttributeType(1) == 22 and item->GetAttributeValue(1) > seytanlara_maxoran or item->GetAttributeType(2) == 22 and item->GetAttributeValue(2) > seytanlara_maxoran or item->GetAttributeType(3) == 22 and item->GetAttributeValue(3) > seytanlara_maxoran or item->GetAttributeType(4) == 22 and item->GetAttributeValue(4) > seytanlara_maxoran or item->GetAttributeType(5) == 22 and item->GetAttributeValue(5) > seytanlara_maxoran or item->GetAttributeType(6) == 22 and item->GetAttributeValue(6) > seytanlara_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 23 and item->GetAttributeValue(0) > hpabsorbe_maxoran or item->GetAttributeType(1) == 23 and item->GetAttributeValue(1) > hpabsorbe_maxoran or item->GetAttributeType(2) == 23 and item->GetAttributeValue(2) > hpabsorbe_maxoran or item->GetAttributeType(3) == 23 and item->GetAttributeValue(3) > hpabsorbe_maxoran or item->GetAttributeType(4) == 23 and item->GetAttributeValue(4) > hpabsorbe_maxoran or item->GetAttributeType(5) == 23 and item->GetAttributeValue(5) > hpabsorbe_maxoran or item->GetAttributeType(6) == 23 and item->GetAttributeValue(6) > hpabsorbe_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 24 and item->GetAttributeValue(0) > spabsorbe_maxoran or item->GetAttributeType(1) == 24 and item->GetAttributeValue(1) > spabsorbe_maxoran or item->GetAttributeType(2) == 24 and item->GetAttributeValue(2) > spabsorbe_maxoran or item->GetAttributeType(3) == 24 and item->GetAttributeValue(3) > spabsorbe_maxoran or item->GetAttributeType(4) == 24 and item->GetAttributeValue(4) > spabsorbe_maxoran or item->GetAttributeType(5) == 24 and item->GetAttributeValue(5) > spabsorbe_maxoran or item->GetAttributeType(6) == 24 and item->GetAttributeValue(6) > spabsorbe_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 25 and item->GetAttributeValue(0) > spcalma_maxoran or item->GetAttributeType(1) == 25 and item->GetAttributeValue(1) > spcalma_maxoran or item->GetAttributeType(2) == 25 and item->GetAttributeValue(2) > spcalma_maxoran or item->GetAttributeType(3) == 25 and item->GetAttributeValue(3) > spcalma_maxoran or item->GetAttributeType(4) == 25 and item->GetAttributeValue(4) > spcalma_maxoran or item->GetAttributeType(5) == 25 and item->GetAttributeValue(5) > spcalma_maxoran or item->GetAttributeType(6) == 25 and item->GetAttributeValue(6) > spcalma_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 26 and item->GetAttributeValue(0) > spalma_maxoran or item->GetAttributeType(1) == 26 and item->GetAttributeValue(1) > spalma_maxoran or item->GetAttributeType(2) == 26 and item->GetAttributeValue(2) > spalma_maxoran or item->GetAttributeType(3) == 26 and item->GetAttributeValue(3) > spalma_maxoran or item->GetAttributeType(4) == 26 and item->GetAttributeValue(4) > spalma_maxoran or item->GetAttributeType(5) == 26 and item->GetAttributeValue(5) > spalma_maxoran or item->GetAttributeType(6) == 26 and item->GetAttributeValue(6) > spalma_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 27 and item->GetAttributeValue(0) > bedenbloklama_maxoran or item->GetAttributeType(1) == 27 and item->GetAttributeValue(1) > bedenbloklama_maxoran or item->GetAttributeType(2) == 27 and item->GetAttributeValue(2) > bedenbloklama_maxoran or item->GetAttributeType(3) == 27 and item->GetAttributeValue(3) > bedenbloklama_maxoran or item->GetAttributeType(4) == 27 and item->GetAttributeValue(4) > bedenbloklama_maxoran or item->GetAttributeType(5) == 27 and item->GetAttributeValue(5) > bedenbloklama_maxoran or item->GetAttributeType(6) == 27 and item->GetAttributeValue(6) > bedenbloklama_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 28 and item->GetAttributeValue(0) > oklardankorunma_maxoran or item->GetAttributeType(1) == 28 and item->GetAttributeValue(1) > oklardankorunma_maxoran or item->GetAttributeType(2) == 28 and item->GetAttributeValue(2) > oklardankorunma_maxoran or item->GetAttributeType(3) == 28 and item->GetAttributeValue(3) > oklardankorunma_maxoran or item->GetAttributeType(4) == 28 and item->GetAttributeValue(4) > oklardankorunma_maxoran or item->GetAttributeType(5) == 28 and item->GetAttributeValue(5) > oklardankorunma_maxoran or item->GetAttributeType(6) == 28 and item->GetAttributeValue(6) > oklardankorunma_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 29 and item->GetAttributeValue(0) > kilic_maxoran or item->GetAttributeType(1) == 29 and item->GetAttributeValue(1) > kilic_maxoran or item->GetAttributeType(2) == 29 and item->GetAttributeValue(2) > kilic_maxoran or item->GetAttributeType(3) == 29 and item->GetAttributeValue(3) > kilic_maxoran or item->GetAttributeType(4) == 29 and item->GetAttributeValue(4) > kilic_maxoran or item->GetAttributeType(5) == 29 and item->GetAttributeValue(5) > kilic_maxoran or item->GetAttributeType(6) == 29 and item->GetAttributeValue(6) > kilic_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 30 and item->GetAttributeValue(0) > ciftel_maxoran or item->GetAttributeType(1) == 30 and item->GetAttributeValue(1) > ciftel_maxoran or item->GetAttributeType(2) == 30 and item->GetAttributeValue(2) > ciftel_maxoran or item->GetAttributeType(3) == 30 and item->GetAttributeValue(3) > ciftel_maxoran or item->GetAttributeType(4) == 30 and item->GetAttributeValue(4) > ciftel_maxoran or item->GetAttributeType(5) == 30 and item->GetAttributeValue(5) > ciftel_maxoran or item->GetAttributeType(6) == 30 and item->GetAttributeValue(6) > ciftel_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 31 and item->GetAttributeValue(0) > bicak_maxoran or item->GetAttributeType(1) == 31 and item->GetAttributeValue(1) > bicak_maxoran or item->GetAttributeType(2) == 31 and item->GetAttributeValue(2) > bicak_maxoran or item->GetAttributeType(3) == 31 and item->GetAttributeValue(3) > bicak_maxoran or item->GetAttributeType(4) == 31 and item->GetAttributeValue(4) > bicak_maxoran or item->GetAttributeType(5) == 31 and item->GetAttributeValue(5) > bicak_maxoran or item->GetAttributeType(6) == 31 and item->GetAttributeValue(6) > bicak_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 32 and item->GetAttributeValue(0) > can_maxoran or item->GetAttributeType(1) == 32 and item->GetAttributeValue(1) > can_maxoran or item->GetAttributeType(2) == 32 and item->GetAttributeValue(2) > can_maxoran or item->GetAttributeType(3) == 32 and item->GetAttributeValue(3) > can_maxoran or item->GetAttributeType(4) == 32 and item->GetAttributeValue(4) > can_maxoran or item->GetAttributeType(5) == 32 and item->GetAttributeValue(5) > can_maxoran or item->GetAttributeType(6) == 32 and item->GetAttributeValue(6) > can_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 33 and item->GetAttributeValue(0) > yelpaze_maxoran or item->GetAttributeType(1) == 33 and item->GetAttributeValue(1) > yelpaze_maxoran or item->GetAttributeType(2) == 33 and item->GetAttributeValue(2) > yelpaze_maxoran or item->GetAttributeType(3) == 33 and item->GetAttributeValue(3) > yelpaze_maxoran or item->GetAttributeType(4) == 33 and item->GetAttributeValue(4) > yelpaze_maxoran or item->GetAttributeType(5) == 33 and item->GetAttributeValue(5) > yelpaze_maxoran or item->GetAttributeType(6) == 33 and item->GetAttributeValue(6) > yelpaze_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 34 and item->GetAttributeValue(0) > okadayaniklik_maxoran or item->GetAttributeType(1) == 34 and item->GetAttributeValue(1) > okadayaniklik_maxoran or item->GetAttributeType(2) == 34 and item->GetAttributeValue(2) > okadayaniklik_maxoran or item->GetAttributeType(3) == 34 and item->GetAttributeValue(3) > okadayaniklik_maxoran or item->GetAttributeType(4) == 34 and item->GetAttributeValue(4) > okadayaniklik_maxoran or item->GetAttributeType(5) == 34 and item->GetAttributeValue(5) > okadayaniklik_maxoran or item->GetAttributeType(6) == 34 and item->GetAttributeValue(6) > okadayaniklik_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 35 and item->GetAttributeValue(0) > atesedayaniklik_maxoran or item->GetAttributeType(1) == 35 and item->GetAttributeValue(1) > atesedayaniklik_maxoran or item->GetAttributeType(2) == 35 and item->GetAttributeValue(2) > atesedayaniklik_maxoran or item->GetAttributeType(3) == 35 and item->GetAttributeValue(3) > atesedayaniklik_maxoran or item->GetAttributeType(4) == 35 and item->GetAttributeValue(4) > atesedayaniklik_maxoran or item->GetAttributeType(5) == 35 and item->GetAttributeValue(5) > atesedayaniklik_maxoran or item->GetAttributeType(6) == 35 and item->GetAttributeValue(6) > atesedayaniklik_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 36 and item->GetAttributeValue(0) > simsegedayaniklik_maxoran or item->GetAttributeType(1) == 36 and item->GetAttributeValue(1) > simsegedayaniklik_maxoran or item->GetAttributeType(2) == 36 and item->GetAttributeValue(2) > simsegedayaniklik_maxoran or item->GetAttributeType(3) == 36 and item->GetAttributeValue(3) > simsegedayaniklik_maxoran or item->GetAttributeType(4) == 36 and item->GetAttributeValue(4) > simsegedayaniklik_maxoran or item->GetAttributeType(5) == 36 and item->GetAttributeValue(5) > simsegedayaniklik_maxoran or item->GetAttributeType(6) == 36 and item->GetAttributeValue(6) > simsegedayaniklik_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 37 and item->GetAttributeValue(0) > buyuyedayaniklik_maxoran or item->GetAttributeType(1) == 37 and item->GetAttributeValue(1) > buyuyedayaniklik_maxoran or item->GetAttributeType(2) == 37 and item->GetAttributeValue(2) > buyuyedayaniklik_maxoran or item->GetAttributeType(3) == 37 and item->GetAttributeValue(3) > buyuyedayaniklik_maxoran or item->GetAttributeType(4) == 37 and item->GetAttributeValue(4) > buyuyedayaniklik_maxoran or item->GetAttributeType(5) == 37 and item->GetAttributeValue(5) > buyuyedayaniklik_maxoran or item->GetAttributeType(6) == 37 and item->GetAttributeValue(6) > buyuyedayaniklik_maxoran) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 59 or item->GetAttributeType(1) == 59 or item->GetAttributeType(2) == 59 or item->GetAttributeType(3) == 59 or item->GetAttributeType(4) == 59 or item->GetAttributeType(5) == 59 or item->GetAttributeType(6) == 59) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 60 or item->GetAttributeType(1) == 60 or item->GetAttributeType(2) == 60 or item->GetAttributeType(3) == 60 or item->GetAttributeType(4) == 60 or item->GetAttributeType(5) == 60 or item->GetAttributeType(6) == 60) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 61 or item->GetAttributeType(1) == 61 or item->GetAttributeType(2) == 61 or item->GetAttributeType(3) == 61 or item->GetAttributeType(4) == 61 or item->GetAttributeType(5) == 61 or item->GetAttributeType(6) == 61) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 62 or item->GetAttributeType(1) == 62 or item->GetAttributeType(2) == 62 or item->GetAttributeType(3) == 62 or item->GetAttributeType(4) == 62 or item->GetAttributeType(5) == 62 or item->GetAttributeType(6) == 62) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 63 or item->GetAttributeType(1) == 63 or item->GetAttributeType(2) == 63 or item->GetAttributeType(3) == 63 or item->GetAttributeType(4) == 63 or item->GetAttributeType(5) == 63 or item->GetAttributeType(6) == 63) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 78 or item->GetAttributeType(1) == 78 or item->GetAttributeType(2) == 78 or item->GetAttributeType(3) == 78 or item->GetAttributeType(4) == 78 or item->GetAttributeType(5) == 78 or item->GetAttributeType(6) == 78) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 79 or item->GetAttributeType(1) == 79 or item->GetAttributeType(2) == 79 or item->GetAttributeType(3) == 79 or item->GetAttributeType(4) == 79 or item->GetAttributeType(5) == 79 or item->GetAttributeType(6) == 79) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 80 or item->GetAttributeType(1) == 80 or item->GetAttributeType(2) == 80 or item->GetAttributeType(3) == 80 or item->GetAttributeType(4) == 80 or item->GetAttributeType(5) == 80 or item->GetAttributeType(6) == 80) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; } if (item->GetAttributeType(0) == 81 or item->GetAttributeType(1) == 81 or item->GetAttributeType(2) == 81 or item->GetAttributeType(3) == 81 or item->GetAttributeType(4) == 81 or item->GetAttributeType(5) == 81 or item->GetAttributeType(6) == 81) { ChatPacket(CHAT_TYPE_INFO, "|cffFDD017|H|h<Hata> Bonus oranından yuksek eşyalar kullanılamaz !"); return false; }
Absürt Bonus Engeli Nedir?
Metin2 özel sunucularında geliştirilen PvP sistemlerinde, bazı bonus özelliklerin sınırlarını aşması, oyun deneyimini bozabilmektedir. Bu durum, 'absürt bonus engeli' olarak adlandırılır. Bu engel, oyuncuların kazançlı buldukları ancak oyun içi dengeleri ciddi şekilde bozan bonusları kontrol altına almak için geliştiriciler tarafından uygulanır.
Bonus Sistemlerinin Artan Etkisi
Metin2'de bonuslar, karakterlerin战斗力, dayanıklılık, hasar miktarı gibi temel özelliklerini artırır. Ancak bazı geliştiriciler, oyuncuların daha fazla zaman harcamasını ve sunucuda kalmalarını teşvik etmek amacıyla aşırı bonuslar tanımlamaktadır. Bu bonuslar zamanla oyun içi ekonomiyi ve PvP dengesini ciddi şekilde etkileyebilir. Örneğin, +%900 savunma artışı gibi bir bonus, normal saldırıları tamamen etkisiz hale getirebilir ve PvP maçlarını anlamsızlaştırabilir.
PvP Denge Sorunu
Oyuncuların PvP savaşlarında hissettikleri keyif, genellikle dengeli mücadelelerden gelir. Absürt bonuslar, güçlü olan karakterin her mücadeleyi kolayca kazanmasını sağlar. Bu da zayıf kalan oyuncuların oyundan kopmasına neden olabilir. Bu yüzden geliştiriciler, bonusların üst sınırlarını belirlemek zorundadır. Bu sınırlar, sadece PvP değil, PvE içeriği için de önemlidir.
Bonus Engelleme Yöntemleri
Geliştiriciler, absürt bonusları engellemek için farklı yöntemler kullanabilirler. Bunlardan biri, bonus değerlerine göre filtreleme yapmaktır. Örneğin, +%500'den yüksek bonuslara sahip karakterlerin turnuvalara katılması engellenebilir. Bir başka yöntem ise, bonusların toplam etkisinin hesaplanarak, belirli bir eşiği geçmesi durumunda otomatik olarak azaltılmasıdır. Bu tür sistemler genellikle Python GUI veya C++ sistemlerinde scriptlenerek uygulanır.
C++ ve Python Tabanlı Çözümler
Metin2 özel sunucularında, bonus sistemlerinin kontrolü genellikle sunucu tarafında yapılır. C++ ile yazılmış core sistemlerde, bonus hesaplamaları doğrudan sunucu kodları üzerinden yapılır. Python ile yazılmış GUI sistemlerinde ise bu kontroller daha görsel ve kullanıcı dostu bir şekilde yönetilebilir. Bu sistemlerde, örneğin bir karakterin bonusları her seviye atlama veya eşya takma sırasında yeniden hesaplanabilir. Bu şekilde, aşırı bonusların oluşması engellenir.
Database ve Sunucu Kaynak Kodlarında Uygulama
Bonus engelleme mekanizmaları, DB (database) kısmında da uygulanabilir. Karakterin bonus değerleri, auth ve game sunucuları arasında senkronize edilerek, her girişte kontrol edilebilir. Bu sistem, özellikle sunucu güvenliği ve hile önleme açısından büyük önem taşır. Martysama veya diğer Metin2 geliştirme araçları ile bu tür sistemler entegre edilebilir. Bu sayede, sunucu hem dengeli bir oynanış sunar hem de hileli bonuslardan korunur.
What is Absurd Bonus Limit?
In PvP systems developed for Metin2 private servers, exceeding certain bonus attributes can disrupt the overall gaming experience. This situation is called the 'absurd bonus limit'. This limit is implemented by developers to control bonuses that players find beneficial but which severely break in-game balance.
Increasing Impact of Bonus Systems
In Metin2, bonuses increase fundamental character stats like power, durability, and damage output. However, some developers introduce excessive bonuses to encourage players to spend more time and stay longer on the server. These bonuses can significantly affect the in-game economy and PvP balance over time. For example, a +%900 defense bonus might render normal attacks ineffective and make PvP battles meaningless.
PvP Balance Issues
Players enjoy PvP battles most when they are balanced. Absurd bonuses allow stronger characters to win all fights easily, which may cause weaker players to leave the game. Therefore, developers must set upper limits for bonuses. These limits are important not only for PvP but also for PvE content.
Methods of Blocking Bonuses
Developers can use different methods to block absurd bonuses. One method is filtering based on bonus values; for example, blocking characters with bonuses higher than +%500 from participating in tournaments. Another method is automatically reducing bonuses if their total effect exceeds a defined threshold. Such systems are usually implemented through scripts written in Python GUI or C++ systems.
C++ and Python-Based Solutions
In Metin2 private servers, controlling bonus systems typically happens on the server-side. In C++-based core systems, bonus calculations are done directly within the server code. In GUI systems written in Python, these controls can be managed more visually and user-friendly. In such systems, a character’s bonuses could be recalculated each time they level up or equip an item, preventing excessive bonuses from forming.
Implementation in Database and Server Source Code
Bonus-blocking mechanisms can also be applied at the database level. Character bonus values can be synchronized between auth and game servers and checked on every login. This system is particularly important for server security and cheat prevention. Such systems can be integrated using tools like Martysama or other Metin2 development utilities. This ensures that the server provides balanced gameplay while protecting against unfair bonuses.
