Ir para conteúdo

Featured Replies

Postado

Olá, estarei disponibilzando o código para abrir o ChannelPrivate, se você usa o CastSystem seja do OTX ou do TFS 0.4, será util se for usar o Cast System para abrir ao fazer login(Irei disponibilizar o script também).
Eu fiz esse código com base em outro da própria sourcer, funciona perfeitamente.


Explicando um pouco sobre o AutoCast, como irei usar o CastSystem, pude notar que em muitos OT's, mesmo com CastSystem, os players não ativavam a função, então coloquei para abrir automaticamente, sendo que o player terá que usar o comando para desativar, meu intuito é fazer com que os novos jogadores venham conhecer um pouco sobre o OT mesmo antes de jogar(essa função pode ser "inutil" para alguns, mas sei que servirá para outros assim como serviu para mim.

 

Todos códigos foram feitos por mim, caso copie, coloque os créditos.

PS: Script AutoCast para OTX, se usa outra versão é só mudar as funções que chamam o Cast ou me envie PM que irei modificar.

 

Vamos lá.

 

Procure static int32_t luaL_errors(lua_State* L); e abaixo coloque

static int32_t luaOpenPrivateChannel(lua_State* L);

depois procure por lua_register(m_luaState, "doPlayerSendCancel", LuaInterface::luaDoPlayerSendCancel); e acima coloque    

//OpenPrivateChannel(cid)
    lua_register(m_luaState, "openPrivateChannel", LuaInterface::luaOpenPrivateChannel);

 

Depois procure por int32_t LuaInterface::luaGetTileInfo(lua_State* L) e coloque acima

 

int32_t LuaInterface::luaOpenPrivateChannel(lua_State* L)
{
	ScriptEnviroment* env = getEnv();
	uint32_t cid = popNumber(L);
	Player* player = env->getPlayerByUID(cid);
	if (!player || player->isRemoved() || !player->isPremium())
		return false;

	ChatChannel* channel = g_chat.createChannel(player, 0xFFFF);
	if (!channel || !channel->addUser(player))
		return false;

	player->sendCreatePrivateChannel(channel->getId(), channel->getName());
	return true;
}

Agora vamos ao script para abrir o Live/Cast ao fazer logon.

 

Vá em data/Creatureevents e crie um arquivo chamado live.lua e coloque o código abaixo

 

function onLogin(cid)

local t, data = 1, getPlayerSpectators(cid)

if getPlayerAccountManager(cid) == MANAGER_NONE and getPlayerAccess(cid) <= 4 then -- Account Manager não irá iniciar o Cast e GM também não, mude apenas o Acess caso seja diferente
data.broadcast = true
doPlayerSetSpectators(cid, data)
db.executeQuery("UPDATE `players` SET `broadcasting` = 1 WHERE `id` = " .. getPlayerGUID(cid))
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Seu Cast foi ativado automaticamente, para desativar digite /live off.")
openPrivateChannel(cid) -- A função para abrir o PrivateChannel
end
return true
end

Depois abra o login.lua e coloque registerCreatureEvent(cid, "AutoCast")

 

Feito isso, abra o creaturescript.xml e coloque

<event type="login" name="AutoCast" event="script" value="live.lua"/>

 

Postado

Parabéns, seu tópico de conteúdo foi aprovado!
Muito obrigado pela sua contribuição, nós do Tibia King agradecemos.
Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.

Mostrar conteúdo oculto

 

  • 3 weeks later...

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.6k

Informação Importante

Confirmação de Termo