Jump to content
Close
malucooo

11.x [WIP] OTXServer 10.00 - 12.0x Global Full + Dream Labyrinth, Haunted House Cellar, Haunted Temple, Haunted Tomb, Buried Cathedral, Winter Court, Summer Court and Carnivor'S Rock + Quests

Recommended Posts

2 horas atrás, calmax disse:

Como eu posso fazer correções no mapa do capernia e editar no github? Posso ajeitar a maioria dos bugs, mapas, npcs e montros!

dá um fork no repositorio dele e segue adiante



 

 

O melhor conteúdo da atualidade!

http://www.gitlab.com/malucooo/otxserver-global/

- Full Global Map with 12.xx updates, all quests and many features!

- Protocol 11.49

 

Nosso Grupo do Whatsapp para resolução de problemas:

https://chat.whatsapp.com/JtKmezKYrw5DEK5Zl9qvPw

 

Nosso Grupo do Discord para resolução de problemas:

https://discord.gg/YZEU3FC

Share this post


Link to post
Share on other sites
Em 24/06/2016 at 16:18, malucooo disse:

isso ai é o seguinte... vc não editou o config.lua configure a db certinho que ele funciona

estou correndo atrás disso tbm.. aqui funcionou uma vez e depois parou... =/

ganhei esse mapa de um venezuelano.. uso o item otb do capernia e funciona normal.. testei com do mitsuig funcionou tbm, testei com do Absolute tbm funcionou, testei com do Hirako e Maya tbm funcionou, testei com do Thexamx pegou tbm... qualquer otb acima de 10.91 abre o mapa todo

meu deus cara, vc é demente, como um mapa do 10.94 vai rodar no 10.91 ? 

mas deixe, melhor eu parar de perder meu tempo ;) até logo amigo 



Se Ajudei Rep+ pra mim ^^

tumblr_lyd1xtGgx81qf9l6uo1_500.gif

Share this post


Link to post
Share on other sites

Nao consigo compilar também... o comando make nao faz nada. Usando o TFS no mesmo servidor funciona normal. Alguma ideia?


Share this post


Link to post
Share on other sites

Alguem sabe dizer se esse servidor tem crashs ?! @malucooo Você acha que da pra por o teu servidor online ou tem muitos bugs nele ?! Obrigado.

11 horas atrás, botbot disse:

Nao consigo compilar também... o comando make nao faz nada. Usando o TFS no mesmo servidor funciona normal. Alguma ideia?

Basta criar um arquivo chamado: CMakeLists.txt na pasta "Sources" e colocar isso dentro:

 

cmake_minimum_required(VERSION 2.8)

set(CMAKE_DISABLE_SOURCE_CHANGES ON)
set(CMAKE_DISABLE_IN_SOURCE_BUILD ON)

project(tfs)

set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})

include(cotire)

# Initialize CXXFLAGS.
set(CMAKE_CXX_FLAGS                "-Wall -Werror -pipe")
set(CMAKE_CXX_FLAGS_DEBUG          "-O0 -g")
set(CMAKE_CXX_FLAGS_MINSIZEREL     "-Os -DNDEBUG")
set(CMAKE_CXX_FLAGS_RELEASE        "-Ofast -march=native -DNDEBUG")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g")

if (CMAKE_COMPILER_IS_GNUCXX)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing")
endif()

include(FindCXX11)

# Find packages.
find_package(GMP REQUIRED)
find_package(PugiXML REQUIRED)
find_package(LuaJIT)
find_package(MySQL)
find_package(Threads)

option(USE_LUAJIT "Use LuaJIT" ${LUAJIT_FOUND})

if(USE_LUAJIT)
    find_package(LuaJIT REQUIRED)
    if(APPLE)
      set(CMAKE_EXE_LINKER_FLAGS "-pagezero_size 10000 -image_base 100000000")
    endif()
else()
    find_package(Lua)
endif()

find_package(Boost 1.53.0 COMPONENTS system REQUIRED)

include(src/CMakeLists.txt)
add_executable(tfs ${tfs_SRC})

