Ir para conteúdo

Gs Kaimyou

Membro
  • Registro em

  • Última visita

Tudo que Gs Kaimyou postou

  1. Estou elaborando um módulo de tasks onde é exibido todas as tasks e missoes do jogo, adicionei um botão onde queria que ele mostrasse no mapa o local onde o npc da missao se encontra. O meu problema se da na hora de acessar o modulo do minimap para conseguir fazer as alteraçoes necessarias, tipo alterar a posição do mapa e criar uma marcação no local do npc. Ja sei fazer essas alterações, meu unico problema é acessar o modulo do minimapa atraves do modulo novo que estou elaborando. Foto do módulo que estou elaborando Resolvido: No final era muito simples, apenas utilizei o comando "modules.game_minimap" e consegui. No fim adicionei tambem flags na posição onde o npc se encontra.
  2. .Qual servidor ou website você utiliza como base? otxserver 2.4 Qual o motivo deste tópico? Estou tentando criar uma tela de login personalizada, onde seriam exibidas informações mais detalhadas do player. Sei + ou - em quais arquivos devo mexer para enviar e receber os dados do client para o servidor, mas como não sei muito de C não consigo enviar os dados para o client. Queria pegar informações tipo level, outfit, vida. Se alguem puder me ajudar me dando um caminho de como fazer essa alteração ou algum tutorial que ja exista sobre como editar o protocolo de login eu agradeço. protocollogin.cpp #ifndef __LOGIN_SERVER__ for(Characters::iterator it = account.charList.begin(); it != account.charList.end(); ++it) { output->putString((*it)); if(g_config.getBool(ConfigManager::ON_OR_OFF_CHARLIST)) { if(g_game.getPlayerByName((*it))) output->putString("Online"); else output->putString("Offline"); } else output->putString(g_config.getString(ConfigManager::SERVER_NAME)); output->put<uint32_t>(serverIp); IntegerVec games = vectorAtoi(explodeString(g_config.getString(ConfigManager::GAME_PORT), ",")); output->put<uint16_t>(games[random_range(0, games.size() - 1)]); } iologindata.cpp void IOLoginData::loadCharacters(Account& account) { Database* db = Database::getInstance(); DBQuery query; #ifndef __LOGIN_SERVER__ query << "SELECT `name`, `level`, `looktype` FROM `players` WHERE `account_id` = " << account.number << " AND `world_id` = " << g_config.getNumber(ConfigManager::WORLD_ID) << " AND `deleted` = 0"; #else query << "SELECT `id`, `name`, `world_id`, `online` FROM `players` WHERE `account_id` = " << account.number << " AND `deleted` = 0"; #endif DBResult* result; if(!(result = db->storeQuery(query.str()))) return; do { #ifndef __LOGIN_SERVER__ std::string name = result->getDataString("name"); std::string level = result->getDataString("level"); std::string outfit = result->getDataString("looktype"); account.charList.push_back(name); #else std::string name = result->getDataString("name"); if(GameServer* srv = GameServers::getInstance()->getServerById(result->getDataInt("world_id"))) account.charList[name] = Character(name, srv, result->getDataInt("online")); else std::clog << "[Warning - IOLoginData::loadAccount] Invalid server for player '" << name << "'." << std::endl; #endif } while(result->next()); result->free(); #ifndef __LOGIN_SERVER__ account.charList.sort(); #endif } account.h #ifndef __ACCOUNT__ #define __ACCOUNT__ #include "otsystem.h" #ifndef __LOGIN_SERVER__ typedef std::list<std::string> Characters; #else class GameServer; struct Character { Character(): server(NULL), status(0) {} Character(const std::string& _name, GameServer* _server, int8_t _status): name(_name), server(_server), status(_status) {} std::string name, level, outfit; GameServer* server; int8_t status; }; typedef std::map<std::string, Character> Characters; #endif class Account { public: Account() {premiumDays = warnings = number = lastDay = 0;} virtual ~Account() {charList.clear();} uint16_t premiumDays, warnings; uint32_t number, lastDay; std::string name, password, recoveryKey, salt; Characters charList; }; #endif
  3. Alguém tem um script de uma spell que ao usar ela todos os players que estivessem na party ganhassem um buff com X efeito por X tempo que desse redução de dano e aumentasse a vida do player.

Informação Importante

Confirmação de Termo