Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Obrigado Luan; jaé Bruno, testa mesmo rs, é bem dahora para a arena ficar mais movimentada.

Link para o post
Compartilhar em outros sites

Você poderia me enviar o que tá escrito na distro como mensagem por aqui? Eu não consigo ver imagens pelo celular.

Se for algo sobre 'doPlayerOpenChannel', você vai ter que trocar de distro porque a que está usando não possui essa função.

Link para o post
Compartilhar em outros sites

qual é o seu servidor? aqui funcionou perfeito nos dois servidores citados no início do tópico :/

Link para o post
Compartilhar em outros sites

Acho que ficaria legal se fosse feito tipo um contator de frag dentro da arena, ai ter tipo um memorial dos jogadores que mais mataram. Tipo

 

Info arena:

Nome            Pontos

 

1- Fulano          25 

2-ciclano           20

3-beltrano        17

Link para o post
Compartilhar em outros sites

Verdade Strolker, eu até cheguei a colocar pra informar e premiar com gold coins quando um player conquistar 10 vitórias seguidas, 15, 20 e etc.. Só que eu tirei e deixei básico mesmo ahsuahsua. Também cheguei a fazer um rank das vitórias e derrotas dos players, mas retirei tmb. Mas se pá eu tiver tempo, eu atualizo uma nova versão com essas ideias ai incluindo a sua :)

Link para o post
Compartilhar em outros sites

Ei aqui eu não consegui adicionar o npc poderia ao inves de npc colocar para parecer um portal?

ta dando isso ai http://imgur.com/jq66n5B

Editado por Koruita (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Ei aqui eu não consegui adicionar o npc poderia ao inves de npc colocar para parecer um portal?

ta dando isso ai http://imgur.com/jq66n5B

 

mods - battle-mod.lua :

<?xml version="1.0" encoding="UTF-8"?>
<mod name="Battle Arena System" version="1.0" author="Ladyazaleia" contact="https://www.facebook.com/wustehs" enabled="yes">

<config name="battle-config"><![CDATA[
function msgForOthers(mensagem, classe)
if (not classe) then
    classe = MSG_WHITE
end
    
for _, pid in ipairs(getPlayersOnline()) do
if (getPlayerStorageValue(pid, 5602) == 1) then
    doPlayerSendChannelMessage(pid, "", mensagem, classe, FPS_CHANNEL)
end
end
return true
end

function doPlayerRemoveLethalConditions(cid) -- function by Rush Event.
local tmp = {1, 2, 4, 16, 32, 65, 128, 256, 512, 1024, 2048, 4096, 8192, 32768, 65536}
for i = 1, #tmp do

if (hasCondition(cid, tmp[i])) then
    doRemoveCondition(cid, tmp[i])
end
end
return true
end

function closeEvent(cid)
    doRemoveItem(6886, 1)
    doSendMagicEffect(FPS_PORTALPOS, CONST_ME_POFF)
    setGlobalStorageValue(5600, -1)
    setGlobalStorageValue(5601, -1)
        
for _, pid in ipairs(getPlayersOnline()) do
    doPlayerSendChannelMessage(pid, "", ""..FPS_EVENTNAME.." foi fechado.", MSG_WHITE, FPS_CHANNEL)

if (getPlayerStorageValue(pid, 5602) == 1) then
    doSendMagicEffect(getThingPos(pid), CONST_ME_POFF)
    doTeleportThing(pid, getTownTemplePosition(getPlayerTown(cid)))
    doSendMagicEffect(getThingPos(pid), CONST_ME_TELEPORT)
    doCreatureAddHealth(pid, getCreatureMaxHealth(pid), false)
    doCreatureAddMana(pid, getCreatureMaxMana(pid), false)
    setPlayerStorageValue(pid, 5601, 0)
    setPlayerStorageValue(pid, 5602, 0)
    setPlayerStorageValue(pid, 5603, 0)
    doPlayerSave(pid)
end
end
    setGlobalStorageValue(5602, -1)
return true
end

MSG_WHITE  = TALKTYPE_CHANNEL_MANAGEMENT or TALKTYPE_CHANNEL_W
MSG_RED    = TALKTYPE_GAMEMASTER_CHANNEL or TALKTYPE_CHANNEL_RN
MSG_ORANGE = TALKTYPE_CHANNEL_ORANGE or TALKTYPE_CHANNEL_O
]]></config>
    
<talkaction log="yes" words="/fps" event="script"><![CDATA[
domodlib('battle-config')
function onSay(cid, words, param, channel)

if (param == "") then
return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Error, comando inválido.")
end

if (getPlayerAccess(cid) >= 3) then
if (string.lower(param) == "open") then
if (getGlobalStorageValue(5600) ~= 1) then
    setGlobalStorageValue(5600, 1)
    setGlobalStorageValue(5602, 0)
    
local teleport = doCreateItem(1387, FPS_PORTALPOS)
    doItemSetAttribute(teleport, "uid", 6886)
    doSendMagicEffect(FPS_PORTALPOS, 10)
    doBroadcastMessage("O portal para o(a) "..FPS_EVENTNAME.." foi criado, com um limite de "..FPS_LIMITEPLAYERS.." jogadores.", 22)
return true
end
return true
end

if (string.lower(param) == "close") then
if (getGlobalStorageValue(5600) ~= -1 and getGlobalStorageValue(5601) ~= 1) then
    setGlobalStorageValue(5601, 1)
    setPlayerStorageValue(cid, 5605, 1)
    msgForOthers(""..FPS_FINISHTIME.." segundos restantes.")
    addEvent(setPlayerStorageValue, FPS_FINISHTIME * 1000, cid, 5605, -1)
    addEvent(closeEvent, FPS_FINISHTIME * 1000, cid)
return true
end
return true
end

local t = string.explode(param, ",")            
local pid = getPlayerByName(t[2])
if (string.lower(t[1]) == "ban") then
if (not t[2] or tonumber(t[2])) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, digite o nome do jogador.")
return true
end
if (not isPlayer(pid)) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, ""..t[2].." não existe ou encontra-se off-line.")
return true
end
if (getPlayerStorageValue(pid, 5604) ~= 1) then
if (getPlayerStorageValue(pid, 5602) == 1) then
    doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)))
    doSendMagicEffect(getThingPos(pid), CONST_ME_TELEPORT)
    setGlobalStorageValue(5602, getGlobalStorageValue(5602)-1)
end
    setPlayerStorageValue(pid, 5601, 0)
    setPlayerStorageValue(pid, 5602, 0)
    setPlayerStorageValue(pid, 5604, 1) -- blocked.
    msgForOthers(""..t[2].." foi bloqueado(a).")
local ba_banr = "Admininstrador"
if (FPS_REVEALEDAFTERBANPLAYER) then
    ba_banr = ""..getCreatureName(cid)..""
end
    doPlayerPopupFYI(pid, "AVISO :\n O "..ba_banr.." bloqueou você.\nvocê está temporariamente bloqueado(a) de participar.")
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você bloqueou "..t[2]..".")
else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, ""..t[2].." já foi bloqueado(a).")
return true
end
return true
end

if (string.lower(t[1]) == "unban") then
if (not t[2] or tonumber(t[2])) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, digite o nome do jogador.")
return true
end
if (not isPlayer(pid)) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, ""..t[2].." não existe ou encontra-se off-line.")
return true
end
if (getPlayerStorageValue(pid, 5604) == 1) then
    setPlayerStorageValue(pid, 5604, 0) -- unblocked.
    msgForOthers(""..t[2].." foi desbloqueado(a).")
    doPlayerPopupFYI(pid, "AVISO :\nVocê foi desbloqueado(a).\nparticipe do "..FPS_EVENTNAME.." quando o mesmo estiver disponível.")
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você desbloqueou "..t[2]..".")
else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, ""..t[2].." já foi desbloqueado(a).")
return true
end
return true
end
end
    local ba_players = "Indisponível"
if (getGlobalStorageValue(5602) ~= -1) then
ba_players = tostring(getGlobalStorageValue(5602))
end
    local limiteplayers = ""..ba_players.."/"..FPS_LIMITEPLAYERS..""
if (getGlobalStorageValue(5602) >= FPS_LIMITEPLAYERS) then
    limiteplayers = "FULL/"..FPS_LIMITEPLAYERS..""
end
if (string.lower(param) == "status") then
    local status = ""..FPS_EVENTNAME.." Status :\nOla "..getCreatureName(cid)..",\nveja algumas informações sobre o(a) "..FPS_EVENTNAME.."."
    doShowTextDialog(cid, 2395, ""..status.."\n\nPontos : ("..getPlayerStorageValue(cid, 5601)..")\nJogadores : ["..limiteplayers.."]")    
return true
end
return true
end
]]></talkaction>

<event type="preparedeath" name="FPSprepare" event="script"><![CDATA[
domodlib('battle-config')
function onPrepareDeath(cid, deathList)

local target = deathList[1]
if (getGlobalStorageValue(5600) == 1 and getPlayerStorageValue(cid, 5602) == 1) then
    
local i = 10
    doPlayerOpenChannel(cid, FPS_CHANNEL)
    doCreatureAddHealth(cid, getCreatureMaxHealth(cid), MAGIC_EFFECT_UNKNOWN, COLOR_UNKNOWN, true)
    doCreatureAddMana(cid, getCreatureMaxMana(cid))
    doTeleportThing(cid, FPS_SPAWNPLAYER[math.random(1, #FPS_SPAWNPLAYER)])
    doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
    doPlayerRemoveLethalConditions(cid)
    
if (isMonster(target)) then
    addEvent(doPlayerSendChannelMessage, i, cid, "", ""..getCreatureName(target).." matou você.", MSG_RED, FPS_CHANNEL)
    setPlayerStorageValue(cid, 5602, 0)
    msgForOthers(""..getCreatureName(target).." matou "..getCreatureName(cid)..".")
    setPlayerStorageValue(cid, 5602, 1)
    setPlayerStorageValue(cid, 5601, 0)
return false
end
    
if (not isCreature(target)) then
    addEvent(doPlayerSendChannelMessage, i, cid, "", "Voce cometeu suicídio.", MSG_RED, FPS_CHANNEL)
    setPlayerStorageValue(cid, 5602, 0)
    msgForOthers(""..getCreatureName(cid).." cometeu suicídio.")
    setPlayerStorageValue(cid, 5602, 1)
    setPlayerStorageValue(cid, 5601, 0)
return false
end
    
    doPlayerOpenChannel(target, FPS_CHANNEL)
    setPlayerStorageValue(target, 5601, getPlayerStorageValue(target, 5601)+1)
    setPlayerStorageValue(cid, 5602, 0)
    setPlayerStorageValue(target, 5602, 0)
    msgForOthers(""..getCreatureName(target).." derrotou "..getCreatureName(cid)..".")
    setPlayerStorageValue(target, 5602, 1)
    setPlayerStorageValue(cid, 5602, 1)
    addEvent(doPlayerSendChannelMessage, i, cid, "", ""..getCreatureName(target).." derrotou você.", MSG_RED, FPS_CHANNEL)
    addEvent(doPlayerSendChannelMessage, i, target, "", "Você derrotou "..getCreatureName(cid)..".", MSG_ORANGE, FPS_CHANNEL)
        
    dofile("config.lua")
    local EXP = 0
if (FPS_ENABLEEXPERIENCE) then
    EXP = rateExperience * getPlayerLevel(cid)
    doPlayerAddExperience(target, EXP)
end
    doSendAnimatedText(getThingPos(target), tostring(EXP), gainExperienceColor)
    doPlayerSendTextMessage(target, MESSAGE_STATUS_DEFAULT, "Você ganhou "..EXP.." ponto(s) de experiência.")
    setPlayerStorageValue(cid, 5601, 0)
return false
end
return true
end
]]></event>

<event type="logout" name="FPSlogout" event="script"><![CDATA[
domodlib('battle-config')
function onLogout(cid)
if (getGlobalStorageValue(5601) == 1 and getPlayerStorageValue(cid, 5602) == 1 or getPlayerStorageValue(cid, 5605) == 1) then
    doPlayerSendCancel(cid, "Aguarde "..FPS_FINISHTIME.." segundo(s).")
return false
end
    
if(getPlayerStorageValue(cid, 5602) == 1) then
    setPlayerStorageValue(cid, 5601, 0)
    setPlayerStorageValue(cid, 5602, 0)
    doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
    doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
    doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
    doPlayerSendChannelMessage(cid, "", "Você saiu do jogo.", MSG_WHITE, FPS_CHANNEL)
    doPlayerRemoveLethalConditions(cid)
    doPlayerSave(cid)
        
if (getPlayerAccess(cid) < 3) then
    setGlobalStorageValue(5602, getGlobalStorageValue(5602)-1)
    msgForOthers(""..getCreatureName(cid).." saiu do jogo.")
end
return false
end
return true
end
]]></event>

<movevent type="StepIn" uniqueid="6886" event="script"><![CDATA[
domodlib('battle-config')
if (getGlobalStorageValue(5600) ~= 1) then
return true
end
if (getGlobalStorageValue(5601) == 1) then
    doPlayerSendCancel(cid, "O portal vai fechar em poucos segundo(s).")
    doTeleportThing(cid, fromPosition)
return true
end
if (getPlayerStorageValue(cid, 5604) == 1) then
    doPlayerSendCancel(cid, "Sinto muito, você está temporariamente bloqueado(a).")
    doTeleportThing(cid, fromPosition)
return true
end                
if (getGlobalStorageValue(5602) >= FPS_LIMITEPLAYERS and getPlayerAccess(cid) < 3) then
    doPlayerSendCancel(cid, "A arena está cheia.")
    doTeleportThing(cid, fromPosition)
return true
end
if (getPlayerStorageValue(cid, 5602) ~= 1) then
    addEvent(doPlayerSendChannelMessage, 10, cid,"", "Você participou do jogo.", MSG_WHITE, FPS_CHANNEL)
if (getPlayerAccess(cid) < 3) then
    setGlobalStorageValue(5602, getGlobalStorageValue(5602)+1)
    msgForOthers(""..getCreatureName(cid).." participou do jogo.")
end
    setPlayerStorageValue(cid, 5602, 1)
end
    doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
    doTeleportThing(cid, FPS_SPAWNPLAYER[math.random(1, #FPS_SPAWNPLAYER)])
    doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
    doPlayerOpenChannel(cid, FPS_CHANNEL)
]]></movevent>

<event type="combat" name="FPScombat" event="script"><![CDATA[
function onCombat(cid, target)

if(FPS_BLOCKIP) then
if (getPlayerIp(cid) == getPlayerIp(target)) then return false end
end
    
for _, pid in ipairs(getPlayersOnline()) do
if (getGlobalStorageValue(5600) == 1 and getGlobalStorageValue(5601) == 1 and getPlayerStorageValue(pid, 5602) == 1) then
return false
end
end
return true
end
]]></event>

<event type="attack" name="FPSattack" event="script"><![CDATA[
function onAttack(cid, target)
    
if(FPS_BLOCKIP) then
if (getPlayerIp(cid) == getPlayerIp(target)) then return false end
end
    
for _, pid in ipairs(getPlayersOnline()) do
if (getGlobalStorageValue(5600) == 1 and getGlobalStorageValue(5601) == 1 and getPlayerStorageValue(pid, 5602) == 1) then
return false
end
end
return true
end
]]></event>

<event type="login" name="FPSlogin" event="buffer"><![CDATA[
if (getPlayerStorageValue(cid, 5601) == -1) then
    setPlayerStorageValue(cid, 5601, 0)
end
    
    registerCreatureEvent(cid, "FPSprepare")
    registerCreatureEvent(cid, "FPSlogout")
    registerCreatureEvent(cid, "FPScombat")
    registerCreatureEvent(cid, "PFSattack")
    registerCreatureEvent(cid, "PFScast")
]]></event>

<globalevent name="FPS tips" interval="600000" event="script"><![CDATA[
domodlib('battle-config')
function onThink(interval)

local FPS_tips = {
    "Atualmente existem "..getGlobalStorageValue(5602).." player(s) lutando, não deixe de participar.",
    "Com o canal fechado, você não recebe informações dentro do jogo. deixe-o sempre aberto.",
    "Cuidado ao ofender um jogador, você corre o risco de ser bloqueado(a).",
    "Aperte 'CTRL + Q' caso você queira sair do jogo, você precisa está em protection zone.",
    "Chame seus amigos e venha jogar, porquê aqui a diversão nunca acaba.",
    "Dica : configure o comando '/fps status' como hotkey. Assim você poderá checar suas informações com facilidade."
    }
    
if (getGlobalStorageValue(5600) == 1) then
    msgForOthers(FPS_tips[math.random(1, #FPS_tips)])
end
return true
end
]]></globalevent>
</mod>

 

data/lib - battle-config.lua

--[[
   'Battle Arena' desenvolvido por Ladyazaleia.
    WhatsApp : (83) 9629-6394
    Facebook : https://www.facebook.com/wustehs
  ]]

FPS_EVENTNAME             = "Battle Arena" -- Nome do evento.
FPS_FINISHTIME             = 5              -- Dentro do evento, jogadores não poderão atacar uns aos outros enquanto esse tempo não esgotar após o comando /fps close ser executado.
FPS_LIMITEPLAYERS         = 26             -- Limite de jogadores.
FPS_SHOWGODNAMEAFTERBAN = false          -- true = Mostra o nome do GM na mensagem do banido; false = Mostra o nome 'Admininstrador'.
FPS_ENABLEEXPERIENCE     = true              -- true = Habilita a experiência; false = Desabilita.
FPS_BLOCKIP             = false          -- true = Jogadores que tentarem usar MC pra ganhar exp fácil, não conseguirão atacar seus próprios chars; false = permite isso.
FPS_CHANNEL             = 15              -- ID do Battle Arena Channel.


FPS_PORTALPOS = {x = 160, y = 382, z = 7}

FPS_SPAWNPLAYER = {
    {x = 261, y = 619, z = 7},
    {x = 275, y = 619, z = 7},
    {x = 261, y = 630, z = 7},
    {x = 275, y = 630, z = 7}
}

no arquivo battle-config.lua :

FPS_PORTALPOS é a posição de onde vai criar o teleport ao dizer /fps open.

 

- Abraços!

Editado por HallsSantos (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

mods - battle-mod.lua :

<?xml version="1.0" encoding="UTF-8"?>
<mod name="Battle Arena System" version="1.0" author="Ladyazaleia" contact="https://www.facebook.com/wustehs" enabled="yes">

<config name="battle-config"><![CDATA[
function msgForOthers(mensagem, classe)
if (not classe) then
    classe = MSG_WHITE
end
    
for _, pid in ipairs(getPlayersOnline()) do
if (getPlayerStorageValue(pid, 5602) == 1) then
    doPlayerSendChannelMessage(pid, "", mensagem, classe, FPS_CHANNEL)
end
end
return true
end

function doPlayerRemoveLethalConditions(cid) -- function by Rush Event.
local tmp = {1, 2, 4, 16, 32, 65, 128, 256, 512, 1024, 2048, 4096, 8192, 32768, 65536}
for i = 1, #tmp do

if (hasCondition(cid, tmp[i])) then
    doRemoveCondition(cid, tmp[i])
end
end
return true
end

function closeEvent(cid)
    doRemoveItem(6886, 1)
    doSendMagicEffect(FPS_PORTALPOS, CONST_ME_POFF)
    setGlobalStorageValue(5600, -1)
    setGlobalStorageValue(5601, -1)
        
for _, pid in ipairs(getPlayersOnline()) do
    doPlayerSendChannelMessage(pid, "", ""..FPS_EVENTNAME.." foi fechado.", MSG_WHITE, FPS_CHANNEL)

if (getPlayerStorageValue(pid, 5602) == 1) then
    doSendMagicEffect(getThingPos(pid), CONST_ME_POFF)
    doTeleportThing(pid, getTownTemplePosition(getPlayerTown(cid)))
    doSendMagicEffect(getThingPos(pid), CONST_ME_TELEPORT)
    doCreatureAddHealth(pid, getCreatureMaxHealth(pid), false)
    doCreatureAddMana(pid, getCreatureMaxMana(pid), false)
    setPlayerStorageValue(pid, 5601, 0)
    setPlayerStorageValue(pid, 5602, 0)
    setPlayerStorageValue(pid, 5603, 0)
    doPlayerSave(pid)
end
end
    setGlobalStorageValue(5602, -1)
return true
end

MSG_WHITE  = TALKTYPE_CHANNEL_MANAGEMENT or TALKTYPE_CHANNEL_W
MSG_RED    = TALKTYPE_GAMEMASTER_CHANNEL or TALKTYPE_CHANNEL_RN
MSG_ORANGE = TALKTYPE_CHANNEL_ORANGE or TALKTYPE_CHANNEL_O
]]></config>
    
<talkaction log="yes" words="/fps" event="script"><![CDATA[
domodlib('battle-config')
function onSay(cid, words, param, channel)

if (param == "") then
return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Error, comando inválido.")
end

if (getPlayerAccess(cid) >= 3) then
if (string.lower(param) == "open") then
if (getGlobalStorageValue(5600) ~= 1) then
    setGlobalStorageValue(5600, 1)
    setGlobalStorageValue(5602, 0)
    
local teleport = doCreateItem(1387, FPS_PORTALPOS)
    doItemSetAttribute(teleport, "uid", 6886)
    doSendMagicEffect(FPS_PORTALPOS, 10)
    doBroadcastMessage("O portal para o(a) "..FPS_EVENTNAME.." foi criado, com um limite de "..FPS_LIMITEPLAYERS.." jogadores.", 22)
return true
end
return true
end

if (string.lower(param) == "close") then
if (getGlobalStorageValue(5600) ~= -1 and getGlobalStorageValue(5601) ~= 1) then
    setGlobalStorageValue(5601, 1)
    setPlayerStorageValue(cid, 5605, 1)
    msgForOthers(""..FPS_FINISHTIME.." segundos restantes.")
    addEvent(setPlayerStorageValue, FPS_FINISHTIME * 1000, cid, 5605, -1)
    addEvent(closeEvent, FPS_FINISHTIME * 1000, cid)
return true
end
return true
end

local t = string.explode(param, ",")            
local pid = getPlayerByName(t[2])
if (string.lower(t[1]) == "ban") then
if (not t[2] or tonumber(t[2])) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, digite o nome do jogador.")
return true
end
if (not isPlayer(pid)) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, ""..t[2].." não existe ou encontra-se off-line.")
return true
end
if (getPlayerStorageValue(pid, 5604) ~= 1) then
if (getPlayerStorageValue(pid, 5602) == 1) then
    doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)))
    doSendMagicEffect(getThingPos(pid), CONST_ME_TELEPORT)
    setGlobalStorageValue(5602, getGlobalStorageValue(5602)-1)
end
    setPlayerStorageValue(pid, 5601, 0)
    setPlayerStorageValue(pid, 5602, 0)
    setPlayerStorageValue(pid, 5604, 1) -- blocked.
    msgForOthers(""..t[2].." foi bloqueado(a).")
local ba_banr = "Admininstrador"
if (FPS_REVEALEDAFTERBANPLAYER) then
    ba_banr = ""..getCreatureName(cid)..""
end
    doPlayerPopupFYI(pid, "AVISO :\n O "..ba_banr.." bloqueou você.\nvocê está temporariamente bloqueado(a) de participar.")
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você bloqueou "..t[2]..".")
else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, ""..t[2].." já foi bloqueado(a).")
return true
end
return true
end

if (string.lower(t[1]) == "unban") then
if (not t[2] or tonumber(t[2])) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, digite o nome do jogador.")
return true
end
if (not isPlayer(pid)) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, ""..t[2].." não existe ou encontra-se off-line.")
return true
end
if (getPlayerStorageValue(pid, 5604) == 1) then
    setPlayerStorageValue(pid, 5604, 0) -- unblocked.
    msgForOthers(""..t[2].." foi desbloqueado(a).")
    doPlayerPopupFYI(pid, "AVISO :\nVocê foi desbloqueado(a).\nparticipe do "..FPS_EVENTNAME.." quando o mesmo estiver disponível.")
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você desbloqueou "..t[2]..".")
else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, ""..t[2].." já foi desbloqueado(a).")
return true
end
return true
end
end
    local ba_players = "Indisponível"
if (getGlobalStorageValue(5602) ~= -1) then
ba_players = tostring(getGlobalStorageValue(5602))
end
    local limiteplayers = ""..ba_players.."/"..FPS_LIMITEPLAYERS..""
if (getGlobalStorageValue(5602) >= FPS_LIMITEPLAYERS) then
    limiteplayers = "FULL/"..FPS_LIMITEPLAYERS..""
end
if (string.lower(param) == "status") then
    local status = ""..FPS_EVENTNAME.." Status :\nOla "..getCreatureName(cid)..",\nveja algumas informações sobre o(a) "..FPS_EVENTNAME.."."
    doShowTextDialog(cid, 2395, ""..status.."\n\nPontos : ("..getPlayerStorageValue(cid, 5601)..")\nJogadores : ["..limiteplayers.."]")    
return true
end
return true
end
]]></talkaction>

<event type="preparedeath" name="FPSprepare" event="script"><![CDATA[
domodlib('battle-config')
function onPrepareDeath(cid, deathList)

local target = deathList[1]
if (getGlobalStorageValue(5600) == 1 and getPlayerStorageValue(cid, 5602) == 1) then
    
local i = 10
    doPlayerOpenChannel(cid, FPS_CHANNEL)
    doCreatureAddHealth(cid, getCreatureMaxHealth(cid), MAGIC_EFFECT_UNKNOWN, COLOR_UNKNOWN, true)
    doCreatureAddMana(cid, getCreatureMaxMana(cid))
    doTeleportThing(cid, FPS_SPAWNPLAYER[math.random(1, #FPS_SPAWNPLAYER)])
    doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
    doPlayerRemoveLethalConditions(cid)
    
if (isMonster(target)) then
    addEvent(doPlayerSendChannelMessage, i, cid, "", ""..getCreatureName(target).." matou você.", MSG_RED, FPS_CHANNEL)
    setPlayerStorageValue(cid, 5602, 0)
    msgForOthers(""..getCreatureName(target).." matou "..getCreatureName(cid)..".")
    setPlayerStorageValue(cid, 5602, 1)
    setPlayerStorageValue(cid, 5601, 0)
return false
end
    
if (not isCreature(target)) then
    addEvent(doPlayerSendChannelMessage, i, cid, "", "Voce cometeu suicídio.", MSG_RED, FPS_CHANNEL)
    setPlayerStorageValue(cid, 5602, 0)
    msgForOthers(""..getCreatureName(cid).." cometeu suicídio.")
    setPlayerStorageValue(cid, 5602, 1)
    setPlayerStorageValue(cid, 5601, 0)
return false
end
    
    doPlayerOpenChannel(target, FPS_CHANNEL)
    setPlayerStorageValue(target, 5601, getPlayerStorageValue(target, 5601)+1)
    setPlayerStorageValue(cid, 5602, 0)
    setPlayerStorageValue(target, 5602, 0)
    msgForOthers(""..getCreatureName(target).." derrotou "..getCreatureName(cid)..".")
    setPlayerStorageValue(target, 5602, 1)
    setPlayerStorageValue(cid, 5602, 1)
    addEvent(doPlayerSendChannelMessage, i, cid, "", ""..getCreatureName(target).." derrotou você.", MSG_RED, FPS_CHANNEL)
    addEvent(doPlayerSendChannelMessage, i, target, "", "Você derrotou "..getCreatureName(cid)..".", MSG_ORANGE, FPS_CHANNEL)
        
    dofile("config.lua")
    local EXP = 0
if (FPS_ENABLEEXPERIENCE) then
    EXP = rateExperience * getPlayerLevel(cid)
    doPlayerAddExperience(target, EXP)
end
    doSendAnimatedText(getThingPos(target), tostring(EXP), gainExperienceColor)
    doPlayerSendTextMessage(target, MESSAGE_STATUS_DEFAULT, "Você ganhou "..EXP.." ponto(s) de experiência.")
    setPlayerStorageValue(cid, 5601, 0)
return false
end
return true
end
]]></event>

<event type="logout" name="FPSlogout" event="script"><![CDATA[
domodlib('battle-config')
function onLogout(cid)
if (getGlobalStorageValue(5601) == 1 and getPlayerStorageValue(cid, 5602) == 1 or getPlayerStorageValue(cid, 5605) == 1) then
    doPlayerSendCancel(cid, "Aguarde "..FPS_FINISHTIME.." segundo(s).")
return false
end
    
if(getPlayerStorageValue(cid, 5602) == 1) then
    setPlayerStorageValue(cid, 5601, 0)
    setPlayerStorageValue(cid, 5602, 0)
    doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
    doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
    doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
    doPlayerSendChannelMessage(cid, "", "Você saiu do jogo.", MSG_WHITE, FPS_CHANNEL)
    doPlayerRemoveLethalConditions(cid)
    doPlayerSave(cid)
        
if (getPlayerAccess(cid) < 3) then
    setGlobalStorageValue(5602, getGlobalStorageValue(5602)-1)
    msgForOthers(""..getCreatureName(cid).." saiu do jogo.")
end
return false
end
return true
end
]]></event>

<movevent type="StepIn" uniqueid="6886" event="script"><![CDATA[
domodlib('battle-config')
if (getGlobalStorageValue(5600) ~= 1) then
return true
end
if (getGlobalStorageValue(5601) == 1) then
    doPlayerSendCancel(cid, "O portal vai fechar em poucos segundo(s).")
    doTeleportThing(cid, fromPosition)
return true
end
if (getPlayerStorageValue(cid, 5604) == 1) then
    doPlayerSendCancel(cid, "Sinto muito, você está temporariamente bloqueado(a).")
    doTeleportThing(cid, fromPosition)
return true
end                
if (getGlobalStorageValue(5602) >= FPS_LIMITEPLAYERS and getPlayerAccess(cid) < 3) then
    doPlayerSendCancel(cid, "A arena está cheia.")
    doTeleportThing(cid, fromPosition)
return true
end
if (getPlayerStorageValue(cid, 5602) ~= 1) then
    addEvent(doPlayerSendChannelMessage, 10, cid,"", "Você participou do jogo.", MSG_WHITE, FPS_CHANNEL)
if (getPlayerAccess(cid) < 3) then
    setGlobalStorageValue(5602, getGlobalStorageValue(5602)+1)
    msgForOthers(""..getCreatureName(cid).." participou do jogo.")
end
    setPlayerStorageValue(cid, 5602, 1)
end
    doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
    doTeleportThing(cid, FPS_SPAWNPLAYER[math.random(1, #FPS_SPAWNPLAYER)])
    doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
    doPlayerOpenChannel(cid, FPS_CHANNEL)
]]></movevent>

<event type="combat" name="FPScombat" event="script"><![CDATA[
function onCombat(cid, target)

if(FPS_BLOCKIP) then
if (getPlayerIp(cid) == getPlayerIp(target)) then return false end
end
    
for _, pid in ipairs(getPlayersOnline()) do
if (getGlobalStorageValue(5600) == 1 and getGlobalStorageValue(5601) == 1 and getPlayerStorageValue(pid, 5602) == 1) then
return false
end
end
return true
end
]]></event>

<event type="attack" name="FPSattack" event="script"><![CDATA[
function onAttack(cid, target)
    
if(FPS_BLOCKIP) then
if (getPlayerIp(cid) == getPlayerIp(target)) then return false end
end
    
for _, pid in ipairs(getPlayersOnline()) do
if (getGlobalStorageValue(5600) == 1 and getGlobalStorageValue(5601) == 1 and getPlayerStorageValue(pid, 5602) == 1) then
return false
end
end
return true
end
]]></event>

<event type="login" name="FPSlogin" event="buffer"><![CDATA[
if (getPlayerStorageValue(cid, 5601) == -1) then
    setPlayerStorageValue(cid, 5601, 0)
end
    
    registerCreatureEvent(cid, "FPSprepare")
    registerCreatureEvent(cid, "FPSlogout")
    registerCreatureEvent(cid, "FPScombat")
    registerCreatureEvent(cid, "PFSattack")
    registerCreatureEvent(cid, "PFScast")
]]></event>

<globalevent name="FPS tips" interval="600000" event="script"><![CDATA[
domodlib('battle-config')
function onThink(interval)

local FPS_tips = {
    "Atualmente existem "..getGlobalStorageValue(5602).." player(s) lutando, não deixe de participar.",
    "Com o canal fechado, você não recebe informações dentro do jogo. deixe-o sempre aberto.",
    "Cuidado ao ofender um jogador, você corre o risco de ser bloqueado(a).",
    "Aperte 'CTRL + Q' caso você queira sair do jogo, você precisa está em protection zone.",
    "Chame seus amigos e venha jogar, porquê aqui a diversão nunca acaba.",
    "Dica : configure o comando '/fps status' como hotkey. Assim você poderá checar suas informações com facilidade."
    }
    
if (getGlobalStorageValue(5600) == 1) then
    msgForOthers(FPS_tips[math.random(1, #FPS_tips)])
end
return true
end
]]></globalevent>
</mod>

 

data/lib - battle-config.lua

--[[
   'Battle Arena' desenvolvido por Ladyazaleia.
    WhatsApp : (83) 9629-6394
    Facebook : https://www.facebook.com/wustehs
  ]]

FPS_EVENTNAME             = "Battle Arena" -- Nome do evento.
FPS_FINISHTIME             = 5              -- Dentro do evento, jogadores não poderão atacar uns aos outros enquanto esse tempo não esgotar após o comando /fps close ser executado.
FPS_LIMITEPLAYERS         = 26             -- Limite de jogadores.
FPS_SHOWGODNAMEAFTERBAN = false          -- true = Mostra o nome do GM na mensagem do banido; false = Mostra o nome 'Admininstrador'.
FPS_ENABLEEXPERIENCE     = true              -- true = Habilita a experiência; false = Desabilita.
FPS_BLOCKIP             = false          -- true = Jogadores que tentarem usar MC pra ganhar exp fácil, não conseguirão atacar seus próprios chars; false = permite isso.
FPS_CHANNEL             = 15              -- ID do Battle Arena Channel.


FPS_PORTALPOS = {x = 160, y = 382, z = 7}

FPS_SPAWNPLAYER = {
    {x = 261, y = 619, z = 7},
    {x = 275, y = 619, z = 7},
    {x = 261, y = 630, z = 7},
    {x = 275, y = 630, z = 7}
}

no arquivo battle-config.lua :

FPS_PORTALPOS é a posição de onde vai criar o teleport ao dizer /fps open.

 

- Abraços!

Obrigado cara, pegou direitinho só que tem uma outra coisa agora que ocorreu, o Player não morre chega a 0 e não morre e pode andar com vida zero por ai segue as imagens ai !

http://imgur.com/8ka6kvO,Aapad9l,8FkknwD

 

[16/03/2015 18:53:54] [Error - CreatureScript Interface] 
[16/03/2015 18:53:54] buffer:onPrepareDeath
[16/03/2015 18:53:54] Description: 
[16/03/2015 18:53:54] [string "loadBuffer"]:8: attempt to call global 'doPlayerOpenChannel' (a nil value)
[16/03/2015 18:53:54] stack traceback:
[16/03/2015 18:53:54] [string "loadBuffer"]:8: in function <[string "loadBuffer"]:2>
Link para o post
Compartilhar em outros sites

Creio que seja porque os distros antigos que já encontramos compilados, não possuem a função "doPlayerOpenChannel".

É uma função que abre x canal, então eu programei para quando o player morrer, abrir o canal.

Pra resolver, você teria que compilar suas sources, ou usar algum distro que tenha a função.

Link para o post
Compartilhar em outros sites

Então tipo tenho que ter um ot mais novo?

desculpe, é que não entendo muito disso :/

Creio que seja porque os distros antigos que já encontramos compilados, não possuem a função "doPlayerOpenChannel".

É uma função que abre x canal, então eu programei para quando o player morrer, abrir o canal.

Pra resolver, você teria que compilar suas sources, ou usar algum distro que tenha a função.

Link para o post
Compartilhar em outros sites

Se o seu for tfs, você precisa de um TheForgottenServer.exe que possua a função.

Meu tópico bugou, fui atualizar pra avisar sobre essa função, ai deu um bug da p*#@ kk :/

Link para o post
Compartilhar em outros sites

Tópico corrigido e movido de volta a seu devido local. ^^

Qualquer erro que eu ñ tenha notado, o próprio dono do tópico pode tentar resolver. Caso tenha maiores complicações pode me procurar.

 

 

--------------------------------------

A propósito, ótimo sistema. ^^

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Link para o post
Compartilhar em outros sites

Nossa muito obrigado Danihcv, eu só não tomei uma iniciativa porque eu estou sem internet, eu até tentei relatar mas acho que a mensagem não foi enviada.

Obrigado de verdade! :)

Link para o post
Compartilhar em outros sites
  • 3 months later...
ja tentei dos dois jeitos com npc e sem... e tbm n consigo adcionar o npc... da arquivo fotmat invalid;;; algo do tipo

[09/07/2015 21:09:44] > Loading battle-mod.xml...[Error - ScriptingManager::loadFromXml] Cannot load mod mods/battle-mod.xml
[09/07/2015 21:09:44] Line: 71, Info: Input is not proper UTF-8, indicate encoding !
[09/07/2015 21:09:44] Bytes: 0xE1 0x6C 0x69 0x64
 
 
 
acho q seriia essa parte 
 
<talkaction log="yes" words="/fps" event="script"><![CDATA[
domodlib('battle-config')
function onSay(cid, words, param, channel)

 

 

qual pode ser o erro ?

Editado por bossmaster (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

quando atingir os 20 jogadores vamos dizer o TP não deveria fechar?

 

 

Outro erro quando vai atacar algum mostro fica aparecendo isso no default.

 

 
for _, pid in ipairs(getPlayersOnline()) do
if (getGlobalStorageValue(5600) == 1 and getGlobalStorageValue(5601) == 1 and ge
tPlayerStorageValue(pid, 5602) == 1) then
return false
end
end
return true
end
:onCombat
Description:
(LuaInterface::internalGetPlayerInfo) Player not found when requesting player in
fo #29
 
 
e com evento fechado você não pode atacar 1 jogador com msm IP
Editado por kleitonalan (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por chateadoagr
      Bem-vindo ao Genesis Online Tibia (GOT), um mundo onde a civilização foi devastada por um apocalipse zumbi. Inspirado em referências como The Walking Dead e Resident Evil, o GOT desafia você a sobreviver em meio ao caos, enfrentando hordas de mortos-vivos, explorando ruínas perigosas e formando alianças estratégicas. Embarque nesta jornada épica de sobrevivência e descoberta, onde cada escolha molda seu destino em um cenário hostil repleto de desafios e perigos iminentes.
       
       
      Adentre o universo de Genesis Online Tibia (GOT), um jogo repleto de sistemas inovadores e emocionantes. Equipe-se com um vasto arsenal de armas para enfrentar as ameaças do apocalipse zumbi, enquanto o sistema autoloot simplifica suas conquistas. Desenvolva seu personagem através de um sistema de upgrade único, aprimorando habilidades e atributos para enfrentar desafios cada vez mais formidáveis.
       
      Explore um mundo imersivo onde o som desempenha um papel crucial, criando uma atmosfera envolvente e realista. Vasculhe cada canto em busca de recursos vitais, desvendando segredos e tesouros ocultos. Siga uma cativante história através de missões que expandem o enredo, revelando os mistérios por trás do apocalipse e oferecendo recompensas valiosas.
       
      Em Genesis Online Tibia, a jornada pela sobrevivência é repleta de ação, estratégia e emoção, convidando você a se aventurar em um mundo onde cada decisão molda seu destino e determina sua capacidade de enfrentar os desafios que aguardam.

      Em breve imagens do servidor!
       
       
    • Por Lion
      O sistema de medalhas do TibiaKing foi reativado.
      As medalhas serão entregues automaticamente, muitos de vocês podem já ter recebido.
      Aproximadamente 12.000 contas do Tk já foram notificadas.
       
      Medalhas Raras
      2 novas medalhas raros criados (Guardião da Aurora, Poder Áureo) Quanto mais participar do fórum mais chances tem de desbloquear os medalhas raras.  
      https://tibiaking.com/medalhas/
       
      Show Off:
      tkmedalhas.mp4
       
      Créditos:
      BrooMop (BW) Medalhões-base doados ao Tibia King.
      Tibia (Cipsoft) Molduras-base e itens copiados do Tibia Wiki.
      @Cat Criação de novos medalhões e animações.
       
       
    • Por rafaelvozinho
      Vagas abertas [-]
      Foxers, é com grande felicidade que anunciamos o processo seletivo para recrutamento de um novo Developer e Mapper para a nossa equipe. 
       
      Nós da staff chegamos nessa decisão por sermos apaixonados pelo bom e velho fox world que foi lançado anos atrás no 8.4, por sermos apaixonados sempre tentamos abrir um servidor de fox world porém sempre faltou aquela pitada de inovação, foi então que tivemos a brilhante ideia. Converter o fox do 8.4 para o 12.31 e inserir novidades como: novas caves, itens, monstros e não menos importante quests com sistemas inovadores!

       
      No momento estamos a procura das vagas citadas acima para pessoas que estão afim de crescer com o servidor e evoluir com o mesmo, nós procuramos pessoas dedicadas, que tenha disponibilidade de horario, disponibilidade de contato e dispostas a se dedicarem com o trabalho em equipe. 
      A inscrição poderá ser enviada como mensagem privada ao meu perfil aqui no tibiaking @Faysal, as pessoas que se inscreveram irão passar por uma analise e serão selecionadas para uma entrevista. Aos interessados favor ler as características das vagas disponiveis.
       
      Características [-]
       
      Developer
       - Função: Programador Lua/C++
       - Descrição: Desenvolvimento em Lua, C++, as unicas exigências que pedimos é a entrega dentro do prazo.
       - Idade: Temos preferência por pessoas com mais de 18 anos
       - Experiência: Conhecimento em programação em Lua e C++, ter conhecimento avançado será um grande diferencial.
       - Confiança: Procuramos desenvolvedores responsáveis a fim de prestar um bom serviço na área de desenvolvimento de nossos sistemas, conhecimento, confiança e segurança é primordial!
       
       
      Mapper
       
       - Função: Mapper
       - Descrição: Elaboração de novas áreas e estilização das já existentes
       - Idade: Temos preferência por pessoas com mais de 16 anos
       - Experiência: Conhecimento mediano em mapping, ter conhecimento avançado será um grande diferencial.
       - Confiança: Procuramos mappers responsáveis a fim de prestar um bom serviço na área. Conhecimento e criatividade são essenciais!
       
      Inscrição [-]
       
      Aguardamos as inscrições via Private Messenger aqui no fórum com as seguintes Informações:
       
       
       - Nome Completo: 
       - Idade:
       - Vaga Escolhida:
       - Whatsapp para contato:
       - Experiência:
       - Conhecimentos Adicionais:

      Obs: No campo Experiência utilizar as seguntes categorias: Trainee (novato), Junior (mediano), Pleno (avançado), Sênior (Profissional)
       
      Aguardamos sua inscrição.

      Atenciosamente,
      Rafael  - ADM Rafael - 51 999465729 whatsapp 
    • Por Bagon
      Bom, hoje venho trazer á vocês um sistema de Pet System DIFERENCIADO de alguns presentes no fórum. Este sistema tem diversos comandos diferenciados, como: 
       
      !pet nomedopet este comando irá sumonar o pet. 
      !remove irá remover o pet.
      !fale eu sou lindo o pet falará "eu sou lindo"
      !conversar o pet irá conversar com vc. 
       
      Então sem mais delongas vamos ao script.
       
      OBS: SCRIPT TESTADO SOMENTE EM TFS 0.4/0.3, e este script foi feito com a intenção de ser vendido no site do ot ou em poderá usar como quest usando o item selecionado como premio. fique ao seu critério.
       
      Primeiro vá até a pasta talkaction/script e crie um arquivo chamado petsystem.lua, depois coloque o seguinte script:
       
       
      Agora em talkactions/talkactions.xml adicione a seguinte tag:
       
      <talkaction words="!pet;!remove;!fale;!conversar" event="script" value="petsystem.lua" />  
      EXPLICAÇÂO:
      As partes em Negrito, são os pets. Você pode alterar ou criar monstros para fazer eles como pets. (Recomendo criar um monstro para que seja somente pet.)
       
      Exemplo: ["dog"]= {stor=78552},      
       
       
      Lembrando que é necessário mudar esta parte no script do monstro colocado a cima.
       
      <flag attackable="1" /> para :
       
      <flag attackable="0" />  
      agora vá em action/script e crie um arquivo chamado pet com o seguinte script:
       
       
      e vá em action.xml e adiciona a seguinte tag:
       
      <action itemid="10063" script="pet.lua"/> Explicação: Na tag da action o itemid é o item que deverá ser usado para ganhar a storage 78552, e assim podera sumonar o monstro com esta storage.
       
                                              
                                                         CRIE UMA ACTION COM A TAG A CIMA PARA CADA MONSTRO COLOCADO NA TALKACTION,
                                                         BASTA VC ALTERAR A STORAGE DO SCRIPT DA ACTION
                                                         EXEMPLO: em action altere as storage que estão em vermelho, como mostra abaixo
       
                                                              if getPlayerStorageValue(cid, 78552) < 1 then
                                                              setPlayerStorageValue(cid, 78552, 1)
       
                                                         aonde tem 78552 altere para 78553 que no caso é a storage do cyclops escolhido lá no script da talkaction
                                                         e assim susecivelmente.
       
       
       
      CREDITOS:
      Mulizeu
      Smartbox
      Bagon 
       
    • Por Imperius
      Olá, pessoal! Acabei encontrando um script que tinha feito a um tempo atrás. Estou compartilhando aqui para quem quiser usar ou melhorar.
       
      É bem parecido com os outros sistemas de roleta, igual deste tópico: https://tibiaking.com/forums/topic/101557-action-cassino-roleta-de-items/
       
      Como funciona?
       
      O "Treasure Chest" é um item custom, onde o jogador têm a possibilidade de ganhar itens raros ou bem meia boca. Tudo dependerá da sorte.
       
      O jogador precisa tacar o treasure chest na bancada e acionar a alavanca. O treasure chest irá se transformar em vários itens de forma randômica no qual o jogador poderá ou não ganhar. No final, apenas um item é entregue ao jogador.
       
      Para entender melhor o seu funcionamento, segue o GIF abaixo:
       

       
       
      em data > actions > actions.xml
       
       
      em data > actions > scripts > crie um arquivo chamado leverTreasureChest.lua
       
       
      no banco de dados do servidor, adicione o seguinte código em "SQL":
       
       
       

      Também estou disponibilizando uma página PHP, para quem quiser usar no site do servidor. Na página tem informações sobre o funcionamento, quais são os possíveis prêmios e a lista de jogadores que ganharam os itens raros.
       

       
       
      Espero ter ajudado de alguma forma! : )
       
      treasure_chest.php
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo