Ir para conteúdo
  • 0

(resolvido) Alguém edita essa script para min ?


Wase Wiss

Pergunta

Eae Galera blz ? eu queria pedir para vocês se poderiam editar essa script para min

Spoiler
-- Créditos para Yan Liima - Night criador da script.local time = 2    -- em segundos 1 = 1 segundo 2 = 2 segundos...    local say_events = {}local function SayText(cid)    if isPlayer(cid) == TRUE then    if say_events[getPlayerGUID(cid)] ~= nil then    if isPlayer(cid) == TRUE then    doSendAnimatedText(getPlayerPosition(cid),"Treinando!", math.random(01,255))    end    say_events[getPlayerGUID(cid)] = addEvent(SayText, time * 1000 / 2, cid)	doCreatureSetNoMove(cid, true)    end    end    return TRUEendfunction onSay(cid, words, param, channel)    if(param == '') then    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Utilize '!trainar on' para ligar e '!trainar off' para desligar.")    return true    end    if param == "on" then    if isPlayer(cid) == TRUE then    doSendAnimatedText(getPlayerPosition(cid),"Treinando", math.random(01,255))    end    say_events[getPlayerGUID(cid)] = addEvent(SayText, time * 1000, cid)    doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,"Voce esta em modo 'Treinar'.")	doPlayerSendTextMessage(cid,20,"Para sair do modo 'treinar' diga !trainar off")    elseif param == "off" then    stopEvent(say_events[getPlayerGUID(cid)])    say_events[getPlayerGUID(cid)] = nil    doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,"Voce nao esta mais em modo Treinar'.")	doCreatureSetNoMove(cid, false)    end    return TRUEend

Eu queria que o player não precisasse falar !trainar off, ou !trainar on, ele apenas falasse !trainer, e ae ativava, e quando ele falasse !trainer de novo, desativa-se, e que só pode-se falar isso em determinado lugares, será que alguém poderia min ajuda por favor

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

Posts Recomendados

  • 0
Citar

-- Créditos para Yan Liima - Night criador da script.

local time = 2 -- em segundos 1 = 1 segundo 2 = 2 segundos...

local say_events = {}

local function SayText(cid)

if isPlayer(cid) == TRUE then

if say_events[getPlayerGUID(cid)] ~= nil then

if isPlayer(cid) == TRUE then

doSendAnimatedText(getPlayerPosition(cid),"Treinando!", math.random(01,255))

end

say_events[getPlayerGUID(cid)] = addEvent(SayText, time * 1000 / 2, cid)

doCreatureSetNoMove(cid, true)

end

end

return TRUE

end

 

function onSay(cid, words, param, channel)

if(param == '') then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Utilize '!trainar on' para ligar e '!trainar off' para desligar.")

return true

end

 

if say_events[getPlayerGUID(cid)] and isPlayer(cid) then

doSendAnimatedText(getPlayerPosition(cid),"Treinando", math.random(01,255))

say_events[getPlayerGUID(cid)] = addEvent(SayText, time * 1000, cid)

doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,"Voce esta em modo 'Treinar'.")

else

stopEvent(say_events[getPlayerGUID(cid)])

say_events[getPlayerGUID(cid)] = nil

doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,"Voce nao esta mais em modo Treinar'.")

doCreatureSetNoMove(cid, false)

end

return TRUE

end

 

Link para o comentário
Compartilhar em outros sites

  • 0
24 minutos atrás, Poccnn disse:

 

Mano, poderia mudar o comando !trainar on e !tranar off para !trainer ? ele fala !trainer ativa, ae se ele falar !trainer dps desativar

Link para o comentário
Compartilhar em outros sites

  • 0
6 horas atrás, Henrique Gomes disse:

Mano, poderia mudar o comando !trainar on e !tranar off para !trainer ? ele fala !trainer ativa, ae se ele falar !trainer dps desativar

 

testa, se não funcionar quando chegar em casa eu arrumo..

 

-- Créditos para Yan Liima - Night criador da script.local time = 2    -- em segundos 1 = 1 segundo 2 = 2 segundos...    local say_events = {}	local function SayText(cid)    if isPlayer(cid) then		if say_events[getPlayerGUID(cid)] ~= nil then			if isPlayer(cid) == TRUE then				doSendAnimatedText(getPlayerPosition(cid),"Treinando!", math.random(01,255))			end		say_events[getPlayerGUID(cid)] = addEvent(SayText, time * 1000 / 2, cid)		doCreatureSetNoMove(cid, true)		end    end    return trueendfunction onSay(cid, words, param, channel) if getPlayerStorageValue(cid, 16969) <= 0 then    if isPlayer(cid) then		doSendAnimatedText(getPlayerPosition(cid),"Treinando", math.random(01,255))	end		say_events[getPlayerGUID(cid)] = addEvent(SayText, time * 1000, cid)		doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,"Voce esta em modo 'Treinar'.")		doPlayerSendTextMessage(cid,20,"Para sair do modo 'treinar' diga !trainar")		setPlayerStorageValue(cid, 16969, 1)else    stopEvent(say_events[getPlayerGUID(cid)])    say_events[getPlayerGUID(cid)] = nil    doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,"Voce nao esta mais em modo Treinar'.")	doCreatureSetNoMove(cid, false)	setPlayerStorageValue(cid, 16969, 0)endreturn trueend

 

 

 

Link para o comentário
Compartilhar em outros sites

  • 0
7 horas atrás, Henrique Gomes disse:

Mano, poderia mudar o comando !trainar on e !tranar off para !trainer ? ele fala !trainer ativa, ae se ele falar !trainer dps desativar

Já foi feito.

Link para o comentário
Compartilhar em outros sites

  • 0
1 hora atrás, DuuhCarvalho disse:

 

funcionou a questão do player falar a !trainar?

 

manda as posições...

Mano eu não sei kk, o cara min passou essa script, ae eu queria mudar, se você quiser ela e deixar do seu jeito pode, eu queria que só pode-se usar ela em área de trainer

Link para o comentário
Compartilhar em outros sites

  • 0
1 hora atrás, Henrique Gomes disse:

Mano eu não sei kk, o cara min passou essa script, ae eu queria mudar, se você quiser ela e deixar do seu jeito pode, eu queria que só pode-se usar ela em área de trainer

 

certo, mas a primeira questão foi resolvida ? !treinar on e !treinar off ? agora só fala !treiner e pronto?

 

sobre essa outra questão, no rme os treiner's estão em no-pvp zone ?

onde o player fica parado é no-pvp zone?

 

Link para o comentário
Compartilhar em outros sites

  • 0

Abaixo de:

function onSay(cid, words, param, channel)

coloque:

local posis = {    --Abaixo você configura, respectivamente, as coordenadas da posição superior esquerda (fromPos) e inferior direita (toPos) das áreas.    {fromPos = {x = x, y = y, z = z}, toPos = {x = x, y = y, z = z}},    {fromPos = {x = x, y = y, z = z}, toPos = {x = x, y = y, z = z}},    {fromPos = {x = x, y = y, z = z}, toPos = {x = x, y = y, z = z}},    --etc}local check_posfor 1, #posis do    if isInArea(getThingPos(cid), posis[i].fromPos, posis[i].toPos) then        check_pos = true        break    endendif not check_pos then    doPlayerSendCancel(cid, "You must be in some training room to use this command.")    return trueend

 

Link para o comentário
Compartilhar em outros sites

  • 0
Agora, DuuhCarvalho disse:

 

certo, mas a primeira questão foi resolvida ? !treinar on e !treinar off ? agora só fala !treiner e pronto?

 

sobre essa outra questão, no rme os treiner's estão em no-pvp zone ?

onde o player fica parado é no-pvp zone?

 

Sim, isso mesmo

Link para o comentário
Compartilhar em outros sites

  • 0
24 minutos atrás, zipter98 disse:

Abaixo de:


function onSay(cid, words, param, channel)

coloque:


local posis = {
    --Abaixo você configura, respectivamente, as coordenadas da posição superior esquerda (fromPos) e inferior direita (toPos) das áreas.
    {fromPos = {x = x, y = y, z = z}, toPos = {x = x, y = y, z = z}},
    {fromPos = {x = x, y = y, z = z}, toPos = {x = x, y = y, z = z}},
    {fromPos = {x = x, y = y, z = z}, toPos = {x = x, y = y, z = z}},
    --etc
}

local check_pos

for 1, #posis do
    if isInArea(getThingPos(cid), posis[i].fromPos, posis[i].toPos) then
        check_pos = true
        break
    end
end

if not check_pos then
    doPlayerSendCancel(cid, "You must be in some training room to use this command.")
    return true
end

 

 

@zipter98

não da pra usar tipo:

 

if getTileInfo(getThingPos(cid)).nopvp then
	...
end

ficaria mais fácil, porém em area qualquer area nopvp ele conseguiria usar 'rs

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

  • 0
20 minutos atrás, Henrique Gomes disse:

Eu não seis os lugares que eu vou colocar, ae e queria que fosse para usar apenas em No-pvp tool

 

faz o teste ae pf..

 

depois de function onSay coloca isso:

 

if getTileInfo(getThingPos(cid)).nopvp == FALSE then	return doPlayerSendCancel(cid, "Voce nao pode usar esse comando aqui.")end

 

Link para o comentário
Compartilhar em outros sites

  • 0
49 minutos atrás, DuuhCarvalho disse:

 

faz o teste ae pf..

 

depois de function onSay coloca isso:

 

if getTileInfo(getThingPos(cid)).nopvp == FALSE then	return doPlayerSendCancel(cid, "Voce nao pode usar esse comando aqui.")end

 

Mano, o negocio é que eu mudei o meu sv para 8.60, e mudei o mapa, só que agora não quer abrir de jeito nenhum, ae quando eu conseguir arrumar eu testo, pdc ?

Link para o comentário
Compartilhar em outros sites

  • 0

Como não jogo Tibia, me baseei somente na informação que o autor havia dado (limitar o uso à certas áreas). Como, após meu post, o autor explicitou que as áreas necessariamente seriam aquelas com o atributo de no-pvp, de fato, sua alternativa acaba sendo mais adequada, visto que há um fator abrangente que descarta o uso de looping e tabelas.

 

Porém, recomendaria apenas que não adotasse FALSE (destaque no case-sensitive) como um booleano. TRUE e FALSE são variáveis cujo valor são os verdadeiros booleanos: true e false. Apesar da funcionalidade ser a mesma (em servidores de Tibia, já que tais variáveis não são padrões em todas as fontes), é uma boa adotar logo o uso direto do booleano, como em:

if getTileInfo(getThingPos(cid)).nopvp == false then

ou, ainda melhor:

if not getTileInfo(getThingPos(cid)).nopvp then

Mas, novamente, ressalto que não há erros na estrutura que você escreveu.

Link para o comentário
Compartilhar em outros sites

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