Ir para conteúdo

Featured Replies

Postado

Eae galera, tudo certo?

Pois bem, eu queria uma ajuda num script, para que descontasse dos meus pontos (resets no meu caso) e o npc me entregasse um item.

 

Desconta dessa coluna na database:

 

Script do NPC, ele já dá os resets 100%, mas gostaria de acrescentar essa outra função, que seria troca os resets por um item configurável.

Spoiler

--[[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 = 500, --- level inical para resetar
price = 100000, --- preço inicial para resetar
newlevel = 25, --- 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 = 50,
levelbyreset = 0 --- quanto de level vai precisar a mais no próximo reset
}
--- end config

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


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


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('Deseja resetar? diga {sim} ira custar '..newPrice..' dollar note(s)', cid)
		talkState[talkUser] = 1
	else
		selfSay('You already reached the maximum reset level!', cid)
	end
elseif(msgcontains(msg, 'sim') and talkState[talkUser] == 1) then
	if getPlayerMoney(cid) < newPrice then
		selfSay('E necessario '..newPrice..' dollar note(s) para resetar!', cid)
	elseif getPlayerLevel(cid) < newminlevel then
		selfSay('Level minimo para resetar e '..newminlevel..'!', cid)
	else
		doPlayerRemoveMoney(cid,newPrice)
		playerid = getPlayerGUID(cid)
		addEvent(function()
			if isPlayer(cid) then
				addReset(cid)
			end
		end, 3000)
		local number = getResets(cid)+1
		local msg ="---[Reset: "..number.."]-- Voce resetou!  Sera desconectado em 3...2...1..."
		doPlayerPopupFYI(cid, msg) 
		talkState[talkUser] = 0
		npcHandler:releaseFocus(cid)
	end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'no')) and isInArray({1}, talkState[talkUser]) == TRUE then
	talkState[talkUser] = 0
	npcHandler:releaseFocus(cid)
	selfSay('Ok.', cid)
elseif msgcontains(msg, 'quantidade') then
	selfSay('Você tem: '..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 já pelo ajuda!

REP+ pra que ajuda ou pelo menos me dá uma luz do caminho :grin:

Postado

MMHUCMQ.png  Esta é uma mensagem automática, este tópico foi movido para a área correta.
  Regras do fórum: http://www.tibiaking.com/forum/topic/1281-regras-gerais/#comment-7680

Este tópico foi movido:
De: Scripting > OTServ > Monsters e NPCs
Para: Suporte > OTServ > Scripts

  • 1 month later...

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