Çözüldü iKarus Offline Pazar Sistemi ve Teknik Sorunları Hk.

Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

Laniatus

Laniatus Games LaniEngine
MT Üye
Mesaj
267
Çözümler
6
Beğeni
226
Puan
779
Merhabalar, iyi bayramlar. Bir kaç soru sorabilir miyim acaba?

iKarus market sistemini, yalnızca 9.2 derlenebilen sunucumun kaynak dosyalarının bulunduğu FreeBSD sürümüyle derliyorum ancak teorik olarak başlıca bazı hatalar ile karşılaşıyorum.

1. Hata; Maalesef, iKarus pazar sisteminin new_offlineshop.h dosyasında ve bazı cmd_gm.cpp bölümlerinde, ch->ChatInfoTrans ile ilgili bir arz/talep oluşuyor ancak benim kaynağımda ve hatta piyasada ki hiç bir SDK kaynağında bu kod mevcut değil ve uyarlayamıyorum.
Söz konusu kod bloğu aşağıdadır;
Kaynağımda ChatTransInfo talebi:
#define CASESEND(var) case var: ch->ChatInfoTrans((#var)); break;
        switch (type)
        {
            CASESEND(CHAT_PACKET_CANNOT_CREATE_SHOP)
            CASESEND(CHAT_PACKET_CANNOT_CHANGE_NAME)
            CASESEND(CHAT_PACKET_CANNOT_FORCE_CLOSE)
            CASESEND(CHAT_PACKET_CANNOT_OPEN_SHOP)
            CASESEND(CHAT_PACKET_CANNOT_OPEN_SHOP_OWNER)
            CASESEND(CHAT_PACKET_CANNOT_ADD_ITEM)
            CASESEND(CHAT_PACKET_CANNOT_BUY_ITEM)
            CASESEND(CHAT_PACKET_CANNOT_REMOVE_ITEM)
            CASESEND(CHAT_PACKET_CANNOT_EDIT_ITEM)
            CASESEND(CHAT_PACKET_CANNOT_REMOVE_LAST_ITEM)
            CASESEND(CHAT_PACKET_CANNOT_FILTER)
            CASESEND(CHAT_PACKET_CANNOT_SEARCH_YET)
            CASESEND(CHAT_PACKET_OFFER_CREATE)
            CASESEND(CHAT_PACKET_CANNOT_CREATE_OFFER)
            CASESEND(CHAT_PACKET_CANNOT_ACCEPT_OFFER)
            CASESEND(CHAT_PACKET_CANNOT_OPEN_SAFEBOX)
            CASESEND(CHAT_PACKET_CANNOT_SAFEBOX_GET_ITEM)
            CASESEND(CHAT_PACKET_CANNOT_SAFEBOX_GET_VALUTES)
            CASESEND(CHAT_PACKET_CANNOT_SAFEBOX_CLOSE)
            CASESEND(CHAT_PACKET_RECV_ITEM_SAFEBOX)
            CASESEND(CHAT_PACKET_AUCTION_CANNOT_SEND_LIST)
            CASESEND(CHAT_PACKET_AUCTION_CANNOT_OPEN_AUCTION)
            CASESEND(CHAT_PACKET_AUCTION_CANNOT_CREATE_AUCTION)
            CASESEND(CHAT_PACKET_AUCTION_CANNOT_ADD_OFFER)
            CASESEND(CHAT_PACKET_CANNOT_DO_NOW)
        default:
            sys_err("unknown chat packet %d",type);
            break;
        }
    }

Şahsi çözümüm ise şu şekilde oluyor ve derleniyor;
C++:
#ifdef __ENABLE_NEW_OFFLINESHOP__
#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
        switch (type)
        {
            CASESEND(CHAT_PACKET_CANNOT_CREATE_SHOP)
            CASESEND(CHAT_PACKET_CANNOT_CHANGE_NAME)
            CASESEND(CHAT_PACKET_CANNOT_FORCE_CLOSE)
            CASESEND(CHAT_PACKET_CANNOT_OPEN_SHOP)
            CASESEND(CHAT_PACKET_CANNOT_OPEN_SHOP_OWNER)
            CASESEND(CHAT_PACKET_CANNOT_ADD_ITEM)
            CASESEND(CHAT_PACKET_CANNOT_BUY_ITEM)
            CASESEND(CHAT_PACKET_CANNOT_REMOVE_ITEM)
            CASESEND(CHAT_PACKET_CANNOT_EDIT_ITEM)
            CASESEND(CHAT_PACKET_CANNOT_REMOVE_LAST_ITEM)
            CASESEND(CHAT_PACKET_CANNOT_FILTER)
            CASESEND(CHAT_PACKET_CANNOT_SEARCH_YET)
            CASESEND(CHAT_PACKET_OFFER_CREATE)
            CASESEND(CHAT_PACKET_CANNOT_CREATE_OFFER)
            CASESEND(CHAT_PACKET_CANNOT_ACCEPT_OFFER)
            CASESEND(CHAT_PACKET_CANNOT_OPEN_SAFEBOX)
            CASESEND(CHAT_PACKET_CANNOT_SAFEBOX_GET_ITEM)
            CASESEND(CHAT_PACKET_CANNOT_SAFEBOX_GET_VALUTES)
            CASESEND(CHAT_PACKET_CANNOT_SAFEBOX_CLOSE)
            CASESEND(CHAT_PACKET_RECV_ITEM_SAFEBOX)
            CASESEND(CHAT_PACKET_AUCTION_CANNOT_SEND_LIST)
            CASESEND(CHAT_PACKET_AUCTION_CANNOT_OPEN_AUCTION)
            CASESEND(CHAT_PACKET_AUCTION_CANNOT_CREATE_AUCTION)
            CASESEND(CHAT_PACKET_AUCTION_CANNOT_ADD_OFFER)
            CASESEND(CHAT_PACKET_CANNOT_DO_NOW)
        default:
            sys_err("unknown chat packet %d",type);
            break;
        }
    }

Derlenmiş olan game ve db dosyalarını (MySQL 5.5 - FreeBSD 11.4) oyun sunucusuna atıp çalıştırmaya çalıştığım da markete eşya ekleyebiliyorum, ancak pazarı kapattığım zaman market kasasındaki eşyayı almak istediğimde, eşyayı veritabanında bulunan tabloya yazıyor ancak OYUN GENEL SOHBETİNDE o eşyayı almak için tıkladığım da locale_string.txt eklenen şu mesajı çeviriyor. Buna ek olarak herhangi bir şekilde market içerisindeki eşyayı düzenleyemiyor, fiyat bilgilerini ayarlayamıyor, açık arttırma sistemini de kullanamıyorum.Pazar sistemim piyasada bulunan warez sistemlerden değil.

Oyunda çevirilen hata mesajı; *CHAT_PACKET_CANNOT_SAFEBOX_GET_ITEM* YANİ > Bu eşyayı market kasasından alamazsınız!

- İkarus market sistemi hangi SQL veritabanı motoru ile çalışıyor?

Kod:
MySQL ise, hangi sürüm?
MariaDB ise hangi versiyon?

Bir de şu aşağıda paylaştığım kodda bulunan .sql uzantılı dosya hangi veritabanı motoru ile uyumlu ?
SQL:
DROP TABLE IF EXISTS `offlineshop_auctions`;
CREATE TABLE `offlineshop_auctions` (
  `owner_id` bigint(20) unsigned NOT NULL,
  `duration` bigint(20) unsigned NOT NULL DEFAULT '0',
  `init_yang` bigint(255) unsigned DEFAULT NULL,
  `name` varchar(255) NOT NULL,
  `vnum` bigint(20) unsigned NOT NULL,
  `count` int(10) unsigned NOT NULL,
  `socket0` int(10) unsigned NOT NULL,
  `socket1` int(10) unsigned NOT NULL,
  `socket2` int(10) unsigned NOT NULL,
  `attr0` int(10) unsigned NOT NULL,
  `attrval0` int(10) NOT NULL,
  `attr1` int(10) unsigned NOT NULL,
  `attrval1` int(10) NOT NULL,
  `attr2` int(10) unsigned NOT NULL,
  `attrval2` int(10) NOT NULL,
  `attr3` int(10) unsigned NOT NULL,
  `attrval3` int(10) NOT NULL,
  `attr4` int(10) unsigned NOT NULL,
  `attrval4` int(10) NOT NULL,
  `attr5` int(10) unsigned NOT NULL,
  `attrval5` int(10) NOT NULL,
  `attr6` int(10) unsigned NOT NULL,
  `attrval6` int(10) NOT NULL,
  `expiration` tinyint(11) DEFAULT '0',
  PRIMARY KEY (`owner_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC;

Lütfen bana şu kod bloğuna ait sistemin çözümünü veya artık her neyse çözümünü paylaşabilir misiniz?
C++:
ch->ChatInfoTrans

Buna ek olarak, MyISAM ile MariaDB arasındaki temel fark nedir?

@Whistle
Forumunuza yeni yeni katılıyorum, hatalar var (ise) mazur görün lütfen.
Keyifli forumlar.
 
Çözüm
Sorunun kaynağı DB src gibi geldi bana. CH1 de ki syserr, büyük ihtimalle db de ki syserrin devamı niteliğinde. Yani db çözülürse, ch1 de çözülmüş olacak gibi.
Db tarafında bütün her şeyi gözden geçirip sonrasında navicat ve eğer varsa ftp tarafında da yapılması gereken her şeyi eksiksiz yaptığınıza emin olun. Eğer sistemi kurduktan sonra veya son zamanlarda db src içinden veya navicattan bir değişiklik yaptıysanız bunları da gözden geçirin.

Öncesinde çalışıyordu sonradan böyle oldu dediğiniz için sorunun tam olarak neyden kaynaklandığını bilmek zor. Eğer yaptığınız işlemleri hatırlarsanız büyük ihtimal bu sorunu yine kendiniz çözebilirsiniz.

Kod:
CreateItem: ITEM_ID_DUP: 14909564 Runik Kýlýç +9 owner 0x0

Yine de bilgi...
@Denizeri24 kesinlikle haklı, çoğunluk server great kullanıyor ikarus değil. hatta premium offline shop diye dolanan shop (owsapınki) ken altyapılı bir shop. ikarus kullanan sw bir elin parmağını geçmez ki ikarus şuan satışları durdurmuş. çözülemeyen bir sorun var (kaynak @DrLegendy , alıcaktı ikarus satmadıüı için alamadı) yani işin özü paylaşılan en sağlam shop ikarusun aksine hala great
İkarus destek vermiyor zaten, aldıktan sonra desteği yok..
 
Problemi tamamen çözdüm sayılır, yalnızca şu an şu hatayı alıyorum açıkçası anlamış değilim.
1621349431430.png


Duyarlılığı ve hassasiyetinden yana, konuyu modere eden Süper Moderatörlere teşekkür ederim.
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst