Cum pot modifica in felul asta?

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

Nivel 2
Mesaje: 226
Membru din: 08 Iul 2014, 01:26
Aprecieri: 149  
Mulţumiri: 6  
  Rezolvări prob.: 1
Medalii

*Problemă: Cum modific search shopul asa?
Tipologie server(PvM / PvP):
*Resursă folosită: *Link exclusiv J4M*
*ServerFiles utilizat:
*Syserr:
Poză:
*Detalii suplimentare:
Cum pot modifica search shopul in felul asta?
Din
/search_in_shops (VNUM) ex /search_in_shops 189

in...

Adica sa nu mai gaseasca toate itemele cu acel vnum ci doar unul dupa id-ul specificat

/search_in_shops (VNUM) (ITEM-ID-tin tabelul cu iteme din shopuri) ex /search_in_shops 189 50

Cod: Selectaţi tot

struct FSearch
{
	FSearch(LPCHARACTER ch, int Vnum) : m_ch(ch), itemVnum(Vnum)
	{
	}
	void operator () (LPENTITY ent)
	{
		if (ent->IsType(ENTITY_CHARACTER))
		{
			LPCHARACTER ch = (LPCHARACTER) ent;

			if (ch->GetRaceNum() !>= 30000 && GetRaceNum() <= 30007) //umutk kaşmir
				return;
			char szQuery[1024];
			sprintf(szQuery,
			"SELECT * FROM %soffline_shop_item WHERE owner_id = %u AND vnum = %d",
			get_table_postfix(), ch->GetOfflineShopRealOwner(), itemVnum);

			std::auto_ptr<SQLMsg> pSearchQuery(DBManager::instance().DirectQuery(szQuery));

			if (pSearchQuery->uiSQLErrno != 0) {
				sys_err("Item Search Query Failed, Error code: %ld", pSearchQuery->uiSQLErrno);
				return;
			}
			if (!pSearchQuery->Get()->uiNumRows){
				return;
			}
			CTargetManager::Instance().CreateTarget(m_ch->GetPlayerID(), 9999, ch->GetName(), 3, ch->GetVID(), 0, m_ch->GetMapIndex(), NULL, 1);
		}
	}
	LPCHARACTER m_ch;
	int itemVnum;
};

	
void COfflineShopManager::SearchInShops(LPCHARACTER ch, int vnum)
{
	if (!ch)
		return;
	LPSECTREE_MAP pSecMap = SECTREE_MANAGER::instance().GetMap(ch->GetMapIndex());
	if (!pSecMap)
		return;
	FSearch f(ch, vnum);
	pSecMap->for_each(f);
	ch->SetQuestFlag("item_search.flood_check", get_global_time());
}
       
              
ACMD(do_search_in_shops)
{
	char arg1[256];
	one_argument(argument, arg1, sizeof(arg1));

	int vnum = 0;
	str_to_number(vnum, arg1);

	int iFloodResult = ch->GetQuestFlag("item_search.flood_check");
	if (iFloodResult){
		if (get_global_time() < iFloodResult + 3) {
			ch->ChatPacket(CHAT_TYPE_INFO, "Cok hizlisin.");
			return;
		}
	}

	COfflineShopManager::Instance().SearchInShops(ch, vnum);
}
Avatar utilizator
Moț
Ţepar / Untrusted User

Ţepar / Untrusted User
Mesaje: 2825
Membru din: 03 Apr 2017, 15:00
Aprecieri: 216  
Mulţumiri: 3040  
Discord: Copiază ID
Medalii

trb adaugat inca un arg la comanda de search, modificata func SearchInShops si FSearch, nuj daca acel id ii unic, exporta tabelul in format sql si incarca l pe pastebin sau da ss cu continutul acestuia & design table
Imagine
Afișează semnătura
Avatar utilizator
rawn3cr0
Nivel 2

Nivel 2
Mesaje: 226
Membru din: 08 Iul 2014, 01:26
Aprecieri: 149  
Mulţumiri: 6  
  Rezolvări prob.: 1
Medalii

Am rezolvat. Am modificat din vnum in id și acum e bine. Multumesc mult.

[ Postat de pe iPhone ] Imagine
Avatar utilizator
Titan
Metin Master

Metin Master
Mesaje: 2783
Membru din: 01 Iun 2015, 15:09
Server: In curand.
Regat: Chunjo
Aprecieri: 42  
Mulţumiri: 377  
  Rezolvări prob.: 3
Discord: Copiază ID
 Contact:
Medalii

Rezolvat.
Imagine
Afișează semnătura
Închis
Răspunsuri
3
Vizualizări
530
Răspunsuri
5
Vizualizări
316
Răspunsuri
2
Vizualizări
173

Înapoi la “Probleme rezolvate”

  • Informaţie
  • Cine este conectat

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