Ir para conteúdo
  • Cadastre-se

(Resolvido)pondo batlefield no mapa baiak de tibia 8.6


Ir para solução Resolvido por ViitinG,

Posts Recomendados

         Me ajudem por batlefield plz!!!

 

 

Galera Me ajude Por favor eu to querendo por batlefield no meu servidor de tibia, mas so que eu abaixo o mpa do batlefield e vo colar no meu mapa mas tem uma cidade na position do batle field

e eu não sei configurar as position para cair dentro do evento

me de um tutorial exlicando tudo certinho com mapa do evento as scripts...

e como mudo a posiçoes para cair nobatle field eu não sei mudar as posiçoes

exemplo eu quero colar o mapa do batle field no meu mapa mas em um lugar vazio

ae eu não sei por as posiçoes para o player ir ate no lugar q eu puis o evento!.

essas cosia me ajudem plz...

 

Dou 3 REPS e ajudo em augo para retribuir!

                                                                         github.png TFS 0.4 DEV                                                                                                       nvzl0l.jpg
 
Página no facebook: https://www.facebook.com/Suporterking                                                                                     
Skype: fabinhodias01
 
 
"A almapermanece em suas criações" 


h3dhnuI.jpg           
(Dou suporte apenas em tópicos..)

Link para o post
Compartilhar em outros sites

Lembre-se:

- De colocar Pvp Tool na área
- De colocar área NoLogout

 

Data/Lib/BattleLib.lua :

_Lib_Battle_Info = {
Reward = {2160,10},
TeamOne = {name = "Black Assassins", storage = 140120, pos = {x=613,y=802,z=7}},
TeamTwo = {name = "Red Barbarians",storage = 140121,pos = {x=631,y=801,z=7}},
storage_count = 180400,
tpPos = {x=158, y=57, z=7},
limit_Time = 10 -- em minutos
}

function resetBattle()
return setGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage, 0) and setGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage, 0)
end

function OpenWallBattle()
local B = {
{1543,{x=622, y=803, z=7, stackpos = 1}},
{1543,{x=622, y=804, z=7, stackpos = 1}},
{1543,{x=622, y=805, z=7, stackpos = 1}},
{1543,{x=622, y=806, z=7, stackpos = 1}}
}
for i = 1, #B do
if getTileItemById(B[i][2], B[i][1]).uid == 0 then
doCreateItem(B[i][1], 1, B[i][2])
else
doRemoveItem(getThingfromPos(B[i][2]).uid,1)
end
end
end

function doBroadCastBattle(type,msg)
local players = {}
for _, cid in pairs(getPlayersOnline()) do
if getPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage) == 1 or getPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage) == 1 then
table.insert(players, cid)
end
end
for i = 1, #players do
doPlayerSendTextMessage(players[i],type,msg)
end
end

function removeBattleTp()
local t = getTileItemById(_Lib_Battle_Info.tpPos, 1387).uid
return t > 0 and doRemoveItem(t) and doSendMagicEffect(_Lib_Battle_Info.tpPos, CONST_ME_POFF)
end

function getWinnersBattle(storage)
local players,str = {},""
for _, cid in pairs(getPlayersOnline()) do
if getPlayerStorageValue(cid, storage) == 1 then
table.insert(players, cid)
end
end
str = str .. ""..#players.." Player"..(#players > 1 and "s" or "").." from team "..(getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage) == 0 and _Lib_Battle_Info.TeamTwo.name or _Lib_Battle_Info.TeamOne.name).." won the event battlefield, they received a ".._Lib_Battle_Info.Reward[2].." "..getItemNameById(_Lib_Battle_Info.Reward[1]).."!"
for i = 1, #players do
doPlayerAddItem(players[i], _Lib_Battle_Info.Reward[1], _Lib_Battle_Info.Reward[2])
doRemoveCondition(players[i], CONDITION_OUTFIT)
doTeleportThing(players[i], getTownTemplePosition(getPlayerTown(players[i])))
setPlayerStorageValue(players[i], storage, -1)
end
resetBattle()
OpenWallBattle()
return doBroadcastMessage(str)
end

function CheckEvent(delay)
if delay > 0 and getGlobalStorageValue(_Lib_Battle_Info.storage_count) > 0 then
doBroadcastMessage("[BattleField Event] We are waiting "..getGlobalStorageValue(_Lib_Battle_Info.storage_count).." players to Battlefield starts")
elseif delay == 0 and getGlobalStorageValue(_Lib_Battle_Info.storage_count) > 0 then
local players = {}
for _, cid in pairs(getPlayersOnline()) do
if getPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage) == 1 or getPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage) == 1 then
table.insert(players, cid)
end
end
for i = 1, #players do
doRemoveCondition(players[i], CONDITION_OUTFIT)
doTeleportThing(players[i], getTownTemplePosition(getPlayerTown(players[i])))
setPlayerStorageValue(players[i], getPlayerStorageValue(players[i], _Lib_Battle_Info.TeamOne.storage) == 1 and _Lib_Battle_Info.TeamOne.storage or _Lib_Battle_Info.TeamTwo.storage, -1)
end
doBroadcastMessage("The event cannot be started because not had enough players.")
setGlobalStorageValue(_Lib_Battle_Info.storage_count, 0)
resetBattle()
removeBattleTp()
end
addEvent(CheckEvent, 60000, delay-1)
end

Data/CreatureScript/BattleCreatureScript.lua :

function onLogin(cid)
if getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage) == -1 then
setGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage, 0)
setGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage, 0)
setGlobalStorageValue(_Lib_Battle_Info.storage_count, 0)
end
registerCreatureEvent(cid, "BattleTeam")
registerCreatureEvent(cid, "BattleDeath")
return true
end


function onCombat(cid, target)
if isPlayer(cid) and isPlayer(target) then
if getPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage) == 1 and getPlayerStorageValue(target, _Lib_Battle_Info.TeamOne.storage) == 1 then
doPlayerSendCancel(cid, "You may not attack your team mates.") return false
end
if getPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage) == 1 and getPlayerStorageValue(target, _Lib_Battle_Info.TeamTwo.storage) == 1 then
doPlayerSendCancel(cid, "You may not attack your team mates.") return false
end
return true
end
return true
end

function onPrepareDeath(cid, deathList, lastHitKiller, mostDamageKiller)
if getPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage) >= 1 then
setPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage, -1)
setGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage, getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage)-1)
doRemoveCondition(cid, CONDITION_OUTFIT)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "[Battle Field] You Are Dead!")
if getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage) == 0 then
getWinnersBattle(_Lib_Battle_Info.TeamTwo.storage)
else
doBroadCastBattle(23,"[BattleField Information] ".._Lib_Battle_Info.TeamOne.name.." "..getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage).." VS "..getGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage).." " .._Lib_Battle_Info.TeamTwo.name)
end
elseif getPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage) >= 1 then
setPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage, -1)
setGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage, getGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage)-1)
doRemoveCondition(cid, CONDITION_OUTFIT)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "[Battle Field] You Are Dead!")
if getGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage) == 0 then
getWinnersBattle(_Lib_Battle_Info.TeamOne.storage)
else
doBroadCastBattle(23,"[BattleField Information] ".._Lib_Battle_Info.TeamOne.name.." "..getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage).." VS "..getGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage).." " .._Lib_Battle_Info.TeamTwo.name)
end
end
return true
end

creaturescript.xml :

<event type="login" name="BattleLogin" event="script" value="BattleCreatureScript.lua"/>
<event type="PrepareDeath" name="BattleDeath" event="script" value="BattleCreatureScript.lua"/>
<event type="combat" name="BattleTeam" event="script" value="BattleCreatureScript.lua"/>

Data/Globalevents/BattleGlobalEvents.lua :

function onThink(interval, lastExecution) 
local _Lib_Battle_Days = {
        ["Monday"] = {
            ["16:00"] = {players = 30},
            ["21:30"] = {players = 20}    
        },
        ["Tuesday"] = {
            ["17:02"] = {players = 8}    
        },
        ["Thursday"] = {
            ["11:26"] = {players = 4},
            ["20:30"] = {players = 10}
        }
}
if _Lib_Battle_Days[os.date("%A")] then
local hours = tostring(os.date("%X")):sub(1, 5)       
local tb = _Lib_Battle_Days[os.date("%A")][hours] 
if tb and (tb.players % 2 == 0) then 
local tp = doCreateItem(1387, 1, _Lib_Battle_Info.tpPos)
doItemSetAttribute(tp, "aid", 45000)
CheckEvent(_Lib_Battle_Info.limit_Time)
doBroadcastMessage("The event BattleField was opened and We are waiting "..tb.players.." Players! Team divided into "..((tb.players)/2).." VS "..((tb.players)/2))
setGlobalStorageValue(_Lib_Battle_Info.storage_count, tb.players)
return true
end
end
return true
end

Data/Movements/BattleMovements.lua :

local conditionBlack = createConditionObject(CONDITION_OUTFIT)
setConditionParam(conditionBlack, CONDITION_PARAM_TICKS, -1)
addOutfitCondition(conditionBlack, {lookType = 134, lookHead = 114, lookBody = 114, lookLegs = 114, lookFeet = 114})
local conditionRed = createConditionObject(CONDITION_OUTFIT)
setConditionParam(conditionRed, CONDITION_PARAM_TICKS, -1)
addOutfitCondition(conditionRed, {lookType = 143, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94})
function onStepIn(cid, item, position, fromPosition)
if getPlayerAccess(cid) > 3 then
doTeleportThing(cid, _Lib_Battle_Info.TeamOne.pos) return false
elseif getGlobalStorageValue(_Lib_Battle_Info.storage_count) > 0 then
setGlobalStorageValue(_Lib_Battle_Info.storage_count, getGlobalStorageValue(_Lib_Battle_Info.storage_count)-1)
end
if getGlobalStorageValue(_Lib_Battle_Info.storage_count) >= 0 then
if getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage) < getGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage) then
setPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage, 1)
doAddCondition(cid, conditionBlack)
setGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage, getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage)+1)
doTeleportThing(cid, _Lib_Battle_Info.TeamOne.pos)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You will join the team " .. _Lib_Battle_Info.TeamOne.name .. "!")
else
setPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage, 1)
doAddCondition(cid, conditionRed)
setGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage, getGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage)+1)
doTeleportThing(cid, _Lib_Battle_Info.TeamTwo.pos)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You will join the team " .. _Lib_Battle_Info.TeamTwo.name .. "!")
end
end
if getGlobalStorageValue(_Lib_Battle_Info.storage_count) == 0 then
removeBattleTp()
doBroadcastMessage("Battlefield will start in 2 minutes, please create your strategy!")
addEvent(doBroadcastMessage, 2*60*1000-500, "BattleField will begin now!")
addEvent(OpenWallBattle, 2*60*1000)
end
return true
end

Como configurar:

 

Configuração dos Times:

 

 

em Data/Lib/BattleLib.lua vai ter essa tabela:
_Lib_Battle_Info = {
Reward = {2160,10},
TeamOne = {name = "Black Assassins", storage = 140120, pos = {x=613,y=802,z=7}},
TeamTwo = {name = "Red Barbarians",storage = 140121,pos = {x=631,y=801,z=7}},
storage_count = 180400,
tpPos = {x=158, y=57, z=7},
limit_Time = 10 -- em minutos
}
Reward = {2160,10} -- aqui se configura o prêmio que os jogadores vão receber
--

TeamOne = {

name = "Black Assassins", -- É o nome do time

storage = 140120, -- n mexa

pos = {x=613,y=802,z=7} -- é a posição para onde eles vão entrar no teleport, cada time tem o seu.

}
--

storage_count = 180400, -- n mexa
--

tpPos = {x=158, y=57, z=7}, -- É A POSIÇÃO ONDE O TELEPORT VAI ABRIR
--

limit_Time = 10 -- É o tempo limite para os jogadores entrarem no teleport.

 

Configurar Datas do evento:

 

 

Em data/globalevents/script/BattleGlobalEvents.lua vai ter essa tabela:
_Lib_Battle_Days = {
["Monday"] = {
["16:00"] = {players = 30},
["21:30"] = {players = 20}
},
["Wednesday"] = {
["19:00"] = {players = 16}
},
["Thursday"] = {
["11:26"] = {players = 4},
["20:30"] = {players = 10}
}
}
["DIA DA SEMANA"] = {

["HORARIO] = {players = QUANTOS JOGADORES IRÃO PARTICIPAR}


Regra: Sempre coloque números pares para os jogadores, do contrário o evento não irá iniciar.
--

 

Configuração Paredes:

 

 

É importante que você faça no mapper editor as paredes que vão separar os times, quando o evento começar elas serão removidas, e quanto terminar o evento elas serão repostas automaticamente.

em Data/Lib/BattleLib.lua vai ter essa função:
function OpenWallBattle()
local B = {
{1543,{x=622, y=803, z=7, stackpos = 1}},
{1543,{x=622, y=804, z=7, stackpos = 1}},
{1543,{x=622, y=805, z=7, stackpos = 1}},
{1543,{x=622, y=806, z=7, stackpos = 1}}
}
for i = 1, #B do
if getTileItemById(B[i][2], B[i][1]).uid == 0 then
doCreateItem(B[i][1], 1, B[i][2])
else
doRemoveItem(getThingfromPos(B[i][2]).uid,1)
end
end
end
local B = { 
{1543,{x=622, y=803, z=7, stackpos = 1}}, 
{1543,{x=622, y=804, z=7, stackpos = 1}},
{1543,{x=622, y=805, z=7, stackpos = 1}},
{1543,{x=622, y=806, z=7, stackpos = 1}} 
}

{ID DA SUA PAREDE, E A PÓS DELA}

PODE AUMENTAR O NÚMERO DE PAREDES E OS ID DELAS.

 

Creditos : 100% Vodkart


Para botar o mapa Battlefield no servidor abra o mapa do BF no RME copie completamente a area,copie e aperte "file/new" abra o seu mapa e cole na area que você desejar.

Link para o post
Compartilhar em outros sites

Mas Qualquer mapa vale ?? voce poderia pasar o seu?

                                                                         github.png TFS 0.4 DEV                                                                                                       nvzl0l.jpg
 
Página no facebook: https://www.facebook.com/Suporterking                                                                                     
Skype: fabinhodias01
 
 
"A almapermanece em suas criações" 


h3dhnuI.jpg           
(Dou suporte apenas em tópicos..)

Link para o post
Compartilhar em outros sites

vLW MAS eu posso colar o apa aonde eu kiser no remr que vai ter o evento tudo certin???

ou presiso configura augo? me ensina ae man plz

                                                                         github.png TFS 0.4 DEV                                                                                                       nvzl0l.jpg
 
Página no facebook: https://www.facebook.com/Suporterking                                                                                     
Skype: fabinhodias01
 
 
"A almapermanece em suas criações" 


h3dhnuI.jpg           
(Dou suporte apenas em tópicos..)

Link para o post
Compartilhar em outros sites

Valew ae Reward = {2160,10} -- aqui se configura o prêmio que os jogadores vão receber
--

pos = {x=613,y=802,z=7} -- é a posição para onde eles vão entrar no teleport, cada time tem o seu.

nessa parte a posiçao vai ser aonde eu colei o mapa no remr?

                                                                         github.png TFS 0.4 DEV                                                                                                       nvzl0l.jpg
 
Página no facebook: https://www.facebook.com/Suporterking                                                                                     
Skype: fabinhodias01
 
 
"A almapermanece em suas criações" 


h3dhnuI.jpg           
(Dou suporte apenas em tópicos..)

Link para o post
Compartilhar em outros sites

Como diz acima é a posição onde os players irão entrar no tp.

Cada time tem seu lugar de ser teleportado você pode alterar aqui :

TeamOne = {name = "Black Assassins", storage = 140120, pos = {x=613,y=802,z=7}},
TeamTwo = {name = "Red Barbarians",storage = 140121,pos = {x=631,y=801,z=7}},
Editado por ViitinG (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Mas tipo eu colei o mapa em otro lugar ae quando o player cair no teleport vai entra dentro do batle field normalmente?

                                                                         github.png TFS 0.4 DEV                                                                                                       nvzl0l.jpg
 
Página no facebook: https://www.facebook.com/Suporterking                                                                                     
Skype: fabinhodias01
 
 
"A almapermanece em suas criações" 


h3dhnuI.jpg           
(Dou suporte apenas em tópicos..)

Link para o post
Compartilhar em outros sites

Tem Como abrir o evento Por Comando Tambem?

                                                                         github.png TFS 0.4 DEV                                                                                                       nvzl0l.jpg
 
Página no facebook: https://www.facebook.com/Suporterking                                                                                     
Skype: fabinhodias01
 
 
"A almapermanece em suas criações" 


h3dhnuI.jpg           
(Dou suporte apenas em tópicos..)

Link para o post
Compartilhar em outros sites
  • Solução

a sim obrigado!

                                                                         github.png TFS 0.4 DEV                                                                                                       nvzl0l.jpg
 
Página no facebook: https://www.facebook.com/Suporterking                                                                                     
Skype: fabinhodias01
 
 
"A almapermanece em suas criações" 


h3dhnuI.jpg           
(Dou suporte apenas em tópicos..)

Link para o post
Compartilhar em outros sites

O tópico foi movido para a área correta, preste mais atenção da próxima vez!

Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680

Este tópico foi movido:

De: "OTServAprendizagemOutros Tutorias"

Para: "OTServSuporte OTServSuporte de Scripts"

Link para o post
Compartilhar em outros sites

Intao Man Obrigado ae gabrielzin Eles apenas Postam os scripts temtam esplicar  Mas No final Nunca da Certo!

                                                                         github.png TFS 0.4 DEV                                                                                                       nvzl0l.jpg
 
Página no facebook: https://www.facebook.com/Suporterking                                                                                     
Skype: fabinhodias01
 
 
"A almapermanece em suas criações" 


h3dhnuI.jpg           
(Dou suporte apenas em tópicos..)

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 fabiodias
      Galera Me ajude, O pk do Meu Ot serv De tibia, Demora 10 minutos Para sair.,
      e meu server é mapa baiak..
      Me Ajudem arrumar o tempo Para .
      PK Sair rapido Com 2m
       
      Valendo 2 Rep Para Quem Ajudar!
    • Por fabiodias
      Galera eu criei uma arena mas quado a pessoa morre ela perde lvl.,
      como eu fasso para por para a pessoa não perde, lvl,itens, nada
      dentro da arena??
       
      ajudem plz
       
       
      VALENDO 2 REPS
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo