-Bon- 0 Postado Março 24, 2009 Share Postado Março 24, 2009 Bom, gostaria de saber se tem como criar um npc que só fale com uma certa vocação, minha idéia seria um npc que teleportaria um knight para algum lugar, mas não teleportaria um player que não fosse knight. Se tiver como alguem me responde e me mostra como por favor. =] Link para o comentário https://xtibia.com/forum/topic/110003-npc/ Compartilhar em outros sites More sharing options...
zaitch 0 Postado Março 26, 2009 Share Postado Março 26, 2009 Bom, gostaria de saber se tem como criar um npc que só fale com uma certa vocação, minha idéia seria um npc que teleportaria um knight para algum lugar, mas não teleportaria um player que não fosse knight.Se tiver como alguem me responde e me mostra como por favor. =] --- Entre na pasta data/npc/scripts. Copie qualquer .lua, renomeie-o para kina_teleport (é como exemplo, coloque o nome que quiser) e substitua todo o seu conteúdo por essa zona ake: cidade = {x=00, y=00, z=0}knight = 4 elite_knight = 8 local focus = 0 local talk_start = 0 local target = 0 local following = false local attacking = false function onThingMove(creature, thing, oldpos, oldstackpos, cid, item, frompos, item2, topos) end function onCreatureAppear(creature) end function onCreatureDisappear(cid, pos) if focus == cid then selfSay('Adeus entao.') focus = 0 talk_start = 0 end end function onCreatureTurn(creature) end 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) if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 and getPlayerVocation(cid) == knight or getPlayerVocation(cid) == elite_knight then selfSay('Ola ' .. getCreatureName(cid) .. '!') focus = cid talk_start = os.clock() elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 and getPlayerVocation(cid) == knight or getPlayerVocation(cid) == elite_knight then selfSay('Desculpe, ' .. getCreatureName(cid) .. '! Falo com voce em um minuto.') elseif focus == cid then talk_start = os.clock() if msgcontains(msg, 'teleport') then doTeleportThing(cid,cidade) selfSay("Tcharan!") focus = 0 talk_start = 0 end elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then selfSay('Adeus ' .. creatureGetName(cid) .. '!') focus = 0 talk_start = 0 elseif msg ~= "" then selfSay('Eu nao entendi oO') talk_state = 0 end end end function onCreatureChangeOutfit(creature) end function onThink() doNpcSetCreatureFocus(focus) if (os.clock() - talk_start) > 30 then if focus > 0 then selfSay('Proximo...') end focus = 0 talk_start = 0 end if focus ~= 0 then if getDistanceToCreature(focus) > 5 then selfSay('Adeus') focus = 0 talk_start = 0 end end end Explicando: em cidade vc substitui, se desejar, o nome pra onde o kina vai ser teleportado; em 00 vc coloca a posição X de onde o kina vai aparecer; em 00 vc coloca a posição Y de onde o kina vai aparecer; em 0 vc coloca a posição Z de onde o kina vai aparecer; -- Agora copie qualquer arquivo .xml da pasta data/npc, renomeie-o para Kina, como exemplo, e substitua todo o seu conteúdo por isto aqui: <?xml version="1.0" encoding="UTF-8"?><npc name="Kina" script="data/npc/scripts/kina_teleport.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="139" head="20" body="39" legs="45" feet="7" addons="0"/> </npc> Explicando: substitua Kina pelo nome do NPC; substitua kina_teleport.lua pelo nome do script que vc colocou acima; -- Ele funciona - ou deveria funcionar - assim: Knight say: hiNPC say: Ola Knight! Knight say: teleport <agora o npc teleporta o knight> se o Player não for knight ou elite knight ele não será teleportado e o NPC nem vai responder o hi dele! Eu não testei esse NPC então não sei se funciona ._. se tiver bug postem ae, faz tempo q não programo npc :~ Link para o comentário https://xtibia.com/forum/topic/110003-npc/#findComment-714409 Compartilhar em outros sites More sharing options...
-Bon- 0 Postado Março 26, 2009 Autor Share Postado Março 26, 2009 Cara no começo o o npc tava dando erro e não dava respawn, mas dai eu retirei 1 dos "end" dessa parte e ele nasceu normal =] elseif msg ~= "" thenselfSay('Eu nao entendi oO') talk_state = 0 end end end Mas não tem como eu testar a parte do teleporte, porém parece ter dado certo, pq eu tentei usar ele com o gm e não deu porque o gm n é kina. O motivo de n dar pra mim testar com um kina é q o ot q eu peguei n tem a pasta players, isso é normal? Pq eu mexia com ot antigamente e a pasta existia, e agora todo ot q eu pego vem sem a pasta, mas da pra logar com o gm, porém n encontro o bloco de notas do gm =S sabe onde fica? e vlw pelo npc acho q funciona sim =D Link para o comentário https://xtibia.com/forum/topic/110003-npc/#findComment-714712 Compartilhar em outros sites More sharing options...
zaitch 0 Postado Março 27, 2009 Share Postado Março 27, 2009 Cara no começo o o npc tava dando erro e não dava respawn, mas dai eu retirei 1 dos "end" dessa parte e ele nasceu normal =] Mas não tem como eu testar a parte do teleporte, porém parece ter dado certo, pq eu tentei usar ele com o gm e não deu porque o gm n é kina. O motivo de n dar pra mim testar com um kina é q o ot q eu peguei n tem a pasta players, isso é normal? Pq eu mexia com ot antigamente e a pasta existia, e agora todo ot q eu pego vem sem a pasta, mas da pra logar com o gm, porém n encontro o bloco de notas do gm =S sabe onde fica? e vlw pelo npc acho q funciona sim =D heaouheaaou é q antigamente os servers gerenciavam suas accounts, players, houses e etc, através de arquivos .xml, que ficavam nessas pastas ae dentro da pasta 'data' do server. Atualmente essas pastas foram removidas e implementadas em um banco de dados(mysql), assim o server possui maior sergurança e estabilidade (não tem mais aqueles problemas de players resetarem do nada, perderem itens e talz). clica aqui para saber mais sobre servers com banco de dados e lá, vc pode gerenciar todos os seus players de uma forma beeeeeeeem mais simples, prática e segura (: Link para o comentário https://xtibia.com/forum/topic/110003-npc/#findComment-714911 Compartilhar em outros sites More sharing options...
-Bon- 0 Postado Março 27, 2009 Autor Share Postado Março 27, 2009 entendi =] vlw Link para o comentário https://xtibia.com/forum/topic/110003-npc/#findComment-714958 Compartilhar em outros sites More sharing options...
Merchant 0 Postado Março 27, 2009 Share Postado Março 27, 2009 Dúvida Sanada, :button_cancel: Fechado. Abraços Link para o comentário https://xtibia.com/forum/topic/110003-npc/#findComment-714964 Compartilhar em outros sites More sharing options...
Posts Recomendados