-
Total de itens
2221 -
Registro em
-
Última visita
-
Dias Ganhos
60
Tudo que Yan Oliveira postou
-
Potion de Pokemon Certa quantidade de HP [Resolvido]
pergunta respondeu ao kamus9629 de Yan Oliveira em Scripts
Opa, foi bobeira minha, mas eu refiz o código, testei e agora está funcionando: -- REFEITO POR YAN18 PARA RESTAURAR VIDA POR VALOR CONSTANTE -- function doHealOverTime(cid, hp, effect) if not isCreature(cid) then return true end doSendMagicEffect(getThingPos(cid), effect) doCreatureAddHealth(cid, math.floor(hp)) end local potions = { [1456] = {effect = 13, hp = 50000}, -- super potion [1451] = {effect = 13, hp = 50000}, -- great potion [384] = {effect = 12, hp = 50000}, -- ultra potion [385] = {effect = 14, hp = 50000}, -- hyper potion [392] = {effect = 14, hp = 50000}, -- full restore [667] = {effect = 14, hp = 50000}, -- full restore [668] = {effect = 14, hp = 50000}, -- full restore [669] = {effect = 14, hp = 50000}, -- full restore [670] = {effect = 14, hp = 50000}, -- full restore [671] = {effect = 14, hp = 50000}, -- full restore } function onUse(cid, item, frompos, item2, topos) local pid = getThingFromPosWithProtect(topos) if not isSummon(pid) or getCreatureMaster(pid) ~= cid then return doPlayerSendCancel(cid, "You can only use potions on your own Pokemons!") end if getCreatureHealth(pid) == getCreatureMaxHealth(pid) then return doPlayerSendCancel(cid, "This pokemon is already at full health.") end if getPlayerStorageValue(pid, 173) >= 1 then setPlayerStorageValue(pid, 173, -1) end if getPlayerStorageValue(cid, 52481) >= 1 then return doPlayerSendCancel(cid, "You can't do that while a duel.") end if getPlayerStorageValue(cid, 990) >= 1 then doPlayerSendCancel(cid, "You can't use potion during gym battles.") return true end doCreatureSay(cid, "".. getCreatureName(pid)..", take this potion!", TALKTYPE_MONSTER) doSendMagicEffect(getThingPos(pid), 0) setPlayerStorageValue(pid, 173, 1) doRemoveItem(item.uid, 1) local a = potions[item.itemid] doHealOverTime(pid, a.hp, a.effect) doPlayerSendCancel(cid, "Your monsters recovered " ..a.hp.. " of HP.") return true end Ai para configurar o HP, você precisa mudar os valores na variável hp de cada potion (item) na tabela potions onde está 50000 para todos. -
Eu refiz os scripts. 1º Script da Loja: local storage_vipdays = 225501 -- VARIÁVEL QUE VERIFICA TUDO QUE É VIP local dias_vip = 30 -- DIAS PARA SER VIP local item = 2145 -- ITEM QUE REMOVE PARA DAR VIP local quantidade_item = 15 -- QUANTIDADE DO ITEM QUE TORNA VIP function onSay(cid, words, param, channel) if getPlayerStorageValue(cid, storage_vipdays) <= 0 then if getPlayerItemCount(cid, item) >= quantidade_item then doPlayerRemoveItem(cid, item, quantidade_item) doSendMagicEffect(getThingPos(cid), 28) doPlayerAddPremiumDays(cid, dias_vip) doPlayerSendCancel(cid, "Agora você é VIP Account!") doPlayerSendTextMessage(cid, 20, "Você recebeu " ..dias_vip.. " dias de VIP Account. Agora você terá +30% EXP, acesso à áreas exclusivas, e outros benefícios!") setPlayerStorageValue(cid, storage_vipdays, os.time() + dias_vip * 24 * 60 * 60) return true else return doPlayerSendTextMessage(cid, 20, "Você não tem " ..quantidade_item.. " " ..getItemNameById(item).. " para realizar a compra.") end else return doPlayerSendTextMessage(cid, 20, "Você ainda é VIP Account.") end end 2º Script do Item (Actions): local storage_vipdays = 225501 -- VARIÁVEL QUE VERIFICA TUDO QUE É VIP local dias_vip = 30 --DIAS PARA SER VIP function onUse (cid, item, frompos, item2, topos, words, param) if getPlayerStorageValue(cid, storage_vipdays) <= 0 then doRemoveItem(item.uid, 1) doSendMagicEffect(getThingPos(cid), 28) doPlayerAddPremiumDays(cid, dias_vip) doPlayerSendCancel(cid, "Agora você é VIP Account!") doPlayerSendTextMessage(cid, 20, "Você recebeu " ..dias_vip.. " dias de VIP Account. Agora você terá +30% EXP, acesso à áreas exclusivas, e outros benefícios!") setPlayerStorageValue(cid, storage_vipdays, os.time() + dias_vip * 24 * 60 * 60) return true else return doPlayerSendTextMessage(cid, 20, "Você ainda é VIP Account.") end end Não esqueça de salvar o arquivo com codificação ANSI por conta dos acentos. Sobre seu segundo post que me marcou: Do jeito que você alterou vai dar errado amigo, pois para número real (float/double) em lua tem que usar o ".", pois a vírgula é usada para separação. local exp = 3.09 local color = 210 local texto = " (VIP)" if getPlayerPremiumDay(cid) > 0 then CÓDIGO AQUI end Eu arrumei aqui para você, não se essas variáveis da suas verificação já foram criadas, mas procure sempre usar local antes de variável criada quando ela será usada somente em um arquivo, pois sem "local" se torna variável global e se você criar outra variável com esse nome em outro arquivo pode dar conflito e dar problema. Separei as variáveis para você e já coloquei os valores, só colocar no código, mas qualquer coisa posta o script que eu arrumo para você.
-
Que bom que conseguiu resolver! Mas qual o sentido de colocar o nível do pokémon vezes 1? Qualquer número vezes 1 é ele mesmo, não tem sentido em deixar essa multiplicação ?. Mas é isso ai!
-
Sobre o post, que bom que funcionou ?. Haha é assim mesmo, um nome errado, qualquer caractere errado já buga tudo, Sobre seu pc, que chato cara, mas pelo menos foi só a fonte, semana retrasada perdi meu HD, tinha feito várias coisas em várias bases, tinha migrado uma base mysql para sqlite e perdi. Mas fonte é só comprar outra, se fosse HD ai seria complicado, perder suas coisas pessoal. Mas não esquece também de trocar a pasta térmica do processador para não correr risco de perder haha, ainda mais se mora em uma região quente. Coloque por gentileza a resposta com o código como a melhor resposta, para caso outra pessoa queira ela encontre, e também como resolvido o tópico ?. Abraços.
-
A área certa é em Pedidos de Script, e como assim usar "seu passivo"? Você diz ele usar os ataques passivo? Eles são definidor no configuration.lua que fica na pasta Data/Lib.
-
Funcionou certinho? Seu script não sentido, ele queria apenas que colocasse um tempo para que transformasse o item novamente, já estava funcionando a transformação, só precisava do tempo. Já o seu script usa a função Decay que seria "apodrecer" o item, que é usado mais para árvores, bush ou buracos (mais coisas que envolvem natureza ou ambiente, e tendo definido para o item "novo" no items.xml). Mas não é o caso do pedido do colega. E no seu script não tem um tempo definido para transformar o item.
-
Entendi, antes de function onUse adicione essa função: ---- FUNÇÃO QUE VOLTA O ITEM APÓS X SEGUNDOS ---- function contagemSegundosItem(cid, old_item, new_item, segundos) local item_antigo = old_item.itemid local old_position = getThingPos(old_item.uid) doTransformItem(old_item.uid, new_item.itemid) local item_tile = getTileItemById(old_position, new_item) if item_tile.uid then if segundos > 0 then addEvent(contagemSegundosItem, 60000, cid, old_item, new_item, segundos-1) else doTransformItem(item_tile.uid, item_antigo) end end end E na parte do function onUse onde estava seu código antigo, apague aquele bloco e chame a função: contagemSegundosItem(cid, itemEx, ItemQuebrado, 5) -- CID, ITEM QUE VAI SER TRANSFORMADO, NOVO ITEM, E OS SEGUNDOS Testa e me fala se der problema.
-
Problema com drop de Key com Action ID
pergunta respondeu ao FlamesAdmin de Yan Oliveira em Programação
Eu dei uma olhada em duas sources de duas bases diferentes, e em ambas o arquivo monster.cpp na função createLoot está diferente da sua na parte da actionid, está: if(lootBlock.actionId != -1) tmpItem->setActionId(lootBlock.actionId); Teria que olhar todo o código para ver. -
NPC OU COMANDO DE REPARAR SOFT BOOTS TFS 1.2
pergunta respondeu ao Wakachizi de Yan Oliveira em Scripts
Eu fiz as duas maneiras para você, por NPC e Talkactions. NPC Começando pelo NPC, vai em Data/Npc/ e crie o arquivo Botan.xml (pode colocar outro nome se quiser), e adicione o código dentro: <?xml version="1.0" encoding="UTF-8"?> <npc name="Botan" script="botan.lua" walkinterval="0" floorchange="0"> <health now="150" max="150"/> <look type="134" head="78" body="88" legs="0" feet="88" addons="3"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|, say {help} or {repair} to more informations." /> </parameters> </npc> Agora em Data/Npc/Scripts crie o arquivo Botan.lua e adicione o código: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} 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 creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local id_worn_boot = 10021 -- ID DA BOTA ESTREGADA QUE VAI SER REPARADA local id_soft_boot = 6132 -- ID DA BOTA REPARADA local id_platinum_coin = 2152 -- ID PLATINUM COIN local quantidade_coin = 50 -- QUANTIDADE DE PLATINUM COIN PARA REPARAR A BOTA ---------------------------- CÓDIGO ------------------------------------------- if msgcontains(msg, 'help') or msgcontains(msg, 'repair') then selfSay('I repair your boot to '.. getItemName(id_soft_boot).. ' for ' ..quantidade_coin.. ' ' ..getItemName(id_platinum_coin).. '.' .. ' Do you want?', cid) talkState[talkUser] = 1 elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then if getPlayerItemCount(cid, id_platinum_coin) >= quantidade_coin then if getPlayerSlotItem(cid, 8).itemid == id_worn_boot then doPlayerRemoveItem(cid, id_platinum_coin, quantidade_coin) doTransformItem(getPlayerSlotItem(cid, 8).uid, id_soft_boot) selfSay("Sua bota foi reparada com sucesso!", cid) talkState[talkUser] = 0 return true elseif getPlayerSlotItem(cid, 8).itemid ~= id_worn_boot and getPlayerItemById(cid, true, id_worn_boot).itemid == id_worn_boot then doPlayerRemoveItem(cid, id_platinum_coin, quantidade_coin) doTransformItem(getPlayerItemById(cid, true, id_worn_boot).uid, id_soft_boot) selfSay("Sua bota foi reparada com sucesso!", cid) talkState[talkUser] = 0 return true else selfSay("Você não tem a bota, verifique se a bota está dentro da mochila ou se está no slot errado.", cid) talkState[talkUser] = 0 return true end else selfSay("Você não tem " ..quantidade_coin.. " "..getItemName(id_platinum_coin).. ".", cid) talkState[talkUser] = 0 return true end elseif msgcontains(msg, 'no') and talkState[talkUser] == 1 then selfSay("Ok, goodbye!", cid) talkState[talkUser] = 0 return true end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) TALKACTION Agora a talkaction, vai em Data/Talkactions/Scripts e crie o arquivo repair.lua e adicione o código dentro: local id_worn_boot = 10021 -- ID DA BOTA ESTREGADA QUE VAI SER REPARADA local id_soft_boot = 6132 -- ID DA BOTA REPARADA local id_platinum_coin = 2152 -- ID PLATINUM COIN local quantidade_coin = 50 -- QUANTIDADE DE PLATINUM COIN PARA REPARAR A BOTA function onSay(cid, words, param, channel) if getPlayerItemCount(cid, id_platinum_coin) >= quantidade_coin then if getPlayerSlotItem(cid, 8).itemid == id_worn_boot then doPlayerRemoveItem(cid, id_platinum_coin, quantidade_coin) doTransformItem(getPlayerSlotItem(cid, 8).uid, id_soft_boot) doPlayerSendTextMessage(cid, 27, "Sua bota foi reparada com sucesso!") return true elseif getPlayerSlotItem(cid, 8).itemid ~= id_worn_boot and getPlayerItemById(cid, true, id_worn_boot).itemid == id_worn_boot then doPlayerRemoveItem(cid, id_platinum_coin, quantidade_coin) doTransformItem(getPlayerItemById(cid, true, id_worn_boot).uid, id_soft_boot) doPlayerSendTextMessage(cid, 27, "Sua bota foi reparada com sucesso!") return true else doPlayerSendTextMessage(cid, 27, "Você não tem a bota, verifique se a bota está dentro da mochila ou se está no slot errado.") return true end else doPlayerSendTextMessage(cid, 27, "Você não tem " ..quantidade_coin.. " "..getItemName(id_platinum_coin).. ".") return true end end E por fim abre o talkactions.xml e adicione a tag: <talkaction log="yes" words="!repair_boots" event="script" value="repair.lua"/> Fiz das duas formas, tanto o npc quanto por talkactions é necessário pagar a quantidade de platinum coins que deixei em quantidade_coin, só mudar o valor também caso queira (se quiser que eu removo essa verificação só falar), deixei comentado as variáveis com o id de cada bota, só colocar o id da bota estragada e a que vai ser reparada. Por Talkactions tem que falar o comando !repair_boots para reparar. Testei aqui e funcionou, só tive que mudar a função getPlayerItemNameById por getItemName porque na TFS 1.1+ mudou o nome da função. Mas teste e me fale. -
Vai em Data/Lib abra o Pokedex System.lua e procura essa linha: doShowTextDialog(cid, v, table.concat(stt)) comente ou remova a linha que não irá aparecer mais a janela.
-
Tem que ver se sua base está trabalhando com stages de exp, precisa verificar no config.lua, procure por essa parte: experienceStages = true rateExperience = 500 Se estiver false, mude para true, e a linha de baixo será a taxa, precisará balancear de acordo com seu gosto. Após fazer isso, teste novamente com o script que arrumei para você, e não esqueça de configurar lá também a função setExpRate, lembrando que os parâmetros são: setExpRate(cid, RESET_MINIMO, RESET_MAXIMO, RATE_EXP). Eu deixei alguns de exemplo lá, só configurar ou basear.
-
Primeiramente, não é correto criar um tópico para vários problemas diferentes, se fosse dúvidas ou erros que fossem correlatas ai não teria problema, mas as suas duas outras dúvidas tem haver com cliente (do shop provavelmente). Sobre sua primeira pergunta, o problema é que em algumas bases ele multiplicam o exp do pokémon que fica no xml por algum valor, por isso não recebe a exp desejada que está no xml do pokémon. Se sua base for DXP, vai em Data/Creaturescripts/Scripts e abra o arquivo pokeexp.lua, em seguida procura por está parte: elseif not isInParty(pk) then E abaixo dela estará a atribuição de experiência dependendo o level, provavelmente vai ter um variável chamada givenexp que pega a exp do xml do pokémon e ela vai estar sendo multiplicada por algum valor, é só remover a multiplicação. Caso não consiga, posta o script que te ajudo a arrumar. Sobre suas outras duas dúvidas, crie um tópico para cada na área correta.
-
Provavelmente é erro de comando no banco, tem que olhar como está feito o UPDATE ao criar conta no account manager.
-
Tem o arquivo creature.cpp onde é criado a função, procure por de RATE_EXPERIENCE que vai achar. Também tem o arquivo game.cpp que trabalha com a parte de Stages, só procurar por RATE_EXPERIENCE que vai achar.
-
Seria melhor postar o script todo para entender melhor. Só para entender, esse addEvent você colocou na tentativa de tentar criar os 5 segundos para transformar no item?
-
[Dúvida] Imagem nao aparece ao criar novo item
pergunta respondeu ao El Rusher de Yan Oliveira em Scripts
O que eu quis dizer foi o seguinte, não sei se em Tibia usa isso, mas em Poketibia o Scyther e Shiny Scyther tem um ataque que ele vai diretamente no outro pokémon com evasão, e no meio da animação é usado um slot livre do items.otb, só para ficar "invisível" enquanto ele pula. E eu não sabia qual slot era, ai fui adicionar umas outfits, e uma delas coloquei nesse slot, e quando o Scyther usava o ataque, na animação ficava a tal outift. Mas tente fazer o que o colega ai cima falou. -
Problema com drop de Key com Action ID
pergunta respondeu ao FlamesAdmin de Yan Oliveira em Programação
Qual é sua TFS? -
Mas o que não funcionou? Deu erro ou simplesmente não deu certo? Você configurou corretamente ?
-
Problema com drop de Key com Action ID
pergunta respondeu ao FlamesAdmin de Yan Oliveira em Programação
Tem essa possibilidade também, mas eu acho que era assim que ele estava fazendo, pois ele disse que não estava vindo com a action. Mas caso ele setado a actionid de outra forma, essa é para funcionar. -
Problema com drop de Key com Action ID
pergunta respondeu ao FlamesAdmin de Yan Oliveira em Programação
Estranho, essa key tem uma action para fazer o que no seu server? -
Ajuda - Script ALAVANCA QUEST para 6 players
pergunta respondeu ao GODStalks de Yan Oliveira em Scripts
Não é correto dividir a quest em vários arquivos, o ideal é ser dentro de um só! Me explica o funcionamento de toda a quest, irei tentar refazer ela e deixar mais fácil de entender para mexer nele conforme seu gosto. -
Você sabe qual tabela é armazenada a informação do torneio? Se saber é tranquilo, sobre o canal, não preferiria uma talkaction para ver isso? Comando !top_torneio por exemplo, acho que seria mais viável.
-
Quando postar um script assim, procure colocar dentro da tag code ou spoiler, para ficar mais legível. Sobre o script, eu criei uma função para setar o rate da exp de acordo com a quantidade de resets, os parâmetros são cid, quantidade de reset mínimo, reset máximo e rate da exp. Substitua o código por esse: 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 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 Eu deixei comentado a linha onde aumenta o rate de acordo com a quantidade de resets, é essa função: setExpRate(cid, 0, 5, 2) Testa e me fala, mas pode ser que dê erro caso não tenha a função doPlayerSetExperienceRate(cid, rate) que eu uso na função setExpRate, caso não tenha avisa que te passo. Como não informou sua TFS, não sei se tem ou não.
-
Agora entendi, preciso que mande o script do reset que tem.
-
Como assim reset?
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.