Çok eski bir web tarayıcısı kullanıyorsunuz. Bu veya diğer siteleri görüntülemekte sorunlar yaşayabilirsiniz.. Tarayıcınızı güncellemeli veya alternatif bir tarayıcı kullanmalısınız.
Aynı sistemi bugün söktüm. Game kısmında sistem ifdef ile ekli service.h yada commondefine.h içinde sistemin definesinin adı neyse onu bul sil yada başına // koy aynı şekilde client sourcede yaparsan sistem kapanır.
Aynı sistemi bugün söktüm. Game kısmında sistem ifdef ile ekli service.h yada commondefine.h içinde sistemin definesinin adı neyse onu bul sil yada başına // koy aynı şekilde client sourcede yaparsan sistem kapanır.
client üzerinden de kaldırmam gerekiyor yenisini eklemek istiyorum ondan dolayı
interfacemodule.py
Kod:
def ToggleInventoryWindow(self):
if app.ENABLE_PLAYER_SECURITY_SYSTEM and player.IsSecurityActivate():
return
if False == player.IsObserverMode():
if False == self.wndInventory.IsShow():
self.wndInventory.Show()
self.wndInventory.SetTop()
if app.ENABLE_SPECIAL_STORAGE:
if constInfo.SpecialInventoryMode == 1:
constInfo.IsSpecialInventoryOpen=1
self.wndSpecialStorage.Show()
else:
self.wndInventory.OverOutItem()
self.wndInventory.Close()
if app.ENABLE_SPECIAL_STORAGE:
if constInfo.SpecialInventoryMode == 1:
constInfo.IsSpecialInventoryOpen=0
Pack kısmından kaldıracaksan zaten client sourceden kapattığında pack kısmıda kapanır ama kodları komple silecem diyorsan işin zor. if app.ENABLE_SPECIAL_STORAGE: bu kodları kaldırman gerekiyor ama tab ayarına dikkat etmelisin. Örnek attığının silinmiş hali.
Python:
def ToggleInventoryWindow(self):
if False == player.IsObserverMode():
if False == self.wndInventory.IsShow():
self.wndInventory.Show()
self.wndInventory.SetTop()
else:
self.wndInventory.OverOutItem()
self.wndInventory.Close()
Pack kısmından kaldıracaksan zaten client sourceden kapattığında pack kısmıda kapanır ama kodları komple silecem diyorsan işin zor. if app.ENABLE_SPECIAL_STORAGE: bu kodları kaldırman gerekiyor ama tab ayarına dikkat etmelisin. Örnek attığının silinmiş hali.
Python:
def ToggleInventoryWindow(self):
if False == player.IsObserverMode():
if False == self.wndInventory.IsShow():
self.wndInventory.Show()
self.wndInventory.SetTop()
else:
self.wndInventory.OverOutItem()
self.wndInventory.Close()
yeni k envanter ekleyeceğim bana izlemem gereken yolu söyler misin şuan üstünde ekli var diye ben silmeye çalışıyorum eğer silmeden eklemeyi denersem sorun olur mu ?
yeni k envanter ekleyeceğim bana izlemem gereken yolu söyler misin şuan üstünde ekli var diye ben silmeye çalışıyorum eğer silmeden eklemeyi denersem sorun olur mu ?
Türkmmo daki sistemimi eklemeyi düşünüyorsun? öyle bir niyetin varsa hiç uğraşma direk paranı emeğini götür bir çöpün içinde at. Sabahtan beri senin silmek istediğin sistemi söküyorum ayarlıyorum sen silmeyi düşünüyorsun. Ek seçenek eklemek kolay ama kodlarda mantık yürütmen gerekiyor yükseltme sandık taş menüleri var diyelim bu menülerin kodlarının her birini kopyalayıp isimlerini belirleyeceksin bilgin yoksa zor bir iş az biraz anlayana kolay.
Kod:
#ifdef ENABLE_SPECIAL_STORAGE
else if (item->IsUpgradeItem())
item->AddToCharacter(ch, TItemPos(UPGRADE_INVENTORY, iEmptyPos));
else if (item->IsBook())
item->AddToCharacter(ch, TItemPos(BOOK_INVENTORY, iEmptyPos));
else if (item->IsStone())
item->AddToCharacter(ch, TItemPos(STONE_INVENTORY, iEmptyPos));
#endif
Mesela burada 3 seçenek upgrade book stone. Bunun altına atıyorum efsun istiyorsun
Kod:
#ifdef ENABLE_SPECIAL_STORAGE
else if (item->IsUpgradeItem())
item->AddToCharacter(ch, TItemPos(UPGRADE_INVENTORY, iEmptyPos));
else if (item->IsBook())
item->AddToCharacter(ch, TItemPos(BOOK_INVENTORY, iEmptyPos));
else if (item->IsStone())
item->AddToCharacter(ch, TItemPos(STONE_INVENTORY, iEmptyPos));
else if (item->IsEfsun())
item->AddToCharacter(ch, TItemPos(EFSUN_INVENTORY, iEmptyPos));
#endif
bu şekilde ekleme yapmak gerekiyor tek kodlarda bunlar değil tabi bütün sistemin kodlarını aratıp her birine ekleme yapmak gerekiyor. O forumdaki çöp sistemi ekleyip sorunlarıyla uğraşacağına bu dediğim ile uğraş tecrübe bilgi edinirsin en azından.
Türkmmo daki sistemimi eklemeyi düşünüyorsun? öyle bir niyetin varsa hiç uğraşma direk paranı emeğini götür bir çöpün içinde at. Sabahtan beri senin silmek istediğin sistemi söküyorum ayarlıyorum sen silmeyi düşünüyorsun. Ek seçenek eklemek kolay ama kodlarda mantık yürütmen gerekiyor yükseltme sandık taş menüleri var diyelim bu menülerin kodlarının her birini kopyalayıp isimlerini belirleyeceksin bilgin yoksa zor bir iş az biraz anlayana kolay.
Kod:
#ifdef ENABLE_SPECIAL_STORAGE
else if (item->IsUpgradeItem())
item->AddToCharacter(ch, TItemPos(UPGRADE_INVENTORY, iEmptyPos));
else if (item->IsBook())
item->AddToCharacter(ch, TItemPos(BOOK_INVENTORY, iEmptyPos));
else if (item->IsStone())
item->AddToCharacter(ch, TItemPos(STONE_INVENTORY, iEmptyPos));
#endif
Mesela burada 3 seçenek upgrade book stone. Bunun altına atıyorum efsun istiyorsun
Kod:
#ifdef ENABLE_SPECIAL_STORAGE
else if (item->IsUpgradeItem())
item->AddToCharacter(ch, TItemPos(UPGRADE_INVENTORY, iEmptyPos));
else if (item->IsBook())
item->AddToCharacter(ch, TItemPos(BOOK_INVENTORY, iEmptyPos));
else if (item->IsStone())
item->AddToCharacter(ch, TItemPos(STONE_INVENTORY, iEmptyPos));
else if (item->IsEfsun())
item->AddToCharacter(ch, TItemPos(EFSUN_INVENTORY, iEmptyPos));
#endif
bu şekilde ekleme yapmak gerekiyor tek kodlarda bunlar değil tabi bütün sistemin kodlarını aratıp her birine ekleme yapmak gerekiyor. O forumdaki çöp sistemi ekleyip sorunlarıyla uğraşacağına bu dediğim ile uğraş tecrübe bilgi edinirsin en azından.
tamam forumdaki çöp sistemi unutalım şuan bana 1 tane sandık için nasıl ekleme yaparım tek tek anlatırsan geri kalan bölümleri çiçektir efsundur kendim eklerim eğerki anlatabiirsen tabiki
tamam forumdaki çöp sistemi unutalım şuan bana 1 tane sandık için nasıl ekleme yaparım tek tek anlatırsan geri kalan bölümleri çiçektir efsundur kendim eklerim eğerki anlatabiirsen tabiki
Örnek verdimya onun gibi yapacaksın. Dosyalarında ENABLE_SPECIAL_STORAGE bunu aratacaksın her çıkan sonuçta ekleme yapacaksın. Mesela length.h dosyası;
Char item.cpp dosyasında bir başka kod buna ekleme yapacaksın;
Kod:
#ifdef ENABLE_SPECIAL_STORAGE
case UPGRADE_INVENTORY:
{
WORD wCell = Cell.cell;
if (wCell >= SPECIAL_INVENTORY_MAX_NUM)
return false;
iExceptionCell++;
if (m_pointsInstant.wSSUItemGrid[wCell])
{
if (m_pointsInstant.wSSUItemGrid[wCell] == iExceptionCell)
{
if (bSize == 1)
return true;
int j = 1;
do
{
int p = wCell + (5 * j);
if (p >= SPECIAL_INVENTORY_MAX_NUM)
return false;
if (m_pointsInstant.wSSUItemGrid[p])
if (m_pointsInstant.wSSUItemGrid[p] != iExceptionCell)
return false;
} while (++j < bSize);
return true;
}
else
return false;
}
if (1 == bSize)
return true;
else
{
int j = 1;
do
{
int p = wCell + (5 * j);
if (p >= SPECIAL_INVENTORY_MAX_NUM)
return false;
if (m_pointsInstant.bItemGrid[p]) // old bItemGrid
if (m_pointsInstant.wSSUItemGrid[p] != iExceptionCell)
return false;
} while (++j < bSize);
return true;
}
}
break;
case BOOK_INVENTORY:
{
WORD wCell = Cell.cell;
if (wCell >= SPECIAL_INVENTORY_MAX_NUM)
return false;
iExceptionCell++;
if (m_pointsInstant.wSSBItemGrid[wCell])
{
if (m_pointsInstant.wSSBItemGrid[wCell] == iExceptionCell)
{
if (bSize == 1)
return true;
int j = 1;
do
{
int p = wCell + (5 * j);
if (p >= SPECIAL_INVENTORY_MAX_NUM)
return false;
if (m_pointsInstant.wSSBItemGrid[p])
if (m_pointsInstant.wSSBItemGrid[p] != iExceptionCell)
return false;
} while (++j < bSize);
return true;
}
else
return false;
}
if (1 == bSize)
return true;
else
{
int j = 1;
do
{
int p = wCell + (5 * j);
if (p >= SPECIAL_INVENTORY_MAX_NUM)
return false;
if (m_pointsInstant.bItemGrid[p]) // old bItemGrid
if (m_pointsInstant.wSSBItemGrid[p] != iExceptionCell)
return false;
} while (++j < bSize);
return true;
}
}
break;
case STONE_INVENTORY:
{
WORD wCell = Cell.cell;
if (wCell >= SPECIAL_INVENTORY_MAX_NUM)
return false;
iExceptionCell++;
if (m_pointsInstant.wSSSItemGrid[wCell])
{
if (m_pointsInstant.wSSSItemGrid[wCell] == iExceptionCell)
{
if (bSize == 1)
return true;
int j = 1;
do
{
int p = wCell + (5 * j);
if (p >= SPECIAL_INVENTORY_MAX_NUM)
return false;
if (m_pointsInstant.wSSSItemGrid[p])
if (m_pointsInstant.wSSSItemGrid[p] != iExceptionCell)
return false;
} while (++j < bSize);
return true;
}
else
return false;
}
if (1 == bSize)
return true;
else
{
int j = 1;
do
{
int p = wCell + (5 * j);
if (p >= SPECIAL_INVENTORY_MAX_NUM)
return false;
if (m_pointsInstant.bItemGrid[p]) // old bItemGrid
if (m_pointsInstant.wSSSItemGrid[p] != iExceptionCell)
return false;
} while (++j < bSize);
return true;
}
}
break;
#endif
Böyle eklemeler yapacaksın dosyalarında arattıktan sonra bütün kodlar çıkacak zaten.
Örnek verdimya onun gibi yapacaksın. Dosyalarında ENABLE_SPECIAL_STORAGE bunu aratacaksın her çıkan sonuçta ekleme yapacaksın. Mesela length.h dosyası;
Char item.cpp dosyasında bir başka kod buna ekleme yapacaksın;
Kod:
#ifdef ENABLE_SPECIAL_STORAGE
case UPGRADE_INVENTORY:
{
WORD wCell = Cell.cell;
if (wCell >= SPECIAL_INVENTORY_MAX_NUM)
return false;
iExceptionCell++;
if (m_pointsInstant.wSSUItemGrid[wCell])
{
if (m_pointsInstant.wSSUItemGrid[wCell] == iExceptionCell)
{
if (bSize == 1)
return true;
int j = 1;
do
{
int p = wCell + (5 * j);
if (p >= SPECIAL_INVENTORY_MAX_NUM)
return false;
if (m_pointsInstant.wSSUItemGrid[p])
if (m_pointsInstant.wSSUItemGrid[p] != iExceptionCell)
return false;
} while (++j < bSize);
return true;
}
else
return false;
}
if (1 == bSize)
return true;
else
{
int j = 1;
do
{
int p = wCell + (5 * j);
if (p >= SPECIAL_INVENTORY_MAX_NUM)
return false;
if (m_pointsInstant.bItemGrid[p]) // old bItemGrid
if (m_pointsInstant.wSSUItemGrid[p] != iExceptionCell)
return false;
} while (++j < bSize);
return true;
}
}
break;
case BOOK_INVENTORY:
{
WORD wCell = Cell.cell;
if (wCell >= SPECIAL_INVENTORY_MAX_NUM)
return false;
iExceptionCell++;
if (m_pointsInstant.wSSBItemGrid[wCell])
{
if (m_pointsInstant.wSSBItemGrid[wCell] == iExceptionCell)
{
if (bSize == 1)
return true;
int j = 1;
do
{
int p = wCell + (5 * j);
if (p >= SPECIAL_INVENTORY_MAX_NUM)
return false;
if (m_pointsInstant.wSSBItemGrid[p])
if (m_pointsInstant.wSSBItemGrid[p] != iExceptionCell)
return false;
} while (++j < bSize);
return true;
}
else
return false;
}
if (1 == bSize)
return true;
else
{
int j = 1;
do
{
int p = wCell + (5 * j);
if (p >= SPECIAL_INVENTORY_MAX_NUM)
return false;
if (m_pointsInstant.bItemGrid[p]) // old bItemGrid
if (m_pointsInstant.wSSBItemGrid[p] != iExceptionCell)
return false;
} while (++j < bSize);
return true;
}
}
break;
case STONE_INVENTORY:
{
WORD wCell = Cell.cell;
if (wCell >= SPECIAL_INVENTORY_MAX_NUM)
return false;
iExceptionCell++;
if (m_pointsInstant.wSSSItemGrid[wCell])
{
if (m_pointsInstant.wSSSItemGrid[wCell] == iExceptionCell)
{
if (bSize == 1)
return true;
int j = 1;
do
{
int p = wCell + (5 * j);
if (p >= SPECIAL_INVENTORY_MAX_NUM)
return false;
if (m_pointsInstant.wSSSItemGrid[p])
if (m_pointsInstant.wSSSItemGrid[p] != iExceptionCell)
return false;
} while (++j < bSize);
return true;
}
else
return false;
}
if (1 == bSize)
return true;
else
{
int j = 1;
do
{
int p = wCell + (5 * j);
if (p >= SPECIAL_INVENTORY_MAX_NUM)
return false;
if (m_pointsInstant.bItemGrid[p]) // old bItemGrid
if (m_pointsInstant.wSSSItemGrid[p] != iExceptionCell)
return false;
} while (++j < bSize);
return true;
}
}
break;
#endif
Böyle eklemeler yapacaksın dosyalarında arattıktan sonra bütün kodlar çıkacak zaten.
tabikide kolay birşey yok ama önümde referans birşey olmadığı için bana zor gelir yoksa eklemek çıkartmak için gocunmam zor gelmez sadece referans lazım bana ondan dedim öyle
Bende şuan senin dediğin şekilde kendime ekleme yapıyorum ve kopyala yapıştır yaparak kolayca olacak şey değil. Referans istiyorsan türkmmoda pachi tunga filesi var sabitte onun içindeki k envanterinde 6 bölümlüsü var ondan bakabilirsin.