-
Total de itens
1347 -
Registro em
-
Última visita
-
Dias Ganhos
36
Tudo que Oneshot postou
-
Parabéns, garoto. Está avançando rapidamente. Continue assim. Seria mais simples fazer por os.time(), mas está muito bom assim mesmo. +1 para você
- 5 respostas
-
- teleport hunt
- hunt
- (e 5 mais)
-
Pô, mancada. Usem meu Perfect Refine System 2
- 9 respostas
-
- valendo rep+
- otserv
-
(e 2 mais)
Tags:
-
Significa que seu banco de dados foi corrompido ou algo assim. Mas isso não tem nenhuma relação com adicionar colunas ou o script. Abraços
-
Bom, pessoal. Se possível façam pedidos de sistemas que são possíveis de fazer com as limitações da linguagem Lua em Open Tibia e do cliente do Tibia O sistema do neero102 é praticamente inviável de ser apenas feito com Lua, pois os danos dos monstros são calculados nas funções ambientadas nas sources do servidor (mais precisamente monster.cpp). É claro que seria possível a criação do sistema apenas com Lua, mas, creio eu, seria trabalhoso demais (sinceramente muito trabalho para pouco retorno) Pensei no uso de onStatsChange(cid, attacker, type, combat, value), mas também seria inviável, uma vez que para que esse creaturescript funcionasse, seria necessário o registro dele em todos os monstros do servidor. Sem contar o alto uso de memória e processamento quando chegasse a "noite" do servidor, pois seria necessária uma constante verificação dos monstros, atribuindo mais HP aos monstros que nascessem durante a noite. (No caso de uso de apenas Lua) Fora que não existe uma maneira de editar nomes de criaturas SEM compilar funções extras para isso. E o cliente do Tibia já possui mais limitações nesse quesito, pois salva nomes de criaturas na memória virtual do aplicativo. Um jogador que estivesse perto de um Wolf ao chegar a noite, não veria o novo nome dele, Aggressive Wolf. Ou seja, é mais viável com C++ e não estou interessado em gastar meus poucos neurônios com edição de vários arquivo cpp. O sistema do Leoxtibia está bem fácil de fazer, o uso de um global storage, um player storage e os.time() fazem o sistema por completo. Tentarei algo assim que possível. Abraços.
-
Amigo, vamos maneirar um pouco. Vejo que você cria múltiplos tópicos pedindo ajuda, só faz pedir ajuda, em vez de procurar a causa do erro e pesquisar soluções. Na boa, vamos parar com essa acomodação? Veja se o código da magia em questão possui os seguintes parâmetros setConditionParam(condition, CONDITION_PARAM_TICKS, 10000) setConditionParam(condition, CONDITION_PARAM_BUFF, true)
-
Essa foi boa, Dalvo. Tinha esquecido totalmente da string.reverse() Rep+
-
HA! Acho que alguém caiu na minha armadilha Você me garante que os "k" serão colocados de trás para frente, Dalvo? E não acontecerá isso: 10000000 -> 1kk0 Eu já tentei a string.gsub.
-
Tem sim. CONDITION_PARAM_STAT_MAXHEALTH CONDITION_PARAM_STAT_MAXMANA Aí o valor que você colocar lá será adicionado ao health/mana do jogador.
-
Só acho, neero102 que você precisaria de um servidor potente que processe informações rapidamente. Pois se eu fosse usar a função getSpectators como disse, o servidor daria um lag absurdo quando chegasse a noite para vasculhar o mapa e procurar todas suas criaturas.
-
Que criatividade hein. Só faltam os meios para conseguir o que você quer. Acho que é totalmente possível a criação desse sistema utilizando a função getSpectators(centerPos, rangex, rangey), com ela retorno uma tabela com criaturas de uma parte do mapa e então posso manipular seus atributos com algumas funções. O maior impasse está em mudar nomes de criaturas, pois não há funções compiladas nativamente no The Forgotten Server, The Crystal Server e outros. E também aumentar os danos delas, pois criaturas não são como itens. Vou dedicar algumas tentativas para rascunhar esse sistema. Um Abração.
-
Tecnicamente meus caros, a função onStepIn não oferece suporte a declarar um actionid na chave do movements.xml. Seria necessária uma pequena "modificação" no script. function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) if item.actionid == 7777 then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)) end return true end Pronto, meu caro contemporâneo, assim apenas os teleportes de itemid X, mas com actionid 7777 terão a função de teleportar para a cidade do jogador. Não deixe de configurar o itemid do teleport, que se não me engano, o mais usado é 1387.
-
Como normalmente vejo dúvidas sobre fórmulas de dano, seja com magias ou com armas, seguem abaixo algumas fórmulas úteis para orientação nesses casos. COMBAT_FORMULA_LEVELMAGIC Essa é uma das fórmulas que mais trazem dúvidas de funcionamento, seu uso se dá da seguinte maneira: E seu funcionamento também é muito simples: Você pode ou não definir os valores de minl, maxl, minml, maxml. Caso você não os declare, eles tomam valores configurados por padrão no arquivo config.lua COMBAT_FORMULA_SKILL Ela não é geralmente usada mas é bastante complicada de entender. O problema dessa fórmula é sua interpretação, porque simplesmente muitos acham que o dano que entra no cálculo do max significa o ataque da arma equipada. Mas, na verdade, significa o dano aleatório que arma causaria fisicamente. COMBAT_FORMULA_DAMAGE Essa é super simples de entender, pois é a fórmula que não é influenciada por nada.[/font][/size] MAX WEAPON DAMAGE E por último, mas não menos importante, a fórmula do dano físico usada na maioria dos servidores. Vale lembrar que o attackFactor gira em três modos: BALANCED = 1.2 DEFENSE = 2 ATTACK = 1
-
Bem legal, continue estudando Lua e criando mais scripts Rep+
- 4 respostas
-
- pass
- segurança sytem
- (e 4 mais)
-
Mude isso: CONDITION_PARAM_STAT_MAXHEALTHPERCENT Para isso: CONDITION_PARAM_STAT_MAXMANAPERCENT Att.
-
Crie um arquivo em data/movements/scripts com nome de teleporttown.lua. function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) return doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)) end <movevent type="StepIn" itemid="id do teleport" event="script" value="teleporttown.lua"/>
-
Mas esse aumento é temporário, certo? Se sim, basta fazer isso: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, 10 * 60 * 1000) setConditionParam(condition, CONDITION_PARAM_STAT_MAXHEALTHPERCENT, 150) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Esse é um exemplo de magia que aumenta o HP máximo em 50% por 10 minutos. Um Knight que use a magia e possua 2000 HP, ficará com 3000 de HP por exemplo.
-
{Pedido} Quest Por Escolha Rep+ Quem Resolver
pergunta respondeu ao matheusfera de Oneshot em Scripts
Sinceramente... que sistema de quest, digamos, fraco e limitado. local quest = { [3333] = { [10511] = 1, [7409] = 1, [10073] = 1 } } function onUse(cid, item, fromPosition, itemEx, toPosition) local _quest = quest[item.actionid] if _quest then local prize = _quest[item.uid] if prize and getPlayerStorageValue(cid, item.actionid) ~= 1 then setPlayerStorageValue(cid, item.actionid, 1) doPlayerAddItem(cid, item.uid, prize) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você completou a quest do ".. getItemNameById(item.uid) ..".") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O baú está vazio.") end return true end end Coloque actionid 3333 nos baús e o uniqueid igual aos itens que serão dados nos baús. <action actionid="3333" event="script" value="questsys.lua"/> -
local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setCombatFormula(combat, COMBAT_FORMULA_DAMAGE, 1000, 0, 1000, 0) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Teste. Att.
-
Você deve estar, agora, estranhando um tópico meu na área de Pedidos/Dúvidas. Hoje acordei com vontade de criar sistemas em Lua, mas acontece que o velho Oneshot já não tem mais a mesma imaginação de anos atrás. Então criei este tópico com uma única finalidade, recolher ideias. Mas eu quero boas ideias e não que isto sirva como um tópico para concentrar quaisquer pedidos de script. Se você tiver uma boa ideia, basta vir aqui e descrever-la no tópico. Se você sonha, por exemplo, com um sistema que viu em outro servidor famoso, peça ele aqui também. Mas, claro, você deve descrever o sistema muito bem e, se puder, com um vídeo mostrando ele funcionando. Bom, isso é tudo. Att. Por ora, não me sinto interessado em sistemas de Pokémon.
-
Dá para fazer um Ressurrection literalmente com a função onPrepareDeath, se o jogador tiver um certo item, em vez de morrer, ganha uma segunda chance com 10% do HP por exemplo.
- 7 respostas
-
- resurrection
- creaturescripts
- (e 4 mais)
-
Eu preferi simplesmente por, em vez de quebrar e remover o item, "quebrar" e resetar o nível de refinamento.
-
local position = {x = 160, y = 50, z = 7} local control = 85214 local delay = 3 local function Sender(player) local result = getPlayerStorageValue(player.cid, control) doSendAnimatedText(getThingPosition(player.cid), result, math.random(256)) if result ~= 0 then doPlayerSendTextMessage(player.cid, MESSAGE_INFO_DESCR, "Teletransporte em ".. result .." segundos.") setPlayerStorageValue(player.cid, control, result - 1) addEvent(Sender, 1000, {cid = player.cid}) else doPlayerSendTextMessage(player.cid, MESSAGE_INFO_DESCR, "Teletransportado!") doTeleportThing(player.cid, position) doSendMagicEffect(getThingPosition(player.cid), CONST_ME_TELEPORT) end return true end function onUse(cid, item, fromPosition, itemEx, toPosition) if isPlayerPzLocked(cid) then return doPlayerSendCancel(cid, "O item só pode ser usado em Protection Zone.") end setPlayerStorageValue(cid, 85214, delay) addEvent(Sender, 0, {cid = cid}) return true end Tomei a liberdade de optimizar o código em questão. Att.
-
Certo, apresente mais informações. - Qual o sistema VIP que você utiliza?
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.