Problema shop offline = pica serverul.

Înainte de a posta o problemă, caută în acest forum și poate găsești rezolvare.
Avatar utilizator
alinjuve23
Nivel 2

Nivel 2
Mesaje: 239
Membru din: 23 Apr 2015, 17:10
Aprecieri: 451  
Mulţumiri: 21  
Medalii

*Problemă/Întrebare: Pica serverul cand incerc sa creez shop offline. Sau cand intru la Obiecte nevandute.
Tipologie server(PvM / PvP): -
*Resursă folosită: -
*ServerFiles utilizat: Serverfiles clean + src full. Zearth2
*Syserr:
Poză: https://imgur.com/aPsw6cY
*Detalii suplimentare:

Syserr server - am reinstalat tabelel offline_shop_npc si offline_shop_item si face la fel. In sursa am adaugat toate fisierele din game ce erau legate de shopp offline dar face tot la fel.. la inceput a mers shop-ul.

Cod: Selectaţi tot

SYSERR: Jul 14 00:23:58 :: DirectQuery: AsyncSQL::DirectQuery : mysql_query error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '" "offline_shop_npc WHERE owner_id = 2869' at line 1
query: SELECT owner_id FROM " "offline_shop_npc WHERE owner_id = 2869
SYSERR: Jul 14 00:24:05 :: DirectQuery: AsyncSQL::DirectQuery : mysql_query error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '" "offline_shop_item WHERE owner_id = 2869 and status = 1' at line 1
query: SELECT COUNT(*) FROM " "offline_shop_item WHERE owner_id = 2869 and status = 1
Sysserr full server daca este nevoie: https://pastebin.com/4mxzZapY

Syserr client

Cod: Selectaţi tot

0714 21:54:26509 :: Cannot find item by -201035830
0714 21:54:26509 :: Cannot find item by -201035830
0714 21:54:26510 :: Cannot find item by 73022708
0714 21:54:26510 :: Cannot find item by 73022708
0714 21:54:26510 :: Cannot find item by 2038334464
0714 21:54:26510 :: Cannot find item by 2038334464
0714 21:54:26510 :: Cannot find item by -1310720
0714 21:54:26510 :: Cannot find item by -1310720
0714 21:54:26510 :: Cannot find item by 301711
0714 21:54:26510 :: Cannot find item by 301711
0714 21:54:26510 :: Cannot find item by 77046460
0714 21:54:26510 :: Cannot find item by 77046460
0714 21:54:26511 :: Cannot find item by 73441284

ETC. ETC. Apare Cannot find item by ........ de foarte multe ori, am sters din ele sa nu umplu pagina aiurea.

Avatar utilizator
alinjuve23
Nivel 2

Nivel 2
Mesaje: 239
Membru din: 23 Apr 2015, 17:10
Aprecieri: 451  
Mulţumiri: 21  
Medalii

Careva o idee? Multumesc!
Avatar utilizator
alinjuve23
Nivel 2

Nivel 2
Mesaje: 239
Membru din: 23 Apr 2015, 17:10
Aprecieri: 451  
Mulţumiri: 21  
Medalii

up
Avatar utilizator
Trigun10
Nou Venit

Nou Venit
Mesaje: 7
Membru din: 19 Iul 2016, 21:02
Regat: Jinno
Aprecieri: 206  
Mulţumiri: 5  
Medalii

Query-ul pe care incearca sa il execute e scris gresit
SELECT pos,count,vnum,price,socket0,socket1,socket2,attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtype3,attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,attrtype6,attrvalue6,applytype0,applyvalue0,applytype1,applyvalue1,applytype2,applyvalue2,applytype3,applyvalue3,applytype4,applyvalue4,applytype5,applyvalue5,applytype6,applyvalue6,applytype7,applyvalue7 FROM " "offline_shop_item WHERE owner_id = 2865 and status = 1

Incearca sa il executi in Navicat si o sa vezi ca primesti aceeasi eroare ca si in syserr.

Ar trebui sa arate asa:

SELECT pos,count,vnum,price,socket0,socket1,socket2,attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtype3,attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,attrtype6,attrvalue6,applytype0,applyvalue0,applytype1,applyvalue1,applytype2,applyvalue2,applytype3,applyvalue3,applytype4,applyvalue4,applytype5,applyvalue5,applytype6,applyvalue6,applytype7,applyvalue7 FROM offline_shop_item WHERE owner_id = 2865 and status = 1

Probabil ca asa o sa iti mearga si in navicat.

Trebuie sa cauti in sursa server unde se construieste queryul si sa scoti cele 2 " in plus.
Pentru acest mesaj, Trigun10 for the post:
alinjuve23
Avatar utilizator
alinjuve23
Nivel 2

Nivel 2
Mesaje: 239
Membru din: 23 Apr 2015, 17:10
Aprecieri: 451  
Mulţumiri: 21  
Medalii

Salut, Multumesc pentru raspuns!

Am cautat in sursa si vad ca il am fara " " dupa FROM.
Este cu %s inainte, sterg asta?

Cod: Selectaţi tot

	// Start process
	ch->SetOfflineShop(this);
	m_map_guest.insert(GuestMapType::value_type(ch, false));

	TPacketGCShop pack;
	pack.header = HEADER_GC_OFFLINE_SHOP;
	pack.subheader = SHOP_SUBHEADER_GC_START;

	TPacketGCOfflineShopStart pack2;
	memset(&pack2, 0, sizeof(pack2));
	pack2.owner_vid = npc->GetVID();

	std::auto_ptr<SQLMsg> pMsg(DBManager::instance().DirectQuery("SELECT pos,count,vnum,price,socket0,socket1,socket2,attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtype3,attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,attrtype6,attrvalue6,applytype0,applyvalue0,applytype1,applyvalue1,applytype2,applyvalue2,applytype3,applyvalue3,applytype4,applyvalue4,applytype5,applyvalue5,applytype6,applyvalue6,applytype7,applyvalue7 FROM %soffline_shop_item WHERE owner_id = %u", get_table_postfix(), npc->GetOfflineShopRealOwner()));
	if (pMsg->Get()->uiNumRows == 0)
	{
		DBManager::instance().DirectQuery("DELETE FROM player.offline_shop_npc WHERE owner_id = %u", npc->GetOfflineShopRealOwner());
		ch->SetOfflineShop(NULL);
		ch->SetOfflineShopOwner(NULL);
		M2_DESTROY_CHARACTER(npc);
		return false;
	}
Avatar utilizator
Trigun10
Nou Venit

Nou Venit
Mesaje: 7
Membru din: 19 Iul 2016, 21:02
Regat: Jinno
Aprecieri: 206  
Mulţumiri: 5  
Medalii

Pare ca get_table_postfix() returneaza un string gol, ar trebui sa returneze database in care e tabela offline_shop_item, probabil player. Cea mai simpla solutie ar fi asta:

Cod: Selectaţi tot

	// Start process
	ch->SetOfflineShop(this);
	m_map_guest.insert(GuestMapType::value_type(ch, false));

	TPacketGCShop pack;
	pack.header = HEADER_GC_OFFLINE_SHOP;
	pack.subheader = SHOP_SUBHEADER_GC_START;

	TPacketGCOfflineShopStart pack2;
	memset(&pack2, 0, sizeof(pack2));
	pack2.owner_vid = npc->GetVID();

	std::auto_ptr<SQLMsg> pMsg(DBManager::instance().DirectQuery("SELECT pos,count,vnum,price,socket0,socket1,socket2,attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtype3,attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,attrtype6,attrvalue6,applytype0,applyvalue0,applytype1,applyvalue1,applytype2,applyvalue2,applytype3,applyvalue3,applytype4,applyvalue4,applytype5,applyvalue5,applytype6,applyvalue6,applytype7,applyvalue7 FROM player.offline_shop_item WHERE owner_id = %u", npc->GetOfflineShopRealOwner()));
	if (pMsg->Get()->uiNumRows == 0)
	{
		DBManager::instance().DirectQuery("DELETE FROM player.offline_shop_npc WHERE owner_id = %u", npc->GetOfflineShopRealOwner());
		ch->SetOfflineShop(NULL);
		ch->SetOfflineShopOwner(NULL);
		M2_DESTROY_CHARACTER(npc);
		return false;
	}
Pentru acest mesaj, Trigun10 for the post:
alinjuve23
Avatar utilizator
alinjuve23
Nivel 2

Nivel 2
Mesaje: 239
Membru din: 23 Apr 2015, 17:10
Aprecieri: 451  
Mulţumiri: 21  
Medalii

Sunt mai multe %soffline_shop_item in mai multe fisiere cu offline shop.
Modific in toate cu player.offline_shop_item ? sau doar in cel de mai sus?

Multumesc!
Avatar utilizator
Trigun10
Nou Venit

Nou Venit
Mesaje: 7
Membru din: 19 Iul 2016, 21:02
Regat: Jinno
Aprecieri: 206  
Mulţumiri: 5  
Medalii

Incearca asa, usurel. Mai intai aici, sa vezi daca se rezolva asta. Si dupa vezi daca mai da si la celelalte queryuri.
Avatar utilizator
alinjuve23
Nivel 2

Nivel 2
Mesaje: 239
Membru din: 23 Apr 2015, 17:10
Aprecieri: 451  
Mulţumiri: 21  
Medalii

Face exact la fel, am sters syserr si pe urma am deschis shop-ul:

Cod: Selectaţi tot

SYSERR: Jul 16 23:27:40 :: DirectQuery: AsyncSQL::DirectQuery : mysql_query error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '" "offline_shop_npc WHERE owner_id = 2874' at line 1
query: SELECT owner_id FROM " "offline_shop_npc WHERE owner_id = 2874
SYSERR: Jul 16 23:27:41 :: DirectQuery: AsyncSQL::DirectQuery : mysql_query error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '" "offline_shop_item WHERE owner_id = 2874 and status = 1' at line 1
query: SELECT pos,count,vnum,price,socket0,socket1,socket2,attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtype3,attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,attrtype6,attrvalue6,applytype0,applyvalue0,applytype1,applyvalue1,applytype2,applyvalue2,applytype3,applyvalue3,applytype4,applyvalue4,applytype5,applyvalue5,applytype6,applyvalue6,applytype7,applyvalue7 FROM " "offline_shop_item WHERE owner_id = 2874 and status = 1
Am crezut ca nu s-a salvat game de la sursa, dar s-a salvat, am compilat de doua ori si este player.offline_shop_item
Singurul loc unde am " " este in config:

Cod: Selectaţi tot

HOSTNAME: canal1_1
CHANNEL: 1
PORT: 21000
P2P_PORT: 13000
DB_PORT: 11000
DB_ADDR: localhost
MAP_ALLOW: 1 3 4 5 6 21 23 24 25 26 41 43 44 45 46 62 73 79 104 108 109 112 196 202 203 204 205 206 207 235 240 222 301 302 304 303 402
TABLE_POSTFIX: " "
PASSES_PER_SEC: 25
SAVE_EVENT_SECOND_CYCLE: 180
PING_EVENT_SECOND_CYCLE: 180
PLAYER_SQL: localhost root metin2 player
COMMON_SQL: localhost root metin2 common
LOG_SQL: localhost root metin2 log
LOCALE_SERVICE: romania
MAX_LEVEL: 105
OFFLINE_SHOP_MAP_ALLOW: 1 3
Avatar utilizator
Trigun10
Nou Venit

Nou Venit
Mesaje: 7
Membru din: 19 Iul 2016, 21:02
Regat: Jinno
Aprecieri: 206  
Mulţumiri: 5  
Medalii

atunci e mai simplu

inlocuiest in config TABLE_POSTFIX: " " cu TABLE_POSTFIX: player
Pentru acest mesaj, Trigun10 for the post:
alinjuve23
Închis
Răspunsuri
13
Vizualizări
1976
Răspunsuri
8
Vizualizări
763
Răspunsuri
3
Vizualizări
228

Înapoi la “Probleme rezolvate”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 30 vizitatori