Ir para conteúdo
Entre para seguir isso  
oxyflavor

Comando que abre/fecha portão

Recommended Posts

oxyflavor    0
oxyflavor

Função: Comando que Abre/Fecha portão (remove/cria item)

Autor: Oxyflavor

Versão Testada: New Styller Yourots 0.6.5 (8.54)

 

Informações Adicionais

Meu primeiro script! >.<

 

 

Oi pessoal.. To criando um OT Serv, e então decidi aprender um pouco de script..

Este é meu primeiro script, e sei que ja existem alguns com a mesma ideia, mas vou tentar fazer este bem explicado.

 

-------------------------

Este script faz com que, ao executar tal comando(*), ele remova o item(*) que esteja na posição(*). Ao usar o comando novamente, ele cria o mesmo item de novo na mesma posição! Tipo um abre/fecha..

 

*Configurado(a) por você.

 

Bom, vamos ao codigo!

 

\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\

 

Crie um arquivo .lua com o nome que quiser, ou pegue um ja existente da pasta talkactions/scripts, apague tudo oque tem dentro, renomeie para o nome que quiser, e cole isto dentro do novo arquivo:

 

--------------------------------

--[[
 Script by Oxyflavor
   1st script!
]]--

--[[
 Script by Oxyflavor
   1st script!
]]--

function onSay(cid, words, param)
local doorpos = {x=[color=Red][b]POSX[/b][/color], y=[color=Red][b]POSY[/b][/color], z=[color=Red][b]POSZ[/b][/color], stackpos=1} -- POSX = Posição X da porta   POSY = Posição Y da porta    POSZ = Posição Z da porta
local accessmin = [b][color=Green]x[/color][/b] -- Aqui você coloca no lugar do X o access minimo para usar o comando.
local portaid = [color=Blue][b]x[/b][/color] -- No lugar do X você poe o ITEM ID (nao é action nem unique, é ITEM!) da porta que vai ser removida ao usar o comando.
local msg1 = 'Porta removida com sucesso!'
local msg2 = 'Porta colocada com sucesso!'
local getid = getThingfromPos(doorpos)


if getPlayerAccess(cid) >= accessmin and getid.itemid == portaid then 
 doRemoveItem(getid.uid,1)
 doPlayerSendTextMessage(cid, 22, msg1)
elseif getPlayerAccess(cid) >= accessmin and getid.itemid == 0 then
 doCreateItem(portaid, 1, doorpos)
 doPlayerSendTextMessage(cid, 22, msg2)
else
 doPlayerSendCancel(cid,"Você não pode usar este comando.")
end
return 1
end

Se nao entenderam por ai, entao vo explicar por aqui:

[color=Red][b]POSX, POSY, POSZ[/b][/color] = { Em [b]POSX[/b], você poe a posição [b]X[/b] de onde esta a porta a ser removida/aberta, em [b]POSY[/b] põe a posição [b]Y[/b] da mesma, e em [b]POSZ[/b] a posição [b]Z[/b] da mesma. }

[b] accesmin =[/b] [color=Green][b]x[/b][/color] -- { No lugar do [b]x[/b] você põe o nível mínimo de acesso que a pessoa vai ter que ter para usar o comando. (por exemplo, colocar 6 significa que só Gods poderão usar este comando.)

 [b]portaid = [color=Blue]x[/color][/b] -- { no lugar do x você põe o ID da porta que vai ser removida/aberta (o ITEM ID da porta que está na posição que você colocou em POSX,POSY,POSZ ,lembra?)

----------------------------------------------

 

Agora vá em talkactions/ talkactions.xml, e cole isso no final (mas antes do </talkactions>

 

<talkaction words="[b]!abrirporta[/b]" event="script" value="[color=DarkOrchid][b]NomeDoSeuScript[/b][/color].lua"/>

NomeDoSeuScript = Ponha no lugar disso o nome do arquivo que você criou, quando estava lendo o comecinho deste tópico.

 

!abrirporta = Isso é opcional. Se quiser mudar o comando para abrir a porta, mude isso para oque quiser. Se quiser que, quando fale Abrakadabra a porta abra, ponha Abrakadabra no lugar disso.

 

----------------------------------------------------------------

 

 

Bom, é isso. Foi meu primeiro script, por isso, se tiver erros, me avisem por favor!

Eu testei aqui, e deu tudo certo.

 

-------------------------------------------------

Editado por oxyflavor
Pequeno erro no script

Compartilhar este post


Link para o post
Mock    32
Mock

Comentario: Pra que tanta var cara?

 

Aprovadoico_aprovado.png & Movidoicon_movido.giffechado22xnux7.gif

Compartilhar este post


Link para o post
oxyflavor    0
oxyflavor

Existe algum outro modo de fazer isso?

;x

Como disse, esse foi meu segundo script, entãoi não conheço esses truques ;D

Compartilhar este post


Link para o post
Roku    0
Roku

muita variavel, muito simples, pode até ser util pra um dakeles ot 99999x, por que se um ot é bom, tem scripter e ele ja sabe usar essa função

function onSay(cid, words, param)

 

pra q pediu esses parametros q n uso?

bom, muitomegainiciante, e ja tem uma coisa assim com o onUse

..

edit:

podia fazer uma tabela

local config = {

msg1 = "",

msg2 = ""

}

e o resto das configs. tem uma aula do Dark OTIMA sobre tabelas

http://forums.otserv.com.br/f27/aula-6-tabelas-parte-1-62566/

e tem a parte dois

vc axa lá

Editado por Roku

Compartilhar este post


Link para o post
oxyflavor    0
oxyflavor

Ah tabelas são taõ simples assim? Não sabia disso ;D No prox script eu uso ;D

Compartilhar este post


Link para o post
Le588    0
Le588

Legal!

Vou tentar adaptar e usar como uma action :D

Compartilhar este post


Link para o post
Pandá s2    0
Pandá s2

Coloquei no meu Otserv...porem configurei pra ficar assim

!abretesezamo

Compartilhar este post


Link para o post
Warp    0
Warp

Ótimo script pra segundo (Y)

 

Só uma dica, troque:

local doorpos = {x=POSX, y=POSY, z=POSZ, stackpos=1}
Por:

local doorpos = {x=POSX, y=POSY, z=POSZ, stackpos=255}

Mas por que?

Simples, não sei se você sabe pra que serve stackpos, mas vo explicar pra qualquer coisa quem visitar o tópico e não souber já ficar sabendo :fun:

Tipo, stackpos é o "andar" do item no chão, o chão propriamente dito é stackpos 0, um item acima é 1, o segundo 2 e assim por diante.., como você colocou stackpos 1 se tiver algum item lá a porta não vai aparecer, por isso troque pra 255 porque é quase impossivel alguem colocar 255 itens lol :loool:

Compartilhar este post


Link para o post
Zaffend    0
Zaffend

Legal... ;D

Ja tento mostrar isso pro nuk warp

oEIOei' tah sumidão la hein...

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×