GuGo1991, ах вот, есть еще один моментик. Расскажу смысл в общих чертах.
Изначально в программе полюбому будет посылаться сначало
C++ |
1
2
3
| if(!iGettingNewName)
{
sampConnect(settings.server.szAddr, settings.server.iPort, Nickname, settings.server.szPassword, pRakClient); |
|
так как else может сработать в том случае, если iGettingNewName присвоится 1. Так что получается допустим у меня в текстовом файле находятся строчки
C++ |
1
2
3
4
| Nickname1
Nickname2
Nickname3
Nickname4 |
|
Берется первая подставляется и отправляется sampConnect, далее , если на сервере есть игрок с именем Nickname1, то сервер присылает ответ REJECT_REASON_BAD_NICKNAME. и соответсвенно iGettingNewName присваивается 1, и выполняется условие else. И выходит то что Nickname1 удаляется из текстовика и используется Nickname2, который допустим не занят на сервере. И получается то что программа перемещает Nickname2 в конец текстового документа. Вообщем делает наоборот, ник который должен перемещаться в конец документа удаляет, а который должен быть удален, перемещает в конец. Как я понял вот в этой процедуре
C++ |
1
2
3
4
5
6
| else if(byteRejectReason==REJECT_REASON_BAD_NICKNAME)
{
iGettingNewName = true;
Log( "Неправильный ник. Смена ника ");
resetPools(1, 0);
} |
|
надо дописать, чтобы используемый на данный момент Nickname перемещался в конец документа.