paulim78 3 Postado 1 de Novembro 2024 Compartilhar Postado 1 de Novembro 2024 Galera eu meio que pedi para o chatgpt um código sobre sistema de tiro ele fez deu certo em actions, o problema e que para funciona tem que fica dando use na arma bota ela no hotkey e tals, eu queria vê se tem como adapta no actions ou criar em outro canto para ele atira automático ou seja selecionou o alvo com a arma equipada ele funciona sem precisa dar use. Sei que o código pode está na pura gambiarra e tals vai fala que da para melhorar porem que gerou foi o chatgpt eu não sei programar kkk então para mim e assim se esta funcionando e o que vale, time que esta ganhando não se mexe kkkk, porem esse meu time ai precisa de algumas substituição kkk o codigo. local WEAPON_ID = 31159 -- ID da sua arma personalizada local AMMO_ID = 29564 -- ID da munição local MISSILE_EFFECT = 113 -- Efeito de míssil local DAMAGE_TYPE = COMBAT_PHYSICALDAMAGE -- Tipo de dano físico function onUse(player, item, fromPosition, target, toPosition, isHotkey) -- Verifica se a arma está equipada na mão direita ou esquerda local weaponInRightHand = player:getSlotItem(CONST_SLOT_RIGHT) local weaponInLeftHand = player:getSlotItem(CONST_SLOT_LEFT) -- Adiciona mensagens de depuração para verificar os itens equipados if weaponInRightHand then else end if weaponInLeftHand then else end -- Verificação correta do item equipado local isWeaponEquipped = false if weaponInRightHand and weaponInRightHand:getId() == WEAPON_ID then isWeaponEquipped = true elseif weaponInLeftHand and weaponInLeftHand:getId() == WEAPON_ID then isWeaponEquipped = true end -- Envia uma mensagem de erro se a arma não estiver equipada if not isWeaponEquipped then player:sendCancelMessage("Você precisa equipar a arma na sua mão para usá-la.") return false end -- Verifica se o alvo é um monstro if not target or not target:isMonster() then player:sendCancelMessage("Você só pode usar essa arma em monstros.") return false end -- Verifica se o jogador tem munição suficiente local ammoCount = player:getItemCount(AMMO_ID) if ammoCount <= 0 then player:sendCancelMessage("Você não tem munição suficiente.") return false end -- Remove a munição player:removeItem(AMMO_ID, 1) -- Cria o efeito do míssil local startPosition = player:getPosition() local endPosition = target:getPosition() startPosition:sendDistanceEffect(endPosition, MISSILE_EFFECT) -- Calcula o dano local ammoItem = ItemType(AMMO_ID) local minDamage = ammoItem:getAttack() -- O ataque mínimo da munição local maxDamage = minDamage * 2 -- Um exemplo, onde o dano máximo é o dobro do mínimo -- Aplica o dano ao monstro local damage = math.random(minDamage, maxDamage) target:addHealth(-damage) target:getPosition():sendMagicEffect(CONST_ME_HITAREA) -- Efeito de dano no monstro return true end Alguém de bom coração consegue me ajudar. Link para o comentário https://tibiadevs.com/forums/topic/703-altera%C3%A7%C3%A3o-de-onuse-para-automatico-sistema-de-tiro/ Compartilhar em outros sites Mais opções de compartilhamento...
Moderador Sollix 124 Postado 2 de Novembro 2024 Moderador Compartilhar Postado 2 de Novembro 2024 3 horas atrás, paulim78 disse: Galera eu meio que pedi para o chatgpt um código sobre sistema de tiro ele fez deu certo em actions, o problema e que para funciona tem que fica dando use na arma bota ela no hotkey e tals, eu queria vê se tem como adapta no actions ou criar em outro canto para ele atira automático ou seja selecionou o alvo com a arma equipada ele funciona sem precisa dar use. Sei que o código pode está na pura gambiarra e tals vai fala que da para melhorar porem que gerou foi o chatgpt eu não sei programar kkk então para mim e assim se esta funcionando e o que vale, time que esta ganhando não se mexe kkkk, porem esse meu time ai precisa de algumas substituição kkk o codigo. local WEAPON_ID = 31159 -- ID da sua arma personalizada local AMMO_ID = 29564 -- ID da munição local MISSILE_EFFECT = 113 -- Efeito de míssil local DAMAGE_TYPE = COMBAT_PHYSICALDAMAGE -- Tipo de dano físico function onUse(player, item, fromPosition, target, toPosition, isHotkey) -- Verifica se a arma está equipada na mão direita ou esquerda local weaponInRightHand = player:getSlotItem(CONST_SLOT_RIGHT) local weaponInLeftHand = player:getSlotItem(CONST_SLOT_LEFT) -- Adiciona mensagens de depuração para verificar os itens equipados if weaponInRightHand then else end if weaponInLeftHand then else end -- Verificação correta do item equipado local isWeaponEquipped = false if weaponInRightHand and weaponInRightHand:getId() == WEAPON_ID then isWeaponEquipped = true elseif weaponInLeftHand and weaponInLeftHand:getId() == WEAPON_ID then isWeaponEquipped = true end -- Envia uma mensagem de erro se a arma não estiver equipada if not isWeaponEquipped then player:sendCancelMessage("Você precisa equipar a arma na sua mão para usá-la.") return false end -- Verifica se o alvo é um monstro if not target or not target:isMonster() then player:sendCancelMessage("Você só pode usar essa arma em monstros.") return false end -- Verifica se o jogador tem munição suficiente local ammoCount = player:getItemCount(AMMO_ID) if ammoCount <= 0 then player:sendCancelMessage("Você não tem munição suficiente.") return false end -- Remove a munição player:removeItem(AMMO_ID, 1) -- Cria o efeito do míssil local startPosition = player:getPosition() local endPosition = target:getPosition() startPosition:sendDistanceEffect(endPosition, MISSILE_EFFECT) -- Calcula o dano local ammoItem = ItemType(AMMO_ID) local minDamage = ammoItem:getAttack() -- O ataque mínimo da munição local maxDamage = minDamage * 2 -- Um exemplo, onde o dano máximo é o dobro do mínimo -- Aplica o dano ao monstro local damage = math.random(minDamage, maxDamage) target:addHealth(-damage) target:getPosition():sendMagicEffect(CONST_ME_HITAREA) -- Efeito de dano no monstro return true end Alguém de bom coração consegue me ajudar. Tópico aprovado! Link para o comentário https://tibiadevs.com/forums/topic/703-altera%C3%A7%C3%A3o-de-onuse-para-automatico-sistema-de-tiro/#findComment-3678 Compartilhar em outros sites Mais opções de compartilhamento...
Ryohei 0 Postado 2 de Novembro 2024 Compartilhar Postado 2 de Novembro 2024 23 horas atrás, paulim78 disse: Galera eu meio que pedi para o chatgpt um código sobre sistema de tiro ele fez deu certo em actions, o problema e que para funciona tem que fica dando use na arma bota ela no hotkey e tals, eu queria vê se tem como adapta no actions ou criar em outro canto para ele atira automático ou seja selecionou o alvo com a arma equipada ele funciona sem precisa dar use. Sei que o código pode está na pura gambiarra e tals vai fala que da para melhorar porem que gerou foi o chatgpt eu não sei programar kkk então para mim e assim se esta funcionando e o que vale, time que esta ganhando não se mexe kkkk, porem esse meu time ai precisa de algumas substituição kkk o codigo. local WEAPON_ID = 31159 -- ID da sua arma personalizada local AMMO_ID = 29564 -- ID da munição local MISSILE_EFFECT = 113 -- Efeito de míssil local DAMAGE_TYPE = COMBAT_PHYSICALDAMAGE -- Tipo de dano físico function onUse(player, item, fromPosition, target, toPosition, isHotkey) -- Verifica se a arma está equipada na mão direita ou esquerda local weaponInRightHand = player:getSlotItem(CONST_SLOT_RIGHT) local weaponInLeftHand = player:getSlotItem(CONST_SLOT_LEFT) -- Adiciona mensagens de depuração para verificar os itens equipados if weaponInRightHand then else end if weaponInLeftHand then else end -- Verificação correta do item equipado local isWeaponEquipped = false if weaponInRightHand and weaponInRightHand:getId() == WEAPON_ID then isWeaponEquipped = true elseif weaponInLeftHand and weaponInLeftHand:getId() == WEAPON_ID then isWeaponEquipped = true end -- Envia uma mensagem de erro se a arma não estiver equipada if not isWeaponEquipped then player:sendCancelMessage("Você precisa equipar a arma na sua mão para usá-la.") return false end -- Verifica se o alvo é um monstro if not target or not target:isMonster() then player:sendCancelMessage("Você só pode usar essa arma em monstros.") return false end -- Verifica se o jogador tem munição suficiente local ammoCount = player:getItemCount(AMMO_ID) if ammoCount <= 0 then player:sendCancelMessage("Você não tem munição suficiente.") return false end -- Remove a munição player:removeItem(AMMO_ID, 1) -- Cria o efeito do míssil local startPosition = player:getPosition() local endPosition = target:getPosition() startPosition:sendDistanceEffect(endPosition, MISSILE_EFFECT) -- Calcula o dano local ammoItem = ItemType(AMMO_ID) local minDamage = ammoItem:getAttack() -- O ataque mínimo da munição local maxDamage = minDamage * 2 -- Um exemplo, onde o dano máximo é o dobro do mínimo -- Aplica o dano ao monstro local damage = math.random(minDamage, maxDamage) target:addHealth(-damage) target:getPosition():sendMagicEffect(CONST_ME_HITAREA) -- Efeito de dano no monstro return true end Alguém de bom coração consegue me ajudar. Pedi para o chat, fazer com que fique atirando até usar o item novamente ou acabar a munição: local WEAPON_ID = 31159 -- ID da sua arma personalizada local AMMO_ID = 29564 -- ID da munição local MISSILE_EFFECT = 113 -- Efeito de míssil local DAMAGE_TYPE = COMBAT_PHYSICALDAMAGE -- Tipo de dano físico local SHOOT_INTERVAL = 1000 -- Intervalo de disparo em milissegundos (1 segundo) local shooting = false -- Variável de controle para saber se está atirando local function shoot(player, target) -- Verifica se o alvo ainda é válido e se o jogador tem munição if not target or not target:isMonster() or player:getItemCount(AMMO_ID) <= 0 then player:sendCancelMessage("Você não tem munição suficiente ou o alvo não é válido.") shooting = false return end -- Remove a munição player:removeItem(AMMO_ID, 1) -- Cria o efeito do míssil local startPosition = player:getPosition() local endPosition = target:getPosition() startPosition:sendDistanceEffect(endPosition, MISSILE_EFFECT) -- Calcula o dano local ammoItem = ItemType(AMMO_ID) local minDamage = ammoItem:getAttack() local maxDamage = minDamage * 2 local damage = math.random(minDamage, maxDamage) -- Aplica o dano ao monstro target:addHealth(-damage) target:getPosition():sendMagicEffect(CONST_ME_HITAREA) end function onUse(player, item, fromPosition, target, toPosition, isHotkey) -- Verifica se a arma está equipada na mão direita ou esquerda local weaponInRightHand = player:getSlotItem(CONST_SLOT_RIGHT) local weaponInLeftHand = player:getSlotItem(CONST_SLOT_LEFT) local isWeaponEquipped = (weaponInRightHand and weaponInRightHand:getId() == WEAPON_ID) or (weaponInLeftHand and weaponInLeftHand:getId() == WEAPON_ID) if not isWeaponEquipped then player:sendCancelMessage("Você precisa equipar a arma na sua mão para usá-la.") return false end -- Se o jogador já está atirando, interrompe o loop if shooting then shooting = false player:sendCancelMessage("Você parou de atirar.") return true end -- Verifica se o alvo é um monstro if not target or not target:isMonster() then player:sendCancelMessage("Você só pode usar essa arma em monstros.") return false end -- Ativa o modo de tiro contínuo shooting = true player:sendCancelMessage("Atirando automaticamente...") -- Função que repete o disparo em intervalos definidos addEvent(function() if shooting and player:isPlayer() then shoot(player, target) addEvent(onUse, SHOOT_INTERVAL, player, item, fromPosition, target, toPosition, isHotkey) end end, SHOOT_INTERVAL) return true end Link para o comentário https://tibiadevs.com/forums/topic/703-altera%C3%A7%C3%A3o-de-onuse-para-automatico-sistema-de-tiro/#findComment-3688 Compartilhar em outros sites Mais opções de compartilhamento...
Nemysis 5 Postado 3 de Novembro 2024 Compartilhar Postado 3 de Novembro 2024 cara isso praticamente e uma skill de missile ao clicar no item, tecnicaente e um script apenas pra isso, ate poque ta pra vc substituir um item do tibia e depois trocar o missile do no object build para ser de um tiro Link para o comentário https://tibiadevs.com/forums/topic/703-altera%C3%A7%C3%A3o-de-onuse-para-automatico-sistema-de-tiro/#findComment-3689 Compartilhar em outros sites Mais opções de compartilhamento...
Ryohei 0 Postado 3 de Novembro 2024 Compartilhar Postado 3 de Novembro 2024 11 horas atrás, Nemysis disse: cara isso praticamente e uma skill de missile ao clicar no item, tecnicaente e um script apenas pra isso, ate poque ta pra vc substituir um item do tibia e depois trocar o missile do no object build para ser de um tiro No caso é só ele fazer como se fosse um "bow", que já funcionaria perfeitamente. Link para o comentário https://tibiadevs.com/forums/topic/703-altera%C3%A7%C3%A3o-de-onuse-para-automatico-sistema-de-tiro/#findComment-3690 Compartilhar em outros sites Mais opções de compartilhamento...
paulim78 3 Postado 3 de Novembro 2024 Autor Compartilhar Postado 3 de Novembro 2024 16 horas atrás, Ryohei disse: Pedi para o chat, fazer com que fique atirando até usar o item novamente ou acabar a munição: local WEAPON_ID = 31159 -- ID da sua arma personalizada local AMMO_ID = 29564 -- ID da munição local MISSILE_EFFECT = 113 -- Efeito de míssil local DAMAGE_TYPE = COMBAT_PHYSICALDAMAGE -- Tipo de dano físico local SHOOT_INTERVAL = 1000 -- Intervalo de disparo em milissegundos (1 segundo) local shooting = false -- Variável de controle para saber se está atirando local function shoot(player, target) -- Verifica se o alvo ainda é válido e se o jogador tem munição if not target or not target:isMonster() or player:getItemCount(AMMO_ID) <= 0 then player:sendCancelMessage("Você não tem munição suficiente ou o alvo não é válido.") shooting = false return end -- Remove a munição player:removeItem(AMMO_ID, 1) -- Cria o efeito do míssil local startPosition = player:getPosition() local endPosition = target:getPosition() startPosition:sendDistanceEffect(endPosition, MISSILE_EFFECT) -- Calcula o dano local ammoItem = ItemType(AMMO_ID) local minDamage = ammoItem:getAttack() local maxDamage = minDamage * 2 local damage = math.random(minDamage, maxDamage) -- Aplica o dano ao monstro target:addHealth(-damage) target:getPosition():sendMagicEffect(CONST_ME_HITAREA) end function onUse(player, item, fromPosition, target, toPosition, isHotkey) -- Verifica se a arma está equipada na mão direita ou esquerda local weaponInRightHand = player:getSlotItem(CONST_SLOT_RIGHT) local weaponInLeftHand = player:getSlotItem(CONST_SLOT_LEFT) local isWeaponEquipped = (weaponInRightHand and weaponInRightHand:getId() == WEAPON_ID) or (weaponInLeftHand and weaponInLeftHand:getId() == WEAPON_ID) if not isWeaponEquipped then player:sendCancelMessage("Você precisa equipar a arma na sua mão para usá-la.") return false end -- Se o jogador já está atirando, interrompe o loop if shooting then shooting = false player:sendCancelMessage("Você parou de atirar.") return true end -- Verifica se o alvo é um monstro if not target or not target:isMonster() then player:sendCancelMessage("Você só pode usar essa arma em monstros.") return false end -- Ativa o modo de tiro contínuo shooting = true player:sendCancelMessage("Atirando automaticamente...") -- Função que repete o disparo em intervalos definidos addEvent(function() if shooting and player:isPlayer() then shoot(player, target) addEvent(onUse, SHOOT_INTERVAL, player, item, fromPosition, target, toPosition, isHotkey) end end, SHOOT_INTERVAL) return true end Esse não funcionou, pois tem que usar o item e quando usa da o erro Lua Script Error: [Main Interface] in a timer event called from: (Unknown scriptfile) LuaScriptInterface::luaAddEvent(). callback parameter should be a function. stack traceback: [C]: in function 'addEvent' data/actions/scripts/2024/armas/glock.lua:68: in function <data/actions/scripts/2024/armas/glock.lua:65> 15 horas atrás, Nemysis disse: cara isso praticamente e uma skill de missile ao clicar no item, tecnicaente e um script apenas pra isso, ate poque ta pra vc substituir um item do tibia e depois trocar o missile do no object build para ser de um tiro Não importa como vai funcionar, só de não precisa clicar no item da use já esta ótimo kkk. 3 horas atrás, Ryohei disse: No caso é só ele fazer como se fosse um "bow", que já funcionaria perfeitamente. Não e só usar como Bow pq eu msm quero que uma arma usa vários tipo de munição e no usando igual uma bow tem que ser por item.xml e no item.xml o ammotype ele só reconhece 1 tipo de munição, fora que no item.xml não tem como configurar quantos tiro a arma vai dar. Exemplo uma AK poderia bota para sair 3 tiro por vez, isso e apenas um exemplo, e que eu quero configurar mais coisas na arma e pelo item.xml não da, porem no item.xml não precisa dar use no item pois ele ja faz isso automático. Link para o comentário https://tibiadevs.com/forums/topic/703-altera%C3%A7%C3%A3o-de-onuse-para-automatico-sistema-de-tiro/#findComment-3695 Compartilhar em outros sites Mais opções de compartilhamento...
paulim78 3 Postado 5 de Novembro 2024 Autor Compartilhar Postado 5 de Novembro 2024 UP. Link para o comentário https://tibiadevs.com/forums/topic/703-altera%C3%A7%C3%A3o-de-onuse-para-automatico-sistema-de-tiro/#findComment-3725 Compartilhar em outros sites Mais opções de compartilhamento...
paulim78 3 Postado 6 de Novembro 2024 Autor Compartilhar Postado 6 de Novembro 2024 up Link para o comentário https://tibiadevs.com/forums/topic/703-altera%C3%A7%C3%A3o-de-onuse-para-automatico-sistema-de-tiro/#findComment-3739 Compartilhar em outros sites Mais opções de compartilhamento...
Posts Recomendados
Crie uma conta ou entre para comentar
Você precisar ser um membro para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora