Bom dia ( NPC - Reset ) Preciso ajuda com Recompensa

Neo Sonny
em Resolvidos

Neo Sonny

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 10/12/16Posts: 11

Bom dia - Preciso ajuda com Script do NPC : Quizer que ele NPC depois fazer Reset Level, Add Item - Recompensa. exemplo : 30 Gold Coin 
Rep + Quiem poda Ajudar. 
Adicionar : MAX reset, Exemplo : 30 reset max pode fazer um jogador



 

Spoiler


-- config
minlevel = 25 -- level para resetar
price = 0
newlevel = 150 -- level após reset
newexp = 36830000 -- nova experiencia após reset
-- end config

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

function getResets(cid)
resets = getPlayerStorageValue(cid,36874)
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('Do you want to reset your character level? Your character will be logged off if you confirm. You must pay '..price..' gold coins to reset.', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if getPlayerMoney(cid) < price then
selfSay('You must pay '..price..' gold coins to reset.', cid)
elseif getPlayerLevel(cid) < minlevel then
selfSay('You must be at least level '.. minlevel ..' to reset.', 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, 'info') then
selfSay('You have '..getResets(cid)..' reset(s).', cid)
end

return true
end

 

atakashi

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 11/12/07Posts: 332

deixa eu tentar entender, se quer quando resete ganhe um item de recompensa?
e que limite o reset?

pokepro.gif

   Pokemon PRO, Profissionais em diversão.

 

Servidor 24 Horas
Uptime: 100%

 

 

 

Deadpool

!!!
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 25/10/11Posts: 2175Gênero: MasculinoChar no Tibia: Sociopata

Caro membro, seu tópico foi movido de Scripts > Otserv > NPCs, monsters e raids para Otserv > Suporte Otserv.

 

Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.

 

 

 

 

DICA

Utilize botão @UP, no início de seu tópico, para atualizar o destaque de seu tópico em "Tópicos Recentes" na index, fará com que mais pessoas o vejam.

DuuhCarvalho

:)
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 19/01/12Posts: 988Gênero: MasculinoChar no Tibia: Xerife Woody

Nossa mano, desse jeito não tem como ajudar. Não entendi nada

Neo Sonny

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 10/12/16Posts: 11

 @atakashi  ....... Sim preciso isso ... OBG sim vc meu pode ajudar

DuuhCarvalho

:)
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 19/01/12Posts: 988Gênero: MasculinoChar no Tibia: Xerife Woody
6 horas atrás, Neo Sonny disse:

 @atakashi  ....... Sim preciso isso ... OBG sim vc meu pode ajudar

 

-- config
minlevel = 25 -- level para resetar
price = 0
newlevel = 150 -- level após reset
newexp = 36830000 -- nova experiencia após reset
limitReset = 10 -- limite de resetes
idCoins = 2160 -- id do premio(coins) que o player ganha
quantCoins = 10 -- quantidade de coins que vai ganhar
-- end config

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

function getResets(cid)
resets = getPlayerStorageValue(cid,36874)
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('Do you want to reset your character level? Your character will be logged off if you confirm. You must pay '..price..' gold coins to reset.', cid)
	talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
	if getPlayerMoney(cid) < price then
		selfSay('You must pay '..price..' gold coins to reset.', cid)
	elseif getPlayerLevel(cid) < minlevel then
		selfSay('You must be at least level '.. minlevel ..' to reset.', cid)
	else
		if getResets < limitReset then
			doPlayerRemoveMoney(cid,price)
			addReset(cid)
			playerid = getPlayerGUID(cid)
			doRemoveCreature(cid)
			doPlayerAddItem(cid, idCoins, quantCoins)
			db.executeQuery("UPDATE `players` SET `level`="..newlevel..",`experience`="..newexp.." WHERE `players`.`id`= ".. playerid .."")
		else
			selfSay('You can no longer reset.', cid)
		end
	end
	talkState[talkUser] = 0
elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
	talkState[talkUser] = 0
	selfSay('Ok.', cid)
elseif msgcontains(msg, 'info') then
	selfSay('You have '..getResets(cid)..' reset(s).', cid)
end

return true
end