Ir para conteúdo

maikons

Campones
  • Total de itens

    77
  • Registro em

  • Última visita

Sobre maikons

Informações

  • Forma que conheci o xTibia
    Otservs
  • Sou
    OT-Admin

Últimos Visitantes

1044 visualizações

maikons's Achievements

  1. 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...
  2. Muito obrigado, vou te dar outros reps aqui, vlw!!!
  3. Não sei o porque, mas o código ta aparecendo pra mim (não sei se é só pra mim) Com varios &gt &lt Troca o código pra PHP que arruma eu acho, pelo menos quando eu posto
  4. 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
  5. Pra ativar isso é só mudar isso no config.lua? globalSaveEnabled = true globalSaveHour = 7 globalSaveMinute = 0 shutdownAtGlobalSave = true cleanMapAtGlobalSave = true Parece q o sv volta e n fecha mais, como faz pra voltar?
  6. 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
  7. Será que eles não reinciam a maquina, fazem algum procedimento pra deixar a parada mais lisa dps do save? Pq eu sinto o sv mais leve n sei pq Será que não tem algum metodo de algo bom pra fazer quando da esses saves? E como o ot volta sozinho?
  8. Editando config.lua consegui fazer pra 6:00 dar aquele save que derruba o server pra limpar tudo, como o underwar faz pra o server voltar depois? Por que eles fazem isso? Pra reiniciar a maquina e tal? O que eles fazem? Compensa né pra deixar o ot mais liso né?
  9. 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?
  10. Pelo menos pra mim tem, não aguento jogar essa mesmice
  11. 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
  12. Sim e não é VIP account 8306 id da pedra FREE (que vai dar pra comprar pelo jogo) 8300 id da pedra VIP (que vai comprar por donate)
  13. 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
  • Quem Está Navegando   0 membros estão online

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