include_directories(${MYSQL_INCLUDE_DIR} ${LUA_INCLUDE_DIR} ${Boost_INCLUDE_DIRS} ${PUGIXML_INCLUDE_DIR} ${GMP_INCLUDE_DIR})
target_link_libraries(tfs ${MYSQL_CLIENT_LIBS} ${LUA_LIBRARIES} ${Boost_LIBRARIES} ${PUGIXML_LIBRARIES} ${GMP_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})

set_target_properties(tfs PROPERTIES COTIRE_CXX_PREFIX_HEADER_INIT "src/otpch.h")
set_target_properties(tfs PROPERTIES COTIRE_ADD_UNITY_BUILD FALSE)
cotire(tfs)

 


Edited by hbo123 (see edit history)

Share this post


Link to post
Share on other sites
17 horas atrás, Schiffert disse:

meu deus cara, vc é demente, como um mapa do 10.94 vai rodar no 10.91 ? 

mas deixe, melhor eu parar de perder meu tempo ;) até logo amigo 

não existe o items.otb 10.94 oficial jovem criatura de inteligencia suprema... leia, aprenda, tenha certeza do que está falando, e depois vc expoe suas opniões, que até então não serve de nada... pois vc não contribuiu em nada aqui, infelizmente vc é mais um vampiro aqui... analfabeto funcional ^^



 

 

O melhor conteúdo da atualidade!

http://www.gitlab.com/malucooo/otxserver-global/

- Full Global Map with 12.xx updates, all quests and many features!

- Protocol 11.49

 

Nosso Grupo do Whatsapp para resolução de problemas:

https://chat.whatsapp.com/JtKmezKYrw5DEK5Zl9qvPw

 

Nosso Grupo do Discord para resolução de problemas:

https://discord.gg/YZEU3FC

Share this post


Link to post
Share on other sites
22 horas atrás, Cheka disse:

debug shop

fala ai man... qual debug deu? explica melhor que podemos sanar seu problema =]~

Agora, zydent disse:

Muito obrigado!   não tem War System?

war system para ativar tem que ser via npc ou http... ta incluso nas sources, mas precisa ser acionada de alguma forma... ou ainda via comando Ex.: !war

tem que ser compelmentado por vc... caso tenha scripts de outros servidores tente usar e reporte caso haja algum bug



 

 

O melhor conteúdo da atualidade!

http://www.gitlab.com/malucooo/otxserver-global/

- Full Global Map with 12.xx updates, all quests and many features!

- Protocol 11.49

 

Nosso Grupo do Whatsapp para resolução de problemas:

https://chat.whatsapp.com/JtKmezKYrw5DEK5Zl9qvPw

 

Nosso Grupo do Discord para resolução de problemas:

https://discord.gg/YZEU3FC

Share this post


Link to post
Share on other sites

Se precisar de ajuda pra comprar um vps pra por um global on, dá um toque.

 

ou quiser melhorar o servidor .. manda pm,

 

abç



 http://baiakuza.com/
IP: baiakuza.com
TIBIA: 10.96
Baiak Custom [ High Exp Rate ]

 

 

 

 

Share this post


Link to post
Share on other sites

Skydangerous preciso e um help amigo... consegue me adicionar no whts ou face?? nao estou conseguind abrir o server... tpw exportei database tudo certinho,.. chega na hora de instalar os 5 passos nunca funciona pois fala q tenho q arrumar tal linha do last news? 


Share this post


Link to post
Share on other sites
23 horas atrás, malucooo disse:

não existe o items.otb 10.94 oficial jovem criatura de inteligencia suprema... leia, aprenda, tenha certeza do que está falando, e depois vc expoe suas opniões, que até então não serve de nada... pois vc não contribuiu em nada aqui, infelizmente vc é mais um vampiro aqui... analfabeto funcional ^^

cara, na real, vai se f*** :) vc nem sabia do que eu estava falando, como que tu vai rodar mapas do 10.94 que tu diz ter nesse mapa com otb 10.91 ? se os items do otherworld foram adicionados no 10.94, sem otb, sem mapa, entenda :/ depois vem falar pra mim estudar (tenso demais), cara, vc me chama de vampiro, mas quem será que vai no otland e pega todo conteúdo postado lá ? quem que fodeu o projeto de open source do Slavi Dodo ? daí tu vai lá e se gaba que tem solução pro bug do expert pvp do slavi, o que tu tem é mera gambiarra que arrumaram pra vc, pq vc não sabe programar, se tu quiser eu tiro print de todos os seus posts pedindo suporte no otland ;) mas não vou perder mais meu tempo...

 

 

att, Schiffers

Abraço 



Se Ajudei Rep+ pra mim ^^

tumblr_lyd1xtGgx81qf9l6uo1_500.gif

Share this post


Link to post
Share on other sites
1 hora atrás, Schiffert disse:

cara, na real, vai se f*** :) vc nem sabia do que eu estava falando, como que tu vai rodar mapas do 10.94 que tu diz ter nesse mapa com otb 10.91 ? se os items do otherworld foram adicionados no 10.94, sem otb, sem mapa, entenda :/ depois vem falar pra mim estudar (tenso demais), cara, vc me chama de vampiro, mas quem será que vai no otland e pega todo conteúdo postado lá ? quem que fodeu o projeto de open source do Slavi Dodo ? daí tu vai lá e se gaba que tem solução pro bug do expert pvp do slavi, o que tu tem é mera gambiarra que arrumaram pra vc, pq vc não sabe programar, se tu quiser eu tiro print de todos os seus posts pedindo suporte no otland ;) mas não vou perder mais meu tempo...

 

 

att, Schiffers

Abraço 

procura uma distro igual... projeto open source = codigo aberto = publico... o  projeto mais parecido com o que tenho aqui é do OTX.. e momento algum eu disse que sabia de tudo... pedi e peço informações as pessoas, bem melhor do que as xingar ou subestimar... sei que na humildade que venho tendo, tem um monte de br usando a distro... uns gringos tbm... fechei projetos que serviam para venda de scripts e por ai vou indo... incomodando a quem tava querendo ganhar grana facil... ah e pra vc que ta precisando de OTB ai vai o 10.95 https://github.com/thexamx/Real-Tibia-Datapack/tree/item.otb-10.95

não é oficial use por conta e risco... tudo que for publico eu vou divulgar por aqui, quem num guentar que feche as portas!

 

 

Aos amigos que estavam com bug do guild id 0, Atualizem o php para 5.6+ e aos que estão com bug no reward system, que só funcionava em boss sumonado aqui vai a correção, apartir daí os bosses que tem a flag rewardboss = 1 funcionarão  corretamente....

 

vai na pasta do otserv data/creaturescripts/scripts/others/boss.lua apaga tudo e coloca isso ai

function onCreatureAppear(self, creature)
    if self == creature then
        if self:getType():isRewardBoss() then
            self:setReward(true)
        end
    end
end
local function pushSeparated(buffer, sep, ...)
	local argv = {...}
	local argc = #argv
	for k, v in ipairs(argv) do
		table.insert(buffer, v)
		if k < argc and sep then
			table.insert(buffer, sep)
		end
	end
end

local function insertItems(buffer, info, parent, items)
	local start = info.running
	for _, item in ipairs(items) do
		if _ ~= 1 or parent > 100 then
			table.insert(buffer, ",")
		end

		info.running = info.running + 1
		table.insert(buffer, "(")        
		pushSeparated(buffer, ",", info.playerGuid, parent, info.running, item:getId(), item:getSubType(), db.escapeBlob(item:serializeAttributes()))
		table.insert(buffer, ")")

		if item:isContainer() then
			local size = item:getSize()
			if size > 0 then              
				local subItems = {}
				for i = 1, size do
					table.insert(subItems, item:getItem(i - 1))
				end

				insertItems(buffer, info, info.running, subItems)
			end
		end
	end
	return info.running - start
end

