Funciona em TFS 0.4 ?
- Fórum
- OTServ
- Recursos
- Websites & Layouts
- Stream Live tfs 1.0 e 1.2
info
Grupo: Campones
Registrado: 15/01/10
Posts: 23
Reputação: +61

não testei.. testei somente no 1.0, como não entendo muito não sei se as função do globalevents vai funcionar mais talvez só trocar poca coisa do globalevents
info
Grupo: Barão
Registrado: 28/10/10
Posts: 206
Reputação: +65
Char no Tibia: Mage Junkie

+rep
Vi ali que era para 1.0 mas mesmo assim testei aqui usando esse http://www.tibiaking.com/forum/topic/53099-1078-tfs-12-cast-system-novos-outfits-mounts/ mas a tela fica branca..
De qualquer maneira parabéns pelo script...
info
Grupo: Campones
Registrado: 15/01/10
Posts: 23
Reputação: +61

Vlw DkAngel, aconteceu alguma erro na hora de abrir o ot-server ? ou no site?
talvez funcione no 1.2 vou da um olhada acho que as função são as mesmas.
Editado Julho 18 por Masterlokinhon
info
Grupo: Barão
Registrado: 28/10/10
Posts: 206
Reputação: +65
Char no Tibia: Mage Junkie

Rapaz erro nenhum.. tudo perfeito.. mas quando abre o stream a tela fica em branco..
info
Grupo: Campones
Registrado: 15/01/10
Posts: 23
Reputação: +61

Posta um print pra eu ver.
você deu o include e configuro o mysql.php certinho ?
info
Grupo: Barão
Registrado: 28/10/10
Posts: 206
Reputação: +65
Char no Tibia: Mage Junkie

Sim, o mysql esta configurado coma s informações corretas mas reparei que mesmo que coloque uma info errada ele não acusa, digo colocar nome da db errada ou senha diferente ele manda a informação no console como se tivesse tudo bem, mas as informações colocadas estão certas, foi somente um teste com info errada..
sobre o include vai na ss e tbm a tela quando acesso o stream, se precisar de algo mais detalhado basta informar, grato pelo apoio
[edit] postei img erada, vou reupar a img correta
Desculpa a minha ignorância mas o include é para colocar no index.php do site né, certo eu havia colocado no index errado (se for), colocando o o include no index da raiz o sit enão aparece, tirando ele volta a aparecer..

e sem o include no index o site funciona mas se acessar direto o /stream a tela fica branca tbm sem erro algum..do mesmo jeito que esta aparecendo o localhost aí.
[edit] o problema do localhost em branco é que eu havia colocado o include no index do stream, removi e o site voltou a aparecer mas acessando o stream direto localhost/stream a tela continua branca

Editado Julho 18 por DkAngel
info
Grupo: Campones
Registrado: 15/01/10
Posts: 23
Reputação: +61

info
Grupo: Barão
Registrado: 28/10/10
Posts: 206
Reputação: +65
Char no Tibia: Mage Junkie

Bem, continuo agradecendo pelo suporte..
colocando o include no latestnews e carregando o site ele fica assim

a area informada em ambos os lua começa no ponto indicado na proxima img
do mapa
function onStartup()
local stream = {
pos = {x = 1281, y = 1547, z = 7},
posmax = {x = 20, y = 16}
}
e do player
function onThink(interval)
local stream = {
pos = {x = 1281, y = 1547, z = 7},
posmax = {x = 20, y = 16}
}

info
Grupo: Campones
Registrado: 15/01/10
Posts: 23
Reputação: +61

<globalevent name="streamLoadMap" type="startup" script="streamloadmap.lua"/>
<globalevent name="streamLoadPlayer" interval="1000" script="streamloadplayer.lua"/>
Você colocou certinho ?
da uma olhada no mysql vai no stream_map ve se tem alguma coisa lah ?
Abre o localhost/stream, vê se vai aparecer algum erro e se vai ficar preto tbm ?
info
Grupo: Barão
Registrado: 28/10/10
Posts: 206
Reputação: +65
Char no Tibia: Mage Junkie

