- Fórum
- xTibia - Notícias e Suporte
- Soluções
- Archived
- Ajuda com script do evento Battlefield
JU
Ajuda com script do evento Battlefield
Por juliok80, 20 de jan. de 2013 em Archived
dúvida
evento
battlefield
otserv
tibia
script
1
587
Por juliok80, 20 de jan. de 2013 em Archived
info
Grupo: Artesão
Registrado: 15/11/12
Posts: 120
Reputação: +17
Char no Tibia: Ba Rao
E ae galera, jóinha!?
Eu estou tentando colocar o evento battlefield do Vodkart no meu otserv, porém estou tendo um probleminha...
Segue link: http://www.xtibia.com/forum/topic/192920-battlefield-event/page__fromsearch__1
Eu adicionei o evento tudo certinho como manda o figurino, quando o evento é executado, surge o teleport no templo e aparece a mensagem do evento... até ai beleza!
O problema é que quando o player tenta entrar no teleport, o player não é teleportado, ele pisa sobre o teleport e não acontece nada, como se o teleport estivesse sem coordenadas... Eu coloquei as coordenadas no script, mas não sei o que está acontecendo!
Aqui está a parte do script onde deve ser adicionada as coordenadas:
_Lib_Battle_Info = { Reward = {2160,10}, TeamOne = {name="Black Assassins", storage=140120, pos={x=294,y=93,z=6}}, TeamTwo = {name="Red Barbarians", storage=140121, pos={x=309,y=93,z=6}}, storage_count = 180400, tpPos = {x=155, y=54, z=7}, limit_Time = 4 -- 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 = { {3517,{x=303, y=107, z=6, stackpos = 1}}, {3517,{x=303, y=108, z=6, stackpos = 1}}, {3517,{x=303, y=109, z=6, stackpos = 1}}, {3517,{x=303, y=110, z=6, 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) endImagem das coordenadas:
Alguma alma bondosa pode me ajudar, por favor!?
Obrigado.
Falou!