Special_Forces 0 Postado Março 20, 2008 Share Postado Março 20, 2008 Raizen Guard.xml (data\npc\Raizen Guard.xml) <?xml version="1.0"?> <npc name="Raizen Guard" script="data/npc/scripts/defender.lua" access="5" lookdir="2" autowalk="25"> <mana now="800" max="800"/> <health now="200" max="200"/> <look type="131" head="116" body="94" legs="78" feet="115" addons="3"/> </npc> Defender.lua(data\npc\script\defender.lua) -------By Far Carder------ -----------------start of config-----------------------------------------------------------------------What the formula looks like--------------- local level = 100 ----- change this to make the npc hit more/less---------------------|damage_min = (level * 2 + maglevel * 3) * min_multiplier | local maglevel = 30 ----- change this to make the npc hit more/less -----------------|damage_max = (level * 2 + maglevel * 3) * max_multiplier | local min_multiplier = 12.1 ----- change this to make the npc hit more/less ----------|damage_formula = math.random(damage_min,damage_max) | local max_multiplier = 19.2 ----- change this to make the npc hit more/less --------------------------------------------------------------------- local check_interval = 5 ----- change this to the time between checks for a creature (the less time the more it will probably lag :S) local radiusx = 7 ----- change this to the amount of squares left/right the NPC checks (default 7 so he checks 7 squares left of him and 7 squares right (the hole screen) local radiusy = 5 ----- change this to the amount of squares left/right the NPC checks (default 5 so he checks 5 squares up of him and 5 squares down (the hole screen) local Attack_message = "One Invasor! DIE!!!" ----- change this to what the NPC says when he sees a monster(s) local town_name = "Raizens OTS" ----- the name of the town the NPC says when you say "hi" local Attack_monsters = TRUE ----- set to TRUE for the npc to attack monsters in his area or FALSE if he doesnt local Attack_swearers = TRUE ----- set to TRUE for the npc to attack players that swear near him or FALSE if he doesnt local Attack_pkers = TRUE ----- set to TRUE for the npc to attack players with white and red skulls or FALSE if he doesnt -- NOTE: Set this to FALSE if you are using TFS as there is no way to tell if a player is skulled on TFS, you will only get errors local health_left = 10 ----- set to the amount of health the npc will leave a player with if they swear at him (ie at 10 he will hit the player to 10 health left) local swear_message = "GO GO DEATH!!!" ----- change this to what you want the NPC to say when he attackes a swearer local swear_words = {"######", "######", "######", "#####", "tnc", "pau no ######", "pnc"} ----- if "Attack_swearers" is set to TRUE then the NPC will attack anyone who says a word in here. Remember to put "" around each word and seperate each word with a comma (,) local hit_effect = CONST_ME_MORTAREA ----- set this to the magic effect the creature will be hit with, see global.lua for more effects local damage_colour = TEXTCOLOR_RED ----- set this to the colour of the text that shows the damage when the creature gets hit ------------------end of config------------------ local check_clock = os.clock() ----- leave this local focus = 0 ----- leave this function msgcontains(txt, str) return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)')) end function onCreatureSay(cid, type, msg) msg = string.lower(msg) health = getPlayerHealth(cid) - health_left if ((string.find(msg, '(%a*)hi(%a*)'))) and getDistanceToCreature(cid) < 4 then selfSay('Hello ' .. creatureGetName(cid) .. '! I am a defender of '..town_name..'.') doNpcSetCreatureFocus(cid) focus = 0 end if msgcontains(msg, 'time') then selfSay('The time is ' .. getWorldTime() .. '.') end if messageIsInArray(swear_words, msg) then if Attack_swearers == TRUE then selfSay('' .. swear_message ..' ') doPlayerAddHealth(cid,-health) doSendMagicEffect(getThingPos(cid),17) doSendAnimatedText(getThingPos(cid),health,180) doNpcSetCreatureFocus(cid) focus = 0 end end end function getMonstersfromArea(pos, radiusx, radiusy, stack) local monsters = { } local starting = {x = (pos.x - radiusx), y = (pos.y - radiusy), z = pos.z, stackpos = stack} local ending = {x = (pos.x + radiusx), y = (pos.y + radiusy), z = pos.z, stackpos = stack} local checking = {x = starting.x, y = starting.y, z = starting.z, stackpos = starting.stackpos} repeat creature = getThingfromPos(checking) if creature.itemid > 0 then if isCreature(creature.uid) == TRUE then if isPlayer(creature.uid) == FALSE then if Attack_monsters == TRUE then table.insert (monsters, creature.uid) check_clock = os.clock() end elseif isPlayer(creature.uid) == TRUE then if Attack_pkers == TRUE then if getPlayerSkull(creature.uid) > 0 then table.insert (monsters, creature.uid) check_clock = os.clock() end end end end end if checking.x == pos.x-1 and checking.y == pos.y then checking.x = checking.x+2 else checking.x = checking.x+1 end if checking.x > ending.x then checking.x = starting.x checking.y = checking.y+1 end until checking.y > ending.y return monsters end function onThink() if (Attack_monsters == TRUE and Attack_pkers == TRUE) or (Attack_monsters == TRUE and Attack_pkers == FALSE) or (Attack_monsters == FALSE and Attack_pkers == TRUE) then if (os.clock() - check_clock) > check_interval then monster_table = getMonstersfromArea(getCreaturePosition(getNpcCid( )), radiusx, radiusy, 253) if #monster_table >= 1 then selfSay('' .. Attack_message ..' ') for i = 1, #monster_table do doNpcSetCreatureFocus(monster_table) local damage_min = (level * 2 + maglevel * 3) * min_multiplier local damage_max = (level * 2 + maglevel * 3) * max_multiplier local damage_formula = math.random(damage_min,damage_max) doSendMagicEffect(getThingPos(monster_table),17) doCreatureAddHealth(monster_table,-damage_formula) doSendMagicEffect(getThingPos(monster_table),hit_effect) doSendAnimatedText(getThingPos(monster_table),damage_formula,damage_colour) check_clock = os.clock() focus = 0 end elseif table.getn(monster_table) < 1 then focus = 0 check_clock = os.clock() end end end focus = 0 end Quem Souber mexer pode mudar o nome, pois esse é do meu server e tem nome raizne guard. E é necessário colocar ele pelo map editor, se vc não sabe coloca-lo no map editor procure um tutorial, é muito facilzinho Link para o comentário https://xtibia.com/forum/topic/79968-npc-guarda-que-mata-pks-red-e-white-skull/ Compartilhar em outros sites More sharing options...
MarcolinoGOD 1 Postado Março 20, 2008 Share Postado Março 20, 2008 Meu amigo creio que não seja você o criador deste NPC porque faz tempo que tenho ele aqui em casa e quem criou ele foi um tal de hombre de um antigo forum de OtServ! (Estas informações consegui no script que não fala muita coisa) Coloque os devidos creditos ao criador! Sem mais... Link para o comentário https://xtibia.com/forum/topic/79968-npc-guarda-que-mata-pks-red-e-white-skull/#findComment-501865 Compartilhar em outros sites More sharing options...
Special_Forces 0 Postado Março 20, 2008 Autor Share Postado Março 20, 2008 Não colokei créditos a mim e eu axei que todos no forum tivessem olhos -------By Far Carder------ -----------------start of config-----------------------------------------------------------------------What the formula looks like--------------- local level = 100 ----- change this to make the npc hit more/less---------------------|damage_min = (level * 2 + maglevel * 3) * min_multiplier | local maglevel = 30 ----- change this to make the npc hit more/less -----------------|damage_max = (level * 2 + maglevel * 3) * max_multiplier | local min_multiplier = 12.1 ----- change this to make the npc hit more/less ----------|damage_formula = math.random(damage_min,damage_max) | local max_multiplier = 19.2 ----- change this to make the npc hit more/less --------------------------------------------------------------------- local check_interval = 5 ----- change this to the time between checks for a creature (the less time the more it will probably lag :S) local radiusx = 7 ----- change this to the amount of squares left/right the NPC checks (default 7 so he checks 7 squares left of him and 7 squares right (the hole screen) local radiusy = 5 ----- change this to the amount of squares left/right the NPC checks (default 5 so he checks 5 squares up of him and 5 squares down (the hole screen) local Attack_message = "One Invasor! DIE!!!" ----- change this to what the NPC says when he sees a monster(s) local town_name = "Raizens OTS" ----- the name of the town the NPC says when you say "hi" local Attack_monsters = TRUE ----- set to TRUE for the npc to attack monsters in his area or FALSE if he doesnt local Attack_swearers = TRUE ----- set to TRUE for the npc to attack players that swear near him or FALSE if he doesnt local Attack_pkers = TRUE ----- set to TRUE for the npc to attack players with white and red skulls or FALSE if he doesnt -- NOTE: Set this to FALSE if you are using TFS as there is no way to tell if a player is skulled on TFS, you will only get errors local health_left = 10 ----- set to the amount of health the npc will leave a player with if they swear at him (ie at 10 he will hit the player to 10 health left) local swear_message = "GO GO DEATH!!!" ----- change this to what you want the NPC to say when he attackes a swearer local swear_words = {"######", "######", "######", "#####", "tnc", "pau no ######", "pnc"} ----- if "Attack_swearers" is set to TRUE then the NPC will attack anyone who says a word in here. Remember to put "" around each word and seperate each word with a comma (,) local hit_effect = CONST_ME_MORTAREA ----- set this to the magic effect the creature will be hit with, see global.lua for more effects local damage_colour = TEXTCOLOR_RED ----- set this to the colour of the text that shows the damage when the creature gets hit ------------------end of config------------------ local check_clock = os.clock() ----- leave this local focus = 0 ----- leave this function msgcontains(txt, str) return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)')) end function onCreatureSay(cid, type, msg) msg = string.lower(msg) health = getPlayerHealth(cid) - health_left if ((string.find(msg, '(%a*)hi(%a*)'))) and getDistanceToCreature(cid) < 4 then selfSay('Hello ' .. creatureGetName(cid) .. '! I am a defender of '..town_name..'.') doNpcSetCreatureFocus(cid) focus = 0 end if msgcontains(msg, 'time') then selfSay('The time is ' .. getWorldTime() .. '.') end if messageIsInArray(swear_words, msg) then if Attack_swearers == TRUE then selfSay('' .. swear_message ..' ') doPlayerAddHealth(cid,-health) doSendMagicEffect(getThingPos(cid),17) doSendAnimatedText(getThingPos(cid),health,180) doNpcSetCreatureFocus(cid) focus = 0 end end end function getMonstersfromArea(pos, radiusx, radiusy, stack) local monsters = { } local starting = {x = (pos.x - radiusx), y = (pos.y - radiusy), z = pos.z, stackpos = stack} local ending = {x = (pos.x + radiusx), y = (pos.y + radiusy), z = pos.z, stackpos = stack} local checking = {x = starting.x, y = starting.y, z = starting.z, stackpos = starting.stackpos} repeat creature = getThingfromPos(checking) if creature.itemid > 0 then if isCreature(creature.uid) == TRUE then if isPlayer(creature.uid) == FALSE then if Attack_monsters == TRUE then table.insert (monsters, creature.uid) check_clock = os.clock() end elseif isPlayer(creature.uid) == TRUE then if Attack_pkers == TRUE then if getPlayerSkull(creature.uid) > 0 then table.insert (monsters, creature.uid) check_clock = os.clock() end end end end end if checking.x == pos.x-1 and checking.y == pos.y then checking.x = checking.x+2 else checking.x = checking.x+1 end if checking.x > ending.x then checking.x = starting.x checking.y = checking.y+1 end until checking.y > ending.y return monsters end function onThink() if (Attack_monsters == TRUE and Attack_pkers == TRUE) or (Attack_monsters == TRUE and Attack_pkers == FALSE) or (Attack_monsters == FALSE and Attack_pkers == TRUE) then if (os.clock() - check_clock) > check_interval then monster_table = getMonstersfromArea(getCreaturePosition(getNpcCid( )), radiusx, radiusy, 253) if #monster_table >= 1 then selfSay('' .. Attack_message ..' ') for i = 1, #monster_table do doNpcSetCreatureFocus(monster_table) local damage_min = (level * 2 + maglevel * 3) * min_multiplier local damage_max = (level * 2 + maglevel * 3) * max_multiplier local damage_formula = math.random(damage_min,damage_max) doSendMagicEffect(getThingPos(monster_table),17) doCreatureAddHealth(monster_table,-damage_formula) doSendMagicEffect(getThingPos(monster_table),hit_effect) doSendAnimatedText(getThingPos(monster_table),damage_formula,damage_colour) check_clock = os.clock() focus = 0 end elseif table.getn(monster_table) < 1 then focus = 0 check_clock = os.clock() end end end focus = 0 end Link para o comentário https://xtibia.com/forum/topic/79968-npc-guarda-que-mata-pks-red-e-white-skull/#findComment-501879 Compartilhar em outros sites More sharing options...
decion 0 Postado Março 20, 2008 Share Postado Março 20, 2008 Kara eu testei ele aki mas ele fika dando ums erros no programa do ot ... Luagethingfrompos flow Link para o comentário https://xtibia.com/forum/topic/79968-npc-guarda-que-mata-pks-red-e-white-skull/#findComment-502132 Compartilhar em outros sites More sharing options...
Special_Forces 0 Postado Março 21, 2008 Autor Share Postado Março 21, 2008 Para ele só atacar creaturas em local Attack_monsters = TRUE ----- set to TRUE for the npc to attack monsters in his area or FALSE if he doesnt coloque false e ele nao ataka os monstros Link para o comentário https://xtibia.com/forum/topic/79968-npc-guarda-que-mata-pks-red-e-white-skull/#findComment-502782 Compartilhar em outros sites More sharing options...
decion 0 Postado Março 22, 2008 Share Postado Março 22, 2008 Nah xP N tem nada a v kom os bixos é: Luagethingfrompos () Tile Not Found Algo assim Link para o comentário https://xtibia.com/forum/topic/79968-npc-guarda-que-mata-pks-red-e-white-skull/#findComment-503183 Compartilhar em outros sites More sharing options...
Special_Forces 0 Postado Março 22, 2008 Autor Share Postado Março 22, 2008 seu ot não tem supórte a o NPC então Link para o comentário https://xtibia.com/forum/topic/79968-npc-guarda-que-mata-pks-red-e-white-skull/#findComment-503201 Compartilhar em outros sites More sharing options...
decion 0 Postado Março 22, 2008 Share Postado Março 22, 2008 aries 4.5 ... blz valew Link para o comentário https://xtibia.com/forum/topic/79968-npc-guarda-que-mata-pks-red-e-white-skull/#findComment-503213 Compartilhar em outros sites More sharing options...
nightshade 1 Postado Março 22, 2008 Share Postado Março 22, 2008 (editado) poderia dizer em qual ot roda? eh soh pegar o script como ta ali e ele vai funcinar jah? ou precisa fazer alteracao? Cya Editado Março 22, 2008 por nightshade Link para o comentário https://xtibia.com/forum/topic/79968-npc-guarda-que-mata-pks-red-e-white-skull/#findComment-503273 Compartilhar em outros sites More sharing options...
Misterius 0 Postado Março 22, 2008 Share Postado Março 22, 2008 da hora , tou fazendo um test aki no meu ot se fumfa eu posto aki memo. Link para o comentário https://xtibia.com/forum/topic/79968-npc-guarda-que-mata-pks-red-e-white-skull/#findComment-503485 Compartilhar em outros sites More sharing options...
MarcolinoGOD 1 Postado Março 23, 2008 Share Postado Março 23, 2008 Se você colocar "TRUE" aqui: local Attack_monsters = TRUE ----- set to TRUE for the npc to attack monsters in his area or FALSE if he doesnt O Npc fica atacando os npc! Oo Sem mais... Link para o comentário https://xtibia.com/forum/topic/79968-npc-guarda-que-mata-pks-red-e-white-skull/#findComment-504519 Compartilhar em outros sites More sharing options...
henage 0 Postado Março 23, 2008 Share Postado Março 23, 2008 Esse npc não funciona.. Fica dando erros no OT defender num sei do que!.... Poxa explica melhor ai em qual versão funciona. Link para o comentário https://xtibia.com/forum/topic/79968-npc-guarda-que-mata-pks-red-e-white-skull/#findComment-504628 Compartilhar em outros sites More sharing options...
Darllan0 1 Postado Março 25, 2008 Share Postado Março 25, 2008 ele tbm ataca a pessoa quando ela xinga?? Link para o comentário https://xtibia.com/forum/topic/79968-npc-guarda-que-mata-pks-red-e-white-skull/#findComment-505865 Compartilhar em outros sites More sharing options...
boladuu 0 Postado Abril 7, 2008 Share Postado Abril 7, 2008 eaw gostei do npcm u unico lugar que vi dar erro foi qnd falo "time" pra ele mas retirei essa fala do npc e agora ta tudo certo vlw Link para o comentário https://xtibia.com/forum/topic/79968-npc-guarda-que-mata-pks-red-e-white-skull/#findComment-512735 Compartilhar em outros sites More sharing options...
Misterius 0 Postado Abril 8, 2008 Share Postado Abril 8, 2008 cara eu colokei ess npc no meu ot ficou muito roxxxxxx vlws Link para o comentário https://xtibia.com/forum/topic/79968-npc-guarda-que-mata-pks-red-e-white-skull/#findComment-512884 Compartilhar em outros sites More sharing options...
Posts Recomendados