Другое SAMPFUNCS | API C++

MISTER_GONWIK

Всефорумный гонщик
Всефорумный модератор
1,260
1,740
Во считывание из файла.

Код:
FILE *file;
char path[512], stroka[9999999999];
sprintf(path, "SAMPFUNCS\\file.txt");
file = fopen(path, "r");
if (file)
{
for (int i = 0; i < 500; i++)
{
char bufer[500];
if (fgets(bufer, 500, file))
sscanf(bufer, "%s", stroka);
else
break;
}
}
fclose(file);
поцаны, проблема тут такая.
вот, я короче пытаюсь сделать считывание из файла, но у меня пустую строку всегда выводит.
Код:
std::ifstream f("test.txt");
char buf[24] = "";
f.getline(buf, '\0');
SF->getSAMP()->getChat()->AddChatMessage(-1, buf);


я сегодня выложу хорошую штуку для работы с Ini..
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,460
поцаны, проблема тут такая.
вот, я короче пытаюсь сделать считывание из файла, но у меня пустую строку всегда выводит.
Код:
std::ifstream f("test.txt");
char buf[24] = "";
f.getline(buf, '\0');
SF->getSAMP()->getChat()->AddChatMessage(-1, buf);
Читает весь файл.
Код:
std::ifstream f;
f.open("test.txt", std::ios_base::in);
if (f.is_open())
{
    char szBuffer[64];
    memset(szBuffer, 0, 64);
    while (f.getline(szBuffer, 63))
    {
        SF->getSAMP()->getChat()->AddChatMessage(-1, szBuffer);
    }

    f.close();
}
 
  • Нравится
Реакции: Sire Like

Enjoy

Новичок
Проверенный
164
11
Читает весь файл.
Код:
std::ifstream f;
f.open("test.txt", std::ios_base::in);
if (f.is_open())
{
    char szBuffer[64];
    memset(szBuffer, 0, 64);
    while (f.getline(szBuffer, 63))
    {
        SF->getSAMP()->getChat()->AddChatMessage(-1, szBuffer);
    }

    f.close();
}
Чето нихера не читает, он точно из currentdirectory открывается?
 

Dark_Knight

Me, me and me.
Друг
4,065
2,079
Вот тебе кусок кода с Раклоггера моего
Код:
memset(&path, 0, MAX_PATH + 32);
    GetCurrentDirectory(MAX_PATH, path);
    strcat(path, "\\");
    strcat(path, set.chPlayerListPath.c_str());
    file.open(path);
    while (!file.eof())
    {
        std::getline(file, str);;
        std::transform(str.begin(), str.end(), str.begin(), tolower);
        Admins += str;
    }
    file.close();
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,460
Может потому что у тебя файл лежит в SAMPFUNCS папке, а не в папке игры?
 

Enjoy

Новичок
Проверенный
164
11
а че это, как его в stLocalPlayer я не могу свое хп узнать.
А вот так не выходит, вылетает чето
Код:
char buf[32] = "";
int id = SF->getSAMP()->getPlayers()->sLocalPlayerID;
stRemotePlayerData *pPlayerData = SF->getSAMP()->getPlayers()->pRemotePlayer[id]->pPlayerData;
sprintf(buf, "ID: %d // Health: %2.f", id, pPlayerData->fActorHealth);
SF->getSAMP()->getChat()->AddChatMessage(-1, buf);
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,460
stRemotePlayerData != stLocalPlayer
В stLocalPlayer есть указатель на структуру stSampPed(там ещё будет 1 указатель, вроде как), оттуда ты можешь получить уровень здоровья или поступить ещё легче - вытащить из синхронизации onFoot.
 
  • Нравится
Реакции: Enjoy

Enjoy

Новичок
Проверенный
164
11
stRemotePlayerData != stLocalPlayer
В stLocalPlayer есть указатель на структуру stSampPed(там ещё будет 1 указатель, вроде как), оттуда ты можешь получить уровень здоровья или поступить ещё легче - вытащить из синхронизации onFoot.
Вот, что вышло.
Код:
actor_info    *pGTA_Ped = SF->getSAMP()->getPlayers()->pLocalPlayer->pSAMP_Actor->pGTA_Ped;
pGTA_Ped->pPlayerData;
Но pPlayerData там void, как мне оттуда fHealth вытащить?
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,460
SF->getSAMP()->getPlayers()->pLocalPlayer->pSAMP_Actor->pGTA_Ped->hitpoints;

actor_info *self = SF->getGame()->actorInfoGet(-1, ACTOR_ALIVE);
self->hitpoints;
 
  • Нравится
Реакции: Sire Like и Enjoy