local function insertRewardItems(playerGuid, timestamp, itemList)
	db.asyncStoreQuery('SELECT `pid`, `sid` FROM `player_rewards` WHERE player_id = ' .. playerGuid .. ' ORDER BY `sid` ASC;', 
		function(query)
			local lastReward = 0
			local lastStoreId   
			if query then             
				repeat
					local sid = result.getDataInt(query, 'sid')
					local pid = result.getDataInt(query, 'pid')

					if pid < 100 then
						lastReward = pid
					end
					lastStoreId = sid
				until not result.next(query)
			end

			local buffer = {'INSERT INTO `player_rewards` (`player_id`, `pid`, `sid`, `itemtype`, `count`, `attributes`) VALUES'}

			--reward bag
			local info = {
				playerGuid = playerGuid,
				running = lastStoreId or 100
			}

			local bag = Game.createItem(ITEM_REWARD_CONTAINER)
			bag:setAttribute(ITEM_ATTRIBUTE_DATE, timestamp)

			if itemList then
				for _, item in ipairs(itemList) do
					bag:addItem(item[1], item[2])
				end
			end

			local total = insertItems(buffer, info, lastReward + 1, {bag})
			table.insert(buffer, ";")

			if total ~= 0 then
				db.query(table.concat(buffer))
			end
		end
	)
end

local function getPlayerStats(bossId, playerGuid, autocreate)
	local ret = globalBosses[bossId][playerGuid]
	if not ret and autocreate then
		ret = {
			bossId = bossId, 
			damageIn = 0, -- damage taken from the boss
			healing = 0, -- healing (other players) done
		}
		globalBosses[bossId][playerGuid] = ret
		return ret
	end
	return ret
end

function onDeath(creature, corpse, killer, mostDamageKiller, lastHitUnjustified, mostDamageUnjustified)
	local monsterType = creature:getType()
	if monsterType:isRewardBoss() then -- Make sure it is a boss
		local bossId = creature:getId()
		local timestamp = os.time()

		local totalDamageOut, totalDamageIn, totalHealing = 0.1, 0.1, 0.1 -- avoid dividing by zero

		local scores = {}
		local info = globalBosses[bossId]
		local damageMap = creature:getDamageMap()

		for guid, stats in pairs(info) do
			local player = Player(stats.playerId)
			local part = damageMap[stats.playerId]
			local damageOut, damageIn, healing = (stats.damageOut or 0) + (part and part.total or 0), stats.damageIn or 0, stats.healing or 0

			totalDamageOut = totalDamageOut + damageOut
			totalDamageIn = totalDamageIn + damageIn
			totalHealing = totalHealing + healing

			table.insert(scores, {
				player = player, 
				guid = guid,
				damageOut = damageOut, 
				damageIn = damageIn,
				healing = healing,
			})            
		end

		local participants = 0
		for _, con in ipairs(scores) do
			local score = (con.damageOut / totalDamageOut) + (con.damageIn / totalDamageIn) + (con.healing / totalHealing)
			con.score = score / 3 -- normalize to 0-1
			if score ~= 0 then
				participants = participants + 1
			end
		end
		table.sort(scores, function(a, b) return a.score > b.score end)

		local expectedScore = 1 / participants

		for _, con in ipairs(scores) do
			local reward, stamina -- ignoring stamina for now because I heard you receive rewards even when it's depleted   
			if con.player then   
				reward = con.player:getReward(timestamp, true)
				stamina = con.player:getStamina()
			else
				stamina = con.stamina or 0
			end

			local playerLoot
			if --[[stamina > 840 and]] con.score ~= 0 then
				local lootFactor = 1
				lootFactor = lootFactor / participants ^ (1 / 3) -- tone down the loot a notch if there are many participants
				lootFactor = lootFactor * (1 + lootFactor) ^ (con.score / expectedScore) -- increase the loot multiplicatively by how many times the player surpassed the expected score
				playerLoot = monsterType:getBossReward(lootFactor, _ == 1)

				if con.player then
					for _, p in ipairs(playerLoot) do
						reward:addItem(p[1], p[2])
					end
				end
			end

			if con.player then
				local lootMessage = {"The following items are available in your reward chest: "}

				if --[[stamina > 840]]true then
					reward:getContentDescription(lootMessage)
				else
					table.insert(lootMessage, 'nothing (due to low stamina)')
				end
				table.insert(lootMessage, ".")
				con.player:sendTextMessage(MESSAGE_EVENT_ADVANCE, table.concat(lootMessage))
			else
				insertRewardItems(con.guid, timestamp, playerLoot)
			end
		end

		globalBosses[bossId] = nil
	end
	return true
