[DEV]AB 1
[DEV]AB
metin2008 1
metin2008
kaptanmikro1 1
kaptanmikro1
Scarlet 1
Scarlet
emirhanHCL 1
emirhanHCL
R 1
Roksam
farkmt2official 1
farkmt2official
TuZaKK 1
TuZaKK
sermin 1
sermin
berkmenoo 1
berkmenoo
Hikaye Ekle

Cevaplanmadı Yere item satma sorunu

  • Konuyu başlatan Konuyu başlatan Deli Ruh
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 9
  • Görüntüleme Görüntüleme 978

Türkiye'de ilk Mobil & PC Aynı Anda Metin2 Oyna. Triarchonline kalıcı ve uzun ömürlü yapısı ile 24 Temmuz'da açılıyor. | 1-99 Mobil Metin2 Triarch HEMEN TIKLA!

Benim sorunum şu, mesela yeşil arttırma kağıdını navicattan 100k ya npcye ekliyorum geri npcye sattığımda istediğim fiyata satabiliyorum (Mesela 10k) ama yere sattığımda ya da Ctrl-x- sağ tık ile hız sattığımda npc de ne kadar ise o fiyata satılıyor istediğim fiyata satamıyorum item protoyu da navicat ile aynı ayarladım ama olmuyor
 

Ekli dosyalar

  • cats.jpg
    cats.jpg
    29.6 KB · Görüntüleme: 0
  • cats.jpg
    cats.jpg
    22.3 KB · Görüntüleme: 0
Öncelikle yere sil sat sisteminde paranın fiyatını gösteren kodu bulun shop.ShopBuyPrice() gibi sonra sistemin sell butonu yani satma butonuna bakın client sourceden neleri çekiyor sonra game sourceden hangi fonksiyonu kullanıyor ve satıldığında sizin envanterinize parayı verirken parayı nereden alıyor ona bakın.
 
Mesela Char_Item.cpp'de bool CHARACTER::SellItem(TItemPos Cell) bu fonksiyonun içinde

DWORD dwPrice;

dword türünde dwPrice adında bir tanımlama yapılmış. Ardından

dwPrice = item->GetShopBuyPrice();

Bundan sonra dwPrice eşittir yani demektir item->GetShopBuyPrice()

Alttada
ITEM_MANAGER::instance().RemoveItem(item);
PointChange(POINT_GOLD, dwPrice, false);

İtemi Sildiriyorum ve PointChange ile sana proto tablosundaki GetShopBuyPrice yani

return GetProto()->dwShopBuyPrice;

Tablodaki nesnenin satış fiyatı kadar sana yani envanterine yang (POINT_GOLD) ödensin diyor.
 
Mesela Char_Item.cpp'de bool CHARACTER::SellItem(TItemPos Cell) bu fonksiyonun içinde

DWORD dwPrice;

dword türünde dwPrice adında bir tanımlama yapılmış. Ardından

dwPrice = item->GetShopBuyPrice();

Bundan sonra dwPrice eşittir yani demektir item->GetShopBuyPrice()

Alttada
ITEM_MANAGER::instance().RemoveItem(item);
PointChange(POINT_GOLD, dwPrice, false);

İtemi Sildiriyorum ve PointChange ile sana proto tablosundaki GetShopBuyPrice yani

return GetProto()->dwShopBuyPrice;

Tablodaki nesnenin satış fiyatı kadar sana yani envanterine yang (POINT_GOLD) ödensin diyor.
Bende ki o kod satırı şu şekilde

bool CHARACTER::SellItem(TItemPos Cell)
{
LPITEM item = NULL;
if (IsDead())
return false;
if (!IsValidItemPosition(Cell) || !(item = GetItem(Cell)))
return false;
if (item->IsExchanging())
return false;
if (true == item->isLocked())
return false;
if (quest::CQuestManager::instance().GetPCForce(GetPlayerID())->IsRunning() == true)
return false;
if (item->GetCount() <= 0)
return false;
DWORD dwPrice = item->GetGold();
dwPrice *= item->GetCount();

DBManager::instance().SendMoneyLog(MONEY_LOG_SHOP, item->GetVnum(), dwPrice);
item->SetCount(item->GetCount() - item->GetCount());
PointChange(POINT_GOLD, dwPrice, false);
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s has succesfully sell"), item->GetName());
return true;
}

Anladığım kadarıyla yere satarken proto tablosunda ShopBuyPrice yerine Gold'dan işlem yapıyor doğru mu ?
 
Bende ki o kod satırı şu şekilde

bool CHARACTER::SellItem(TItemPos Cell)
{
LPITEM item = NULL;
if (IsDead())
return false;
if (!IsValidItemPosition(Cell) || !(item = GetItem(Cell)))
return false;
if (item->IsExchanging())
return false;
if (true == item->isLocked())
return false;
if (quest::CQuestManager::instance().GetPCForce(GetPlayerID())->IsRunning() == true)
return false;
if (item->GetCount() <= 0)
return false;
DWORD dwPrice = item->GetGold();
dwPrice *= item->GetCount();

DBManager::instance().SendMoneyLog(MONEY_LOG_SHOP, item->GetVnum(), dwPrice);
item->SetCount(item->GetCount() - item->GetCount());
PointChange(POINT_GOLD, dwPrice, false);
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s has succesfully sell"), item->GetName());
return true;
}

Anladığım kadarıyla yere satarken proto tablosunda ShopBuyPrice yerine Gold'dan işlem yapıyor doğru mu ?
Ama şöyle sizin yere item sat sistemi hangi kodları kullanıyor ona bakmak lazım önce
 

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

Geri
Üst