Ir para conteúdo
  • Cadastre-se

(Resolvido)[PEDIDO] /b pra player com exausth de 2 minutos pf


Ir para solução Resolvido por xWhiteWolf,

Posts Recomendados

 /b pra player com exausth de 2 minutos pf

 

eu queria que o player falasse

/all eae galera

 

agora eu queria quer aparecesse a msg em branco (/bc white) igual os info.lua entende?

 

exemplo:

 

Fulaninho [300]: gogo quest vip (em branco)

 

e quando ele falasse , aparecia uma msg que so poderia usar  o comando daqui a 2 minutos

 

REP+

Editado por poko360 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Pera, vc qr que aparça em que posição da tela??

 

Tenta ae:

local config = { 
tempo = 3, -- Tempo em minutos
storage = 20005, -- não mexa aqui 
}

function onSay(cid, words, param, channel)
	if(param == '') then
		return true
	end

	if getPlayerStorageValue(cid, config.storage) <= 0 then 
kick1 = addEvent(setPlayerStorageValue, config.tempo*60*1000-1000, cid, config.storage, -1) 
	doPlayerBroadcastMessage(cid, param)
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Agora voce so podera usar este comando de novo daqui a " .. config.tempo .. "minutos.") 
	setPlayerStorageValue(cid, config.storage, 1) 
	return true
	else
	
end
end
Editado por danihcv (veja o histórico de edições)

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Link para o post
Compartilhar em outros sites

Edit= no meio da tela, so que ta em vermelho =\

Editado por poko360 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Acho que assim funfa como tu quer...

 

Obs: só alterei o script do dani :).

 

local config = {


tempo = 3, -- Tempo em minutos
storage = 20005, -- não mexa aqui
}

function onSay(cid, words, param, channel)
if(param == '') then
return true
end

if getPlayerStorageValue(cid, config.storage) <= 0 then
kick1 = addEvent(setPlayerStorageValue, config.tempo*60*1000-1000, cid, config.storage, -1)
doPlayerBroadcastMessage(cid, param)
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Agora voce so podera usar este comando de novo daqui a " .. config.tempo .. "minutos.")
setPlayerStorageValue(cid, config.storage, 1)
return true
else

end
end

Editado por llucas75 (veja o histórico de edições)

Scripter: |||||||||| 10%

 

 

Te ajudei?? REP + e ficamos quites...  ;D

 

Atenciosamente,

                   Lucas.

Abraços!

Link para o post
Compartilhar em outros sites

@danihcv: 

kick1 = addEvent(setPlayerStorageValue, config.tempo*60*1000-1000, cid, config.storage, -1)

acho q essa não é a melhor maneira de fazer isso, se ele deslogar vai dar erro na distro, fora q nao entendi esse config.tempo*60*1000-1000; porque - 1000??

@llucas75 isso aqui que você mudou foi só a cor da mensagem que manda pro player.. pra mudar a cor do broadcast tem que alterar isso daqui:

doPlayerBroadcastMessage(cid, message[, type])

essa é a função, sendo o type não obrigatório (por isso o [colchetes]). Quando a função não tem o type, ela trata o type como sendo "first";

A lista dos types está no constant.lua dentro da lib. No meu server essa lista é assim:

MESSAGE_FIRST = 18
MESSAGE_STATUS_CONSOLE_RED = MESSAGE_FIRST
MESSAGE_EVENT_ORANGE = 19
MESSAGE_STATUS_CONSOLE_ORANGE = 20
MESSAGE_STATUS_WARNING = 21
MESSAGE_EVENT_ADVANCE = 22
MESSAGE_EVENT_DEFAULT = 23
MESSAGE_STATUS_DEFAULT = 24
MESSAGE_INFO_DESCR = 25
MESSAGE_STATUS_SMALL = 26
MESSAGE_STATUS_CONSOLE_BLUE = 27
MESSAGE_LAST = MESSAGE_STATUS_CONSOLE_BLUE


MESSAGE_TYPES = {
["advance"] = MESSAGE_EVENT_ADVANCE,
["event"] = MESSAGE_EVENT_DEFAULT,
["white"] = MESSAGE_EVENT_DEFAULT,
["orange"] = MESSAGE_STATUS_CONSOLE_ORANGE,
["info"] = MESSAGE_INFO_DESCR,
["green"] = MESSAGE_INFO_DESCR,
["small"] = MESSAGE_STATUS_SMALL,
["blue"] = MESSAGE_STATUS_CONSOLE_BLUE,
["red"] = MESSAGE_STATUS_CONSOLE_RED,
["warning"] = MESSAGE_STATUS_WARNING,
["status"] = MESSAGE_STATUS_DEFAULT
}
se você quiser branco então coloque uma das coisas a seguir.
["white"] = MESSAGE_EVENT_DEFAULT,
MESSAGE_EVENT_DEFAULT = 23,
["event"] = MESSAGE_EVENT_DEFAULT;

