Ir para conteúdo

bringsz

Membro
  • Registro em

  • Última visita

  1. Fir3element reagiu a uma resposta no tópico: Sources para [DBO]
  2. Savidotti reagiu a uma resposta no tópico: Sources para [DBO]
  3. Nother reagiu a uma resposta no tópico: Nickname já existente [SOLUCIONADO]
  4. Luan Zero reagiu a uma resposta no tópico: Nickname já existente [SOLUCIONADO]
  5. Snowsz reagiu a uma resposta no tópico: [DÚVIDA] Remover o "ambient light"
  6. Zlavk reagiu a uma resposta no tópico: Nickname já existente [SOLUCIONADO]
  7. bringsz reagiu a uma resposta no tópico: [TUTORIAL] Cortando sprites 32x32 (rápido)
  8. JuremaFox reagiu a uma resposta no tópico: Sources para [DBO]
  9. vini464 reagiu a uma resposta no tópico: Nickname já existente [SOLUCIONADO]
  10. bringsz reagiu a uma resposta no tópico: Tutorial 2 em 1 - Magic e Shoot Effects
  11. bringsz postou uma resposta no tópico em OTServer Derivados
    @Daskyn Acredito que sim '-' @Kazuya9629 Cara só seguir esse tutorial aqui Lembrando que quanto menor o numero no atk speed, mais rápido os personagens vão atacar
  12. bringsz postou uma resposta no tópico em OTServer Derivados
    @netoxdd Da sim cara, só seguir a segunda parte desse tutorial que ensina a compilar sem a pasta dev-cpp
  13. SomeBody reagiu a uma resposta no tópico: Sources para [DBO]
  14. bringsz postou uma resposta no tópico em OTServer Derivados
    Kojack datapack 2015 or DBO Rox
  15. Zamasu reagiu a uma resposta no tópico: Sources para [DBO]
  16. bringsz postou uma resposta no tópico em OTServer Derivados
    Any DBO 8.60
  17. bringsz postou uma resposta no tópico em OTServer Derivados
    @Wakon adicionado
  18. bringsz postou uma resposta no tópico em OTServer Derivados
    Galera estou disponibilizando para vocês uma source que no meu servidor corrigiu o bug das mortes infinitas que já vi em vários OTServ de DBO. Simplesmente eu peguei essas sources e modifiquei para DBO - Effets limit 255 - HP e MP por % - Fisting upando atk speed para 350.
  19. bringsz reagiu a uma resposta no tópico: [Resolvido] Bug das Mortes DBO
  20. bringsz reagiu a uma resposta no tópico: [Resolvido] Bug das Mortes DBO
  21. @dissolima Isso mesmo, estou com servidor aberto 24horas e não ocorreu o bug, eu tinha feito isso mudando de sources mas tava crashando o server, agr aparentemente está tudo certo. VLW Vou postar as sources depois para quem está com esse problema tbm, já modificadas para dbo
  22. @dissolima Alguma source para indicar?
  23. @xWhiteWolf Os personagens estão com 0 de vida pois estão bugados, mas do nada simplesmente eles desbugam ou eu tenho que kickar e voltam com HP normal.
  24. @victor4312 Não tem bless nem aol infinito. @Ziguirifido Sabe arrumar isso? só acontece com alguns players @xWhiteWolf White fiz o que você mandou, verifiquei na database um personagem bugado e tipo a vida dela ta em health = 0 e healtmax = 2124670 nada negativo, já testei o servidor e tirei todos os onDeath e onPrepareDeath e o bug continuou E os que tem de onLogin são esses scripts: antimc.lua local config = { max = 4, -- Número de players permitido com o mesmo IP. group_id = 1 -- Kikar apenas player com o group id 1. } local accepted_ip_list = {} -- Lista dos players permitidos a usar MC, exemplo: {"200.85.3.60", "201.36.5.222"} local function antiMC(p) if #getPlayersByIp(getPlayerIp(p.pid)) >= p.max then doRemoveCreature(p.pid) end return true end function onLogin(cid) if getPlayerGroupId(cid) <= config.group_id then if isInArray(accepted_ip_list,doConvertIntegerToIp(getPlayerIp(cid))) == false then addEvent(antiMC, 1000, {pid = cid, max = config.max+1}) end end return true end login.lua local config = { loginMessage = getConfigValue('loginMessage'), useFragHandler = getBooleanFromString(getConfigValue('useFragHandler')) } function onLogin(cid) local loss = getConfigValue('deathLostPercent') if(loss ~= nil) then doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10) end local accountManager = getPlayerAccountManager(cid) if(accountManager == MANAGER_NONE) then local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage if(lastLogin > 0) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str) str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "." else str = str .. " Please choose your outfit." doPlayerSendOutfitWindow(cid) setPlayerStorageValue(cid, 30024, 0) end doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str) elseif(accountManager == MANAGER_NAMELOCK) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, it appears that your character has been namelocked, what would you like as your new name?") elseif(accountManager == MANAGER_ACCOUNT) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type {account} to manage your account and if you want to start over then type {cancel}.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type {account} to create an account or type {recover} to recover an account.") end if getPlayerStorageValue(cid, 67792) == -1 then doPlayerPopupFYI(cid, "Bem vindos ao DBO") doPlayerSetStorageValue(cid, 67792, 0) end if(not isPlayerGhost(cid)) then doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) end registerCreatureEvent(cid, "Mail") registerCreatureEvent(cid, "SkullCheck") registerCreatureEvent(cid, "NoPartyAttack") registerCreatureEvent(cid, "TiraBattle") registerCreatureEvent(cid, "Idle") if(config.useFragHandler) then registerCreatureEvent(cid, "SkullCheck") registerCreatureEvent(cid, "Reward") end registerCreatureEvent(cid, "FullHpMana") registerCreatureEvent(cid, "AdvanceSave") doPlayerPopupFYI(cid, "Bem vindo ao servidor DBO") registerCreatureEvent(cid, "ZombieAttack") registerCreatureEvent(cid, "BlessCheck") registerCreatureEvent(cid, "advance") registerCreatureEvent(cid, "SkullCheck") registerCreatureEvent(cid, "ReportBug") registerCreatureEvent(cid,"Outfit") registerCreatureEvent(cid, "FragReward") registerCreatureEvent(cid, "Niwdeath") registerCreatureEvent(cid, "AdvanceSave") registerCreatureEvent(cid, "LevelRecompense") registerCreatureEvent(cid, "BoasVindas") registerCreatureEvent(cid, "BroadDeath") registerCreatureEvent(cid, "SaveStamina") --------- SHOP --------- registerCreatureEvent(cid, "RemovedorDeFrags") --------- OTHERS --------- registerCreatureEvent(cid, "perdereifeto") registerCreatureEvent(cid, "Maxlvl") registerCreatureEvent(cid, "Maxlvl1") --------------- REFLECT ---------------- registerCreatureEvent(cid, "Reflect") if getPlayerStorageValue(cid, 3482101) ~= 0 then setPlayerStorageValue(cid, 3482101, 0) end registerCreatureEvent(cid, "dodge") if getPlayerStorageValue(cid, 48902) == -1 then setPlayerStorageValue(cid, 48902, 0) end registerCreatureEvent(cid, "critical") if getPlayerStorageValue(cid, 48903) == -1 then setPlayerStorageValue(cid, 48903, 0) end return true end outfit_vocation.lua skillstageslogin.lua dofile(getDataDir() .. "creaturescripts/scripts/stagesconfig.lua") function onLogin(cid) for skill, skillStage in pairs(skillStages) do if(skill >= 0 and skill <= 6) then nowSkill = getPlayerSkillLevel(cid, skill) else nowSkill = getPlayerMagLevel(cid, true) end for i, skillRateInfo in pairs(skillStage) do if(nowSkill >= skillRateInfo[1]) then skillRate = skillRateInfo[2] else break end end doPlayerSetRate(cid, skill, skillRate) end if(showInfoOnLogin) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, getPlayerSkillRatesText(cid)) end registerCreatureEvent(cid, "SkillStagesAdvance") return TRUE end boasvindas.lua local message = [[Seja bem vindo! Utilize o canal help para maiores informações. Digite !notice ou !news para ver as novidades. Bom jogo!]] function onLogin(cid) local accountManager = getPlayerAccountManager(cid) if(accountManager == MANAGER_NEW) then doPlayerPopupFYI(cid, message) end return true end checkbless.lua function onLogin(cid) if(getPlayerBlessing(cid, 1)) then first = "Sim" else first = "Não" end if(getPlayerBlessing(cid, 2)) then second = "Sim" else second = "Não" end if(getPlayerBlessing(cid, 3)) then third = "Sim" else third = "Não" end if(getPlayerBlessing(cid, 4)) then fourth = "Sim" else fourth = "Não" end if(getPlayerBlessing(cid, 5)) then fifth = "Sim" else fifth = "Não" end doPlayerSendTextMessage(cid,20,'Suas Blessings: [1='.. first ..' / 2='.. second ..' / 3='.. third ..' / 4='.. fourth ..' / 5='.. fifth ..']') return true end
  25. @xWhiteWolf Hm.. como eu vejo hp e mana max que a database suporta? realmente eu fiz algumas alterações no hp e mana dos personagens aumentando bastante, mas os personagens tem o mesmo hp e alguns bugam e outros não. Vou fazer isso
  26. bringsz postou uma resposta no tópico em Suporte Tibia OTServer
    Erro: Script --[[ 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] = {80, false, false}, [2] = {80, true, false}, [3] = {70, true, false}, [4] = {70, true, false}, [5] = {60, true, false}, [6] = {60, true, true}, [7] = {50, true, true}, [8] = {40, true, true}, [9] = {30, true, true}, [10] = {10, true, true}, [11] = {5, true, true}, [12] = {1, true, true} }, broadcast = 10, attributes = { ["attack"] = 1, ["defense"] = 2, ["armor"] = 5 }, 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 = { [8302] = {range = {0, 12}, info = {chance = 0, removeable = true}}, [8300] = {range = {0, 12}, info = {chance = 100, removeable = true}}, [2153] = {range = {0, 12}, info = {chance = 5, 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() self.item.level = (tonumber(self:getItemName():match("%+(%d+)")) or 0) end function 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" end end
  27. bringsz postou uma resposta no tópico em Suporte Tibia OTServer
    Erro distro: Script local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 226) local arr1 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 2, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } local area1 = createCombatArea(arr1) setCombatArea(combat1, area1) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 227) local arr2 = { {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {1, 0, 0, 0, 0}, {2, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, } local area2 = createCombatArea(arr2) setCombatArea(combat2, area2) local combat3 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat3, COMBAT_PARAM_EFFECT, 225) local arr3 = { {0, 0, 0, 0, 0}, {0, 0, 1, 2, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, } local area3 = createCombatArea(arr3) setCombatArea(combat3, area3) local combat4 = createCombatObject() setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat4, COMBAT_PARAM_EFFECT, 224) local arr4 = { {0, 0, 1, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 2, 0}, } local area4 = createCombatArea(arr4) setCombatArea(combat4, area4) local combat5 = createCombatObject() setCombatParam(combat5, COMBAT_PARAM_HITCOLOR, COLOR_TEAL) setCombatParam(combat5, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat5, COMBAT_FORMULA_LEVELMAGIC, -400.0, 0, -450.0, 0) local arr5 = { {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {1, 1, 1, 1, 1, 1, 0, 0, 0}, {1, 1, 1, 1, 1, 1, 2, 0, 0}, {1, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, } local area5 = createCombatArea(arr5) setCombatArea(combat5, area5) local combat6 = createCombatObject() setCombatParam(combat6, COMBAT_PARAM_HITCOLOR, COLOR_TEAL) setCombatParam(combat6, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat6, COMBAT_FORMULA_LEVELMAGIC, -400.0, 0, -450.0, 0) local arr6 = { {0, 0, 0, 0, 0, 0 ,0}, {0, 0, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 1, 1, 1}, {2, 1, 1, 1, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0}, } local area6 = createCombatArea(arr6) setCombatArea(combat6, area6) local combat7 = createCombatObject() setCombatParam(combat7, COMBAT_PARAM_HITCOLOR, COLOR_TEAL) setCombatParam(combat7, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat7, COMBAT_FORMULA_LEVELMAGIC, -400.0, 0, -450.0, 0) local arr7 = { {0, 0, 0, 2, 0}, {0, 0, 1, 1, 1}, {0, 0, 1, 1, 1}, {0, 0, 1, 1, 1}, {0, 0, 1, 1, 1}, {0, 0, 1, 1, 1}, {0, 0, 1, 1, 1}, } local area7 = createCombatArea(arr7) setCombatArea(combat7, area7) local combat8 = createCombatObject() setCombatParam(combat8, COMBAT_PARAM_HITCOLOR, COLOR_TEAL) setCombatParam(combat8, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat8, COMBAT_FORMULA_LEVELMAGIC, -400.0, 0, -450.0, 0) local arr8 = { {0, 0, 1, 1, 1}, {0, 0, 1, 1, 1}, {0, 0, 1, 1, 1}, {0, 0, 1, 1, 1}, {0, 0, 1, 1, 1}, {0, 0, 1, 1, 1}, {0, 0, 0, 2, 0}, } local area8 = createCombatArea(arr8) setCombatArea(combat8, area8) function mc3(cid) if getCreatureLookDirection(cid) == 1 then doCombat(cid, combat1, numberToVariant(cid)) doCombat(cid, combat5, numberToVariant(cid)) doPlayerSay(cid, 'HAAAA!', TALKTYPE_ORANGE_1) elseif getCreatureLookDirection(cid) == 3 then doCombat(cid, combat2, numberToVariant(cid)) doCombat(cid, combat6, numberToVariant(cid)) doPlayerSay(cid, 'HAAAA!', TALKTYPE_ORANGE_1) elseif getCreatureLookDirection(cid) == 0 then doCombat(cid, combat3, numberToVariant(cid)) doCombat(cid, combat7, numberToVariant(cid)) doPlayerSay(cid, 'HAAAA!', TALKTYPE_ORANGE_1) elseif getCreatureLookDirection(cid) == 2 then doCombat(cid, combat4, numberToVariant(cid)) doCombat(cid, combat8, numberToVariant(cid)) doPlayerSay(cid, 'HAAAA!', TALKTYPE_ORANGE_1) end end function mc2(cid) doPlayerSay(cid, 'Desgracado!', TALKTYPE_ORANGE_1) addEvent(mc3,500,cid) end function mc1(cid) doPlayerSay(cid, 'Morra!', TALKTYPE_ORANGE_1) addEvent(mc2,500,cid) end function onCastSpell(cid, var) if exhaustion.check(cid, 13103) == TRUE then doPlayerSendCancel(cid, "Podera usar novamente dentro de 5 segundos.") doSendMagicEffect(getCreaturePosition(cid), 2) return false elseif exhaustion.check(cid, 13104) == TRUE then doPlayerSendCancel(cid, "You are exhauted.") doSendMagicEffect(getCreaturePosition(cid), 2) return false end addEvent(mc1,500,cid) exhaustion.set(cid, 13103, 5.0) return true end

Informação Importante

Confirmação de Termo