Ir para conteúdo

[Arquivado]Arrombamento De Portas


MAYKINHO

Posts Recomendados

@Script Editado, com ajuda do Kydrai...
Como era meu primeiro script, teve erros,ainda está em correção

 

 

		       	--Script para Arrombar Portas Trancadas--

local config = {

item1 = 3304  -- id da crownbar!
item2 = 5901  -- id do lixo que acontece quando a crownbar quebra!
porta = 9090 -- Unic ID da porta
dentro = {x=512, y=509, z=7}
fora = {x=515, y=509, z=7}
}




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

if item.uid == porta then 
	doPlayerSendTextMessage(cid, 21, "Você terá que arrombar a porta!")
elseif getPlayerLevel(cid) >= 90 and item.id == item1 then
	doPlayerSendTextMessage(cid, 21, "Você conseguil arrombar a porta!")
elseif doSendMagicEffect(topos, 2) then
	doTeleportThing(player1.uid,dentro)
elseif player1 == dentro then
	doTeleportThing(player1.uid,fora)	
elseif item.uid == porta then 
	getPlayerLevel(cid) < 90 and item.id == item1 then
elseif doPlayerSendCancel(cid, "Você nao tinha level suficiente, por isso quebrou sua Crownbar!") then
	doRemoveItem(item1)then
else doPlayerAddItem(cid, item2)
	doSendMagicEffect(topos, 3)
end
return TRUE
end

 

 

E adicione isso, na

Action.xml

 

<action uniqueid="9090" script="arrombamento.lua" />

 

 

 

Bem, axo que e facil de compreender, e facil editar os leveis, e tal...

 

Aki eu testei e funciono

 

 

Comentem...

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

A idéia é boa.

Mas como isso funcionou?

O script ta todo bagunçado, coisas desnecessárias e com erros.

 

Antes de mais nada,coloque uma porta, e coloque o action id dela, de 9090

Não seria unique id?

porta = 9090 -- Unic ID da porta
dentro = {x=512, y=509, z=7}
fora = {x=515, y=509, z=7}
player1 = getThingfromPos(player1pos)

Use variáveis locais.

player1pos não exite.

player1 desnecessário.

 

doPlayerAddItem(cid, item2[, canDropOnMap])

O certo seria:

doPlayerAddItem(cid, item2)

 

if item.uid == porta then 
doPlayerSendTextMessage(cid, 21, "Você terá que arrombar a porta!")
end
               elseif getPlayerLevel(cid) >= 90 and item.id == item1 then
else
               doPlayerSendTextMessage(cid, 21, "Você conseguil arrombar a porta!")
               doSendMagicEffect(topos, 2)
               doTeleportThing(player1.uid,dentro)
elseif player1 == dentro
               doTeleportThing(player1.uid,fora)       
end

O if se usa assim:

if ... then
   ...
elseif ... then
  ...
elseif ... then
  ...
else
  ...
end

Tem mais alguns erros por ai ainda.

Link para o comentário
Compartilhar em outros sites

A idéia é boa.

Mas como isso funcionou?

 

Vlw pelas dicas... agora arrumei com seus toques....

da uma olhada pra min , e ve se ta tudo certo

 

Esse e o primeiro script que eu fiz, so li uns tutoriais, ai nao entendia direito

Vlw pelo toque

Link para o comentário
Compartilhar em outros sites

A logica do script seria assim:

 

1º - O carinha daria use na porta, apareceria a primeira mensagem "Você terá que arrombar a porta!"

 

2º - Voce pegaria sua crown bar, e daria use na porta, a porta se abriria...se voce tivesse o nivel suficiente para passar (90+) e mandaria a mensagem "Você conseguil arrombar a porta!"

 

3º - Se nao tivesse o lvl suficiente, a crownbar quebraria, e apareceria na bp, um lixo, no lugar dela, e a mensagem "Você nao tinha level suficiente, por isso quebrou sua Crownbar!"

 

E so isso

Link para o comentário
Compartilhar em outros sites

Baseado no seu script fica algo +- assim:

local porta = 9090 -- uid da porta
local item2 = 5901 -- lixo
local lvl = 90 -- level necessário para passar
local dentro = {x=, y=, z=}
local fora = {x=, y=, z=}

function onUse(cid, item, fromPosition, itemEx, toPosition)
if item.uid == porta then
	doPlayerSendTextMessage(cid, 21, "Você terá que arrombar a porta!")
else
	if getPlayerLevel(cid) >= lvl then
		doPlayerSendTextMessage(cid, 21, "Você conseguil arrombar a porta!")
		local pos = getCreaturePosition(cid)
		if pos.x == dentro.x and pos.y == dentro.y and pos.z == dentro.z then
			doTeleportThing(cid, fora)
		else
			doTeleportThing(cid, dentro)
		end
		doSendMagicEffect(toPosition, 2)
	else
		doPlayerSendCancel(cid, "Você nao tinha level suficiente, por isso quebrou sua Crownbar!")
		doTransformItem(item.uid, item2)
		doSendMagicEffect(toPosition, 3)
	end
end
return TRUE
end

<action uniqueid="9090" event="script" value="arrombamento.lua"/>
<action itemid="2416" event="script" value="arrombamento.lua"/>

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

Baseado no seu script fica algo +- assim:

local porta = 9090 -- uid da porta
local item2 = 5901 -- lixo
local lvl = 90 -- level necessário para passar
local dentro = {x=, y=, z=}
local fora = {x=, y=, z=}

function onUse(cid, item, fromPosition, itemEx, toPosition)
if item.uid == porta then
	doPlayerSendTextMessage(cid, 21, "Você terá que arrombar a porta!")
else
	if getPlayerLevel(cid) >= lvl then
		doPlayerSendTextMessage(cid, 21, "Você conseguil arrombar a porta!")
		local pos = getCreaturePosition(cid)
		if pos.x == dentro.x and pos.y == dentro.y and pos.z == dentro.z then
			doTeleportThing(cid, fora)
		else
			doTeleportThing(cid, dentro)
		end
		doSendMagicEffect(toPosition, 2)
	else
		doPlayerSendCancel(cid, "Você nao tinha level suficiente, por isso quebrou sua Crownbar!")
		doTransformItem(item.uid, item2)
		doSendMagicEffect(toPosition, 3)
	end
end
return TRUE
end

<action uniqueid="9090" event="script" value="arrombamento.lua"/>
<action itemid="2416" event="script" value="arrombamento.lua"/>

 

Lua não aceita tabelas com atribuições "nil".

 

doPlayerSendCancel(cid, "Você nao tinha level suficiente, por isso quebrou sua Crownbar!")

tinha é passado ele continua não tendo o level necessario.

 

<action itemid="2416" event="script" value="arrombamento.lua"/>

isso não é necessario.

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

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