Ir para conteúdo
  • 0

[Resolvido] [Dúvida] Diferença entre spells de player e spell de monstro


LeoTK

Pergunta

Fala guys como o próprio título já diz gostaria de saber qual a diferença entre as spells dos monstros e dos players o pouco que entendi é que não tem algumas conditions porém o que eu precisaria para adaptar uma spell de player como "exori san" para um monstro ou uma magia de buff como utito tempo san ou utito tempo adaptar para um monstro eu gostaria de algumas comparações se possivel pretendo criar alguns poderes para monstros do tipo buff etc... e gostaria de saber a diferença entre elas porque ao algum monstro usar uma spell de buff de um player fica floodando na distro sobre a condição de dar o buff ao player mas como não é um player e sim um monstro fica dando erro falando que não é um player usando então gostaria de saber como fazer poderes para um monstro vou deixar algumas spells de exemplo para entender como eu adaptaria elas para monstros

 

Buff

Spoiler

local tempo = 60
local effect = {221}
     
local points = 30
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000)
setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, points)
setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, points)
setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, points)
setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, points)
setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, points)
setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, points)
setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, points)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setCombatCondition(combat, condition)

            
local function Magica(tempo2,tempo3,cid)
if isCreature(cid) then
for i=1, #effect do
local position = {x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z}
doSendMagicEffect(position, effect)
end
end
end
                  
function onCastSpell(cid, var)
if exhaustion.check(cid, 102053) == FALSE then
doCombat(cid, combat, var)
tempo2 = 0
while (tempo2 ~= (tempo*1000)) do
addEvent(Magica, tempo2, tempo2, tempo*1000, cid)
tempo2 = tempo2 + 300
end
local position = {x=getCreaturePosition(cid).x, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z}
exhaustion.set(cid, 102053, 60.1)
doCreatureSay(cid, "Susano", TALKTYPE_MONSTER)
doSendMagicEffect(position, 254)
else
doPlayerSendCancel(cid, "Desculpa,Voce ja esta transformado.")
end
end

 

Ataque

Spoiler

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -47.3, 1, -50.3, 1)
 
local function onCastSpell1(parameters)
if(not isCreature(parameters.cid)) then
return TRUE
end
if getCreatureTarget(parameters.cid) < 1 then
return TRUE
end
if isCreature(parameters.cid) then
doCombat(parameters.cid, combat, parameters.var)
end
return TRUE
end
 
function onCastSpell(cid, var)
local parameters = {cid = cid, var = var}
local enemy = getCreaturePosition(getCreatureTarget(cid))

local function EfectFollow()
if(not isCreature(parameters.cid)) then
return TRUE
end
if getCreatureTarget(cid) < 1 then
return TRUE
end
if isCreature(cid) then
local pos = {x=enemy.x+1, y=enemy.y, z=enemy.z}
doSendMagicEffect(pos, 79)
end
return TRUE
end

doSendMagicEffect(getCreaturePosition(cid), 110)
addEvent(onCastSpell1, 200, parameters)
addEvent(EfectFollow, 200)
addEvent(onCastSpell1, 600, parameters)
addEvent(EfectFollow, 600)
addEvent(onCastSpell1, 1000, parameters)
addEvent(EfectFollow, 1000)
addEvent(onCastSpell1, 1400, parameters)
addEvent(EfectFollow, 1400)
addEvent(onCastSpell1, 1800, parameters)
addEvent(EfectFollow, 1800)
return TRUE
end

 

trap

Spoiler

--<Script by Jhon992>--

local stonesId = {4025} -- ids dos diferente tipos de stones.
local timeRemove = 15 -- tempo para dumir as pedras em segundos.

function createObject(cid, position, stonesPosition)
if (isPlayer(cid)) then
        if getPlayerLookDir(cid) == 0 then
                positions = {x=position.x, y=position.y-1, z=position.z}
        elseif getPlayerLookDir(cid) == 1 then
                positions = {x=position.x+1, y=position.y, z=position.z}
        elseif getPlayerLookDir(cid) == 2 then
                positions = {x=position.x, y=position.y+1, z=position.z}
        elseif getPlayerLookDir(cid) == 3 then
                positions = {x=position.x-1, y=position.y, z=position.z}
        end
        
        if isWalkable(positions) then
                createStone(stonesPosition, positions, stonesId[math.random(1,#stonesId)], cid)
                addEvent(createObject, 500, cid, positions, stonesPosition)
        else
                addEvent(removeStones, timeRemove*1000, stonesPosition)
        end
end
end

function createStone(stonesPosition, positions, stone, cid)
        doCreateItem(stone, 1, positions)
        stonesPosition[(#stonesPosition)+1] = {x=positions.x, y=positions.y, z=positions.z, stackpos=1}
end

function removeStones(stonesPosition)
for i=1, #stonesPosition do
        for o=1, 2 do
                stonesPosition = {x=stonesPosition.x, y=stonesPosition.y, z=stonesPosition.z, stackpos=o}
                if isInArray(stonesId, getThingfromPos(stonesPosition).itemid) then
                        doRemoveItem(getThingfromPos(stonesPosition).uid)
                end
        end
end
end

function isWalkable(pos, creature, pz, proj) -- nord
        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 onCastSpell(cid, var)
        local stonesPosition = {}
        local position = getPlayerPosition(cid)
        createObject(cid, position, stonesPosition)
    return true
end

 

bom é isso ficarei no aguardo

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Eu não sei qual é a real diferença, mas sei que spells são tudo iguais; o que diferencia é quem fez a invocação da spell. normalmente players tem acesso a invocação das spells por excelência, já que foi feito com esse proposito, mas ultimamente monstros estão tendo esse privilégio.

 

Bem, eu não sei como fizeram para monstros poder usar as spells, mas acredito que tenham sido feito alguma mudança nas sources para que o monstro possa usar as tais spells.

Link para o comentário
Compartilhar em outros sites

  • 0

Cara estou até hoje procurando e nunca achei uma resposta, tenho um servidor de derivado, e sempre quis que os monstros usarem a mesma spells dos players, de 3 7 e 10 hits, porem eles não usam, simplesmente não ataca 

Link para o comentário
Compartilhar em outros sites

  • 0
59 minutos atrás, Kirsch disse:

Cara estou até hoje procurando e nunca achei uma resposta, tenho um servidor de derivado, e sempre quis que os monstros usarem a mesma spells dos players, de 3 7 e 10 hits, porem eles não usam, simplesmente não ataca 

bora esperar alguém experiente da área responder pra gente ^^

Link para o comentário
Compartilhar em outros sites

  • 0
3 horas atrás, Poccnn disse:

Eu não sei qual é a real diferença, mas sei que spells são tudo iguais; o que diferencia é quem fez a invocação da spell. normalmente players tem acesso a invocação das spells por excelência, já que foi feito com esse proposito, mas ultimamente monstros estão tendo esse privilégio.

 

Bem, eu não sei como fizeram para monstros poder usar as spells, mas acredito que tenham sido feito alguma mudança nas sources para que o monstro possa usar as tais spells.

ok, vlw 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...