- Katılım
- Tem 11, 2024
- Mesajlar
- 259
- Tepkime puanı
- 339
- Konum
- ANKARA
- Dark Puan
- 3,198
- Discord
- farques6
- TagLise
- farques

Çalışma mantığı;
1)Mevcut seviyeden aşağıya inmez. Örn: Leveli 3 ise 2'ye veya 1'e düşmez.
2)Seviye kademeli olarak artar. Örn: Leveli 1 ise 3.seviye yapılamaz öncelikle 2. sevive yapılmalıdır.
3)Mevcut seviyesine bir daha ulaşamaz. Örn: Kuşağın levelini 1 yapmak için kullandığınız item'ı aynı kuşak üzerinde bir daha kullanamazsınız.
4)Kuşakları kombinlerken alt tarafa koyduğunuz kuşak leveli atlatılmış bir kuşak olamaz. Nedeni şu yanlışlıkla level atlatılmış kuşağınızı kaybetmeyin diye bu engeli koydum.
Anlatım;
common/item_length.h:
C++:
//ARAT;
ACCE_GRADE_4_ABS_MAX = 25,
//DEĞİŞTİR;
#ifdef ACCE_BONUS_BOOSTER
ACCE_LEVEL_SOCKET = 2,
ACCE_GRADE_4_ABS_MAX = 25,
ACCE_NEW_MAX_K = 50,
#else
ACCE_GRADE_4_ABS_MAX = 25,
#endif
common/service.h:
C++:
//EKLE;
#define ACCE_BONUS_BOOSTER
game/char.cpp:
C++:
//ARAT;
DWORD dwMaxAbsCalc = (dwMinAbs + ACCE_GRADE_4_ABS_RANGE > ACCE_GRADE_4_ABS_MAX ? ACCE_GRADE_4_ABS_MAX : (dwMinAbs + ACCE_GRADE_4_ABS_RANGE));
//DEĞİŞTİR;
#ifdef ACCE_BONUS_BOOSTER
auto ACCE_ABS_MAX = pkItemMaterial[0]->GetSocket(ACCE_LEVEL_SOCKET) * ACCE_NEW_MAX_K;
DWORD dwMaxAbsCalc;
if (ACCE_ABS_MAX != 0)
{
dwMaxAbsCalc = (dwMinAbs + ACCE_GRADE_4_ABS_RANGE > ACCE_ABS_MAX ? ACCE_ABS_MAX : (dwMinAbs + ACCE_GRADE_4_ABS_RANGE));
}
else
{
dwMaxAbsCalc = (dwMinAbs + ACCE_GRADE_4_ABS_RANGE > ACCE_GRADE_4_ABS_MAX ? ACCE_GRADE_4_ABS_MAX : (dwMinAbs + ACCE_GRADE_4_ABS_RANGE));
}
#else
DWORD dwMaxAbsCalc = (dwMinAbs + ACCE_GRADE_4_ABS_RANGE > ACCE_GRADE_4_ABS_MAX ? ACCE_GRADE_4_ABS_MAX : (dwMinAbs + ACCE_GRADE_4_ABS_RANGE));
#endif
//ARAT;
else if ((m_bAcceCombination) && (pkItem->GetSocket(ACCE_ABSORPTION_SOCKET) >= ACCE_GRADE_4_ABS_MAX))
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Bu kanat zaten maksimum emiş oranına sahip."));
return;
}
//DEĞİŞTİR;
#ifdef ACCE_BONUS_BOOSTER
else if (m_bAcceCombination)
{
if (pkItem->GetSocket(ACCE_LEVEL_SOCKET) != 0)
{
if (pkItem->GetSocket(ACCE_ABSORPTION_SOCKET) >= (pkItem->GetSocket(ACCE_LEVEL_SOCKET) * ACCE_NEW_MAX_K))
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Bu kanat zaten maksimum emiş oranına sahip."));
return;
}
}
else
{
if (pkItem->GetSocket(ACCE_ABSORPTION_SOCKET) >= ACCE_GRADE_4_ABS_MAX)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Bu kanat zaten maksimum emiş oranına sahip."));
return;
}
}
}
else if ((bPos == 1) && (m_bAcceCombination) && (pkItem->GetSocket(ACCE_ABSORPTION_SOCKET) >= ACCE_GRADE_4_ABS_MAX))
{
ChatPacket(CHAT_TYPE_INFO,"%d Emiş üzeri kuşakları kullanamazsınız.",ACCE_GRADE_4_ABS_MAX);
return;
}
#else
else if ((m_bAcceCombination) && (pkItem->GetSocket(ACCE_ABSORPTION_SOCKET) >= ACCE_GRADE_4_ABS_MAX))
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Bu kanat zaten maksimum emiş oranına sahip."));
return;
}
#endif
//ARAT;
pkItem->SetSocket(ACCE_ABSORBED_SOCKET, pkItemMaterial[0]->GetSocket(ACCE_ABSORBED_SOCKET));
//ALTINA EKLE;
#ifdef ACCE_BONUS_BOOSTER
pkItem->SetSocket(ACCE_LEVEL_SOCKET, pkItemMaterial[0]->GetSocket(ACCE_LEVEL_SOCKET));
#endif
game/char_item.cpp:
C++:
//ARAT;
case 71109:
//ÜSTÜNE EKLE;
#ifdef ACCE_BONUS_BOOSTER
case 71260:
case 71261:
case 71262:
case 71263:
case 71264:
case 71265:
{
LPITEM item2;
if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell)))
return false;
if (item2->IsExchanging())
return false;
if (item2->IsEquipped())
return false;
if (item2->GetType() != ITEM_COSTUME)
{
ChatPacket(CHAT_TYPE_INFO,"Bu eşya kostümlere özeldir.");
return false;
}
if (item2->GetSubType() != COSTUME_ACCE)
{
ChatPacket(CHAT_TYPE_INFO,"Bu eşya kuşaklara özeldir.");
return false;
}
if (item2->GetValue(ACCE_GRADE_VALUE_FIELD) != 4)
{
ChatPacket(CHAT_TYPE_INFO, "Bu öğe sadece 11 emiş ve üzeri kuşaklara özeldir.");
return false;
}
auto Acce_Level = item2->GetSocket(ACCE_LEVEL_SOCKET);//kuşağın mevcut level bilgisi
auto Item_Level = item->GetValue(0);//Value(0) DA KAÇINCI LEVEL OLACAĞINI BELİRTİYORUZ
if (Acce_Level > Item_Level)
{
ChatPacket(CHAT_TYPE_INFO, "Kuşağın mevcut seviyesini düşüremeyeceğiniz için bu öğeyi bu kuşak için kullanamazsınız.");
return false;
}
else if (Acce_Level == Item_Level)
{
ChatPacket(CHAT_TYPE_INFO, "Bu öğe bu kuşak için daha önce kullanılmış.");
return false;
}
else
{
auto New_Max = (Acce_Level + 1) * ACCE_NEW_MAX_K;
if (Item_Level == Acce_Level + 1)
{
item2->SetSocket(ACCE_LEVEL_SOCKET, Item_Level);
ChatPacket(CHAT_TYPE_INFO, "Yeni bonus emiş sınırı: %d ", New_Max);
}
else
{
ChatPacket(CHAT_TYPE_INFO, "Yeteri kadar seviye arttırmamışsınız. Lütfen Kuşak Bonus Arttırıcı %d kullanın", New_Max);
return false;
}
}
item->SetCount(item->GetCount() - 1);
}
break;
#endif
item_proto:
C++:
71260 Kuşak Bonus Arttırıcı (50) ITEM_USE USE_SPECIAL 1 NONE ITEM_STACKABLE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 1 0 0 0 0 0 0 0 0
71261 Kuşak Bonus Arttırıcı (100) ITEM_USE USE_SPECIAL 1 NONE ITEM_STACKABLE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 2 0 0 0 0 0 0 0 0
71262 Kuşak Bonus Arttırıcı (150) ITEM_USE USE_SPECIAL 1 NONE ITEM_STACKABLE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 3 0 0 0 0 0 0 0 0
71263 Kuşak Bonus Arttırıcı (200) ITEM_USE USE_SPECIAL 1 NONE ITEM_STACKABLE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 4 0 0 0 0 0 0 0 0
71264 Kuşak Bonus Arttırıcı (250) ITEM_USE USE_SPECIAL 1 NONE ITEM_STACKABLE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 5 0 0 0 0 0 0 0 0
71265 Kuşak Bonus Arttırıcı (300) ITEM_USE USE_SPECIAL 1 NONE ITEM_STACKABLE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 6 0 0 0 0 0 0 0 0
item_names:
C++:
71260 Kuşak Bonus Arttırıcı(50)
71261 Kuşak Bonus Arttırıcı(100)
71262 Kuşak Bonus Arttırıcı(150)
71263 Kuşak Bonus Arttırıcı(200)
71264 Kuşak Bonus Arttırıcı(250)
71265 Kuşak Bonus Arttırıcı(300)
locale/item_list:
C++:
71260 ETC icon/item/+200.png
71261 ETC icon/item/+200.png
71262 ETC icon/item/+200.png
71263 ETC icon/item/+200.png
71264 ETC icon/item/+200.png
71265 ETC icon/item/+200.png
locale/itemdesc:
C++:
71260 Kuşak Bonus Arttırıcı(50) Halihazırda ekipmanlarınızda bulunan bonus değerinin sınırını (50)'e çıkarmak için bu özel öğeyi kullanın. Öğe kullanımdan sonra kaybolur.
71261 Kuşak Bonus Arttırıcı(100) Halihazırda ekipmanlarınızda bulunan bonus değerinin sınırını (100)'e çıkarmak için bu özel öğeyi kullanın. Öğe kullanımdan sonra kaybolur.
71262 Kuşak Bonus Arttırıcı(150) Halihazırda ekipmanlarınızda bulunan bonus değerinin sınırını (150)'e çıkarmak için bu özel öğeyi kullanın. Öğe kullanımdan sonra kaybolur.
71263 Kuşak Bonus Arttırıcı(200) Halihazırda ekipmanlarınızda bulunan bonus değerinin sınırını (200)'e çıkarmak için bu özel öğeyi kullanın. Öğe kullanımdan sonra kaybolur.
71264 Kuşak Bonus Arttırıcı(250) Halihazırda ekipmanlarınızda bulunan bonus değerinin sınırını (250)'e çıkarmak için bu özel öğeyi kullanın. Öğe kullanımdan sonra kaybolur.
71265 Kuşak Bonus Arttırıcı(300) Halihazırda ekipmanlarınızda bulunan bonus değerinin sınırını (300)'e çıkarmak için bu özel öğeyi kullanın. Öğe kullanımdan sonra kaybolur.
root/uitooltip.py:
Python:
#ARAT;
self.__AdjustMaxWidth(attrSlot, itemDesc)
self.__SetItemTitle(itemVnum, metinSlot, attrSlot)
### Hair Preview Image ###
if self.__IsHair(itemVnum):
self.__AppendHairIcon(itemVnum)
### Description ###
self.AppendDescription(itemDesc, 26)
self.AppendDescription(itemSummary, 26, self.CONDITION_COLOR)
#ALTINA EKLE;
if item.ITEM_TYPE_COSTUME == itemType:
if itemSubType == item.COSTUME_TYPE_ACCE:
kusak_level = metinSlot[2]
self.AppendTextLine("Kuşak leveli: %s " % (kusak_level), self.SINIRSIZ_COLOR)
root/uiinventory.py:
Python:
#ARAT;
def __CanUseSrcItemToDstItem(self, srcItemVNum, srcSlotPos, dstSlotPos):
"´ë»ó ¾ÆÀÌÅÛ¿¡ »ç¿ëÇÒ ¼ö Àִ°¡?"
if srcSlotPos == dstSlotPos:
return False
#ALTINA EKLE;
if srcItemVNum >= 71260 and srcItemVNum <= 71265:
dstItemVNum = player.GetItemIndex(dstSlotPos)
item.SelectItem(dstItemVNum)
if item.ITEM_TYPE_COSTUME == item.GetItemType() and item.GetItemSubType() == item.COSTUME_TYPE_ACCE:
return True
Ekte verdiğim ikonları pack\icon\icon\item içerisine atın.
Dikkat!!!
Not: common/item_length.h içerisindeki "ACCE_NEW_MAX_K" isimli değişken katsayıyı belirtmektedir. Bu ne anlama geliyor derseniz de şu anlama geliyor Örn: Ben bu değişkene 50 değerini verdim bu yüzden itemler sınırı 50 şer arttırıyor eğer 50 değilde 100 yazsaydım 100 er arttırırdı. Bu değişkene 24,20,10 gibi 25'in altında bir değer vermeden kendinize göre ayarlayın.
Dikkat!!!
İcons
Not: common/item_length.h içerisindeki "ACCE_NEW_MAX_K" isimli değişken katsayıyı belirtmektedir. Bu ne anlama geliyor derseniz de şu anlama geliyor Örn: Ben bu değişkene 50 değerini verdim bu yüzden itemler sınırı 50 şer arttırıyor eğer 50 değilde 100 yazsaydım 100 er arttırırdı. Bu değişkene 24,20,10 gibi 25'in altında bir değer vermeden kendinize göre ayarlayın.
Dikkat!!!
İcons
İçeriği görüntülemek için Oturum Açmanız veya Kaydolmanız gerekir.