Ficando assim:
doPlayerBroadcastMessage(cid, param, "white")
doPlayerBroadcastMessage(cid, param, MESSAGE_EVENT_DEFAULT)
doPlayerBroadcastMessage(cid, param, "event")
doPlayerBroadcastMessage(cid, param, 23)

Lembre-se que você só irá utilizar uma dessas.. escolha uma aí e substitua. qualquer uma dessas irá funcionar.
OBS: não sei se é white e event entre aspas... testa aí e depois me fala se é com ou sem aspas.

Editado por xWhiteWolf (veja o histórico de edições)

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

só que o script dele só funciona 1 vez,tipo primeira pessoa que usar o "/all oi" primeiro, ai ngm pode usar dnv

Link para o post
Compartilhar em outros sites

testa ae...

 

local config = {


tempo = 180, -- tempo em segundos
storage = 20006, -- não mexa aqui
}

function onSay(cid, words, param, channel)
if(param == '') then
return true
end

if getPlayerStorageValue(cid, config.storage) - os.time() <= 0 then
setPlayerStorageValue(cid, config.storage, os.time() + config.tempo)
doPlayerBroadcastMessage(cid, param, 23)
else
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você só poderá usar esse comando daqui " .. config.tempo .. " segundos.")
end
return true
end

 

dei uma alteradinha... E white tenho uma dúvida quero que apareca o tempo que falta em segundos(Você só poderá usar esse comando daqui " .. config.tempo .. " segundos) só que desse jeito é os.time(como faço pra isto funcionar)?

Editado por llucas75 (veja o histórico de edições)

Scripter: |||||||||| 10%

 

 

Te ajudei?? REP + e ficamos quites...  ;D

 

Atenciosamente,

                   Lucas.

Abraços!

Link para o post
Compartilhar em outros sites

nao funcionou, falei /all eae e nao apareceu nada, quando fui usar denovo apareceu que so posso usar o comando denovo em180 seg

teria como colocar level e custo? (tipo 1kk)

Editado por poko360 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Solução

@llucas75 tem uma lógica bem simples pra fazer isso que vc quer. Pensa comigo:

if getPlayerStorageValue(cid, config.storage) - os.time() <= 0 then
setPlayerStorageValue(cid, config.storage, os.time() + config.tempo)

Se o storage - o tempo atual for menor ou igual a 0 então
Setar o storage como sendo o tempo atual + o tempo.
O tempo pra usar novamente será o storage (tempo atual no momento que usou + tempo) - tempo atual (desse momento)



@topic Testei no meu server e funcionou perfeitamente. Uso TFS 0.36. Se o seu server for diferente do meu procure as funções variantes e faça as modificações necessárias:
 

local config = {
storage = 19400, -- storage em que será salvo o tempo
cor = "white", -- de acordo com o constant.lua da lib
tempo = 2, -- em minutos
price = 1000, -- preço pra usar o broadcast
level = 100 -- level pra poder utilizar o broadcast
}


function onSay(cid, words, param, channel)
if(param == '') then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.")
return true
end


if getPlayerLevel(cid) >= config.level then
if getPlayerStorageValue(cid, config.storage) - os.time() <= 0 then
if doPlayerRemoveMoney(cid, config.price) then
setPlayerStorageValue(cid, config.storage, os.time() + (config.tempo*60)) 
doBroadcastMessage(""..getCreatureName(cid)..": "..param.."", config.cor)
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You have successfully sent a broadcast, now you'll have to wait " ..config.tempo.. " minute(s) until you broadcast again.")
else
doPlayerSendCancel(cid, "You don't have " ..config.price.. " gp's for broadcasting.")
return true
end
else
doPlayerSendCancel(cid, "You have to wait " ..(getPlayerStorageValue(cid, config.storage) - os.time()).. " seconds until you can broadcast again.")
return true
end
else
doPlayerSendCancel(cid, "You have to be level " ..config.level.. " or more in order to use broadcast.")
end
end
Editado por xWhiteWolf (veja o histórico de edições)

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Verdade vlw White... kk nem tinha pensado assim ainda :) Rep + :)

Scripter: |||||||||| 10%

 

 

Te ajudei?? REP + e ficamos quites...  ;D

 

Atenciosamente,

                   Lucas.

Abraços!

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo