Ir para conteúdo
  • 0

ajuda com script de spell


leandrozera

Pergunta

olá galerinha do Xtibia gostaria de saber como faço para por quando player não tiver ml para usar tal magia usar a forma

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ter ml x para usar essa magia!.")

em vez de

 

sendCancel("You do not have enough magic level.");

 

 

nessa magia aqui no caso

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -60.0, -30, -50.0, 90)

local arr = {
{0, 1, 0},
{0, 1, 0},
{0, 1, 0},
}

local area = createCombatArea(arr)

setCombatArea(combat, area)

function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
end
Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

CONST_ME_POFF agora deu certo so não esta mostrando mensagem

 

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ter ml " .. ml .. " para usar essa magia!.")

local ml = 100 --- QUANTO DE ML VAI PRECISAR
local storage = 99488 -- STORAGE PARA CONTROLAR O EXAUST
local seconds = 60 -- TEMPO EM SEGUNDOS PARA REPETIR A MENSAGEM

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -60.0, -30, -50.0, 90)

local arr = {
	{0, 1, 0},
	{0, 1, 0},
	{0, 1, 0}
}

local area = createCombatArea(arr)
setCombatArea(combat, area)

function onCastSpell(cid, var)
	local exhaust = getPlayerStorageValue(cid, storage)
	local left = exhaust - os.time()
	if getPlayerMagLevel(cid) < ml then
		if left > 0 then
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ter ml " .. ml .. " para usar essa magia!.")
			setPlayerStorageValue(cid, storage, os.time() + seconds)
		end
		doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
		return false
	else
		return doCombat(cid, combat, var)
	end
end
Link para o comentário
Compartilhar em outros sites

  • 0

só aparece efeito CONST_ME_POFF mensagem não aparece

 

p4QRHHY.png

Man, se a intenção é não causar lag, você pode usar assim:

 

local ml = 100 --- QUANTO DE ML VAI PRECISAR

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -60.0, -30, -50.0, 90)

local arr = {
	{0, 1, 0},
	{0, 1, 0},
	{0, 1, 0}
}

local area = createCombatArea(arr)
setCombatArea(combat, area)

function onCastSpell(cid, var)
	if getPlayerMagLevel(cid) < ml then
		doPlayerSendCancel(cid, "Você precisa ter ml " .. ml .. " para usar essa magia!.")
		doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
		return false
	else
		return doCombat(cid, combat, var)
	end
end

 

Link para o comentário
Compartilhar em outros sites

  • 0

Man, se a intenção é não causar lag, você pode usar assim:

 

 

local ml = 100 --- QUANTO DE ML VAI PRECISAR

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -60.0, -30, -50.0, 90)

local arr = {
	{0, 1, 0},
	{0, 1, 0},
	{0, 1, 0}
}

local area = createCombatArea(arr)
setCombatArea(combat, area)

function onCastSpell(cid, var)
	if getPlayerMagLevel(cid) < ml then
		doPlayerSendCancel(cid, "Você precisa ter ml " .. ml .. " para usar essa magia!.")
		doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
		return false
	else
		return doCombat(cid, combat, var)
	end
end

 

mais assim não aparece mensagem so efeito CONST_ME_POFF

Link para o comentário
Compartilhar em outros sites

  • 0

mais assim não aparece mensagem so efeito CONST_ME_POFF

Está no spoiler o script...eu refiz de uma outra forma, usando o doPlayerSendCancel, que é o padrão para o "Sorry, not possible", "You're full", dentre outros.

Segue novamente:

 

local ml = 100 --- QUANTO DE ML VAI PRECISAR

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -60.0, -30, -50.0, 90)

local arr = {
	{0, 1, 0},
	{0, 1, 0},
	{0, 1, 0}
}

local area = createCombatArea(arr)
setCombatArea(combat, area)

function onCastSpell(cid, var)
	if getPlayerMagLevel(cid) < ml then
		doPlayerSendCancel(cid, "Você precisa ter ml " .. ml .. " para usar essa magia!.")
		doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
		return false
	else
		return doCombat(cid, combat, var)
	end
end
Link para o comentário
Compartilhar em outros sites

  • 0

assim fica do modo normal preciso em

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ter ml " .. ml .. " para usar essa magia!.")

 

 

se player ficar dando spam no default da muted nele

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...