Ir para conteúdo
Entre para seguir isso  
coranderson

Magic Flee (magia com auxilio a fuga)

Recommended Posts

coranderson    0
coranderson

Olá pessoal...

Vou postar minha magia pra ajuda quando o player for fugir... adiciona speed e hp.

[size=4][color=Red][b]Nome Da Magia: Magic Flee[/b][/color][/size][size=4]
[/size][size=4][color=Red][b]Magia Testada em Mix Yoruots TFS 0.3.6 Versão: 8.54[/b][/color][/size][color=Blue][b][size=4]
Autor: D3rs00n (eu)[/size]
[/b][/color]

O QUE A MAGIA FAZ?

Quando o player usa a magia, adiciona X de velocidade e adiciona X de health a cada X segundo.

Todos esses X podem ser configurados por você, e eu vou explicar como.

Começando:

AVISO: Se o player logar antes do efeito da magia acabar, aparecerá erros no conssole, porém, esse erros não atrapalham e nem bugam nada.

TUDO QUE ESTÁ DE VERDE PODE SER ALTERADO E OQUE ESTÁ DE VERMLHO NÃO PODE SER ALTERADO E OQUE ESTÁ DE ROXO PODE SER REMOVIDO

Primeira parte: TAGs

Tag da spell:

[spoiler=Tag]

        <instant name="[b][color=SeaGreen]Magic Flee[/color][/b]" words="[color=SeaGreen][b]magic flee[/b][color=Black]"[/color][/color] lvl="[b][color=SeaGreen]10[/color][/b]" mana="[color=Red][b]0[/b][/color]" prem="[b][color=SeaGreen]0[/color][/b]" aggressive="0" casterTargetOrDirection="0" needlearn="[b][color=SeaGreen]0[/color][/b]" blockwalls="1" exhaustion="[b][color=SeaGreen]2000[/color][/b]" script="flee.lua">
[color=SeaGreen][b]        <vocation id="1"/>
       <vocation id="2"/>
       <vocation id="3"/>
       <vocation id="4"/>
       <vocation id="5"/>
       <vocation id="6"/>
       <vocation id="7"/>
       <vocation id="8"/>[/b][/color]
   </instant>

 

Basta adicionar está tag no arquivo spells.xml da pasta data\spells

Na terceira linha, logo após:

<?xml version="1.0" encoding="UTF-8"?>
<spells>

 

Tag do creaturescripts:

[spoiler=Tag]

        <event type="combat" name="flee" event="script" value="flee.lua"/>

 

Basta adicionar está tag no arquivo creaturescripts.xml da pasta data\creaturescripts

Na terceira linha, logo após:

<?xml version="1.0" encoding="UTF-8"?>
<creaturescripts>

Segunda parte: Loguin Creaturescripts

Arquivo loguin.lua, da pasta data\creaturescripts\scripts :

    
doPlayerSetStorageValue(cid, 65413, -1)

Basta adicionar está linha no arquivo login.lua da pasta data\creaturescripts\scripts

Na anti-penúltima linha, antes de:

return true
end

Terceira parte: Scripts

Creature scripts:

Copie qualquer arquivo da Pasta data\creaturescripts\scripts e renomeie para Flee, apague tudo que estiver dentro dele e cole isto:

[spoiler=Flee]

function onCombat(cid, target)
local dol = 1
if isPlayer(cid) then
local st = getPlayerStorageValue(cid, 65413)
if st >= 0 then
if isPlayer(target) then
if st == 2 or st == 0 then
dol = 1
else
dol = 0
end
elseif isMonster(target) then
if st == 2 or 1 then
dol = 1
else
dol = 0
end
end
if st == 3 then
dol = 0
end
end
end
return(dol == 1 and TRUE or FALSE)
end

 

 

Spell:

Copie qualquer arquivo da Pasta data\spells\scripts e renomeie para Flee, apague tudo que estiver dentro dele e cole isto:

[spoiler=Flee]

[b][color=Purple]----BY D3RSON------[/color]
[color=Red]function onCastSpell(cid, var, hpx, tab, health)
local tab = {}[/color]
[color=Purple]----CONFIGURAÇÕES DO SCRIPT----[/color]
local cal = "You not have mana." [color=Purple]----MENSSAGEM QUE MANDA QUANDO NÃO TEM MANA // obs: NÃO PODE TIRAR AS ASPAS----[/color]
local mag = TRUE [color=Purple]----TRUE ou FALSE// CONTA MAGIC LEVEL DE ITENS?----[/color]
local attack_player = FALSE [color=Purple]----TRUE ou FALSE// QUANDO O PLAYER USA ESSA MAGIA ELE PODE ATACAR OUTROS PLAYERS?----[/color]
local attack_monster = FALSE [color=Purple]----TRUE ou FALSE// QUANDO O PLAYER USA ESSA MAGIA ELE PODE ATACAR MONSTROS?----[/color]
local mana = 5 [color=Purple]----QUANTOS % DA MANA TOTAL VAI GASTAR DO PLAYER (0 a 100)----[/color]
local efeit = 27 [color=Purple]----EFEITO QUE MANDA QUANDO USA A MAGIA----
----CONFIGURAÇÕES DO HEALTH (TABELA, somente configure abaixo com números inteiros, e mais que 1)----[/color]
local maximo_level = 150 [color=Purple]----CONFIGURA O MAIOR RATE DE MAGIC LEVEL DA TABLE----[/color]
local ml_por_level = 1 [color=Purple]----CONFIGURA O N° DE ML QUE VAI PULAR A CADA 5 LEVEIS CONFIGURADOS ACIMA----[/color]
local vezes = 100[color=Purple] ----QUANTAS VEZES SERÁ ADICIONADO A HP AO PERSSONAGEM----[/color]
local time = 1.5 [color=Purple]----QUANTOS SEGUNDOS ENTRE UMA HEALADA E OUTRA----[/color]
[color=Purple]----CONFIGURAÇÕES DO SPEED----[/color]
local type_speed = 1 [color=Purple]----EXPLICANDO: 0 = NÃO USA SPEED, 1 = SPEED CONFIGURADA POR %, 2 SPEED CONFIGURADA POR NÚMERO----[/color]
local value_speed = 40 [color=Purple]--[[
CASO A CONFIGURAÇÃO TYPE_VALUE FOR 2 AUMENTA E A VALUE_SPEED FOR 50 ELE AUMENTA  SPEED DO PLAYER EM 50, ou
CASO A CONFIGURAÇÃO TYPE_VALUE FOR 1 E A VALUE_SPEED FOR 50 ELE AUMENTA 50 % DA SPEED DO PLAYER, ou
CASO A CONFIGURAÇÃO TYPE_VALUE FOR 0 ELE NÃO AUMENTA NADA A SPEED DO PLAYER.
]][/color]
[color=Purple]----SCRIPT (EXTREMAMENTE RECOMENDAVEL NÃO EDITAR)----[/color]
[color=Red]if (getCreatureMana(cid)) >= (getCreatureMaxMana(cid) * (mana/100)) then
if time * vezes >= 46 then
registerCreatureEvent(cid, "flee")
for t=2, (math.ceil((maximo_level) / (2.5 * ml_por_level))), 2 do
table.insert(tab, ((math.ceil(maximo_level/5)) * (maximo_level - (t + 1))))
table.insert(tab, (math.ceil(maximo_level / (5 * ml_por_level) - (t + 1))))
end
if type_speed == 1 then
local speed = (getCreatureBaseSpeed(cid) * (value_speed / 100))
doChangeSpeed(cid, speed)
addEvent(doChangeSpeed, (time * vezes * 1000), cid, (-1) * speed)
elseif type_speed == 2 then
doChangeSpeed(cid, value_speed)
addEvent(doChangeSpeed, (time * vezes * 1000), cid, (-1) * value_speed)
end
doSendMagicEffect(getCreaturePosition(cid), efeit)
local repet = 0
local hpx = 0
local ml = (getPlayerMagLevel(cid, mag))
for zux = 2, #tab, 2 do
if ml >= tab[zux] then
hpx = (ml * tab[zux]) * (-1)
end
end
while (vezes - 2) >= repet do
addEvent(doCreatureAddHealth, (repet * (1000 * time)), cid, hpx)
repet = (repet + 1)
end
local x = (((1000 * time) * vezes) - 45000)
local xy = 45
while xy >= 0 do
if xy >= 2 then
addEvent(doPlayerSendCancel, x, cid, "Restam "..xy.." segundos de Magic Flee.")
elseif xy == 1 then
addEvent(doPlayerSendCancel, x, cid, "Resta "..xy.." segundo de Magic Flee.")
elseif xy == 0 then
addEvent(doPlayerSendCancel, x, cid, "Acabou seu Magic Flee.")
end
x = x + 1000
xy = xy - 1
end
addEvent(doPlayerSetStorageValue, (((1000 * time) * vezes) + 100), cid, 65413, -1)
if attack_player == true and attack_monster == true then
doPlayerSetStorageValue(cid, 65413, 2)
elseif attack_player == false and attack_monster == true then
doPlayerSetStorageValue(cid, 65413, 1)
elseif attack_player == true and attack_monster == false then
doPlayerSetStorageValue(cid, 65413, 0)
elseif attack_player == false and attack_monster == false then
doPlayerSetStorageValue(cid, 65413, 3)
end
else
doPlayerSendCancel(cid, "Wrong configuration, please contact the adminitrador.")
end
else
doPlayerSendCancel(cid, cal)
end
return TRUE
end[/color][/b]

 

IMPORTANTE: PARA NÃO DAR O ERRO "Wrong configuration, please contact the adminitrador." a configuração "time" múltiplicado pela configuração "vezes" não pode ser menor que 45.

Vou explicar as partes dificeis desse script acima:

1º local maximo_level = 150

2º local ml_por_level = 1

Essas configurações servem pro rate da magia, vou explicar melhor:

imagine uma tabela com 2 colunas, magic level e level, agora prencha a tabela da seguinte forma:

Começa do level 0 e vai até o level que você configurou na configuração 1, de 5 em 5:

0,5,10,15...

e a segunda coluna vai de X em X, esse X você configura nas segunda configuração:

0,1,2,3,4,5,6,7,8,9...

A finalidade da tabela:

Ele pega o Magic Level da pessoa e compara com a primeira table, se o magic level dela tiver entre a 4ª e a 5ª linha da 1ª da coluna, ele múltiplica o ML pela 4ª linha da 2ª coluna. Entendeu? Caso não poste que eu explico melhor... A 2ª configuração não prescisa ser número inteiro.

 

Qualquer dúvida ou erro, pergunte, que eu irei responder e atualizar o post com as questões e as respostas...

Fique avontade para copiar, mas não remova os créditos.

Estou trabalhando na Magic Flee v2.0, para remover os erros de conssole e adicionar um efeito toda vez que heala o Player.

[spoiler=Screen Shoots]

Quando falta 45 segundos para acabar a magia, olha só o efeito que aparece:

64954419.jpg64954419.jpg

Olha só, um exemplo de quando não pode atacar monstro:

22684896.jpg%3Cfont%20color=Black%3E

22684896.jpg

 

Quando usa a Magia:

92043740.jpg%3Cfont%20color=Black%3E

92043740.jpg

 

 

Editado por coranderson
Postar Screen Shoot

Compartilhar este post


Link para o post
Lwkass    1
Lwkass

Legal,

 

Aprovado

Compartilhar este post


Link para o post
tigerx2    1
tigerx2

Nao entendi o que realmente o script faz.

E o script em si, as linhas, estao muito confusas,

identa ou faz algo, porque ta muito ruim.

Compartilhar este post


Link para o post
Biozard    0
Biozard

tb n entendi oq o script faz

Compartilhar este post


Link para o post
coranderson    0
coranderson

[b]O QUE A MAGIA FAZ?[/b]
Quando o player usa a magia, adiciona X de velocidade e adiciona X de health a cada X segundo.
Todos esses X podem ser configurados por você, e eu vou explicar como.

Tá na hora de aprender a ler, não ta não?

Se não intendeu ainda ai vai algo mais facil:

Essa magia é tipo utani hur e um monte de exura junto, pra fugir, e você não ataca outros players e monstros...

Compartilhar este post


Link para o post
Black Ice    2
Black Ice

humm entendo...

mas não seria mais simples e sem erro no console só uma magia q fizesse isso? sem todo esse bla bla bla?

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×