Ir para conteúdo

Featured Replies

Postado

Eae Galera blz ? Eu queria pedir a ajuda de vocês para min tirar umas duvidas, e ajuda a mudar algumas coisas se possível, uma coisa que eu tenho duvida como é que arruma é que quando o player abre o cast para os player vê ele, se ele tiver guild e abrir o chat , as pessoas que assistem ele pode comentar no chat da guild, e fica o mesmo nome dele, e as outras duvidas é se tem como mudar a mensagem que aparece no chat do cast quando um player começa a assistir a pessoa, queria que essa mensagem fosse no em outro channel, o defaut.

Mostrar conteúdo oculto

A outra duvida é como mudar o nick do player que está assistindo, será que que alguém poderia min ajuda por favor.

 

protocolgame.cppUnavailable

 

Script Cast

Mostrar conteúdo oculto

 

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

Postado
  • Autor

@up, alguém min ajuda por favor, eu estava olhando aki no arquivo da source protocolgame.cpp, e achei isso aki

		if(!WaitingList::getInstance()->login(player))
		{
			if(OutputMessage_ptr output = OutputMessagePool::getInstance()->getOutputMessage(this, false))
			{
				TRACK_MESSAGE(output);
				std::stringstream ss;
				ss << "Too many players online.\n" << "You are ";

				int32_t slot = WaitingList::getInstance()->getSlot(player);
				if(slot)
				{
					ss << "at ";
					if(slot > 0)
						ss << slot;
					else
						ss << "unknown";

					ss << " place on the waiting list.";
				}
				else
					ss << "awaiting connection...";

				output->put<char>(0x16);
				output->putString(ss.str());
				output->put<char>(WaitingList::getTime(slot));
				OutputMessagePool::getInstance()->send(output);
			}

			getConnection()->close();
			return false;
		}

		if(!IOLoginData::getInstance()->loadPlayer(player, name))
		{
			disconnectClient(0x14, "Your character could not be loaded.");
			return false;
		}

		player->setClientVersion(version);
		player->setOperatingSystem(operatingSystem);
		if(!g_game.placeCreature(player, player->getLoginPosition()) && !g_game.placeCreature(player, player->getMasterPosition(), false, true))
		{
			disconnectClient(0x14, "Temple position is wrong. Contact with the administration.");
			return false;
		}

		player->lastIP = player->getIP();
		player->lastLoad = OTSYS_TIME();
		player->lastLogin = std::max(time(NULL), player->lastLogin + 1);

		m_acceptPackets = true;
		return true;
	}
	else if(_player->client)
	{
		if((m_eventConnect || !g_config.getBool(ConfigManager::REPLACE_KICK_ON_LOGIN)) && !castAccount)
		{
			//A task has already been scheduled just bail out (should not be overriden)
			disconnectClient(0x14, "You are already logged in.");
			return false;
		}
		
		if(!castAccount) {
    		g_chat.removeUserFromAllChannels(_player);
    		_player->disconnect();
    		_player->isConnecting = true;
        }

		addRef();
		if(!castAccount)
			m_eventConnect = Scheduler::getInstance().addEvent(createSchedulerTask(
				1000, boost::bind(&ProtocolGame::connect, this, _player->getID(), operatingSystem, version, castAccount)));
		else
			connect(_player->getID(), operatingSystem, version, castAccount);
		return true;
	}

	addRef();
	return connect(_player->getID(), operatingSystem, version, castAccount);
}

bool ProtocolGame::logout(bool displayEffect, bool forceLogout)
{
	//dispatcher thread
	if(!player)
		return false;
		
	if(getIsCast() && !player->isAccountManager())
	{
		PlayerCast pc = player->getCast();
		for(AutoList<ProtocolGame>::iterator it = Player::cSpectators.begin(); it != Player::cSpectators.end(); ++it)
			if(it->second == this)
				if(Connection_ptr connection = it->second->getConnection())
				{
					PrivateChatChannel* channel = g_chat.getPrivateChannel(player);
					if(channel) {
						channel->talk("", SPEAK_CHANNEL_RA, (getViewerName() + " has left the cast."));
					}

					connection->close();
					player->removeCastViewer(it->first);
				}
		return false;
	}

	if(!player->isRemoved())
	{
		if(!forceLogout)
		{
			if(!IOLoginData::getInstance()->hasCustomFlag(player->getAccount(), PlayerCustomFlag_CanLogoutAnytime))
			{
				if(player->getTile()->hasFlag(TILESTATE_NOLOGOUT))
				{
					player->sendCancelMessage(RET_YOUCANNOTLOGOUTHERE);
					return false;
				}

				if(player->getZone() != ZONE_PROTECTION && player->hasCondition(CONDITION_INFIGHT))
				{
					player->sendCancelMessage(RET_YOUMAYNOTLOGOUTDURINGAFIGHT);
					return false;
				}

				if(!g_creatureEvents->playerLogout(player, false)) //let the script handle the error message
					return false;
			}
			else
				g_creatureEvents->playerLogout(player, true);
		}
		else if(!g_creatureEvents->playerLogout(player, true))
			return false;

		if(displayEffect && !player->isGhost())
			g_game.addMagicEffect(player->getPosition(), MAGIC_EFFECT_POFF);
	}

	player->kickCastViewers();

	if(Connection_ptr connection = getConnection())
		connection->close();

	if(player->isRemoved())
		return true;

	return g_game.removeCreature(player);
}

bool ProtocolGame::connect(uint32_t playerId, OperatingSystem_t operatingSystem, uint16_t version, bool castAccount)
{
	if(!castAccount)
		unRef();
		
	m_eventConnect = 0;

	Player* _player = g_game.getPlayerByID(playerId);
	if(castAccount)
	{
		PlayerCast pc = _player->getCast();
		for(std::list<CastBan>::iterator it = pc.bans.begin(); it != pc.bans.end(); ++it)
			if(it->ip == getIP())
			{
				disconnectClient(0x14, "You are banned from this cast.");
				return false;
			}

		if(_player->getCastViewerCount() >= 50)
		{
			disconnectClient(0x14, "The cast reached the maximum viewer limit (50).");
			return false;
		}

		player = _player;
		player->addRef();
		m_acceptPackets = true;
		isCast = true;
		player->addCastViewer(this);
		sendAddCreature(_player, _player->getPosition(), _player->getTile()->getClientIndexOfThing(_player, _player));

		PrivateChatChannel* channel = g_chat.getPrivateChannel(_player);
		if(channel)
		{
			sendCreatePrivateChannel(channel->getId(), channel->getName());
			channel->talk("", SPEAK_CHANNEL_RA, (getViewerName() + " has joined the cast."));
			sendCreatureSay(player, SPEAK_PRIVATE, "Cast communication is turned on.");
		}
		else 
			sendCreatureSay(player, SPEAK_PRIVATE, "Cast communication is turned off.");
		return true;
	}

Ae eu queria que essa mensagem "has left the cast" aparece no defaut normal, e aparecesse "Telespectador (N°DOCARAQUESAIU) abandonou a Stream" e essa mensagem "has joined the cast" aparecesse no defaut também, "Telespectador (N°DOCARAQUE ENTROU) Entrou na sua Stream", será que alguém poderia min ajudar por favor, tem mais um bug também, eu queria que o cara que tivesse assistindo não tivesse como vê quem ta na lista vip do cara, será que pode min ajudar por favor, desde já orbigado <3

 

Mostrar conteúdo oculto

 

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