Jump to content
HexusAlphos

Suporte System Points não adiciona pontos ao player quando upa

Recommended Posts

Venho aqui pedir ajuda sobre um problema que está ocorrendo, não sei o motivo. Aqui no Tibia King encontrei um sistema de pontos de skill do @MaXwEllDeN. Está tudo instalado como deve ser, não da erro na distro, porém o jogador não recebe os pontos ao uparem de Lvl. Alguém sabe o motivo? Uso tfs 0.4

Edited by HexusAlphos
Informações inuteis (see edit history)

Share this post


Link to post
Share on other sites
7 minutos atrás, nigagore disse:

Salve!

 

Poste aqui o seu creaturescripts.xml

 

Veja também se aparece algum erro no console, se aparece posta aqui também

 

Att.

-- #######################################
-- ####### Developed by MaXwEllDeN #######
-- ####### Level Points System     #######
-- ####### Version: 1.0            #######
-- #######################################

local VocPoints = L_LvlPoints.vocPoints

function onAdvance(cid, skill, oldlevel, newlevel)
	if not (VocPoints[getPlayerVocation(cid)]) then
		return true
	end

	if skill == 8 and getPlayerStorageValue(cid, 14573) < newlevel then
		if (getPlayerStorageValue(cid, 14574) < 0) then
			setPlayerStorageValue(cid, 14574, 0)
			setPlayerStorageValue(cid, 14573, 0)
		end

		setPlayerStorageValue(cid, 14573, newlevel)
		setPlayerStorageValue(cid, 14574, getPlayerStorageValue(cid, 14574) + (newlevel - oldlevel) * (VocPoints[getPlayerVocation(cid)]))
		doSendAnimatedText(getThingPos(cid), "+" .. (newlevel - oldlevel) * (VocPoints[getPlayerVocation(cid)]), 18)
	end

	return true
end

Não da nenhum erro na distro. Funciona tudo normal, comandos e etc, porém o problema é que o player não ganha os pontos ao upar

Share this post


Link to post
Share on other sites

Esse sistema fica instalado em 3 pastas; Lib, creaturescripts e talkactions. Vou postar os códigos de cada um.

 

Creaturescript já foi falado ai em cima, colocar a tag

<event type="advance" name="PointSystem" event="script" value="PointsSystem.lua"/>

o arquivo que fica em lib:

-- #######################################
-- ####### Developed by MaXwEllDeN #######
-- ####### Level Points System     #######
-- ####### Version: 1.0            #######
-- #######################################

L_LvlPoints = {
	vocPoints = {
		-- [Skill] = Pontos que ganha,
		[4] = 2,
	},

	attributes = {
		["vitalidade"] = {np = 2, vl = 20, nm = "Hit Points"}, -- Precisa usar 2 points para adicionar 10 de hp
		["energy"] = {np = 4, vl = 10, nm = "Mana Points"},
		["magic"] = {np = 10, vl = 1, nm = "Magic Level"},
		["shielding"] = {np = 5, vl = 1, nm = "Shielding Skill"},
		["sword"] = {np = 2, vl = 1, nm = "Sword Skill"},
		["axe"] = {np = 2, vl = 1, nm = "Axe Skill"},
		["club"] = {np = 2, vl = 1, nm = "Club Skill"},
		["distance"] = {np = 2, vl = 1, nm = "Distance Skill"},
	}

}

Talkactions na parte de script:

-- #######################################
-- ####### Developed by MaXwEllDeN #######
-- ####### Level Points System     #######
-- ####### Version: 1.0            #######
-- #######################################

function onSay(cid, words, param)
	if not (L_LvlPoints.vocPoints[getPlayerVocation(cid)]) then
		return false
	end

	local param = param:lower()
	local p2 = string.explode(param, ",")

	if (getPlayerStorageValue(cid, 14574) < 0) then
		setPlayerStorageValue(cid, 14574, 0)
	end

	local skillids = {
		["shielding"] = 5,
		["sword"] = 2,
		["axe"] = 3,
		["club"] = 1,
		["distance"] = 4
	}

	if (param == "check") then
		doPlayerPopupFYI(cid, "~*~*~ Level Points System by MaXwEllDeN ~*~*~\n\nPontos disponíveis: ".. getPlayerStorageValue(cid, 14574) .."\nPontos por level: ".. L_LvlPoints.vocPoints[getPlayerVocation(cid)])
	elseif (p2[1] and p2[1] == "add") and (L_LvlPoints.attributes[p2[2]]) and (tonumber(p2[3])) then
		if (getPlayerStorageValue(cid, 14574) < tonumber(p2[3]) * L_LvlPoints.attributes[p2[2]].np) then
			doPlayerSendCancel(cid, "Você não tem pontos suficientes para distribuir!")
			return doSendMagicEffect(getThingPos(cid), 2)
		end

		if (p2[2] == "vitalidade") then
			setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) + L_LvlPoints.attributes[p2[2]].vl * tonumber(p2[3]))
			doCreatureAddHealth(cid, L_LvlPoints.attributes[p2[2]].vl * tonumber(p2[3]))
		elseif (p2[2] == "energy") then
			setCreatureMaxMana(cid, getCreatureMaxMana(cid) + L_LvlPoints.attributes[p2[2]].vl * tonumber(p2[3]))
			doCreatureAddMana(cid, L_LvlPoints.attributes[p2[2]].vl * tonumber(p2[3]))
		elseif(skillids[p2[2]]) then
			for a = 1, tonumber(p2[3]) do
				doPlayerAddSkillTry(cid, skillids[p2[2]], getPlayerRequiredSkillTries(cid, skillids[p2[2]], getPlayerSkillLevel(cid, skillids[p2[2]]) + 1) - getPlayerSkillTries(cid, skillids[p2[2]]), false)
			end
		end


		doSendMagicEffect(getThingPos(cid), 29)
		doSendMagicEffect(getThingPos(cid), 30)
		doSendAnimatedText(getThingPos(cid), "-" .. tonumber(p2[3]) * L_LvlPoints.attributes[p2[2]].np, 180)
		setPlayerStorageValue(cid, 14574, getPlayerStorageValue(cid, 14574) - tonumber(p2[3]) * L_LvlPoints.attributes[p2[2]].np)
	else
		local msgx = ""
		for i, v in pairs(L_LvlPoints.attributes) do
			local add = (v.np > 1) and "s" or ""
			msgx = msgx .. string.upper(i:sub(1,1)) .. i:sub(2, #i) .. " - ".. v.np .. " ponto".. add .. " ~ " .. v.vl .. " ".. v.nm .. "\n"
		end

		doPlayerPopupFYI(cid, "~*~*~ Level Points System by MaXwEllDeN ~*~*~\n\nPontos necessários para aumentar os stats:\n\n".. msgx .. "\nExemplo de uso: ".. words .." add, vitalidade, 5\n\nPontos disponíveis: ".. getPlayerStorageValue(cid, 14574))
	end

	return true
end

e a tag de talkaction:

<talkaction words="!points" event="script" value="PointsSystem.lua"/>

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia começando do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer fazer um plano publicitário para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução!

×
×
  • Create New...