Ir para conteúdo
  • Cadastre-se

(Resolvido)Spell que acumula storage


Ir para solução Resolvido por Danyel Varejao,

Posts Recomendados

Olá TibiaKing.

 

Queria pedir pra vocês me ajudarem na criação de uma spell.

 

Explicando o titulo, é uma spell que irá adicionar XXXX storage por X segundos.

 

EXEMPLO: Eu uso exori frigo em um PLAYER, e esse player que receber o exori frigo ficará com a XXXX storage por 5 segundos, se EU usar o exori frigo novamente, ele irá reiniciar o temporizador e ele ficará com 2 "marcas" da storage, e assim sucessivamente até no máximo 5 "marcas".

 

 

Meu outro pedido e uma spell que irá remover essas storages instantaneamente.

EXEMPLO: O alvo está com 5 "marcas" de storage (relacionado ao exemplo anterior) ele irá causar 50 de dano para cada marca, ou seja 250 de dano total.

 

E uma spell complexa, eu sei, mas quem poder ajudar dou 5REP+ de agradecimento.

 

Esta é uma spell baseada SIM na "Guilhotina de Noxus" de Darius de League Of Legends

 

Editado por Joaovettor
Não havia percebido, mas quebrei uma regra, porém arrumei (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Solução

Não entendi muito bem oque voce quis, mas testa ai

 

Script do ataque.

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLICE)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)

local Configs = {
	Storage = 12202, -- Storage da marca
	Time = 5, -- Tempo em segundos de cada marca
}

local function RemoveMark(cid)
	if isPlayer(cid) then
		setPlayerStorageValue(cid, Configs.Storage, getPlayerStorageValue(cid, Configs.Storage) - 1)
	end
	return true
end

local function AddMark(cid)
	if isPlayer(cid) then
		if getPlayerStorageValue(cid, Configs.Storage) <= 5 then
			setPlayerStorageValue(cid, Configs.Storage, getPlayerStorageValue(cid, Configs.Storage) + 1)
			addEvent(RemoveMark, Configs.Time * 1000, cid)
		end
	end
	return true
end

function onCastSpell(cid, var)
	local target = getCreatureTarget(cid)
	if isPlayer(target) then
		AddMark(target)
	end
	return doCombat(cid, combat, var)
end

 

Script pra remover as marcas

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)

local Configs = {
	Storage = 12202, -- Storage da marca
	Damages_Per_Mark = 50, 
}

function onCastSpell(cid, var)
	local Damage = getPlayerStorageValue(cid, Configs.Storage) * Configs.Damages_Per_Mark
  	if getPlayerStorageValue(cid, Configs.Storage) > 0 then
		doCreatureAddHealth(cid, -Damage)
		setPlayerStorageValue(cid, Configs.Storage, 0)
   	end
	return doCombat(cid, combat, var)
end

 

Não testei, caso aconteça algo de errado me avise!

Editado por Danyel Varejao (veja o histórico de edições)
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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo