- Katılım
- 3 Haz 2025
- Konular
- 17
- Mesajlar
- 104
- Online süresi
- 3g 65425s
- Reaksiyon Skoru
- 55
- Altın Konu
- 0
- Başarım Puanı
- 36
- TM Yaşı
- 10 Ay 20 Gün
- MmoLira
- 344
- DevLira
- 27
Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!
Owsap v6 filesini geliştirmeye çalışıyorum ve Normal pet sistemini Şampiyon için güncellemeler yapıyorum ve Eklemeler yaptım şampiyon evrimi için grow_pet sisteminde wiki üzerinden takip ederek yaptım
3 gündür uğraşıyorum sp yerine atağa çevirdim Önce Pet arayüzü için uğraştım sonra ve yaptığım kodlarda herşeyi tek tek belirttim bir sorun olursa diye tek tek herşeyi isimlendirdim exp tablosundan uzmanlık havuzuna kadar herşeyi isimlendirip not halinde yazdım
son güncelleme
31.03.2026 güncelle me sonu
3 gündür uğraşıyorum sp yerine atağa çevirdim Önce Pet arayüzü için uğraştım sonra ve yaptığım kodlarda herşeyi tek tek belirttim bir sorun olursa diye tek tek herşeyi isimlendirdim exp tablosundan uzmanlık havuzuna kadar herşeyi isimlendirip not halinde yazdım
son güncelleme
31.03.2026 güncelle me sonu
Son düzenleme:
- Katılım
- 3 Haz 2025
- Konular
- 17
- Mesajlar
- 104
- Online süresi
- 3g 65425s
- Reaksiyon Skoru
- 55
- Altın Konu
- 0
- Başarım Puanı
- 36
- TM Yaşı
- 10 Ay 20 Gün
- MmoLira
- 344
- DevLira
- 27
- Katılım
- 31 Ocak 2014
- Konular
- 85
- Mesajlar
- 1,205
- Online süresi
- 1ay 24g
- Reaksiyon Skoru
- 338
- Altın Konu
- 0
- Başarım Puanı
- 231
- TM Yaşı
- 12 Yıl 2 Ay 22 Gün
- MmoLira
- 10,261
- DevLira
- 18
- Katılım
- 3 Haz 2025
- Konular
- 17
- Mesajlar
- 104
- Online süresi
- 3g 65425s
- Reaksiyon Skoru
- 55
- Altın Konu
- 0
- Başarım Puanı
- 36
- TM Yaşı
- 10 Ay 20 Gün
- MmoLira
- 344
- DevLira
- 27
yapıyoruz işte birşeyler sadece leveli veremedim örnek bir kod
kod:
void CGrowthPet::UpdateChampionStats()
{
DWORD dwChampLevel = GetPetPoint(POINT_UPBRINGING_CHAMPION_LEVEL);
if (dwChampLevel == 0) return;
ChangePetPoint(POINT_UPBRINGING_CHAMP_RES, 5 + (dwChampLevel * 2), true, true);
ChangePetPoint(POINT_UPBRINGING_CHAMP_HIT, 10 + (dwChampLevel * 3), true, true);
ChangePetPoint(POINT_UPBRINGING_CHAMP_METIN, 2 + (dwChampLevel * 1), true, true);
}
void CGrowthPet::RequestToGrantPotential(TItemPos eggPos)
{
if (!m_pOwner || !IsChampion()) return;
if (!m_pSummonItem || !IsSummoned()) return;
LPITEM pEgg = m_pOwner->GetInventoryItem(eggPos.cell);
if (!pEgg) return;
DWORD champLevel = GetPetPoint(POINT_UPBRINGING_CHAMPION_LEVEL);
BYTE bSlotIndex = 255;
if (champLevel >= 1 && m_aPotentialSkill[0].dwEggVnum == 0) bSlotIndex = 0;
else if (champLevel >= 15 && m_aPotentialSkill[1].dwEggVnum == 0) bSlotIndex = 1;
if (bSlotIndex == 255) return;
DWORD dwEggVnum = pEgg->GetVnum();
auto it = g_PetPotentialSkillPool.find(m_pSummonItem->GetValue(0)); // Petin kendi Vnum'una göre havuz ara
if (it == g_PetPotentialSkillPool.end() || it->second.empty())
{
m_pOwner->ChatPacket(CHAT_TYPE_INFO, "Bu petin henuz kesfedilmis bir uzmanlik havuzu yok.");
return;
}
int randomSkillIndex = number(0, it->second.size() - 1);
DWORD dwSelectedSkill = it->second[randomSkillIndex];
BYTE bMaxLevel = GetMaxPotentialSkillLevel(champLevel);
m_aPotentialSkill[bSlotIndex].dwEggVnum = dwEggVnum;
m_aPotentialSkill[bSlotIndex].dwSkillVnum = dwSelectedSkill;
m_aPotentialSkill[bSlotIndex].bSkillLevel = number(1, bMaxLevel); // Şampiyon seviyesine göre zarlar
int randomHours = number(2, 6);
m_aPotentialSkill[bSlotIndex].tExpireTimestamp = get_global_time() + (randomHours * 3600);
pEgg->SetCount(pEgg->GetCount() - 1);
SendPotentialUpdatePacket(bSlotIndex);
ClearAffect();
RefreshAffect();
}
void CGrowthPet::RequestToRemovePotential(BYTE bSlotIndex)
{
if (!m_pOwner || bSlotIndex >= PET_POTENTIAL_SLOT_MAX) return;
if (m_aPotentialSkill[bSlotIndex].dwEggVnum == 0) return;
memset(&m_aPotentialSkill[bSlotIndex], 0, sizeof(TPotentialSkill));
SendPotentialUpdatePacket(bSlotIndex);
m_pOwner->ChatPacket(CHAT_TYPE_INFO, "Uyanis yetenegi kaldirildi.");
ClearAffect();
RefreshAffect();
}
void CGrowthPet::SendPotentialUpdatePacket(BYTE bSlotIndex)
{
if (!m_pOwner) return;
TPacketGCPetPotentialUpdate pack;
pack.header = HEADER_GC_PET_POTENTIAL_UPDATE;
pack.dwID = m_dwID;
pack.bSlotIndex = bSlotIndex;
memcpy(&pack.potentialSkill, &m_aPotentialSkill[bSlotIndex], sizeof(TPotentialSkill));
m_pOwner->GetDesc()->Packet(&pack, sizeof(pack));
}
- Katılım
- 3 Haz 2025
- Konular
- 17
- Mesajlar
- 104
- Online süresi
- 3g 65425s
- Reaksiyon Skoru
- 55
- Altın Konu
- 0
- Başarım Puanı
- 36
- TM Yaşı
- 10 Ay 20 Gün
- MmoLira
- 344
- DevLira
- 27
mesela potansiyel pencere için yazdığım
illaki eksiklerim vardır 3 günde bu kadar oluyor
kod class:
class PetPotentialFeedWindow(ui.ScriptWindow):
def __init__(self):
ui.ScriptWindow.__init__(self)
self.slotIndex = -1
self.eggWindow = -1
self.eggSlotNum = -1
self.tooltipItem = uiToolTip.ItemToolTip()
self.__LoadWindow()
def __LoadWindow(self):
self.AddFlag("movable")
self.AddFlag("float")
self.board = ui.BoardWithTitleBar()
self.board.SetParent(self)
self.board.SetSize(180, 140)
self.board.SetTitleName("Uyanis (Potansiyel)")
self.board.SetCloseEvent(ui.__mem_func__(self.Close))
self.board.Show()
self.SetSize(180, 140)
self.eggSlot = ui.SlotWindow()
self.eggSlot.SetParent(self.board)
self.eggSlot.SetPosition(74, 45)
self.eggSlot.AppendSlot(0, 0, 0, 32, 32)
self.eggSlot.SetSelectEmptySlotEvent(ui.__mem_func__(self.OnSelectEmptySlot))
self.eggSlot.SetSelectItemSlotEvent(ui.__mem_func__(self.OnSelectItemSlot))
self.eggSlot.SetOverInItemEvent(ui.__mem_func__(self.OnOverInItem))
self.eggSlot.SetOverOutItemEvent(ui.__mem_func__(self.OnOverOutItem))
self.eggSlot.Show()
self.btnFeed = ui.Button()
self.btnFeed.SetParent(self.board)
self.btnFeed.SetPosition(45, 95)
self.btnFeed.SetUpVisual("d:/ymir work/ui/public/large_button_01.sub")
self.btnFeed.SetOverVisual("d:/ymir work/ui/public/large_button_02.sub")
self.btnFeed.SetDownVisual("d:/ymir work/ui/public/large_button_03.sub")
self.btnFeed.SetText("Uyanis Sagla")
self.btnFeed.SetEvent(ui.__mem_func__(self.OnFeed))
self.btnFeed.Show()
def Open(self, slotIndex):
self.slotIndex = slotIndex
self.eggItemPos = player.ItemPos(-1, -1)
self.eggSlot.ClearSlot(0)
self.Show()
self.SetTop()
def Close(self):
self.Hide()
def OnSelectEmptySlot(self, slotIndex):
if mouseModule.mouseController.isAttached():
attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
attachedItemIndex = mouseModule.mouseController.GetAttachedItemIndex()
item.SelectItem(attachedItemIndex)
if item.GetItemType() == item.ITEM_TYPE_PET and item.GetItemSubType() == item.PET_EGG:
self.eggWindow = player.INVENTORY
self.eggSlotNum = attachedSlotPos
self.eggSlot.SetItemSlot(0, attachedItemIndex, 1)
else:
chat.AppendChat(chat.CHAT_TYPE_INFO, "Buraya sadece uygun bir Pet Yumurtasi koyabilirsin.")
mouseModule.mouseController.DeattachObject()
def OnSelectItemSlot(self, slotIndex):
self.eggWindow = -1
self.eggSlotNum = -1
self.eggSlot.ClearSlot(0)
def OnFeed(self):
if self.eggSlotNum != -1:
net.SendPetAddPotentialPacket(self.eggWindow, self.eggSlotNum)
self.Close()
else:
chat.AppendChat(chat.CHAT_TYPE_INFO, "Lutfen once bir yumurta yerlestirin.")
def OnFeed(self):
if self.eggItemPos.IsValidItemPosition():
net.SendPetAddPotentialPacket(self.eggItemPos.window_type, self.eggItemPos.cell)
self.Close()
else:
chat.AppendChat(chat.CHAT_TYPE_INFO, "Lutfen once bir yumurta yerlestirin.")
def OnOverInItem(self, slotIndex):
if self.eggItemPos.IsValidItemPosition() and self.tooltipItem:
self.tooltipItem.SetInventoryItem(self.eggItemPos.cell)
def OnOverOutItem(self):
if self.tooltipItem:
self.tooltipItem.HideToolTip()
illaki eksiklerim vardır 3 günde bu kadar oluyor


