kaleudd 200 Postado Janeiro 19, 2016 Share Postado Janeiro 19, 2016 (editado) Autor:Printer Aqui é um NPC, que irá proteger a cidade de invasores! <?xml version="1.0" encoding="UTF-8"?><npc name="Guard" script="guard.lua" walkinterval="0" speed="0" floorchange="0"> <health now="100" max="100" /> <look type="139" head="20" body="39" legs="45" feet="7" addons="0" /></npc>local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)NpcSystem.parseParameters(npcHandler)function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) endfunction onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) endfunction onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) endlocal config = { attackRadius = {x = 7, y = 5}, attackPK = {value = true, skulls = {SKULL_WHITE, SKULL_RED}}, attackMonster = {value = true, ignore = {"Rat", "Cave Rat"}}, damageValue = {min = 10, max = 20}}local targetId = 0local function searchTarget() for _, spectator in ipairs(Game.getSpectators(Npc():getPosition(), false, false, config.attackRadius.x, config.attackRadius.x, config.attackRadius.y, config.attackRadius.y)) do if not spectator:isNpc() then if ((spectator:isPlayer() and not spectator:getGroup():getAccess()) and config.attackPK.value and isInArray(config.attackPK.skulls, spectator:getSkull())) then targetId = spectator:getId() elseif spectator:isMonster() and config.attackMonster.value and not isInArray(config.attackMonster.ignore, spectator:getName()) then targetId = spectator:getId() end end endendfunction onThink() local npc = Npc() local target = Creature(targetId) -- If we have not a target, then we shall search for one if not target then searchTarget(npc) return end -- Let's get target offset position local npcPosition = npc:getPosition() local targetPosition = target:getPosition() local offsetX = npcPosition.x - targetPosition.x local offsetY = npcPosition.y - targetPosition.y -- Target is out of reach, search for new one if math.abs(offsetX) > config.attackRadius.x or math.abs(offsetY) > config.attackRadius.y then targetId = 0 searchTarget(npc) return end -- If target is found doTargetCombatHealth(npc:getId(), targetId, COMBAT_FIREDAMAGE, -config.damageValue.min, -config.damageValue.max, CONST_ME_HITBYFIRE) npcPosition:sendDistanceEffect(targetPosition, CONST_ANI_FIRE) doNpcSetCreatureFocus(targetId) npcHandler:onThink() end Editado Julho 15, 2017 por DarkWore Link para o comentário Compartilhar em outros sites More sharing options...
Skulls 331 Postado Janeiro 19, 2016 Share Postado Janeiro 19, 2016 Bacana, sempre bom quando postam conteúdo pro 1.x. Tem pouco. Parabens. Abraços Link para o comentário Compartilhar em outros sites More sharing options...
kaleudd 200 Postado Janeiro 19, 2016 Autor Share Postado Janeiro 19, 2016 Bacana, sempre bom quando postam conteúdo pro 1.x. Tem pouco. Parabens. Abraços poisé também acho,to separando uns e postando para tfs1.x Link para o comentário Compartilhar em outros sites More sharing options...
felzan 64 Postado Janeiro 19, 2016 Share Postado Janeiro 19, 2016 To tentando passar o script dos monstros se atacando pra 1.x, cheguei nesse script aí, mas não ta ajudando mt :X Consegui fazer eles se atacarem, mas não tiram hp =/ Link para o comentário Compartilhar em outros sites More sharing options...
Felipe Moraes 151 Postado Janeiro 19, 2016 Share Postado Janeiro 19, 2016 Muito interessante esse script. Obrigado por compartilhar conosco Link para o comentário Compartilhar em outros sites More sharing options...
kaleudd 200 Postado Janeiro 19, 2016 Autor Share Postado Janeiro 19, 2016 Muito interessante esse script. Obrigado por compartilhar conosco tamo ae =) Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados