Masterlokinhon 61 Postado Julho 17, 2015 Share Postado Julho 17, 2015 (editado) 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 esse 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 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 end adicione as seguintes tags no globalevents.xml dentro da pasta globalevents <globalevent name="streamLoadMap" type="startup" script="streamloadmap.lua"/> <globalevent name="streamLoadPlayer" interval="1000" script="streamloadplayer.lua"/> 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ó colocar include('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, 2015 por Masterlokinhon mulino reagiu a isso 1 Link para o comentário https://xtibia.com/forum/topic/235594-stream-live-tfs-10-e-12/ Compartilhar em outros sites More sharing options...
Helflin 9 Postado Julho 17, 2015 Share Postado Julho 17, 2015 Funciona em TFS 0.4 ? Link para o comentário https://xtibia.com/forum/topic/235594-stream-live-tfs-10-e-12/#findComment-1661273 Compartilhar em outros sites More sharing options...
Masterlokinhon 61 Postado Julho 18, 2015 Autor Share Postado Julho 18, 2015 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 Link para o comentário https://xtibia.com/forum/topic/235594-stream-live-tfs-10-e-12/#findComment-1661311 Compartilhar em outros sites More sharing options...
DeCarvalho 65 Postado Julho 18, 2015 Share Postado Julho 18, 2015 +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... Link para o comentário https://xtibia.com/forum/topic/235594-stream-live-tfs-10-e-12/#findComment-1661319 Compartilhar em outros sites More sharing options...
Masterlokinhon 61 Postado Julho 18, 2015 Autor Share Postado Julho 18, 2015 (editado) 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, 2015 por Masterlokinhon Link para o comentário https://xtibia.com/forum/topic/235594-stream-live-tfs-10-e-12/#findComment-1661334 Compartilhar em outros sites More sharing options...
DeCarvalho 65 Postado Julho 18, 2015 Share Postado Julho 18, 2015 Rapaz erro nenhum.. tudo perfeito.. mas quando abre o stream a tela fica em branco.. Link para o comentário https://xtibia.com/forum/topic/235594-stream-live-tfs-10-e-12/#findComment-1661353 Compartilhar em outros sites More sharing options...
Masterlokinhon 61 Postado Julho 18, 2015 Autor Share Postado Julho 18, 2015 Posta um print pra eu ver. você deu o include e configuro o mysql.php certinho ? Link para o comentário https://xtibia.com/forum/topic/235594-stream-live-tfs-10-e-12/#findComment-1661362 Compartilhar em outros sites More sharing options...
DeCarvalho 65 Postado Julho 18, 2015 Share Postado Julho 18, 2015 (editado) 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, 2015 por DkAngel Link para o comentário https://xtibia.com/forum/topic/235594-stream-live-tfs-10-e-12/#findComment-1661378 Compartilhar em outros sites More sharing options...
Masterlokinhon 61 Postado Julho 18, 2015 Autor Share Postado Julho 18, 2015 (editado) O erro deve ser porque você ta colocando no index do gesior tenta fazer um teste assim entra na pasta pages e abre o latestenews.php logo depois do <?php coloque include("stream/index.php"); ve se vai ficar tudo ok Editado Julho 18, 2015 por Masterlokinhon Link para o comentário https://xtibia.com/forum/topic/235594-stream-live-tfs-10-e-12/#findComment-1661380 Compartilhar em outros sites More sharing options...
DeCarvalho 65 Postado Julho 18, 2015 Share Postado Julho 18, 2015 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} } Link para o comentário https://xtibia.com/forum/topic/235594-stream-live-tfs-10-e-12/#findComment-1661383 Compartilhar em outros sites More sharing options...
Masterlokinhon 61 Postado Julho 18, 2015 Autor Share Postado Julho 18, 2015 <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 ? Link para o comentário https://xtibia.com/forum/topic/235594-stream-live-tfs-10-e-12/#findComment-1661384 Compartilhar em outros sites More sharing options...
DeCarvalho 65 Postado Julho 18, 2015 Share Postado Julho 18, 2015 (editado) 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, 2015 por DkAngel Link para o comentário https://xtibia.com/forum/topic/235594-stream-live-tfs-10-e-12/#findComment-1661388 Compartilhar em outros sites More sharing options...
Masterlokinhon 61 Postado Julho 18, 2015 Autor Share Postado Julho 18, 2015 (editado) 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, 2015 por Masterlokinhon Link para o comentário https://xtibia.com/forum/topic/235594-stream-live-tfs-10-e-12/#findComment-1661390 Compartilhar em outros sites More sharing options...
DeCarvalho 65 Postado Julho 18, 2015 Share Postado Julho 18, 2015 (editado) 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, 2015 por DkAngel Link para o comentário https://xtibia.com/forum/topic/235594-stream-live-tfs-10-e-12/#findComment-1661392 Compartilhar em outros sites More sharing options...
Masterlokinhon 61 Postado Julho 18, 2015 Autor Share Postado Julho 18, 2015 (editado) 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, 2015 por Masterlokinhon Link para o comentário https://xtibia.com/forum/topic/235594-stream-live-tfs-10-e-12/#findComment-1661398 Compartilhar em outros sites More sharing options...
Posts Recomendados