Другое С/С++ Вопрос - Ответ

-raymond-

Известный
110
9
как записать в строку в файле текст?
должно работать так:
если строка пустая, то в нее записывается ник который в массиве

текстовик:

SxnSnud.png


код:
C++:
void CALLBACK addAdmCMD(std::string param)
{
    if (param.empty()) return SF->getSAMP()->getChat()->AddChatMessage(-1, "Используйте: /addadm [ник]");

    char nick[SAMP_MAX_PLAYER_NAME];
    if (sscanf(param.c_str(), "%s", &nick))
    {

        FILE *fp;
        char WorkingDir[MAX_PATH], IniFile[MAX_PATH];

        GetCurrentDirectory(_countof(WorkingDir), WorkingDir);

        sprintf_s(IniFile, "%s\\SAMPFUNCS\\artsob\\admins.ini", WorkingDir);

        fp = fopen(IniFile, "r");
        if (fp)
        {
            for (int i = NULL; i < 50; i++)
            {


                char buf[SAMP_MAX_PLAYER_NAME];
                if (!fgets(buf, SAMP_MAX_PLAYER_NAME, fp))
                {
                    fwrite(nick, SAMP_MAX_PLAYER_NAME, i, fp);
                    SF->getSAMP()->getChat()->AddChatMessage(-1, "Записан");
                    sprintf(admin_list[i], "%s", nick);
                    break;
                }
                else
                    continue;
            }
        }
    }

    return;
}
 

guerrka

Новичок
22
0
хелп. Почему краш?
C++:
        SF->getCLEO()->callOpcode("0B44: samp 0@ = create_3d_text \"asd\" color 0xFFFFFFFF position 2132.0054 1394.1887 10.8203 view_distance 50.0 show_behind_walls true attached_to_player -1 attached_to_vehicle -1");
 

Rjx13

Известный
Проверенный
224
160
хелп. Почему краш?
C++:
        SF->getCLEO()->callOpcode("0B44: samp 0@ = create_3d_text \"asd\" color 0xFFFFFFFF position 2132.0054 1394.1887 10.8203 view_distance 50.0 show_behind_walls true attached_to_player -1 attached_to_vehicle -1");
Юзай функцию из SF API
Код:
SF->getSAMP()->getInfo()->pPools->pText3D->Create3DText();
 

Stiopko

Известный
Проверенный
307
218
Почему при очищении памяти ошибка?
C++:
char * DeleteChar(char * ch, int strtCh) {
    int s = SizeChar(ch), i;
    char * tnp = new char[s - 1];
    for (i = 0; i < strtCh; i++) tnp[i] = ch[i];
    for (i = strtCh+1; i < s; i++) tnp[i-1] = ch[i];
    delete[] ch; // здесь
    tnp[s - 1] = '\0';
    return tnp;
}
 
Последнее редактирование:

guerrka

Новичок
22
0
Как создать 3dtext из переменной?

Код:
std::string str = "Text";

SF->getSAMP()->getInfo()->pPools->pText3D->Create3DText(30, str, D3DCOLOR_ARGB(0xFF, 0xFF, 0xFF, 255), fPosition, 10.0f, true, -1, -1);
Ошибка:
"int stTextLabelPool::Create3DText(uint16_t,stTextLabel)": невозможно преобразовать аргумент 2 из "std::string" в "char *"
 

#Rin

Известный
Всефорумный модератор
1,214
1,036
Как создать 3dtext из переменной?

Код:
std::string str = "Text";

SF->getSAMP()->getInfo()->pPools->pText3D->Create3DText(30, str, D3DCOLOR_ARGB(0xFF, 0xFF, 0xFF, 255), fPosition, 10.0f, true, -1, -1);
Ошибка:
"int stTextLabelPool::Create3DText(uint16_t,stTextLabel)": невозможно преобразовать аргумент 2 из "std::string" в "char *"
C++:
str.c_str()