Ir para conteúdo
  • Cadastre-se

(Resolvido)[PEDIDO URGENTE] NPC RESETER


Ir para solução Resolvido por xWhiteWolf,

Posts Recomendados

Queria pedir para que tivesse um metodo de colocar o maximo de resets ao player neste script :c

 

--[[script made 100% by Nogard and Night Wolf.

   You can feel free to edit anything you want, but don't remove the credits]] 
 
 
local config = {
minlevel = 300, --- level inical para resetar
price = 1000000, --- preço inicial para resetar
newlevel = 1, --- level após reset
priceByReset = 500000, --- preço acrescentado por reset
percent = 40, ---- porcentagem da vida/mana que você terá ao resetar (em relação à sua antiga vida total)
levelbyreset = 50 --- quanto de level vai precisar a mais no próximo reset
}
--- end config
 
 
 
function addReset(uid)
resets = getResets(uid)
setPlayerStorageValue(uid, 378378, resets+1) 
doTeleportThing(uid, getTownTemplePosition(getPlayerTown(uid)))
local hp = getCreatureMaxHealth(uid)
local resethp = hp*(config.percent/100)
setCreatureMaxHealth(uid, resethp)
local differencehp = (hp - resethp)
doCreatureAddHealth(uid, -differencehp)
local mana = getCreatureMaxMana(uid)
local resetmana = mana*(config.percent/100)
setCreatureMaxMana(uid, resetmana)
local differencemana = (mana - resetmana)
doCreatureAddMana(uid, -differencemana)
        doRemoveCreature(uid)
local description = resets+1
        db.executeQuery("UPDATE `players` SET `description` = ' [Reset: "..description.."]' WHERE `players`.`id`= ".. playerid .."")
db.executeQuery("UPDATE `players` SET `level`="..config.newlevel..",`experience`= 0 WHERE `players`.`id`= ".. playerid .."")
        return true
end
 
function getResets(uid)
resets = getPlayerStorageValue(uid, 378378)
  if resets < 0 then
            resets = 0
          end
return resets
end
 
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 creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or 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)  == resets then
selfSay('You want to reset your character? It will cost '..newPrice..' gp\'s!', cid)
talkState[talkUser] = 1
else
selfSay('I couldnt acess your bank of acess!', cid)
end
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if getPlayerMoney(cid) < newPrice then
selfSay('Its necessary to have at least '..newPrice..' gp\'s for reseting!', cid)
elseif getPlayerLevel(cid) < newminlevel then
selfSay('The minimum level for reseting is '..newminlevel..'!', cid)
else
doPlayerRemoveMoney(cid,newPrice)
playerid = getPlayerGUID(cid)
addEvent(addReset, (5*1000), cid)
local number = getResets(cid)+1
local msg ="---[Reset: "..number.."]-- You have reseted!  You'll be disconnected in 5 seconds."
doPlayerPopupFYI(cid, msg) 
talkState[talkUser] = 0
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'no')) and isInArray({1}, talkState[talkUser]) == TRUE then
talkState[talkUser] = 0
selfSay('Ok.', cid)
elseif msgcontains(msg, 'quantity') then
selfSay('You have a total of '..getResets(cid)..' reset(s).', cid)
talkState[talkUser] = 0
end
 
return true
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
 

 
Agradeço desde ja <3
Link para o post
Compartilhar em outros sites
  • Solução

--[[Script made 100% by Nogard and Night Wolf.
   You can feel free to edit anything you want, but don't remove the credits]] 




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 = 100, ---- porcentagem da vida/mana que você terá ao resetar (em relação à sua antiga vida total)
maxresets = 50,
levelbyreset = 0 --- quanto de level vai precisar a mais no próximo reset
}
--- end config






function addReset(uid)
resets = getResets(uid)
setPlayerStorageValue(uid, 378378, resets+1) 
doTeleportThing(uid, getTownTemplePosition(getPlayerTown(uid)))
local hp = getCreatureMaxHealth(uid)
local resethp = hp*(config.percent/100)
setCreatureMaxHealth(uid, resethp)
local differencehp = (hp - resethp)
doCreatureAddHealth(uid, -differencehp)
local mana = getCreatureMaxMana(uid)
local resetmana = mana*(config.percent/100)
setCreatureMaxMana(uid, resetmana)
local differencemana = (mana - resetmana)
doCreatureAddMana(uid, -differencemana)
        doRemoveCreature(uid) 
local description = resets+1
        db.executeQuery("UPDATE `players` SET `description` = ' [Reset: "..description.."]' WHERE `players`.`id`= ".. playerid .."")
db.executeQuery("UPDATE `players` SET `level`="..config.newlevel..",`experience`= 0 WHERE `players`.`id`= ".. playerid .."")
        return true
end


function getResets(uid)
resets = getPlayerStorageValue(uid, 378378)
  if resets < 0 then
            resets = 0
          end
return resets
end


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 creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or 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
selfSay('You want to reset your character? It will cost '..newPrice..' gp\'s!', cid)
talkState[talkUser] = 1
else
selfSay('You already reached the maximum reset level!', cid)
end
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if getPlayerMoney(cid) < newPrice then
selfSay('Its necessary to have at least '..newPrice..' gp\'s for reseting!', cid)
elseif getPlayerLevel(cid) < newminlevel then
selfSay('The minimum level for reseting is '..newminlevel..'!', cid)
else
doPlayerRemoveMoney(cid,newPrice)
playerid = getPlayerGUID(cid)
addEvent(addReset, (5*1000), cid)
local number = getResets(cid)+1
local msg ="---[Reset: "..number.."]-- You have reseted!  You'll be disconnected in 5 seconds."
doPlayerPopupFYI(cid, msg) 
talkState[talkUser] = 0
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'no')) and isInArray({1}, talkState[talkUser]) == TRUE then
talkState[talkUser] = 0
selfSay('Ok.', cid)
elseif msgcontains(msg, 'quantity') then
selfSay('You have a total of '..getResets(cid)..' reset(s).', cid)
talkState[talkUser] = 0
end


return true
end


npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

--[[Script made 100% by Nogard and Night Wolf.
   You can feel free to edit anything you want, but don't remove the credits]] 




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 = 100, ---- porcentagem da vida/mana que você terá ao resetar (em relação à sua antiga vida total)
maxresets = 50,
levelbyreset = 0 --- quanto de level vai precisar a mais no próximo reset
}
--- end config






function addReset(uid)
resets = getResets(uid)
setPlayerStorageValue(uid, 378378, resets+1) 
doTeleportThing(uid, getTownTemplePosition(getPlayerTown(uid)))
local hp = getCreatureMaxHealth(uid)
local resethp = hp*(config.percent/100)
setCreatureMaxHealth(uid, resethp)
local differencehp = (hp - resethp)
doCreatureAddHealth(uid, -differencehp)
local mana = getCreatureMaxMana(uid)
local resetmana = mana*(config.percent/100)
setCreatureMaxMana(uid, resetmana)
local differencemana = (mana - resetmana)
doCreatureAddMana(uid, -differencemana)
        doRemoveCreature(uid) 
local description = resets+1
        db.executeQuery("UPDATE `players` SET `description` = ' [Reset: "..description.."]' WHERE `players`.`id`= ".. playerid .."")
db.executeQuery("UPDATE `players` SET `level`="..config.newlevel..",`experience`= 0 WHERE `players`.`id`= ".. playerid .."")
        return true
end


function getResets(uid)
resets = getPlayerStorageValue(uid, 378378)
  if resets < 0 then
            resets = 0
          end
return resets
end


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 creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or 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
selfSay('You want to reset your character? It will cost '..newPrice..' gp\'s!', cid)
talkState[talkUser] = 1
else
selfSay('You already reached the maximum reset level!', cid)
end
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if getPlayerMoney(cid) < newPrice then
selfSay('Its necessary to have at least '..newPrice..' gp\'s for reseting!', cid)
elseif getPlayerLevel(cid) < newminlevel then
selfSay('The minimum level for reseting is '..newminlevel..'!', cid)
else
doPlayerRemoveMoney(cid,newPrice)
playerid = getPlayerGUID(cid)
addEvent(addReset, (5*1000), cid)
local number = getResets(cid)+1
local msg ="---[Reset: "..number.."]-- You have reseted!  You'll be disconnected in 5 seconds."
doPlayerPopupFYI(cid, msg) 
talkState[talkUser] = 0
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'no')) and isInArray({1}, talkState[talkUser]) == TRUE then
talkState[talkUser] = 0
selfSay('Ok.', cid)
elseif msgcontains(msg, 'quantity') then
selfSay('You have a total of '..getResets(cid)..' reset(s).', cid)
talkState[talkUser] = 0
end


return true
end


npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

@xWhiteWolf ,

 

tem como passar script com vida e mana de lvl 8 ?

[ADM] Ghazerban  ;D 

Link para o post
Compartilhar em outros sites

???

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo