Jump to content
  • 0

[C++]Récompenses DR OxEvent


Gloria

Question

Bonjour tout le monde.
 

J'aimerais savoir, si c'etais possible de crée une fonction C++ (Language dont je n'ai aucune connaissance) pour donner les DR directement en récompense de L'OX

J'ai essayée de chercher le code qui associe

 

 oxevent.give_item



J'ai pus éventuellement trouvée ce code dans le fichier OXevent.cpp:

 

bool COXEventManager::GiveItemToAttender(DWORD dwItemVnum, BYTE count)
{
	itertype(m_map_attender) iter = m_map_attender.begin();

	for (; iter != m_map_attender.end(); ++iter)
	{
		LPCHARACTER pkChar = CHARACTER_MANAGER::instance().FindByPID(iter->second);

		if (pkChar)
		{
			pkChar->AutoGiveItem(dwItemVnum, count);
			LogManager::instance().ItemLog(pkChar->GetPlayerID(), 0, count, dwItemVnum, "OXEVENT_REWARD", "", pkChar->GetDesc()->GetHostName(), dwItemVnum);
		}
	}

	return true;
}

Comment l'adapter ou en crée une autre pour que celle-ci donne directement des DR.

Merci pour votre aide :) 

 

En postant ma demande d'aide, j'affirme avoir lu et accepté le Règlement de Funky-Emulation.

Link to post

6 answers to this question

Recommended Posts

  • 0

Bonjour,

 

Y a moyen de faire tout ce que tu veux en CPP mais je te conseillerais de le faire en sql si tu n'as pas les compétences en cpp pour le faire.

« Au commencement, il n’y avait que l’océan puis l’île-mère surgit des eaux… Te Fiti. Son cœur avait un immense pouvoir, celui d’engendrer la vie. L’univers tout entier profitait de ses bienfaits. Mais avec le temps, le cœur de Te Fiti fut très convoité. Certains pensaient que le posséder, c’était posséder le pouvoir de la création… Aujourd’hui encore, Te Ka et les monstres des ténèbres sont toujours à la recherche du cœur. Ils sont cachés dans l’obscurité qui continuera de se propager… ».

Link to post
  • 0
  • Bot
il y a 26 minutes, Tamatoa a dit :

Bonjour,

 

Y a moyen de faire tout ce que tu veux en CPP mais je te conseillerais de le faire en sql si tu n'as pas les compétences en cpp pour le faire.

Heeeeeeu.... Comment te dire ? 

 

Tu dois obligatoirement passer par SQL. Il faut que tu mettes à jour ta base de données. Cependant aucun cache il me semble n'est appliqué à la colonne "cash". Tu n'as pas besoin de passer par le c++, mais tu peux. Pour cela, il faudrait que tu fasses une fonction qui va exécuter la queries : "UPDATE account.account SET cash=cash+50 WHERE id = 1;" par exemple.

 

Tu peux cependant le faire en lua en activant la fonction qui permet de le faire.

Tu peux par exemple créer une fonction comme celle-ci :

bool AddCash(LPCHARACTER ch, const int * c_cash)
{
	DBManager::instance().DirectQuery("UPDATE account.account SET cash = cash + %d WHERE id = %d", XXXX, c_cash);
	return true;
}

// header :
bool AddCash(PCHARACTER ch, const int* c_cash);

Remplace le XXX par la récupération de l'id, je l'ai plus de tête...

 

Désolé des imperfections de l'écriture, j'écris actuellement avec ma tablette, c'est pas des plus pratique...

En espérant t'avoir aider.

Edited by FBot (see edit history)
Link to post
  • 0
bool COXEventManager::GiveCashToAttender(BYTE count)
{
	itertype(m_map_attender) iter = m_map_attender.begin();

	for (; iter != m_map_attender.end(); ++iter)
	{
		LPCHARACTER pkChar = CHARACTER_MANAGER::instance().FindByPID(iter->second);

		if (pkChar)
		{
			DBManager::instance().DirectQuery("UPDATE account.account SET cash = cash + %d WHERE id = %d", count, pkChar->GetPlayerID());
		}
	}

	return true;
}

T'a juste a changé les fonctions qui donne un item par une query ;) 

 

Sinon tu peut toujours give des bon DC

Edited by Wild (see edit history)
  • Like 1

 

1523238123-banner-468x60-nashalie2-by-we

Link to post
Guest
This topic is now closed to further replies.


  • Recently Browsing

    No registered users viewing this page.

  • Sujets

  • Messages

    • Hinterlands recrute actuellement afin d'aggrandir sa portée communautaire mais aussi déployer plus rapidement des mises à jour de contenu. Nous recherchons actuellement des passionnés de World of Warcraft, de développement et de modding. Hinterlands a pour but sur le long terme de faire jouer ses joueurs à "une version de Shadowlands", mais sur un serveur Wrath of the Lich King. Actuellement certains de nos scripts nous mènent vers un serveur de jeu World of Warcraft ~ Diablesque.
    • (Potentiellement désolé pour l'emplacement du sujet, j'ai fait au mieux !)   Bonjour, Un émulateur Dofus Arena est actuellement en développement intensif (et en 6 jours bien plus avancé que quiconque auparavant) et afin de faciliter le mapping des sources de la dernière version du client, je recherche des personnes qui posséderaient des anciens clients Dofus Arena et souhaiteraient les partager afin d'accélérer le processus de rétro-ingénierie. Voici les clients que je POSSÈD
    • salut, je t'ai envoyé un message depuis mon compte discord jerryup mais je n'ai pas eu de réponse de ta part, ton sujet est il toujours d'actualité ?
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.