Ir para conteúdo

moskitinho

Membro
  • Registro em

  • Última visita

Tudo que moskitinho postou

  1. moskitinho postou uma resposta no tópico em Anuncie seu OTServer
    Um servidor custom e com muitos recursos para você aproveitar. http://valdraken.servegame.com:8090 • A proposta é uma progressão linear e que cada conquista seja valorizada. • Mapa próprio desenvolvido pelo criador de conteúdo no YouTube TibiaEvodrael • Mais de 100 hunts. • Mais de 50 bosses com mecânicas customizadas. • Sistema de craft de itens (ao norte do templo). - Consiga tokens nos bosses. - Se aventure nas hunts e consiga o restante dos itens. • Sistema de upgrade com Legendary Tier. - Consiga jewel of bless, jewel of soul e jewel of chaos nas dungeons diárias. - Evolua seu item até o Legendary Tier 10. - Você vai ganhar HP, Mana, Chance de Crítico e até 30% mais dano. • Sistema de waypoints. - Explore o mapa e libere acesso rápido para suas hunts. • Forja • Whell of Destiny • Sistema de Tasks via ModalWidow - Na parte superior do DP • Addons e Mounts em diversas Box espalhadas pelo mapa - Consiga dinheiro ou tenha sorte e ganhe uma nova addon. • Venda todos os seus loots para o NPC Luc the Rich - Acima do templo. • Compre os principais itens de Imbuement com a NPC Brendolla - Acima do Depot. • Mapa de Thazoran • Mapa de Ahmun E você não pode perder os mistérios em Karazan! Uma área para level 1250+ e muitas hunts para você explorar.
  2. .Qual servidor ou website você utiliza como base? Canary 13.2x Qual o motivo deste tópico? Alguns itens mostram o level e vocação necessários para usar e outros simplesmente não mostram. Está surgindo algum erro? Se sim coloque-o aqui. Você tem o código disponível? Se tiver publique-o aqui: { -- boots of haste itemid = 3079, type = "equip", slot = "feet", level = 180, vocation = { {"Knight", true}, {"Paladin", true, true}, {"Elite Knight"}, {"Royal Paladin"} } }, { -- boots of haste itemid = 3079, type = "deequip", slot = "feet", level = 180 }, Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. Exemplo a boots of haste e a soft boots usam exatamente o mesmo código. Porém no jogo uma mostra o lvl e vocação necessários e a outra não. Isto está acontecendo com diversos itens. Por exemplo a paladin armor mostra. Crown armor, não. Mesmo editando o items.xml e movements.xml como acima.
  3. Revivendo porque preciso saber se chegou a ser lançado 🤔
  4. Boa, muito obrigado pelo script! Troquei apenas a tag do remove por player:removeMoneyNpc("1000000") e adicionei o NCP funcionando 100%
  5. moskitinho postou uma resposta no tópico em Playground (Off-topic)
    Aqui esta normal, altero o IP e faço download tranquilo
  6. moskitinho postou uma resposta no tópico em Playground (Off-topic)
    Show! Muito obrigado. Estava dando uma olhada também eles possuem um serviço bacana de host, poderia pegar e passar às alterações que fiz no servidor.
  7. moskitinho postou uma resposta no tópico em Playground (Off-topic)
    Fala mestre! É bem essa a ideia, tenho uma máquina disponível e fibra de 300MB bem estável. Eu segui um tutorial do Majestic mais sem sucesso. Tenho que entender como adicionar o ip ao client 12.6 para que os jogadores possam baixar no site e tudo mais.
  8. moskitinho postou uma resposta no tópico em Playground (Off-topic)
    @FeeTads Valeuuu demais bro! O tutorial é bem explicado tava dando uma olhada. Eu tava querendo colocar online pelo windows só pra brincar mesmo.
  9. moskitinho postou uma resposta no tópico em Playground (Off-topic)
    Fala meus queridos! Bom galera fiz o download da base OTX 12.64 e se foi mais de um mês criando o mapa. Diversas hunts, bosses, ajustando pra deixar do jeito que eu gosto. Chegou na hora de deixar online que foi o terror, segui tutoriais e só passei raiva. Minha pergunta é a base esta pronta e se eu quiser contratar um host ele termina o serviço? Digo só pra colocar online o negócio mesmo. Se sim, onde encontro estes serviços? Criei aqui no off pois não é uma dúvida que se enquadra no suporte de OT.
  10. moskitinho postou uma resposta no tópico em Mapping Show Off
    Bom dia pessoal, O Dungeon Server é uma criação em que tenho trabalhado nos últimos meses. A ideia é ter um server acessível, sem quests de acesso, sem mecânicas complicadas e ao mesmo tempo sem ser mais um servidor High Exp com resets (rates como 50x são recomendadas). A cidade base é Thais, com algumas modificações para se adaptar a proposta do servidor. Adicionei NPCs que trocam Gold e Silver Tokens por addons, mounts e alguns itens. Atualmente o mapa conta com 70 respaws, alguns personalizados e outros tendo como base o mapa global e todos com acesso por TP. Também adicionei 20 bosses que foram cuidadosamente verificados para loots e danos ajustados para tornar os desafios justos aos players. Troquei quests por drops em bosses (ao invés da Demon Helmet Quest você pode desafiar Soul Reaper e dropar o item). Vou postar algumas fotos para que possam acompanhar o desenvolvimento. O que pretendo adicionar: - Cidade de Carlin - Mais 50 respawns para level 400+ Dúvidas: - Itens VIP realmente são necessários? - Cidade VIP é algo que atrai players? Vamos as fotos: Templo de Thais (dominado pelos servos de Azmodan) NPCs que compram praticamente todos os loots Novos NPCs para dar maior utilidade aos tokens Acesso aos respawns de forma intuitiva Acesso aos bosses para adquirir loots raros Respaws remodelados para uma melhor experiência de jogo e também invasão de Elites
  11. @FeeTads ficou PERFEITO! Registrei o storage e sucesso! Mount Doll funcionando ?
  12. Qual servidor ou website você utiliza como base: OTX 12.64 Vamos lá pessoal procurei em todos os lugares algo parecido com um Mount Doll e não encontrei, então resolvi colocar a mão na massa e partir pra gambiarra baseado no script do Addon Doll. Basicamente é um script em que o player usa o item 37587 e recebe 71 montarias (deixei algumas de fora pra colocar em quests). Eu testei e funcionou! ? A gambiarra é que o script verifica o sexo do personagem o que não faz sentido algum, eu sei. E é nisto que preciso da ajuda de vocês. if getPlayerSex(cid) == 1 then for name, id in pairs(maleOutfits) do Gostaria que ao invés de verificar o sexo, ao usar o script o player ganhe o storage 64801 e se tentar usar novamente o script verifique se o player já possui o determinado storage. Abaixo segue o script atual pra quem quiser usar está funcionando sem bugs. local addondoll = Action() function addondoll.onUse(cid, item, toPosition, itemEx, fromPosition) local femaleOutfits = { ["Black Sheep"]={4}, ["War Bear"]={3}, ["Tamed Panda"]={19}, ["Crystal Wolf"]={16}, ["Undead Cavebear"]={12}, ["Siegebreaker"]={56}, ["Ringtail Waccoon"]={68}, ["Gnarlhound"]={32}, ["Ladybug"]={27}, ["Tiger Slug"]={14}, ["Widow Queen"]={1}, ["Rapid Boar"]={10}, ["Stampor"]={11}, ["Racing Bird"]={2}, ["Armoured War Horse"]={23}, ["Tundra Rambler"]={62}, ["Draptor"]={6}, ["Dragonling"]={31}, ["Jade Lion"]={48}, ["Kingly Deer"]={18}, ["Dromedary"]={20}, ["Donkey"]={13}, ["Water Buffalo"]={35}, ["Blazebringer"]={9}, ["Jade Pincer"]={49}, ["Undead Cavebear"]={12}, ["Titanica"]={7}, ["Manta"]={28}, ["Plumfish"]={80}, ["Tin Lizzard"]={8}, ["Walker"]={43}, ["Ironblight"]={29}, ["Magma Crawler"]={30}, ["Shock Head"]={42}, ["Flamesteed"]={47}, ["Doombringer"]={53}, ["Flitterkatzen"]={75}, ["Slagsnare"]={93}, ["Nightdweller"]={100}, ["Gorongra"]={98}, ["Mouldpincer"]={104}, ["Reed Lurker"]={109}, ["Sparkion"]={110}, ["Shadow Claw"]={114}, ["Dreadhare"]={117}, ["Stone Rhino"]={119}, ["Shadow Sphinx"]={122}, ["Jungle Saurian"]={123}, ["Blazing Unicorn"]={126}, ["Cranium Spider"]={129}, ["Marsh Toad"]={133}, ["Ebony Tiger"]={136}, ["Tawny Owl"]={140}, ["Lacewing Moth"]={143}, ["Festive Snowman"]={148}, ["Rabbit Rickshaw"]={151}, ["River Crocovile"]={154}, ["Gryphon"]={157}, ["Jousting Eagle"]={158}, ["Cerberus Champion"]={159}, ["Battle Badger"]={160}, ["Floating Sage"]={166}, ["Haze"]={169}, ["Antelope"]={170}, ["Snow Strider"]={171}, ["Eventide Nandu"]={178}, ["Spectral Horse"]={179}, ["Voracious Hyaena"]={180}, ["Krakoloss"]={184}, ["Rift Watcher"]={190}, } local maleOutfits = { ["Black Sheep"]={4}, ["War Bear"]={3}, ["Tamed Panda"]={19}, ["Crystal Wolf"]={16}, ["Undead Cavebear"]={12}, ["Siegebreaker"]={56}, ["Ringtail Waccoon"]={68}, ["Gnarlhound"]={32}, ["Ladybug"]={27}, ["Tiger Slug"]={14}, ["Widow Queen"]={1}, ["Rapid Boar"]={10}, ["Stampor"]={11}, ["Racing Bird"]={2}, ["Armoured War Horse"]={23}, ["Tundra Rambler"]={62}, ["Draptor"]={6}, ["Dragonling"]={31}, ["Jade Lion"]={48}, ["Kingly Deer"]={18}, ["Dromedary"]={20}, ["Donkey"]={13}, ["Water Buffalo"]={35}, ["Blazebringer"]={9}, ["Jade Pincer"]={49}, ["Undead Cavebear"]={12}, ["Titanica"]={7}, ["Manta"]={28}, ["Plumfish"]={80}, ["Tin Lizzard"]={8}, ["Walker"]={43}, ["Ironblight"]={29}, ["Magma Crawler"]={30}, ["Shock Head"]={42}, ["Flamesteed"]={47}, ["Doombringer"]={53}, ["Flitterkatzen"]={75}, ["Slagsnare"]={93}, ["Nightdweller"]={100}, ["Gorongra"]={98}, ["Mouldpincer"]={104}, ["Reed Lurker"]={109}, ["Sparkion"]={110}, ["Shadow Claw"]={114}, ["Dreadhare"]={117}, ["Stone Rhino"]={119}, ["Shadow Sphinx"]={122}, ["Jungle Saurian"]={123}, ["Blazing Unicorn"]={126}, ["Cranium Spider"]={129}, ["Marsh Toad"]={133}, ["Ebony Tiger"]={136}, ["Tawny Owl"]={140}, ["Lacewing Moth"]={143}, ["Festive Snowman"]={148}, ["Rabbit Rickshaw"]={151}, ["River Crocovile"]={154}, ["Gryphon"]={157}, ["Jousting Eagle"]={158}, ["Cerberus Champion"]={159}, ["Battle Badger"]={160}, ["Floating Sage"]={166}, ["Haze"]={169}, ["Antelope"]={170}, ["Snow Strider"]={171}, ["Eventide Nandu"]={178}, ["Spectral Horse"]={179}, ["Voracious Hyaena"]={180}, ["Krakoloss"]={184}, ["Rift Watcher"]={190}, } if getPlayerSex(cid) == 1 then for name, id in pairs(maleOutfits) do doPlayerAddMount(cid, id[1]) doSendMagicEffect(getThingPos(cid), CONST_ME_FIREWORK_YELLOW) doRemoveItem(item.uid) end else for name, id in pairs(femaleOutfits) do doPlayerAddMount(cid, id[1]) doSendMagicEffect(getThingPos(cid), CONST_ME_FIREWORK_YELLOW) doRemoveItem(item.uid) end end return true end addondoll:id(37587) addondoll:register() Fico grato a quem puder ajudar!
  13. Qual servidor ou website você utiliza como base? OTX 12.64 Qual o motivo deste tópico? Fala pessoal olha eu aqui de novo, vou me virando como posso nos scripts, abro um por um e vou tentando montar as coisas que preciso. Neste caso meu NPC deveria trocar 100 gold token por 1 addon doll e 100 silver token por 1 item umbral. Ele realiza a troca porém o servidor registra o seguinte erro: Lua Script Error: [Npc interface] data/npc/scripts/garatoken.lua:onCreatureSay data/npc/scripts/garatoken.lua:30: attempt to call global 'getItemNameById' (a nil value) stack traceback: [C]: in function 'getItemNameById' data/npc/scripts/garatoken.lua:30: in function 'callback' data/npc/lib/npcsystem/npchandler.lua:433: in function 'onCreatureSay' data/npc/scripts/garatoken.lua:8: in function <data/npc/scripts/garatoken.lua:8> Estou usando o seguinte script: 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 items = { item1 = {25377, 2322}, -- item1 item que será pedido e que será dado na primeira troca item2 = {25172, 22409} -- item2 item que será pedido e que será dado na segunda troca } local counts = { count1 = {100, 1}, -- count1 quantidade que será pedido e que será dado na primeira troca count2 = {100, 1} -- count2 quantidade que será pedido e que será dado na segunda troca } 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, 'addon doll') then if getPlayerItemCount(cid, items.item1[1]) >= counts.count1[1] then doPlayerRemoveItem(cid, items.item1[1], counts.count1[1]) doPlayerAddItem(cid, items.item1[2], counts.count1[2]) selfSay('You just swap '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..' for '.. counts.count1[2] ..' '.. getItemNameById(items.item1[2]) ..'.', cid) else selfSay('You need '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..'.', cid) end elseif msgcontains(msg, 'umbral') then if getPlayerItemCount(cid, items.item2[1]) >= counts.count2[1] then doPlayerRemoveItem(cid, items.item2[1], counts.count2[1]) doPlayerAddItem(cid, items.item2[2], counts.count2[2]) selfSay('You just swap '.. counts.count2[1] ..' '.. getItemNameById(items.item2[1]) ..' for '.. counts.count2[2] ..' '.. getItemNameById(items.item2[2]) ..'.', cid) else selfSay('You need '.. counts.count2[1] ..' '.. getItemNameById(items.item2[1]) ..'.', cid) end end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) O script funciona pórem gostaria de remover esse erro no console pra deixar ele 100% Podem fechar pessoal o erro era na função getItemNameById Como não faço questão destas refinarias eu troquei pra uma mensagem simples mesmo e dalê 100% funcional. Alias pra quem precisa de npc trocando Item X por Item Y fica abaixo o script caso você queira seguir adicionando vai precisar adicionar mais itens, counts e linhas 'elseif' e ir alterando o número nos locais, da pra entender olhando o script... 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 items = { item1 = {25377, 2322}, -- item1 item que será pedido / que será dado na primeira troca item2 = {25172, 22409}, -- item2 item que será pedido / que será dado na segunda troca item3 = {25172, 22403}, -- item3 item que será pedido / que será dado na segunda troca item4 = {25172, 22415}, -- item4 item que será pedido / que será dado na segunda troca } local counts = { count1 = {100, 1}, -- count1 quantidade que será pedido / que será dado na primeira troca count2 = {100, 1}, -- count2 quantidade que será pedido / que será dado na segunda troca count3 = {100, 1}, -- count3 quantidade que será pedido / que será dado na segunda troca count4 = {100, 1}, -- count4 quantidade que será pedido / que será dado na segunda troca } 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, 'addon doll') then if getPlayerItemCount(cid, items.item1[1]) >= counts.count1[1] then doPlayerRemoveItem(cid, items.item1[1], counts.count1[1]) doPlayerAddItem(cid, items.item1[2], counts.count1[2]) selfSay('You received addon doll.', cid) else selfSay('You need more silver tokens.', cid) end elseif msgcontains(msg, 'umbral axe') then if getPlayerItemCount(cid, items.item2[1]) >= counts.count2[1] then doPlayerRemoveItem(cid, items.item2[1], counts.count2[1]) doPlayerAddItem(cid, items.item2[2], counts.count2[2]) selfSay('You received Umbral Axe.', cid) else selfSay('You need more silver tokens.', cid) end elseif msgcontains(msg, 'umbral sword') then if getPlayerItemCount(cid, items.item3[1]) >= counts.count3[1] then doPlayerRemoveItem(cid, items.item3[1], counts.count3[1]) doPlayerAddItem(cid, items.item3[2], counts.count3[2]) selfSay('You received Umbral Sword.', cid) else selfSay('You need more silver tokens.', cid) end elseif msgcontains(msg, 'umbral club') then if getPlayerItemCount(cid, items.item4[1]) >= counts.count4[1] then doPlayerRemoveItem(cid, items.item4[1], counts.count4[1]) doPlayerAddItem(cid, items.item4[2], counts.count4[2]) selfSay('You received Umbral Club.', cid) else selfSay('You need more silver tokens.', cid) end end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Podem fechar pessoal o erro era na função getItemNameById Como não faço questão destas refinarias eu troquei pra uma mensagem simples mesmo e dalê 100% funcional. Alias pra quem precisa de npc trocando Item X por Item Y fica abaixo o script caso você queira seguir adicionando vai precisar adicionar mais itens, counts e linhas 'elseif' e ir alterando o número nos locais, da pra entender olhando o script... 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 items = { item1 = {25377, 2322}, -- item1 item que será pedido / que será dado na primeira troca item2 = {25172, 22409}, -- item2 item que será pedido / que será dado na segunda troca item3 = {25172, 22403}, -- item3 item que será pedido / que será dado na segunda troca item4 = {25172, 22415}, -- item4 item que será pedido / que será dado na segunda troca } local counts = { count1 = {100, 1}, -- count1 quantidade que será pedido / que será dado na primeira troca count2 = {100, 1}, -- count2 quantidade que será pedido / que será dado na segunda troca count3 = {100, 1}, -- count3 quantidade que será pedido / que será dado na segunda troca count4 = {100, 1}, -- count4 quantidade que será pedido / que será dado na segunda troca } 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, 'addon doll') then if getPlayerItemCount(cid, items.item1[1]) >= counts.count1[1] then doPlayerRemoveItem(cid, items.item1[1], counts.count1[1]) doPlayerAddItem(cid, items.item1[2], counts.count1[2]) selfSay('You received addon doll.', cid) else selfSay('You need more silver tokens.', cid) end elseif msgcontains(msg, 'umbral axe') then if getPlayerItemCount(cid, items.item2[1]) >= counts.count2[1] then doPlayerRemoveItem(cid, items.item2[1], counts.count2[1]) doPlayerAddItem(cid, items.item2[2], counts.count2[2]) selfSay('You received Umbral Axe.', cid) else selfSay('You need more silver tokens.', cid) end elseif msgcontains(msg, 'umbral sword') then if getPlayerItemCount(cid, items.item3[1]) >= counts.count3[1] then doPlayerRemoveItem(cid, items.item3[1], counts.count3[1]) doPlayerAddItem(cid, items.item3[2], counts.count3[2]) selfSay('You received Umbral Sword.', cid) else selfSay('You need more silver tokens.', cid) end elseif msgcontains(msg, 'umbral club') then if getPlayerItemCount(cid, items.item4[1]) >= counts.count4[1] then doPlayerRemoveItem(cid, items.item4[1], counts.count4[1]) doPlayerAddItem(cid, items.item4[2], counts.count4[2]) selfSay('You received Umbral Club.', cid) else selfSay('You need more silver tokens.', cid) end end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  14. @FeeTads aproveitando sua explicação, posso por exemplo usar seu sistema para que o player receba 1 addon por vez trocando sempre por 10 gold tokens por exemplo? E aproveitando existe uma forma de usar esse mesmo formato para dar montarias em troca de 10 silver tokens?
  15. Qual servidor ou website você utiliza como base? OTX 12.64 Qual o motivo deste tópico? O sistema funciona e o player consegue acessar a shrine e tem todas as opções de imbuement. Porém nos novos itens (Falcon, Cobra, Lion) os efeitos não são aplicados. Testei em uma crown armor, demon armor e fucnionou normal, life leech e etc. Dei uma olhada no xml dos imbuements e mesmo adicionando o ID dos itens não funciona. Os itens estão com slots no itens.xml. Teria outro lugar parar adicionar o ID dos itens novos? MESSAGEDIALOG_IMBUEMENT_ERROR = 1 MESSAGEDIALOG_IMBUEMENT_ROLL_FAILED = 2 MESSAGEDIALOG_IMBUING_STATION_NOT_FOUND = 3 MESSAGEDIALOG_CLEARING_CHARM_SUCCESS = 10 MESSAGEDIALOG_CLEARING_CHARM_ERROR = 11 -- tables Imbuements_Weapons = { ["armor"] = {21692, 2500, 2656, 2464, 2487, 2494, 2492, 2503, 12607, 2505, 32419, 2466, 23538, 10296, 2476, 3968, 2472, 7463, 8888, 23537, 2486, 15406, 8891, 18404, 38992, 38929, 38930,32419,28719}, -- ok ["shield"] = {34068, 2537, 2518, 15491, 2535, 2519, 25414, 2520, 15411, 2516, 32422, 32421, 30885, 2522, 2533, 21707, 2514, 10289, 2536, 6433, 6391, 7460, 2524, 15413, 2539, 25382, 21697, 3974, 10297, 12644, 10294, 2509, 2542, 2528, 2534, 2531, 15453, 38989, 38934}, -- ok ["boots"] = {34062, 24742, 2195, 2644, 9931, 3982, 11117, 15410, 11118, 12646, 7457, 7892, 2646, 11240, 2643, 7893, 7891, 23540, 24637, 2641, 5462, 18406, 2642, 2645, 7886, 25412, 21708, 11303, 35229, 36452, 38932, 38933}, --ok ["helmet"] = {34065, 2499, 2139, 3972, 2458, 2491, 2497, 2493, 2502, 12645, 32415, 7458, 2471, 10299, 20132, 10298, 2662, 10291, 2498, 24848, 5741, 25410, 2475, 11302, 35232, 36412, 38991}, --ok ["helmetmage"] = {10016, 2323, 11368, 8820, 10570, 9778, 32414, 30882, 36417}, -- ok ["bow"] = {34055, 25946, 30690, 8855, 7438, 32418, 15643, 21696, 10295, 18454, 25522, 8857, 22417, 22418, 8854, 36416, 38923, 38985}, -- ok ["crossbow"] = {25950, 8850, 2455, 30691, 8849, 25523, 8851, 8852, 8853, 16111, 21690, 22420, 22421, 35228, 38924}, -- ok ["backpack"] = {1988, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2365, 3940, 3960, 5801, 5926, 5949, 7342, 9774, 10518, 10519, 10521, 10522, 11119, 11241, 11243, 11244, 11263, 15645, 15646, 16007, 18393, 18394, 21475, 22696, 23666, 23816, 24740, 26181, 27061, 27063, 35056, 33318}, ["wand"] = {29005, 2191, 8920, 8921, 8922}, --ok ["rod"] = {8910, 8911, 24839}, --ok ["axe"] = {30686, 2429, 3962, 7412, 30687, 18451, 8926, 2414, 11305, 7419, 2435, 7453, 2415, 2427, 7380, 8924, 7389, 15492, 7435, 2430, 7455, 7456, 2443, 25383, 7434, 6553, 8925, 2431, 2447, 22405, 22408, 22406, 22409, 2454, 15451, 11323}, --ok ["club"] = {7414, 7426, 2453, 7429, 2423, 7415, 2445, 15647, 7431, 7430, 23543, 30689, 2444, 2452, 20093, 7424, 30688, 25418, 18452, 8928, 7421, 7392, 15414, 7410, 7437, 7451, 2424, 2436, 7423, 12648, 7452, 8929, 22414, 22411, 22415, 22412, 2421, 2391}, --ok ["sword"] = {7404, 7403, 7406, 12649, 30684, 7416, 2407, 2413, 7385, 7382, 2451, 7402, 8930, 2438, 32423, 2393, 7407, 7405, 2400, 7384, 7418, 7383, 7417, 18465, 30685, 2383, 2376, 7391, 6528, 8931, 12613, 11309, 22399, 22403, 22400, 22402, 7408, 11307, 35233}, --ok ["spellbooks"] = {25411, 2175, 8900, 8901, 22423, 22424, 29004, 34069, 34058, 34064, 38988}, -- ok ["special_strike"] = {32417, 32416, 30693, 30692, 32523, 32522, 34063, 38925, 38926}, --ok ["crit_wandrod"] = {35234, 38986}, ["life_wandrod"] = {35235, 38987}, ["elemental_swords"] = {30886, 34059, 34060, 36449, 38918, 38917, 38990}, ["elemental_axes"] = {32424, 35231, 39088, 38919, 38920, 37451}, ["elemental_clubs"] = {32425, 34057, 35230, 36415, 38922, 38921, 39089}, -- Note: if an armor has native protection, it can't be imbue with this protection ["armor_energy"] = {30883}, ["armor_only_energy"] = {34061}, ["armor_ice"] = {36414}, ["armor_earth"] = {34056, 36413}, ["armor_death"] = {15407, 36418, 38931} } local equipitems = { ["lich shroud"] = {"armor", "armor_energy", "armor_only_energy", "armor_ice", "armor_earth", "spellbooks", "shield"}, ["reap"] = {"axe", "club", "sword", "bow", "crossbow"}, ["vampirism"] = {"axe", "club", "sword", "wand", "rod", "special_strike", "bow", "crossbow", "armor", "armor_energy", "armor_only_energy", "armor_ice", "armor_earth", "armor_death", "elemental_swords", "elemental_axes", "elemental_clubs", "crit_wandrod"}, ["cloud fabric"] = {"armor", "armor_earth", "armor_death", "spellbooks", "shield"}, ["electrify"] = {"axe", "club", "sword", "bow", "crossbow"}, ["swiftness"] = {"boots"}, ["snake skin"] = {"armor", "armor_energy", "armor_only_energy", "armor_ice", "armor_death", "spellbooks", "shield"}, ["venom"] = {"axe", "club", "sword", "bow", "crossbow"}, ["slash"] = {"sword", "helmet", "elemental_swords"}, ["chop"] = {"axe", "helmet", "elemental_axes"}, ["bash"] = {"club", "helmet", "elemental_clubs"}, ["dragon hide"] = {"armor", "armor_energy", "armor_only_energy", "armor_ice", "armor_death", "spellbooks", "shield"}, ["scorch"] = {"axe", "club", "sword", "bow", "crossbow"}, ["void"] = {"axe", "club", "sword", "wand", "rod", "special_strike", "bow", "crossbow", "helmet","helmetmage", "elemental_swords", "elemental_axes", "elemental_clubs", "crit_wandrod", "life_wandrod"}, -- Mana ["quara scale"] = {"armor", "armor_only_energy", "armor_earth", "armor_death", "spellbooks", "shield"}, ["frost"] = {"axe", "club", "sword", "bow", "crossbow"}, ["blockade"] = {"shield", "helmet", "spellbooks", "shield"}, ["demon presence"] = {"armor", "armor_energy", "armor_only_energy", "armor_ice", "armor_earth", "armor_death", "spellbooks", "shield"}, ["precision"] = {"bow", "crossbow", "helmet"}, ["strike"] = {"axe", "club", "sword", "bow", "crossbow", "special_strike", "elemental_swords", "elemental_axes", "elemental_clubs", "life_wandrod"}, ["epiphany"] = {"wand", "rod", "helmetmage", "special_strike", "special_wand", "special_rod", "crit_wandrod", "life_wandrod"}, ["featherweight"] = {"backpack"}, } local enablingStorages = { ["lich shroud"] = Storage.ForgottenKnowledge.LadyTenebrisKilled, ["reap"] = Storage.ForgottenKnowledge.LadyTenebrisKilled, ["vampirism"] = Storage.ForgottenKnowledge.LadyTenebrisKilled, ["cloud fabric"] = Storage.ForgottenKnowledge.LloydKilled, ["electrify"] = Storage.ForgottenKnowledge.LloydKilled, ["swiftness"] = Storage.ForgottenKnowledge.LloydKilled, ["snake skin"] = Storage.ForgottenKnowledge.ThornKnightKilled, ["venom"] = Storage.ForgottenKnowledge.ThornKnightKilled, ["slash"] = Storage.ForgottenKnowledge.ThornKnightKilled, ["chop"] = Storage.ForgottenKnowledge.ThornKnightKilled, ["bash"] = Storage.ForgottenKnowledge.ThornKnightKilled, ["dragon hide"] = Storage.ForgottenKnowledge.DragonkingKilled, ["scorch"] = Storage.ForgottenKnowledge.DragonkingKilled, ["void"] = Storage.ForgottenKnowledge.DragonkingKilled, ["quara scale"] = Storage.ForgottenKnowledge.HorrorKilled, ["frost"] = Storage.ForgottenKnowledge.HorrorKilled, ["blockade"] = Storage.ForgottenKnowledge.HorrorKilled, ["demon presence"] = Storage.ForgottenKnowledge.TimeGuardianKilled, ["precision"] = Storage.ForgottenKnowledge.TimeGuardianKilled, ["strike"] = Storage.ForgottenKnowledge.LastLoreKilled, ["epiphany"] = Storage.ForgottenKnowledge.LastLoreKilled, ["featherweight"] = -1, } function Player.canImbueItem(self, imbuement, item) local item_type = "" for tp, items in pairs(Imbuements_Weapons) do if isInArray(items, item:getId()) then item_type = tp break end end local imb_type = "" for ibt, imb_n in pairs(enablingStorages) do if string.find(ibt, imbuement:getName():lower()) then imb_type = ibt break end end if imb_type == "" then print(">> [Imbuement::canImbueItem] Error on search imbuement '".. imbuement:getName() .. "'") return false end local equip = equipitems[imb_type] if not equip then print(">> [Imbuement::canImbueItem] Error on search Weapons imbuement '" .. imbuement:getName() .. "'") return false end local imbuable = false for i, p in pairs(equip) do if p:lower() == item_type then imbuable = true break end end if not imbuable then return false end local stg = enablingStorages[imb_type] if not stg then print(">> [Imbuement::canImbueItem] Error on search Storage imbuement '" .. imbuement:getName() .. "'") return false end if imbuement:getBase().id == 3 and not self:getGroup():getAccess() and stg > -1 and self:getStorageValue(stg) < 1 then return false end return true end -- Player functions function Player.sendImbuementResult(self, errorType, message) local msg = NetworkMessage() msg:addByte(0xED) msg:addByte(errorType or 0x01) msg:addString(message) msg:sendToPlayer(self) msg:delete() return end function Player.closeImbuementWindow(self) local msg = NetworkMessage() msg:addByte(0xEC) msg:sendToPlayer(self) end -- Items functions function Item.getImbuementDuration(self, slot) local info = 0 local binfo = tonumber(self:getCustomAttribute(IMBUEMENT_SLOT + slot)) if binfo then info = bit.rshift(binfo, 8) end return info end function Item.getImbuement(self, slot) local binfo = tonumber(self:getCustomAttribute(IMBUEMENT_SLOT + slot)) if not binfo then return false end local id = bit.band(binfo, 0xFF) if id == 0 then return false end return Imbuement(id) end function Item.addImbuement(self, slot, id) local imbuement = Imbuement(id) if not imbuement then return false end local duration = imbuement:getBase().duration local imbue = bit.bor(bit.lshift(duration, 8), id) self:setCustomAttribute(IMBUEMENT_SLOT + slot, imbue) return true end function Item.cleanImbuement(self, slot) self:setCustomAttribute(IMBUEMENT_SLOT + slot, 0) return true end
  16. @FeeTads Muito obrigado mestre, consegui aqui.
  17. Qual servidor ou website você utiliza como base? OTX 12.64 Qual o motivo deste tópico? Procurei e encontrei scripts apenas para versões 8.6 Gostaria de um script em que o player passe no SQM (X,Y,Z) e receba alguns storages (apenas uma vez). player:setStorageValue(Storage.ForgottenKnowledge.Tomes, 1) player:setStorageValue(Storage.ForgottenKnowledge.LastLoreKilled, 1) player:setStorageValue(Storage.ForgottenKnowledge.TimeGuardianKilled, 1) player:setStorageValue(Storage.ForgottenKnowledge.HorrorKilled, 1) player:setStorageValue(Storage.ForgottenKnowledge.DragonkingKilled, 1) player:setStorageValue(Storage.ForgottenKnowledge.ThornKnightKilled, 1) player:setStorageValue(Storage.ForgottenKnowledge.LloydKilled, 1) player:setStorageValue(Storage.ForgottenKnowledge.LadyTenebrisKilled, 1) player:setStorageValue(Storage.ForgottenKnowledge.AccessMachine, 1)
  18. .Qual servidor ou website você utiliza como base? OTX 12.64 Qual o motivo deste tópico? Preciso adicionar um cooldown de 20 minutos para que o player possa entrar no boss novamente. O script cria o boss, limpa a sala e expulsa o player se passar de 2 minutos, porém preciso adicionar um cooldown de 20 minutos para uma nova tentativa. local setting = { centerRoom = {x = 1057, y = 1099, z = 8}, storage = 70852, bossPosition = {x = 1055, y = 1096, z = 8}, kickPosition = {x = 1055, y = 1109, z = 8}, playerTeleport = {x = 1055, y = 1101, z = 8} } local oberonLever = Action() -- Start Script function oberonLever.onUse(creature, item, fromPosition, target, toPosition, isHotkey) if item.itemid == 1945 and item.actionid == 58111 then local clearOberonRoom = Game.getSpectators(Position(setting.centerRoom), false, false, 3, 3, 3, 3) for index, spectatorcheckface in ipairs(clearOberonRoom) do if spectatorcheckface:isPlayer() then creature:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Someone is fighting against the boss! You need wait awhile.") return false end end for index, removeOberon in ipairs(clearOberonRoom) do if (removeOberon:isMonster()) then removeOberon:remove() end end Game.createMonster("Flameroth", setting.bossPosition, false, true) local players = {} for i = 0, 4 do local player1 = Tile({x = (Position(item:getPosition()).x - 2) + i, y = Position(item:getPosition()).y + 1, z = Position(item:getPosition()).z}):getTopCreature() players[#players+1] = player1 end for i, player in ipairs(players) do player:getPosition():sendMagicEffect(CONST_ME_POFF) player:teleportTo(Position(setting.playerTeleport), false) doSendMagicEffect(player:getPosition(), CONST_ME_TELEPORT) setPlayerStorageValue(player,setting.storage, os.time() + 2 * 60 * 60) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'You have 2 minute(s) to defeat the boss.') addEvent(function() local spectatorsOberon = Game.getSpectators(Position(setting.centerRoom), false, false, 3, 3, 3, 3) for u = 1, #spectatorsOberon, 1 do if spectatorsOberon[u]:isPlayer() and (spectatorsOberon[u]:getName() == player:getName()) then player:teleportTo(Position(setting.kickPosition)) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'Time is over. You need more power.') end end end, 2 * 60 * 1000) end end return true end oberonLever:aid(58111) oberonLever:register()
  19. Qual servidor ou website você utiliza como base? OTX 12.64 Styller do Deletera (https://github.com/opentibiabr/otservbr-global) Objetivo? Criar um sistema de Dungeons baseado no World of Warcraft. Boa tarde pessoal estou criando um servidor e um dos principais recursos será um sistema de dungeons para conseguir itens. Como estou voltando agora espero que consigam me ajudar. Vou explicar em detalhes para que fique claro o que preciso. Abaixo temos a sala de entrada da Dungeon T1. E algumas regras para acontecer: - Quantos player podem realizar? 1 à 4 players. - Players precisam estar nos SQMs XYZ - Para entrar é necessário level 100 e Dungeon Scroll posicionado em local XYZ (bazin) e então puxar alavanca - São teleportados para XYZ - Se forem 1 ou 2 players será sumonado na sala o boss X e monstro B1, B2 - Se forem 3 ou 4 players será sumonado na sala o boss Y e monstro B3, B4 - Monstros são sumonados na sala apenas 1x (não tem respawn - exemplo Yalahari Quest) - Ao matar o boss final recebem loot no sistema novo - Para realizar novamente a dungeon devem aguardar tempo de 30m - Se não concluir em 15m teleportar playes para local XYZ (SQM Preto ao lado da estatua) - Se outro time tentar entrar enquanto houver players na sala mensagem de aviso "Wait, there are people inside dungeon." - Quando players terminam sala é limpa para o próximo time (Modelo Yalahari Quest) - Se o player morrer no caminho não consegue voltar Abaixo coloquei um exemplo bem simples de como seria uma dungeon: - Abaixo sala de entrada e retorno caso sejam kickados. - Após matar o boss final abre um teleport na sala final que leva para o baú de loot. Se alguém puder me ajudar por gentileza!
  20. Fiz o download tudo funcionando perfeitamente, obrigado! Usei o Xamps 7.4 e uma outra htdocs que tinha aqui. Agora vou começar editar. Uma dúvida, pra colocar online basicamente seguir todo padrão de sempre? Importante pra quem for baixar precisar mudar o nome do mapa no config.lua pra não fechar o exe do servidor.
  21. .Qual servidor ou website você utiliza como base? TFS 0.4 Qual o motivo deste tópico? Como faço para adicionar por exemplo sprite da Falcon Armor em um server 8.6 Fala pessoal procurei nos tópicos resolvidos e não encontrei. Achei informações sobre como utilizar o Object Builder e o Item Editor 8.6 minha dúvida é onde posso encontrar os sprites do Tibia 12 para extrair e adicionar ao cliente 8.6?
  22. Por acaso alguém tem um link ativo? ❤️
  23. Diga em poucas palavras a base utilizada (Nome do servidor ou nome do website). TFS 0.4; Base: Styller Platinum 2017 Qual erro está surgindo/O que você procura? Quando vou abrir o servidor ele envia essa mensagem e não abre. Você tem o código disponível? Se tiver publique-o aqui: function onUse(cid, item, frompos, item2, topos) gatepos = {x=2435, y=3505, z=15, stackpos=1} getgate = getThingfromPos(gatepos) if item.uid == 4560 and item.itemid == 1945 and getgate.itemid == 1355 then doRemoveItem(getgate.uid,1) doTransformItem(item.uid,item.itemid+1) elseif item.uid == 4560 and item.itemid == 1946 and getgate.itemid == 0 then doCreateItem(1355,1,gatepos) doTransformItem(item.uid,item.itemid-1) else doPlayerSendCancel(cid,"Sorry not possible.") end return 1 end Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.
  24. Particularmente eu jogaria e muito! Os sistemas que citou são os que sempre busquei em outros servidores. Tem previsão de BETA ou estão precisando de alguém pra testar? Parabéns pelo projeto e não desistam.
  25. moskitinho postou uma resposta no tópico em Suporte & Pedidos
    Fala camaradas, Estava pensando em fazer um server 8.6 pra jogar com alguns amigos RPG. E comecei a criar a primeira cidade Algor, vale lembrar que fazem anos que não usava o RME e que não frequento o Tibia então estou bem enferrujado. Deixei as áreas bem limpas e sem muita inovação na arquitetura é pra ser um mapa simples mesmo. Alguns locais de caça serão por portal. - O mini map. A ideia é que Algor seja um vilarejo de início e que depois do level 50 através de missões os jogadores cheguem a capital. E sim tá faltando muita coisa. - Arco de entrada de Algor e as estatuas em homenagem ao mago Halcrof. - Guarda de Algor. - Loja de loots. - Cemitério de Algor, dará acesso à hunts e quests como Banshee. - Área dos Cyclops. Por enquanto é isso galera, deixem seus comentários e toda crítica é bem vinda, abraços!

Informação Importante

Confirmação de Termo