Ajutor cu Shop search c++

Î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

Am modificat, functioneaza.
Ulterior am adaugat si asta ( a functionat ok si fara el prima data ):

Cod: Selectaţi tot

void CHARACTER::Initialize()
{
	CEntity::Initialize(ENTITY_CHARACTER);
	nextallowedsearch = 0;

iar in char.h le-am pus aici:

Cod: Selectaţi tot

#ifdef __SEND_TARGET_INFO__
	private:
		DWORD			dwLastTargetInfoPulse;
		int32_t nextallowedsearch;

	public:
		DWORD			GetLastTargetInfoPulse() const	{ return dwLastTargetInfoPulse; }
		void			SetLastTargetInfoPulse(DWORD pulse) { dwLastTargetInfoPulse = pulse; }
		void SetNextAllowedSearch(int32_t arg) { nextallowedsearch = arg; }
		int32_t GetNextAllowedSearch() { return nextallowedsearch; }
#endif
In legatura cu un mesaj cu "Am gasit" si "Nu am gasit" cum pot modifica?
Cu diacriticele, am inteles. Este si prea complicat, voi scoate diacriticele. Multumesc!
Avatar utilizator
iMerv3
Nivel 1

Nivel 1
Mesaje: 86
Membru din: 20 Mai 2020, 23:25
Aprecieri: 85  
Mulţumiri: 159  
Discord: Copiază ID
 Contact:
Medalii

:rofl: nu prea are legătura cu __SEND_TARGET_INFO__ . Adaugă înainte de:

Cod: Selectaţi tot

};

ESex GET_SEX(LPCHARACTER ch);
Pentru restul nu, nu te-ai făcut înțeles explică problema.
Pentru acest mesaj, iMerv3 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

Am adaugat:

Cod: Selectaţi tot

	private:
		int32_t nextallowedsearch;

	public:
		void SetNextAllowedSearch(int32_t arg) { nextallowedsearch = arg; }
		int32_t GetNextAllowedSearch() { return nextallowedsearch; }

};

ESex GET_SEX(LPCHARACTER ch);

#endif
Atunci cand caut un item, exemplu Sabie +9
Daca obiectul nu este gasit in shopp-uri, vreau sa imi apara in chat un mesaj: "Nu am gasit nici un obiect"
Daca obiectul este gasit in shopp-uri, vreau sa imi apara un mesaj: "Obiectul a fost gasit"
Ms.
Avatar utilizator
iMerv3
Nivel 1

Nivel 1
Mesaje: 86
Membru din: 20 Mai 2020, 23:25
Aprecieri: 85  
Mulţumiri: 159  
Discord: Copiază ID
 Contact:
Medalii

Ah ok.

Cod: Selectaţi tot

struct FSearch {
	FSearch(LPCHARACTER ch, int Vnum) : m_ch(ch), itemVnum(Vnum), m_res(false) {}

	void operator () (LPENTITY ent) {
		if (ent->IsType(ENTITY_CHARACTER)) {
			LPCHARACTER ch = (LPCHARACTER) ent;

			if (ch->GetRaceNum() != 30000)
			{
				return;
			}

			std::auto_ptr<SQLMsg> msg(DBManager::instance().DirectQuery("SELECT * FROM offline_shop_item WHERE owner_id = %u AND vnum = %d", ch->GetOfflineShopRealOwner(), itemVnum));
			if (msg->Get()->uiNumRows == 0) {
				return;
			}

			CTargetManager::Instance().CreateTarget(m_ch->GetPlayerID(), 9999, ch->GetName(), 3, ch->GetVID(), 0, m_ch->GetMapIndex(), NULL, 1);
			m_res = true;
		}
	}

	LPCHARACTER m_ch;
	int itemVnum;
	bool m_res;
};
 
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);

	if (f.m_res) {
		ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("A fost gasit."));
	} else {
		ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Nu a fost gasit."));
	}

	ch->SetNextAllowedSearch(thecore_pulse() + (passes_per_sec * 30));
}
Pentru acest mesaj, iMerv3 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

Multumesc frumos pentru ajutor!
Functioneaza.
Pentru acest mesaj, alinjuve23 for the post:
iMerv3
Închis

Înapoi la “Probleme rezolvate”

  • Informaţie
  • Cine este conectat

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