end

function onThink(creature, interval)
	local bossId = creature:getId()
	local info = globalBosses[bossId]
	-- Reset all players' status
	for _, player in pairs(info) do
		player.active = false
	end
	
	-- Set all players in boss' target list as active in the fight
	local targets = creature:getTargetList()
	for _, target in ipairs(targets) do
		if target:isPlayer() then
			local stats = getPlayerStats(bossId, target:getGuid(), true)
			stats.playerId = target:getId() -- Update player id
			stats.active = true            
		end
	end
end

function onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin)
	if not next(globalBosses) then
		return primaryDamage, primaryType, secondaryDamage, secondaryType
	end

	if not creature or not attacker then
		return primaryDamage, primaryType, secondaryDamage, secondaryType
	end

	local stats = creature:inBossFight()
	if not stats then
		return primaryDamage, primaryType, secondaryDamage, secondaryType
	end

	local creatureId, attackerId = creature:getId(), attacker:getId()
	stats.playerId = creatureId -- Update player id

	-- Account for healing of others active in the boss fight
	if primaryType == COMBAT_HEALING and attacker:isPlayer() and attackerId ~= creatureId then
		local healerStats = getPlayerStats(stats.bossId, attacker:getGuid(), true)
		healerStats.active = true
		healerStats.playerId = attackerId -- Update player id
		healerStats.healing = healerStats.healing + primaryDamage
	elseif stats.bossId == attackerId then
		-- Account for damage taken from the boss
		stats.damageIn = stats.damageIn + primaryDamage
	end
	return primaryDamage, primaryType, secondaryDamage, secondaryType
end

 


Edited by malucooo (see edit history)

 

 

O melhor conteúdo da atualidade!

http://www.gitlab.com/malucooo/otxserver-global/

- Full Global Map with 12.xx updates, all quests and many features!

- Protocol 11.49

 

Nosso Grupo do Whatsapp para resolução de problemas:

https://chat.whatsapp.com/JtKmezKYrw5DEK5Zl9qvPw

 

Nosso Grupo do Discord para resolução de problemas:

https://discord.gg/YZEU3FC

Share this post


Link to post
Share on other sites
26 minutes ago, malucooo said:

procura uma distro igual... projeto open source = codigo aberto = publico... o  projeto mais parecido com o que tenho aqui é do OTX.. e momento algum eu disse que sabia de tudo... pedi e peço informações as pessoas, bem melhor do que as xingar ou subestimar... sei que na humildade que venho tendo, tem um monte de br usando a distro... uns gringos tbm... fechei projetos que serviam para venda de scripts e por ai vou indo... incomodando a quem tava querendo ganhar grana facil... ah e pra vc que ta precisando de OTB ai vai o 10.95 https://github.com/thexamx/Real-Tibia-Datapack/tree/item.otb-10.95

não é oficial use por conta e risco... tudo que for publico eu vou divulgar por aqui, quem num guentar que feche as portas!

 

 

Aos amigos que estavam com bug do guild id 0, Atualizem o php para 5.6+ e aos que estão com bug no reward system, que só funcionava em boss sumonado aqui vai a correção, apartir daí os bosses que tem a flag rewardboss = 1 funcionarão  corretamente....

 

vai na pasta do otserv data/creaturescripts/scripts/others/boss.lua apaga tudo e coloca isso ai


function onCreatureAppear(self, creature)
    if self == creature then
        if self:getType():isRewardBoss() then
            self:setReward(true)
        end
    end
end
local function pushSeparated(buffer, sep, ...)
	local argv = {...}
	local argc = #argv
	for k, v in ipairs(argv) do
		table.insert(buffer, v)
		if k < argc and sep then
			table.insert(buffer, sep)
		end
	end
end

local function insertItems(buffer, info, parent, items)
	local start = info.running
	for _, item in ipairs(items) do
		if _ ~= 1 or parent > 100 then
			table.insert(buffer, ",")
		end

		info.running = info.running + 1
		table.insert(buffer, "(")        
		pushSeparated(buffer, ",", info.playerGuid, parent, info.running, item:getId(), item:getSubType(), db.escapeBlob(item:serializeAttributes()))
		table.insert(buffer, ")")

		if item:isContainer() then
			local size = item:getSize()
			if size > 0 then              
				local subItems = {}
				for i = 1, size do
					table.insert(subItems, item:getItem(i - 1))
				end

				insertItems(buffer, info, info.running, subItems)
			end
		end
	end
	return info.running - start
