Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 11/24/21 em todas áreas

  1. Setas do Cast [OTX 2.x]

    s0beit reagiu a Nolangg por uma resposta no tópico

    1 ponto
    E aí guys, venho a um tempo vendo as datapacks que lançam diariamente e resolvi postar o sistema de setas no cast (não sei se alguém já postou algo relativo o_o) para fazer esse sistema eu estou usando a última versão do OTX do github... LINK PARA BAIXAR (otx do mattyx) maioria das pessoas já sabem o que é esse sistema, mas pra quem não sabe, é a possibilidade de alternar o cast apertando CTRL + QUALQUER ARROW, mesmo que já tenha em vários servers, algums ainda não tem então toma aí. em protocolgame.cpp procure por void ProtocolGame::spectate(const std::string& name, const std::string& password) dentro das chaves após player->client->addSpectator(this); coloque: std::ostringstream ss; std::string value = "-1"; player->getStorage("broadcast_start", value); time_t ctime = time(NULL); uint32_t total = ctime - std::stoi(value); uint32_t hours, minutes, seconds; minutes = total / 60; seconds = total % 60; hours = minutes / 60; minutes = minutes % 60; ss << "Players watching " << player->getName() << ": " << (player->client->list().size()) << "\nBroadcast time: "; if (hours > 0) { ss << hours << " hour(s)"; } if (minutes > 0) { ss << minutes << " minute(s)"; } if (seconds > 0) { ss << seconds << " second(s)"; } ss << "\nYou can Switch channels by using CTRL + arrow keys!"; std::string msg = ss.str(); this->m_lastSwitch = time(NULL); this->sendTextMessage(MSG_INFO_DESCR, msg); no final desse escopo após a }, adicione: void ProtocolGame::spectatorTurn(uint8_t direction) { std::vector<Player*> candidates; int index = 0; for (AutoList<Player>::iterator it = Player::autoList.begin(); it != Player::autoList.end(); ++it) { if (!it->second->client->isBroadcasting()) { continue; } if (it->second->client->getPassword() != "") { continue; } if (it->second->client->banned(getIP())) { continue; } if (it->second == player) { index = candidates.size(); } candidates.push_back(it->second); } if (candidates.size() < 2) { return; } if (direction == 0 || direction == 1) { direction = uint8_t(1); } if (direction == 2 || direction == 3) { direction = uint8_t(-1); } if (index == 0 && direction == -1) { direction = uint8_t(0); } Player* _player = candidates[(index + direction) % candidates.size()]; if (!_player || player == _player) { return; } if (!_player || _player->isRemoved() || !_player->client->getOwner()) { return; } if ((time(NULL) - this->m_lastSwitch) < 1) { return; } this->m_lastSwitch = time (NULL); player->client->removeSpectator(this); player->unRef(); player = _player; player->addRef(); knownCreatureSet.clear(); player->sendCreatureAppear(player, this); player->sendContainers(this); if (PrivateChatChannel * channel = g_chat.getPrivateChannel(player)) chat(channel->getId()); player->client->addSpectator(this); } agora em: void ProtocolGame::parsePacket(NetworkMessage &msg) procure por: case 0xA1: parseCancelTarget(msg); break; tenha certeza de estar dentro do escopo: if(m_spectator) { switch(recvbyte) { então abaixo de "case 0xA1: parseCancelTarget(msg); break;" coloque: // Ctrl + Arrow case 0x6F: case 0x70: case 0x71: case 0x72: Dispatcher::getInstance().addTask( createTask(boost::bind(&ProtocolGame::spectatorTurn, this, recvbyte - 0x6F))); break; feito, mas agora precisamos adicionar algumas coisas em protocolgame.h procure por: void chat(uint16_t channelId); adicione abaixo: void spectatorTurn(uint8_t direction); agora, lá no final do arquivo, procure por: Player* player; coloque abaixo: time_t m_lastSwitch; agora só compilar e testar apenas umas imagem mostrando que deu certo abaixo... caso der algum tipo de erro, fico a disposição para ajudar Opcional: mensagem MOTD (mensagem do dia) modificada igual abaixo: 2: informações de level / specs ativos na janela de login igual a imagem abaixo: é isso. quem fez esse sistema eu não sei, apenas peguei de uma source que tinha e coloquei explicado aqui, então de créditos eu coloco 1% eu @stackcheese por ter explicado como por hihi
  2. [PEDIDO] Object Builder

    locauty reagiu a TiuoDrog por uma resposta no tópico

    1 ponto
    Desculpe reviver o topic mas esta ai o Object Builder e tambem ira precisar do Adobe Air
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo