Histórico de Curtidas
-
Peixola deu reputação a Tryller em [15.00] Crystal Server 4.0 | Mapa Global | Monk ReadyCrystal Server - Changelog Versão 4.0
Olá, pessoal! Temos o prazer de anunciar o lançamento da versão 4.0 do Crystal Server. Confira abaixo as principais novidades, correções de bugs e alterações importantes.
GitHub
visite o GitHub e colabore com o projeto: GitHub - Crystal Server.
Novidades
Sistema de Surprise Bags: Agora é possível configurar o sistema de sacolas-surpresa no arquivo data/items/bags.xml. (Tryller, dguprado).
Sistema de Cadeia (Chain System): Agora os jogadores podem usar o sistema de cadeia com o comando !chain. Configurável no config.lua com as novas opções para armas como estrela assassina, flechas, bastões e varinhas. (Tryller).
Função playerAlwaysLoginMounted: Agora configurável no config.lua, permitindo que o jogador sempre entre montado no servidor. (Tryller).
Atualização dos NPCs: O NPC hireling.lua agora vende pacotes de imbuement e compra todos os itens dentro da Loot Pouch. (Tryller).
Novo Sistema de Insígnias (Badges): Introduzido um sistema de insígnias para jogadores. (elsongabriel).
Aprimoramentos no Imbuement e Augments: Aumentamos a personalização com o sistema de imbuement e a adição de novos augments. (phacUFPE).
Título de Personagens na Cyclopedia: Agora você pode configurar títulos para os personagens na Cyclopedia. (Tryller).
Atualização de Monstros e NPCs: Melhorias nas atualizações de monstros e NPCs para se aproximarem da experiência de Tibia RL. (Tryller).
Sistema de V.I.P. Grupos: Agora você pode configurar grupos V.I.P no servidor. (phacUFPE).
Correções de Bugs
Sistema de Cadeia Corrigido: Agora o sistema de cadeia funciona corretamente para Mages e Paladins. (Tryller).
Lista de V.I.P Corrigida: O sistema de lista de V.I.P agora está funcionando perfeitamente. (Tryller).
Correção de Reflexão de Dano: O sistema de reflexão de dano estava com falhas e foi corrigido. (Tryller).
Correção no Sistema de Imbuement: O sistema de imbuement agora atualiza corretamente quando o jogador adiciona ou cancela imbuiements enquanto a janela está aberta. (Tryller).
Otimização de Código: A função onPlayerSellAllLoot foi otimizada para evitar travamentos longos. (Tryller).
Correção de Problemas em Talkactions: O script refill.lua foi corrigido para verificar se o jogador tem capacidade de receber itens. (Tryller).
Alterações Importantes
Remoção de "useAnyDatapackFolder": A opção foi removida do config.lua e agora é habilitada por padrão. (Tryller).
Remoção do Download de Mapas: Não é mais necessário fazer o download do mapa, agora compartilhamos o mapa comprimido em formato .7z. Para extrair o mapa compactado, será necessário baixar e instalar o 7zip. (Tryller).
Observação: Para mais detalhes sobre as mudanças e melhorias, confira o histórico de commits ou as notas de lançamento.
Fiquem à vontade para deixar suas sugestões e feedbacks! O servidor está cada vez mais forte com as contribuições de todos. Vamos continuar evoluindo juntos!
Equipe Crystal Server
Links para Download
Download do Crystal Server: Clique aqui para baixar o arquivo RAR.
Scan de Vírus: Verifique o arquivo no VirusTotal.
-
Peixola deu reputação a Movie em [TFS 1.X] Online Bonus SystemOlá a todos, e estou de volta pra postar alguns conteúdos...
Fui atrás de um online bonus system para tfs 1.3 e não achei e portanto decidi fazer o meu, com a ajuda do @vankk.
================================================================================================================
Testado em TFS 1.3 na versão 8.60.
================================================================================================================
================================================================================================================
No seu banco de dados, execute a seguinte query
ALTER TABLE `players` ADD `online_time` int(11) NOT NULL DEFAULT 0 ================================================================================================================
O próximo passo é apenas para quem gostaria de que, a cada server save, o número seja zerado!
================================================================================================================
Em globalevents/scripts/startup.lua, após o inicio da função onStartup() adicione o seguinte código
db.query("UPDATE `players` SET `online_time` = 0") ================================================================================================================
Agora crie um arquivo chamado onlinebonus.lua em creaturescripts/scripts com isso dentro
local event = {} local function addOnlineToken(playerId) local player = Player(playerId) if not player then return false end if player:getIp() == 0 then event[player:getId()] = nil return false end player:addOnlineTime(1) player:getPosition():sendMagicEffect(CONST_ME_GIFT_WRAPS) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Você ganhou 1 online token por permanecer online por 1 hora sem deslogar.") player:addItem(12543, 1) event[player:getId()] = addEvent(addOnlineToken, 60 * 60 * 1000, player:getId()) end function onLogin(player) player:registerEvent("OnlineBonus") player:registerEvent("OnlineBonusLogout") if event[player:getId()] == nil then event[player:getId()] = addEvent(addOnlineToken, 60 * 60 * 1000, player:getId()) end return true end function onLogout(player) if event[player:getId()] then event[player:getId()] = nil end return true end -- <event type="login" name="OnlineBonus" script="onlineBonus.lua" /> -- <event type="logout" name="OnlineBonusLogout" script="onlineBonus.lua" /> A tag XML está no fim desse código.
================================================================================================================
Agora, na pasta lib, crie um arquivo chamado onlineTime.lua e coloque isso dentro
function Player.getOnlineTime(self) local resultId = db.storeQuery(string.format('SELECT online_time FROM `players` WHERE `id` = %d', self:getGuid())) if not resultId then return 0 end local value = result.getNumber(resultId, "online_time") result.free(resultId) return value end function Player.addOnlineTime(self, amount) db.query(string.format("UPDATE `players` SET `online_time` = `online_time` + %d WHERE `id` = %d", amount, self:getGuid())) end Não esqueça de registrar essa lib no lib.lua.
================================================================================================================
Agora, na pasta talkactions/scripts, crie um arquivo chamado onlinebonus.lua com o seguinte código dentro:
function onSay(player, words, param) local skill = player:getOnlineTime(player) local message = "--------[+]------- [Online Bonus System] -------[+]--------\n\nGanhe um online token a cada hora que você passa online sem deslogar.\n\n---------------------------------------------------\n Total\n Desde o server save você já ganhou " .. skill .. " online tokens." doPlayerPopupFYI(player, message) end -- <talkaction words="!onlinebonus" script="onlineBonus.lua"/> A tag XML está no fim desse código.
================================================================================================================
O usuário irá receber um item a cada hora online sem deslogar.
O item está no código de creaturescripts com o id 12543, que pode ser alterado para qualquer item que seja agrupável.
================================================================================================================
É isso por hoje.
-
Peixola deu reputação a Movie em Gerenciador de Quests [TFS 0.X e TFS 1.X]Fala pessoal, como vocês estão?
Na academia de codding um usuário pediu ajuda para montar um "gerenciador" de quests, para que todas ficassem no mesmo arquivo sem ficar com aquele "spam" de quests nas actions.
Esse script foi feito para a TFS 1.X mas, usando a lib do @Mathias Kenfi, você consegue utilizar para TFS 0.X também.
O link para as libs: https://github.com/kenfi2/KenfiLib
Na pasta actions/scripts crie um arquivo chamado quests.lua
config = { quests = { [7172] = { -- ActionID que será colocado no baú name = "dos Crystal Coins", -- Nome da quest rewards = { {id = 2160, count = 100}, -- Prêmio: ID - Count }, level = { active = true, -- Level minimo para pegar? min = 150, -- Se true, qual o minimo }, storage = { active = true, -- Player poderá pegar somente uma vez? key = 91143, -- Apenas uma key por quest }, effectWin = 30, -- Efeito que vai aparecer quando fizer a quest }, [7171] = { -- ActionID que será colocado no baú name = "dos Coins", -- Nome da quest rewards = { {id = 2160, count = 100}, -- Prêmio: ID - Count {id = 2152, count = 100}, -- Prêmio: ID - Count }, level = { active = true, -- Level minimo para pegar? min = 150, -- Se true, qual o minimo }, storage = { active = true, -- Player poderá pegar somente uma vez? key = 91140, -- Apenas uma key por quest }, effectWin = 29, -- Efeito que vai aparecer quando fizer a quest }, }, messages = { notExist = "Essa quest não existe.", win = "Você fez a quest %s.", notWin = "Você já fez a quest %s.", level = "Você precisa de level %d ou maior para fazer a quest %s.", }, } function onUse(cid, item, fromPosition, target, toPosition, isHotkey) local player = Player(cid) local choose = config.quests[item.actionid] if not choose then player:sendCancelMessage(config.messages.notExist) player:getPosition():sendMagicEffect(CONST_ME_POFF) return true end if choose.level.active and player:getLevel() < choose.level.min then player:sendCancelMessage(config.messages.level:format(choose.level.min, choose.name)) player:getPosition():sendMagicEffect(CONST_ME_POFF) return true end if choose.storage.active and player:getStorageValue(choose.storage.key) >= 0 then player:sendCancelMessage(config.messages.notWin:format(choose.name)) player:getPosition():sendMagicEffect(CONST_ME_POFF) return true end for i = 1, #choose.rewards do player:addItem(choose.rewards[i].id, choose.rewards[i].count) end player:setStorageValue(choose.storage.key, 1) player:sendCancelMessage(config.messages.win:format(choose.name)) player:getPosition():sendMagicEffect(choose.effectWin) return true end Para configurar é só utilizar ler os comentários deixados e para adicionar mais quests apenas use o mesmo padrão que deixei aí
Utilize a tag no actions.xml desse forma
<action fromaid="7171" toaid="7172" script="quests.lua" /> Sendo que o "fromaid" é a actionid inicial, e o "toaid" é a última actionid registrada no arquivo.
Qualquer problema, relate nesse tópico.
-
Peixola deu reputação a MaXwEllDeN em Novo sistema de noticias#Instalação
Copie qualquer arquivo com a extensão .lua na paste data/lib, renomeie ele para Scroll.lua, exclua todo o conteúdo e cole este código nele:
http://pastebin.com/VCwaULJs
Na pasta data/globalevents/scripts copie qualquer arquivo com a extensão .lua, renomeie ele para Propaganda.lua, abra ele delete todo o conteúdo e cole este código:
http://pastebin.com/pvAanCZW
No pasta data/globalevents/globalevents.xml adicione a seguinte tag:
<globalevent name="prop" interval="180000" event="script" value="Propaganda.lua"/> #Demonstração
-
Peixola deu reputação a Rudkiller em [action]Desintegrate Rune que remove magic wall!Saudações, visitantes do tópico.
Hoje trago pra vocês um script de action que vai fazer com que suas Desintegrate Runes removam magic walls!
Tem que ser por action, portanto removam a linha da desintegrate rune em sua spells.xml (a linha da runa, não da spell que cria/encanta ela).
Em
data\actions\scripts
crie um arquivo com extensão .lua e adicione o seguinte conteúdo:
function onUse(cid, item, frompos, item2, topos)
local playermagiclevel = getPlayerMagLevel(cid)
if playermagiclevel < 5 then
doPlayerSendTextMessage(cid,24,'You need to be magic level 5 or higher to use desintegrate runes!')
elseif isCreature(item2.uid) == FALSE and isMoveable(item2.uid) == TRUE then
doRemoveItem(item2.uid)
doRemoveItem(item.uid)
doSendMagicEffect(topos, CONST_ME_GIFT_WRAPS)
doSendDistanceShoot(getCreaturePosition(cid), topos, CONST_ANI_ENERGY)
return 1
elseif item2.uid == cid then
doPlayerSendTextMessage(cid,24,'You can not use desintegrate runes on yourself!')
elseif item2.itemid == 1497 then
doRemoveItem(item2.uid)
doRemoveItem(item.uid)
doSendMagicEffect(topos, CONST_ME_GIFT_WRAPS)
doSendDistanceShoot(getCreaturePosition(cid), topos, CONST_ANI_ENERGY)
else
doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
return 0
end
end
--[[
Desintegrate Rune (action) por Rudkiller.
Com esse script a desintegrate não requer level para ser usada, apenas magic level.
A função da desintegrate foi modificada para que ela possa ser usada a qualquer distância, tenha um efeito de tiro e possa remover magic walls!
Não se esqueça do actions.xml: <action itemid="2310" script="nome_do_seu_script.lua" allowfaruse="1"/>
]] O resto está explicado no próprio script. Lembrem-se vocês podem mudar o limite de magic level apenas trocando o número dessa linha:
if playermagiclevel < 5 then
Olhem o vídeo demonstrando o funcionamento da runa:
https://www.youtube.com/watch?v=Nijuq4dIB6k&feature=youtu.be
(gravei e postei esse vídeo só pra mostra pra vocês o bagulho )
-- Testado em Alissow Server 8.54 Talvez funcione em todas as versões do 8.4 ao 8.54. Lembre-se: A runa vai ser removida, mesmo que ela tenha charges!
Se divirtam!
-
Peixola deu reputação a Cronnous em Globalevents- Criando teleports falantes para tibia.[Globalevents]Criando teleports falantes para tibia.
Tutorial de como colocar teleports falantes no seu OT.
Vamos lá, primeiro vá na pasta do seu ot, Data>Globalevents e abram o Globalevents.xml com o bloco de notas e adiciona essa linha :
<globalevent name="Teleports" interval="2" script="info.lua" />
Depois vá em Data>Globalevents>Scripts e crie um arquivo .lua, e colocque o nome como info.lua, dentro do scrpit adicione isso :
function onThink(interval, lastExecution)
pos = {x = 113, y = 56, z = 7}
pos1 = {x = 113, y = 54, z = 7}
pos2 = {x = 113, y = 52, z = 7}
pos3 = {x = 113, y = 50, z = 7}
doSendAnimatedText (pos, 'Demon [1]', 140)
doSendAnimatedText(pos1, 'Dragon [2]', 140)
doSendAnimatedText(pos2, 'Cyclops [1]', 130)
doSendAnimatedText(pos3, 'Tumba [2]', 130)
pos = {x = 113, y = 56, z = 7} = Coordenadas do teleport
doSendAnimatedText(pos, 'Texto para o tp falante', 140) = Ira mandar Texto animado na pos
Depois feche e salve, pronto seu teleporte está criado !
Imagem :
Click this bar to view the original image of 800x599px.
Se lhe ajudei agradeça , não custa nada
Se eu estiver errado me corrija !
Lembrando esse tutorial nao foi criado por mim , apenas eu o editei , elaborei algumas coisas e o postei para mante-los informados e com mais conteúdo no fórum e para ajuda-los.
Creditos :
-> ~ ScaR
-> RookWar Outro forum
-
Peixola deu reputação a Ryzor em Mortes No BroadcastNome: Mortes no Broadcast
Versão: 8.4x
Tipo do script: creaturescript
Servidor Testado: TFS 0.2 (')
Autor: Alguém da equipe criadora do TFS e eu por editar.
Comentario: Script editado; Original é o que vem com o tfs.
----------------------------------------------------------------------
Falae;
Preview:
Como não vi nenhum tópico sobre o assunto por aqui, resolvi criar o script, ou melhor, editar o playerdeath.lua '-'
Primeiramente, abra a pasta data/creaturescripts/scripts e crie um arquivo playerdeath.lua
Depois salve e pronto, está implantado o sistema de anúncio de mortes no broadcast; é simples, porém algumas pessoas não sabem como fazer.
Já que insistem, aí está a TAG:
<event type="death" name="PlayerDeath" script="playerdeath.lua"/>
-
Peixola deu reputação a Vodkart em [Action/talkaction] Removedor De Frags!O script é para remover uma quantia "X" frag do jogador, diferente do outro script de remover frags que removia todos de uma só vez.
Importante: Você precisa colocar a função 'doPlayerRemoveFrag' na sua lib, segue o link:
http://tibiaking.com/forum/topic/16697-lua-doplayerremovefragcid-count/
talkactions:
-
Peixola deu reputação a Doughell em Listão de NPCs, Monsters & RaidsListão de NPCs, Monsters & Raids
Nome do Tópico: NPC Mount
Autor: Trypox
Link do Tópico: http://tibiaking.com/forum/topic/7814-npc-mount/
Comentário:
Nome do Tópico: Outfit Maker
Autor: ThalesMesquita
Link do Tópico: http://tibiaking.com/forum/topic/7731-outfit-maker/
Comentário:
Nome do Tópico: NPC BLESS
Autor: DevilMoon
Link do Tópico: http://tibiaking.com/forum/topic/7675-npc-bless/
Comentário:
Nome do Tópico: [NPC] Mission
Autor: Dudu Ruller
Link do Tópico: http://tibiaking.com/forum/topic/7582-npc-mission/
Comentário:
Nome do Tópico: Pet system
Autor: Fox B.
Link do Tópico: http://tibiaking.com/forum/topic/4339-pet-system-by-delyria/
Comentário:
Nome do Tópico: Aprendar a criar e postar um NPC no seu Map
Autor: JhonatanCWest
Link do Tópico: http://tibiaking.com/forum/topic/2414-aprenda-a-criar-e-postar-um-npc-no-seu-map/
Comentário:
Nome do Tópico: [NPC] Mate o monstro e complete sua tarefa
Autor: thalia
Link do Tópico: http://tibiaking.com/forum/topic/2094-npc-mate-o-monstro-e-complete-sua-tarefa/
Comentário:
Nome do Tópico: [NPC] Apostador de Vegas
Autor: thalia
Link do Tópico: http://tibiaking.com/forum/topic/2066-npc-apostador-de-vegas/
Comentário:
OBSERVAÇÃO: Como há muitos tópicos apenas os das primeiras páginas serão adicionados, os que não forem atualizados ou os autores de seus tópicos abandonar o tópico, será excluido dando chance a outro tópico.
A ultima atualização ocorreu:
18/10/2011 ás 22:15
Você não está com seu tópico em nossa lista?
Comentem em nosso tópico que atualizaremos no ato!
-
Peixola deu reputação a mariatti em [MOD] Perfect Rep System1º) Vá a pasta mods do seu servidor
2º)Crie um arquivo chamado rep_system.xml e coloque o seguinte script nele:
[SKULL_WHITE] = 30, [SKULL_RED] = 45, [SKULL_BLACK] = 45, [SKULL_NONE] = -30, } aqui voce muda a rep que o player ganha qnd mata outro.. local monsters = { ["behemoth"] = 0, ["hellfire fighter"] = 0, } aqui voce acrescenta os monstros e a rep q eles dao.. (OBS: A quantia de REP em monster eu coloquei 0, mas você pode inserir mais monsters e modificar a quantia de REP!) 2- SQL Agora precisamos criar a tabela REP em sua database! 1º) Abra sua DATABASE no SQLITE. 2º) Vá em TOOLS 3º) Siga em OPEN SQL QUERY EDITOR 4º) Coloque na 1º linha a seguinte query: ALTER TABLE "players" ADD "rep" INT( 11 ) NOT NULL DEFAULT "0"; 5º) Aperte F9. 3- COMANDOS Os comandos do sistema: !hail player -> da +5 de rep ao player !fuck player -> da -5 de rep ao player !set player, x -> Da x quantia de rep ao player !rep -> Verifica a quantia de rep [/code]
[u][color=red][size=4]4-Créditos[/size][/color][/u]
-CyberMaster por ter feito o Script
-Eu (mariatti) por ter trazido ao TK
[u][size=4][color=red]AJUDEI??? REP+[/color][/size][/u]
-
Peixola deu reputação a skulls em Bonus Exp and Loot systemFala galera, tudo bem?
Bom, estou trazendo aqui um sisteminha de double exp e double loot system que fiz sob encomenda só que acabaram fazendo por conta própria e desistindo de comprar o que me encomendaram, então estou divulgando aqui para vocês o sistema completo já que não tem mais nenhum termo de privacidade e é um sisteminha legal de se usar para diversas coisas (quests, itens especiais, etc).
O nome é bem auto-explicativo, o sistema aumenta a rate de exp e loot daquele cidadão por um período X de tempo.
Scripts:
http://pastebin.com/Wc9ZL8Km
É bastante auto-explicativo o código acima, pois já coloquei no pastebin com os devidos comentários e com os passos a serem seguidos. Leiam tudo pois são 3 arquivos e 1 modificação no login.lua.
A forma como está feita ali é um item (a ser definido por você na tag) que você clica e habilita o bonus ao player. A rate de exp e loot são customizáveis tal qual o tempo de duração do bônus.
Espero que gostem.
Abraços,