- Joined
- Dec 11, 2007
- Messages
- 3,666
- Solutions
- 1
- Reaction score
- 125
- Location
- Warsaw, Poland
- GitHub
- tayandenga
- Twitch
- tayandenga
I was playing with current SVN, and found a 'TODO' in chat.cpp.
Decided to do it by myself
1. Open configmanager.cpp, and find (line 132):
Add after:
Save and close the file.
2. Open configmanager.h, and find (line 127):
Add after:
Save and close the file.
3. Open commands.cpp, and find (line 1216):
Replace it with:
Save and close the file.
4. Open chat.cpp and find (line 22):
Add after:
Find (line 28):
Add after:
Find (line 360):
Add after:
Find (line 564):
Replace with:
Find (line 641):
Replace with:
5. Open config.lua and find (line 30):
Add after:
And set the level for Your own use
Now You may compile the server
Decided to do it by myself
1. Open configmanager.cpp, and find (line 132):
Code:
m_confString[GENERATE_ACCOUNT_NUMBER] = getGlobalString(L, "generateAccountNumber", "yes");
Code:
m_confInteger[LEADER_LEVEL] = getGlobalNumber(L, "levelToCreateGuild", 8); //Added manually
2. Open configmanager.h, and find (line 127):
Code:
STATUSQUERY_TIMEOUT,
Code:
LEADER_LEVEL, //Added manually
3. Open commands.cpp, and find (line 1216):
Code:
bool Commands::createGuild(Creature* creature, const std::string& cmd, const std::string& param)
{
Player* player = creature->getPlayer();
if(player)
{
if(player->guildId == 0)
{
trimString((std::string&)param);
if(param.length() > 3)
{
if(param.length() < 21)
{
uint32_t guildId;
if(!IOGuild.getGuildIdByName(guildId, param))
{
if(player->level > 7)
{
if(player->isPremium())
{
char buffer[55];
sprintf(buffer, "You have formed the guild: %s!", param.c_str());
player->sendTextMessage(MSG_INFO_DESCR, buffer);
player->setGuildName(param);
IOGuild.createGuild(player);
return true;
}
else
player->sendCancelMessage(RET_YOUNEEDPREMIUMACCOUNT);
}
else
player->sendCancel("You have to be atleast Level 8 to form a guild.");
}
else
player->sendCancel("There is already a guild with that name.");
}
else
player->sendCancel("That guild name is too long, please select a shorter one.");
}
else
player->sendCancel("That guild name is too short, please select a longer one.");
}
else
player->sendCancel("You are already in a guild.");
}
return false;
}
Code:
bool Commands::createGuild(Creature* creature, const std::string& cmd, const std::string& param)
{
char buffer[125]; //Moved and increased size manually
Player* player = creature->getPlayer();
uint32_t leaderLevel = g_config.getNumber(ConfigManager::LEADER_LEVEL); //Added manually
if(player)
{
if(player->guildId == 0)
{
trimString((std::string&)param);
if(param.length() > 3)
{
if(param.length() < 21)
{
uint32_t guildId;
if(!IOGuild.getGuildIdByName(guildId, param))
{
if(player->level >= leaderLevel) //Changed manually
{
if(player->isPremium())
{
sprintf(buffer, "You have formed the guild: %s!", param.c_str());
player->sendTextMessage(MSG_INFO_DESCR, buffer);
player->setGuildName(param);
IOGuild.createGuild(player);
return true;
}
else
player->sendCancelMessage(RET_YOUNEEDPREMIUMACCOUNT);
}
else
{
sprintf(buffer, "You have to be at least Level %i to form a guild.", leaderLevel); //Added manually
player->sendCancel(buffer); //Changed manually
}
}
else
player->sendCancel("There is already a guild with that name.");
}
else
player->sendCancel("That guild name is too long, please select a shorter one.");
}
else
player->sendCancel("That guild name is too short, please select a longer one.");
}
else
player->sendCancel("You are already in a guild.");
}
return false;
}
4. Open chat.cpp and find (line 22):
Code:
#include "chat.h"
Code:
#include "configmanager.h" //Added manually
Code:
extern Game g_game;
Code:
extern ConfigManager g_config; //Added manually
Code:
ChatChannel* guildChannel = getChannel(player, 0x00);
Code:
uint32_t leaderLevel = g_config.getNumber(ConfigManager::LEADER_LEVEL); //Added manually
Code:
{
if(paramPlayer->getLevel() > 7) //TODO: make this configurable
{
paramPlayer->setGuildLevel(GUILDLEVEL_LEADER);
player->setGuildLevel(GUILDLEVEL_VICE);
IOGuild.updateOwnerId(paramPlayer->getGuildId(), paramPlayer->getGUID());
sprintf(buffer, "%s has passed the guild leadership to %s.", player->getName().c_str(), paramPlayer->getName().c_str());
guildChannel->talk(player, SPEAK_CHANNEL_R2, buffer);
}
else
player->sendCancel("The new guild leader has to be at least Level 8.");
}
Code:
{
if(paramPlayer->getLevel() >= leaderLevel) //Changed manually
{
paramPlayer->setGuildLevel(GUILDLEVEL_LEADER);
player->setGuildLevel(GUILDLEVEL_VICE);
IOGuild.updateOwnerId(paramPlayer->getGuildId(), paramPlayer->getGUID());
sprintf(buffer, "%s has passed the guild leadership to %s.", player->getName().c_str(), paramPlayer->getName().c_str());
guildChannel->talk(player, SPEAK_CHANNEL_R2, buffer);
}
else
{
sprintf(buffer, "The new guild leader has to be at least Level %i.", leaderLevel); //Added manually
player->sendCancel(buffer); //Changed manually
}
}
Code:
{
if(IOLoginData.getLevel(guid) >= 8) //TODO: make this configurable
{
IOGuild.setGuildLevel(guid, GUILDLEVEL_LEADER);
player->setGuildLevel(GUILDLEVEL_VICE);
sprintf(buffer, "%s has passed the guild leadership to %s.", player->getName().c_str(), param.c_str());
guildChannel->talk(player, SPEAK_CHANNEL_R2, buffer);
}
else
player->sendCancel("The new guild leader has to be at least Level 8.");
}
Code:
{
if(IOLoginData.getLevel(guid) >= leaderLevel) //Changed manually
{
IOGuild.setGuildLevel(guid, GUILDLEVEL_LEADER);
player->setGuildLevel(GUILDLEVEL_VICE);
sprintf(buffer, "%s has passed the guild leadership to %s.", player->getName().c_str(), param.c_str());
guildChannel->talk(player, SPEAK_CHANNEL_R2, buffer);
}
else
{
sprintf(buffer, "The new guild leader has to be at least Level %i.", leaderLevel); //Added manually
player->sendCancel(buffer); //Changed manually
}
}
5. Open config.lua and find (line 30):
Code:
displayGamemastersWithOnlineCommand = "no"
Code:
levelToCreateGuild = 8
Now You may compile the server