Jump to content
Close

Dwarfer

Suporter
  • Content Count

    488
  • Joined

  • Last visited

  • Days Won

    38

Dwarfer last won the day on January 1

Dwarfer had the most liked content!

About Dwarfer

  • Rank
    Baronet

Profile Information

  • I am
    Scripter

Recent Profile Visitors

7792 profile views
  1. Para os próximos pedidos, tente deixar o título do seu tópico representativo do pedido. Se entendi bem o que você quis dizer... No movements.xml adicione as tags para o StepIn e para o StepOut referentes ao actionid do piso.
  2. local t = { players = { [1] = Position(1,1,1), [2] = Position(1,1,1), [3] = Position(1,1,1), [4] = Position(1,1,1), [5] = Position(1,1,1) }, boss = {name = "Dwarf Guard", create_pos = Position(1,1,1)}, destination = Position(1,1,1), cooldown = {20, "hour"}, storage = 56482 } function onUse(player, item, fromPosition, target, toPosition, isHotkey) local players, tab = {}, t.players for i = 1, #tab do local tile = Tile(tab[i]) if tile then local p = Player(tile:getTopCreature()) if p then if p:getStorageValue(t.storage) <= os.time() then players[#players + 1] = p:getId() end end end end if #players == 0 then player:sendCancelMessage("None of the players did not wait " .. getStrTime(t.cooldown) .. " to go again.") return true end for i = 1, #tab do local playerTile = Tile(tab[i]) local playerToGo = Player(playerTile:getTopCreature()) if playerToGo then if isInArray(players, playerToGo:getId()) then playerToGo:setStorageValue(t.storage, mathtime(t.cooldown) + os.time()) playerTile:relocateTo(t.destination) tab[i]:sendMagicEffect(CONST_ME_POFF) end end end t.destination:sendMagicEffect(CONST_ME_TELEPORT) Game.createMonster(t.boss.name, t.boss.create_pos) item:transform(item.itemid == 1945 and 1946 or 1945) return true end function mathtime(table) -- by dwarfer local unit = {"sec", "min", "hour", "day"} for i, v in pairs(unit) do if v == table[2] then return table[1]*(60^(v == unit[4] and 2 or i-1))*(v == unit[4] and 24 or 1) end end return error("Bad declaration in mathtime function.") end function getStrTime(table) -- by dwarfer local unit = {["sec"] = "second",["min"] = "minute",["hour"] = "hour",["day"] = "day"} return tostring(table[1].." "..unit[table[2]]..(table[1] > 1 and "s" or "")) end
  3. Se você utilizar a mesma lib que enviou, o mesmo npc e substituir o script de movements que você tem pelo que eu enviei, vai resolver. Siga o que eu falei aí sobre os uniqueids. Ele deixa repetir a task, desde que na Lib não esteja com o: norepeatable = true, 'true' a task não pode ser repetida, 'false' a task pode ser repetida. Se sair da sala do boss ele não some, mas se outra pessoa foi entrar, o boss que estava lá vai ser removido e será criado outro boss. É assim que está o script que você enviou e que eu acho que dá no mesmo que ele sumir assim que o player sair.
  4. local moneyRate = 50 -- % de dinheiro que será perdida local sendMoneyMsg = true -- 'true' para enviar mensagem de quanto dinheiro foi perdido, 'false' para não enviar function onDeath(cid, corpse, killer, frompos) if not isPlayer(cid) then return true end local check_killer = killer[1] local playerKiller = isCreature(check_killer) and (isPlayer(check_killer) and check_killer or getCreatureMaster(check_killer)) or nil if not playerKiller then return true end local victimName, victimLevel, killerName, killerLevel = getPlayerName(cid), getPlayerLevel(cid), getPlayerName(playerKiller), getPlayerLevel(playerKiller) local victimMoney = getPlayerMoney(cid) if victimMoney > 0 then local money = math.ceil(.01 * moneyRate * victimMoney) if money > 0 then doPlayerRemoveMoney(cid, money) doPlayerAddMoney(playerKiller, money) if sendMoneyMsg then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, string.format("You lost %d gold coin%s due to this death.", money, (money > 1 and "s" or ""))) doPlayerSendTextMessage(playerKiller, MESSAGE_STATUS_CONSOLE_ORANGE, string.format("You earned %d gold coin%s for this kill.", money, (money > 1 and "s" or ""))) end end end doBroadcastMessage(string.format("O jogador %s (Level: %d) foi morto pelo jogador %s (Level: %d).", victimName, victimLevel, killerName, killerLevel), MESSAGE_STATUS_CONSOLE_RED) return true end
  5. Em data/movements/scripts crie um arquivo.lua e cole isto dentro: No movements.xml, adicione a tag: <movevent type="StepIn" actionid="ACTIONID_DO_PISO" event="script" value="NOMEDOARQUIVO.lua"/>
  6. @guhcast Não fique com dúvidas, pergunte mesmo. Podem ter outras pessoas com a mesma dúvida que a sua. <stage minlevel="1" maxlevel="7" multiplier="12" /> <stage minlevel="8" maxlevel="50" multiplier="10" /> <stage minlevel="51" maxlevel="80" multiplier="8" /> <stage minlevel="81" maxlevel="100" multiplier="6" /> <stage minlevel="101" maxlevel="140" multiplier="1.5" /> <stage minlevel="141" maxlevel="200" multiplier="0.5" /> <stage minlevel="201" multiplier="0.05" /> Exemplifiquei os três últimos.
  7. @nanomeyer, ao que parece você pegou um script qualquer de teleporte para os bosses sem que ele tivesse relação com o sistema de task que você tá utilizando. Por isso não funciona. Substitua o que tem no arquivo data/movements/scripts/tasks.lua, por esse: Exemplifiquei para o The Snapper, perceba na linha: [16691] = {monsters = {"The Snapper"}, telePos = {x = 32610, y = 32724, z = 8}, spawnPos = {x = 32611, y = 32727, z = 8}, from = {x = 32606, y = 32720, z = 8}, to = {x = 32620, y = 32733, z = 8}}, Entre [ ] é o uniqueid que você colocará no teleporte. Esse uniqueid deve ser igual ao storage configurado no arquivo data/lib/104-KillingInTheNameOf.lua: Veja para a task dos crocodilos: [3] = {killsRequired = 1, raceName = "Crocodiles", level = {6, 49}, premium = true, creatures = {"crocodile"}, rewards = { {type = "exp", value = {11000}}, {type = "achievement", value = {"Blood-Red Snapper"}}, {type = "storage", value = {16691, 1}}, {type = "points", value = {1}} }}, Em: {type = "storage", value = {16691, 1}}, Em "value", sempre deixe o segundo valor igual a 1. Agora é com você pra colocar os storages em uma sequência e deixar os uniqueids mais organizados. Ou então deixa tudo bagunçado mesmo. 🤷‍♂️
  8. Existem várias maneiras de fazer isso. Uma delas é a seguinte: No outfits.xml, adicione a storage necessária para que o jogador possua o outfit. Exemplo: <outfit id="1" storageId="1111" storageValue="1"> <list gender="0" lookType="136" name="Citizen"/> <list gender="1" lookType="128" name="Citizen"/> </outfit> Utilizei como exemplo o storage 1111, modifique para o seu. Em data/creaturescripts/scripts crie um arquivo.lua e cole isto dentro: local vocations = {1,2,3,4,5,6} -- ids das vocações que terão permissão de utilizar o outfit local storage = 1111 -- storage do outfit (mesmo storage configurado para o outfit no outfits.xml) function onLogin(cid) if getPlayerStorageValue(cid, storage) == 1 then return true end if not isInArray(vocations, getPlayerVocation(cid)) then return true end setPlayerStorageValue(cid, storage, 1) return true end No creaturescripts.xml, adicione a tag: <event type="login" name="CitizenLogin" event="script" value="NOMEDOARQUIVO.lua"/>
  9. Visualizar Anúncio Dwarfer Scripts Fala, galerinha! Trabalho com scripts Lua para todas versões de TFS e OTX há um bom tempo. Vários dos meus trabalhos podem ser encontrados aqui mesmo no tk de forma que sirvam como primeiras impressões e referências. Já trabalhei para vários servidores sempre facilitando ao máximo a configuração dos scripts para os administradores, com foco total na qualidade dos códigos e preocupação com o servidor do cliente. Além disso, caso o administrador enfrente maiores dificuldades na configuração, o suporte é garantido. O método de pagamento é definido em comum acordo com o cliente. Contato: Discord: Dwarfer#2715 Anunciante Dwarfer Date 28/11/2019 Preço Categoria Procura-se Jobs  
  10. Dwarfer

    Dwarfer Scripts

    Time Left: 7 months and 20 days

    • Looking for Jobs
    • To combine

    Fala, galerinha! Trabalho com scripts Lua para todas versões de TFS e OTX há um bom tempo. Vários dos meus trabalhos podem ser encontrados aqui mesmo no tk de forma que sirvam como primeiras impressões e referências. Já trabalhei para vários servidores sempre facilitando ao máximo a configuração dos scripts para os administradores, com foco total na qualidade dos códigos e preocupação com o servidor do cliente. Além disso, caso o administrador enfrente maiores dificuldades na configuração, o suporte é garantido. O método de pagamento é definido em comum acordo com o cliente. Contato: Discord: Dwarfer#2715

    NO VALUE SPECIFIED

  11. Colocou a lib corretamente? Se sim, vê se não tem algum bug de formatação que geralmente tá surgindo ao copiar o conteúdo do fórum e colar.
  12. MARAVILHOOOOOOSOS, como vocês estão? Espero que estejam bem. 😍 Esses dias fuçando as profundezas sombrias do meu computador encontrei essa quest, a Barbarian Test Quest, do tibia global e agora compartilho-a com vocês. Para quem não conhece, é aquela quest que dá alguns acessos na cidade de Svargrond do tibia global. Mais informações, visite o link: https://www.tibiawiki.com.br/wiki/Barbarian_Test_Quest As falas do NPC estão 99% iguais ao do tibia global, salvo algumas pequenas modificações/adaptações feitas por mim dando o meu toque, é claro 🤗. (todos gostam do meu toque) Obviamente, a quest se aplica melhor para servidores de tibia clássico, mas deixei os id's dos itens facilmente editáveis para você adaptar para o seu servidor, seja ele de qual tipo for, para TFS 0.4 ou OTX 2.x. Configuração: 1) Em data/lib, crie um arquivo chamado Barbarian Test Quest.lua e cole isto dentro: 2) Em data/npc/scripts, crie um arquivo chamado Sven.lua e cole isto dentro: O arquivo.xml do NPC Sven, em data/npc é o seguinte: <?xml version="1.0" encoding="UTF-8"?> <npc name="Sven" script="Sven.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="143" head="76" body="100" legs="132" feet="97" addons="3" mount="0"/> </npc> 3) Em data/actions/scripts, aconselho criar uma pasta chamada barbarian_test para colocar os arquivos referentes à quest. Dentro dessa pasta, um por um, coloque os arquivos com os nomes abaixo: bucketmead.lua meadhorn.lua mammothpushing.lua Em data/actions.xml adicione as tags abaixo: (caso altere os ids dos itens para adaptar ao seu servidor, lembre de alterá-los nas tags também) <action actionid="8952" script="barbarian_test/bucketmead.lua" /> <action itemid="7140;7141" script="barbarian_test/meadhorn.lua" /> <action itemid="7176" script="barbarian_test/mammothpushing.lua" /> Coloque o actionid 8952 (ou o valor que desejar, lembrando de modificar na tag no actions.xml) no balde de rum localizado próximo ao NPC. Lembre de colocar um NPC adicional ao lado do NPC Sven que venda "rum" para que o jogador possa ficar bêbado e realizar a última missão (missão do mammoth). OBS: Ao finalizar a quest, o jogador receberá a storage 87345 igual a 1. Essa informação pode ser útil para dar acesso a determinadas áreas somente após terminar a quest, por exemplo. É isso. Espero que seja útil ao servidores que desejam ter um pouquinho mais de RPG. GRANDE ABRAÇO! 😉 Esse script faz parte de um conjunto de quests do tibia global que pretendo ir fazendo aos poucos a depender do feedback do pessoal. Veja também:
  13. verdade, acabei esquecendo de copiar as linhas de remover. Já editei lá.
  14. local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end local items_needed = {{5922,50},{2492,1},{2488,1},{2536,1},{2123,1}} local outfit_storage = 65535 function outfit(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if getPlayerStorageValue(cid, outfit_storage) ~= -1 then npcHandler:say('You have already received this outfit.', cid) else local total_count, check = #items_needed, true for i = 1, total_count do local itemId, itemCount = items_needed[i][1], items_needed[i][2] if getPlayerItemCount(cid, itemId) < itemCount then check = false break end end if not check then npcHandler:say('You do not have all the items I need to make this outfit.', cid) else for i = 1, total_count do local itemId, itemCount = items_needed[i][1], items_needed[i][2] doPlayerRemoveItem(cid, itemId, itemCount) end doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_GREEN) setPlayerStorageValue(cid, outfit_storage, 1) end end end local node1 = keywordHandler:addKeyword({'outfit'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I need the items, {50 holy orchids, ring of the sky, crown legs, dragon scale mail and medusa shield}. Do you have?.'}) node1:addChildKeyword({'yes'}, outfit, {npcHandler = npcHandler, onlyFocus = true, reset = true}) node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Stop being rude!!!', reset = true}) npcHandler:addModule(FocusModule:new())

Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia começando do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer fazer um plano publicitário para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução!

×
×
  • Create New...