-
Posts
77 -
Joined
-
Last visited
About maikons

Informações
-
Forma que conheci o xTibia
Otservs
-
Sou
OT-Admin
Recent Profile Visitors
1154 profile views
maikons's Achievements
-
Alguém que usa o script da demon oak em servidores 8.60 (0.4)... Poderia me passar um script funcional pra essa versão e me ajudar a configurar? Já coloquei as arvores, mas não sei como é, se são actions, oq colocar no mapa, nunca fiz essa quests, mas os players estão cobrando...
-
Queria que cada item tivesse uma chance pra que o itemid 8300 fosse 2 vezes mais fácil de acertar If item 8306 changes = levels = { [1] = {50, false, false}, [2] = {20, false, false}, [3] = {10, true, true} }, Else if item 8300 changes = levels = { [1] = {100, false, false}, [2] = {40, false, false}, [3] = {20, true, true} }, script --PERFECT UPGRADE SYSTEM UpgradeHandler = { nameLv = { [1] = "UNIQ", [2] = "RARE", [3] = "EPIC" }, levels = { [1] = {50, false, false}, [2] = {20, false, false}, [3] = {10, true, true} }, broadcast = 3, attributes = { ["attack"] = 3, ["defense"] = 2, ["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}}, [8300] = {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 false end function UpgradeHandler:update() -- this will return the level by the quality or 0 if it has no quality. self.item.level = 0 for r, v in ipairs(self.nameLv) do if self:getItemName():find(v) then self.item.level = r end end end function UpgradeHandler:refine(uid, item) if (self.item.level >= 3) then return true end 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 -- it says if the item's level is greater then 0 (meaning is level equal to 1 or more) if it is add 1 more -- if the current level equals 0 add 1 to it self:setItemName(self.item.level > 0 and self.nameLv[self.item.level + 1].." "..(self:getItemName():gsub(self.nameLv[self.item.level].." ", "")) or self.nameLv[1].." "..self:getItemName()) 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 item.itemid == 8300 then if self.item.level > 0 then -- this will remove any number with a + sign in front of it from the string self:setItemName(self:getItemName():gsub((self.nameLv[self.item.level].." "), "")) 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, getItemAttribute(self.item.uid, key) - self.item.level * value) end end end else doRemoveItem(self.item.uid, 1) end doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, item.itemid == 8300 and "Your item level has been reseted." or "You have broken your item while trying to upgrade it.") end end
-
Achei que tinha como fazer pra de algum jeito limpar algo, tipo arquivos temporarios ou qualquer coisa, que reinicia-se deixava a parada mais lisa a limpa, como eles fazem pro ot desligar numa hora e voltar em outra? Tem certeza q não rola nada disso? Pq se fosse só save ou clean eles botavam um mass kick e um clean nesse horario :S
-
Como editar as sources pra só quem der o ultimo hit pegar injust nas sources 0.4? Acho que bastante gente usaria isso, alguém pode me ajudar?
-
Pelo menos pra mim tem, não aguento jogar essa mesmice
-
Alguém me ajuda a arrumar meu creaturescript? script local spells = { [1] = { --sorcerer level = { [10] = "1spell", "spell1", [20] = "2spell", "spell2" } }, [2] = { --druid level = { [1] = "spell", "spell", [5] = "spell", "spell" } }, [3] = { --paladin level = { [1] = "spell", "spell", [5] = "spell", "spell" } }, [4] = { --knight level = { [1] = "1spell", "spell1", [5] = "2spell", "spell2" } } } local array_sorc = {"Sorcerer", "Master Sorcerer"} local array_druid = {"Druid", "Elder Druid"} local array_paladin = {"Paladin", "Royal Paladin"} local array_knight = {"Knight", "Elite Knight"} local text = "" function onAdvance(cid, skill, oldLevel, newLevel) if skill == SKILL__MAGLEVEL then player = Player(cid) if isInArray(array_sorc, player:getVocation()) then CONFIG = spells[1] elseif isInArray(array_druid, player:getVocation()) then CONFIG = spells[2] elseif isInArray(array_paladin, player:getVocation()) then CONFIG = spells[3] elseif isInArray(array_knight, player:getVocation()) then CONFIG = spells[4] end if not CONFIG return false end EVENT = CONFIG.level[player:getMagLevel()] if not EVENT then return false end for i, v in ipairs(EVENT) do text = text..""..i..", " end player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "New spells: "..text..) end return true end Erro; http://i.imgur.com/OV5FEde.png
-
Ta no inicio do tópico: As minhas modificações são: 8306 - pedra free, se errar com ela, destroi a arma (funcionando perfeitamente) 8300 - pedra VIP, se errar com ela, volta todos os niveis da arma
-
Recently Browsing 0 members
- No registered users viewing this page.