Ir para conteúdo

Kemmlly

Membro
  • Registro em

  • Última visita

Tudo que Kemmlly postou

  1. Quer me passar um acesso remoto?
  2. Manda o xml dele aí
  3. Duplica o arquivo de um NPC que está funcionando normal no seu mapa, limpa ele e cola o conteúdo desse NPC aí, depois aperte F5 no seu RME e tente importar novamente. Ao salvar o arquivo do NPC certifique-se que está salvando em XML, não em LUA.
  4. Explica melhor como você quer, teleporta de graça? Quais as falas? Qual a versão do seu TFS? Abre um novo tópico e me marca, para fecharem esse.
  5. Kemmlly respondeu ao post em um tópico de hubulufuss em Suporte Tibia OTServer
    Bem observado, esse não é o script que uso por isso o descuido, obrigado por perceber.
  6. Kemmlly respondeu ao post em um tópico de hubulufuss em Formação de Equipe
    Scripts eu ajudo, no que estiver a minha disposição.
  7. Qual skill, algum específico, todos ou configurável?
  8. 2342 e 2160 é id do dinheiro? function onSay(cid, words, param) if doPlayerRemoveMoney(cid, 1000000) == TRUE then doPlayerAddItem(cid,2343, 1) pos = getPlayerPosition(cid) doSendAnimatedText(pos, "BLESSED", TEXTCOLOR_RED) else doPlayerSendCancel(cid, "Você nao tem dinheiro.") end return TRUE end
  9. Preciso do script do npc que voce tem e a versão do seu ot
  10. Bom, se você quiser, só alterar no script pra ficar exatamente como pediu, acredito que saiba como, mas, fiz de uma forma diferente. Se mandar um sendcancel vai sumir rapidamente depois de um hit de outro monstro ou spell e o jogador não vai acompanhar, fiz de uma forma que ele registra no default em laranja, assim o player vê quantos ja matou a hora que quiser pois fica registrado, e quando finalizar aparece um popup na tela com a mensagem que voce pediu, mas só no monstro de numero 300, o 301 ja nao aparece mais, para o caso de o player estiver no meio da cave e ter q sair matando e nao ficar aparecendo toda hora. function onKill(cid, target, lastHit) local storageinicio = 8887 -- Storage que inicia a quest local storagequest = 8888 -- Storage da quest local storagemonstro = 8889 -- Storage que faz a contagem do monstro local monstro = "cyclops" -- Nome do monstro if(isMonster(target) == true) then local n = string.lower(getCreatureName(target)) if getPlayerStorageValue(cid, storageinicio) >= 1 and n == monstro then local contagem = getPlayerStorageValue(cid, storagemonstro) if contagem == -1 then contagem = 1 end setPlayerStorageValue(cid, storagemonstro, contagem+1) if n == monstro then doPlayerSendTextMessage(cid, 19, 'Voce matou '..contagem..' Blazings.') end if contagem == 300 then setPlayerStorageValue(cid, storagequest, 1) doPlayerPopupFYI(cid,'Voce acaba de matar os 300 Blazing va ate o Blazar e ganhe sua recompensa') end end end return true end Testa aí e me fala.
  11. Apague todo o seu creaturescripts.xml e colo isso: <?xml version="1.0" encoding="UTF-8"?> <creaturescripts> <event type="preparedeath" name="Arena" event="script" value="Arena.lua"/> <event type="login" name="PlayerLogin" event="script" value="login.lua"/> <event type="advance" name="AdvanceSave" event="script" value="advancesave.lua"/> <event type="MailReceive" name="Mail" event="script" value="mail.lua"/> <event type="reportbug" name="SaveReportBug" script="reportbug.lua"/> <event type="logout" name="demonOakLogout" event="script" value="demonOakLogout.lua"/> <event type="advance" name="fullmh" event="script" value="fullmh.lua"/> <event type="combat" name="partyAndGuildProtection" event="script" value="partyandguildprotection.lua"/> <event type="login" name="FirstItems" script="firstitems.lua"/> <event type="login" name="Welcome" script="welcome.lua"/> <event type="login" name="ExpToken" event="script" value="xp.lua"/> <event type="advance" name="LevelRecompense" event="script" value="recompenselvl.lua"/> <event type="kill" name="task_count" event="script" value="task_count.lua"/> <event type="preparedeath" name="onPrepareDeath" event="script" value="preparedeath.lua"/> <event type="kill" name="extermination" event="script" value="gnomebase/extermination.lua"/> <event type="kill" name="KillingInTheNameOf" event="script" value="killinginthenameof.lua"/> <!-- ban --> <event type="channelrequest" name="Ban_Type" event="script" value="ban/type.lua"/> <event type="channelrequest" name="Ban_Action" event="script" value="ban/action.lua"/> <event type="textedit" name="Ban_Finish" event="script" value="ban/finish.lua"/> <!-- Inquisition Full Quest --> <event type="kill" name="inquisitionPortals" script="Inquisition.lua"/> <event type="think" name="Idle" event="script" value="idle.lua"/> <event type="think" name="SkullCheck" event="script" value="skullcheck.lua"/> </creaturescripts> Salve, feche seu servidor, abra novamente e mate uma snake pra v se o erro acontece novamente. Não se preocupe que o conteúdo original do seu creaturescripts.xml está salvo aqui no tópico, depois é só copiar e jogar la novamente.
  12. Apague todas as tags que te mandei type="death" e rode o servidor, mate uma snake e v se da o erro. Recorte e cole em outro arquivo ou deixe no CTRL X para colocar de novo no creaturescripts.xml
  13. também não, faça o seguinte, abra todos esses arquivos .lua que selecionei e procure um conteúdo parecido com esse: function onDeath(cid, corpse, deathList) local killer,pos = deathList[1],getCreaturePosition(cid) addEvent(corpseRetireItems,1,killer,pos) return true
  14. pelo visto não, manda o snake.lua
  15. [7/7/2016 13:47:1] function onDeath(cid, corpse, deathList) [7/7/2016 13:47:1] local killer,pos = deathList[1],getCreaturePosition(cid) Perceba que os erros são onDeath, então provavelmente o script causador é um desses: <event type="death" name="demonOakDeath" event="script" value="demonOakDeath.lua"/> <event type="death" name="PythiusTheRotten" event="script" value="PythiusTheRotten.lua"/> <event type="death" name="fury" event="script" value="fury.lua"/> <event type="death" name="wrath" event="script" value="wrath.lua"/> <event type="death" name="spite" event="script" value="spite.lua"/> <event type="death" name="scorn" event="script" value="scorn.lua"/> <event type="death" name="snake" event="script" value="snake.lua"/> <event type="death" name="Versperoth" event="script" value="Versperoth.lua"/> <event type="death" name="redSkullAmulet" event="script" value="redamulet.lua"/> De palpite, acredito que seja o redamulet.lua, manda o conteúdo dele pra eu ver.
  16. Kemmlly respondeu ao post em um tópico de HSinhori em Suporte Tibia OTServer
    Vc ja usou esse script ou só postou aqui pra alguem modificar?
  17. Manda print do erro e a versão do seu ot
  18. Manda seu creaturescript.xml aí pra eu dar uma olhada, e também o script de um dos monstros que da esse erro
  19. Entendi, estava difícil compreender, agora ficou mais claro, vou ver o q posso fazer.
  20. Tem sim, pela manhã faço isso, nada demorado, mas estou pelo cel.
  21. ID dos itens e o script do outro npc.
  22. npc.lua local destino = {x = 1004, y = 1021, z = 7} -- Coordenadas do destino 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) local storageinicio = 8887 -- Storage que inicia a quest local storagequest = 8888 -- Storage da quest local storagemonstro = 8889 -- Storage que faz a contagem do monstro local monstro = "cyclops" -- Nome do monstro local quantidade = 300 -- Quantidade de monstros para terminar a task if (not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid if (msgcontains(msg, 'the volcano')) and getPlayerStorageValue(cid, storageinicio) == 1 and getPlayerStorageValue(cid, storagequest) ~= 1 then local contagem = getPlayerStorageValue(cid, storagemonstro) if contagem == -1 then contagem = 1 end selfSay('Voce nao terminou sua tarefa ainda, falta matar '..string.sub((contagem)-(quantidade), 2)..' '..monstro..'. Complete sua tarefa e retorne aqui.', cid) elseif (msgcontains(msg, 'the volcano')) and getPlayerStorageValue(cid, storageinicio) ~= 1 then talkState[talkUser] = 1 selfSay('Nasci e vivia em The Volcano, porem fui traido por aqueles malditos isqueiros! Me expulsaram so porque eu utilizava um {tunel proibido} para acessar o continente..', cid) elseif msgcontains(msg, 'the volcano') and getPlayerStorageValue(cid, storagequest) == 1 then selfSay('Voce ja completou sua missao, serei eternamente grato, siga seu caminho em paz!', cid) elseif msgcontains(msg, 'tunel proibido') and talkState[talkUser] == 1 then talkState[talkUser] = 2 selfSay('Existe uma maneira de acessar nossa ilha por dentro do mar, um tunel interliga a ilha ao continente. Tenho uma proposta pra voce e posso te levar ate a ilha. Quer {saber mais} ?', cid) elseif msgcontains(msg, 'saber mais') and talkState[talkUser] == 2 then selfSay('Quero que elimine, mate, extermine, o maximo de Blazing Spirits possivel, quero ver essa raca cair e nao me importo com sua extincao. Se apagar 300 da minha especie, MENOS EU, ensinarei voce a acessar a montanha dentro da ilha, aumentando seu respaw e melhorando suas hunts. {aceita} ?', cid) talkState[talkUser] = 3 elseif msgcontains(msg, 'aceita') and talkState[talkUser] == 3 then talkState[talkUser] = 4 setPlayerStorageValue(cid, storageinicio, 1) setPlayerStorageValue(cid, storagemonstro, 0) selfSay('Acordo fechado! Volte aqui com as cinzas daqueles miseraveis. Se quiser ir agora para o The Volcano, sa falar {travel} ou {blazing}.', cid) elseif msgcontains(msg, 'travel') then doTeleportThing(cid, destino) selfSay('Boa viagem.', cid) else return false end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) npc.xml <npc name="NOME DO NPC" script="data/npc/scripts/NORME DO ARQUIVO.lua" access="5" lookdir="1"> <health now="1000" max="1000"/> <look type="54" head="45" body="67" legs="79" feet="10" addons="1"/> <parameters> <parameter key="message_greet" value="Hmmm... sinto a sua vontade de mostrar sua força. Vim do {The Volcano} buscando pessoas como você." /> </parameters> </npc> em creaturescripts/scripts, crie um arquivo taskblazing.lua function onKill(cid, target, lastHit) local storageinicio = 8887 -- Storage que inicia a quest local storagequest = 8888 -- Storage da quest local storagemonstro = 8889 -- Storage que faz a contagem do monstro local monstro = "cyclops" -- Nome do monstro if(isMonster(target) == true) then local n = string.lower(getCreatureName(target)) if getPlayerStorageValue(cid, storageinicio) >= 1 and n == monstro then local contagem = getPlayerStorageValue(cid, storagemonstro) setPlayerStorageValue(cid, storagemonstro, contagem+1) if contagem >= 300 then setPlayerStorageValue(cid, storagequest, 1) end end end return true end em login.lua adicione a tag registerCreatureEvent(cid, "taskblazing") creaturescripts.xml <event type="kill" name="taskblazing" event="script" value="taskblazing.lua"/> Se os storages que eu escolhi não estiverem sendo usado no seu ot, deixe eles no script, se quiser mudar, mude com atenção nos dois scripts para não haver erro. Lembre-se de mudar o nome do bixo no local correto e de escrever o nome corretamente para a contagem ser feita. Altere também as coordenadas do local que você quer teleportar o player.
  23. Que viagem kkkkk nem percebi, só tentei te ajudar, fico feliz que cosneguiu, abraços.
  24. local storage = 6557 -- Storage eu registra os 10 minutos entre as mensagens local storage2 = 6558 -- Storage que proibe o player de falar fora do prazo local tempo = 600 -- Tempo em segundo entre uma mensagem e outra function onSay(cid, words, param, channel) if getPlayerStorageValue(cid, storage2) < 1 and getPlayerGuildRank(cid) == "Leader" then if(param == '') then doPlayerSendTextMessage(cid, 19, "A mensagem nao pode ser vazia.") return true else doBroadcastMessage(""..getCreatureName(cid)..": "..param.."") setPlayerStorageValue(cid, storage, os.time() + tempo) setPlayerStorageValue(cid, storage2, 1) return true end elseif getPlayerStorageValue(cid, storage2) >= 1 then doPlayerSendTextMessage(cid, 19, "Voce tem que aguardar 10 minutos entre uma mensagem e outa!") return true else doPlayerSendTextMessage(cid, 19, "Somente lideres de guild podem usar esse comando!") return true end end
  25. Kemmlly respondeu ao post em um tópico de helix758 em Suporte Tibia OTServer
    local config = { exhausttime = 7200, -- time in seconds exhauststorage = 2301, level = 50 -- level minimo para usar o book } function onUse(cid, item, fromPosition, itemEx, toPosition) local rewarditems = { {id = 2492, chance = 10, count = 1}, -- id da demon legs {id = 2498, chance = 10, count = 1}, -- id da demon armor {id = 2488, chance = 10, count = 1}, -- id do demon shield {id = 2488, chance = 20, count = 1}, -- id do demon helmet {id = 2488, chance = 50, count = 1} -- id stell boots } if getPlayerLevel(cid) < config.level then doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) doPlayerSendCancel(cid, "Voce precisa estar ser level "..config.level.." para usar o livro.") return true end if exhaustion.check(cid, config.exhauststorage) then local time = exhaustion.get(cid, config.exhauststorage) local hours, minutes, seconds = math.floor (time / 3600), math.floor ((time - ((math.floor (time / 3600)) * 3600))/ 60), time - ((math.floor (time/60)) * 60) if time >= 3600 then text = hours.." "..(hours > 1 and "hours" or "hour")..", "..minutes.." "..(minutes > 1 and "minutes" or "minute").." and "..seconds.." "..(seconds > 1 and "seconds" or "second") elseif time >= 120 then text = minutes.." "..(minutes > 1 and "minutes" or "minute").." and "..seconds.." "..(seconds > 1 and "seconds" or "second") else text = seconds.." "..(seconds > 1 and "seconds" or "second") end doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Esta vazio, voce precisa esperar "..text.." antes de usar o livro novamente.") return true end local chance = math.random(1,100) for i = 1, #rewarditems, 1 do if chance < rewarditems[i].chance then local info = getItemInfo(rewarditems[i].id) if rewarditems[i].count > 1 then text = rewarditems[i].count .. " " .. info.plural else text = info.article .. " " .. info.name end local item = doCreateItemEx(rewarditems[i].id, rewarditems[i].count) if(doPlayerAddItemEx(cid, item, false) ~= RETURNVALUE_NOERROR) then doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) text = "Voce encontrou uma recompensa, mas voce nao tem cap ou espaco na bp para ganha-la." else local book = 1950 doPlayerRemoveItem(cid, book, 1) text = "Voce encontrou " .. text .. "." exhaustion.set(cid, config.exhauststorage, config.exhausttime) end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, text) return true else chance = chance - rewarditems[i].chance end end end

Informação Importante

Confirmação de Termo