Ir para conteúdo
  • 0

Piso que enche mana!


markim1986

Pergunta

Nome do Script: Piso que enche mana!

Tipo do Script: Nao sei!

Versão Utilizada: 8.60

Servidor Utilizado: TheLostServer

Nível de Experiência: Iniciante

Informações Extras: --

 

Ola, gostaria de saber se tem como criar um piso que encha mana que tenha uma variavel de tempo e quantidade de mana por segundos, quero fazer um treiner VIP.

Agradeço desde ja!

REP+

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)

function addManaInTime(cid)
local pos = getCreaturePosition(cid)
if isPlayer(cid) and getCreatureMana(cid) ~= getCreatureMaxMana(cid) then
doCreatureAddMana(cid, 222)
doSendMagicEffect(pos, 212)
addEvent(addManaInTime, 180, cid)
end
end

addManaInTime(cid)
return true
end

 

<movevent type="StepIn" itemid="2212" event="script" value="mana.lua"/>

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

  • 0

Mudando um pouco o do caotic que tava com erro e pra deixa mais facil pro player.

 

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)

function addManaInTime(cid)
local pos = getCreaturePosition(cid)
local playerm = getCreatureMana(cid)
local playermaxm = getCreatureMaxMana(cid)
local addmana = 1000 --
if isPlayer(cid) and playerm ~= playermaxm then
doCreatureAddMana(cid, addmana)
doSendMagicEffect(pos, 212)
addEvent(addManaInTime, 180, cid)
end
end

addManaInTime(cid)
return true
end

 

isso aqui você adiciona em data/movements/movements.xml

 

<movevent type="StepIn" itemid="2212" event="script" value="mana.lua"/>

 

 

 

se o meu tiver algum erro corrigam ai.

Editado por HesLife
Retirando spoiler bugado
Link para o comentário
Compartilhar em outros sites

  • 0

oia o cara kk /\

e ja aviso q se o player fica subindo e saindo do tile vai curar a mana dele bem rapidinhu com tanto addEvent heim.. ou capaz de da meuda ainda...

Link para o comentário
Compartilhar em outros sites

  • 0

@Slicer

 

Algum problema ?, caso ache que meu script tenha algo errado, por favor o arrume , eu ficaria grato.

agora por favor não polua o tópico com comentários desnecessários.

 

@Yan

 

Tudo bem vou colocar, não pus porque tem algumas pessoas que não conseguem abrir.

Link para o comentário
Compartilhar em outros sites

  • 0

Mudando um pouco o do caotic que tava com erro e pra deixa mais facil pro player.

 

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)

 

function addManaInTime(cid)

local pos = getCreaturePosition(cid)

local playerm = getCreatureMana(cid)

local playermaxm = getCreatureMaxMana(cid)

local addmana = 1000 -- quanto mana vai adicionar

if isPlayer(cid) and playerm ~= playermaxm then

doCreatureAddMana(cid, addmana)

doSendMagicEffect(pos, 212)

addEvent(addManaInTime, 180, cid)

end

end

 

addManaInTime(cid)

return true

end

 

isso aqui você adiciona em data/movements/movements.xml

 

<movevent type="StepIn" itemid="2212" event="script" value="mana.lua"/>

 

 

@Caotic , quando for postar um script que não tenha testado, você pode usar isso http://www.lua.org/cgi-bin/demo

pra ver se ao menos tem algum erro ok ?

 

se o meu tiver algum erro corrigam ai.

 

Muito show cara, 99,9%, o unico detalhe que gostaria que "melhorase" nesse script é o seguinte, como minha intenção é colocar esse script num treiner VIP, ele nao pode ficar dando mana só pra quem pisar, ou seja o q eu preciso é que opiso hele mana como se fose akeles pisos faltantes, comprende?

porque dai independe de quem vai estar no piso e nesse script ele ta enchendo a mana muito rapido (velocidade nao quantidade) e se o player estiver com a mana completa ele para de enxer, fico grato por me ajudar, se pode alterar esses detalhes vai ficar 100%.

 

Edit - Outro "bug" que vi para o que eu quero é o seguinte, como a velocidade esta muito alta e quando a mana do player xega no maximo eu diminui a quantidade de mana para "20", ou seja agora o player pode somente pisar no piso e sair por ai com a mana enchendo para sempre ate que a mesma encha por completo, ai cara pode voltar e pisar dinovo, infinitamente.

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

  • 0

Mudando um pouco o do caotic que tava com erro e pra deixa mais facil pro player.

 

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)

 

function addManaInTime(cid)

local pos = getCreaturePosition(cid)

local playerm = getCreatureMana(cid)

local playermaxm = getCreatureMaxMana(cid)

local addmana = 1000 -- quanto mana vai adicionar

if isPlayer(cid) and playerm ~= playermaxm then

doCreatureAddMana(cid, addmana)

doSendMagicEffect(pos, 212)

addEvent(addManaInTime, 180, cid)

end

end

 

addManaInTime(cid)

return true

end

 

isso aqui você adiciona em data/movements/movements.xml

 

<movevent type="StepIn" itemid="2212" event="script" value="mana.lua"/>

 

 

@Caotic , quando for postar um script que não tenha testado, você pode usar isso http://www.lua.org/cgi-bin/demo

pra ver se ao menos tem algum erro ok ?

 

se o meu tiver algum erro corrigam ai.

 

Eu conheço sim o debbuger lua demo.

O sinal de diferença foi coloco de maneira incorreta.

Obrigado por concertar.

Link para o comentário
Compartilhar em outros sites

  • 0

teu script? uahuah ta bom ta bom...

 

@topic

ve se isso serve...

local control = {}
local time = 1000  --tempo entre os addMana
local addMana = 500  --qnt mana vai subir

