Ir para conteúdo
Close

REFORMULAMOS A SEÇÃO DE CLASSIFICADOS! - Crie grátis os seus anúncios de procura e oferta de serviços e produtos relacionados ao OTServ! - Acesse através do nosso menu ou clique aqui e confira já!

Dwarfer

Suporter
  • Total de itens

    445
  • Registro em

  • Última visita

  • Dias Ganhos

    33

Dwarfer venceu a última vez em Agosto 9

Dwarfer teve o conteúdo mais curtido!

Sobre Dwarfer

  • Rank
    Baronete

Informação de Perfil

  • Eu sou
    Scripter

Últimos Visitantes

5.319 visualizações
  1. function onUseWeapon(cid, var) local slotitem = getPlayerSlotItem(cid, CONST_SLOT_LEFT) -- edite o slot local nomeitem = getItemNameById(slotitem.itemid) -- tipo isso --codigos return true end
  2. local config = { effects_per_level = { [1] = 25, -- efeito no [level 1] [2] = 177 -- efeito no [level 2] }, casts_to_up = 300, -- quantas vezes tem que soltar para alcançar o level 2 storages = {level = 46890, cast = 46891} -- só modifique se necessário } local function getPlayerRasenganLevel(cid) return getPlayerStorageValue(cid, config.storages.level) end local function getPlayerRasenganCasts(cid) return getPlayerStorageValue(cid, config.storages.cast) > 0 and getPlayerStorageValue(cid, config.storages.cast) or 0 end local function doPlayerRasenganUp(cid, round) return setPlayerStorageValue(cid, config.storages.cast, getPlayerRasenganCasts(cid) + round) end local combat = {} for i = 1, 2 do combat[i] = createCombatObject() setCombatParam(combat[i] , COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat[i] , COMBAT_PARAM_EFFECT, config.effects_per_level[i]) function onGetFormulaValues(cid, level, maglevel) min = -(level * 0.28 + maglevel * 1.48) * 1.0 * getPlayerRasenganLevel(cid) max = -(level * 0.34 + maglevel * 2.34) * 1.0 * getPlayerRasenganLevel(cid) return min, max end setCombatCallback(combat[i], CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") end function onCastSpell(cid, var) if getPlayerRasenganLevel(cid) == -1 then setPlayerStorageValue(cid, config.storages.level, 1) end if getPlayerRasenganLevel(cid) ~= 2 then doPlayerRasenganUp(cid, 1) local casts, str = getPlayerRasenganCasts(cid), '' if casts == 1 then str = "First time casting Rasengan! You need "..config.casts_to_up.." casts to advance to level 2 and improve its power!" elseif casts == (config.casts_to_up / 2) then str = "You reached 50% on Rasengan level 1. Now you need "..(config.casts_to_up/2).. " casts to advance to level 2." elseif casts == config.casts_to_up then str = "Congratulations! You advanced the Rasengan jutsu from level 1 to level 2." setPlayerStorageValue(cid, config.storages.level, 2) end if str ~= '' then doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, str) end end return doCombat(cid, combat[getPlayerRasenganLevel(cid)], var) end No level 2, vai dar um dano 2x maior que no nível 1. Não tive como testar o script.
  3. O mod ficará assim: Em data/actions/scripts crie um arquivo.lua e cole isto dentro: local autoLootPremiumTime = {3, "day"} -- quanto tempo a "premium" durará function onUse(cid, item, fromPosition, itemEx, toPosition) domodlib('Loot_func') local check = getPlayerStorageValue(cid, info.Storages[4]) if check > os.time() then return doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Your Auto Loot premium time ends at " ..os.date("%d %B %Y %X", check)..".") end doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Congratulations! You received "..getStrTime(autoLootPremiumTime).." of Auto Loot Premium Time!") doSendMagicEffect(toPosition, CONST_ME_MAGIC_GREEN) setPlayerStorageValue(cid, info.Storages[4], mathtime(autoLootPremiumTime) + os.time()) doRemoveItem(item.uid) 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 No actions.xml, adicione a tag abaixo e edite o XXXX para o id do item. <action itemid="XXXX" script="NOMEDOARQUIVO.lua" />
  4. Vê se assim te serve, não tive como testá-lo:
  5. Em creaturescripts/scripts crie um arquivo.lua e cole isto dentro: local group_id = 1 -- abaixo ou igual a esse grupo receberá a skull function onLogin(cid) if getPlayerGroupId(cid) <= group_id then if getCreatureSkullType(cid) == SKULL_NONE then doCreatureSetSkullType(cid, SKULL_WHITE) end end return true end No creaturescripts.xml, adicione a tag: <event type="login" name="SetaSkull" event="script" value="NOMEDOARQUIVO.lua"/>
  6. local evo = { --nome do shiny, qnts stones precisa ["Snorlax"] = {"Shiny Snorlax", 5}, ["Gengar"] = {"Shiny Gengar", 7}, ["Ninetales"] = {"Shiny Ninetales", 4}, ["Raichu"] = {"Shiny Raichu", 5}, ["Alakazam"] = {"Shiny Alakazam", 7}, } local pokeballs = { [2531] = {newBall = 1111}, -- edite o "1111" para o id para o qual a pokeball 2531 se transformará [2557] = {newBall = 1111}, [2524] = {newBall = 1111}, [2525] = {newBall = 1111}, [2523] = {newBall = 1111}, } function onUse(cid, item, fromPosition, itemEx, toPosition) if isMonster(itemEx.uid) and getCreatureMaster(itemEx.uid) == cid then local monster = getCreatureName(itemEx.uid) if evo[monster] then if getPlayerItemCount(cid, item.itemid) >= evo[monster][2] then doPlayerSendTextMessage(cid, 27, "Congratulations! Your "..getPokeName(itemEx.uid).." evolved into a "..evo[monster][1].."!") local health, maxHealth = getCreatureHealth(itemEx.uid), getCreatureMaxHealth(itemEx.uid) doSendMagicEffect(getThingPos(itemEx.uid), 18) doRemoveCreature(itemEx.uid) doPlayerRemoveItem(cid, item.itemid, evo[monster][2]-1) doRemoveItem(item.uid, 1) doSummonMonster(cid,evo[monster][1]) local pokeball = getPlayerSlotItem(cid, 8) doItemSetAttribute(pokeball.uid, "poke", evo[monster][1]) doItemSetAttribute(pokeball.uid, "level", pokes[evo[monster][1]].level) doItemSetAttribute(pokeball.uid, "hp", 1) doItemSetAttribute(pokeball.uid, "happy", 110) local pk = getCreatureSummons(cid)[1] local getShinyPokeballs = pokeballs[getPlayerSlotItem(cid, 8).itemid] if getShinyPokeBalls then doTransformItem(getPlayerSlotItem(cid, 8).uid, getShinyPokeballs.newBall) adjustStatus(pk, pokeball.uid, true, false, true) end return true else return doPlayerSendTextMessage(cid, 27, "You need atleast ".. evo[monster][2] .." stones to do it!") end end end return false end
  7. Dwarfer

    Mapper King 2018

    Em minha opinião o mapa 2 retratou quase que perfeitamente uma mina, gostei bastante dos trilhos à mostra, o que confere originalidade ao mapa. Com certeza eu moraria nessa mina aí! 😅 Voto: Mapa 2
  8. @Navegante Em actions/scripts crie um arquivo.lua e cole isto dentro: No actions.xml, coloque a tag como o exemplo abaixo, inserindo um actionid no lugar do XXXX e o mesmo valor para o actionid do baú. <action actionid="XXXX" script="NOMEDOSEUARQUIVO.lua"/>
  9. @biellhb Crie um arquivo em actions/scripts e cole isto dentro: Imagem mostrando as posições: https://prnt.sc/klnthu Em actions.xml, adicione a tag: <action actionid="XXXX" script="NOMEDOARQUIVO.lua"/> Coloque um actionid em XXXX e esse mesmo actionid na porta.
  10. @iury alves potter Se eu entendi o que você quis dizer com " os pontos do meu servido e só points não tem storage ou item nada, e so points": Caso ainda não tenha essas funções, copie isso abaixo e cole em algum arquivo da pasta lib: function getPremiumPoints(cid) local query = db.getResult("SELECT `premium_points` FROM `accounts` WHERE `id` = "..getPlayerAccountId(cid)) local points = query:getDataInt("premium_points") <= 0 and 0 or query:getDataInt("premium_points") query:free() return tonumber(points) end function setPremiumPoints(cid, amount) return db.executeQuery("UPDATE `accounts` SET `premium_points` = "..amount.." WHERE `id` = "..getPlayerAccountId(cid)) end O script fica: local t = { storage = 9999, points = 10, -- quantos pontos vai custar looktype = 2192 } function onSay(cid, words, param) if getPlayerStorageValue(cid, t.storage) >= 1 then doPlayerSendTextMessage(cid, 22, "Desculpe voce ja comprou essa outift") return true end if getPremiumPoints(cid) < t.points then doPlayerSendTextMessage(cid, 22, "Você não tem "..t.points.." ponto"..(t.points > 1 and "s" or "")..".") return true end doPlayerAddOutfit(cid, t.looktype, 3) setPlayerStorageValue(cid, t.storage, 1) doPlayerSendTextMessage(cid, 22, "Você comprou a outift.") setPremiumPoints(cid, getPremiumPoints(cid) - t.points) return true end

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!

×