Ir para conteúdo

[Encerrado] Upgrade System para TFS 0.4


Posts Recomendados

Galera, estou com problema nesse script do OneShot:

 

--[[	PERFECT UPGRADE SYSTEM				2.0	Criado por Oneshot	É proibido a venda ou a cópia sem os devidos créditos desse script.]]--UpgradeHandler = {	levels = {		[1] = {100, false, false},		[2] = {90, false, false},		[3] = {75, false, false},		[4] = {60, true, false},		[5] = {45, true, false},		[6] = {30, true, false},		[7] = {25, true, false},		[8] = {20, true, true},		[9] = {15, true, true},		[10] = {10, true, true},		[11] = {10, true, true},		[12] = {5, true, true}	},	broadcast = 7,	attributes = {		["attack"] = 2,		["defense"] = 1,		["armor"] = 1	},	message = {		console = "Trying to refine %s to level +%s with %s%% success rate.",		success = "You have upgraded %s to level +%s",		fail = "You have failed in upgrade of %s to level +%s",		downgrade = "The upgrade level of %s has downgraded to +%s",		erase = "The upgrade level of %s has been erased.",		maxlevel = "The targeted %s is already on max upgrade level.",		notupgradeable = "This item is not upgradeable.",		broadcast = "The player %s was successful in upgrading %s to level +%s.\nCongratulations!!",		invalidtool = "This is not a valid upgrade tool.",		toolrange = "This upgrade tool can only be used in items with level between +%s and +%s"	},	tools = {		[8306] = {range = {0, 10}, info = {chance = 0, removeable = true}},	},	isEquipment = function(self)		local weaponType = self:getItemWeaponType()		return ((weaponType > 0 and weaponType < 7) or self.item.armor ~= 0)	end,	setItemName = function(self, name)		return doItemSetAttribute(self.item.uid, "name", name)	end,	chance = function(self)		local chances = {}		chances.upgrade = (self.levels[self.item.level + 1][1] or 100)		chances.downgrade = (self.item.level * 5)		chances.erase = (self.item.level * 3)		return chances	end}function UpgradeHandler:new(item)	local obj, ret = {}	obj.item = {}	obj.item.level = 0	obj.item.uid = item.uid	for key, value in pairs(getItemInfo(item.itemid)) do		obj.item[key] = value	end	ret = setmetatable(obj, {__index = function(self, index)		if _G[index] then			return (setmetatable({callback = _G[index]}, {__call = function(self, ...)				return self.callback(item.uid, ...)			end}))		else			return UpgradeHandler[index]		end	end})	if ret:isEquipment() then		ret:update()		return ret	end	return falseendfunction UpgradeHandler:update()	self.item.level = (tonumber(self:getItemName():match("%+(%d+)")) or 0)endfunction UpgradeHandler:refine(uid, item)	if not self.item then		doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, self.message.notupgradeable)		return "miss"	end		local tool = self.tools[item.itemid]	if(tool == nil) then		doPlayerSendTextMessage(uid, MESSAGE_EVENT_DEFAULT, self.message.invalidtool)		return "miss"	end	if(self.item.level > #self.levels) then		doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.maxlevel:format(self.item.name))		return "miss"	end	if(self.item.level < tool.range[1] or self.item.level >= tool.range[2]) then		doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.toolrange:format(unpack(tool.range)))		return "miss"	end	local chance = (self:chance().upgrade + tool.info.chance)	doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, self.message.console:format(self.item.name, (self.item.level + 1), math.min(100, chance)))	if(tool.info.removeable == true) then		doRemoveItem(item.uid, 1)	end	if chance * 100 > math.random(1, 10000) then		doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_ORANGE, self.message.success:format(self.item.name, (self.item.level + 1)))		if (self.item.level + 1) >= self.broadcast then			doBroadcastMessage(self.message.broadcast:format(getCreatureName(uid), self.item.name, (self.item.level + 1)))		end		self:setItemName((self.item.level > 0 and self:getItemName():gsub("%+(%d+)", "+".. (self.item.level + 1)) or (self:getItemName() .." +1")))		for key, value in pairs(self.attributes) do			if getItemAttribute(self.item.uid, key) ~= nil or self.item[key] ~= 0 then				doItemSetAttribute(self.item.uid, key, (self.item.level > 0 and getItemAttribute(self.item.uid, key) or self.item[key]) + value)			end		end		return "success"	else		if(self.levels[self.item.level][3] == true and (self:chance().erase * 100) > math.random(1, 10000)) then			doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.erase:format(self.item.name))			self:setItemName(self.item.name)			for key, value in pairs(self.attributes) do				if self.item[key] > 0 then					doItemSetAttribute(self.item.uid, key, self.item[key])				end			end		elseif(self.levels[self.item.level][2] == true and (self:chance().downgrade * 100) > math.random(1, 10000)) then			doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.downgrade:format(self.item.name, (self.item.level - 1)))			self:setItemName((self.item.level == 1 and self.item.name or self:getItemName():gsub("%+(%d+)", "+".. (self.item.level - 1))))			for key, value in pairs(self.attributes) do				if getItemAttribute(self.item.uid, key) ~= nil or self.item[key] ~= 0 then					doItemSetAttribute(self.item.uid, key, (self.item[key] + value * (self.item.level - 1)))				end			end		else			doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.fail:format(self.item.name, (self.item.level + 1)))		end		return "fail"	endend

Aparentemente é um script para TFS superior a 0.4, entretanto eu uso 0.4 com Tibia 8.60, queria que alguém por obséquio convertesse pra mim, preciso muito do script.

 

Erros:

KKyVyH9.png

 

Quando refino o item aparece este erro, e a mensagem a baixo:

C9xHACx.png

 

Ou seja, o item não upa. Entretanto esta função DoItemSetAttribute existe no script do Mock, que eu uso a um tempo. Mas o script do Mock, os itens não passam de level 9, este script do OneShot é mais dinâmico, então queria usa-lo.

 

 

Agradeço desde já.

REP+

Link para o comentário
Compartilhar em outros sites

Também estou com o mesmo problema com esse script. Antes, ele funcionava perfeitamente, mas parou de repente. Só que ainda funciona no meu server sem as modificações que fiz, não faço ideia de qual é o problema.
Meu server é 8.60 TFS 0.4

 

Link para o comentário
Compartilhar em outros sites

  • 7 months later...
Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...