Ir para conteúdo

Featured Replies

Postado
Nome: Sewing Straight (costura em linha reta)

Versão testada: The Forgotten Server 8.54

Autor: Jedian

Explicação: Abaixo \/

Olá galera, aqui eu denovo com outro post, que espero que seja útil pra vocês.

Pois é, eu só posto spells, mas é que o resto, praticamente não tem o que inventar, sim, tem, mas o que está exatamente ao alcance de um scripter, nem fácil demais, nem impossível pra ele, é praticamente inexistente, por isso é difícil pra nós, scripters, na minha opinião, demonstrar exatamente o potencial de cada um, e em spells, cada um faz do seu jeito, ficando ruim ou não, é perfeita pra cada um que a faz, estou pensando muito em outros sistemas pra vocês, sério, mas tá difícil.

Mudando de assunto, vamos a magia, pensei nela esfregando pedras :rock: a ideia seria uma magia que faz uma espada "costurar em linha reta"(como o nome diz) para frente do personagem de acordo com o tipo de arma usada, aí, se houver um target, ela vai até ele e dá "costuradas" conforme a distância que percorreu até chegar nele, quanto mais perto, mais "costuradas" e vice-versa.

Vamos instalar:

em data/spells/scripts copie um arquivo e cole-o, renomeie para algum nome, apague todo o conteúdo e cole isso dentro:

:) if getPlayerWeapon(cid).uid ~= 0 then doSendAnimatedText(getThingPos(cid), 'Sewing', 144) addEvent(doSendAnimatedText, 350, getThingPos(cid), 'Straight!', 144) if isCreature(getCreatureTarget(cid)) then local function gotarget(cid, pos, n) if isCreature(getCreatureTarget(cid)) then local n = n or 0 local pos = pos or getCreaturePosition(cid) local topos = getThingPos(getCreatureTarget(cid)) local dir = getRetDirToPos(pos, topos) if n < 8 then if not(pos.x == topos.x and pos.y == topos.y) then pos = getPosByDir(pos, dir) end doAreaCombatHealth(cid, 1, pos, 0, -(getPlayerSkillLevel(cid, t[getItemWeaponType(getPlayerWeapon(cid).uid)][2])*1.6), -(getPlayerSkillLevel(cid, t[getItemWeaponType(getPlayerWeapon(cid).uid)][2])*2.3), 255) doSendDistanceShoot({x=pos.x-2,y=pos.y-2,z=pos.z}, pos, t[getItemWeaponType(getPlayerWeapon(cid).uid)][1]) addEvent(gotarget, 80, cid, pos, n+1) end end end gotarget(cid) else n = 0 while n < 8 do n = n + 1 local front = getPosByLookDist(cid, n) if not getTilePzInfo(front) then addEvent(doSendDistanceShoot, n*80, {x=front.x-2, y=front.y-2, z=front.z},front, t[getItemWeaponType(getPlayerWeapon(cid).uid)][1]) addEvent(doAreaCombatHealth, n*80, cid, 1, front, 0, -(getPlayerSkillLevel(cid, t[getItemWeaponType(getPlayerWeapon(cid).uid)][2])*1.6), -(getPlayerSkillLevel(cid, t[getItemWeaponType(getPlayerWeapon(cid).uid)][2])*2.3), 255) end end end else return doPlayerSendCancel(cid, 'You need a weapon to cast it.') end return true end


local function getPosByLookDist(cid, quant) -- by Jedian

local pos = getPlayerPosition(cid)

if getPlayerLookDir(cid) == 0 then

   return {x = pos.x, y = pos.y - quant, z = pos.z}

elseif getPlayerLookDir(cid) == 1 then

   return {x = pos.x + quant, y = pos.y, z = pos.z}

elseif getPlayerLookDir(cid) == 2 then

   return {x = pos.x, y = pos.y + quant, z = pos.z}

elseif getPlayerLookDir(cid) == 3 then

   return {x = pos.x - quant, y = pos.y, z = pos.z}

end

end

local function getRetDirToPos(pos1, pos2)

local retdirs = {

  [0] = 0,

  [1] = 1,

  [2] = 2,

  [3] = 3,

  [4] = 2,

  [5] = 1,

  [6] = 3,

  [7] = 0}

return retdirs[getDirectionTo(pos1, pos2)]

end

local t = {

  [1] = {24, SKILL_SWORD},

  [2] = {26, SKILL_CLUB},

  [3] = {25, SKILL_AXE}

  }

function onCastSpell(cid, var) -- by Jedian 
salve e feche, agora em spells.xml adicione a seguinte tag:

<instant name="Sewing Straight" words="sewing straight" lvl="35" mana="0" prem="0" needweapon="1" exhaustion="2000" needlearn="0" event="script" value="nome.lua"></instant>

edite o nome do arquivo e ajeite conforme as preferências.

Pronto, está instalado, nenhuma foto, pois não dá pra ter uma ideia muito boa com elas :S testem e critiquem aí.

Editado por Jedian
Nova versão, fórmula por skill. (veja o histórico de edições)

avatarlogoedit.png

Scripter

  • Respostas 7
  • Visualizações 1.8k
  • Created
  • Última resposta

Top Posters In This Topic

Postado
  • Autor

@Equipe Avatar Online

Valeu pelo apoio galera .-.

@Renato

Obrigado pelo comentário, realmente fica mais realista usar o skill, já que usa o tipo da arma, porque não usar skill? :P

Vou incrementar depois, obrigado :)

Concerteza vai ver mais spells :D

@Topic

Continuem comentando galera. :)

avatarlogoedit.png

Scripter

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo