Postado Novembro 6, 2023 1 ano Autor Em 06/11/2023 em 19:56, GM Vortex disse: registrou no login.lua? Sim !
Postado Novembro 6, 2023 1 ano function onKill(player, target) if isMonster(target) then local bossName = getCreatureName(target) print("Nome do Boss: " .. bossName) if bossName == "Boss Hits" then local chanceToDropItem = math.random(1, 100) print("Chance de drop: " .. chanceToDropItem) if chanceToDropItem <= 50 then local itemsToDrop = { 1234, 5678, 91011 } local randomItemID = itemsToDrop[math.random(1, #itemsToDrop)] local newItem = doCreateItem(randomItemID, 1) if newItem then doPlayerAddItem(player, newItem) doSendMagicEffect(getCreaturePosition(player), CONST_ME_MAGIC_RED) doPlayerSendTextMessage(player, MESSAGE_EVENT_DEFAULT, "Você recebeu um item raro como recompensa por derrotar o Boss!") print("Item dropado: " .. randomItemID) end else doPlayerSendTextMessage(player, MESSAGE_EVENT_DEFAULT, "Você não recebeu nenhum item como recompensa por derrotar o Boss.") end else print("Boss não encontrado no banco de dados ou não é 'Boss Hits'.") end end end Tirei a função isPlayer, mantendo apenas isMonster. Também adicionei um print para fins de depuração e ele será enviado para o seu console. Assim, será possível identificar onde está o erro. Isso ajudará a entender, e poderei corrigi-lo na próxima etapa. Por favor, faça o teste e me envie o console. O que for indicado no print sobre se foi encontrado ou não, etc
Postado Novembro 6, 2023 1 ano Autor Em 06/11/2023 em 20:00, GM Vortex disse: function onKill(player, target) if isMonster(target) then local bossName = getCreatureName(target) print("Nome do Boss: " .. bossName) if bossName == "Boss Hits" then local chanceToDropItem = math.random(1, 100) print("Chance de drop: " .. chanceToDropItem) if chanceToDropItem <= 50 then local itemsToDrop = { 1234, 5678, 91011 } local randomItemID = itemsToDrop[math.random(1, #itemsToDrop)] local newItem = doCreateItem(randomItemID, 1) if newItem then doPlayerAddItem(player, newItem) doSendMagicEffect(getCreaturePosition(player), CONST_ME_MAGIC_RED) doPlayerSendTextMessage(player, MESSAGE_EVENT_DEFAULT, "Você recebeu um item raro como recompensa por derrotar o Boss!") print("Item dropado: " .. randomItemID) end else doPlayerSendTextMessage(player, MESSAGE_EVENT_DEFAULT, "Você não recebeu nenhum item como recompensa por derrotar o Boss.") end else print("Boss não encontrado no banco de dados ou não é 'Boss Hits'.") end end end Tirei a função isPlayer, mantendo apenas isMonster. Também adicionei um print para fins de depuração e ele será enviado para o seu console. Assim, será possível identificar onde está o erro. Isso ajudará a entender, e poderei corrigi-lo na próxima etapa. Por favor, faça o teste e me envie o console. O que for indicado no print sobre se foi encontrado ou não, etc n morre e ficou isso no console sem parar... Em 06/11/2023 em 20:05, Doidodepeda disse: n morre e ficou isso no console sem parar... Irmão, n querendo encomodar... mas se tu souber bolar um script que funfe no 0.4, eu so faço questo do script entregar 1 item e com % tipo... matou o boss ganha 1 item [item] 8300 - [porcentagem] 10% de vim esse item [item] 8301 - [porcentagem] 20% de vim esse item [item] 8302 - [porcentagem] 30% de vim esse item [item] 8303 - [porcentagem] 40% de vim esse item Editado Novembro 6, 2023 1 ano por Doidodepeda (veja o histórico de edições)
Postado Novembro 6, 2023 1 ano local config = { NameBoss = "Boss Hits", rewardItem1 = {itemID = 8300, chance = 10}, -- 10% de chance de vim esse item rewardItem2 = {itemID = 8301, chance = 20}, -- 20% de chance de vim esse item rewardItem3 = {itemID = 8302, chance = 30}, -- 30% de chance de vim esse item rewardItem4 = {itemID = 8303, chance = 40}, -- 40% de chance de vim esse item effect = CONST_ME_MAGIC_RED } function onDeath(cid, corpse, deathList) local bossName = getCreatureName(cid) if bossName == config.NameBoss then local chanceToDropItem = math.random(1, 100) print("Chance de drop: " .. chanceToDropItem) local rewardItemID = nil if chanceToDropItem <= config.rewardItem1.chance then rewardItemID = config.rewardItem1.itemID elseif chanceToDropItem <= config.rewardItem1.chance + config.rewardItem2.chance then rewardItemID = config.rewardItem2.itemID elseif chanceToDropItem <= config.rewardItem1.chance + config.rewardItem2.chance + config.rewardItem3.chance then rewardItemID = config.rewardItem3.itemID elseif chanceToDropItem <= config.rewardItem1.chance + config.rewardItem2.chance + config.rewardItem3.chance + config.rewardItem4.chance then rewardItemID = config.rewardItem4.itemID end if rewardItemID then doPlayerAddItemEx(deathList[1], rewardItemID, 1) doSendMagicEffect(getCreaturePosition(deathList[1]), config.effect) doPlayerSendTextMessage(deathList[1], MESSAGE_EVENT_DEFAULT, "Você recebeu um item raro como recompensa por derrotar o Boss!") print("Item dropado: " .. rewardItemID) else doPlayerSendTextMessage(deathList[1], MESSAGE_EVENT_DEFAULT, "Você não recebeu nenhum item como recompensa por derrotar o Boss.") end end end Deve registrar no monstro. Procure por esta linha </monster> antes do final e adicione. Por exemplo, assim aqui <script> <event name="Boss Hits"/> </script> </monster> ou aqui funçao onKill.. local config = { NameBoss = "Boss Hits", rewardItem1 = {itemID = 8300, chance = 10}, -- 10% de chance de vim esse item rewardItem2 = {itemID = 8301, chance = 20}, -- 20% de chance de vim esse item rewardItem3 = {itemID = 8302, chance = 30}, -- 30% de chance de vim esse item rewardItem4 = {itemID = 8303, chance = 40}, -- 40% de chance de vim esse item effect = CONST_ME_MAGIC_RED } function onKill(cid, target) if isMonster(target) then local bossName = getCreatureName(target) print("Nome do Boss: " .. bossName) if bossName == config.NameBoss then local chanceToDropItem = math.random(1, 100) print("Chance de drop: " .. chanceToDropItem) local rewardItemID = nil if chanceToDropItem <= config.rewardItem1.chance then rewardItemID = config.rewardItem1.itemID elseif chanceToDropItem <= config.rewardItem1.chance + config.rewardItem2.chance then rewardItemID = config.rewardItem2.itemID elseif chanceToDropItem <= config.rewardItem1.chance + config.rewardItem2.chance + config.rewardItem3.chance then rewardItemID = config.rewardItem3.itemID elseif chanceToDropItem <= config.rewardItem1.chance + config.rewardItem2.chance + config.rewardItem3.chance + config.rewardItem4.chance then rewardItemID = config.rewardItem4.itemID end if rewardItemID then doPlayerAddItemEx(cid, rewardItemID, 1) doSendMagicEffect(getCreaturePosition(cid), config.effect) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você recebeu um item raro como recompensa por derrotar o Boss!") print("Item dropado: " .. rewardItemID) else doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você não recebeu nenhum item como recompensa por derrotar o Boss.") end else print("Boss não encontrado no banco de dados ou não é 'Boss Hits'.") end end end Editado Novembro 6, 2023 1 ano por GM Vortex (veja o histórico de edições)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.