Ir para conteúdo

Featured Replies

Postado

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

Editado por HexusAlphos
Informações inuteis (veja o histórico de edições)

  • Respostas 6
  • Visualizações 414
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

Postado
  • Autor
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

Postado
  • Autor

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

 

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

Informação Importante

Confirmação de Termo