Best Studio 1
Best Studio
D 1
delimuratt
Aliyldrim 1
Aliyldrim
Mt2Hizmet 1
Mt2Hizmet
noisiv 1
noisiv
Manwe Work 1
Manwe Work
melankolıa18 1
melankolıa18
Agora Metin2 1
Agora Metin2
Cannn6161 1
Cannn6161
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com
Kaynak ikonu

Altın Konu İkarus Offline Shop Full - İra Rework 2021-10-22

indirmek için izniniz yok
4.00 yıldız(lar) 1 Değerlendirme Değerlendirenler

CuRSED__

...
TM Üye
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
Ticaret - 0%
0   0   0

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:
VT:

Razuning üzerine kurulu ikarus burada ekleyen eleman won sistemini tam ekleyememiş sadece onu düzeltmeniz lazım
@CuRSED__
@Razuning



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.

0912_205555.jpg


(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.




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. :yoyo:
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.
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.

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst