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. Mostrarei aqui, exemplos de NPCs Comuns no TIBIA. NPC Distance (Vendedor de Artigos para Paladins) NPC Boat (Funções no próprio XML) (Para viagens entre citys) NPC Boat (Funções no próprio LUA) NPC King (Para promotion) NPC Oracle (Para sua primeira Vocation) NPC Runes (Vendedor de Runas) Creditos: MokerHamer
  2. Olá pessoal, tenho esse script que troca um item por outro, no caso um poke por outro, mas acontece que quando é feita a troca, a ball vem em "Unique Item" dai não é possível fazer troca e nem jogar fora... alguém poderia me ajudar a deixa a pokebola normal sem esse unique item por favor? agradeço pela atenção, obrigado!
  3. Informações Bruce The Fighter é um NPC, mas também pode lutar contra outros jogadores, servindo como um ótimo boss de quests; A luta é inicada com um diálogo; Ele tem duas formas: normal e evoluída, mudando da primeira pra segunda quando chegar a uma porcentagem de vida configurável; Quando ele é derrotado, adiciona um storage (para ser usado como você quiser), itens, dinheiro e experiência; Também pode ser configurado se ele irá lutar novamente com o mesmo jogador, tendo também uma opção de exhaust; Quase totalmente configurável; São vários arquivos, então acompanhe atentamente o passo-a-passo da configuração/instalação. Códigos creaturescripts/scripts/monster1.lua creaturescripts/scripts/monster2.lua npcs/Bruce The Fighter.xml npcs/scripts/challenger.lua monsters/challenger.xml monsters/challenger_evolved.xml TAGs creaturescripts.xml <event type="statschange" name="Monster1" event="script" value="monster1.lua"/> <event type="statschange" name="Monster2" event="script" value="monster2.lua"/> monsters/monsters.xml <monster name="Bruce The Fighter" file="Meus Monstros/challenger.xml"/> <monster name="Bruce The Fighter_evolved" file="Meus Monstros/challenger_evolved.xml"/> Configuração/Instalação Na parte dos códigos, está indicado o lugar e o nome que o arquivo deverá ter. Não troque; No arquivo monsters1.lua, você pode decidir a porcentagem da vida na qual o Bruce trocará para a forma evoluída. A forma evoluída virá com essa mesma porcentagem de vida; No arquivo monsters2.lua, configure a experiência (exp), o dinheiro (money), o item e a quantidade (count) desse item que o jogador ganhará quando derrotar o Bruce. Também deve-se configurar o tempo de exhaust, como indicado no arquivo; Em Bruce The Fighter.xml, você pode definir as falas, o nome e a aparência inicial do Bruce (se mudar, não esqueça de trocar nos monstros também); No arquivo challenger.lua, escolha se o Bruce irá duelar novamente com o mesmo jogador; Nos arquivos challenger.xml e challenger_evolved.xml você definirá a força, vida e muitas outras coisas do Bruce (se tiver mudado a aparência ou o nome, deve mudar aqui também). Caso não saiba mexer nos monstros, procure um tutorial na seção de tutoriais de scripting; Ao mudar algo do Bruce, verifique o padrão e preste bastante atenção para não esquecer nenhuma parte; O storage que será mudado ao derrotá-lo é 69507, tendo valor inicial -1 (não derrotou nenhuma vez) e aumentando +1 para cada vez que o Bruce é derrotado (0, 1, 2, ...). Recomendo que o Bruce esteja em uma sala onde somente um jogador de cada vez possa entrar.
  4. Galera estou com problema, tipo eu abro normal ele e tipo eu importo npc pokes eles nao aparecem, Antes aparecia alguem pode me ajudar? tipo do nada os npcs nao aparecem mais so seu eu adicionar 1 por 1 me ajudem
  5. Primeira mente gostaria de avisar que este é meu primeiro post Vamos lá: Gostaria de um NPC o qual você possa realizar uma task diária de SURVIAL Ao falar com o NPC você diria: "Survival" e automaticamente você e seu time que estaria posicionados em X locais seria teleportados a uma arena onde waves de monstros nasceriam para que você possa combatê-los, Cada wave tem uma quantia certa de monstros e uma recompensa em gold caso o player morra em x wave, o prêmio de todas a waves as quais ele venceu seriam depositados automaticamente no banco do jogador
  6. Gostaria de um npc que teleporta o player para quatro lugares diferentes... informaçoes do npc: Nome:Selector Dialogo: Npc:Caraminholas na cabeça (nick do player) ? Player:yes Npc:Gostaria de fazer o teste para sua casa? player:yes npc:qual dessas caracteristicas mais combinam com você? coragem,lealdade,inteligencia ou astucia? Player:irá falar a caracteristica que mais combina com ele,depois irá ser teleportado para a sala dessa caracteriscta... (quero que de pra configurar se ele fala coragem vai pra um lugar se fala astucia pra outro assim por diante...) E também quero que só de para ele ser ''selecionado'' uma unica vez....
  7. Galera, to com um problema na grizzly adam e não ta entregando o premio quando termina a task, por exemplo quando termina dos minotaur, o player fala com ela pra entregar a task "report" mas ela não responde nada.. segue abaixo o codigo dela 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 choose = {} local cancel = {} local available = {} local grizzlyAdamsConfig = { ranks = { huntsMan_rank = { {id=11208, buy=0, sell=50, name='antlers'}, {id=10549, buy=0, sell=100, name='bloody pincers'}, {id=11183, buy=0, sell=35, name='crab pincers'}, {id=10573, buy=0, sell=55, name='cyclops toe'}, {id=10564, buy=0, sell=30, name='frosty ear of a troll'}, {id=11193, buy=0, sell=600, name='hydra head'}, {id=11366, buy=0, sell=80, name='lancer beetle shell'}, {id=10578, buy=0, sell=420, name='mutated bat ear'}, {id=11222, buy=0, sell=400, name='sabretooth'}, {id=11367, buy=0, sell=20, name='sandcrawler shell'}, {id=10547, buy=0, sell=280, name='scarab pincers'}, {id=11365, buy=0, sell=60, name='terramite legs'}, {id=11363, buy=0, sell=170, name='terramite shell'}, {id=11184, buy=0, sell=30000, name='terrorbird beak'}, {id=7398, buy=0, sell=500, name='cyclops trophy'}, {id=11315, buy=0, sell=15000, name='draken trophy'}, {id=11330, buy=0, sell=8000, name='lizard trophy'}, {id=7401, buy=0, sell=500, name='minotaur trophy'} }, bigGameHunter_rank = { {id=7397, buy=0, sell=3000, name='deer trophy'}, {id=7400, buy=0, sell=3000, name='lion trophy'}, {id=7394, buy=0, sell=3000, name='wolf trophy'} }, trophyHunter_rank = { {id=7393, buy=0, sell=40000, name='demon trophy'}, {id=7396, buy=0, sell=20000, name='behemoth trophy'}, {id=7399, buy=0, sell=10000, name='dragon lord trophy'}, {id=10518, buy=1000, sell=0, name='demon backpack'}, }, } } local Topic = {} function greetCallback(cid) Topic[cid] = 0 return true end local function setNewTradeTable(table) local items = {} for _, v in ipairs(table) do items[v.id] = {itemId = v.id, buyPrice = v.buy, sellPrice = v.sell, subType = 0, realName = v.name} end return items end local function setNewLineTable(oldTable, newTable) for k, v in pairs(oldTable) do table.insert(newTable, k, v) end return true end function creatureSayCallback(cid, type, msg) local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_PRIVATE and 0 or cid if (msgcontains(msg, "hi") or msgcontains(msg, "hello")) and (not npcHandler:isFocused(cid)) then if (getPlayerStorageValue(cid, 100157) == -1) then npcHandler:say("Welcome "..getCreatureName(cid)..". Would you like to join the 'Paw and Fur - Hunting Elite' or say {trade} to buy stamina?", cid) npcHandler:addFocus(cid) talkState[talkUser] = 5 else npcHandler:say("Welcome back old chap. What brings you here this time?", cid) npcHandler:addFocus(cid) talkState[talkUser] = 0 end return true end if(not npcHandler:isFocused(cid)) then return false end if msgcontains(msg, "bye") or msgcontains(msg, "farewell") then selfSay("Happy hunting, old chap!", cid, TRUE) Topic[talkUser] = 0 npcHandler:releaseFocus(cid) npcHandler:resetNpc(cid) end if (isInArray({"yes", "join"}, msg:lower()) and talkState[talkUser] == 5) then setPlayerStorageValue(cid, 100157, 1) npcHandler:say("Great! A warm welcome to our newest member: "..getCreatureName(cid).."! Ask me for a {task} if you want to go on a hunt.", cid) talkState[talkUser] = 0 elseif (msg:lower() == "no" and talkState[talkUser] == 5) then npcHandler:say("No problem old chap. Come back if you change your mind.", cid) end if (getPlayerStorageValue(cid, 100157) == -1) then npcHandler:say("You'll have to {join} us to get more information.",cid) return false end if isInArray({"offer", "trade"}, msg:lower()) then if getPlayerRank(cid) >= 2 then if getPlayerRank(cid) == 2 or getPlayerRank(cid) == 3 then tradeRank = grizzlyAdamsConfig.ranks.huntsMan_rank elseif getPlayerRank(cid) == 4 then tradeRank = grizzlyAdamsConfig.ranks.bigGameHunter_rank setNewLineTable(grizzlyAdamsConfig.ranks.huntsMan_rank, grizzlyAdamsConfig.ranks.bigGameHunter_rank) elseif getPlayerRank(cid) == 5 or getPlayerRank(cid) == 6 then tradeRank = grizzlyAdamsConfig.ranks.trophyHunter_rank setNewLineTable(grizzlyAdamsConfig.ranks.huntsMan_rank, grizzlyAdamsConfig.ranks.bigGameHunter_rank) setNewLineTable(grizzlyAdamsConfig.ranks.huntsMan_rank, grizzlyAdamsConfig.ranks.trophyHunter_rank) end local items = setNewTradeTable(tradeRank) local function onBuy(cid, item, subType, amount, ignoreCap, inBackpacks) if ignoreCap == false and (getPlayerFreeCap(cid) < getItemWeightById(items[item].itemId, amount) or inBackpacks and getPlayerFreeCap(cid) < (getItemWeightById(items[item].itemId, amount) + getItemWeightById(1988, 1))) then return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'You don\'t have enough cap.') end if items[item].buyPrice then doPlayerRemoveMoney(cid, amount * items[item].buyPrice) for i = 1, amount do if inBackpacks then local backpack = doCreateItemEx(1988, 1) doAddContainerItem(backpack, items[item].itemId, amount) else doPlayerAddItem(cid, items[item].itemId, amount, true) end end return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'You bought '..amount..'x '..items[item].realName..' for '..items[item].buyPrice * amount..' gold coins.') end return true end local function onSell(cid, item, subType, amount, ignoreCap, inBackpacks) if items[item].sellPrice then doPlayerAddMoney(cid, items[item].sellPrice * amount) doPlayerRemoveItem(cid, items[item].itemId, amount) return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'You sold '..amount..'x '..items[item].realName..' for '..items[item].sellPrice * amount..' gold coins.') end return true end openShopWindow(cid, tradeRank, onBuy, onSell) return selfSay('It\'s my offer.', cid) else return selfSay('You don\'t have any rank.', cid) end end if isInArray({"tasks", "task", "mission"}, msg:lower()) then local can = getTasksByPlayer(cid) if (getPlayerStorageValue(cid, 100157) == -1) then return (npcHandler:say("You'll have to {join}, to get any {tasks}.",cid)) end if #can > 0 then local text = "" local sep = ", " table.sort(can, (function(a, b) return (a < b) end)) local t = 0 for _, id in ipairs(can) do t = t + 1 if t == #can - 1 then sep = " and " elseif t == #can then sep = "." end text = text .. "{" .. (tasks[id].name or tasks[id].raceName) .. "}" .. sep end selfSay("The current task" .. (#can > 1 and "s" or "") .. " that you can choose " .. (#can > 1 and "are" or "is") .. " " .. text, cid) talkState[talkUser] = 0 else selfSay("I don't have any task for you right now.", cid) end elseif msg ~= "" and canStartTask(cid, msg) then if #getPlayerStartedTasks(cid) >= tasksByPlayer then selfSay("Sorry, but you already started " .. tasksByPlayer .. " tasks. You can check their {status} or {cancel} a task.", cid) return true end local task = getTaskByName(msg) if task and getCreatureStorage(cid, QUESTSTORAGE_BASE + task) > 0 then return false end selfSay("In this task you must defeat " .. tasks[task].killsRequired .. " " .. tasks[task].raceName .. ". Are you sure that you want to start this task?", cid) choose[cid] = task talkState[talkUser] = 1 elseif msg:lower() == "yes" and talkState[talkUser] == 1 then doCreatureSetStorage(cid, QUESTSTORAGE_BASE + choose[cid], 1) selfSay("Excellent! You can check the {status} of your task saying {report} to me. Also you can {cancel} tasks to.", cid) choose[cid] = nil talkState[talkUser] = 0 elseif (msg:lower() == "report" or msg:lower() == "status") then local started = getPlayerStartedTasks(cid) local finishedAtLeastOne = false local finished = 0 if started and #started > 0 then for _, id in ipairs(started) do if getCreatureStorage(cid, KILLSSTORAGE_BASE + id) >= tasks[id].killsRequired then for _, reward in ipairs(tasks[id].rewards) do local deny = false if reward.storage then if getCreatureStorage(cid, reward.storage[1]) >= reward.storage[2] then deny = true end end if isInArray({REWARD_MONEY, "money"}, reward.type:lower()) and not deny then doPlayerAddMoney(cid, reward.value[1]) elseif isInArray({REWARD_EXP, "exp", "experience"}, reward.type:lower()) and not deny then doPlayerAddExperience(cid, reward.value[1]) doPlayerSendDefaultCancel(cid, "You gained " .. reward.value[1] .. " experience points.") elseif isInArray({REWARD_ACHIEVEMENT, "achievement", "ach"}, reward.type:lower()) and not deny then if doPlayerAddAchievement then doPlayerAddAchievement(cid, reward.value[1], true) end elseif isInArray({REWARD_STORAGE, "storage", "stor"}, reward.type:lower()) and not deny then doCreatureSetStorage(cid, reward.value[1], reward.value[2]) elseif isInArray({REWARD_POINT, "points", "point"}, reward.type:lower()) and not deny then doCreatureSetStorage(cid, POINTSSTORAGE, getCreatureStorage(cid, POINTSSTORAGE) + reward.value[1]) elseif isInArray({REWARD_ITEM, "item", "items", "object"}, reward.type:lower()) and not deny then doPlayerAddItem(cid, reward.value[1], reward.value[2]) end if reward.storage then doCreatureSetStorage(cid, reward.storage[1], reward.storage[2]) end end if tasks[id].norepeatable then doCreatureSetStorage(cid, QUESTSTORAGE_BASE + id, 2) else doCreatureSetStorage(cid, QUESTSTORAGE_BASE + id, 0) end doCreatureSetStorage(cid, KILLSSTORAGE_BASE + id, 0) if getCreatureStorage(cid, REPEATSTORAGE_BASE + id) < 1 then doCreatureSetStorage(cid, REPEATSTORAGE_BASE + id, 0) end doCreatureSetStorage(cid, REPEATSTORAGE_BASE + id, getCreatureStorage(cid, REPEATSTORAGE_BASE + id) + 1) finishedAtLeastOne = true finished = finished + 1 end end if not finishedAtLeastOne then local started = getPlayerStartedTasks(cid) if started and #started > 0 then local text = "" local sep = ", " table.sort(started, (function(a, b) return (a < b) end)) local t = 0 for _, id in ipairs(started) do t = t + 1 if t == #started - 1 then sep = " and " elseif t == #started then sep = "." end text = text .. "{" .. (tasks[id].name or tasks[id].raceName) .. "}" .. sep end selfSay("The current task" .. (#started > 1 and "s" or "") .. " that you started " .. (#started > 1 and "are" or "is") .. " " .. text, cid) Topic[cid] = 1 else selfSay("Awesome! you finished " .. (finished > 1 and "various" or "a") .. " task" .. (finished > 1 and "s" or "") .. ". Talk to me again if you want to start a {task}.", cid) end else selfSay("You haven't started any task yet.", cid) end end elseif msg:lower() == "started" then local started = getPlayerStartedTasks(cid) if started and #started > 0 then local text = "" local sep = ", " table.sort(started, (function(a, b) return (a < b) end)) local t = 0 for _, id in ipairs(started) do t = t + 1 if t == #started - 1 then sep = " and " elseif t == #started then sep = "." end text = text .. "{" .. (tasks[id].name or tasks[id].raceName) .. "}" .. sep end selfSay("The current task" .. (#started > 1 and "s" or "") .. " that you started " .. (#started > 1 and "are" or "is") .. " " .. text, cid) else selfSay("You haven't started any task yet.", cid) end elseif msg:lower() == "cancel" then local started = getPlayerStartedTasks(cid) local task = getTaskByName(msg) local text = "" local sep = ", " table.sort(started, (function(a, b) return (a < b) end)) local t = 0 for _, id in ipairs(started) do t = t + 1 if t == #started - 1 then sep = " or " elseif t == #started then sep = "?" end text = text .. "{" .. (tasks[id].name or tasks[id].raceName) .. "}" .. sep end if started and #started > 0 then selfSay("Cancelling a task will make the counter restart. Which of these tasks you want cancel?" .. (#started > 1 and "" or "") .. " " .. text, cid) talkState[talkUser] = 2 else selfSay("You haven't started any task yet.", cid) end elseif getTaskByName(msg) and talkState[talkUser] == 2 and isInArray(getPlayerStartedTasks(cid), getTaskByName(msg)) then local task = getTaskByName(msg) if getCreatureStorage(cid, KILLSSTORAGE_BASE + task) > 0 then selfSay("You currently killed " .. getCreatureStorage(cid, KILLSSTORAGE_BASE + task) .. "/" .. tasks[task].killsRequired .. " " .. tasks[task].raceName .. ". Cancelling this task will restart the count. Are you sure you want to cancel this task?", cid) else selfSay("Are you sure you want to cancel this task?", cid) end talkState[talkUser] = 3 cancel[cid] = task elseif getTaskByName(msg) and Topic[cid] == 1 and isInArray(getPlayerStartedTasks(cid), getTaskByName(msg)) then local task = getTaskByName(msg) if getCreatureStorage(cid, KILLSSTORAGE_BASE + task) > 0 then selfSay("You currently killed " .. getCreatureStorage(cid, KILLSSTORAGE_BASE + task) .. "/" .. tasks[task].killsRequired .. " " .. tasks[task].raceName .. ".", cid) Topic[cid] = 0 else selfSay("You haven't started any task yet.", cid) end elseif msg:lower() == "yes" and talkState[talkUser] == 3 then doCreatureSetStorage(cid, QUESTSTORAGE_BASE + cancel[cid], -1) doCreatureSetStorage(cid, KILLSSTORAGE_BASE + cancel[cid], -1) selfSay("You have cancelled the task " .. (tasks[cancel[cid]].name or tasks[cancel[cid]].raceName) .. ".", cid) talkState[talkUser] = 0 elseif isInArray({"points", "rank"}, msg:lower()) then if getCreatureStorage(cid, POINTSSTORAGE) < 1 then selfSay("At this time, you have 0 Paw & Fur points. You " .. (getPlayerRank(cid) == 6 and "are an Elite Hunter" or getPlayerRank(cid) == 5 and "are a Trophy Hunter" or getPlayerRank(cid) == 4 and "are a Big Game Hunter" or getPlayerRank(cid) == 3 and "are a Ranger" or getPlayerRank(cid) == 2 and "are a Huntsman" or getPlayerRank(cid) == 1 and "are a Member" or "haven't been ranked yet") .. ".", cid) elseif getCreatureStorage(cid, POINTSSTORAGE) >= 1 then selfSay("At this time, you have " .. getCreatureStorage(cid, POINTSSTORAGE) .. " Paw & Fur points. You " .. (getPlayerRank(cid) == 6 and "are an Elite Hunter" or getPlayerRank(cid) == 5 and "are a Trophy Hunter" or getPlayerRank(cid) == 4 and "are a Big Game Hunter" or getPlayerRank(cid) == 3 and "are a Ranger" or getPlayerRank(cid) == 2 and "are a Huntsman" or getPlayerRank(cid) == 1 and "are a Member" or "haven't been ranked yet") .. ".", cid) end talkState[talkUser] = 0 end end npcHandler:setMessage(MESSAGE_FAREWELL, "Happy hunting, old chap!") npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
  8. Olá galera bom meu npc aqui esta com um bug tipo ele entra os pokemon as pokebola e os potions só que o player fica pegando toda hora, o npc era pra ser o seguinte dps que o player pega o seu pokemon escolhido ele não pegue de novo só pode pega outro char criando ajuda pfv
  9. Opa, xTibianos. hoje venho lhes trazer um npc simples que eu havia feito um tempo atrás pra um membro aqui do fórum. Só fiz dar uma completada nele hoje... E adicionar 2 tipos de restrições (opicionais): restringir para apenas X vocações poderem falar com o npc; ou apenas para jogadores com X level conseguirem falar com ele. Este npc funciona da seguinte maneira: o player fala uma palavra(s)-gatilho que fará(ão) com que o npc dê uma resposta à essa(s) palavra(s). No próprio título deste tópico eu citei 2 exemplos que servem para esse npc: dar informações sobre certo item, certa localidade, etc; ou mesmo contar histórias: numa frase do npc ele pode citar um macaco dourado (palavra-gatilho), aí quando o player falar "macaco dourado" o npc descreverá o que está por trás deste macaco dourado, podendo até mesmo citar uma localidade onde ele foi visto pela última vez, e quando o player falar essa localidade o npc pode descrever a rota para se chegar nela, etc. Bom, vai da imaginação de cada um. sahusahusasah Agora seguiremos para a instalação: Vá até a pasta data\npc e crie um arquivo chamado informante.xml e coloque isso dentro: <?xml version="1.0" encoding="UTF-8"?><npc name="Informante" script="data/npc/scripts/informante.lua" walkinterval="1500" speed="100" walkradius="2" floorchange="0"><health max="100" now="100"/><look type="130" head="19" body="47" legs="132" feet="114" addons="0" mount="0"/><parameters> <parameter key="message_farewell" value="Até a próxima, |PLAYERNAME|."/></parameters></npc> Agora vá até a pasta data\npc\scripts e crie um arquivo chamado informante.lua e coloque isso dentro: ----------------------------------------------------------NPC feito por: Danihcv ; para: xTibia.com----------------------------------------------------------local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)NpcSystem.parseParameters(npcHandler)function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) endfunction onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) endfunction onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) endfunction onThink() npcHandler:onThink() end------------------------------PARTE CONFIGURAVEL------------------------------local msgs = { --["AQUI VOCÊ PÕE AS PALAVRAS-GATILHO QUE FARÃO O NPC DAR UMA RESPOSTA"] = "AQUI VOCÊ PÕE A FRASE À PALAVRA-GATILHO"["informacoes"] = "Sobre o que você quer saber? Sobre a {mysterious island} ou sobre a {second promotion}?",["mysterious island"] = 'É uma ilha que antigos diziam ficar ao sudoeste de Carlin. Há um teleport que dizem aparecer nos pântanos de Venore, talvez, ele leve a essa ilha.',["second promotion"] = 'Há um NPC que vem de muito longe e fica a caminhas pelos campos de Thais, dizem que ele pode dar a segunda vocação para os aventureiros.',}local vocs = {} --vocações que podem falar com o npc. Caso vc queira deixar sem restrição de vocação, deixe vaziolocal levelMin = 0 --caso vc queira definir um nivel minimo para falar com o npc coloque o nivel, caso não, deixe em 0-------------------------------FIM DA PARTE CONFIGURAVEL-------------------------------function greetCallback(cid)--------------------------------PARTE 2 CONFIGURAVEL--------------------------------local msgGreet = 'Olá, '..getCreatureName(cid)..'. O que você procura? {Informacoes}?' --mensagem de boas-vindaslocal msgBye = 'Até a próxima, '..getCreatureName(cid)..'.' --mensagem de despedida---------------------------------FIM DA PARTE 2 CONFIGURAVEL--------------------------------- if #vocs > 0 then if not isInArray(vocs, getPlayerVocation(cid)) then npcHandler:say('Eu não falo com '..getVocationInfo(getPlayerVocation(cid)).name..'s.', cid) npcHandler:releaseFocus(cid) npcHandler:resetNpc(cid) return false end end if getPlayerLevel(cid) < levelMin then npcHandler:say('Eu não falo com jogadores com nivel menor que '..levelMin..'.', cid) npcHandler:releaseFocus(cid) npcHandler:resetNpc(cid) return false end npcHandler:say(msgGreet, cid) npcHandler:addFocus(cid) return falseendfunction creatureSayCallback(cid, type, msg) if #vocs > 0 then if not isInArray(vocs, getPlayerVocation(cid)) then npcHandler:say('Eu ja disse que não falo com '..getVocationInfo(getPlayerVocation(cid)).name..'s.', cid) npcHandler:releaseFocus(cid) npcHandler:resetNpc(cid) return false end end if getPlayerLevel(cid) < levelMin then npcHandler:say('Eu já disse que não falo com jogadores com nivel menor que '..levelMin..'.', cid) npcHandler:releaseFocus(cid) npcHandler:resetNpc(cid) return false end for k, v in pairs(msgs) do if msgcontains(msg, k) then npcHandler:say(msgs[k], cid) elseif msgcontains(msg, 'bye') or msgcontains(msg, 'goodbye') or msgcontains(msg, 'xau') or msgcontains(msg, 'tchau') then npcHandler:say(msgBye, cid) npcHandler:releaseFocus(cid) npcHandler:resetNpc(cid) return false end end return trueendnpcHandler:setCallback(CALLBACK_GREET, greetCallback)npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)npcHandler:addModule(FocusModule:new()) ***ATENÇÃO NESSE SCRIPT /\ Pois ele possui 2 partes para configurar. Uma logo abaixo da outra. Por hoje é tudo, pessoal! Espero que gostem e façam bom uso. Abraços, Danihcv!
  10. Preciso de ajuda pra criar um npc que é o seguinte: ao escolher entre agility e strength se for a primeira vez, ele remove valor X de soul, se for for a segunda vez ele remove o mesmo valor de antes só que vezes 2, na terceira é vezes 3 e por assim em diante... lembrando que depende do que ele escolher, por exemplo, se ele foi duas vezes pedindo agility e na terceira vez ele pediu por strength, vai remover o valor inicial de soul só, entenderam? e dai dependendo da vez ele vai dando tipo pro agility a "storage = 12456, 1", na segunda vez ele dá "storage = 12456, 2" e por assim em diante, e se for o strength ele da o storage 12465, seguindo a lógica do agility
  11. Queria saber se alguém consegue fazer com que esse script funcione da seguinte maneira, somente vocations 1 podem falar com ele os outros recebem uma mensagem dizendo que não é ali o lugar deles, e que tbm só pode escolher uma das 3 promotions, se já escolheu ja era, não pode mudar... local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)NpcSystem.parseParameters(npcHandler)function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) endfunction onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) endfunction onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) endfunction onThink() npcHandler:onThink() endlocal 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})local node2 = keywordHandler:addKeyword({'epic'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can epicize you for 200000 gold coins. Do you want me to epicize you?'}) node2:addChildKeyword({'yes'}, StdModule.promotePlayer, {npcHandler = npcHandler, cost = 200000, level = 120, promotion = 2, text = 'Congratulations! You are now epicized.'}) node2:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then, come back when you are ready.', reset = true})local node3 = keywordHandler:addKeyword({'master'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can masterize you for 2000000 gold coins. Do you want me to masterize you?'}) node3:addChildKeyword({'yes'}, StdModule.promotePlayer, {npcHandler = npcHandler, cost = 2000000, level = 220, promotion = 3, text = 'Congratulations! You are now masterized.'}) node3:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then, come back when you are ready.', reset = true})npcHandler:addModule(FocusModule:new())
  12. Gostaria de pedir se alguém poderia fazer o seguinte, adicionar no script a seguir um maneira de ao upa r de lvl o player ganhasse 1 soul points, mas se ele morrer e upar o mesmo nivel ele obviamente não ganhe novamente @EDIT ja resolvi local strg = 12345local strg_lvl = 12346local config = { savePlayersOnAdvance = true}function onAdvance(cid, skill, oldLevel, newLevel) if skill == SKILL__LEVEL then doCreatureAddHealth(cid,getCreatureMaxHealth(cid)) doCreatureAddMana(cid,getCreatureMaxMana(cid)) getLevel, olderLevel = getPlayerLevel(cid), getPlayerStorageValue(cid, strg_lvl) getPoints = getPlayerStorageValue(cid, strg) if getLevel > olderLevel then if getPoints >= 0 then setPlayerStorageValue(cid, strg, (getPoints+1)) else setPlayerStorageValue(cid, strg, 1) end doPlayerAddSoul(cid, 1) end setPlayerStorageValue(cid, strg_lvl, getLevel) doPlayerSave(cid, true) end return trueend e se possível, criar um npc que ao pedir advance skill X, ele remove um ponto de soul e da um ponto de skill
  13. Créditos: Erinsx Um monk que marcará no mapa shops, depots, etc... E se você pedir ele vai te levar ao templo que você reside <?xml version="1.0" encoding="UTF-8"?> <npc name="Brevan" script="jorvikmark.lua" walkinterval="0" floorchange="0" speechbubble="1"> <health now="100" max="100"/> <look type="206" head="17" body="54" legs="114" feet="0" addons="0" /> <parameters> <parameter key="message_greet" value="Greetings |PLAYERNAME|! I can mark your {map} to help you find you way around! If you want this, just say {map}! I can also make Jorvik your {home} town. If you want this, say {home}."/> </parameters> </npc> local marks = { [1]={{x=0496,y=0172,z=7},"Temple",MAPMARK_TEMPLE}, [2]={{x=0408,y=0203,z=7},"Depot",MAPMARK_LOCK}, [3]={{x=0478,y=0148,z=7},"Weapons and Armor shops",MAPMARK_SWORD}, [4]={{x=0464,y=0208,z=7},"Magic shop",MAPMARK_STAR}, [5]={{x=0476,y=0201,z=7},"Potions shop",MAPMARK_STAR}, [6]={{x=0390,y=0202,z=7},"Bank",MAPMARK_DOLLAR}, [7]={{x=0433,y=0235,z=7},"Adventurer Supplies",MAPMARK_BAG}, [8]={{x=0480,y=0163,z=7},"Mount Seller",MAPMARK_EXCLAMATION}, [9]={{x=0430,y=0210,z=7},"Loot Buyer",MAPMARK_TICK}, } 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 = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local player = Player(cid) if msg == "map" then for i = 1, #marks do player:addMapMark(marks[i][1],marks[i][3],marks[i][2]) end selfSay('I have marked your map for you, good luck!', cid) talkState[talkUser] = 0 elseif msg == "home" then player:setTown(Town(4)) selfSay('It is done! Goodbye.', cid) talkState[talkUser] = 0 else selfSay('Okay, goodbye.', cid) talkState[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  14. Olá pessoal eu estava fazendo um sisteminha aqui para meu servidor porém eu tive um erro relacionado a tabela, gostaria da ajuda de vocês para conseguir concerta-lo se possivel uma explicação do motivo desse erro. [31/05/2016 09:19:18] [Error - Npc interface] [31/05/2016 09:19:18] data/npc/scripts/DayCarre.lua:onCreatureSay[31/05/2016 09:19:18] Description: [31/05/2016 09:19:18] data/npc/scripts/DayCarre.lua:20: attempt to index global 'item' (a nil value)[31/05/2016 09:19:18] stack traceback:[31/05/2016 09:19:18] data/npc/scripts/DayCarre.lua:20: in function <data/npc/scripts/DayCarre.lua:12>
  15. Danihcv

    [8.6] prisão (30 celas)

    Olá, xTibianos. Hoje venho lhes trazer uma prisão feita pelo @Daniel (sugestão: para ser usada com o sistema do NPC Justiceiro). Download: http://www.4shared.com/file/swOY2bl7ba/prisodanihcv.html *o arquivo também está hospedado aqui no tópico, para o caso de o 4shared vir a ficar off. » Seguem prints dos 3 andares da prisão: recomendo colocar um NPC Justiceiro e um teleport (que faz ligação com a cidade do player) neste andar andar que visitantes também têm acesso andar que visitantes não têm acesso Então é isso galera. O mapa é pequeno mas quebra um galho tremendo. Por hoje é isso, pessoal. Até a próxima. Abraços. prisãodanihcv.otbm prisãodanihcv.otbm
  16. Bom dia xTibianos, procurei em portais, sites e outros um NPC Commander Stone que suas tasks funcionassem com suas reais recompensas globais. Se alguem puder me arrumar ou configurar, AGRADEÇO! Tarefas de Commander Stone: http://www.tibiawiki.com.br/wiki/Tarefas_Di%C3%A1rias#Tarefas_de_Commander_Stone_.284.29 NPC Commander Stone Tibia Wiki: http://www.tibiawiki.com.br/wiki/Commander_Stone
  17. Galera queria ajuda com um Npc, tipo ele funciona normal eu digo Hi ele diz: Hello Teste. say travel. eu digo travel ele diz: Eu posso levá-lo para? city 1 eu digo city 1 e ele me leva normal. Porem gostaria que o npc verificasse se ele tem X storage se ele nao tiver ele nao e teleportado e ele manda uma mensagem pro player: Voce nao tem tal storage. Script: Ah e se for possivel gostaria de saber se tem como arrumar o BUG de um jogador dizer que vai pra tal cidade e o outro diz ao mesmo tempo, ai quando o outro jogador diz yes vai pra cidade errada que foi a cidade que o outro jogador disse ...
  18. [30/01/2016 20:37:59] [Error - Npc interface] [30/01/2016 20:37:59] data/npc/scripts/heal.lua:onCreatureSay[30/01/2016 20:37:59] Description: [30/01/2016 20:37:59] (luaDoItemSetAttribute) Item not found ------------------------------------- Já tentei de tudo 4 meses ja tentando arrumar esse erro mas não consigo ja tentei trocar de script mas o erro insiste Talves seja por causa dos ids das ball do meu cliente não se se e isso auguem pode me ajudar ? dou rep o id das bals no meu server está assim ----------------------------------------- pokeballs = { ["normal"] = {effect = 188, on = 11826, use = 11827, off = 11828, all = {11826, 11827, 11828}}, ["great"] = {effect = 189, on = 11832, use = 11833, off = 11834, all = {11832, 11833, 11834}}, ["super"] = {effect = 190, on = 11835, use = 11836, off = 11837, all = {11835, 11836, 11837}}, ["ultra"] = {effect = 191, on = 11829, use = 11830, off = 11831, all = {11829, 11830, 11831}}, ["saffari"] = {effect = 195, on = 10975, use = 10976, off = 10977, all = {10975, 10976, 10977}}, --alterado v1.9 ["shinynormal"] = {effect = 188, on = 11737, use = 11738, off = 11739, all = {11737, 11738, 11739}}, ["shinygreat"] = {effect = 189, on = 11740, use = 11741, off = 11742, all = {11740, 11741, 11742}}, ["shinysuper"] = {effect = 190, on = 11743, use = 11744, off = 11745, all = {11743, 11744, 11745}}, ["shinyultra"] = {effect = 191, on = 11746, use = 11747, off = 11748, all = {11746, 11747, 11748}}, ["shinysaffari"] = {effect = 195, on = 12621, use = 12622, off = 12623, all = {12621, 12622, 12623}}, --alterado v1.9 } ----------------------------------------------- Meu script Heal.lua \/\/\/\/
  19. Ola boa tarde. Tenho aqui dois npcs de quest, sendo um de Drop e um de Kill. Eu uso eles para fazer as quests da historia pois assim só poderão ser concluídas apenas uma vez, porém estou precisando de sub quests também que seriam as diárias, alguém poderia tornar esses scripts para que sejam feitas novamente após 24 horas da ultima vez que completou? Kill Drop
  20. Olá pessoal estou precisando de um Npc que troque pontos vip do site por Pokemons Vips alguem poderia me ajudar com isso os pokemons vips seriam Shiny Cresselia - 25 pontos Mega Mewtwo - 25 pontos Shiny Yveltal - 25 pontos Shiny Jirachi - 25 pontos
  21. Gente, porfavor, eu preciso muito de ajuda com esse npc. Eu preciso de um npc de promotion que dê 4 opções de promotions para cada vocação. Por exemplo: Human = sorcerer ou druid ou hunter ou knight Orc = Wildheart ou Dark Lock Elf = Acher ou Arcanist Dwarf = Warrior ou Monk Porfavor gente, eu preciso muito desse npc!! Obrigado desde já!! 5 rep+
  22. Bom pessoal, Gostaria que me ajudassem, um NPC que dê várias tasks de monstros diferentes, o player escolheria um tipo de monstro, e depois que o Player Completa-lá, ganharia uma Nova Vocação e Mudasse sua Outfit (Looktype). é isso Pessoal! Espero que possam me ajudar! Abraçoos!
  23. Alguém me diz por que diabos este npc está andando? <?xml version="1.0" encoding="UTF-8"?> <npc name="Billy [Pewter Gym]" script="Billy [Pewter Gym].lua" walkinterval="0" floorchange="0" access="5" level="1" maglevel="1"> <health now="150" max="150"/> <look type="728" head="114" body="12" legs="57" feet="114" addons="0" /> <parameters> </parameters> </npc>
  24. Bem, é meio simples mas eu não sou tão bom em programação! Eu queria q quando o player falasse com o npc "historia" ele contasse uma historia e quando falasse "missão" ganharia uma storage, ai quando tivesse outra storage a (13500) ele mandasse matar alguns monstros e quando terminasse de matar ele dava uns golds Rep+
×
×
  • Criar Novo...