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
- Fórum
- OTServ
- Suporte
- Resolvidos
- [Resolvido] [Dúvida] Diferença entre spells de player e spell de monstro
[Resolvido] [Dúvida] Diferença entre spells de player e spell de monstro
Por LeoTK, 30 de jul. de 2017 em Resolvidos
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 ^^
info
Grupo: Herói
Registrado: 07/03/16
Posts: 1.4k
Reputação: +385
Gênero: Masculino

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.
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
info
Grupo: Herói
Registrado: 07/03/16
Posts: 1.4k
Reputação: +385
Gênero: Masculino

A questão neste tópico de suporte foi respondida e/ou o autor do tópico resolveu o problema. Este tópico está fechado e foi movido para Suporte - Resolvidos. Se você tiver outras dúvidas, crie um novo tópico.




info
Grupo: Marquês
Registrado: 05/12/11
Posts: 1.2k
Reputação: +173
Gênero: Masculino
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
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
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
--<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