Ir para conteúdo
  • 0
Entre para seguir isso  
heitor1

Programação Autoloot TFS 1.3

Pergunta

heitor1    0
heitor1

Antes de fazer a sua pergunta, tenha certeza de ter lido as regras da seção e o guia abaixo:

https://forums.otserv.com.br/index.php?/forums/topic/168583-regras-da-seção/

https://forums.otserv.com.br/index.php?/forums/topic/165121-como-fazer-uma-pergunta-ou-o-grande-guia-do-usuário-com-dúvidas/

Descreva em algumas palavras a base utilizada. (Nome do servidor / Nome do cliente / Nome do website / etc.).

Ex: The Forgotten Server 1.3, Versão: 10.98.

Base: The Forgotten Server 1.3, Versão: 12.1 (OTSERVBR-GLOBAL)

 

Qual é a sua pergunta?

Primeiramente, bom dia! E gostaria de parabeniza-los pelo projeto que vocês instalaram neste forum referente ao projeto otservbr-global, nota 10!

Gostaria de solicitar ajuda do fórum, pois estou tentando implementar o autoloot na source, e que ao meu ver não tem muito detalhe, trata-se de um script mais básico, acredito eu, contudo, quando vou compilar recebo erros no console:

In file included from /home/server/src/game.h:32:0,
from /home/server/src/actions.cpp:28:
/home/server/src/player.h:1466:8: error: set in namespace std does not name a template type
std::set<uint32_t> autoLootList;
^~~
/home/server/src/actions.cpp: In member function ReturnValue Actions::internalUseItem(Player*, const Position&, uint8_t, Item*, bool)’:
/home/server/src/actions.cpp:419:55: error: class Player has no member named autoLootList
if (player->canOpenCorpse(corpseOwner) && player->autoLootList.size() != 0) {

O passo a passo que estou seguindo, não sei se posso postar aqui, mas é do ************, "Auto Loot Sytem for TFS 1.3 + revscripts", postado recentemente lá no forum mencionado. Se for o caso, e não houver problemas, eu posto link aqui.

Você tem o código disponível? Se tiver poste-o na caixa de código que está dentro do spoiler abaixo:

Spoiler


 

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, anexe-a dentro do spoiler abaixo:

Spoiler

 

Se puderem me ajudar, agradeço imensamente, não sou expert em programação, por isso estou pedindo ajuda do forum, obg!

Compartilhar este post


Link para o post
Compartilhar em outros sites

5 respostass a esta questão

Recommended Posts

  • 1
Majesty    1755
Majesty

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
heitor1    0
heitor1
10 horas atrás, Majesty disse:

Majesty, estou quase lá, rs! foi de grande ajuda. Contudo, estou tentando adicionar as linhas do container.lua que fica na lib, e ai quando eu coloco as linhas do link buga todo as funções e no console chove erros sem parar, buga tudo... praticamente só falta isso, o que você sugere?

Spoiler

Lua Script Error: [Event Interface]
data/events/scripts/monster.lua:Monster@onDropLoot
data/events/scripts/monster.lua:20: attempt to compare boolean with number
stack traceback:
        [C]: in function '__lt'
        data/events/scripts/monster.lua:20: in function <data/events/scripts/monster.lua:1>

Lua Script Error: [Event Interface]
data/events/scripts/monster.lua:Monster@onDropLoot
data/events/scripts/monster.lua:20: attempt to compare boolean with number
stack traceback:
        [C]: in function '__lt'
        data/events/scripts/monster.lua:20: in function <data/events/scripts/monster.lua:1>

Lua Script Error: [Event Interface]
data/events/scripts/monster.lua:Monster@onDropLoot
data/events/scripts/monster.lua:20: attempt to compare boolean with number
stack traceback:
        [C]: in function '__lt'
        data/events/scripts/monster.lua:20: in function <data/events/scripts/monster.lua:1>

 

Como eu não consegui adicionar as linhas no container.lua, acredito que seja por isso que o monster deu erro? pois in-game eu entro, configuro, por exemplo, para pegar gold, dai apresentou este erro no console.

Só que como eu disse acima, no container.lua, se eu adiciono as linhas, parece que todos movements e quests bugam, e o console enche de erro...

Spoiler

function Container.isContainer(self)
	return true
end

--[[
	return values for autoloot
	0 = Did not drop the item. No error
	-1 = For some reason, the item can not be created.
	> 0 = UID
]]

function Container.createLootItem(self, item)
	if self:getEmptySlots() == 0 then
		return 0
		return true
	end

	local itemCount = 0
	local randvalue = getLootRandom()
	if randvalue < item.chance then
		if ItemType(item.itemId):isStackable() then
			itemCount = randvalue % item.maxCount + 1
		else
			itemCount = 1
		end
	end
	
		local tmpItem = false
		if itemCount > 0 then
		local tmpItem = self:addItem(item.itemId, math.min(itemCount, 100))
		if not tmpItem then
			return -1
			return false
		end

		if tmpItem:isContainer() then
			for i = 1, #item.childLoot do
				if not tmpItem:createLootItem(item.childLoot[i]) then
					tmpItem:remove()
					return -1
					return false
				end
			end
		end

		if item.subType ~= -1 then
			tmpItem:setAttribute(ITEM_ATTRIBUTE_CHARGES, item.subType)
		end

		if item.actionId ~= -1 then
			tmpItem:setActionId(item.actionId)
		end

		if item.text and item.text ~= "" then
			tmpItem:setText(item.text)
		end
	end
	
	return tmpItem and tmpItem.uid or 0
	return true
end

 

essa é minha container quando eu atualizo com as linhas do link...

 

Desculpa eu enviar essas mensagens, mas conforme vou vendo o erro eu estou tentando repassar para você para que deixe de forma mais clara...

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
Majesty    1755
Majesty

No repositório o que foi removido está em vermelho e o que foi adicionado/modificado está em verde. Então, para adicionar de novo você modifica o que está em verde e coloca o que está em vermelho.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
heitor1    0
heitor1

Então, eu coloquei, as linhas vermelhas conforme você disse, mas tipo, quando rodo in-game, ele não puxa o item e enche o console de erros, como se eu tivesse add algo errado sabe... buga tudo...

- Edit

Agora entendi... vou seguir conforme vc disse!

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
heitor1    0
heitor1

Cara, agradeço imensamente o seu apoio, deu tudo certo, se precisar de algo me contate, forte abraço e fica com Deus! 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×