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

lukervis
em Scripts
  • 1
  • 2

lukervis

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 01/06/08Posts: 45

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 ..

Vinc

The white fox
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 30/10/11Posts: 625Gênero: Masculino

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

^w^

Lucaspt

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 15/12/10Posts: 24

lord isso vai em qual pasta ? action ,creaturescripts?

Vinc

The white fox
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 30/10/11Posts: 625Gênero: Masculino

creaturescript

^w^

Lucaspt

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 15/12/10Posts: 24

que tag eu adiciono no creaturescript.xml?

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

 

e no ? o que eu coloko

Vinc

The white fox
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 30/10/11Posts: 625Gênero: Masculino

think

^w^

lukervis

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 01/06/08Posts: 45

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,

Vinc

The white fox
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 30/10/11Posts: 625Gênero: Masculino

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

^w^

lukervis

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 01/06/08Posts: 45

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 ? *-*

Vinc

The white fox
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 30/10/11Posts: 625Gênero: Masculino

o onthink vai executa sempara de qualquer geito

^w^

lukervis

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 01/06/08Posts: 45

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

Vinc

The white fox
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 30/10/11Posts: 625Gênero: Masculino

sim dai dava pra fase so com talkaction se usa o onthink,passa o afk dai eu fasso emcima fica mais facil

^w^

lukervis

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 01/06/08Posts: 45

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?

Vinc

The white fox
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 30/10/11Posts: 625Gênero: Masculino

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

^w^

lukervis

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 01/06/08Posts: 45

PERFEITO!

teria como você fazer essa aura somente para tal ID vocation ?

  • 1
  • 2