Ir para conteúdo
Entre para seguir isso  
GOD Esteve

Mensageiro !!

Recommended Posts

GOD Esteve    9
GOD Esteve

Sistema: Mensageiro
Autor: GOD Esteve e dalvorsn
Servidor: 8.6 (Real Server)
Um Sistema simples mais intereçante

 

Bom primeiro vou explicar o script!! Muito simples

 

a pessoa compra o item que presisa cujo o id e (5786) e o nome e (wooden whistle)

 

com este item ela pode mandar uma mensagem "global" para todos de uma forma simples

 

!mensageiro MENSAGEM AKI

 

ira aparecer uma mensagem branca na tela avisando a todos a sequinte mensagem

"O mensageiro foi utilizado! Confira no default!"

 

no default ira aparecer uma mensagem em laranja com o que a pessoa mando

(mensagem que foi escolhida na talkaction [!mensageiro MENSAGEM AKI])

 

bem simples mais para alguns podem ser intereçante

 

utilidades???

como todos sabem volta e meia o player pede para o GOD anunciar algo no /b

entao o mesmo pode anunciar por um preço com este item

 

La vai o script

 

em talkactions/script crie um arquivo chamado mensageiro.lua e adicione o sequinte

 


function onSay(cid, words, param)


local msg = {


[color=red]"Voce não tem premium account!",[/color]


[color=darkorange]"Voce não possui um mensageiro!",[/color]


[color=blue]"Escreva algo antes de mandar!",[/color]


[color=lime]"O mensageiro foi utilizado! Confira no default!"[/color]


}


if not(isPremium(cid)) then return


doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, [color=red]msg[1][/color])


end


if(getPlayerItemCount(cid, [color=sienna]5786[/color]) <= 0) then return


doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, [color=darkorange]msg[2][/color])


end


if(param == '') then return


doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, [color=blue]msg[3][/color])


else


doPlayerRemoveItem(cid, [color=sienna]5786[/color], 1)


doBroadcastMessage([color=lime]msg[4][/color], 22) 


doBroadcastMessage(getPlayerName(cid)..": "..param, 19) 


return true


end


end

 

apos em talkactions.xml adicione isto

<talkaction words="!mensageiro" event="script" value="mensageiro.lua"/>

 

 

5786 - ID DO ITEM UTILIZADO

 

Caso ja tenha um script parecido desculpe fis este para meu ot pois axei intereçante com uma ajuda do dalvorsn do forum (:

Editado por GOD Esteve

Compartilhar este post


Link para o post
Oneshot    24
Oneshot

Muito bem, é um script simples, mas gostei bastante do fato que você montou uma tabela com as mensagens, tornando a configuração do script um tanto mais versátil. A estrutura do código ainda está um pouco rudimentar, você usou vários 'if' e poderia ter construído apenas um bloco com 'elseif'.

 

Estude mais a linguagem LUA, dê uma olhada nas aulas aqui da OTBR, tenho certeza que se você tem vontade e garra, pode aprender scripting muito bem.

 

Criatividade: 45

Organização: 35

Tamanho: 40

Utilidade: 35

 

Nota Final: 38 ou C

Remuneração Total: 15V$

Editado por Garou

Compartilhar este post


Link para o post
joaotesch    0
joaotesch

axei manero cara mas como o garou falo vc usou muitos "if" e poderia ter substituido por "elseif", pede pro dalvo de tar um toque nisso que ele encina direitinho!!

e otra tenta da uma organizadinha melhor!!!

mas no geral fico bom!

Compartilhar este post


Link para o post
LsM    2
LsM

Uma dica : Não sei se é coisa minha, mas não salte linhas desnecessárias nos scripts.

Compartilhar este post


Link para o post
iuniX    4
iuniX
Uma dica : Não sei se é coisa minha, mas não salte linhas desnecessárias nos scripts.

 

Concordo, fica melhor para visualizar e mais organizado...

Compartilhar este post


Link para o post
GOD Esteve    9
GOD Esteve

Thxx pela dica (: pode deixar ke vou melhorar daki pa frente foi o meu primeiro script alone heauheauea

 

fikou assim o

function onSay(cid, words, param)

local msg = {"Voce não tem premium account!", "Voce não possui um mensageiro!", "Escreva algo antes de mandar!", "O mensageiro foi utilizado! Confira no default!"}

if not(isPremium(cid)) then return

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg[1])

elseif(getPlayerItemCount(cid, 5786) <= 0) then return

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg[2])

elseif(param == '') then return

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg[3])

else

doPlayerRemoveItem(cid, 5786, 1)

doBroadcastMessage(msg[4], 22) 

doBroadcastMessage(getPlayerName(cid)..": "..param, 19) 

return true

end

end

 

teria como melhorar mais?

Editado por GOD Esteve

Compartilhar este post


Link para o post
dalvorsn    46
dalvorsn

Isso vai de cada um, mais eu gosto de fazer dentro de um padrão, o meu ficaria assim:

function onSay(cid, words, param)

local msg = {
"Voce não tem premium account!", 
"Voce não possui um mensageiro!", 
"Escreva algo antes de mandar!", 
"O mensageiro foi utilizado! Confira no default!"
}
if(param == '') then return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg[3]) end

if(isPremium(cid))then
	if(doPlayerRemoveItem(cid, 5786, 1))then
		doBroadcastMessage(msg[4], 22)
		doBroadcastMessage(getPlayerName(cid)..": "..param, 19)
	else
		doPlayerSendCancel(cid, msg[2])
	end
else
	doPlayerSendCancel(cid, msg[1])
end	

return true
end

 

Não quer dizer que seja regra, ou que vá influenciar na execução, eu simplesmente acho que fica de mais fácil compreensão.

Compartilhar este post


Link para o post
GOD Esteve    9
GOD Esteve

o ke eu mudei ali nakele foi mais pelos elseif (: pa ver se fiko legal mesmo

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.

×