Ir para conteúdo

Kydrai

Visconde
  • Total de itens

    250
  • Registro em

  • Última visita

  • Dias Ganhos

    14

Tudo que Kydrai postou

  1. A única coisa que achei foi esse tópico: http://www.xtibia.com/forum/index.php?showtopic=118860&st=0&p=781616&hl=npc%20anunciador&fromsearch=1entry781616 Sei um outro jeito tbm que seria por globalevents, ve se serve: globalevents.xml: <globalevent name="anuncio" interval="20" event="script" value="npc.lua"/> npc.lua: function onThink(interval, lastExecution, thinkInterval) local npc = getCreatureByName("Mendigo") if isNpc(npc) then doCreatureSay(npc, "Me de uma esmola pelo amor de Deus", TALKTYPE_SAY) end return true end
  2. Testa ai: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talk_state = {} 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 shopModule = ShopModule:new() npcHandler:addModule(shopModule) local items = { {5944, 100}, {6500, 100}, {5905, 50}, {5879, 50}, {2193, 20} } function item(cid, func) if func == "count" then for i=1, #items do if getPlayerItemCount(cid, items[i][1]) >= items[i][2] == FALSE then return FALSE end end elseif func == "remove" then for i=1, #items do if doPlayerRemoveItem(cid, items[i][1], items[i][2]) == FALSE then return FALSE end end end return TRUE 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 if msgcontains(msg, 'help') then selfSay('You can here change some items for mission.', cid) elseif msgcontains(msg, 'mission') then if item(cid, "count") then selfSay('Did you bring me the 100 soul orb, 100 demonic essence, 50 giant spider silk, 50 vampire dust and 20 ankh?', cid) talk_state[talkUser] = 1 else selfSay('I need 100 soul orb, 100 demonic essence, 50 giant spider silk, 50 vampire dust and 20 ankh to give you the recompesation. Come back when you have them.', cid) talk_state[talkUser] = 0 end elseif msgcontains(msg, 'yes') and talk_state[talkUser] == 1 then if item(cid, "remove") then doPlayerAddItem(cid,2160,100) doPlayerAddItem(cid,10518,1) end talk_state[talkUser] = 0 elseif msgcontains(msg, 'no') and talk_state[talkUser] == 1 then selfSay('Ok than.', cid) talk_state[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) *Tive q arrumar algumas coisas.
  3. Kydrai

    Npc De Quest

    Fiz um aqui, ta meio POG, mas funciona no TFS 0.3.5. Só falta mudar a fala, qualquer coisa é só detalhar melhor o pedido. Funciona assim: hi, quest, yes Ai muda storageQuest pra 1 que indica que a quest está sendo feita. Cada rat que mata vai acrescenta 1 no storageRats enquanto estiver fazendo a quest. Vc pode mudar os storages, o premio, e também pode colocar a quest no quest log (só procurar um tutorial). NPC data\npcs\scripts\npc_da_quest.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()) local talkState = {} local storageQuest = 1000000000 local storageRats = 10000000001 local premio = 1234 -- id do premio function creatureSayCallback(cid, type, msg) if not npcHandler:isFocused(cid) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'quest') then if getPlayerStorageValue(cid, storageQuest) <= 0 then selfSay('Você precisa matar 20 Rats. Aceita?', cid) talkState[talkUser] = 1 elseif getPlayerStorageValue(cid, storageQuest) == 1 then if getPlayerStorageValue(cid, storageRats) < 20 then selfSay('Volte quando matar 20 Rats.', cid) else selfSay('Você ja matou 20 Rats. Gostaria de receber seu premio?', cid) talkState[talkUser] = 2 end else selfSay('Você ja recebeu seu prêmio.', cid) end elseif msgcontains(msg, 'yes') then if talkState[talkUser] == 1 then selfSay('Depois de matar 20 Rats volte para receber seu prêmio.', cid) doPlayerSetStorageValue(cid, storageQuest, 1) doPlayerSetStorageValue(cid, storageRats, 0) elseif talkState[talkUser] == 2 then selfSay('Toma seu prêmio.', cid) doPlayerAddItem(cid, premio) doPlayerSetStorageValue(cid, storageQuest, 2) end talkState[talkUser] = 0 elseif msgcontains(msg, 'no') then if talkState[talkUser] == 1 or talkState[talkUser] == 2 then selfSay('Ok.', cid) end talkState[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) data\npcs\npc_da_quest.xml: <?xml version="1.0"?> <npc name="Nome do NPC" script="npc_da_quest.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="128" head="17" body="54" legs="114" feet="0" addons="2"/> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|. Se tiver intesse pode realizar uma {quest}." /> </parameters> </npc> Rat data\creaturescripts\scripts\rat.lua: local storageQuest = 1000000000 local storageRats = 10000000001 function onDeath(cid, corpse, deathList) local player = isPlayer(deathList[1]) and deathList[1] or getCreatureMaster(deathList[1]) if isPlayer(player) then if getPlayerStorageValue(player, storageQuest) == 1 then doPlayerSetStorageValue(player, storageRats, getPlayerStorageValue(player, storageRats)+1) doPlayerSendTextMessage(player, MESSAGE_STATUS_CONSOLE_BLUE, "Você matou "..getPlayerStorageValue(player, storageRats).." Rats.") end end return TRUE end data\creaturescripts\creaturescripts.xml: <event type="death" name="rat" event="script" value="rat.lua"/> data\monster\rats\rat.xml: <script> <event name="rat"/> </script>
  4. Você copiou o script de outro fórum e colocou pra virar dragão ao invés de orc rider. Os créditos não são seus, e pelo que vi parece que esse não é o único que vc ripou.
  5. Kydrai

    Sumo Paint

    lol Acaba de sair? Ja faz mais de 1 ano. Deve ser bom pra quem não pode ter photoshop ou outro editor, acho que quebra o galho. Pelo jeito a tendência é que existam cada vez mais aplicações online desse tipo.
  6. Como assim ordem dos scripts? As funções, como a doPlayerSendTextMessage, praticamente ja da pra entender só pelo nome. A Enciclopédia do tibiaa4e tbm ta muito boa para quem ta aprendendo, aqui tem oq vc quer. Link Tutorial de arrays caso vc tenha dificuldade e esteja interessado: Link Fora os tutoriais é só ir vendo os scripts feitos pelos membros do fórum, que na maioria são simples. Ai se tiver dúvida sobre os scripts vc posta ae que o pessoal ajuda
  7. Bah, vc q não pensou antes de utilizar. Usou sem testar e ainda não fez backup de nada. Acredito que sem backup é impossível recuperar oq foi feito.
  8. Como o Caicheiro disse, as cores estão muito fortes. Tem que que fazer algo mais agradável para os olhos. @DOWN ._. Eu nunca sai daqui rs Todo dia passo e ajudo quem posso
  9. Kydrai

    Escolha Seu Windows

    Isso é só um windows XP com algumas modificações na aparência e algumas configurações. Tbm tem o windows 2000, acho que veio antes do ME. De todos esses, o pior que tive foi o ME mesmo.
  10. Tem que colocar isso no login.lua: registerCreatureEvent(cid, "Owned") E corrigindo o ka9: <event type="death" name="Owned" event="script" value="NOME DO ARQUIVO.lua"/> 8.50 <event type="death" name="Owned" script="NOME DO ARQUIVO.lua"/> 8.40
  11. O próprio /i ja faz por nome, pelo menos no tfs. Qualquer coisa, esse é o script: function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end local t = string.explode(param, ",") local ret = RETURNVALUE_NOERROR local tmp = getCreaturePosition(cid) local id = tonumber(t[1]) if(not id) then id = getItemIdByName(t[1], false) if(not id) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Item wich such name does not exists.") return true end end local amount = 100 if(t[2]) then amount = t[2] end local item = doCreateItemEx(id, amount) if(t[3] and getBooleanFromString(t[3])) then if(t[4] and getBooleanFromString(t[4])) then tmp = getPlayerLookPos(cid) end ret = doTileAddItemEx(tmp, item) else ret = doPlayerAddItemEx(cid, item, true) end if(ret ~= RETURNVALUE_NOERROR) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Couldn't add item: " .. t[1]) return true end doSendMagicEffect(tmp, CONST_ME_MAGIC_RED) return true end
  12. O primeiro script ta errado pq não pode ser elseif e sim if. Fiz uma modificação, ve se funciona: local items = {8601, 2383, 2190, 2456, 2544} function onUse(cid, item, frompos, item2, topos) if item.uid == 1002 then queststatus = getPlayerStorageValue(cid,1002) if queststatus == -1 then if getPlayerFreeCap(cid) >= 50.00 then doPlayerSendTextMessage(cid,22,"You found a Backpack With Weapon Set.") container = doPlayerAddItem(cid, 1988, 1) for i, item in ipairs(items) do doAddContainerItem(container, item, 1) end setPlayerStorageValue(cid,1002,1) else doPlayerSendTextMessage(cid,22,"You have found a Backpack With Weapon Set. Weighing 50.00 oz it is too heavy.") end else doPlayerSendTextMessage(cid,22,"The chest is empty.") end end return TRUE end Ja o segundo vc errou uma ". Troca: doPlayerSendTextMessage(cid, 22, "Você precisa estar no level"..(item.actionid - 1000)..para passar nesta porta" .") Por: doPlayerSendTextMessage(cid, 22, "Você precisa estar no level "..(item.actionid - 1000).." para passar nesta porta.")
  13. Seria mais fácil se postasse os scripts. Vendo no 8.5, o script da uh envolve o lvl e ml. Olha como ta: O da mana runa não sei como é, mas pelo que vi tbm envolve os 2. Qualquer coisa passa os scripts que tem no seu.
  14. Concordo que todos deveriam ter recebido alerta. O Marcryzius só disse que poderia ser feito tudo em um e o kazz chegou ofendendo. Pela discussão, ou os dois levariam alerta, ou suspensão, não tem pq de ter sido só 1.
  15. Ele inverteu, troca: doSendMagicEffect(cid, CONST_ME_MAGIC_BLUE) doPlayerSendCancel(position, "Você não é VIP") Por: doSendMagicEffect(position, CONST_ME_MAGIC_BLUE) doPlayerSendCancel(cid, "Você não é VIP")
  16. => ta errado, é >= Ao usar o item, o jogador voltará ao templo. Existe uma função para pegar a posição do templo, ai não precisaria colocar as coordenadas. Quanto ao script não gostei, achei muito simples e não tem nada de novo. Mas sempre tem alguém atrás dessas coisas, talvez possa ser útil para eles.
  17. Muda essa parte: setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.3, -30, -1.8, 0) Tutorial: http://www.xtibia.com/forum/Pasta-Data-Spells-t113358.html
  18. Poderia especificar mais o script? A arvore da presente quando o player der use mesmo ou eles vão aparecendo ao lado dela? Quanto aos itens, ela dará sempre, uma vez, com tempo de intervalo,...?
  19. Ainda acho que deveria ter reportado mais vezes, não precisava de tanta pressa. Os spoilers não estavam abrindo aqui no Chrome, mas no IE abriu perfeitamente, provavelmente algum bug do fórum. Quanto ao script, prefiro treinar atacando, mas esse método parece bom também. E no título não deveria ser MoveEvent?
  20. onUse é para quando der use em alguma coisa. No caso acho que seria onStepIn (movements) que pra quando pisa em algo. Vc pode usar o citizen.lua (no tfs tem) como exemplo. A propósito aqui é para pedidos e não dúvidas , então faça um pedido ou peça para moverem para ficar no lugar correto.
  21. Ve se é isso que vc quer, coloquei 3: getPlayerTown(cid) : Pega o id da city do player. getTownId(townName) : Pega o id da city por nome. getTownName(townId) : Pega o nome da city por id. Se quiser pegar o nome da city: getTownName(getPlayerTown(cid))
  22. Ser proibido de jogar tibia acho difícil, mas tem gente que consegue. No meu caso ja fiquei varias vezes de castigo sem poder usar o pc pq ficava jogando tibia de madrugada (net discada). Meu pai acordava e acabava a graça, tirava os fios e levava embora e ja chegou a levar o pc pro quarto dele, muita injustiça. Os únicos dias que eu podia entrar na net era fim de semana e eu ainda ficava de castigo, foi dureza.
  23. Não acho que seria trabalhoso. Afinal, quantos downloads são postados aqui por dia?
  24. Bom, mas ta faltando algumas coisas ainda. Tem o AND, o sinal de adição(+), related e mais alguns ai. Então dá pra completar mais esta lista. :smile_positivo:
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...