Desculpe por lhe fazer perder tanto tempo, as imgs não estavam aparecendo pois eu criei a pasta imagens com nome errado, no stream_map esta carregado todos os tiles, só os players que não estão aparecendo.. o globalevents esta correto como o informado.
A pagina principal, com o client aberto com um char na posição gravavel tem ja uns 6 minutos e nada de char no stream

o stream_player

para evitar outra 'cabacisse' minha eu conferi o nome da pasta e esta da forma informada
na pasta raiz www/stream/outfits/ e a numeração de cada um por em pastas de 1 até 700 e alguma coisa
Editado Julho 18 por DkAngel
info
Grupo: Campones
Registrado: 15/01/10
Posts: 23
Reputação: +61

Se o stream_player não ta aparecendo nada o problema agora é no streamloadplayer.lua
não fica dando nenhum erro no servidor ? depois de aberto
Editado Julho 18 por Masterlokinhon
info
Grupo: Barão
Registrado: 28/10/10
Posts: 206
Reputação: +65
Char no Tibia: Mage Junkie

Nenhum erro sequer.. segue a imagem

segue o streamloadplayer.lua que foi só descompactado com a posição alterada
function onThink(interval)
local stream = {
pos = {x = 1274, y = 1546, z = 7},
posmax = {x = 20, y = 16}
}
local posx = math.floor(tonumber((stream.pos.x) - (stream.posmax.x/2)))
local posy = math.floor(tonumber((stream.pos.y) - (stream.posmax.y/2)))
local posx2 = math.floor(tonumber((stream.pos.x) + (stream.posmax.x/2)))
local posy2 = math.floor(tonumber((stream.pos.y) + (stream.posmax.y/2)))
db.query("UPDATE `stream_player` SET `del` = 1")
fromArea = {{x = posx, y = posy, z = stream.pos.z},{x = posx2, y = posy2, z = stream.pos.z}}
for x = fromArea[1].x, fromArea[2].x do
for y = fromArea[1].y, fromArea[2].y do
for z = fromArea[1].z, fromArea[2].z do
if(getThingfromPos({x = x, y = y, z = z, stackpos = 255}).uid > 0) then
if(isPlayer(getThingfromPos({x = x, y = y, z = z, stackpos = 255}).uid))then
local c = Player(getThingfromPos({x = x, y = y, z = z, stackpos = 255}).uid)
local name = c:getName()
local dir = c:getDirection()
local otf = c:getOutfit()
local selectQuery = db.storeQuery("SELECT * FROM `stream_player` WHERE `name` = "..db.escapeString(name))
if selectQuery ~= false then
db.query("UPDATE `stream_player` SET `posx` = ".. x ..", `posy` = "..y..", `del` = 0, `dir` = "..dir..", `outfit` = "..otf.lookType..",`head` = "..otf.lookHead..",`body` = "..otf.lookBody..",`legs` = "..otf.lookLegs..",`feet` = "..otf.lookFeet..",`addon` = "..otf.lookAddons..",`mount` = "..otf.lookMount.." WHERE `name` = "..db.escapeString(name))
else
db.query("INSERT INTO `stream_player` (`id`, `posx`, `posy`,`name`,`dir`,`del`,`outfit`,`head`,`body`,`legs`,`feet`,`addon`,`mount`) VALUES (1,".. x ..", "..y..", "..db.escapeString(name)..", "..dir..",0, "..otf.lookType..", "..otf.lookHead..", "..otf.lookBody..", "..otf.lookLegs..", "..otf.lookFeet..", "..otf.lookAddons..", "..otf.lookMount..")")
end
elseif (isNpc(getThingfromPos({x = x, y = y, z = z, stackpos = 255}).uid)) then
local c = Creature(getThingfromPos({x = x, y = y, z = z, stackpos = 255}).uid)
local name = c:getName()
local dir = c:getDirection()
local otf = c:getOutfit()
local selectQuery = db.storeQuery("SELECT * FROM `stream_player` WHERE `name` = "..db.escapeString(name))
if selectQuery ~= false then
db.query("UPDATE `stream_player` SET `posx` = ".. x ..", `posy` = "..y..", `del` = 0, `dir` = "..dir..", `outfit` = "..otf.lookType..",`head` = "..otf.lookHead..",`body` = "..otf.lookBody..",`legs` = "..otf.lookLegs..",`feet` = "..otf.lookFeet..",`addon` = "..otf.lookAddons..",`mount` = "..otf.lookMount.." WHERE `name` = "..db.escapeString(name))
else
db.query("INSERT INTO `stream_player` (`id`, `posx`, `posy`,`name`,`dir`,`del`,`outfit`,`head`,`body`,`legs`,`feet`,`addon`,`mount`) VALUES ( 0,".. x ..", "..y..", "..db.escapeString(name)..", "..dir..", 0, "..otf.lookType..", "..otf.lookHead..", "..otf.lookBody..", "..otf.lookLegs..", "..otf.lookFeet..", "..otf.lookAddons..", "..otf.lookMount..")")
end
end
end
end
end
end
db.query("DELETE FROM `stream_player` WHERE `del` = 1")
return true
end
Editado Julho 18 por DkAngel
info
Grupo: Campones
Registrado: 15/01/10
Posts: 23
Reputação: +61

Coloca
function isPlayer(cid) return Player(cid) ~= nil end
function isNpc(cid) return Npc(cid) ~= nil end
antes disso
function onThink(interval)
local stream = {
pos = {x = 1006, y = 993, z = 5},
posmax = {x = 20, y = 16}
}
no streamLoadPlayer.lua
Editado Julho 18 por Masterlokinhon



info
Grupo: Campones
Registrado: 15/01/10
Posts: 23
Reputação: +61
Olá Xtibianos,
Vim trazer sistema de stream para seu site.
faça o download dos arquivos:
sql
stream
outfit
imagens
streamglobalevents
Como funciona:
Quando o server tiver abrindo ele carrega o mapa e envia para o mysql isso da um delay de 20 segundos +-
e ele fica enviando informação da posição dos players para o mysql a cada 1 segundo
Adicionar:
- executes os arquivos na pasta sql no seu banco de dados do seu servidor do tibia
- extraia a pasta stream para o seu site o arquivo loadplayer.data.php coloque na pasta principal do seu site
- extraia as pastas outfit e imagens para dentro da pasta stream que você extraiu no seu site
- extraia a pasta streamglobalevents dentro da pasta globalevents/scripts do seu servidor
caso queira usar no tfs 1.2 edite streamloadplayer.lua por essefunction onThink(interval) local stream = { pos = {x = 1274, y = 1546, z = 7}, posmax = {x = 20, y = 16} } local posx = math.floor(tonumber((stream.pos.x) - (stream.posmax.x/2))) local posy = math.floor(tonumber((stream.pos.y) - (stream.posmax.y/2))) local posx2 = math.floor(tonumber((stream.pos.x) + (stream.posmax.x/2))) local posy2 = math.floor(tonumber((stream.pos.y) + (stream.posmax.y/2))) db.query("UPDATE `stream_player` SET `del` = 1") fromArea = {{x = posx, y = posy, z = stream.pos.z},{x = posx2, y = posy2, z = stream.pos.z}} for x = fromArea[1].x, fromArea[2].x do for y = fromArea[1].y, fromArea[2].y do for z = fromArea[1].z, fromArea[2].z do local tile = Tile({x = x, y = y, z = z}) if tile then if tile:getCreatures() then for _, cid in pairs(tile:getCreatures()) do if cid:isPlayer() then local c = Player(cid) local name = c:getName() local dir = c:getDirection() local otf = c:getOutfit() local selectQuery = db.storeQuery("SELECT * FROM `stream_player` WHERE `id` = "..db.escapeString(c.uid)) if selectQuery ~= false then db.query("UPDATE `stream_player` SET `posx` = ".. x ..", `posy` = "..y..", `del` = 0, `dir` = "..dir..", `outfit` = "..otf.lookType..",`head` = "..otf.lookHead..",`body` = "..otf.lookBody..",`legs` = "..otf.lookLegs..",`feet` = "..otf.lookFeet..",`addon` = "..otf.lookAddons..",`mount` = "..otf.lookMount.." WHERE `id` = "..db.escapeString(c.uid)) else db.query("INSERT INTO `stream_player` (`id`, `posx`, `posy`,`name`,`dir`,`del`,`outfit`,`head`,`body`,`legs`,`feet`,`addon`,`mount`) VALUES ("..db.escapeString(c.uid)..",".. x ..", "..y..", "..db.escapeString(name)..", "..dir..",0, "..otf.lookType..", "..otf.lookHead..", "..otf.lookBody..", "..otf.lookLegs..", "..otf.lookFeet..", "..otf.lookAddons..", "..otf.lookMount..")") end elseif cid:isNpc() then local c = Creature(cid) local name = c:getName() local dir = c:getDirection() local otf = c:getOutfit() local selectQuery = db.storeQuery("SELECT * FROM `stream_player` WHERE `id` = "..db.escapeString(c.uid)) if selectQuery ~= false then db.query("UPDATE `stream_player` SET `posx` = ".. x ..", `posy` = "..y..", `del` = 0, `dir` = "..dir..", `outfit` = "..otf.lookType..",`head` = "..otf.lookHead..",`body` = "..otf.lookBody..",`legs` = "..otf.lookLegs..",`feet` = "..otf.lookFeet..",`addon` = "..otf.lookAddons..",`mount` = "..otf.lookMount.." WHERE `id` = "..db.escapeString(c.uid)) else db.query("INSERT INTO `stream_player` (`id`, `posx`, `posy`,`name`,`dir`,`del`,`outfit`,`head`,`body`,`legs`,`feet`,`addon`,`mount`) VALUES ("..db.escapeString(c.uid)..",".. x ..", "..y..", "..db.escapeString(name)..", "..dir..", 0, "..otf.lookType..", "..otf.lookHead..", "..otf.lookBody..", "..otf.lookLegs..", "..otf.lookFeet..", "..otf.lookAddons..", "..otf.lookMount..")") end elseif cid:isMonster() then local c = Monster(cid) local name = c:getName() local dir = c:getDirection() local otf = c:getOutfit() local selectQuery = db.storeQuery("SELECT * FROM `stream_player` WHERE `id` = "..db.escapeString(c.uid)) if selectQuery ~= false then db.query("UPDATE `stream_player` SET `posx` = ".. x ..", `posy` = "..y..", `del` = 0, `dir` = "..dir..", `outfit` = "..otf.lookType..",`head` = "..otf.lookHead..",`body` = "..otf.lookBody..",`legs` = "..otf.lookLegs..",`feet` = "..otf.lookFeet..",`addon` = "..otf.lookAddons..",`mount` = "..otf.lookMount.." WHERE `id` = "..db.escapeString(c.uid)) else db.query("INSERT INTO `stream_player` (`id`, `posx`, `posy`,`name`,`dir`,`del`,`outfit`,`head`,`body`,`legs`,`feet`,`addon`,`mount`) VALUES ("..db.escapeString(c.uid)..",".. x ..", "..y..", "..db.escapeString(name)..", "..dir..", 0, "..otf.lookType..", "..otf.lookHead..", "..otf.lookBody..", "..otf.lookLegs..", "..otf.lookFeet..", "..otf.lookAddons..", "..otf.lookMount..")") end elseif cid:isSummon() then local c = Creature(cid):getMaster() local name = c:getName() local dir = c:getDirection() local otf = c:getOutfit() local selectQuery = db.storeQuery("SELECT * FROM `stream_player` WHERE `id` = "..db.escapeString(c.uid)) if selectQuery ~= false then db.query("UPDATE `stream_player` SET `posx` = ".. x ..", `posy` = "..y..", `del` = 0, `dir` = "..dir..", `outfit` = "..otf.lookType..",`head` = "..otf.lookHead..",`body` = "..otf.lookBody..",`legs` = "..otf.lookLegs..",`feet` = "..otf.lookFeet..",`addon` = "..otf.lookAddons..",`mount` = "..otf.lookMount.." WHERE `id` = "..db.escapeString(c.uid)) else db.query("INSERT INTO `stream_player` (`id`, `posx`, `posy`,`name`,`dir`,`del`,`outfit`,`head`,`body`,`legs`,`feet`,`addon`,`mount`) VALUES ("..db.escapeString(c.uid)..",".. x ..", "..y..", "..db.escapeString(name)..", "..dir..", 0, "..otf.lookType..", "..otf.lookHead..", "..otf.lookBody..", "..otf.lookLegs..", "..otf.lookFeet..", "..otf.lookAddons..", "..otf.lookMount..")") end elseif cid:isCreature() then local c = Creature(cid) local name = c:getName() local dir = c:getDirection() local otf = c:getOutfit() local selectQuery = db.storeQuery("SELECT * FROM `stream_player` WHERE `id` = "..db.escapeString(c.uid)) if selectQuery ~= false then db.query("UPDATE `stream_player` SET `posx` = ".. x ..", `posy` = "..y..", `del` = 0, `dir` = "..dir..", `outfit` = "..otf.lookType..",`head` = "..otf.lookHead..",`body` = "..otf.lookBody..",`legs` = "..otf.lookLegs..",`feet` = "..otf.lookFeet..",`addon` = "..otf.lookAddons..",`mount` = "..otf.lookMount.." WHERE `id` = "..db.escapeString(c.uid)) else db.query("INSERT INTO `stream_player` (`id`, `posx`, `posy`,`name`,`dir`,`del`,`outfit`,`head`,`body`,`legs`,`feet`,`addon`,`mount`) VALUES ("..db.escapeString(c.uid)..",".. x ..", "..y..", "..db.escapeString(name)..", "..dir..", 0, "..otf.lookType..", "..otf.lookHead..", "..otf.lookBody..", "..otf.lookLegs..", "..otf.lookFeet..", "..otf.lookAddons..", "..otf.lookMount..")") end end end end end end end end db.query("DELETE FROM `stream_player` WHERE `del` = 1") return true endadicione as seguintes tags no globalevents.xml dentro da pasta globalevents
Como usar:configure os arquivos dentro da pasta globalevents aonde estraiu streamloadmap.lua e streamloadplayer.lua
local stream = { pos = {x = 1006, y = 993, z = 5}, -- A POSIÇÃO DO CENTRO DA STREAM posmax = {x = 20, y = 16} -- NÃO MUDE NADA }configure o arquivo mysql.php com as informação do seu MYSQL$mysql = mysql_connect("HOST", "USER", "PASSWORD"); if (!$mysql) die ("<h1>ERROR: mysql</h1>"); $db = mysql_select_db("DB");para adicionar o stream para seu site só colocarinclude('stream/index.php');Correções:[21/07/2015] correção de imagens no site
[21/07/2015] correção dos nomes no site
[21/07/2015] melhoramento no carregamento da página
[21/07/2015] bug de carregamento de player no tfs 1.2
[21/07/2015] tfs 1.2 mostra summon e criaturas
Imagens:
https://youtu.be/DtzIdveeA_U
Créditos:
EU que fiz o script todo
Kamil Karkus por fornecer o outfit.php e as imagens
DkAngel - Pelo video
Editado Julho 21 por Masterlokinhon