Jump to content
Close

Dwarfer

Suporter
  • Content Count

    461
  • Joined

  • Last visited

  • Days Won

    35

Dwarfer last won the day on March 16

Dwarfer had the most liked content!

About Dwarfer

  • Rank
    Baronet

Profile Information

  • I am
    Scripter

Recent Profile Visitors

6346 profile views
  1. @Jhonjhon775 function Creature:onChangeOutfit(outfit) if self:isPlayer() then local head = self:getSlotItem(CONST_SLOT_HEAD) if head and head:getId() == 32671 and self:getOutfit().lookType == 1122 and outfit.lookType ~= 1122 then return false end if outfit.lookType == 111 and outfit.lookMount ~= 0 then -- TROQUE O 111 pelo lookType do seu outfit self:sendCancelMessage("You can not mount while using this outfit.") return false end -- [CONTINUAÇÃO]
  2. @Yinz Como você não postou o código por completo, tive que supor que se tratava de um autoloot que eu vi por aí certa vez. Tente sempre deixar o código completo pra facilitar o trabalho, ajudar outras pessoas, além de se obter uma solução mais rapidamente pra você também. Espero que minha suposição esteja correta. Bem, eu não tive como testar o código, pois estava sem acesso ao meu computador. Em data/lib, crie um arquivo.lua chamado AutoLootRemove.lua (ou qualquer nome de sua preferência) e cole isto dentro: No global.lua, adicione a linha (ou troque para o nome que você escolheu): dofile('data/lib/AutoLootRemove.lua') Em talkactions/scripts, crie um arquivo.lua e cole isto dentro: No talkactions.xml, adicione a tag conforme desejar. Ex.: <talkaction words="!autolootremove" script="NOMEDOSEUARQUIVO.lua"/> Em seguida, em data/creaturescripts/scripts crie um arquivo.lua e cole isto dentro: No creaturescripts.xml, adicione as linhas: <event type="modalwindow" name="RmvAutoLootModal" script="NOMEDOARQUIVO.lua"/> <event type="login" name="RmvAutoLootLogin" script="NOMEDOARQUIVO.lua"/> Qualquer problema, é só retornar.
  3. Em data/events/scripts/creature.lua, procure por: function Creature:onChangeOutfit(outfit) return true end Substitua por: function Creature:onChangeOutfit(outfit) if outfit.lookType == 111 and outfit.lookMount ~= 0 then self:sendCancelMessage("You can not mount while using this outfit.") return false end return true end Troque o 111 pelo lookType do outfit que você quer proibir que possa montar. Verifique, no events.xml, se tem a linha abaixo e ela está com enabled="1": <event class="Creature" method="onChangeOutfit" enabled="1" />
  4. @Bruno Asap Tente sempre falar o que deseja de uma vez só e de forma detalhada. Editei lá com a informação do boss. É só configurar o nome e a posição na qual ele será criado.
  5. Não funciona em tfs 1.x ou otx 3.x.
  6. Primeiramente, tente sempre deixar claro qual a versão da sua distro nos seus tópicos. Espero que a versão que chutei ser a do seu servidor seja a correta. Não estava em casa, então não tive como testar exatamente nada, qualquer problema é só falar. Em data/lib crie um arquivo.lua e cole isto dentro: Os campos que têm tempo você pode configurá-los como quiser. Os valores possíveis seguem os exemplos abaixo: Ex.: {40, "sec"}, {10, "min"}, {2, "hour"}, {1, "day"} Em data/talkactions/scripts crie um arquivo.lua e cole isto dentro: No talkactions.xml, adicione a tag: <talkaction words="!pvp" event="script" value="NOMEDOSEUARQUIVO.lua"/> Em data/creaturescripts/scripts crie um arquivo.lua e cole isto dentro: No creaturescripts.xml, adicione as linhas: <event type="target" name="PvpSysTarget" event="script" value="NOMEDOSEUARQUIVO.lua"/> <event type="combat" name="PvpSysCombat" event="script" value="NOMEDOSEUARQUIVO.lua"/> <event type="login" name="PvpSysLogin" event="script" value="NOMEDOSEUARQUIVO.lua"/> <event type="look" name="PvpSysLook" event="script" value="NOMEDOSEUARQUIVO.lua"/> <event type="kill" name="PvpSysKill" event="script" value="NOMEDOSEUARQUIVO.lua"/> Deixe o servidor como pvp no config.lua. Os comandos para ativar e desativar o pvp são, respectivamente, !pvp on e !pvp off
  7. Como você não detalhou se o intervalo de 20 horas é para todos os players ou para os players que foram teleportados, assumi que fosse para os players que foram teleportados. Não tive como testar, fiz aqui rapidão. Em data/actions/scripts crie um arquivo.lua e cole isto dentro: No actions.xml adicione a tag e edite o actionid que ficará na alavanca: <action actionid="ACTIONID_DA_ALAVANCA" script="NOMEDOARQUIVO.lua"/>
  8. 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. Detalhe sua ideia que farei a mágica acontecer 😆 Contato: Discord: Dwarfer#2715 Anunciante Dwarfer Date 26/03/2019 Preço Categoria Procura-se Jobs  
  9. Dwarfer

    Dwarfer Scripts

    THIS ADVERT HAS EXPIRED!

    • 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. Detalhe sua ideia que farei a mágica acontecer 😆 Contato: Discord: Dwarfer#2715

    NO VALUE SPECIFIED

  10. local HORN = 2079 local BIRD_CAGE = 2095 local WOODEN_WHISTLE = 5786 local DIDGERIDOO = 3952 local CORNUCOPIA = 2369 local PARTY_TRUMPET = 6572 local USED_PARTY_TRUMPET = 6573 local GREEN_NOTES = {2070, 2071, 2073, 2075, 2076, 2078, 2367, 2374} local extime = 1000 -- exhausted em milisegundos function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerStorageValue(cid, 54326) > os.time() then doPlayerSendCancel(cid, "You can not use it so fast.") return true end local random = math.random(1, 5) setPlayerStorageValue(cid, 54326, extime + os.time()) if(item.itemid == BIRD_CAGE) then doSendMagicEffect(fromPosition, CONST_ME_SOUND_YELLOW) elseif(item.itemid == DIDGERIDOO) then if(random == 1) then doSendMagicEffect(fromPosition, CONST_ME_SOUND_BLUE) return true end elseif(item.itemid == PARTY_TRUMPET) then doTransformItem(item.uid, USED_PARTY_TRUMPET) doCreatureSay(cid, "TOOOOOOT!", TALKTYPE_ORANGE_1) doSendMagicEffect(fromPosition, CONST_ME_SOUND_BLUE) doDecayItem(item.uid) elseif(item.itemid == CORNUCOPIA) then for i = 1, 11 do doPlayerAddItem(cid, 2681) end doRemoveItem(item.uid, 1) doSendMagicEffect(fromPosition, CONST_ME_SOUND_YELLOW) elseif(item.itemid == WOODEN_WHISTLE) then if(random == 2) then doSendMagicEffect(fromPosition, CONST_ME_SOUND_RED) doRemoveItem(item.uid, 1) return true end local position = getPlayerPosition(cid) position.x = position.x + 1 doSendMagicEffect(fromPosition, CONST_ME_SOUND_PURPLE) doSummonCreature("Wolf", pos) else local effect = CONST_ME_SOUND_BLUE if(item.itemid == HORN) then effect = CONST_ME_SOUND_PURPLE elseif(isInArray(GREEN_NOTES, item.itemid)) then effect = CONST_ME_SOUND_GREEN end doSendMagicEffect(fromPosition, effect) end return true end
  11. @ITALOx Vê se você não digitou algo a mais aí sem querer. Copiei o conteúdo que postei para checar se era algo ao copiar daqui do fórum e, pelo menos aqui, mudou automaticamente a linha: [2152] = {min = 2, max = 10} para [2152] = {min = 2, max = 1?0} colocando aquela "?" no meio. Deve ser algo relacionado à formatação do fórum, não sei. Dá uma olhada se não apareceu algo assim aí também ou você colocou algo por engano.
  12. Coloquei para não criar mais de um item em uma mesma posição, exceto se for um item juntável e você queira que a quantidade seja aleatória. Em data/talkactions/scripts crie o arquivo rainitems.lua e cole isto dentro: Em talkactions.xml, adicione a tag: <talkaction words="/rain" access="4" event="script" value="rainitems.lua"/> Edite o "access" como quiser. Utilização do comando: /rain [id do item] Ex.: /rain 2160 O resultado será algo assim:
  13. Sempre tente deixar claro no pedido qual sua distro. Em data/creaturescripts/scripts crie o arquivo logredskull.lua e cole isto dentro: function onLogin(cid) if getCreatureSkullType(cid) == SKULL_NONE then doCreatureSetSkullType(cid, SKULL_RED) end return true end No creaturescripts.xml, adicione a tag: <event type="login" name="SetSkull" event="script" value="logredskull.lua"/>
  14. Falaaaaa, galerinha! Bem, hoje compartilho com vocês o código da Goblin Merchant Quest que é a quest dos coryms lá de venore 😁. Na verdade, estou compartilhando as duas primeiras missões. A depender do feedback, se o pessoal se interessar pelo tipo de conteúdo, compartilho as outras missões. Acredito que a quest pode ser aproveitada em servidores com foco no RPG ou apenas para levar algo diferente ao servidor. Lembrando que o código é para TFS 0.4. Para saber mais sobre a quest: https://www.tibiawiki.com.br/wiki/Goblin_Merchant_Quest As falas do NPC Rafzan estão 99% iguais ao global. Aquele 1% vagabundo🎵 é de algumas adaptações que fiz. Adaptei os itens que foram utilizados na quest, já que não possuía os itens utilizados na quest do global por ter feito em uma versão anterior a atual. No entanto, está facilmente editável para vocês também colocarem os ids que desejarem. Configuração: Em data/lib crie o arquivo Goblin Merchant Quest.lua e cole isto dentro: No items.xml (Escolha os ids que preferir e edite de forma semelhante, mostrarei os que escolhi): ---> Para a missão 1: * cracked stone (id 1285) <item fromid="1285" toid="1292" article="a" name="stone" /> * skull stone (id 10023) <item id="10023" article="a" name="skull stone"> <attribute key="description" value="It is used to mark the way." /> <attribute key="decayTo" value="1285" /> <attribute key="duration" value="60" /> <attribute key="weight" value="950" /> </item> * skulls (id 2229) <item id="2229" article="a" name="skull" plural="skulls"> <attribute key="weight" value="2180" /> </item> O resultado ficou assim: --->Para a missão 2: * perfume gatherer (id 2007) <item id="2007" article="a" name="perfume gatherer"> <attribute key="weight" value="250" /> <attribute key="description" value="It is empty. The first odour you'r looking for is special snail slime." /> </item> Em data/actions/scripts, crie o arquivo rafzan_mission01.lua e cole isto dentro: Em data/actions/scripts, crie o arquivo rafzan_mission02.lua e cole isto dentro: No actions.xml, adicione as linhas: <action itemid="2229" script="rafzan_mission01.lua" /> <!-- id da placa --> <action itemid="2007" script="rafzan_mission02.lua" /> <!-- id do perfume gatherer --> E por último, mas não menos importante, em data/npc crie o arquivo Rafzan.xml: <?xml version="1.0" encoding="UTF-8"?> <npc name="Rafzan" script="rafzan.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="61"/> <parameters> <parameter key="module_shop" value="1" /> <parameter key="shop_buyable" value="backpack,1988,10;bag,1987,4;fishing rod,2580,150;rope,2120,50;shovel,2554,10;scythe,2550,12;torch,2050,2;worm,3976,1;" /> <parameter key="shop_sellable" value="fishing rod,2580,30;rope,2120,8;shovel,2554,2;" /> </parameters> </npc> Lembrando que coloquei somente os itens que existiam na versão que utilizei. Em data/npc/scripts, crie o arquivo rafzan.lua e cole isto dentro: Qualquer dúvida na configuração que tenha ficado, é só se basear na própria quest do global. É isso, beijinhos 😘.
  15. local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local npcTopic = {} 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 onPlayerEndTrade(cid) npcHandler:onPlayerEndTrade(cid) end function onPlayerCloseChannel(cid) npcHandler:onPlayerCloseChannel(cid) end local premium = {days = 30, cost = 10000} -- days = dias de premium comprados, cost = valor em gold coins function creatureSayCallback(cid, type, msg) local talkUser, msg = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid, string.lower(msg) if not npcHandler:isFocused(cid) then return false end if msgcontains(msg, "premium") then if not isPremium(cid) then npcHandler:say("Do you want to buy ".. premium.days .." premium days for ".. premium.cost .. " gold coins?", cid) npcTopic[talkUser] = 1 else npcHandler:say("You are already a premium player.", cid) npcTopic[talkUser] = 0 end elseif msgcontains(msg, "yes") and npcTopic[talkUser] == 1 then if doPlayerRemoveMoney(cid, premium.cost) then npcHandler:say("Here you go, as I promised.", cid) doPlayerAddPremiumDays(cid, premium.days) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_GREEN) else npcHandler:say("You do not have ".. premium.cost .." gold coins.", cid) end npcTopic[talkUser] = 0 elseif msgcontains(msg, "no") and npcTopic[talkUser] == 1 then npcHandler:say("No problem. Maybe on next time.", cid) npcTopic[talkUser] = 0 end return true end local 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}) npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:setMessage(MESSAGE_GREET, "Welcome, |PLAYERNAME|. Become a premium or a promoted player here!") npcHandler:setMessage(MESSAGE_FAREWELL, "Who is next?") npcHandler:setMessage(MESSAGE_WALKAWAY, "Who is next?") 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 partindo do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer publicidade 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! A publicação do seu anuncio é instantânea!

×
×
  • Create New...