Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Preciso de 3 jutsus diferentes de Trap se alguem conseguir me ajudar.

 

Primeiro: seria um trap que tu criaria no chao uma arvore se o cara passar por cima ou descer uma escada e cair em cima ficar paralyzado.

 

Segundo: o Trap seria no target e iria fechando um monte de arvores nele.

 

Terceiro: o Trap seria criado em area e paralyzaria todos os players menos quem usou o jutsu.

 

 

Link para o post
Compartilhar em outros sites

 

PRIMEIRO:

SPELL

local config = {
itemid = 2344, -- id da bomba 
duration = 50, -- duration antes de ser removida
actionid = 13246, -- actionid que sera setado na bomba (pro movements)
effect = 951, -- efeito que sai ao colocar a bomba
}

function removeBomba(pos, id)
local item = getTileItemById(pos, id)
	if item.uid > 0 then
		doRemoveItem(item.uid)
	end
return true
end

function Explosive(cid, text)
    if not isPlayer(cid) then
        return
    end
 doSendAnimatedText(getCreaturePosition(cid), "Trap..", 215)
end	
	

function onCastSpell(cid, var)
local waittime = 20 -- Tempo de exhaustion
local storage = 1 -- não mecha
if exhaustion.check(cid, storage) then
   doPlayerSendCancel(cid, "Usted esta cansado.")
   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Tendras que esperar " .. exhaustion.get(cid, storage) .. " min para colocar otra trampa.")
doSendMagicEffect(getCreaturePosition(cid), 2)
    return false
end






	local position = getCreaturePosition(cid)
	local item = doCreateItem(config.itemid, 1, position)
	setItemAid(item, config.actionid)
	doItemSetAttribute(item, 'ref', getCreatureName(cid))
	doSendMagicEffect(position, config.effect)
	addEvent(Explosive, 100, cid, "Trap!")
	addEvent(removeBomba, config.duration * 1000, position, config.itemid)	
	exhaustion.set(cid, 2500, 1)
	exhaustion.set(cid, storage, waittime)
return true
end

MOVEMENTS:

local t = {

tempo = 2 -- tempo em segundos
}

function onStepIn(cid, item, frompos, itemEx, topos)
doRemoveItem(item.uid)

doCreatureSetNoMove(cid, true)

addEvent(function() 
if isPlayer(cid) then 
doCreatureSetNoMove(cid, false)
end
end, t.tempo*1000)
return true
end

 

SEGUNDO:

local remove_time = 8 -- tempo em segundos para remover as magic wall
local item_id = 5750 -- id da magic wall

function isWalkable(pos, creature, pz, proj)
    if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end
	local creature = getTopCreature(pos)
    if creature.type > 0 then	return false end
	if getTilePzInfo(pos) and not pz then return false end
	local n = not proj and 3 or 2
	for i = 0, 255 do
        pos.stackpos = i
        local tile = getTileThingByPos(pos)
        if tile.itemid ~= 0 and not isCreature(tile.uid) then
            if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then
                return false
            end
        end
	end
return true
end

function removeItem(posAll)
	for i=1, #posAll do
		for j=0, 255 do
			pos_stack = {x=posAll[i].x,y=posAll[i].y,z=posAll[i].z,stackpos=j}
			removeTile = getThingfromPos(pos_stack)
			if removeTile.itemid == item_id then
				doRemoveItem(removeTile.uid)
			end
		end
	end
end

function onCastSpell(cid, var)



local waittime = 30 -- Tempo de exhaustion em segundos
local storage = 5853 -- Storage de Spell, nunca usar a mesma em outra spell, a menos que não queira usar duas spell juntas!

if exhaustion.check(cid, storage) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Espera "..exhaustion.get(cid, storage).." segundos para usar nuevamente.")
return false
end

local pos = getThingPos(getCreatureTarget(cid))
addEvent(doSendAnimatedText, 100, {x = pos.x, y = pos.y, z = pos.z}, "TRAP!", 180)
posTile1 = {x=pos.x+1,y=pos.y+1,z=pos.z,stackpos=1}
posTile2 = {x=pos.x+1,y=pos.y,z=pos.z,stackpos=1}
posTile3 = {x=pos.x+1,y=pos.y-1,z=pos.z,stackpos=1}
posTile4 = {x=pos.x,y=pos.y-1,z=pos.z,stackpos=1}
posTile5 = {x=pos.x-1,y=pos.y-1,z=pos.z,stackpos=1}
posTile6 = {x=pos.x-1,y=pos.y,z=pos.z,stackpos=1}
posTile7 = {x=pos.x-1,y=pos.y+1,z=pos.z,stackpos=1}
posTile8 = {x=pos.x,y=pos.y+1,z=pos.z,stackpos=1}
posAll = {posTile1,posTile2,posTile3,posTile4,posTile5,posTile6,posTile7,posTile8}

for i=1, #posAll do
	if isWalkable(posAll[i]) then
		doCreateItem(item_id, 1, posAll[i])
	end
end 

function dotonprision(cid)
	if isCreature(cid) and isCreature(getCreatureTarget(cid)) then
		local position = {x=getThingPosition(getCreatureTarget(cid)).x+2, y=getThingPosition(getCreatureTarget(cid)).y+1, z=getThingPosition(getCreatureTarget(cid)).z}
		doSendMagicEffect(position, 690)
		local position = {x=getThingPosition(getCreatureTarget(cid)).x, y=getThingPosition(getCreatureTarget(cid)).y+1, z=getThingPosition(getCreatureTarget(cid)).z}
		doSendMagicEffect(position, 690)
	end
end

local parameters = {cid = cid, var = var, combat1 = combat1 , combat2 = combat2}
for i = 1, 2 do
	addEvent(function()
		if isCreature(cid) then
			addEvent(dotonprision,100,cid)
		end
	end, 1 + ((i-1) * 8000))
end

addEvent(removeItem, remove_time*1000, posAll)
exhaustion.set(cid, storage, waittime)

return true
end

 

 

Terceiro VC TENTA MODIFICAR AI

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 134)

local condition = createConditionObject(CONDITION_PARALYZE)
setConditionParam(condition, CONDITION_PARAM_TICKS, 20000)
setConditionFormula(condition, -0.5, 0, -0.5, 0)
setCombatCondition(combat, condition)

local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatParam(combat2, COMBAT_PARAM_CREATEITEM, 1499)

arr1 = {
{0, 0, 1, 0, 0},
{0, 1, 1, 1, 0},
{1, 1, 2, 1, 1},
{0, 1, 1, 1, 0},
{0, 0, 1, 0, 0},
}

arr2 = {
{0, 0, 0, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 0, 0, 0},
{0, 0, 1, 1, 0, 1, 1, 0, 0},
{0, 1, 1, 0, 0, 0, 1, 1, 0},
{1, 1, 0, 0, 2, 0, 0, 1, 1},
{0, 1, 1, 0, 0, 0, 1, 1, 0},
{0, 0, 1, 1, 0, 1, 1, 0, 0},
{0, 0, 0, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 0, 0, 0},
}




local area2 = createCombatArea(arr2)
local area1 = createCombatArea(arr1)
setCombatArea(combat2, area2)
setCombatArea(combat, area1)

function countPos(pos,tempo)
if tempo > 0 then 
doSendAnimatedText(pos,tempo,TEXTCOLOR_ORANGE)
addEvent(countPos,999,pos,tempo-1)
else
end
end

function onCastSpell(cid, var)
  countPos(var.pos,30)
local from,to = {x = 953, y = 1128, z = 7},{x = 982, y = 1147, z = 7}
if isInArea(getCreaturePosition(cid), from, to) then
return doPlayerSendCancel(cid, "Não é permitido utilizar está magia no desafio dos monstros.")
else
    doCombat(cid, combat, var)
    return doCombat(cid, combat2, var)
end
return true
end

 

Editado por Fabi Marzan (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 2 months later...
Em 11/11/2020 em 20:45, Fabi Marzan disse:

 

PRIMEIRO:

SPELL


local config = {
itemid = 2344, -- id da bomba 
duration = 50, -- duration antes de ser removida
actionid = 13246, -- actionid que sera setado na bomba (pro movements)
effect = 951, -- efeito que sai ao colocar a bomba
}

function removeBomba(pos, id)
local item = getTileItemById(pos, id)
	if item.uid > 0 then
		doRemoveItem(item.uid)
	end
return true
end

function Explosive(cid, text)
    if not isPlayer(cid) then
        return
    end
 doSendAnimatedText(getCreaturePosition(cid), "Trap..", 215)
end	
	

function onCastSpell(cid, var)
local waittime = 20 -- Tempo de exhaustion
local storage = 1 -- não mecha
if exhaustion.check(cid, storage) then
   doPlayerSendCancel(cid, "Usted esta cansado.")
   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Tendras que esperar " .. exhaustion.get(cid, storage) .. " min para colocar otra trampa.")
doSendMagicEffect(getCreaturePosition(cid), 2)
    return false
end






	local position = getCreaturePosition(cid)
	local item = doCreateItem(config.itemid, 1, position)
	setItemAid(item, config.actionid)
	doItemSetAttribute(item, 'ref', getCreatureName(cid))
	doSendMagicEffect(position, config.effect)
	addEvent(Explosive, 100, cid, "Trap!")
	addEvent(removeBomba, config.duration * 1000, position, config.itemid)	
	exhaustion.set(cid, 2500, 1)
	exhaustion.set(cid, storage, waittime)
return true
end

MOVEMENTS:


local t = {

tempo = 2 -- tempo em segundos
}

function onStepIn(cid, item, frompos, itemEx, topos)
doRemoveItem(item.uid)

doCreatureSetNoMove(cid, true)

addEvent(function() 
if isPlayer(cid) then 
doCreatureSetNoMove(cid, false)
end
end, t.tempo*1000)
return true
end

 

SEGUNDO:


local remove_time = 8 -- tempo em segundos para remover as magic wall
local item_id = 5750 -- id da magic wall

function isWalkable(pos, creature, pz, proj)
    if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end
	local creature = getTopCreature(pos)
    if creature.type > 0 then	return false end
	if getTilePzInfo(pos) and not pz then return false end
	local n = not proj and 3 or 2
	for i = 0, 255 do
        pos.stackpos = i
        local tile = getTileThingByPos(pos)
        if tile.itemid ~= 0 and not isCreature(tile.uid) then
            if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then
                return false
            end
        end
	end
return true
end

function removeItem(posAll)
	for i=1, #posAll do
		for j=0, 255 do
			pos_stack = {x=posAll[i].x,y=posAll[i].y,z=posAll[i].z,stackpos=j}
			removeTile = getThingfromPos(pos_stack)
			if removeTile.itemid == item_id then
				doRemoveItem(removeTile.uid)
			end
		end
	end
end

function onCastSpell(cid, var)



local waittime = 30 -- Tempo de exhaustion em segundos
local storage = 5853 -- Storage de Spell, nunca usar a mesma em outra spell, a menos que não queira usar duas spell juntas!

if exhaustion.check(cid, storage) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Espera "..exhaustion.get(cid, storage).." segundos para usar nuevamente.")
return false
end

local pos = getThingPos(getCreatureTarget(cid))
addEvent(doSendAnimatedText, 100, {x = pos.x, y = pos.y, z = pos.z}, "TRAP!", 180)
posTile1 = {x=pos.x+1,y=pos.y+1,z=pos.z,stackpos=1}
posTile2 = {x=pos.x+1,y=pos.y,z=pos.z,stackpos=1}
posTile3 = {x=pos.x+1,y=pos.y-1,z=pos.z,stackpos=1}
posTile4 = {x=pos.x,y=pos.y-1,z=pos.z,stackpos=1}
posTile5 = {x=pos.x-1,y=pos.y-1,z=pos.z,stackpos=1}
posTile6 = {x=pos.x-1,y=pos.y,z=pos.z,stackpos=1}
posTile7 = {x=pos.x-1,y=pos.y+1,z=pos.z,stackpos=1}
posTile8 = {x=pos.x,y=pos.y+1,z=pos.z,stackpos=1}
posAll = {posTile1,posTile2,posTile3,posTile4,posTile5,posTile6,posTile7,posTile8}

for i=1, #posAll do
	if isWalkable(posAll[i]) then
		doCreateItem(item_id, 1, posAll[i])
	end
end 

function dotonprision(cid)
	if isCreature(cid) and isCreature(getCreatureTarget(cid)) then
		local position = {x=getThingPosition(getCreatureTarget(cid)).x+2, y=getThingPosition(getCreatureTarget(cid)).y+1, z=getThingPosition(getCreatureTarget(cid)).z}
		doSendMagicEffect(position, 690)
		local position = {x=getThingPosition(getCreatureTarget(cid)).x, y=getThingPosition(getCreatureTarget(cid)).y+1, z=getThingPosition(getCreatureTarget(cid)).z}
		doSendMagicEffect(position, 690)
	end
end

local parameters = {cid = cid, var = var, combat1 = combat1 , combat2 = combat2}
for i = 1, 2 do
	addEvent(function()
		if isCreature(cid) then
			addEvent(dotonprision,100,cid)
		end
	end, 1 + ((i-1) * 8000))
end

addEvent(removeItem, remove_time*1000, posAll)
exhaustion.set(cid, storage, waittime)

return true
end

 

 

Terceiro VC TENTA MODIFICAR AI


local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 134)

local condition = createConditionObject(CONDITION_PARALYZE)
setConditionParam(condition, CONDITION_PARAM_TICKS, 20000)
setConditionFormula(condition, -0.5, 0, -0.5, 0)
setCombatCondition(combat, condition)

local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatParam(combat2, COMBAT_PARAM_CREATEITEM, 1499)

arr1 = {
{0, 0, 1, 0, 0},
{0, 1, 1, 1, 0},
{1, 1, 2, 1, 1},
{0, 1, 1, 1, 0},
{0, 0, 1, 0, 0},
}

arr2 = {
{0, 0, 0, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 0, 0, 0},
{0, 0, 1, 1, 0, 1, 1, 0, 0},
{0, 1, 1, 0, 0, 0, 1, 1, 0},
{1, 1, 0, 0, 2, 0, 0, 1, 1},
{0, 1, 1, 0, 0, 0, 1, 1, 0},
{0, 0, 1, 1, 0, 1, 1, 0, 0},
{0, 0, 0, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 0, 0, 0},
}




local area2 = createCombatArea(arr2)
local area1 = createCombatArea(arr1)
setCombatArea(combat2, area2)
setCombatArea(combat, area1)

function countPos(pos,tempo)
if tempo > 0 then 
doSendAnimatedText(pos,tempo,TEXTCOLOR_ORANGE)
addEvent(countPos,999,pos,tempo-1)
else
end
end

function onCastSpell(cid, var)
  countPos(var.pos,30)
local from,to = {x = 953, y = 1128, z = 7},{x = 982, y = 1147, z = 7}
if isInArea(getCreaturePosition(cid), from, to) then
return doPlayerSendCancel(cid, "Não é permitido utilizar está magia no desafio dos monstros.")
else
    doCombat(cid, combat, var)
    return doCombat(cid, combat2, var)
end
return true
end

 

o segundo spell nao ta conforme eu pedi ele simplesmente fecha na volta do cara so e ele teria que tipo ir fechando grande medio e pequeno entende? e o terceiro spell nao ta certo ele cria tudo e tals mas fica espaços no meio e tipo ele teria que criar uma floresta gigante e ninguem pode se mover so o dono da floresta entende?

e as spells eu uso e nao retira as wall

na vdd o terceiro spell ta certo mas o dono da spell nao pode passar por cima e o primeiro ta dando erro no setitemAid!

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por braianlomas
      Como faço para corrigir esse problema para meu cliente, eu uso o tfs 0.3.6  
      Quero resolver esse problema que tenho no meu cliente, como e onde posso resolver?  
      Eu uso o tfs 0.3.6, não tenho as fontes do cliente, se você puder me dar eu vou amá-las para sempre  
       

       
    • Por A.Mokk
      Ola pessoal, estou tentando compilar o TFS 1.5 Downgrade para 8.60 atraves do MSVC 2022, ao tentar compilar da o seguinte erro:
       
       
      Fiz o download do MSVC, GitDash, TFS-SDK-3.2, e de varios boosts que tentei, ao fazer o seguinte procedimento no GitDash:
       
      Ao chegar em ./bootstrap-vcpkg.bat o GitDash nao consegue realizar o procedimento corretamente, alguem poderia me ajudar ?

      Tentei de diversas formas mas o mesmo erro sempre persiste, atualmente meu servidor utiliza TFS 0.4, consigo compilar sem nenhum problema no MSVC 2010, porem, as limitações do TFS 0.4 estão me fazendo precisar atualizar, se alguem souber como corrigir esses erros eu agradeço !

      Tutoriais utilizados :
      Compiling on Windows (vcpkg) · otland/forgottenserver Wiki · GitHub
      Compiling on Windows · otland/forgottenserver Wiki · GitHub
      Compilando TFS 1.3 com vídeo-aula - Tutoriais Infraestrutura & Proteção - Tibia King - Tudo sobre Tibia, OTServ e Bots!
      Compilar TFS 1.3 Vcpkg - Tutoriais Infraestrutura & Proteção - Tibia King - Tudo sobre Tibia, OTServ e Bots!
       
      O que acontece no Powershell:
       
    • Por thunmin
      .Qual servidor ou website você utiliza como base? 
      Canary 2.3.6
      Qual o motivo deste tópico? 
      Queria fazer com que os players não pudessem mexer no aleta sio, pois, agora os mesmos estão conseguindo mexer nos itens
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
    • Por thunmin
      .Qual servidor ou website você utiliza como base? 
      canary para o cliente 13.16
      Qual o motivo deste tópico? 
      Não consigo encontrar onde ajusta
      to com o problema no 13.16  o exausted, por exemplo os kinas era pra combar exori, erori gran e exori min, porém não ta indo ta dando exausted o char ta soltando magia ou runa e não consegue usar as potions
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
    • Por Andersontatuador
      Olá galera da TK, me chamo Anderson estou procurando alguém profissional em otservs e site.
      Já tenho um servidor o site e o cliente preciso só de uma pessoal competente, que esteja empenhado a trabalhar,
      não quero nada de graça, pois nessa onda fui mais roubado do quer eu pagar um profissional.
      caso alguém se interesse entrar em contato comigo através do whatsapp
      82 9 9304-9462
       
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo