Ir para conteúdo

Featured Replies

Postado

Olá, pensei em em criar um channel tipo party, help etc, mas que só apareça as Raids lá e os players não consigam mandar msg, alguém pode ajudar?

Uso TFS 1.3.

 

Aqui seria o exemplo de lua que poderia usar

local function sendMessage(cid)
  local player = Player(cid)
  if not player then
  return false
  end
 
  player:sendChannelMessage("", "Welcome to the Main Channel.\nHere you can advertise all kinds of things. Among others, advertise ingame events, seek characters for a quest or a hunting group, find members for your guild or look for somebody to help you with something.", TALKTYPE_CHANNEL_O, 10)
end
 
function onJoin(player)
  addEvent(sendMessage, 100, player:getId())
  return true
end
 
function onSpeak(player, type, message)
 local playerAccountType = player:getAccountType()
 if player:getLevel() == 1 and playerAccountType < ACCOUNT_TYPE_GAMEMASTER then
 player:sendCancelMessage("You may not speak into channels as long as you are on level 1.")
 return false
 end
 
 if type == TALKTYPE_CHANNEL_Y then
 if playerAccountType >= ACCOUNT_TYPE_GAMEMASTER then
 type = TALKTYPE_CHANNEL_O
 end
 elseif type == TALKTYPE_CHANNEL_O then
 if playerAccountType < ACCOUNT_TYPE_GAMEMASTER then
 type = TALKTYPE_CHANNEL_Y
 end
 elseif type == TALKTYPE_CHANNEL_R1 then
 if playerAccountType < ACCOUNT_TYPE_GAMEMASTER and not getPlayerFlagValue(player, PlayerFlag_CanTalkRedChannel) then
 type = TALKTYPE_CHANNEL_Y
 end
 end
 return type
end

 

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

Resolvido por Lyu

Ir para solução
  • Respostas 7
  • Visualizações 1.1k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Opa eai @Jobs, beleza? Fiz aqui rapidinho, testa ai meu bom!   raids.cpp Procure : extern ConfigManager g_config; Adicione isso abaixo :  extern Chat* g_chat;   Agora

Posted Images

Postado
  • Solução

Opa eai @Jobs, beleza? Fiz aqui rapidinho, testa ai meu bom!

 

raids.cpp

Procure :

extern ConfigManager g_config;

Adicione isso abaixo :

 extern Chat* g_chat;

 

Agora no mesmo arquivo, procure :

g_game.broadcastMessage(message, messageType);

Remova e adicione isso no lugar :

	ChatChannel* channel = g_chat->getChannelById(0x14/*CHANNEL_RAID*/);
	channel->sendToAll(message, TALKTYPE_CHANNEL_W);

 

 

data/chatchannels/chatchannels.xml

<channel id="20" name="Raid Channel" script="raid.lua" />

 

data/chatchannels/scripts/raid.lua

function onSpeak(player, type, message)
	return false
end

 

Isso deve enviar mensagens de Raid diretamente para o Channel 20 ao invés de um broadcastMessage, não sei se era isso que você queria mas espero que sim haha. Abraços!

Postado
  • Autor
17 horas atrás, Lyu disse:

Opa eai @Jobs, beleza? Fiz aqui rapidinho, testa ai meu bom!

 

raids.cpp

Procure :


extern ConfigManager g_config;

 Adicione isso abaixo :


 extern Chat* g_chat;

  

Agora no mesmo arquivo, procure :


g_game.broadcastMessage(message, messageType);

 Remova e adicione isso no lugar :


	ChatChannel* channel = g_chat->getChannelById(0x14/*CHANNEL_RAID*/);
	channel->sendToAll(message, TALKTYPE_CHANNEL_W);

 

 

data/chatchannels/chatchannels.xml


<channel id="20" name="Raid Channel" script="raid.lua" />

  

data/chatchannels/scripts/raid.lua


function onSpeak(player, type, message)
	return false
end

 

Isso deve enviar mensagens de Raid diretamente para o Channel 20 ao invés de um broadcastMessage, não sei se era isso que você queria mas espero que sim haha. Abraços!

 

 

Era isso mesmo que eu queria, mas deu um erro aqui na compilação.

 

/home/otserv/source/src/raids.cpp: In member function ‘virtual bool AnnounceEvent::executeEvent()’:
/home/otserv/source/src/raids.cpp:347:30: error: ‘TALKTYPE_CHANNEL_W’ was not declared in this scope
  channel->sendToAll(message, TALKTYPE_CHANNEL_W);

 

Postado
6 horas atrás, Jobs disse:

 

Era isso mesmo que eu queria, mas deu um erro aqui na compilação.

 


/home/otserv/source/src/raids.cpp: In member function ‘virtual bool AnnounceEvent::executeEvent()’:
/home/otserv/source/src/raids.cpp:347:30: error: ‘TALKTYPE_CHANNEL_W’ was not declared in this scope
  channel->sendToAll(message, TALKTYPE_CHANNEL_W);

 

 

A constante para mensagens brancas deve ser diferente em protocolos mais atuais, de qualquer forma, troca TALKTYPE_CHANNEL_W por TALKTYPE_CHANNEL_O que resolve.

Postado
  • Autor
17 minutos atrás, Lyu disse:

A constante para mensagens brancas deve ser diferente em protocolos mais atuais, de qualquer forma, troca TALKTYPE_CHANNEL_W por TALKTYPE_CHANNEL_O que resolve.

 

Funcionou perfeitamente, obrigado novamente brother!

image.png.0d562fbb305393a16e1b7b82ce1018f5.png

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo