Ir para conteúdo
  • Cadastre-se

(Resolvido)Spell - Mina Terrestre


Ir para solução Resolvido por xWhiteWolf,

Posts Recomendados

Bom dia/tarde/noite a todos do TK.

 

Eu dei 1 olhada no forum, nao somente aqui no TK, mas em outros tambem e nao achei oque eu queria.. entao gostaria de ver se alguem pode me ajudaar =D

 

Seria assim a spell :

 

O player usa a spell, e 1 'mina' aparece no chao, id '5888';

A area da mina seria com a mesma area do Exori normal, 

O efeito seria o '133',

A mina ficará la, por no maximo 20 segundos, ou até algo passar por cima (monstro ou player).

A spell nao tem cooldown, mas tem 1 limite de ate 2 minas.

O dano dela, seria relacionado ao Distance Skill.

 

Acredito que seja isso, se alguem puder me ajuudaar ficaria muiito grato!

Rep++

 

Kennzey xD

 

 

@xWhiteWolf @Vodkart @Wakon

Link para o post
Compartilhar em outros sites
  • Solução

lib:

-- 4º
function setItemAid(uid, value)
return doItemSetAttribute(uid, 'aid', value)
end
-- 5º
function removeBomba(pos, id)
local item = getTileItemById(pos, id)
    if item.uid > 0 then
        doRemoveItem(item.uid)
    end
return true
end

movements:

<movevent type="StepIn" actionid="13245" event="script" value="ativbomb.lua"/>
local config = {
effect1 = 4, -- efeito ao pisar
effect2 = 5, -- efeito ao explodir
msg = "Você foi acertado pela bomba.", -- msg que manda pra quem for acertado
mindmg = 100, -- dmg minimo que tira (nao é necessariamente o dano que vai sair do cara pois precisa desconsiderar as defesas dele antes)
maxdmg = 300, -- dmg maximo que tira (nao é o dano que vai sair do cara)
self = true -- true/false pra ativar/desativar dano no cara que colocou a bomba caso ele mesmo passe na bomba.
}
local arr = {
{0, 1, 0},
{1, 3, 1}, -- area que vai acertar ao explodir a bomba
{0, 1, 0},
}
local area = createCombatArea(arr)

function onStepIn(cid, item, position)
    local player = getPlayerByNameWildcard(getItemAttribute(item.uid, 'ref'))
    doSendMagicEffect(position, config.effect1)
    if isCreature(player) then
        doAreaCombatHealth(player, COMBAT_FIREDAMAGE, position, area, -config.mindmg, -config.maxdmg, config.effect2)
    end
    if ((cid == player and config.self) or (not isPlayer(cid)) or (not isCreature(player))) then
        doCreatureAddHealth(cid, -1 * math.random(config.mindmg, config.maxdmg))
        doSendMagicEffect(position, config.effect2)
    end
    if isPlayer(cid) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msg)
    end
    doRemoveItem(item.uid)
return true
end


 

spell:

<instant name="testeTK" words="bomb1" lvl="16" mana="500" prem="1" aggressive="1" exhaustion="1000" needlearn="0" event="script" value="especiais/bombarob.lua">
    </instant>

 

local config = {
itemid = 2180, -- id da bomba 
duration = 10, -- duration antes de ser removida
actionid = 13245, -- actionid que sera setado na bomba (pro movements)
effect = 3, -- efeito que sai ao colocar a bomba
msg = "Bomba ativada!" -- mensagem que sai ao ser colocado a bomba
}
function onCastSpell(cid, var)
    local position = getCreaturePosition(cid)
    local item = doCreateItem(config.itemid, 1, position)
    setItemAid(item, config.actionid)
    doItemSetAttribute(item, 'ref', getCreatureName(cid))
    doCreatureSay(cid, config.msg, 20)
    doSendMagicEffect(position, config.effect)
    addEvent(removeBomba, config.duration * 1000, position, config.itemid)    
return true
end

 

Editado por xWhiteWolf (veja o histórico de edições)

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

@xWhiteWolf

Pra um cara chamado roberto, 

 

É , não quitei do mundo open tibia kkkkkkk

 

Otima magia para personagem Tenten em servidores narutibia.

 

 

Link para o post
Compartilhar em outros sites
3 horas atrás, diarmaint disse:

Disponibiliza aí.

pronto

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

O Lib. aonde coloco, na lib que ta dentro da pasta data ou na lib que fica dentro da pasta spells ?

Precisa ser uma nova ou adicionar no final de algum arquivo já criado ?

Tem como pegar essa base e fazer uma trap? é o mesmo esquema, coloco no chão e quando alguém pisa invés de levar dano, aparecem 8 itens ao redor do player por x tempo.

Link para o post
Compartilhar em outros sites

em data/lib: pode tanto criar um novo arquivo com nome qualquer quanto copiar o conteudo dali pra algum arquivo da lib

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites
Em 16/02/2017 ás 23:58, xWhiteWolf disse:

lib:


-- 4º
function setItemAid(uid, value)
return doItemSetAttribute(uid, 'aid', value)
end
-- 5º
function removeBomba(pos, id)
local item = getTileItemById(pos, id)
    if item.uid > 0 then
        doRemoveItem(item.uid)
    end
return true
end

movements:


<movevent type="StepIn" actionid="13245" event="script" value="ativbomb.lua"/>

local config = {
effect1 = 4, -- efeito ao pisar
effect2 = 5, -- efeito ao explodir
msg = "Você foi acertado pela bomba.", -- msg que manda pra quem for acertado
mindmg = 100, -- dmg minimo que tira (nao é necessariamente o dano que vai sair do cara pois precisa desconsiderar as defesas dele antes)
maxdmg = 300, -- dmg maximo que tira (nao é o dano que vai sair do cara)
self = true -- true/false pra ativar/desativar dano no cara que colocou a bomba caso ele mesmo passe na bomba.
}
local arr = {
{0, 1, 0},
{1, 3, 1}, -- area que vai acertar ao explodir a bomba
{0, 1, 0},
}
local area = createCombatArea(arr)

function onStepIn(cid, item, position)
    local player = getPlayerByNameWildcard(getItemAttribute(item.uid, 'ref'))
    doSendMagicEffect(position, config.effect1)
    if isCreature(player) then
        doAreaCombatHealth(player, COMBAT_FIREDAMAGE, position, area, -config.mindmg, -config.maxdmg, config.effect2)
    end
    if ((cid == player and config.self) or (not isPlayer(cid)) or (not isCreature(player))) then
        doCreatureAddHealth(cid, -1 * math.random(config.mindmg, config.maxdmg))
        doSendMagicEffect(position, config.effect2)
    end
    if isPlayer(cid) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msg)
    end
    doRemoveItem(item.uid)
return true
end


 

spell:


<instant name="testeTK" words="bomb1" lvl="16" mana="500" prem="1" aggressive="1" exhaustion="1000" needlearn="0" event="script" value="especiais/bombarob.lua">
    </instant>

 


local config = {
itemid = 2180, -- id da bomba 
duration = 10, -- duration antes de ser removida
actionid = 13245, -- actionid que sera setado na bomba (pro movements)
effect = 3, -- efeito que sai ao colocar a bomba
msg = "Bomba ativada!" -- mensagem que sai ao ser colocado a bomba
}
function onCastSpell(cid, var)
    local position = getCreaturePosition(cid)
    local item = doCreateItem(config.itemid, 1, position)
    setItemAid(item, config.actionid)
    doItemSetAttribute(item, 'ref', getCreatureName(cid))
    doCreatureSay(cid, config.msg, 20)
    doSendMagicEffect(position, config.effect)
    addEvent(removeBomba, config.duration * 1000, position, config.itemid)    
return true
end

 

Da pra por o dano + um condition em um movements?

 

 

 

 

 


local condition = createConditionObject(CONDITION_PARALYZE)
setConditionParam(condition, CONDITION_PARAM_TICKS, 20000)
setConditionParam(condition, CONDITION_PARAM_SPEED, -400)
setConditionFormula(condition, -0.9, 0, -0.9, 0)

[/spoiler]
	
 
Editado por Gustavo Ntos (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
3 horas atrás, Gustavo Ntos disse:

Da pra por o dano + um condition em um movements?

 

  Ocultar conteúdo

 

 

 


local condition = createConditionObject(CONDITION_PARALYZE)
setConditionParam(condition, CONDITION_PARAM_TICKS, 20000)
setConditionParam(condition, CONDITION_PARAM_SPEED, -400)
setConditionFormula(condition, -0.9, 0, -0.9, 0)

[/spoiler]
	
 

da sim

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo