Jump to content

C++ Otimizado: AutoLoot in Sources for TFS 0.3.6, TFS 0.4


Recommended Posts

  • Assistente

Adaptar não teria como, pois iria contra a logica do sistema que é entregar o item direto ao player ao invés do corpo.

Discord: Naze#3578

 

Ter Linux Dentro de Windows com Acesso 'localhost' para testes e +

AutoLoot Otimizado Direto na Source (tfs 0.4/otx)

 

// Pirataria é crime, original é roubo, compartilhar é legal.

 

tumblr_muk78tEwDQ1qah4nko1_500.gif

Link to post
Share on other sites

  • Moderator

@Naze muito show parabéns se tivesse opção de limite de slot para free/premium para o jogador premium ter beneficio na quantidade de coleta seria bacana ^^ quem sabe para uma v2 

🛠️ Projeto NTO NS 🛠️

📝 Detalhes 📝

🗺️ Mapa próprio em produção 🗺️

🖱️ Versão: 8.60 🖱️

🔥 War System 🔥

⚔️ Jutsus Próprios baseado no anime ⚔️

🔰 Itens com as características e efeitos do anime 🔰

💻 Para mais detalhes acesse as redes sociais do servidor abaixo 💻

💡 Usando como referencias Anime/Jogos/Wallpapers etc... para trazer algo mais próximo possível do universo de Naruto 💡

 

💎 Redes Sociais 💎

🌀 Facebook 🌀

🎒 Youtube 🎒
🌌 Discord 🌌

 

📚 Tutoriais / Conteúdos 📥

♨️ Clique Aqui ♨️

Link to post
Share on other sites

Salve meu rei, deu esse pequeno errozinho aqui kk.

em iologindata.cpp

 

image.thumb.png.034a5458818c8140aa3d81196eb5ca7f.png

 

 

 

 

 

                                                                                                                                                     tumblr_nwmv2z4VEM1ujiquxo1_100.gif.2db64bb36f0f565e68ff2a90cb98f439.gif.59f4c4cf234d2f6906621cac0553a862.gif

https://github.com/italoxxx1

 

Link to post
Share on other sites

  • Assistente

@RicK Sanchez Na linha 722 tenta substituir 

unsigned long lootListSize;

por

uint64_t lootListSize = 0;

 

Em 26/10/2020 em 11:51, LeoTK disse:

@Naze muito show parabéns se tivesse opção de limite de slot para free/premium para o jogador premium ter beneficio na quantidade de coleta seria bacana ^^ quem sabe para uma v2 

Teria q colocar um configManager com numero de slots free numa verificação na parte de add do talkactions, depois edito esse post com essa modificação.

Discord: Naze#3578

 

Ter Linux Dentro de Windows com Acesso 'localhost' para testes e +

AutoLoot Otimizado Direto na Source (tfs 0.4/otx)

 

// Pirataria é crime, original é roubo, compartilhar é legal.

 

tumblr_muk78tEwDQ1qah4nko1_500.gif

Link to post
Share on other sites

deu esse outro erro aqui meu bom

 

unknown.thumb.png.a0b21610b36e4cf06173629f7017454a.png

 

 

 

 

 

                                                                                                                                                     tumblr_nwmv2z4VEM1ujiquxo1_100.gif.2db64bb36f0f565e68ff2a90cb98f439.gif.59f4c4cf234d2f6906621cac0553a862.gif

https://github.com/italoxxx1

 

Link to post
Share on other sites

  • Assistente

@RicK Sanchez

em monsters.cpp usa esse dropLoot:

Spoiler

void MonsterType::dropLoot(Container* corpse)
{	
	uint32_t money = 0;
	Item* items;
	std::stringstream str;
	for(LootItems::const_iterator it = lootItems.begin(); it != lootItems.end() && !corpse->full(); ++it)
	{
		if(items = createLoot(*it)) {
			Item* tmpItem = items;
			if(Container* container = tmpItem->getContainer())
			{
				Player* tmpPlayer = g_game.getPlayerByGuid(corpse->getCorpseOwner());
				if(createChildLoot(container, (*it), money, str, tmpPlayer)) {
					corpse->__internalAddThing(tmpItem);
				} else {
					delete container;
				}
			}
			else {
				bool LootCatch = false;
				Player* tmpPlayer;
				if(tmpPlayer = g_game.getPlayerByGuid(corpse->getCorpseOwner())) {
					if(tmpPlayer->statusAutoLoot() == "On") {
						LootCatch = tmpPlayer->checkAutoLoot(tmpItem->getID());
						if(LootCatch) {
							if(tmpPlayer->isMoneyAutoLoot(tmpItem, money)) {
								continue;
							}
							g_game.internalPlayerAddItem(NULL, tmpPlayer, tmpItem);
							str << " " << tmpItem->getNameDescription() << ",";
							continue;
						}
					}
				}
				corpse->__internalAddThing(tmpItem);
			}
		}
	}

	corpse->__startDecaying();
	uint32_t ownerId = corpse->getCorpseOwner();
	if(!ownerId)
		return;

	Player* owner = g_game.getPlayerByGuid(ownerId);
	if(!owner)
		return;

	if(money != 0) {
		if(owner->statusAutoMoneyCollect() == "Bank"){
			owner->balance += money;
		} else {
			g_game.addMoney(owner, money);
		}
		str << " " << money << "x gold coins.";
	} else {
		str << " nothing gold coins.";
	}

	LootMessage_t message = lootMessage;
	if(message == LOOTMSG_IGNORE)
		message = (LootMessage_t)g_config.getNumber(ConfigManager::LOOT_MESSAGE);

	if(message < LOOTMSG_PLAYER)
		return;

	std::stringstream ss;
	ss << "Loot of " << nameDescription << ": " << corpse->getContentDescription() << ".";
	if(owner->statusAutoLoot()  == "On") {
		ss << "\nAutoLoot Colleted:" << str.str();
	}
	if(owner->getParty() && message > LOOTMSG_PLAYER)
		owner->getParty()->broadcastMessage((MessageClasses)g_config.getNumber(ConfigManager::LOOT_MESSAGE_TYPE), ss.str());
	else if(message == LOOTMSG_PLAYER || message == LOOTMSG_BOTH)
		owner->sendTextMessage((MessageClasses)g_config.getNumber(ConfigManager::LOOT_MESSAGE_TYPE), ss.str());
}

 

e esse createChildLoot

Spoiler

bool MonsterType::createChildLoot(Container* parent, const LootBlock& lootBlock, uint32_t& money, std::stringstream& str, Player* player)
{
	LootItems::const_iterator it = lootBlock.childLoot.begin();
	if(it == lootBlock.childLoot.end())
		return true;

	Item* items;
	for(; it != lootBlock.childLoot.end() && !parent->full(); ++it)
	{
		if(items = createLoot(*it)) {
			Item* tmpItem = items;
			if(Container* container = tmpItem->getContainer())
			{
				if(createChildLoot(container, *it, money, str, player))
					parent->__internalAddThing(tmpItem);
				else
					delete container;
			}
			else {
				bool LootCatch = false;
				if(player && (player->statusAutoLoot() == "On")) {
					LootCatch = player->checkAutoLoot(tmpItem->getID());
				}
				if(LootCatch) {
					if(player->isMoneyAutoLoot(tmpItem, money)) {
						continue;
					}
					g_game.internalPlayerAddItem(NULL, player, tmpItem);
					str << " " << tmpItem->getNameDescription() << ",";
					continue;
				}
					parent->__internalAddThing(tmpItem);
			}
		}
	}

	return !parent->empty();
}

 

 

Discord: Naze#3578

 

Ter Linux Dentro de Windows com Acesso 'localhost' para testes e +

AutoLoot Otimizado Direto na Source (tfs 0.4/otx)

 

// Pirataria é crime, original é roubo, compartilhar é legal.

 

tumblr_muk78tEwDQ1qah4nko1_500.gif

Link to post
Share on other sites

Agora sim funcionou, obrigado meu rei <3 

 

 

 

 

 

                                                                                                                                                     tumblr_nwmv2z4VEM1ujiquxo1_100.gif.2db64bb36f0f565e68ff2a90cb98f439.gif.59f4c4cf234d2f6906621cac0553a862.gif

https://github.com/italoxxx1

 

Link to post
Share on other sites

  • 3 months later...
Em 30/10/2020 em 12:22, Naze disse:

@RicK Sanchez Na linha 722 tenta substituir 

unsigned long lootListSize;

por

uint64_t lootListSize = 0;

 

Teria q colocar um configManager com numero de slots free numa verificação na parte de add do talkactions, depois edito esse post com essa modificação.

da ese error mano

Captura de pantalla (38).png

Link to post
Share on other sites

  • Naze changed the title to Otimizado: AutoLoot inhttps://tibiaking.com/forums/topic/101079-otimizado-autoloot-in-sources-for-tfs-036-tfs-04/ Sources for TFS 0.3.6, TFS 0.4
  • Naze changed the title to Otimizado: AutoLoot in Sources for TFS 0.3.6, TFS 0.4
  • 1 month later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By Biel249
      Bom dia. Estou passando por esse problema com meu otserver tibia 8.6 eu coloco online tudo certinho portas abertas dmz e dns configurada mas não fica on só eu consigo entrar. Ja entrei em contato com a fornecedora de Internet eles alegaram que meu ip é privado e só conseguiria pagando um ip público. Alguém me ajuda????
    • By tataboy67
      Opa tibianos, tudo bem? Estou com alguns problemas na compilação do meu servidor.
      Vocês poderiam me ajudar?

      Fui tentar seguir o tutorial de compilação pelo VCPKG, segui tudo conforme pediram.
      Tutorial: (203) Tutorial 2] Compilar TFS 1.3 Vcpkg - YouTube
      Não deu nenhum erro nos passos anteriores a compilação, porem, tive um erro ao compilar.

      Segue a print do erro:


      Alguma ideia do que seja?

      Lembrando que, tive que fazer também o ajuste de:
      #include <lua.hpp>
      #include <luajit/lua.hpp>

      e

      #include <mysql.h>
      #include <mysql/mysql.h>

      E agora me deparei com esse erro também :/ 
    • By EddyHavoc
      Descrição: Com estas alterações nas sources do servidor e do OTC você conseguirá adicionar ao jogo uma barra de carregamento nas criaturas do jogo. Esta barra é personalizável e pode ser utilizada de diversas formas em diferentes scripts.

      Server sources.
      No arquivo game.h
      Abaixo de:
      Adicione:
       
      No arquivo game.cpp
      Adicione:
       
      No arquivo luascript.h
      Abaixo de:
      Adicione:
       
      No arquivo luascript.cpp
      Abaixo de:
      Adicione:
      Abaixo de:
      Adicione:
       
      No arquivo player.h
      Abaixo de:
      Adicione:
       
      No arquivo protocolgame.h
      Abaixo de:
      Adicione:
       
      No arquivo protocolgame.cpp
      No final do arquivo adicione:
       
      Client sources.
      No arquivo protocolcodes.cpp
      Abaixo de:
      Adicione:
       
      No arquivo protocolgame.h
      Abaixo de:
      Adicione:
       
      No arquivo protocolgameparse.cpp
      Abaixo de:
      Adicione:
      Abaixo de:
      Adicione:
       
      No arquivo creature.h
      Abaixo de:
      Adicione:
      Abaixo de:
      Adicione:
       
      No arquivo creature.cpp
      Abaixo de:
      Adicione:
      Substitua o código abaixo:
       
      Por este código:
       
      E ainda no arquivo creature.cpp no final da página adicione:
       
       
      Fim! Estas são todas as alterações! 

      Créditos:
      EddyHavoc
      Flatlander
      Kondrah
      Oen432
       
    • By mjokreaxasa
      Tenho um problema com o meu sistema de saga, quando o jogo fica guardado em volta do monstro, o monstro não ataca e tenho que me afastar e voltar à tela para poder atacar você.
       

       
    • By EddyHavoc
      [TUTORIAL] [UBUNTU] Como gerar e configurar uma nova chave RSA
      Este tutorial pode ser útil para você deixar o uso obrigatório do seu client customizado para o seu servidor.

      Para seguir este tutorial você precisará ter o OpenSSL instalado.
       
      Consultando se o seu sistema já tem OpenSSL
      Gerando a chave RSA
      Primeiramente, vamos gerar uma nova chave RSA exclusiva
       
      Assim que gerado, será criado um arquivo "key.pem" no diretório em que você está, esta será a sua chave RSA.
       
      Execute agora o seguinte comando
      Após executado o comando acima, será criado um arquivo "public.pem" neste mesmo diretório. Esta é a sua RSA pública.
       
      Precisamos agora converter a chave RSA publica em hexadecimal para decimal, somente desta forma será aceito no Servidor e no OTClient.
       
      Antes de tudo será necessário tratar a RSA pública, portando execute os comandos abaixo:
       
      Após executar o comando acima o terminal deve printar algo como isso:
       

      Em seguida execute o comando abaixo:
       
       
      Após executar o comando acima o terminal deve printar algo como isso:
       
       
       
      Agora para realizar a conversão de Hex para Decimal utilize o seguinte site: Hexadecimal to Decimal Converter (rapidtables.com)
       
      A sua RSA deve ter obrigatoriamente 309 caracteres.

      Configurando a Chave RSA no OTClient
      Agora entre no seguinte caminho modules/gamelib/ do OTClient e abra o arquivo const.lua
      Procure por OTSERV_RSA, você encontrará algo como isto:
       
      Apague e insira a sua chave RSA pública já em Decimal, quando inserir indico deixar tudo em uma linha, como exemplo abaixo:
       
      Não é necessário mexer na CIPSOFT_RSA.

      Configurando a Chave RSA no Servidor
      Substitua o seu novo arquivo gerado key.pem pelo mesmo arquivo localizado na pasta do seu servidor.
       
       
      Considerações Finais
      Pronto! Melhoria concluída com sucesso!
      Após isso só será possível efetuar login em seu servidor com um client que tem a sua RSA pública configurada.

      Créditos:
      @Cjaker
      Sun
      Marcos Pacheco
      @Breno Alves
      @EddyHavoc
      @Cat
       
  • Recently Browsing   0 members

    No registered users viewing this page.


×
×
  • Create New...

Important Information

Confirmação de Termo