end

local function insertRewardItems(playerGuid, timestamp, itemList)
	db.asyncStoreQuery('SELECT `pid`, `sid` FROM `player_rewards` WHERE player_id = ' .. playerGuid .. ' ORDER BY `sid` ASC;', 
		function(query)
			local lastReward = 0
			local lastStoreId   
			if query then             
				repeat
					local sid = result.getDataInt(query, 'sid')
					local pid = result.getDataInt(query, 'pid')

					if pid < 100 then
						lastReward = pid
					end
					lastStoreId = sid
				until not result.next(query)
			end

			local buffer = {'INSERT INTO `player_rewards` (`player_id`, `pid`, `sid`, `itemtype`, `count`, `attributes`) VALUES'}

			--reward bag
			local info = {
				playerGuid = playerGuid,
				running = lastStoreId or 100
			}

			local bag = Game.createItem(ITEM_REWARD_CONTAINER)
			bag:setAttribute(ITEM_ATTRIBUTE_DATE, timestamp)

			if itemList then
				for _, item in ipairs(itemList) do
					bag:addItem(item[1], item[2])
				end
			end

			local total = insertItems(buffer, info, lastReward + 1, {bag})
			table.insert(buffer, ";")

			if total ~= 0 then
				db.query(table.concat(buffer))
			end
		end
	)
end

local function getPlayerStats(bossId, playerGuid, autocreate)
	local ret = globalBosses[bossId][playerGuid]
	if not ret and autocreate then
		ret = {
			bossId = bossId, 
			damageIn = 0, -- damage taken from the boss
			healing = 0, -- healing (other players) done
		}
		globalBosses[bossId][playerGuid] = ret
		return ret
	end
	return ret
end

function onDeath(creature, corpse, killer, mostDamageKiller, lastHitUnjustified, mostDamageUnjustified)
	local monsterType = creature:getType()
	if monsterType:isRewardBoss() then -- Make sure it is a boss
		local bossId = creature:getId()
		local timestamp = os.time()

		local totalDamageOut, totalDamageIn, totalHealing = 0.1, 0.1, 0.1 -- avoid dividing by zero

		local scores = {}
		local info = globalBosses[bossId]
		local damageMap = creature:getDamageMap()

		for guid, stats in pairs(info) do
			local player = Player(stats.playerId)
			local part = damageMap[stats.playerId]
			local damageOut, damageIn, healing = (stats.damageOut or 0) + (part and part.total or 0), stats.damageIn or 0, stats.healing or 0

			totalDamageOut = totalDamageOut + damageOut
			totalDamageIn = totalDamageIn + damageIn
			totalHealing = totalHealing + healing

			table.insert(scores, {
				player = player, 
				guid = guid,
				damageOut = damageOut, 
				damageIn = damageIn,
				healing = healing,
			})            
		end

		local participants = 0
		for _, con in ipairs(scores) do
			local score = (con.damageOut / totalDamageOut) + (con.damageIn / totalDamageIn) + (con.healing / totalHealing)
			con.score = score / 3 -- normalize to 0-1
			if score ~= 0 then
				participants = participants + 1
			end
		end
		table.sort(scores, function(a, b) return a.score > b.score end)

		local expectedScore = 1 / participants

		for _, con in ipairs(scores) do
			local reward, stamina -- ignoring stamina for now because I heard you receive rewards even when it's depleted   
			if con.player then   
				reward = con.player:getReward(timestamp, true)
				stamina = con.player:getStamina()
			else
				stamina = con.stamina or 0
			end

			local playerLoot
			if --[[stamina > 840 and]] con.score ~= 0 then
				local lootFactor = 1
				lootFactor = lootFactor / participants ^ (1 / 3) -- tone down the loot a notch if there are many participants
				lootFactor = lootFactor * (1 + lootFactor) ^ (con.score / expectedScore) -- increase the loot multiplicatively by how many times the player surpassed the expected score
				playerLoot = monsterType:getBossReward(lootFactor, _ == 1)

				if con.player then
					for _, p in ipairs(playerLoot) do
						reward:addItem(p[1], p[2])
					end
				end
			end

			if con.player then
				local lootMessage = {"The following items are available in your reward chest: "}

				if --[[stamina > 840]]true then
					reward:getContentDescription(lootMessage)
				else
					table.insert(lootMessage, 'nothing (due to low stamina)')
				end
				table.insert(lootMessage, ".")
				con.player:sendTextMessage(MESSAGE_EVENT_ADVANCE, table.concat(lootMessage))
			else
				insertRewardItems(con.guid, timestamp, playerLoot)
			end
		end

		globalBosses[bossId] = nil
	end
	return true
end

function onThink(creature, interval)
	local bossId = creature:getId()
	local info = globalBosses[bossId]
	-- Reset all players' status
	for _, player in pairs(info) do
		player.active = false
	end
	
	-- Set all players in boss' target list as active in the fight
	local targets = creature:getTargetList()
	for _, target in ipairs(targets) do
		if target:isPlayer() then
			local stats = getPlayerStats(bossId, target:getGuid(), true)
			stats.playerId = target:getId() -- Update player id
			stats.active = true            
		end
	end
end

function onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin)
	if not next(globalBosses) then
		return primaryDamage, primaryType, secondaryDamage, secondaryType
	end

	if not creature or not attacker then
		return primaryDamage, primaryType, secondaryDamage, secondaryType
	end

	local stats = creature:inBossFight()
	if not stats then
		return primaryDamage, primaryType, secondaryDamage, secondaryType
	end

	local creatureId, attackerId = creature:getId(), attacker:getId()
	stats.playerId = creatureId -- Update player id

	-- Account for healing of others active in the boss fight
	if primaryType == COMBAT_HEALING and attacker:isPlayer() and attackerId ~= creatureId then
		local healerStats = getPlayerStats(stats.bossId, attacker:getGuid(), true)
		healerStats.active = true
		healerStats.playerId = attackerId -- Update player id
		healerStats.healing = healerStats.healing + primaryDamage
	elseif stats.bossId == attackerId then
		-- Account for damage taken from the boss
		stats.damageIn = stats.damageIn + primaryDamage
	end
	return primaryDamage, primaryType, secondaryDamage, secondaryType
end

 

 

It does not work when I use the command "/raid" and monsters created at the server start of "Jaul"


Share this post


Link to post
Share on other sites
39 minutos atrás, cys9211 disse:

 

It does not work when I use the command "/raid" and monsters created at the server start of "Jaul"

 

 

in the archive of monster, put  script="boss.lua" after manacost = "0"   ex.: manacost="0" script="boss.lua">



 

 

O melhor conteúdo da atualidade!

http://www.gitlab.com/malucooo/otxserver-global/

- Full Global Map with 12.xx updates, all quests and many features!

- Protocol 11.49

 

Nosso Grupo do Whatsapp para resolução de problemas:

https://chat.whatsapp.com/JtKmezKYrw5DEK5Zl9qvPw

 

Nosso Grupo do Discord para resolução de problemas:

https://discord.gg/YZEU3FC

Share this post


Link to post
Share on other sites

posso ajudar na criação dos npc e monstros que por ventura estiverem faltando qualquer coisa da um toque servidor muito bom.

qualquer coisa add skype Tiodarsa grande abraço e continua atualizando, também sou contra venda de OTserv e conteúdo assim são muito bem vindos


Share this post


Link to post
Share on other sites

@malucooo

Como faz para carregar as imagens do store? aqui compilou tudo certinho, mas as imagens não carregam no store. Abraço!


Share this post


Link to post
Share on other sites

Excelente bro, testeado y funcionando, pero no funciona eso de las imagenes en la store, cambie el nombre de la carpeta a 64 y nada :/


Share this post


Link to post
Share on other sites

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.


Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia partindo do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer publicidade para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução! A publicação do seu anuncio é instantânea!

×
×
  • Create New...