Ir para conteúdo

Featured Replies

Postado
  • 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

5982b5212f308_reset2.jpg.423d4629d046d52b3fe0c0025cf928fb.jpg

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

reset3.jpg.4385469d8bcdfb8461c9dcfe0371e46a.jpg

 

 

OBS: eu não manjo muito, mas pensei em testa antes de vim pergunta novamente.

 

mas obrigado pela atenção.



tenta assim:

 

Editado por xWhiteWolf (veja o histórico de edições)

  • Respostas 187
  • Visualizações 33.6k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Ulatson, eu ando meio ocupado pra ficar scriptando então só vou dar dicas de como fazer ou onde conseguir: tem como colocar no script por exemplo para o Player falar só !resetar? Esse script foi fei

  • cara, aquilo que eu te passei era pra vc substituir no seu script;;; ficando assim:   local combat = createCombatObject()setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatPa

  • talkactions/scripts/rankinreset local storage = 378378 -- storage que fica salvo os resets local itens = {2182, 2190, 2456, 2395} -- itens cujas imagens aparecerao (se nao souber oque eh, nao mexa)

Posted Images

Postado

@xWhiteWolf agora esse erro, ele não ta kickando o char nem voltando level, só volta hp e mana

 

Spoiler

reset5.jpg.b3414d7778d431f03c67e9d05626146f.jpg

 

 

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 por Koring4 (veja o histórico de edições)

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo