Ir para conteúdo
  • Cadastre-se

marcot

Membro
  • Total de itens

    179
  • Registro em

  • Última visita

  • Dias Ganhos

    5

Tudo que marcot postou

  1. IF é uma condicional que só executa seu bloco quando a expressão dele tem TRUE (Verdadeiro) como resultado. Expressões deste tipo podem ser chamadas expressões booleanas e podem ter resultados TRUE ou FALSE. Essas expressões são feitas com operadores de negação (not em LUA, ! em C++/Java), ou (or em LUA, || em C++/Java) e e (and em LUA, && em C++). As expressões seguem as tabelas abaixo: Note que os exemplos acima são exemplos reais de aplicação em circuitos eletrônicos (os desenhos acima das tabelas são as representações dos componentes que usamos),
  2. @Danxi Na linha 30 tente mudar: if item2.itemid == b.on or item2.itemid == b.off or (item2.itemid == b.use and #getCreatureSummons(cid) < 1 and not isRiderOrFlyOrSurf(cid)) then Por if (item2.itemid == b.on or item2.itemid == b.off) and (item2.itemid == b.use and #getCreatureSummons(cid) < 1 and not isRiderOrFlyOrSurf(cid)) then E teste para ver se funciona. Dei uma olhada apressada mas estranhei muito esse if, porque quando você tem or e um deles é verdadeiro a expressão se torna verdadeira, então só de cumprir uma das duas primeiras condições já anula todo o re
  3. Essa ultima script que você mandou está com vários erros. Tem um erro de sintaxe de um if sem then, e a função RunPart está sendo chamada sem todos seus 5 parâmetros, onde 2 deles não foram definidos no código (dirList e dirEmitPos)
  4. @hallanehallex Consegui fazer seguindo as dicas do Wolf. Hiraishin no Jutsu 2.0: Em data/spells/spells.xml cole: <instant name="Hiraishin No Jutsu" words="hiraishin ni no dan seal" lvl="12" mana="20" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="hiraishin.lua"> <vocation id="4"/> </instant> <instant name="Hiraishin no Jutsu" words="hiraishin ni no dan" lvl="18" mana="140" prem="1" aggressive="0" params="1" exhaustion="2000" needlearn="0" event="script" value="hiraish
  5. @Strung, aqui está. local config = { uniqueID = 5000, -- Unique ID da alavanca playerA_pos = {x = 396, y = 1746, z = 9, stackpos=253}, -- Posicao do "Player A" que sera puxado playerA_posDestino = {x = 398, y = 1746, z = 9, stackpos=253}, -- Posicao para a qual player A sera transportado item = {ID = 6500, count = 40} } local errorMsg = { sqm = "Fique no SQM indicado.", noItem = "Voce nao possui os itens necessarios." } function onUse(cid, item, frompos, item2, topos) if item.uid == config.uniqueID and item.itemid == 1945 then player = getThingfromPos(config.playerA_pos) if pl
  6. 1) Dá pra colocar o nome de qualquer pessoa do server 2) O meu problema com spell é que não sei como posso pegar o nome do jogador target como parâmetro 3) Eu não estou sabendo porque o comando de marcar o jogador fala, enquanto o segundo o jogador nao fala 4) Ja esta exclusiva para vocation X, a definição está no config
  7. @apollo333, @Samu DS Desculpem nao ter respondido, estava maratonando uma série ontem. Aqui a versão upando ML e com exausted: local config = { requiredLevel = 100, -- Level necessario usingMana = 200, -- Mana que sera gasta storageID = 40001, -- Mude se ja estiver em uso timeExausted = 1, -- Tempo de exausted global } local errorMsg = { level = "Not enough level.", exausted = "You are exausted.", mana = "Not enough mana.", } local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 49
  8. Será que você não consegue fazer o que planeja com este script?
  9. Ela inicia o efeito de cura quando você bate, mas não para quando tira o target. Para transformar em um ring acredito que teria que ser outro script, mas acho que não consigo fazer. @Dennyz Nao estou conseguindo transformar o script para OTX 1.2, estou tendo dificuldades de achar as funções correspondentes, mas eu irei tentando. Aceito ajuda de outras pessoas para transformar o script postado anteriormente para OTX e-e
  10. Agora consegui consertar, estava bugando devido aos espaços na talkaction. Hotkeys usadas: hiraishin ni no dan seal Test hiraishin ni no dan Testado em The Forgotten Server 0.4 Em data/talkactions/talkactions.xml insira a TAG: <talkaction words = "hiraishin" event = "script" value = "hiraishin no jutsu.lua"/> OBS.: Tenha atenção pois agora é só um script. Em data/talkactions/scripts/ crie o script hiraishin no jutsu.lua e cole dentro dele: local config = { storage = 49608, time = 6, vocation = 4 } local errorMsg = { pz = "Vo
  11. Na versão que testei só funcionava quando abria as aspas. Eu so vou terminar um script aqui e ja olho esse em uma versão mais recente de tibia hiraishin "Teste3 teleport /\ foram as hotkeys usadas pra teleportar, mas por conta das tags que usei diferentes pra deixar mais rápido
  12. Em qual versão de TFS você está testando? P.S.: Dá pra colocar por vocation com talkaction também Usou as aspas? exemplo: hiraishin ni no dan seal "JogadorX
  13. Tente este: local config = { healingHP = 200, -- HP curado por segundo healingMP = 200, -- MP curado por segundo time = 6 -- Quantos segundos de cura } local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_MEELEFFECT, CONST_ANI_PHYSICAL) setCombatFormula(combat1, COMBAT_FORMULA_SKILL, -1.0, -40, -0.8, -95) local function onUseWeapon1(parameters) doCombat(parameters.cid, parameters.combat1, parameters.var) end function onUseWeapon(cid, var) local parameters = { cid = cid, var = var, combat1 = comba
  14. Ela está healando a vida do player que está usando a espada. Nem me passou pela cabeça qual dos dois foi pedido, esqueci desse detalhe @Dennyz qual dos dois você pediu?
  15. @xWhiteWolf, Então, eu estou começando a mexer com LUA ainda, comecei pra valer na semana passada... Antigamente eu mexia com otserver (quando tinha uns 12 anos) mas eu sempre reutilizava scripts para tentar fazer outros e nunca sabia nada sobre a sintaxe de programação (como condicionais ou iteradores) o que me limitava muito. Agora já sei ou pouco mais, ai ajuda. Obrigado pelas dicas. Sobre a segunda eu tenho um pouco de medo porque ao menos na versão 8.1 o TRUE e FALSE são definidos no global.lua como 0 e 1, e não sabia se em lua é feito igual em C++ (0 = false e o res
  16. Vá em data/weapons/weapons.xml e adicione a tag: <melee id="XXXX" enabled="1" exhaustion="0" hitchance="80" script="swordHeal.lua"></melee> Onde XXXX é a arma que terá o script executado. Em seguida vá para data/weapons/scripts/ e crie um arquivo chamado swordHeal.lua e cole isto nele: local config = { healingHP = 200, -- HP curado por segundo healingMP = 200, -- MP curado por segundo time = 6 -- Quantos segundos de cura } local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_
  17. Bom, eu tentei fazer o bruto, se faltar alguma coisa me dá o toque. Eu preferi fazer por talkaction pra deixar mais fácil o codigo, porque daria muito trampo negócio de guardar o nome do jogador que o player marcou fora do script. Vá em data/talkactions/talkactions.xml e adicione as tags: <talkaction words="hiraishin ni no dan seal" script="hiraishin no jutsu.lua" /> <talkaction words="hiraishin ni no dan" script="teleport hiraishin.lua" /> Agora em data/talkactions/scripts/ crie os arquivos hiraishin no jutsu.lua e teleport hiraishin.lua. hiraishin n
  18. Um action não vai funcionar se tiver o function onCastSpell (cid, var). Então você troca para function onUse(cid, item, frompos, item2, topos) e para o action chamar a skill você deve ter o doCombat(cid, combat, var), mas você não tem var numa action, então você troca para doCombat(cid, combat, numberToVariant(cid)). Se você preferir faz assim: Pega o spell que você quer que seja o item e copie numa nova action. Adicione ao começo local config = { requiredLevel = 100, usingMana = 200 } E substitua o function onCastSpell(cid, var) return doCombat(cid, comba
  19. Vou tentar explicar dando um exemplo. Quero fazer um item que solte "Exevo Mas San", o script equivalente no meu servidor é o holy light.lua. A princípio temos: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 49) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.5, -30, -1.1, 0) local arr = { {0, 0, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 0}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 3, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 0, 0} } local area = createCombatArea(
  20. Você vai fazer o seguinte: copia tudo que está na magia e cola no action, depois procura essa parte: function onCastSpell(cid, var) return doCombat(cid, combat, var) end e substitua por: function onUse(cid, item, frompos, item2, topos) return doCombat(cid, combat, numberToVariant(cid)) end
  21. Você pode fazer assim no caso da exura, cria o arquivo item_skill.lua em data/actions/scripts: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) function onGetFormulaValues(cid, level, maglevel) min = (level * 2 + maglevel * 3) * 0.5 - 30 max = (level * 2 + maglevel * 3) * 0.6 if min < 25 then min
  22. Usa meu script com essa tag no movements.xml: <movevent type="StepIn" actionid="13541" event="script" value="outfit_tile.lua"/>
  23. Isso já foge o script. Teria que ser um addon já pronto ou algo do tipo.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo