• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

C++ This old code isn't working anymore

Demoncrawler

Well-Known Member
Joined
Aug 16, 2009
Messages
117
Reaction score
53
I tried to copy old code from 2021 to the latest tfs. But it doesn't work anymore, the server won't start as soon as I copy that part into the latest tfs.

""old function""
bool Spawn::addMonster(const std::string& name, const Position& pos, Direction dir, uint32_t interval)
{
MonsterType* mType = g_monsters.getMonsterType(name);
if (mType->multi.find("xx") != std::string::npos)
{
std::string savemulti = mType->multi;
std::stringstream test;
test.str(mType->multi);
std::string segment;
std::vector<std::string> seglist;

while (std::getline(test, segment, '_'))
{
seglist.push_back(segment);
}
int randnumber = rand() % 5 + 1;
//std::cout << "Randommonster " << seglist[randnumber] << std::endl;
mType = g_monsters.getMonsterType(seglist[randnumber]);
mType->multi = savemulti;
}

if (!mType) {
std::cout << "[Warning - Spawn::addMonster] Can not find " << name << std::endl;
return false;
}

this->interval = std::min(this->interval, interval);

spawnBlock_t sb;
sb.mType = mType;
sb.pos = pos;
sb.direction = dir;
sb.interval = interval;
sb.lastSpawn = 0;

uint32_t spawnId = spawnMap.size() + 1;
spawnMap[spawnId] = sb;
return true;
}

""new function""
bool Spawn::addMonster(const std::string& name, const Position& pos, Direction dir, uint32_t interval)
{
MonsterType* mType = g_monsters.getMonsterType(name);

//std::string input = mType->multi;
//size_t foundpos = input.find("xx");

//if (foundpos != std::string::npos) {
//std::cout << mType->multi << std::endl;
//}

if (mType->multi.find("xx") != std::string::npos) {
std::string savemulti = mType->multi;
std::stringstream test;
test.str(mType->multi);
std::string segment;
std::vector<std::string> seglist;
if (!seglist.empty()) {
std::cout << name << std::endl;
}

while (std::getline(test, segment, '_')) {
seglist.push_back(segment);
}
int randnumber = rand() % seglist.size();
std::cout << "Randommonster " << seglist[randnumber] << std::endl;
mType = g_monsters.getMonsterType(seglist[randnumber]);
mType->multi = savemulti;
}


if (!mType) {
std::cout << "[Warning - Spawn::addMonster] Can not find " << name << std::endl;
return false;
}

spawnBlock_t sb;
sb.mTypes.push_back({mType, 100});
sb.pos = pos;
sb.direction = dir;
sb.interval = interval;
sb.lastSpawn = 0;

return addBlock(sb);
}
 
C++:
bool Spawn::addMonster(const std::string& name, const Position& pos, Direction dir, uint32_t interval)
{
MonsterType* mType = g_monsters.getMonsterType(name);
if (mType->multi.find("xx") != std::string::npos)
{
std::string savemulti = mType->multi;
std::stringstream test;
test.str(mType->multi);
std::string segment;
std::vector<std::string> seglist;

while (std::getline(test, segment, '_'))
{
seglist.push_back(segment);
}
int randnumber = rand() % 5 + 1;
//std::cout << "Randommonster " << seglist[randnumber] << std::endl;
mType = g_monsters.getMonsterType(seglist[randnumber]);
mType->multi = savemulti;
}

if (!mType) {
std::cout << "[Warning - Spawn::addMonster] Can not find " << name << std::endl;
return false;
}

this->interval = std::min(this->interval, interval);

spawnBlock_t sb;
sb.mType = mType;
sb.pos = pos;
sb.direction = dir;
sb.interval = interval;
sb.lastSpawn = 0;

uint32_t spawnId = spawnMap.size() + 1;
spawnMap[spawnId] = sb;
return true;
}

""new function""
bool Spawn::addMonster(const std::string& name, const Position& pos, Direction dir, uint32_t interval)
{
MonsterType* mType = g_monsters.getMonsterType(name);

//std::string input = mType->multi;
//size_t foundpos = input.find("xx");

//if (foundpos != std::string::npos) {
//std::cout << mType->multi << std::endl;
//}

if (mType->multi.find("xx") != std::string::npos) {
std::string savemulti = mType->multi;
std::stringstream test;
test.str(mType->multi);
std::string segment;
std::vector<std::string> seglist;
if (!seglist.empty()) {
std::cout << name << std::endl;
}

while (std::getline(test, segment, '_')) {
seglist.push_back(segment);
}
int randnumber = rand() % seglist.size();
std::cout << "Randommonster " << seglist[randnumber] << std::endl;
mType = g_monsters.getMonsterType(seglist[randnumber]);
mType->multi = savemulti;
}


if (!mType) {
std::cout << "[Warning - Spawn::addMonster] Can not find " << name << std::endl;
return false;
}

spawnBlock_t sb;
sb.mTypes.push_back({mType, 100});
sb.pos = pos;
sb.direction = dir;
sb.interval = interval;
sb.lastSpawn = 0;

return addBlock(sb);
}
 

Similar threads

Back
Top