Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''npc''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • xTibia - Notícias e Suporte
    • Regras
    • Noticias
    • Soluções
    • Projetos Patrocinados
    • Tutoriais para Iniciantes
    • Imprensa
  • OTServ
    • Notícias e Debates
    • OTServlist
    • Downloads
    • Recursos
    • Suporte
    • Pedidos
    • Show-Off
    • Tutoriais
  • OFF-Topic
    • Barzinho do Éks
    • Design
    • Informática

Encontrar resultados em...

Encontrar resultados que contenham...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Sou

  1. Gostaria de um tutorial bem explicado de como criar um npc que teleporta para dois locais com requisitos de LEVEL. Gostaria também de algo para explicar como mudar a sprite do npc e como configura-lo. Pesquisei e não encontrei algo que me explique direito. Obg.
  2. olá, eu gostaria de saber se alguém pode me ajudar cm um npc pra resetar a storege dos players pra q eles possam fazer as quests dnv, em troca de um certo item, ou até msm um item q reseta a storage q dai faço o npc q troca ele pelo outro item, tentei algumas formas, mas n consigo resetar tds as storeges ;-; , bem axo q é isso desde já obgd
  3. Boa noite povo do xTibia, vim pedir se alguém pode me passar script que faca exatamente isso > cor de novo fosse azul.. se alguém tiver agradeceria Muito obrigado até mais..
  4. Olá bom dia meus amigos, eu estava procurando um npc no qual você trocava um npc e mais alguns itens com npc, mas comecei a viajar nas ideias, porém não sei como por em prática...seria assim: Você tem um Cacturne, aí vai no npc, ele fala que precisa de um Cacturne, porém precisa de mais alguns itens...suponhamos 3 rocks, 100 bulbs e 300 leaves, quando você volta no npc ele te teleportaria pra outro lugar que seria uma sala de Quest...obs o poke iria sumir e os itens tbm, caso morra na Quest não seria pedido novamente os itens nem o poke. É isso espero que possam ajudar, e seria de boa ajuda isso pra comunidade esse npc. Desde já obg.
  5. Ele quis dizer: NPC 1: Fale com o NPC 2. Npc 2: (Se não falou com NPC 1: Voce ainda não pode fazer essa quest.) (Se falou: Hola, preciso 100 seeds pra minha invenção) (Se tiver e falar: "seeds", receber item e ganhar storage 10000) Npc3: (Se tiver sorage 10000= Te dou a missã ode matar 100 charmander) (Se não tiver storage 10000: voce ainda não pode fazer essa missão)
  6. olá, eu gostaria de saber se alguém pode me ajudar com um npc pra resetar a storege dos players pra q eles possam fazer as quests dnv, em troca de um certo item, ou até msm um item q reset a storage q dai faço o npc q troca ele pelo outro item, tentei algumas formas, mas n consigo resetar tds asstoreges ;-; , bem axo q é isso desde já obgd
  7. kamus9629

    NPC QUEST

    BOM DIA GOSTARIA DE PEDIR SE ALGUEM PODE FAZER UM SISTEMA PARECIDO COM ESSE DE NPC PRAMIN PODER FAZER AS QUEST NO MEU PROJECT PROPRIO ae show voce tem algum sistema de npc quest que parece com rpg tipo voce fala com sara ela pede para voce fala com sandra a sandra teda item e exp ae a sandra abilita nova quest para voce fala com marcos ae marcos teda item exp e dinheiro ae voce fala com marcos de novo ele pede para voce derrotar 3 charmander ae depois que voce terminar fala com marcos ele vai teda outra missao ae voce faz essa missao de drop item ae voce abilitar conversa com Charlese ae vai indo
  8. Olá, Eu fiz esse script para um servidor ao qual eu era membro da equipe. Mas como o servidor "já era". Vou postar aqui. Nada mais é do que um saffari system. Antes de tudo, é necessários que você tenha adicionado a saffari ball (catch, go back, nurse etc). Pois eu não vou mostrar como adicionar ela agora. =) O que o npc faz? O Npc irá checar se o player possui outro tipo de ball para catch (pokeball, great, super, ultra). Caso sim, ele não deixa entrar. Caso não, ele deixa você entrar. -----recomendo colocar um depot na casa do safari para facilitar aos players----- Ao entrar no saffari ele te dar 30 saffari ball para catch. Como ele está adaptado ao sistema do PxG, não é contado tempo. Você é expulso do safari quando as saffari balls acabam. Scripts NPC Não está muito dificil de configurar: De vermelho é o id e a quantidade de pokeballs; De verde a quantidade de dinheiro que precisa Agora vá em data/creaturescript/login.lua abra o arquivo Login.lua como bloco de notas Adicione a seguinte tag dentro do arquivo. Agora vá em data/actions/scripts e abra o arquivo Catch.lua. Antes de function onUse(cid, item, frompos, item3, topos) adicione a seguinte tag: Logo depois de "function onUse..." adicione: obs.: Os Ids de vermelho são os da saffari ball de catch. Créditos: BobStriker - 100% Merece um Rep+ ?
  9. Alguem tem um script de Reload Npc automático?
  10. quando uma pessoa fala com um npc e morre o server laga
  11. data\npc\NomedoNpc.xml data\npc\scripts\nomedoarquivo.lua Espero Que Gostem Ate ++
  12. Boa noite, estou com um pequeno problema, eu tenho aqui 2 npcs no qual 1 eu quero que entregue uma storage. e o outro npc que verifique a storage, remova a storage, venda a bless, e verifique se ta com a bless. Segue script do npc 1 que entrega a storage. local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function phoenix(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if getPlayerStorageValue(cid,8888888) <= -1 then npcHandler:say('So receive the blessing of the life-giving earth, pilgrim.!', cid) doSendMagicEffect(getCreaturePos(cid), 12) setPlayerStorageValue(cid,8888888, 1) end if getPlayerStorageValue(cid,8888888) == 1 then npcHandler:say('ja te dei a bensao.', cid) end end keywordHandler:addKeyword({'bless'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Here you may receive the blessing {Spark of The Phoenix}'}) local node1 = keywordHandler:addKeyword({'phoenix'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'The Spark of the Phoenix is given by name and by the great pyromancer in the nearby fire temple. Do you wish to receive my part of the Spark if the Phoenix? '}) node1:addChildKeyword({'yes'}, phoenix, {npcHandler = npcHandler, onlyFocus = true, reset = true}) node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then.', reset = true}) npcHandler:addModule(FocusModule:new()) Segue npc 2 que vende a bless, verifica se ja tem bless, remove o storage do primeiro npc local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function phoenix(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end local player_gold = getPlayerItemCount(cid,2148) local player_plat = getPlayerItemCount(cid,2152)*100 local player_crys = getPlayerItemCount(cid,2160)*10000 local player_money = player_gold + player_plat + player_crys if player_money >= 10000 then if doPlayerRemoveMoney(cid,10000) and getPlayerStorageValue(cid,8888888) <= 1 and getPlayerBlessing(cid, 2) then npcHandler:say('Here is your blessing!', cid) setPlayerStorageValue(cid,8888888,-1) doSendMagicEffect(getCreaturePos(cid), 12) doPlayerAddBlessing(cid, 2) end else npcHandler:say('Alright then.', cid) end if getPlayerStorageValue (cid,8888888) == -1 then npcHandler:say('You have already blessed you with this blessing.', cid) end end local node1 = keywordHandler:addKeyword({'phoenix'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Here you may receive the blessing {Spark of Phoenix}. But we must ask of you to sacrifice 10000 gold coins. Are you still interested?.'}) node1:addChildKeyword({'yes'}, phoenix, {}) node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then.', reset = true}) npcHandler:addModule(FocusModule:new()) porém estou em conflito com os npcs, eu acho que a formula do npc da bless está errado como keyworld, alguem poderia ajudar?
  13. Galera, eu modifiquei um npc em busca de fazer com que ele receba uma quantidade de um item especifico e em seguida dê uma storage ao player, porém, por mais que o jogador tenha os itens na bolsa, ele não os recebe e não da a storage ao player, alguem saberia como arrumar isso? Observação, não da nenhum erro na distro, script: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function addStorage(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if getPlayerItemCount(cid, 5897) >= 10 then -- 10 wolf paws return true,npcHandler:say('Desculpe, mas voce nao trouxe as 10 rat paws.', cid) elseif not doPlayerRemoveItem(cid, 5897, 10) then return true,npcHandler:say('Voce precisa me trazer 10 rat paws.', cid) end setPlayerStorageValue(var, storage, 1) npcHandler:say('Otimo servico, voce tem minha autorizacao.', cid) npcHandler:resetNpc() return true end keywordHandler:addKeyword({'vengard'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce deseja comprar uma das montarias do Vengard? Ele esta devendo muitos impostos a vila, então, eu o proibi de vender. Ele ainda ira me pagar com dinheiro ou servicos.'}) local node0 = keywordHandler:addKeyword({'servicos'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Se voce fizer alguns servicos para mim, eu te darei a permissao para comprar uma mount. Temos um acordo?'}) node0:addChildKeyword({'yes'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'A cidade esta infestada de ratos, provavelmente eles estão saindo dos esgotos, traga-me 10 rat paws como prova de que voce os matou, e eu te darei a autorizacao.'}) node0:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, ate mais.', reset = true}) local node1 = keywordHandler:addKeyword({'rats'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Você trouxe as 10 rat paws?'}) node1:addChildKeyword({'yes'}, addStorage, {storage = 10105}) node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Entao me traga.', reset = true}) npcHandler:addModule(FocusModule:new()) Qualquer ajuda, agradeço desde já.
  14. Fale rapaziada. Preciso da ajuda para criar um npc em que ele só ira trocar uma quantidade x de item por uma moeda. EXEMPLO: 'COIN=2151' NPC: Ola 'JOGADOR', eu vendo a 'PICK' para minerar e também compro os 'ITENS' minerados. PLAYER: PICK NPC: A pick custa x COIN/// PLAYER: YES ////// NPC: Aqui esta sua pick. PLAYER: ITENS ////// NPC: Eu compro 100 sapphires por 10 COIN, 100 Skull por 15 COIN, 100 Diamond por 20 COIN. ///// PLAYER: YES //////// NPC: Aqui esta suas COIN. O npc precisa das quantidade exatas para trocar pela a COIN, e ele troca todos os itens automático. O player não precisa ficar falando qual item ele quer troca. Se ele tiver 1000 Sapphires, 100 Skull, 10000 Diamond, ele ja vai somar e trocar tudo.
  15. boa noite gostaria de pedi um script de npc que troka itens por itens sem limite de troka mais o menos assim eu tenho 10 itens aleatorio na bag e eu trocaria com o npc 1 itens por vez com npc mais cada itens trocaria por itens diferente com o npc com limte de tempo pra pega o iten com npc como se o npc tivesse criando o iten desde ja agradeço a ajuda se puderem
  16. Ola pessoal, esse é meu primeiro post aqui no XTibia não tenho esperiencia ainda kkk. Então como o titulo diz vou ensina a criar um npc que vende um intem que recarrega stamina, espero que ajudem. --Pedido de Nyel pelo chat do XTibia. 1.Primeiramente vamos criar o intem que recarrega stamina, abre a pasta do seu server. data/action/script , agora copie qualquer arquivo .lua e renomeia para "stamina". OBS: este intem é removido ao ser usado e apenas para premmium (elder druid,master sorcerer,elite knight e royal paladin). function onUse(cid, item, fromPosition, itemEx, toPosition) local cfg = {} cfg.refuel = 42 * 60 * 1000 if(getPlayerStamina(cid) >= cfg.refuel) then doPlayerSendCancel(cid, "Sua Stamina esta cheia.") elseif(not isPremium(cid)) then doPlayerSendCancel(cid, "Voce deve ser promovido(promotion).") else doPlayerSetStamina(cid, cfg.refuel) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Sua stamina foi recarregada.") doRemoveItem(item.uid) end return true end -- Caso queira que o item não some seja tipo infinito use esse codigo abaixo. function onUse(cid, item, fromPosition, itemEx, toPosition) local cfg = {} cfg.refuel = 42 * 60 * 1000 if(getPlayerStamina(cid) >= cfg.refuel) then doPlayerSendCancel(cid, "Sua Stamina esta cheia.") elseif(not isPremium(cid)) then doPlayerSendCancel(cid, "Voce deve ser promovido(promotion).") else doPlayerSetStamina(cid, cfg.refuel) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Sua stamina foi recarregada.") end return true end 2.Pronto criamos o script agora vamo colocar para funciona. data/action/action.xml <action itemid="7632" event="script" value="stamina.lua"/> Vermelho é o id do item que sera usado como stamina refil, nesse caso usei a Giant Shimmering Pearl. 3.Pronto criamos o item pode criar com o GOD para testa, vamos agora cria o NPC, vamos em: data/npc/ ,agora copie qualquer arquivo .xml e renomeia para "staminaseller" ficará staminaseller.xml, agora abre apaga tudo e coloque o codigo abaixo. <?xml version="1.0" encoding="UTF-8"?> <npc name="Stamina Seller" script="data/npc/scripts/default.lua" floorchange="0" access="5" level="1" maglevel="1"> <health now="150" max="150"/> <look type="141" head="76" body="113" legs="110" feet="114" addons="3" corpse="2212"/> <parameters> <parameter key="module_shop" value="3" /> <parameter key="shop_buyable" value="Stamina Refil,7632,50000" /> </parameters> </npc> Vermelho: é o nome do NPC. Verde: Nome do item refill. Azul: é o id do item. Marrom: o preço do item nesse caso coloquei 50k. Pronto criamos tudo agora é só importa no seu remeres ou qualquer outro editor que você usa e adicionar no seu mapa. E tambem não podemos esquercer se editar o item no item.xml data/items/items.xml ,procurar pelo id 7632 se ele contem alguns atributos você retira tudo ou copi o codigo abaixo e troque pelo que esta em seu servidor, isso se usar esse mesmo item que estou usando ou com qualquer outro item. <item id="7632" name="Stamina refill"/> Pronto agora terminamos de vez o nosso tutorial espero que gostem, se algo fico errado ou se esqueci de algo podem comenta ,aceitando criticas construtivas, apesar de tudo esse é meu primeiro post aqui. By: Anderson.Souza - E-mail: anndysouza@live.com / Skype: Anderson Souza
  17. Emooooo

    npc cassino erro

    erro npc não recolhe o dinheiro ! sendo que esta configurado tudo certo. 08/04/2019 20:07:20] [Error - Npc interface] [08/04/2019 20:07:20] In a timer event called from: [08/04/2019 20:07:20] data/npc/scripts/cassino.lua:onCreatureSay [08/04/2019 20:07:20] Description: [08/04/2019 20:07:20] (luaDoRemoveItem) Item not found
  18. ERRO NO NPC QUANDO VAI VENDER ITENS ÚNICO , O NPC SÓ COMPRA ITENS STACKADOS ! TFS 0.3.6 [08/04/2019 19:27:39] data/npc/lib/npcsystem/modules.lua:1229: bad argument #2 to 'error' (number expected, got string) [08/04/2019 19:27:39] stack traceback: [08/04/2019 19:27:39] [C]: in function 'error' [08/04/2019 19:27:39] data/npc/lib/npcsystem/modules.lua:1229: in function 'callbackOnSell' [08/04/2019 19:27:39] data/npc/lib/npcsystem/npchandler.lua:265: in function 'processModuleCallback' [08/04/2019 19:27:39] data/npc/lib/npcsystem/npchandler.lua:450: in function 'onSell' [08/04/2019 19:27:39] data/npc/lib/npcsystem/modules.lua:1296: in function <data/npc/lib/npcsystem/modules.lua:1295>
  19. Olá, já tenho um script de um npc de promotions, porém ele promove tanto as acc premium quanto as free, preciso que ele promova exclusivamente as acc premium. Segue o código que tenho abaixo. local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end local node1 = keywordHandler:addKeyword({'promot'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can promote you for 20000 gold coins. Do you want me to promote you?'}) node1:addChildKeyword({'yes'}, StdModule.promotePlayer, {npcHandler = npcHandler, cost = 20000, level = 20, promotion = 1, text = 'Congratulations! You are now promoted.'}) node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then, come back when you are ready.', reset = true}) npcHandler:addModule(FocusModule:new())
  20. Bom dia, Galera alguém tem os scripts dos npcs do global por que o servidor que estou editando esta faltando vários os principais seriam esses quem puder ajudar: 90% ou 100% são de quest NPC Eclesius NPC Jerom NPC Bunny NPC Norman The Foreman NPC guia(ex:Aneus, Gnomad, Guide Elena NPC Rafzan NPC Iriana NPC Ashari NPC Costello NPC Eroth NPC Rapanaio NPC Oldrak NPC Baxter NPC Wyrdin NPC Julius NPC Zoltan NPC Raymond Striker NPC One-eyed Joe NPC Larek NPC Rotem Valos NPC Sinatuki NPC Alkestios NPC Mr Brandon NPC Guardian of the deep seas NPC Oldrak
  21. Fala MelloGang Blz ? Hoje vim trazer um NPC de evento , onde o player precisa trazer um pokemon(configuravel) por outro pokemon entao vamos la Em NPC crie um NPC.xml e cole isso Dps Vá em npc/script e crie um arquivo.lua e cole isso e só configurar e pronto Então e isso galera gostou deixe seu REP+
  22. Esse sistema/script/sei lá o que foi desenvolvido por Karain que quis trazer um 'ar' mais moderno ao tibia.. Com esse script conversar com o npc será mais uma experiência mais amigável, continua sendo customizável mas de uma forma mais fácil! Como instalar Em data/creaturescripts/creaturescrips.xml adicione <event type="modalWindow" name="Dialogue" script="dialogue.lua"/> Em data/creaturescripts/scripts/login.lua adicione isso antes do "return true" player:registerEvent("Dialogue") Crie em data/creaturescripts o arquivo dialogue.lua e adicione player_choices = {} defaultButtons = {{id = 0x00, text = "Select", enter = true, escape = false}, {id = 0x01, text = "End", enter = false, escape = true}} function Player:getChoiceText(choice_id) if player_choices and player_choices[self:getId()] then return player_choices[self:getId()][choice_id].text else return false end end function Player:createDialogueWindowWithButtons(modalWindowId, headerText, bodyText, buttonTable, choiceTable, sendToPlayer, priority) local var = ModalWindow(modalWindowId, headerText, bodyText) for i = 1, #buttonTable do var:addButton(buttonTable[i].id, buttonTable[i].text) if buttonTable[i].enter then var:setDefaultEnterButton(buttonTable[i].id) end if buttonTable[i].escape then var:setDefaultEscapeButton(buttonTable[i].id) end end player_choices[self:getId()] = choiceTable for i = 0, #choiceTable do if choiceTable[i] ~= nil and (choiceTable[i].storage == false or self:getStorageValue(choiceTable[i].storage[1]) == choiceTable[i].storage[2]) then var:addChoice(i, choiceTable[i].text) end end if not priority then var:setPriority(false) end if sendToPlayer then var:sendToPlayer(self) end end function onModalWindow(player, modalWindowId, buttonId, choiceId) -- be careful here if you have other modalwindow scripts if buttonId == 0x00 then player:say(player:getChoiceText(choiceId),TALKTYPE_SAY) elseif buttonId == 0x01 then player:say("Good Bye.",TALKTYPE_SAY) end return true end Crie em data/npc/scripts o arquivo dialogue.lua e adicione local npc_dialogue = { [1] = { message="This is the message that shows up before the choices, make sure it's long enough if you are having long choices.", choices= { [1]={text="Choice 1", storage=false, dialogue=1, script="end"}, [2]={text="Choice 2",storage=false, dialogue=2, script="script1"}, [3]={text="Choice 3",storage={1234,1}, dialogue=3, script="trade"}, [4]={text="Choice 4",storage=false, dialogue=3, script="quest"}, [5]={text="Choice 5",storage=false, dialogue=false, script="quest2"}}}, [2] = { message="Bla bla bla bla bla bla bla.", choices= { [1]={text="Choice 1",storage=false, dialogue=1, script="end"}, [2]={text="Choice 2",storage=false, dialogue=2, script="end"}, [3]={text="Choice 3",storage={1234,1}, dialogue=false, script="end"}, [4]={text="Choice 4",storage=false, dialogue=false, script="end"}, [5]={text="Choice 5",storage=false, dialogue=3, script="end"}}}, [3] = { message="Brought to you by Matt Shadowwing.", choices= { [1]={text="Choice 1",storage={1245,2}, dialogue=false, script="end"}, [2]={text="Choice 2",storage=false, dialogue=false, script="end"}, [3]={text="Choice 3",storage={1234,1}, dialogue=false, script="end"}, [4]={text="Choice 4",storage=false, dialogue=1, script="end"}, [5]={text="Choice 5",storage=false, dialogue=2, script="end"}}} } local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end local talkstate = {} local function greetCallback(cid) local player = Player(cid) local npc = Npc(getNpcCid()) npcHandler:setMessage(MESSAGE_GREET, npc_dialogue[1].message) player:createDialogueWindowWithButtons(1, npc:getName(), npc_dialogue[1].message, defaultButtons, npc_dialogue[1].choices, true, false) talkstate[player:getId()] = 1 return true end local function creatureSayCallback(cid, type, msg) local player = Player(cid) local npc = Npc(getNpcCid()) if not npcHandler:isFocused(cid) then return false elseif talkstate[player:getId()] then for _, v in pairs(npc_dialogue[talkstate[player:getId()]].choices) do if msgcontains(msg, v.text) and (v.storage == false or player:getStorageValue(v.storage[1]) == v.storage[2]) then if v.script == "end" then talkstate[player:getId()] = v.dialogue npcHandler:say(npc_dialogue[v.dialogue].message, cid) player:createDialogueWindowWithButtons(1, npc:getName(), npc_dialogue[v.dialogue].message, defaultButtons, npc_dialogue[v.dialogue].choices, true, false) elseif v.script == "trade" then -- trading script here talkstate[player:getId()] = v.dialogue npcHandler:say(npc_dialogue[v.dialogue].message, cid) player:createDialogueWindowWithButtons(1, npc:getName(), npc_dialogue[v.dialogue].message, defaultButtons, npc_dialogue[v.dialogue].choices, true, false) elseif v.script == "quest" then -- quest script here talkstate[player:getId()] = v.dialogue npcHandler:say(npc_dialogue[v.dialogue].message, cid) player:createDialogueWindowWithButtons(1, npc:getName(), npc_dialogue[v.dialogue].message, defaultButtons, npc_dialogue[v.dialogue].choices, true, false) end end end end return true end npcHandler:setCallback(CALLBACK_GREET, greetCallback) npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Em data/npc/lib/npcsystem/npchandler.lua altere todos os TALKTYPE_PRIVATE_PN para TALKTYPE_SAY Depois é só criar seu npc.xml referenciar o lua e seja feliz.. Qualquer problema eu terei que repassar para o criador pois não sou apto a dar suporte.. Estou somente trazendo para cá!
  23. Akatsuki System + Heart System Introdução - tava vendo muitas pessoas precisando desses dois sistema então resolvi criar o meu próprio. - Não ta igual ao do NTOUltimate pois nunca joguei esse servidor. O que tem no Akatsuki system 1.0? - Verifica se sua vocação pode fazer parte da akatsuki - Verificar sua vocação e adiciona outra diferente? - Troca de outfit dependendo da sua vocação - Da bonus de hp e mp - Adicionar o nome [Akatsuki] no seu nick exemplo [Akatsuki] RigBy - Aplica uma storage quando você entra pra akatsuki (com isso da pra você fazer bonusXp) - storage é 85798723243 valor 1 O que tem no Heart System - Ele só te da o coração se você for acima de tal level - adiciona o nome da pessoa no coração Vamos la a script Npc.xml <?xml version="1.0" encoding="UTF-8"?> <npc name="[Akatsuki] Tobi" script="data/npc/scripts/AkatsukiSystem.lua" walkinterval="2000" speed="0" floorchange="0"> <health now="100" max="100"/> <look type="128" head="0" body="0" legs="0" feet="0" addons="0"/> <parameters> <parameter key="message_greet" value="Hello You who joins {akatsuki}?"/> </parameters> </npc> Npc/Script/AkatsukiSystem.lua -- Do not remove the credits -- -- [NPC] Akatsuki System -- -- developed by Rigby -- -- Especially for the Xtibia.com -- local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end local level = 1 -- Level preciso pra entra para akatsuki local itemid = 5943 -- id do coração local quantidade = 6 -- quantos hearts e preciso local bonushp = 300000 -- quanto de bonus de life vai ganha local bonusmp = 30000 -- quanto de bonus de mana vai ganha local config = { --[Vocation] = ( Nova Vocation, New Outfit ) [1] = { 5, 128}, [2] = { 6, 129}, [3] = { 7, 130}, [4] = { 8, 131}, } function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'akatsuki') then if getPlayerVocation(cid) ~= config then if getPlayerStorageValue(cid, 85798723243) == -1 then if getPlayerLevel(cid) >= level then selfSay('Are you sure you want to join the Akatsuki?.', cid) talkState[talkUser] = 1 else selfSay('You there and very weak, vain talk to you when you have level '..level..'.', cid) end else selfSay('You already part of the akatsuki!', cid) end else selfSay('Do not need you now!', cid) end end if talkState[talkUser] == 1 and msgcontains(msg, 'yes') then selfSay('To prove their loyalty, you have to bring '..quantidade..' {hearts}.', cid) talkState[talkUser] = 2 end if talkState[talkUser] == 2 and msgcontains(msg, 'hearts') then if getPlayerItemCount(cid, 5943) >= 6 then local voc = config[getPlayerVocation(cid)] doPlayerSetVocation(cid, voc[1]) local outfit = {lookType = voc[2]} doCreatureChangeOutfit(cid, outfit) setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+bonushp) setCreatureMaxMana(cid, getCreatureMaxMana(cid)+bonusmp) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) doPlayerRemoveItem(cid, 5943, 6) doCreatureAddMana(cid, getCreatureMaxMana(cid)) setPlayerStorageValue(cid,85798723243,1) db.executeQuery("UPDATE `players` SET `name` = '[Akatsuki] "..getCreatureName(cid).."' WHERE `id` = "..getPlayerGUID(cid)..";") addEvent(doRemoveCreature, 5*1000, cid, true) doPlayerSendTextMessage(cid,25,'You will be kicked in 5 seconds to enter the akatsuki!') selfSay('Congratulations now you are part of akatsuki.', cid) talkState[talkUser] = 0 else selfSay('No use to fool me, you do not have '..quantidade..' hearts, goes behind.', cid) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Heart System Creaturescript/script/heartsystem -- Do not remove the credits -- -- [CREATURESCRIPT] Heart System -- -- developed by Rigby -- -- Especially for the Xtibia.com -- function onKill(cid, target, lastHit) local item = 5943 -- id do coração local level = 300 -- level necessário para tira o coração if isPlayer(cid) and isPlayer(target) then if getPlayerLevel(target) >= level then local add = doPlayerAddItem(cid, item, 1) doItemSetAttribute(add, "description","Esse coração é de "..getPlayerName(target).." que foi morto no level "..getPlayerLevel(target).." por "..getPlayerName(cid)..".") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Voce Mato " ..getPlayerName(target).. ".") doSendMagicEffect(getPlayerPosition(cid),12) end end return true end Creaturescript.xml Tag <event type="kill" name="HeartSys" event="script" value="heartsystem.lua"/> Podem comenta duvidas, opiniões ou melhoramento para que haja a versão 2.0
  24. Ola Xtibianos precisava de um npc que fale com um char de cada vez. Ex1: char nr1 fala hi NPC fala hi Ex2: char nr2 fala hi NPC fala calma estou ocupado no momento Versão 8.6 Tfs 0.4
  25. NPC Capitain data/npcs/scripts/captain.lua : local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end npcHandler:addModule(FocusModule:new()) data/npcs/Captain.xml : <?xml version="1.0" encoding="UTF-8"?><npc name="Captain" script="data/npc/scripts/captain.lua" walkinterval="0" floorchange="0"> <health now="144" max="150"/> <look type="128" head="95" body="100" legs="35" feet="100" addons="3" corpse="2212"/> <parameters> <parameter key="module_travel" value="1"/> <parameter key="message_greet" value="Hello |PLAYERNAME|. If you don't know where to flow, say travel."/> <parameter key="travel_destinations" value="exempo,x,y,z,preço;exempo2,x,y,z,preço;"/> </parameters> </npc> Explicações : <parameter key="travel_destinations" value="exempo,x,y,z,preço;exempo2,x,y,z,preço;"/> Exemplo1 = Nome do local X = Posição X Y = Posição Y Z = Posição Z Preço = Preço do Teleport value= "nome do local, posição x, posição y, posição z, preço do teleport" ; -- Usado pra adicionar mais locais
×
×
  • Criar Novo...