Ir para conteúdo

[Npc] Reseter


sauvadur2

Posts Recomendados

Versao: 8.55

 

Preciso de que voces editem um script para min de npc de reset.

é Assim ele esta para resetar no level 700 por 50k

Eu queria que ficasse assim o level dos resets:

1° reset level 500 e 10k

2° reset level 550 e 20k

3° reset level 600 e 30k

 

E assim por diante.

Script:

-- SCRIPT FEITO POR YUNIE
-- config
minlevel = 700 -- level para resetar
price = 50000
newlevel = 8 -- level após reset
newexp = 4200 -- nova experiencia após reset
-- end config

function addReset(cid)
resets = getResets(cid)
setPlayerStorageValue(cid,1020,resets+1)
return true
end

function getResets(cid)
resets = getPlayerStorageValue(cid,1020)
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 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

if msgcontains(msg, 'reset') then
selfSay('Voce deseja resetar seu char? Isto custará 50k!', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if getPlayerMoney(cid) < price then
selfSay('É Necessario ter 50k para resetar!', cid)
elseif getPlayerLevel(cid) < minlevel then
selfSay('O level minimo para reset é 500!', cid)
else
doPlayerRemoveMoney(cid,price)
addReset(cid)
playerid = getPlayerGUID(cid)
doRemoveCreature(cid)
db.executeQuery("UPDATE `players` SET `level`="..newlevel..",`experience`="..newexp.." WHERE `players`.`id`= ".. playerid .."")
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
talkState[talkUser] = 0
selfSay('Ok.', cid)
elseif msgcontains(msg, 'quant') then
selfSay('Voce tem um total de '..getResets(cid)..' reset(s).', cid)
end

return true
end

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

Link para o comentário
Compartilhar em outros sites

Não testei:

-- SCRIPT FEITO POR YUNIE
-- config
minlevel = 500 -- level inical para resetar
price = 10000 -- preço inicial para resetar
newlevel = 8 -- level após reset
newexp = 4200 -- nova experiencia após reset
lvlByReset = 50 -- level acrescentado por reset
priceByReset = 10000 -- preço acrescentado por reset
-- end config

function addReset(cid)
resets = getResets(cid)
setPlayerStorageValue(cid,1020,resets+1)
return true
end

function getResets(cid)
resets = getPlayerStorageValue(cid,1020)
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 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 needlvl = minlevel + (getResets(cid) * lvlByReset)
local newPrice = price + (getResets(cid) * priceByReset)

if msgcontains(msg, 'reset') then
selfSay('Voce deseja resetar seu char? Isto custará '..newPrice..' gp\'s!', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if getPlayerMoney(cid) < newPrice then
selfSay('É Necessario ter '..newPrice..' gp\'s para resetar!', cid)
elseif getPlayerLevel(cid) < needlvl then
selfSay('O level minimo para reset é '..needlvl..'!', cid)
else
doPlayerRemoveMoney(cid,newPrice)
addReset(cid)
playerid = getPlayerGUID(cid)
doRemoveCreature(cid)
db.executeQuery("UPDATE `players` SET `level`="..newlevel..",`experience`="..newexp.." WHERE `players`.`id`= ".. playerid .."")
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
talkState[talkUser] = 0
selfSay('Ok.', cid)
elseif msgcontains(msg, 'quant') then
selfSay('Voce tem um total de '..getResets(cid)..' reset(s).', cid)
end

return true
end

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

Editado por kydrai
Link para o comentário
Compartilhar em outros sites

Não teria como fazer add uma vocacão quando resetar??

Tipo desse jeito mesmo no lvl 500 por 10k e adiciona a vocação xxxxx

Ai no lvl 550 20k e adiciona uma outra vocação..

Link para o comentário
Compartilhar em outros sites

Lembrando que do jeito que ta ele soma a vocação atual com +4.

Modifique essas partes:

local maxResets = 1 -- máximo de resets
local vocs = {1, 2, 3, 4} -- vocações que podem resetar e ganhar nova vocação (1(sorcerer)+4 = 5 master sorcerer)

 

-- SCRIPT FEITO POR YUNIE
-- config
local minlevel = 500 -- level inical para resetar
local price = 10000 -- preço inicial para resetar
local newlevel = 8 -- level após reset
local newexp = 4200 -- nova experiencia após reset
local lvlByReset = 50 -- level acrescentado por reset
local priceByReset = 10000 -- preço acrescentado por reset
local maxResets = 1 -- máximo de resets
local vocs = {1, 2, 3, 4} -- vocações que podem resetar e ganhar nova vocação (1(sorcerer)+4 = 5 master sorcerer)
-- end config

function addReset(cid)
resets = getResets(cid)
setPlayerStorageValue(cid,1020,resets+1)
return true
end

function getResets(cid)
resets = getPlayerStorageValue(cid,1020)
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 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 needlvl = minlevel + (getResets(cid) * lvlByReset)
local newPrice = price + (getResets(cid) * priceByReset)

if msgcontains(msg, 'reset') then
if getResets(cid) < maxResets then
selfSay('Voce deseja resetar seu char? Isto custará '..newPrice..' gp\'s!', cid)
talkState[talkUser] = 1
else
selfSay('Você ja alcançou seu limite de resets!', cid)
end
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if getPlayerMoney(cid) < newPrice then
selfSay('É Necessario ter '..newPrice..' gp\'s para resetar!', cid)
elseif getPlayerLevel(cid) < needlvl then
selfSay('O level minimo para reset é '..needlvl..'!', cid)
else
doPlayerRemoveMoney(cid,newPrice)
if isInArray(vocs, getPlayerVocation(cid)) then
doPlayerSetVocation(cid, getPlayerVocation(cid)+4)
end
addReset(cid)
playerid = getPlayerGUID(cid)
doRemoveCreature(cid)
db.executeQuery("UPDATE `players` SET `level`="..newlevel..",`experience`="..newexp.." WHERE `players`.`id`= ".. playerid .."")
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
talkState[talkUser] = 0
selfSay('Ok.', cid)
elseif msgcontains(msg, 'quant') then
selfSay('Voce tem um total de '..getResets(cid)..' reset(s).', cid)
end

return true
end

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

Link para o comentário
Compartilhar em outros sites

So tem uma coisa que eu queria arrumar.

 

Tipo quando reseto

Master sorcerer viro = vulcanic sorcerer ( id 5 )

Elder Druid tambem viro vulcanic sorcerer

Elite knight tambem viro vulcanic

Royal paladin tambem viro vulcanic -_-

 

Tipo acho que ficaria mais facil fazer pro talkaction?

Tipo ai poderia fazer por vocacao separada

A vocacao Elder druid de ID 10 quando usa vai pra vocacao de ID 6

 

Assim daria pra separar

vlw

Link para o comentário
Compartilhar em outros sites

  • 1 year later...

fmz manos ??? num teria como um npc mudasse a vocacao mais pra isso o char tinha q ter 20 reset virava vocacao Super, 40 resets outra vocacao assim por diante ou restringir spells por reset alguem ajuda ?? flws fmz

 

fmz manos ??? num teria como um npc mudasse a vocacao mais pra isso o char tinha q ter 20 reset virava vocacao Super, 40 resets outra vocacao assim por diante ou restringir spells por reset alguem ajuda ?? flws fmz

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...