Ir para conteúdo
  • 0

markindoot

Pergunta

Falae Galera do Xtibia, eu queria pedir uma coisa um tanto simples para vocês,

queria que essa spell abaixo tenha um attack fixo de 600~700 que almentasse conforme o level (Só conforme o level)




local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)

setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 50, 60, 80, 1200)


local area = createCombatArea(AREA_BEAM7, AREADIAGONAL_BEAM7)

setCombatArea(combat, area)


function onCastSpell(cid, var)

local ITEM_ID = 7901

local item = getPlayerSlotItem(cid, 1)

if item.uid <= 1 or item.itemid ~= ITEM_ID then

doPlayerSendTextMessage(cid, 27, "Você não possui o helmo.")

return false

end

return doCombat(cid, combat, var)

end


function onCastSpell(cid, var)


if isExhausted(cid, "!chamas") == FALSE then

return doCombat(cid, combat, var), setCooldown(cid, "!chamas", 3)

end


return FALSE, doPlayerSendCancel(cid, "You are exhausted.")

end





e tenho uma duvida sobre esse script...

queria saber se tem como faser só usar esta spell se tiver usando o outfit {258}

se o player nao estiver com o outfit, aparecer uma animated text: "Você não está na moto para usar este outfit!!"


esperando a resposta, espero que alguem atenda a minha duvida que é um pouco mais dificinha =D


Abraço!

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Fala cara se tiver funcionando essa spell ae,acredito eu que vá funcionar as modificaçoes que fiz,nao testei,teste e qualquer coisa avise.

Só achei que ficou errado a mensagem que voce pediu pra colocar,pois a spell nao dá outfit,e na mensagem fala "Voce nao está na moto para usar este outfit",seria "para usar esse poder" ou algo assim nao? Mas ai é só editar a mensagem ali no script.

Boa sorte.

 

local ataquemin, ataquemax = 600, 700

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
local area = createCombatArea(AREA_BEAM7, AREADIAGONAL_BEAM7)
setCombatArea(combat, area)
function onGetFormulaValues(cid, level, skill, attack, factor)
local levelTotal = level * 1.9
return -(levelTotal + ataquemin), -(levelTotal + ataquemax)
end
setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
function onCastSpell(cid, var)
local ITEM_ID = 7901
local item = getPlayerSlotItem(cid, 1)
if getCreatureOutfit(cid) == 258 then
if item.uid <= 1 or item.itemid ~= ITEM_ID then
doPlayerSendTextMessage(cid, 27, "Você não possui o helmo.")
return false
end
doCombat(cid, combat, var)
else
doPlayerSendTextMessage(cid, 27, "Você não está na moto para usar este outfit!")
return false
end
function onCastSpell(cid, var)
if isExhausted(cid, "!chamas") == FALSE then
return doCombat(cid, combat, var), setCooldown(cid, "!chamas", 3)
end
return FALSE, doPlayerSendCancel(cid, "You are exhausted.")
end
Link para o comentário
Compartilhar em outros sites

  • 0

Sim é exatamente o que fiz,o que falei pra voce que acho que voce que falou errado foi essa mensagem ae,nao tem sentido.

 

 

 

local ataquemin, ataquemax = 600, 700

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
local area = createCombatArea(AREA_BEAM7, AREADIAGONAL_BEAM7)
setCombatArea(combat, area)
function onGetFormulaValues(cid, level, skill, attack, factor)
local levelTotal = level * 1.9
return -(levelTotal + ataquemin), -(levelTotal + ataquemax)
end
setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
function onCastSpell(cid, var)
local ITEM_ID = 7901
local item = getPlayerSlotItem(cid, 1)
if getCreatureOutfit(cid) == 258 then
if item.uid <= 1 or item.itemid ~= ITEM_ID then
doPlayerSendTextMessage(cid, 27, "Você não possui o helmo.")
return false
end
doCombat(cid, combat, var)
else
doPlayerSendTextMessage(cid, 27, "Você não está na moto para usar este outfit!")
return false
end
end
function onCastSpell(cid, var)
if isExhausted(cid, "!chamas") == FALSE then
return doCombat(cid, combat, var), setCooldown(cid, "!chamas", 3)
end
return FALSE, doPlayerSendCancel(cid, "You are exhausted.")
end
Link para o comentário
Compartilhar em outros sites

  • 0

Vou tentar montar pra ti aqui.

Já edito

 

 

-edit-

Teste o script abaixo, se der algum erro no launcher ou caso não funcione, poste para resolvermos... pois não estou em casa então não testei.

 

 

local ataquemin, ataquemax = 600, 700
 
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
 
local area = createCombatArea(AREA_BEAM7, AREADIAGONAL_BEAM7)
setCombatArea(combat, area)
 
function onGetFormulaValues(cid, level, skill, attack, factor)
local levelTotal = level * 1.9
    return -(levelTotal + ataquemin), -(levelTotal + ataquemax)
end
 
setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
 
function onCastSpell(cid, var)
local ITEM_ID = 7901
local item = getPlayerSlotItem(cid, 1)
    if getCreatureOutfit(cid) ~= 258 then
        doPlayerSendCancel(cid, "Voce precisa estar na moto para usar esta magia!")
    elseif item.uid <= 1 or item.itemid ~= ITEM_ID then
        doPlayerSendCancel(cid, "Voce nao possui o helmo.")
    else
        doCombat(cid, combat, var)
    end
end
 
function onCastSpell(cid, var)
    if isExhausted(cid, "!chamas") == FALSE then
    return doCombat(cid, combat, var), setCooldown(cid, "!chamas", 3)
end
    return FALSE, doPlayerSendCancel(cid, "You are exhausted.")
end

 

Boa sorte.

Editado por Adriano Swatt
Link para o comentário
Compartilhar em outros sites

  • 0

O player tem que clicar em algum item para montar na moto? Ou essa outfit da moto é só uma outfit "normal"? Se for a primeira opção, suponho que bastaria setar uma storage no player ao montar na moto, e, nesse script da spell, verificasse essa storage.

Editado por zipter98
Link para o comentário
Compartilhar em outros sites

  • 0

ainda nada, o player usa a spell sem ter o outfit.

O player precisa estar usando o helmo na cabeça para usar a magia?

 

E como foi dito acima, o outfit da moto é com action ou escolhe como outfit normal?

 

Ele precisa apenas ter o item na backpack e estar com a outfit 258 para usar?

 

Posso tentar refazer aqui...

ja edito.

 

 

-edit-

Testa este abaixo:

local ataquemin, ataquemax = 600, 700
 
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
 
local area = createCombatArea(AREA_BEAM7, AREADIAGONAL_BEAM7)
setCombatArea(combat, area)
 
function onGetFormulaValues(cid, level, skill, attack, factor)
local levelTotal = level * 1.9
    return -(levelTotal + ataquemin), -(levelTotal + ataquemax)
end
 
setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
 
function onCastSpell(cid, var)
local ITEM_ID = 7901
    if getCreatureOutfit(cid).lookType ~= 258 and getPlayerSlotItem(cid, CONST_SLOT_HEAD).itemid ~= ITEM_ID then
        doPlayerSendCancel(cid, "Voce precisa estar na moto e com capacete para usar esta magia!")
    else
        doCombat(cid, combat, var)
    end
end
 
function onCastSpell(cid, var)
    if isExhausted(cid, "!chamas") == FALSE then
    return doCombat(cid, combat, var), setCooldown(cid, "!chamas", 3)
end
    return FALSE, doPlayerSendCancel(cid, "You are exhausted.")
end

Boa sorte.

Editado por Adriano Swatt
Link para o comentário
Compartilhar em outros sites

  • 0

O player tem que clicar em algum item para montar na moto? Ou essa outfit da moto é só uma outfit "normal"? Se for a primeira opção, suponho que bastaria setar uma storage no player ao montar na moto, e, nesse script da spell, verificasse essa storage.

issso mesmo, tinha esquecido, o player tem que dar use na moto para ter o outfit, ai se ele der use dnv o outfit sai...

tpw, para usar a spell, ele tem que tar montado na moto.

o script da moto é este!

 

 

local outfits = {

[0] = {lookType = 101},
[1] = {lookType = 258}
}
local speed = 500 --qnt velo o player vai ficar
function onUse(cid, item, fromPosition, itemEx, toPosition)
local out = outfits[getPlayerSex(cid)]
if not out then return true end
local speed_final = speed + getCreatureSpeed(cid)
if getCreatureOutfit(cid).lookType == out.lookType then
doRemoveCondition(cid, CONDITION_OUTFIT)
doChangeSpeed(cid, -getCreatureSpeed(cid))
doChangeSpeed(cid, getCreatureBaseSpeed(cid))
else
doSetCreatureOutfit(cid, outfits[getPlayerSex(cid)], -1)
doChangeSpeed(cid, -getCreatureSpeed(cid))
doChangeSpeed(cid, speed_final)
end
return true
end

e a tag é: <action itemid="7901" event="script" value="motoca.lua"/>
tpw assim: Deu use na moto (Montou) deu Use denovo (Desmontou) o script ta funfando, o negocio é só a spells, que tem que usar só se o player tiver montado na moto.
Link para o comentário
Compartilhar em outros sites

  • 0

Se o do Adriano não funcionar, tenta assim:

Moto:

local outfits = {
[0] = {lookType = 101},
[1] = {lookType = 258}
}
local speed = 500 --qnt velo o player vai ficar
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
local out = outfits[getPlayerSex(cid)]
if not out then return true end
 
local speed_final = speed + getCreatureSpeed(cid)
 
if getCreatureOutfit(cid).lookType == out.lookType then
   doRemoveCondition(cid, CONDITION_OUTFIT)
   setPlayerStorageValue(cid, 112001, -1)
   doChangeSpeed(cid, -getCreatureSpeed(cid))
   doChangeSpeed(cid, getCreatureBaseSpeed(cid))
else
   doSetCreatureOutfit(cid, outfits[getPlayerSex(cid)], -1)
   setPlayerStorageValue(cid, 112001, 1)
   doChangeSpeed(cid, -getCreatureSpeed(cid))
   doChangeSpeed(cid, speed_final)
end
return true
end
Spell:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 50, 60, 80, 1200)
 
local area = createCombatArea(AREA_BEAM7, AREADIAGONAL_BEAM7)
setCombatArea(combat, area)
 
function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
end
 
function onCastSpell(cid, var)
 
if getPlayerStorageValue(cid, 112001) < 1 then
return doPlayerSendCancel(cid, "Você não pode fazer isso.")
end

if isExhausted(cid, "!chamas") == FALSE then
return doCombat(cid, combat, var), setCooldown(cid, "!chamas", 3)
end
 
return FALSE, doPlayerSendCancel(cid, "You are exhausted.")
end

Ou

 

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 50, 60, 80, 1200)
 
local area = createCombatArea(AREA_BEAM7, AREADIAGONAL_BEAM7)
setCombatArea(combat, area)
 
function onCastSpell(cid, var)
 
if getPlayerStorageValue(cid, 112001) < 1 then
return doPlayerSendCancel(cid, "Você não pode fazer isso.")
end

if isExhausted(cid, "!chamas") == FALSE then
return doCombat(cid, combat, var), setCooldown(cid, "!chamas", 3)
end
 
return FALSE, doPlayerSendCancel(cid, "You are exhausted.")
end

edit: Adriano, não sei se é só impressão minha, mas acho que você só verificou se o player está usando a outfit 258 (no caso, a outfit versão male). Se for isso mesmo que eu percebi, tenta fazer como tá no script da moto. Uma tabela com as outfits, uma variável que verifica a outfit dependendo do sexo do player e, depois,

getCreatureOutfit(cid).lookType ~= variável
Editado por zipter98
Link para o comentário
Compartilhar em outros sites

  • 0

 

Se o do Adriano não funcionar, tenta assim:

Moto:

local outfits = {
[0] = {lookType = 101},
[1] = {lookType = 258}
}
local speed = 500 --qnt velo o player vai ficar
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
local out = outfits[getPlayerSex(cid)]
if not out then return true end
 
local speed_final = speed + getCreatureSpeed(cid)
 
if getCreatureOutfit(cid).lookType == out.lookType then
   doRemoveCondition(cid, CONDITION_OUTFIT)
   setPlayerStorageValue(cid, 112001, -1)
   doChangeSpeed(cid, -getCreatureSpeed(cid))
   doChangeSpeed(cid, getCreatureBaseSpeed(cid))
else
   doSetCreatureOutfit(cid, outfits[getPlayerSex(cid)], -1)
   setPlayerStorageValue(cid, 112001, 1)
   doChangeSpeed(cid, -getCreatureSpeed(cid))
   doChangeSpeed(cid, speed_final)
end
return true
end
Spell:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 50, 60, 80, 1200)
 
local area = createCombatArea(AREA_BEAM7, AREADIAGONAL_BEAM7)
setCombatArea(combat, area)
 
function onCastSpell(cid, var)
    local ITEM_ID = 7901
    local item = getPlayerSlotItem(cid, 1)
    if item.uid <= 1 or item.itemid ~= ITEM_ID then
        doPlayerSendTextMessage(cid, 27, "Você não possui o helmo.")
    return false
    end
    if getPlayerStorageValue(cid, 112001) < 1 then
        return doSendAnimatedText(getThingPos(cid), "Você não está na moto para usar esta spell!!", 215)
    end
    return doCombat(cid, combat, var)
end
 
function onCastSpell(cid, var)
 
if isExhausted(cid, "!chamas") == FALSE then
return doCombat(cid, combat, var), setCooldown(cid, "!chamas", 3)
end
 
return FALSE, doPlayerSendCancel(cid, "You are exhausted.")
end

edit: Adriano, não sei se é só impressão minha, mas acho que você só verificou se o player está usando a outfit 258 (no caso, a outfit versão male). Se for isso mesmo que eu percebi, tenta fazer como tá no script da moto. Uma tabela com as outfits, uma variável que verifica a outfit dependendo do sexo do player e, depois,

getCreatureOutfit(cid).lookType ~= variável

 

@zipter

nao funfou e o hit nen pega mais no bixo e nen em players

 

@ adriano

também nao foi ainda.

Link para o comentário
Compartilhar em outros sites

  • 0

Ah sim, verdade, são dois outfits, nem reparei porque o topico ele só colocou 1.

 

@markindoot

Me diz uma coisa, está testando com ambos outfits?

pois coloquei para verificar apenas o 258.

 

Estou um pouco ocupado agora, mas se quiser faço novamente mais tarde.

Link para o comentário
Compartilhar em outros sites

  • 0

Editei meu post acima. Não sei se do jeito que eu fiz vai funcionar (até porque, não sou bom com spells ._.), mas se mesmo assim quiser testar.

 

Editei meu post acima. Não sei se do jeito que eu fiz vai funcionar (até porque, não sou bom com spells ._.), mas se mesmo assim quiser testar.

ainda nada

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...