Histórico de Curtidas
-
jcfd.joao deu reputação a Zanrix em [RPG] Curse Tibia Server - Procurando por feedbackAgora que o projeto está mais completo, vou começar a explicar melhor os sistemas de tempo em tempo aqui!
Sobre o sistema de atributos
Mudança na tela
Antes:
Agora:
Os atributos são:
- Strength (Força): Aumenta todo dano físico causado, tanto em ataques básicos como em magias.
- Vitality (Vitalidade): Aumenta seus pontos de vida.
- Intelligence (Inteligência): Aumenta todo dano mágico causado.
- Energy (Energia): Aumenta seus pontos de mana.
- Agility (Agilidade): Aumenta sua velocidade de ataque.
- Luck (Sorte): Aumenta a chance de causar um ataque crítico.
Algumas interações com o mapa exigem certo atributo. Alguns exemplos:
- Existem algumas alavancas emperradas que exigem diversos níveis diferentes de força.
- Existem livros escondidos que requerem inteligência para ler.
- Ao procurar itens em objetos aleatórios do mapa, a sorte melhora a chance de achar algum item.
Alguns itens precisam de atributos para serem equipados. Além disso, algumas magias também precisam de atributos para aprender/usar. Alguns exemplos:
- Knight Armor exige que você tenha 15 pontos em Strength (Força) para a equipar.
- Magic Shield (Utamo Vita) exige que você tenha 20 pontos em Energy (Energia) para poder conjura-la.
-
jcfd.joao deu reputação a Zanrix em [RPG] Curse Tibia Server - Procurando por feedbackFala aí pessoal!
Curse Tibia Server é um servidor para amantes de RPG, de rates baixas e onde a exploração é muito bem recompensada.
Além disso, temos como foco fazer patchs frequentemente, sempre adicionando novos conteúdos e proporcionando novos desafios aos jogadores.
Informações Gerais
- A experiência é stagiada em torno de 5x até 1.5x.
- O mapa é uma mistura de áreas e modificações próprias + global + partes de servidores que nunca foram lançados.
- O servidor tem base na versão 9.6, mas adicionamos algumas criaturas e alguns itens de versões posteriores.
Principais Mudanças
- Em vez de poções recuperarem vida/mana instantaneamente, elas recuperam ao longo de 3 segundos.
- O server tem Training Monk, porém, você só pode ficar neles durante 1 hora, para regenerar esse tempo é preciso caçar bastante.
- Andar de barco é uma tarefa um pouco mais complexa, com um custo bastante elevado e algumas passagens precisando de uma pequena quest ou alguns itens.
Vocações
- 5 novas classes, além das existentes terem sido reformuladas.
- Uma promoção a mais para cada classe.
- Todas classes ganharam várias magias novas.
- Uma das classes novas é o famoso Necromancer:
Atributos
Atributos são pontos escolhidos pelo jogador para melhorar o desempenho de seus personagens e desenvolvê-los de uma maneira pessoal. Eles também servem para poder conjurar algumas magias e fazer algumas interações com o mapa (Puxar uma alavanca emperrada exige força, por exemplo).
Árvore de Skills
A árvore de skills te permite distribuir pontos para liberar novas magias e personificar ainda mais seu personagem o deixando mais versátil de acordo com sua preferência.
- Cada classe tem dois caminhos na árvore, cada um deles é voltado para uma jogabilidade diferente.
- Quase todas magias são liberadas pela árvore.
Prévia do Necromancer:
Caminho da morte
Caminho de summons
Sistema de Raridade
Todos equipamentos tem uma pequena chance de serem dropados como um item raro, épico ou lendário.
- Quanto melhor a qualidade do item, melhor será os bônus, porém será mais difícil de encontrá-lo.
Existem ainda alguns outros sistemas e as telas são mais um protótipo, mas acho que da pra ter uma ideia do objetivo do servidor.
O que acham? Jogariam?
Gostaria muito de ouvir críticas e opiniões! (:
-
jcfd.joao deu reputação a L3K0T em (Resolvido)Controle de kills e remoção de kills por tempo (script quase pronto)Era pra ajudar ja vo fechar
-
jcfd.joao deu reputação a L3K0T em (Resolvido)Controle de kills e remoção de kills por tempo (script quase pronto)Pensei nisso complexo
local function getPlayerKills(player)
local killsStorage = 1000 -- StorageValue para armazenar as mortes do jogador
return player:getStorageValue(killsStorage)
end
local function setPlayerKills(player, kills)
local killsStorage = 1000 -- StorageValue para armazenar as mortes do jogador
player:setStorageValue(killsStorage, kills)
end
function onGainExp(player, exp, fromPlayer)
local maxKills = 10 -- Número máximo de kills permitidas antes de zerar a experiência
local expStorage = 2000 -- StorageValue para armazenar a experiência do jogador
local fragid = 3000 -- StorageValue para armazenar o contador de frags
local timeFrag = 4000 -- StorageValue para armazenar o tempo do último frag
local requiredFrags = 3 -- Número mínimo de frags necessários para ativar o evento
-- Verifica se o jogador possui frags suficientes e se a experiência é maior que zero
if player:getStorageValue(fragid) >= requiredFrags and exp > 0 then
local currentExp = player:getStorageValue(expStorage)
local currentKills = getPlayerKills(player)
-- Verifica se o jogador atingiu o limite de kills
if currentKills >= maxKills then
return 0 -- Retorna 0 para zerar a experiência ganha
else
-- Atualiza o número de kills e a experiência do jogador
setPlayerKills(player, currentKills + 1)
player:setStorageValue(expStorage, currentExp + exp)
end
end
return exp -- Retorna a experiência atualizada
end
function onLogin(player)
local resetInterval = 4 * 60 * 60 -- Intervalo de reset em segundos (4 horas)
local lastResetStorage = 3000 -- StorageValue para armazenar o último reset
local fragid = 3000 -- StorageValue para armazenar o contador de frags
local timeFrag = 4000 -- StorageValue para armazenar o tempo do último frag
local timeThreshold = 2 * 60 * 60 -- Tempo em segundos para reiniciar o contador de frags
local requiredFrags = 3 -- Número mínimo de frags necessários para ativar o evento
-- Verifica se já passou o intervalo de reset desde o último login
local lastReset = player:getStorageValue(lastResetStorage)
local currentTime = os.time()
if lastReset ~= nil and currentTime - lastReset >= resetInterval then
-- Realiza o reset do número de kills e a experiência do jogador
setPlayerKills(player, 0)
player:setStorageValue(expStorage, 0)
player:setStorageValue(lastResetStorage, currentTime)
end
-- Verifica se já passaram 2 horas desde o último frag
local lastFrag = player:getStorageValue(timeFrag)
if lastFrag ~= nil and currentTime - lastFrag >= timeThreshold then
player:setStorageValue(fragid, 0) -- Reinicia o contador de frags
end
-- Verifica se o jogador possui frags suficientes ao fazer o login
if player:getStorageValue(fragid) < requiredFrags then
player:setStorageValue(fragid, 0) -- Zera o contador de frags
end
end
-- Registra os eventos
registerCreatureEvent(cid, "onGainExp")
registerCreatureEvent(cid, "onLogin")
<event type="gainExperience" name="onGainExp" event="script" value="scripts/gainexp.lua"/>
<event type="login" name="onLogin" event="script" value="scripts/login.lua"/>
-
jcfd.joao recebeu reputação de L3K0T em (Resolvido)Controle de kills e remoção de kills por tempo (script quase pronto)Vou fazer um resumo pq precisaria criar um tutorial ou post pois envolve varias modificações;
Basicamente é necessário criar um script com a função "onGainExp", que esse script tera a condição se a xp vier de players
nesse mesmo script setar o storage value para cada morte baseado na ID (getGuid) do player.
dai vem a condição de controlar a quantidade de kills assim que ele ganhe exp de players (a cada ganho de xp um storage value).
logo se acontecer de chegar o limite configurada, exp = 0
No caso do "reset" eu peguei o proprio "autoSave" e coloquei a função em SQL para setar = 0 o storageValue que estiver no range (BEETWEEN X AND Y).
e colocar o intervalo de 4 horas, por exemplo.
PS¹: é necessario habilitar no config.lua "expfromplayers" e colocar um rage elevado (ex: 200) e depois no script "onGainExp" que será feitas as modificações das condições para ganhar exp.
PS²: desisti de tentar criar com a função "onkill" pq se houvessem mais de 1 ou varios players batendo a exp era apenas para quem "ganhava a kill".
Em breve poderei postar,
Talvez eu poste minhas configs e modificações num server completo, caso alguém queria deixar ele online.
Abraço!
-
jcfd.joao deu reputação a Mateus Robeerto em (Resolvido)Controle de kills e remoção de kills por tempo (script quase pronto)function onPlayerKill(player, creature, lastHit) if not creature:isPlayer() then return true end for cid, damage in pairs(creature:getDamageMap()) do local fragid = 20000000 + creature:getId() local timefrag = 30000000 + creature:getId() local participant = Player(cid) if participant and participant:isPlayer() then local difer = creature:getLevel() - player:getLevel() local difer2 = player:getLevel() - creature:getLevel() local ExpLow = math.ceil(creature:getExperience() * 0.05 / (difer2 + 1)) local ExpHigh = math.ceil(creature:getExperience() * 0.01 * ((difer * 0.5) + 1)) if creature:getLevel() <= participant:getLevel() and participant:getStorageValue(fragid) <= 3 then participant:addItem(2152, 10) --participant:addExperience(ExpLow, true) participant:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'You gained ' .. ExpLow .. ' experience points.') participant:setStorageValue(fragid, participant:getStorageValue(fragid) + 1) participant:setStorageValue(timefrag, os.time() + 60) elseif participant:getStorageValue(fragid) >= 3 then participant:sendTextMessage(MESSAGE_STATUS_WARNING, 'This player cannot give experience to you.') end if difer >= 1 and participant:getStorageValue(fragid) <= 3 then participant:addItem(2152, (difer * 5) + 10) --participant:addExperience(ExpHigh, true) participant:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'You gained ' .. ExpHigh .. ' experience points.') participant:setStorageValue(fragid, participant:getStorageValue(fragid)) participant:setStorageValue(timefrag, participant:getStorageValue(timefrag)) elseif participant:getStorageValue(fragid) >= 3 then player:sendTextMessage(MESSAGE_STATUS_WARNING, 'This player cannot give experience to you.') end end end return true end function registerPlayerOnKill() addEvent(onPlayerKill) end registerPlayerOnKill() testa ai e me fala aqui se deu erro no console
-
jcfd.joao deu reputação a doda4ever em Procuro Mapper EmpenhadoEstou com um servidor 8.60 em estágio avançando e preciso da parceria de alguém que gosta de editar mapa.
Requisitos do Mapper:
Gostar de editar, criar áreas novas ou editar as baseadas no global.
Ter disponibilidade de pelo menos 2, 3 horas por dia pra se dedicado ao desenvolvimento.
Saber administrar um servidor, conversar com os jogadores, ouvir feedback, etc.