narutomaniacos 14 Postado Agosto 15, 2015 Share Postado Agosto 15, 2015 (editado) 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 upargainhp = o tanto de vida que vai ganhar quando upargainmana = o tanto de mana que vai ganhar quando upargainhpticks = o tanto de segundos que demora pra subir a vidagainhpamount = o tanto de vida que vai ganhar a cada ( no nosso exemplo 6 ) segundosgainmanaticks = o tanto de segundos que demora pra subir a managainmanaamount = o tanto de mana que vai ganhar a cada ( no nosso exemplo 3 ) segundosmanamultiplier = quanto ml vai demorar pra subir, quanto menor mais rápidoattackspeed = velocidade do ataque de wands e weapons (quanto menor mais rápido)soulmax = o maximo de soulgainsoulticks = o tanto de segundos que vai demorar pra subir o soulfromvoc = 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 distanciawandDamage = quando hita com wandmagDamage = quando hita com magiasmagHealingDamage = quanto heala com magias de cura, ( tanto exura como exura sio )defense = quanto defende com escudosarmor = 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 Agosto 18, 2015 por narutomaniacos Link para o comentário https://xtibia.com/forum/topic/236224-perfect-transform-com-effect/ Compartilhar em outros sites More sharing options...
SkyLigh 453 Postado Agosto 17, 2015 Share Postado Agosto 17, 2015 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 https://xtibia.com/forum/topic/236224-perfect-transform-com-effect/#findComment-1665543 Compartilhar em outros sites More sharing options...
narutomaniacos 14 Postado Agosto 18, 2015 Autor Share Postado Agosto 18, 2015 (editado) Obrigado as recomendações foram seguidas, e removi alguns spoilers para facilitar leitura aguardando resposta. Editado Agosto 18, 2015 por narutomaniacos Link para o comentário https://xtibia.com/forum/topic/236224-perfect-transform-com-effect/#findComment-1665597 Compartilhar em outros sites More sharing options...
SkyLigh 453 Postado Agosto 18, 2015 Share Postado Agosto 18, 2015 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 https://xtibia.com/forum/topic/236224-perfect-transform-com-effect/#findComment-1665599 Compartilhar em outros sites More sharing options...
narutomaniacos 14 Postado Agosto 18, 2015 Autor Share Postado Agosto 18, 2015 tópico editado,aguardando novas informações. Link para o comentário https://xtibia.com/forum/topic/236224-perfect-transform-com-effect/#findComment-1665648 Compartilhar em outros sites More sharing options...
SkyLigh 453 Postado Agosto 18, 2015 Share Postado Agosto 18, 2015 Conteúdo aprovado. Link para o comentário https://xtibia.com/forum/topic/236224-perfect-transform-com-effect/#findComment-1665682 Compartilhar em outros sites More sharing options...
Posts Recomendados