Teria alguma print de como fica in-game?
- Fórum
- OTServ
- Recursos
- Scripting
- Globalevents e Spells
- TopLevel Effect
TopLevel Effect
Por Bruno, 14 de abr. de 2015 em Globalevents e Spells
info
Grupo: Herói
Registrado: 01/05/08
Posts: 2.6k
Reputação: +536
Gênero: Masculino

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...
info
Grupo: Cavaleiro
Registrado: 14/04/15
Posts: 191
Reputação: +2

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.
info
Grupo: Herói
Registrado: 01/05/08
Posts: 2.6k
Reputação: +536
Gênero: Masculino

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
info
Grupo: Cavaleiro
Registrado: 14/04/15
Posts: 191
Reputação: +2

Eu n entendo muito de script, poderia dizer onde eu coloco no seu script.
Editado Junho 5 por Xtudomuito
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
info
Grupo: Herói
Registrado: 01/05/08
Posts: 2.6k
Reputação: +536
Gênero: Masculino

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.
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

Editado Junho 23 por Vodkart
info
Grupo: Herói
Registrado: 01/05/08
Posts: 2.6k
Reputação: +536
Gênero: Masculino

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.
Ficaria melhor se tivesse alguma Print .-.
Como pongo el storage al top lvl?
info
Grupo: Herói
Registrado: 01/05/08
Posts: 2.6k
Reputação: +536
Gênero: Masculino

Como pongo el storage al top lvl?
Pode colocar nas funções onLogin e onAdvance.
ñao entendi XD
Editado Julho 21 por adoration
info
Grupo: Herói
Registrado: 01/05/08
Posts: 2.6k
Reputação: +536
Gênero: Masculino

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.







info
Grupo: Herói
Registrado: 01/05/08
Posts: 2.6k
Reputação: +536
Gênero: Masculino
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:
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)) endEspero que gostem