Ir para conteúdo

Yan Oliveira

Moderador
  • Total de itens

    2187
  • Registro em

  • Última visita

  • Dias Ganhos

    58

Tudo que Yan Oliveira postou

  1. Quando ele sai do portal ele vai para onde? Porque é estranho ele ser teleportado pelo portal e depois que o tempo acaba ser novamente sendo que saiu da área. Ficou um pouco ambíguo, pode explicar mais detalhadamente? Como funciona e/ou você quer que funciona? Explica tudo que qualquer coisa eu refaço o script para você.
  2. Yan Oliveira

    [AJUDA] Login.lua

    Posta a função para eu dar uma olhada.
  3. Dentro da função onLogin(cid) procure por essa parte: if(accountManager == MANAGER_NONE) then local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage doPlayerOpenChannel(cid, CHANNEL_TRADE) doPlayerOpenChannel(cid, 11) if(lastLogin > 0) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str) str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "." else str = str .. " Please choose your outfit." doPlayerSendOutfitWindow(cid) end e na função doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str) você muda a cor da mensagem no segundo parâmetro da função (MESSAGE_STATUS_DEFAULT), para ver as cores possíveis você vai em Data/Lib/Const.lua ou Constant.lua (depende do servidor, mas é no arquivo de constantes, alguns começam com números como 000) ou procurando na source (que é a maneira mais difícil caso não saiba mexer com source). Existem algumas cores que são mais padrões como: MESSAGE_STATUS_CONSOLE_BLUE = Azul MESSAGE_STATUS_CONSOLE_ORANGE = Laranja MESSAGE_STATUS_CONSOLE_RED = Vermelho E após escolher a cor, só mudar no segundo parâmetro, por exemplo: doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, str)
  4. Posso colocar sim, sem problemas. Mas, é bem simples, vai na última linha do arquivo que vai colocar e vai no último end, da enter e cola a função em baixo (recomendo comentar em cima do nome da função para saber o que faz), não tem segredo. Sobre qual arquivo ser melhor, não importa muito onde vai colocar na pasta lib, depende da maneira como quer deixar organizado e separado os arquivos do seu servidor, pode colocar em algum arquivo onde tem funções novas do seu servidor (caso tenha). Mas, pode colocar em some functions.lua mesmo, acho que fica mais fácil para procurar depois.
  5. Sim, é bem simples, da para fazer de duas maneiras (que no fim da na mesma), pode ser trocando a constante do valor da porcentagem na tabela por: local potions = { [12344] = {porcentagem = math.floor(math.random(30, 40)), effect = 14}, -- ID, PORCENTAGEM E EFEITO DA POTION [12345] = {porcentagem = math.floor(math.random(30, 40)), effect = 14}, -- ID, PORCENTAGEM E EFEITO DA POTION [12346] = {porcentagem = math.floor(math.random(30, 40)), effect = 12}, -- ID, PORCENTAGEM E EFEITO DA POTION [12347] = {porcentagem = math.floor(math.random(30, 40)), effect = 13}, -- ID, PORCENTAGEM E EFEITO DA POTION [12348] = {porcentagem = math.floor(math.random(30, 40)), effect = 13}, -- ID, PORCENTAGEM E EFEITO DA POTION } Ou passando direto no parâmetro da função: doHealPlayer(cid, math.floor(math.random(30, 40)), potions[item.itemid].effect, true) Mas, a segunda maneira é indicada se você só está usando 1 potion (1 item (id)), e se só for 1 item e não usar tabela, tem que mudar o terceiro parâmetro da função para: doHealPlayer(cid, math.floor(math.random(30, 40)), 27, true) -- ID DO EFEITO DIRETO Mas, mesmo se usar só 1 item, recomendo deixar a tabela, porque se futuramente adicionar mais, é só adicionar na tabela que na função pega a potion pelo id no índice da tabela.
  6. Coloque a função no arquivo functions.lua ou some.functions.lua na pasta Data/Lib, onde preferir. Mas, coloque em algum arquivo de scripts de funções na pasta Lib, é melhor.
  7. Qual é a versão de TFS? Eu fiz um script baseado na versão de TFS 0.3.6/0.4 -- LUA -- Se você já tem o arquivo do script criado ignore o restante dessa linha e vá para o código, caso não tenha, vá em Data/Actions/Scripts e crie o arquivo potions.lua e adiciona o script: --------------- POTION QUE CURA BASEADO NA PORCENTAGEM DA VIDA MÁXIMA BY YAN18 --------------- ----- FUNÇÃO PARA CURAR O PLAYER ----- function doHealPlayer(cid, porcentagem_hp, effect, message_heal) local porcentagem = math.abs(porcentagem_hp / 100) -- PEGA O VALOR INTEIRO PASSADO DO PARÂMETRO DESEJADO COMO A PORCENTAGEM E DIVIDE POR 100 PARAR GERAR A PORCENTAGEM local life_recovered = math.floor(getCreatureMaxHealth(cid) * porcentagem) -- QUANTIDADE DE HP QUE VAI RECUPERAR doSendMagicEffect(getThingPos(cid), effect) doCreatureAddHealth(cid, life_recovered) -- CONDICIONAL PARA EXIBIR MENSAGEM EM CIMA DO PLAYER AO CURAR -- if message_heal then doCreatureSay(cid, "Life recovered...") end doPlayerSendCancel(cid, "Life recovered...") -- MENSAGEM BRANCE EM CIMA DO CONSOLE doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You recovered " ..life_recovered.. " of your maximum life.") end --------- TABELA COM O ID, PORCENTAGEM E EFEITO DAS POTIONS --------- local potions = { [12344] = {porcentagem = 40, effect = 14}, -- ID, PORCENTAGEM E EFEITO DA POTION [12345] = {porcentagem = 40, effect = 14}, -- ID, PORCENTAGEM E EFEITO DA POTION [12346] = {porcentagem = 40, effect = 12}, -- ID, PORCENTAGEM E EFEITO DA POTION [12347] = {porcentagem = 40, effect = 13}, -- ID, PORCENTAGEM E EFEITO DA POTION [12348] = {porcentagem = 40, effect = 13}, -- ID, PORCENTAGEM E EFEITO DA POTION } ---------------------------------------- CÓDIGO ---------------------------------------- function onUse(cid, item, fromPosition, itemEx, toPosition) local verificar_batalha = true -- VARIÁVEL QUE VERIFICA SE ESTÁ EM BATALHA PARA USAR A POTION if not isCreature(cid) or not getCreatureMaster(cid) then return doPlayerSendCancel(cid, "You only can use this potion in you.") end if getCreatureHealth(cid) == getCreatureMaxHealth(cid) then return doPlayerSendCancel(cid, "You are already with full health.") end -- VERIFICA SE ESTÁ EM BATALHA -- if verificar_batalha then if getCreatureCondition(cid, CONDITION_INFIGHT) then doPlayerSendCancel(cid, "You can't use this potion during a battle.") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You can't use this potion during a battle.") return true end end doRemoveItem(item.uid, 1) doHealPlayer(cid, potions[item.itemid].porcentagem, potions[item.itemid].effect, true) return true end * Explicação sobre o script: Eu criei uma função que recupera vida do player de acordo com a vida máxima, ela contém quatro parâmetros, que é: criatura, porcentagem baseado na vida máxima, efeito da potion e se exibe mensagem que está curando (esse último argumento é mais estética e não muda e interfere em nada na cura), mas, caso não queira essas mensagens (em cima do player e em cima do console), lá no fim do script dentro da função onUse, mude o último parâmetro da função doHealPlayer de true para false, ficando: doHealPlayer(cid, potions[item.itemid].porcentagem, potions[item.itemid].effect, false) Em cima da função onUse tem a tabela com as potions, então no índice ([] colchetes) coloque o id da potion e na tabela dentro do id tem o valor da porcentagem e efeito da potion. No valor da porcentagem passe a quantidade direto (10, 20, 30 por exemplo) pois eu já estou criando a porcentagem dentro da função (valor dividido por 100 para criar a porcentagem), deixei bem simples para você. Então com a tabela você consegue inserir mais de uma potion, caso só queira usar 1, pode apagar a tabela e passar o id e efeito da potion direto na função doHealPlayer no segundo e terceiro parâmetro: doHealPlayer(cid, 14523, 25, true) Fiz um exemplo acima, também pode deixar só 1 potion na tabela, não tem problema! É até melhor para não correr risco de acabar pagando o que não deve, mas, nesse caso apague os elementos restantes da tabela deixando só um. E por fim, fiz uma verificação para verificar se o player está em batalha, e se estiver, não usa a potion. Caso queira mudar isso, só mudar o valor da variável verificar_batalha de true para false: local verificar_batalha = false -- XML -- Terminado a explicação sobre o script, agora é a parte do xml. Caso, já tenha a tag da potion criada, pode ignorar essa parte, mas lembrando que precisa colocar os mesmos ID das potions da tag xml na tabela do script.lua caso optou em manter a tabela. Mas, se não criou a tag xml, vamos lá! Abra o actions.xml e adicione a tag: <action itemid="12344-12348" event="script" value="potions.lua"/> Lembrando que se você está usando mais de 1 potion e os id delas não são em sequência, precisa tirar o hífen (-) da tag xml e colocar ponto e vírgula (;) para separar os id, pois com hífen é quando é mais de 1 id que são em sequência. Testa e me fala se deu algum problema. Qualquer dúvida só falar.
  8. Você também pode usar a função getItemName(uid) ou getItemNameById(itemid) para pegar o nome do item, no seu caso vai usar a função getItemNameById(itemid): local item_name = getItemNameById(getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid)
  9. Yan Oliveira

    [AJUDA] Login.lua

    O script está tentando chamar a função doUpdatePokemonsBar que está como global e não achou a função ou não foi implementada. Você copiou esse script login.lua de outra base ou algum lugar?
  10. Para adicionar level system, praticamente só possuindo as sources, o que é complicado com as bases 0.3.6 atualmente, pois, a maioria além de adaptada, é cheia de trap e erros.
  11. Coloca o script dentro de um spoiler ou da tag código para ficar mais fácil a leitura e legível. Qual é o problema do script? Qual erro dá?
  12. Yan Oliveira

    script mount

    Ele tem TFS 1.3, mas pelo que disse no post, essa TFS tem a versão com adaptação de Client para 8.60. Então, ele tem source provavelmente.
  13. Vai dar muito trabalho para fazer isso, recomendo trocar de base.
  14. Você está falando o ícone do portrait dele ou da pokeball?
  15. Yan Oliveira

    script mount

    Como assim direcionado para as montarias, você fala abrir a janela com as outfits da montaria?
  16. Exatamente, é como o @nociam disse, você precisa informar o seu pedido, fora que ainda está na área errada se for postar os scripts, pois, como já é um script criado e precisa ser corrigido, a área certa seria em Suporte > Scripts https://www.xtibia.com/forum/forum/1253-scripts/. Agora, se quer procurar ou contratar alguém, também está na seção errada, a seção correta seria em Notícias e Debates e na área de Formação de Equipes https://www.xtibia.com/forum/forum/610-formação-de-equipes/
  17. Mas, assim que o player clicar no item e virar um monstro, e depois clicar no monstro para virar item, ele vai virar o item na posição que o monstro estiver? Ou quando o item virar monstro ele não vai andar? Está um pouco ambíguo seu pedido, porque, e se o player matar o monstro, como pretende trabalhar essa questão? Ou, se o monstro matar o player? Tem que ver melhor como você quer, porque esses tipo de interação é chatinho por essas questão das possibilidades que citei acima, fora que o player vai poder clicar quantas vezes quiser? Vai ser uma quest? Veja que tem muitas condições que tem que ser trabalhadas. Não é um script difícil de fazer, mas, eu acho que não vale a pena o monstro voltar a ser um item, não sei como pensou essa quest/interação, mas não acho que é algo viável.
  18. Vai em Data/Actions/Scripts e cria o arquivo quest_estatua.lua (ou um nome da quest que você definiu), em seguida adicione o script dentro: local id_statue = 5525 -- ID DA ESTÁTUA local id_vocation = 5 -- ID DA VOCATION local storage_quest = 48987 -- STORAGE DA QUEST PARA VER SE JÁ FOI FEITA local area_teleport = {x= 1000, y= 1000, z= 7} -- COORDENADA QUE SERÁ TELEPORTADO ------------------------------------ CÓDIGO ------------------------------------ function onUse(cid, item, fromPos, itemTarget, toPos) if item.itemid == id_statue then -- VERIFICA SE O ITEM QUE CLICA É A ESTÁTUA if getPlayerStorageValue(cid, storage_quest) < 1 then -- VERIFICA SE JÁ FEZ if getPlayerVocation(cid) ~= id_vocation then -- VERIFICA SE JÁ TEM A VOCATION doPlayerSetVocation(cid, id_vocation) -- ADICIONA VOCATION AO PLAYER doTeleportThing(cid, area_teleport) -- TELEPORTE doSendMagicEffect(cid, 18) -- EFEITO doPlayerSendTextMessage(cid, 19, "Now you are a " ..getPlayerVocationName(cid).. ".") -- MENSAGEM DO RECEBIMENTO DA VOCATION setPlayerStorageValue(cid, storage_quest, 1) -- SETA A STORAGE PARA NÃO FAZER NOVAMENTE A QUEST return true else doPlayerSendCancel(cid, "You already have this vocation.") doPlayerSendTextMessage(cid, 27, "You already are a " ..getPlayerVocationName(cid).. ".") return true end else doPlayerSendTextMessage(cid, 27, "You have already done this quest.") return true end end end Agora abre o actions.xml e adicione a tag: <action itemid="5525" event="script" value="quest_estatua.lua"/> * Lembre-se de colocar o id da estátua corretamente na tag itemid do xml e na variável id_statue do script.lua. Veja também se essa storage já não está sendo usada. Deixei todas as variáveis comentadas no script, só colocar os id correto e a coordenada do teleport correta. Testa e me fala se der algum problema.
  19. Qual a base do seu servidor? É Tibia ou Derivado?
  20. Yan Oliveira

    Pokemon Inicial

    Qual a base que você está usando?
  21. Yan Oliveira

    Pokemon Inicial

    O arquivo firstitems.xml da pasta mods é para dar os itens do inventário, como bag, pokedex, order e etc. Já o arquivo do pokémon inicial não tem haver com firstitems, pois ele é itens para começar o jogo como potion, revive, pokemon e etc, além do teleport. Mas os itens do inventário dependendo a base já é definido no login.lua da pasta creaturescripts. No caso desse erro, está falando que seu servidor não tem a função getCatchMode(), provavelmente copiou de outra base o script e não pegou a função. Mas quando você cria a conta você recebe os itens do inventário? Se recebe, então não vai precisar do firstitems da pasta mods (na verdade nem recomendo ter script de itens iniciais do inventário por lá, é melhor pela pasta creaturescripts mesmo). Mas na minha opinião, não é bom pegar o pokémon falando com npc, no meu ponto de vista é a pior maneira para escolher o pokémon inicial (mas só minha opinião). Respondendo as perguntas que te fiz fica fácil de ajudar.
  22. Faz um teste, e mostra uma print do que aparecer no chat: local exhaustionMinutes = 1 -- exausted em minutos local storageUse = 32324 -- storage usado no exausted. function onSay(cid, words, param) if words =="!resetar" then if(exhaustion.check(cid, storageUse) == TRUE) then if (exhaustion.get(cid, storageUse) >= 10) then doPlayerSendCancel(cid, "Você só pode usar após [" .. math.floor(exhaustion.get(cid, storageUse) / 80 + 1) .."] Minutos.") end if (exhaustion.get(cid, storageUse) <= 10) then doPlayerSendCancel(cid, "Você só pode usar após [" .. exhaustion.get(cid, storageUse).."] segundos.") end return TRUE end exhaustion.set(cid, storageUse, exhaustionMinutes*10) --[ Condições de Reset ] -- local coNdConf = { needPz = true, -- Precisa estar em Pz pra resetar? [true, false] needPa = false, -- Precisa ser Premium Account Pra resetar? [true, false] withe = false, -- Players com Pk Withe podem resetar? [true, false] red = false, -- Players com Pk Red pode resetar? [true, false] battle = true, -- Players precisão estar sem battle pra resetar? [true, false] teleport = false, -- Teleportar Player para o templo após resetar? [true, false] look = true, -- Aparecer Resets no Look do Player? [true, false] pid = getPlayerGUID(cid), -- Não Mexer. --[ Configurações do Reset ] -- resetConf = { Level = 717217, -- Level Necessário para Resetar. [Valor] backLvl = 5000, -- Level que voltará após o Reset. [Valor] time = 0.0, -- Tempo para o Player deslogar ao resetar, em segundos. [Valor] }, } --[[>> STAGES <<]]-- x=true;X=true -- Não Mexer. local stage = {Abilitar = {x}, Desabilitar = {}, --<< Abilitar Stages?? >>-- [{x};{}] -- [RESETS] | [PREMMY] | [FREE] stage1= {resets= 4, premmy= 650000, free= 650000}, stage2= {resets= 9, premmy= 650000, free= 650000}, -- EXPLICANDO e Configurando stages. (Se estiver Abilitado [Abilitar = {x}]) stage3= {resets= 14, premmy= 650000, free= 650000}, -- resets = Número de resets para o Stage; stage4= {resets= 19, premmy= 650000, free= 650000}, -- premmy = Level necessário para Premium Accounts; stage5= {resets= 24, premmy= 650000, free= 650000}, -- free = Level necessário para Free Accounts; stage6= {resets= 29, premmy= 650000, free= 650000}, -- Coloque em Ordem... stage7= {resets= 35, premmy= 650000, free= 650000}, -- [OBS: MARQUE UM "X" PARA ABILITAR OU DESABILITAR OS STAGES] stage8= {resets= 39, premmy= 650000, free= 650000}, -- EX: para desabilitar mude: Abilitar = {}, Desabilitar = {x} stage9= {resets= 45, premmy= 650000, free= 650000}, stage10={resets= 46, premmy= 717217, free= 717217}, stage11={resets= 54, premmy= 717217, free= 717217}, stage12={resets= 59, premmy= 717217, free= 717217}, stage13={resets= 64, premmy= 717217, free= 717217}, stage14={resets= 69, premmy= 717217, free= 717217}, stage15={resets= 74, premmy= 717217, free= 717217}, stage16={resets= 79, premmy= 717217, free= 717217}, stage17={resets= 80, premmy= 717217, free= 717217}, stage18={resets= 82, premmy= 717217, free= 717217}, stage19={resets= 85, premmy= 717217, free= 717217}, stage20={resets= 87, premmy= 717217, free= 717217}, stage21={resets= 88, premmy= 717217, free= 717217}, stage22={resets= 89, premmy= 717217, free= 717217}, stage23={resets= 90, premmy= 717217, free= 717217}, stage24={resets= 95, premmy= 717217, free= 717217}, stage25={resets= 100, premmy= 717217, free= 717217}, } --[[>> FIM STAGES <<]]-- --=[Pega Valor de Resets]=-- function getPlayerReset(cid) local qr = db.getResult("SELECT `reset` FROM `players` WHERE `id`= "..coNdConf.pid..";") rss = qr:getDataInt("reset", coNdConf.pid) if rss < 0 then rss = 0 end return rss end -- FUNÇÃO PARA AUMENTAR O RATE DA EXP DE ACORDO COM A QUANTIDADE DE RESETS -- function setExpRate(cid, reset_min, reset_max, rate) if getPlayerReset(cid) > reset_min and getPlayerReset(cid) <= reset_max then doPlayerSendTextMessage(cid, 19, getPlayerReset(cid)) return doPlayerSetExperienceRate(cid, rate) end end local success = " ~~ Sucesso! ~~ \nVocê tem agora "..(getPlayerReset(cid)+1).." resets. \nVocê será deslogado em "..coNdConf.resetConf.time.." segundos." ;err = doPlayerSendTextMessage local qrt = db.getResult("SELECT `reset` FROM `players` WHERE `id`= "..coNdConf.pid..";");rss_db = qrt:getDataInt("reset", coNdConf.pid) local lvl_query = "UPDATE `players` SET `level` = "..(coNdConf.resetConf.backLvl)..", `experience` = 0 WHERE `id`= " .. coNdConf.pid .. ";" local reset_query = "UPDATE `players` SET `reset` = "..(getPlayerReset(cid)+(1)).." WHERE `id`= " .. coNdConf.pid .. ";" local nolook_query = "UPDATE `players` SET `description` = '' WHERE `players`.`id`= " .. coNdConf.pid .. ";" local look_query = "UPDATE `players` SET `description` = ' [Reset "..(getPlayerReset(cid)+(1)).."]' WHERE `players`.`id`= " .. coNdConf.pid .. ";" --=[Reseta]=-- function addValue(value) if coNdConf.look == false then doRemoveCreature(cid) db.executeQuery(lvl_query);db.executeQuery(reset_query);db.executeQuery(nolook_query) else doRemoveCreature(cid) db.executeQuery(lvl_query);db.executeQuery(reset_query);db.executeQuery(look_query) return LUA_NO_ERROR end end function nowReseting() if (getPlayerLevel(cid) < coNdConf.resetConf.Level) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "- Level Necessário Para o Reset ["..coNdConf.resetConf.Level.."]. Faltam "..coNdConf.resetConf.Level-getPlayerLevel(cid).." level's para você Resetar. -") return true end if getPlayerLevel(cid) >= coNdConf.resetConf.Level and (coNdConf.teleport == false) then doPlayerPopupFYI(cid, success) addEvent(addValue, coNdConf.resetConf.time*0, value) setPlayerStorageValue(cid, storage_contador, storage_contador + 1) else doPlayerPopupFYI(cid, success) addEvent(doTeleportThing, coNdConf.resetConf.time*0, cid, getTownTemplePosition(getPlayerTown(cid))) addEvent(addValue, coNdConf.resetConf.time*0, value) setPlayerStorageValue(cid, storage_contador, storage_contador + 1) return true end end --[sTAGES Nao mexer em nada.]-- function checkLevelStageReset(cid) local stages = { {resets= stage.stage1.resets, premmy= stage.stage1.premmy, free= stage.stage1.free}, {resets= stage.stage2.resets, premmy= stage.stage2.premmy, free= stage.stage2.free}, {resets= stage.stage3.resets, premmy= stage.stage3.premmy, free= stage.stage3.free}, {resets= stage.stage4.resets, premmy= stage.stage4.premmy, free= stage.stage4.free}, {resets= stage.stage5.resets, premmy= stage.stage5.premmy, free= stage.stage5.free}, {resets= stage.stage6.resets, premmy= stage.stage6.premmy, free= stage.stage6.free}, {resets= stage.stage7.resets, premmy= stage.stage7.premmy, free= stage.stage7.free}, {resets= stage.stage8.resets, premmy= stage.stage8.premmy, free= stage.stage8.free}, {resets= stage.stage9.resets, premmy= stage.stage9.premmy, free= stage.stage9.free}, {resets=stage.stage10.resets, premmy=stage.stage10.premmy, free=stage.stage10.free}, {resets=stage.stage11.resets, premmy=stage.stage11.premmy, free=stage.stage11.free}, {resets=stage.stage12.resets, premmy=stage.stage12.premmy, free=stage.stage12.free}, {resets=stage.stage13.resets, premmy=stage.stage13.premmy, free=stage.stage13.free}, {resets=stage.stage14.resets, premmy=stage.stage14.premmy, free=stage.stage14.free}, {resets=stage.stage15.resets, premmy=stage.stage15.premmy, free=stage.stage15.free}, {resets=stage.stage16.resets, premmy=stage.stage16.premmy, free=stage.stage16.free}, {resets=stage.stage17.resets, premmy=stage.stage17.premmy, free=stage.stage17.free}, {resets=stage.stage18.resets, premmy=stage.stage18.premmy, free=stage.stage18.free}, {resets=stage.stage19.resets, premmy=stage.stage19.premmy, free=stage.stage19.free}, {resets=stage.stage20.resets, premmy=stage.stage20.premmy, free=stage.stage20.free}, {resets=stage.stage21.resets, premmy=stage.stage21.premmy, free=stage.stage21.free}, {resets=stage.stage22.resets, premmy=stage.stage22.premmy, free=stage.stage22.free}, {resets=stage.stage23.resets, premmy=stage.stage23.premmy, free=stage.stage23.free}, {resets=stage.stage24.resets, premmy=stage.stage24.premmy, free=stage.stage24.free}, {resets=stage.stage25.resets, premmy=stage.stage25.premmy, free=stage.stage25.free}, } local resets = getPlayerReset(cid) for i, tab in ipairs(stages) do if resets <= tab.resets then coNdConf.resetConf.Level = isPremium(cid) and tab.premmy or tab.free break end end if (getPlayerLevel(cid) < coNdConf.resetConf.Level) then err(cid, MESSAGE_STATUS_CONSOLE_BLUE, "- Você precisa ter ["..coNdConf.resetConf.Level.."]. leveis , Faltam "..coNdConf.resetConf.Level-getPlayerLevel(cid).." levels para você Resetar seu personagem.") return TRUE end if getPlayerLevel(cid) >= coNdConf.resetConf.Level and (coNdConf.teleport == false) then doPlayerPopupFYI(cid, success) addEvent(addValue, coNdConf.resetConf.time*0, value) setExpRate(cid, 0, 5, 1.5) -- RATE DO RESET 1 A 5 RESETS (A VERIFICAÇÃO ESTÁ MAIOR DO QUE O RESET MÍNIMO, POR ISSO COMEÇA COM 0) setExpRate(cid, 5, 10, 2) -- RATE DO RESET 6 A 10 setExpRate(cid, 10, 20, 5) -- RATE DO RESET 11 A 20 setExpRate(cid, 20, 50, 10) -- RATE DO RESET 21 A 50 setExpRate(cid, 50, 100, 20) -- RATE DO RESET 51 A 100 else doPlayerPopupFYI(cid, success) addEvent(addValue, coNdConf.resetConf.time*0, value) addEvent(doTeleportThing, coNdConf.resetConf.time*0, cid, getTownTemplePosition(getPlayerTown(cid))) setExpRate(cid, 0, 5, 1.5) -- RATE COM 1 RESET 1 A 5 RESETS (A VERIFICAÇÃO ESTÁ MAIOR DO QUE O RESET MÍNIMO, POR ISSO COMEÇA COM 0) setExpRate(cid, 5, 10, 2) -- RATE DO RESET 6 A 10 setExpRate(cid, 10, 20, 5) -- RATE DO RESET 11 A 20 setExpRate(cid, 20, 50, 10) -- RATE DO RESET 21 A 50 setExpRate(cid, 50, 100, 20) -- RATE DO RESET 51 A 100 return true end end function newReset(cid) if(coNdConf.needPz == true) and (getTilePzInfo(getCreaturePosition(cid)) == LUA_ERROR) then err(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você Precisa estar em Protection Zone Para Resetar. -") return TRUE end if(coNdConf.needPa == true) and not isPremium(cid) then err(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você Precisa ser Premium Account para Resetar. -") return TRUE end if(coNdConf.withe == false) and (getCreatureSkullType(cid) == 3) then err(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você não pode resetar em condições de PK Withe. -") return TRUE end if(coNdConf.red == false) and (getCreatureSkullType(cid) == 4) then err(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você não pode resetar em condições de PK Red. -") return TRUE end if(coNdConf.battle == true) and (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then err(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você Precisa estar sem Battle para Resetar. -") return TRUE end local xy = {true,false} table.insert(stage.Abilitar, false) table.insert(stage.Desabilitar, false) if stage.Abilitar[1] == xy[1] and stage.Desabilitar[1] == xy[2] then checkLevelStageReset(cid) elseif stage.Abilitar[1] == xy[2] and stage.Desabilitar[1] == xy[1] then nowReseting() else doPlayerPopupFYI(cid, "LUA_ERROR; Configure corretamente o Sistema de STAGES!") end return true end function tableResetInstall() print(not rss_db and LUA_ERROR or "Tabela de Resets: Instalada ... [success] ") addEvent(newReset, 0, cid) return false end if tableResetInstall() then end end end
  23. Realmente não estava mudando, vi aqui e esse arquivo pokeexp.lua nem é usado. Vai em Data/Creaturescripts/Scripts/Player e abre o arquivo pokeDeath.lua, procure essa linha: playerAddExp(player, math.ceil(percent * xp / 100) * heldExp) E troque por : playerAddExp(player, math.ceil(percent * xp / 100) * heldExp * 5) Agora está dando 5x a exp.
  • Quem Está Navegando   0 membros estão online

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