Ir para conteúdo
  • 0

Effect Pos.x Pos.y (Math.random)


lukervis

Pergunta

Opa, estou com uma pequena dúvida a respeito de um effect

 

 

 

 

function onThink(cid, interval)

if getPlayerLevel(cid) >= 400 then

local position = getPlayerPosition(cid)

local time = 1

local effectPositions = {

{x = pos.x, y = pos.y - 1, z = pos.z},

{x = pos.x, y = pos.y + 1, z = pos.z},

{x = pos.x - 1, y = pos.y, z = pos.z},

{x = pos.x + 1, y = pos.y, z = pos.z},

{x = pos.x - 1, y = pos.y - 1, z = pos.z},

{x = pos.x + 1, y = pos.y - 1, z = pos.z},

{x = pos.x + 1, y = pos.y + 1, z = pos.z},

{x = pos.x - 1, y = pos.y + 1, z = pos.z}

}

 

for i = 1, 6 do

doSendMagicEffect(effectPositions[math.random(#effectPositions)](4))

doSendMagicEffect(effectPositions[math.random(#effectPositions)](34))

month = addEvent(SayText, time * 1000 / 2, cid)

end

end

 

return true

end

 

 

O script basicamente seria esse, só que aqui no distro, teve vários atritos, gostaria que alguém arrumasse para mim, antes que perguntem, o effect 4 e o 34 sairiam no mesmo position, se não entender como o script funciona, me pergunte ..

 

Desde já, agradecido ..

Editado por luakao
Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

tenta assim

function onThink(cid, interval)
if getPlayerLevel(cid) >= 400 then
local pos = getPlayerPosition(cid) ---aki tava position mas abixo tava pos
local time = 1
local effectPositions = {
{x = pos.x, y = pos.y - 1, z = pos.z},
{x = pos.x, y = pos.y + 1, z = pos.z},
{x = pos.x - 1, y = pos.y, z = pos.z},
{x = pos.x + 1, y = pos.y, z = pos.z},
{x = pos.x - 1, y = pos.y - 1, z = pos.z},
{x = pos.x + 1, y = pos.y - 1, z = pos.z},
{x = pos.x + 1, y = pos.y + 1, z = pos.z},
{x = pos.x - 1, y = pos.y + 1, z = pos.z}
}

for i = 1, 6 do
doSendMagicEffect(effectPositions[math.random(#effectPositions)],4) -- separe com virgulas n com parentes
doSendMagicEffect(effectPositions[math.random(#effectPositions)],34) -- mesmo de cima
month = addEvent(SayText, time * 500, cid)-- n sei pra que serve isso, mas n a nessesidade de por 1000/2, e so por 500 que o resultado
end
end

return true
end

Link para o comentário
Compartilhar em outros sites

  • 0

que tag eu adiciono no creaturescript.xml?

<event type="?" name="Effectlv" event="script" value="Effectlv.lua"/>

 

e no ? o que eu coloko

Editado por Lucaspt
Link para o comentário
Compartilhar em outros sites

  • 0

Então, eu coloquei essa aura lord, só que é o seguinte, ela sai vários efeitos em vários sqm, eu gostaria de que saísse 1 combinação no mesmo sqm do effect 4 e 34, e onde a combinação sairia, seria um math.random das posições disponíveis

 

estilo isso

doSendMagicEffect({x=x,y=y,z=pos.z}, 4)

doSendMagicEffect({x=x,y=y,z=pos.z}, 34)

 

mas só que em math.random das positions que eu esta no script,

Editado por luakao
Link para o comentário
Compartilhar em outros sites

  • 0

function onThink(cid, interval)
if getPlayerLevel(cid) >= 400 then
local pos = getPlayerPosition(cid) 
local time = 1
local effectPositions = {
{x = pos.x, y = pos.y - 1, z = pos.z},
{x = pos.x, y = pos.y + 1, z = pos.z},
{x = pos.x - 1, y = pos.y, z = pos.z},
{x = pos.x + 1, y = pos.y, z = pos.z},
{x = pos.x - 1, y = pos.y - 1, z = pos.z},
{x = pos.x + 1, y = pos.y - 1, z = pos.z},
{x = pos.x + 1, y = pos.y + 1, z = pos.z},
{x = pos.x - 1, y = pos.y + 1, z = pos.z}
}

k = math.random(#effectPositions)

doSendMagicEffect(effectPositions[k],4) 
doSendMagicEffect(effectPositions[k],34) 
month = addEvent(SayText, time * 500, cid)

end

return true
end

n da pra comtrola o intervalo,entre um e outro

Link para o comentário
Compartilhar em outros sites

  • 0

function onThink(cid, interval)
if getPlayerLevel(cid) >= 400 then
local pos = getPlayerPosition(cid)
local time = 1
local effectPositions = {
{x = pos.x, y = pos.y - 1, z = pos.z},
{x = pos.x, y = pos.y + 1, z = pos.z},
{x = pos.x - 1, y = pos.y, z = pos.z},
{x = pos.x + 1, y = pos.y, z = pos.z},
{x = pos.x - 1, y = pos.y - 1, z = pos.z},
{x = pos.x + 1, y = pos.y - 1, z = pos.z},
{x = pos.x + 1, y = pos.y + 1, z = pos.z},
{x = pos.x - 1, y = pos.y + 1, z = pos.z}
}

k = math.random(#effectPositions)

doSendMagicEffect(effectPositions[k],4)
doSendMagicEffect(effectPositions[k],34)
month = addEvent(SayText, time * 500, cid)

end

return true
end

n da pra comtrola o intervalo,entre um e outro

 

Acho que tem como, o local time que eu adicione é o multiplicador do tempo, por exemplo 1*2000, é só colocar um addevent, tem como ? *-*

Link para o comentário
Compartilhar em outros sites

  • 0

Tranquilo, já esta ótimo já, valeu...

para variar, REP+ rs

 

 

EDIT@:

rep+ fail, limite de hoje excedido ...

amanhã eu te dou u-u

 

uma pergunta, teria como colocar o effect system em talkaction?

criar 2 setting, igual ao !afk on/off

!aura on/off

Editado por luakao
Link para o comentário
Compartilhar em outros sites

  • 0

Script AFK:

 

 

 

 

--[[

Talking Tp/signs/tiles for TFS 0.2+

70%shawak,30%Damadgerz

Idea by Damadgerz

]]--

local time = 5 -- 1 = 1 sec, 2 = 2 sec, ...

 

local say_events = {}

local function SayText(cid)

if isPlayer(cid) == TRUE then

if say_events[getPlayerGUID(cid)] ~= nil then

if isPlayer(cid) == TRUE then

doSendAnimatedText(getPlayerPosition(cid),"Ausente!", math.random(01,255))

end

say_events[getPlayerGUID(cid)] = addEvent(SayText, time * 1000 / 2, cid)

end

end

return TRUE

end

function onSay(cid, words, param, channel)

if(param == '') then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.")

return true

end

if param == "on" then

if isPlayer(cid) == TRUE then

doSendAnimatedText(getPlayerPosition(cid),"Ausente!", math.random(01,255))

end

say_events[getPlayerGUID(cid)] = addEvent(SayText, time * 1000, cid)

doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,"You Now Stated you are (afk).")

elseif param == "off" then

stopEvent(say_events[getPlayerGUID(cid)])

say_events[getPlayerGUID(cid)] = nil

doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,"You Now stated your are not (afk).")

end

return TRUE

end

 

 

 

Ao invés de ser if getplayerlevel, poderia colocar um if getplayervocation?

Editado por luakao
Link para o comentário
Compartilhar em outros sites

  • 0

ve se assim da

ocal time = 5 -- 1 = 1 sec, 2 = 2 sec, ...

local say_events = {}
local function SayText1(cid)
if isPlayer(cid) == TRUE then
if say_events[getPlayerGUID(cid)] ~= nil then
local pos = getPlayerPosition(cid)

local effectPositions = {
{x = pos.x, y = pos.y - 1, z = pos.z},
{x = pos.x, y = pos.y + 1, z = pos.z},
{x = pos.x - 1, y = pos.y, z = pos.z},
{x = pos.x + 1, y = pos.y, z = pos.z},
{x = pos.x - 1, y = pos.y - 1, z = pos.z},
{x = pos.x + 1, y = pos.y - 1, z = pos.z},
{x = pos.x + 1, y = pos.y + 1, z = pos.z},
{x = pos.x - 1, y = pos.y + 1, z = pos.z}
}

k = math.random(#effectPositions)

doSendMagicEffect(effectPositions[k],4)
doSendMagicEffect(effectPositions[k],34)


say_events[getPlayerGUID(cid)] = addEvent(SayText1, time * 1000 / 2, cid)
end
end
return TRUE
end
function onSay(cid, words, param, channel)
if getPlayerVocation(cid) == (id da voc) then ------aki configura a voc
if(param == '') then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.")
return true
end
if param == "on" then
if isPlayer(cid) == TRUE then
local pos = getPlayerPosition(cid)

local effectPositions = {
{x = pos.x, y = pos.y - 1, z = pos.z},
{x = pos.x, y = pos.y + 1, z = pos.z},
{x = pos.x - 1, y = pos.y, z = pos.z},
{x = pos.x + 1, y = pos.y, z = pos.z},
{x = pos.x - 1, y = pos.y - 1, z = pos.z},
{x = pos.x + 1, y = pos.y - 1, z = pos.z},
{x = pos.x + 1, y = pos.y + 1, z = pos.z},
{x = pos.x - 1, y = pos.y + 1, z = pos.z}
}

k = math.random(#effectPositions)

doSendMagicEffect(effectPositions[k],4)
doSendMagicEffect(effectPositions[k],34)
end
say_events[getPlayerGUID(cid)] = addEvent(SayText1, time * 1000, cid)
doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,"aura was been actived.")
elseif param == "off" then
stopEvent(say_events[getPlayerGUID(cid)])
say_events[getPlayerGUID(cid)] = nil
doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,"aura was been desactived.")
end
return TRUE
end
end

Editado por lordbug99
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...