Jump to content
×
×
  • Create New...
  • 0

Compilation sources (erreur)


XDarkKillerX
 Share

Question

Bonsoir, en voulant modifier les sources pour ajouter les 2 inventaires, lors de la compilation je rencontre une erreur sur le fichier exchange.cpp, j'ai dû mal faire un truc, j'ai tenté des petites choses pour y remédier mais je vous cache pas que j'avais touché au C++ avant ce soir x_x

 

L'erreur :

 

exchange.cpp: In member function 'bool CExchange::CheckSpace()':
exchange.cpp:452: error: a function-definition is not allowed here before '{' token
exchange.cpp:643: error: expected `}' at end of input

 

La première zone de l'erreur (la ligne 452 étant celle en dessous de bool)

 

// 교환 끝 (아이템과 돈 등을 실제로 옮긴다)
bool CExchange::Done()
{
int		empty_pos, i;
LPITEM	item;

LPCHARACTER	victim = GetCompany()->GetOwner();

for (i = 0; i < EXCHANGE_ITEM_MAX_NUM; ++i)
{
	if (!(item = m_apItems[i]))
		continue;

	if (item->IsDragonSoul())
		empty_pos = victim->GetEmptyDragonSoulInventory(item);
	else
		empty_pos = victim->GetEmptyInventory(item->GetSize());

	if (empty_pos < 0)
	{
		sys_err("Exchange::Done : Cannot find blank position in inventory %s <-> %s item %s", 
				m_pOwner->GetName(), victim->GetName(), item->GetName());
		continue;
	}

	assert(empty_pos >= 0);

	if (item->GetVnum() == 90008 || item->GetVnum() == 90009) // VCARD
	{
		VCardUse(m_pOwner, victim, item);
		continue;
	}

	m_pOwner->SyncQuickslot(QUICKSLOT_TYPE_ITEM, item->GetCell(), 255);

	item->RemoveFromCharacter();
	if (item->IsDragonSoul())
		item->AddToCharacter(victim, TItemPos(DRAGON_SOUL_INVENTORY, empty_pos));
	else
		item->AddToCharacter(victim, TItemPos(INVENTORY, empty_pos));
	ITEM_MANAGER::instance().FlushDelayedSave(item);

	item->SetExchanging(false);
	{
		char exchange_buf[51];

		snprintf(exchange_buf, sizeof(exchange_buf), "%s %u %u", item->GetName(), GetOwner()->GetPlayerID(), item->GetCount());
		LogManager::instance().ItemLog(victim, item, "EXCHANGE_TAKE", exchange_buf);

		snprintf(exchange_buf, sizeof(exchange_buf), "%s %u %u", item->GetName(), victim->GetPlayerID(), item->GetCount());
		LogManager::instance().ItemLog(GetOwner(), item, "EXCHANGE_GIVE", exchange_buf);

		if (item->GetVnum() >= 80003 && item->GetVnum() <= 80007)
		{
			LogManager::instance().GoldBarLog(victim->GetPlayerID(), item->GetID(), EXCHANGE_TAKE, "");
			LogManager::instance().GoldBarLog(GetOwner()->GetPlayerID(), item->GetID(), EXCHANGE_GIVE, "");
		}
	}
}

 

La 2ème zone (la fin du fichier)

 

// 교환 취소
void CExchange::Cancel()
{
exchange_packet(GetOwner(), EXCHANGE_SUBHEADER_GC_END, 0, 0, NPOS, 0);
GetOwner()->SetExchange(NULL);

for (int i = 0; i < EXCHANGE_ITEM_MAX_NUM; ++i)
{
	if (m_apItems[i])
		m_apItems[i]->SetExchanging(false);
}

if (GetCompany())
{
	GetCompany()->SetCompany(NULL);
	GetCompany()->Cancel();
}

M2_DELETE(this);
}

 

 

Sinon si quelqu'un peux me donner le fichier exchange.cpp vierge c'est pas de refus, j'ai dû me gourer quelque part

 

Cordialement

Link to comment
Share on other sites

  • Answers 21
  • Created
  • Last Reply

Top Posters For This Question

Top Posters For This Question

21 answers to this question

Recommended Posts

  • 0

j'intervien dans ce sujet pour poser une question sur la compilation ?

est t'on obligé d'etre en files 2014 pour pouvoir utilisé un game compilé ?

 

en fichier 2013 ? est ce que sa marche ?

 

code corrigé

 

// ?? ? (???? ? ?? ??? ???)
bool CExchange::Done()
{
   int        empty_pos, i;
   LPITEM    item;

   LPCHARACTER    victim = GetCompany()->GetOwner();

   for (i = 0; i < EXCHANGE_ITEM_MAX_NUM; ++i)
   {
       if (!(item = m_apItems[i]))
           continue;

       if (item->IsDragonSoul())
           empty_pos = victim->GetEmptyDragonSoulInventory(item);
       else
           empty_pos = victim->GetEmptyInventory(item->GetSize());

       if (empty_pos < 0)
       {
           sys_err("Exchange::Done : Cannot find blank position in inventory %s <-> %s item %s",
                   m_pOwner->GetName(), victim->GetName(), item->GetName());
           continue;
       }

       assert(empty_pos >= 0);

       if (item->GetVnum() == 90008 || item->GetVnum() == 90009) // VCARD
       {
           VCardUse(m_pOwner, victim, item);
           continue;
       }

       m_pOwner->SyncQuickslot(QUICKSLOT_TYPE_ITEM, item->GetCell(), 255);

       item->RemoveFromCharacter();
       if (item->IsDragonSoul())
           item->AddToCharacter(victim, TItemPos(DRAGON_SOUL_INVENTORY, empty_pos));
       else
           item->AddToCharacter(victim, TItemPos(INVENTORY, empty_pos));
       ITEM_MANAGER::instance().FlushDelayedSave(item);

       item->SetExchanging(false);
       {
           char exchange_buf[51];

           snprintf(exchange_buf, sizeof(exchange_buf), "%s %u %u", item->GetName(), GetOwner()->GetPlayerID(), item->GetCount());
           LogManager::instance().ItemLog(victim, item, "EXCHANGE_TAKE", exchange_buf);

           snprintf(exchange_buf, sizeof(exchange_buf), "%s %u %u", item->GetName(), victim->GetPlayerID(), item->GetCount());
           LogManager::instance().ItemLog(GetOwner(), item, "EXCHANGE_GIVE", exchange_buf);

           if (item->GetVnum() >= 80003 && item->GetVnum() <= 80007)
           {
               LogManager::instance().GoldBarLog(victim->GetPlayerID(), item->GetID(), EXCHANGE_TAKE, "");
               LogManager::instance().GoldBarLog(GetOwner()->GetPlayerID(), item->GetID(), EXCHANGE_GIVE, "");
           }
       }
   }
}

Link to comment
Share on other sites

  • 0

Up ! Aucune idée pour ce petit problème ? :/

 

D'après des forums ça serait un problème d'accolade, ce qui se tient, mais j'ai tenté d'en mettre a de nombreux endroits (dans les paragraphes indiqués par les erreurs), parfois ça va mieux, parfois non, mais jamais je n'arrive a corriger les erreurs entièrement :/

Link to comment
Share on other sites

  • 0

Je vais tenter mais de toutes façon je devrais refaire les modif.(a savoir d'ailleurs que les erreurs se situaient ailleurs qu'aux endroits où j'ai fait mes modifs ^^)

 

Edit : Toujours les 2 mêmes erreurs ligne 452 et 643, j'ai suivis ce tuto : https://funky-emu.net/topic/16497-c-debug-bug-de-lechange-des-4-pages-dinventaires/

Les erreurs ne sont pas aux mêmes endroits, c'est bizarre :/

 

Voilà mon exchange.cpp : http://pastebin.com/9XLxUrgy

 

J'ai respecté tout, les tabulations, j'ai bien vérifié avoir remplacé ce qui fallait etc mais l'erreur persiste :/

(et j'insiste, rajouter une accolade à la fin ne change rien ^^)

Link to comment
Share on other sites

  • 0

Problème résolu, l'accolade devait être placée juste avant la ligne 452, comme quoi les erreur indiquées ne sont pas très claires ^^'

Sinon maintenant que j'ai un game, je l'ai upload puis reboot mon serveur mais impossible de se connecter (Erreur lors de la connexion.)

Aucune erreur à signaler de la part de putty ni des syser.

des idées ? :/

 

Edit : J'ai aussi tenté de remplacer 192.168 par 999.999 comme dans le post de mandrilux sans succès.

Link to comment
Share on other sites

  • 0

gmake : **** no rule to make target 'limit_time'.Stop

 

Il me manque quelque chose concernant limit_time dans makefile ?

 

Sinon pourrais tu me partager le contenu de ton limit_time, je voudrais plutôt avoir un time bomb repoussé que retiré (apparemment c'est plus conseillé notamment pour les hacks)

 

J'ai testé un petit truc appart :

 

Avec le game qui fonctionne, quand je démarre un channel sur putty il ouvre tous les core un par un , mais avec le game compilé il s'arrête à logsql connected, il ne prend pas la peine d'aller plus loin mais sans pour autant afficher d'erreur ^^

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share



  • Flux d'Activité

    1. 0

      Projet Genesis

    2. 4

      Shiva.international serveur privé metin2 Oldschool Start 16.09.2022

    3. 0

      Metin2 Champions - Accès anticipé

    4. 0

      Barbok

    5. 4

      Shiva.international serveur privé metin2 Oldschool Start 16.09.2022

    6. 2

      Partage Émulateur 2.63

    7. 2

      Partage Émulateur 2.63

  • Recently Browsing

    • No registered users viewing this page.

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.