Ir para conteúdo

[Fechado]


levy1233

Posts Recomendados

Olá pessoal, venho até vocês pedir ajuda pro seguinte:

 

Tpw, na hora q a premium do cara acaba e ele passa num tile que só premy pode passar, ele será teleportado para o templo...

 

O problema está sendo que quando qualquer creature (que não seja player) passa no tile, ele retorna os seguintes erros:

 

[Error - MoveEvents Interface] 
data/movements/scripts/premyarea.lua:onStepIn
Description: 
(internalGetPlayerInfo) Player not found when requesting player info #21

[Error - MoveEvents Interface] 
data/movements/scripts/premyarea.lua:onStepIn
Description: 
(internalGetPlayerInfo) Player not found when requesting player info #1

 

Oque poderia ser?

 

Abaixo o script:

 

 

function onStepIn(cid, item, position, fromPosition)

local config = {
premy = getPlayerPremiumDays(cid),
poss = {x=32360, y=31782, z=7},
player = isPlayer(cid),
access = getPlayerAccess(cid)
}


if config.player == TRUE and config.premy < 1 and config.acces < 3 then

doTeleportThing(cid, poss)
  	doPlayerSendTextMessage(cid,25,"You don't have more premium days.")

end
end

 

Alguem sabe como faço um script que teleportará qualquer jogador q estive em qualquer tile entra as posições x,y,z á x,y,z?

 

ex, que esteja entre X1 e X2:

 

X1 = {x=1000, y=1000, z=0}

 

X2 = {x=2000, y=2000, z=15}

Link para o comentário
Compartilhar em outros sites

Primeira Duvida:

Bote esse script:

function onStepIn(cid, item, position, fromPosition)

if isPlayer(cid) and not isPremium(cid) then
doTeleportThing(cid, {x=32360,y=31782,z=7})
doPlayerSendTextMessage(cid, 22, "Essa area eh so para premium accounts.")
else
doSendMagicEffect(getPlayerPosition(cid), 12)
end
return TRUE
end

Segundo pedido:

Tipo nao sei oq se queria se era talkaction ou globalevent entao fiz em talkaction:

Abra a pasta data/talkactions/scripts e crie um arquivo.lua chamado teleportarea e bote isto dentro:

function onSay(cid, words)

local config = {

frompos = {x=000,y=00,z=0},

topos = {x=000,y=00,z=0},

teleportto = {x=000,y=00,z=0}

}

 

if isInArea(getPlayerPosition(cid), config.frompos, config.topos) then

doTeleportThing(cid, config.teleportto)

end

return TRUE

end

 

Legendas:

Azul = Areas X1 e X2 conforme seu exemplo

Vermelho = Lugar para onde serao teleportados.

 

Depois bote esta tag em talkactions.xml:

<talkaction log="yes" words="/teleportarea" access="5" event="script" value="teleportarea.lua"/>
Editado por MatheusMkalo
Link para o comentário
Compartilhar em outros sites

Evite postar em locais errados pois prejudica a moderação no fórum. Se não souber onde postar, procure por outros topicos parecidos para que voce possa encontrar a área.

Reportado para que movam

abraços

Link para o comentário
Compartilhar em outros sites

Acredito que no primeiro o erro ocorra pq você ta tentando pegar os dias de premium de um monster.

Tenta assim:

function onStepIn(cid, item, position, fromPosition)
local poss = {x=32360, y=31782, z=7}
if isPlayer(cid) == TRUE and getPlayerPremiumDays(cid) < 1 and getPlayerAccess(cid) < 3 then
	doTeleportThing(cid, poss)
	doPlayerSendTextMessage(cid, 25, "You don't have more premium days.")
end
return TRUE
end

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

Creio que ainda não funcione o do MatheusMkalo ou o do Kydrai. Caso não funcionem, use:

 

function onStepIn(cid, item, position, fromPosition)

if isPlayer(cid) then
  if not isPremium(cid) then
     doTeleportThing(cid, {x=32360,y=31782,z=7})
     doPlayerSendTextMessage(cid, 22, "Only premium players can pass.")
  else
     doSendMagicEffect(getCreaturePosition(cid), 12)
  end
end   
return TRUE
end

 

 

flw

Link para o comentário
Compartilhar em outros sites

Olá, primeiramente gostaria de agradecer a ajuda de TODOS e também pedir DESCULPAS pelo post em lugar errado!!

 

Já resolvi o problema número 1... mt obrigado a vocês...

 

e quanto ao número 2, eu gostaria que fosse em globalevents, de tempo em tempo ele checa se o cara ta sem premy numa area vip e se estiver, ele teleporta pro templo...

 

function onSay(cid, words)

local config = {

frompos = {x=000,y=00,z=0},

topos = {x=000,y=00,z=0},

teleportto = {x=000,y=00,z=0}

}

 

if isInArea(getPlayerPosition(cid), config.frompos, config.topos) then

doTeleportThing(cid, config.teleportto)

end

return TRUE

end

 

é isso aqui mesmo, porém que fosse em globalevents, alguém pode ajudar?

 

obrigado galera :smile_positivo:

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

Creio que assim funcione:

<globalevent name="checkpremmy" interval="1000" event="script" value="checkpremmy.lua"/>

function onThink(interval, lastExecution, thinkInterval)
local config = {
	frompos = {x=000,y=00,z=0},
	topos = {x=000,y=00,z=0},
	teleportto = {x=000,y=00,z=0}
}

for i, cid in pairs(getPlayersOnline()) do
	if isPlayer(cid) and not isPremium(cid) and isInArea(getPlayerPosition(cid), config.frompos, config.topos) then
		doTeleportThing(cid, config.teleportto)
	end
end

return TRUE
end

Link para o comentário
Compartilhar em outros sites

Ky, perfeitamente bem...

 

funcionou 100% e era exatamente oque procurava :D

 

muito obrigado pela ajuda amigo :D

 

+ Reput

 

vlw msm :smile_positivo:

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

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...