-
Total de itens
711 -
Registro em
-
Última visita
-
Dias Ganhos
14
-
boa tarde, vi um script que você fez para a magia de um membro do forum e funcionou perfeitamente no meu ot, essa aqui:
(Tenho duas duvidas com relação a essa magia, a primeira é:
Como eu faço pra ela aparecer embaixo do player, prendendo ele? Porque quando uso e a parede está no msm sqm de outro creature ou player, ela não aparece naquele sqm,a segunda e, como troco a sprite da parede? No id não tá indo, coloquei o da magic wall e continua a mesma parede da imagem
-
eu vi esse script em um post um pouco antigo....
local config = { wall = { time = 5, --Tempo, em minutos, para a parede reaparecer. id = xxx, --ID da wall. pos = {x = x, y = y, z = z}, --Posição da wall. }, items = { {{x = x, y = y, z = z}, itemid}, --{{posição que o item deve estar}, itemid}, {{x = x, y = y, z = z}, itemid}, {{x = x, y = y, z = z}, itemid}, {{x = x, y = y, z = z}, itemid}, {{x = x, y = y, z = z}, itemid}, }, } function onUse(cid) local wall = getTileItemById(config.wall.pos, config.wall.id).uid if wall < 1 then return doPlayerSendCancel(cid, "The wall is already openned.") end for _, item in pairs(config.items) do if getTileItemById(item[1], item[2]).uid < 1 then return doPlayerSendCancel(cid, "One or more items are missing or aren't in the correct position.") end end doRemoveItem(wall) addEvent(function() doCreateItem(config.wall.id, 1, config.wall.pos) end, config.wall.time * 60 * 1000) return true end
Queria saber se vc poderia me informar direitinho as tags e onde devo por cada coisa? é para a versão pokebase cyan 8.54 ... e ele funfa direitnho? se puder me ajudar Obg!..e gostaria de saber se vc sabe onde posso arrumar script pra adicionar habilidade nova (parecido com cut,rock smash) ...keria por um minering (minerar)!!
-
Olá zipter98
Poderia me ajudar com a funçao onTarget ser executada por monstros também? Voce tem algum TFS ja com o code? Preciso muito de sua ajuda brow...
-
zipter98 tenho uma duvida para usar minha open soucer,meu servidor dedicado 24h esta crescendo rapido demais
tenho uma equipe toda trabalhando(mapper,web master,programador e eu script) mais nao entendo muito da parte da open soucer e queria adicionar mais efeitos no jogo.voce poderia me ajudar?
-
Se você trabalha com o antigo client da CipSoft, então a quebra do limite de efeitos só será possível com uma DLL que não é disponibilizada gratuitamente na internet (vale informar que seu preço é bem salgado, e há poucos que a comercializam).
Entretanto, com o OTClient o processo se tornou mais fácil e acessível. Há, inclusive, um tutorial em outro fórum ensinando como fazer esta modificação.
-
-
Ei, to começando a estudar a linguagem .lua ainda estou bem no começo, eu estudo aqui pelo forum mesmo, nos tutoriais, tento fazer algumas scripts arrumar algumas coisas, queria saber se você tem algum material pra me indicar pra mim ler, atualmente to começando a ler esse manual: http://www.lua.org/manual/5.1/pt/manual.html
-
Procure ler tutoriais de outros sites e fóruns também (OTLand, XTibia e o site oficial da linguagem). A variedade que encontramos é grande, e mesmo tutoriais sobre o mesmo assunto trazem diferenças entre si em alguns aspectos.
Ler códigos de scripters mais experientes também ampliam seu conhecimento. Um script tem várias maneiras diferentes de ser escrito, e seguindo esta dica você pode acabar aprendendo novas técnicas que tornem seus códigos mais simples e práticos.
O melhor a ser fazer, entretanto, é praticar. Não fique preso à teoria. Ajude o máximo que puder em áreas de suporte, como a encontrada neste fórum. -
Sim, eu tento, mas todos que responderam até agora o código saiu bugado -.-' ei, poderia me dar uma ajuda?
Spoilerlocal combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 66) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -120.2, 1, -125.2, 1) function onCastSpell(cid, var) local waittime = 2 -- Tempo de exhaustion local storage = 5818 end if exhaustion.check(cid, storage) then doCreatureSay(cid, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para usar a spell novamente.", TALKTYPE_MONSTER) return false end function onCastSpell(cid, var) local position1 = {x=getThingPosition(getCreatureTarget(cid)).x, y=getThingPosition(getCreatureTarget(cid)).y, z=getThingPosition(getCreatureTarget(cid)).z} doSendMagicEffect(position1, 66) return doCombat(cid, combat, var) end
Eu que modifiquei essa spell e ela era pra ser basicamente uma spell de target que quando você usa o golpe você precisa esperar 'x' segundos pra usar de novo, ai aparece a mensagem: 'você precisa esperar 2 segundos antes de usar essa spell novamente', eu usei duas referências de script pra tentar fazer esse, porém, não funciona, o que eu fiz de errado pode me explicar? eu ainda não entendo muito desse storage também
-
Você declarou dois callbacks de mesma função, sendo que finalizou o primeiro sem retornar valor algum e contendo apenas duas variáveis, que não poderiam ser acessadas em outras partes do código.
function onCastSpell(cid, var) local waittime = 2 -- Tempo de exhaustion local storage = 5818 end
Você escreveu um escopo fora de qualquer callback que exige a declaração de variáveis/parâmetros (storage/cid) inacessíveis nesta situação.
if exhaustion.check(cid, storage) then doCreatureSay(cid, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para usar a spell novamente.", TALKTYPE_MONSTER) return false end
Uma versão teoricamente correta do código seria:
--Declare as variáveis que não precisam de informações somente acessíveis dentro do callback fora dele. Assim, serão declaradas apenas uma vez, otimizando o processo. local exhaust_time = 2 --Tempo, em minutos, de exaustão. local storage = 5818 --Storage/key. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 66) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -120.2, 1, -125.2, 1) function onCastSpell(cid, var) if getPlayerStorageValue(cid, storage) > os.time() then --Verificando exaustão. doPlayerSendCancel(cid, "Aguarde "..getPlayerStorageValue(cid, storage) - os.time().." segundos para usar esta magia novamente.") return true end setPlayerStorageValue(cid, storage, os.time() + exhaust_time * 60) --Aplicando exaustão. doSendMagicEffect(getThingPosition(getCreatureTarget(cid)), 66) return doCombat(cid, combat, var) end
PS: Não se esqueça da identação. É uma técnica de fácil aprendizado e que torna seu código, além de elegante, mais legível.
-
- LucasAyres reagiu a isso
- 1
-