Ir para conteúdo
  • Cadastre-se

comando de tutor e de adm


Posts Recomendados

Olá, utilizo:

Tfs 1.0

Versão do ot:10.53

 

A duvida é a seguinte:

Quero saber se há algum script para que o tutor possa cuidar melhor do help channel. Um comando que possa mutar o player por 5 minutos mais ou menos.

 

Um comando para que o ADM possa enviar uma mensagem em vermelho mas que não apareça o nome dele.

 

Meu server não possui um group para tutor, o tutor é promovido através do comando /addtutor então gostaria de ajustar este tutor para que quando ele desse look no chão ele poder ver as coordenadas, assim ele poderá repassar o bug mais claramente podendo informar o local onde se encontra o bug.

 

Comando Shutdown, pois preciso sempre salvar o server com o ADM e fecha-lo através do SSH.

Desde já agradeço!

Link para o post
Compartilhar em outros sites

Eu também gostaria desse primeiro pedido ai...

 

no segundo pelo distro do server tem como mandar broadcast message e So clicar em server e dps em broadcast message...

Link para o post
Compartilhar em outros sites

Não havia reparado... malz ae

Link para o post
Compartilhar em outros sites

A "mensagem" vermelha dá ss, eu tenho uma talkaction no meu ot, dx eu entrar no pc e passo pra ti.

As outras coisas eu tenho uma ideia de como podem ser feitas. Qnd eu entrar no pc eu dou uma olhada.

 

@Edit:

Mensagem vermelha pra cm+:

adicione essa tag em talkactions.xml:

	<talkaction log="yes" words="/bc" access="3" event="script" value="broadcastclass.lua"/>

Agora va na pasta data/talkactions/scripts e crie um arquivo chamado broadcastclass.lua e coloque isso dentro:

function onSay(cid, words, param, channel)
if(param == "") then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need to type the message that will be broadcasted.")
return false
end
local t = string.explode(param, ";", 1)
if(not t[2] or MESSAGE_TYPES[t[1]] == nil) then
broadcastMessage(param)
else
broadcastMessage(t[2], MESSAGE_TYPES[t[1]])
end
return false
end

@Edit:

Comando shutdown pra god:

Adicione essa tag em talkactions.xml:

	<talkaction log="yes" words="/shutdown" access="5" event="script" value="shutdown.lua"/>

Agora va na pasta data/talkactions/scripts e crie um arquivo chamado shutdown.lua e coloque isso dentro:

shutdownEvent = 0

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

	params = string.explode(param, ",")
	local action, reason, mins  = "", "", 0
	if(not tonumber(params[1])) then
		action = string.trim(params[1]:lower())
	else
		mins = string.trim(params[1])
		if(table.maxn(params) > 1) then
			reason = params[2]
		end
	end
	
	if(action) then
		if(action == "cancel" or action == "stop") then
			if(shutdownEvent ~= 0) then
				stopEvent(shutdownEvent)
				shutdownEvent = 0
				doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Shutdown cancelled.")
			else
				doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Server is not in the shutdown phase.")
			end
			return true
		elseif(action == "kill") then
			os.exit()
			return true
		end
	end
	
	mins = tonumber(mins)
	if(not mins or mins < 0) then
		doPlayerSendCancel(cid, "Numeric param may not be lower than 0.")
		return true
	end
	
	if(shutdownEvent ~= 0) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Server is already in a shutdown state. To cancel shutdown use the \"/shutdown stop\" command.")
		return true
	end
	
	return prepareShutdown(math.abs(math.ceil(mins)), reason)
end

function prepareShutdown(minutes, reason)
	if(minutes <= 0) then
		doSetGameState(GAMESTATE_SHUTDOWN)
		return false
	end

	local change, r = 5, (reason ~= "" and " Reason: "..reason or "")
	if(minutes == 1) then
		doBroadcastMessage("Server is going down in " .. minutes .. " minute, please log out now!" .. r)
	elseif(minutes <= 5) then
		doBroadcastMessage("Server is going down in " .. minutes .. " minutes, please log out." .. r)
		change = 1
	else
		doBroadcastMessage("Server is going down in " .. minutes .. " minutes." .. r)
	end

	shutdownEvent = addEvent(prepareShutdown, (change * 60 * 1000), minutes - change, reason)
	return true
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

shutdownEvent = 0 function onSay(cid, words, param, channel) if(param == '') then doSetGameState(GAMESTATE_SHUTDOWN) return true end params = string.explode(param, ",") local action, reason, mins = "", "", 0 if(not tonumber(params[1])) then action = string.trim(params[1]:lower()) else mins = string.trim(params[1]) if(table.maxn(params) > 1) then reason = params[2] end end if(action) then if(action == "cancel" or action == "stop") then if(shutdownEvent ~= 0) then stopEvent(shutdownEvent) shutdownEvent = 0 doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Shutdown cancelled.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Server is not in the shutdown phase.") end return true elseif(action == "kill") then os.exit() return true end end mins = tonumber(mins) if(not mins or mins < 0) then doPlayerSendCancel(cid, "Numeric param may not be lower than 0.") return true end if(shutdownEvent ~= 0) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Server is already in a shutdown state. To cancel shutdown use the \"/shutdown stop\" command.") return true end return prepareShutdown(math.abs(math.ceil(mins)), reason) end function prepareShutdown(minutes, reason) if(minutes <= 0) then doSetGameState(GAMESTATE_SHUTDOWN) return false end local change, r = 5, (reason ~= "" and " Reason: "..reason or "") if(minutes == 1) then doBroadcastMessage("Server is going down in " .. minutes .. " minute, please log out now!" .. r) elseif(minutes <= 5) then doBroadcastMessage("Server is going down in " .. minutes .. " minutes, please log out." .. r) change = 1 else doBroadcastMessage("Server is going down in " .. minutes .. " minutes." .. r) end shutdownEvent = addEvent(prepareShutdown, (change * 60 * 1000), minutes - change, reason) return true end
Obrg e REP+ 

Meus Contatos!

 

Minhas Funções:

 

               Skype: TsplayerT

         Facebook: TakaFukushii

          YouTube: ADoseDupla

           Twitter: @_Splayer_

 

 

 

 

 

 

 

                             Mapper:▓▓▓▓▓▓▓▓▓▓ 97%

     Programmer:▓▓▓▓▓▒▒▒▒▒ 45%

             Scripter:▓▓▓▓▓▓▓▓▓▒ 83%

              Spriter:▓▓▓▓▓▓▒▒▒▒ 57%

    Gamemaster:▓▓▓▓▓▓▓▓▓▓ 99%

        Ot Creator:▓▓▓▓▓▓▓▒▒▒71%

Ot Client Maker:▓▓▓▓▓▓▓▒▒▒74%

 

Link para o post
Compartilhar em outros sites

O do /bc não funcionou? Apareceu algum erro? Se sim, pf poste uma print.

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

No TFS 1.0, a função doBroadcastMessage não existe.

Tente:

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

    local t = string.explode(param, " ", 1)
    if(not t[2]) then
        broadcastMessage(t[1], MESSAGE_STATUS_WARNING)
    elseif(not broadcastMessage(t[2], MESSAGE_TYPES[t[1]])) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Bad message color type.")
    end
    
    return true
end

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

pode me ajudar via PM? N ignore pf

Meus Contatos!

 

Minhas Funções:

 

               Skype: TsplayerT

         Facebook: TakaFukushii

          YouTube: ADoseDupla

           Twitter: @_Splayer_

 

 

 

 

 

 

 

                             Mapper:▓▓▓▓▓▓▓▓▓▓ 97%

     Programmer:▓▓▓▓▓▒▒▒▒▒ 45%

             Scripter:▓▓▓▓▓▓▓▓▓▒ 83%

              Spriter:▓▓▓▓▓▓▒▒▒▒ 57%

    Gamemaster:▓▓▓▓▓▓▓▓▓▓ 99%

        Ot Creator:▓▓▓▓▓▓▓▒▒▒71%

Ot Client Maker:▓▓▓▓▓▓▓▒▒▒74%

 

Link para o post
Compartilhar em outros sites

ue cara, vc pode fazer uma função pra mostrar a posicao

 

 

 

tipo:

function onSay(cid)
doCreatureSay(cid, "X: "..getCreaturePosition(cid).x, 1)
doCreatureSay(cid, "Y: "..getCreaturePosition(cid).y, 1)
doCreatureSay(cid, "Z: "..getCreaturePosition(cid).z, 1)
doCreatureSay(cid, "ATUAL!!!!!!!", 1)
return true
end

salva como posicao.lua na pasta talkactions/data

ai no talkactions.xml tu poe
 

<talkaction log="yes" words="/posicao" access="1" event="script" value="posicao.lua"/>
 
ai ele vai manda a sua ultima posição, facil ne????
Editado por leo300 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

ue cara, vc pode fazer uma função pra mostrar a posicao

 

 

 

tipo

function onSay(cid)
doCreatureSay(cid, "X: "..getCreaturePosition(cid).x, 1)
doCreatureSay(cid, "Y: "..getCreaturePosition(cid).y, 1)
doCreatureSay(cid, "Z: "..getCreaturePosition(cid).z, 1)
doCreatureSay(cid, "ATUAL!!!!!!!", 1)
return true
end

ai ele vai manda a sua ultima posição, facil ne????

VALEUUUUUUUUU cara, me ajudo muito, continue assim!!!

Link para o post
Compartilhar em outros sites

Meu server não possui um group para tutor, o tutor é promovido através do comando /addtutor então gostaria de ajustar este tutor para que quando ele desse look no chão ele poder ver as coordenadas, assim ele poderá repassar o bug mais claramente podendo informar o local onde se encontra o bug.

Isso que você quer é uma customflag: Can see position onLook (PLAYERCUSTOMFLAG_CANSEEPOSITION), 2.

Crie um novo group ID para o tutor e atribua à ele as flags/customflags como preferir.

Você pode usar o Flags Calculator para calcular os privilégios e restrições das mesmas.

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

O do /bc não funcionou? Apareceu algum erro? Se sim, pf poste uma print.

ele simplesmente não enviou a mensagem.

 

 

No TFS 1.0, a função doBroadcastMessage não existe.

Tente:

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

    local t = string.explode(param, " ", 1)
    if(not t[2]) then
        broadcastMessage(t[1], MESSAGE_STATUS_WARNING)
    elseif(not broadcastMessage(t[2], MESSAGE_TYPES[t[1]])) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Bad message color type.")
    end
    
    return true
end

apareceu o seguinte erro

Lua Script Error: [TalkAction Interface] 
data/talkactions/scripts/broadcast.lua:onSay
data/talkactions/scripts/broadcast.lua:6: attempt to call field 'explode' (a nil value)
stack traceback:
        [C]: in function 'explode'
        data/talkactions/scripts/broadcast.lua:6: in function <data/talkactions/scripts/broadcast.lua:1>

Isso que você quer é uma customflag: Can see position onLook (PLAYERCUSTOMFLAG_CANSEEPOSITION), 2.

Crie um novo group ID para o tutor e atribua à ele as flags/customflags como preferir.

Você pode usar o Flags Calculator para calcular os privilégios e restrições das mesmas.

tem isso para a minha versão do tfs e do tibia? pois pelo que me falaram nesta nova versão só é suportada 3 groups

Link para o post
Compartilhar em outros sites

@TsplayerT cuidado amigo, ja é a segunda vez que eu alerto você sobre comentários inúteis em tópicos que não são seus, evite ficar comentando este tipo de mensagem para não resultar em um banimento do fórum.

Espero que não aconteça novamente, preste mais atenção !!

Link para o post
Compartilhar em outros sites

apareceu o seguinte erro

Lua Script Error: [TalkAction Interface] data/talkactions/scripts/broadcast.lua:onSay

data/talkactions/scripts/broadcast.lua:6: attempt to call field 'explode' (a nil value)

stack traceback: [C]: in function 'explode' data/talkactions/scripts/broadcast.lua:6: in function

Adicione à lib do seu servidor:

string.explode = function (str, sep, limit)
    if(type(sep) ~= 'string' or isInArray({tostring(str):len(), sep:len()}, 0)) then
        return {}
    end

    local i, pos, tmp, t = 0, 1, "", {}
    for s, e in function() return string.find(str, sep, pos) end do
        tmp = str:sub(pos, s - 1):trim()
        table.insert(t, tmp)
        pos = e + 1

        i = i + 1
        if(limit ~= nil and i == limit) then
            break
        end
    end

    tmp = str:sub(pos):trim()
    table.insert(t, tmp)
    return t
end

 

tem isso para a minha versão do tfs e do tibia? pois pelo que me falaram nesta nova versão só é suportada 3 groups

Se não me engano, no TFS 1.0 são 4 groups com 3 "módulos de acesso". Seriam eles Player (none/0), Tutor (1), Senior Tutor (2) e God (3).

Você pode aplicar as flags/custom flags como te indiquei anteriormente, aos groups de Tutor (2) e Senior Tutor (3), pelo seu groups.xml.

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

da mensagem em vermelho, tente esse:

function onSay(cid, words, param)
	if not getPlayerFlagValue(cid, PlayerFlag_CanBroadcast) then
		return true
	end

	local player = Player(cid)
	print("> broadcasted: \"" .. param .. "\".")
	for _, pid in ipairs(Game.getPlayers()) do
		pid:sendTextMessage(MESSAGE_STATUS_WARNING, param)
	end
	return false
end


editt

 

 

O comando de mutar, vc quer em todos os canais ou so no help?

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

Te ajudei? Então Rep + ;)

Link para o post
Compartilhar em outros sites

Adicione à lib do seu servidor:

string.explode = function (str, sep, limit)    if(type(sep) ~= 'string' or isInArray({tostring(str):len(), sep:len()}, 0)) then        return {}    end    local i, pos, tmp, t = 0, 1, "", {}    for s, e in function() return string.find(str, sep, pos) end do        tmp = str:sub(pos, s - 1):trim()        table.insert(t, tmp)        pos = e + 1        i = i + 1        if(limit ~= nil and i == limit) then            break        end    end    tmp = str:sub(pos):trim()    table.insert(t, tmp)    return tend

Se não me engano, no TFS 1.0 são 4 groups com 3 "módulos de acesso". Seriam eles Player (none/0), Tutor (1), Senior Tutor (2) e God (3).

Você pode aplicar as flags/custom flags como te indiquei anteriormente, aos groups de Tutor (2) e Senior Tutor (3), pelo seu groups.xml.

é em customfunctions.lua?

Olhe meu Groups.xml

<?xml version="1.0" encoding="UTF-8"?><groups>	<group id="1" name="Player" flags="0" access="0" maxdepotitems="0" maxvipentries="0" />	<group id="2" name="Tutor" flags="137438953471" access="0" maxdepotitems="0" maxvipentries="200" />	<group id="3" name="Admin" flags="272730398714" access="1" maxdepotitems="0" maxvipentries="200" /></groups>

da mensagem em vermelho, tente esse:

function onSay(cid, words, param)	if not getPlayerFlagValue(cid, PlayerFlag_CanBroadcast) then		return true	end	local player = Player(cid)	print("> broadcasted: \"" .. param .. "\".")	for _, pid in ipairs(Game.getPlayers()) do		pid:sendTextMessage(MESSAGE_STATUS_WARNING, param)	end	return falseend
editt

O comando de mutar, vc quer em todos os canais ou so no help?

esse script que vc me enviou não pegou tb..

eu quero mute no help.

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

é em customfunctions.lua? Olhe meu Groups.xml

Não. Olha, calculei alguns valores, veja se te agrada:

<?xml version="1.0" encoding="UTF-8"?>
<groups>
    <group id="1" name="Player" flags="0" access="0" maxdepotitems="0" maxvipentries="0" />
    <group id="2" name="Tutor" flags="137455730688" access="0" maxdepotitems="0" maxvipentries="200" />
    <group id="3" name="Admin" flags="272730398714" access="1" maxdepotitems="0" maxvipentries="200" />
</groups>
Editado por Suicide (veja o histórico de edições)

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

qual erro deu?

 

vai em talk action/script e crie um arquivo muted.lua e add isso:

local CHANNEL_HELP = 7

local muted = createConditionObject(CONDITION_CHANNELMUTEDTICKS)
local tempo = 300000
setConditionParam(muted, CONDITION_PARAM_SUBID, CHANNEL_HELP)
setConditionParam(muted, CONDITION_PARAM_TICKS, tempo)

function onSay(cid, words, param, channel)
	if words == "/mute" then
		local t = string.explode(string.lower(param), ",")
		local player = Player(cid)
		if not player:getGroup():getAccess() then
			return true
		end
		if (param == nil) or (param == '') or (not param) then
			player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE,"Enter the name of the player")
		return true	
		end
		if (Player(t[1])) then
					if(getCreatureCondition(Player(t[1]), CONDITION_CHANNELMUTEDTICKS, CHANNEL_HELP)) then
						player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE,"The player "..getPlayerName (t [1]) .." is already mutated.")		
					return true
					end
			doAddCondition(Player(t[1]), muted)
			Player(t[1]):sendTextMessage(MESSAGE_STATUS_DEFAULT,"You have been muted by the "..getPlayerName (cid) .." with "..tempo / 1000 .." seconds.")
			player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE,"The player "..getPlayerName (t [1]) .." has been mutated by "..tempo / 1000 .." seconds.")		
		return true
			elseif (not Player(t[1])) then
				player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE,"A player with that name is not online.")
			return true
		end
	end
	if words == "/unmute" then
		local t = string.explode(string.lower(param), ",")
		local player = Player(cid)
		if not player:getGroup():getAccess() then
			return true
		end
		if (param == nil) or (param == '') or (not param) then
			player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE,"Enter the name of the player")
		return true	
		end
		if (Player(t[1])) then
			if(getCreatureCondition(Player(t[1]), CONDITION_CHANNELMUTEDTICKS, CHANNEL_HELP)) then
				doRemoveCondition(Player(t[1]), CONDITION_CHANNELMUTEDTICKS, CHANNEL_HELP)
				Player(t[1]):sendTextMessage(MESSAGE_STATUS_DEFAULT,"You have been desmuted by the "..getPlayerName (cid) ..".")
				player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE,"The player "..getPlayerName(t[1]).." has been desmutated.")
			return true
			else
				player:sendCancelMessage("The player "..getPlayerName(t[1]).." is not muted")
			return true
			end
		else
			Player(cid):sendCancelMessage("A player with that name is not online.")
		return true
		end
	end
end 

depois no talkaction.xml add isso:

	<talkaction words="/mute" separator=" " script="muted.lua" />
	<talkaction words="/unmute" separator=" " script="muted.lua" />
Editado por narazaky (veja o histórico de edições)

Te ajudei? Então Rep + ;)

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