Jump to content

Olá Tibiano! Notamos que você está com um adblocker ligado... 

Nós promovemos servidores dentro da comunidade, para que eles tenham visibilidade.

Por favor, nos ajude a continuar promovendo esses servidores. Adicione nosso domínio na whitelist de seu adblocker, ok? :)

Search the Community

Showing results for tags 'npc'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • xTibia - Notícias e Suporte
    • Regras
    • Noticias
    • Soluções
    • Projetos Patrocinados
    • Tutoriais para Iniciantes
    • Imprensa
  • OTServ
    • Notícias e Debates
    • OTServlist
    • Recursos
    • Suporte
    • Pedidos
    • Downloads
  • OFF-Topic

Categories

There are no results to display.


Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Sou

Found 140 results

  1. Dale! suave? deixo aqui um npc que fiz agora para meu servidor... Como fala no titulo, ele cobra uma certa quantia de dinheiro ou item, para dar uma informação, só configure certinho. É bem simples mas pode ajudar alguém Lembrando que está testado e funcionando 100% Vá em data/npc e crie um arquivo XML com o nome info e cole isso dentro... Salve e feche... Agora em data/npc/scripts crie um arquivo LUA com o nome info e cole dentro... Bom, é só isso espero ajudar alguém, se ajudei deixa o REP! Aí pra fortalecer a amizade LEMBRANDO QUE DENTO DO ARQUIVO ESTÁ A EXPLICAÇÃO.
  2. 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+ ?
  3. olá galera do xtibia auguem poderia fazer esse npc para mim ? Player: Hi Npc: olá [PLAYERNAME] você deseja entrar em uma missão ? Player: Yes Npc: Eu gosto muito do pokemon clefable ele sempre foi o meu preferido desde que comecei a jogar pokemon mais nunca consegui captura-lo. sera que você pode captura-lo e trazelo para mim ? Player: Yes Npc: Muito Obrigado Boa sorte treinador ==================================== e depois que o treinador capturar o clefable e levar para o Npc Player:Hi Npc: Olá você de novo tem boas noticias ? conseguiu capturar meu querido clefable ? Player: Yes Npc: OOhh!! Muito obrigado .. Aqui está sua recompensa A recompensa pode ser 30% de experiencia Versão 8.54
  4. Alguem tem um script de Reload Npc automático?
  5. quando uma pessoa fala com um npc e morre o server laga
  6. data\npc\NomedoNpc.xml data\npc\scripts\nomedoarquivo.lua Espero Que Gostem Ate ++
  7. 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?
  8. 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á.
  9. MathhCunha

    NPC para MINING

    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.
  10. 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
  11. 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: [email protected] / Skype: Anderson Souza
  12. 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
  13. 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>
  14. 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())
  15. 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
  16. 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+
  17. 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á!
  18. 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
  19. 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
  20. ola galera! gostaria de uma ajuda na criação de um npc que troca x item por 1 pokemon exemplo: escence zard x 50 >shiny charizard escence toise x 50 >shiny blastoise estarei colocando uns 40 pokes nesse npc . agradeço dmais a ajuda dos companheiros ae do forum. vlw uso base cyan by senhor
  21. Hail Xtibianos! Desenvolvi esse sistema pois achei legal o npc fazer isso. O que o sistema faz? Ele seta o focus do npc em um player quando o player se aproxima dele e espera por 5 segundos. Se o player não "falar" com o npc, o npc ignora ele (não foca mais o player). Mas o player pode "falar" com o npc quando quiser (não interfere em nada nesse sistema). Em npchandler.lua: Procure: Adicione dentro da tabela: Procure: Antes da função: Adicione: Procure: Dentro do escopo de: Adicione: Pronto. Adicionado.
  22. Bom dia / Boa tarde / Boa noite a todos ! Estou a procura de alguns Npc's para meu Server de Pokemon. Estou focado na criação do mapa, que comecei do 0 e por isso gostaria da ajuda de vocês para que eu possa agilizar o maximo possivel. Dei uma vasculhada rápida no forum mas nao encontrei o que eu queria, então, quem puder ajudar, e quem nao puder também, fico agradecido. Peço que nao critiquem, e nem deem respostas com ofensas, afinal, não estou cobrando nada de ninguém, apenas pedindo uma ajuda a quem puder se disponibilizar. Vamos la ! OBS: Server PDA com Level e icon system. 1. Professor Carvalho. Função: - Dar a escolha dos 3 pokemons iniciais (lvl 5) e 10 pokebolas. Obs: Já tenho um no meu server, porém, ele está configurado apenas para definir e teleportar para a cidade inicial. 2. Npc de Batalha Funções: - Duelar 1x por dia com o player. - Pokemon do NPC da Xp para o seu pokemon. - Player so pode usar o numero de pokemons que o Npc possui. - Cobra um valor para batalhar. - Recompensa em dinheiro pela vitória. 3. Líder de Gym (Apenas 1, eu copio e edito os outros) Funções: - Duelar apenas 1x com o player. - Player pode usar todos os seus pokemons. - Cobrar um valor para batalhar. - Recompensa com Insignia. - Ter acesso a uma porta ou teleporte exclusivo apenas depois de vencer. 4. NPC Base para quest de task. Funções: - Matar X quantidade de pokemons selvagens. - Recompensa em dinheiro e xp para o player. 5. NPC Base para Quest de entregar itens. Funções: - NPC pede x itens. - Recompensa em itens. --------------------------------------------------------------------------------------------------//----------------------------------------------------------------------------------------------------- Possuo algumas dúvidas em relação a outras coisas também. Se alguem puder dar alguma dica de como arrumar ou conseguir as coisas abaixo, ficarei agradecido. • Independente do level selvagem do pokemon, meu poke recebe a mesma quantidade de exp. EX: Magikarp(1) - 20 xp Magikarp(5) - 20 xp • Adicionar barra de exp em baixo da barra de vida no pokemon. • Utilizar um sistema que quanto mais leveis o pokemom upe com o player, mais forte ele será. E mostrar a quantidade de leveis upados no look da ball. EX: Caterpie capturado no level 1 e upado até o level 10, será mais forte que um caterpie no level 10. EX BALL: Caterpie(10)[+9] --------------------------------------------------------------------------------------------------//----------------------------------------------------------------------------------------------------- Agradeço a todos pela coompreensão e por tirar um tempinho a ler o post. Qualquer coisa podem entrar em contato direto cmg por uma sala hamachi. Sala thloko, Senha 1234.
  23. Alguém poderia me ajudar resolver o problema do meu ginasio? Meu script esta configurado com as seguintes mensagens Sabrina: Hello G U M B A L L, my name is Sabrina and I'm Saffron's Gym Leader. How may I help you? 12:48 G U M B A L L: battle 12:48 Sabrina: To battle agains't a gym leader you need pokemons. ja tentei falar com ela com o pokémon pra fora mas não funciona,ela não faz nada SE PUDEREM ME AJUDAR DOU REP
  24. Saudações, xTibianos! Hoje venho lhes trazer um npc desenvolvido por mim, cuja ideia foi de nosso ADM @Daniel. Antes de mais nada, gostaria de avisar: o NPC possui uma GRANDE possibilidade de customização. Você pode escolher quais sistemas você vai quer que ele tenha, pode escolher se vai usar prisão ou não, pode escolher o tempo de punição ao membro infrator, etc. Sistemas presentes Esse NPC possui os seguintes sistemas: Anti-bot system Qualquer jogador pode ir até o NPC e denunciar algum outro jogador (que provavelmente esteja usando bot). O NPC então enviará uma checagem de bot ao jogador denunciado. Caso o jogador denunciado não responda a checagem dentro do tempo hábil, ele será punido (enviado para uma prisão ou kickado). Power Abuse system Esse sistema serve para punir aqueles membros de level alto que ficam fazendo "free kill" (matando jogadores mais fracos abusivamente). Qualquer jogador (qualquer level) pode ir até o npc e denunciar algum outro jogador (level maior) alegando que ele sofreu power abuse. O npc fará uma checagem, e se o jogador denunciante tiver sido morto um minimo de X vezes (configurável) por aquele jogador denunciado, o jogador denunciado será punido (mandado pra prisão ou kickado). Aparência do NPC Esse é o NPC, visualmente falando: inspiração: Instalação Agora chega de enrolação, vamos à instalação do npc: » Vá na pasta mods, crie um arquivo chamado JusticeiroMods.xml e coloque isso dentro: *atente-se para essa parte configurável do script acima: *nessa parte, o strBot e o strPwrAbs devem ser iguais aos informados no arquivo Justiceiro.lua que será mostrado mais abaixo » Agora vá na pasta data\npc, crie um arquivo chamado Justiceiro.xml e coloque isso dentro: » Agora vá na pasta data\npc\scripts, crie um arquivo chamado Justiceiro.lua e coloque isso dentro: *atente-se para essa parte configurável do script acima: -----------------------------------------------------------------------------------------------------------------------------------------------------PARTE CONFIGURAVEL----------------------------------PARTE CONFIGURAVEL------------------------------PARTE CONFIGURAVEL------------------------------------------------------------------------------------------------------------------------------------------------------------------------local usarAntiBot = "sim" --coloque "nao" caso não queira usar o anti-bot do npclocal usarPowerAbuse= "sim" --coloque "nao" caso não queira usar o power abuse system do npclocal cadeia = "sim" --use "sim" caso vc queira mandar o infrator para a cadeia, ou "nao" caso vc nao tenha uma cadeialocal cadeiaPos = { --coordenadas das celas da cadeia, para caso vc tenha colocado o 'cadeia = "sim"' no campo acima[1] = {coord = {x = 32314, y = 32280, z = 8}, preso={}--[[DEIXE ISSO VAZIO]]}, --ponha as coordenadas da cela 1[2] = {coord = {x = 32317, y = 32280, z = 8}, preso={}--[[DEIXE ISSO VAZIO]]}, --ponha as coordenadas da cela 2[3] = {coord = {x = 32320, y = 32280, z = 8}, preso={}--[[DEIXE ISSO VAZIO]]}, --ponha as coordenadas da cela 3[4] = {coord = {x = 32322, y = 32280, z = 8}, preso={}--[[DEIXE ISSO VAZIO]]}, --ponha as coordenadas da cela 4}local tempoBot = 5 --tempo em minutos para o player reportado como botter responder a verificaçãolocal tempoPunicao = 60 --tempo em minutos que o infrator ficara presolocal maxDeath = 7 --quantidade de mortes "desbalanceadas" (player mais fraco contra palyer muito mais forte) considerada como power abuselocal cooldown = 30 --tempo em segundos para o denunciante poder fazer outra denuncialocal strBotDen = 690110local strBot = 69011local strPwrAbsDen = 690120local strPwrAbs = 69012-------------------------------------------------------------------------------------------------------------------------------------------------FIM DA PARTE CONFIGURAVEL-----------------------FIM DA PARTE CONFIGURAVEL---------------------FIM DA PARTE CONFIGURAVEL--------------------------------------------------------------------------------------------------------------------------------------------------------------------- obs: lembrando que você pode adicionar QUANTAS CELAS QUISER! Basta seguir a lógica da tabela relacionada as celas. obs²: e não esqueça de ler as instruções contidas em cada linha dessa parte do script! Como usá-lo em meu servidor? (recomendação) Eu recomendo também usar em seu servidor algum sistema automático de anti-bot, além do npc. -Por quê? Porque dessa forma dificultará a vida do botter. Digamos que o sistema automático faça mande uma checagem para todos os jogadores a cada 1 hora. Sem o meu npc, o botter pode entrar a cada hora no server e responder a checagem automática. Já tendo o meu npc, o botter pode receber uma checagem de bot a qualquer instante (pois qualquer membro pode fazer a denuncia a qualquer instante). Assim, ele não terá uma previsão de tempo para que ele volte à janela do tibia somente para responder a checagem do bot. Mapa de prisão Bom, galera, esse é o npc. Se você quiser usar o sistema de prisão mas não tiver uma prisão em seu server, aqui tem uma prisão feita pelo @Daniel para que vocês possam baixar e usar em conjunto com esse sistema: http://www.xtibia.com/forum/topico/240867-86-pris%C3%A3o-30-celas/ Eu testei todo esse sistema que nem um condenado. Não consegui achar nenhuma falha. Então se alguém encontrar alguma falha, por favor relate-a no campo de comentários abaixo. Por hoje é isso, pessoal. Até a próxima. Abraços. Não autorizo a postagem desse conteúdo sem meus devidos créditos!
  25. È um sistema para poketibia que serio o Saffari totalmente automático. [+] O jogador não perde level(experience) ao morrer. [+] O jogador é teleportado quando acabar o tempo ou quando suas Saffari balls acabar! [+] Mostra o tempo restante num comando exclusivo !saffari time Pasta mods Saffari.xml <?xml version="1.0" encoding="ISO-8859-1"?> <mod name="Saffari" version="2.0" author="Vodkart" contact="none.com" enabled="yes"> <config name="saffari_func"><![CDATA[ config = { price = 5000, level = 50, need_premium = false, minutes = 60, saffari_positions = {enter = {x=152,y=51,z=5}, exit = {x=163,y=51,z=5}}, saffari_balls = {11445,30}, -- itemid e quantidade blocked_pokeballs = {2146, 2147, 11437, 11441, 11445}, -- pokeball, ultraball, greatball, masterball, safarriball storages = {874547,874548} -- start, time } function timeString(timeDiff) local dateFormat = { {"day", timeDiff / 60 / 60 / 24}, {"hour", timeDiff / 60 / 60 % 24}, {"minute", timeDiff / 60 % 60}, {"second", timeDiff % 60} } local out = {} for k, t in ipairs(dateFormat) do local v = math.floor(t[2]) if(v > 0) then table.insert(out, (k < #dateFormat and (#out > 0 and ', ' or '') or ' and ') .. v .. ' ' .. t[1] .. (v ~= 1 and 's' or '')) end end local ret = table.concat(out) if ret:len() < 16 and ret:find("second") then local a, b = ret:find(" and ") ret = ret:sub(b+1) end return ret end ]]></config> <event type="login" name="SaffariRegister" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid, "SaffariDeath") return true end]]></event> <talkaction words="/saffari;!saffari" event="buffer"><![CDATA[ domodlib('saffari_func') param = string.lower(param) if getPlayerStorageValue(cid, config.storages[1]) <= 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"you are not in Saffari") return true end if (param == "") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"invalid command, enter !saffari time or !safari leave") return true elseif isInArray({"time","tempo"}, param) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, (getPlayerStorageValue(cid, config.storages[2]) - os.time() > 0 and "Left "..timeString(getPlayerStorageValue(cid, config.storages[2]) - os.time()).."" or "Time is over. Please wait a moment.").."\nTo leave enter command: !saffari leave") return true elseif isInArray({"sair","leave"},param) then doTeleportThing(cid, config.saffari_positions.exit) setPlayerStorageValue(cid, config.storages[1], 0) setPlayerStorageValue(cid, config.storages[2], 0) doPlayerSendTextMessage(cid,22,'you left the saffari zone.') return true end ]]></talkaction> <globalevent name="SaffariCheck" interval="60" event="script"><![CDATA[ domodlib('saffari_func') function onThink(interval, lastExecution) local on = getPlayersOnline() if #on > 0 then for i = 1, #on do if getPlayerStorageValue(on[i], config.storages[1]) > 0 then if getPlayerItemCount(on[i], config.saffari_balls[1]) <= 0 or getPlayerStorageValue(on[i], config.storages[2]) - os.time() <= 0 then doTeleportThing(on[i], config.saffari_positions.exit) setPlayerStorageValue(on[i], config.storages[1], 0) setPlayerStorageValue(on[i], config.storages[2], 0) doPlayerSendTextMessage(on[i],22,'you left the saffari zone.') end end end end return true end ]]></globalevent> <event type="death" name="SaffariDeath" event="script"><![CDATA[ domodlib('saffari_func') function onDeath(cid, corpse, deathList) if isPlayer(cid) and getPlayerStorageValue(cid, config.storages[1]) >= 1 then setPlayerStorageValue(cid, config.storages[1], 0) setPlayerStorageValue(cid, config.storages[2], 0) doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, 0) end return true end ]]></event> </mod> NPC Saffari Man.xml <?xml version="1.0"?> <npc name="Saffari Man" script="data/npc/scripts/saffari.lua" walkinterval="50000" floorchange="0"> <health now="100" max="100"/> <look type="129" head="95" body="116" legs="121" feet="115" addons="3"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|. You want to {enter} in the {saffari} zone!" /> </parameters> </npc> saffari.lua domodlib('saffari_func') 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 function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser,msg = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid,msg:lower() if isInArray({"saffari","enter","entrar"}, msg) then npcHandler:say('you can stay in the Saffari zone by '..config.minutes..' minutes, the price is '..config.price..' gp(s), You want enter? {yes}', cid) talkState[talkUser] = 1 elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then for i = 1, #config.blocked_pokeballs do if getPlayerItemCount(cid, config.blocked_pokeballs[i]) >= 1 then npcHandler:say('Keep your '..getItemNameById(config.blocked_pokeballs[i])..'!', cid) return true end end if config.need_premium and not isPremium(cid) then npcHandler:say('Sorry, you need to be premium!', cid) return true elseif getPlayerLevel(cid) < config.level then npcHandler:say('Sorry, you must be at least level '..config.level..' to enter the Saffari zone!', cid) return true elseif not doPlayerRemoveMoney(cid, config.price) then npcHandler:say('Sorry, you do not have enough money!', cid) return true end doPlayerAddItem(cid, config.saffari_balls[1], config.saffari_balls[2]) selfSay("Thanks, you've been teleported to the Saffari zone and has "..config.minutes.." minutes, if you want to leave enter {!saffari leave}.", cid) doTeleportThing(cid, config.saffari_positions.enter) setPlayerStorageValue(cid, config.storages[1], 1) setPlayerStorageValue(cid, config.storages[2], os.time()+config.minutes*60) elseif msg == "no" and talkState[talkUser] >= 1 then selfSay("then ok.", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
×
×
  • Create New...