Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Olha eu de novo aqui com php (eeeeeeeeeeeba, ou não rs).

Bom, hoje trago um tutorialzinho sobre constantes!

QIV0m.png

Perguntas da vida! Quem somos? Da onde viemos?

Isso por enquanto eu não posso te responder! Maaaaaaaas, posso te ensinar o que são as constantes. Acho que é melhor, rs.

O que são?

Bom, sinceramente, constantes são constantes. Simples assim, haha.

Você provavelmente já estudou química/física/matemática na escola, onde existem alguns valores "constantes" normalmente representadas por k. Uma constante da matemática é o PI, pi é ~ 3.14 e ponto! Não tem outro valor, por isso se chama CONSTANTE, ela não muda! Outra constante é da física, velocidade da luz no vácuo, representado pela letra c, tem o valor de 3,00 x 108 m/s. Este é o conceito da constante. Mas só pra não deixar uma incerteza, Wikipédia neles!

Na matemática e nas ciências naturais, uma constante é um valor fixo que pode ou não ser especificado.

Esta noção é utilizada em oposição à de variável, que não é fixa.

Que é basicamente o que eu expliquei.

Porque constantes e não variáveis?

Bom, muitos tem essa dúvida. Porque não usar simplesmente uma variável?

A constante em muitos casos é mais simples de usar, por não precisar do símbolo $ na frente, como é no caso da variável. Não que seja um GRANDE problema. Mentira, é sim. Seu dedo vai cair de tanto digitar cifrões quando programar php.

Vou explicar essa questão melhor em "Porque usar?".

Como usar?

Bom, achou que só iria ter texto chato? Naaaananinanão!

Primeiramente definimos ela pela função define e ela retornará false caso dê algum erro, por exemplo, não é possível colocar array e objeto em uma constante.

Boooom, vamos definir uma constante então!

define("BM", "0.082");
Neste caso, definimos a Constante de Boltzman, usada para a Química, R = 0,082 L atm-1 Uma das constantes mais legais que usamos na escola (tudo bem tudo bem, nem tanto assim, foi uma piadinha sem graça). Ta bom Renato! Só fala, fala, fala, e não ensina como eu uso essa constante! Calminha calminha, eu já ia chegar lá! Para usarmos, é simplesmente escrever BM sem cifrão, sem função, sem nada. É uma constante e ela já irá retornar 0.082.
echo BM; //retorna 0.082
echo BM*2; //retorna 0.164
echo (BM+0.5)/2; //retorna 0.291[/code] Simples. Constantes são simples e fáceis. Mas diferente das variáveis, definiu tá definido! Não tem essa de definir em cima igual fazemos com variáveis. [i]Como assim? [/i][b]Bom, vamos ao exemplo[/b][i].[/i]
[code]$variavel = 5;
$variavel = 7;
echo $variavel; //retorna 7
A segunda variável "sobrepõe" o valor da primeira, justamente porque variáveis foram feitas para isso, para "variar". Diferente das constantes que já foram feitas para ser constantes. Os nomes já são bem explicativos, e fica até feio eu explicando assim, haha.
define("K", "constante");
define("K", "dasdsaflsa");
echo K; //retorna constante[/code]

[b]Definiu tá definido![/b]

[size=5][color=#0000FF][b]Porque usar?[/b][/color][/size]

Bom, ta vendo como é mais simples usar K do que $k?

Alguns dirão: sim, outros: não, aliás o que é um cifrão, não é?

Mas isso também se encaixa em [b]boas práticas de programação[/b], usar variáveis em lugar de constantes pode te fazer [b]perder nota[/b] em trabalhos de faculdade.

A grande utilidade da constante no php acho que é para fazer [b]traduções[/b]. No Denko por exemplo ([i]um jogo de browser que estou criando[/i]), as traduções são feitas por php. Ex.: 2 arquivos, pt-br.php e en-us.php, aonde vai [color=#008080][font=courier new', courier, monospace]define("word_you", "você");[/font][/color] e [color=#008080][font=courier new', courier, monospace]define("word_you", "you");[/font][/color] respectivamente. Assim quando eu for programar eu apenas uso [color=#008080][font=courier new', courier, monospace]word_you[/font][/color], e dependendo da língua que a pessoa colocar vai aparecer "you" ou "você" ou qualquer outra linguagem que eu colocar. Simples, fácil, prático. Não?

[_/_\_/_\_]

>> Tutorial feito por Renato Ribeiro.

>> Copie, mas não Plagie! Obrigado.

[center]pEFdd.png[/center]

Essas foram as constantes,

Logo mais trago outros conteúdos.

[b]Renato Ribeiro.[/b]

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 luanluciano93
      Olá, esse tutorial é uma parte do tópico principal: "Tutorial completo de infraestrutura para montar um servidor TFS 1.x no Ubuntu 22.04" ... 

      Ele faz parte da 3º instalação da pilha LEMP no Ubuntu 22.04: o PHP.
       
      PASSO 1 - COMO INSTALAR O PHP
       
      Você já tem instalado o Nginx para exibir seu conteúdo web e o MySQL para armazenar e gerenciar seus dados. Agora, você pode instalar o PHP para processar os códigos e gerar conteúdo dinâmico para o servidor Web.

      - Enquanto o Apache incorpora o interpretador PHP em cada solicitação, o Nginx necessita de um programa externo para lidar com o processamento PHP e atuar como uma ponte entre o próprio interpretador PHP e o servidor web. Isso permite um desempenho global melhor na maioria dos sites baseados em PHP, mas exige configuração adicional. Será necessário instalar o php-fpm, que significa “Gerenciador de processos PHP fastCGI”, e dizer ao Nginx para enviar as solicitações PHP para esse software para processamento.

      - Adicionalmente, você precisará do php-mysql php-mysqlnd, um módulo PHP que permite ao PHP se comunicar com os bancos de dados baseados em MySQL. Os pacotes básicos do PHP serão instalados automaticamente como dependências.

      Para instalar os pacotes php-fpm e php-mysql, execute e depois aperte Y para aceitar a instalação:
      sudo apt install php-fpm php-mysqlnd Agora confira o status do PHP-FPM para ver se ele está corretamente ativo: 
      sudo systemctl status php8.1-fpm Deve aparecer algo assim:

       
      Como vocês podem ver em verde: active (running), ou seja, está ativo e funcionando.
       
      PASSO 2 - CONFIGURAÇÕES DO PHP JUNTO AO NGINX
       
      Crie duas pastas com os comandos: 
      sudo mkdir /home/otserv sudo mkdir /home/www A pasta criada "otserv" é onde iremos deixar os arquivos do servidor e a pasta "www" que irá conter os arquivos do site.
       
      Usando o WinSCP, vá até a pasta /etc/nginx/sites-available/ e substitua o conteúdo do arquivo default por esse: https://raw.githubusercontent.com/luanluciano93/ESTUDOS/master/infraestrutura/default_nginx
       
      Quando estiver pronto, recarregue o nginx para aplicar as alterações:
      sudo systemctl reload nginx Agora, com o WinSCP vá até /home/www/ e crie um arquivo com o nome index.php e coloque isso dentro: <?php phpinfo(); ?>
       
      Após feito isso, entre com seu IP ou DOMÍNIO pelo navegador, e deverá aparecer as informações do PHP.

       
      PASSO 3 - CONFIGURAÇÕES DO PHP
       
      Com o WinScp, vá até o arquivo /etc/php/8.1/fpm/php.ini e altere: 
      ignore_repeated_errors = Off Para: 
      ignore_repeated_errors = On Altere: 
      ;date.timezone = Para: 
      date.timezone = America/Sao_Paulo Altere: 
      post_max_size = 8M Para: 
      post_max_size = 64M Altere: 
      upload_max_filesize = 2M Para: 
      upload_max_filesize = 64M  
      Após feito as alterações use o comando para dar reload no php-fpm: 
      sudo systemctl reload php8.1-fpm  
      A princípio é isso!
       
      Siga as atualizações no tópico principal: "Tutorial completo de infraestrutura para montar um servidor TFS 1.x no Ubuntu 22.04" ... 
       
       
      Fontes: 
      - https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-20-04-pt
      - https://conectandonet.com.br/blog/como-instalar-a-pilha-lemp-no-ubuntu-20-04-server-desktop/
       
       
       
       
    • Por Imperius
      Olá, pessoal! Acabei encontrando um script que tinha feito a um tempo atrás. Estou compartilhando aqui para quem quiser usar ou melhorar.
       
      É bem parecido com os outros sistemas de roleta, igual deste tópico: https://tibiaking.com/forums/topic/101557-action-cassino-roleta-de-items/
       
      Como funciona?
       
      O "Treasure Chest" é um item custom, onde o jogador têm a possibilidade de ganhar itens raros ou bem meia boca. Tudo dependerá da sorte.
       
      O jogador precisa tacar o treasure chest na bancada e acionar a alavanca. O treasure chest irá se transformar em vários itens de forma randômica no qual o jogador poderá ou não ganhar. No final, apenas um item é entregue ao jogador.
       
      Para entender melhor o seu funcionamento, segue o GIF abaixo:
       

       
       
      em data > actions > actions.xml
       
       
      em data > actions > scripts > crie um arquivo chamado leverTreasureChest.lua
       
       
      no banco de dados do servidor, adicione o seguinte código em "SQL":
       
       
       

      Também estou disponibilizando uma página PHP, para quem quiser usar no site do servidor. Na página tem informações sobre o funcionamento, quais são os possíveis prêmios e a lista de jogadores que ganharam os itens raros.
       

       
       
      Espero ter ajudado de alguma forma! : )
       
      treasure_chest.php
    • Por Maniaco
      Boa Noite TibiaKing!!!
       
      Bom estou procurando uma base de um WEBSITE DE !!DBO!!
      Quem poder DIPONIBILIZAR AGRADEÇO.


      A alguns dias ando procurando essa base mas sem sucesso algum, e gostaria de verificar com vocês se já foi dispobilizado ou até mesmo alguem possa fornecer esse WebSite. para o meu futuro projeto!

      Segue algumas img para facilizar a localização da base, lembrando que já achei varios sites usando a mesma base! então acredito que já está liberado em alguem site-forum-deepWeb! segue os links de outros servidores que utilizam a mesmo WEBSITE!.

      Link Encurtado: l1nq.com/895iG

      2 Link que usa mesma base de site: l1nq.com/NoC69

      3. Link que utiliza a mesma base. l1nq.com/nLuFZ



       
    • Por Renato
      O que é?
      O script é assim, ele conta quantos monstros você já matou até o momento, consultando por [ !monsters ]
      Agora com a versão 2.0 você pode consultar monstro específico, pela talk [ !monsters Demon ] por exemplo. SE O MONSTRO ESTIVER CONFIGURADO.
      Ahh, e você também configura a recompensa que ele ganhará ao matar X de determinado monstro =p

      Vamos lá.
      Se você já instalou o Killed Monsters Count 1.0 é só abrir o mesmo arquivo e substituir.
      Caso não, vá em server/data/mods ou server/mods crie o arquivo monsterskill.xml e coloque dentro:


      <?xml version="1.0" encoding="UTF-8"?>
      <mod name="Monsters Kill Count and Awards" version="2.0" author="Renato Ribeiro" enabled="yes">
      <config name="config-monsterskill"><![CDATA[
      local monters = {
      ['demon'] = { id = 1, qtKill = 250, itemId = xxxx, qtItem = 1 },
      ['hydra'] = { id = 2, qtKill = 500, itemId = yyyy, qtItem = 1 },
      ['frost dragon'] = { id = 3, qtKill = 750, itemId = zzzz, qtItem = 1},
      }
      storage = 1647
      killedMonsters = getPlayerStorageValue(cid, storage)
      ]]></config>
      <event type="look" name="monsterLook" event="script"><![CDATA[
      domodlib("config-monsterskill")
      function onLook(cid, thing, position, lookDistance)
      if(isPlayer(thing.uid)) then
      doPlayerSetSpecialDescription(thing.uid, "\n Killed Monsters: " .. killedMonsters)
      end
      return TRUE
      end
      ]]></event>
      <event type="kill" name="monsterKill" event="script"><![CDATA[
      domodlib("config-monsterskill")
      function onKill(cid, target)
      if (isMonster(target)) then
      setPlayerStorageValue(cid, storage, math.max(1, getPlayerStorageValue(cid, storage) + 1))
      end
      if (monsters[string.lower(getCreatureName(target))]) then
      mName = getCreatureName(target)
      mId = monsters[string.lower(mName)].id
      mqtKill = monsters[string.lower(mName)].qtKill
      mItemId = monsters[string.lower(mName)].itemId
      mqtItem = monsters[string.lower(mName)].qtItem
      getMStorage = getPlayerStorageValue(cid, storage + mId)

      setPlayerStorageValue(cid, storage + mId, math.max(0, getMStorage + 1))

      if (getMStorage == mqtKill) then
      doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Congratulations! You earned " .. mqtItem .. " " .. getItemNameById(mItemId) .. ".")
      adding = doPlayerAddItem(cid, mItemId, mqtItem)
      doSetItemSpecialDescription(adding, "\n Reward to " .. getPlayerName(cid) .. " to kill " .. qtKill .. " " .. mName .. "s")
      end

      end
      return TRUE
      end
      ]]></event>
      <event type="login" name="monsterLogin" event="script"><![CDATA[
      function onLogin(cid)
      registerCreatureEvent(cid, "monsterLook")
      registerCreatureEvent(cid, "monsterKill")
      return TRUE
      end
      ]]></event>
      <talkaction words="!monsters" event="script"><![CDATA[
      domodlib("config-monsterskill")
      function onSay(cid, words, param, channel)
      if (monsters[string.lower(param)] or monsters[param]) then
      killedMonstersX = getPlayerStorageValue(cid, storage + monsters[string.lower(param)] and monsters[string.lower(param)] or monsters[param])
      doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have killed " .. killedMonstersX .. " " .. param .. "s at the moment.")
      elseif (param) then
      doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Do not have a " .. param .. " task.")
      else
      doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have killed " .. killedMonsters .. " monsters at the moment")
      end
      return TRUE
      end
      ]]></talkaction>
      </mod>
      [/code]

      [b]Talkactions:[/b]
      !monsters - consulta quantos monstros você já matou ao total (também aparece no seu look)
      !monsters NOME - consulta quantos monstros 'NOME' você já matou

      [b]Pra adicionar novos monstros siga o padrão:[/b]
      ['frost dragon'] = { id = 3, qtKill = 750, itemId = zzzz, qtItem = 1},
      ['nome do monstro'] = { o id tem que ser sequencial, ou seja, se o ultimo for 3, o proximo é 4, depois 5 etc. o qtKill é q quantidade que o cara tem que matar pra ganhar o item. itemId é o id do item que o cara ganha e qtItem é a quantidade que ele ganha. Por exemplo você pode por o id da arrow e na qtItem você poe 100, ele ganha 100 arrows. Agora se for um item que não da pra juntar, mesmo você colocando 100 ele só vai ganhar 1. }


      [b]Enfim, script não testado, qualquer erro POSTE AQUI![/b]

      Abraços.
    • Por Renato
      Olá galera,
      venho trazer a vocês o StoneCraft system, um sisteminha com iniciativa mais para treino pessoal, mas que ficou bem legal.
      Como este 1.0 ainda é simples, não está em mod, só é necessário um action.

      Intro >
      Vamos lá, o script serve para coletar pedras, no exemplo eu coloquei só algumas como, ancient stone, battle stone, que em meu server (Arcadia) eu usarei para complementar receitas e forjar items, agora vocês usem a criatividade.
      é basicamente assim, você usa a pick em alguma pedra que está configurado em sua tabela, ficará usando até quebrar (configurado por breakChance, em porcentagem) a pedra. Quando quebrar você pode 'dropar' uma pedra ou não, depende da sua sorte (configurado por dropChance, em porcentagem). Caso não consiga dropar, vá para outra pedra e tente novamente sua sorte, ou espera a pedra voltar ao seu estado normal em tantos minutos (configurado por respawnTime, em minutos). Caso consiga dropar algo, será de acordo com sua sorte um dos items presentes na array drops da pedra quebrada.

      O script é praticamente isso só, caso não entenda, pergunte.

      Imagem >


      Instalando >
      Crie um arquivo lua em actions/scripts com o nome stonecraft.lua, e dentro ponha:



      -- Name: StoneMining
      -- Version: 1.0
      -- Author: Renato Ribeiro
      -- Official Forum: www.tibiaking.com
      -- About Script: read in (http://tibiaking.com/forum/topic/8998-stonemining-system/) -> brazilian portuguese only
      -- Read: GNU General Public License

      function createItem(pos, itemid)
      doSendMagicEffect(pos, 34)
      doCreateItem(itemid, 1, pos)
      doSendMagicEffect(pos, 34)
      end

      function onUse(cid, item, fromPosition, itemEx, toPosition)

      stones = { -- time in minutes, chance in percent '%', drops separated by comma (virgula)
      [1285] = { breakChance = 35, respawnTime = 3, dropChance = 50, drops = {10549, 10549, 10549, 10549, 12403}},
      [3609] = { breakChance = 25, respawnTime = 7, dropChance = 30, drops = {10549, 10549, 12403}},
      [3608] = { breakChance = 25, respawnTime = 7, dropChance = 30, drops = {10549, 10549, 12403}},
      [3607] = { breakChance = 20, respawnTime = 7, dropChance = 30, drops = {10549, 10549, 12403}},
      [3616] = { breakChance = 15, respawnTime = 7, dropChance = 30, drops = {10549, 10549, 12403}},
      [3615] = { breakChance = 20, respawnTime = 7, dropChance = 20, drops = {10549, 10549, 10549, 13943, 13943, 11227, 11232}},
      [1356] = { breakChance = 20, respawnTime = 15, dropChance = 20, drops = {10549, 10549, 10549, 13943, 13943, 11227, 11232}},
      [1355] = { breakChance = 20, respawnTime = 15, dropChance = 20, drops = {10549, 10549, 10549, 13943, 13943, 11227, 11232}},
      [1357] = { breakChance = 20, respawnTime = 20, dropChance = 20, drops = {10549, 10549, 13943, 13943, 11227, 11232}},
      [1358] = { breakChance = 20, respawnTime = 20, dropChance = 15, drops = {10549, 13943, 13943, 11227, 11232}},
      [1359] = { breakChance = 20, respawnTime = 25, dropChance = 15, drops = {13943, 11227, 11232}}
      }

      if isInArray({0, 65535}, toPosition.x) then
      return false
      elseif stones[itemEx.itemid] then
      stoneEx = stones[itemEx.itemid]
      if (math.random(1, 100) < stoneEx.breakChance) then
      doRemoveItem(getTileItemById(toPosition, itemEx.itemid).uid)
      addEvent(createItem, stoneEx.respawnTime * 60000, toPosition, itemEx.itemid)
      if (math.random(1, 100) < stoneEx.dropChance) then
      itemDrop = stoneEx.drops[math.random(1, #stoneEx.drops)]
      doPlayerAddItem(cid, itemDrop)
      doSendMagicEffect(toPosition, 12)
      return doPlayerSendCancel(cid, "Your craft sucess, you found " .. getItemArticleById(itemDrop) .. " " .. getItemNameById(itemDrop) ..".")
      else
      doSendMagicEffect(toPosition, 9)
      return doPlayerSendCancel(cid, "Your craft sucess, but they found nothing.")
      end
      else
      doSendMagicEffect(toPosition, 2)
      return doPlayerSendCancel(cid, "Your craft fail, try again.")
      end
      else
      return doPlayerSendCancel(cid, "You must craft in a specially stone.")
      end
      end
      [/code] [b]Agora vá em actions/actions.xml e ponha:[/b] [code]
      <action itemid="2553" event="script" value="stonecraft.lua">


      Adicionando novas pedras >
      Siga o exemplo da tabela:
      Assim: [iD_DA_PEDRA] = { breakChance = CHANCE_DE_QUEBRAR_A_PEDRA, respawnTime = MINUTOS_PARA_RESPAWN_DA_PEDRA, dropChance = CHANCE_DE_DROPAR_ALGUM_ITEM, drops = {ITEMS_QUE_DROPAM, SEPARADOS_POR_VIRGULA}},
      Ficará: [3609] = { breakChance = 25, respawnTime = 7, dropChance = 30, drops = {10549, 10549, 12403}},

      Script Funcionando
      Testado em: Crystal Server 0.1.5, e TFS 0.4

      --
      Até a próxima, estou desenvolvento um sistema para fusão de summons (: aguardem!
      Abraços.</action>
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo