Ir para conteúdo

Ganhar Itens Clicando Em Tiles


papaleguas33

Posts Recomendados

E ai pessoal blz , seguinte eu queria saber qual o comando que coloca no script para funcionar o clique em tiles , vou explicar.

 

Tipo eu tenho um bau , vou no meu mapa editor e coloco um numero no uid dele , depois eu monto meu script e coloco o uid no script e o que o player vai ganhar clicando no bau e tal , até ai blz.

 

Mais como que eu faço para quando o player clicar em um certo tile e ganhar um item que eu coloquei no script , já tentei de tudo não vai , alguém poderia me ajudar , vou colocar aqui o script que clicando no bau da o item que vc colocou no script.

 

if item.uid == 30016 then

queststatus = getPlayerStorageValue(cid,30016)

if queststatus == -1 then

if getPlayerFreeCap(cid) >= 15.00 then

doPlayerSendTextMessage(cid,22,"You have found a Rapier.")

doPlayerAddItem(cid,2384,1)

setPlayerStorageValue(cid,30016,1)

else

doPlayerSendTextMessage(cid,22,"You have found a Rapier. Weighing 15.00 oz it is too heavy.")

end

else

doPlayerSendTextMessage(cid,22,"The chest is empty.")

end

 

Neste caso quando o player clicou no bau ele ganhou uma rapier , mais não to conseguindo fazer isso com o tiles , pode ver que tem o uid que eu coloquei no bau pelo mapa editor que é 30016.

 

Alguem da uma luz por favor.

Link para o comentário
Compartilhar em outros sites

E ai pessoal blz , seguinte eu queria saber qual o comando que coloca no script para funcionar o clique em tiles , vou explicar.

 

Tipo eu tenho um bau , vou no meu mapa editor e coloco um numero no uid dele , depois eu monto meu script e coloco o uid no script e o que o player vai ganhar clicando no bau e tal , até ai blz.

 

Mais como que eu faço para quando o player clicar em um certo tile e ganhar um item que eu coloquei no script , já tentei de tudo não vai , alguém poderia me ajudar , vou colocar aqui o script que clicando no bau da o item que vc colocou no script.

 

 

 

Neste caso quando o player clicou no bau ele ganhou uma rapier , mais não to conseguindo fazer isso com o tiles , pode ver que tem o uid que eu coloquei no bau pelo mapa editor que é 30016.

 

Alguem da uma luz por favor.

 

Tipo a quest da doublet em rookgaard?

o procedimento é o mesmo.... no map editor, vc dá um UniqueID pro tile que representa a quest

 

em data\actions\actions.xml vc adiciona

<action uniqueid="101010" script="minhaquest.lua" />

 

em data\actions\scripts\minhaquest.lua vc adiciona

function onUse(cid, item, frompos, item2, topos)
  if getPlayerStorageValue(cid, 101010) ~= nil then doPlayerSendTextMessage(cid,22,"It\'s empty.")
  elseif getPlayerFreeCap(cid) < getItemWeight(2384,1) then doPlayerSendTextMessage(cid,22,"You have found a Rapier. Weighing "..getItemWeight(2384,1).." oz, it\'s too heavy.")
  else
  doPlayerAddItem(2384,1)
  setPlayerStorageValue(cid, 101010, 1)
  doPlayerSendTextMessage(cid,22,"You have found a Rapier.")
  end
end

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

Então ja fiz isso mais não deu certo não não pega o item quando clica no tile , só falta essa quest pra minha rooguard o resto ta tudo arrumadinho , só eese marvado que não vai rs... da um help ai que souber o que pode ser , segue o script igual dos outros que é clicando no bau esse só mudou pra tile mais não está dando.

 

function onUse(cid, item, frompos, item2, topos)

 

if item.uid == 30018 then

queststatus = getPlayerStorageValue(cid,30018)

if queststatus == -1 then

if getPlayerFreeCap(cid) >= 15.00 then

doPlayerSendTextMessage(cid,22,"You have found a Doublet.")

doPlayerAddItem(cid,2384,1)

setPlayerStorageValue(cid,30018,1)

else

doPlayerSendTextMessage(cid,22,"You have found a Doublet. Weighing 15.00 oz it is too heavy.")

end

else

doPlayerSendTextMessage(cid,22,"The is empty.")

end

end

end

 

 

Desde ja obrigado.

Link para o comentário
Compartilhar em outros sites

dá uma olhada no console... vê se gera alguma msg de erro....

Isso que é interessante eu arrumo os meus script dessa maneira olhando no console e vendo os erros e vou arrumando ,mais do jeito que postei aqui não da erro na hora de abrir o serve e nem quando clica no tile que eu editei no map editor colocando o uid dele , sem erros .

 

Help please.....

Link para o comentário
Compartilhar em outros sites

Ta tudo certtinho olha só , esse é o script doublet.lua

 

function onUse(cid, item, frompos, item2, topos)

 

if item.uid == 30018 then

queststatus = getPlayerStorageValue(cid,30018)

if queststatus == -1 then

if getPlayerFreeCap(cid) >= 15.00 then

doPlayerSendTextMessage(cid,22,"You have found a Doublet.")

doPlayerAddItem(cid,2384,1)

setPlayerStorageValue(cid,30018,1)

else

doPlayerSendTextMessage(cid,22,"You have found a Doublet. Weighing 15.00 oz it is too heavy.")

end

else

doPlayerSendTextMessage(cid,22,"The is empty.")

end

end

end

 

 

e em actions.xml ta isso aqui

 

<action uniqueid="30018" script="doublet.lua"/>

 

tudo certinho até eu não sei o pq não ta funcionando nem sei o que fazer mais.

Link para o comentário
Compartilhar em outros sites

veja se o uniqueid do tile no mapa está no mesmo sqm que você clica no tile in-game.

 

um exemplo são as bordas que ficam em cima do chão, geralmente quando se coloca em borda scripts deste tipo dá este erro, você coloca o uniqueid mas não está clicando no mesmo item/tile.

Link para o comentário
Compartilhar em outros sites

veja se o uniqueid do tile no mapa está no mesmo sqm que você clica no tile in-game.

 

um exemplo são as bordas que ficam em cima do chão, geralmente quando se coloca em borda scripts deste tipo dá este erro, você coloca o uniqueid mas não está clicando no mesmo item/tile.

Pior que não ta no mesmo tile eu entro no map editor e ta la no mesmo tile , chegeui apagar o tile e colocar denovo e colocar o uid denovo 30018 e não da quando eu clico no tile aparece sorry,not possible que aparece isso sempre quando vc clica em qualquer lugar.Lembrando usso otserv versão 8.40

Link para o comentário
Compartilhar em outros sites

Coloque o uniqueid no tile que você quer.

Vá na pasta \actions\scripts\ e adicione um arquivo chamado itemtile.lua e coloque o seguinte dentro:

local item = 2384
local queststatus = getPlayerStorageValue(cid, 30016
function onUse(cid, item, item2, fromPosition, toPosition)
if queststatus < 1 and getPlayerFreeCap(cid) >= 15.00 then
doPlayerAddItem(cid, item, 1)
setPlayerStorageValue(cid, 30016, 1)
else
doPlayerSendCancel("Sorry, not possible")
end
end

Agora vá no arquivo actions.xml em \actions\ e adicione a seguinte linha:

	<action uniqueid="30016" script="quests/itemtile.lua"/>

Não esqueça de adicionar o UID 30016 no tile!

Pronto.

 

\\

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

Coloque o uniqueid no tile que você quer.

Vá na pasta \actions\scripts\ e adicione um arquivo chamado itemtile.lua e coloque o seguinte dentro:

local item = 2384
local queststatus = getPlayerStorageValue(cid, 30016
function onUse(cid, item, item2, fromPosition, toPosition)
if queststatus < 1 and getPlayerFreeCap(cid) >= 15.00 then
doPlayerAddItem(cid, item, 1)
setPlayerStorageValue(cid, 30016, 1)
else
doPlayerSendCancel("Sorry, not possible")
end
end

Agora vá no arquivo actions.xml em \actions\ e adicione a seguinte linha:

	<action uniqueid="30016" script="quests/itemtile.lua"/>

Não esqueça de adicionar o UID 30016 no tile!

Pronto.

 

\\

 

Amigo eu fiz isso que você me passou só que coloquei no meu caminho mais está dando erro

 

[17/02/2009 22:01:58] Lua Script Error: [Action Interface]

[17/02/2009 22:01:58] data/actions/scripts/doublet.lua

 

[17/02/2009 22:01:58] luaGetPlayerStorageValue(). Player not found

 

Essa eu não entendi nãoacha o player ...

 

OBS : Eu coloquei o meu script mesmo , porem na plaquinha que tem na parede clicando nela ganha o item , no tile não vai de jeito nenhum rs.., valeu a todos que tentaram me ajudar.

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

Tprocheira todas functions que usam a variável cid como base devem estar dentro da function e você tinha esquecido do ) no final.

 

Script arrumado:

 

local item = 2384

function onUse(cid, item, item2, fromPosition, toPosition)

local queststatus = getPlayerStorageValue(cid, 30016)

if queststatus < 1 and getPlayerFreeCap(cid) >= 15.00 then

doPlayerAddItem(cid, item, 1)

setPlayerStorageValue(cid, 30016, 1)

else

doPlayerSendCancel("Sorry, not possible")

end

end

Link para o comentário
Compartilhar em outros sites

noobinho aqui eu vou deixar quieto pq ta tudo certinho mesmo , mais o marvado não quer funcinar com tile mesmo , por isso eu coloquei uma uid na plaquina que tem na parede e funcionou de primeira nem mexi nos scripts só fui no mapa editor tirei o uid 30018 do tile e coloquei o uid 30018 na plaquinha e funcionou certinho essa até eu fiquei boiando o pq que não funcionou no tile rs...

Link para o comentário
Compartilhar em outros sites

Amigo, esse script que vc postou no primeiro post ta faltando um end vc sabe neh?

Segundo eu usei ESSE MESMO SCRIPT, com o end do final claro, no chao e ele adicionou o item.

Bom eh isso vc ta fazendo alguma merda :) ou o ot que pegou ta bugado.

 

abraços

//skulls

Link para o comentário
Compartilhar em outros sites

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