local function addMana(cid)
if isPlayer(cid) then
  doPlayerAddMana(cid, addMana)
  doSendMagicEffect(getPlayerPosition(cid), 212)
  control[cid] = addEvent(addMana, time, cid)
elseif control[cid] then
  control[cid] = nil
end
end

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
if control[cid] then
  stopEvent(control[cid])
  control[cid] = nil
end
addMana(cid)
return true
end

function onStepOut(cid, item, position, lastPosition, fromPosition, toPosition, actor)
if control[cid] then
stopEvent(control[cid])
control[cid] = nil
end
return true
end

 

e a tag do stepOut..

<movevent type="StepOut" itemid="2212" event="script" value="mana.lua"/>

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

  • 0

@Slicer

 

Algum problema ?, caso ache que meu script tenha algo errado, por favor o arrume , eu ficaria grato.

agora por favor não polua o tópico com comentários desnecessários.

 

@Yan

 

Tudo bem vou colocar, não pus porque tem algumas pessoas que não conseguem abrir.

 

Eu falei CODE e spoiler não so Spoiler, e seu script ta pequeno então pode colocar em CODE, e como não da para abrir um CODE o.0.

Link para o comentário
Compartilhar em outros sites

  • 0

@Slicer

 

Algum problema ?, caso ache que meu script tenha algo errado, por favor o arrume , eu ficaria grato.

agora por favor não polua o tópico com comentários desnecessários.

 

@Yan

 

Tudo bem vou colocar, não pus porque tem algumas pessoas que não conseguem abrir.

 

Eu falei CODE e spoiler não so Spoiler, e seu script ta pequeno então pode colocar em CODE, e como não da para abrir um CODE o.0.

 

 

kkk' , eu só tinha visto spoiler, e sempre qnd eu tento por code da fail e.e, mas vlw a proxima eu coloko

ps : obrigado por arrumar caotic

Link para o comentário
Compartilhar em outros sites

  • 0

teu script? uahuah ta bom ta bom...

 

@topic

ve se isso serve...

local control = {}
local time = 1000  --tempo entre os addMana
local addMana = 500  --qnt mana vai subir

local function addMana(cid)
if isPlayer(cid) then
  doPlayerAddMana(cid, addMana)
  doSendMagicEffect(getPlayerPosition(cid), 212)
  control[cid] = addEvent(addMana, time, cid)
elseif control[cid] then
  control[cid] = nil
end
end

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
if control[cid] then
  stopEvent(control[cid])
  control[cid] = nil
end
addMana(cid)
return true
end

function onStepOut(cid, item, position, lastPosition, fromPosition, toPosition, actor)
if control[cid] then
stopEvent(control[cid])
control[cid] = nil
end
return true
end

 

e a tag do stepOut..

<movevent type="StepOut" itemid="2212" event="script" value="mana.lua"/>

 

 

Nao deu nao rapaz, nao deu nenhum erro no console mas o piso ta normal, esta certo essas linhas no mov.xml correto?

 

<movevent type="StepIn" itemid="458" event="script" value="mana.lua"/>
<movevent type="StepOut" itemid="458" event="script" value="mana.lua"/>

 

mana.lua

 

local control = {}
local time = 1000  --tempo entre os addMana
local addMana = 500  --qnt mana vai subir
local function addMana(cid)
if isPlayer(cid) then
  doPlayerAddMana(cid, addMana)
  doSendMagicEffect(getPlayerPosition(cid), 212)
  control[cid] = addEvent(addMana, time, cid)
elseif control[cid] then
  control[cid] = nil
end
end
function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
if control[cid] then
  stopEvent(control[cid])
  control[cid] = nil
end
addMana(cid)
return true
end
function onStepOut(cid, item, position, lastPosition, fromPosition, toPosition, actor)
if control[cid] then
stopEvent(control[cid])
control[cid] = nil
end
return true
end

 

Agradeço desde ja!

Link para o comentário
Compartilhar em outros sites

  • 0

tenta com esse.. isso q da posta sem testar ^^

local control = {}

function addManaInTime(cid)
local time = 1000  --tempo entre os addMana
local addMana = 500  --qnt mana vai subir
if isPlayer(cid) then
  doPlayerAddMana(cid, addMana)
  doSendMagicEffect(getPlayerPosition(cid), 212)
  control[cid] = addEvent(addManaInTime, time, cid)
elseif control[cid] then
  control[cid] = nil
end
end

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
if control[cid] then
  stopEvent(control[cid])
  control[cid] = nil
end
addManaInTime(cid)
return true
end

function onStepOut(cid, item, position, lastPosition, fromPosition, toPosition, actor)
if control[cid] then
  stopEvent(control[cid])
  control[cid] = nil
end
return true
end

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

  • 0

tenta com esse.. isso q da posta sem testar ^^

local control = {}

function addManaInTime(cid)
local time = 1000  --tempo entre os addMana
local addMana = 500  --qnt mana vai subir
if isPlayer(cid) then
  doPlayerAddMana(cid, addMana)
  doSendMagicEffect(getPlayerPosition(cid), 212)
  control[cid] = addEvent(addManaInTime, time, cid)
elseif control[cid] then
  control[cid] = nil
end
end

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
if control[cid] then
  stopEvent(control[cid])
  control[cid] = nil
end
addManaInTime(cid)
return true
end

function onStepOut(cid, item, position, lastPosition, fromPosition, toPosition, actor)
if control[cid] then
  stopEvent(control[cid])
  control[cid] = nil
end
return true
end

 

Perfeito meu amigo!!!

REP+

 

Edit - acabo os REP+, amanha lhe dou!

 

Podem mover o topic!

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

×
×
  • Criar Novo...