Ir para conteúdo

VictorTasquin

Campones
  • Total de itens

    72
  • Registro em

  • Última visita

Tudo que VictorTasquin postou

  1. 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: Quando refino o item aparece este erro, e a mensagem a baixo: 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+
  2. Amigo, quando você abre o look type no OB, do lado direito da janela abre uma barra com todas as sprites no mesmo look type. Umas são amarelas + verdes + veremelhas. Esta é a pelicula de cores. Você tem que adicionalas referente ao sprite do looktype.
  3. Outro erro, se o player atica o PVP GUILD ON, ele não ataca os players da guild. Até ai tudo nos conformes. Mas também não ataca nenhum outro player, independente do PVP LEVEL estar em 0. Mais uma coisa. Se o player está com o PVP GUILD ativado, e PVP LEVEL em 0, além de ele não atacar NENHUM outro player em TARGET somente, ele pega skull se da uma magia de área, entretanto, sem dar dano a nenhum player em volta.
  4. VictorTasquin

    Skull

    Infelizmente não amigo. O maximo que pode fazer é criar dois mosntros identicos com skulls diferentes, e regisrta-los com nomes diferentes no monster.XML também.
  5. Poderia fornecer o script amigo ?! Sem ler o script não podemos saber onde está errado.
  6. Ta ai o script com mensagem @narutomaniacos Agoira exaustion, você vai no Spells XML, procura pela spell, e modifica o exaustion. Caso a flag exaustion não exista, insira: Caso de algum erro, poste que lhe ajudarei.
  7. Mas ai todas as portas terão esse level ? Porque meu server tem suas portas com seus destintos leveis!
  8. Então, no meu da isso também, mas teve uma época que consegui configurar perfeitamente. é um conflito do Movements.XML que causa isso, agora, onde arruma eu não lembro direito. Tenta:
  9. Mas ai o cara é teleportado para o outro lado mesmo não tendo o level que a porta exige. Qualquer level pode entrar em uma porta de level 300. Se puder me dar um help, eu agradeceria.
  10. Calemai, Me passa seu MSN, pra gente poder ter contato mais facil. Fica mais facil te ajudar!
  11. Tem que configurar corretamente. Não sei perfeitamente qual é a tag do skill lossing. Mas creio que é o mesmo do Percent Level Loss. Então se colocar no config.lua, além de não perder os skills, ele não perderá o level também. Creio eu.
  12. O erro é no NPCSYSTEM, na Lib, mas não tenho a tag aqui agora. Vou tentar procurar e posto aqui pra você.
  13. local NPC_NEED_ITEMS = {{2160, 20}} --200k ( Coloquei 200k, porque é o preço que ta no seu NPC la em cima) local NPC_NEED_LEVEL = 200 --Level 200
  14. Volte a Vocation.XML normal, antes de eu editar, e troque o script do NPC.
  15. Então coloque o Vocation.XML original e troque o script do seu NPC por este: Créditos: Oneshot.
  16. Assim o banimento do char será permanente, ai você pode optar por banir o IP também ou não.
  17. Como vai dar muito trabalho eu separar Svarground do meu mapa global, vou te passar um globalzin basico pra você baixar, copia e cole em seu mapa. DOWNLOAD:http://www.4shared.com/rar/OFqYSzBl/global_server_101_developed_by.html
  18. Era oque eu ia dizer pra você fazer, testei aqui e funcionou também. Mas as vezes vai parar o evento sozinho, por causa das storages repetidas!
  19. Todo server tem. Não apareceu nada ao apertar Contro + Y ?
  20. Aqui: http://www.xtibia.com/forum/topic/149806-mod-full-auto-war-teambattle-event-com-recompensa/ Ajudei ? REP+
  21. É só apertar Cntrol + Y, digitar o nome do player e escolher a forma de banimento, por IP Permanente, Delete da Conta, apenas Ban. Ajudei ? REP+
  • Quem Está Navegando   0 membros estão online

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