Jump to content
Sign in to follow this  
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.

 

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

Edited by oxyflavor
Pequeno erro no script

Share this post


Link to post
Mock    32
Mock

Comentario: Pra que tanta var cara?

 

Aprovadoico_aprovado.png & Movidoicon_movido.giffechado22xnux7.gif

Share this post


Link to 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

Share this post


Link to 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á

Edited by Roku

Share this post


Link to post
oxyflavor    0
oxyflavor

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

Share this post


Link to post
Le588    0
Le588

Legal!

Vou tentar adaptar e usar como uma action :D

Share this post


Link to post
Pandá s2    0
Pandá s2

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

!abretesezamo

Share this post


Link to 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:

Share this post


Link to post
Zaffend    0
Zaffend

Legal... ;D

Ja tento mostrar isso pro nuk warp

oEIOei' tah sumidão la hein...

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
  • Recently Browsing   0 members

    No registered users viewing this page.

×