Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Search the Community

Showing results for tags 'com'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Haze
    • Announcements & Updates
    • Official Files
    • User Central
  • Web development
    • CMS & Scripts
    • Codes
    • Tutoriais
    • Work in Progress
    • Support
    • Others
  • Games Development
    • Browser Games
    • Minecraft
    • Unreal Engine
    • Unity 3D
    • Cry Engine
    • JavaScript (HTML5)
    • Publish your Project
    • Support
    • Outros
  • Desktop Development
    • Codes
    • Tutoriais
    • Work in Progress
    • Outros
  • Graphic Design
    • Tutorials
    • Resources
    • Gallery
    • Support
  • O mundo fora...
    • Sales & Purchases
    • Mídia
    • Debates
    • Taverna

Product Groups

  • Account Modifications
  • Licenses

Categories

  • Officials
  • CMS & Layouts
    • Wordpress
    • HTML/CSS
    • PHP Script
    • Outros
  • Jogos
    • Habbo Hotel
    • Minecraft
    • Engines
  • Desktop
    • C#
    • Node
  • Design
    • Editáveis
    • Recursos de Imagens
    • Others

Categories

  • games
  • TV Shows
  • Technology
  • Cinema

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


E-mail


Facebook


Twitter


Skype


Discord


WhatsApp


Behance


DeviantArt


GitHub


Codepen


Outro

Found 42 results

  1. Mano do Aviso

    Instalação do tutorial Última atualização em 28/10/2018 Fazer o download do arquivo Fazer backup do filme [Hidden Content]Atualizar filme: [Hidden Content]Você precisa de 2 plug-in para instalação Download do plug-in All-in-One WP Migration: [Hidden Content]Download Plugin All-in-One WP Migração Extention: [Hidden Content]depois da instalação use user: admin Senha admin: [email protected]@
  2. Francisco Paixão

    DBMovies com IMDB funcionado. Testado no DooPlay 2.2.0 e 2.2.5. *por favor não remova nosso banner do script. Prints: da ativação da licença: https://prnt.sc/mfilzo do DBMovies funcionado: https://prnt.sc/mfinip do IMDB no post: https://prnt.sc/mfio3n Download: [Hidden Content] Mova o arquivo .zip para /inc/core/dbmovies/ e extraia Quem quiser CDN de filmes, séries e animes, chama no chat. Preço camarada com hospedagem :v
  3. Bah gurizada, passando aqui pra dizer que geral que leu issaq é corno talkey? Seguinte, canalzinho de volta, conteúdo novo e sendo recriado: Lembrando que quem não da like é porque da a bunda talkey!
  4. Jailson Junior

    Olá! Saudações, Jailson! Gostaria que você amigo ( de bom coração ) me ajuda-se no script Google Drive Proxy Player... O Que acontece... geralmente ele só aceita links do google drive, mas gostaria de colocar links em mp4 externos, será que teria como? Dados de Acesso via Chat Privado! Dados do Painel -> & FTP | Caso seja necessário! Desde já deixo meus agradecimentos!
  5. Fala meus bons, recentemente precisei fazer um código para enviar e-mails, que por sua vez é bem simples, no entanto quis implementar nele um sistema de template para enviar e-mails e repostas em JSON para utilizar com Ajax. Postei porque meu amigo @Fulano não queria que eu postasse. Beijos para ele. <?php class Mail { private $layout; private $rType = 'Ajax'; private $headers; public $to; public $message; public $subject = 'Mensagem de Email'; public function useHTML() { $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $this->headers = $headers; } public function set_from($from) { $this->headers .= "From: $from \r\n"; } public function set_response_type($type) { $this->rType = $type; } public function set_layout_var($var) { $this->layout['vars'][] = $var; } public function set_layout_data($data) { $this->layout['data'][] = $data; } public function set_layout($method, $data) { $lt = ($method == 'file' ? 'file' : 'html'); if ($lt == 'file') { $d = DOCUMENT_ROOT . '/' . $data; $l = file_get_contents($d); if (!$l) { $this->res(400, 'Ocorreu um problema interno (0x0F101)'); } $this->layout['model'] = $l; return true; } $this->layout['model'] = $data; return true; } private function generate_layout() { $this->layout['generated'] = str_replace($this->layout['vars'], $this->layout['data'], $this->layout['model']); } public function get_layout() { return $this->layout['generated']; } private function generate_message() { if (empty($this->layout) || is_null($this->layout)) return $this->message; $this->generate_layout(); return $this->layout['generated']; } public function send() { $message = $this->generate_message(); if ( mail($this->to, $this->subject, $message, $this->headers) ) return $this->res(200, 'E-mail enviado com sucesso'); return $this->res(403, 'Não foi possível enviar o e-mail.'); } private function res($code, $message) { $r = strtolower($this->rType); if($r == 'ajax') { echo json_encode(["status" => $code, 'response' => $message]); return true; } return json_encode(["status" => $code, 'response' => $message]); } } Lembrando que nesse código de cima estou utilizando uma Constate pré definida por mim, a DOCUMENT_ROOT, que é nada além da RAIZ da pasta. No caso, o layout deve ser referenciado de acordo com a raiz do site, mas você pode mudar isso, um exemplo de uso vai abaixo. <?php $Mail = new Mail(); $Mail->useHTML(); # Setar para usar o Header de HTML de E-mail # Setar o template HTML, caso não use essa função ele vai interpretar o e-mail como Mensagem comum e as funções de layout não irão funcionar. $Mail->set_layout('file', 'mail-templates/recover'); // Setar as variáveis para o php interpretar $Mail->set_layout_var('{logoURL}'); $Mail->set_layout_var('{user}'); $Mail->set_layout_var('{codigo}'); $Mail->set_layout_var('{buttonURL}'); $Mail->set_layout_var('{buttonTXT}'); // Setar os valores das variáveis POR ORDEM $Mail->set_layout_var('https://hazeforum.com/uploads/monthly_2019_04/small.png.52ed3bb48b55d1c0a766ad91482651b2.png'); $Mail->set_layout_data('iJhefe'); $Mail->set_layout_data('1234'); $Mail->set_layout_data('https://hazeforum.com'); $Mail->set_layout_data('Acesse nosso fórum'); $Mail->to = "[email protected]"; # Para quem vai o e-mail $Mail->subject = 'Recuperação de Senha: Haze Fórum'; # Assunto do e-mail $Mail->set_from('Haze Fórum <[email protected]>'); # Opcional, seta de quem veio o e-mail. return $Mail->send(); Nesse caso, o arquivo Recover está na pasta "mail-templates", na raiz do projeto. Arquivo Recover: <!doctype html> <html> <head> <meta name="viewport" content="width=device-width"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Soliticação de Senha</title> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" crossorigin="anonymous"> <style> @media only screen and (max-width: 620px) { table[class=body] h1 { font-size: 28px !important; margin-bottom: 10px !important; } table[class=body] p, table[class=body] ul, table[class=body] ol, table[class=body] td, table[class=body] span, table[class=body] a { font-size: 16px !important; } table[class=body] .wrapper, table[class=body] .article { padding: 10px !important; } table[class=body] .content { padding: 0 !important; } table[class=body] .container { padding: 0 !important; width: 100% !important; } table[class=body] .main { border-left-width: 0 !important; border-radius: 0 !important; border-right-width: 0 !important; } table[class=body] .btn table { width: 100% !important; } table[class=body] .btn a { width: 100% !important; } table[class=body] .img-responsive { height: auto !important; max-width: 100% !important; width: auto !important; } } @media all { .ExternalClass { width: 100%; } .ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div { line-height: 100%; } .apple-link a { color: inherit !important; font-family: inherit !important; font-size: inherit !important; font-weight: inherit !important; line-height: inherit !important; text-decoration: none !important; } .btn-primary table td:hover { background-color: #1e53b6 !important; } .btn-primary a:hover { background-color: #1e53b6 !important; border-color: #1e53b6 !important; box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(30, 83, 182, 0.4); } } </style> </head> <body class="" style="background-color: #f6f6f6; font-family: sans-serif; -webkit-font-smoothing: antialiased; font-size: 14px; line-height: 1.4; margin: 0; padding: 0; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%;"> <table role="presentation" border="0" cellpadding="0" cellspacing="0" class="body" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; background-color: #f6f6f6; width: 100%;" width="100%" bgcolor="#f6f6f6"> <tr> <td style="font-family: sans-serif; font-size: 14px; vertical-align: top;" valign="top">&nbsp;</td> <td class="container" style="font-family: sans-serif; font-size: 14px; vertical-align: top; display: block; max-width: 580px; padding: 10px; width: 580px; margin: 0 auto;" width="580" valign="top"> <div class="content" style="box-sizing: border-box; display: block; margin: 0 auto; max-width: 580px; padding: 10px;"> <!-- START CENTERED WHITE CONTAINER --> <span class="preheader" style="color: transparent; display: none; height: 0; max-height: 0; max-width: 0; opacity: 0; overflow: hidden; mso-hide: all; visibility: hidden; width: 0;">Você solicitou sua senha !</span> <table role="presentation" class="main" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; background: #ffffff; border-radius: 3px; width: 100%;" width="100%"> <!-- START MAIN CONTENT AREA --> <tr> <td class="wrapper" style="font-family: sans-serif; font-size: 14px; vertical-align: top; box-sizing: border-box; padding: 20px;" valign="top"> <table role="presentation" border="0" cellpadding="0" cellspacing="0" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%;" width="100%"> <tr> <td style="font-family: sans-serif; font-size: 14px; vertical-align: top;" valign="top"> <center><img src="{logoURL}" style="border: none; -ms-interpolation-mode: bicubic; max-width: 100%;"></center><br><br> <p style="font-family: sans-serif; font-size: 14px; font-weight: normal; margin: 0; margin-bottom: 15px;">Olá {user},</p> <p style="font-family: sans-serif; font-size: 14px; font-weight: normal; margin: 0; margin-bottom: 15px; color: #AFB5C0;">Abaixo está seu código de recuperação de senha, se você não solicitou uma nova senha ignore esse e-mail .</p> <br> <p style="font-family: sans-serif; font-size: 14px; font-weight: normal; margin: 0; margin-bottom: 15px;">Sua Código: <br> <font style="color: #AFB5C0; font-size: 11px;">{codigo}</font> </p><br><br> <table role="presentation" border="0" cellpadding="0" cellspacing="0" class="btn btn-primary" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; box-sizing: border-box; width: 100%;" width="100%"> <tbody> <tr> <td align="left" style="font-family: sans-serif; font-size: 14px; vertical-align: top; padding-bottom: 15px;" valign="top"> <table role="presentation" border="0" cellpadding="0" cellspacing="0" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: auto;"> <tbody> <tr> <td style="font-family: sans-serif; font-size: 14px; vertical-align: top; border-radius: 5px; text-align: center; background-color: #AFB5C0;" valign="top" align="center" bgcolor="#AFB5C0"> <a href="{buttonURL}" target="_blank" style="border: solid 1px #3498db; border-radius: 5px; box-sizing: border-box; cursor: pointer; display: inline-block; font-size: 14px; font-weight: bold; margin: 0; padding: 12px 25px; text-decoration: none; text-transform: capitalize; background-color: #AFB5C0; border-color: #AFB5C0; color: #ffffff;"><i class="far fa-eye"></i> {buttonTXT}</a> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> </td> </tr> </table> </td> </tr> <!-- END MAIN CONTENT AREA --> </table> <!-- START FOOTER --> <div class="footer" style="clear: both; margin-top: 10px; text-align: center; width: 100%;"> <table role="presentation" border="0" cellpadding="0" cellspacing="0" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%;" width="100%"> <tr> <td class="content-block" style="font-family: sans-serif; vertical-align: top; padding-bottom: 10px; padding-top: 10px; color: #999999; font-size: 12px; text-align: center;" valign="top" align="center"> <span class="apple-link" style="color: #999999; font-size: 12px; text-align: center;">Copyright © 2019 • Haze Fórum <br> Todos os Direitos Reservados. </span></td> </tr> <tr> <td class="content-block powered-by" style="font-family: sans-serif; vertical-align: top; padding-bottom: 10px; padding-top: 10px; color: #999999; font-size: 12px; text-align: center;" valign="top" align="center"> Site: <a href="https//hazeforum.com" target="_blank" style="font-size: 12px; text-align: center; text-decoration: none; color: #1e53b6;">www.hazeforum.com</a>. </td> </tr> </table> </div> <!-- END FOOTER --> <!-- END CENTERED WHITE CONTAINER --> </div> </td> <td style="font-family: sans-serif; font-size: 14px; vertical-align: top;" valign="top">&nbsp;</td> </tr> </table> </body> </html> Ao template do recover, o @Fulano quem me passou. Pode usar livremente, em caso de dúvidas, crie um tópico. Mantenha os créditos, caso use.
  6. 0eric

    Queria trocar esses icones (é mais o like)... único lugar que eu achei esses icones, foram na pagina account.php, só que isso só mudou para celular e n mudou na pagina de series e/ou filmes... Também queria criar outros 2 ou 3 icones desse, ligando a pagina dó usuário... Seria possível de uma maneira um pouco simples? (Não tenho conhecimento). (Se puderem me ajudar só trocando o icone, eu já ficaria muito feliz)
  7. murilocarlos1

    resolvido

    Bom galera sou novo nessa área de Wordpress e tal. Bom eu baixei o vizer template e ativei. porém eu vou colocar as séries, crio a série, a temporada e o episodio, só que quando clico em gerar não acontece nada!. E quando eu atualizo a pagina aparece mais temporadas que devia e tudo sem nome, e se eu criar outra série entra no mesmo episodio da outra serie me ajudem com esse problema? E o outro problema é sobre as categorias, não estou conseguindo colocar as categorias no site. quando clico em filme, aparece todos os filmes era para aparecer as categorias. alguém pode me ajudar? Se quiser ver como o site esta pra ter uma noção nessa parte de filmes. http://www.murraflix.com.br/
  8. Olá, gostaria de receber ajuda com um problema no template que utilizo em meu site de filmes wordpress, o erro é o seguinte na hora que publico o filme eu adiciono o link dos player até ai tudo bem porém quando não adiciono url alguma ao player o botão aparece msm assim queria que esse botão aparessesse apenas se tivesse algum link dentro dele alguém consegue me ajudar/ Print do problema: http://prntscr.com/oeo0nm http://prntscr.com/oeo1wj
  9. Não lembro quem fez essa pasta então vou deixar os créditos vazio , caso alguém saiba só dizer que eu coloco . Download [Hidden Content] 15 segundinhos basico você será redirecionado ao link . Créditos: " ? "
  10. Gerador Player Google Fotos JwPlayer Php Script ajuda você a transmitir arquivos de vídeo armazenados em photos.google.com de uma forma totalmente personalizável, você terá controle total sobre o jogador. Gerador Player Google Fotos JwPlayer Php Script Com o Subtitle Manager Integrado, você também pode adicionar o seu URL do anúncio e anúncios Banner300x200. O player só recupera o link de streaming de vídeo do Google Fotos automaticamente, para que você não precise de armazenamento grande e também não precisa de uma grande largura de banda. Com hospedagem compartilhada com especificações baixas , você pode executar o player. RECURSO ADICIONADO: 1. Auto Generate Redirect Download Página 2. Adblocker Detectar Função (Vídeo não vai jogar se o jogador detectar AdBlocker!) 3. AdVast Slot Ready 4. Banner Ad 300 × 250 no player e página de download pronto 5. Desativar e Ativar Download Botão 6 Protect Player with http referer 7. Não precisa de banco de dados* REQUISITOS: 1. Hospedagem Compartilhada ou vps compartilhados (não precisa de hospedagem de alta especificação) 2. Apache / NGINX 3. Php 7 Tipo de licença: Domínio ilimitado Demo Original do Painel: https://ancokplayer.win/demo/google-photos-cpanel/ Demo do Player Funcionando: https://filmesonline.blog.br/filmes/bumblebee/ Comprar
  11. Mano do Aviso

    db

    Olá, tenho um problema com esse player https://youtubelivre.000webhostapp.com Eu coloco o link de video do Google drive, mais não funciona https://youtubelivre.000webhostapp.com/player/exgcnhykafzcFnI/ Login é: [email protected] senha demo
  12. Oi pessoal, notei que o Bios Emulator tem vários bugs ... é possível resolvê-los? Peço sua ajuda! Muito Obrigado Desculpe pelo meu português, mas sou italiano! 1) ícones de pessoal (ícones de bug?) https://ibb.co/yQRfkmp 2) Habbo Way (não me deixa continuar fazendo o teste) https://ibb.co/PNv1P0v 3) Fast Food (assim que eu começo, ele bate em mim e me dá uma tela preta) https://ibb.co/27QP98J 4) Dragão (não pode ser visto) https://ibb.co/sK9hRhK https://ibb.co/Zf0LpW1
  13. Vagas para criador de conteúdo | Página no Facebook com 24k de likes Link para inscrição: https://forms.gle/J2L1acESz11dSLEFA Por favor, se não for levar à sério seu cargo como Criador de Conteúdo, não envie seu formulário para nós. As vagas estão sempre abertas porém não temos um número limitado de vagas disponíveis, se sua ficha for boa para nós, iremos entrar em contato através de seus meios de contatos mencionados logo acima. Certifique-se de que você quer concorrer à uma vaga como CDC na página antes mesmo de nos enviar seu formulário.
  14. Como Funciona? A maioria dos jogos online multiplayer utilizam a arquitetura server-client. Cada player roda um cliente que no nosso caso será o Phaser.IO que é responsável por exibir e manipular a entrada do player, e cada cliente troca dados com um servidor (NodeJS) central e autoritário, que valida as ações dos jogadores e o transmite para os outros clientes. Configurando o Servidor Server.js Instale todos os Pacotes em seu NodeJs (Socket.IO e Express). Para instalar é simples basta você executar ‘npm install express’ e ‘npm install socket.io’. var express = require('express'); var app = express(); var server = require('http').Server(app); var io = require('socket.io').listen(server); Express é o módulo que usaremos para servir arquivos para os clientes. Criamos uma nova instância chamada app e, combinando-a ao módulo http , garantimos que nosso aplicativo expresso funcionará como um servidor http. Por fim, exigimos o módulo socket.io e o fazemos ouvir as conexões com esse servidor. Este é mais ou menos código clichê para começar com aplicativos simples. O próximo passo é entregar os arquivos, dependendo do caminho solicitado. app.use('/css',express.static(__dirname + '/css')); app.use('/js',express.static(__dirname + '/js')); app.use('/assets',express.static(__dirname + '/assets')); app.get('/',function(req,res){ res.sendFile(__dirname+'/index.html'); }); Essas linhas são necessárias para poder fornecer arquivos estáticos , como folhas de estilo CSS ou recursos de jogos, que não serão acessíveis diretamente, mas precisam ser acessados pelo seu jogo. Por conveniência, o segundo argumento do app.use () permite que você especifique os caminhos virtuais, que não são os caminhos reais para seus recursos, mas que serão os caminhos usados pelos seus scripts para acessá-los. Concluímos a configuração do servidor, indicando qual porta o servidor deve escutar e especificando qual arquivo será exibido como a página raiz. app.get('/',function(req,res){ res.sendFile(__dirname+'/index.html'); }); server.listen(8081,function(){ // Listens to port 8081 console.log('Listening on '+server.address().port); }); Configurando o Cliente Index.html Index.html é a página do gateway que será exibida ao se conectar ao seu servidor, e também neste caso a página na qual o jogo será exibido. Cabe a você estruturá-lo como quiser, mas deve conter pelo menos um elemento div com o id ' game '. Ele também deve incluir os arquivos Javascript necessários para o seu jogo, incluindo o socket.io. Aqui está como incluí-lo: <script src="/socket.io/socket.io.js"></script> Isso funciona porque o caminho virtual /socket.io/socket.io.js é criado automaticamente ao instalar o socket.io. Neste ponto, se você executar o servidor (digitando 'node server.js' em um terminal) e navegar para o seu aplicativo (por exemplo, em http: // localhost: 8081 / se você estiver executando localmente e mantido a porta padrão) , você deve ver o seu index.html servido para você, com qualquer conteúdo que você tenha colocado neste ponto (talvez um “Hello World”, para ter certeza de que funciona). Vamos agora incluir o game.js para configurar o jogo. Vou me referir a este processo doravante como "executando o jogo". js/game.js Agora podemos continuar configurando a tela do jogo (assumindo que temos um bloco div com o id ' game ') e declarando um único estado do jogo, chamado ' Game ', correspondente a um objeto Javascript com o mesmo nome. var game = new Phaser.Game(16*32, 600, Phaser.AUTO, document.getElementById('game')); game.state.add('Game',Game); game.state.start('Game'); var Game = {}; No Game.init () , existe apenas um parâmetro para definir: Game.init = function(){ game.stage.disableVisibilityChange = true; }; Isso não é obrigatório, mas é útil, pois fará com que o jogo continue reagindo às mensagens do servidor, mesmo quando a janela do jogo não tiver foco (o que é um comportamento desejado para a maioria dos jogos). No Game.preload () , nós carregamos os recursos que precisaremos, incluindo o mapa de blocos no formato JSON (exportado do Tiled). Eu não vou entrar em muitos detalhes aqui sobre como criar e lidar com tilemaps lado a lado, mas se você quiser que eu faça um tutorial para cobrir esses aspectos, não hesite em me avisar. Game.preload = function() { game.load.tilemap('map', 'assets/map/example_map.json', null, Phaser.Tilemap.TILED_JSON); game.load.spritesheet('tileset', 'assets/map/tilesheet.png',32,32); game.load.image('sprite','assets/sprites/sprite.png'); // this will be the sprite of the players }; Em Game.create () , começamos criando e exibindo nosso mapa. Game.create = function(){ var map = game.add.tilemap('map'); map.addTilesetImage('tilesheet', 'tileset'); // tilesheet is the key of the tileset in map's JSON file var layer; for(var i = 0; i < map.layers.length; i++) { layer = map.createLayer(i); } layer.inputEnabled = true; // Allows clicking on the map }; Observe que, embora os cliques estejam ativados no mapa, não há código no momento para lidar com isso; isso ocorrerá quando o servidor estiver em execução e a comunicação entre o cliente e o servidor estiver funcionando. Neste ponto, ao executar o jogo, você deve ver o mapa exibido, sem que nada mais aconteça: js/client.js Em index.html, inclua um novo arquivo Javascript, client.js , que conterá um objeto Clientque atuará como a interface entre o servidor e o próprio jogo. var Client = {}; Client.socket = io.connect(); O bit importante aqui é a segunda linha, onde iniciamos uma conexão com o servidor ( localhost se você não especificar de outra forma entre os parênteses). Cada vez que um jogador navega para seu aplicativo, uma conexão será estabelecida com o servidor. Isso irá criar um soquete. Soquetes são pontos de extremidade no fluxo de comunicação entre o servidor e o cliente. Com o socket.io, podemos enviar e receber mensagens através do soquete, o que constitui a maneira básica pela qual o cliente e o servidor irão interagir. Aqui, o soquete do cliente é armazenado no Client.socket para uso futuro. Interações em tempo real Agora a parte interessante começa. Precisamos deixar o servidor ciente do que os jogadores fazem, assim como fazer os clientes reagirem às mensagens vindas do servidor. Quando um jogador executa uma ação (conectando, desconectando ou movendo), usaremos a API Socket.io para enviar uma mensagem ao servidor para notificá-lo dessa ação. Em troca, o servidor usará a mesma API para enviar mensagens para os clientes quando precisarem ser informados sobre a ação de outro jogador. O restante deste tutorial ilustra como enviar e receber essas mensagens e como integrá-las a um jogo Phaser. Exibindo os jogadores conectados Quando um novo jogador se conecta, um novo sprite deve aparecer no jogo para todos os jogadores conectados, incluindo o recém-conectado. As coordenadas dos sprites são determinadas aleatoriamente pelo servidor. js/game.js Primeiro, vamos modificar o Game.create () no game.js para que o cliente notifique o servidor de que um novo player deve ser criado. Para esse fim, adicionamos Client.askNewPlayer (); no final de Game.create () . No começo, nós também adicionamos Game.playerMap = {}; : este objeto vazio será útil mais tarde para acompanhar os jogadores. Game.create = function(){ Game.playerMap = {}; var map = game.add.tilemap('map'); map.addTilesetImage('tilesheet', 'tileset'); // tilesheet is the key of the tileset in map's JSON file var layer; for(var i = 0; i < map.layers.length; i++) { layer = map.createLayer(i); } layer.inputEnabled = true; // Allows clicking on the map Client.askNewPlayer(); }; js/client.js Agora em client.js , precisamos definir o método Client.askNewPlayer () : Client.askNewPlayer = function(){ Client.socket.emit('newplayer'); }; Esse método usará nosso objeto de soquete e enviará uma mensagem para o servidor. Esta mensagem terá o rótulo 'newplayer', que é auto-explicativo. Um segundo argumento pode ser adicionado para passar dados adicionais, mas não será necessário neste caso. server.js No server.js , precisamos reagir às mensagens do cliente. Adicione o seguinte código: server.lastPlayderID = 0; // Keep track of the last id assigned to a new player io.on('connection',function(socket){ socket.on('newplayer',function(){ socket.player = { id: server.lastPlayderID++, x: randomInt(100,400), y: randomInt(100,400) }; socket.emit('allplayers',getAllPlayers()); socket.broadcast.emit('newplayer',socket.player); }); }); function getAllPlayers(){ var players = []; Object.keys(io.sockets.connected).forEach(function(socketID){ var player = io.sockets.connected[socketID].player; if(player) players.push(player); }); return players; } function randomInt (low, high) { return Math.floor(Math.random() * (high - low) + low); } Dizemos ao Socket.io para ouvir o evento 'connection', que é acionado toda vez que um cliente se conecta ao servidor (usando io.connect () ). Quando isso acontece, ele deve chamar o retorno de chamada especificado como o segundo argumento. Este retorno de chamada recebe como primeiro argumento o soquete usado para estabelecer a conexão, que, assim como o soquete do cliente, pode ser usado para passar mensagens. Usando o método socket.on () dos objetos de soquete, é possível especificar retornos de chamada para manipular mensagens diferentes. Portanto, cada vez que um cliente específico envia uma mensagem específica através de seu soquete, um retorno de chamada específico será chamado em reação. Nesse caso, definimos um retorno de chamada para reagir à mensagem 'newplayer'. Vamos decompor o que é feito lá: socket.on('newplayer',function(){ socket.player = { id: server.lastPlayderID++, x: randomInt(100,400), y: randomInt(100,400) }; socket.emit('allplayers',getAllPlayers()); socket.broadcast.emit('newplayer',socket.player); }); Primeiro, criamos um novo objeto personalizado, usado para representar um player, e armazená-lo no objeto de soquete. Como você pode ver, é possível adicionar propriedades arbitrárias específicas do cliente ao objeto de soquete, tornando-as convenientes para o acesso. Neste objeto, damos ao jogador um ID único (que será usado no lado do cliente) e determinamos aleatoriamente a posição do sprite. Então, queremos enviar para o novo jogador a lista de jogadores já conectados: socket.emit('allplayers',getAllPlayers()); Socket.emit () envia uma mensagem para um soquete específico. Aqui, enviamos para o cliente recém-conectado uma mensagem chamada 'allplayers' e, como segundo argumento, a saída de Client.getAllPlayers (), que será uma matriz dos players conectados no momento. Isso permite que os jogadores recém-conectados se atualizem com a quantidade e as posições dos jogadores já conectados. Vamos dar uma olhada rápida em Client.getAllPlayers () : function getAllPlayers(){ var players = []; Object.keys(io.sockets.connected).forEach(function(socketID){ var player = io.sockets.connected[socketID].player; if(player) players.push(player); }); return players; } O io.sockets.connected é uma matriz interna do Socket.io dos soquetes atualmente conectados ao servidor. Podemos usá-lo para iterar todos os sockets, obter a propriedade do player que adicionamos a eles (se houver) e enviá-los para uma lista, listando efetivamente os players conectados. E finalmente: socket.broadcast.emit('newplayer',socket.player); O socket.emit.broadcast () envia uma mensagem para todos os sockets conectados, exceto o soquete que acionou o retorno de chamada. Ele permite transmitir eventos de um cliente para todos os outros clientes, sem que eles sejam retornados ao cliente iniciante. Aqui, nós transmitimos a mensagem 'newplayer' e enviamos como dados o novo objeto de jogador. Para resumir o que fizemos nestes últimos passos: - Ouvimos as conexões dos clientes e definimos as chamadas de retorno para processar as mensagens enviadas pelos sockets - Quando recebemos a mensagem 'newplayer' de um cliente, criamos um objeto small player que armazenamos no socket do cliente - Para o novo cliente, enviamos uma lista de todos os outros players, para que ele possa exibi-los - Para os outros clientes, enviamos as informações sobre o recém-chegado Até agora, nosso servidor reage a uma mensagem dos clientes. Agora precisamos adaptar os clientes para que eles possam processar as mensagens 'allplayers' e 'newplayer' do servidor em retorno, completando assim o loop `connect - notificar o servidor que estou aqui - obter informações em retorno - display it`. Note que a mensagem 'newplayer' enviada pelo cliente e aquela enviada pelo servidor não é a mesma; Eu escolhi dar a eles o mesmo rótulo porque eles transmitem o mesmo tipo de informação, mas eles serão tratados separadamente, uma vez que eles têm endpoints diferentes (o servidor para o primeiro, o cliente para o último). js/client.js Em client.js , adicione este código: Client.socket.on('newplayer',function(data){ Game.addNewPlayer(data.id,data.x,data.y); }); Client.socket.on('allplayers',function(data){ console.log(data); for(var i = 0; i < data.length; i++){ Game.addNewPlayer(data[i].id,data[i].x,data[i].y); } }); Como você pode ver, a mesma sintaxe para manipular mensagens pode ser usada no lado do cliente. Quando os dados são enviados ao longo de uma mensagem, eles podem ser recuperados como o primeiro argumento do retorno de chamada no terminal de recebimento. Portanto, o objeto ' data ' alimentado para o callback 'newplayer' corresponde aos dados do socket.player enviados pelo servidor. Para a mensagem 'allplayers', é uma lista de objetos socket.player . Em ambos os casos, esses dados são processados chamando Game.addNewPlayer () , que agora podemos definir em game.js : js/game.js Game.addNewPlayer = function(id,x,y){ Game.playerMap[id] = game.add.sprite(x,y,'sprite'); }; Esse método cria um novo sprite nas coordenadas especificadas e armazena o objeto Sprite correspondente em um array associativo declarado em Game.create () , com o id fornecido como a chave. Isso permite acessar facilmente o sprite correspondente a um jogador específico, por exemplo, quando precisamos movê-lo ou removê-lo (veja abaixo). Neste ponto, se você reiniciar o servidor (para que as últimas modificações sejam levadas em conta) e navegue até o seu jogo, você verá um pequeno caractere exibido, correspondente ao seu sprite. Se você se conectar com outros navegadores, caracteres adicionais deverão aparecer na tela. Manipulando desconexões Como é, quando um jogador se desconecta, seu sprite permanecerá na tela dos outros jogadores, o que não é desejável. Isso pode ser corrigido ao processar a mensagem 'desconectar' que o servidor recebe automaticamente quando um cliente se desconecta ou atinge o tempo limite ativamente. Esta mensagem pode ser tratada como qualquer outra, da mesma forma que fizemos para o 'newplayer', por exemplo: ligando um callback a ele dentro do método io.on () : server.js io.on('connection',function(socket){ socket.on('newplayer',function(){ socket.player = { id: server.lastPlayderID++, x: randomInt(100,400), y: randomInt(100,400) }; socket.emit('allplayers',getAllPlayers()); socket.broadcast.emit('newplayer',socket.player); socket.on('disconnect',function(){ io.emit('remove',socket.player.id); }); }); }); Em reação à mensagem 'desconectar', usamos io.emit () , que envia uma mensagem para todos os clientes conectados. Enviamos a mensagem 'remove' e enviamos o id do jogador desconectado para remover. Nota: Obrigado ao Kaundur por apontar que o callback 'desconectado' deve ser registrado dentro do callback 'newplayer'; se não, e 'desconectar' é de alguma forma chamado antes de 'newplayer', o servidor irá travar! js/client.js Client.socket.on('remove',function(id){ Game.removePlayer(id); }); E no game.js : js/game.js Game.removePlayer = function(id){ Game.playerMap[id].destroy(); delete Game.playerMap[id]; }; Isso ilustrou o uso da estrutura de dados do Game.playerMap , a propósito. Não há necessidade de repetir sprites; o id permite buscar imediatamente. Agora tudo o que resta a fazer é processar e transmitir os movimentos dos jogadores. Movendo os movimentos do jogador js/game.js Chegou a hora de completar o Game.create () . Basicamente, queremos que, quando o mapa for clicado, as coordenadas sejam enviadas para o servidor, para que a posição do jogador que clicou possa ser atualizada para todos. Adicione a seguinte linha ao Game.create () : layer.events.onInputUp.add(Game.getCoordinates, this); Agora, o mapa reagirá aos cliques chamando o método Game.getCoordinates () , que podemos definir da seguinte forma: Game.getCoordinates = function(layer,pointer){ Client.sendClick(pointer.worldX,pointer.worldY); }; Callback de onInputUp eventos em Phaser receber como segundo argumento do correspondente objeto ponteiro, que contém duas propriedades worldX e worldy que podemos usar para saber onde, no mapa de jogo, fez o clique ocorrer. Podemos então passar essas coordenadas para Client.sendClick () em client.js : js/client.js Client.sendClick = function(x,y){ Client.socket.emit('click',{x:x,y:y}); }; Que simplesmente envia as coordenadas para o servidor, com o rótulo 'clique'. Não há necessidade de enviar qualquer ID de jogador, já que o socket é específico do cliente e associado a apenas um jogador. server.js Em server.js , aqui está a lista final de retornos de chamada de mensagem: io.on('connection',function(socket){ socket.on('newplayer',function(){ socket.player = { id: server.lastPlayderID++, x: randomInt(100,400), y: randomInt(100,400) }; socket.emit('allplayers',getAllPlayers()); socket.broadcast.emit('newplayer',socket.player); socket.on('click',function(data){ console.log('click to '+data.x+', '+data.y); socket.player.x = data.x; socket.player.y = data.y; io.emit('move',socket.player); }); socket.on('disconnect',function(){ io.emit('remove',socket.player.id); }); }); }); Os campos x e y da propriedade player do soquete são atualizados com as novas coordenadas e transmitidos imediatamente para todos, para que possam ver a alteração. Agora, o objeto socket.player completo é enviado, porque os outros clientes precisam saber o id do jogador que está se movendo, a fim de mover o sprite correto na tela (embora, nesse jogo minimalista, não exista um caminho real para distinguir os jogadores). js/client.js De volta ao client.js , precisamos lidar com a mensagem 'mover' do servidor, para que os clientes possam reagir a outro jogador em movimento: Client.socket.on('move',function(data){ Game.movePlayer(data.id,data.x,data.y); }); O processo deve começar a se tornar familiar para você. Em game.js : js/game.js Game.movePlayer = function(id,x,y){ var player = Game.playerMap[id]; var distance = Phaser.Math.distance(player.x,player.y,x,y); var duration = distance*10; var tween = game.add.tween(player); tween.to({x:x,y:y}, duration); tween.start(); }; Nós novamente fazemos uso da estrutura Game.playerMap para recuperar o sprite correto, e então nós o interpolamos para tornar o movimento progressivo. CÓDIGO FONTE COMPLETO (COMENTE PARA VER): [Hidden Content] Bjos Tio Unk ..
  15. Ola galera meus filmes estao upados no google drive, eu utilizo os filmes no meu app, porem sempre no final do dia os filmes nao rodam no app.. dai pegeui o link do filme e joguei no navegador e aparece esse erro. alguem sabe como resolver isso { "error": { "errors": [ { "domain": "global", "reason": "downloadQuotaExceeded", "message": "The download quota for this file has been exceeded." } ], "code": 403, "message": "The download quota for this file has been exceeded." } }
  16. Estou querendo colocar opção pro usuário apagar e editar o comentário que ele fizer do wordpress. Teria como colocar essas opções? Se sim, como eu posso está pesquisando sobre isso?
  17. Daisy

    resolvido

    Olá, Eu não entendo muito de php / html é queria uma "ajudinha". Então, baixei recentemente a Habbink Cms fãn site e queria adicionar UM cargo do usuário de lado do nome nos comentários, exemplo: https://prnt.sc/nbziy0 (fiz esse exemplo editando pelo "inspecionar elemento do navegador) Página PHP de comentários: https://pastebin.com/uVw4XHQZ
  18. Francisco Paixão

    DBMovies com IMDB

    Version 1.0.0

    63 downloads

    Postado por: @Francisco Paixão Tópico:

    Free

  19. 1gordingoxtozo

    Eae rapaziada Então é o seguinte, eu tava andando por uns sites ai e vi que em um site que usa o Wordpress no Menu/Navbar tem uma opção com varios submenus, até ai de boas também entendo como faz, mas o desse site ele tem 3 colunas e eu só consigo fazer um assim com 1 coluna gigantesca, não importa quantos submenus eu coloque sempre fica 1 coluna. Print do site com 3 colunas: Alguem ai que saiba como fazer isso no Wordpress poderia me ensinar como fazer ? tipo sem alterar o CSS do menu atual tendo que colocar um plugin de Mega Menu e talz
  20. Fala seus bostas, chega de nitifrix e habbo (mesmo sendo muito inútil e a unica coisa que gera discussão nessa bosta do karaio). Bora aprender algo útil pra vida? https://medium.com/reactbrasil/5-motivos-para-aprender-react-2bb755c96304 Há muitos editores e IDEs por aí para desenvolver aplicativos da web. Dependendo dos seus requisitos pessoais, do projeto ou da empresa, você pode escolher entre uma variedade de editores leves e IDEs completos. O Visual Studio Code é uma solução intermediária. Muitos desenvolvedores, operando no Windows, mas também no MacOS, gostam de usá-lo. É por isso que minha recomendação seria o código do Visual Studio para começar a desenvolver aplicativos React no Windows. A instalação em uma máquina Windows é simples: Navegue até o site oficial do Visual Studio Code e baixe a versão recente do VS Code em 32 ou 64 bits. Depois, instale-o e verifique se tudo está funcionando quando você o abre. Se você quiser usar outro editor / IDE, cabe a você. Mas lembre-se de que algumas das etapas a seguir estão sendo criadas em cima do Visual Studio Code. No entanto, deve ser possível substituir essas etapas pelo seu próprio editor / IDE. Iremos utilizar também o Node JS para criar nossa aplicação, caso você não saiba instalar você é um acéfalo (existem tutoriais no youtube). Agora, você deve verificar se a instalação do Node.js foi bem-sucedida. Em seu Command Line (ou cmd), digite os seguintes comandos. Eles devem produzir as versões para Node.js e NPM. As versões a seguir podem variar de suas versões. node --version *v8.9.4 npm --version *v5.6.0 Agora você pode instalar seu primeiro package com npm em sua linha de comando. Você irá instalá-lo globalmente com um sinalizador -g. Por causa da instalação global, você sempre terá acesso a ele em sua linha de comando. Posteriormente, quando você instalar um package para o seu projeto sem o sinalizador -g, você terá acesso somente ao package (módulo do node) em seu projeto. Na linha de comando (em código do Visual Studio), digite o seguinte comando para instalar o create-react-app: npm install -g create-react-app Este pacote permite inicializar os aplicativos React com configuração zero. Não há necessidade de se envolver muito cedo em ferramentas como Webpack e Babel. Se você for ler "The Road to learn React", você também usará o create-react-app. É a abordagem mais simples para entender o React sem se preocupar com todas as ferramentas como Webpack e Babel em torno dele. Depois de instalá-lo, você pode verificar sua versão novamente na linha de comando: create-react-app --version *v1.5.1 Finalmente, você pode inicializar seu primeiro aplicativo React.js no Windows. Você pode usar create-react-app passando o nome do seu aplicativo para ele com este comando: create-react-app my-app Depois, você pode navegar no projeto e iniciá-lo com o npm: cd my-app npm start O comando deve fornecer uma saída onde você pode encontrar o aplicativo no navegador. O padrão deve ser localhost:8080. Se você estiver usando apenas o IE ou o Edge em sua máquina Windows, recomendo que você instale o Chrome também para acessar o ambiente de desenvolvedor e as Ferramentas do desenvolvedor do React, que estão disponíveis como extensão do Chrome. Por outro lado, agora você tem uma vantagem sobre os desenvolvedores do MacOS, porque você também pode depurar seus aplicativos da Web no Internet Explorer e no Edge. Agora lhe resta apenas se dar ao esforço de assistir vídeos e ler documentários para conseguir dominar esta linguagem. Se inscrevam no meu canal do Youtube, trago tutoriais legais lá (conteúdo que você não vê pessoas ensinando) https://www.youtube.com/channel/UCNSZRo50S_vXDc1p8jM-k7Q
  21. Boa! Devido a uma atualização do blogger, os links caíram, deixando vários sites de séries e animes offline. Desenvolvi um API que captura os novos links automaticamente. Plano Free: Player gratuito com 7 anúncios popup no player, Plano Básico: 30 reais p/mês com 2 anúncios popup no player, Plano Médio: 50 reais p/m com 1 anúncio popup no player, Plano Top: 100 reais p/mês sem anuncio. Contato somente pelo Telegram: @AssistirME ou @brunaluisaalves Link de exemplo no meu site: https://assistir.me
  22. Ramon Kelvin

    php

    Conexão ao banco de dados com PHP Programadores web sempre terão a necessidade de conectar ao banco de dados ao menos uma vez, para obviamente envio e recebimento dados ou somente armazenamentos. Existem três API’s de conexão com o banco de dados em PHP, são elas: mysql: Pacote de funções para acesso ao MySQL, foi descontinuado no PHP7. mysqli: Extensão da API mysql com suporte a funcionalidades adicionadas a versões posteriores ao MySQL 4.1 - (http://www.mysql.com/) PDO - PHP Data Objects: Interface para acesso a dados do PHP. (Essa eu conheci recentemente pela indicação do @iJhefe). Nesse tópico mostraremos como podemos está fazendo uma conexão com o PDO (PHP Data Objects). Um dos seus principais destaques, são pela sua leve e consistência conexão e ainda por cima a segurança que é estabelecida. Como o PDO representa uma camada de abstração de acesso a dados, as funções usadas para manipular os dados ou extrair informações do banco de dados serão as mesmas, independentemente do banco de dados utilizado. Muitas pessoas ficam um pouco intimidadas em usar o PDO de início, não por se tratar de uma API difícil de usar, muito pelo contrário, pois é muito fácil de usar, mas sim porque a API mysql é muito fácil de usar e as pessoas acabam se acostumando com ela. (Esse foi o meu caso, tanto que cheguei a ser muito bem influenciado em deixar de lado a Api de conexão Mysqli e começar a usar o PDO). Deixando de enrolação e vamos a conexão, que é o que nos interessa aqui! Vamos começar criando uma nova instância de classe e especificar o driver que utilizaremos, que no caso seria o mysql, o nome do banco de dados, nome de usuário e senha. [Hidden Content] O erro padrão do PDO é o PDO::ERRMODE_SILENT, porém no nosso código usamos o PDO::ERRMODE_EXCEPTION, então listarei mais opções que poderemos utilizar PDO::ERRMODE_SILENT PDO::ERRMODE_WARNING PDO::ERRMODE_EXCEPTION Conectando com banco de dados usando PDO Embora isso funcione, observe que ainda estamos escapando manualmente os dados do usuário com o método PDO::quote. Pense nisso como método, mais ou menos, o equivalente ao mysql_real_escape_string; no PDO. Em situações, quando você está vinculado aos dados fornecidos pelo usuário para uma consulta SQL, é fortemente aconselhável que você, em vez usar isso, use prepared statements. Dito isto, se suas consultas SQL não são dependentes de dados do formulário, o método de consulta é uma escolha útil, e torna o processo de loop através dos resultados tão fácil como uma instrução foreach. [Hidden Content] O tutorial foi bem curto pelo simples fato de que a conexão é bem simples e fácil, sem segredos algum, confesso que tive um pouco de dificuldade em entender, porém tudo é obtido pela prática. Em breve poderei fazer outro tópico, porém relacionado a como começar a utilizar o select com PDO, buscando determinados resultados.
  23. Ramon Kelvin

    php

    Primeiro contato com o PHP Como toda linguagem de programação precisamos de regras, com o PHP não vai ser diferente, também necessitamos da extensão para que o PHP possa ser iniciado no servidor. Mostrar para que está começando é essencial, pois muitos tem dificuldade em entender como funciona as instruções, tags e entre outros. Nesse tópico mostrarei como podemos está criando um arquivo PHP e manipular a primeira instrução, que no caso é o "echo". Para iniciar no PHP, é obvio que precisaremos de um arquivo, então crie o arquivo Index.php na sua IDE e coloque no root do seu servidor, se você é usuário XAMPP a entrada é (C:\xampp\htdocs). Então abra o seu arquivo e vamos para seu primeiro código. A tag de abertura do PHP é bem simples, segue o código. A abertura do código se inicia em <?php e termina em ?> , entre essas duas tags é onde vai se situar o seu código. <?php #inicio do código #Aqui ficará todo o seu código. ?> <!-- Aqui o fim do código. --> Nota: "#" é somente um comentário. Para que possamos estar imprimindo um texto na página, usaremos: <?php echo "Olá Mundo!"; ?> Como podem ver, eu imprimi a frase "Olá mundo!" na minha página usando a instrução echo, nunca esquecendo de por o ";" no final da instrução para podermos fechar-lo e não deixar entrar em conflito com as próximas linhas de códigos. Notamos que isso não se diferencia muito do HTML. <html> <p>Olá mundo!</p> </html> Tag de abertura, fechamento e a tag paragrafo <p>. Este programa é realmente simples e você não precisa do PHP para criar uma página assim (fixa). Tudo o que ela faz é mostrar: Olá mundo! utilizando a instrução echo. Note que o arquivo não precisa ser executável ou especial. O servidor web descobre que este arquivo precisa ser interpretado pelo PHP por causa da extensão ".php", que o servidor é configurado para repassar ao PHP. Pense nisso como um arquivo HTML normal que por acaso possui um conjunto de tags especiais disponíveis para você fazer muitas coisas interessantes. Se você tentar rodar este exemplo e ele não mostrar nenhuma mensagem de saída, ou aparecer uma caixa de diálogo pedindo para você salvar o arquivo, ou você ver todo o conteúdo do arquivo como texto, há uma grande chance do seu servidor não ter o PHP habilitado ou não estar configurado corretamente. Peça ao seu administrador para habilitar o PHP para você usando o capítulo de Instalação do manual. Se você está desenvolvendo localmente, leia também o capítulo de instalação indicado acima para ter certeza de que configurou tudo corretamente. Confirme que está acessando o arquivo via HTTP através do servidor web. Se acessar o arquivo através do sistema de arquivos, então ele não será interpretado pelo PHP
  24. Olá pessoal, hoje, dia 13 de julho de 2018, estamos anunciando um novo recurso aqui no Haze Fórum. Caso você não saiba, nós temos um servidor no Discord onde você pode conversar com outras pessoas, discutir sobre programação e entre outros. Pois bem, agora você pode vincular a sua conta do fórum com a sua conta do Discord, ao fazer isso, você pode sincronizar seu cargo do Haze com o seu cargo no servidor. Por exemplo: se você é Haze Plus, você receberá um lindo cargo de cor amarela no nosso servidor e poderá se destacar assim como aqui no fórum. Incrível não? O novo recurso já está disponível e pode ser ativado na guia configurações da conta no seu perfil. Confira as últimas notas de atualização: https://hazeforum.com/notas-de-atualizacoes/26-r13/
×