CreatureScripts TFS 1.X Recompensa por Level (Item, Bank, Addon, Mount)
-
Quem Está Navegando 0 membros estão online
Nenhum usuário registrado visualizando esta página.
-
Conteúdo Similar
-
Por Johncore
Open Source MMORPG emulador de Tibia escrito em C++.
Servidor Oficial do Tibiaking!
Novidades!
- Protocolo 12.51
- Bestiary
- Charms
- Boosted Creature
- Quick Loot
- Supply Stash
- Event Schedule
- GLOBAL MAP FULL
- Quests com Quest Log 100%
- Anti Rollback 100%
- Source Optimizada
- Sistema Anti WPE 100%
- SUMMER UPDATE 2020 AND WINTER UPDATE 2020
- Bounac
- Wherehyenas
- Mirrored Nightmare
- Exercise Training 100%
- Monstros 100%
- Trainer Offline 100%
- Trainer Online 100%
- War System 100%
Imagens :
THAIS TEMPLE
Downloads
Servidor + Database:
Download
»» PROJETO OFFICIAL: GITHUB
»» Distro + Dlls 64x
otg-king_Distro_e_Dlls_Tibiaking.com.zip
OTG Gesior
GESIOR OFFICIAL CLIQUE AQUI
MAP EDITOR 12.51
- Remere's Map Editor 3.7.1 - Paletas atualizadas!
- Remere's Map Editor 3.7.0: MediaFire (scan)
- Items (.otb e .xml) do OTG King Otserv 12.51 https://github.com/Johncorex/otg-king/tree/master/data/items
Créditos :
The Forgotten Server
OTG contribuidores
OTX contribuidores
Otbr contribuidores
Johncore
Erick Nunes
Cjaker
Leu
Tibiaking
Marson Schneider
Erimyth
Nolis
Toninho
Renan Ulian
jzdj
Grupo Whatsapp Official OTG (duvidas, chat):
LINK
-
Por Johncore
OTG-Premium-Version - 10x e 12.40
Agradecemos primeiramente ao Tibiaking pela oportunidade nos concedida,
somos parceiros oficiais do Tibiaking.com melhor Forum Brasileiro!
Especificações :
- Maioria das Quests com Quest Log 100%
- Anti Rollback 100% com tutorial
- Source Optimizada (baixo consumo de CPU e memoria)
- Sem Bug de Clonar dinheiro (Npcs Refeitos)
- Sistema Anti WPE 100%
- SUMMER UPDATE 2020 AND WINTER UPDATE 2020
- New Falcons Bastion
- New Asuras
- Warzone 4,5,6 100%
- Exercise Training 100%
- Raids 100%
- Monstros 100%
- Trainer Offline 100%
- Trainer Online 100%
- Database Completa COMPATIVEL COM GESIOR MARCOMOA E OTG-GESIOR
- War System 100%
- Global Map FULL RL
OBS: GESIOR OFFICIAL CLIQUE AQUI
Imagens :
THAIS TEMPLE
FALCONS
NEW ASURAS
WZ 4,5,6
Downloads :
GESIOR OFFICIAL:
CLIQUE AQUI
SERVIDOR + DATABASE:
Download
PROJETO OFFICIAL: GITHUB
Grupo Whatsapp Official OTG (duvidas, chat):
LINK
Créditos :
The Forgotten Server
OTG contribuidores
OTX contribuidores
Otbr contribuidores
Johncore
Erick Nunes
Leu
Marcomoa
Marson Schneider
Leandro Baldissera
-
Por luanluciano93
ALUNIA 2017 - CUSTOM YOUROTS
Olá pessoal, hoje venho apresentar meu projeto open para vocês. Sou muito fã do mapa Yourots, sempre em horas vagas procurava joga-lo, para quem não conhece: é um servidor estilo baiak com mais RPG, e como tenho me interessado por versões mais atuais, resolvi criar um yourots custom (alunia OT) seguindo as ultimas atualizações do TFS. O projeto está sendo desenvolvido no github (projeto github) onde posto atualizações diárias (changelog). Vocês podem postar dúvidas, erros e qualquer outra coisa aqui no tópico ou criar um issue no github.
# Informações do Servidor e Sistemas:
→ Versão: 10.98 (seguindo as atualizações do TFS 1.3).
→ War System, Addons System, Mounts System, Market System e Training OFF.
→ Vip System, Clean Database (players, accounts e houses inativas), Reward Level System, Task System, Arena PVP.
→ Achievements System (adiconado, falta configurar)
→ Marriage System (pendente)
→ Quest Log (pendente)
→ Refinamento System (pendente)
→ Cassino System (pendente)
# Eventos do Servidor
→ Duca Evento
→ Zumbi Evento
→ BattleField Evento
→ War Anti-Entrosa, CastleWar, Capture The Flag, Gran Tower, Hour Kill, War of Emperium, Dota, Coliseum, Survival Evento (pendentes).
# Quests
→ Demon Helmet, Annihilator, Pist of Inferno, Demon Oak, Big Quest ...
Download
Créditos:
• GOD Bon (mapa yourots)
• TFS team (pela engine do servidor)
• @leoloko12 (mapa styller)
• @Jobs (correções no servidor)
É isso pessoal, espero que gostem
-
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 Under
Precisei dessa função e não achei em lugar nem um aqui está uma versão funcional para tfs 1.2 +.
Listando o monstro ou player que o jogador morreu.
Data/Creaturescript/XML
<event type="login" name="LoginDeath" script="death_tp.lua" /> <event type="preparedeath" name="DeathTeleport" script="death_tp.lua"/> Data/Creaturescript/death_tp.lua
function onLogin(player) player:registerEvent("DeathTeleport") return true end local maxDeathRecords = 5 -- By Underewar function onPrepareDeath(player, killer) -- Update Death DB local byPlayer = 0 local killerName if killer ~= nil then if killer:isPlayer() then byPlayer = 1 else local master = killer:getMaster() if master and master ~= killer and master:isPlayer() then killer = master byPlayer = 1 end end killerName = killer:getName() else killerName = "field item" end local byPlayerMostDamage = 0 local mostDamageKillerName if mostDamageKiller ~= nil then if mostDamageKiller:isPlayer() then byPlayerMostDamage = 1 else local master = mostDamageKiller:getMaster() if master and master ~= mostDamageKiller and master:isPlayer() then mostDamageKiller = master byPlayerMostDamage = 1 end end mostDamageName = mostDamageKiller:getName() else mostDamageName = "field item" end local playerGuid = player:getGuid() db.query("INSERT INTO `player_deaths` (`player_id`, `time`, `level`, `killed_by`, `is_player`, `mostdamage_by`, `mostdamage_is_player`, `unjustified`, `mostdamage_unjustified`) VALUES (" .. playerGuid .. ", " .. os.time() .. ", " .. player:getLevel() .. ", " .. db.escapeString(killerName) .. ", " .. byPlayer .. ", " .. db.escapeString(mostDamageName) .. ", " .. byPlayerMostDamage .. ", " .. (unjustified and 1 or 0) .. ", " .. (mostDamageUnjustified and 1 or 0) .. ")") local resultId = db.storeQuery("SELECT `player_id` FROM `player_deaths` WHERE `player_id` = " .. playerGuid) local deathRecords = 0 local tmpResultId = resultId while tmpResultId ~= false do tmpResultId = result.next(resultId) deathRecords = deathRecords + 1 end if resultId ~= false then result.free(resultId) end local limit = deathRecords - maxDeathRecords if limit > 0 then db.asyncQuery("DELETE FROM `player_deaths` WHERE `player_id` = " .. playerGuid .. " ORDER BY `time` LIMIT " .. limit) end if byPlayer == 1 then local targetGuild = player:getGuild() targetGuild = targetGuild and targetGuild:getId() or 0 if targetGuild ~= 0 then local killerGuild = killer:getGuild() killerGuild = killerGuild and killerGuild:getId() or 0 if killerGuild ~= 0 and targetGuild ~= killerGuild and isInWar(playerId, killer:getId()) then local warId = false resultId = db.storeQuery("SELECT `id` FROM `guild_wars` WHERE `status` = 1 AND ((`guild1` = " .. killerGuild .. " AND `guild2` = " .. targetGuild .. ") OR (`guild1` = " .. targetGuild .. " AND `guild2` = " .. killerGuild .. "))") if resultId ~= false then warId = result.getDataInt(resultId, "id") result.free(resultId) end if warId ~= false then db.asyncQuery("INSERT INTO `guildwar_kills` (`killer`, `target`, `killerguild`, `targetguild`, `time`, `warid`) VALUES (" .. db.escapeString(killerName) .. ", " .. db.escapeString(player:getName()) .. ", " .. killerGuild .. ", " .. targetGuild .. ", " .. os.time() .. ", " .. warId .. ")") end end end end -- teleportando o player para o templo player:teleportTo(player:getTown():getTemplePosition()) -- enchenco life e mana player:addHealth(player:getMaxHealth()) player:addMana(player:getMaxMana()) -- Remove EXP local level = player:getLevel() player:removeExperience(level * 10 * 100, true) -- DEATH MSG player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You are dead.") -- criando efeito de teleport player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) return false end
-
-
Estatísticas dos Fóruns
96840
Tópicos519576
Posts
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.