Líderes
-
MaXwEllDeN
HéroiPontos1185Total de itens -
Skydangerous
MembroPontos1432Total de itens -
-
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 02/27/12 em todas áreas
-
Locker Protection
Locker Protection
kaioboyy e 4 outros reagiu a MaXwEllDeN por uma resposta no tópico
5 pontos#Introdução Bem, este é um sistema no qual você pode protejer o seu locker(depot) com senha, assim evitando hackers http://forums.otserv.com.br/images/smilies/biggrin.gif. #Instalação http://1.imgland.net/3CaRNl.png Primeiro faça o download do sistema e cole na sua pasta data. Após ter instalado os arquivos nas suas respectivas pastas adicione as tags: @Actions <action itemid="2589; 2590; 2591; 2592" event="script" value="DPPass.lua"/> <!-- DP Pass --> @Creaturescripts <event type="login" name="LockerPass" event="script" value="DPPass.lua"/> <!-- DPPass --> @Movements <movevent type="StepOut" actionid="96475" event="script" value="DPPass.lua"/> <!-- DPPass --> @Talkactions <talkaction words="!locker" script="DPPass.lua"/> <!-- DP Pass --> Talvez eu poste uma V. 2, podendo recuperar a senha via Recovery Key! Abraço.5 pontos -
Thriller Dance
Thriller Dance
Reds e 2 outros reagiu a MaXwEllDeN por uma resposta no tópico
3 pontosAuthor: Maxwell Denisson (MaXwEllDeN) Testado em: TFS 0.3.6 <?xml version="1.0" encoding="UTF-8"?> <mod name="Max - Halloween Thriller" version="1.0" author="MaXwEllDeN" contact="[email protected]" enabled="yes"> <config name="MaXLIB"><![CDATA[ ]]></config> <globalevent name="Thriller Dance" type="start" event="script"><![CDATA[ --[[ Thriller Dance Author: Maxwell Denisson(MaXwEllDeN) Version: 1.0 ]] local coreo = {0, 0, 2, 2, "'Cause this is thriller, thriller night", {0, 2, 3, 1}, "And no one's gonna save you from the beast about to strike", 1, 1, 2, 0, 3, 3, {0, 2, 3, 1, 2, 0, 1, 2, 3, 0, 1, 2}} local figurino = {65, 68, 18, 311, 33} function getUidsInArea(ext1, ext2) -- By MaXwEllDeN local UiDes = {} for xiz = 0, ext2.x-ext1.x do for yiz = 0, ext2.y-ext1.y do local creature = getThingFromPos({x = ext1.x+xiz, y = ext1.y+yiz, z = ext1.z, stackpos = 255}).uid if (isCreature(creature)) then table.insert(UiDes, creature) end end end return UiDes end function printTableSX(aff) -- BETA ~ By MaXwEllDeN local s = "{" for a, b in pairs(aff) do if (type(b) == "table") then value = printTableSX(b) elseif (type(b) == "string") then value = '"'.. b .. '"' else value = b end s = s .. value .. ", " end s = "{" .. s:sub(2, #s) return (#s < 3) and "{}" or (s:sub(1, #s-2) .. "}") end local config = { interval = {say = 750, walk = 500, turn = 350} } function TeamWalk(cid, direction) if isCreature(cid) then local cp = getThingPos(cid) local ext1 = {x = cp.x-1, y = cp.y-1, z = cp.z} local ext2 = {x = cp.x+1, y = cp.y+1, z = cp.z} local creatures = getUidsInArea(ext1, ext2) for _, uid in pairs(creatures) do if not(isInArray(figurino, getCreatureOutfit(uid).lookType)) and (getCreatureOutfit(uid).lookType ~= 308) then doSetCreatureOutfit(uid, {lookType = figurino[math.random(#figurino)]}, 60*60*1000) end doMoveCreature(uid, direction) end addEvent(doCoreo, 150, cid) end end function TeamTurn(cid, turns) if (isCreature(cid)) then local function Turn(direction, n) if (n == #turns) then addEvent(doCoreo, 150, cid) end local cp = getThingPos(cid) local ext1 = {x = cp.x-1, y = cp.y-1, z = cp.z} local ext2 = {x = cp.x+1, y = cp.y+1, z = cp.z} local creatures = getUidsInArea(ext1, ext2) for _, uid in pairs(creatures) do if not(isInArray(figurino, getCreatureOutfit(uid).lookType)) and (getCreatureOutfit(uid).lookType ~= 308) then doSetCreatureOutfit(uid, {lookType = figurino[math.random(#figurino)]}, 60*60*1000) end doCreatureSetLookDir(uid, direction) end end for int, dir in pairs(turns) do addEvent(Turn, int*config.interval.turn, dir, int) end end end function Saysz(cid, val) doCreatureSay(cid, val, 19) addEvent(doCoreo, 150, cid) end local function StAR() local coreo_LZ = loadstring("return ".. printTableSX(coreo))() print("OKAY") local k = "Dancer" local w = "Michael Jackson" local area = {{k, k, k}, {k, w, k}, {k, k, k} } local ip = {x = 926, y = 1012, z = 7} for x = 1, #area do for y = 1, #area[x] do local pos = {x = ip.x+x-1, y = ip.y+y-1, z = ip.z, stackpos = 253} doSummonCreature(area[x][y], pos) end end local strZN = "" function doCoreo(uid) if not(isCreature(uid)) then return false end for in1, val in pairs(coreo_LZ) do if (type(val) == "number") then addEvent(TeamWalk, config.interval.walk, uid, val) elseif (type(val) == "table") then addEvent(TeamTurn, config.interval.turn, uid, val) elseif (type(val) == "string") then Saysz(uid, val) end table.remove(coreo_LZ, in1) break end strZN = strZN .. "1" if (#strZN > #coreo) then strZN = "" coreo_LZ = loadstring("return ".. printTableSX(coreo))() doCoreo(uid) end end local ip2 = {x = ip.x+2, y = ip.y+2, z = ip.z} local mons = getUidsInArea(ip, ip2) or {} for _, v in pairs(mons) do if (getCreatureName(v) == "Michael Jackson") then doCoreo(v) break end end return true end function onStartup() addEvent(StAR, 1500) return true end ]]></globalevent> <monster name="Dancer" file="Thriller/Dancer.xml"/> <monster name="Michael Jackson" file="Thriller/Michael Jackson.xml"/> </mod> Coreográfia totalmente editável: local coreo = {0, 0, 2, 2, "'Cause this is thriller, thriller night", {0, 2, 3, 1}, "And no one's gonna save you from the beast about to strike", 1, 1, 2, 0, 3, 3, {0, 2, 3, 1, 2, 0, 1, 2, 3, 0, 1, 2}} Tabelas contém as direções que ele vira /\, >, \/, strings são as palavras que ele o Michael Jackson dirá. configuração dos intervalos em milisegundos, 1000 = 1 segundo. local config = { interval = {say = 750, walk = 500, turn = 350} }3 pontos -
Poll System - Enquetes no seu servidor .-.
Poll System - Enquetes no seu servidor .-.
Babilonia e um outro reagiu a MaXwEllDeN por uma resposta no tópico
2 pontospost_pattern = { author = "Maxwell Denisson(MaXwEllDeN)", developed_in = "The Forgotten Server 0.3.6", code_version = 1.0 } Introdução Com esse sistema, você pode criar enquetes no seu servidor, para saber a opniao de seus players. Instalação Abra a pasta creatureevents, dentro da pasta scripts copie qualquer arquivo com extenção .lua, renomeie para PollMaX, abra com algum editor de texto, apague tudo que tiver dentro e cole o seguinte conteúdo: --[[ Poll System Author: Maxwell Denisson(MaXwEllDeN) Version: 1.0 ]] local POLL = _POLL_SYS function onLogin(cid) if (POLL.on) then local PVotes = string.explode(POLL.func.playerGetVotes (cid), ", ") for _, a in pairs(PVotes) do if not (POLL.func.hasPoll(a)) then POLL.func.removePlayerVote(cid, a) end end local kyz = 0 local polls = {} local msgeX = "MaX Poll System:\nParticipe de nossa(s) enquete(s) -> " for _, a in pairs(POLL.func.getPolls()) do kyz = 1 table.insert(polls, a[1]) msgeX = msgeX .. a[1] .. ", " end if (kyz ~= 0) then doPlayerSendTextMessage(cid, 27, msgeX:sub(1, #msgeX-2)) end end return true end Abra a pasta lib na sua pasta data, copie qualquer arquivo com extenção .lua, renomeie para PollMaX, abra com algum editor de texto, apague tudo que tiver dentro e cole o seguinte conteúdo: --[[ Poll System Author: Maxwell Denisson(MaXwEllDeN) Version: 1.0 ]] _POLL_SYS = { func = {}, VotdSto = 42873, on = true } local InStalled = false function printTableSI(aff) -- BETA ~ By MaXwEllDeN local s = "{" for a, b in pairs(aff) do local index = "[".. a .. "]" if (type(a) == "string") then index = '["'.. a ..'"]' end if (type(b) == "table") then value = printTableSI(b) elseif (type(b) == "string") then value = '"'.. b .. '"' else value = b end s = s .. index .. " = " .. value .. ", " end s = "{" .. s:sub(2, #s) return (#s < 3) and "{}" or (s:sub(1, #s-2) .. "}") end _POLL_SYS.func.install = function () return (db.getResult("ALTER TABLE `server_config` ADD COLUMN `polls` VARCHAR( 255 ) NOT NULL DEFAULT ('{}');")) and true or false end _POLL_SYS.func.getPolls = function () local get = db.getResult("SELECT `polls` FROM `server_config` WHERE `config` = 'db_version';") local resultado = get:getDataString('polls') return (resultado) and loadstring("return " .. resultado)() or nil end _POLL_SYS.func.setPolls = function (newpoll) return (db.getResult("UPDATE `server_config` SET `polls` = '".. newpoll .."' WHERE `config` = `db_version`;")) and true or false end _POLL_SYS.func.addPoll = function (poll, options) local Apoll = _POLL_SYS.func.getPolls() table.insert(Apoll, {poll, options}) return _POLL_SYS.func.setPolls(printTableSI(Apoll)) end _POLL_SYS.func.removePoll = function (poll) local Apoll = _POLL_SYS.func.getPolls() local Npoll = {} for _, b in pairs(Apoll) do if (b[1]:lower() ~= poll:lower()) then table.insert(Npoll, b) end end local Npoll = printTableSI(Npoll) return _POLL_SYS.func.setPolls(Npoll) end _POLL_SYS.func.hasPoll = function (poll) local polls = _POLL_SYS.func.getPolls() for _, b in pairs(polls) do if (b[1]:lower() == poll:lower()) then return true end end return false end _POLL_SYS.func.hasPollOption = function (poll, option) local polls = _POLL_SYS.func.getPolls() for _, b in pairs(polls) do if (b[1]:lower() == poll:lower()) then if (b[2][option:lower()]) then return true end end end return false end _POLL_SYS.func.playerSetVotes = function (player, votes) return setPlayerStorageValue(player, 77734, votes) end _POLL_SYS.func.playerGetVotes = function (player) if (getPlayerStorageValue(player, 77734) == -1) then setPlayerStorageValue(player, 77734, "") end return getPlayerStorageValue(player, 77734) end _POLL_SYS.func.playerAddVote = function (player, poll) return setPlayerStorageValue(player, 77734, getPlayerStorageValue(player, 77734) .. ", ".. poll .. "") end _POLL_SYS.func.hasPlayerVote = function (player, poll) local _, votes = _POLL_SYS.func.playerGetVotes(player):gsub(poll:lower(), "fuu") return (votes > 0) and true or false end _POLL_SYS.func.removePlayerVote = function (player, poll) local _, votes = _POLL_SYS.func.playerGetVotes(player):gsub(poll:lower(), " ") return (votes > 0) and _POLL_SYS.func.playerSetVotes(player, _) or false end _POLL_SYS.func.removeAllPlayersVote = function (poll) for _, cid in pairs(getOnlinePlayers()) do local cid = getPlayerByNameWildcard(cid) _POLL_SYS.func.removePlayerVote(cid, poll) end end _POLL_SYS.func.addVote = function (poll, option, player) local polls = _POLL_SYS.func.getPolls () for _, b in pairs(polls) do if (b[1]:lower() == poll:lower()) then print(UHU) for a, _ in pairs(b[2]) do if (a:lower() == option:lower()) then b[2][a] = _ + 1 _POLL_SYS.func.playerAddVote (player, poll) _POLL_SYS.func.setPolls (printTableSI(polls)) return true end end end end return false end _POLL_SYS.func.getPollHighestValue = function (poll) local value = "" local polls = _POLL_SYS.func.getPolls() for _, a in pairs(polls) do if (a[1]:lower() == poll:lower()) then for b, c in pairs(a[2]) do for _, d in pairs(a[2]) do if (_ ~= b) then if (c > d) then value = b end end end end end end return value end if not(InStalled) then local file = io.open("data/lib/PollSystem.lua", "r") local content = file:read("*all") local content, _ = content:gsub("In".. string.upper("s") .."talled = false", "InStalled = true") file:close() local file = io.open("data/lib/PollSystem.lua", "w+") file:write(content) file:close() return _POLL_SYS.func.install() end Abra a pasta talkactions, dentro da pasta scripts copie qualquer arquivo com extenção .lua, renomeie para PollMaX, abra com algum editor de texto, apague tudo que tiver dentro e cole o seguinte conteúdo: --[[ Poll System Author: Maxwell Denisson(MaXwEllDeN) Version: 1.0 ]] function onSay(cid, words, param) local funcs = {"add", "result", "finalize", "list", "vote"} local POLL = _POLL_SYS if not(POLL.on) then return false end local paramCHECK = param:lower() local param = param:lower() local params = string.explode(param, ";") local param = params[1] local helpE = "Max Poll System Help: \n \n * vote - serve para votar em uma enquete. \n" local helpE = helpE .." Exemplo de uso: " .. words .. " vote; enquete; opção " .. words .. " vote; Quem é o mais gato?; Maxwell\n" local helpE = helpE .."\n * list - lista as enquetes existentes. \n" local helpE = helpE .." Exemplo de uso: " .. words .. " list" if (getPlayerAccess(cid) >= 4) then helpE = helpE .. "\n\n * add - serve para adicionar uma enquete. \n Exemplo de uso: " .. words .. " add; Você votaria no sim?; {'Não', 'Sim'}\n" helpE = helpE .. "\nVocê votaria no sim? é a enquete, o que estiver dentro de {} são as opções, ATENÇÃO: TODAS OPÇÕES DEVEM SER FEITAS DENTRO DE \'\', E SEPARADAS POR VIRGULA!" helpE = helpE .. "\n\n * finalize - serve para finalizar uma enquete. \n Exemplo de uso: ".. words .. " finalize; Você votaria no sim?\n\nVocê votaria no sim é a enquete que você deseja finalizar." end if not(isInArray(funcs, param)) then return doShowTextDialog(cid, 1953, helpE) end if (param == "add") and (getPlayerAccess(cid) >= 4) then if not(params[3]) then return doShowTextDialog(cid, 1953, helpE) end local optionS = loadstring("return " .. params[3]:lower())() if (type(optionS) ~= "table") then return doShowTextDialog(cid, 1953, helpE) end local _, paramCHECK = paramCHECK:gsub(";", "a") if (paramCHECK > 2) then return doPlayerSendTextMessage(cid, 27, "Você não pode usar \";\" nas opções") end if not (optionS[2]) then return doPlayerSendTextMessage(cid, 27, "Sua enquete deve ter no mínimo 2 opções") end local Opt = {} for _, b in pairs(optionS) do Opt[b] = 0 end if (POLL.func.hasPoll(params[2])) then return doPlayerSendTextMessage(cid, 27, "Já existe uma enquete nomeada ".. params[2]) end POLL.func.addPoll(''..params[2]..'', Opt) doPlayerSendTextMessage(cid, 27, "A enquete ".. params[2] .." foi adicionada com as opções: ".. params[3]:lower() ..".") elseif (param == "finalize") and (getPlayerAccess(cid) >= 4) then if not (params[2]) then return doShowTextDialog(cid, 1953, helpE) end if not (POLL.func.hasPoll(params[2])) then return doPlayerSendTextMessage(cid, 27, "Não existe nenhum enquete no banco de dados nomeada ".. params[2] .. "!") end local HValue = POLL.func.getPollHighestValue(params[2]) if (HValue == "") then doBroadcastMessage("A enquete " .. params[2] .. " foi finalizada, sem opções vencedoras!") else doBroadcastMessage("A enquete " .. params[2] .. " foi finalizada, e a opção que recebeu mais votos foi: ".. HValue ..".") end doPlayerSendTextMessage(cid, 27, "A enquete ".. params[2] .." foi finalizada.") POLL.func.removePoll (params[2]) POLL.func.removeAllPlayersVote (params[2]) elseif (param == "list") then local polls = POLL.func.getPolls() local kizizim = 0 mszi = "MaX Poll System:\n\nEnquetes Ativas:\n" local function getPollsOptions(poll) local fukZz = "" for _, b in pairs(polls) do if (b[1] == poll:lower()) then for c, _ in pairs(b[2]) do fukZz = fukZz .. "\n " .. c end return fukZz end end end for a, b in pairs(polls) do kizizim = 1 mszi = mszi .. "\n * ".. b[1] .. getPollsOptions(b[1]) end mszi = mszi .. "\n~-~-~-~-~-~-~-~-~-~-~-~-~-" if (kizizim == 0) then return doPlayerSendTextMessage(cid, 27, "Não existe nenhuma enquete no momento!") end doShowTextDialog(cid, 1953, mszi) elseif (param == "vote") then if not (params[3]) then return doShowTextDialog(cid, 1953, helpE) end if not (POLL.func.hasPoll(params[2])) then return doPlayerSendTextMessage(cid, 27, "Não existe nenhum enquete nomeada \"".. params[2] .. "\"! Para ver a lista das enquetes disponíveis digite: ".. words .. " list") end if (POLL.func.hasPlayerVote(cid, params[2])) then return doPlayerSendTextMessage(cid, 27, "Você já votou nesta enquete.") end if not(POLL.func.hasPollOption(params[2], params[3])) then return doPlayerSendTextMessage(cid, 27, "A enquete ".. params[2] .. " não tem nenhuma opção nomeada ".. params[3] .. "! Para ver a lista das enquetes e suas opções disponíveis digite: ".. words .. " list") end POLL.func.addVote(params[2], params[3], cid) doPlayerSendTextMessage(cid, 27, "Obrigado por participar da enqute ".. params[2] .. ".") elseif (param == "result") then local polls = POLL.func.getPolls() local kizizim = 0 mszi = "MaX Poll System:\n\nResultado das enquetes:\n" local function getPollsOptions(poll) local fukZz = "" for _, b in pairs(polls) do if (b[1] == poll:lower()) then for c, d in pairs(b[2]) do fukZz = fukZz .. "\n " .. c .. " - ".. d .. " voto(s)." end return fukZz end end end for a, b in pairs(polls) do kizizim = 1 mszi = mszi .. "\n * ".. b[1] .. getPollsOptions(b[1]) end mszi = mszi .. "\n~-~-~-~-~-~-~-~-~-~-~-~-~" if (kizizim == 0) then return doPlayerSendTextMessage(cid, 27, "Não existe nenhuma enquete no momento!") end doShowTextDialog(cid, 1953, mszi) end return true end Depois instale as seguintes Tags: #Creatureevents.xml <event type="login" name="PollLogin" event="script" value="PollMax.lua"/> <!-- Poll System By MaXwEllDeN --> #Talkactions.xml <talkaction words="!polls" event="script" value="PollMax.lua"/> <!-- Poll System By MaXwEllDeN --> Condiderações Finais Faz tempo que eu fiz esse sistema, por isso pode conter vários bugs, quem encontrar faça o favor de reportar!2 pontos -
Rior RPG by team Riot
Rior RPG by team Riot
demonslay reagiu a Marcio Silva por uma resposta no tópico
1 pontoServidor motim para Tibia 8.60. Editado por uma equipe: Luisfe23, James Hetfield, neon s Skip, Gean Riot, Caboot, Crazyboy. Veja por si mesmo o que tinham feito. Novas Quests: - Annihilator - Inquisition Quest - Pits do Inferno - Ax Solar da Quest - HOTA - MPA-busca - Um conjunto especial - Special-Shield - Soft Botas da Quest - Quest Orshabaal 's - Quest olímpico de Cidades: - Hyboria - Titanic - Desert - Jungle Vile - Loria - Gloria - Vip City - Lava City - Satir - Ice Island Mudanças: - Adicionado sala VIP - Um olhar novo da casa - buff sistema implementado - Boss Quest of Olympus com Zeus - Adicionado uma tarefa NPCs em certas partes do mapa - Pequenos ajustes para bruxaria - Todos os bugs das versões anteriores foram corrigidos account GOD'a :GOD/GOD Ten obraz jest zmniejszony. Kliknij na ten pasek, aby zobaczyć pełny obraz. Oryginał obrazu: 1166x741. Ten obraz jest zmniejszony. Kliknij na ten pasek, aby zobaczyć pełny obraz. Oryginał obrazu: 1102x615. Ten obraz jest zmniejszony. Kliknij na ten pasek, aby zobaczyć pełny obraz. Oryginał obrazu: 1126x576. Ten obraz jest zmniejszony. Kliknij na ten pasek, aby zobaczyć pełny obraz. Oryginał obrazu: 1027x569. Ten obraz jest zmniejszony. Kliknij na ten pasek, aby zobaczyć pełny obraz. Oryginał obrazu: 1029x569. Ten obraz jest zmniejszony. Kliknij na ten pasek, aby zobaczyć pełny obraz. Oryginał obrazu: 1025x566. Ten obraz jest zmniejszony. Kliknij na ten pasek, aby zobaczyć pełny obraz. Oryginał obrazu: 1023x573. *** O motor detecta um vírus, conhecido como o silnikach.Nie quem nao quizer, não faça o download, ele não é mau! Download Skan Agradecia que fizessem novo skan pois aqui deu erro!!1 ponto -
[CTF] Capture The Flag
[CTF] Capture The Flag
Break Dimension reagiu a MaXwEllDeN por uma resposta no tópico
1 ponto#Introdução Este é um sistema de rouba bandeira, no qual tem dois times, que se enfrentam e tentam se infiltrar na fortaleza do inimigo, roubar a bandeira dele e retornar para sua base com ela. #Instalação Faça o download do sistema e cole na pasta do seu servidor. Após ter instalado os arquivos nas suas respectivas pastas abra a pasta do seu servidor, e em seguida abra a pasta spells/scripts/support, e abra o arquivo invisible.lua com algum editor de texto, depois de function onCastSpell(cid, var) cole isso: if (getPlayerStorageValue(cid, _CTF_LIB.teamssto) > 0) then return doPlayerSendCancel(cid, "Você não pode usar invisible durante o CTF!") and doSendMagicEffect(getThingPos(cid), 2) end ficando assim: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_INVISIBLE) setConditionParam(condition, CONDITION_PARAM_TICKS, 200000) setCombatCondition(combat, condition) function onCastSpell(cid, var) if (getPlayerStorageValue(cid, _CTF_LIB.teamssto) > 0) then return doPlayerSendCancel(cid, "Você não pode usar invisible durante o CTF!") and doSendMagicEffect(getThingPos(cid), 2) end return doCombat(cid, combat, var) end #Configuração Como na maioria dos meus códigos: as configurações ficam na lib, então: _CTF_LIB.flags = { [_CTF_LIB.redid] = {pos = {x = 744, y = 638, z = 6}, posEflag = {x = 744, y = 644, z = 6}, id = 1435, color = 180, na = "Vermelho", temple = 3, temple = 3, Esse é o id do templo que os players do time vermelho serão teletransportados. pos = {x = 744, y = 638, z = 6}, Posição de onde a bandeira do time fica posEflag = {x = 744, y = 644, z = 6}, Posição de onde os players do time entregam a bandeira. winp = 2, recompCTF = {{2160, 2}}, nopen = true, -- Precisa usar o comando para abrir? false não true sim TownExit = 1, -- Templo que o player será teletransportado quando acabar o evento ou ele sair dele. price = false, -- Preço para entrar no Evento, caso não precise Digite false. winp = 2, recompCTF = {{2160, 2}}, winp : pontos que um time precisará fazer para ganhar o evento. recompCTF: recompensa que o time ganhará ao vencer o CTF. para adicionar mais só é você fzer assim: recompCTF = {{2160, 2}, {7542, 1}}, 2160 é o id do item que vai adicionar, e 2 é a quantidade. 7542 é o id do item que vai adicionar, e 1, é a quantidade. nopen = true, -- Precisa usar o comando para abrir? false não true sim se precisar usar o comando /ctf open para abrir o evento coloque true, se não precisar coloque false. TownExit = 1, -- Templo que o player será teletransportado quando acabar o evento ou ele sair dele. price = false, -- Preço para entrar no Evento, caso não precise Digite false. TownExit: id do templo que o player será teletransportado quando ele sair do evento ou quando o adm usar /ctf close. price: preço para entrar no evento em gold coins, caso não precise deixe false. Não esqueçam de criar um teleport dentro do evento, com a actionid 47521, caso os players queiram sair do evento E aqui acabamos mais um código.. '-' Flw ae xD . Qualquer bug não se acanhe em falar Abraço.1 ponto -
Private Shop V. 2
Private Shop V. 2
deivaoo reagiu a MaXwEllDeN por uma resposta no tópico
1 pontoNão chei uma área adequada para postar, então vai aqui mesmo....1 ponto -
[Mod] Forever Aol
[Mod] Forever Aol
mixnaruto reagiu a Skydangerous por uma resposta no tópico
1 pontoAté que fim em MOD Funcionalidade: O aol nunca some , ou seja forever AOL , muito bom para items vip. <?xml version="1.0" encoding="utf-8"?> <mod name="Red Skull Amulet" version="1.0" author="--" contact="--" enabled="yes"> <description><![CDATA[ Ele protege voce toda hora que morrer. ]]></description> <item id="10719" article="a" name="Forever Aol" override="yes" /> <event type="login" name="RedSkullAmulet_Login" event="buffer"><![CDATA[ registerCreatureEvent(cid, "RedSkullAmulet_Login") ]]></event> <event type="death" name="RedSkullAmulet_Login" event="script"><![CDATA[ function onDeath(cid, corpse, deathList) if (getPlayerSlotItem(cid, CONST_SLOT_NECKLACE).itemid == 10719) then if (getCreatureSkullType(cid) == SKULL_RED) then doCreatureSetDropLoot(cid, false) end end return true end ]]></event> </mod> Legenda: <item id="XXXX" article="a" name="XXX" override="yes" /> XXXX = O ID DO AMULETO OU O ITEM XXX = O NOME QUE VAI SER O ITEM (Pode Colocar Qualquer Coisa)1 ponto -
Elysium - Apresentação Geral
1 pontoWhen the whole world is about to fall, a hero must rise... Elysium Online - Alternative Tibia Server Objetivo O projeto Elysium Online tem o objetivo simples de criar um novo servidor com RPG, diversão e novidades. O servidor trará muita inovação em todos os setores que compõe um OTServer, tentando melhorar ao máximo a experiência de se jogar em um servidor alternativo de Tibia. Com o passar do tempo, os servidores de Tibia foram perdendo sua antiga criatividade, originalidade e assim foram se estabelecendo servidores iguais, chatos e sem nada de novo. A monotonia é algo que o nosso projeto quer quebrar, trazendo novos conceitos aos servidores. Neste tópico apresentaremos tudo isto que queremos fazer ao criarmos o Elysium Online. __________________________________________________________________________________________________ Roleplay Elysium é um mundo enorme e medieval, onde existem vários contos, lendas, criaturas e monstros. No que se conhece atualmente, existem três massas de terra consideradas continentes — Lortherun, Gelida e Nalbina — e algumas ilhas, as quais podem ser paradisíacas e mortalmente perigosas ao mesmo tempo. Os humanos, raça jovem, porém dominante em Elysium, firmaram três reinos que atualmente habitam os vastos continentes do mundo. Estes reinos são Beltheron, de Lortherun, Deltera, de Nalbina e Falkstold, de Gelida. Cada reino é governado por um ambicioso monarca, que está sempre procurando por novos vassalos para servi-lo em suas guerras. Mas Elysium também é habitada por outros povos, estes mais antigos do que os humanos. Os Elfos são um dos povos mais antigos e sábios, residem afastados dos outros povos, pois são muito arrogantes e não costumam compartilhar seus conhecimentos com outras raças. Quem deseja aprender as habilidades arcanas dos elfos, deve primeiro provar sua lealdade a eles. Os Anões, povo minerador que reside nas montanhas de Turin, focam suas longas vidas na busca por minérios raros. possuem uma estatura que faz jus ao seu nome, mas podem ser muito perigosos quando equipados com suas pesadas armaduras e suas esplendorosas maças e martelos de guerra. Os Dragões são criaturas arcanas extremamente poderosas e sua raça é muito complexa. Assim como os elfos, são imortais, apenas podem ser mortos em batalha. A eles foi confiado o controle sobre os cinco elementos, e, embora todos possuíssem poder sobre os cinco, eles frequentemente se especializam em apenas um. Outras raças também existentes em Elysium são os Orcs, os Minotauros, os Goblins, os Trolls, os Lagartos, os Ciclopes, e outras menores. As bibliotecas das cidades possuem mais informações sobre todas elas. Elysium dispõe de uma grande ilha chamada Ghondum. Esta ilha é considerada muito importante para todas as monarquias pela academia que lá existe. Esta é chamada de Valéndil, e treina jovens guerreiros que desejam seguir uma vida de perigo e aventuras. Esta ilha foi disputada por muito tempo pelas três monarquias que lutavam para possuir todos os novos recrutas que saíam de Ghondum. Várias batalhas foram acarretadas por isto, mas por fim foi resolvido que ela seria compartilhada. Quando um recruta chega a Valéndil, ele é submetido a Tevarin, responsável pela grande academia, com ele, os aventureiros devem escolher a sua vocação: Os Cavaleiros são uma vocação com grande poder físico e uma incomparável defesa, a qual é resultado da sua grande quantidade de vida e o uso de suas pesadas e fortes armaduras e escudos. São capazes de usar a maioria das armas de corpo-a-corpo, como a espada e o machado. Também são capazes de usar maças e martelos, mas de um modo bastante restringido, visto que esta é a especiaria dos paladinos. Seu poder mágico é focado no ataque de curta distância, podendo apenas usar uma magia que arremessa sua arma em um oponente. Sua habilidade de cura é pequena, possuindo poucas habilidades relacionadas a este tipo de magia. Os Arqueiros, como seu nome já diz, baseiam seu ataque na longa distância. Por dependerem de agilidade e velocidade, usam armaduras leves e mais fracas, no entanto, compensam sua fraqueza com seu poderoso ataque. Na academia, eles apenas usam estilingues. Ao irem para os continentes, possuirão a habilidade de empunhar lanças, Apenas mais tarde poderão usar arcos. As armas mais avançadas dos arqueiros são as shurikens e as facas. Possuem magias de ataque e boa habilidade de cura. Os Paladinos são guerreiros de extrema força corporal, que além de terem um excelente ataque e defesa, possuem uma impressionante habilidade de cura. Porém, devido a imensidade do peso e tamanho de suas armas, eles se tornam lentos, e não possuem magias de ataque. Empunham maças, clavas e marretas. Os Magos possui um grande domínio e afeição pela magia. Eles aprendem a controlar os elementos basicamente em Ghondum. No entanto, para se especializarem em algo, deverão prestar missões para os elfos (divino ou mortífero) ou então aos dragões (terra, fogo, água, ar). Empunham as famosas varinhas, evoluindo-as de acordo com o nível do jogador. Para se defender, empunham livros que podem ajudar no aumento do nível mágico. Possuem as mais fracas armaduras, valorizando a leveza e a defesa elemental. Nômades, os Bárbaros não se afiliam a reinos, mas podem trabalhar para eles como mercenários. Os bárbaros podem também trabalhar como caçadores de recompensas, exterminando alvos por uma quantidade em dinheiro (estipulada pelo cliente pagante no site). Os bárbaros podem usar armas tanto de longa distância (bestas) quanto de curta (Machados). Possuem uma montaria própria, um lobo, o qual é ganho ao entrar na academia e com o passar do tempo vai crescendo e evoluindo. Os Alquimistas são feiticeiros que criam, usam e batalham com poções. Como os magos, possuem armaduras leves e fracas. Usam de líquidos mágicos para aumentar sua força defensiva, mas também usam escudos leves para se reforçar. Atacam usando seus frascos explosivos, venenosos ou de outras forças perigosas. ás vezes podem usar algumas varinhas, não se especializando nelas. Possuem alguns poucos feitiços de ataque e cura. Mas a maioria utiliza poções. _________________________________________________________________________________________________________________ Mapa Dispondo das mais diversas paisagens, o mundo de Elysium esconde muitas surpresas desde o Norte Sombrio de Lortherun até o ponto mais congelante ao sul de Gelida. A equipe experiente de mappers do projeto procura sempre levar em consideração os fatores coerência, jogabilidade, roleplay e detalhamento, avaliando cada pedra posicionada no mapa. Um pouco desta experiência pode ser vista na página Show-off, mas você pode saber um pouco do nosso trabalho nas imagens abaixo: __________________________________________________________________________________________________ Características Como já dito, o projeto Elysium Online pretende trazer inovação em todos os setores do otserver, aqui mostraremos algumas das muitas novidades em nosso server. Tanto sistemas em lua, como distro e cliente serão modificados. Abaixo listamos algumas modificações que estarão disponíveis no lançamento do servidor. Em Caracteristicas do Servidor existe a lista completa dos mesmos. Vale observar que existem ideias que serão apenas implementadas de acordo com a evolução do servidor! Forja/Aprimorar Na criação/upgrade de um item, vários fatores influenciam: A fornalha usada poderá variar de qualidade, como se dependesse do ferreiro, a qualidade do item produzido. Por exemplo, uma fornalha situada em cidades de anões seriam as melhores forjas do game, pois os anões são os mais habilidosos ferreiros de todos. Algumas fornalhas, em geral as mais simples são livres, já outras serão apenas liberadas por missões, como matar uma certa quantia de monstros para o dono da forja, ou levar uma determinada quantia de um mineral para que ele possa repor seu estoque, entre outros! Além disso, se você se descuidar, poderá ser queimado e perder vida. Mineração Um sistema até comum, mas com algumas modificações. Se você manusear sua picareta mal, poderá perder HP por ser acertado por estilhaços e/ou quebrar sua ferramenta. Haverão novas pedras especiais para serem mineradas, e cada uma dará minerais diferentes, que podem ser usados para vários fins, entre elas aumentar as propriedades de um item ou forjar. Tradução Nossos servidores possuirão completa tradução para o português, desde itens, monstros e cliente, ajudando novos jogadores a se integrar no mundo de Elysium. Plantação Nas cidades você pode comprar casas comuns, ou então fazendas. Como assim? Uma fazenda é um terreno com um armazém e uma área destinada ao plantio de ervas, frutas, legumes, etc. Em alguns poucos casos haverão estábulos e outras regalias que farão da fazenda um bem muito caro. A plantação será muito útil para cultivar itens que poderão ser usados para fazer poções com o sistema de alquimia. Um detalhe, os mais raros ingredientes apenas podem ser encontrados em áreas escondidas e perigosas, sem a possibilidade de cultivo. Roubo Quando um reino perde de outro em uma batalha, a cidade sofrerá constantes ataques de ladrões, pois suas defesas estarão precárias devido a guerra. Estes, ao atacarem o jogador, poderão além de te tirar vida, lhe roubar algumas moedas! (Quando você atacar um acampamento ou um forte de bandidos, eles não lhe roubarão dinheiro, apenas tentarão matar o invasor). Transportes Neste sistema estão incluídos três novos meios de transporte: canoas, carrinhos de mina e tapetes voadores. Nestes três modos, você é transportado de sqm em sqm até o seu destino, podendo atravessar regiões inéditas e inexploráveis sem eles, como se transportar manualmente de um continente a outro. Som O servidor possuirá um sistema facultativo de som que criará efeitos sonoros e músicas temas nas cidades/áreas de caças. Ao baixar o cliente do jogo no site, o jogador tem a opção de fazer o download do Cliente com ou sem a opção de som. Se baixado, o jogador, ao executar o Launcher (Executável que liga antes do cliente, para checar atualizações e mostrar notícias), o som será ligado e logo executado. Videos: __________________________________________________________________________________________________ Novas Sprites É claro que não deixariamos de trazer inovação nas sprites! Possuímos um vasto arsenal de novas imagens para turbinar o servidor, desde itens até outfits. Algumas demonstrações para estimular a vossa imaginação: ___________________________________________________________________________________________________ Staff Interessado em conhecer nossa equipe? Eis aqui os bravos heróis que fazem deste servidor realidade: Administração Geral: LordZezim / Liebl Coordenação: LordZezim (Mapping) / Liebl (Scripting) / Wodkko (Spriting) / vital900 (Roleplaying) Mapping: vital900 / Vaga / Laug / LordZezim / Nyco Scripting: Liebl / Vaga / jhon992 / Vaga Spriting: Wodkko / Vaga / ZoDiaK / Laug Design: ZoDiaK / Liebl Programação: LordZezim / Liebl / Vaga Roleplaying: vital900 / LordZezim Colaboração: MatheusEnjoy (Websites e Programação) Interessado em participar? Clique aqui e se inscreva! Perguntas? Deixe nos comentários! Sugestões, criticas, congratulações? Não deixe de comentar! Pedimos sinceramente a sua opinião. Gostou? Ajude-nos a divulgar, mostre o tópico para seus amigos, participe de nossas redes sociais! (Encontre-as em www.elysiumonline.info) O tópico está sujeito a mudanças constantes, então fique alerta e saiba de tudo sobre o projeto! Até mais!1 ponto
-
Boas práticas para Programar
Boas práticas para Programar
amora murder reagiu a MaXwEllDeN por uma resposta no tópico
1 pontoOlá Galera, hoje vou postar um tutorial que ensina você a deixar seu código mais bonito, legível e organizado. Vamos lá. Em primeiro lugar vamos aprender oque é indentação ou identação. Exemplo de um código com indentação: function doPlayerCompleteQuest(uid, quest) doPlayerAddItem(uid, quest[1], quest[2]) setPlayerStorageValue(uid, quest[3], 1) doTeleportThing(uid, getTownPosition(getPlayerTown(uid))) doPlayerSendTextMessage(uid, 27, "Você completou a quest ".. quest[4] ..".") if (getPlayerStorageValue(uid, quest[5]) > 0) then doPlayerSendTextMessage(uid, 27, "E recebeu um bônus por ter completado outra quest.") end return true end Este mesmo código, mas agora sem indentação: function doPlayerCompleteQuest(uid,quest) doPlayerAddItem(uid,quest[1],quest[2]) setPlayerStorageValue(uid,quest[3],1) doTeleportThing(uid,getTownPosition(getPlayerTown(uid))) doPlayerSendTextMessage(uid,27,"Você completou a quest "..quest[4]..".") if (getPlayerStorageValue(uid,quest[5])>0) then doPlayerSendTextMessage(uid,27,"E recebeu um bônus por ter completado outra quest.") end return true end Um código com indentação, a primeira vista pode não ser nada de mais. Porém se você fizer um código grande, com muitas funções, condições e declarações, uma boa indentação deixa seu código muito mais fácil de ser lido por outros programadores e até por você mesmo e ser modificado também. Enquanto eu lia um livro sobre C++, encontrei uma lista de algumas boas práticas para programar que eu já conhecia e outras que aprendí. Listarei algumas delas aqui. Bem, com essas dicas ai eu acho que muitas pessoas podem melhorar o estilo de programar , Falous galera. Abraço. OBS: A maioria das dicas listadas aqui foram tiradas do Livro: Deitel - Como Programar C++ 5ª Edição1 ponto -
[Talkaction] Salvar Posição No Mapa E Voltando
[Talkaction] Salvar Posição No Mapa E Voltando
Coyoty reagiu a Skydangerous por uma resposta no tópico
1 pontoO script é bem simples, ele salva a sua posição no mapa para que você possa retornar no lugar quando quiser. Salvando a posição(waypoint) no mapa Voltando novamente na posição Se tentar novamente não irá conseguir Crie um arquivo chamado funtele.lua na pasta talkaction/scripts function doMarkPos(cid, posx, posy, posz) setPlayerStorageValue(cid, 19000, posx) setPlayerStorageValue(cid, 19001, posy) setPlayerStorageValue(cid, 19002, posz) end function getMarkPos(cid) return {x=getPlayerStorageValue(cid, 19000), y=getPlayerStorageValue(cid, 19001), z=getPlayerStorageValue(cid, 19002)} end function onSay(cid, words, param) local pos = getCreaturePosition(cid) if words == "!salvar" then if getMarkPos(cid).x < 1 then doSendMagicEffect(pos,15) doMarkPos(cid, pos.x, pos.y, pos.z) doPlayerSendTextMessage(cid, 4, "Você salvou posicao no mapa.") else doPlayerSendCancel(cid, "Você já gravou posição.") end elseif words == "!voltar" then if getMarkPos(cid).x > 0 then doTeleportThing(cid, getMarkPos(cid)) doMarkPos(cid, 0, 0, 0) doPlayerSendTextMessage(cid, 21,"Você foi teleportado para o waypoint") doSendMagicEffect(pos,11) else doPlayerSendCancel(cid, "Você não gravou uma posição.") end end return TRUE end agora em talkaction.xml cole essa tag <talkaction words="!salvar;!voltar" event="script" value="funtele.lua"> Agradecimentos: DemonBholder & Apocarai(jaohd) </talkaction>1 ponto -
[Pedido]Battle list
[Pedido]Battle list
Gusttavomarinho reagiu a Giovani por uma resposta no tópico
1 pontotipo Player_id = &H12345 Batlelist_begin =&H54321 << começo da Batle list For i=0 to 250 listbox.items.add (read_String(Batlelist_begin + 4) <<<--- quatro e o local onde esta o nome do char intao Batlelist_begin =Batlelist_begin + 60 <----- exemplo 60 e onde vai estar o proximo nome next TE ajudei ????1 ponto -
Npc que da Addon e SetVocation
Npc que da Addon e SetVocation
MarcosFraga reagiu a MaXwEllDeN por uma resposta no tópico
1 ponto<?xml version="1.0" encoding="UTF-8"?> <npc name="Bobby" script="VocationAddon.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="131" head="79" body="76" legs="49" feet="94" addons="1"/> <parameters> <parameter key="message_greet" value="Olá, você tem os items necessários para adquirir a vocation?."/> </parameters> </npc> VocationAddon.lua local ConfiG = { item = { {2160, 100}, -- Itemid, count {2110, 30}, -- Itemid, count }, outfit = 173, -- Outfit LookType addons = 3, -- 3 = FUll, 2 = Somente a segunda Addon, 1 = Primeira Addon, 0 = Sem Addons vocation = 5, } local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, typea, msg) if(not npcHandler:isFocused(cid)) then return false end local msg = msg:lower() local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'vocation') and (getPlayerStorageValue(cid, 72371) < 1) then for _, v in pairs(ConfiG.item) do if (getPlayerItemCount(cid, v[1]) < v[2]) then local msg = "" for _, v in pairs(ConfiG.item) do msg = msg .. ", " .. v[2] .. " ".. getItemNameById(v[1]) .. (v[2] > 1 and "s" or "") end return selfSay("Você não tem ".. msg:sub(3, #msg) .. ".", cid) end end selfSay("Aí está!", cid) setPlayerStorageValue(cid, 72371, 1) doPlayerAddOutfit(cid, ConfiG.outfit, ConfiG.addons) doPlayerSetVocation(cid, ConfiG.vocation) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())1 ponto -
Locker Protection
Locker Protection
Skydangerous reagiu a MaXwEllDeN por uma resposta no tópico
1 pontoStorages são gravadas no banco de dados, a única vantagem que eu penso sobre isso, é que poderia ser feito outro sistema para integrar com o site..1 ponto -
(Resolvido) [Pedido] Lua - Aprender ! Scripters ajudem !
tenta isso aqui, rs function onThink(cid, interval) local mpdown = (getCreatureMaxMana(cid) / 100) * 70 if getCreatureTarget(cid) then if (getCreatureName(getCreatureTarget(cid)) == "Hitdoll" or getCreatureName(getCreatureTarget(cid)) == "Marksman Target") and ((getPlayerMana(cid)) == (getCreatureMaxMana(cid))) then doPlayerAddMana(cid, -mpdown) doPlayerAddSpentMana(cid, mpdown) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_BLUE) doCreatureSay(cid, "Automana...", TALKTYPE_ORANGE_1) end end return true end [/code] onThink não tem parametro Target né Renato, burrinho, rs1 ponto
-
(Resolvido) [Pedido] Lua - Aprender ! Scripters ajudem !
Estou sem OTserver, apenas fazendo de cabeça. function onThink(cid, interval) local mpdown = (getCreatureMaxMana(cid) / 100) * 70 if (string.lower(getCreatureName(target) == "Hitdoll") or string.lower(getCreatureName(target) == "Marksman Target")) and ((getPlayerMana(cid)) == (getCreatureMaxMana(cid))) then doPlayerAddMana(cid, -mpdown) doPlayerAddSpentMana(cid, mpdown) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_BLUE) doCreatureSay(cid, "Automana...", TALKTYPE_ORANGE_1) end return true end1 ponto
-
[duvida] paladin
1 pontoMacro para abrir a bag. Adicione no Walker, perto da Bag 1000 {Open Back} Map.Use(235, 32683, 31683, 7, 3) Macro para equipar as Royal Spear, adicione nos macros. 200 {Equipe Royal Spear} Self.Inventory.LeftHand<=10 Self.Equip.LeftHand(7378)1 ponto
-
[Projeto]GMBOT
[Projeto]GMBOT
Gusttavomarinho reagiu a Giovani por uma resposta no tópico
1 pontobora intao fazer esse bot me manda seu mail :] pra tu ve minha cave bot :}1 ponto -
[Projeto]GMBOT
[Projeto]GMBOT
Gusttavomarinho reagiu a Giovani por uma resposta no tópico
1 pontoBoa Sorte ai eu tbn to em um projeto so que no meu ja tem Cave bot e tal so falta a maldita da packet que nao sei mexe --' o seu bot ja tem alguma funçao ?1 ponto -
Meu fã
Meu fã
ferlations reagiu a Private Sub Teste por uma resposta no tópico
1 pontoOs Rotworms também, coitado deles, que preconceito!!!1 ponto -
[DUVIDA] Como faço pro corpo do jogador sair rapido?
[DUVIDA] Como faço pro corpo do jogador sair rapido?
Alberess reagiu a Adriano SwaTT por uma resposta no tópico
1 pontoÉ só você pegar a ID do Corpse de um Player, abrir o arquivo "items.xml" (localizado em "Data / Items / Items.xml")... Procure pela ID do corpse e edite seu tempo como está sendo explicado abaixo... O que está em vermelho é o tempo que leva para o corpse transformar no item ID que está em azul (no caso, para dar o efeito de apodrescendo)' <item id="2940" article="a" name="dead human"> <attribute key="weight" value="4000" /> <attribute key="containerSize" value="10" /> <attribute key="decayTo" value="2941" /> <attribute key="duration" value="400" /> <attribute key="corpseType" value="blood" /> <attribute key="fluidSource" value="blood" /> </item> Dependendo do que pretende fazer... pode por o "value" de "decayTo" que está "2941", você pode por o valor numérico "0" (zero)... Ou seja, o corpse sumirá depois do tempo programado' Obs: Vale lembrar que a ID dos items de seu OTServ pode variar, aqui foi usado apenas um exemplo' Obs²: Mals não conseguir organizar melhor a resposta, mas é que o sistema de "QUOTE" está bugado' Abraços, espero que funcione. Poste o resultado'1 ponto -
[duvida] Target
1 pontoBote para usar Exori Frigo no Target. E bote um macro On Attack 1000 {} Self.Say(exori gran frigo) Troque o 1000 pelo o tempo do exori gran frigo, eu nao sei quanto tempo é.1 ponto
-
Depositer [Bug]
Depositer [Bug]
Fernando Fonseca reagiu a Naichi por uma resposta no tópico
1 pontoEu tive esse problema, pelo que percebi ocorreu porque o BBot procura o waypoint mais próximo para ir, e o mais próximo, era o antes do depositer na hora dele sair e assim ele ficava indo depositar, procurava um waypoint pra sair e o mais próximo é o próprio depositer ou waypoint antes dele, dai ele voltava e ficava nesse ciclo. Tenta ver se é isso1 ponto -
Dark Magician - Yalahar
Dark Magician - Yalahar
vinialves reagiu a EdsonJunior por uma resposta no tópico
1 pontoDark Magician Yalahar Exp: 20-30k/h Gp: 4k + Items/h Monstros: Dark Magician Mad Scientist Loots: Gold Health Potion Life Crystal Small Enchanted Amethyst Mastermind Potion Minotaur Horn Requerimento: Level: 40+ Vocação: Knight; Premium Time: Sim; Equipamento: Knight-Set, se possivel soft boots pra evitar waste O que levar: Cerca de 50 HP pra sua segurança Por: Monek666 Soft boot switcher from boh to softs at x mana.ng Tower Dark Magician Yalahar.wpt Alerts you when X of capacity.ng screenshot when level up.ng1 ponto -
[BUG] Pq quando usa o portao de yalahar o BBOT n desce as escadas?
Coloca isso ai no seu waypoint Obvio que nao são essas as coordenadas, edite-as Faz o fixed ao lado da alavanca. Fixed (33106 32145 7) Macro (33106 32145 7:500 {Usa} Map.Use(ID, X, Y, Z, 1)=1) RESOLVIDO! edit: Desculpas pelo post duplo, não percebi que eu fui o ultimo a postar, fiquei muito empolgado com a resolução :S! Créditos: Hunger1 ponto