Postado Agosto 4, 2017 7 anos Autor On 7/7/2014 at 4:12 PM, xWhiteWolf said: /\ this. Esse script reseta em relação a vida antiga pra evitar bugs mas se vc quiser fazer uma vida fixa é só editar nessas configurações aqui: local hp = getCreatureMaxHealth(cid) setCreatureMaxHealth(cid, 200) local differencehp = (hp - 200) doCreatureAddHealth(cid, -differencehp) local mana = getCreatureMaxMana(cid) setCreatureMaxMana(cid, 180) local differencemana = (mana - 180) doCreatureAddMana(cid, -differencemana) 17 hours ago, JcA said: Esse sistema de reset, tem como fazer para voltarem para hp normal de cada vocação no level 8? tu só precisa fazer a modificação acima só que considerando valores pra cada classe. local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) 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 local config = { minlevel = 150, --- Level inical para resetar price = 10000, --- Preço inicial para resetar newlevel = 20, --- Level após reset priceByReset = 0, --- Preço acrescentado por reset percent = 10, ---- Porcentagem da vida/mana que você terá ao resetar (em relação à sua antiga vida total) maxresets = 10, ---- Maximo de resets levelbyreset = 0 --- Quanto de level vai precisar a mais no próximo reset } local function getResets(uid) local player = Player(uid) local resets = 0 if player then resets = math.max(0, player:getStorageValue(378378)) end return resets end local function addReset(uid) local player = Player(uid) if player then local resets = getResets(uid) player:setStorageValue(378378, resets+1) doTeleportThing(uid, getTownTemplePosition(getPlayerTown(uid))) local hp = player:getMaxHealth() local resethp = hp*(config.percent/100) local differencehp = (hp - resethp) doCreatureAddHealth(uid, -differencehp) player:setMaxHealth(resethp) local mana = player:getMaxMana() local resetmana = mana*(config.percent/100) player:setMaxMana(resetmana) local differencemana = (mana - resetmana) doCreatureAddMana(uid, -differencemana) local playerid = player:getGuid() local description = resets+1 player:remove() db.query("UPDATE `players` SET `description` = ' [Reset: "..description.."]' WHERE `players`.`id`= ".. playerid .."") db.query("UPDATE `players` SET `level`="..config.newlevel..",`experience`= 0 WHERE `players`.`id`= ".. playerid .."") end return true end function creatureSayCallback(cid, type, msg) if not npcHandler:isFocused(cid) then return false end local player = Player(cid) local newPrice = config.price + (getResets(cid) * config.priceByReset) local newminlevel = config.minlevel + (getResets(cid) * config.levelbyreset) if msgcontains(msg, 'reset') then if getResets(cid) < config.maxresets then npcHandler:say('You want to reset your character? It will cost '..newPrice..' gp\'s!', cid) npcHandler.topic[cid] = 1 else npcHandler:say('You already reached the maximum reset level!', cid) end elseif msgcontains(msg, 'yes') and npcHandler.topic[cid] == 1 then if player:getLevel() >= newminlevel then if player:removeMoney(newPrice) then addEvent(function() if isPlayer(cid) then addReset(cid) end end, 3000) local number = getResets(cid)+1 local msg ="---[Reset: "..number.."]-- You have reseted! You'll be disconnected in 3 seconds." player:popupFYI(msg) npcHandler.topic[cid] = 0 npcHandler:releaseFocus(cid) else npcHandler:say('Its necessary to have at least '..newPrice..' gp\'s for reseting!', cid) npcHandler.topic[cid] = 0 end else npcHandler:say('The minimum level for reseting is '..newminlevel..'!', cid) npcHandler.topic[cid] = 0 end elseif(msgcontains(msg, 'no')) and isInArray({1}, npcHandler.topic[cid]) then npcHandler.topic[cid] = 0 npcHandler:releaseFocus(cid) npcHandler:say('Ok.', cid) elseif msgcontains(msg, 'quantity') then npcHandler:say('You have a total of '..getResets(cid)..' reset(s).', cid) npcHandler.topic[cid] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) 21 hours ago, Koring4 said: @xWhiteWolf eu nem mudei nada, eu peguei o script que você posto na pagina 5 falando que que é a versão 1.2 mas em fim, eu troquei isso que você falo e deu outro erro. Reveal hidden contents ai depois eu troquei a linha db.query("UPDATE `players` SET `level`="..config.newlevel..",`experience`= 0 WHERE `players`.`id`= ".. playerid .."") por db.executeQuery("UPDATE `players` SET `level`="..config.newlevel..",`experience`= 0 WHERE `players`.`id`= ".. playerid .."") ai deu esse outro erro Reveal hidden contents OBS: eu não manjo muito, mas pensei em testa antes de vim pergunta novamente. mas obrigado pela atenção. tenta assim: Editado Agosto 4, 2017 7 anos por xWhiteWolf (veja o histórico de edições)
Postado Agosto 4, 2017 7 anos @xWhiteWolf deu esse erro agora, acho que não tenho tabela de reset na minha db, não seria isso ? Spoiler
Postado Agosto 4, 2017 7 anos Autor 23 minutes ago, Koring4 said: @xWhiteWolf deu esse erro agora, acho que não tenho tabela de reset na minha db, não seria isso ? Hide contents modifiquei ali em cima, agora acho q vai
Postado Agosto 4, 2017 7 anos @xWhiteWolf agora esse erro, ele não ta kickando o char nem voltando level, só volta hp e mana Spoiler Editei depois do erro acima eu mudei essa parte. era assim: Spoiler local function addReset(uid) local player = Player(uid) if player then local resets = getResets(uid) player:setStorageValue(378378, resets+1) doTeleportThing(uid, getTownTemplePosition(getPlayerTown(uid))) local hp = player:getMaxHealth() local resethp = hp*(config.percent/100) local differencehp = (hp - resethp) doCreatureAddHealth(uid, -differencehp) player:setMaxHealth(resethp) local mana = player:getMaxMana() local resetmana = mana*(config.percent/100) player:setMaxMana(resetmana) local differencemana = (mana - resetmana) doCreatureAddMana(uid, -differencemana) local playerid = player:getGuid() local description = resets+1 player:remove() db.query("UPDATE `players` SET `description` = ' [Reset: "..description.."]' WHERE `players`.`id`= ".. playerid .."") db.query("UPDATE `players` SET `level`="..config.newlevel..",`experience`= 0 WHERE `players`.`id`= ".. playerid .."") end return true end agora é assim Spoiler function addReset(cid) player = Player(cid) resets = getResets(cid) hp = player:getMaxHealth() resethp = hp*(config.percent/100) player:setMaxHealth(resethp) mana = player:getMaxMana() resetmana = mana*(config.percent/100) player:setMaxMana(resetmana) playerid = player:getGuid() player:setStorageValue(378378, resets+1) player:remove() description = resets+1 db.query("UPDATE `players` SET `description` = ' [Reset: "..description.."]' WHERE `players`.`id`= ".. playerid .."") db.query("UPDATE `players` SET `level`="..config.newlevel..",`experience`= 0 WHERE `players`.`id`= ".. playerid .."") return true end não da erro, reseta o char normal mas não aparece no look, pode me ajuda nisso ? Editado Agosto 9, 2017 7 anos por Koring4 (veja o histórico de edições)
Postado Agosto 9, 2017 7 anos Autor abre seu banco de dados e me fala quais campos tem na tabela players
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.