BE
dúvida

Ajudar A Completar Este Script (Ring Atacck Target Com Sd)

Por Bennyhappy, 12 de jul. de 2012 em Scripts

script
9
994
BennyhappyB
12 de julho de 2012 às 16:39

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT,CONST_ANI_SUDDENDEATH)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -60, -1, -60, 5, 5, 4, 7)

function onEquip(cid, var)
doCombat(cid, combat, var)
return TRUE
end

function onDeEquip(cid, item, slot)
doSendMagicEffect(getPlayerPosition(cid), 3)
return TRUE
end

 

 

 

<movevent type="Equip" itemid="11253" slot="ring" event="script" value="ringSD.lua"/>
<movevent type="DeEquip" itemid="11253" slot="ring" event="script" value="ringSD.lua"/>

 

Eu tenho esse problema:

 

[11/07/2012 15:10:30] [Error - MoveEvents Interface]
[11/07/2012 15:10:30] data/movements/scripts/ringSD.lua:onEquip
[11/07/2012 15:10:30] Description:
[11/07/2012 15:10:30] (luaDoCombat) Variant not found

é server 8.6

12 de julho de 2012 às 18:21

CARA CRIE UMA STAFF MAIS INVES DE COLOCAR ID DA STAFF COLOQUE ID DO RING

E NO MOVEMENTS COLOQUE PARA AS VOCAÇOES QUE VC QUEIRA USAR O RING

BennyhappyB
12 de julho de 2012 às 18:36

nenhum irmão, eu quero usar o ring no seu slot = ring, sd ataque jogador target

OneshotO
12 de julho de 2012 às 21:50

Totalmente errado.

 

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT,CONST_ANI_SUDDENDEATH)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -60, -1, -60, 5, 5, 4, 7)

function onEquip(cid, item, slot)
   local target = getCreatureTarget(cid)
   if(target == 0) then
       return true
   end
   return doCombat(cid, combat, numberToVariant(target))
end

function onDeEquip(cid, item, slot)
   doSendMagicEffect(getThingPosition(cid), CONST_ME_BLOCKHIT)
   return true
end

Editado Julho 12 por Oneshot

BennyhappyB
13 de julho de 2012 às 02:18

trabalho ataca o target, mas apenas no momento de colocá-lo no slot, lança um SD apenas um SD, não atacando constantemente sd, teria que adicionar ticks? o um interval="2000" ?¿

Editado Julho 13 por beenii

OneshotO
13 de julho de 2012 às 07:43
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT,CONST_ANI_SUDDENDEATH)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -60, -1, -60, 5, 5, 4, 7)

local function doCombatWithDelay(cid, combat, var, itemid)
   doCombat(cid, combat, var)
   if getPlayerSlotItem(cid, CONST_SLOT_RING) == itemid then
       addEvent(doCombatWithDelay, 1 * 1000, cid, combat, var, itemid)
   end
end

function onEquip(cid, item, slot)
   local target = getCreatureTarget(cid)
   if(target == 0) then
       return true
   end
   doCombat(cid, combat, numberToVariant(target))
   addEvent(doCombatWithDelay, 1 * 1000, cid, combat, numberToVariant(target), item.itemid)
end

function onDeEquip(cid, item, slot)
   doSendMagicEffect(getThingPosition(cid), CONST_ME_BLOCKHIT)
   return true
end

VincV
13 de julho de 2012 às 11:53

tenhum erro no seu script oneshot,se o player fica tirando e colocando o ring ele vai solta um monte sempara,use uma storage ou stopEvent pra para o event.

OneshotO
13 de julho de 2012 às 12:01

Fiz de cabeça o script, então não prestei atenção nisso.

 

Enfim,

 

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT,CONST_ANI_SUDDENDEATH)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -60, -1, -60, 5, 5, 4, 7)

local combat_events = {}

local function doCombatWithDelay(cid, combat, var, itemid)
   if isCreature(cid) then
       doCombat(cid, combat, var)
       if getPlayerSlotItem(cid, CONST_SLOT_RING) == itemid then
           combat_events[cid] = addEvent(doCombatWithDelay, 1 * 1000, cid, combat, var, itemid)
       end
   end
end

function onEquip(cid, item, slot)
   local target = getCreatureTarget(cid)
   if(target == 0) then
       return true
   end
   doCombat(cid, combat, numberToVariant(target))
   combat_events[cid] = addEvent(doCombatWithDelay, 1 * 1000, cid, combat, numberToVariant(target), item.itemid)
end

function onDeEquip(cid, item, slot)
   doSendMagicEffect(getThingPosition(cid), CONST_ME_BLOCKHIT)
   stopEvent(combat_events[cid])
   return true
end

Editado Julho 13 por Oneshot

BennyhappyB
13 de julho de 2012 às 17:27

sei, porque se eu tiver Ring colocado em seu slot, não jogue SD para o targets, apenas funsiona, quando com um target tentar colocar o ring na respectiva slot, lança dois SD mas não colocar o Ring na respectiva Slot, e repito apenas 2 SD, eu quero ter o Ring na respectiva Slot = Ring , atacar o SD jogadores (Target)