Postado Abril 4, 2016 9 anos 30 minutos atrás, KotZletY disse: " Posta o script da spell que te dou um exemplo de como fazer, e ja testamos. " Estou aguardando a spell pra arrumar pra você, e sim, se por pelo spells.xml, não vai poder usar outra spell do mesmo tipo (ataque, support ou cura) pelo tempo do exhaust, mas vou fazer exhausts individuais, ai você vai poder colocar ele nas spells que quiser que exhaustem junto, ou exhaust para elas individuais.
Postado Abril 4, 2016 9 anos Autor 2 minutos atrás, DukeeH disse: " Posta o script da spell que te dou um exemplo de como fazer, e ja testamos. " Pode crê, compreendi perfeitamente.. Bom aqui ta uma das Spell para dar um exemplo.. E ela não tem exhausted dentro do script. Spoiler local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 214) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -40.2, 1, -40.2, 1) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 214) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -40.2, 1, -40.2, 1) arr1 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 3, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } arr2 = { {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0}, {1, 1, 1, 1, 0, 2, 0, 1, 1, 1, 1}, {0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) setCombatArea(combat1, area1) setCombatArea(combat2, area2) local function onCastSpell1(parameters) return isPlayer(parameters.cid) and doCombat(parameters.cid, combat1, parameters.var) end local function onCastSpell2(parameters) return isPlayer(parameters.cid) and doCombat(parameters.cid, combat2, parameters.var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var} addEvent(onCastSpell1, 100, parameters) addEvent(onCastSpell2, 630, parameters) return TRUE end E aqui um pedaço da spell.xml que vou ter que apagar exhausted de todas, e adicionar em cada Jutsu! " Vai demorar pra Krl " Mais fazer o que né ? Spoiler <instant name="Susano Madara" words="susano madara" prem="0" aggressive="0" selftarget="1" lvl="250" mana="2000" exhaustion="1000" event="script" value="madara/susanomadara.lua"> <vocation id="600"/> <vocation id="601"/> <vocation id="602"/> <vocation id="603"/> <vocation id="604"/> <vocation id="605"/> <vocation id="606"/> <vocation id="607"/> <vocation id="608"/> </instant> <instant name="Meteor No Jutsu" words="meteor no jutsu" lvl="200" mana="5000" aggressive="1" range="5" blockwalls="1" needtarget="1" exhaustion="1500" needlearn="0" event="script" value="madara/meteor no jutsu.lua"> <vocation id="600"/> <vocation id="601"/> <vocation id="602"/> <vocation id="603"/> <vocation id="604"/> <vocation id="605"/> <vocation id="606"/> <vocation id="607"/> <vocation id="608"/> </instant> <instant name="Susano Atack No Jutsu" words="susano atack no jutsu" lvl="200" mana="5000" aggressive="1" range="5" blockwalls="1" needtarget="1" exhaustion="1500" needlearn="0" event="script" value="madara/susanoatack.lua"> <vocation id="600"/> <vocation id="601"/> <vocation id="602"/> <vocation id="603"/> <vocation id="604"/> <vocation id="605"/> <vocation id="606"/> <vocation id="607"/> <vocation id="608"/> </instant> <instant name="Dai Katon Meteor No Jutsu" words="dai katon meteor no jutsu" lvl="200" mana="5000" aggressive="1" range="5" blockwalls="1" needtarget="1" exhaustion="1500" needlearn="0" event="script" value="madara/dai katon meteor.lua"> <vocation id="600"/> <vocation id="601"/> <vocation id="602"/> <vocation id="603"/> <vocation id="604"/> <vocation id="605"/> <vocation id="606"/> <vocation id="607"/> <vocation id="608"/> </instant> <instant name="Katon Sohenka No Jutsu" words="katon sohenka no jutsu" lvl="200" mana="5000" aggressive="1" range="5" blockwalls="1" needtarget="0" exhaustion="1500" needlearn="0" event="script" value="madara/katon sohenka.lua"> <vocation id="600"/> <vocation id="601"/> <vocation id="602"/> <vocation id="603"/> <vocation id="604"/> <vocation id="605"/> <vocation id="606"/> <vocation id="607"/> <vocation id="608"/> </instant> Vai ser foda editar todas, tem mais de de 100 jutsus nessa porra, mais é noiz! Hu3hu3hu3
Postado Abril 6, 2016 9 anos Autor Em 04/04/2016 at 17:59, DukeeH disse: Não tem outra maneira de fazer isso não ? Algum code nas source, que faça com que o Exhausted de uma spell só interfira somente na própia spell e não nas outras ? To com mais de 300 Spell no meu Nto, editar cada uma, cada spell é diferente da outra, sem falar que os scripts são em ordens diferentes então a mesma função exhaustam de uma não funcionara na mesma ordem da outra, então cada um tem que ser um exhaustion diferente, em ordem diferente. Sem falar que terei que ficar testando até ver se funcionou... Não tem outra maneira de deixa esses exhausted pelo spell.xml ? Algum code nas source sla, Uso TFS 0.3.6 pl1 e o server é versão 8.54!
Postado Abril 6, 2016 9 anos Solução 1 hora atrás, KotZletY disse: Uso TFS 0.3.6 pl1 e o server é versão 8.54! Assim: local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 214) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -40.2, 1, -40.2, 1) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 214) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -40.2, 1, -40.2, 1) arr1 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 3, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } arr2 = { {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0}, {1, 1, 1, 1, 0, 2, 0, 1, 1, 1, 1}, {0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) setCombatArea(combat1, area1) setCombatArea(combat2, area2) local function onCastSpell1(parameters) return isPlayer(parameters.cid) and doCombat(parameters.cid, combat1, parameters.var) end local function onCastSpell2(parameters) return isPlayer(parameters.cid) and doCombat(parameters.cid, combat2, parameters.var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var} if getPlayerStorageValue(cid, 3200) <= 0 then setPlayerStorageValue(cid, 3200, os.time()+10000) addEvent(onCastSpell1, 100, parameters) addEvent(onCastSpell2, 630, parameters) else doPlayerSendCancel(cid, "You are exhausted.") end return TRUE end Agora vou explicar para caso dê certo você fazer nas outras: function onCastSpell(cid, var) local parameters = { cid = cid, var = var} if getPlayerStorageValue(cid, 3200) <= 0 then setPlayerStorageValue(cid, 3200, os.time()+10000) addEvent(onCastSpell1, 100, parameters) addEvent(onCastSpell2, 630, parameters) else doPlayerSendCancel(cid, "You are exhausted.") end return TRUE end Basicamente eu alterei só essa parte, a função onCastSpell, como a magia tem 2 efeitos, e 2 danos, ela fica com os 2 addevents ali, como já tinha antes. As partes que mudam são if getPlayerstorage 3200 <= então deixa o cara dar a skill e adiciona o storage 3200 por 10segundos (10000). Caso contrario (storage 3200 > 0) da a mensagem do exhaust. Em spells.xml você põem exhaustion 0 em todas as spells que mudar isso (o exhaust vai ficar dentro dela) Caso queira que não possa dar 2 spells juntas coloque o mesmo storage nas duas (3200 no exemplo) caso contrario vá aumentando/diminuindo o numero 3201, 3202 para spells diferentes. Parece que vai demorar, mas é rapido, mesmo se tiver bastante spells. Só editar a onCastSpell cuidando para quantos efeitos/fases a spell tem, e tirar o exhaust dela no spells.xml
Postado Abril 11, 2016 9 anos Em 02/04/2016 at 19:44, KotZletY disse: Iae galera, é o seguinte, tava vendo umas Spell's aqui no meu servidor, e coloquei 2 spell na hotkey do client, então usei as duas, foi quando eu vir que quando uso a primeira, em quanto o exhausted da primeira não acabar, eu não poderei usar a proxima, exemplo: Eu uso a Spell " Tk no jutsu " que tem 10 segundos de exhausted, em quanto os 10 segundos de exhausted dessa Spell não acabar, eu não posso usar nenhuma outra! Como posso resolver isso ? Obrigado desde já, darei Rep+ aquele que puder me ajudar! xD Pra vc combar e facil nao precisa ser da propria spell com o exausted '==' da pra fazer pelo spell.xml eu faço assim '==' Atack Area = 1200 ou 1000 de exausted Atack de target = o mais forte tipo tira 50k ele e 2000 de exausted se vc quiser adc + 1 so vc colocar menos exausted se tiver 2000 - 1200 - 1000 Exemplo Katon sohenka no jutsu - 1 = 1200 Dai Katon Meteor - 2 = 1000 Katon Borukaki - 3 = 2000 Tipo assim se nao tendeu me chama la no Facebook '=='
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.