Postado Janeiro 24, 2018 7 anos Me faça uma tabela exemplo, com 3 linhas, xp atual, numero do reset e level do player, entende? Para eu entender melhor como você quer o stage. Programador PHP, Lua, Java, database administrator. "Nada é verdade, tudo é permitido." Requiescat in pace.
Postado Janeiro 24, 2018 7 anos Autor 3 minutos atrás, Nazo disse: Me faça uma tabela exemplo, com 3 linhas, xp atual, numero do reset e level do player, entende? Para eu entender melhor como você quer o stage. Não tem como eu te falar o EXP atual que o player vai resetar, pois ele pode querer resetar level 4k, 5k,6k e assim vai, porque quanto mais alto o level melhor... pois o script só reseta o level do player... Mas se tiver pra por só assim no script 1 reset , já diminuia 20% de exp do player NÃO IMPORTA O LEVEL QUE ELE está, ou sei lá uma forma de checar o level... 2 RESET, 20% DO primeiro RESET E MAIS 20% DO SEGUNDO, DANO O TOTAL DE 40% A MENOS DE EXP... mais tudo isso séria editado...Não sei como explicar bem vey :s, mas se você já tiver sacado mais ou menos pode fazer como você bem entender, que super vou apoiar... o importante é que diminua a EXP a cada reset.... para ir ficando mais dificil --[[( Marcryzius D'evil )]]-- function onSay(cid, words, param) local C ={ level = 8, -- LVL need to first reset. RemainingLvl = 8, --LVL that will remain after reset. pid = getPlayerGUID(cid), -- not fuse. stages = 3, -- resets needed to add more tier levels. nivel = 2, -- more to add per reset stage. skull = "yes", --players with white skull can reset? ("yes" or "no"). redskull = "yes", -- players with red skull can reset? ("yes" or "no"). prot = "no", --needs to be in a protected area? ("yes" or "no"). bat = "no" --not battler to reset? ("yes" or "no"). } function getResets(cid) return getPlayerStorageValue(cid,1020) < 0 and 0 or getPlayerStorageValue(cid,1020)end if(C.skull == "no") and (getCreatureSkullType(cid) == 3) then doPlayerSendTextMessage(cid,22,"Only players without white skull can reset.") elseif(C.redskull == "no") and (getCreatureSkullType(cid) == 4) then doPlayerSendTextMessage(cid,22,"Only players without red skull can reset.") elseif(C.prot == "yes") and (getTilePzInfo(getCreaturePosition(cid)) == FALSE) then doPlayerSendTextMessage(cid,22,"you need to be in a protected zone so I can reset.") elseif(C.bat == "yes") and (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then doPlayerSendTextMessage(cid,22,"you must be without battler so I can reset.") else local get = math.floor(getResets(cid)/C.stages) if(getPlayerLevel(cid) >= (get*C.nivel)+C.level)then setPlayerStorageValue(cid,1020,getResets(cid)+1) doPlayerPopupFYI(cid,"you now was reset, you have "..getResets(cid).." reset\'s.") doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = "..C.RemainingLvl..", `experience` = "..getExperienceForLevel(C.RemainingLvl).." WHERE `id` = "..C.pid) else doPlayerSendCancel(cid, "You need to have level "..(get*C.nivel)+C.level.." or more you may be reset.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) end end return TRUE end Encontrei esse script, que tem uma forma de checar a stage do player.... ou o nivel sei lá kkk ver se tu entende, não manjo nada de script :s
Postado Janeiro 24, 2018 7 anos Eu não consegui entender o que você está pedindo, pq segundo o script que você mostrou, o player sempre fica com 2254834200 de xp (xp do level 8), como está na linha a seguir, então não faria sentido ele perder mais xp level_multiply = 2254834200, -- Exp para o Level 8 (Consulte na Tabela a Quantidade para Level Desejado) Programador PHP, Lua, Java, database administrator. "Nada é verdade, tudo é permitido." Requiescat in pace.
Postado Janeiro 24, 2018 7 anos Autor 2 minutos atrás, Nazo disse: Eu não consegui entender o que você está pedindo, pq segundo o script que você mostrou, o player sempre fica com 2254834200 de xp (xp do level 8), como está na linha a seguir, então não faria sentido ele perder mais xp level_multiply = 2254834200, -- Exp para o Level 8 (Consulte na Tabela a Quantidade para Level Desejado) Meu amigo, esse é o level que ele volta ao resetar, ele sempre vai voltar pra esse level... Mas estou querendo que a cada reset fique mais dificil de upar entendeu ?, oque eu quero é deixar mais dificil de upar a cada reset :s apenas isso Editado Janeiro 24, 2018 7 anos por StormsHard (veja o histórico de edições)
Postado Janeiro 24, 2018 7 anos Ahhh, agora ficou mais prático de entender xd Vê se funciona, se seu tfs for 1.x é provável que sim. TAG XML em creaturescripts: <event type="kill" name="resetStages" event="script" value="resetstages.lua"/> No creaturescripts/scripts/login.lua: player:registerEvent("resetStages") Em creaturescripts/scripts/ crie o resetstages.lua e coloque o seguinte conteúdo: -- by Nazo (tibiaking.com) config = { storage = 12129 -- storage dos resets } function onKill(cid, target, lastHit) if(getPlayerStorageValue(cid,config.storage) >= 1)then local monster = Monster(target) if not monster then return true end for id, damage in pairs(monster:getDamageMap()) do local player = Player(id) if(player)then local experience = damage.total / monster:getType():getHealth() * monster:getType():getExperience() local expFormula = -((experience * Game.getExperienceStage(player:getLevel())) / 100) if(getPlayerStorageValue(cid, config.storage) < 10) then expFormula = expFormula * getPlayerStorageValue(cid, config.storage)*10 else expFormula = expFormula * 90 end player:addExperience(math.floor(expFormula), true) end end end return true end O que acontece aqui, é que o script pega o número de resets do players, multiplica por 10 e tira de porcentagem no monstro morto, exemplo: Tenho 5 resets, matei um monstro que dá 100 de xp, o script multiplica meus resets por 10 (que dá 50) e tira de porcentagem da xp, assim eu ganharia 50 de xp, invés de 100. Caso eu tenha 10 ou mais resets, eu ganho 10% da xp real do monstro apenas. Editado Janeiro 24, 2018 7 anos por Nazo (veja o histórico de edições) Programador PHP, Lua, Java, database administrator. "Nada é verdade, tudo é permitido." Requiescat in pace.
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.