Postado Junho 22, 2015 9 anos ola! gostaria de alguem que possa ajudar alguns que estao começando a criar ot server . eu criei spell no spell creator mais as tags que ele gera como adiciono elas no ot server. segue as magias e desde ja agradeço. <instant name="teste" words="default" lvl="100" maglv="0" mana="0" exhaustion="30" prem="0" needlearn="0" blockwalls="0" aggressive="1" event="script" value="teste.lua"> </instant> -- SpellCreator generated. -- =============== COMBAT VARS =============== -- Areas/Combat for 0ms local combat0_Brush = createCombatObject() setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, 226) setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_UNDEFINEDDAMAGE) setCombatArea(combat0_Brush,createCombatArea({{0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {1, 1, 1, 0, 2, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0}})) function getDmg_Brush(cid, level, maglevel) return (200)*-1,(1000)*-1 end setCombatCallback(combat0_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local con___combat0_Brush = createConditionObject(0+CONDITION_PARALYZE) addDamageCondition(con___combat0_Brush, 3, 1000, -400) setCombatCondition(combat0_Brush, con___combat0_Brush) -- Areas/Combat for 900ms local combat9_Brush_2 = createCombatObject() setCombatParam(combat9_Brush_2, COMBAT_PARAM_EFFECT, 91) setCombatParam(combat9_Brush_2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatArea(combat9_Brush_2,createCombatArea({{0, 0, 0, 0, 1, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 1, 0, 0, 0, 1, 0, 1}, {1, 0, 0, 0, 0, 2, 0, 0, 0, 0}, {0, 1, 0, 1, 0, 0, 0, 1, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 1, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 1, 0, 0}})) function getDmg_Brush_2(cid, level, maglevel) return (500)*-1,(1000)*-1 end setCombatCallback(combat9_Brush_2, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_2") -- Areas/Combat for 1600ms local combat16_Brush_3 = createCombatObject() setCombatParam(combat16_Brush_3, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatParam(combat16_Brush_3, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatArea(combat16_Brush_3,createCombatArea({{0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {1, 1, 1, 1, 1, 2, 0, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}})) function getDmg_Brush_3(cid, level, maglevel) return (200)*-1,(400)*-1 end setCombatCallback(combat16_Brush_3, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_3") -- Areas/Combat for 2500ms local combat25_Brush_4 = createCombatObject() setCombatParam(combat25_Brush_4, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK) setCombatParam(combat25_Brush_4, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat25_Brush_4,createCombatArea({{1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 2, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1}})) function getDmg_Brush_4(cid, level, maglevel) return (10)*-1,(20)*-1 end setCombatCallback(combat25_Brush_4, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_4") -- =============== CORE FUNCTIONS =============== local function RunPart(c,cid,var,dirList,dirEmitPos) -- Part if (isCreature(cid)) then doCombat(cid, c, var) if (dirList ~= nil) then -- Emit distance effects local i = 2; while (i < #dirList) do doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList,y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1]) i = i + 2 end end end end function onCastSpell(cid, var) local startPos = getCreaturePosition(cid) RunPart(combat0_Brush,cid,var) addEvent(RunPart,900,combat9_Brush_2,cid,var) addEvent(RunPart,1600,combat16_Brush_3,cid,var) addEvent(RunPart,2500,combat25_Brush_4,cid,var) return true end como veem ele gera a xml e a magia em si mais no ot aq cyan nao tem como saber onde colo a magia criada ou se precisa dividila em area e efeito magico sei la nao tenho a minima ideia de como adiciona-la no server peço por favor que alguem me ajude explicando detalhadamente pra eu poder fazer sosinho depois. vlw.
Postado Junho 22, 2015 9 anos Seguinte. Vá na pasta do seu OT. Nela, abra a pasta data, depois procure por spells. Abra esta pasta. Você verá duas pastas, uma chamada scripts, outra lib e um arquivo chamado spells.xml . <instant name="teste" words="default" lvl="100" maglv="0" mana="0" exhaustion="30" prem="0" needlearn="0" blockwalls="0" aggressive="1" event="script" value="teste.lua"> </instant> isso é uma tag de xml. Você deve colocá-la no arquivo spells.xml, entre suas magias, entre <spells> e </spells> O outro script é um arquivo .lua . Você deve entrar na pasta scripts, copiar um arquivo de lá (qualquer um), renomeio para para o mesmo nome que você pôs na tag onde está escrito value="teste.lua" No caso, o arquivo .lua deve se chamar teste . Abra esse arquivo, delete tudo que existe dentro dele e cole o script que o spell creator gerou: -- SpellCreator generated. -- =============== COMBAT VARS =============== -- Areas/Combat for 0ms local combat0_Brush = createCombatObject() setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, 226) setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_UNDEFINEDDAMAGE) setCombatArea(combat0_Brush,createCombatArea({{0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {1, 1, 1, 0, 2, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0}})) function getDmg_Brush(cid, level, maglevel) return (200)*-1,(1000)*-1 end setCombatCallback(combat0_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local con___combat0_Brush = createConditionObject(0+CONDITION_PARALYZE) addDamageCondition(con___combat0_Brush, 3, 1000, -400) setCombatCondition(combat0_Brush, con___combat0_Brush) -- Areas/Combat for 900ms local combat9_Brush_2 = createCombatObject() setCombatParam(combat9_Brush_2, COMBAT_PARAM_EFFECT, 91) setCombatParam(combat9_Brush_2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatArea(combat9_Brush_2,createCombatArea({{0, 0, 0, 0, 1, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 1, 0, 0, 0, 1, 0, 1}, {1, 0, 0, 0, 0, 2, 0, 0, 0, 0}, {0, 1, 0, 1, 0, 0, 0, 1, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 1, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 1, 0, 0}})) function getDmg_Brush_2(cid, level, maglevel) return (500)*-1,(1000)*-1 end setCombatCallback(combat9_Brush_2, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_2") -- Areas/Combat for 1600ms local combat16_Brush_3 = createCombatObject() setCombatParam(combat16_Brush_3, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatParam(combat16_Brush_3, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatArea(combat16_Brush_3,createCombatArea({{0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {1, 1, 1, 1, 1, 2, 0, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}})) function getDmg_Brush_3(cid, level, maglevel) return (200)*-1,(400)*-1 end setCombatCallback(combat16_Brush_3, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_3") -- Areas/Combat for 2500ms local combat25_Brush_4 = createCombatObject() setCombatParam(combat25_Brush_4, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK) setCombatParam(combat25_Brush_4, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat25_Brush_4,createCombatArea({{1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 2, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1}})) function getDmg_Brush_4(cid, level, maglevel) return (10)*-1,(20)*-1 end setCombatCallback(combat25_Brush_4, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_4") -- =============== CORE FUNCTIONS =============== local function RunPart(c,cid,var,dirList,dirEmitPos) -- Part if (isCreature(cid)) then doCombat(cid, c, var) if (dirList ~= nil) then -- Emit distance effects local i = 2; while (i < #dirList) do doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1]) i = i + 2 end end end end function onCastSpell(cid, var) local startPos = getCreaturePosition(cid) RunPart(combat0_Brush,cid,var) addEvent(RunPart,900,combat9_Brush_2,cid,var) addEvent(RunPart,1600,combat16_Brush_3,cid,var) addEvent(RunPart,2500,combat25_Brush_4,cid,var) return true end Se ajudei, da um rep+ xD Qualquer outra duvida, só postar. EDIT: A propósito, tópico está na sessão errada, por favor algum adm envie pra sessão correta x.x Editado Junho 22, 2015 9 anos por SoulSarti (veja o histórico de edições)
Postado Junho 22, 2015 9 anos Autor Seguinte. Vá na pasta do seu OT. Nela, abra a pasta data, depois procure por spells. Abra esta pasta. Você verá duas pastas, uma chamada scripts, outra lib e um arquivo chamado spells.xml . <instant name="teste" words="default" lvl="100" maglv="0" mana="0" exhaustion="30" prem="0" needlearn="0" blockwalls="0" aggressive="1" event="script" value="teste.lua"> </instant> isso é uma tag de xml. Você deve colocá-la no arquivo spells.xml, entre suas magias, entre <spells> e </spells> O outro script é um arquivo .lua . Você deve entrar na pasta scripts, copiar um arquivo de lá (qualquer um), renomeio para para o mesmo nome que você pôs na tag onde está escrito value="teste.lua" No caso, o arquivo .lua deve se chamar teste . Abra esse arquivo, delete tudo que existe dentro dele e cole o script que o spell creator gerou: -- SpellCreator generated. -- =============== COMBAT VARS =============== -- Areas/Combat for 0ms local combat0_Brush = createCombatObject() setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, 226) setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_UNDEFINEDDAMAGE) setCombatArea(combat0_Brush,createCombatArea({{0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {1, 1, 1, 0, 2, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0}})) function getDmg_Brush(cid, level, maglevel) return (200)*-1,(1000)*-1 end setCombatCallback(combat0_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local con___combat0_Brush = createConditionObject(0+CONDITION_PARALYZE) addDamageCondition(con___combat0_Brush, 3, 1000, -400) setCombatCondition(combat0_Brush, con___combat0_Brush) -- Areas/Combat for 900ms local combat9_Brush_2 = createCombatObject() setCombatParam(combat9_Brush_2, COMBAT_PARAM_EFFECT, 91) setCombatParam(combat9_Brush_2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatArea(combat9_Brush_2,createCombatArea({{0, 0, 0, 0, 1, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 1, 0, 0, 0, 1, 0, 1}, {1, 0, 0, 0, 0, 2, 0, 0, 0, 0}, {0, 1, 0, 1, 0, 0, 0, 1, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 1, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 1, 0, 0}})) function getDmg_Brush_2(cid, level, maglevel) return (500)*-1,(1000)*-1 end setCombatCallback(combat9_Brush_2, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_2") -- Areas/Combat for 1600ms local combat16_Brush_3 = createCombatObject() setCombatParam(combat16_Brush_3, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatParam(combat16_Brush_3, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatArea(combat16_Brush_3,createCombatArea({{0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {1, 1, 1, 1, 1, 2, 0, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}})) function getDmg_Brush_3(cid, level, maglevel) return (200)*-1,(400)*-1 end setCombatCallback(combat16_Brush_3, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_3") -- Areas/Combat for 2500ms local combat25_Brush_4 = createCombatObject() setCombatParam(combat25_Brush_4, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK) setCombatParam(combat25_Brush_4, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat25_Brush_4,createCombatArea({{1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 2, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1}})) function getDmg_Brush_4(cid, level, maglevel) return (10)*-1,(20)*-1 end setCombatCallback(combat25_Brush_4, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_4") -- =============== CORE FUNCTIONS =============== local function RunPart(c,cid,var,dirList,dirEmitPos) -- Part if (isCreature(cid)) then doCombat(cid, c, var) if (dirList ~= nil) then -- Emit distance effects local i = 2; while (i < #dirList) do doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1]) i = i + 2 end end end end function onCastSpell(cid, var) local startPos = getCreaturePosition(cid) RunPart(combat0_Brush,cid,var) addEvent(RunPart,900,combat9_Brush_2,cid,var) addEvent(RunPart,1600,combat16_Brush_3,cid,var) addEvent(RunPart,2500,combat25_Brush_4,cid,var) return true end Se ajudei, da um rep+ xD Qualquer outra duvida, só postar. EDIT: A propósito, tópico está na sessão errada, por favor algum adm envie pra sessão correta x.x no poke cyan nao e assim a magia toda fica em pokemon moves do lib em areas do lib depois tem estar tbm no spell xml e spell script ps. como dividila nessas partes que eu nao sei. se precisar add skype. clebermoreno1 vlw
Postado Junho 22, 2015 9 anos Ahh ta, eu n tinha notado a parte do cyan. Realmente não manjo de OTs derivados... =/
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.