- Katılım
- 15 Ocak 2021
- Konular
- 193
- Mesajlar
- 1,619
- Çözüm
- 15
- Online süresi
- 2mo 18d
- Reaksiyon Skoru
- 752
- Altın Konu
- 21
- TM Yaşı
- 5 Yıl 4 Ay 20 Gün
- Başarım Puanı
- 169
- MmoLira
- 1,153
- DevLira
- 89
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
İNDİR:
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
VT:
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Razuning üzerine kurulu ikarus burada ekleyen eleman won sistemini tam ekleyememiş sadece onu düzeltmeniz lazım
@CuRSED__
@Razuning
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.içinde not ekli
Akşam müsait olduğum için shopu ekledim ve gözüme çarpan sorunların çözümlerini burda paylaşıcam @CuRSED__ yorumumu konuya ekle ki hata alan insanlar için çözüm olsun.
![]()
(Dipnot: Legendy V2 Files üzerine eklenmiştir buton basmama, butonlara tıklanmama gibi saçma hatalar söz konusu değildir.)
(Dipnot 2: Files elimde mevcut değildir arkadaşım için ekledim özelden bana şu dosyayı atsana gibi mesajlar atmayın cevap vermeyeceğim.)
[CODE lang="cpp" title="newofflineshop.h"]arat
#define CASESEND(var) case var: ch->ChatInfoTrans((#var)); break;
değiştir
#ifdef __ENABLE_MULTILANGUAGE__
#define CASESEND(var) case var: ch->ChatPacket(CHAT_TYPE_INFO, #var); break;
#else
#define CASESEND(var) case var: ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT(#var)); break;
#endif[/CODE]
[CODE lang="cpp" title="cmd_gm.cpp"]arat
#ifdef __ENABLE_NEW_OFFLINESHOP__
std::string GetNewShopName(const std::string& oldname, const std::string& newname)
{
auto nameindex = oldname.find('@');
if (nameindex == std::string::npos)
{
return newname;
}
else
{
auto playername = oldname.substr(0, nameindex);
return playername + '@' + newname;
}
}
ACMD(do_offshop_change_shop_name)
{
char arg1[50]; char arg2[256];
argument = one_argument(argument, arg1, sizeof(arg1));
argument = one_argument(argument, arg2, sizeof(arg2));
if (arg1[0] != 0 && isdigit(arg1[0]) && arg2[0] != 0)
{
DWORD id = 0;
str_to_number(id, arg1);
if (id == 0)
{
ch->ChatInfoTrans(("syntax: offshop_change_shop_name <player-id> <new-name>"));
return;
}
else
{
offlineshop::CShop* pkShop = offlineshop::GetManager().GetShopByOwnerID(id);
if (!pkShop)
{
ch->ChatInfoTrans(("Cannot find shop by id %u "), id);
return;
} else
{
std::string oldname = pkShop->GetName();
offlineshop::GetManager().SendShopChangeNameDBPacket(id, GetNewShopName(oldname, arg2).c_str());
ch->ChatInfoTrans(("shop's name changed."));
}
}
}
else
{
ch->ChatInfoTrans(("syntax: offshop_change_shop_name <player-id> <new-name>"));
return;
}
}
ACMD(do_offshop_force_close_shop)
{
char arg1[50];
argument = one_argument(argument, arg1, sizeof(arg1));
if (arg1[0] != 0 && isdigit(arg1[0]))
{
DWORD id = 0;
str_to_number(id, arg1);
if (id == 0)
{
ch->ChatInfoTrans(("syntax: offshop_force_close_shop <player-id>"));
return;
}
else
{
offlineshop::CShop* pkShop = offlineshop::GetManager().GetShopByOwnerID(id);
if (!pkShop)
{
ch->ChatInfoTrans(("Cannot find shop by id %u"), id);
return;
}
else
{
offlineshop::GetManager().SendShopForceCloseDBPacket(id);
ch->ChatInfoTrans(("shop closed successfully."));
}
}
}
else
{
ch->ChatInfoTrans(("syntax: offshop_force_close_shop <player-id>"));
return;
}
}
#endif
komple değiştir
#ifdef __ENABLE_NEW_OFFLINESHOP__
std::string GetNewShopName(const std::string& oldname, const std::string& newname)
{
auto nameindex = oldname.find('@');
if (nameindex == std::string::npos)
{
return newname;
}
else
{
auto playername = oldname.substr(0, nameindex);
return playername + '@' + newname;
}
}
ACMD(do_offshop_change_shop_name)
{
char arg1[50]; char arg2[256];
argument = one_argument(argument, arg1, sizeof(arg1));
argument = one_argument(argument, arg2, sizeof(arg2));
if (arg1[0] != 0 && isdigit(arg1[0]) && arg2[0] != 0)
{
DWORD id = 0;
str_to_number(id, arg1);
if (id == 0)
{
ch->ChatPacket(CHAT_TYPE_INFO, "syntax : offshop_change_shop_name <player-id> <new-name> ");
return;
}
else
{
offlineshop::CShop* pkShop = offlineshop::GetManager().GetShopByOwnerID(id);
if (!pkShop)
{
ch->ChatPacket(CHAT_TYPE_INFO, "Cannot find shop by id %u ", id);
return;
} else
{
std::string oldname = pkShop->GetName();
offlineshop::GetManager().SendShopChangeNameDBPacket(id, GetNewShopName(oldname, arg2).c_str());
ch->ChatPacket(CHAT_TYPE_INFO, "shop's name changed.");
}
}
}
else
{
ch->ChatPacket(CHAT_TYPE_INFO , "syntax : offshop_change_shop_name <player-id> <new-name> ");
return;
}
}
ACMD(do_offshop_force_close_shop)
{
char arg1[50];
argument = one_argument(argument, arg1, sizeof(arg1));
if (arg1[0] != 0 && isdigit(arg1[0]))
{
DWORD id = 0;
str_to_number(id, arg1);
if (id == 0)
{
ch->ChatPacket(CHAT_TYPE_INFO, "syntax : offshop_force_close_shop <player-id> ");
return;
}
else
{
offlineshop::CShop* pkShop = offlineshop::GetManager().GetShopByOwnerID(id);
if (!pkShop)
{
ch->ChatPacket(CHAT_TYPE_INFO, "Cannot find shop by id %u ", id);
return;
}
else
{
offlineshop::GetManager().SendShopForceCloseDBPacket(id);
ch->ChatPacket(CHAT_TYPE_INFO, "shop closed successfully.");
}
}
}
else
{
ch->ChatPacket(CHAT_TYPE_INFO, "syntax : offshop_force_close_shop <player-id> ");
return;
}
}
#endif[/CODE]
[CODE lang="cpp" title="char.cpp"]arat
void CHARACTER::SetShopSafebox(offlineshop::CShopSafebox* pk)
üstüne ekle
bool CHARACTER::CanTakeInventoryItem(LPITEM item, TItemPos* cell)
{
int iEmpty = -1;
if (item->IsDragonSoul())
{
cell->window_type = DRAGON_SOUL_INVENTORY;
cell->cell = iEmpty = GetEmptyDragonSoulInventory(item);
}
#ifdef ENABLE_SPECIAL_INVENTORY
else if (item->IsBook())
{
cell->window_type = BOOK_INVENTORY;
cell->cell = iEmpty = GetEmptyBookInventory(item->GetSize());
}
else if (item->IsUpgradeItem())
{
cell->window_type = UPGRADE_INVENTORY;
cell->cell = iEmpty = GetEmptyUpgradeInventory(item->GetSize());
}
else if (item->IsStone())
{
cell->window_type = STONE_INVENTORY;
cell->cell = iEmpty = GetEmptyStoneInventory(item->GetSize());
}
else if (item->IsAttr())
{
cell->window_type = ATTR_INVENTORY;
cell->cell = iEmpty = GetEmptyAttrInventory(item->GetSize());
}
else if (item->IsFlower())
{
cell->window_type = FLOWER_INVENTORY;
cell->cell = iEmpty = GetEmptyFlowerInventory(item->GetSize());
}
else if (item->IsBlendS())
{
cell->window_type = BLEND_INVENTORY;
cell->cell = iEmpty = GetEmptyBlendInventory(item->GetSize());
}
#endif
else
{
cell->window_type = INVENTORY;
cell->cell = iEmpty = GetEmptyInventory(item->GetSize());
}
return iEmpty != -1;
}[/CODE]
[CODE lang="cpp" title="char.h"]arat
bool IsLookingOfflineshopOfferList() { return m_bIsLookingOfflineshopOfferList; }
altına ekle
bool CanTakeInventoryItem(LPITEM item, TItemPos* pos);[/CODE]
[CODE lang="cpp" title="service.h / commondefines.h"]arat
#define ENABLE_NEW_OFFLINESHOP_LOGS
değiştir
//#define ENABLE_NEW_OFFLINESHOP_LOGS[/CODE]
[CODE lang="cpp" title="new_offlineshop_manager.cpp"]arat
yang_max
değiştir
GOLD_MAX[/CODE]
[CODE lang="cpp" title="new_offlineshop_manager.cpp"]en üstten aşağı sırayla teker teker arat
changegold
değiştir
ch->PointChange(POINT_GOLD, -pPrice->illYang);
arat
changegold
değiştir
ch->PointChange(POINT_GOLD, -offer.price.illYang);
arat
changegold
değiştir
ch->PointChange(POINT_GOLD, valutes.illYang);
arat
changegold
değiştir
ch->PointChange(POINT_GOLD, -price.illYang);[/CODE]
Tekrardan bir katkı için geldim. Bu sorun bizde de çıktı. Arkadaş official karakter ekranı üzerinden çözmüş ben daha farklı bir şekilde çözdüm. Eğer ekleme yapmadıysanız kendi uiofflineshop.py nizi benim verdiğim ile değiştirin ve yanında verdiğim dosyayı rootun içine atın. İtemlere tıklanmama satıştan kaldıramama satın alamama gibi problemler kalmayacaktır. @CuRSED__ dün ki ve şuan attığım yorumu konuya sabitler misin ? Boş gurur yapmanın alemi yok. Herkese kolay gelsin.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
KANITLAR
*****************************
Ekli dosyayı görüntüle 61083
Ekli dosyayı görüntüle 61084
Ekli dosyayı görüntüle 61085
Ekli dosyayı görüntüle 61086
If u have special_storage need to extended the CanTakeInventoryItem function.
Example:
C++:bool CHARACTER::CanTakeInventoryItem(LPITEM item, TItemPos* cell) { int iEmpty = -1; if (item->IsDragonSoul()) { cell->window_type = DRAGON_SOUL_INVENTORY; cell->cell = iEmpty = GetEmptyDragonSoulInventory(item->GetVnum(), item->GetSubType(), item->GetSize()); } else if (item->IsType()) // Need to rewrite IsType to Isbook and etc { cell->window_type = common/lenght.h_INVENTORY_TYPE; //look window_type at common/lenght.h cell->cell = IEmpty = char_item_cpp_search_GetEmpyfunction(item->GetVnum(), item->GetSubType(), item->GetSize()); //Need to modifiy char_item_cpp_search_GetEmpyfunction // You can find GetEmptyfunction at char_item.cpp } else { cell->window_type = INVENTORY; cell->cell = iEmpty = GetEmptyInventory(item->GetSize()); }
Moderatör tarafında düzenlendi:
En Çok Reaksiyon Alan Mesajlar
En iyi offline shop budur! Dünyanın meşhur developerlar bununla sf hazırlıyor. İngiltere Kralı, rahmetli başkan Kennedy, Taçsız Kral Pele, Beckenbauer, kaleci Maier, Nadia Comaneci, Brigitte Bardot, Fenerbahçeli Cemil... hepsi şöhretlerini bu offline shop'a borçludurlar.
İra'nın isminin geçtiği yerden uzak durun cüzdanınız kaybolabilir veya oyununuz core yiyebilir clientinizde kasmalar başlayabilir tecrübeyle sabit
Razuning üzerine kurulu ikarus burada ekleyen eleman won sistemini tam ekleyememiş sadece onu düzeltmeniz lazım
@CuRSED__
@Razuning
Öğeyi görmek için üye olmalısınız.
Öğeyi görmek için üye olmalısınız.
Öğeyi görmek için üye olmalısınız.
Öğeyi görmek için üye olmalısınız. içinde not ekli
KANITLARÖğeyi görmek için üye olmalısınız.
*****************************
Öğeyi görmek için üye olmalısınız.
Öğeyi görmek için üye olmalısınız.
Öğeyi görmek için üye olmalısınız.
Satış konusu kapatıldı. Bizde açalım dedikAhmet şaşırdım :O
Rica Ederim.Teşekkürler
Kanıt olarak eklenebilir ama bayağı değişiklik yaptım bazı fonksiyonlar martsama altyapı da bulunmuyordu başka yerlerden fonksiyon söktüm vs locale_game.txt bayağı eksik tek tek ekledim hepsini daha hala bitiremedim tamamen bitirip türkçeleştirip atabilirim
Öğeyi görmek için üye olmalısınız.
- Katılım
- 10 Şub 2017
- Konular
- 72
- Mesajlar
- 1,940
- Çözüm
- 18
- Online süresi
- 9mo 16h
- Reaksiyon Skoru
- 1,336
- Altın Konu
- 1
- Başarım Puanı
- 269
- Yaş
- 27
- MmoLira
- 2,386
- DevLira
- 44
Ahmet şaşırdım :O
- Katılım
- 12 Haz 2018
- Konular
- 28
- Mesajlar
- 680
- Çözüm
- 5
- Online süresi
- 3mo 27d
- Reaksiyon Skoru
- 236
- Altın Konu
- 0
- TM Yaşı
- 7 Yıl 11 Ay 28 Gün
- Başarım Puanı
- 129
- Yaş
- 28
- MmoLira
- 4,682
- DevLira
- 0
Teşekkürler
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 37
- Görüntüleme
- 2K
- Cevaplar
- 3
- Görüntüleme
- 883
- Kilitli
- Cevaplar
- 1
- Görüntüleme
- 3K
- Cevaplar
- 3
- Görüntüleme
- 2K








