Bruno 536 Postado Abril 14, 2015 Share Postado Abril 14, 2015 Introdução Ele simplesmente manda um efeito para o Top Level caso ele estiver online, além disso, ele checa quando o top é ultrapassado e o efeito passa automaticamente ao novo top. Instalação: Em data/creaturescripts/creaturescripts.xml adicione: <event type="login" name="TopEffect" event="script" value="topeffect.lua"/> <event type="advance" name="CheckTop" event="script" value="topeffect.lua"/>Agora crie um arquivo em data/creaturescripts/scripts com o nome topeffect.lua e adicione: --[[ Script by Bruno Minervino para o Tibia King Caso for postar, colocar os créditos ]] local config = { tempo = 10, --tempo em segundos mensagem = { texto = "[TOP]", --não use mais de 9 caracteres efeito = TEXTCOLOR_LIGHTBLUE --efeito para a função doSendAnimatedText }, efeito = 30, --efeito da função doSendMagicEffect globalstr = 5687 -- uma global storage qualquer q esteje vazia } --[[ Não mexa em nada abaixo ]] local topPlayer = getGlobalStorageValue(config.globalstr) > 0 and getGlobalStorageValue(config.globalstr) or 0 function onLogin(cid) local query = db.getResult("SELECT `id`, `name`, `level` FROM `players` WHERE `group_id` < 2 ORDER BY `level` DESC LIMIT 1") if (query:getID() ~= -1) then local pid = query:getDataString("id") local name = query:getDataString("name") if getPlayerName(cid) == name then if topPlayer ~= getPlayerID(cid) then topPlayer = getPlayerID(cid) end setGlobalStorageValue(config.globalstr, pid) TopEffect(cid) end end registerCreatureEvent(cid, "CheckTop") return true end function onAdvance(cid, skill, oldlevel, newlevel) if skill == 8 then local query = db.getResult("SELECT `id`, `name`, `level` FROM `players` WHERE `group_id` < 2 ORDER BY `level` DESC LIMIT 1") if (query:getID() ~= -1) then local level = tonumber(query:getDataString("level")) if level < newlevel and topPlayer ~= getPlayerID(cid) then doBroadcastMessage("O jogador " .. getPlayerName(cid) .. " tornou-se o novo Top Level. Parabens!", 22) topPlayer = getPlayerID(cid) doSaveServer() setGlobalStorageValue(config.globalstr, getPlayerID(cid)) TopEffect(cid) end end end return true end function TopEffect(cid) if not isPlayer(cid) then return true end if topPlayer == getPlayerID(cid) then doSendAnimatedText(getCreaturePosition(cid), config.mensagem.texto, config.mensagem.efeito) doSendMagicEffect(getCreaturePosition(cid), config.efeito) addEvent(TopEffect, config.tempo * 1000, cid) end end function getPlayerNameById(id) local query = db.getResult("SELECT `name` FROM `players` WHERE `id` = " .. db.escapeString(id)) if query:getID() ~= -1 then return query:getDataString("name") end return 0 end function getPlayerIdByName(name) local query = db.getResult("SELECT `id` FROM `players` WHERE `name` = " .. db.escapeString(name)) if query:getID() ~= -1 then return tonumber(query:getDataString("id")) end return 0 end function getPlayerID(cid) return getPlayerIdByName(getPlayerName(cid)) end Espero que gostem Link para o comentário https://xtibia.com/forum/topic/233144-toplevel-effect/ Compartilhar em outros sites More sharing options...
LeoTK 173 Postado Abril 14, 2015 Share Postado Abril 14, 2015 Teria alguma print de como fica in-game? Link para o comentário https://xtibia.com/forum/topic/233144-toplevel-effect/#findComment-1646174 Compartilhar em outros sites More sharing options...
Bruno 536 Postado Maio 23, 2015 Autor Share Postado Maio 23, 2015 Teria alguma print de como fica in-game? Ele fica subindo um efeito de texto, de x em x tempos, com a mensagem: [TOP] É algo um tanto quanto simples... Link para o comentário https://xtibia.com/forum/topic/233144-toplevel-effect/#findComment-1652458 Compartilhar em outros sites More sharing options...
Xtudomuito 2 Postado Junho 4, 2015 Share Postado Junho 4, 2015 Poderia dizer como coloco uma storage com valor tipo (5212,4), pq no msm Server tem graduação: (5212,1) genin (5212,2) chunin (5212,3) jounin (5212,4) hokage aí quem fosse o top vira a graduação hokage. Link para o comentário https://xtibia.com/forum/topic/233144-toplevel-effect/#findComment-1654397 Compartilhar em outros sites More sharing options...
Bruno 536 Postado Junho 5, 2015 Autor Share Postado Junho 5, 2015 Poderia dizer como coloco uma storage com valor tipo (5212,4), pq no msm Server tem graduação: (5212,1) genin (5212,2) chunin (5212,3) jounin (5212,4) hokage aí quem fosse o top vira a graduação hokage. setPlayerStorageValue(cid, 5212, 1) -- genin setPlayerStorageValue(cid, 5212, 2) -- chunin setPlayerStorageValue(cid, 5212, 3) -- jounin setPlayerStorageValue(cid, 5212, 4) -- hokage Link para o comentário https://xtibia.com/forum/topic/233144-toplevel-effect/#findComment-1654413 Compartilhar em outros sites More sharing options...
Xtudomuito 2 Postado Junho 5, 2015 Share Postado Junho 5, 2015 (editado) Eu n entendo muito de script, poderia dizer onde eu coloco no seu script. Editado Junho 5, 2015 por Xtudomuito Link para o comentário https://xtibia.com/forum/topic/233144-toplevel-effect/#findComment-1654422 Compartilhar em outros sites More sharing options...
Josegvb 87 Postado Junho 9, 2015 Share Postado Junho 9, 2015 hola, fiz o test com o script e fica lindao demais porem nao e ativado so com o top, o script e ativado qndo qualquer um upa 1 lvl ele "vira o top" msm sendo lvl 3 e tendo lvls 500 no server Link para o comentário https://xtibia.com/forum/topic/233144-toplevel-effect/#findComment-1655128 Compartilhar em outros sites More sharing options...
Bruno 536 Postado Junho 9, 2015 Autor Share Postado Junho 9, 2015 hola, fiz o test com o script e fica lindao demais porem nao e ativado so com o top, o script e ativado qndo qualquer um upa 1 lvl ele "vira o top" msm sendo lvl 3 e tendo lvls 500 no server Vou verificar e para encontrar o bug e arrumar. Link para o comentário https://xtibia.com/forum/topic/233144-toplevel-effect/#findComment-1655138 Compartilhar em outros sites More sharing options...
Vodkart 1515 Postado Junho 24, 2015 Share Postado Junho 24, 2015 (editado) Refiz o código de outro jeito, as TAGS são as MESMAS. Créditos ao Bruno: http://pastebin.com/raw.php?i=pr8G8DQH Editado Junho 24, 2015 por Vodkart djteteh reagiu a isso 1 Link para o comentário https://xtibia.com/forum/topic/233144-toplevel-effect/#findComment-1657628 Compartilhar em outros sites More sharing options...
Bruno 536 Postado Junho 24, 2015 Autor Share Postado Junho 24, 2015 Refiz o código de outro jeito, as TAGS são as MESMAS. Créditos ao Bruno: http://pastebin.com/raw.php?i=pr8G8DQH HAahhaa, depois vou testar e atualizo no principal. Esse foi um dos meus primeiros scripts quando comecei mexer com lua, nunca mais alterei ele. Vlw vod. Link para o comentário https://xtibia.com/forum/topic/233144-toplevel-effect/#findComment-1657638 Compartilhar em outros sites More sharing options...
Laionel 0 Postado Julho 19, 2015 Share Postado Julho 19, 2015 Ficaria melhor se tivesse alguma Print .-. Link para o comentário https://xtibia.com/forum/topic/233144-toplevel-effect/#findComment-1661503 Compartilhar em outros sites More sharing options...
adoration 0 Postado Julho 21, 2015 Share Postado Julho 21, 2015 Como pongo el storage al top lvl? Link para o comentário https://xtibia.com/forum/topic/233144-toplevel-effect/#findComment-1661747 Compartilhar em outros sites More sharing options...
Bruno 536 Postado Julho 21, 2015 Autor Share Postado Julho 21, 2015 Como pongo el storage al top lvl? Pode colocar nas funções onLogin e onAdvance. Link para o comentário https://xtibia.com/forum/topic/233144-toplevel-effect/#findComment-1661748 Compartilhar em outros sites More sharing options...
adoration 0 Postado Julho 21, 2015 Share Postado Julho 21, 2015 (editado) ñao entendi XD function onLogin(player) player:loadVipData() player:updateVipTime() local loginStr = "Welcome to " .. configManager.getString(configKeys.SERVER_NAME) .. "!" if player:getLastLoginSaved() <= 0 then loginStr = loginStr .. " Please choose your outfit." player:sendOutfitWindow() else if loginStr ~= "" then player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr) end loginStr = string.format("Your last visit was on %s.", os.date("%a %b %d %X %Y", player:getLastLoginSaved())) end player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr) ?? Editado Julho 21, 2015 por adoration Link para o comentário https://xtibia.com/forum/topic/233144-toplevel-effect/#findComment-1661753 Compartilhar em outros sites More sharing options...
Bruno 536 Postado Julho 21, 2015 Autor Share Postado Julho 21, 2015 Cara, me refiro à função do script que eu postei aqui... Se você prestar atenção ele trata essas duas funções... Então nelas você poderia usar para atribuir uma storage ao top level. Link para o comentário https://xtibia.com/forum/topic/233144-toplevel-effect/#findComment-1661761 Compartilhar em outros sites More sharing options...
Posts Recomendados