Ir para conteúdo

Perfect transform com effect


Posts Recomendados

Existem muitos tutoriais no forum com esse assunto mais nenhum explica TUDO que queremos então resolvi fazer o meu tutorial, bom vamos lá.

 

[+]Tutorial para 8.0

*Passo 1(Adicionando vocation)

em data/vocations.xml adicione novas vocations

 

<vocation id="1" name="Goku" description="a goku" gaincap="50" gainhp="265" gainmana="45" gainhpticks="6" gainhpamount="300" gainmanaticks="3" gainmanaamount="300" manamultiplier="1.1" attackspeed="2000" soulmax="50" gainsoulticks="120" lostexp="3" lostmlv="3" lostskill="3" distdamage="5" meledamage="15" kidamage="1" corpse="2853" charge="11">

<skill id="0" multiplier="1.1"/>
<skill id="1" multiplier="1.1"/>
<skill id="2" multiplier="1.1"/>
<skill id="3" multiplier="1.1"/>
<skill id="4" multiplier="1.1"/>
<skill id="5" multiplier="1,1"/>
<skill id="6" multiplier="1.1"/>

</vocation>

 

 

*Explicando:

 

Vocation id = id da vocação NUNCA COLOQUE UM ID JÁ EXISTENTE

Name = nome da vocação

Description = descrição,exemplo quando um player der look em algum player com essa vocação ira aparecer "a goku"

Gaincap = o quanto de cap o player ira ganhar ao upar

Gainhp = quando de hp o player ira ganhar a cada level que upar

Gainmana = o quanto de mana o player ira ganhar ao upar

Attackspeed = Velocidade em que a vocação hita quanto menor mais rápido...

Gainsoulticks = o tanto de segundos que vai demorar pra subir o soul

Lostexp = o quanto de exp vai perder ao morrer

Lostmlv = o quanto de ml vai perder ao morrer

Lostskills = o quanto de skills vai perder ao morrer

Distdamage = o quanto vai hitar com ataques a distancia

Maledamage = o quanto vai hitar com ataques de perto

Ki damage(ou MagDamage) = o quanto vai hitar usando magias

Corpse = o corpo do player ao morrer

Charge = não faço ideia ;-;

OS QUE ESTÃO EM VERDE ACONSELHO NÃO MEXER!!

 

 

 

*PASSO 2(TRANSFORM)

vá na pasta spells/script copie qualquer script,renomeie para transform e cole isto dentro:

 

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)
local condition = createConditionObject(CONDITION_OUTFIT)
setConditionParam(condition, CONDITION_PARAM_TICKS, 86400000)
addOutfitCondition(condition, 0, 71, 0, 0, 0, 0)
setCombatCondition(combat, condition)
ext = 1000
function onCastSpell(cid, var)
---Janemba---
function tran(cid)
if getPlayerVocation(cid) == 440 then
if getPlayerMana(cid) >= 0 then
doSendMagicEffect(getPlayerPosition(cid), 191)
addEvent(tran,ext,cid)
end
end
end
function tran(cid)
if getPlayerVocation(cid) == 441 then
if getPlayerMana(cid) >= 0 then
doSendMagicEffect(getPlayerPosition(cid), 191)
addEvent(tran,ext,cid)
end
end
end
function tran(cid)
if getPlayerVocation(cid) == 442 then
if getPlayerMana(cid) >= 0 then
doSendMagicEffect(getPlayerPosition(cid), 191)
addEvent(tran,ext,cid)
end
end
end
---End---
-- Transformar
if getPlayerVocation(cid) == 1 then
if getPlayerLevel(cid) >= 50 then
doPlayerSetVocation(cid,2)
doSetOutfit(cid,"10")
addEvent(tran,ext,cid)
doSendMagicEffect(getPlayerPosition(cid), 32)
else
doPlayerSendCancel(cid, "You need level 50 to the next transform.")
doSendMagicEffect(getPlayerPosition(cid), 2)
end
elseif getPlayerVocation(cid) == 2 then
if getPlayerLevel(cid) >= 100 then
doPlayerSetVocation(cid,3)
doSetOutfit(cid,"11")
addEvent(tran,ext,cid)
doSendMagicEffect(getPlayerPosition(cid), 233)
else
doPlayerSendCancel(cid, "You need level 100 to the next transform.")
doSendMagicEffect(getPlayerPosition(cid), 2)
end
---End---
else
doPlayerSendCancel(cid, "You cannot transform.")
doSendMagicEffect(getPlayerPosition(cid), 2)
end
end

 

em spells.xml adicione:
<instant name="Transformar" words="transformar" aggressive="0" params="1" lvl="1" maglv="0" mana="0" soul="0" exhaustion="1" prem="0" enabled="1" script="transforms.lua"></instant>
*EXPLICANDO

 

Vocation necessária para transformar

Level preciso para transformar

Vocation que o player irá após usar o transform

Outfit que o player ficará ao se transformar

Effeito que irá aparecer no player ao se transformar

Efeito que irá aparecer no player caso ele não possa se transformar

Texto editável

*PASSO 3(CASO SEJA DBKO)

 

 

 

Adcione piorunki na tag da vocation entre as aspas coloque o id do efeito,exemplo:

 

<vocation id="1" name="Goku" description="a goku" gaincap="50" gainhp="265" gainmana="45" gainhpticks="6" gainhpamount="300" gainmanaticks="3" gainmanaamount="300" manamultiplier="1.1" attackspeed="2000" soulmax="50" gainsoulticks="120" lostexp="3" lostmlv="3" lostskill="3" distdamage="5" meledamage="15" kidamage="1" corpse="2853" charge="11" piorunki="234">
<skill id="0" multiplier="1.1"/>
<skill id="1" multiplier="1.1"/>
<skill id="2" multiplier="1.1"/>
<skill id="3" multiplier="1.1"/>
<skill id="4" multiplier="1.1"/>
<skill id="5" multiplier="1,1"/>
<skill id="6" multiplier="1.1"/>
</vocation>

 

[+] TUTORIAL PARA 8.54 A 8.60

 

*Passo 1(adicionando vocations)

 

 

 

<vocation id="1" name="Goku" description="a Goku" needpremium="0" gaincap="20" gainhp="370" gainmana="130" gainhpticks="1" gainhpamount="150" gainmanaticks="1" gainmanaamount="250" manamultiplier="1.1" attackspeed="500" soulmax="100" gainsoulticks="60" fromvoc="1">

<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="0.1" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>

<skill id="0" multiplier="1.5" />

<skill id="1" multiplier="2.0" />

<skill id="2" multiplier="2.0" />

<skill id="3" multiplier="2.0" />

<skill id="4" multiplier="2.0" />

<skill id="5" multiplier="1.5" />

<skill id="6" multiplier="1.1" />

 

</vocation>

*EXPLICANDO

 

id = não deve haver nenhuma igual, tente seguir a sequencia para não se perder.

name = nome da nova vocação.
description = quando der look aparecera esse nome, e caso acc manager também.
needpremium = se precisa de premmium para ter essa vocação (0 = não 1 = sim)
gaincap = o tanto de cap que vai ganhar quando upar
gainhp = o tanto de vida que vai ganhar quando upar
gainmana = o tanto de mana que vai ganhar quando upar
gainhpticks = o tanto de segundos que demora pra subir a vida
gainhpamount = o tanto de vida que vai ganhar a cada ( no nosso exemplo 6 ) segundos
gainmanaticks = o tanto de segundos que demora pra subir a mana
gainmanaamount = o tanto de mana que vai ganhar a cada ( no nosso exemplo 3 ) segundos
manamultiplier = quanto ml vai demorar pra subir, quanto menor mais rápido
attackspeed = velocidade do ataque de wands e weapons (quanto menor mais rápido)
soulmax = o maximo de soul
gainsoulticks = o tanto de segundos que vai demorar pra subir o soul
fromvoc = como ele será reconhecido nos scripts ( bote igual o id )

Formulas:

meleeDamage = quanto hita com weapons ( exceto wands e rods )
distDamage = quanto hita com ataques a distancia
wandDamage = quando hita com wand
magDamage = quando hita com magias
magHealingDamage = quanto heala com magias de cura, ( tanto exura como exura sio )
defense = quanto defende com escudos
armor = quanto defende com armaduras

 

 

 

*Caso queira que o player precise transformar sempre que logar em fromvoc coloque o id da primeira voc,exemplo:

 

<vocation id="2" name="Goku" description="a Goku" needpremium="0" gaincap="20" gainhp="370" gainmana="130" gainhpticks="1" gainhpamount="150" gainmanaticks="1" gainmanaamount="250" manamultiplier="1.1" attackspeed="500" soulmax="100" gainsoulticks="60" fromvoc="1"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="0.2" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>

<skill id="0" multiplier="1.5" />

<skill id="1" multiplier="2.0" />

<skill id="2" multiplier="2.0" />

<skill id="3" multiplier="2.0" />

<skill id="4" multiplier="2.0" />

<skill id="5" multiplier="1.5" />

<skill id="6" multiplier="1.1" />

 

</vocation>

 

Ao invés de por fromvoc 2 que é o numero da vocation coloquei 1.

 

 

 

*Passo 2(Transform)

vá na pasta talkactions/script copie qualquer script,renomeie para transformar e cole isto dentro:

 

local config = {

-- Goku --
[1] = { 50, 2, 10, 114},
[2] = { 100, 3, 11, 114},
[3] = { 150, 4, 12, 114},
[4] = { 180, 5, 13, 114},
[5] = { 200, 6, 14, 114},
}
function onSay(cid, words, param, channel)
local from,to = {x=1001, y=705, z=7},{x=1031, y=737, z=7} -- começo e final do mapa
local from2,to2 = {x=1011, y=705, z=6},{x=1031, y=738, z=6} -- começo e final do mapa
local from3,to3 = {x=1012, y=706, z=5},{x=1032, y=739, z=5} -- começo e final do mapa
local from4,to4 = {x=985, y=598, z=7},{x=1044, y=652, z=7} -- começo e final do mapa
local from5,to5 = {x=986, y=615, z=6},{x=1039, y=647, z=7} -- começo e final do mapa
local from6,to6 = {x=990, y=616, z=5},{x=1040, y=647, z=5} -- começo e final do mapa
local from7,to7 = {x=1218, y=798, z=15},{x=1407, y=974, z=15} -- começo e final do mapa
local from8,to8 = {x=1554, y=1809, z=15},{x=1613, y=1838, z=15} -- começo e final do mapa
local from9,to9 = {x=1554, y=1809, z=14},{x=1613, y=1838, z=15} -- começo e final do mapa
local from10,to10 = {x=1554, y=1809, z=13},{x=1613, y=1838, z=15} -- começo e final do mapa
if isInRange(getCreaturePosition(cid), from, to) or isInRange(getCreaturePosition(cid), from2, to2) or isInRange(getCreaturePosition(cid), from3, to3) or isInRange(getCreaturePosition(cid), from4, to4) or isInRange(getCreaturePosition(cid), from5, to5) or isInRange(getCreaturePosition(cid), from6, to6) or isInRange(getCreaturePosition(cid), from7, to7) or isInRange(getCreaturePosition(cid), from8, to8) or isInRange(getCreaturePosition(cid), from9, to9) or isInRange(getCreaturePosition(cid), from10, to10) then
doPlayerSendCancel(cid, "Você não pode se Transformar nesta área!") return true
end
local voc = config[getPlayerVocation(cid)]
if voc then
if getPlayerLevel(cid) >= voc[1] then
doPlayerSetVocation(cid, voc[2])
local outfit = {lookType = voc[3]}
doCreatureChangeOutfit(cid, outfit)
doSendMagicEffect(getCreaturePosition(cid), voc[4])
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você precisa estar no level " .. voc[1] .. " para transformar.")
end
else
doPlayerSendCancel(cid, "Você não pode se Transformar!")
end
return true
end
Em talkactions.xml adicione:
<talkaction words="transformar;transform;TRANSFORMAR;TRANSFORM;Transform;Transformar" script="transformar.lua" />

 

*EXPLICANDO

 

Vocation necessária para transformar

Vocation após usar o transform

Level necessário para transformar

Outfit que o player ficará ao se transformar

Effeito que irá aparecer no player ao se transformar

Texto editável

 

 

*Passo 3(effect)

vá na pasta creaturescripts/script copie qualquer script,renomeie para effect e cole isto dentro:

 

local config =

{
storage = 31520,
timee = 1, -- po jakim czasie zostaje wyswietlony efekt
efekt1 = 10,
efekt2 = 13,
efekt3 = 16,
efekt4 = 35,
efekt5 = 87,
efekt6 = 93,
efekt7 = 84,
efekt8 = 89,
efekt9 = 100,
efekt10 = 105,
efekt11 = 98,
}
function onThink(cid, interval)
if getPlayerVocation(cid) == 4 and exhaustion.get(cid, config.storage) == false then
doSendMagicEffect(getPlayerPosition(cid),config.efekt1)
exhaustion.set(cid,config.storage,config.timee)
elseif getPlayerVocation(cid) == 5 and exhaustion.get(cid, config.storage) == false then
doSendMagicEffect(getPlayerPosition(cid),config.efekt2)
exhaustion.set(cid,config.storage,config.timee)
elseif getPlayerVocation(cid) == 7 and exhaustion.get(cid, config.storage) == false then
doSendMagicEffect(getPlayerPosition(cid),config.efekt2)
exhaustion.set(cid,config.storage,config.timee)
elseif getPlayerVocation(cid) == 191 and exhaustion.get(cid, config.storage) == false then
doSendMagicEffect(getPlayerPosition(cid),config.efekt1)
exhaustion.set(cid,config.storage,config.timee)
elseif getPlayerVocation(cid) == 192 and exhaustion.get(cid, config.storage) == false then
doSendMagicEffect(getPlayerPosition(cid),config.efekt11)
exhaustion.set(cid,config.storage,config.timee)
end
return true
end

 

Em Creaturescripts.xml adicione:
<event type="think" name="Effect" event="script" value="effect.lua"/>

 

depois vá em creaturescripts/script no arquivo login.lua registre a tag:
registerCreatureEvent(cid,"Effect")

 

*Explicando

Numero do efeito/efeito

tempo em segundos que irá aparecer o efeito

vocation que vai ficar com o efeito

 

*PASSO 4(Oufit)

na pasta creaturescripts/script copie qualquer script,renomeie para outfit e cole isto dentro:

 

function onLogin(cid)

local config = {
-- goku --
[1] = {1},
[2] = {10},
[3] = {11},
[4] = {12},
[5] = {13}
}
local voc = config[getPlayerVocation(cid)]
if voc then
if getPlayerStorageValue(cid, 45454545) < 0 then
local newtype = {lookType = voc[1]}
doCreatureChangeOutfit(cid, newtype)
end
end
return TRUE
end
Em Creaturescripts.xml adicione:
<event type="login" name="Outfit" event="script" value="outfit.lua"/>

 

depois vá em creaturescripts/script no arquivo login.lua registre a tag:
registerCreatureEvent(cid, "Outfit")

 

*Explicando

Numero da vocation

numero do efeito

 

 

 

 

 

Creditos:

Eu 90% organização e ter feito o tutorial.

10% para o @XJhoow por explicar como configurar as vocações.

Editado por narutomaniacos
Link para o comentário
Compartilhar em outros sites

Opa é um belo tutorial em si. Mais não está arrumado tente diminuir essas letras, colocar passo como Passo 1 - Passo 2 - Passo 3 e etc...

Caso queira seu tutorial aprovado basta seguir as dicas que eu acabei de citar, então é isso. Reputado como forma de incentivo.

Você tem 48 horas para seguir os meus passos caso contrario reprovo o tuto.

Link para o comentário
Compartilhar em outros sites

Obrigado as recomendações foram seguidas, e removi alguns spoilers para facilitar leitura aguardando resposta.

 

Diminua um pouco as letras do tópico esta meio desnecessário

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...