Ir para conteúdo
  • Cadastre-se

Posts Recomendados

:accept: Seu tutorial foi aprovado, você recebeu um ponto de reputação e o tópico será movido para a área correta.

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Link para o post
Compartilhar em outros sites

@Elwyn,

Muito obrigado por trazer este conteúdo.

Com certeza não irá ajudar apenas os mappers rsrs, porém muitos preguiçosos :P

Abraço!

Atenciosamente,

Bruno Minervino

Link para o post
Compartilhar em outros sites

Esse script foi feito para ajudar os mappers a fazerem quests sem precisar saber scriptwriting. Basta criar um bau, por actionid 15000 e um uniqueid que não coincida com outras storages usadas. Dentro do baú é só por quantos itens quiser.

Em data/actions/scripts crie um script chamado reward_system.lua e cole o seguinte código:

 

function onUse(player, item, fromPosition, target, toPosition, isHotkey)
	local chest = Container(item.uid)

	if not chest then
		return true
	end

	local uniqueid = chest:getUniqueId()
	if player:getStorageValue(uniqueid) == -2 then
		player:sendTextMessage(MESSAGE_INFO_DESCR, "It is empty.")
		return true
	end

	local size = chest:getSize()
	local reward = nil

	local start = player:getStorageValue(uniqueid) == -1 and 0 or player:getStorageValue(uniqueid)

	for i = start, size do
		reward = chest:getItem(i)
		if not reward then
			break
		end

		if reward:getWeight() > player:getFreeCapacity() then
			player:sendTextMessage(MESSAGE_INFO_DESCR, 'You have found a ' .. reward:getName() .. ' weighing ' .. reward:getWeight()/100 .. ' oz it\'s too heavy.')
			player:setStorageValue(uniqueid, i)
			break
		else
			local reward_container = Container(reward:getUniqueId())
			if reward_container then
				reward_container = reward_container:clone()
				reward_container:moveTo(player)
			else
				player:addItem(reward:getId(), 1)
			end
			local reward_msg = reward:getArticle() .. ' ' .. reward:getName()
			if reward:getCount() > 1 then
				reward_msg = reward:getCount() .. ' ' .. reward:getPluralName()
			end

			player:sendTextMessage(MESSAGE_INFO_DESCR, 'You have found ' .. reward_msg .. '.')

			player:setStorageValue(uniqueid, -2)
		end
	end

	return true
end

 

E em actions.xml cole a seguinte tag:

    <!-- Reward System -->
    <action actionid="15000" script="reward_system.lua"/>

E pronto.

 

Edit: Atualizado, agora o baú pode conter bags/backpacks/containers que contém itens.

 

Aqui não funcionou... quando clico no baú, o baú é "aberto" e é mostrado os itens lá dentro, daí o player puxa para ele e outros que vinhem fazê-la, não existirá mais itens.

 

ERRO:

 

Z3z0XwE.png?1

Editado por ScythePhantom (veja o histórico de edições)
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" ... 
       
      Aqui ensinaremos como compilar o código fonte do TFS na máquina LINUX e posterior configurar o servidor.
       
      PASSO 1 - COMPILANDO TFS NO UBUNTU
       
      Primeiramente, devemos instalar os softwares necessários. O comando a seguir instalará o CMake, um compilador e as bibliotecas usadas pelo TFS. Após usar o comando digite Y para aceitar a instalação.
      sudo apt install cmake build-essential libluajit-5.1-dev libmysqlclient-dev libboost-system-dev libboost-iostreams-dev libboost-filesystem-dev libpugixml-dev libcrypto++-dev libfmt-dev libboost-date-time-dev  
      Caso ainda não tenha criado a pasta do servidor (como foi dito no tutorial de instalação do PHP), use o comando a seguir para criar a pasta:
      sudo mkdir /home/otserv  
      E depois vá até a pasta usando o comando: 
      cd /home/otserv  
      Agora, usando o WinSCP vá até a pasta /home/otserv/ e jogue a pasta de seu servidor ai dentro ... 
       
      Antes deve estar assim: (se você seguiu o tutorial de instalação do PHP)
         
       
      Depois, os arquivos transferidos devem ser esses!

       
      Caso você não tenha os arquivos necessários, use:
      - TFS atual: https://github.com/otland/forgottenserver
      - TFS Nekiro's 8.60 Downgrade: https://github.com/nekiro/TFS-1.5-Downgrades/tree/8.60
       
      Após transferido os arquivos, use o comando abaixo para criar a pasta BUILD e entrar nela: 
      mkdir build && cd build E depois, use o comando do compilador: 
      cmake ..  
      Agora use o comando para compilar o código fonte do TFS:
      make  
      E pronto, o código fonte foi compilado e gerou um arquivo "tfs", agora use o comando a seguir para mover o TFS para a pasta do servidor e voltar para a pasta anterior.
      mv tfs .. && cd .. Ficando assim na pasta "otserv": 

       
      PASSO 2 - IMPORTANDO DATABASE E AJUSTANDO CONEXÃO PELO CONFIG.LUA
       
      Entre em seu phpmyadmin pelo navegador (IP/phpmyadmin, ou o outro destino que você escolheu conforme o tópico de instalação do phpmyadmin) 

      Depois clique em "novo" para criar um novo banco de dados:
       
       
      E depois de digitar o nome do novo banco de dados, clique em "criar": 

       
      Agora clique em "IMPORTAR" e depois em "escolher arquivo":

      E então selecione o arquivo padrão de database. Se você não tiver um arquivo padrão, use a do TFS: https://raw.githubusercontent.com/otland/forgottenserver/master/schema.sql
       
      E por fim, clique em EXECUTAR.

       
       
      No arquivo config.lua.dist você deve ajustar o dados para a conexão com o banco de dados: 
       
      -- MySQL mysqlHost = "127.0.0.1" mysqlUser = "forgottenserver" mysqlPass = "" mysqlDatabase = "forgottenserver" mysqlPort = 3306 mysqlSock = ""  
      (você pode incluir o caminho do mysqlSock para mysqlSock = "/var/run/mysqld/mysqld.sock"
       
      PASSO 3 - LIGANDO SEU SERVIDOR TFS NO UBUNTU E CRIANDO ARQUIVO AUTO RESTART
       
      Para prosseguirmos será necessária a instalação do SCREEN em sua máquina, veja o tutorial que explica o que ele é, para que server e ensina instala-lo: AQUI.
       
      Após a instalação, vamos criar um SCREEN para rodar o servidor chamada TFS ... 
      screen -S TFS  
      E após, usando o WinSCP, vá até a pasta do seu servidor em /home/otserv/ e crie um arquivo chamado "restart.sh" e coloque isso dentro dele:
      #!/bin/bash # to get 'ts' command: sudo apt install moreutils # to get 'crc32' command: sudo apt install libarchive-zip-perl BINARY_NAME=tfs MYSQL_USER=xxxx MYSQL_PASS=yyyy MYSQL_DATABASE=zzzz mkdir console mkdir crashlog mkdir mysql_backup # Permitir despejos de nucleo ulimit -c unlimited # Laco principal while true; do     # Backup do banco de dados, e o melhor momento para fazer a copia do banco de dados, o OTS esta offline com certeza, entao nao pode haver nenhum clone de item.     mysqldump -u $MYSQL_USER -p$MYSQL_PASS $MYSQL_DATABASE > mysql_backup/`date '+%Y-%m-%d_%H-%M'`.sql     # Compactar em gzip com mais de 3 dias.     find console/ -name "*.log" -mtime +3 -print -exec gzip -f {} \;     find crashlog/ -name "*.bin" -mtime +3  -print -exec gzip -f {} \;     find crashlog/ -name "*.core" -mtime +3  -print -exec gzip -f {} \;     find mysql_backup/ -name "*.sql" -mtime +3  -print -exec gzip -f {} \;     BINARY_WITH_HASH=`date '+%Y-%m-%d_%H-%M'`_`crc32 $BINARY_NAME`     # copie o arquivo binário atual, você precisa do binário desde o momento da falha para executá-lo no gdb.     cp $BINARY_NAME crashlog/$BINARY_WITH_HASH.bin     # iniciar servidor     # se o seu servidor já imprime a data com cada linha no console, você pode remover "| ts '%Y-%m-%d_%H-%M-%.S'"     stdbuf -o 0 ./$BINARY_NAME 2>&1 | ts '%Y-%m-%d_%H-%M-%.S' | tee 'console.log'     cat 'console.log' >> 'console/console_'`date '+%Y-%m-%d'`'.log';     mv core crashlog/$BINARY_WITH_HASH.core     echo INICIAR A ESPERA POR 3 SEGUNDOS, PRESSIONE CTRL+C PARA DESLIGAR O RESTARTER     sleep 3     echo FIM DA ESPERA done  
      Em seguida, dar permissão ao arquivo "restart,sh" com o comando: 
      sudo chmod 777 -R restart.sh  
      Logo, instale os programas necessários para o restart funcionar corretamente:
      sudo apt install moreutils sudo apt install libarchive-zip-perl Posterior, configure o restart.sh com os dados corretos para a conexão SQL: troque onde esta xxxx, zzzz, yyyy

      Para o restarter criar o arquivo core é necessário desativar o serviço apport no sistema com o comando:
      sudo systemctl stop apport.service sudo systemctl disable apport.service Depois de desativar, use o comando a seguir para ver se está ativo o core, você terá que ter como resposta: core
      cat /proc/sys/kernel/core_pattern  
      E por fim, iniciar o uso do arquivo "restart.sh" com o comando:
      ./restart.sh  
      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://github.com/otland/forgottenserver/wiki/Compiling-on-Ubuntu
       
       
       
       
       
    • Por amoxicilina
      Olá Kings, venho aqui trazer uma TalkAction pra você comprar premium account, sei que pode ser algo meio inútil por existir a store.
      Então vamos script:
       
       
    • Por luanluciano93
      Vá em talkactions/talkactions.xml e add as tags:
      <talkaction words="!aol" script="!aol.lua"/> <talkaction words="!bless" script="!bless.lua"/> Agora crie 2 arquivos .lua em talkactions/scripts/ com os nomes: !aol.lua e !bless.lua.

      Depois coloque o código dentro dos respectivos arquivos:
       
      !aol.lua
       
      !bless.lua


      Bem simples pessoal, abraços!
    • Por luanluciano93
      Olá pessoal, para quem não sabe esse script funciona da seguinte maneira, você escolhe um X item, ao dar use neste X item, a Stamina do player enche X tempo que você determinar.
       
      Crie um arquivo com o nome stamina_refuel.lua em actions/scripts e coloque isso dentro: 
      local stamina_full = 42 -- horas (stamina full) function onUse(player, item, fromPosition, target, toPosition, isHotkey) if player:getStamina() >= (stamina_full * 60) then player:sendCancelMessage("Your stamina is already full.") else player:setStamina(stamina_full * 60) player:sendTextMessage(MESSAGE_INFO_DESCR, "Your stamina has been refilled.") player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) item:remove(1) end return true end E em actions.xml adcione a tag:
      <action itemid="ITEMID" script="stamina_refuel.lua"/> Para editar é fácil, nesta parte: 
       
      local stamina_full = 42 -- horas (stamina full)

      Acima você escolhe o tempo (em horas) que encherá ao usar o stamina refuel.

      Bem simples né pessoal ?! Espero ter ajudado, abraços!

       
    • Por luanluciano93
      Auction System: sistema que disponibiliza uma negociação offline, onde você oferta um item e esse item é divulgado no site do server ou in-game e qualquer player pode comprar o item utilizando um comando especificado, é como se fosse um market para servidores mais antigos.
       
      Lembrando que esse sistema também funciona para TFS 1.x 
       


      Os comandos disponíveis são:
      !offer add, itemName, itemCount, itemPrice ex: !offer add, plate armor, 1, 500 !offer buy, AuctionID ex: !offer buy, 9 !offer remove, AuctionID ex: !offer remove, 8 !offer list  
      Crie uma arquivo .lua dentro da pasta data/talkactions/scripts com o nome auction_system.lua, dentro do mesmo adicione o code: 
       
      Em seguida em talkactions.xml adicione a tag: 
      <talkaction words="!offer" separator=" " script="auction_system.lua" /> No banco de dados execute as querys:
      CREATE TABLE `auction_system` ( `id` int(11) NOT NULL AUTO_INCREMENT, `player_id` int(11) NOT NULL, `item_name` varchar(255) NOT NULL, `item_id` smallint(6) NOT NULL, `count` smallint(5) NOT NULL, `value` int(7) NOT NULL, `date` bigint(20) NOT NULL, PRIMARY KEY (`id`), FOREIGN KEY (`player_id`) REFERENCES `players` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8;  

       
      A base do script foi retirado do script do vDk neste link, e caso alguém queira o PHP deste script pode usar esse: 

       
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo