| Bem-vindo(a), Convidado |
Você precisa se registrar antes de poder postar em nosso site.
|
| Usuários online |
Há atualmente 2 usuários online. » 0 membro(s) | 2 convidado(s)
|
| Últimos tópicos |
[Script] !buyvip + Tile O...
Fórum: Scripts TFS 0.X
Última postagem: paulim78
16-10-2025, 11:29 AM
» Respostas: 0
» Visualizações: 159
|
Servidor PokeTibia Open S...
Fórum: Servidores Poketibia
Última postagem: paulim78
08-09-2025, 11:26 AM
» Respostas: 0
» Visualizações: 164
|
[8.60] Tibiagun OPEN SRC
Fórum: Outros tipos de servidores
Última postagem: paulim78
23-08-2025, 01:25 PM
» Respostas: 0
» Visualizações: 158
|
[8.60] Baiak editado ice ...
Fórum: Tfs 0.x (Otserv)
Última postagem: paulim78
22-08-2025, 10:41 PM
» Respostas: 0
» Visualizações: 168
|
[Friday13War] (V3.0) - (E...
Fórum: Tfs 0.x (Otserv)
Última postagem: paulim78
22-08-2025, 10:31 PM
» Respostas: 0
» Visualizações: 147
|
Player nao salva quando d...
Fórum: Tutoriais Iniciante
Última postagem: paulim78
22-08-2025, 07:09 PM
» Respostas: 0
» Visualizações: 145
|
MuServer + SRC SLOTS PETS...
Fórum: Mu Online - MuServers
Última postagem: paulim78
21-08-2025, 01:58 PM
» Respostas: 2
» Visualizações: 394
|
[8.60] - Global Full CAST...
Fórum: Tfs 0.x (Otserv)
Última postagem: paulim78
19-08-2025, 08:03 PM
» Respostas: 0
» Visualizações: 152
|
[8.60] - Baiak - Editado ...
Fórum: Tfs 0.x (Otserv)
Última postagem: paulim78
19-08-2025, 05:22 PM
» Respostas: 0
» Visualizações: 172
|
[8.60] -Baiak ZIK VIP 15 ...
Fórum: Tfs 0.x (Otserv)
Última postagem: paulim78
19-08-2025, 02:30 PM
» Respostas: 0
» Visualizações: 265
|
|
|
| [8.60] OtServer Alissow 4.11 Completo |
|
Postado por: paulim78 - 19-08-2025, 02:02 PM - Fórum: Tfs 0.x (Otserv)
- Sem respostas
|
 |
Eu tinha o download desse servidor, então eu estou reupando o link para download pois em muitos lugares link esta off.
Alissow OTs 4.11!
Esta versão 4.11 foi meio apressada, só adicionamos as features novas do 8.6.
Aproveitem.
Créditos:
Alissow
Comedinha
Luis
Nirk
TFS Team
Viniply
Xedegux
Sobre o OT/Mapa:
Principais quests:
-Annihilator
-Inquisition Quest
-Pits of inferno
-Demon Oak
-Solar axe quest
-HOTA
-MPA quest
-The Challenger
Monstros:
-Total monstros: 10292
-Total spawn: 5587+
Cidades:
-12 Cidades
-200 Houses+-
Raids/Invasões:
-Rat
-Orshabaal
-Ghazbaran
-Giant spider/The old window
-Ferumbras
-Morgaroth
Spells:
-Magias editadas para balanceamento das vocações
Changelog
Atualização [3.4 BETA]:
- Removido áreas não usadas no mapa, diminuindo o tamanho em MBs
- Adicionado Anti Magebomb System
- Corrigido bugs no npc addon
- Adicionado sistema onde os npcs falam sozinhos (Igual como foi adicionado no global). First ;]
- Adicionado Elf village em Venonh ( bem parecida com a do global ;])
- Potions desaparecem quando usadas
- Corrigido sistema de Up
- Corrigido sistema de Monster Counter
- Nova dragon lair em Mirand Theraan (Subsolo)
- Adicionado porta de level, que protege leveis baixos acessarem os demons da cidade de Flam
- Ampliado deserto da cidade de Mirand Theraan
- Adicionado Ilha de Goroma
- Adicionado Forbidden islands
- Ampliado floresta da cidade de alfon e colocado área de macacos parecida com Banuta.
- Ligação de alfon com Mirand Theraan
- Corrigido bugs reportados nas portas das casas
- Corrigido posição dos buracos e escadas
- Adicionado beds em todas as casas
- Corrigido bugs em casas de yalahar
- Adicionado Blue legs quest ( Koshei The Deathless global)
- Corrigidas quase todas as areas de Yalahar
- Teleports em Yalahar substituidos por NPCs de teleport do global
- Corrigido pequenos erros no npc Capitao Coruja, e adicionado viagem à goroma
- diminuido ataque do Eye of the seven
- Ice rapier agora quebra
- Corrigido npc Banker
- Adicionado quase todos os items 8.5
- Adicionado medusa
- Adicionado Todos os outfits novos
- Corrigido NPC Banker (que dava dinheiro) Script By Ta4e
- Corrigido Annihilator Quest
- Adicionado Notice System
- Adicionado novo distro, compilado por Comedinha
Atualização nº 2 [3.4]:
Otserv atualizado...
Corrigido debugs frequentes
Corrigido debugs na magia exevo pan
Corrigido bugs nos npcs Roy e Firewalker
Adicionados mais novos items 8.5, agora temos 90% dos items novos...
Atualização 3.5 [06/08/2009]:
- Cidade principal (dorion) totalmente reformada
- corrigido blue legs quest
- Corrigido alavancas de compra de potions
- Adicionado alavancas de compra de runas
- Corrigido npc Bank
- Adicionado NPC King Arthas, que vende promotion
- Adicionado npc Rashid, que vende items.
- Arrumado Wild Growth rune
- Arrumado Utani Hur
- Magias reajustadas
- Novo estilo de server save
- Ilha de mystic reformulada (by Nirk)
- Adicionado nova magia para knights "Exkordium".
- Adicionado nova magia para mages (promoted) "Exura Seil".
- Adicionado nova magia para mages (promoted) "Exevo Gran Frigo". (arrumar -> sem exhausted nem gasta mana)
- Adicionados novos monstros.
- Adicionado quest challenge (lvl 250)
- Corrigido bug do Dead Cyclops
- Bug aol Arrumado
- Poi Modificada
- Corrigido teleports ghouls yalahar
- Modificada demon helmet quest, assim como o premio da quest
- Corrigido nome do Hallowed axe
- Corrigido bug das houses
- Corrigido bug dos items andaveis
Atualização Patch 3.5.1 [07/08/2009]:
- Corrigido erro na inicialização do Ot
- Bug das potions corrigido
- Bug do aol corrigido (pelomenos pra mim)
- Bug dos outfits corrigido
- Corrigido erros nas escadas na ilha PvP
- O monstro The Fastest Turtle agora não morre, se tornando um monstro apenas para atrapalhar
- Retirada suposta quest dos 3 hellhounds e 1 minishabaal
- Adicionado teleport de retorno na Ferumbras Tower
- Corrigido posições da raid de The old widow
- Corrigido bug das escadas nas minas de demons
- Corrigido alguns bugs vistos no mapa
Atualização 3.6 [10/08/2009]:
- Arrumado bugs criticos
- Arrumado comando !promote/!demote
- Atualizado Items.xml
- Bug das Beds arrumado
- Modificações na cidade, como, nature e caves
- Nova sala de treino
- Adicionado comando !highscores
Atualização 3.7! Beta [18/12/2009]:
- Guildhall support (Elf)
- Nova deathlist(Elf, OpenTibia SVN)
- Frags funcionando (Elf)
- Atualizado monstros e items (slawkens, KaczooH, Elf)
- Novas talkactions: /commands, /wp, /storage, /config, /promote & /demote. (slawkens)
- Novas funções lua
- Novos creatureevents (slawkens, Elf)
- Novos configuráveis (Elf, slawkens)
- Modificado ataque de monstros existentes (especialmente outfits e velocidade) (Elf)
- Monstros reorganizados & atualizados (Nem todos) (slawkens)
- Melhorado sistema de banimentos (Elf)
- Reescrita janela de Rule Violation (Elf)
- Arrumado Stamina (Elf, OpenTibia SVN)
- Casas agora são salvas nas modificações do dono (Elf)
- Escadas de yalahar funcionando perfeitamente (Elf, Talaturen)
- Sistema de nado & waterball completo (slawkens)
- Monstros invisiveis não são mais mandandos ao client (anti bot) (OpenTibia SVN)
- Anti-dash (OpenTibia SVN)
- Sistema de leilão de casas, possibilidade de usar site para vender casas (house_actions table) (OpenTibia SVN, Elf)
- Salvando bot actions para /logs/bots por cada player. Por exemplo, bot pode enviar mensagem com mais de 255 caracteres (slawkens)
- Novos raid events- item spawning & disappearing and more (Elf)
- Modificações no NPC system (Elf)
- NPCs OutfitModule (Elf)
- Completo 8.53 support, com wars (Elf)
- Completo 8.54 support (Elf)
- Arrumado NPC voices (Elf)
- Players serão informados quando o Gamemaster logar ou ficar invisivel (slawkens)
- Arrumado Player Deaths (Elf, slawkens)
- Arrumado Abuso de PZ (slawkens)
- Portas agora não ajudam players a entrar em PZ (slawkens)
- Magic level formula (OpenTibia SVN, KaczooH)
- Memory leaks (Elf)
- Queries optimization (Talaturen)
- Janelas podem ser abertas do lado de fora da casa- agora apenas GMs podem fazer isso (slawkens)
- arrumado Efeitos para o Ghost (GM)- configuravel (slawkens)
- Corrigido >> Ghost debugging players (OpenTibia SVN, Elf)
- Corrigido erro na promotion (Elf)
- Corrigido vários erros no console. (slawkens)
- Corrigido Spam de magias (Elf)
- Corrigido stamina premium (Elf)
- Corrigido Clean (Elf)
- Corrigido vários outfits (Elf)
- Corrigido Ghost (Elf)
- Todas as correções no OpenTibia SVN (Open Tibia SVN, Elf)
- Corrigido Todos os crashes possiveis (Elf)
- Npcs Corrigidos (Comedinha)
- Distro Reformulado (comedinha)
- Bugs de reports arrumados (Comedinha)
- Novos outfits (Alissow)
- Actions Arrumadas (Comedinha)
- Libs trocadas (Comedinha)
- Talkactions bugadas arrumadas (Comedinha)
- Reforma na área Sul da cidade Dorion (Alissow)
- Adicionado monstros 8.54 (Alissow)
- Corrigido bug das potions infinitas (Alissow)
Atualização 3.7 Patch 1 [27/12/2009]:
- Rampa na frente da loja de foods retirada (Alissow)
- Arrumado bugs de mapa em anknor (Alissow)
- Bug na Lib dos npcs corrigido (Alissow)
- Bug do acc manager arrumado! (Alissow)
- Magias "Exkordium" e "Ice Storm" arrumadas (Alissow)
- Monstros 8.54 funcionando (Alissow)
- 2º Addon Yalaharian arrumado (Alissow)
- Addons Warmaster adicionados no NPC Addoner (Alissow)
- Pequenas modificações na cidade principal, Dorion, para melhora da jogabilidade (Alissow)
- Comando /Deathlist retirado (Alissow)
- Magic Wall Rune arrumada (Alissow)
- Quest Annihilator arrumada (Alissow)
- "Your depot contain x items" Arrumado (Alissow)
- Addons reorganizados, mais facil aggora (Alissow)
- Tempo de Red skull e Black skull reduzidos para 24 e 42 horas (Alissow)
- Reduzida porcentagem de morte (Alissow)
- Acrescentado chance de critical hits (Alissow)
- ShowHealingDamage Adicionado (Alissow)
- Várias partes do mapa remapeadas (Alissow)
- NPCs para recarga de Soft boots & Firewalker boots arrumados [Não testado] (Alissow)
- Comando !frags arrumado! (Alissow)
- Agora é possivel fazer addons sem precisar do comando !buypremium (Alissow)
Atualização 3.8 [17/01/2010]:
- Arrumado bug nas escadas do Dlair (Alissow)
- Todos os bugs nos NPCs arrumados (Comedinha)
- Novas talkactions [a pedidos] (Comedinha)
- Deathlist arrumada (Comedinha)
- Novo Distro (Comedinha)
- MySQL Atualizada (Comedinha)
- Firewarker boots não é mais gasta quando não está usando (Comedinha)
- Problemas com items no Rashid arrumados (Alissow, Comedinha, Comunidade)
- O NPC Banker foi corrigido, mas achei mais seguro retira-lo, visto que ninguem usava e poderia causar outro tipo de bug
- Ilha (Sim aqui é uma ilha) de Zao adicionada (Alissow, Barker)
- Monstros 8.54 aperfeiçoados (Alissow, Markithu, Zkum)
- Reduzido danos da magia Exkordium (Alissow)
- Os npcs Dark Rodo e Rachel vendem Blank Runes (Alissow)
- Magias que não hitavam anteriormente foram arrumadas (Alissow)
- Comando !buypremium arrumado (Alissow)
- Arena PVM - Mais conhecida como Arena Svargrond - FUNCIONANDO!!! (Alissow)
- Magia LightChain Retirada (Alissow)
- Adicionado um sisteminha legal no templo (Alissow)
- NPC Rashid retirado (Alissow)
Atualização 3.8 Minor Patch 1 [17/01/2010]:
- Comando Deathlist retirado novamente, fizemos testes equivocados.
Se você é uma das 16 pessoas que baixou a versão anterior (3.8) não precisa baixar esta, basta retirar o comando !deathlist e /deathlist do seu Talkactions.xml, Os comandos causam quedas no servidor.
Atualização 3.9 [15/02/2010]:
- Cidade principal (Dorion) reformada, novo templo, novo depot, novo porto, novos npcs :] (Alissow)
- Adicionado Reputation System (Comedinha, Cybermaster)
- Adicionado !bless system (Comedinha)
- /info melhorado (Comedinha)
- Jail System (Comedinha)
- Bug chatinho nos tiles pretos arrumado.
- Magic Wall Funcionando! (Alissow)
- Agora você pode fazer bolos e pães :] (Comedinha, Jean, Ojani)
- Adicionado sistema de casamento (Comedinha, ScorpiOOn93, Alissow)
- Loot The Fastest Turtle diminuido (Alissow)
- Loot e experiencia do Feromous mais baixo (Alissow)
- Sistema de parceis para Dorion funcionando (Alissow)
- Guildwar System (Comedinha)
- Anti MageBomb System (Comedinha, Huggen)
- Adicionado Anti Nuker - Esse funciona! (Comedinha)
- Adicionado Map Marks, para os players novos (Alissow, Comedinha)
Atualização 4.0 [15/02/2010]:
- Cidade Mountain totalmente reformada (Alissow)
- Montanha de Goblins de Dorion reformada (Alissow)
- Demonic Castle de Dorion reformado (Alissow)
- Cidade de Venonh modificada (Luis)
- Distro atualizado, funcionando nos clients 8.54, 8.55, 8.56 e 8.57 (Comedinha)
- Comando !bless retirado (Alissow)
- O NPC Ermes não vende mais items de decoração (Alissow)
- Arrumado bugs na Ferumbras Tower (Alissow)
- O comando !AFK on agora mantem o player parado (Comedinha)
- Arrumado bugs nas escadas da área de DeathFans (Alissow)
- Comando !Deathlist funcionando! (Alissow, Doidinmapper, GT Thionix)
- Sistema de REP atualizado (Comedinha)
- Sistema de Polls (Comedinha)
- Banco por comandos (Comedinha)
- Novos comandos de addon e accounts (Comedinha)
- Sistema de futebol completo! (Comedinha)
- Sistema Antibot (Comedinha)
- Magia Spared Hur modificada (Alissow, Orzeleagle)
- Adicionado sistema de montaria (Alissow, unknown666)
- Adicionado Canivetes (Alissow, Siramix)
- Nova hunt Subaquatica (Luis)
Atualização 4.11! [11/07/2010]:
- Versão 8.6, todos os items, outfits e monstros novos (Comedinhasss, Fireelement)
- Adicionados os novos monstros 8.6 (Alissow)
- Bug das potions arrumado (Comedinha, Matheusmkalo, Gabriel linhares, Fireelement)
- Erros das runas arrumado (Comedinha, Gabriel linhares, Matheusmkalo, fireelement)
Download
Servidor: Mega.oz
Tamanho: 22,563 KB
Scan VirusTotal: Scan
Atenção
- Acc do God: god/pwt240193
- LEIA o tópico antes de postar qualquer coisa ou duvida
- A database fica na pasta schemas+Database
- Nosso fórum não oferece suporte no tópico, o intuito é apenas reupar servidores esquecidos.
Deseja abrir seu próprio servidor, seja para você ou para seus amigos? Utilize nossas VPS de alta performance.
https://ayoocloud.com.br
|
|
|
|
| [GAME-MODE] Brasil Play Realistic RPG |
|
Postado por: paulim78 - 17-08-2025, 04:42 PM - Fórum: Game Mode
- Sem respostas
|
 |
Olá, venho compartilhar o GAME-MODE do Brasil Play Realistic RPG (ATUALIZADO).
INFORMAÇÕES:
- Sistema de penitenciária novo
- Locais de roubo novo
- Ilha pirata
- /vercombates
- /menuadm
- Eventos inovadores
- O adm pode limitar player nos presentes /caixinhap
Entre outras coisas inovadoras..
Muita coisa boa, baixe e confira
? Quer ter seu próprio servidor de GTA MTA?
Utilize nossas VPS ou máquinas dedicadas configuradas corretamente para rodar seu servidor sem travamentos.
Acesse e veja planos aqui
IMAGENS:
Créditos:
* BerN, ipsLuan
* Dudu_Insane
* Madara_RulersZ
|
|
|
|
| [Actions] Item que vende loot |
|
Postado por: paulim78 - 17-08-2025, 03:16 PM - Fórum: Scripts TFS 1.X
- Sem respostas
|
 |
Com esse item pode vender loot de onde estiver sem a nescessidade de ir ate um npc.
Resumo do script:
- Função principal: Permite que o jogador venda determinados itens para ganhar gold.
- Itens vendáveis: Definidos na tabela sellableItems com o itemid
como chave e o preço por unidade como valor. Ex.: [2472] = 150000.
- Processo de venda:
- O jogador usa um item específico (itemid = 10615) sobre o item que quer vender.
- O script verifica se o item alvo está na lista de vendáveis.
- Remove o item do inventário do jogador.
- Adiciona o gold correspondente ao total (preço × quantidade).
- Envia mensagem informando a venda.
Configuração possível:- Itens vendáveis: Adicionar ou remover paresitemid = preço em sellableItems.
- Item de uso: Alterar item.itemid ~= 10615 para outro item que servirá como "ferramenta de venda".
- Mensagens: Podem ser personalizadas na função sendTextMessage.
Para adicionar itens que possa ser vendido nesse codigo, basta adicionar
[id-do-item] = valor-do-item,
Codigo:
Show Content
Spoiler
local sellableItems = {
[2472] = 150000,
}
local function sellItem(player, item, count)
local itemId = item:getId()
local value = sellableItems[itemId]
if not value then return false end
local totalValue = value * count
-- Remove o item do inventário
player:removeItem(itemId, count)
-- Adiciona o dinheiro ao jogador
player:addMoney(totalValue)
player:sendTextMessage(MESSAGE_INFO_DESCR, string.format("You sold %dx %s for %d gold.",
count, ItemType(itemId):getName(), totalValue))
return true
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
local player = Player(cid)
if not player then return false end
-- Confirma que o item usado é o 5468
if item.itemid ~= 10615 then
return false
end
local targetItem = Item(itemEx.uid)
if not targetItem then
player:sendTextMessage(MESSAGE_INFO_DESCR, "Invalid item.")
return true
end
local itemId = targetItem:getId()
if not sellableItems[itemId] then
player:sendTextMessage(MESSAGE_INFO_DESCR, "This item cannot be sold.")
return true
end
local count = targetItem:getCount()
if count < 1 then count = 1 end
-- Tenta vender
if not sellItem(player, targetItem, count) then
player:sendTextMessage(MESSAGE_INFO_DESCR, "Failed to sell the item.")
end
return true
end
Creditos:
Fiapo.
ChatGPT.
|
|
|
|
| [Actions] - Script de recuperar Staminia |
|
Postado por: paulim78 - 17-08-2025, 03:12 PM - Fórum: Scripts TFS 1.X
- Sem respostas
|
 |
Use o item e restaure 100% da sua staminia do jogador.
Resumo do script:
- Função principal: Recarrega a stamina do jogador ao usar o item.
- Stamina cheia: Se o jogador já estiver com a stamina completa (stamina_full), ele recebe mensagem de aviso.
- Premium obrigatório: O jogador precisa ter conta premium (getPremiumDays() >= 0).
- Efeito do item: Define a stamina do jogador para o valor máximo (stamina_full) e remove o item usado.
- Mensagem: Informa que a stamina foi recarregada.
Configuração possível:- stamina_full = 42 * 60 → altera o valor máximo de stamina (42 horas nesse exemplo).
- Mensagens podem ser personalizadas conforme desejado.
- Pode mudar o ITEMID no XML para definir qual item executa o script.
Codigo:
Show Content
Spoiler
-- <action itemid="ITEMID" script="other/stamina_refuel.lua"/>
local stamina_full = 42 * 60 -- config. 42 = horas
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
if player:getStamina() >= stamina_full then
player:sendCancelMessage("Sua Staminia já está cheia.")
elseif player:getPremiumDays() < 0 then
player:sendCancelMessage("Você deve ter uma conta premium.")
else
player:setStamina(stamina_full)
player:sendTextMessage(MESSAGE_INFO_DESCR, "Sua Staminia foi recarregada.")
item:remove(1)
end
return true
end
Creditos:
Estava em um otserv.
|
|
|
|
| [Actions] - Script Premium account 30 dias |
|
Postado por: paulim78 - 17-08-2025, 03:10 PM - Fórum: Scripts TFS 1.X
- Sem respostas
|
 |
Um codigo que da premium account otserv.
Resumo:
[*]Função principal: Ao usar o item, adiciona dias de premium para o jogador.
[*]Dias adicionados: 30 (definido na variável daysToAdd).
[*]Efeitos visuais: Mostra efeito mágico azul no player (CONST_ME_MAGIC_BLUE).
[*]Mensagem: Informa ao jogador quantos dias premium ele recebeu.
[*]Consumo do item: Remove o item usado do inventário (doRemoveItem).
Configuração possível: - Alterar daysToAdd para mudar quantos dias premium o item concede.
- Alterar CONST_ME_MAGIC_BLUE se quiser outro efeito visual.
Codigo:
Show Content
Spoiler
local function doPlayerAddPremiumDays(cid, days)
local player = Player(cid)
if player then
player:addPremiumDays(days)
end
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
local daysToAdd = 30 -- Number of premium days to add
doPlayerAddPremiumDays(cid, daysToAdd)
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Voce recebeu " .. daysToAdd .. " dias premium em sua conta.")
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_BLUE)
doRemoveItem(item.uid, 1)
return true
end
Credito:
Fiapo.
ChatGPT.
|
|
|
|
| [Actions] -Sistema de boss exclusivo em área |
|
Postado por: paulim78 - 17-08-2025, 03:06 PM - Fórum: Scripts TFS 1.X
- Sem respostas
|
 |
O que o script faz:
- É um sistema de boss room exclusiva.
- O player usa um item/lever e acontece o seguinte:
- Verificação de cooldown
- Se o boss já foi invocado recentemente (dentro de cooldownSeconds, que está em 15 minutos), o player recebe a mensagem: "Já tem alguém lutando contra o Gonka, espere ele sair."
- Se ainda há players dentro da área configurada (areaFrom até areaTo), também bloqueia a entrada.
- Teleporte do player
- O player é teleportado para a posição teleportToPos.
- Um efeito de teleporte é mostrado.
- Invocação do Boss
- O boss configurado (bossName = "Boss Apocalypse") nasce na posição monsterSpawnPos.
- Cooldown global
- O storage global (globalStorage) recebe o tempo atual + 15 minutos, impedindo que outro jogador inicie a luta antes do tempo.
Codigo:
Show Content
Spoiler
local teleportToPos = Position(2017, 3262, 5)
local monsterSpawnPos = Position(2017, 3249, 5)
local areaFrom = Position(2009, 3246, 5)
local areaTo = Position(2025, 3262, 5)
local bossName = "Boss Apocalypse"
local globalStorage = 15421
local cooldownSeconds = 15 * 60 -- exemplo: 15 minutos (ajuste se quiser)
local function getPlayersInArea(fromPos, toPos)
local players = {}
for x = fromPos.x, toPos.x do
for y = fromPos.y, toPos.y do
local pos = Position(x, y, fromPos.z)
local tile = Tile(pos)
if tile then
local creature = tile:getTopCreature()
if creature and creature:isPlayer() then
table.insert(players, creature)
end
end
end
end
return players
end
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
local playersInArea = getPlayersInArea(areaFrom, areaTo)
if #playersInArea > 0 or (Game.getStorageValue(globalStorage) or 0) > os.time() then
player:sendCancelMessage("Já tem alguém lutando contra o Gonka, espere ele sair.")
return true
end
player:teleportTo(teleportToPos)
teleportToPos:sendMagicEffect(CONST_ME_TELEPORT)
Game.createMonster(bossName, monsterSpawnPos)
Game.setStorageValue(globalStorage, os.time() + cooldownSeconds)
return true
end
Como configurar.
1. Posições
Dentro do script, você tem várias Position(...) que definem onde o player vai, onde o boss vai spawnar e qual área vai ser checada. Troque pelos valores do seu mapa:
Citação:local teleportToPos = Position(2017, 3262, 5) -- onde o player vai ser teleportado
local monsterSpawnPos = Position(2017, 3249, 5) -- onde o boss vai nascer
local areaFrom = Position(2009, 3246, 5) -- canto superior/esquerdo da área de checagem
local areaTo = Position(2025, 3262, 5) -- canto inferior/direito da área de checagem
[*]teleportToPos → Onde o player é teleportado para lutar contra o boss.
[*]monsterSpawnPos → Posição exata onde o boss vai spawnar.
[*]areaFrom / areaTo → Definem um retângulo de checagem: se houver qualquer player dentro, não deixa iniciar outro boss.
2. Nome do boss
Citação:local bossName = "Boss Apocalypse"
[*]Troque pelo nome exato do boss que você criou no monster.xml.
[*]Tem que bater com o nome que o servidor reconhece.
3. Cooldown global
Citação:local globalStorage = 15421 -- storage usado para controlar cooldown
local cooldownSeconds = 15 * 60 -- tempo em segundos (ex: 15 minutos)
[*]globalStorage → qualquer número único, usado para armazenar o tempo do cooldown.
[*]cooldownSeconds → quanto tempo precisa esperar até poder spawnar outro boss.- Exemplo: 30 * 60para 30 minutos.
Creditos:
Achado em um OTSERV.
|
|
|
|
| [Actions] - Sistema de forja (forging system) |
|
Postado por: paulim78 - 17-08-2025, 02:56 PM - Fórum: Scripts TFS 1.X
- Sem respostas
|
 |
Esse script é um sistema de forja (forging system), ele altera alguns itens do mapa enquanto a forja esta rodando.
Resumo: - O jogador usa uma alavanca ou outro item com actionid = 7787 para iniciar a forja.
- Requisitos para ativar:
- 250 Crystal Coins (ID 2159)
- 1 Item especial (ID 9019)
- 5kk de gold
- Se cumprir os requisitos, os itens são removidos do jogador e o processo começa:
- Os itens do mapa (originalItems) são substituídos por suas versões forjadas (forgedItems) por 3 minutos.
- A cada 10s, é enviado um broadcast avisando que a forja está em andamento.
- Após os 3 minutos, os itens voltam ao estado original.
- Dois itens específicos do mapa (toRemoveInPhase2) somem por 30 segundos simulando o processo.
- Uma nova forja visual aparece no mapa (forgeVisual) e o jogador recebe a recompensa (rewardItem, Vampire Token, ID 9955) no chão em
rewardDropPos.
- Passados 30 segundos, a forja desaparece e os itens da fase 2 são recriados.
- O sistema tem cooldown global para evitar que outro jogador ative a forja enquanto já está em andamento.
Codigo:
Show Content
Spoiler
local actionId = 7787
local requiredItems = {
{id = 2159, count = 250},
{id = 9019, count = 1}
}
local requiredMoney = 5000000
local rewardItem = 9955
local rewardCount = 1
local globalStorageForge = 90000
local forgeDuration = 3 * 60 * 1000
local forgeCooldown = 20 * 1000
local originalItems = {
{id = 8642, pos = Position(1669, 1992, 7)},
{id = 8654, pos = Position(1670, 1992, 7)},
{id = 8661, pos = Position(1671, 1992, 7)},
{id = 8658, pos = Position(1672, 1992, 7)},
{id = 8660, pos = Position(1672, 1993, 7)},
{id = 8657, pos = Position(1671, 1993, 7)},
{id = 8659, pos = Position(1671, 1994, 7)},
{id = 8658, pos = Position(1672, 1994, 7)},
{id = 8646, pos = Position(1672, 1995, 7)},
{id = 8647, pos = Position(1672, 1996, 7)}
}
local forgedItems = {
{id = 8641, pos = Position(1669, 1992, 7)},
{id = 8673, pos = Position(1670, 1992, 7)},
{id = 8650, pos = Position(1670, 1992, 7)},
{id = 8667, pos = Position(1671, 1992, 7)},
{id = 8664, pos = Position(1672, 1992, 7)},
{id = 8666, pos = Position(1672, 1993, 7)},
{id = 8663, pos = Position(1671, 1993, 7)},
{id = 8665, pos = Position(1671, 1994, 7)},
{id = 8664, pos = Position(1672, 1994, 7)},
{id = 8645, pos = Position(1672, 1995, 7)},
{id = 8643, pos = Position(1672, 1996, 7)}
}
local toRemoveInPhase2 = {
{id = 1526, pos = Position(1670, 1997, 7)}, -- Coloque o ID real
{id = 1526, pos = Position(1670, 1998, 7)} -- Coloque o ID real
}
local forgeVisual = {
id = 8670,
pos = Position(1670, 1993, 7)
}
local rewardDropPos = Position(1672, 1998, 7)
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
if item.actionid ~= actionId then
return true
end
local currentStorage = Game.getStorageValue(globalStorageForge) or 0
if currentStorage > os.time() then
player:sendCancelMessage("A forja já está em andamento.")
return true
end
for _, entry in pairs(requiredItems) do
if player:getItemCount(entry.id) < entry.count then
player:sendCancelMessage("Você não possui todos os itens necessários.")
return true
end
end
if not player:removeMoney(requiredMoney) then
player:sendCancelMessage("Você precisa de 1kk de gold.")
return true
end
for _, entry in pairs(requiredItems) do
player:removeItem(entry.id, entry.count)
end
for i, v in ipairs(originalItems) do
local tile = Tile(v.pos)
if tile then
local oldItem = tile:getItemById(v.id)
if oldItem then oldItem:remove() end
end
end
for _, v in ipairs(forgedItems) do
Game.createItem(v.id, 1, v.pos)
end
Game.setStorageValue(globalStorageForge, os.time() + ((forgeDuration + forgeCooldown) / 1000))
-- Broadcast a cada 10s
for i = 0, (forgeDuration - 1), 10000 do
addEvent(function()
broadcastMessage(player:getName() .. " está forjando um Vampire Token!", MESSAGE_EVENT_ADVANCE)
end, i)
end
addEvent(function()
for _, v in ipairs(forgedItems) do
local tile = Tile(v.pos)
if tile then
local tempItem = tile:getItemById(v.id)
if tempItem then tempItem:remove() end
end
end
for _, v in ipairs(originalItems) do
Game.createItem(v.id, 1, v.pos)
end
-- Remover os 2 itens da fase 2
for _, data in ipairs(toRemoveInPhase2) do
local tile = Tile(data.pos)
if tile then
local item = tile:getItemById(data.id)
if item then item:remove() end
end
end
-- Remover o item 1945 existente (visualmente) se necessário
local forgeTile = Tile(forgeVisual.pos)
local forgeItem = forgeTile and forgeTile:getItemById(forgeVisual.id)
if forgeItem then forgeItem:remove() end
-- Recriar forja
local createdForge = Game.createItem(forgeVisual.id, 1, forgeVisual.pos)
-- Entrega recompensa no chão
Game.createItem(rewardItem, rewardCount, rewardDropPos)
-- Após 30s, remove a forja e restaura os dois itens
addEvent(function()
local tile = Tile(forgeVisual.pos)
if tile then
local existing = tile:getItemById(forgeVisual.id)
if existing then existing:remove() end
end
-- Recria os 2 itens da fase 2
for _, data in ipairs(toRemoveInPhase2) do
Game.createItem(data.id, 1, data.pos)
end
end, forgeCooldown)
end, forgeDuration)
return true
end
Foto:
![[Imagem: Captura-de-tela-2025-08-17-144627.png]](https://i.ibb.co/rJ0nzSd/Captura-de-tela-2025-08-17-144627.png)
![[Imagem: Captura-de-tela-2025-08-17-145323.png]](https://i.ibb.co/BK6cxMPC/Captura-de-tela-2025-08-17-145323.png)
![[Imagem: Captura-de-tela-2025-08-17-145637.png]](https://i.ibb.co/xq9wgb9y/Captura-de-tela-2025-08-17-145637.png)
Como configurar.
1- Item de ativação
Citação:local actionId = 7787
Aqui eu utilizo uma alavanca esse 7787 vai na alavanca.
2- Requisitos do jogador
Citação:local requiredItems = {
{id = 2159, count = 250}, -- Crystal Coins
{id = 9019, count = 1} -- Item especial
}
local requiredMoney = 5000000 -- Gold necessário
Define os itens e dinheiro que o jogador precisa para forjar.
3- Recompensa
Citação:local rewardItem = 9955
local rewardCount = 1
local rewardDropPos = Position(1672, 1998, 7)
Item e quantidade da recompensa, e onde será criada a recompensa qual posição.
4- Tempos de forja
Citação:local forgeDuration = 3 * 60 * 1000 -- 3 minutos
local forgeCooldown = 20 * 1000 -- 20 segundos após o fim
Controla quanto tempo dura a forja e quanto tempo demora para resetar totalmente.
5- Itens do mapa alterados
Citação:local originalItems = { ... } -- Itens normais
local forgedItems = { ... } -- Versões forjadas
local toRemoveInPhase2 = { ... } -- Itens removidos temporariamente
local forgeVisual = { id = 8670, pos = Position(1670, 1993, 7) } -- Aparência da forja
Permite trocar os itens que vão se transformar no mapa, os que somem na segunda fase e o item visual da forja.
Creditos:
Fiapo
|
|
|
|
| [Actions] Cassino/slot machine |
|
Postado por: paulim78 - 17-08-2025, 02:43 PM - Fórum: Scripts TFS 1.X
- Sem respostas
|
 |
Resumo:
- O jogador paga 250 Event Coins para jogar.
- São sorteados 3 itens com base em probabilidades diferentes (peso).
- Se os 3 itens saírem iguais → o jogador ganha aquele item e o servidor anuncia o prêmio em broadcast.
- Caso contrário → o jogador perde a aposta.
- Inclui efeitos visuais no chão, animações e cooldown (para evitar spam).
- O sistema remove as moedas automaticamente e mostra os itens sorteados em tiles definidos no mapa.
Codigo:
Show Content
Spoiler
local positions = {
{x = 1529, y = 1883, z = 9},
{x = 1531, y = 1883, z = 9},
{x = 1533, y = 1883, z = 9}
}
local price = 250 -- Preço em Event Coins para jogar
local eventcoins = 2160 -- ID do Event Coin
-- Itens com pesos diferentes (probabilidades personalizadas)
local weightedItems = {
{id = 2006, weight = 80, name = "Vial"}, -- 50% de chance (comum)
{id = 1987, weight = 70, name = "Bag"}, -- 20% de chance (pouco raro)
{id = 2036, weight = 52, name = "Watch"}, -- 15% de chance (raro)
{id = 1974, weight = 45, name = "Book"}, -- 10% de chance (muito raro)
{id = 2145, weight = 40, name = "Small Diamound"}, -- 5% de chance (ultra raro)
{id = 12638, weight = 30, name = "dragonfruit"},
{id = 2157, weight = 20, name = "Gold Nugget"},
{id = 12640, weight = 5, name = "Penaut"}
}
-- Função para sortear um item baseado no peso
local function getRandomWeightedItem()
local totalWeight = 0
for _, item in ipairs(weightedItems) do
totalWeight = totalWeight + item.weight
end
local randomValue = math.random(1, totalWeight)
local currentWeight = 0
for _, item in ipairs(weightedItems) do
currentWeight = currentWeight + item.weight
if randomValue <= currentWeight then
return item.id, item.name
end
end
return weightedItems[1].id, weightedItems[1].name -- Fallback (nunca deve acontecer)
end
local function cleanTile(pos)
local tile = Tile(pos)
if not tile then return end
for _, item in ipairs(tile:getItems() or {}) do
-- Garante que não remova criaturas ou outros objetos inválidos
if item and item:isItem() then
item:remove()
end
end
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
-- Verifica se o jogador pode apostar
if getGlobalStorageValue(722404) > os.time() then
doPlayerSendCancel(cid, "Aguarde um pouco para apostar.")
return true
end
-- Verifica se tem Event Coins suficientes
if getPlayerItemCount(cid, eventcoins) < price then
doPlayerSendCancel(cid, "Você precisa de " .. price .. " Event Coins para jogar.")
return true
end
-- Cooldown individual do jogador
if getPlayerStorageValue(cid, 722406) > os.time() then
doPlayerSendCancel(cid, "Aguarde um pouco para jogar novamente.")
return true
end
doPlayerSetStorageValue(cid, 722406, os.time() + 6)
-- Cooldown global (evita spam)
setGlobalStorageValue(722404, os.time() + 6)
-- Efeitos visuais antes do sorteio
for i = 1, #positions do
doSendMagicEffect(positions[i], 22)
end
-- Remove as Event Coins
doPlayerRemoveItem(cid, eventcoins, price)
doTransformItem(item.uid, item.itemid == 9825 and 9826 or 9825)
-- Sorteia os 3 itens (com probabilidades diferentes)
local first, firstName = getRandomWeightedItem()
local second, secondName = getRandomWeightedItem()
local third, thirdName = getRandomWeightedItem()
local tab = {}
-- Cria e mostra os itens sorteados
doCreateItem(first, 1, positions[1])
doSendMagicEffect(positions[1], 26)
addEvent(doSendMagicEffect, 100, positions[1], 31)
table.insert(tab, first)
addEvent(function()
doCreateItem(second, 1, positions[2])
doSendMagicEffect(positions[2], 26)
addEvent(doSendMagicEffect, 100, positions[2], 31)
table.insert(tab, second)
end, 1700)
addEvent(function()
doCreateItem(third, 1, positions[3])
doSendMagicEffect(positions[3], 26)
addEvent(doSendMagicEffect, 100, positions[3], 31)
table.insert(tab, third)
end, 2000)
-- Verifica se ganhou (3 itens iguais)
addEvent(function()
-- Limpa os itens do chão
cleanTile(positions[1])
cleanTile(positions[2])
cleanTile(positions[3])
doSendMagicEffect(positions[1], 54)
doSendMagicEffect(positions[2], 54)
doSendMagicEffect(positions[3], 54)
if tab[1] == tab[2] and tab[1] == tab[3] then
-- Ganhou! Recebe o item.
doPlayerAddItem(cid, tab[1], 1)
doPlayerSendTextMessage(cid, 27, "Você ganhou um(a) " .. firstName .. "! Parabéns!")
doBroadcastMessage("O jogador " .. getCreatureName(cid) .. " ganhou um(a) " .. firstName .. " no cassino!", MESSAGE_EVENT_ADVANCE)
-- Efeitos de vitória
doSendAnimatedText(getThingPos(cid), "GANHOU!", 215)
doSendMagicEffect(getThingPos(cid), CONST_ME_FIREWORK_BLUE)
doSendMagicEffect(positions[1], CONST_ME_FIREWORK_YELLOW)
doSendMagicEffect(positions[2], CONST_ME_FIREWORK_RED)
doSendMagicEffect(positions[3], CONST_ME_FIREWORK_GREEN)
else
-- Perdeu
doSendAnimatedText(getThingPos(cid), "PERDEU!", TEXTCOLOR_RED)
doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
end
end, 4200)
return true
end
Foto:
![[Imagem: Captura-de-tela-2025-08-17-144206.png]](https://i.ibb.co/bj3PHyJg/Captura-de-tela-2025-08-17-144206.png)
Como Configurar.
1- Posições dos itens exibidos.
Citação:local positions = {
{x = 1529, y = 1883, z = 9},
{x = 1531, y = 1883, z = 9},
{x = 1533, y = 1883, z = 9}
}
Onde os 3 itens do sorteio vão aparecer no chão.
2- Preço para jogar e moeda usada.
Citação:local price = 250 -- Preço em Event Coins
local eventcoins = 2160 -- ID do item usado como moeda
Você define quanto custa jogar e qual item será usado como moeda (pode trocar por gold, tokens, etc).
3- Itens e probabilidades (peso).
Citação:local weightedItems = {
{id = 2006, weight = 80, name = "Vial"},
{id = 1987, weight = 70, name = "Bag"},
{id = 2036, weight = 52, name = "Watch"},
{id = 1974, weight = 45, name = "Book"},
{id = 2145, weight = 40, name = "Small Diamond"},
{id = 12638, weight = 30, name = "Dragonfruit"},
{id = 2157, weight = 20, name = "Gold Nugget"},
{id = 12640, weight = 5, name = "Peanut"}
}
Cada item tem um peso (probabilidade).- Quanto maior o weight, mais fácil de sair.
- Quanto menor, mais raro.
Exemplo: weight = 80 é bem comum, weight = 5 é super raro.
4- Cooldowns.
Citação:-- Global cooldown (todos os players): 6 segundos
setGlobalStorageValue(722404, os.time() + 6)
-- Cooldown individual (por player): 6 segundos
doPlayerSetStorageValue(cid, 722406, os.time() + 6)
Tempo mínimo entre apostas para evitar flood.
Em resumo: você consegue configurar onde aparece, quanto custa, qual moeda usar, quais itens podem sair e suas chances de sorteio.
Creditos:
Fiapo
|
|
|
|
| [Actions] Rojão explosivo |
|
Postado por: paulim78 - 17-08-2025, 02:35 PM - Fórum: Scripts TFS 1.X
- Sem respostas
|
 |
Esse script cria um item explosivo (rojão/bomba) no OTServ.
Resumo: - O jogador usa um item especial que joga um rojão no chão kkkk.
- Após 2 segundos, a o rojão explode causando de 8k a 15k de dano em área.
- A explosão não afeta áreas de proteção (PZ).
- Possui efeitos visuais tanto ao plantar quanto ao explodir.
- O item é consumido ao usar.
- Tem um tempo de recarga de 180 segundos (3 minutos) por jogador antes de poder usar novamente.
- Ao plantar, o servidor anuncia em broadcast quem usou a bomba.
Pasta: Data/Actions/
Codigo:
Show Content
Spoiler
local bomb = {
itemId = 6576,
plantedItemId = 8058, -- ID do item que representa a bomba plantada (exemplo: uma dinamite acesa)
effectPlace = 3, -- efeito ao plantar a bomba
effectExplosion = 7, -- efeito de explosão
minDamage = 8000,
maxDamage = 15000,
delay = 2000, -- tempo em milissegundos para a explosão
cooldown = 180,
explosionRange = {
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}
}
}
local lastUse = {}
local function explodeBomb(plantPos)
local plantedItem = Tile(plantPos):getItemById(bomb.plantedItemId)
if plantedItem then
plantedItem:remove() -- Remove o item de indicador da bomba antes da explosão
end
for x, row in ipairs(bomb.explosionRange) do
for y, value in ipairs(row) do
if value == 1 then
local explosionPos = Position(plantPos.x + x - 6, plantPos.y + y - 6, plantPos.z)
local tile = Tile(explosionPos)
-- Verifica se o tile não é uma zona de proteção
if tile and not tile:hasFlag(TILESTATE_PROTECTIONZONE) then
explosionPos:sendMagicEffect(bomb.effectExplosion)
local creatures = tile:getCreatures()
if creatures then
for _, creature in ipairs(creatures) do
-- Aplica dano a jogadores e criaturas
local damage = math.random(bomb.minDamage, bomb.maxDamage)
creature:addHealth(-damage)
end
end
end
end
end
end
end
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
-- Verifica se o item está na backpack do jogador
local itemParent = item:getParent()
if not itemParent or itemParent:isTile() then
player:sendCancelMessage("Você só pode usar este item se ele estiver na sua mochila.")
return true
end
local playerId = player:getId()
local currentTime = os.time()
local lastUseTime = player:getStorageValue(1000) -- ID arbitrário para o cooldown
if lastUseTime > 0 and currentTime < lastUseTime + bomb.cooldown then
player:sendCancelMessage("Aguarde antes de usar o rojao explosivo novamente.")
return true
end
player:setStorageValue(1000, currentTime) -- Atualiza o cooldown no storage
local plantPos = player:getPosition()
-- Remove o item corretamente
if not player:removeItem(bomb.itemId, 1) then
player:sendCancelMessage("Você precisa ter um rojao explosivo na sua backpack para joga-lo.")
return true
end
plantPos:sendMagicEffect(bomb.effectPlace)
Game.broadcastMessage(player:getName() .. " jogou um rojao explosivo!", MESSAGE_EVENT_ADVANCE)
-- Cria o item indicador da bomba
Game.createItem(bomb.plantedItemId, 1, plantPos)
-- Agenda a explosão
addEvent(explodeBomb, bomb.delay, plantPos)
return true
end
Foto:
![[Imagem: rojao.png]](https://i.ibb.co/VcHtDdpY/rojao.png)
Creditos:
Fiapo
|
|
|
|
| [TFS 0.x] - Como criar um script de quest |
|
Postado por: paulim78 - 17-08-2025, 02:01 PM - Fórum: Tutoriais Scripting
- Sem respostas
|
 |
Como criar um Script de quest
Bom é bem simples fazer um Script de Quest, mais tem muita gente que ainda não sabe então irei ensinar através deste tópico. ![[Imagem: default_biggrin.png]](https://tibiaking.com/uploads/emoticons/default_biggrin.png)
Primeiramente vá até a pasta "Actions" e depois vá em "Scripts" agora faça um arquivo chamado Quest1.lua, e bote isso dentro dele:
Show Content
Spoiler
function onUse(cid, item, fromPosition, itemEx, toPosition)
a = 9595
id = 1234
if getPlayerStorageValue(cid, a) < 1 then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a "..getItemNameById(id)..".")
doPlayerAddItem(cid, id, 1)
doPlayerSetStorageValue(cid, a, 1)
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is empty.")
end
return TRUE
end
Legenda:
Vermelho: É a Storage pode colocar qual quer numero, mais ele não deve existir em outra actions.
Verde: É o ID do item.
---------------------------
Agora volta na pasta "Actions" e abra o arquivo "Actions.xml" e coloque isto dentro dele:
Citação:<action actionid="9595" script="Quest1.lua"/>
Legenda:
Vermelho: É o nome do arquivo .lua
Verde: É a Storage que tem dentro do script.
Agora para terminar a quest vá no Baú no seu mapa editor e bote o ActionID nele que no caso é "9595" observe a foto:
![[Imagem: Captura-de-tela-2025-08-17-135654.png]](https://i.ibb.co/n8BwVN1f/Captura-de-tela-2025-08-17-135654.png)
Credito:
Grimmjow
|
|
|
|
|