[PHP] Extract
-
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>
-
Posts Recomendados
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.