AL
pedido

Pedido Script globalsave~

Por alesson jhones, 11 de dez. de 2012 em Scripts

script
11
1.2k
11 de dezembro de 2012 às 23:42

olá preciso de uma ajudinha aqui ;) ( Errei no titulo não tem nada a ver com global save xd )

 

1# Sacrificio

o código seria dessa forma~

 

pos1

pos2

pos3

teleport

 

 

na pos1,2,3, é necessario colocar 1 corpo ex: " orc "

em um lugar vai ter um teleporte, onde só é possivel entrar enquando houver os corpse nas pos1,2,3~

se o corpo secar, não é permitido entrar~

 

 

eae alguém consegue ?

 

 

porfavor testar o codigo em 8.6

aguardo~

Editado Dezembro 11 por Holy zodiac

HidekiKtyH
12 de dezembro de 2012 às 16:36

Abra a pasta data/movements/scripts e crie um arquivo chamado corpsetile.lua

Adicione o script:

local stor = 4040
local corpseid = 5966
local pos1 = {x=111, y=222, z=333}
local pos2 = {x=112, y=223, z=334}
local pos3 = {x=113, y=224, z=335}

function onStepIn(cid, item, frompos, moveitem, tileitem, position)
if isCorpse(getTileItemById(corpseid, pos1).uid) and isCorpse(getTileItemById(corpseid, pos2).uid) and isCorpse(getTileItemById(corpseid, pos3).uid) then
setPlayerStorageValue(cid, stor, 1)
else
doPlayerSendCancel(cid, "Você não pode entrar no teleport.")
return false
end
return true
end

function onStepOut(cid, item, frompos)
if getPlayerStorageValue(cid, stor) >= 1 then
setPlayerStorageValue(cid, stor, 0)
end
return true
end

 

Agora na pasta data/movements abra o arquivo movements.xml

Adicione as tags:

<movevent type="StepIn" actionid="4040" event="script" value="corpsetile.lua"/>
<movevent type="StepOut" actionid="4040" event="script" value="corpsetile.lua"/>

Configure local stor pelo ID da Storage do Script, local corpseid pelo ID do corpse que será necessário estar nas positions e pos1/pos2/pos3 com as positions x/y/z que os corpses deveram estar para o player poder entrar no teleport.

PS: Adicione a ActionID 4040 no piso em que o teleport está.

Editado Dezembro 12 por HidekiKty

MaXwEllDeNM
12 de dezembro de 2012 às 17:19

Abra a pasta data/movements/scripts e crie um arquivo chamado corpsetile.lua

Adicione o script:

local stor = 4040
local corpseid = 5966
local pos1 = {x=111, y=222, z=333}
local pos2 = {x=112, y=223, z=334}
local pos3 = {x=113, y=224, z=335}

function onStepIn(cid, item, frompos, moveitem, tileitem, position)
if isCorpse(corpseid, pos1) and isCorpse(corpseid, pos2) and isCorpse(corpseid, pos3) then
setPlayerStorageValue(cid, stor, 1)
else
doPlayerSendCancel(cid, "Você não pode entrar no teleport.")
return false
end
end

function onStepOut(cid, item, frompos)
if getPlayerStorageValue(cid, stor) >= 1 then
setPlayerStorageValue(cid, stor, 0)
return true
end
end

Agora na pasta data/movements abra o arquivo movements.xml

Adicione as tags:

<movevent type="StepIn" actionid="4040" event="script" value="corpsetile.lua"/>
<movevent type="StepOut" actionid="4040" event="script" value="corpsetile.lua"/>

Configure local stor pelo ID da Storage do Script, local corpseid pelo ID do corpse que será necessário estar nas positions e pos1/pos2/pos3 com as positions x/y/z que os corpses deveram estar para o player poder entrar no teleport.

PS: Adicione a ActionID 4040 no piso em que o teleport está.

 

Amigo, só uma correçãozinha, o isCorpse recebe como parâmetro o uid de um item.

 

local stor = 4040
local corpseid = 5966
local pos1 = {x=111, y=222, z=333}
local pos2 = {x=112, y=223, z=334}
local pos3 = {x=113, y=224, z=335}


-- isCorpse(uid)

function onStepIn(cid, item, frompos, moveitem, tileitem, position)
  if isCorpse(getTileItemById(corpseid, pos1).uid) and isCorpse(getTileItemById(corpseid, pos2).uid) and isCorpse(getTileItemById(corpseid, pos3).uid) then
  setPlayerStorageValue(cid, stor, 1)
  else
  doPlayerSendCancel(cid, "Você não pode entrar no teleport.")
  return false
  end

  return true
end

function onStepOut(cid, item, frompos)
  if getPlayerStorageValue(cid, stor) >= 1 then
  setPlayerStorageValue(cid, stor, 0)
  end
  return true
end

Editado Dezembro 12 por MaXwEllDeN

HidekiKtyH
12 de dezembro de 2012 às 17:32

~Edited

Ok MaXwEllDeN, obrigado.

MaXwEllDeNM
12 de dezembro de 2012 às 18:02

~Edited

Ok MaXwEllDeN, obrigado.

 

Por nada ^^. Olha, edita novamente! Eu esquecí de por o .uid no getTileItemById

13 de dezembro de 2012 às 03:58

pensei que ia pegar mas aprensentou um erro no distro ~

 

[Error - MoveEvents INterface]

data/movements/scripts/corpsetile.lua:onStepIn

Description:

attampt to index a number value

stack traceback

[C]: in function 'getTileItemById'

data/movements/scripts/corpsetile.lua:9: in function <data/movemetns/scripts/corpsetile.lua:8

 

 

alguma ideia ?

 

 

no teleport add action 4040 com a pos de teste 160, 54, 7

Editado Dezembro 13 por Holy zodiac

HidekiKtyH
13 de dezembro de 2012 às 10:40

Use este script, está correto:

local stor = 4040
local corpseid = 5966
local pos1 = {x=111, y=222, z=333}
local pos2 = {x=112, y=223, z=334}
local pos3 = {x=113, y=224, z=335}
function onStepIn(cid, item, frompos, moveitem, tileitem, position)
if isCorpse(getTileItemById(corpseid, pos1).uid) and isCorpse(getTileItemById(corpseid, pos2).uid) and isCorpse(getTileItemById(corpseid, pos3).uid) then
setPlayerStorageValue(cid, stor, 1)
else
doPlayerSendCancel(cid, "Você não pode entrar no teleport.")
return false
end
return true
end
function onStepOut(cid, item, frompos)
if getPlayerStorageValue(cid, stor) >= 1 then
setPlayerStorageValue(cid, stor, 0)
end
return true
end

16 de dezembro de 2012 às 03:56

Erro ~

 

Como deixei o teleporte

http://img268.images.../semttulone.jpg

 

 

Erro no distro ao pisar no teleporte.

 

erro2a.jpg

 

 

 

alguma ideia ?

 

@up Alguem ajuda ?

Editado Dezembro 15 por Holy zodiac

19 de dezembro de 2012 às 09:40

peço que feixem, vou abrir um novo topico com o titulo sobre a dúvida.

Obrigado pela ajuda lek ~

SmiXS
19 de dezembro de 2012 às 10:15

REPORTADO a pedido do Autor.

StigalS
19 de dezembro de 2012 às 10:20

Movido!