Postado Dezembro 16, 2018 6 anos @Tópico Editado Alguém poderia editar essas magias por favor? Eu vou deixar ao lado do nome de cada magia como elas devem ser usada. Caso o jogador morra ou deslogue, o buff sai e sua vida, mana, skills, voltam ao normal. Obrigado desde já, rep+ para quem ajudar. Vita Sio -> Usada em target, precisa colocar o nome da pessoa para funcionar. Ex: vita sio "Phineasz Spoiler local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 39) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local config = { tempo = 600, --- tempo que vai durar a spell percent = 20 -- quanto % vai aumentar } local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT, 100+config.percent) setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Vita Gran Sio -> Usada em target, precisa colocar o nome da pessoa para funcionar. Ex: vita gran sio "Phineasz Spoiler local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 39) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local config = { tempo = 600, --- tempo que vai durar a spell percent = 40 -- quanto % vai aumentar } local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT, 100+config.percent) setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Vita Gran Mas Sio -> Esta magia só pode ser usada se você estiver em uma party. Caso você tente usar essa magia sem estar em nenhuma party, é enviado uma mensagem assim: Você precisa estar em uma party para usar esse buff. Spoiler local combat = createCombatObject() local area = createCombatArea(AREA_CROSS5X5) setCombatArea(combat, area) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local config = { tempo = 600, --- tempo que vai durar a spell percent = 40 -- quanto % vai aumentar } local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT, 100+config.percent) setCombatCondition(combat, condition) local config = { baseMana = 120, pvpManaSpent = getConfigValue("addManaSpentInPvPZone") } function onCastSpell(cid, var) local pos, membersList = getCreaturePosition(cid), getPartyMembers(cid) if(membersList == nil or type(membersList) ~= 'table' or table.maxn(membersList) <= 1) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOPARTYMEMBERSINRANGE) doSendMagicEffect(pos, CONST_ME_POFF) return false end local affectedList = {} for _, pid in ipairs(membersList) do if(getDistanceBetween(getCreaturePosition(pid), pos) <= 36) then table.insert(affectedList, pid) end end local tmp = table.maxn(affectedList) if(tmp <= 1) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOPARTYMEMBERSINRANGE) doSendMagicEffect(pos, CONST_ME_POFF) return false end local mana = math.ceil((0.9 ^ (tmp - 1) * config.baseMana) * tmp) if(getCreatureMana(cid) < mana) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHMANA) doSendMagicEffect(pos, CONST_ME_POFF) return false end if(not doCombat(cid, combat, var)) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) doSendMagicEffect(pos, CONST_ME_POFF) return false end doCreatureAddMana(cid, -(mana - config.baseMana), false) if(not getPlayerFlagValue(cid, PlayerFlag_NotGainMana) and (not getTileInfo(getThingPosition(cid)).pvp or config.pvpManaSpent)) then doPlayerAddSpentMana(cid, (mana - config.baseMana)) end for _, pid in ipairs(affectedList) do doAddCondition(pid, condition) end return true end Utamo Sio -> Usada em target, precisa colocar o nome da pessoa para funcionar. Ex: utamo sio "Phineasz Spoiler local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 39) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local config = { tempo = 600, --- tempo que vai durar a spell percent = 100 -- quanto % vai aumentar } local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELDPERCENT, 100+config.percent) setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Utamo Gran Sio -> Usada em target, precisa colocar o nome da pessoa para funcionar. Ex: utamo gran sio "Phineasz Spoiler local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 39) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local config = { tempo = 600, --- tempo que vai durar a spell percent = 150 -- quanto % vai aumentar } local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELDPERCENT, 100+config.percent) setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Utamo Gran Mas Sio -> Esta magia só pode ser usada se você estiver em uma party. Caso você tente usar essa magia sem estar em nenhuma party, é enviado uma mensagem assim: Você precisa estar em uma party para usar esse buff. Spoiler local combat = createCombatObject() local area = createCombatArea(AREA_CROSS5X5) setCombatArea(combat, area) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local config = { tempo = 600, --- tempo que vai durar a spell percent = 200 -- quanto % vai aumentar } local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELDPERCENT, 100+config.percent) setCombatCondition(combat, condition) local config = { baseMana = 90, pvpManaSpent = getConfigValue("addManaSpentInPvPZone") } function onCastSpell(cid, var) local pos, membersList = getCreaturePosition(cid), getPartyMembers(cid) if(membersList == nil or type(membersList) ~= 'table' or table.maxn(membersList) <= 1) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOPARTYMEMBERSINRANGE) doSendMagicEffect(pos, CONST_ME_POFF) return false end local affectedList = {} for _, pid in ipairs(membersList) do if(getDistanceBetween(getCreaturePosition(pid), pos) <= 36) then table.insert(affectedList, pid) end end local tmp = table.maxn(affectedList) if(tmp <= 1) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOPARTYMEMBERSINRANGE) doSendMagicEffect(pos, CONST_ME_POFF) return false end local mana = math.ceil((0.9 ^ (tmp - 1) * config.baseMana) * tmp) if(getCreatureMana(cid) < mana) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHMANA) doSendMagicEffect(pos, CONST_ME_POFF) return false end if(not doCombat(cid, combat, var)) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) doSendMagicEffect(pos, CONST_ME_POFF) return false end doCreatureAddMana(cid, -(mana - config.baseMana), false) if(not getPlayerFlagValue(cid, PlayerFlag_NotGainMana) and (not getTileInfo(getThingPosition(cid)).pvp or config.pvpManaSpent)) then doPlayerAddSpentMana(cid, (mana - config.baseMana)) end for _, pid in ipairs(affectedList) do doAddCondition(pid, condition) end return true end Utevo Sio -> Usada em target, precisa colocar o nome da pessoa para funcionar. Ex: utevo sio "Phineasz Spoiler local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 39) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local config = { tempo = 600, --- tempo que vai ficar recuperando mana (tempo total) mana = 200, -- quanto de mana ganha a cada intervalo intervalo = 5 --- intervalo que leva pra recuperar X de mana, } local condition = createConditionObject(CONDITION_FOOD) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_MANAGAIN, config.mana) setConditionParam(condition, CONDITION_PARAM_MANATICKS, config.intervalo*1000) setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Utevo Gran Sio -> Usada em target, precisa colocar o nome da pessoa para funcionar. Ex: utevo gran sio "Phineasz Spoiler local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 39) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local config = { tempo = 600, --- tempo que vai ficar recuperando mana (tempo total) mana = 250, -- quanto de mana ganha a cada intervalo intervalo = 3 --- intervalo que leva pra recuperar X de mana, } local condition = createConditionObject(CONDITION_FOOD) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_MANAGAIN, config.mana) setConditionParam(condition, CONDITION_PARAM_MANATICKS, config.intervalo*1000) setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Utevo Gran Mas Sio -> Esta magia só pode ser usada se você estiver em uma party. Caso você tente usar essa magia sem estar em nenhuma party, é enviado uma mensagem assim: Você precisa estar em uma party para usar esse buff. Spoiler local combat = createCombatObject() local area = createCombatArea(AREA_CROSS5X5) setCombatArea(combat, area) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local config = { tempo = 600, --- tempo que vai ficar recuperando mana (tempo total) mana = 350, -- quanto de mana ganha a cada intervalo intervalo = 1 --- intervalo que leva pra recuperar X de mana, } local condition = createConditionObject(CONDITION_FOOD) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_MANAGAIN, config.mana) setConditionParam(condition, CONDITION_PARAM_MANATICKS, config.intervalo*1000) setCombatCondition(combat, condition) local config = { baseMana = 60, pvpManaSpent = getConfigValue("addManaSpentInPvPZone") } function onCastSpell(cid, var) local pos, membersList = getCreaturePosition(cid), getPartyMembers(cid) if(membersList == nil or type(membersList) ~= 'table' or table.maxn(membersList) <= 1) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOPARTYMEMBERSINRANGE) doSendMagicEffect(pos, CONST_ME_POFF) return false end local affectedList = {} for _, pid in ipairs(membersList) do if(getDistanceBetween(getCreaturePosition(pid), pos) <= 36) then table.insert(affectedList, pid) end end local tmp = table.maxn(affectedList) if(tmp <= 1) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOPARTYMEMBERSINRANGE) doSendMagicEffect(pos, CONST_ME_POFF) return false end local mana = math.ceil((0.9 ^ (tmp - 1) * config.baseMana) * tmp) if(getCreatureMana(cid) < mana) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHMANA) doSendMagicEffect(pos, CONST_ME_POFF) return false end if(not doCombat(cid, combat, var)) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) doSendMagicEffect(pos, CONST_ME_POFF) return false end doCreatureAddMana(cid, -(mana - config.baseMana), false) if(not getPlayerFlagValue(cid, PlayerFlag_NotGainMana) and (not getTileInfo(getThingPosition(cid)).pvp or config.pvpManaSpent)) then doPlayerAddSpentMana(cid, (mana - config.baseMana)) end for _, pid in ipairs(affectedList) do doAddCondition(pid, condition) end return true end Utito Mas Sio -> Usada em target, precisa colocar o nome da pessoa para funcionar. Ex: utito mas sio "Phineasz Spoiler local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 39) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local config = { tempo = 120, --- tempo que vai durar a spell percent = 300 -- quanto % vai aumentar } local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUBPERCENT, 100+config.percent) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORDPERCENT, 100+config.percent) setConditionParam(condition, CONDITION_PARAM_SKILL_AXEPERCENT, 100+config.percent) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCEPERCENT, 100+config.percent) setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end As magias que precisam estar em party, elas estão pegando em todos que tem alcance da magia, ela é só pra pegar em quem estiver na party da pessoa que usou a magia. @Tópico Editado Editado Dezembro 26, 2018 6 anos por Phineasz (veja o histórico de edições) Meu Curso sobre Programação para OTServer Programando OTServer Peça o seu script! Entre agora mesmo no grupo Developing Conteúdos: Spoiler • Cidade [8.60] • Cave de Boss • Widget Gesior • Autoloot 100% • [Old Client] Como Hookar Dll • Configurando VPS Windowns • [Solução] Código Caracteres Especiais Discord: Belmont#7352 Não esqueça do REP+
Postado Dezembro 17, 2018 6 anos Nas que precisam de nome é só adicionar needtarget="1" e params="1". Se quiser adicionar uma distância até onde a spell dever ir é só colocar. range="0" <instant name="Vita Sio" words="Vita Sio" lvl="0" maglv="0" manapercent="0" needtarget="1" params="1" range="0" soul="0" exhaustion="1000" prem="0" enabled="1" script="vita-sio"/> Em caso da party um Scripter pode te ajudar.
Postado Dezembro 17, 2018 6 anos Autor @Roy Obrigado, estarei no aguardo do outro script. Meu Curso sobre Programação para OTServer Programando OTServer Peça o seu script! Entre agora mesmo no grupo Developing Conteúdos: Spoiler • Cidade [8.60] • Cave de Boss • Widget Gesior • Autoloot 100% • [Old Client] Como Hookar Dll • Configurando VPS Windowns • [Solução] Código Caracteres Especiais Discord: Belmont#7352 Não esqueça do REP+
Postado Dezembro 27, 2018 6 anos @Phineasz Spoiler local combat = createCombatObject() local area = createCombatArea(AREA_CROSS5X5) setCombatArea(combat, area) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local config = { tempo = 600, --- tempo que vai ficar recuperando mana (tempo total) mana = 350, -- quanto de mana ganha a cada intervalo intervalo = 1 --- intervalo que leva pra recuperar X de mana, } local condition = createConditionObject(CONDITION_FOOD) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_MANAGAIN, config.mana) setConditionParam(condition, CONDITION_PARAM_MANATICKS, config.intervalo*1000) setCombatCondition(combat, condition) local config = { baseMana = 60, pvpManaSpent = getConfigValue("addManaSpentInPvPZone") } function onCastSpell(cid, var) local pos, membersList = getCreaturePosition(cid), getPartyMembers(cid) if not membersList then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você precisa está em party para usar esse buff.") doSendMagicEffect(pos, CONST_ME_POFF) return false end if table.maxn(membersList) <= 1 then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOPARTYMEMBERSINRANGE) doSendMagicEffect(pos, CONST_ME_POFF) return false end local affectedList = {} for _, pid in ipairs(membersList) do if(getDistanceBetween(getCreaturePosition(pid), pos) <= 36) then table.insert(affectedList, pid) end end local tmp = table.maxn(affectedList) if(tmp <= 1) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOPARTYMEMBERSINRANGE) doSendMagicEffect(pos, CONST_ME_POFF) return false end local mana = math.ceil((0.9 ^ (tmp - 1) * config.baseMana) * tmp) if(getCreatureMana(cid) < mana) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHMANA) doSendMagicEffect(pos, CONST_ME_POFF) return false end if(not doCombat(cid, combat, var)) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) doSendMagicEffect(pos, CONST_ME_POFF) return false end doCreatureAddMana(cid, -(mana - config.baseMana), false) if(not getPlayerFlagValue(cid, PlayerFlag_NotGainMana) and (not getTileInfo(getThingPosition(cid)).pvp or config.pvpManaSpent)) then doPlayerAddSpentMana(cid, (mana - config.baseMana)) end for _, pid in ipairs(affectedList) do doAddCondition(pid, condition) end return true end
Postado Dezembro 27, 2018 6 anos Autor @KotZletY A parte da mensagem funcionou, mais ele ainda continua bufando todos que não estar na party da pessoa que usou a magia Meu Curso sobre Programação para OTServer Programando OTServer Peça o seu script! Entre agora mesmo no grupo Developing Conteúdos: Spoiler • Cidade [8.60] • Cave de Boss • Widget Gesior • Autoloot 100% • [Old Client] Como Hookar Dll • Configurando VPS Windowns • [Solução] Código Caracteres Especiais Discord: Belmont#7352 Não esqueça do REP+
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.