Postado Julho 19, 2020 4 anos ola gostaria de centralizar os efeito desse script se alguem puder ajudar Você tem o código disponível? Se tiver publique-o aqui: local min, max = 1700,1900 --Ataque mínino e ataque máximo local w = { [1] = {ef = 173, sh = 41, dmg = COMBAT_FIREDAMAGE}, [2] = {ef = 42, sh = 28, dmg = COMBAT_ICEDAMAGE}, [3] = {ef = 46, sh = 38, dmg = COMBAT_POISONDAMAGE}, [4] = {ef = 17, sh = 31, dmg = COMBAT_DEATHDAMAGE}, [5] = {ef = 47, sh = 35, dmg = COMBAT_ENERGYDAMAGE}, [6] = {ef = 36, sh = 31, dmg = COMBAT_PHYSICALDAMAGE}, [7] = {ef = 49, sh = 37, dmg = COMBAT_HOLYDAMAGE} } function onUseWeapon(cid, var) local effect = getPlayerStorageValue(cid, 4561) local target = getCreatureTarget(cid) if target ~= 0 then local wx = w[effect] or w[math.random(#w)] doSendDistanceShoot(getThingPos(cid), getThingPos(target), wx.sh) addEvent(doAreaCombatHealth, 100, cid, wx.dmg, getThingPos(target), 0, -min, -max, wx.ef) end return true end Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.
Postado Julho 19, 2020 4 anos Basicamente tu pode adicionar na tabela as posições de cada efeito. "Como assim?" Simples, pra centralizar um efeito você vai precisar definir por exemplo: x + 1, y + 2, esses valores você pode adicionar direto na tabela de acordo com cada efeito.(Isso vai permitir que você adicione efeitos em posições diferentes, de acordo com o que você definir dentro da tabela). Vou deixar um exemplo de como você pode fazer isso e aplicar no script. local w = { [1] = {ef = 173, sh = 41, dmg = COMBAT_FIREDAMAGE, posx = 1, posy = 1}, -- Isto seria a aplicação dentro da tabela, bastaria replicar em cada linha adicionada. Agora para fazer a script reconhecer essas posições definidas basta fazer o seguinte: local pos = {x = getThingPos(target).x + (wx.posx), y = getThingPos(target).y + (wx.posy), z = getThingPos(target).z} -- Aqui vai trabalhar em cima das posições definidas la na tabela. addEvent(doAreaCombatHealth, 100, cid, wx.dmg, pos, 0, -min, -max, wx.ef) -- E aqui vai aplicar o efeito na posição final. Espero ter ajudado. Se ficar alguma dúvida só falar.
Postado Julho 20, 2020 4 anos Autor Em 19/07/2020 em 20:44, Tottin disse: Basicamente tu pode adicionar na tabela as posições de cada efeito. "Como assim?" Simples, pra centralizar um efeito você vai precisar definir por exemplo: x + 1, y + 2, esses valores você pode adicionar direto na tabela de acordo com cada efeito.(Isso vai permitir que você adicione efeitos em posições diferentes, de acordo com o que você definir dentro da tabela). Vou deixar um exemplo de como você pode fazer isso e aplicar no script. local w = { [1] = {ef = 173, sh = 41, dmg = COMBAT_FIREDAMAGE, posx = 1, posy = 1}, -- Isto seria a aplicação dentro da tabela, bastaria replicar em cada linha adicionada. Agora para fazer a script reconhecer essas posições definidas basta fazer o seguinte: local pos = {x = getThingPos(target).x + (wx.posx), y = getThingPos(target).y + (wx.posy), z = getThingPos(target).z} -- Aqui vai trabalhar em cima das posições definidas la na tabela. addEvent(doAreaCombatHealth, 100, cid, wx.dmg, pos, 0, -min, -max, wx.ef) -- E aqui vai aplicar o efeito na posição final. Espero ter ajudado. Se ficar alguma dúvida só falar. então acho que eu consegui entender a primeira parte, eu devo adicionar x para direita ou esquerda, e y para cima e tals neh. mas pro script reconhecer eu devo so copiar essa segunda parte e coloca la
Postado Julho 20, 2020 4 anos Em 20/07/2020 em 04:53, Senju uchira disse: então acho que eu consegui entender a primeira parte, eu devo adicionar x para direita ou esquerda, e y para cima e tals neh. mas pro script reconhecer eu devo so copiar essa segunda parte e coloca la Exatamente, a primeira parte é pra "registrar as posições do efeito" (isso dentro da tabela), na segunda parte é onde a script vai trabalhar em cima dessas posições pra executar o efeito na posição desejada. Basta trocar esta linha do seu script: addEvent(doAreaCombatHealth, 100, cid, wx.dmg, getThingPos(target), 0, -min, -max, wx.ef) por estas duas: local pos = {x = getThingPos(target).x + (wx.posx), y = getThingPos(target).y + (wx.posy), z = getThingPos(target).z} -- Aqui vai trabalhar em cima das posições definidas la na tabela. addEvent(doAreaCombatHealth, 100, cid, wx.dmg, pos, 0, -min, -max, wx.ef) -- E aqui vai aplicar o efeito na posição final.
Postado Julho 20, 2020 4 anos Autor local min, max = 1700,1900 --Ataque mínino e ataque máximo local w = { [1] = {ef = 173, sh = 41, dmg = COMBAT_FIREDAMAGE, posx = 1, posy = 1}, -- Isto seria a aplicação dentro da tabela, bastaria replicar em cada linha adicionada. [2] = {ef = 117, sh = 101, dmg = COMBAT_ICEDAMAGE, posx = 1, posy = 1}, [3] = {ef = 46, sh = 38, dmg = COMBAT_POISONDAMAGE, posx = 1, posy = 1}, [4] = {ef = 17, sh = 31, dmg = COMBAT_DEATHDAMAGE, posx = 1, posy = 1}, [5] = {ef = 47, sh = 35, dmg = COMBAT_ENERGYDAMAGE, posx = 1, posy = 1}, [6] = {ef = 36, sh = 31, dmg = COMBAT_PHYSICALDAMAGE, posx = 1, posy = 1}, [7] = {ef = 81, sh = 104, dmg = COMBAT_HOLYDAMAGE, posx = 1, posy = 1} } function onUseWeapon(cid, var) local effect = getPlayerStorageValue(cid, 4561) local target = getCreatureTarget(cid) if target ~= 0 then local wx = w[effect] or w[math.random(#w)] doSendDistanceShoot(getThingPos(cid), getThingPos(target), wx.sh) local pos = {x = getThingPos(target).x + (wx.posx), y = getThingPos(target).y + (wx.posy), z = getThingPos(target).z} -- Aqui vai trabalhar em cima das posições definidas la na tabela. addEvent(doAreaCombatHealth, 100, cid, wx.dmg, pos, 0, -min, -max, wx.ef) -- E aqui vai aplicar o efeito na posição final. end return true end fiz assim mas o item paro de dar dano acho que fiz algo de errado centralizo os efeito mas nao da dano Em 20/07/2020 em 14:17, Tottin disse: Exatamente, a primeira parte é pra "registrar as posições do efeito" (isso dentro da tabela), na segunda parte é onde a script vai trabalhar em cima dessas posições pra executar o efeito na posição desejada. Basta trocar esta linha do seu script: addEvent(doAreaCombatHealth, 100, cid, wx.dmg, getThingPos(target), 0, -min, -max, wx.ef) por estas duas: local pos = {x = getThingPos(target).x + (wx.posx), y = getThingPos(target).y + (wx.posy), z = getThingPos(target).z} -- Aqui vai trabalhar em cima das posições definidas la na tabela. addEvent(doAreaCombatHealth, 100, cid, wx.dmg, pos, 0, -min, -max, wx.ef) -- E aqui vai aplicar o efeito na posição final. centralizo mas nao causa dano nenhum Editado Julho 20, 2020 4 anos por Senju uchira (veja o histórico de edições)
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.