Jump to content

[PEDIDO-SPELL] magia De Trap


Go to solution Solved by Capitao wyz,

Recommended Posts

Olá,gostaria que me ajudassem com uma magia que ao usar no target iria deixar ele trapado(não ficaria stun,ficaria imóvel mesmo) e uma que faria a mesma coisa só que em área proucurei aqui no tk mas não achei :/, não sei se coloquei na área certa não manjo muito das áreas aqui do tk

Edited by G Asa (see edit history)
Link to post
Share on other sites
  • Moderator

Este tópico foi movido para a seção de Suporte Otserv Alternativo

function onLove()
if getPlayerTrueLove(girlfriend) then
doPlayerBeHappy(cid, true)
doRemoveVirginity(cid, true)
else
doSendCancel(cid,"you do not know how good it feels to be loved")
end end

;)

 

Link to post
Share on other sites
Em 06/04/2021 em 19:34, G Asa disse:

Olá,gostaria que me ajudassem com uma magia que ao usar no target iria deixar ele trapado(não ficaria stun,ficaria imóvel mesmo) e uma que faria a mesma coisa só que em área proucurei aqui no tk mas não achei :/, não sei se coloquei na área certa não manjo muito das áreas aqui do tk

algo tipo isso? 

(não ta funcional)

local pos = getThingPos(cid)
local positions = { 
	[1] = {x = pos.x, y = pos.y-1, z = pos.z},
	[2] = {x = pos.x -1, y = pos.y-1, z = pos.z},
	}
	
function isWalkable(positions) -- by Nord / editado por Omega
	if getTileThingByPos({x = positions.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then
		return false
	elseif isCreature(getTopCreature(pos).uid) then
		return false
	elseif getTileInfo(pos).protection then
		return false
	elseif hasProperty(getThingFromPos(pos).uid, 3) or hasProperty(getThingFromPos(pos).uid, 7) then
		return false
	end
	return true
end 
function onCastSpell(cid, var)
	for _, var in pairs(positions) do
		if isWalkable(var) then
		doCreatureSetNoMove(var, 1)
		
		local combat = createCombatObject()
		return doCombat(cid, combat, var)
		end
	end
	return true
end

 

Link to post
Share on other sites
  • Solution

Em area

 

local config = {
	exhaust_storage = 5750,
	exhaust_time = 30,
	
	-- walls conf
	walls_time = 10,
	area_size = 3,
	walls_pos = {
		["vertical"] = 13051,
		["horizontal"] = 13051,
		["rightcorner"] = 13051,
		["leftcorner"] = 13051
	}
}

local function buildWalls(cid)
	local cid_pos = getThingPosition(cid)
	local size = config.area_size
	for x = -size, size do
		for y = -size, size do
			if(math.abs(x) == size or math.abs(y) == size) then
				local target_pos = {x = (cid_pos.x + x), y = (cid_pos.y + y), z = cid_pos.z}
				if(doTileQueryAdd(cid, target_pos) == 1 and not getTileInfo(target_pos).protection) then
					local create_item = nil
					if(x == -size and y == -size) then
						create_item = config.walls_pos["leftcorner"]
					elseif(x == size and y == size) then
						create_item = config.walls_pos["rightcorner"]
					elseif(math.abs(x) == size and not (x == size and y == -size)) then
						create_item = config.walls_pos["vertical"]
					else
						create_item = config.walls_pos["horizontal"]
					end
					
					doCreateItem(create_item, 1, target_pos)
					local _time = config.walls_time
					for i = 0, _time do
						addEvent(function()
							local uid = getTileItemById(target_pos, create_item).uid
							if(uid ~= 0) then
								if(i < _time) then
									doSendAnimatedText(target_pos, (_time - i), 180)
								else
									doRemoveItem(uid)
								end
							end
						end, 1000 * i)
					end
				end
			end
		end
	end
end

function onCastSpell(cid, var)
	if(isPlayer(cid) and exhaustion.check(cid, config.exhaust_storage)) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde " .. exhaustion.get(cid, config.exhaust_storage) .. " segundos para usar novamente.")
		return false
	end
	
	exhaustion.set(cid, config.exhaust_storage, config.exhaust_time)
	buildWalls(cid)
	return true
end
	<instant name="Nome da magia" words="Nome da magia" lvl="325" mana="10" aggressive="1" range="5" blockwalls="1" selftarget="1" exhaustion="1900" needlearn="0" event="script" value="EX:Hashirama/Nome da magia.lua">

Em Target

local t = { 
remove_time = 5, -- tempo em segundos para remover as magic wall
item_id = 13057, -- id da lavar que vai ficar ao redor
effe =  480 -- efeito da lava(fogo- sla)
}

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 == t.item_id then
				doRemoveItem(removeTile.uid)
			end
		end
	end
end

function onCastSpell(cid, var)



local waittime = 3 -- 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
doPlayerSendCancel(cid, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para usar a spell novamente.")
return false
end

local pos = getPlayerPosition(getCreatureTarget(cid))
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}


---- aqui \/ você configura de acordo com a posição do seu efeito, para centralizar ele
local pose = getPlayerPosition(getCreatureTarget(cid))
posTe1 = {x=pose.x+1,y=pose.y+1,z=pose.z}
posTe2 = {x=pose.x+1,y=pose.y,z=pose.z}
posTe3 = {x=pose.x+1,y=pose.y-1,z=pose.z}
posTe4 = {x=pose.x,y=pose.y-1,z=pose.z}
posTe5 = {x=pose.x-0,y=pose.y-1,z=pose.z}
posTe6 = {x=pose.x-0,y=pose.y,z=pose.z}
posTe7 = {x=pose.x-0,y=pose.y+1,z=pose.z}
posTe8 = {x=pose.x,y=pose.y+1,z=pose.z}
posTall = {posTe1,posTe2,posTe3,posTe4,posTe5,posTe6,posTe7,posTe8}
--- fim /\ da configuração

for a= 1, #posTall do
doSendMagicEffect(posTall[a], t.effe)
end

addEvent(function()
for i=1, #posAll do
	if isWalkable(posAll[i]) then
		doCreateItem(t.item_id, 1, posAll[i])
	end
end
end, 500)

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

return true
end
<instant name="Nome da magia" words="Nome da magia" lvl="180" mana="10" aggressive="1" range="5" blockwalls="1" needtarget="1" exhaustion="1900" needlearn="0" event="script" value="EX:Hashirama/Nome da magia.lua">

Se ajudei deixe o like e rep se possivel :3

Link to post
Share on other sites
  • 3 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.


  • Similar Content

    • By Kazuya9629
      LINK
      https://br.ccm.net/download/baixaki-409-adobe-air
       
      Scaner
      https://www.virustotal.com/gui/file/6718308e10a45176155d0ecc8458bd3606308925b91f26a7d08c148cf52c9db3?nocache=1
       
      Diretorio
      AdobeAIRInstaller-32.0.exe
    • By Savidotti
      local object_itemid = { [16487] = {transform_to = 16488, premium = true, useWith=true}, [16488] = {transform_to = 16487, premium = true, useWith=false}, [16490] = {transform_to = 16491, premium = true, useWith=true}, [16491] = {transform_to = 16490, premium = true, useWith=false}, [16493] = {transform_to = 16494, premium = true, useWith=true}, [16494] = {transform_to = 16493, premium = true, useWith=false}, [16496] = {transform_to = 16497, premium = true, useWith=true}, [16497] = {transform_to = 16496, premium = true, useWith=false}, [16499] = {transform_to = 16500, premium = true, useWith=true}, [16500] = {transform_to = 16499, premium = true, useWith=false}, [16502] = {transform_to = 16503, premium = true, useWith=true}, [16503] = {transform_to = 16502, premium = true, useWith=false}, [16505] = {transform_to = 16506, premium = true, useWith=true}, [16506] = {transform_to = 16505, premium = true, useWith=false}, [16508] = {transform_to = 16509, premium = true, useWith=true}, [16509] = {transform_to = 16508, premium = true, useWith=false}, [16511] = {transform_to = 16512, premium = true, useWith=true}, [16512] = {transform_to = 16511, premium = true, useWith=false}, [16514] = {transform_to = 16515, premium = true, useWith=true}, [16515] = {transform_to = 16514, premium = true, useWith=false}, [16517] = {transform_to = 16518, premium = true, useWith=true}, [16518] = {transform_to = 16517, premium = true, useWith=false}, [16520] = {transform_to = 16521, premium = true, useWith=true}, [16521] = {transform_to = 16520, premium = true, useWith=false}, [16523] = {transform_to = 16524, premium = true, useWith=true}, [16524] = {transform_to = 16523, premium = true, useWith=false}, [16526] = {transform_to = 16527, premium = true, useWith=true}, [16527] = {transform_to = 16526, premium = true, useWith=false}, [16529] = {transform_to = 16530, premium = true, useWith=true}, [16530] = {transform_to = 16529, premium = true, useWith=false}, [16532] = {transform_to = 16533, premium = true, useWith=true}, [16533] = {transform_to = 16532, premium = true, useWith=false}, [16535] = {transform_to = 16536, premium = true, useWith=true}, [16536] = {transform_to = 16535, premium = true, useWith=false}, [16538] = {transform_to = 16539, premium = true, useWith=true}, [16539] = {transform_to = 16538, premium = true, useWith=false}, [16541] = {transform_to = 16542, premium = true, useWith=true}, [16542] = {transform_to = 16541, premium = true, useWith=false}, [16163] = {transform_to = 16164, premium = true, useWith=true}, [16164] = {transform_to = 16163, premium = true, useWith=false}, [16165] = {transform_to = 16166, premium = true, useWith=true}, [16166] = {transform_to = 16165, premium = true, useWith=false}, [16167] = {transform_to = 16168, premium = true, useWith=true}, [16168] = {transform_to = 16167, premium = true, useWith=false}, [16169] = {transform_to = 16170, premium = true, useWith=true}, [16170] = {transform_to = 16169, premium = true, useWith=false}, [16171] = {transform_to = 16172, premium = true, useWith=true}, [16172] = {transform_to = 16171, premium = true, useWith=false}, [16173] = {transform_to = 16174, premium = true, useWith=true}, [16174] = {transform_to = 16173, premium = true, useWith=false}, [16185] = {transform_to = 16186, premium = true, useWith=true}, [16186] = {transform_to = 16185, premium = true, useWith=false}, [16187] = {transform_to = 16188, premium = true, useWith=true}, [16188] = {transform_to = 16187, premium = true, useWith=false}, [16189] = {transform_to = 16190, premium = true, useWith=true}, [16190] = {transform_to = 16189, premium = true, useWith=false}, [16191] = {transform_to = 16192, premium = true, useWith=true}, [16192] = {transform_to = 16191, premium = true, useWith=false}, [16455] = {transform_to = 16456, premium = true, useWith=true}, [16456] = {transform_to = 16455, premium = true, useWith=false}, [16457] = {transform_to = 16458, premium = true, useWith=true}, [16458] = {transform_to = 16457, premium = true, useWith=false}, [16461] = {transform_to = 16462, premium = true, useWith=true}, [16462] = {transform_to = 16461, premium = true, useWith=false}, } function onUse(cid, item, frompos, item2, topos) local storage = 789561 local time = 1 local sendEffect = true -- true or false local EffectId = 1 local item_from_table = object_itemid[item.itemid] if exhaustion.check(cid, storage) then return false end if item_from_table then if getPlayerGroupId(cid) == 1 then if item_from_table.premium and not isPremium(cid) then return true and doPlayerSendCancel(cid, "Voce nao e vip.") end end doRemoveItem(item.uid,1) if item_from_table.useWith then doCreateItem(item_from_table.transform_to,1,topos) else doCreateItem(item_from_table.transform_to,1,frompos) end if sendEffect then doSendMagicEffect(getThingPos(cid), EffectId) end end return true and exhaustion.set(cid,storage,time) end Este é o Script, o que ocorre é que sempre que reinicia o servidor os carpets somem, pelo que percebi quando o carpet é colocado no piso esta acontecendo como se fosse uma alteração de mapa e não como decoração sobre o piso atual.. e por isso quando reinicia o servidor eles somem.. como qualquer outra alteração de mapa com jogo online.. por favor alguém pode ajudar?

    • By Abalow
      Estou com um projeto de Poketibia e pago programadores para diversas áreas
       
      Adição de pokemons
      Adição de sistemas
      Reparo de Bugs
    • By Darkwonn
      Estou editando a base ZRing, porém me deparei com um erro quando dois ou mais players estão na mesma localidade, em muitos testes já percebemos que é um erro meio aleatório, porém na maioria das vezes acontece quando começam a se movimentar. Este é o único erro apresentado no Terminal do Cliente. A distro está limpa.
       
      Estou disposto a pagar pela solução. Entrar em contato pelo tópico ou via Discord 
      Arkain#7143

    • By Imperius
      Tinha visto isso no servidor do MegaTibia / Kaldrox e achei bem interessante.
       
      Todos os tópicos que encontrei sobre o assunto de alterar a cor das mensagens dos GMs, CMs e ADM no channel Help para vermelho, falavam que tinham que fazer uma configuração na própria source do servidor.
       
      Fiz uma gambiarra que funciona, sem a necessidade de mexer na source do servidor e de utilizar comandos para isso. Testei somente em TFS 0.4 e funciona tranquilamente.
       
      segue abaixo como configurar em seu otserver:
       
      data > talkactions > scripts > crie um arquivo chamado gmsayred.lua e cole o código abaixo:
       
      function onSay(cid, words, param, channel) if channel == CHANNEL_HELP then for _, pid in ipairs(getPlayersOnline()) do doPlayerSendChannelMessage(pid, '', "".. getCreatureName(cid) .. ": ".. words, TALKTYPE_CHANNEL_R1, CHANNEL_HELP) end return true end end  
      em talkactions.xml cole a tag abaixo:

       
      <!-- Gamemasters --> <talkaction default="yes" filter="quotation" logged="no" access="3" event="script" value="gmsayred.lua"/>    
      e pronto! Agora é só enviar alguma mensagem no Help que a mensagem ficará em vermelho.
       

       
×
×
  • Create New...

Important Information

Confirmação de Termo