Ir para conteúdo

Furabio

Conde
  • Total de itens

    962
  • Registro em

  • Última visita

  • Dias Ganhos

    10

Tudo que Furabio postou

  1. O math.random ta fora do callback por isso sempre da a mesma quantidade hahaha, tenta agora : local config = { exhaustionMinutes = 60, -- exausted em minutos effectChar = 30, -- efeito no char. storageUse = 34542 -- storage usado/ não mude caso não entenda. } function onUse(cid, item, fromPosition, itemEx, toPosition) local stonesMinerar = { -- [id da pedra] = {minerioid = id do item que ganha, chance= a % de chance que ele tem conseguir ou não o item, count = countidade que ganha} [5709] = {minerioid = 5944, chance= 10, count = math.random(1, 10)}, [5624] = {minerioid = 6277, chance= 10, count = math.random(1, 5)}, [8748] = {minerioid = 5880, chance= 10, count = math.random(1, 5)}, [5619] = {minerioid = 12700, chance= 10, count = math.random(1, 3)} } if exhaustion.check(cid, config.storageUse) then if exhaustion.get(cid, config.storageUse >= 60 then doPlayerSendCancel(cid, "Voçê só pode usar após [" .. math.floor(exhaustion.get(cid, config.storageUse) / 60 + 1) .."] minutos.") end if exhaustion.get(cid, config.storageUse <= 60 then doPlayerSendCancel(cid, "Voçê só pode usar após [" .. exhaustion.get(cid, config.storageUse).."] segundos.") end return true end local random = math.random(1, 100) local itemMinerar = stonesMinerar[itemEx.itemid] if itemMinerar then if random <= itemMinerar.chance then doPlayerAddItem(cid, itemMinerar.minerioid, itemMinerar.count) doPlayerSendTextMessage(cid, 19, "Você recebeu "..(itemMinerar.count).." "..getItemNameById(itemMinerar.minerioid).."!") doSendMagicEffect(getPlayerPosition(cid), config.effectChar) exhaustion.set(cid, config.storageUse, config.exhaustionMinutes*60) else doPlayerSendCancel(cid, "Você falhou.") end else doPlayerSendCancel(cid, "Você não pode minerar isso.") end return true end
  2. Furabio

    vanehim1090

    Tenta procurar algum script que troque vocation no tfs 1.x, que tu vai ter mais ou menos uma noção de como fazer. Em seguida é só adaptar para NPC, tem vários tutoriais e script no fórum que vão te ajudar, basta não ter preguiça para procurar e ler.
  3. Na verdade esse math.random no count que você está vendo não é a chance de ser obtido e sim a quantidade, ou seja a quantidade pode vir de 1 a 4 dependendo a sua sorte e no outro de 1 a 10. A configuração da chance de cada item está em chance, "chance=10" ele tem 10% de chance de conseguir o item ... modifique a seu gosto. local stonesMinerar = { -- [id da pedra] = {minerioid = id do item que ganha, chance= a % de chance que ele tem conseguir ou não o item, count = countidade que ganha} [5709] = {minerioid = 5944, chance= 10, count = math.random(1, 10)}, [5624] = {minerioid = 6277, chance= 10, count = math.random(1, 5)}, [8748] = {minerioid = 5880, chance= 10, count = math.random(1, 5)}, [5619] = {minerioid = 12700, chance= 10, count = math.random(1, 3)} } local config = { exhaustionMinutes = 60, -- exausted em minutos effectChar = 30, -- efeito no char. storageUse = 34542 -- storage usado/ não mude caso não entenda. } function onUse(cid, item, fromPosition, itemEx, toPosition) if exhaustion.check(cid, config.storageUse) then if exhaustion.get(cid, config.storageUse >= 60 then doPlayerSendCancel(cid, "Voçê só pode usar após [" .. math.floor(exhaustion.get(cid, config.storageUse) / 60 + 1) .."] minutos.") end if exhaustion.get(cid, config.storageUse <= 60 then doPlayerSendCancel(cid, "Voçê só pode usar após [" .. exhaustion.get(cid, config.storageUse).."] segundos.") end return true end local random = math.random(1, 100) local itemMinerar = stonesMinerar[itemEx.itemid] if itemMinerar then if random <= itemMinerar.chance then doPlayerAddItem(cid, itemMinerar.minerioid, itemMinerar.count) doPlayerSendTextMessage(cid, 19, "Você recebeu "..(itemMinerar.count).." "..getItemNameById(itemMinerar.minerioid).."!") doSendMagicEffect(getPlayerPosition(cid), config.effectChar) exhaustion.set(cid, config.storageUse, config.exhaustionMinutes*60) else doPlayerSendCancel(cid, "Você falhou.") end else doPlayerSendCancel(cid, "Você não pode minerar isso.") end return true end
  4. Furabio

    vanehim1090

    Vocês tem que editar o npc, e fazer com que ele te de a vocação, pois o olhei aqui no vanaheim e não tem o código que faz isso.
  5. Tópico Movido Este tópico foi movido de "OTServ → Websites → Suporte Websites" para "OTServ → Websites → Suporte Websites → Tópicos Resolvidos | Websites".
  6. https://mega.nz/#!vEMjgLRK!4tv814L7q-h47frFm7FYRhdXw85-76EP0ze8IgNK3pk
  7. O problema está na inserção desses dados nessa tabela. posta os scripts referentes ao sistema em .lua e .php também. Ps : em [*spoiler][*/spoiler] sem o *
  8. Se o problema foi resolvido, escolha o post que mais te ajudou como melhor resposta para que o tópico receba o prefixo resolvido e possa ser movido para pedidos e dúvidas resolvida. Tópico Movido Este tópico foi movido de "OTServ → Scripting → Suporte Scripting" para "OTServ → Scripting → Suporte Scripting → Pedidos e dúvidas resolvidos - Scripting".
  9. Furabio

    Sistema de EXAUST

    Se o problema foi resolvido, escolha o post que mais te ajudou como melhor resposta para que o tópico receba o prefixo resolvido e possa ser movido para pedidos e dúvidas resolvida. Tópico Movido Este tópico foi movido de "OTServ → Scripting → Suporte Scripting" para "OTServ → Scripting → Suporte Scripting → Pedidos e dúvidas resolvidos - Scripting".
  10. Quando resolver o problema, sempre deixe o que fez para resolver para quem tiver a mesma dúvida. No caso do seu erro em questão é coluna frags faltando na tabela players. ALTER TABLE players ADD frags tinyint(4) NOT NULL DEFAULT '0'; Tópico Movido Este tópico foi movido de "OTServ → Websites → Suporte Websites" para "OTServ → Websites → Suporte Websites → Tópicos Resolvidos | Websites".
  11. Geralmente quando se defini a senha, o arquivo do install.php é desativado e tu pode acessar o seu site usando localhost ou 127.0.0.1 ou o ip da máquina que foi instalada. Tópico Movido Este tópico foi movido de "OTServ → Websites → Suporte Websites" para "OTServ → Websites → Suporte Websites → Tópicos Resolvidos | Websites".
  12. Tinha isso no código : [i][b]add on bottom data/lib/lib.lua[/b][/i] [code] dofile('data.lib/pets_lib.lua') [/code] [b] data.lib/pets_lib.lua [/b] [code] Tirando o dofile(), o resto dava erro de sintaxe. por não ser reconhecido pela linguagem lua. Se o problema foi resolvido, escolha o post que mais te ajudou como melhor resposta para que o tópico receba o prefixo resolvido e possa ser movido para pedidos e dúvidas resolvida.
  13. Na próxima coloca entre [*spoiler][*/spoiler] : Teste aí :
  14. Tente : local conditionMP,conditionHP,conditionML,conditionCLUB,conditionSHI,conditionDIST,conditionAMP = {},{},{},{},{},{},{} for i=1,300 do conditionHP[i] = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(conditionHP[i], CONDITION_PARAM_SUBID, 50) setConditionParam(conditionHP[i], CONDITION_PARAM_BUFF_SPELL, 1) setConditionParam(conditionHP[i], CONDITION_PARAM_TICKS, -1) setConditionParam(conditionHP[i], CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT, 100+i) conditionMP[i] = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(conditionMP[i], CONDITION_PARAM_SUBID, 51) setConditionParam(conditionMP[i], CONDITION_PARAM_BUFF_SPELL, 1) setConditionParam(conditionMP[i], CONDITION_PARAM_TICKS, -1) setConditionParam(conditionMP[i], CONDITION_PARAM_STAT_MAXMANAPOINTSPERCENT, 100+i) conditionML[i] = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(conditionML[i], CONDITION_PARAM_SUBID, 52) setConditionParam(conditionML[i], CONDITION_PARAM_BUFF_SPELL, 1) setConditionParam(conditionML[i], CONDITION_PARAM_TICKS, -1) setConditionParam(conditionML[i], CONDITION_PARAM_STAT_MAGICPOINTSPERCENT, 100+i) conditionCLUB[i] = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(conditionCLUB[i], CONDITION_PARAM_SUBID, 53) setConditionParam(conditionCLUB[i], CONDITION_PARAM_BUFF_SPELL, 1) setConditionParam(conditionCLUB[i], CONDITION_PARAM_TICKS, -1) setConditionParam(conditionCLUB[i], CONDITION_PARAM_SKILL_MELEEPERCENT, 100+i) conditionSHI[i] = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(conditionSHI[i], CONDITION_PARAM_SUBID, 54) setConditionParam(conditionSHI[i], CONDITION_PARAM_BUFF_SPELL, 1) setConditionParam(conditionSHI[i], CONDITION_PARAM_TICKS, -1) setConditionParam(conditionSHI[i], CONDITION_PARAM_SKILL_SHIELDPERCENT, 100+i) conditionDIST[i] = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(conditionDIST[i], CONDITION_PARAM_SUBID, 55) setConditionParam(conditionDIST[i], CONDITION_PARAM_BUFF_SPELL, 1) setConditionParam(conditionDIST[i], CONDITION_PARAM_TICKS, -1) setConditionParam(conditionDIST[i], CONDITION_PARAM_SKILL_DISTANCEPERCENT, 100+i) end function getSlotType(n) if not n then return false end if n:match('%[(.+)%]') then n = n:match('%[(.+)%]') if n == '?' then return 0,n else return n:match('(.-)%.([+-])(%d+)%%') end else return false end end local function loadSet(cid) local player = Player(cid) if not player then return false end local t = {} for slot=1,9 do t[slot] = '' local s = getPlayerSlotItem(player,slot).uid if s ~= 0 then t[slot] = Item(s):getAttribute(ITEM_ATTRIBUTE_DESCRIPTION) end end return t end function chk(cid,f) local player = Player(cid) local t = loadSet(player) if not t then return false end for i=1,#f do if f[i] ~= t[i] then equip(player,nil,slot) break end end addEvent(chk,2000,player,t) end function check_slot(aab, i) if i == 5 or i == 6 then if isWeapon(aab) or isShield(aab) or isBow(aab) then return true end else return true end return false end function equip(cid,item,slot) local player = Player(cid) local t = {} if item then local mm,sinal,qto = getSlotType(Item(item.uid):getAttribute(ITEM_ATTRIBUTE_DESCRIPTION)) t[mm] = tonumber(qto) end for i=1,9 do if i ~= slot then if getPlayerSlotItem(player,i).itemid ~= 0 then local aab = getPlayerSlotItem(player,i).uid if aab and check_slot(aab,i) then for _ in Item(aab):getAttribute(ITEM_ATTRIBUTE_DESCRIPTION):gmatch('(%[.-%])') do local mm,sinal,qto2 = getSlotType(_) if mm then if not t[mm] then t[mm] = 0 end t[mm] = t[mm]+tonumber(qto2) t[mm] = t[mm] > 300 and 300 or t[mm] end end end end end end local fu = 0 local ca = {} local s = '' for sl,n in pairs(t) do fu = fu+1 s = s..''..n..'% more of '..sl..'\n' if sl == 'hp' then player:addCondition(conditionHP[tonumber(n)]) ca[50] = 1 doSendTutorial(player,19) elseif sl == 'mp' then player:addCondition(conditionMP[tonumber(n)]) ca[51] = 1 doSendTutorial(player,19) elseif sl == 'ml' then player:addCondition(conditionML[tonumber(n)]) ca[52] = 1 elseif sl == 'melee' then player:addCondition(conditionCLUB[tonumber(n)]) ca[53] = 1 elseif sl == 'shield' then player:addCondition(conditionSHI[tonumber(n)]) ca[54] = 1 elseif sl == 'dist' then player:addCondition(conditionDIST[tonumber(n)]) ca[55] = 1 end end if fu > 0 then for i=50,55 do if not ca[i] then doRemoveCondition(player,CONDITION_ATTRIBUTES,i) end end else for i=50,55 do doRemoveCondition(player,CONDITION_ATTRIBUTES,i) end end return true end function onLogin(cid) local player = Player(cid) equip(player, nil, slot) addEvent(chk,2000,player,loadSet(player)) return true end
  15. Furabio

    Ajuda Com Script

    ^^ diasdonate.lua : function onSay(cid, words, param) if (getPlayerStorageValue(cid, 85258) - os.time()) > 0 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você possui " .. math.floor((getPlayerStorageValue(cid, 85258) - os.time()) / (60*60*24)) .. " dia(s) de VIP!") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não possui VIP!") end return true end tag.XML : <talkaction log="yes" words="!diasdonate " event="script" value="diasdonate.lua"/>
  16. Mesmo erro ? cara eu retirei aquela função é impossível dar o mesmo erro ... você salvou o arquivo ? reiniciou o ot ?
  17. Teste agora : local cash = 500 -- Dinero que se nesecita para hacer el broadcast (en gps) local levelneeded = 8 -- Level necesario para hacer el broadcast local lenght = 100 -- Maximo de caracteres del mensaje local messagesort = MESSAGE_STATUS_WARNING -- can be "MESSAGE_STATUS_WARNING" or "TALKTYPE_ORANGE_1" check your global.lua for more... local exhaustTime = 1 -- Minutos function onSay(cid, words, param) if (getPlayerStorageValue(cid, 85258) - os.time()) <= 0 then doPlayerSendCancel(cid, "Só vips podem usar esse comando!") return true end if (getPlayerStorageValue(cid, 7894) - os.time()) > 0 then doPlayerSendCancel(cid, "Você precisa esperar " .. exhaustTime .. " minuto(s) para usar novamente.") return true end local name = getPlayerName(cid) local level = getPlayerLevel(cid) if not isCreature(cid) then doPlayerSendCancel(cid, 'You haven\'t a target!') doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end if param == nil then doPlayerSendCancel(cid, 'Nesecitas escribir algo!') doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end if string.len(param) > lenght then doPlayerSendCancel(cid, 'No mas de ' .. lenght .. ' caracteres. ') doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end if level < levelneeded then doPlayerSendCancel(cid, 'Tu nesecitas ser level '..levelneeded..' para hacer un broadcast!') doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end if doPlayerRemoveMoney(cid, cash) then broadcastMessage( ''..name..' ['..level..'] dice: ' .. param .. '', messagesort) setPlayerStorageValue(cid, 7894, os.time() + exhaustTime * 60) else doPlayerSendCancel(cid, 'Tu nesecitas '..cash..' gps para hacer un broadcast!') doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) end return true end
  18. Tópico Movido Este tópico foi movido de "OTServ → Scripting → Downloads Scripts → Sistemas e mods" para "OTServ → Scripting → Suporte Scripting".
  19. A área correta seria suporte de scripts :smile_positivo: Tópico Movido Este tópico foi movido de "OTServ → Scripting → Downloads Scripts" para "OTServ → Scripting → Suporte Scripting".
  20. Furabio

    Sistema de EXAUST

    Desculpe erro bobo rsrsrs : function onUse(cid, item, frompos, item2, topos) local dolls = { [2344] = {pet = "Mewtwo"}, [2139] = {pet = "Mew"}, } local go = dolls[item.itemid] local summon = getCreatureSummons(cid) local storage = 311283 -- Storage para dar exhausted if #summon >= 1 then for _, pid in ipairs(summon) do doRemoveCreature(pid) doCreatureSay(cid, "Can go rest ["..go.pet.."]", TALKTYPE_ORANGE_1) end return true end if getPlayerStorageValue(cid, storage) > os.time() then return doPlayerSendCancel(cid, "Você já usou este item hoje, espere " .. math.floor((getPlayerStorageValue(cid, storage) - os.time()) / (60*60)) .. " horas para poder usar de novo.") end doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid))) doCreatureSay(cid, "Let battle ["..go.pet.."]", TALKTYPE_ORANGE_1) setPlayerStorageValue(cid, storage, os.time() + 24*60*60) -- tempo em segundos. return true end
  21. Furabio

    Sistema de EXAUST

    É só usar math.floor ou math.ceil : Teste aí : function onUse(cid, item, frompos, item2, topos) local dolls = { [2344] = {pet = "Mewtwo"}, [2139] = {pet = "Mew"}, } local go = dolls[item.itemid] local summon = getCreatureSummons(cid) local storage = 311283 -- Storage para dar exhausted if #summon >= 1 then for _, pid in ipairs(summon) do doRemoveCreature(pid) doCreatureSay(cid, "Can go rest ["..go.pet.."]", TALKTYPE_ORANGE_1) end return true end if getPlayerStorageValue(cid, storage) > os.time() then return doPlayerSendCancel(cid, "Você já usou este item hoje, espere " .. math.floor(getPlayerStorageValue(cid, storage) - os.time() / (24*60*60)) .. " horas para poder usar de novo.") end doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid))) doCreatureSay(cid, "Let battle ["..go.pet.."]", TALKTYPE_ORANGE_1) setPlayerStorageValue(cid, storage, os.time() + 24*60*60) -- tempo em segundos. return true end
  22. Furabio

    Erro na distro

    Tópico Movido Este tópico foi movido de "OTServ → Scripting → Suporte Scripting" para "OTServ → Scripting → Suporte Scripting → Pedidos e dúvidas resolvidos - Scripting".
  23. Furabio

    Erro na distro

    Os erros devem estar acontecendo pois o linux é case sensitive: O que ocorre é que o executável procura por um arquivo ou monstro chamado exemplo, mas ele foi feito com o nome Exemplo, no windows ambos são os mesmo arquivos, mas no linux são arquivos totalmente diferentes. Para resolver basta ver como o monstro está sendo chamado no caso Monster e renomear o arquivo que deve estar escrito monster ou algo parecido para Monster.
  • Quem Está Navegando   0 membros estão online

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